From ae4b65c52e04850f45b73dc1c7d7aa8524a9a7bd Mon Sep 17 00:00:00 2001 From: "Alex Lam S.L" Date: Fri, 23 Jun 2023 06:13:26 +0300 Subject: fix tests for `expect()` (#3384) - extend test job time-out for `darwin-aarch64` --- test/js/bun/test/expect.test.js | 187 ++++++++++++++++++++++++++++++---------- 1 file changed, 140 insertions(+), 47 deletions(-) (limited to 'test/js') diff --git a/test/js/bun/test/expect.test.js b/test/js/bun/test/expect.test.js index f09f7d196..d42ec2219 100644 --- a/test/js/bun/test/expect.test.js +++ b/test/js/bun/test/expect.test.js @@ -2654,28 +2654,74 @@ describe("expect()", () => { describe("toBeEmpty()", () => { const values = [ - "", - [], - {}, - new Set(), - new Map(), - new String(), - new Array(), - new Uint8Array(), - new Object(), - Buffer.from(""), - ...(isBun ? [Bun.file("/tmp/empty.txt")] : []), - new Headers(), - new URLSearchParams(), - new FormData(), - (function* () {})(), + { + label: `""`, + value: "", + }, + { + label: `[]`, + value: [], + }, + { + label: `{}`, + value: {}, + }, + { + label: `new Set()`, + value: new Set(), + }, + { + label: `new Map()`, + value: new Map(), + }, + { + label: `new String()`, + value: new String(), + }, + { + label: `new Array()`, + value: new Array(), + }, + { + label: `new Uint8Array()`, + value: new Uint8Array(), + }, + { + label: `new Object()`, + value: new Object(), + }, + { + label: `Buffer.from("")`, + value: Buffer.from(""), + }, + { + label: `new Headers()`, + value: new Headers(), + }, + { + label: `new URLSearchParams()`, + value: new URLSearchParams(), + }, + { + label: `new FormData()`, + value: new FormData(), + }, + { + label: `(function* () {})()`, + value: (function* () {})(), + }, ]; - for (const value of values) { - test(label(value), () => { - if (value && typeof value === "object" && value instanceof Blob) { + if (isBun) { + values.push({ + label: `Bun.file()`, + value: Bun.file("/tmp/empty.txt"), + }); + } + for (const { label, value } of values) { + test(label, () => { + if (value instanceof Blob) { require("fs").writeFileSync("/tmp/empty.txt", ""); } - expect(value).toBeEmpty(); }); } @@ -2683,34 +2729,81 @@ describe("expect()", () => { describe("not.toBeEmpty()", () => { const values = [ - " ", - [""], - [undefined], - { "": "" }, - new Set([""]), - new Map([["", ""]]), - new String(" "), - new Array(1), - new Uint8Array(1), - Buffer.from(" "), - ...(isBun ? [Bun.file(__filename)] : []), - new Headers({ - a: "b", - c: "d", - }), - new URL("https://example.com?d=e&f=g").searchParams, - (() => { - var a = new FormData(); - a.append("a", "b"); - a.append("c", "d"); - return a; - })(), - (function* () { - yield "123"; - })(), + { + label: `" "`, + value: " ", + }, + { + label: `[""]`, + value: [""], + }, + { + label: `[undefined]`, + value: [undefined], + }, + { + label: `{ "": "" }`, + value: { "": "" }, + }, + { + label: `new Set([""])`, + value: new Set([""]), + }, + { + label: `new Map([["", ""]])`, + value: new Map([["", ""]]), + }, + { + label: `new String(" ")`, + value: new String(" "), + }, + { + label: `new Array(1)`, + value: new Array(1), + }, + { + label: `new Uint8Array(1)`, + value: new Uint8Array(1), + }, + { + label: `Buffer.from(" ")`, + value: Buffer.from(" "), + }, + { + label: `new Headers({...})`, + value: new Headers({ + a: "b", + c: "d", + }), + }, + { + label: `URL.searchParams`, + value: new URL("https://example.com?d=e&f=g").searchParams, + }, + { + label: `FormData`, + value: (() => { + var a = new FormData(); + a.append("a", "b"); + a.append("c", "d"); + return a; + })(), + }, + { + label: `generator function`, + value: (function* () { + yield "123"; + })(), + }, ]; - for (const value of values) { - test(label(value), () => { + if (isBun) { + values.push({ + label: `Bun.file()`, + value: Bun.file(__filename), + }); + } + for (const { label, value } of values) { + test(label, () => { expect(value).not.toBeEmpty(); }); } @@ -2743,7 +2836,7 @@ describe("expect()", () => { expect([]).toBeArrayOfSize(0); expect(new Array()).toBeArrayOfSize(0); expect([1, 2, 3, "🫓"]).toBeArrayOfSize(4); - expect((new Array() < string) | (number > (1, 2, 3, "🫓"))).toBeArrayOfSize(4); + expect(new Array(1, 2, 3, "🫓")).toBeArrayOfSize(4); expect({}).not.toBeArrayOfSize(1); expect("").not.toBeArrayOfSize(1); expect(0).not.toBeArrayOfSize(1); -- cgit v1.2.3 From 5ae8e5d773c6b57fe166681ffa9cdc153f69427b Mon Sep 17 00:00:00 2001 From: dave caruso Date: Sat, 24 Jun 2023 02:23:39 -0400 Subject: Make node-fallbacks build as esm not cjs / Fix `node-fetch` (#3377) * Make node-fallbacks build as esm not cjs. * fix stuff --- src/js/out/WebCoreJSBuiltins.cpp | 132 ++++++++++++++-------------- src/js/out/modules/node/crypto.js | 8 +- src/js/out/modules/node/http.js | 3 +- src/js/out/modules/node/net.js | 4 +- src/js/out/modules/node/path.js | 2 +- src/js/out/modules/node/path.posix.js | 2 +- src/js/out/modules/node/stream.consumers.js | 2 +- src/js/out/modules/node/stream.js | 4 +- src/js/out/modules/node/stream.web.js | 2 +- src/node-fallbacks/@vercel_fetch.js | 2 +- src/node-fallbacks/buffer.js | 1 + src/node-fallbacks/console.js | 2 +- src/node-fallbacks/crypto.js | 11 +++ src/node-fallbacks/domain.js | 4 +- src/node-fallbacks/http.js | 14 ++- src/node-fallbacks/https.js | 1 + src/node-fallbacks/node-fetch.js | 1 - src/node-fallbacks/os.js | 21 ++++- src/node-fallbacks/package.json | 4 +- src/node-fallbacks/path.js | 1 + src/node-fallbacks/process.js | 1 + src/node-fallbacks/querystring.js | 3 +- src/node-fallbacks/stream.js | 1 + src/node-fallbacks/string_decoder.js | 1 + src/node-fallbacks/sys.js | 1 + src/node-fallbacks/timers.js | 1 + src/node-fallbacks/tsconfig.json | 2 +- src/node-fallbacks/tty.js | 1 + src/node-fallbacks/util.js | 1 + src/node-fallbacks/zlib.js | 1 + src/node_fallbacks.zig | 54 ++++++------ test/js/node/fs/node-fetch.test.js | 14 ++- 32 files changed, 186 insertions(+), 116 deletions(-) (limited to 'test/js') diff --git a/src/js/out/WebCoreJSBuiltins.cpp b/src/js/out/WebCoreJSBuiltins.cpp index 1fecb34e3..455a0a3a4 100644 --- a/src/js/out/WebCoreJSBuiltins.cpp +++ b/src/js/out/WebCoreJSBuiltins.cpp @@ -116,7 +116,7 @@ const JSC::ConstructorKind s_writableStreamInternalsCreateInternalWritableStream const JSC::ImplementationVisibility s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeLength = 956; static const JSC::Intrinsic s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCode = "(function (f,o){\"use strict\";const w={};if(f===@undefined)f={};if(o===@undefined)o={};if(!@isObject(f))@throwTypeError(\"WritableStream constructor takes an object as first argument\");if(\"type\"in f)@throwRangeError(\"Invalid type is specified\");const C=@extractSizeAlgorithm(o),E=@extractHighWaterMark(o,1),_={};if(\"start\"in f){if(_[\"start\"]=f[\"start\"],typeof _[\"start\"]!==\"function\")@throwTypeError(\"underlyingSink.start should be a function\")}if(\"write\"in f){if(_[\"write\"]=f[\"write\"],typeof _[\"write\"]!==\"function\")@throwTypeError(\"underlyingSink.write should be a function\")}if(\"close\"in f){if(_[\"close\"]=f[\"close\"],typeof _[\"close\"]!==\"function\")@throwTypeError(\"underlyingSink.close should be a function\")}if(\"abort\"in f){if(_[\"abort\"]=f[\"abort\"],typeof _[\"abort\"]!==\"function\")@throwTypeError(\"underlyingSink.abort should be a function\")}return @initializeWritableStreamSlots(w,f),@setUpWritableStreamDefaultControllerFromUnderlyingSink(w,f,_,E,C),w})\n"; +const char* const s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCode = "(function (o,w){\"use strict\";const C={};if(o===@undefined)o={};if(w===@undefined)w={};if(!@isObject(o))@throwTypeError(\"WritableStream constructor takes an object as first argument\");if(\"type\"in o)@throwRangeError(\"Invalid type is specified\");const E=@extractSizeAlgorithm(w),_=@extractHighWaterMark(w,1),f={};if(\"start\"in o){if(f[\"start\"]=o[\"start\"],typeof f[\"start\"]!==\"function\")@throwTypeError(\"underlyingSink.start should be a function\")}if(\"write\"in o){if(f[\"write\"]=o[\"write\"],typeof f[\"write\"]!==\"function\")@throwTypeError(\"underlyingSink.write should be a function\")}if(\"close\"in o){if(f[\"close\"]=o[\"close\"],typeof f[\"close\"]!==\"function\")@throwTypeError(\"underlyingSink.close should be a function\")}if(\"abort\"in o){if(f[\"abort\"]=o[\"abort\"],typeof f[\"abort\"]!==\"function\")@throwTypeError(\"underlyingSink.abort should be a function\")}return @initializeWritableStreamSlots(C,o),@setUpWritableStreamDefaultControllerFromUnderlyingSink(C,o,f,_,E),C})\n"; // initializeWritableStreamSlots const JSC::ConstructAbility s_writableStreamInternalsInitializeWritableStreamSlotsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -204,7 +204,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamFinishErroring const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamFinishErroringCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamFinishErroringCodeLength = 1058; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamFinishErroringCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamFinishErroringCode = "(function (i){\"use strict\";@assert(@getByIdDirectPrivate(i,\"state\")===\"erroring\"),@assert(!@writableStreamHasOperationMarkedInFlight(i)),@putByIdDirectPrivate(i,\"state\",\"errored\");const _=@getByIdDirectPrivate(i,\"controller\");@getByIdDirectPrivate(_,\"errorSteps\").@call();const p=@getByIdDirectPrivate(i,\"storedError\"),h=@getByIdDirectPrivate(i,\"writeRequests\");for(var A=h.shift();A;A=h.shift())A.@reject.@call(@undefined,p);@putByIdDirectPrivate(i,\"writeRequests\",@createFIFO());const B=@getByIdDirectPrivate(i,\"pendingAbortRequest\");if(B===@undefined){@writableStreamRejectCloseAndClosedPromiseIfNeeded(i);return}if(@putByIdDirectPrivate(i,\"pendingAbortRequest\",@undefined),B.wasAlreadyErroring){B.promise.@reject.@call(@undefined,p),@writableStreamRejectCloseAndClosedPromiseIfNeeded(i);return}@getByIdDirectPrivate(_,\"abortSteps\").@call(@undefined,B.reason).@then(()=>{B.promise.@resolve.@call(),@writableStreamRejectCloseAndClosedPromiseIfNeeded(i)},(I)=>{B.promise.@reject.@call(@undefined,I),@writableStreamRejectCloseAndClosedPromiseIfNeeded(i)})})\n"; +const char* const s_writableStreamInternalsWritableStreamFinishErroringCode = "(function (_){\"use strict\";@assert(@getByIdDirectPrivate(_,\"state\")===\"erroring\"),@assert(!@writableStreamHasOperationMarkedInFlight(_)),@putByIdDirectPrivate(_,\"state\",\"errored\");const p=@getByIdDirectPrivate(_,\"controller\");@getByIdDirectPrivate(p,\"errorSteps\").@call();const h=@getByIdDirectPrivate(_,\"storedError\"),A=@getByIdDirectPrivate(_,\"writeRequests\");for(var B=A.shift();B;B=A.shift())B.@reject.@call(@undefined,h);@putByIdDirectPrivate(_,\"writeRequests\",@createFIFO());const i=@getByIdDirectPrivate(_,\"pendingAbortRequest\");if(i===@undefined){@writableStreamRejectCloseAndClosedPromiseIfNeeded(_);return}if(@putByIdDirectPrivate(_,\"pendingAbortRequest\",@undefined),i.wasAlreadyErroring){i.promise.@reject.@call(@undefined,h),@writableStreamRejectCloseAndClosedPromiseIfNeeded(_);return}@getByIdDirectPrivate(p,\"abortSteps\").@call(@undefined,i.reason).@then(()=>{i.promise.@resolve.@call(),@writableStreamRejectCloseAndClosedPromiseIfNeeded(_)},(I)=>{i.promise.@reject.@call(@undefined,I),@writableStreamRejectCloseAndClosedPromiseIfNeeded(_)})})\n"; // writableStreamFinishInFlightClose const JSC::ConstructAbility s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -348,7 +348,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterW const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeLength = 919; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultWriterWriteCode = "(function (d,g){\"use strict\";const P=@getByIdDirectPrivate(d,\"stream\");@assert(P!==@undefined);const W=@getByIdDirectPrivate(P,\"controller\");@assert(W!==@undefined);const _=@writableStreamDefaultControllerGetChunkSize(W,g);if(P!==@getByIdDirectPrivate(d,\"stream\"))return @Promise.@reject(@makeTypeError(\"writer is not stream's writer\"));const b=@getByIdDirectPrivate(P,\"state\");if(b===\"errored\")return @Promise.@reject(@getByIdDirectPrivate(P,\"storedError\"));if(@writableStreamCloseQueuedOrInFlight(P)||b===\"closed\")return @Promise.@reject(@makeTypeError(\"stream is closing or closed\"));if(@writableStreamCloseQueuedOrInFlight(P)||b===\"closed\")return @Promise.@reject(@makeTypeError(\"stream is closing or closed\"));if(b===\"erroring\")return @Promise.@reject(@getByIdDirectPrivate(P,\"storedError\"));@assert(b===\"writable\");const f=@writableStreamAddWriteRequest(P);return @writableStreamDefaultControllerWrite(W,g,_),f})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultWriterWriteCode = "(function (g,P){\"use strict\";const W=@getByIdDirectPrivate(g,\"stream\");@assert(W!==@undefined);const _=@getByIdDirectPrivate(W,\"controller\");@assert(_!==@undefined);const b=@writableStreamDefaultControllerGetChunkSize(_,P);if(W!==@getByIdDirectPrivate(g,\"stream\"))return @Promise.@reject(@makeTypeError(\"writer is not stream's writer\"));const d=@getByIdDirectPrivate(W,\"state\");if(d===\"errored\")return @Promise.@reject(@getByIdDirectPrivate(W,\"storedError\"));if(@writableStreamCloseQueuedOrInFlight(W)||d===\"closed\")return @Promise.@reject(@makeTypeError(\"stream is closing or closed\"));if(@writableStreamCloseQueuedOrInFlight(W)||d===\"closed\")return @Promise.@reject(@makeTypeError(\"stream is closing or closed\"));if(d===\"erroring\")return @Promise.@reject(@getByIdDirectPrivate(W,\"storedError\"));@assert(d===\"writable\");const f=@writableStreamAddWriteRequest(W);return @writableStreamDefaultControllerWrite(_,P,b),f})\n"; // setUpWritableStreamDefaultController const JSC::ConstructAbility s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -372,7 +372,7 @@ const JSC::ConstructorKind s_writableStreamInternalsSetUpWritableStreamDefaultCo const JSC::ImplementationVisibility s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCodeLength = 573; static const JSC::Intrinsic s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCode = "(function (v,P,_,f,j){\"use strict\";const p=new @WritableStreamDefaultController;let q=()=>{},x=()=>{return @Promise.@resolve()},B=()=>{return @Promise.@resolve()},C=()=>{return @Promise.@resolve()};if(\"start\"in _){const E=_[\"start\"];q=()=>@promiseInvokeOrNoopMethodNoCatch(P,E,[p])}if(\"write\"in _){const E=_[\"write\"];x=(F)=>@promiseInvokeOrNoopMethod(P,E,[F,p])}if(\"close\"in _){const E=_[\"close\"];B=()=>@promiseInvokeOrNoopMethod(P,E,[])}if(\"abort\"in _){const E=_[\"abort\"];C=(F)=>@promiseInvokeOrNoopMethod(P,E,[F])}@setUpWritableStreamDefaultController(v,p,q,x,B,C,f,j)})\n"; +const char* const s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCode = "(function (v,q,P,_,j){\"use strict\";const p=new @WritableStreamDefaultController;let x=()=>{},B=()=>{return @Promise.@resolve()},C=()=>{return @Promise.@resolve()},f=()=>{return @Promise.@resolve()};if(\"start\"in P){const E=P[\"start\"];x=()=>@promiseInvokeOrNoopMethodNoCatch(q,E,[p])}if(\"write\"in P){const E=P[\"write\"];B=(F)=>@promiseInvokeOrNoopMethod(q,E,[F,p])}if(\"close\"in P){const E=P[\"close\"];C=()=>@promiseInvokeOrNoopMethod(q,E,[])}if(\"abort\"in P){const E=P[\"abort\"];f=(F)=>@promiseInvokeOrNoopMethod(q,E,[F])}@setUpWritableStreamDefaultController(v,p,x,B,C,f,_,j)})\n"; // writableStreamDefaultControllerAdvanceQueueIfNeeded const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerAdvanceQueueIfNeededCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -468,7 +468,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControl const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeLength = 450; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultControllerWriteCode = "(function (d,y,B){\"use strict\";try{@enqueueValueWithSize(@getByIdDirectPrivate(d,\"queue\"),y,B);const D=@getByIdDirectPrivate(d,\"stream\"),I=@getByIdDirectPrivate(D,\"state\");if(!@writableStreamCloseQueuedOrInFlight(D)&&I===\"writable\"){const _=@writableStreamDefaultControllerGetBackpressure(d);@writableStreamUpdateBackpressure(D,_)}@writableStreamDefaultControllerAdvanceQueueIfNeeded(d)}catch(D){@writableStreamDefaultControllerErrorIfNeeded(d,D)}})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultControllerWriteCode = "(function (y,B,D){\"use strict\";try{@enqueueValueWithSize(@getByIdDirectPrivate(y,\"queue\"),B,D);const I=@getByIdDirectPrivate(y,\"stream\"),_=@getByIdDirectPrivate(I,\"state\");if(!@writableStreamCloseQueuedOrInFlight(I)&&_===\"writable\"){const d=@writableStreamDefaultControllerGetBackpressure(y);@writableStreamUpdateBackpressure(I,d)}@writableStreamDefaultControllerAdvanceQueueIfNeeded(y)}catch(I){@writableStreamDefaultControllerErrorIfNeeded(y,I)}})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ @@ -502,7 +502,7 @@ const JSC::ConstructorKind s_transformStreamInternalsCreateTransformStreamCodeCo const JSC::ImplementationVisibility s_transformStreamInternalsCreateTransformStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsCreateTransformStreamCodeLength = 513; static const JSC::Intrinsic s_transformStreamInternalsCreateTransformStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsCreateTransformStreamCode = "(function (_,c,j,q,v,x,B){\"use strict\";if(q===@undefined)q=1;if(v===@undefined)v=()=>1;if(x===@undefined)x=0;if(B===@undefined)B=()=>1;@assert(q>=0),@assert(x>=0);const D={};@putByIdDirectPrivate(D,\"TransformStream\",!0);const E=new @TransformStream(D),F=@newPromiseCapability(@Promise);@initializeTransformStream(E,F.@promise,q,v,x,B);const G=new @TransformStreamDefaultController;return @setUpTransformStreamDefaultController(E,G,c,j),_().@then(()=>{F.@resolve.@call()},(I)=>{F.@reject.@call(@undefined,I)}),E})\n"; +const char* const s_transformStreamInternalsCreateTransformStreamCode = "(function (_,B,c,j,v,x,D){\"use strict\";if(j===@undefined)j=1;if(v===@undefined)v=()=>1;if(x===@undefined)x=0;if(D===@undefined)D=()=>1;@assert(j>=0),@assert(x>=0);const E={};@putByIdDirectPrivate(E,\"TransformStream\",!0);const F=new @TransformStream(E),q=@newPromiseCapability(@Promise);@initializeTransformStream(F,q.@promise,j,v,x,D);const G=new @TransformStreamDefaultController;return @setUpTransformStreamDefaultController(F,G,B,c),_().@then(()=>{q.@resolve.@call()},(I)=>{q.@reject.@call(@undefined,I)}),F})\n"; // initializeTransformStream const JSC::ConstructAbility s_transformStreamInternalsInitializeTransformStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -510,7 +510,7 @@ const JSC::ConstructorKind s_transformStreamInternalsInitializeTransformStreamCo const JSC::ImplementationVisibility s_transformStreamInternalsInitializeTransformStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsInitializeTransformStreamCodeLength = 1015; static const JSC::Intrinsic s_transformStreamInternalsInitializeTransformStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsInitializeTransformStreamCode = "(function (f,B,T,j,q,v){\"use strict\";const x=()=>{return B},C=(N)=>{return @transformStreamDefaultSinkWriteAlgorithm(f,N)},D=(N)=>{return @transformStreamDefaultSinkAbortAlgorithm(f,N)},E=()=>{return @transformStreamDefaultSinkCloseAlgorithm(f)},F=@createWritableStream(x,C,E,D,T,j),G=()=>{return @transformStreamDefaultSourcePullAlgorithm(f)},I=(N)=>{return @transformStreamErrorWritableAndUnblockWrite(f,N),@Promise.@resolve()},J={};@putByIdDirectPrivate(J,\"start\",x),@putByIdDirectPrivate(J,\"pull\",G),@putByIdDirectPrivate(J,\"cancel\",I);const K={};@putByIdDirectPrivate(K,\"size\",v),@putByIdDirectPrivate(K,\"highWaterMark\",q);const L=new @ReadableStream(J,K);@putByIdDirectPrivate(f,\"writable\",F),@putByIdDirectPrivate(f,\"internalWritable\",@getInternalWritableStream(F)),@putByIdDirectPrivate(f,\"readable\",L),@putByIdDirectPrivate(f,\"backpressure\",@undefined),@putByIdDirectPrivate(f,\"backpressureChangePromise\",@undefined),@transformStreamSetBackpressure(f,!0),@putByIdDirectPrivate(f,\"controller\",@undefined)})\n"; +const char* const s_transformStreamInternalsInitializeTransformStreamCode = "(function (B,T,j,I,q,J){\"use strict\";const v=()=>{return T},K=(F)=>{return @transformStreamDefaultSinkWriteAlgorithm(B,F)},x=(F)=>{return @transformStreamDefaultSinkAbortAlgorithm(B,F)},L=()=>{return @transformStreamDefaultSinkCloseAlgorithm(B)},C=@createWritableStream(v,K,L,x,j,I),f=()=>{return @transformStreamDefaultSourcePullAlgorithm(B)},D=(F)=>{return @transformStreamErrorWritableAndUnblockWrite(B,F),@Promise.@resolve()},G={};@putByIdDirectPrivate(G,\"start\",v),@putByIdDirectPrivate(G,\"pull\",f),@putByIdDirectPrivate(G,\"cancel\",D);const E={};@putByIdDirectPrivate(E,\"size\",J),@putByIdDirectPrivate(E,\"highWaterMark\",q);const N=new @ReadableStream(G,E);@putByIdDirectPrivate(B,\"writable\",C),@putByIdDirectPrivate(B,\"internalWritable\",@getInternalWritableStream(C)),@putByIdDirectPrivate(B,\"readable\",N),@putByIdDirectPrivate(B,\"backpressure\",@undefined),@putByIdDirectPrivate(B,\"backpressureChangePromise\",@undefined),@transformStreamSetBackpressure(B,!0),@putByIdDirectPrivate(B,\"controller\",@undefined)})\n"; // transformStreamError const JSC::ConstructAbility s_transformStreamInternalsTransformStreamErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -566,7 +566,7 @@ const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultContr const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCodeLength = 622; static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCode = "(function (_,S){\"use strict\";const W=@getByIdDirectPrivate(_,\"stream\"),f=@getByIdDirectPrivate(W,\"readable\"),g=@getByIdDirectPrivate(f,\"readableStreamController\");if(@assert(g!==@undefined),!@readableStreamDefaultControllerCanCloseOrEnqueue(g))@throwTypeError(\"TransformStream.readable cannot close or enqueue\");try{@readableStreamDefaultControllerEnqueue(g,S)}catch(j){throw @transformStreamErrorWritableAndUnblockWrite(W,j),@getByIdDirectPrivate(f,\"storedError\")}const i=!@readableStreamDefaultControllerShouldCallPull(g);if(i!==@getByIdDirectPrivate(W,\"backpressure\"))@assert(i),@transformStreamSetBackpressure(W,!0)})\n"; +const char* const s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCode = "(function (S,W){\"use strict\";const f=@getByIdDirectPrivate(S,\"stream\"),g=@getByIdDirectPrivate(f,\"readable\"),i=@getByIdDirectPrivate(g,\"readableStreamController\");if(@assert(i!==@undefined),!@readableStreamDefaultControllerCanCloseOrEnqueue(i))@throwTypeError(\"TransformStream.readable cannot close or enqueue\");try{@readableStreamDefaultControllerEnqueue(i,W)}catch(j){throw @transformStreamErrorWritableAndUnblockWrite(f,j),@getByIdDirectPrivate(g,\"storedError\")}const _=!@readableStreamDefaultControllerShouldCallPull(i);if(_!==@getByIdDirectPrivate(f,\"backpressure\"))@assert(_),@transformStreamSetBackpressure(f,!0)})\n"; // transformStreamDefaultControllerError const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultControllerErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -598,7 +598,7 @@ const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultSinkW const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeLength = 764; static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCode = "(function (_,d){\"use strict\";const v=@getByIdDirectPrivate(_,\"internalWritable\");@assert(@getByIdDirectPrivate(v,\"state\")===\"writable\");const f=@getByIdDirectPrivate(_,\"controller\");if(@getByIdDirectPrivate(_,\"backpressure\")){const j=@newPromiseCapability(@Promise),q=@getByIdDirectPrivate(_,\"backpressureChangePromise\");return @assert(q!==@undefined),q.@promise.@then(()=>{const x=@getByIdDirectPrivate(v,\"state\");if(x===\"erroring\"){j.@reject.@call(@undefined,@getByIdDirectPrivate(v,\"storedError\"));return}@assert(x===\"writable\"),@transformStreamDefaultControllerPerformTransform(f,d).@then(()=>{j.@resolve()},(z)=>{j.@reject.@call(@undefined,z)})},(x)=>{j.@reject.@call(@undefined,x)}),j.@promise}return @transformStreamDefaultControllerPerformTransform(f,d)})\n"; +const char* const s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCode = "(function (d,v){\"use strict\";const f=@getByIdDirectPrivate(d,\"internalWritable\");@assert(@getByIdDirectPrivate(f,\"state\")===\"writable\");const j=@getByIdDirectPrivate(d,\"controller\");if(@getByIdDirectPrivate(d,\"backpressure\")){const x=@newPromiseCapability(@Promise),_=@getByIdDirectPrivate(d,\"backpressureChangePromise\");return @assert(_!==@undefined),_.@promise.@then(()=>{const z=@getByIdDirectPrivate(f,\"state\");if(z===\"erroring\"){x.@reject.@call(@undefined,@getByIdDirectPrivate(f,\"storedError\"));return}@assert(z===\"writable\"),@transformStreamDefaultControllerPerformTransform(j,v).@then(()=>{x.@resolve()},(q)=>{x.@reject.@call(@undefined,q)})},(z)=>{x.@reject.@call(@undefined,z)}),x.@promise}return @transformStreamDefaultControllerPerformTransform(j,v)})\n"; // transformStreamDefaultSinkAbortAlgorithm const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -614,7 +614,7 @@ const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultSinkC const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCodeLength = 789; static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCode = "(function (_){\"use strict\";const q=@getByIdDirectPrivate(_,\"readable\"),I=@getByIdDirectPrivate(_,\"controller\"),f=@getByIdDirectPrivate(q,\"readableStreamController\"),j=@getByIdDirectPrivate(I,\"flushAlgorithm\");@assert(j!==@undefined);const k=@getByIdDirectPrivate(I,\"flushAlgorithm\").@call();@transformStreamDefaultControllerClearAlgorithms(I);const u=@newPromiseCapability(@Promise);return k.@then(()=>{if(@getByIdDirectPrivate(q,\"state\")===@streamErrored){u.@reject.@call(@undefined,@getByIdDirectPrivate(q,\"storedError\"));return}if(@readableStreamDefaultControllerCanCloseOrEnqueue(f))@readableStreamDefaultControllerClose(f);u.@resolve()},(v)=>{@transformStreamError(@getByIdDirectPrivate(I,\"stream\"),v),u.@reject.@call(@undefined,@getByIdDirectPrivate(q,\"storedError\"))}),u.@promise})\n"; +const char* const s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCode = "(function (_){\"use strict\";const I=@getByIdDirectPrivate(_,\"readable\"),k=@getByIdDirectPrivate(_,\"controller\"),f=@getByIdDirectPrivate(I,\"readableStreamController\"),u=@getByIdDirectPrivate(k,\"flushAlgorithm\");@assert(u!==@undefined);const v=@getByIdDirectPrivate(k,\"flushAlgorithm\").@call();@transformStreamDefaultControllerClearAlgorithms(k);const q=@newPromiseCapability(@Promise);return v.@then(()=>{if(@getByIdDirectPrivate(I,\"state\")===@streamErrored){q.@reject.@call(@undefined,@getByIdDirectPrivate(I,\"storedError\"));return}if(@readableStreamDefaultControllerCanCloseOrEnqueue(f))@readableStreamDefaultControllerClose(f);q.@resolve()},(j)=>{@transformStreamError(@getByIdDirectPrivate(k,\"stream\"),j),q.@reject.@call(@undefined,@getByIdDirectPrivate(I,\"storedError\"))}),q.@promise})\n"; // transformStreamDefaultSourcePullAlgorithm const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultSourcePullAlgorithmCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -648,7 +648,7 @@ const JSC::ConstructorKind s_processObjectInternalsGetStdioWriteStreamCodeConstr const JSC::ImplementationVisibility s_processObjectInternalsGetStdioWriteStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_processObjectInternalsGetStdioWriteStreamCodeLength = 4250; static const JSC::Intrinsic s_processObjectInternalsGetStdioWriteStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_processObjectInternalsGetStdioWriteStreamCode = "(function (B,j){\"use strict\";var z={path:\"node:process\",require:j},G=(N)=>z.require(N);function H(N){var{Duplex:O,eos:Q,destroy:U}=G(\"node:stream\"),V=class X extends O{#$;#B;#j=!0;#z=!0;#G;#H;#J;#K;#L;#M;get isTTY(){return this.#M\?\?=G(\"node:tty\").isatty(N)}get fd(){return N}constructor(Z){super({readable:!0,writable:!0});this.#G=`/dev/fd/${Z}`}#N(Z){const Y=this.#H;if(this.#H=null,Y)Y(Z);else if(Z)this.destroy(Z);else if(!this.#j&&!this.#z)this.destroy()}_destroy(Z,Y){if(!Z&&this.#H!==null){var P=class A extends Error{code;name;constructor(T=\"The operation was aborted\",x=void 0){if(x!==void 0&&typeof x!==\"object\")throw new Error(`Invalid AbortError options:\\n\\n${JSON.stringify(x,null,2)}`);super(T,x);this.code=\"ABORT_ERR\",this.name=\"AbortError\"}};Z=new P}if(this.#J=null,this.#K=null,this.#H===null)Y(Z);else{if(this.#H=Y,this.#$)U(this.#$,Z);if(this.#B)U(this.#B,Z)}}_write(Z,Y,P){if(!this.#$){var{createWriteStream:A}=G(\"node:fs\"),T=this.#$=A(this.#G);T.on(\"finish\",()=>{if(this.#K){const x=this.#K;this.#K=null,x()}}),T.on(\"drain\",()=>{if(this.#J){const x=this.#J;this.#J=null,x()}}),Q(T,(x)=>{if(this.#z=!1,x)U(T,x);this.#N(x)})}if(T.write(Z,Y))P();else this.#J=P}_final(Z){this.#$&&this.#$.end(),this.#K=Z}#O(){var{createReadStream:Z}=G(\"node:fs\"),Y=this.#B=Z(this.#G);return Y.on(\"readable\",()=>{if(this.#L){const P=this.#L;this.#L=null,P()}else this.read()}),Y.on(\"end\",()=>{this.push(null)}),Q(Y,(P)=>{if(this.#j=!1,P)U(Y,P);this.#N(P)}),Y}_read(){var Z=this.#B;if(!Z)Z=this.#O();while(!0){const Y=Z.read();if(Y===null||!this.push(Y))return}}};return new V(N)}var{EventEmitter:J}=G(\"node:events\");function K(N){if(!N)return!0;var O=N.toLowerCase();return O===\"utf8\"||O===\"utf-8\"||O===\"buffer\"||O===\"binary\"}var L,M=class N extends J{#$;#B;#j;#z;bytesWritten=0;setDefaultEncoding(O){if(this.#B||!K(O))return this.#J(),this.#B.setDefaultEncoding(O)}#G(){switch(this.#$){case 1:{var O=@Bun.stdout.writer({highWaterMark:0});return O.unref(),O}case 2:{var O=@Bun.stderr.writer({highWaterMark:0});return O.unref(),O}default:throw new Error(\"Unsupported writer\")}}#H(){return this.#j\?\?=this.#G()}constructor(O){super();this.#$=O}get fd(){return this.#$}get isTTY(){return this.#z\?\?=G(\"node:tty\").isatty(this.#$)}cursorTo(O,Q,U){return(L\?\?=G(\"readline\")).cursorTo(this,O,Q,U)}moveCursor(O,Q,U){return(L\?\?=G(\"readline\")).moveCursor(this,O,Q,U)}clearLine(O,Q){return(L\?\?=G(\"readline\")).clearLine(this,O,Q)}clearScreenDown(O){return(L\?\?=G(\"readline\")).clearScreenDown(this,O)}ref(){this.#H().ref()}unref(){this.#H().unref()}on(O,Q){if(O===\"close\"||O===\"finish\")return this.#J(),this.#B.on(O,Q);if(O===\"drain\")return super.on(\"drain\",Q);if(O===\"error\")return super.on(\"error\",Q);return super.on(O,Q)}get _writableState(){return this.#J(),this.#B._writableState}get _readableState(){return this.#J(),this.#B._readableState}pipe(O){return this.#J(),this.#B.pipe(O)}unpipe(O){return this.#J(),this.#B.unpipe(O)}#J(){if(this.#B)return;this.#B=H(this.#$);const O=this.eventNames();for(let Q of O)this.#B.on(Q,(...U)=>{this.emit(Q,...U)})}#K(O){var Q=this.#H();const U=Q.write(O);this.bytesWritten+=U;const V=Q.flush(!1);return!!(U||V)}#L(O,Q){if(!K(Q))return this.#J(),this.#B.write(O,Q);return this.#K(O)}#M(O,Q){if(Q)this.emit(\"error\",Q);try{O(Q\?Q:null)}catch(U){this.emit(\"error\",U)}}#N(O,Q,U){if(!K(Q))return this.#J(),this.#B.write(O,Q,U);var V=this.#H();const X=V.write(O),Z=V.flush(!0);if(Z\?.then)return Z.then(()=>{this.#M(U),this.emit(\"drain\")},(Y)=>this.#M(U,Y)),!1;return queueMicrotask(()=>{this.#M(U)}),!!(X||Z)}write(O,Q,U){const V=this._write(O,Q,U);if(V)this.emit(\"drain\");return V}get hasColors(){return @Bun.tty[this.#$].hasColors}_write(O,Q,U){var V=this.#B;if(V)return V.write(O,Q,U);switch(arguments.length){case 0:{var X=new Error(\"Invalid arguments\");throw X.code=\"ERR_INVALID_ARG_TYPE\",X}case 1:return this.#K(O);case 2:if(typeof Q===\"function\")return this.#N(O,\"\",Q);else if(typeof Q===\"string\")return this.#L(O,Q);default:{if(typeof Q!==\"undefined\"&&typeof Q!==\"string\"||typeof U!==\"undefined\"&&typeof U!==\"function\"){var X=new Error(\"Invalid arguments\");throw X.code=\"ERR_INVALID_ARG_TYPE\",X}if(typeof U===\"undefined\")return this.#L(O,Q);return this.#N(O,Q,U)}}}destroy(){return this}end(){return this}};return new M(B)})\n"; +const char* const s_processObjectInternalsGetStdioWriteStreamCode = "(function (j,H){\"use strict\";var J={path:\"node:process\",require:H},G=(N)=>J.require(N);function K(N){var{Duplex:O,eos:Q,destroy:U}=G(\"node:stream\"),V=class X extends O{#$;#B;#j=!0;#z=!0;#G;#H;#J;#K;#L;#M;get isTTY(){return this.#M\?\?=G(\"node:tty\").isatty(N)}get fd(){return N}constructor(Z){super({readable:!0,writable:!0});this.#G=`/dev/fd/${Z}`}#N(Z){const Y=this.#H;if(this.#H=null,Y)Y(Z);else if(Z)this.destroy(Z);else if(!this.#j&&!this.#z)this.destroy()}_destroy(Z,Y){if(!Z&&this.#H!==null){var P=class A extends Error{code;name;constructor(T=\"The operation was aborted\",x=void 0){if(x!==void 0&&typeof x!==\"object\")throw new Error(`Invalid AbortError options:\\n\\n${JSON.stringify(x,null,2)}`);super(T,x);this.code=\"ABORT_ERR\",this.name=\"AbortError\"}};Z=new P}if(this.#J=null,this.#K=null,this.#H===null)Y(Z);else{if(this.#H=Y,this.#$)U(this.#$,Z);if(this.#B)U(this.#B,Z)}}_write(Z,Y,P){if(!this.#$){var{createWriteStream:A}=G(\"node:fs\"),T=this.#$=A(this.#G);T.on(\"finish\",()=>{if(this.#K){const x=this.#K;this.#K=null,x()}}),T.on(\"drain\",()=>{if(this.#J){const x=this.#J;this.#J=null,x()}}),Q(T,(x)=>{if(this.#z=!1,x)U(T,x);this.#N(x)})}if(T.write(Z,Y))P();else this.#J=P}_final(Z){this.#$&&this.#$.end(),this.#K=Z}#O(){var{createReadStream:Z}=G(\"node:fs\"),Y=this.#B=Z(this.#G);return Y.on(\"readable\",()=>{if(this.#L){const P=this.#L;this.#L=null,P()}else this.read()}),Y.on(\"end\",()=>{this.push(null)}),Q(Y,(P)=>{if(this.#j=!1,P)U(Y,P);this.#N(P)}),Y}_read(){var Z=this.#B;if(!Z)Z=this.#O();while(!0){const Y=Z.read();if(Y===null||!this.push(Y))return}}};return new V(N)}var{EventEmitter:z}=G(\"node:events\");function L(N){if(!N)return!0;var O=N.toLowerCase();return O===\"utf8\"||O===\"utf-8\"||O===\"buffer\"||O===\"binary\"}var M,B=class N extends z{#$;#B;#j;#z;bytesWritten=0;setDefaultEncoding(O){if(this.#B||!L(O))return this.#J(),this.#B.setDefaultEncoding(O)}#G(){switch(this.#$){case 1:{var O=@Bun.stdout.writer({highWaterMark:0});return O.unref(),O}case 2:{var O=@Bun.stderr.writer({highWaterMark:0});return O.unref(),O}default:throw new Error(\"Unsupported writer\")}}#H(){return this.#j\?\?=this.#G()}constructor(O){super();this.#$=O}get fd(){return this.#$}get isTTY(){return this.#z\?\?=G(\"node:tty\").isatty(this.#$)}cursorTo(O,Q,U){return(M\?\?=G(\"readline\")).cursorTo(this,O,Q,U)}moveCursor(O,Q,U){return(M\?\?=G(\"readline\")).moveCursor(this,O,Q,U)}clearLine(O,Q){return(M\?\?=G(\"readline\")).clearLine(this,O,Q)}clearScreenDown(O){return(M\?\?=G(\"readline\")).clearScreenDown(this,O)}ref(){this.#H().ref()}unref(){this.#H().unref()}on(O,Q){if(O===\"close\"||O===\"finish\")return this.#J(),this.#B.on(O,Q);if(O===\"drain\")return super.on(\"drain\",Q);if(O===\"error\")return super.on(\"error\",Q);return super.on(O,Q)}get _writableState(){return this.#J(),this.#B._writableState}get _readableState(){return this.#J(),this.#B._readableState}pipe(O){return this.#J(),this.#B.pipe(O)}unpipe(O){return this.#J(),this.#B.unpipe(O)}#J(){if(this.#B)return;this.#B=K(this.#$);const O=this.eventNames();for(let Q of O)this.#B.on(Q,(...U)=>{this.emit(Q,...U)})}#K(O){var Q=this.#H();const U=Q.write(O);this.bytesWritten+=U;const V=Q.flush(!1);return!!(U||V)}#L(O,Q){if(!L(Q))return this.#J(),this.#B.write(O,Q);return this.#K(O)}#M(O,Q){if(Q)this.emit(\"error\",Q);try{O(Q\?Q:null)}catch(U){this.emit(\"error\",U)}}#N(O,Q,U){if(!L(Q))return this.#J(),this.#B.write(O,Q,U);var V=this.#H();const X=V.write(O),Z=V.flush(!0);if(Z\?.then)return Z.then(()=>{this.#M(U),this.emit(\"drain\")},(Y)=>this.#M(U,Y)),!1;return queueMicrotask(()=>{this.#M(U)}),!!(X||Z)}write(O,Q,U){const V=this._write(O,Q,U);if(V)this.emit(\"drain\");return V}get hasColors(){return @Bun.tty[this.#$].hasColors}_write(O,Q,U){var V=this.#B;if(V)return V.write(O,Q,U);switch(arguments.length){case 0:{var X=new Error(\"Invalid arguments\");throw X.code=\"ERR_INVALID_ARG_TYPE\",X}case 1:return this.#K(O);case 2:if(typeof Q===\"function\")return this.#N(O,\"\",Q);else if(typeof Q===\"string\")return this.#L(O,Q);default:{if(typeof Q!==\"undefined\"&&typeof Q!==\"string\"||typeof U!==\"undefined\"&&typeof U!==\"function\"){var X=new Error(\"Invalid arguments\");throw X.code=\"ERR_INVALID_ARG_TYPE\",X}if(typeof U===\"undefined\")return this.#L(O,Q);return this.#N(O,Q,U)}}}destroy(){return this}end(){return this}};return new B(j)})\n"; // getStdinStream const JSC::ConstructAbility s_processObjectInternalsGetStdinStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -656,7 +656,7 @@ const JSC::ConstructorKind s_processObjectInternalsGetStdinStreamCodeConstructor const JSC::ImplementationVisibility s_processObjectInternalsGetStdinStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_processObjectInternalsGetStdinStreamCodeLength = 1799; static const JSC::Intrinsic s_processObjectInternalsGetStdinStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_processObjectInternalsGetStdinStreamCode = "(function (Y,j,z){\"use strict\";var G={path:\"node:process\",require:j},H=(M)=>G.require(M),{Duplex:I,eos:J,destroy:K}=H(\"node:stream\"),L=class M extends I{#Y;#$;#j;#z=!0;#G=!1;#H=!0;#I;#J;#K;get isTTY(){return H(\"tty\").isatty(Y)}get fd(){return Y}constructor(){super({readable:!0,writable:!0})}#L(N){const P=this.#J;if(this.#J=null,P)P(N);else if(N)this.destroy(N);else if(!this.#z&&!this.#H)this.destroy()}_destroy(N,P){if(!N&&this.#J!==null){var Q=class T extends Error{constructor(U=\"The operation was aborted\",V=void 0){if(V!==void 0&&typeof V!==\"object\")throw new Error(`Invalid AbortError options:\\n\\n${JSON.stringify(V,null,2)}`);super(U,V);this.code=\"ABORT_ERR\",this.name=\"AbortError\"}};N=new Q}if(this.#J===null)P(N);else if(this.#J=P,this.#j)K(this.#j,N)}setRawMode(N){}on(N,P){if(N===\"readable\")this.ref(),this.#G=!0;return super.on(N,P)}pause(){return this.unref(),super.pause()}resume(){return this.ref(),super.resume()}ref(){this.#Y\?\?=z.stdin.stream().getReader(),this.#$\?\?=setInterval(()=>{},1<<30)}unref(){if(this.#$)clearInterval(this.#$),this.#$=null}async#M(){try{var N,P;const Q=this.#Y.readMany();if(!Q\?.then)({done:N,value:P}=Q);else({done:N,value:P}=await Q);if(!N){this.push(P[0]);const T=P.length;for(let U=1;U{if(this.#I){const Q=this.#I;this.#I=null,Q()}}),P.on(\"drain\",()=>{if(this.#K){const Q=this.#K;this.#K=null,Q()}}),J(P,(Q)=>{if(this.#H=!1,Q)K(P,Q);this.#L(Q)}),P}_write(N,P,Q){var T=this.#j;if(!T)T=this.#N();if(T.write(N,P))Q();else this.#K=Q}_final(N){this.#j.end(),this.#I=(...P)=>N(...P)}};return new L})\n"; +const char* const s_processObjectInternalsGetStdinStreamCode = "(function (Y,G,K){\"use strict\";var L={path:\"node:process\",require:G},M=(H)=>L.require(H),{Duplex:N,eos:P,destroy:Q}=M(\"node:stream\"),j=class H extends N{#Y;#$;#j;#z=!0;#G=!1;#H=!0;#I;#J;#K;get isTTY(){return M(\"tty\").isatty(Y)}get fd(){return Y}constructor(){super({readable:!0,writable:!0})}#L(T){const U=this.#J;if(this.#J=null,U)U(T);else if(T)this.destroy(T);else if(!this.#z&&!this.#H)this.destroy()}_destroy(T,U){if(!T&&this.#J!==null){var I=class z extends Error{constructor(J=\"The operation was aborted\",V=void 0){if(V!==void 0&&typeof V!==\"object\")throw new Error(`Invalid AbortError options:\\n\\n${JSON.stringify(V,null,2)}`);super(J,V);this.code=\"ABORT_ERR\",this.name=\"AbortError\"}};T=new I}if(this.#J===null)U(T);else if(this.#J=U,this.#j)Q(this.#j,T)}setRawMode(T){}on(T,U){if(T===\"readable\")this.ref(),this.#G=!0;return super.on(T,U)}pause(){return this.unref(),super.pause()}resume(){return this.ref(),super.resume()}ref(){this.#Y\?\?=K.stdin.stream().getReader(),this.#$\?\?=setInterval(()=>{},1<<30)}unref(){if(this.#$)clearInterval(this.#$),this.#$=null}async#M(){try{var T,U;const I=this.#Y.readMany();if(!I\?.then)({done:T,value:U}=I);else({done:T,value:U}=await I);if(!T){this.push(U[0]);const z=U.length;for(let J=1;J{if(this.#I){const I=this.#I;this.#I=null,I()}}),U.on(\"drain\",()=>{if(this.#K){const I=this.#K;this.#K=null,I()}}),P(U,(I)=>{if(this.#H=!1,I)Q(U,I);this.#L(I)}),U}_write(T,U,I){var z=this.#j;if(!z)z=this.#N();if(z.write(T,U))I();else this.#K=I}_final(T){this.#j.end(),this.#I=(...U)=>T(...U)}};return new j})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ @@ -674,7 +674,7 @@ const JSC::ConstructorKind s_transformStreamInitializeTransformStreamCodeConstru const JSC::ImplementationVisibility s_transformStreamInitializeTransformStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInitializeTransformStreamCodeLength = 1334; static const JSC::Intrinsic s_transformStreamInitializeTransformStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInitializeTransformStreamCode = "(function (){\"use strict\";let _=arguments[0];if(@isObject(_)&&@getByIdDirectPrivate(_,\"TransformStream\"))return this;let u=arguments[1],j=arguments[2];if(_===@undefined)_=null;if(j===@undefined)j={};if(u===@undefined)u={};let q={};if(_!==null){if(\"start\"in _){if(q[\"start\"]=_[\"start\"],typeof q[\"start\"]!==\"function\")@throwTypeError(\"transformer.start should be a function\")}if(\"transform\"in _){if(q[\"transform\"]=_[\"transform\"],typeof q[\"transform\"]!==\"function\")@throwTypeError(\"transformer.transform should be a function\")}if(\"flush\"in _){if(q[\"flush\"]=_[\"flush\"],typeof q[\"flush\"]!==\"function\")@throwTypeError(\"transformer.flush should be a function\")}if(\"readableType\"in _)@throwRangeError(\"TransformStream transformer has a readableType\");if(\"writableType\"in _)@throwRangeError(\"TransformStream transformer has a writableType\")}const v=@extractHighWaterMark(j,0),x=@extractSizeAlgorithm(j),B=@extractHighWaterMark(u,1),E=@extractSizeAlgorithm(u),F=@newPromiseCapability(@Promise);if(@initializeTransformStream(this,F.@promise,B,E,v,x),@setUpTransformStreamDefaultControllerFromTransformer(this,_,q),(\"start\"in q)){const G=@getByIdDirectPrivate(this,\"controller\");(()=>@promiseInvokeOrNoopMethodNoCatch(_,q[\"start\"],[G]))().@then(()=>{F.@resolve.@call()},(J)=>{F.@reject.@call(@undefined,J)})}else F.@resolve.@call();return this})\n"; +const char* const s_transformStreamInitializeTransformStreamCode = "(function (){\"use strict\";let u=arguments[0];if(@isObject(u)&&@getByIdDirectPrivate(u,\"TransformStream\"))return this;let G=arguments[1],E=arguments[2];if(u===@undefined)u=null;if(E===@undefined)E={};if(G===@undefined)G={};let j={};if(u!==null){if(\"start\"in u){if(j[\"start\"]=u[\"start\"],typeof j[\"start\"]!==\"function\")@throwTypeError(\"transformer.start should be a function\")}if(\"transform\"in u){if(j[\"transform\"]=u[\"transform\"],typeof j[\"transform\"]!==\"function\")@throwTypeError(\"transformer.transform should be a function\")}if(\"flush\"in u){if(j[\"flush\"]=u[\"flush\"],typeof j[\"flush\"]!==\"function\")@throwTypeError(\"transformer.flush should be a function\")}if(\"readableType\"in u)@throwRangeError(\"TransformStream transformer has a readableType\");if(\"writableType\"in u)@throwRangeError(\"TransformStream transformer has a writableType\")}const q=@extractHighWaterMark(E,0),J=@extractSizeAlgorithm(E),_=@extractHighWaterMark(G,1),v=@extractSizeAlgorithm(G),x=@newPromiseCapability(@Promise);if(@initializeTransformStream(this,x.@promise,_,v,q,J),@setUpTransformStreamDefaultControllerFromTransformer(this,u,j),(\"start\"in j)){const I=@getByIdDirectPrivate(this,\"controller\");(()=>@promiseInvokeOrNoopMethodNoCatch(u,j[\"start\"],[I]))().@then(()=>{x.@resolve.@call()},(B)=>{x.@reject.@call(@undefined,B)})}else x.@resolve.@call();return this})\n"; // readable const JSC::ConstructAbility s_transformStreamReadableCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -900,7 +900,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteUInt8CodeConstructorKind = JS const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUInt8CodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteUInt8CodeLength = 132; static const JSC::Intrinsic s_jsBufferPrototypeWriteUInt8CodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteUInt8Code = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint8(d,c),d+1})\n"; +const char* const s_jsBufferPrototypeWriteUInt8Code = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint8(c,d),c+1})\n"; // writeInt16LE const JSC::ConstructAbility s_jsBufferPrototypeWriteInt16LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -956,7 +956,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteUInt32LECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUInt32LECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteUInt32LECodeLength = 136; static const JSC::Intrinsic s_jsBufferPrototypeWriteUInt32LECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteUInt32LECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint32(d,c,!0),d+4})\n"; +const char* const s_jsBufferPrototypeWriteUInt32LECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint32(c,d,!0),c+4})\n"; // writeUInt32BE const JSC::ConstructAbility s_jsBufferPrototypeWriteUInt32BECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -972,7 +972,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteIntLECodeConstructorKind = JS const JSC::ImplementationVisibility s_jsBufferPrototypeWriteIntLECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteIntLECodeLength = 573; static const JSC::Intrinsic s_jsBufferPrototypeWriteIntLECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteIntLECode = "(function (d,r,c){\"use strict\";const j=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(c){case 1:{j.setInt8(r,d);break}case 2:{j.setInt16(r,d,!0);break}case 3:{j.setUint16(r,d&65535,!0),j.setInt8(r+2,Math.floor(d*0.0000152587890625));break}case 4:{j.setInt32(r,d,!0);break}case 5:{j.setUint32(r,d|0,!0),j.setInt8(r+4,Math.floor(d*0.00000000023283064365386964));break}case 6:{j.setUint32(r,d|0,!0),j.setInt16(r+4,Math.floor(d*0.00000000023283064365386964),!0);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return r+c})\n"; +const char* const s_jsBufferPrototypeWriteIntLECode = "(function (c,j,r){\"use strict\";const d=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(r){case 1:{d.setInt8(j,c);break}case 2:{d.setInt16(j,c,!0);break}case 3:{d.setUint16(j,c&65535,!0),d.setInt8(j+2,Math.floor(c*0.0000152587890625));break}case 4:{d.setInt32(j,c,!0);break}case 5:{d.setUint32(j,c|0,!0),d.setInt8(j+4,Math.floor(c*0.00000000023283064365386964));break}case 6:{d.setUint32(j,c|0,!0),d.setInt16(j+4,Math.floor(c*0.00000000023283064365386964),!0);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return j+r})\n"; // writeIntBE const JSC::ConstructAbility s_jsBufferPrototypeWriteIntBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -980,7 +980,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteIntBECodeConstructorKind = JS const JSC::ImplementationVisibility s_jsBufferPrototypeWriteIntBECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteIntBECodeLength = 573; static const JSC::Intrinsic s_jsBufferPrototypeWriteIntBECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteIntBECode = "(function (d,r,E){\"use strict\";const c=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(E){case 1:{c.setInt8(r,d);break}case 2:{c.setInt16(r,d,!1);break}case 3:{c.setUint16(r+1,d&65535,!1),c.setInt8(r,Math.floor(d*0.0000152587890625));break}case 4:{c.setInt32(r,d,!1);break}case 5:{c.setUint32(r+1,d|0,!1),c.setInt8(r,Math.floor(d*0.00000000023283064365386964));break}case 6:{c.setUint32(r+2,d|0,!1),c.setInt16(r,Math.floor(d*0.00000000023283064365386964),!1);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return r+E})\n"; +const char* const s_jsBufferPrototypeWriteIntBECode = "(function (r,E,c){\"use strict\";const d=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(c){case 1:{d.setInt8(E,r);break}case 2:{d.setInt16(E,r,!1);break}case 3:{d.setUint16(E+1,r&65535,!1),d.setInt8(E,Math.floor(r*0.0000152587890625));break}case 4:{d.setInt32(E,r,!1);break}case 5:{d.setUint32(E+1,r|0,!1),d.setInt8(E,Math.floor(r*0.00000000023283064365386964));break}case 6:{d.setUint32(E+2,r|0,!1),d.setInt16(E,Math.floor(r*0.00000000023283064365386964),!1);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return E+c})\n"; // writeUIntLE const JSC::ConstructAbility s_jsBufferPrototypeWriteUIntLECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -988,7 +988,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteUIntLECodeConstructorKind = J const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUIntLECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteUIntLECodeLength = 579; static const JSC::Intrinsic s_jsBufferPrototypeWriteUIntLECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteUIntLECode = "(function (d,r,E){\"use strict\";const c=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(E){case 1:{c.setUint8(r,d);break}case 2:{c.setUint16(r,d,!0);break}case 3:{c.setUint16(r,d&65535,!0),c.setUint8(r+2,Math.floor(d*0.0000152587890625));break}case 4:{c.setUint32(r,d,!0);break}case 5:{c.setUint32(r,d|0,!0),c.setUint8(r+4,Math.floor(d*0.00000000023283064365386964));break}case 6:{c.setUint32(r,d|0,!0),c.setUint16(r+4,Math.floor(d*0.00000000023283064365386964),!0);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return r+E})\n"; +const char* const s_jsBufferPrototypeWriteUIntLECode = "(function (d,c,r){\"use strict\";const E=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(r){case 1:{E.setUint8(c,d);break}case 2:{E.setUint16(c,d,!0);break}case 3:{E.setUint16(c,d&65535,!0),E.setUint8(c+2,Math.floor(d*0.0000152587890625));break}case 4:{E.setUint32(c,d,!0);break}case 5:{E.setUint32(c,d|0,!0),E.setUint8(c+4,Math.floor(d*0.00000000023283064365386964));break}case 6:{E.setUint32(c,d|0,!0),E.setUint16(c+4,Math.floor(d*0.00000000023283064365386964),!0);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return c+r})\n"; // writeUIntBE const JSC::ConstructAbility s_jsBufferPrototypeWriteUIntBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1044,7 +1044,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteBigInt64BECodeConstructorKind const JSC::ImplementationVisibility s_jsBufferPrototypeWriteBigInt64BECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteBigInt64BECodeLength = 138; static const JSC::Intrinsic s_jsBufferPrototypeWriteBigInt64BECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteBigInt64BECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setBigInt64(d,c,!1),d+8})\n"; +const char* const s_jsBufferPrototypeWriteBigInt64BECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setBigInt64(c,d,!1),c+8})\n"; // writeBigUInt64LE const JSC::ConstructAbility s_jsBufferPrototypeWriteBigUInt64LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1204,7 +1204,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeSliceCodeConstructorKind = JSC::Co const JSC::ImplementationVisibility s_jsBufferPrototypeSliceCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeSliceCodeLength = 260; static const JSC::Intrinsic s_jsBufferPrototypeSliceCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeSliceCode = "(function (c,p){\"use strict\";var{buffer:i,byteOffset:k,byteLength:m}=this;function q(x,z){if(x=@trunc(x),x===0||@isNaN(x))return 0;else if(x<0)return x+=z,x>0\?x:0;else return xv\?w-v:0)})\n"; +const char* const s_jsBufferPrototypeSliceCode = "(function (i,m){\"use strict\";var{buffer:q,byteOffset:v,byteLength:c}=this;function w(z,k){if(z=@trunc(z),z===0||@isNaN(z))return 0;else if(z<0)return z+=k,z>0\?z:0;else return zp\?x-p:0)})\n"; // parent const JSC::ConstructAbility s_jsBufferPrototypeParentCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1304,7 +1304,7 @@ const JSC::ConstructorKind s_consoleObjectAsyncIteratorCodeConstructorKind = JSC const JSC::ImplementationVisibility s_consoleObjectAsyncIteratorCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_consoleObjectAsyncIteratorCodeLength = 577; static const JSC::Intrinsic s_consoleObjectAsyncIteratorCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_consoleObjectAsyncIteratorCode = "(function (){\"use strict\";const w=async function*j(){var q=@Bun.stdin.stream().getReader(),z=new globalThis.TextDecoder(\"utf-8\",{fatal:!1}),A,B=@Bun.indexOfLine;try{while(!0){var D,F,G;const L=q.readMany();if(@isPromise(L))({done:D,value:F}=await L);else({done:D,value:F}=L);if(D){if(G)yield z.decode(G);return}var H;for(let M of F){if(H=M,G)H=@Buffer.concat([G,M]),G=null;var J=0,K=B(H,J);while(K!==-1)yield z.decode(H.subarray(J,K)),J=K+1,K=B(H,J);G=H.subarray(J)}}}catch(L){A=L}finally{if(q.releaseLock(),A)throw A}},_=globalThis.Symbol.asyncIterator;return this[_]=w,w()})\n"; +const char* const s_consoleObjectAsyncIteratorCode = "(function (){\"use strict\";const j=async function*q(){var D=@Bun.stdin.stream().getReader(),F=new globalThis.TextDecoder(\"utf-8\",{fatal:!1}),G,H=@Bun.indexOfLine;try{while(!0){var J,K,w;const L=D.readMany();if(@isPromise(L))({done:J,value:K}=await L);else({done:J,value:K}=L);if(J){if(w)yield F.decode(w);return}var _;for(let M of K){if(_=M,w)_=@Buffer.concat([w,M]),w=null;var z=0,A=H(_,z);while(A!==-1)yield F.decode(_.subarray(z,A)),z=A+1,A=H(_,z);w=_.subarray(z)}}}catch(L){G=L}finally{if(D.releaseLock(),G)throw G}},m=globalThis.Symbol.asyncIterator;return this[m]=j,j()})\n"; // write const JSC::ConstructAbility s_consoleObjectWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1312,7 +1312,7 @@ const JSC::ConstructorKind s_consoleObjectWriteCodeConstructorKind = JSC::Constr const JSC::ImplementationVisibility s_consoleObjectWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_consoleObjectWriteCodeLength = 310; static const JSC::Intrinsic s_consoleObjectWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_consoleObjectWriteCode = "(function (a){\"use strict\";var d=@getByIdDirectPrivate(this,\"writer\");if(!d){var _=@toLength(a\?.length\?\?0);d=@Bun.stdout.writer({highWaterMark:_>65536\?_:65536}),@putByIdDirectPrivate(this,\"writer\",d)}var b=d.write(a);const c=@argumentCount();for(var f=1;f65536\?b:65536}),@putByIdDirectPrivate(this,\"writer\",_)}var c=_.write(d);const f=@argumentCount();for(var a=1;a{},(y)=>{c.error(y)});function h(){@readableStreamDefaultReaderRead(g).@then(function(y){if(y.done){c.close();return}try{c.enqueue(y.value)}catch(S){c.error(\"ReadableStream chunk enqueueing in the sink failed\");return}h()},function(y){c.error(y)})}h()})\n"; +const char* const s_readableStreamInternalsReadableStreamPipeToCode = "(function (c,g){\"use strict\";@assert(@isReadableStream(c));const h=new @ReadableStreamDefaultReader(c);@getByIdDirectPrivate(h,\"closedPromiseCapability\").@promise.@then(()=>{},(S)=>{g.error(S)});function y(){@readableStreamDefaultReaderRead(h).@then(function(S){if(S.done){g.close();return}try{g.enqueue(S.value)}catch(_){g.error(\"ReadableStream chunk enqueueing in the sink failed\");return}y()},function(S){g.error(S)})}y()})\n"; // acquireReadableStreamDefaultReader const JSC::ConstructAbility s_readableStreamInternalsAcquireReadableStreamDefaultReaderCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1370,7 +1370,7 @@ const JSC::ConstructorKind s_readableStreamInternalsSetupReadableStreamDefaultCo const JSC::ImplementationVisibility s_readableStreamInternalsSetupReadableStreamDefaultControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsSetupReadableStreamDefaultControllerCodeLength = 523; static const JSC::Intrinsic s_readableStreamInternalsSetupReadableStreamDefaultControllerCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsSetupReadableStreamDefaultControllerCode = "(function (_,f,b,j,q,v,w){\"use strict\";const x=new @ReadableStreamDefaultController(_,f,b,j,@isReadableStream),B=()=>@promiseInvokeOrNoopMethod(f,v,[x]),C=(D)=>@promiseInvokeOrNoopMethod(f,w,[D]);@putByIdDirectPrivate(x,\"pullAlgorithm\",B),@putByIdDirectPrivate(x,\"cancelAlgorithm\",C),@putByIdDirectPrivate(x,\"pull\",@readableStreamDefaultControllerPull),@putByIdDirectPrivate(x,\"cancel\",@readableStreamDefaultControllerCancel),@putByIdDirectPrivate(_,\"readableStreamController\",x),@readableStreamDefaultControllerStart(x)})\n"; +const char* const s_readableStreamInternalsSetupReadableStreamDefaultControllerCode = "(function (_,w,f,b,q,v,x){\"use strict\";const B=new @ReadableStreamDefaultController(_,w,f,b,@isReadableStream),C=()=>@promiseInvokeOrNoopMethod(w,v,[B]),j=(D)=>@promiseInvokeOrNoopMethod(w,x,[D]);@putByIdDirectPrivate(B,\"pullAlgorithm\",C),@putByIdDirectPrivate(B,\"cancelAlgorithm\",j),@putByIdDirectPrivate(B,\"pull\",@readableStreamDefaultControllerPull),@putByIdDirectPrivate(B,\"cancel\",@readableStreamDefaultControllerCancel),@putByIdDirectPrivate(_,\"readableStreamController\",B),@readableStreamDefaultControllerStart(B)})\n"; // createReadableStreamController const JSC::ConstructAbility s_readableStreamInternalsCreateReadableStreamControllerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1378,7 +1378,7 @@ const JSC::ConstructorKind s_readableStreamInternalsCreateReadableStreamControll const JSC::ImplementationVisibility s_readableStreamInternalsCreateReadableStreamControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsCreateReadableStreamControllerCodeLength = 671; static const JSC::Intrinsic s_readableStreamInternalsCreateReadableStreamControllerCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsCreateReadableStreamControllerCode = "(function (f,v,w){\"use strict\";const A=v.type,C=@toString(A);if(C===\"bytes\"){if(w.highWaterMark===@undefined)w.highWaterMark=0;if(w.size!==@undefined)@throwRangeError(\"Strategy for a ReadableByteStreamController cannot have a size\");@putByIdDirectPrivate(f,\"readableStreamController\",new @ReadableByteStreamController(f,v,w.highWaterMark,@isReadableStream))}else if(C===\"direct\"){var b=w\?.highWaterMark;@initializeArrayBufferStream.@call(f,v,b)}else if(A===@undefined){if(w.highWaterMark===@undefined)w.highWaterMark=1;@setupReadableStreamDefaultController(f,v,w.size,w.highWaterMark,v.start,v.pull,v.cancel)}else @throwRangeError(\"Invalid type for underlying source\")})\n"; +const char* const s_readableStreamInternalsCreateReadableStreamControllerCode = "(function (v,w,A){\"use strict\";const C=w.type,b=@toString(C);if(b===\"bytes\"){if(A.highWaterMark===@undefined)A.highWaterMark=0;if(A.size!==@undefined)@throwRangeError(\"Strategy for a ReadableByteStreamController cannot have a size\");@putByIdDirectPrivate(v,\"readableStreamController\",new @ReadableByteStreamController(v,w,A.highWaterMark,@isReadableStream))}else if(b===\"direct\"){var f=A\?.highWaterMark;@initializeArrayBufferStream.@call(v,w,f)}else if(C===@undefined){if(A.highWaterMark===@undefined)A.highWaterMark=1;@setupReadableStreamDefaultController(v,w,A.size,A.highWaterMark,w.start,w.pull,w.cancel)}else @throwRangeError(\"Invalid type for underlying source\")})\n"; // readableStreamDefaultControllerStart const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerStartCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1394,7 +1394,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamPipeToWritable const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeLength = 1631; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamPipeToWritableStreamCode = "(function (_,f,D,E,T,k){\"use strict\";if(@assert(@isReadableStream(_)),@assert(@isWritableStream(f)),@assert(!@isReadableStreamLocked(_)),@assert(!@isWritableStreamLocked(f)),@assert(k===@undefined||@isAbortSignal(k)),@getByIdDirectPrivate(_,\"underlyingByteSource\")!==@undefined)return @Promise.@reject(\"Piping to a readable bytestream is not supported\");let q={source:_,destination:f,preventAbort:E,preventCancel:T,preventClose:D,signal:k};if(q.reader=@acquireReadableStreamDefaultReader(_),q.writer=@acquireWritableStreamDefaultWriter(f),@putByIdDirectPrivate(_,\"disturbed\",!0),q.finalized=!1,q.shuttingDown=!1,q.promiseCapability=@newPromiseCapability(@Promise),q.pendingReadPromiseCapability=@newPromiseCapability(@Promise),q.pendingReadPromiseCapability.@resolve.@call(),q.pendingWritePromise=@Promise.@resolve(),k!==@undefined){const w=(x)=>{if(q.finalized)return;@pipeToShutdownWithAction(q,()=>{const B=!q.preventAbort&&@getByIdDirectPrivate(q.destination,\"state\")===\"writable\"\?@writableStreamAbort(q.destination,x):@Promise.@resolve(),G=!q.preventCancel&&@getByIdDirectPrivate(q.source,\"state\")===@streamReadable\?@readableStreamCancel(q.source,x):@Promise.@resolve();let H=@newPromiseCapability(@Promise),I=!0,J=()=>{if(I){I=!1;return}H.@resolve.@call()},K=(L)=>{H.@reject.@call(@undefined,L)};return B.@then(J,K),G.@then(J,K),H.@promise},x)};if(@whenSignalAborted(k,w))return q.promiseCapability.@promise}return @pipeToErrorsMustBePropagatedForward(q),@pipeToErrorsMustBePropagatedBackward(q),@pipeToClosingMustBePropagatedForward(q),@pipeToClosingMustBePropagatedBackward(q),@pipeToLoop(q),q.promiseCapability.@promise})\n"; +const char* const s_readableStreamInternalsReadableStreamPipeToWritableStreamCode = "(function (f,k,D,q,w,x){\"use strict\";if(@assert(@isReadableStream(f)),@assert(@isWritableStream(k)),@assert(!@isReadableStreamLocked(f)),@assert(!@isWritableStreamLocked(k)),@assert(x===@undefined||@isAbortSignal(x)),@getByIdDirectPrivate(f,\"underlyingByteSource\")!==@undefined)return @Promise.@reject(\"Piping to a readable bytestream is not supported\");let z={source:f,destination:k,preventAbort:q,preventCancel:w,preventClose:D,signal:x};if(z.reader=@acquireReadableStreamDefaultReader(f),z.writer=@acquireWritableStreamDefaultWriter(k),@putByIdDirectPrivate(f,\"disturbed\",!0),z.finalized=!1,z.shuttingDown=!1,z.promiseCapability=@newPromiseCapability(@Promise),z.pendingReadPromiseCapability=@newPromiseCapability(@Promise),z.pendingReadPromiseCapability.@resolve.@call(),z.pendingWritePromise=@Promise.@resolve(),x!==@undefined){const B=(F)=>{if(z.finalized)return;@pipeToShutdownWithAction(z,()=>{const _=!z.preventAbort&&@getByIdDirectPrivate(z.destination,\"state\")===\"writable\"\?@writableStreamAbort(z.destination,F):@Promise.@resolve(),H=!z.preventCancel&&@getByIdDirectPrivate(z.source,\"state\")===@streamReadable\?@readableStreamCancel(z.source,F):@Promise.@resolve();let E=@newPromiseCapability(@Promise),I=!0,J=()=>{if(I){I=!1;return}E.@resolve.@call()},K=(L)=>{E.@reject.@call(@undefined,L)};return _.@then(J,K),H.@then(J,K),E.@promise},F)};if(@whenSignalAborted(x,B))return z.promiseCapability.@promise}return @pipeToErrorsMustBePropagatedForward(z),@pipeToErrorsMustBePropagatedBackward(z),@pipeToClosingMustBePropagatedForward(z),@pipeToClosingMustBePropagatedBackward(z),@pipeToLoop(z),z.promiseCapability.@promise})\n"; // pipeToLoop const JSC::ConstructAbility s_readableStreamInternalsPipeToLoopCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1450,7 +1450,7 @@ const JSC::ConstructorKind s_readableStreamInternalsPipeToShutdownWithActionCode const JSC::ImplementationVisibility s_readableStreamInternalsPipeToShutdownWithActionCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsPipeToShutdownWithActionCodeLength = 458; static const JSC::Intrinsic s_readableStreamInternalsPipeToShutdownWithActionCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsPipeToShutdownWithActionCode = "(function (_,m){\"use strict\";if(_.shuttingDown)return;_.shuttingDown=!0;const b=arguments.length>2,d=arguments[2],g=()=>{m().@then(()=>{if(b)@pipeToFinalize(_,d);else @pipeToFinalize(_)},(j)=>{@pipeToFinalize(_,j)})};if(@getByIdDirectPrivate(_.destination,\"state\")===\"writable\"&&!@writableStreamCloseQueuedOrInFlight(_.destination)){_.pendingReadPromiseCapability.@promise.@then(()=>{_.pendingWritePromise.@then(g,g)},(h)=>@pipeToFinalize(_,h));return}g()})\n"; +const char* const s_readableStreamInternalsPipeToShutdownWithActionCode = "(function (m,b){\"use strict\";if(m.shuttingDown)return;m.shuttingDown=!0;const d=arguments.length>2,g=arguments[2],h=()=>{b().@then(()=>{if(d)@pipeToFinalize(m,g);else @pipeToFinalize(m)},(j)=>{@pipeToFinalize(m,j)})};if(@getByIdDirectPrivate(m.destination,\"state\")===\"writable\"&&!@writableStreamCloseQueuedOrInFlight(m.destination)){m.pendingReadPromiseCapability.@promise.@then(()=>{m.pendingWritePromise.@then(h,h)},(_)=>@pipeToFinalize(m,_));return}h()})\n"; // pipeToShutdown const JSC::ConstructAbility s_readableStreamInternalsPipeToShutdownCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1474,7 +1474,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamTeeCodeConstru const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamTeeCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamTeeCodeLength = 1104; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamTeeCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamTeeCode = "(function (i,_){\"use strict\";@assert(@isReadableStream(i)),@assert(typeof _===\"boolean\");var f=@getByIdDirectPrivate(i,\"start\");if(f)@putByIdDirectPrivate(i,\"start\",@undefined),f();const g=new @ReadableStreamDefaultReader(i),j={closedOrErrored:!1,canceled1:!1,canceled2:!1,reason1:@undefined,reason2:@undefined};j.cancelPromiseCapability=@newPromiseCapability(@Promise);const k=@readableStreamTeePullFunction(j,g,_),q={};@putByIdDirectPrivate(q,\"pull\",k),@putByIdDirectPrivate(q,\"cancel\",@readableStreamTeeBranch1CancelFunction(j,i));const v={};@putByIdDirectPrivate(v,\"pull\",k),@putByIdDirectPrivate(v,\"cancel\",@readableStreamTeeBranch2CancelFunction(j,i));const w=new @ReadableStream(q),x=new @ReadableStream(v);return @getByIdDirectPrivate(g,\"closedPromiseCapability\").@promise.@then(@undefined,function(y){if(j.closedOrErrored)return;if(@readableStreamDefaultControllerError(w.@readableStreamController,y),@readableStreamDefaultControllerError(x.@readableStreamController,y),j.closedOrErrored=!0,!j.canceled1||!j.canceled2)j.cancelPromiseCapability.@resolve.@call()}),j.branch1=w,j.branch2=x,[w,x]})\n"; +const char* const s_readableStreamInternalsReadableStreamTeeCode = "(function (f,k){\"use strict\";@assert(@isReadableStream(f)),@assert(typeof k===\"boolean\");var i=@getByIdDirectPrivate(f,\"start\");if(i)@putByIdDirectPrivate(f,\"start\",@undefined),i();const q=new @ReadableStreamDefaultReader(f),_={closedOrErrored:!1,canceled1:!1,canceled2:!1,reason1:@undefined,reason2:@undefined};_.cancelPromiseCapability=@newPromiseCapability(@Promise);const v=@readableStreamTeePullFunction(_,q,k),g={};@putByIdDirectPrivate(g,\"pull\",v),@putByIdDirectPrivate(g,\"cancel\",@readableStreamTeeBranch1CancelFunction(_,f));const w={};@putByIdDirectPrivate(w,\"pull\",v),@putByIdDirectPrivate(w,\"cancel\",@readableStreamTeeBranch2CancelFunction(_,f));const x=new @ReadableStream(g),j=new @ReadableStream(w);return @getByIdDirectPrivate(q,\"closedPromiseCapability\").@promise.@then(@undefined,function(y){if(_.closedOrErrored)return;if(@readableStreamDefaultControllerError(x.@readableStreamController,y),@readableStreamDefaultControllerError(j.@readableStreamController,y),_.closedOrErrored=!0,!_.canceled1||!_.canceled2)_.cancelPromiseCapability.@resolve.@call()}),_.branch1=x,_.branch2=j,[x,j]})\n"; // readableStreamTeePullFunction const JSC::ConstructAbility s_readableStreamInternalsReadableStreamTeePullFunctionCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1530,7 +1530,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadDirectStreamCodeConstruc const JSC::ImplementationVisibility s_readableStreamInternalsReadDirectStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadDirectStreamCodeLength = 900; static const JSC::Intrinsic s_readableStreamInternalsReadDirectStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadDirectStreamCode = "(function (_,f,j){\"use strict\";@putByIdDirectPrivate(_,\"underlyingSource\",@undefined),@putByIdDirectPrivate(_,\"start\",@undefined);function q(x,z){if(z&&j\?.cancel){try{var A=j.cancel(z);@markPromiseAsHandled(A)}catch(B){}j=@undefined}if(x){if(@putByIdDirectPrivate(x,\"readableStreamController\",@undefined),@putByIdDirectPrivate(x,\"reader\",@undefined),z)@putByIdDirectPrivate(x,\"state\",@streamErrored),@putByIdDirectPrivate(x,\"storedError\",z);else @putByIdDirectPrivate(x,\"state\",@streamClosed);x=@undefined}}if(!j.pull){q();return}if(!@isCallable(j.pull)){q(),@throwTypeError(\"pull is not a function\");return}@putByIdDirectPrivate(_,\"readableStreamController\",f);const v=@getByIdDirectPrivate(_,\"highWaterMark\");f.start({highWaterMark:!v||v<64\?64:v}),@startDirectStream.@call(f,_,j.pull,q),@putByIdDirectPrivate(_,\"reader\",{});var w=j.pull(f);if(f=@undefined,w&&@isPromise(w))return w.@then(()=>{})})\n"; +const char* const s_readableStreamInternalsReadDirectStreamCode = "(function (j,w,_){\"use strict\";@putByIdDirectPrivate(j,\"underlyingSource\",@undefined),@putByIdDirectPrivate(j,\"start\",@undefined);function x(q,A){if(A&&_\?.cancel){try{var B=_.cancel(A);@markPromiseAsHandled(B)}catch(v){}_=@undefined}if(q){if(@putByIdDirectPrivate(q,\"readableStreamController\",@undefined),@putByIdDirectPrivate(q,\"reader\",@undefined),A)@putByIdDirectPrivate(q,\"state\",@streamErrored),@putByIdDirectPrivate(q,\"storedError\",A);else @putByIdDirectPrivate(q,\"state\",@streamClosed);q=@undefined}}if(!_.pull){x();return}if(!@isCallable(_.pull)){x(),@throwTypeError(\"pull is not a function\");return}@putByIdDirectPrivate(j,\"readableStreamController\",w);const f=@getByIdDirectPrivate(j,\"highWaterMark\");w.start({highWaterMark:!f||f<64\?64:f}),@startDirectStream.@call(w,j,_.pull,x),@putByIdDirectPrivate(j,\"reader\",{});var z=_.pull(w);if(w=@undefined,z&&@isPromise(z))return z.@then(()=>{})})\n"; // assignToStream const JSC::ConstructAbility s_readableStreamInternalsAssignToStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1546,7 +1546,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadStreamIntoSinkCodeConstr const JSC::ImplementationVisibility s_readableStreamInternalsReadStreamIntoSinkCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadStreamIntoSinkCodeLength = 1395; static const JSC::Intrinsic s_readableStreamInternalsReadStreamIntoSinkCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadStreamIntoSinkCode = "(async function (_,c,f){\"use strict\";var I=!1,P=!1;try{var q=_.getReader(),x=q.readMany();if(x&&@isPromise(x))x=await x;if(x.done)return I=!0,c.end();var z=x.value.length;const J=@getByIdDirectPrivate(_,\"highWaterMark\");if(f)@startDirectStream.@call(c,_,@undefined,()=>!P&&@markPromiseAsHandled(_.cancel()));c.start({highWaterMark:J||0});for(var A=0,B=x.value,D=x.value.length;A!z&&@markPromiseAsHandled(c.cancel()));G.start({highWaterMark:x||0});for(var K=0,P=H.value,A=H.value.length;K{var j=@createFulfilledPromise({value:b,done:!1});return b=@undefined,@readableStreamClose(v),v=@undefined,j}}else if(this._pendingRead){var y=this._pendingRead;this._pendingRead=@undefined,@putByIdDirectPrivate(this,\"pull\",@noopDoneFunction),@fulfillPromise(y,{value:@undefined,done:!0})}@readableStreamClose(v)})\n"; +const char* const s_readableStreamInternalsOnCloseDirectStreamCode = "(function (v){\"use strict\";var C=this.@controlledReadableStream;if(!C||@getByIdDirectPrivate(C,\"state\")!==@streamReadable)return;if(this._deferClose!==0){this._deferClose=1,this._deferCloseReason=v;return}if(@putByIdDirectPrivate(C,\"state\",@streamClosing),typeof this.@underlyingSource.close===\"function\")try{this.@underlyingSource.close.@call(this.@underlyingSource,v)}catch(B){}var S;try{S=this.@sink.end(),@putByIdDirectPrivate(this,\"sink\",@undefined)}catch(B){if(this._pendingRead){var y=this._pendingRead;this._pendingRead=@undefined,@rejectPromise(y,B)}@readableStreamError(C,B);return}this.error=this.flush=this.write=this.close=this.end=@onReadableStreamDirectControllerClosed;var j=@getByIdDirectPrivate(C,\"reader\");if(j&&@isReadableStreamDefaultReader(j)){var c=this._pendingRead;if(c&&@isPromise(c)&&S\?.byteLength){this._pendingRead=@undefined,@fulfillPromise(c,{value:S,done:!1}),@readableStreamClose(C);return}}if(S\?.byteLength){var b=@getByIdDirectPrivate(j,\"readRequests\");if(b\?.isNotEmpty()){@readableStreamFulfillReadRequest(C,S,!1),@readableStreamClose(C);return}@putByIdDirectPrivate(C,\"state\",@streamReadable),this.@pull=()=>{var B=@createFulfilledPromise({value:S,done:!1});return S=@undefined,@readableStreamClose(C),C=@undefined,B}}else if(this._pendingRead){var y=this._pendingRead;this._pendingRead=@undefined,@putByIdDirectPrivate(this,\"pull\",@noopDoneFunction),@fulfillPromise(y,{value:@undefined,done:!0})}@readableStreamClose(C)})\n"; // onFlushDirectStream const JSC::ConstructAbility s_readableStreamInternalsOnFlushDirectStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1610,7 +1610,7 @@ const JSC::ConstructorKind s_readableStreamInternalsCreateTextStreamCodeConstruc const JSC::ImplementationVisibility s_readableStreamInternalsCreateTextStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsCreateTextStreamCodeLength = 984; static const JSC::Intrinsic s_readableStreamInternalsCreateTextStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsCreateTextStreamCode = "(function (_){\"use strict\";var j,q=[],v=!1,w=!1,x=\"\",z=@toLength(0),A=@newPromiseCapability(@Promise),C=!1;return j={start(){},write(E){if(typeof E===\"string\"){var F=@toLength(E.length);if(F>0)x+=E,v=!0,z+=F;return F}if(!E||!(@ArrayBuffer.@isView(E)||E instanceof @ArrayBuffer))@throwTypeError(\"Expected text, ArrayBuffer or ArrayBufferView\");const G=@toLength(E.byteLength);if(G>0)if(w=!0,x.length>0)@arrayPush(q,x,E),x=\"\";else @arrayPush(q,E);return z+=G,G},flush(){return 0},end(){if(C)return\"\";return j.fulfill()},fulfill(){C=!0;const E=j.finishInternal();return @fulfillPromise(A.@promise,E),E},finishInternal(){if(!v&&!w)return\"\";if(v&&!w)return x;if(w&&!v)return new globalThis.TextDecoder().decode(@Bun.concatArrayBuffers(q));var E=new @Bun.ArrayBufferSink;E.start({highWaterMark:z,asUint8Array:!0});for(let F of q)E.write(F);if(q.length=0,x.length>0)E.write(x),x=\"\";return new globalThis.TextDecoder().decode(E.end())},close(){try{if(!C)C=!0,j.fulfill()}catch(E){}}},[j,A]})\n"; +const char* const s_readableStreamInternalsCreateTextStreamCode = "(function (v){\"use strict\";var x,A=[],C=!1,_=!1,E=\"\",q=@toLength(0),F=@newPromiseCapability(@Promise),G=!1;return x={start(){},write(w){if(typeof w===\"string\"){var z=@toLength(w.length);if(z>0)E+=w,C=!0,q+=z;return z}if(!w||!(@ArrayBuffer.@isView(w)||w instanceof @ArrayBuffer))@throwTypeError(\"Expected text, ArrayBuffer or ArrayBufferView\");const j=@toLength(w.byteLength);if(j>0)if(_=!0,E.length>0)@arrayPush(A,E,w),E=\"\";else @arrayPush(A,w);return q+=j,j},flush(){return 0},end(){if(G)return\"\";return x.fulfill()},fulfill(){G=!0;const w=x.finishInternal();return @fulfillPromise(F.@promise,w),w},finishInternal(){if(!C&&!_)return\"\";if(C&&!_)return E;if(_&&!C)return new globalThis.TextDecoder().decode(@Bun.concatArrayBuffers(A));var w=new @Bun.ArrayBufferSink;w.start({highWaterMark:q,asUint8Array:!0});for(let z of A)w.write(z);if(A.length=0,E.length>0)w.write(E),E=\"\";return new globalThis.TextDecoder().decode(w.end())},close(){try{if(!G)G=!0,x.fulfill()}catch(w){}}},[x,F]})\n"; // initializeTextStream const JSC::ConstructAbility s_readableStreamInternalsInitializeTextStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1626,7 +1626,7 @@ const JSC::ConstructorKind s_readableStreamInternalsInitializeArrayStreamCodeCon const JSC::ImplementationVisibility s_readableStreamInternalsInitializeArrayStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsInitializeArrayStreamCodeLength = 797; static const JSC::Intrinsic s_readableStreamInternalsInitializeArrayStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsInitializeArrayStreamCode = "(function (_,t){\"use strict\";var p=[],b=@newPromiseCapability(@Promise),d=!1;function j(){return d=!0,b.@resolve.@call(@undefined,p),p}var m={start(){},write(v){return @arrayPush(p,v),v.byteLength||v.length},flush(){return 0},end(){if(d)return[];return j()},close(){if(!d)j()}},q={@underlyingSource:_,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:m,close:@onCloseDirectStream,write:m.write,error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};return @putByIdDirectPrivate(this,\"readableStreamController\",q),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined),b})\n"; +const char* const s_readableStreamInternalsInitializeArrayStreamCode = "(function (t,p){\"use strict\";var _=[],b=@newPromiseCapability(@Promise),d=!1;function j(){return d=!0,b.@resolve.@call(@undefined,_),_}var m={start(){},write(v){return @arrayPush(_,v),v.byteLength||v.length},flush(){return 0},end(){if(d)return[];return j()},close(){if(!d)j()}},q={@underlyingSource:t,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:m,close:@onCloseDirectStream,write:m.write,error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};return @putByIdDirectPrivate(this,\"readableStreamController\",q),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined),b})\n"; // initializeArrayBufferStream const JSC::ConstructAbility s_readableStreamInternalsInitializeArrayBufferStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1634,7 +1634,7 @@ const JSC::ConstructorKind s_readableStreamInternalsInitializeArrayBufferStreamC const JSC::ImplementationVisibility s_readableStreamInternalsInitializeArrayBufferStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsInitializeArrayBufferStreamCodeLength = 690; static const JSC::Intrinsic s_readableStreamInternalsInitializeArrayBufferStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsInitializeArrayBufferStreamCode = "(function (_,m){\"use strict\";var w=m&&typeof m===\"number\"\?{highWaterMark:m,stream:!0,asUint8Array:!0}:{stream:!0,asUint8Array:!0},D=new @Bun.ArrayBufferSink;D.start(w);var b={@underlyingSource:_,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:D,close:@onCloseDirectStream,write:D.write.bind(D),error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};@putByIdDirectPrivate(this,\"readableStreamController\",b),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined)})\n"; +const char* const s_readableStreamInternalsInitializeArrayBufferStreamCode = "(function (_,m){\"use strict\";var D=m&&typeof m===\"number\"\?{highWaterMark:m,stream:!0,asUint8Array:!0}:{stream:!0,asUint8Array:!0},w=new @Bun.ArrayBufferSink;w.start(D);var b={@underlyingSource:_,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:w,close:@onCloseDirectStream,write:w.write.bind(w),error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};@putByIdDirectPrivate(this,\"readableStreamController\",b),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined)})\n"; // readableStreamError const JSC::ConstructAbility s_readableStreamInternalsReadableStreamErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1642,7 +1642,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamErrorCodeConst const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamErrorCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamErrorCodeLength = 840; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamErrorCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamErrorCode = "(function (_,i){\"use strict\";@assert(@isReadableStream(_)),@assert(@getByIdDirectPrivate(_,\"state\")===@streamReadable),@putByIdDirectPrivate(_,\"state\",@streamErrored),@putByIdDirectPrivate(_,\"storedError\",i);const c=@getByIdDirectPrivate(_,\"reader\");if(!c)return;if(@isReadableStreamDefaultReader(c)){const h=@getByIdDirectPrivate(c,\"readRequests\");@putByIdDirectPrivate(c,\"readRequests\",@createFIFO());for(var n=h.shift();n;n=h.shift())@rejectPromise(n,i)}else{@assert(@isReadableStreamBYOBReader(c));const h=@getByIdDirectPrivate(c,\"readIntoRequests\");@putByIdDirectPrivate(c,\"readIntoRequests\",@createFIFO());for(var n=h.shift();n;n=h.shift())@rejectPromise(n,i)}@getByIdDirectPrivate(c,\"closedPromiseCapability\").@reject.@call(@undefined,i);const f=@getByIdDirectPrivate(c,\"closedPromiseCapability\").@promise;@markPromiseAsHandled(f)})\n"; +const char* const s_readableStreamInternalsReadableStreamErrorCode = "(function (i,c){\"use strict\";@assert(@isReadableStream(i)),@assert(@getByIdDirectPrivate(i,\"state\")===@streamReadable),@putByIdDirectPrivate(i,\"state\",@streamErrored),@putByIdDirectPrivate(i,\"storedError\",c);const n=@getByIdDirectPrivate(i,\"reader\");if(!n)return;if(@isReadableStreamDefaultReader(n)){const _=@getByIdDirectPrivate(n,\"readRequests\");@putByIdDirectPrivate(n,\"readRequests\",@createFIFO());for(var f=_.shift();f;f=_.shift())@rejectPromise(f,c)}else{@assert(@isReadableStreamBYOBReader(n));const _=@getByIdDirectPrivate(n,\"readIntoRequests\");@putByIdDirectPrivate(n,\"readIntoRequests\",@createFIFO());for(var f=_.shift();f;f=_.shift())@rejectPromise(f,c)}@getByIdDirectPrivate(n,\"closedPromiseCapability\").@reject.@call(@undefined,c);const h=@getByIdDirectPrivate(n,\"closedPromiseCapability\").@promise;@markPromiseAsHandled(h)})\n"; // readableStreamDefaultControllerShouldCallPull const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerShouldCallPullCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1690,7 +1690,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamCancelCodeCons const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamCancelCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamCancelCodeLength = 509; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamCancelCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamCancelCode = "(function (i,_){\"use strict\";@putByIdDirectPrivate(i,\"disturbed\",!0);const d=@getByIdDirectPrivate(i,\"state\");if(d===@streamClosed)return @Promise.@resolve();if(d===@streamErrored)return @Promise.@reject(@getByIdDirectPrivate(i,\"storedError\"));@readableStreamClose(i);var h=@getByIdDirectPrivate(i,\"readableStreamController\"),p=h.@cancel;if(p)return p(h,_).@then(function(){});var u=h.close;if(u)return @Promise.@resolve(h.close(_));@throwTypeError(\"ReadableStreamController has no cancel or close method\")})\n"; +const char* const s_readableStreamInternalsReadableStreamCancelCode = "(function (_,d){\"use strict\";@putByIdDirectPrivate(_,\"disturbed\",!0);const h=@getByIdDirectPrivate(_,\"state\");if(h===@streamClosed)return @Promise.@resolve();if(h===@streamErrored)return @Promise.@reject(@getByIdDirectPrivate(_,\"storedError\"));@readableStreamClose(_);var p=@getByIdDirectPrivate(_,\"readableStreamController\"),u=p.@cancel;if(u)return u(p,d).@then(function(){});var i=p.close;if(i)return @Promise.@resolve(p.close(d));@throwTypeError(\"ReadableStreamController has no cancel or close method\")})\n"; // readableStreamDefaultControllerCancel const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerCancelCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1770,7 +1770,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamReaderGenericR const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamReaderGenericReleaseCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamReaderGenericReleaseCodeLength = 813; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamReaderGenericReleaseCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamReaderGenericReleaseCode = "(function (_){\"use strict\";if(@assert(!!@getByIdDirectPrivate(_,\"ownerReadableStream\")),@assert(@getByIdDirectPrivate(@getByIdDirectPrivate(_,\"ownerReadableStream\"),\"reader\")===_),@getByIdDirectPrivate(@getByIdDirectPrivate(_,\"ownerReadableStream\"),\"state\")===@streamReadable)@getByIdDirectPrivate(_,\"closedPromiseCapability\").@reject.@call(@undefined,@makeTypeError(\"releasing lock of reader whose stream is still in readable state\"));else @putByIdDirectPrivate(_,\"closedPromiseCapability\",{@promise:@newHandledRejectedPromise(@makeTypeError(\"reader released lock\"))});const c=@getByIdDirectPrivate(_,\"closedPromiseCapability\").@promise;@markPromiseAsHandled(c),@putByIdDirectPrivate(@getByIdDirectPrivate(_,\"ownerReadableStream\"),\"reader\",@undefined),@putByIdDirectPrivate(_,\"ownerReadableStream\",@undefined)})\n"; +const char* const s_readableStreamInternalsReadableStreamReaderGenericReleaseCode = "(function (c){\"use strict\";if(@assert(!!@getByIdDirectPrivate(c,\"ownerReadableStream\")),@assert(@getByIdDirectPrivate(@getByIdDirectPrivate(c,\"ownerReadableStream\"),\"reader\")===c),@getByIdDirectPrivate(@getByIdDirectPrivate(c,\"ownerReadableStream\"),\"state\")===@streamReadable)@getByIdDirectPrivate(c,\"closedPromiseCapability\").@reject.@call(@undefined,@makeTypeError(\"releasing lock of reader whose stream is still in readable state\"));else @putByIdDirectPrivate(c,\"closedPromiseCapability\",{@promise:@newHandledRejectedPromise(@makeTypeError(\"reader released lock\"))});const _=@getByIdDirectPrivate(c,\"closedPromiseCapability\").@promise;@markPromiseAsHandled(_),@putByIdDirectPrivate(@getByIdDirectPrivate(c,\"ownerReadableStream\"),\"reader\",@undefined),@putByIdDirectPrivate(c,\"ownerReadableStream\",@undefined)})\n"; // readableStreamDefaultControllerCanCloseOrEnqueue const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerCanCloseOrEnqueueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1786,7 +1786,7 @@ const JSC::ConstructorKind s_readableStreamInternalsLazyLoadStreamCodeConstructo const JSC::ImplementationVisibility s_readableStreamInternalsLazyLoadStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsLazyLoadStreamCodeLength = 1589; static const JSC::Intrinsic s_readableStreamInternalsLazyLoadStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsLazyLoadStreamCode = "(function (b,f){\"use strict\";var j=@getByIdDirectPrivate(b,\"bunNativeType\"),m=@getByIdDirectPrivate(b,\"bunNativePtr\"),q=@lazyStreamPrototypeMap.@get(j);if(q===@undefined){let U=function(Z){var{c:_,v:p}=this;this.c=@undefined,this.v=@undefined,J(Z,_,p)},W=function(Z){try{Z.close()}catch(_){globalThis.reportError(_)}},X=function(Z,_,p,z){z[0]=!1;var A;try{A=x(Z,p,z)}catch(C){return _.error(C)}return J(A,_,p)};var Q=U,P=W,O=X,[x,B,D,E,F,G,H]=@lazyLoad(j),I=[!1],J;J=function Z(_,p,z){if(_&&@isPromise(_))return _.then(U.bind({c:p,v:z}),(A)=>p.error(A));else if(typeof _===\"number\")if(z&&z.byteLength===_&&z.buffer===p.byobRequest\?.view\?.buffer)p.byobRequest.respondWithNewView(z);else p.byobRequest.respond(_);else if(_.constructor===@Uint8Array)p.enqueue(_);if(I[0]||_===!1)@enqueueJob(W,p),I[0]=!1};const Y=F\?new FinalizationRegistry(F):null;q=class Z{constructor(_,p,z){if(this.#f=_,this.#b={},this.pull=this.#j.bind(this),this.cancel=this.#m.bind(this),this.autoAllocateChunkSize=p,z!==@undefined)this.start=(A)=>{A.enqueue(z)};if(Y)Y.register(this,_,this.#b)}#b;pull;cancel;start;#f;type=\"bytes\";autoAllocateChunkSize=0;static startSync=B;#j(_){var p=this.#f;if(!p){_.close();return}X(p,_,_.byobRequest.view,I)}#m(_){var p=this.#f;Y&&Y.unregister(this.#b),G&&G(p,!1),D(p,_)}static deinit=F;static drain=H},@lazyStreamPrototypeMap.@set(j,q)}const K=q.startSync(m,f);var L;const{drain:M,deinit:N}=q;if(M)L=M(m);if(K===0){if(F&&m&&@enqueueJob(F,m),(L\?.byteLength\?\?0)>0)return{start(U){U.enqueue(L),U.close()},type:\"bytes\"};return{start(U){U.close()},type:\"bytes\"}}return new q(m,K,L)})\n"; +const char* const s_readableStreamInternalsLazyLoadStreamCode = "(function (W,I){\"use strict\";var N=@getByIdDirectPrivate(W,\"bunNativeType\"),J=@getByIdDirectPrivate(W,\"bunNativePtr\"),K=@lazyStreamPrototypeMap.@get(N);if(K===@undefined){let m=function(F){var{c:p,v:z}=this;this.c=@undefined,this.v=@undefined,f(F,p,z)},U=function(F){try{F.close()}catch(p){globalThis.reportError(p)}},M=function(F,p,z,A){A[0]=!1;var G;try{G=b(F,z,A)}catch(H){return p.error(H)}return f(G,p,z)};var j=m,Q=U,q=M,[b,x,X,y,O,Y,Z]=@lazyLoad(N),P=[!1],f;f=function F(p,z,A){if(p&&@isPromise(p))return p.then(m.bind({c:z,v:A}),(G)=>z.error(G));else if(typeof p===\"number\")if(A&&A.byteLength===p&&A.buffer===z.byobRequest\?.view\?.buffer)z.byobRequest.respondWithNewView(A);else z.byobRequest.respond(p);else if(p.constructor===@Uint8Array)z.enqueue(p);if(P[0]||p===!1)@enqueueJob(U,z),P[0]=!1};const E=O\?new FinalizationRegistry(O):null;K=class F{constructor(p,z,A){if(this.#f=p,this.#b={},this.pull=this.#j.bind(this),this.cancel=this.#m.bind(this),this.autoAllocateChunkSize=z,A!==@undefined)this.start=(G)=>{G.enqueue(A)};if(E)E.register(this,p,this.#b)}#b;pull;cancel;start;#f;type=\"bytes\";autoAllocateChunkSize=0;static startSync=x;#j(p){var z=this.#f;if(!z){p.close();return}M(z,p,p.byobRequest.view,P)}#m(p){var z=this.#f;E&&E.unregister(this.#b),Y&&Y(z,!1),X(z,p)}static deinit=O;static drain=Z},@lazyStreamPrototypeMap.@set(N,K)}const B=K.startSync(J,I);var _;const{drain:D,deinit:L}=K;if(D)_=D(J);if(B===0){if(O&&J&&@enqueueJob(O,J),(_\?.byteLength\?\?0)>0)return{start(m){m.enqueue(_),m.close()},type:\"bytes\"};return{start(m){m.close()},type:\"bytes\"}}return new K(J,B,_)})\n"; // readableStreamIntoArray const JSC::ConstructAbility s_readableStreamInternalsReadableStreamIntoArrayCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1794,7 +1794,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamIntoArrayCodeC const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamIntoArrayCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamIntoArrayCodeLength = 247; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamIntoArrayCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamIntoArrayCode = "(function (f){\"use strict\";var _=f.getReader(),b=_.readMany();async function g(j){if(j.done)return[];var p=j.value||[];while(!0){var q=await _.read();if(q.done)break;p=p.concat(q.value)}return p}if(b&&@isPromise(b))return b.@then(g);return g(b)})\n"; +const char* const s_readableStreamInternalsReadableStreamIntoArrayCode = "(function (_){\"use strict\";var b=_.getReader(),g=b.readMany();async function j(p){if(p.done)return[];var f=p.value||[];while(!0){var q=await b.read();if(q.done)break;f=f.concat(q.value)}return f}if(g&&@isPromise(g))return g.@then(j);return j(g)})\n"; // readableStreamIntoText const JSC::ConstructAbility s_readableStreamInternalsReadableStreamIntoTextCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1810,7 +1810,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamToArrayBufferD const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeLength = 727; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamToArrayBufferDirectCode = "(function (_,O){\"use strict\";var j=new @Bun.ArrayBufferSink;@putByIdDirectPrivate(_,\"underlyingSource\",@undefined);var q=@getByIdDirectPrivate(_,\"highWaterMark\");j.start(q\?{highWaterMark:q}:{});var v=@newPromiseCapability(@Promise),w=!1,x=O.pull,z=O.close,A={start(){},close(C){if(!w){if(w=!0,z)z();@fulfillPromise(v.@promise,j.end())}},end(){if(!w){if(w=!0,z)z();@fulfillPromise(v.@promise,j.end())}},flush(){return 0},write:j.write.bind(j)},B=!1;try{const C=x(A);if(C&&@isObject(C)&&@isPromise(C))return async function(D,F,G){while(!w)await G(D);return await F}(A,promise,x);return v.@promise}catch(C){return B=!0,@readableStreamError(_,C),@Promise.@reject(C)}finally{if(!B&&_)@readableStreamClose(_);A=z=j=x=_=@undefined}})\n"; +const char* const s_readableStreamInternalsReadableStreamToArrayBufferDirectCode = "(function (j,q){\"use strict\";var x=new @Bun.ArrayBufferSink;@putByIdDirectPrivate(j,\"underlyingSource\",@undefined);var z=@getByIdDirectPrivate(j,\"highWaterMark\");x.start(z\?{highWaterMark:z}:{});var A=@newPromiseCapability(@Promise),B=!1,C=q.pull,D=q.close,F={start(){},close(_){if(!B){if(B=!0,D)D();@fulfillPromise(A.@promise,x.end())}},end(){if(!B){if(B=!0,D)D();@fulfillPromise(A.@promise,x.end())}},flush(){return 0},write:x.write.bind(x)},G=!1;try{const _=C(F);if(_&&@isObject(_)&&@isPromise(_))return async function(O,v,w){while(!B)await w(O);return await v}(F,promise,C);return A.@promise}catch(_){return G=!0,@readableStreamError(j,_),@Promise.@reject(_)}finally{if(!G&&j)@readableStreamClose(j);F=D=x=C=j=@undefined}})\n"; // readableStreamToTextDirect const JSC::ConstructAbility s_readableStreamInternalsReadableStreamToTextDirectCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1834,7 +1834,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefineLazyIter const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeLength = 516; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamDefineLazyIteratorsCode = "(function (h){\"use strict\";var k=globalThis.Symbol.asyncIterator,g=async function*q(w,x){var z=w.getReader(),B;try{while(!0){var D,F;const G=z.readMany();if(@isPromise(G))({done:D,value:F}=await G);else({done:D,value:F}=G);if(D)return;yield*F}}catch(G){B=G}finally{if(z.releaseLock(),!x)w.cancel(B);if(B)throw B}},i=function q(){return g(this,!1)},j=function q({preventCancel:w=!1}={preventCancel:!1}){return g(this,w)};return @Object.@defineProperty(h,k,{value:i}),@Object.@defineProperty(h,\"values\",{value:j}),h})\n"; +const char* const s_readableStreamInternalsReadableStreamDefineLazyIteratorsCode = "(function (h){\"use strict\";var x=globalThis.Symbol.asyncIterator,k=async function*w(z,B){var D=z.getReader(),i;try{while(!0){var F,G;const j=D.readMany();if(@isPromise(j))({done:F,value:G}=await j);else({done:F,value:G}=j);if(F)return;yield*G}}catch(j){i=j}finally{if(D.releaseLock(),!B)z.cancel(i);if(i)throw i}},g=function w(){return k(this,!1)},q=function w({preventCancel:z=!1}={preventCancel:!1}){return k(this,z)};return @Object.@defineProperty(h,x,{value:g}),@Object.@defineProperty(h,\"values\",{value:q}),h})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ @@ -1860,7 +1860,7 @@ const JSC::ConstructorKind s_transformStreamDefaultControllerDesiredSizeCodeCons const JSC::ImplementationVisibility s_transformStreamDefaultControllerDesiredSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamDefaultControllerDesiredSizeCodeLength = 339; static const JSC::Intrinsic s_transformStreamDefaultControllerDesiredSizeCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamDefaultControllerDesiredSizeCode = "(function (){\"use strict\";if(!@isTransformStreamDefaultController(this))throw @makeThisTypeError(\"TransformStreamDefaultController\",\"enqueue\");const _=@getByIdDirectPrivate(this,\"stream\"),u=@getByIdDirectPrivate(_,\"readable\"),i=@getByIdDirectPrivate(u,\"readableStreamController\");return @readableStreamDefaultControllerGetDesiredSize(i)})\n"; +const char* const s_transformStreamDefaultControllerDesiredSizeCode = "(function (){\"use strict\";if(!@isTransformStreamDefaultController(this))throw @makeThisTypeError(\"TransformStreamDefaultController\",\"enqueue\");const _=@getByIdDirectPrivate(this,\"stream\"),i=@getByIdDirectPrivate(_,\"readable\"),u=@getByIdDirectPrivate(i,\"readableStreamController\");return @readableStreamDefaultControllerGetDesiredSize(u)})\n"; // enqueue const JSC::ConstructAbility s_transformStreamDefaultControllerEnqueueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1986,7 +1986,7 @@ const JSC::ConstructorKind s_readableStreamDefaultReaderReadManyCodeConstructorK const JSC::ImplementationVisibility s_readableStreamDefaultReaderReadManyCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamDefaultReaderReadManyCodeLength = 2598; static const JSC::Intrinsic s_readableStreamDefaultReaderReadManyCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamDefaultReaderReadManyCode = "(function (){\"use strict\";if(!@isReadableStreamDefaultReader(this))@throwTypeError(\"ReadableStreamDefaultReader.readMany() should not be called directly\");const _=@getByIdDirectPrivate(this,\"ownerReadableStream\");if(!_)@throwTypeError(\"readMany() called on a reader owned by no readable stream\");const d=@getByIdDirectPrivate(_,\"state\");if(@putByIdDirectPrivate(_,\"disturbed\",!0),d===@streamClosed)return{value:[],size:0,done:!0};else if(d===@streamErrored)throw @getByIdDirectPrivate(_,\"storedError\");var B=@getByIdDirectPrivate(_,\"readableStreamController\"),w=@getByIdDirectPrivate(B,\"queue\");if(!w)return B.@pull(B).@then(function({done:G,value:H}){return G\?{done:!0,value:[],size:0}:{value:[H],size:1,done:!1}});const A=w.content;var D=w.size,j=A.toArray(!1),k=j.length;if(k>0){var x=@newArrayWithSize(k);if(@isReadableByteStreamController(B)){{const G=j[0];if(!(@ArrayBuffer.@isView(G)||G instanceof @ArrayBuffer))@putByValDirect(x,0,new @Uint8Array(G.buffer,G.byteOffset,G.byteLength));else @putByValDirect(x,0,G)}for(var C=1;C{if(G.done)return{value:[],size:0,done:!0};var H=@getByIdDirectPrivate(_,\"readableStreamController\"),I=@getByIdDirectPrivate(H,\"queue\"),J=[G.value].concat(I.content.toArray(!1)),K=J.length;if(@isReadableByteStreamController(H))for(var N=0;N0){var D=@newArrayWithSize(N);if(@isReadableByteStreamController(E)){{const S=A[0];if(!(@ArrayBuffer.@isView(S)||S instanceof @ArrayBuffer))@putByValDirect(D,0,new @Uint8Array(S.buffer,S.byteOffset,S.byteLength));else @putByValDirect(D,0,S)}for(var F=1;F{if(S.done)return{value:[],size:0,done:!0};var T=@getByIdDirectPrivate(K,\"readableStreamController\"),U=@getByIdDirectPrivate(T,\"queue\"),W=[S.value].concat(U.content.toArray(!1)),j=W.length;if(@isReadableByteStreamController(T))for(var G=0;G0}shift(){var{_head:x,_tail:g,_list:k,_capacityMask:w}=this;if(x===g)return @undefined;var z=k[x];if(@putByValDirect(k,x,@undefined),x=this._head=x+1&w,x<2&&g>1e4&&g<=k.length>>>2)this._shrinkArray();return z}peek(){if(this._head===this._tail)return @undefined;return this._list[this._head]}push(x){var g=this._tail;if(@putByValDirect(this._list,g,x),this._tail=g+1&this._capacityMask,this._tail===this._head)this._growArray()}toArray(x){var g=this._list,k=@toLength(g.length);if(x||this._head>this._tail){var w=@toLength(this._head),z=@toLength(this._tail),A=@toLength(k-w+z),B=@newArrayWithSize(A),E=0;for(var F=w;F>>=1,this._capacityMask>>>=1}}return new v})\n"; +const char* const s_streamInternalsCreateFIFOCode = "(function (){\"use strict\";var b=@Array.prototype.slice;class z{constructor(){this._head=0,this._tail=0,this._capacityMask=3,this._list=@newArrayWithSize(4)}_head;_tail;_capacityMask;_list;size(){if(this._head===this._tail)return 0;if(this._head0}shift(){var{_head:v,_tail:x,_list:k,_capacityMask:w}=this;if(v===x)return @undefined;var A=k[v];if(@putByValDirect(k,v,@undefined),v=this._head=v+1&w,v<2&&x>1e4&&x<=k.length>>>2)this._shrinkArray();return A}peek(){if(this._head===this._tail)return @undefined;return this._list[this._head]}push(v){var x=this._tail;if(@putByValDirect(this._list,x,v),this._tail=x+1&this._capacityMask,this._tail===this._head)this._growArray()}toArray(v){var x=this._list,k=@toLength(x.length);if(v||this._head>this._tail){var w=@toLength(this._head),A=@toLength(this._tail),B=@toLength(k-w+A),E=@newArrayWithSize(B),g=0;for(var F=w;F>>=1,this._capacityMask>>>=1}}return new z})\n"; // newQueue const JSC::ConstructAbility s_streamInternalsNewQueueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2140,7 +2140,7 @@ const JSC::ConstructorKind s_streamInternalsExtractSizeAlgorithmCodeConstructorK const JSC::ImplementationVisibility s_streamInternalsExtractSizeAlgorithmCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_streamInternalsExtractSizeAlgorithmCodeLength = 176; static const JSC::Intrinsic s_streamInternalsExtractSizeAlgorithmCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_streamInternalsExtractSizeAlgorithmCode = "(function (d){\"use strict\";const p=d.size;if(p===@undefined)return()=>1;if(typeof p!==\"function\")@throwTypeError(\"strategy.size must be a function\");return(w)=>{return p(w)}})\n"; +const char* const s_streamInternalsExtractSizeAlgorithmCode = "(function (d){\"use strict\";const w=d.size;if(w===@undefined)return()=>1;if(typeof w!==\"function\")@throwTypeError(\"strategy.size must be a function\");return(p)=>{return w(p)}})\n"; // extractHighWaterMark const JSC::ConstructAbility s_streamInternalsExtractHighWaterMarkCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2190,7 +2190,7 @@ const JSC::ConstructorKind s_importMetaObjectLoadCJS2ESMCodeConstructorKind = JS const JSC::ImplementationVisibility s_importMetaObjectLoadCJS2ESMCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_importMetaObjectLoadCJS2ESMCodeLength = 1337; static const JSC::Intrinsic s_importMetaObjectLoadCJS2ESMCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_importMetaObjectLoadCJS2ESMCode = "(function (_){\"use strict\";var w=@Loader,x=@createFIFO(),z=_;while(z){var B=w.registry.@get(z);if(!B||!B.state||B.state<=@ModuleFetch)@fulfillModuleSync(z),B=w.registry.@get(z);var D=@getPromiseInternalField(B.fetch,@promiseFieldReactionsOrResult),F=w.parseModule(z,D),G=B.module;if(!G&&F&&@isPromise(F)){var H=@getPromiseInternalField(F,@promiseFieldReactionsOrResult),I=@getPromiseInternalField(F,@promiseFieldFlags),J=I&@promiseStateMask;if(J===@promiseStatePending||H&&@isPromise(H))@throwTypeError(`require() async module \"${z}\" is unsupported`);else if(J===@promiseStateRejected){if(!H\?.message)@throwTypeError(`${H+\"\"\?H:\"An error occurred\"} occurred while parsing module \\\"${z}\\\"`);throw H}B.module=G=H}else if(F&&!G)B.module=G=F;@setStateToMax(B,@ModuleLink);var L=G.dependenciesMap,Q=w.requestedModules(G),T=@newArrayWithSize(Q.length);for(var U=0,V=Q.length;U=@ModuleLink)z=x.shift()}var Z=w.linkAndEvaluateModule(_,@undefined);if(Z&&@isPromise(Z))@throwTypeError(`require() async module \\\"${_}\\\" is unsupported`);return w.registry.@get(_)})\n"; +const char* const s_importMetaObjectLoadCJS2ESMCode = "(function (x){\"use strict\";var I=@Loader,_=@createFIFO(),J=x;while(J){var w=I.registry.@get(J);if(!w||!w.state||w.state<=@ModuleFetch)@fulfillModuleSync(J),w=I.registry.@get(J);var L=@getPromiseInternalField(w.fetch,@promiseFieldReactionsOrResult),z=I.parseModule(J,L),Q=w.module;if(!Q&&z&&@isPromise(z)){var T=@getPromiseInternalField(z,@promiseFieldReactionsOrResult),B=@getPromiseInternalField(z,@promiseFieldFlags),U=B&@promiseStateMask;if(U===@promiseStatePending||T&&@isPromise(T))@throwTypeError(`require() async module \"${J}\" is unsupported`);else if(U===@promiseStateRejected){if(!T\?.message)@throwTypeError(`${T+\"\"\?T:\"An error occurred\"} occurred while parsing module \\\"${J}\\\"`);throw T}w.module=Q=T}else if(z&&!Q)w.module=Q=z;@setStateToMax(w,@ModuleLink);var V=Q.dependenciesMap,W=I.requestedModules(Q),X=@newArrayWithSize(W.length);for(var Y=0,Z=W.length;Y=@ModuleLink)J=_.shift()}var H=I.linkAndEvaluateModule(x,@undefined);if(H&&@isPromise(H))@throwTypeError(`require() async module \\\"${x}\\\" is unsupported`);return I.registry.@get(x)})\n"; // requireESM const JSC::ConstructAbility s_importMetaObjectRequireESMCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2198,7 +2198,7 @@ const JSC::ConstructorKind s_importMetaObjectRequireESMCodeConstructorKind = JSC const JSC::ImplementationVisibility s_importMetaObjectRequireESMCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_importMetaObjectRequireESMCodeLength = 419; static const JSC::Intrinsic s_importMetaObjectRequireESMCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_importMetaObjectRequireESMCode = "(function (a){\"use strict\";var _=@Loader.registry.@get(a);if(!_||!_.evaluated)_=@loadCJS2ESM(a);if(!_||!_.evaluated||!_.module)@throwTypeError(`require() failed to evaluate module \"${a}\". This is an internal consistentency error.`);var f=@Loader.getModuleNamespaceObject(_.module);if(f[@commonJSSymbol]===0)return;var g=f.default,u=g\?.[@commonJSSymbol];if(u===0)return g;else if(u&&@isCallable(g))return g();return f})\n"; +const char* const s_importMetaObjectRequireESMCode = "(function (a){\"use strict\";var f=@Loader.registry.@get(a);if(!f||!f.evaluated)f=@loadCJS2ESM(a);if(!f||!f.evaluated||!f.module)@throwTypeError(`require() failed to evaluate module \"${a}\". This is an internal consistentency error.`);var g=@Loader.getModuleNamespaceObject(f.module);if(g[@commonJSSymbol]===0)return;var _=g.default,u=_\?.[@commonJSSymbol];if(u===0)return _;else if(u&&@isCallable(_))return _();return g})\n"; // internalRequire const JSC::ConstructAbility s_importMetaObjectInternalRequireCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2206,7 +2206,7 @@ const JSC::ConstructorKind s_importMetaObjectInternalRequireCodeConstructorKind const JSC::ImplementationVisibility s_importMetaObjectInternalRequireCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_importMetaObjectInternalRequireCodeLength = 611; static const JSC::Intrinsic s_importMetaObjectInternalRequireCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_importMetaObjectInternalRequireCode = "(function (i){\"use strict\";var n=@requireMap.@get(i);const _=i.substring(i.length-5);if(n){if(_===\".node\")return n.exports;return n}if(_===\".json\"){var q=globalThis[Symbol.for(\"_fs\")]||=@Bun.fs(),b=JSON.parse(q.readFileSync(i,\"utf8\"));return @requireMap.@set(i,b),b}else if(_===\".node\"){var g={exports:{}};return process.dlopen(g,i),@requireMap.@set(i,g),g.exports}else if(_===\".toml\"){var q=globalThis[Symbol.for(\"_fs\")]||=@Bun.fs(),b=@Bun.TOML.parse(q.readFileSync(i,\"utf8\"));return @requireMap.@set(i,b),b}else{var b=@requireESM(i);const k=@requireMap.@get(i);if(k)return k;return @requireMap.@set(i,b),b}})\n"; +const char* const s_importMetaObjectInternalRequireCode = "(function (n){\"use strict\";var _=@requireMap.@get(n);const q=n.substring(n.length-5);if(_){if(q===\".node\")return _.exports;return _}if(q===\".json\"){var b=globalThis[Symbol.for(\"_fs\")]||=@Bun.fs(),j=JSON.parse(b.readFileSync(n,\"utf8\"));return @requireMap.@set(n,j),j}else if(q===\".node\"){var i={exports:{}};return process.dlopen(i,n),@requireMap.@set(n,i),i.exports}else if(q===\".toml\"){var b=globalThis[Symbol.for(\"_fs\")]||=@Bun.fs(),j=@Bun.TOML.parse(b.readFileSync(n,\"utf8\"));return @requireMap.@set(n,j),j}else{var j=@requireESM(n);const g=@requireMap.@get(n);if(g)return g;return @requireMap.@set(n,j),j}})\n"; // createRequireCache const JSC::ConstructAbility s_importMetaObjectCreateRequireCacheCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2214,7 +2214,7 @@ const JSC::ConstructorKind s_importMetaObjectCreateRequireCacheCodeConstructorKi const JSC::ImplementationVisibility s_importMetaObjectCreateRequireCacheCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_importMetaObjectCreateRequireCacheCodeLength = 891; static const JSC::Intrinsic s_importMetaObjectCreateRequireCacheCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_importMetaObjectCreateRequireCacheCode = "(function (){\"use strict\";class r{id;parent;filename;children=[];paths=[];constructor(P){this.id=P;const c=P.lastIndexOf(\"/\");if(c!==-1&&P.length>c+1)this.filename=P.substring(c+1);else this.filename=P}get loaded(){return!0}require(P){return @internalRequire(@resolveSync(P,this.id))}get exports(){return @requireMap.@get(this.id)\?\?{}}set exports(P){@requireMap.@set(this.id,P)}}var _=new Map;return new Proxy({},{get(P,c){if(@requireMap.@get(c)){var K=_.@get(c);if(!K)K=new r(c),_.@set(c,K);return K}},set(P,c,q){if(!_.@has(c))_.@set(c,new r(c));return @requireMap.@set(c,q\?.exports),!0},has(P,c){return @requireMap.@has(c)},deleteProperty(P,c){return _.@delete(c),@requireMap.@delete(c),@Loader.registry.@delete(c),!0},ownKeys(P){return[...@requireMap.@keys()]},getPrototypeOf(P){return null},getOwnPropertyDescriptor(P,c){if(@requireMap.@has(c))return{configurable:!0,enumerable:!0}}})})\n"; +const char* const s_importMetaObjectCreateRequireCacheCode = "(function (){\"use strict\";class _{id;parent;filename;children=[];paths=[];constructor(c){this.id=c;const q=c.lastIndexOf(\"/\");if(q!==-1&&c.length>q+1)this.filename=c.substring(q+1);else this.filename=c}get loaded(){return!0}require(c){return @internalRequire(@resolveSync(c,this.id))}get exports(){return @requireMap.@get(this.id)\?\?{}}set exports(c){@requireMap.@set(this.id,c)}}var P=new Map;return new Proxy({},{get(c,q){if(@requireMap.@get(q)){var r=P.@get(q);if(!r)r=new _(q),P.@set(q,r);return r}},set(c,q,K){if(!P.@has(q))P.@set(q,new _(q));return @requireMap.@set(q,K\?.exports),!0},has(c,q){return @requireMap.@has(q)},deleteProperty(c,q){return P.@delete(q),@requireMap.@delete(q),@Loader.registry.@delete(q),!0},ownKeys(c){return[...@requireMap.@keys()]},getPrototypeOf(c){return null},getOwnPropertyDescriptor(c,q){if(@requireMap.@has(q))return{configurable:!0,enumerable:!0}}})})\n"; // require const JSC::ConstructAbility s_importMetaObjectRequireCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2222,7 +2222,7 @@ const JSC::ConstructorKind s_importMetaObjectRequireCodeConstructorKind = JSC::C const JSC::ImplementationVisibility s_importMetaObjectRequireCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_importMetaObjectRequireCodeLength = 172; static const JSC::Intrinsic s_importMetaObjectRequireCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_importMetaObjectRequireCode = "(function (i){var l=this\?.path\?\?arguments.callee.path;if(typeof i!==\"string\")@throwTypeError(\"require(name) must be a string\");return @internalRequire(@resolveSync(i,l))})\n"; +const char* const s_importMetaObjectRequireCode = "(function (l){var i=this\?.path\?\?arguments.callee.path;if(typeof l!==\"string\")@throwTypeError(\"require(name) must be a string\");return @internalRequire(@resolveSync(l,i))})\n"; // main const JSC::ConstructAbility s_importMetaObjectMainCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2398,7 +2398,7 @@ const JSC::ConstructorKind s_readableStreamInitializeReadableStreamCodeConstruct const JSC::ImplementationVisibility s_readableStreamInitializeReadableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInitializeReadableStreamCodeLength = 2065; static const JSC::Intrinsic s_readableStreamInitializeReadableStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInitializeReadableStreamCode = "(function (_,f){\"use strict\";if(_===@undefined)_={@bunNativeType:0,@bunNativePtr:0,@lazy:!1};if(f===@undefined)f={};if(!@isObject(_))@throwTypeError(\"ReadableStream constructor takes an object as first argument\");if(f!==@undefined&&!@isObject(f))@throwTypeError(\"ReadableStream constructor takes an object as second argument, if any\");@putByIdDirectPrivate(this,\"state\",@streamReadable),@putByIdDirectPrivate(this,\"reader\",@undefined),@putByIdDirectPrivate(this,\"storedError\",@undefined),@putByIdDirectPrivate(this,\"disturbed\",!1),@putByIdDirectPrivate(this,\"readableStreamController\",null),@putByIdDirectPrivate(this,\"bunNativeType\",@getByIdDirectPrivate(_,\"bunNativeType\")\?\?0),@putByIdDirectPrivate(this,\"bunNativePtr\",@getByIdDirectPrivate(_,\"bunNativePtr\")\?\?0);const m=_.type===\"direct\",v=!!_.@lazy,B=m||v;if(@getByIdDirectPrivate(_,\"pull\")!==@undefined&&!B){const I=@getByIdDirectPrivate(f,\"size\"),b=@getByIdDirectPrivate(f,\"highWaterMark\");return @putByIdDirectPrivate(this,\"highWaterMark\",b),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@setupReadableStreamDefaultController(this,_,I,b!==@undefined\?b:1,@getByIdDirectPrivate(_,\"start\"),@getByIdDirectPrivate(_,\"pull\"),@getByIdDirectPrivate(_,\"cancel\")),this}if(m)@putByIdDirectPrivate(this,\"underlyingSource\",_),@putByIdDirectPrivate(this,\"highWaterMark\",@getByIdDirectPrivate(f,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",()=>@createReadableStreamController(this,_,f));else if(B){const I=_.autoAllocateChunkSize;@putByIdDirectPrivate(this,\"highWaterMark\",@undefined),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"highWaterMark\",I||@getByIdDirectPrivate(f,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",()=>{const b=@lazyLoadStream(this,I);if(b)@createReadableStreamController(this,b,f)})}else @putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"highWaterMark\",@getByIdDirectPrivate(f,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",@undefined),@createReadableStreamController(this,_,f);return this})\n"; +const char* const s_readableStreamInitializeReadableStreamCode = "(function (f,m){\"use strict\";if(f===@undefined)f={@bunNativeType:0,@bunNativePtr:0,@lazy:!1};if(m===@undefined)m={};if(!@isObject(f))@throwTypeError(\"ReadableStream constructor takes an object as first argument\");if(m!==@undefined&&!@isObject(m))@throwTypeError(\"ReadableStream constructor takes an object as second argument, if any\");@putByIdDirectPrivate(this,\"state\",@streamReadable),@putByIdDirectPrivate(this,\"reader\",@undefined),@putByIdDirectPrivate(this,\"storedError\",@undefined),@putByIdDirectPrivate(this,\"disturbed\",!1),@putByIdDirectPrivate(this,\"readableStreamController\",null),@putByIdDirectPrivate(this,\"bunNativeType\",@getByIdDirectPrivate(f,\"bunNativeType\")\?\?0),@putByIdDirectPrivate(this,\"bunNativePtr\",@getByIdDirectPrivate(f,\"bunNativePtr\")\?\?0);const v=f.type===\"direct\",B=!!f.@lazy,I=v||B;if(@getByIdDirectPrivate(f,\"pull\")!==@undefined&&!I){const _=@getByIdDirectPrivate(m,\"size\"),b=@getByIdDirectPrivate(m,\"highWaterMark\");return @putByIdDirectPrivate(this,\"highWaterMark\",b),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@setupReadableStreamDefaultController(this,f,_,b!==@undefined\?b:1,@getByIdDirectPrivate(f,\"start\"),@getByIdDirectPrivate(f,\"pull\"),@getByIdDirectPrivate(f,\"cancel\")),this}if(v)@putByIdDirectPrivate(this,\"underlyingSource\",f),@putByIdDirectPrivate(this,\"highWaterMark\",@getByIdDirectPrivate(m,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",()=>@createReadableStreamController(this,f,m));else if(I){const _=f.autoAllocateChunkSize;@putByIdDirectPrivate(this,\"highWaterMark\",@undefined),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"highWaterMark\",_||@getByIdDirectPrivate(m,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",()=>{const b=@lazyLoadStream(this,_);if(b)@createReadableStreamController(this,b,m)})}else @putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"highWaterMark\",@getByIdDirectPrivate(m,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",@undefined),@createReadableStreamController(this,f,m);return this})\n"; // readableStreamToArray const JSC::ConstructAbility s_readableStreamReadableStreamToArrayCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2406,7 +2406,7 @@ const JSC::ConstructorKind s_readableStreamReadableStreamToArrayCodeConstructorK const JSC::ImplementationVisibility s_readableStreamReadableStreamToArrayCodeImplementationVisibility = JSC::ImplementationVisibility::Private; const int s_readableStreamReadableStreamToArrayCodeLength = 173; static const JSC::Intrinsic s_readableStreamReadableStreamToArrayCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamReadableStreamToArrayCode = "(function (_){\"use strict\";var b=@getByIdDirectPrivate(_,\"underlyingSource\");if(b!==@undefined)return @readableStreamToArrayDirect(_,b);return @readableStreamIntoArray(_)})\n"; +const char* const s_readableStreamReadableStreamToArrayCode = "(function (b){\"use strict\";var _=@getByIdDirectPrivate(b,\"underlyingSource\");if(_!==@undefined)return @readableStreamToArrayDirect(b,_);return @readableStreamIntoArray(b)})\n"; // readableStreamToText const JSC::ConstructAbility s_readableStreamReadableStreamToTextCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2446,7 +2446,7 @@ const JSC::ConstructorKind s_readableStreamConsumeReadableStreamCodeConstructorK const JSC::ImplementationVisibility s_readableStreamConsumeReadableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Private; const int s_readableStreamConsumeReadableStreamCodeLength = 1603; static const JSC::Intrinsic s_readableStreamConsumeReadableStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamConsumeReadableStreamCode = "(function (_,F,j){\"use strict\";const k=globalThis.Symbol.for(\"Bun.consumeReadableStreamPrototype\");var q=globalThis[k];if(!q)q=globalThis[k]=[];var w=q[F];if(w===@undefined){var[x,A,B,D,G,H]=globalThis[globalThis.Symbol.for(\"Bun.lazy\")](F);w=class J{handleError;handleClosed;processResult;constructor(K,L){this.#_=L,this.#F=K,this.#$=!1,this.handleError=this._handleError.bind(this),this.handleClosed=this._handleClosed.bind(this),this.processResult=this._processResult.bind(this),K.closed.then(this.handleClosed,this.handleError)}_handleClosed(){if(this.#$)return;this.#$=!0;var K=this.#_;this.#_=0,D(K),H(K)}_handleError(K){if(this.#$)return;this.#$=!0;var L=this.#_;this.#_=0,A(L,K),H(L)}#_;#$=!1;#F;_handleReadMany({value:K,done:L,size:N}){if(L){this.handleClosed();return}if(this.#$)return;B(this.#_,K,L,N)}read(){if(!this.#_)return @throwTypeError(\"ReadableStreamSink is already closed\");return this.processResult(this.#F.read())}_processResult(K){if(K&&@isPromise(K)){if(@getPromiseInternalField(K,@promiseFieldFlags)&@promiseStateFulfilled){const N=@getPromiseInternalField(K,@promiseFieldReactionsOrResult);if(N)K=N}}if(K&&@isPromise(K))return K.then(this.processResult,this.handleError),null;if(K.done)return this.handleClosed(),0;else if(K.value)return K.value;else return-1}readMany(){if(!this.#_)return @throwTypeError(\"ReadableStreamSink is already closed\");return this.processResult(this.#F.readMany())}};const I=F+1;if(q.length{@putByIdDirectPrivate(R,\"started\",1),@assert(!@getByIdDirectPrivate(R,\"pulling\")),@assert(!@getByIdDirectPrivate(R,\"pullAgain\")),@readableByteStreamControllerCallPullIfNeeded(R)},(d)=>{if(@getByIdDirectPrivate(_,\"state\")===@streamReadable)@readableByteStreamControllerError(R,d)}),@putByIdDirectPrivate(this,\"cancel\",@readableByteStreamControllerCancel),@putByIdDirectPrivate(this,\"pull\",@readableByteStreamControllerPull),this})\n"; +const char* const s_readableByteStreamInternalsPrivateInitializeReadableByteStreamControllerCode = "(function (v,b,f){\"use strict\";if(!@isReadableStream(v))@throwTypeError(\"ReadableByteStreamController needs a ReadableStream\");if(@getByIdDirectPrivate(v,\"readableStreamController\")!==null)@throwTypeError(\"ReadableStream already has a controller\");@putByIdDirectPrivate(this,\"controlledReadableStream\",v),@putByIdDirectPrivate(this,\"underlyingByteSource\",b),@putByIdDirectPrivate(this,\"pullAgain\",!1),@putByIdDirectPrivate(this,\"pulling\",!1),@readableByteStreamControllerClearPendingPullIntos(this),@putByIdDirectPrivate(this,\"queue\",@newQueue()),@putByIdDirectPrivate(this,\"started\",0),@putByIdDirectPrivate(this,\"closeRequested\",!1);let p=@toNumber(f);if(@isNaN(p)||p<0)@throwRangeError(\"highWaterMark value is negative or not a number\");@putByIdDirectPrivate(this,\"strategyHWM\",p);let R=b.autoAllocateChunkSize;if(R!==@undefined){if(R=@toNumber(R),R<=0||R===@Infinity||R===-@Infinity)@throwRangeError(\"autoAllocateChunkSize value is negative or equal to positive or negative infinity\")}@putByIdDirectPrivate(this,\"autoAllocateChunkSize\",R),@putByIdDirectPrivate(this,\"pendingPullIntos\",@createFIFO());const _=this;return @promiseInvokeOrNoopNoCatch(@getByIdDirectPrivate(_,\"underlyingByteSource\"),\"start\",[_]).@then(()=>{@putByIdDirectPrivate(_,\"started\",1),@assert(!@getByIdDirectPrivate(_,\"pulling\")),@assert(!@getByIdDirectPrivate(_,\"pullAgain\")),@readableByteStreamControllerCallPullIfNeeded(_)},(d)=>{if(@getByIdDirectPrivate(v,\"state\")===@streamReadable)@readableByteStreamControllerError(_,d)}),@putByIdDirectPrivate(this,\"cancel\",@readableByteStreamControllerCancel),@putByIdDirectPrivate(this,\"pull\",@readableByteStreamControllerPull),this})\n"; // readableStreamByteStreamControllerStart const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamByteStreamControllerStartCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2610,7 +2610,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsPrivateInitializeReadabl const JSC::ImplementationVisibility s_readableByteStreamInternalsPrivateInitializeReadableStreamBYOBRequestCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsPrivateInitializeReadableStreamBYOBRequestCodeLength = 139; static const JSC::Intrinsic s_readableByteStreamInternalsPrivateInitializeReadableStreamBYOBRequestCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsPrivateInitializeReadableStreamBYOBRequestCode = "(function (a,d){\"use strict\";@putByIdDirectPrivate(this,\"associatedReadableByteStreamController\",a),@putByIdDirectPrivate(this,\"view\",d)})\n"; +const char* const s_readableByteStreamInternalsPrivateInitializeReadableStreamBYOBRequestCode = "(function (d,a){\"use strict\";@putByIdDirectPrivate(this,\"associatedReadableByteStreamController\",d),@putByIdDirectPrivate(this,\"view\",a)})\n"; // isReadableByteStreamController const JSC::ConstructAbility s_readableByteStreamInternalsIsReadableByteStreamControllerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2642,7 +2642,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeLength = 248; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerCancelCode = "(function (a,p){\"use strict\";var u=@getByIdDirectPrivate(a,\"pendingPullIntos\"),_=u.peek();if(_)_.bytesFilled=0;return @putByIdDirectPrivate(a,\"queue\",@newQueue()),@promiseInvokeOrNoop(@getByIdDirectPrivate(a,\"underlyingByteSource\"),\"cancel\",[p])})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerCancelCode = "(function (a,p){\"use strict\";var _=@getByIdDirectPrivate(a,\"pendingPullIntos\"),u=_.peek();if(u)u.bytesFilled=0;return @putByIdDirectPrivate(a,\"queue\",@newQueue()),@promiseInvokeOrNoop(@getByIdDirectPrivate(a,\"underlyingByteSource\"),\"cancel\",[p])})\n"; // readableByteStreamControllerError const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2754,7 +2754,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCodeLength = 160; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCode = "(function (_,a,d,p){\"use strict\";@getByIdDirectPrivate(_,\"queue\").content.push({buffer:a,byteOffset:d,byteLength:p}),@getByIdDirectPrivate(_,\"queue\").size+=p})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCode = "(function (_,a,p,d){\"use strict\";@getByIdDirectPrivate(_,\"queue\").content.push({buffer:a,byteOffset:p,byteLength:d}),@getByIdDirectPrivate(_,\"queue\").size+=d})\n"; // readableByteStreamControllerRespondWithNewView const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2786,7 +2786,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCodeLength = 799; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCode = "(function (f,w,R){\"use strict\";if(R.bytesFilled+w>R.byteLength)@throwRangeError(\"bytesWritten value is too great\");if(@assert(@getByIdDirectPrivate(f,\"pendingPullIntos\").isEmpty()||@getByIdDirectPrivate(f,\"pendingPullIntos\").peek()===R),@readableByteStreamControllerInvalidateBYOBRequest(f),R.bytesFilled+=w,R.bytesFilled0){const g=R.byteOffset+R.bytesFilled,h=@cloneArrayBuffer(R.buffer,g-_,_);@readableByteStreamControllerEnqueueChunk(f,h,0,h.byteLength)}R.buffer=@transferBufferToCurrentRealm(R.buffer),R.bytesFilled-=_,@readableByteStreamControllerCommitDescriptor(@getByIdDirectPrivate(f,\"controlledReadableStream\"),R),@readableByteStreamControllerProcessPullDescriptors(f)})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCode = "(function (w,R,_){\"use strict\";if(_.bytesFilled+R>_.byteLength)@throwRangeError(\"bytesWritten value is too great\");if(@assert(@getByIdDirectPrivate(w,\"pendingPullIntos\").isEmpty()||@getByIdDirectPrivate(w,\"pendingPullIntos\").peek()===_),@readableByteStreamControllerInvalidateBYOBRequest(w),_.bytesFilled+=R,_.bytesFilled<_.elementSize)return;@readableByteStreamControllerShiftPendingDescriptor(w);const g=_.bytesFilled%_.elementSize;if(g>0){const h=_.byteOffset+_.bytesFilled,f=@cloneArrayBuffer(_.buffer,h-g,g);@readableByteStreamControllerEnqueueChunk(w,f,0,f.byteLength)}_.buffer=@transferBufferToCurrentRealm(_.buffer),_.bytesFilled-=g,@readableByteStreamControllerCommitDescriptor(@getByIdDirectPrivate(w,\"controlledReadableStream\"),_),@readableByteStreamControllerProcessPullDescriptors(w)})\n"; // readableByteStreamControllerRespondInClosedState const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2794,7 +2794,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCodeLength = 502; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCode = "(function (a,_){\"use strict\";if(_.buffer=@transferBufferToCurrentRealm(_.buffer),@assert(_.bytesFilled===0),@readableStreamHasBYOBReader(@getByIdDirectPrivate(a,\"controlledReadableStream\")))while(@getByIdDirectPrivate(@getByIdDirectPrivate(@getByIdDirectPrivate(a,\"controlledReadableStream\"),\"reader\"),\"readIntoRequests\")\?.isNotEmpty()){let d=@readableByteStreamControllerShiftPendingDescriptor(a);@readableByteStreamControllerCommitDescriptor(@getByIdDirectPrivate(a,\"controlledReadableStream\"),d)}})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCode = "(function (a,d){\"use strict\";if(d.buffer=@transferBufferToCurrentRealm(d.buffer),@assert(d.bytesFilled===0),@readableStreamHasBYOBReader(@getByIdDirectPrivate(a,\"controlledReadableStream\")))while(@getByIdDirectPrivate(@getByIdDirectPrivate(@getByIdDirectPrivate(a,\"controlledReadableStream\"),\"reader\"),\"readIntoRequests\")\?.isNotEmpty()){let _=@readableByteStreamControllerShiftPendingDescriptor(a);@readableByteStreamControllerCommitDescriptor(@getByIdDirectPrivate(a,\"controlledReadableStream\"),_)}})\n"; // readableByteStreamControllerProcessPullDescriptors const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerProcessPullDescriptorsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2810,7 +2810,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeLength = 970; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCode = "(function (_,q){\"use strict\";const j=q.bytesFilled-q.bytesFilled%q.elementSize,k=@getByIdDirectPrivate(_,\"queue\").sizej)z=w-q.bytesFilled,E=!0;while(z>0){let G=@getByIdDirectPrivate(_,\"queue\").content.peek();const H=z0),@assert(q.bytesFilledq)E=w-z.bytesFilled,G=!0;while(E>0){let H=@getByIdDirectPrivate(_,\"queue\").content.peek();const k=E0),@assert(z.bytesFilled=A.length)return;let F=-1,G=A.indexOf(\"\\r\\n\",B);const J=G+2;if(G>0)if(w.#O===0){const Q=parseInt(A.substring(B,G),16);if(Q===0){w.#j=2,w.#G\?.end();return}F=J+Q}else F=A.length;else{if(w.#J.length===0){w.#J+=A.substring(B);return}F=A.length}let K=A.substring(J,F);B=F+2;let L=0,M=K.indexOf(\"\\n\\n\");if(M==-1){w.#J+=A.substring(J);return}if(w.#J.length)w.#J+=K,K=w.#J,w.#J=\"\";let O=!0;while(O){const Q=K.substring(L,M);let U,V=\"\",W,X=0,Y=-1;for(;;){let z=Q.indexOf(\"\\n\",X);if(z===-1){if(X>=Q.length)break;z=Q.length}const H=Q.substring(X,z);if(H.startsWith(\"data:\"))if(V.length)V+=`\\n${H.substring(5).trim()}`;else V=H.substring(5).trim();else if(H.startsWith(\"event:\"))U=H.substring(6).trim();else if(H.startsWith(\"id:\"))W=H.substring(3).trim();else if(H.startsWith(\"retry:\")){if(Y=parseInt(H.substring(6).trim(),10),@isNaN(Y))Y=-1}X=z+1}if(w.#L=W||\"\",Y>=0)w.#U=Y;if(V||W||U)w.dispatchEvent(new MessageEvent(U||\"message\",{data:V||\"\",origin:w.#$.origin,source:w,lastEventId:W}));if(K.length===M+2){O=!1;break}const Z=K.indexOf(\"\\n\\n\",M+1);if(Z===-1)break;L=M,M=Z}}}static#Z={open(w){const A=w.data;if(A.#G=w,!A.#F)j.#X(w,A.#$)},handshake(w,A,B){const F=w.data;if(A)j.#X(w,F.#$);else F.#j=2,F.dispatchEvent(new ErrorEvent(\"error\",{error:B})),w.end()},data(w,A){const B=w.data;switch(B.#j){case 0:{let F=A.toString();const G=F.indexOf(\"\\r\\n\\r\\n\");if(G===-1){B.#J+=F;return}if(B.#J.length)B.#J+=F,F=B.#J,B.#J=\"\";const J=F.substring(0,G),K=J.indexOf(\"\\r\\n\");if(K===-1){B.#j=2,B.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Invalid HTTP request\")})),w.end();return}const L=J.substring(0,K);if(L!==\"HTTP/1.1 200 OK\"){B.#j=2,B.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(L)})),w.end();return}let M=K+1,O=!1,Q=-1;for(;;){let V=J.indexOf(\"\\r\\n\",M);if(V===-1){if(M>=J.length){if(!O)B.#j=2,B.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's response has no MIME type and \"text/event-stream\" is required. Aborting the connection.`)})),w.end();return}V=J.length}const W=J.substring(M+1,V),X=W.indexOf(\":\"),Y=W.substring(0,X),Z=Y.localeCompare(\"content-type\",@undefined,{sensitivity:\"accent\"})===0;if(M=V+1,Z)if(W.endsWith(\" text/event-stream\"))O=!0;else{B.#j=2,B.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's response has a MIME type that is not \"text/event-stream\". Aborting the connection.`)})),w.end();return}else if(Y.localeCompare(\"content-length\",@undefined,{sensitivity:\"accent\"})===0){if(Q=parseInt(W.substring(X+1).trim(),10),@isNaN(Q)||Q<=0){B.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's Content-Length is invalid. Aborting the connection.`)})),w.end();return}if(O)break}else if(Y.localeCompare(\"transfer-encoding\",@undefined,{sensitivity:\"accent\"})===0){if(W.substring(X+1).trim()!==\"chunked\"){B.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's Transfer-Encoding is invalid. Aborting the connection.`)})),w.end();return}if(Q=0,O)break}}B.#O=Q,B.#j=1,B.dispatchEvent(new Event(\"open\"));const U=F.substring(G+4);if(j.#Y(B,U,0),B.#O>0){if(B.#Q+=U.length,B.#Q>=B.#O)B.#j=2,w.end()}return}case 1:if(j.#Y(B,A.toString(),2),B.#O>0){if(B.#Q+=A.byteLength,B.#Q>=B.#O)B.#j=2,w.end()}return;default:break}},drain(w){const A=w.data;if(A.#j===0){const B=A.#J;if(B.length){const F=w.write(B);if(F!==B.length)w.data.#K=B.substring(F);else w.data.#K=\"\"}}},close:j.#z,end(w){j.#z(w).dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Connection closed by server\")}))},timeout(w){j.#z(w).dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Timeout\")}))},binaryType:\"buffer\"};static#z(w){const A=w.data;if(A.#G=null,A.#Q=0,A.#j=2,A.#M){if(A.#V)clearTimeout(A.#V);A.#V=setTimeout(j.#W,A.#U,A)}return A}constructor(w,A=@undefined){super();const B=new URL(w);this.#F=B.protocol===\"https:\",this.#$=B,this.#j=2,process.nextTick(j.#W,this)}ref(){this.#V\?.ref(),this.#G\?.ref()}unref(){this.#V\?.unref(),this.#G\?.unref()}#H(){if(this.#j!==2)return;const w=this.#$,A=this.#F;this.#j=0,@Bun.connect({data:this,socket:j.#Z,hostname:w.hostname,port:parseInt(w.port||(A\?\"443\":\"80\"),10),tls:A\?{requestCert:!0,rejectUnauthorized:!1}:!1}).catch((B)=>{if(super.dispatchEvent(new ErrorEvent(\"error\",{error:B})),this.#M){if(this.#V)this.#V.unref\?.();this.#V=setTimeout(j.#W,1000,this)}})}get url(){return this.#$.href}get readyState(){return this.#j}close(){this.#M=!1,this.#j=2,this.#G\?.unref(),this.#G\?.end()}get onopen(){return this.#B}get onerror(){return this.#w}get onmessage(){return this.#A}set onopen(w){if(this.#B)super.removeEventListener(\"close\",this.#B);super.addEventListener(\"open\",w),this.#B=w}set onerror(w){if(this.#w)super.removeEventListener(\"error\",this.#w);super.addEventListener(\"error\",w),this.#w=w}set onmessage(w){if(this.#A)super.removeEventListener(\"message\",this.#A);super.addEventListener(\"message\",w),this.#A=w}}return Object.defineProperty(j.prototype,\"CONNECTING\",{enumerable:!0,value:0}),Object.defineProperty(j.prototype,\"OPEN\",{enumerable:!0,value:1}),Object.defineProperty(j.prototype,\"CLOSED\",{enumerable:!0,value:2}),j[Symbol.for(\"CommonJS\")]=0,j})\n"; +const char* const s_eventSourceGetEventSourceCode = "(function (){\"use strict\";class j extends EventTarget{#K;#w;#G;#A;#B;#L=!1;#M=null;#O=\"\";#$=\"\";#F=\"\";#J=!0;#Q=0;#U=0;#V=0;#W=null;static#X(V){V.#H()}static#j(V,w){const W=V.data,A=W.#F\?`Last-Event-ID: ${W.#F}\\r\\n`:\"\",X=`GET ${w.pathname}${w.search} HTTP/1.1\\r\\nHost: bun\\r\\nContent-type: text/event-stream\\r\\nContent-length: 0\\r\\n${A}\\r\\n`,B=V.write(X);if(B!==X.length)W.#$=X.substring(B)}static#Y(V,w,W){for(;;){if(W>=w.length)return;let A=-1,X=w.indexOf(\"\\r\\n\",W);const B=X+2;if(X>0)if(V.#Q===0){const Z=parseInt(w.substring(W,X),16);if(Z===0){V.#w=2,V.#M\?.end();return}A=B+Z}else A=w.length;else{if(V.#O.length===0){V.#O+=w.substring(W);return}A=w.length}let Y=w.substring(B,A);W=A+2;let F=0,G=Y.indexOf(\"\\n\\n\");if(G==-1){V.#O+=w.substring(B);return}if(V.#O.length)V.#O+=Y,Y=V.#O,V.#O=\"\";let J=!0;while(J){const Z=Y.substring(F,G);let K,z=\"\",L,H=0,M=-1;for(;;){let O=Z.indexOf(\"\\n\",H);if(O===-1){if(H>=Z.length)break;O=Z.length}const U=Z.substring(H,O);if(U.startsWith(\"data:\"))if(z.length)z+=`\\n${U.substring(5).trim()}`;else z=U.substring(5).trim();else if(U.startsWith(\"event:\"))K=U.substring(6).trim();else if(U.startsWith(\"id:\"))L=U.substring(3).trim();else if(U.startsWith(\"retry:\")){if(M=parseInt(U.substring(6).trim(),10),@isNaN(M))M=-1}H=O+1}if(V.#F=L||\"\",M>=0)V.#V=M;if(z||L||K)V.dispatchEvent(new MessageEvent(K||\"message\",{data:z||\"\",origin:V.#K.origin,source:V,lastEventId:L}));if(Y.length===G+2){J=!1;break}const Q=Y.indexOf(\"\\n\\n\",G+1);if(Q===-1)break;F=G,G=Q}}}static#Z={open(V){const w=V.data;if(w.#M=V,!w.#L)j.#j(V,w.#K)},handshake(V,w,W){const A=V.data;if(w)j.#j(V,A.#K);else A.#w=2,A.dispatchEvent(new ErrorEvent(\"error\",{error:W})),V.end()},data(V,w){const W=V.data;switch(W.#w){case 0:{let A=w.toString();const X=A.indexOf(\"\\r\\n\\r\\n\");if(X===-1){W.#O+=A;return}if(W.#O.length)W.#O+=A,A=W.#O,W.#O=\"\";const B=A.substring(0,X),Y=B.indexOf(\"\\r\\n\");if(Y===-1){W.#w=2,W.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Invalid HTTP request\")})),V.end();return}const F=B.substring(0,Y);if(F!==\"HTTP/1.1 200 OK\"){W.#w=2,W.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(F)})),V.end();return}let G=Y+1,J=!1,Z=-1;for(;;){let z=B.indexOf(\"\\r\\n\",G);if(z===-1){if(G>=B.length){if(!J)W.#w=2,W.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's response has no MIME type and \"text/event-stream\" is required. Aborting the connection.`)})),V.end();return}z=B.length}const L=B.substring(G+1,z),H=L.indexOf(\":\"),M=L.substring(0,H),Q=M.localeCompare(\"content-type\",@undefined,{sensitivity:\"accent\"})===0;if(G=z+1,Q)if(L.endsWith(\" text/event-stream\"))J=!0;else{W.#w=2,W.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's response has a MIME type that is not \"text/event-stream\". Aborting the connection.`)})),V.end();return}else if(M.localeCompare(\"content-length\",@undefined,{sensitivity:\"accent\"})===0){if(Z=parseInt(L.substring(H+1).trim(),10),@isNaN(Z)||Z<=0){W.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's Content-Length is invalid. Aborting the connection.`)})),V.end();return}if(J)break}else if(M.localeCompare(\"transfer-encoding\",@undefined,{sensitivity:\"accent\"})===0){if(L.substring(H+1).trim()!==\"chunked\"){W.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's Transfer-Encoding is invalid. Aborting the connection.`)})),V.end();return}if(Z=0,J)break}}W.#Q=Z,W.#w=1,W.dispatchEvent(new Event(\"open\"));const K=A.substring(X+4);if(j.#Y(W,K,0),W.#Q>0){if(W.#U+=K.length,W.#U>=W.#Q)W.#w=2,V.end()}return}case 1:if(j.#Y(W,w.toString(),2),W.#Q>0){if(W.#U+=w.byteLength,W.#U>=W.#Q)W.#w=2,V.end()}return;default:break}},drain(V){const w=V.data;if(w.#w===0){const W=w.#O;if(W.length){const A=V.write(W);if(A!==W.length)V.data.#$=W.substring(A);else V.data.#$=\"\"}}},close:j.#z,end(V){j.#z(V).dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Connection closed by server\")}))},timeout(V){j.#z(V).dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Timeout\")}))},binaryType:\"buffer\"};static#z(V){const w=V.data;if(w.#M=null,w.#U=0,w.#w=2,w.#J){if(w.#W)clearTimeout(w.#W);w.#W=setTimeout(j.#X,w.#V,w)}return w}constructor(V,w=@undefined){super();const W=new URL(V);this.#L=W.protocol===\"https:\",this.#K=W,this.#w=2,process.nextTick(j.#X,this)}ref(){this.#W\?.ref(),this.#M\?.ref()}unref(){this.#W\?.unref(),this.#M\?.unref()}#H(){if(this.#w!==2)return;const V=this.#K,w=this.#L;this.#w=0,@Bun.connect({data:this,socket:j.#Z,hostname:V.hostname,port:parseInt(V.port||(w\?\"443\":\"80\"),10),tls:w\?{requestCert:!0,rejectUnauthorized:!1}:!1}).catch((W)=>{if(super.dispatchEvent(new ErrorEvent(\"error\",{error:W})),this.#J){if(this.#W)this.#W.unref\?.();this.#W=setTimeout(j.#X,1000,this)}})}get url(){return this.#K.href}get readyState(){return this.#w}close(){this.#J=!1,this.#w=2,this.#M\?.unref(),this.#M\?.end()}get onopen(){return this.#B}get onerror(){return this.#G}get onmessage(){return this.#A}set onopen(V){if(this.#B)super.removeEventListener(\"close\",this.#B);super.addEventListener(\"open\",V),this.#B=V}set onerror(V){if(this.#G)super.removeEventListener(\"error\",this.#G);super.addEventListener(\"error\",V),this.#G=V}set onmessage(V){if(this.#A)super.removeEventListener(\"message\",this.#A);super.addEventListener(\"message\",V),this.#A=V}}return Object.defineProperty(j.prototype,\"CONNECTING\",{enumerable:!0,value:0}),Object.defineProperty(j.prototype,\"OPEN\",{enumerable:!0,value:1}),Object.defineProperty(j.prototype,\"CLOSED\",{enumerable:!0,value:2}),j[Symbol.for(\"CommonJS\")]=0,j})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ diff --git a/src/js/out/modules/node/crypto.js b/src/js/out/modules/node/crypto.js index 063336164..7968a8eef 100644 --- a/src/js/out/modules/node/crypto.js +++ b/src/js/out/modules/node/crypto.js @@ -1,4 +1,4 @@ -var D$=Object.defineProperty;var C$=Object.getOwnPropertyNames;var L$=536870888,R$=($)=>import.meta.require($),F$=globalThis.crypto,P$=F$;var z$=($,Q)=>function(){return Q||(0,$[C$($)[0]])((Q={exports:{}}).exports,Q),Q.exports},M$=($,Q)=>{for(var Y in Q)D$($,Y,{get:Q[Y],enumerable:!0})};var S$=z$({"node_modules/safe-buffer/index.js"($,Q){var Y=R$("buffer"),Z=Y.Buffer;function G(U,X){for(var K in U)X[K]=U[K]}Z.from&&Z.alloc&&Z.allocUnsafe&&Z.allocUnsafeSlow?Q.exports=Y:(G(Y,$),$.Buffer=V);function V(U,X,K){return Z(U,X,K)}V.prototype=Object.create(Z.prototype),G(Z,V),V.from=function(U,X,K){if(typeof U=="number")throw new TypeError("Argument must not be a number");return Z(U,X,K)},V.alloc=function(U,X,K){if(typeof U!="number")throw new TypeError("Argument must be a number");var I=Z(U);return X!==void 0?typeof K=="string"?I.fill(X,K):I.fill(X):I.fill(0),I},V.allocUnsafe=function(U){if(typeof U!="number")throw new TypeError("Argument must be a number");return Z(U)},V.allocUnsafeSlow=function(U){if(typeof U!="number")throw new TypeError("Argument must be a number");return Y.SlowBuffer(U)}}}),v$=z$({"node_modules/randombytes/browser.js"($,Q){var Y=65536,Z=4294967295;function G(){throw new Error(`Secure random number generation is not supported by this browser. -Use Chrome, Firefox or Internet Explorer 11`)}var V=S$().Buffer,U=P$;U&&U.getRandomValues?Q.exports=X:Q.exports=G;function X(K,I){if(K>Z)throw new RangeError("requested too many random bytes");var J=V.allocUnsafe(K);if(K>0)if(K>Y)for(var O=0;O=this._blockSize;){for(var O=this._blockOffset;O0;++F)this._length[F]+=A,A=this._length[F]/4294967296|0,A>0&&(this._length[F]-=4294967296*A);return this},U.prototype._update=function(){throw new Error("_update is not implemented")},U.prototype.digest=function(X){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var K=this._digest();X!==void 0&&(K=K.toString(X)),this._block.fill(0),this._blockOffset=0;for(var I=0;I<4;++I)this._length[I]=0;return K},U.prototype._digest=function(){throw new Error("_digest is not implemented")},Q.exports=U}}),k$=z$({"node_modules/md5.js/index.js"($,Q){var Y=q$(),Z=j$(),G=S$().Buffer,V=new Array(16);function U(){Z.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}Y(U,Z),U.prototype._update=function(){for(var F=V,A=0;A<16;++A)F[A]=this._block.readInt32LE(A*4);var W=this._a,H=this._b,E=this._c,T=this._d;W=K(W,H,E,T,F[0],3614090360,7),T=K(T,W,H,E,F[1],3905402710,12),E=K(E,T,W,H,F[2],606105819,17),H=K(H,E,T,W,F[3],3250441966,22),W=K(W,H,E,T,F[4],4118548399,7),T=K(T,W,H,E,F[5],1200080426,12),E=K(E,T,W,H,F[6],2821735955,17),H=K(H,E,T,W,F[7],4249261313,22),W=K(W,H,E,T,F[8],1770035416,7),T=K(T,W,H,E,F[9],2336552879,12),E=K(E,T,W,H,F[10],4294925233,17),H=K(H,E,T,W,F[11],2304563134,22),W=K(W,H,E,T,F[12],1804603682,7),T=K(T,W,H,E,F[13],4254626195,12),E=K(E,T,W,H,F[14],2792965006,17),H=K(H,E,T,W,F[15],1236535329,22),W=I(W,H,E,T,F[1],4129170786,5),T=I(T,W,H,E,F[6],3225465664,9),E=I(E,T,W,H,F[11],643717713,14),H=I(H,E,T,W,F[0],3921069994,20),W=I(W,H,E,T,F[5],3593408605,5),T=I(T,W,H,E,F[10],38016083,9),E=I(E,T,W,H,F[15],3634488961,14),H=I(H,E,T,W,F[4],3889429448,20),W=I(W,H,E,T,F[9],568446438,5),T=I(T,W,H,E,F[14],3275163606,9),E=I(E,T,W,H,F[3],4107603335,14),H=I(H,E,T,W,F[8],1163531501,20),W=I(W,H,E,T,F[13],2850285829,5),T=I(T,W,H,E,F[2],4243563512,9),E=I(E,T,W,H,F[7],1735328473,14),H=I(H,E,T,W,F[12],2368359562,20),W=J(W,H,E,T,F[5],4294588738,4),T=J(T,W,H,E,F[8],2272392833,11),E=J(E,T,W,H,F[11],1839030562,16),H=J(H,E,T,W,F[14],4259657740,23),W=J(W,H,E,T,F[1],2763975236,4),T=J(T,W,H,E,F[4],1272893353,11),E=J(E,T,W,H,F[7],4139469664,16),H=J(H,E,T,W,F[10],3200236656,23),W=J(W,H,E,T,F[13],681279174,4),T=J(T,W,H,E,F[0],3936430074,11),E=J(E,T,W,H,F[3],3572445317,16),H=J(H,E,T,W,F[6],76029189,23),W=J(W,H,E,T,F[9],3654602809,4),T=J(T,W,H,E,F[12],3873151461,11),E=J(E,T,W,H,F[15],530742520,16),H=J(H,E,T,W,F[2],3299628645,23),W=O(W,H,E,T,F[0],4096336452,6),T=O(T,W,H,E,F[7],1126891415,10),E=O(E,T,W,H,F[14],2878612391,15),H=O(H,E,T,W,F[5],4237533241,21),W=O(W,H,E,T,F[12],1700485571,6),T=O(T,W,H,E,F[3],2399980690,10),E=O(E,T,W,H,F[10],4293915773,15),H=O(H,E,T,W,F[1],2240044497,21),W=O(W,H,E,T,F[8],1873313359,6),T=O(T,W,H,E,F[15],4264355552,10),E=O(E,T,W,H,F[6],2734768916,15),H=O(H,E,T,W,F[13],1309151649,21),W=O(W,H,E,T,F[4],4149444226,6),T=O(T,W,H,E,F[11],3174756917,10),E=O(E,T,W,H,F[2],718787259,15),H=O(H,E,T,W,F[9],3951481745,21),this._a=this._a+W|0,this._b=this._b+H|0,this._c=this._c+E|0,this._d=this._d+T|0},U.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var F=G.allocUnsafe(16);return F.writeInt32LE(this._a,0),F.writeInt32LE(this._b,4),F.writeInt32LE(this._c,8),F.writeInt32LE(this._d,12),F};function X(F,A){return F<>>32-A}function K(F,A,W,H,E,T,D){return X(F+(A&W|~A&H)+E+T|0,D)+A|0}function I(F,A,W,H,E,T,D){return X(F+(A&H|W&~H)+E+T|0,D)+A|0}function J(F,A,W,H,E,T,D){return X(F+(A^W^H)+E+T|0,D)+A|0}function O(F,A,W,H,E,T,D){return X(F+(W^(A|~H))+E+T|0,D)+A|0}Q.exports=U}}),g$=z$({"node_modules/ripemd160/index.js"($,Q){var Y=R$("buffer").Buffer,Z=q$(),G=j$(),V=new Array(16),U=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],X=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],K=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],I=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],J=[0,1518500249,1859775393,2400959708,2840853838],O=[1352829926,1548603684,1836072691,2053994217,0];function F(){G.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}Z(F,G),F.prototype._update=function(){for(var C=V,L=0;L<16;++L)C[L]=this._block.readInt32LE(L*4);for(var R=this._a|0,P=this._b|0,z=this._c|0,M=this._d|0,S=this._e|0,v=this._a|0,q=this._b|0,j=this._c|0,k=this._d|0,g=this._e|0,N=0;N<80;N+=1){var x,_;N<16?(x=W(R,P,z,M,S,C[U[N]],J[0],K[N]),_=D(v,q,j,k,g,C[X[N]],O[0],I[N])):N<32?(x=H(R,P,z,M,S,C[U[N]],J[1],K[N]),_=T(v,q,j,k,g,C[X[N]],O[1],I[N])):N<48?(x=E(R,P,z,M,S,C[U[N]],J[2],K[N]),_=E(v,q,j,k,g,C[X[N]],O[2],I[N])):N<64?(x=T(R,P,z,M,S,C[U[N]],J[3],K[N]),_=H(v,q,j,k,g,C[X[N]],O[3],I[N])):(x=D(R,P,z,M,S,C[U[N]],J[4],K[N]),_=W(v,q,j,k,g,C[X[N]],O[4],I[N])),R=S,S=M,M=A(z,10),z=P,P=x,v=g,g=k,k=A(j,10),j=q,q=_}var B=this._b+z+k|0;this._b=this._c+M+g|0,this._c=this._d+S+v|0,this._d=this._e+R+q|0,this._e=this._a+P+j|0,this._a=B},F.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var C=Y.alloc?Y.alloc(20):new Y(20);return C.writeInt32LE(this._a,0),C.writeInt32LE(this._b,4),C.writeInt32LE(this._c,8),C.writeInt32LE(this._d,12),C.writeInt32LE(this._e,16),C};function A(C,L){return C<>>32-L}function W(C,L,R,P,z,M,S,v){return A(C+(L^R^P)+M+S|0,v)+z|0}function H(C,L,R,P,z,M,S,v){return A(C+(L&R|~L&P)+M+S|0,v)+z|0}function E(C,L,R,P,z,M,S,v){return A(C+((L|~R)^P)+M+S|0,v)+z|0}function T(C,L,R,P,z,M,S,v){return A(C+(L&P|R&~P)+M+S|0,v)+z|0}function D(C,L,R,P,z,M,S,v){return A(C+(L^(R|~P))+M+S|0,v)+z|0}Q.exports=F}}),N$=z$({"node_modules/sha.js/hash.js"($,Q){var Y=S$().Buffer;function Z(G,V){this._block=Y.alloc(G),this._finalSize=V,this._blockSize=G,this._len=0}Z.prototype.update=function(G,V){typeof G=="string"&&(V=V||"utf8",G=Y.from(G,V));for(var U=this._block,X=this._blockSize,K=G.length,I=this._len,J=0;J=this._finalSize&&(this._update(this._block),this._block.fill(0));var U=this._len*8;if(U<=4294967295)this._block.writeUInt32BE(U,this._blockSize-4);else{var X=(U&4294967295)>>>0,K=(U-X)/4294967296;this._block.writeUInt32BE(K,this._blockSize-8),this._block.writeUInt32BE(X,this._blockSize-4)}this._update(this._block);var I=this._hash();return G?I.toString(G):I},Z.prototype._update=function(){throw new Error("_update must be implemented by subclass")},Q.exports=Z}}),x$=z$({"node_modules/sha.js/sha.js"($,Q){var Y=q$(),Z=N$(),G=S$().Buffer,V=[1518500249,1859775393,-1894007588,-899497514],U=new Array(80);function X(){this.init(),this._w=U,Z.call(this,64,56)}Y(X,Z),X.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function K(O){return O<<5|O>>>27}function I(O){return O<<30|O>>>2}function J(O,F,A,W){return O===0?F&A|~F&W:O===2?F&A|F&W|A&W:F^A^W}X.prototype._update=function(O){for(var F=this._w,A=this._a|0,W=this._b|0,H=this._c|0,E=this._d|0,T=this._e|0,D=0;D<16;++D)F[D]=O.readInt32BE(D*4);for(;D<80;++D)F[D]=F[D-3]^F[D-8]^F[D-14]^F[D-16];for(var C=0;C<80;++C){var L=~~(C/20),R=K(A)+J(L,W,H,E)+T+F[C]+V[L]|0;T=E,E=H,H=I(W),W=A,A=R}this._a=A+this._a|0,this._b=W+this._b|0,this._c=H+this._c|0,this._d=E+this._d|0,this._e=T+this._e|0},X.prototype._hash=function(){var O=G.allocUnsafe(20);return O.writeInt32BE(this._a|0,0),O.writeInt32BE(this._b|0,4),O.writeInt32BE(this._c|0,8),O.writeInt32BE(this._d|0,12),O.writeInt32BE(this._e|0,16),O},Q.exports=X}}),_$=z$({"node_modules/sha.js/sha1.js"($,Q){var Y=q$(),Z=N$(),G=S$().Buffer,V=[1518500249,1859775393,-1894007588,-899497514],U=new Array(80);function X(){this.init(),this._w=U,Z.call(this,64,56)}Y(X,Z),X.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function K(F){return F<<1|F>>>31}function I(F){return F<<5|F>>>27}function J(F){return F<<30|F>>>2}function O(F,A,W,H){return F===0?A&W|~A&H:F===2?A&W|A&H|W&H:A^W^H}X.prototype._update=function(F){for(var A=this._w,W=this._a|0,H=this._b|0,E=this._c|0,T=this._d|0,D=this._e|0,C=0;C<16;++C)A[C]=F.readInt32BE(C*4);for(;C<80;++C)A[C]=K(A[C-3]^A[C-8]^A[C-14]^A[C-16]);for(var L=0;L<80;++L){var R=~~(L/20),P=I(W)+O(R,H,E,T)+D+A[L]+V[R]|0;D=T,T=E,E=J(H),H=W,W=P}this._a=W+this._a|0,this._b=H+this._b|0,this._c=E+this._c|0,this._d=T+this._d|0,this._e=D+this._e|0},X.prototype._hash=function(){var F=G.allocUnsafe(20);return F.writeInt32BE(this._a|0,0),F.writeInt32BE(this._b|0,4),F.writeInt32BE(this._c|0,8),F.writeInt32BE(this._d|0,12),F.writeInt32BE(this._e|0,16),F},Q.exports=X}}),B$=z$({"node_modules/sha.js/sha256.js"($,Q){var Y=q$(),Z=N$(),G=S$().Buffer,V=[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],U=new Array(64);function X(){this.init(),this._w=U,Z.call(this,64,56)}Y(X,Z),X.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function K(W,H,E){return E^W&(H^E)}function I(W,H,E){return W&H|E&(W|H)}function J(W){return(W>>>2|W<<30)^(W>>>13|W<<19)^(W>>>22|W<<10)}function O(W){return(W>>>6|W<<26)^(W>>>11|W<<21)^(W>>>25|W<<7)}function F(W){return(W>>>7|W<<25)^(W>>>18|W<<14)^W>>>3}function A(W){return(W>>>17|W<<15)^(W>>>19|W<<13)^W>>>10}X.prototype._update=function(W){for(var H=this._w,E=this._a|0,T=this._b|0,D=this._c|0,C=this._d|0,L=this._e|0,R=this._f|0,P=this._g|0,z=this._h|0,M=0;M<16;++M)H[M]=W.readInt32BE(M*4);for(;M<64;++M)H[M]=A(H[M-2])+H[M-7]+F(H[M-15])+H[M-16]|0;for(var S=0;S<64;++S){var v=z+O(L)+K(L,R,P)+V[S]+H[S]|0,q=J(E)+I(E,T,D)|0;z=P,P=R,R=L,L=C+v|0,C=D,D=T,T=E,E=v+q|0}this._a=E+this._a|0,this._b=T+this._b|0,this._c=D+this._c|0,this._d=C+this._d|0,this._e=L+this._e|0,this._f=R+this._f|0,this._g=P+this._g|0,this._h=z+this._h|0},X.prototype._hash=function(){var W=G.allocUnsafe(32);return W.writeInt32BE(this._a,0),W.writeInt32BE(this._b,4),W.writeInt32BE(this._c,8),W.writeInt32BE(this._d,12),W.writeInt32BE(this._e,16),W.writeInt32BE(this._f,20),W.writeInt32BE(this._g,24),W.writeInt32BE(this._h,28),W},Q.exports=X}}),y$=z$({"node_modules/sha.js/sha224.js"($,Q){var Y=q$(),Z=B$(),G=N$(),V=S$().Buffer,U=new Array(64);function X(){this.init(),this._w=U,G.call(this,64,56)}Y(X,Z),X.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},X.prototype._hash=function(){var K=V.allocUnsafe(28);return K.writeInt32BE(this._a,0),K.writeInt32BE(this._b,4),K.writeInt32BE(this._c,8),K.writeInt32BE(this._d,12),K.writeInt32BE(this._e,16),K.writeInt32BE(this._f,20),K.writeInt32BE(this._g,24),K},Q.exports=X}}),w$=z$({"node_modules/sha.js/sha512.js"($,Q){var Y=q$(),Z=N$(),G=S$().Buffer,V=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],U=new Array(160);function X(){this.init(),this._w=U,Z.call(this,128,112)}Y(X,Z),X.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function K(T,D,C){return C^T&(D^C)}function I(T,D,C){return T&D|C&(T|D)}function J(T,D){return(T>>>28|D<<4)^(D>>>2|T<<30)^(D>>>7|T<<25)}function O(T,D){return(T>>>14|D<<18)^(T>>>18|D<<14)^(D>>>9|T<<23)}function F(T,D){return(T>>>1|D<<31)^(T>>>8|D<<24)^T>>>7}function A(T,D){return(T>>>1|D<<31)^(T>>>8|D<<24)^(T>>>7|D<<25)}function W(T,D){return(T>>>19|D<<13)^(D>>>29|T<<3)^T>>>6}function H(T,D){return(T>>>19|D<<13)^(D>>>29|T<<3)^(T>>>6|D<<26)}function E(T,D){return T>>>0>>0?1:0}X.prototype._update=function(T){for(var D=this._w,C=this._ah|0,L=this._bh|0,R=this._ch|0,P=this._dh|0,z=this._eh|0,M=this._fh|0,S=this._gh|0,v=this._hh|0,q=this._al|0,j=this._bl|0,k=this._cl|0,g=this._dl|0,N=this._el|0,x=this._fl|0,_=this._gl|0,B=this._hl|0,y=0;y<32;y+=2)D[y]=T.readInt32BE(y*4),D[y+1]=T.readInt32BE(y*4+4);for(;y<160;y+=2){var w=D[y-30],f=D[y-30+1],p=F(w,f),c=A(f,w);w=D[y-4],f=D[y-4+1];var h=W(w,f),d=H(f,w),b=D[y-14],l=D[y-14+1],o=D[y-32],u=D[y-32+1],n=c+l|0,s=p+b+E(n,c)|0;n=n+d|0,s=s+h+E(n,d)|0,n=n+u|0,s=s+o+E(n,u)|0,D[y]=s,D[y+1]=n}for(var t=0;t<160;t+=2){s=D[t],n=D[t+1];var m=I(C,L,R),a=I(q,j,k),r=J(C,q),e=J(q,C),i=O(z,N),$0=O(N,z),Q0=V[t],Y0=V[t+1],Z0=K(z,M,S),G0=K(N,x,_),V0=B+$0|0,U0=v+i+E(V0,B)|0;V0=V0+G0|0,U0=U0+Z0+E(V0,G0)|0,V0=V0+Y0|0,U0=U0+Q0+E(V0,Y0)|0,V0=V0+n|0,U0=U0+s+E(V0,n)|0;var X0=e+a|0,K0=r+m+E(X0,e)|0;v=S,B=_,S=M,_=x,M=z,x=N,N=g+V0|0,z=P+U0+E(N,g)|0,P=R,g=k,R=L,k=j,L=C,j=q,q=V0+X0|0,C=U0+K0+E(q,V0)|0}this._al=this._al+q|0,this._bl=this._bl+j|0,this._cl=this._cl+k|0,this._dl=this._dl+g|0,this._el=this._el+N|0,this._fl=this._fl+x|0,this._gl=this._gl+_|0,this._hl=this._hl+B|0,this._ah=this._ah+C+E(this._al,q)|0,this._bh=this._bh+L+E(this._bl,j)|0,this._ch=this._ch+R+E(this._cl,k)|0,this._dh=this._dh+P+E(this._dl,g)|0,this._eh=this._eh+z+E(this._el,N)|0,this._fh=this._fh+M+E(this._fl,x)|0,this._gh=this._gh+S+E(this._gl,_)|0,this._hh=this._hh+v+E(this._hl,B)|0},X.prototype._hash=function(){var T=G.allocUnsafe(64);function D(C,L,R){T.writeInt32BE(C,R),T.writeInt32BE(L,R+4)}return D(this._ah,this._al,0),D(this._bh,this._bl,8),D(this._ch,this._cl,16),D(this._dh,this._dl,24),D(this._eh,this._el,32),D(this._fh,this._fl,40),D(this._gh,this._gl,48),D(this._hh,this._hl,56),T},Q.exports=X}}),f$=z$({"node_modules/sha.js/sha384.js"($,Q){var Y=q$(),Z=w$(),G=N$(),V=S$().Buffer,U=new Array(160);function X(){this.init(),this._w=U,G.call(this,128,112)}Y(X,Z),X.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},X.prototype._hash=function(){var K=V.allocUnsafe(48);function I(J,O,F){K.writeInt32BE(J,F),K.writeInt32BE(O,F+4)}return I(this._ah,this._al,0),I(this._bh,this._bl,8),I(this._ch,this._cl,16),I(this._dh,this._dl,24),I(this._eh,this._el,32),I(this._fh,this._fl,40),K},Q.exports=X}}),p$=z$({"node_modules/sha.js/index.js"(Y,Q){var Y=Q.exports=function(Z){Z=Z.toLowerCase();var G=Y[Z];if(!G)throw new Error(Z+" is not supported (we accept pull requests)");return new G};Y.sha=x$(),Y.sha1=_$(),Y.sha224=y$(),Y.sha256=B$(),Y.sha384=f$(),Y.sha512=w$()}}),c$=import.meta.require("node:stream"),h$=z$({"node_modules/cipher-base/index.js"($,Q){var Y=S$().Buffer,Z=c$.Transform,G=R$("string_decoder").StringDecoder,V=q$();function U(X){Z.call(this),this.hashMode=typeof X=="string",this.hashMode?this[X]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}V(U,Z),U.prototype.update=function(X,K,I){typeof X=="string"&&(X=Y.from(X,K));var J=this._update(X);return this.hashMode?this:(I&&(J=this._toString(J,I)),J)},U.prototype.setAutoPadding=function(){},U.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},U.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},U.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},U.prototype._transform=function(X,K,I){var J;try{this.hashMode?this._update(X):this.push(this._update(X))}catch(O){J=O}finally{I(J)}},U.prototype._flush=function(X){var K;try{this.push(this.__final())}catch(I){K=I}X(K)},U.prototype._finalOrDigest=function(X){var K=this.__final()||Y.alloc(0);return X&&(K=this._toString(K,X,!0)),K},U.prototype._toString=function(X,K,I){if(this._decoder||(this._decoder=new G(K),this._encoding=K),this._encoding!==K)throw new Error("can't switch encodings");var J=this._decoder.write(X);return I&&(J+=this._decoder.end()),J},Q.exports=U}}),d$=z$({"node_modules/create-hash/browser.js"($,Q){const{Transform:Y}=c$,Z=function U(X,K){this._options=K,this._hasher=new oY(X,K),this._finalized=!1};Z.prototype=Object.create(Y.prototype),Z.prototype.update=function U(X,K){return this._checkFinalized(),this._hasher.update(X,K),this},Z.prototype.digest=function U(X,K){return this._checkFinalized(),this._finalized=!0,this._hasher.digest(X,K)},Z.prototype._checkFinalized=function U(){if(this._finalized){var X=new Error("Digest already called");throw X.code="ERR_CRYPTO_HASH_FINALIZED",X}},Z.prototype.copy=function U(){const X=Object.create(Z.prototype);return X._options=this._options,X._hasher=this._hasher.copy(),X._finalized=this._finalized,X};const G={__proto__:Y.prototype,...Z.prototype,_transform(U,X,K){this.update(U,X),K&&K()},_flush(U){this.push(this.digest()),U()}},V=["_events","_eventsCount","_final","_maxListeners","_maxListeners","_read","_undestroy","_writableState","_write","_writev","addListener","asIndexedPairs","closed","compose","constructor","cork","destroy","destroyed","drop","emit","end","errored","eventNames","every","filter","find","flatMap","forEach","getMaxListeners","hasOwnProperty","isPaused","isPrototypeOf","iterator","listenerCount","listeners","map","off","on","once","pause","pipe","prependListener","prependOnceListener","propertyIsEnumerable","push","rawListeners","read","readable","readableAborted","readableBuffer","readableDidRead","readableEncoding","readableEnded","readableFlowing","readableHighWaterMark","readableLength","readableObjectMode","reduce","removeAllListeners","removeListener","resume","setDefaultEncoding","setEncoding","setMaxListeners","some","take","toArray","toLocaleString","toString","uncork","unpipe","unshift","valueOf","wrap","writable","writableBuffer","writableCorked","writableEnded","writableFinished","writableHighWaterMark","writableLength","writableNeedDrain","writableObjectMode","write"];for(let U of V)Object.defineProperty(Z.prototype,U,{get(){return Object.setPrototypeOf(this,G),Y.call(this,this._options),this[U]},enumerable:!1,configurable:!0});Q.exports=function U(X){return new Z(X)},Q.exports.createHash=Q.exports,Q.exports.Hash=Z}}),b$=z$({"node_modules/create-hmac/legacy.js"($,Q){var Y=q$(),Z=S$().Buffer,G=h$(),V=Z.alloc(128),U=64;function X(K,I){G.call(this,"digest"),typeof I=="string"&&(I=Z.from(I)),this._alg=K,this._key=I,I.length>U?I=K(I):I.lengthA){var W=O==="rmd160"?new X:K(O);F=W.update(F).digest()}else F.lengthY||G!==G)throw new TypeError("Bad key length")}}}),t$=z$({"node_modules/pbkdf2/lib/default-encoding.js"($,Q){var Y;global.process&&global.process.browser?Y="utf-8":global.process&&global.process.version?(Z=parseInt(process.version.split(".")[0].slice(1),10),Y=Z>=6?"utf-8":"binary"):Y="utf-8";var Z;Q.exports=Y}}),m$=z$({"node_modules/pbkdf2/lib/to-buffer.js"($,Q){var Y=S$().Buffer;Q.exports=function(Z,G,V){if(Y.isBuffer(Z))return Z;if(typeof Z=="string")return Y.from(Z,G);if(ArrayBuffer.isView(Z))return Y.from(Z.buffer);throw new TypeError(V+" must be a string, a Buffer, a typed array or a DataView")}}}),a$=z$({"node_modules/pbkdf2/lib/sync-browser.js"($,Q){var Y=l$(),Z=g$(),G=p$(),V=S$().Buffer,U=s$(),X=t$(),K=m$(),I=V.alloc(128),J={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function O(W,H,E){var T=F(W),D=W==="sha512"||W==="sha384"?128:64;H.length>D?H=T(H):H.length>>0},$.writeUInt32BE=function(G,V,U){G[0+U]=V>>>24,G[1+U]=V>>>16&255,G[2+U]=V>>>8&255,G[3+U]=V&255},$.ip=function(G,V,U,X){for(var K=0,I=0,J=6;J>=0;J-=2){for(var O=0;O<=24;O+=8)K<<=1,K|=V>>>O+J&1;for(var O=0;O<=24;O+=8)K<<=1,K|=G>>>O+J&1}for(var J=6;J>=0;J-=2){for(var O=1;O<=25;O+=8)I<<=1,I|=V>>>O+J&1;for(var O=1;O<=25;O+=8)I<<=1,I|=G>>>O+J&1}U[X+0]=K>>>0,U[X+1]=I>>>0},$.rip=function(G,V,U,X){for(var K=0,I=0,J=0;J<4;J++)for(var O=24;O>=0;O-=8)K<<=1,K|=V>>>O+J&1,K<<=1,K|=G>>>O+J&1;for(var J=4;J<8;J++)for(var O=24;O>=0;O-=8)I<<=1,I|=V>>>O+J&1,I<<=1,I|=G>>>O+J&1;U[X+0]=K>>>0,U[X+1]=I>>>0},$.pc1=function(G,V,U,X){for(var K=0,I=0,J=7;J>=5;J--){for(var O=0;O<=24;O+=8)K<<=1,K|=V>>O+J&1;for(var O=0;O<=24;O+=8)K<<=1,K|=G>>O+J&1}for(var O=0;O<=24;O+=8)K<<=1,K|=V>>O+J&1;for(var J=1;J<=3;J++){for(var O=0;O<=24;O+=8)I<<=1,I|=V>>O+J&1;for(var O=0;O<=24;O+=8)I<<=1,I|=G>>O+J&1}for(var O=0;O<=24;O+=8)I<<=1,I|=G>>O+J&1;U[X+0]=K>>>0,U[X+1]=I>>>0},$.r28shl=function(G,V){return G<>>28-V};var Q=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];$.pc2=function(G,V,U,X){for(var K=0,I=0,J=Q.length>>>1,O=0;O>>Q[O]&1;for(var O=J;O>>Q[O]&1;U[X+0]=K>>>0,U[X+1]=I>>>0},$.expand=function(G,V,U){var X=0,K=0;X=(G&1)<<5|G>>>27;for(var I=23;I>=15;I-=4)X<<=6,X|=G>>>I&63;for(var I=11;I>=3;I-=4)K|=G>>>I&63,K<<=6;K|=(G&31)<<1|G>>>31,V[U+0]=X>>>0,V[U+1]=K>>>0};var Y=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];$.substitute=function(G,V){for(var U=0,X=0;X<4;X++){var K=G>>>18-X*6&63,I=Y[X*64+K];U<<=4,U|=I}for(var X=0;X<4;X++){var K=V>>>18-X*6&63,I=Y[256+X*64+K];U<<=4,U|=I}return U>>>0};var Z=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];$.permute=function(G){for(var V=0,U=0;U>>Z[U]&1;return V>>>0},$.padSplit=function(G,V,U){for(var X=G.toString(2);X.length0;X--)V+=this._buffer(G,V),U+=this._flushBuffer(K,U);return V+=this._buffer(G,V),K},Z.prototype.final=function(G){var V;G&&(V=this.update(G));var U;return this.type==="encrypt"?U=this._finalEncrypt():U=this._finalDecrypt(),V?V.concat(U):U},Z.prototype._pad=function(G,V){if(V===0)return!1;for(;V>>1];O=G.r28shl(O,W),F=G.r28shl(F,W),G.pc2(O,F,I.keys,A)}},X.prototype._update=function(I,J,O,F){var A=this._desState,W=G.readUInt32BE(I,J),H=G.readUInt32BE(I,J+4);G.ip(W,H,A.tmp,0),W=A.tmp[0],H=A.tmp[1],this.type==="encrypt"?this._encrypt(A,W,H,A.tmp,0):this._decrypt(A,W,H,A.tmp,0),W=A.tmp[0],H=A.tmp[1],G.writeUInt32BE(O,W,F),G.writeUInt32BE(O,H,F+4)},X.prototype._pad=function(I,J){for(var O=I.length-J,F=J;F>>0,W=R}G.rip(H,W,F,A)},X.prototype._decrypt=function(I,J,O,F,A){for(var W=O,H=J,E=I.keys.length-2;E>=0;E-=2){var T=I.keys[E],D=I.keys[E+1];G.expand(W,I.tmp,0),T^=I.tmp[0],D^=I.tmp[1];var C=G.substitute(T,D),L=G.permute(C),R=W;W=(H^L)>>>0,H=R}G.rip(W,H,F,A)}}}),ZQ=z$({"node_modules/des.js/lib/des/cbc.js"($){var Q=$Q(),Y=q$(),Z={};function G(U){Q.equal(U.length,8,"Invalid IV length"),this.iv=new Array(8);for(var X=0;X>K%8,G._prev=Z(G._prev,U?O:F);return J}function Z(G,V){var U=G.length,X=-1,K=Q.allocUnsafe(G.length);for(G=Q.concat([G,Q.from([V])]);++X>7;return K}$.encrypt=function(G,V,U){for(var X=V.length,K=Q.allocUnsafe(X),I=-1;++I>>24]^H[C>>>16&255]^E[L>>>8&255]^T[R&255]^J[v++],z=W[C>>>24]^H[L>>>16&255]^E[R>>>8&255]^T[D&255]^J[v++],M=W[L>>>24]^H[R>>>16&255]^E[D>>>8&255]^T[C&255]^J[v++],S=W[R>>>24]^H[D>>>16&255]^E[C>>>8&255]^T[L&255]^J[v++],D=P,C=z,L=M,R=S;return P=(F[D>>>24]<<24|F[C>>>16&255]<<16|F[L>>>8&255]<<8|F[R&255])^J[v++],z=(F[C>>>24]<<24|F[L>>>16&255]<<16|F[R>>>8&255]<<8|F[D&255])^J[v++],M=(F[L>>>24]<<24|F[R>>>16&255]<<16|F[D>>>8&255]<<8|F[C&255])^J[v++],S=(F[R>>>24]<<24|F[D>>>16&255]<<16|F[C>>>8&255]<<8|F[L&255])^J[v++],P=P>>>0,z=z>>>0,M=M>>>0,S=S>>>0,[P,z,M,S]}var U=[0,1,2,4,8,16,32,64,128,27,54],X=function(){for(var I=new Array(256),J=0;J<256;J++)J<128?I[J]=J<<1:I[J]=J<<1^283;for(var O=[],F=[],A=[[],[],[],[]],W=[[],[],[],[]],H=0,E=0,T=0;T<256;++T){var D=E^E<<1^E<<2^E<<3^E<<4;D=D>>>8^D&255^99,O[H]=D,F[D]=H;var C=I[H],L=I[C],R=I[L],P=I[D]*257^D*16843008;A[0][H]=P<<24|P>>>8,A[1][H]=P<<16|P>>>16,A[2][H]=P<<8|P>>>24,A[3][H]=P,P=R*16843009^L*65537^C*257^H*16843008,W[0][D]=P<<24|P>>>8,W[1][D]=P<<16|P>>>16,W[2][D]=P<<8|P>>>24,W[3][D]=P,H===0?H=E=1:(H=C^I[I[I[R^C]]],E^=I[I[E]])}return{SBOX:O,INV_SBOX:F,SUB_MIX:A,INV_SUB_MIX:W}}();function K(I){this._key=Z(I),this._reset()}K.blockSize=16,K.keySize=32,K.prototype.blockSize=K.blockSize,K.prototype.keySize=K.keySize,K.prototype._reset=function(){for(var I=this._key,J=I.length,O=J+6,F=(O+1)*4,A=[],W=0;W>>24,H=X.SBOX[H>>>24]<<24|X.SBOX[H>>>16&255]<<16|X.SBOX[H>>>8&255]<<8|X.SBOX[H&255],H^=U[W/J|0]<<24):J>6&&W%J===4&&(H=X.SBOX[H>>>24]<<24|X.SBOX[H>>>16&255]<<16|X.SBOX[H>>>8&255]<<8|X.SBOX[H&255]),A[W]=A[W-J]^H}for(var E=[],T=0;T>>24]]^X.INV_SUB_MIX[1][X.SBOX[C>>>16&255]]^X.INV_SUB_MIX[2][X.SBOX[C>>>8&255]]^X.INV_SUB_MIX[3][X.SBOX[C&255]]}this._nRounds=O,this._keySchedule=A,this._invKeySchedule=E},K.prototype.encryptBlockRaw=function(I){return I=Z(I),V(I,this._keySchedule,X.SUB_MIX,X.SBOX,this._nRounds)},K.prototype.encryptBlock=function(I){var J=this.encryptBlockRaw(I),O=Y.allocUnsafe(16);return O.writeUInt32BE(J[0],0),O.writeUInt32BE(J[1],4),O.writeUInt32BE(J[2],8),O.writeUInt32BE(J[3],12),O},K.prototype.decryptBlock=function(I){I=Z(I);var J=I[1];I[1]=I[3],I[3]=J;var O=V(I,this._invKeySchedule,X.INV_SUB_MIX,X.INV_SBOX,this._nRounds),F=Y.allocUnsafe(16);return F.writeUInt32BE(O[0],0),F.writeUInt32BE(O[3],4),F.writeUInt32BE(O[2],8),F.writeUInt32BE(O[1],12),F},K.prototype.scrub=function(){G(this._keySchedule),G(this._invKeySchedule),G(this._key)},Q.exports.AES=K}}),DQ=z$({"node_modules/browserify-aes/ghash.js"($,Q){var Y=S$().Buffer,Z=Y.alloc(16,0);function G(X){return[X.readUInt32BE(0),X.readUInt32BE(4),X.readUInt32BE(8),X.readUInt32BE(12)]}function V(X){var K=Y.allocUnsafe(16);return K.writeUInt32BE(X[0]>>>0,0),K.writeUInt32BE(X[1]>>>0,4),K.writeUInt32BE(X[2]>>>0,8),K.writeUInt32BE(X[3]>>>0,12),K}function U(X){this.h=X,this.state=Y.alloc(16,0),this.cache=Y.allocUnsafe(0)}U.prototype.ghash=function(X){for(var K=-1;++K0;I--)X[I]=X[I]>>>1|(X[I-1]&1)<<31;X[0]=X[0]>>>1,O&&(X[0]=X[0]^225<<24)}this.state=V(K)},U.prototype.update=function(X){this.cache=Y.concat([this.cache,X]);for(var K;this.cache.length>=16;)K=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(K)},U.prototype.final=function(X,K){return this.cache.length&&this.ghash(Y.concat([this.cache,Z],16)),this.ghash(V([0,X,0,K])),this.state},Q.exports=U}}),CQ=z$({"node_modules/browserify-aes/authCipher.js"($,Q){var Y=TQ(),Z=S$().Buffer,G=h$(),V=q$(),U=DQ(),X=KQ(),K=WQ();function I(F,A){var W=0;F.length!==A.length&&W++;for(var H=Math.min(F.length,A.length),E=0;E0||K>0;){var A=new Z;A.update(F),A.update(V),U&&A.update(U),F=A.digest();var W=0;if(I>0){var H=J.length-I;W=Math.min(I,F.length),F.copy(J,H,0,W),I-=W}if(W0){var E=O.length-K,T=Math.min(K,F.length-W);F.copy(O,E,W,W+T),K-=T}}return F.fill(0),{key:J,iv:O}}Q.exports=G}}),PQ=z$({"node_modules/browserify-aes/encrypter.js"($){var Q=EQ(),Y=CQ(),Z=S$().Buffer,G=LQ(),V=h$(),U=TQ(),X=RQ(),K=q$();function I(W,H,E){V.call(this),this._cache=new O,this._cipher=new U.AES(H),this._prev=Z.from(E),this._mode=W,this._autopadding=!0}K(I,V),I.prototype._update=function(W){this._cache.add(W);for(var H,E,T=[];H=this._cache.get();)E=this._mode.encrypt(this,H),T.push(E);return Z.concat(T)};var J=Z.alloc(16,16);I.prototype._final=function(){var W=this._cache.flush();if(this._autopadding)return W=this._mode.encrypt(this,W),this._cipher.scrub(),W;if(!W.equals(J))throw this._cipher.scrub(),new Error("data not multiple of block length")},I.prototype.setAutoPadding=function(W){return this._autopadding=!!W,this};function O(){this.cache=Z.allocUnsafe(0)}O.prototype.add=function(W){this.cache=Z.concat([this.cache,W])},O.prototype.get=function(){if(this.cache.length>15){var W=this.cache.slice(0,16);return this.cache=this.cache.slice(16),W}return null},O.prototype.flush=function(){for(var W=16-this.cache.length,H=Z.allocUnsafe(W),E=-1;++E16)return H=this.cache.slice(0,16),this.cache=this.cache.slice(16),H}else if(this.cache.length>=16)return H=this.cache.slice(0,16),this.cache=this.cache.slice(16),H;return null},J.prototype.flush=function(){if(this.cache.length)return this.cache};function O(W){var H=W[15];if(H<1||H>16)throw new Error("unable to decrypt data");for(var E=-1;++E0?j:k},U.min=function(j,k){return j.cmp(k)<0?j:k},U.prototype._init=function(j,k,g){if(typeof j=="number")return this._initNumber(j,k,g);if(typeof j=="object")return this._initArray(j,k,g);k==="hex"&&(k=16),G(k===(k|0)&&k>=2&&k<=36),j=j.toString().replace(/\s+/g,"");var N=0;j[0]==="-"&&(N++,this.negative=1),N=0;N-=3)_=j[N]|j[N-1]<<8|j[N-2]<<16,this.words[x]|=_<>>26-B&67108863,B+=24,B>=26&&(B-=26,x++);else if(g==="le")for(N=0,x=0;N>>26-B&67108863,B+=24,B>=26&&(B-=26,x++);return this.strip()};function K(j,k){var g=j.charCodeAt(k);return g>=65&&g<=70?g-55:g>=97&&g<=102?g-87:g-48&15}function I(j,k,g){var N=K(j,g);return g-1>=k&&(N|=K(j,g-1)<<4),N}U.prototype._parseHex=function(j,k,g){this.length=Math.ceil((j.length-k)/6),this.words=new Array(this.length);for(var N=0;N=k;N-=2)B=I(j,k,N)<=18?(x-=18,_+=1,this.words[_]|=B>>>26):x+=8;else{var y=j.length-k;for(N=y%2===0?k+1:k;N=18?(x-=18,_+=1,this.words[_]|=B>>>26):x+=8}this.strip()};function J(j,k,g,N){for(var x=0,_=Math.min(j.length,g),B=k;B<_;B++){var y=j.charCodeAt(B)-48;x*=N,y>=49?x+=y-49+10:y>=17?x+=y-17+10:x+=y}return x}U.prototype._parseBase=function(j,k,g){this.words=[0],this.length=1;for(var N=0,x=1;x<=67108863;x*=k)N++;N--,x=x/k|0;for(var _=j.length-g,B=_%N,y=Math.min(_,_-B)+g,w=0,f=g;f1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},U.prototype.inspect=function(){return(this.red?""};var O=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],F=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],A=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(j,k){j=j||10,k=k|0||1;var g;if(j===16||j==="hex"){g="";for(var N=0,x=0,_=0;_>>24-N&16777215,x!==0||_!==this.length-1?g=O[6-y.length]+y+g:g=y+g,N+=2,N>=26&&(N-=26,_--)}for(x!==0&&(g=x.toString(16)+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(j===(j|0)&&j>=2&&j<=36){var w=F[j],f=A[j];g="";var p=this.clone();for(p.negative=0;!p.isZero();){var c=p.modn(f).toString(j);p=p.idivn(f),p.isZero()?g=c+g:g=O[w-c.length]+c+g}for(this.isZero()&&(g="0"+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var j=this.words[0];return this.length===2?j+=this.words[1]*67108864:this.length===3&&this.words[2]===1?j+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-j:j},U.prototype.toJSON=function(){return this.toString(16)},U.prototype.toBuffer=function(j,k){return G(typeof X<"u"),this.toArrayLike(X,j,k)},U.prototype.toArray=function(j,k){return this.toArrayLike(Array,j,k)},U.prototype.toArrayLike=function(j,k,g){var N=this.byteLength(),x=g||Math.max(1,N);G(N<=x,"byte array longer than desired length"),G(x>0,"Requested array length <= 0"),this.strip();var _=k==="le",B=new j(x),y,w,f=this.clone();if(_){for(w=0;!f.isZero();w++)y=f.andln(255),f.iushrn(8),B[w]=y;for(;w=4096&&(g+=13,k>>>=13),k>=64&&(g+=7,k>>>=7),k>=8&&(g+=4,k>>>=4),k>=2&&(g+=2,k>>>=2),g+k},U.prototype._zeroBits=function(j){if(j===0)return 26;var k=j,g=0;return(k&8191)===0&&(g+=13,k>>>=13),(k&127)===0&&(g+=7,k>>>=7),(k&15)===0&&(g+=4,k>>>=4),(k&3)===0&&(g+=2,k>>>=2),(k&1)===0&&g++,g},U.prototype.bitLength=function(){var j=this.words[this.length-1],k=this._countBits(j);return(this.length-1)*26+k};function W(j){for(var k=new Array(j.bitLength()),g=0;g>>x}return k}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var j=0,k=0;kj.length?this.clone().ior(j):j.clone().ior(this)},U.prototype.uor=function(j){return this.length>j.length?this.clone().iuor(j):j.clone().iuor(this)},U.prototype.iuand=function(j){var k;this.length>j.length?k=j:k=this;for(var g=0;gj.length?this.clone().iand(j):j.clone().iand(this)},U.prototype.uand=function(j){return this.length>j.length?this.clone().iuand(j):j.clone().iuand(this)},U.prototype.iuxor=function(j){var k,g;this.length>j.length?(k=this,g=j):(k=j,g=this);for(var N=0;Nj.length?this.clone().ixor(j):j.clone().ixor(this)},U.prototype.uxor=function(j){return this.length>j.length?this.clone().iuxor(j):j.clone().iuxor(this)},U.prototype.inotn=function(j){G(typeof j=="number"&&j>=0);var k=Math.ceil(j/26)|0,g=j%26;this._expand(k),g>0&&k--;for(var N=0;N0&&(this.words[N]=~this.words[N]&67108863>>26-g),this.strip()},U.prototype.notn=function(j){return this.clone().inotn(j)},U.prototype.setn=function(j,k){G(typeof j=="number"&&j>=0);var g=j/26|0,N=j%26;return this._expand(g+1),k?this.words[g]=this.words[g]|1<j.length?(g=this,N=j):(g=j,N=this);for(var x=0,_=0;_>>26;for(;x!==0&&_>>26;if(this.length=g.length,x!==0)this.words[this.length]=x,this.length++;else if(g!==this)for(;_j.length?this.clone().iadd(j):j.clone().iadd(this)},U.prototype.isub=function(j){if(j.negative!==0){j.negative=0;var k=this.iadd(j);return j.negative=1,k._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(j),this.negative=1,this._normSign();var g=this.cmp(j);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var N,x;g>0?(N=this,x=j):(N=j,x=this);for(var _=0,B=0;B>26,this.words[B]=k&67108863;for(;_!==0&&B>26,this.words[B]=k&67108863;if(_===0&&B>>26,c=w&67108863,h=Math.min(f,k.length-1),d=Math.max(0,f-j.length+1);d<=h;d++){var b=f-d|0;x=j.words[b]|0,_=k.words[d]|0,B=x*_+c,p+=B/67108864|0,c=B&67108863}g.words[f]=c|0,w=p|0}return w!==0?g.words[f]=w|0:g.length--,g.strip()}var E=function(j,k,g){var N=j.words,x=k.words,_=g.words,B=0,y,w,f,p=N[0]|0,c=p&8191,h=p>>>13,d=N[1]|0,b=d&8191,l=d>>>13,o=N[2]|0,u=o&8191,n=o>>>13,s=N[3]|0,t=s&8191,m=s>>>13,a=N[4]|0,r=a&8191,e=a>>>13,i=N[5]|0,$0=i&8191,Q0=i>>>13,Y0=N[6]|0,Z0=Y0&8191,G0=Y0>>>13,V0=N[7]|0,U0=V0&8191,X0=V0>>>13,K0=N[8]|0,I0=K0&8191,J0=K0>>>13,O0=N[9]|0,F0=O0&8191,A0=O0>>>13,W0=x[0]|0,H0=W0&8191,E0=W0>>>13,T0=x[1]|0,D0=T0&8191,C0=T0>>>13,L0=x[2]|0,R0=L0&8191,P0=L0>>>13,z0=x[3]|0,M0=z0&8191,S0=z0>>>13,v0=x[4]|0,q0=v0&8191,j0=v0>>>13,k0=x[5]|0,g0=k0&8191,N0=k0>>>13,x0=x[6]|0,_0=x0&8191,B0=x0>>>13,y0=x[7]|0,w0=y0&8191,f0=y0>>>13,p0=x[8]|0,c0=p0&8191,h0=p0>>>13,d0=x[9]|0,b0=d0&8191,l0=d0>>>13;g.negative=j.negative^k.negative,g.length=19,y=Math.imul(c,H0),w=Math.imul(c,E0),w=w+Math.imul(h,H0)|0,f=Math.imul(h,E0);var o0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(o0>>>26)|0,o0&=67108863,y=Math.imul(b,H0),w=Math.imul(b,E0),w=w+Math.imul(l,H0)|0,f=Math.imul(l,E0),y=y+Math.imul(c,D0)|0,w=w+Math.imul(c,C0)|0,w=w+Math.imul(h,D0)|0,f=f+Math.imul(h,C0)|0;var u0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(u0>>>26)|0,u0&=67108863,y=Math.imul(u,H0),w=Math.imul(u,E0),w=w+Math.imul(n,H0)|0,f=Math.imul(n,E0),y=y+Math.imul(b,D0)|0,w=w+Math.imul(b,C0)|0,w=w+Math.imul(l,D0)|0,f=f+Math.imul(l,C0)|0,y=y+Math.imul(c,R0)|0,w=w+Math.imul(c,P0)|0,w=w+Math.imul(h,R0)|0,f=f+Math.imul(h,P0)|0;var n0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(n0>>>26)|0,n0&=67108863,y=Math.imul(t,H0),w=Math.imul(t,E0),w=w+Math.imul(m,H0)|0,f=Math.imul(m,E0),y=y+Math.imul(u,D0)|0,w=w+Math.imul(u,C0)|0,w=w+Math.imul(n,D0)|0,f=f+Math.imul(n,C0)|0,y=y+Math.imul(b,R0)|0,w=w+Math.imul(b,P0)|0,w=w+Math.imul(l,R0)|0,f=f+Math.imul(l,P0)|0,y=y+Math.imul(c,M0)|0,w=w+Math.imul(c,S0)|0,w=w+Math.imul(h,M0)|0,f=f+Math.imul(h,S0)|0;var s0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(s0>>>26)|0,s0&=67108863,y=Math.imul(r,H0),w=Math.imul(r,E0),w=w+Math.imul(e,H0)|0,f=Math.imul(e,E0),y=y+Math.imul(t,D0)|0,w=w+Math.imul(t,C0)|0,w=w+Math.imul(m,D0)|0,f=f+Math.imul(m,C0)|0,y=y+Math.imul(u,R0)|0,w=w+Math.imul(u,P0)|0,w=w+Math.imul(n,R0)|0,f=f+Math.imul(n,P0)|0,y=y+Math.imul(b,M0)|0,w=w+Math.imul(b,S0)|0,w=w+Math.imul(l,M0)|0,f=f+Math.imul(l,S0)|0,y=y+Math.imul(c,q0)|0,w=w+Math.imul(c,j0)|0,w=w+Math.imul(h,q0)|0,f=f+Math.imul(h,j0)|0;var t0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(t0>>>26)|0,t0&=67108863,y=Math.imul($0,H0),w=Math.imul($0,E0),w=w+Math.imul(Q0,H0)|0,f=Math.imul(Q0,E0),y=y+Math.imul(r,D0)|0,w=w+Math.imul(r,C0)|0,w=w+Math.imul(e,D0)|0,f=f+Math.imul(e,C0)|0,y=y+Math.imul(t,R0)|0,w=w+Math.imul(t,P0)|0,w=w+Math.imul(m,R0)|0,f=f+Math.imul(m,P0)|0,y=y+Math.imul(u,M0)|0,w=w+Math.imul(u,S0)|0,w=w+Math.imul(n,M0)|0,f=f+Math.imul(n,S0)|0,y=y+Math.imul(b,q0)|0,w=w+Math.imul(b,j0)|0,w=w+Math.imul(l,q0)|0,f=f+Math.imul(l,j0)|0,y=y+Math.imul(c,g0)|0,w=w+Math.imul(c,N0)|0,w=w+Math.imul(h,g0)|0,f=f+Math.imul(h,N0)|0;var m0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(m0>>>26)|0,m0&=67108863,y=Math.imul(Z0,H0),w=Math.imul(Z0,E0),w=w+Math.imul(G0,H0)|0,f=Math.imul(G0,E0),y=y+Math.imul($0,D0)|0,w=w+Math.imul($0,C0)|0,w=w+Math.imul(Q0,D0)|0,f=f+Math.imul(Q0,C0)|0,y=y+Math.imul(r,R0)|0,w=w+Math.imul(r,P0)|0,w=w+Math.imul(e,R0)|0,f=f+Math.imul(e,P0)|0,y=y+Math.imul(t,M0)|0,w=w+Math.imul(t,S0)|0,w=w+Math.imul(m,M0)|0,f=f+Math.imul(m,S0)|0,y=y+Math.imul(u,q0)|0,w=w+Math.imul(u,j0)|0,w=w+Math.imul(n,q0)|0,f=f+Math.imul(n,j0)|0,y=y+Math.imul(b,g0)|0,w=w+Math.imul(b,N0)|0,w=w+Math.imul(l,g0)|0,f=f+Math.imul(l,N0)|0,y=y+Math.imul(c,_0)|0,w=w+Math.imul(c,B0)|0,w=w+Math.imul(h,_0)|0,f=f+Math.imul(h,B0)|0;var a0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(a0>>>26)|0,a0&=67108863,y=Math.imul(U0,H0),w=Math.imul(U0,E0),w=w+Math.imul(X0,H0)|0,f=Math.imul(X0,E0),y=y+Math.imul(Z0,D0)|0,w=w+Math.imul(Z0,C0)|0,w=w+Math.imul(G0,D0)|0,f=f+Math.imul(G0,C0)|0,y=y+Math.imul($0,R0)|0,w=w+Math.imul($0,P0)|0,w=w+Math.imul(Q0,R0)|0,f=f+Math.imul(Q0,P0)|0,y=y+Math.imul(r,M0)|0,w=w+Math.imul(r,S0)|0,w=w+Math.imul(e,M0)|0,f=f+Math.imul(e,S0)|0,y=y+Math.imul(t,q0)|0,w=w+Math.imul(t,j0)|0,w=w+Math.imul(m,q0)|0,f=f+Math.imul(m,j0)|0,y=y+Math.imul(u,g0)|0,w=w+Math.imul(u,N0)|0,w=w+Math.imul(n,g0)|0,f=f+Math.imul(n,N0)|0,y=y+Math.imul(b,_0)|0,w=w+Math.imul(b,B0)|0,w=w+Math.imul(l,_0)|0,f=f+Math.imul(l,B0)|0,y=y+Math.imul(c,w0)|0,w=w+Math.imul(c,f0)|0,w=w+Math.imul(h,w0)|0,f=f+Math.imul(h,f0)|0;var r0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(r0>>>26)|0,r0&=67108863,y=Math.imul(I0,H0),w=Math.imul(I0,E0),w=w+Math.imul(J0,H0)|0,f=Math.imul(J0,E0),y=y+Math.imul(U0,D0)|0,w=w+Math.imul(U0,C0)|0,w=w+Math.imul(X0,D0)|0,f=f+Math.imul(X0,C0)|0,y=y+Math.imul(Z0,R0)|0,w=w+Math.imul(Z0,P0)|0,w=w+Math.imul(G0,R0)|0,f=f+Math.imul(G0,P0)|0,y=y+Math.imul($0,M0)|0,w=w+Math.imul($0,S0)|0,w=w+Math.imul(Q0,M0)|0,f=f+Math.imul(Q0,S0)|0,y=y+Math.imul(r,q0)|0,w=w+Math.imul(r,j0)|0,w=w+Math.imul(e,q0)|0,f=f+Math.imul(e,j0)|0,y=y+Math.imul(t,g0)|0,w=w+Math.imul(t,N0)|0,w=w+Math.imul(m,g0)|0,f=f+Math.imul(m,N0)|0,y=y+Math.imul(u,_0)|0,w=w+Math.imul(u,B0)|0,w=w+Math.imul(n,_0)|0,f=f+Math.imul(n,B0)|0,y=y+Math.imul(b,w0)|0,w=w+Math.imul(b,f0)|0,w=w+Math.imul(l,w0)|0,f=f+Math.imul(l,f0)|0,y=y+Math.imul(c,c0)|0,w=w+Math.imul(c,h0)|0,w=w+Math.imul(h,c0)|0,f=f+Math.imul(h,h0)|0;var e0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(e0>>>26)|0,e0&=67108863,y=Math.imul(F0,H0),w=Math.imul(F0,E0),w=w+Math.imul(A0,H0)|0,f=Math.imul(A0,E0),y=y+Math.imul(I0,D0)|0,w=w+Math.imul(I0,C0)|0,w=w+Math.imul(J0,D0)|0,f=f+Math.imul(J0,C0)|0,y=y+Math.imul(U0,R0)|0,w=w+Math.imul(U0,P0)|0,w=w+Math.imul(X0,R0)|0,f=f+Math.imul(X0,P0)|0,y=y+Math.imul(Z0,M0)|0,w=w+Math.imul(Z0,S0)|0,w=w+Math.imul(G0,M0)|0,f=f+Math.imul(G0,S0)|0,y=y+Math.imul($0,q0)|0,w=w+Math.imul($0,j0)|0,w=w+Math.imul(Q0,q0)|0,f=f+Math.imul(Q0,j0)|0,y=y+Math.imul(r,g0)|0,w=w+Math.imul(r,N0)|0,w=w+Math.imul(e,g0)|0,f=f+Math.imul(e,N0)|0,y=y+Math.imul(t,_0)|0,w=w+Math.imul(t,B0)|0,w=w+Math.imul(m,_0)|0,f=f+Math.imul(m,B0)|0,y=y+Math.imul(u,w0)|0,w=w+Math.imul(u,f0)|0,w=w+Math.imul(n,w0)|0,f=f+Math.imul(n,f0)|0,y=y+Math.imul(b,c0)|0,w=w+Math.imul(b,h0)|0,w=w+Math.imul(l,c0)|0,f=f+Math.imul(l,h0)|0,y=y+Math.imul(c,b0)|0,w=w+Math.imul(c,l0)|0,w=w+Math.imul(h,b0)|0,f=f+Math.imul(h,l0)|0;var i0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(i0>>>26)|0,i0&=67108863,y=Math.imul(F0,D0),w=Math.imul(F0,C0),w=w+Math.imul(A0,D0)|0,f=Math.imul(A0,C0),y=y+Math.imul(I0,R0)|0,w=w+Math.imul(I0,P0)|0,w=w+Math.imul(J0,R0)|0,f=f+Math.imul(J0,P0)|0,y=y+Math.imul(U0,M0)|0,w=w+Math.imul(U0,S0)|0,w=w+Math.imul(X0,M0)|0,f=f+Math.imul(X0,S0)|0,y=y+Math.imul(Z0,q0)|0,w=w+Math.imul(Z0,j0)|0,w=w+Math.imul(G0,q0)|0,f=f+Math.imul(G0,j0)|0,y=y+Math.imul($0,g0)|0,w=w+Math.imul($0,N0)|0,w=w+Math.imul(Q0,g0)|0,f=f+Math.imul(Q0,N0)|0,y=y+Math.imul(r,_0)|0,w=w+Math.imul(r,B0)|0,w=w+Math.imul(e,_0)|0,f=f+Math.imul(e,B0)|0,y=y+Math.imul(t,w0)|0,w=w+Math.imul(t,f0)|0,w=w+Math.imul(m,w0)|0,f=f+Math.imul(m,f0)|0,y=y+Math.imul(u,c0)|0,w=w+Math.imul(u,h0)|0,w=w+Math.imul(n,c0)|0,f=f+Math.imul(n,h0)|0,y=y+Math.imul(b,b0)|0,w=w+Math.imul(b,l0)|0,w=w+Math.imul(l,b0)|0,f=f+Math.imul(l,l0)|0;var $$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+($$>>>26)|0,$$&=67108863,y=Math.imul(F0,R0),w=Math.imul(F0,P0),w=w+Math.imul(A0,R0)|0,f=Math.imul(A0,P0),y=y+Math.imul(I0,M0)|0,w=w+Math.imul(I0,S0)|0,w=w+Math.imul(J0,M0)|0,f=f+Math.imul(J0,S0)|0,y=y+Math.imul(U0,q0)|0,w=w+Math.imul(U0,j0)|0,w=w+Math.imul(X0,q0)|0,f=f+Math.imul(X0,j0)|0,y=y+Math.imul(Z0,g0)|0,w=w+Math.imul(Z0,N0)|0,w=w+Math.imul(G0,g0)|0,f=f+Math.imul(G0,N0)|0,y=y+Math.imul($0,_0)|0,w=w+Math.imul($0,B0)|0,w=w+Math.imul(Q0,_0)|0,f=f+Math.imul(Q0,B0)|0,y=y+Math.imul(r,w0)|0,w=w+Math.imul(r,f0)|0,w=w+Math.imul(e,w0)|0,f=f+Math.imul(e,f0)|0,y=y+Math.imul(t,c0)|0,w=w+Math.imul(t,h0)|0,w=w+Math.imul(m,c0)|0,f=f+Math.imul(m,h0)|0,y=y+Math.imul(u,b0)|0,w=w+Math.imul(u,l0)|0,w=w+Math.imul(n,b0)|0,f=f+Math.imul(n,l0)|0;var Q$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,y=Math.imul(F0,M0),w=Math.imul(F0,S0),w=w+Math.imul(A0,M0)|0,f=Math.imul(A0,S0),y=y+Math.imul(I0,q0)|0,w=w+Math.imul(I0,j0)|0,w=w+Math.imul(J0,q0)|0,f=f+Math.imul(J0,j0)|0,y=y+Math.imul(U0,g0)|0,w=w+Math.imul(U0,N0)|0,w=w+Math.imul(X0,g0)|0,f=f+Math.imul(X0,N0)|0,y=y+Math.imul(Z0,_0)|0,w=w+Math.imul(Z0,B0)|0,w=w+Math.imul(G0,_0)|0,f=f+Math.imul(G0,B0)|0,y=y+Math.imul($0,w0)|0,w=w+Math.imul($0,f0)|0,w=w+Math.imul(Q0,w0)|0,f=f+Math.imul(Q0,f0)|0,y=y+Math.imul(r,c0)|0,w=w+Math.imul(r,h0)|0,w=w+Math.imul(e,c0)|0,f=f+Math.imul(e,h0)|0,y=y+Math.imul(t,b0)|0,w=w+Math.imul(t,l0)|0,w=w+Math.imul(m,b0)|0,f=f+Math.imul(m,l0)|0;var Y$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,y=Math.imul(F0,q0),w=Math.imul(F0,j0),w=w+Math.imul(A0,q0)|0,f=Math.imul(A0,j0),y=y+Math.imul(I0,g0)|0,w=w+Math.imul(I0,N0)|0,w=w+Math.imul(J0,g0)|0,f=f+Math.imul(J0,N0)|0,y=y+Math.imul(U0,_0)|0,w=w+Math.imul(U0,B0)|0,w=w+Math.imul(X0,_0)|0,f=f+Math.imul(X0,B0)|0,y=y+Math.imul(Z0,w0)|0,w=w+Math.imul(Z0,f0)|0,w=w+Math.imul(G0,w0)|0,f=f+Math.imul(G0,f0)|0,y=y+Math.imul($0,c0)|0,w=w+Math.imul($0,h0)|0,w=w+Math.imul(Q0,c0)|0,f=f+Math.imul(Q0,h0)|0,y=y+Math.imul(r,b0)|0,w=w+Math.imul(r,l0)|0,w=w+Math.imul(e,b0)|0,f=f+Math.imul(e,l0)|0;var Z$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,y=Math.imul(F0,g0),w=Math.imul(F0,N0),w=w+Math.imul(A0,g0)|0,f=Math.imul(A0,N0),y=y+Math.imul(I0,_0)|0,w=w+Math.imul(I0,B0)|0,w=w+Math.imul(J0,_0)|0,f=f+Math.imul(J0,B0)|0,y=y+Math.imul(U0,w0)|0,w=w+Math.imul(U0,f0)|0,w=w+Math.imul(X0,w0)|0,f=f+Math.imul(X0,f0)|0,y=y+Math.imul(Z0,c0)|0,w=w+Math.imul(Z0,h0)|0,w=w+Math.imul(G0,c0)|0,f=f+Math.imul(G0,h0)|0,y=y+Math.imul($0,b0)|0,w=w+Math.imul($0,l0)|0,w=w+Math.imul(Q0,b0)|0,f=f+Math.imul(Q0,l0)|0;var G$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(G$>>>26)|0,G$&=67108863,y=Math.imul(F0,_0),w=Math.imul(F0,B0),w=w+Math.imul(A0,_0)|0,f=Math.imul(A0,B0),y=y+Math.imul(I0,w0)|0,w=w+Math.imul(I0,f0)|0,w=w+Math.imul(J0,w0)|0,f=f+Math.imul(J0,f0)|0,y=y+Math.imul(U0,c0)|0,w=w+Math.imul(U0,h0)|0,w=w+Math.imul(X0,c0)|0,f=f+Math.imul(X0,h0)|0,y=y+Math.imul(Z0,b0)|0,w=w+Math.imul(Z0,l0)|0,w=w+Math.imul(G0,b0)|0,f=f+Math.imul(G0,l0)|0;var V$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(V$>>>26)|0,V$&=67108863,y=Math.imul(F0,w0),w=Math.imul(F0,f0),w=w+Math.imul(A0,w0)|0,f=Math.imul(A0,f0),y=y+Math.imul(I0,c0)|0,w=w+Math.imul(I0,h0)|0,w=w+Math.imul(J0,c0)|0,f=f+Math.imul(J0,h0)|0,y=y+Math.imul(U0,b0)|0,w=w+Math.imul(U0,l0)|0,w=w+Math.imul(X0,b0)|0,f=f+Math.imul(X0,l0)|0;var U$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(U$>>>26)|0,U$&=67108863,y=Math.imul(F0,c0),w=Math.imul(F0,h0),w=w+Math.imul(A0,c0)|0,f=Math.imul(A0,h0),y=y+Math.imul(I0,b0)|0,w=w+Math.imul(I0,l0)|0,w=w+Math.imul(J0,b0)|0,f=f+Math.imul(J0,l0)|0;var X$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(X$>>>26)|0,X$&=67108863,y=Math.imul(F0,b0),w=Math.imul(F0,l0),w=w+Math.imul(A0,b0)|0,f=Math.imul(A0,l0);var K$=(B+y|0)+((w&8191)<<13)|0;return B=(f+(w>>>13)|0)+(K$>>>26)|0,K$&=67108863,_[0]=o0,_[1]=u0,_[2]=n0,_[3]=s0,_[4]=t0,_[5]=m0,_[6]=a0,_[7]=r0,_[8]=e0,_[9]=i0,_[10]=$$,_[11]=Q$,_[12]=Y$,_[13]=Z$,_[14]=G$,_[15]=V$,_[16]=U$,_[17]=X$,_[18]=K$,B!==0&&(_[19]=B,g.length++),g};Math.imul||(E=H);function T(j,k,g){g.negative=k.negative^j.negative,g.length=j.length+k.length;for(var N=0,x=0,_=0;_>>26)|0,x+=B>>>26,B&=67108863}g.words[_]=y,N=B,B=x}return N!==0?g.words[_]=N:g.length--,g.strip()}function D(j,k,g){var N=new C;return N.mulp(j,k,g)}U.prototype.mulTo=function(j,k){var g,N=this.length+j.length;return this.length===10&&j.length===10?g=E(this,j,k):N<63?g=H(this,j,k):N<1024?g=T(this,j,k):g=D(this,j,k),g};function C(j,k){this.x=j,this.y=k}C.prototype.makeRBT=function(j){for(var k=new Array(j),g=U.prototype._countBits(j)-1,N=0;N>=1;return N},C.prototype.permute=function(j,k,g,N,x,_){for(var B=0;B<_;B++)N[B]=k[j[B]],x[B]=g[j[B]]},C.prototype.transform=function(j,k,g,N,x,_){this.permute(_,j,k,g,N,x);for(var B=1;B>>1)x++;return 1<>>13,g[2*_+1]=x&8191,x=x>>>13;for(_=2*k;_>=26,k+=N/67108864|0,k+=x>>>26,this.words[g]=x&67108863}return k!==0&&(this.words[g]=k,this.length++),this},U.prototype.muln=function(j){return this.clone().imuln(j)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(j){var k=W(j);if(k.length===0)return new U(1);for(var g=this,N=0;N=0);var k=j%26,g=(j-k)/26,N=67108863>>>26-k<<26-k,x;if(k!==0){var _=0;for(x=0;x>>26-k}_&&(this.words[x]=_,this.length++)}if(g!==0){for(x=this.length-1;x>=0;x--)this.words[x+g]=this.words[x];for(x=0;x=0);var N;k?N=(k-k%26)/26:N=0;var x=j%26,_=Math.min((j-x)/26,this.length),B=67108863^67108863>>>x<_)for(this.length-=_,w=0;w=0&&(f!==0||w>=N);w--){var p=this.words[w]|0;this.words[w]=f<<26-x|p>>>x,f=p&B}return y&&f!==0&&(y.words[y.length++]=f),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},U.prototype.ishrn=function(j,k,g){return G(this.negative===0),this.iushrn(j,k,g)},U.prototype.shln=function(j){return this.clone().ishln(j)},U.prototype.ushln=function(j){return this.clone().iushln(j)},U.prototype.shrn=function(j){return this.clone().ishrn(j)},U.prototype.ushrn=function(j){return this.clone().iushrn(j)},U.prototype.testn=function(j){G(typeof j=="number"&&j>=0);var k=j%26,g=(j-k)/26,N=1<=0);var k=j%26,g=(j-k)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(k!==0&&g++,this.length=Math.min(g,this.length),k!==0){var N=67108863^67108863>>>k<=67108864;k++)this.words[k]-=67108864,k===this.length-1?this.words[k+1]=1:this.words[k+1]++;return this.length=Math.max(this.length,k+1),this},U.prototype.isubn=function(j){if(G(typeof j=="number"),G(j<67108864),j<0)return this.iaddn(-j);if(this.negative!==0)return this.negative=0,this.iaddn(j),this.negative=1,this;if(this.words[0]-=j,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var k=0;k>26)-(y/67108864|0),this.words[x+g]=_&67108863}for(;x>26,this.words[x+g]=_&67108863;if(B===0)return this.strip();for(G(B===-1),B=0,x=0;x>26,this.words[x]=_&67108863;return this.negative=1,this.strip()},U.prototype._wordDiv=function(j,k){var g=this.length-j.length,N=this.clone(),x=j,_=x.words[x.length-1]|0,B=this._countBits(_);g=26-B,g!==0&&(x=x.ushln(g),N.iushln(g),_=x.words[x.length-1]|0);var y=N.length-x.length,w;if(k!=="mod"){w=new U(null),w.length=y+1,w.words=new Array(w.length);for(var f=0;f=0;c--){var h=(N.words[x.length+c]|0)*67108864+(N.words[x.length+c-1]|0);for(h=Math.min(h/_|0,67108863),N._ishlnsubmul(x,h,c);N.negative!==0;)h--,N.negative=0,N._ishlnsubmul(x,1,c),N.isZero()||(N.negative^=1);w&&(w.words[c]=h)}return w&&w.strip(),N.strip(),k!=="div"&&g!==0&&N.iushrn(g),{div:w||null,mod:N}},U.prototype.divmod=function(j,k,g){if(G(!j.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var N,x,_;return this.negative!==0&&j.negative===0?(_=this.neg().divmod(j,k),k!=="mod"&&(N=_.div.neg()),k!=="div"&&(x=_.mod.neg(),g&&x.negative!==0&&x.iadd(j)),{div:N,mod:x}):this.negative===0&&j.negative!==0?(_=this.divmod(j.neg(),k),k!=="mod"&&(N=_.div.neg()),{div:N,mod:_.mod}):(this.negative&j.negative)!==0?(_=this.neg().divmod(j.neg(),k),k!=="div"&&(x=_.mod.neg(),g&&x.negative!==0&&x.isub(j)),{div:_.div,mod:x}):j.length>this.length||this.cmp(j)<0?{div:new U(0),mod:this}:j.length===1?k==="div"?{div:this.divn(j.words[0]),mod:null}:k==="mod"?{div:null,mod:new U(this.modn(j.words[0]))}:{div:this.divn(j.words[0]),mod:new U(this.modn(j.words[0]))}:this._wordDiv(j,k)},U.prototype.div=function(j){return this.divmod(j,"div",!1).div},U.prototype.mod=function(j){return this.divmod(j,"mod",!1).mod},U.prototype.umod=function(j){return this.divmod(j,"mod",!0).mod},U.prototype.divRound=function(j){var k=this.divmod(j);if(k.mod.isZero())return k.div;var g=k.div.negative!==0?k.mod.isub(j):k.mod,N=j.ushrn(1),x=j.andln(1),_=g.cmp(N);return _<0||x===1&&_===0?k.div:k.div.negative!==0?k.div.isubn(1):k.div.iaddn(1)},U.prototype.modn=function(j){G(j<=67108863);for(var k=(1<<26)%j,g=0,N=this.length-1;N>=0;N--)g=(k*g+(this.words[N]|0))%j;return g},U.prototype.idivn=function(j){G(j<=67108863);for(var k=0,g=this.length-1;g>=0;g--){var N=(this.words[g]|0)+k*67108864;this.words[g]=N/j|0,k=N%j}return this.strip()},U.prototype.divn=function(j){return this.clone().idivn(j)},U.prototype.egcd=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var N=new U(1),x=new U(0),_=new U(0),B=new U(1),y=0;k.isEven()&&g.isEven();)k.iushrn(1),g.iushrn(1),++y;for(var w=g.clone(),f=k.clone();!k.isZero();){for(var p=0,c=1;(k.words[0]&c)===0&&p<26;++p,c<<=1);if(p>0)for(k.iushrn(p);p-- >0;)(N.isOdd()||x.isOdd())&&(N.iadd(w),x.isub(f)),N.iushrn(1),x.iushrn(1);for(var h=0,d=1;(g.words[0]&d)===0&&h<26;++h,d<<=1);if(h>0)for(g.iushrn(h);h-- >0;)(_.isOdd()||B.isOdd())&&(_.iadd(w),B.isub(f)),_.iushrn(1),B.iushrn(1);k.cmp(g)>=0?(k.isub(g),N.isub(_),x.isub(B)):(g.isub(k),_.isub(N),B.isub(x))}return{a:_,b:B,gcd:g.iushln(y)}},U.prototype._invmp=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var N=new U(1),x=new U(0),_=g.clone();k.cmpn(1)>0&&g.cmpn(1)>0;){for(var B=0,y=1;(k.words[0]&y)===0&&B<26;++B,y<<=1);if(B>0)for(k.iushrn(B);B-- >0;)N.isOdd()&&N.iadd(_),N.iushrn(1);for(var w=0,f=1;(g.words[0]&f)===0&&w<26;++w,f<<=1);if(w>0)for(g.iushrn(w);w-- >0;)x.isOdd()&&x.iadd(_),x.iushrn(1);k.cmp(g)>=0?(k.isub(g),N.isub(x)):(g.isub(k),x.isub(N))}var p;return k.cmpn(1)===0?p=N:p=x,p.cmpn(0)<0&&p.iadd(j),p},U.prototype.gcd=function(j){if(this.isZero())return j.abs();if(j.isZero())return this.abs();var k=this.clone(),g=j.clone();k.negative=0,g.negative=0;for(var N=0;k.isEven()&&g.isEven();N++)k.iushrn(1),g.iushrn(1);do{for(;k.isEven();)k.iushrn(1);for(;g.isEven();)g.iushrn(1);var x=k.cmp(g);if(x<0){var _=k;k=g,g=_}else if(x===0||g.cmpn(1)===0)break;k.isub(g)}while(!0);return g.iushln(N)},U.prototype.invm=function(j){return this.egcd(j).a.umod(j)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(j){return this.words[0]&j},U.prototype.bincn=function(j){G(typeof j=="number");var k=j%26,g=(j-k)/26,N=1<>>26,B&=67108863,this.words[_]=B}return x!==0&&(this.words[_]=x,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(j){var k=j<0;if(this.negative!==0&&!k)return-1;if(this.negative===0&&k)return 1;this.strip();var g;if(this.length>1)g=1;else{k&&(j=-j),G(j<=67108863,"Number is too big");var N=this.words[0]|0;g=N===j?0:Nj.length)return 1;if(this.length=0;g--){var N=this.words[g]|0,x=j.words[g]|0;if(N!==x){Nx&&(k=1);break}}return k},U.prototype.gtn=function(j){return this.cmpn(j)===1},U.prototype.gt=function(j){return this.cmp(j)===1},U.prototype.gten=function(j){return this.cmpn(j)>=0},U.prototype.gte=function(j){return this.cmp(j)>=0},U.prototype.ltn=function(j){return this.cmpn(j)===-1},U.prototype.lt=function(j){return this.cmp(j)===-1},U.prototype.lten=function(j){return this.cmpn(j)<=0},U.prototype.lte=function(j){return this.cmp(j)<=0},U.prototype.eqn=function(j){return this.cmpn(j)===0},U.prototype.eq=function(j){return this.cmp(j)===0},U.red=function(j){return new v(j)},U.prototype.toRed=function(j){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),j.convertTo(this)._forceRed(j)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(j){return this.red=j,this},U.prototype.forceRed=function(j){return G(!this.red,"Already a number in reduction context"),this._forceRed(j)},U.prototype.redAdd=function(j){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,j)},U.prototype.redIAdd=function(j){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,j)},U.prototype.redSub=function(j){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,j)},U.prototype.redISub=function(j){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,j)},U.prototype.redShl=function(j){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,j)},U.prototype.redMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.mul(this,j)},U.prototype.redIMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.imul(this,j)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(j){return G(this.red&&!j.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,j)};var L={k256:null,p224:null,p192:null,p25519:null};function R(j,k){this.name=j,this.p=new U(k,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}R.prototype._tmp=function(){var j=new U(null);return j.words=new Array(Math.ceil(this.n/13)),j},R.prototype.ireduce=function(j){var k=j,g;do this.split(k,this.tmp),k=this.imulK(k),k=k.iadd(this.tmp),g=k.bitLength();while(g>this.n);var N=g0?k.isub(this.p):k.strip!==void 0?k.strip():k._strip(),k},R.prototype.split=function(j,k){j.iushrn(this.n,0,k)},R.prototype.imulK=function(j){return j.imul(this.k)};function P(){R.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(P,R),P.prototype.split=function(j,k){for(var g=4194303,N=Math.min(j.length,9),x=0;x>>22,_=B}_>>>=22,j.words[x-10]=_,_===0&&j.length>10?j.length-=10:j.length-=9},P.prototype.imulK=function(j){j.words[j.length]=0,j.words[j.length+1]=0,j.length+=2;for(var k=0,g=0;g>>=26,j.words[g]=x,k=N}return k!==0&&(j.words[j.length++]=k),j},U._prime=function(j){if(L[j])return L[j];var k;if(j==="k256")k=new P;else if(j==="p224")k=new z;else if(j==="p192")k=new M;else if(j==="p25519")k=new S;else throw new Error("Unknown prime "+j);return L[j]=k,k};function v(j){if(typeof j=="string"){var k=U._prime(j);this.m=k.p,this.prime=k}else G(j.gtn(1),"modulus must be greater than 1"),this.m=j,this.prime=null}v.prototype._verify1=function(j){G(j.negative===0,"red works only with positives"),G(j.red,"red works only with red numbers")},v.prototype._verify2=function(j,k){G((j.negative|k.negative)===0,"red works only with positives"),G(j.red&&j.red===k.red,"red works only with red numbers")},v.prototype.imod=function(j){return this.prime?this.prime.ireduce(j)._forceRed(this):j.umod(this.m)._forceRed(this)},v.prototype.neg=function(j){return j.isZero()?j.clone():this.m.sub(j)._forceRed(this)},v.prototype.add=function(j,k){this._verify2(j,k);var g=j.add(k);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},v.prototype.iadd=function(j,k){this._verify2(j,k);var g=j.iadd(k);return g.cmp(this.m)>=0&&g.isub(this.m),g},v.prototype.sub=function(j,k){this._verify2(j,k);var g=j.sub(k);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},v.prototype.isub=function(j,k){this._verify2(j,k);var g=j.isub(k);return g.cmpn(0)<0&&g.iadd(this.m),g},v.prototype.shl=function(j,k){return this._verify1(j),this.imod(j.ushln(k))},v.prototype.imul=function(j,k){return this._verify2(j,k),this.imod(j.imul(k))},v.prototype.mul=function(j,k){return this._verify2(j,k),this.imod(j.mul(k))},v.prototype.isqr=function(j){return this.imul(j,j.clone())},v.prototype.sqr=function(j){return this.mul(j,j)},v.prototype.sqrt=function(j){if(j.isZero())return j.clone();var k=this.m.andln(3);if(G(k%2===1),k===3){var g=this.m.add(new U(1)).iushrn(2);return this.pow(j,g)}for(var N=this.m.subn(1),x=0;!N.isZero()&&N.andln(1)===0;)x++,N.iushrn(1);G(!N.isZero());var _=new U(1).toRed(this),B=_.redNeg(),y=this.m.subn(1).iushrn(1),w=this.m.bitLength();for(w=new U(2*w*w).toRed(this);this.pow(w,y).cmp(B)!==0;)w.redIAdd(B);for(var f=this.pow(w,N),p=this.pow(j,N.addn(1).iushrn(1)),c=this.pow(j,N),h=x;c.cmp(_)!==0;){for(var d=c,b=0;d.cmp(_)!==0;b++)d=d.redSqr();G(b=0;x--){for(var f=k.words[x],p=w-1;p>=0;p--){var c=f>>p&1;if(_!==N[0]&&(_=this.sqr(_)),c===0&&B===0){y=0;continue}B<<=1,B|=c,y++,!(y!==g&&(x!==0||p!==0))&&(_=this.mul(_,N[B]),y=0,B=0)}w=26}return _},v.prototype.convertTo=function(j){var k=j.umod(this.m);return k===j?k.clone():k},v.prototype.convertFrom=function(j){var k=j.clone();return k.red=null,k},U.mont=function(j){return new q(j)};function q(j){v.call(this,j),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(q,v),q.prototype.convertTo=function(j){return this.imod(j.ushln(this.shift))},q.prototype.convertFrom=function(j){var k=this.imod(j.mul(this.rinv));return k.red=null,k},q.prototype.imul=function(j,k){if(j.isZero()||k.isZero())return j.words[0]=0,j.length=1,j;var g=j.imul(k),N=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),x=g.isub(N).iushrn(this.shift),_=x;return x.cmp(this.m)>=0?_=x.isub(this.m):x.cmpn(0)<0&&(_=x.iadd(this.m)),_._forceRed(this)},q.prototype.mul=function(j,k){if(j.isZero()||k.isZero())return new U(0)._forceRed(this);var g=j.mul(k),N=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),x=g.isub(N).iushrn(this.shift),_=x;return x.cmp(this.m)>=0?_=x.isub(this.m):x.cmpn(0)<0&&(_=x.iadd(this.m)),_._forceRed(this)},q.prototype.invm=function(j){var k=this.imod(j._invmp(this.m).mul(this.r2));return k._forceRed(this)}})(typeof Q>"u"||Q,$)}}),jQ=z$({"node_modules/miller-rabin/node_modules/bn.js/lib/bn.js"($,Q){(function(Y,Z){function G(j,k){if(!j)throw new Error(k||"Assertion failed")}function V(j,k){j.super_=k;var g=function(){};g.prototype=k.prototype,j.prototype=new g,j.prototype.constructor=j}function U(j,k,g){if(U.isBN(j))return j;this.negative=0,this.words=null,this.length=0,this.red=null,j!==null&&((k==="le"||k==="be")&&(g=k,k=10),this._init(j||0,k||10,g||"be"))}typeof Y=="object"?Y.exports=U:Z.BN=U,U.BN=U,U.wordSize=26;var X;try{typeof window<"u"&&typeof window.Buffer<"u"?X=window.Buffer:X=R$("buffer").Buffer}catch{}U.isBN=function(j){return j instanceof U?!0:j!==null&&typeof j=="object"&&j.constructor.wordSize===U.wordSize&&Array.isArray(j.words)},U.max=function(j,k){return j.cmp(k)>0?j:k},U.min=function(j,k){return j.cmp(k)<0?j:k},U.prototype._init=function(j,k,g){if(typeof j=="number")return this._initNumber(j,k,g);if(typeof j=="object")return this._initArray(j,k,g);k==="hex"&&(k=16),G(k===(k|0)&&k>=2&&k<=36),j=j.toString().replace(/\s+/g,"");var N=0;j[0]==="-"&&(N++,this.negative=1),N=0;N-=3)_=j[N]|j[N-1]<<8|j[N-2]<<16,this.words[x]|=_<>>26-B&67108863,B+=24,B>=26&&(B-=26,x++);else if(g==="le")for(N=0,x=0;N>>26-B&67108863,B+=24,B>=26&&(B-=26,x++);return this.strip()};function K(j,k){var g=j.charCodeAt(k);return g>=65&&g<=70?g-55:g>=97&&g<=102?g-87:g-48&15}function I(j,k,g){var N=K(j,g);return g-1>=k&&(N|=K(j,g-1)<<4),N}U.prototype._parseHex=function(j,k,g){this.length=Math.ceil((j.length-k)/6),this.words=new Array(this.length);for(var N=0;N=k;N-=2)B=I(j,k,N)<=18?(x-=18,_+=1,this.words[_]|=B>>>26):x+=8;else{var y=j.length-k;for(N=y%2===0?k+1:k;N=18?(x-=18,_+=1,this.words[_]|=B>>>26):x+=8}this.strip()};function J(j,k,g,N){for(var x=0,_=Math.min(j.length,g),B=k;B<_;B++){var y=j.charCodeAt(B)-48;x*=N,y>=49?x+=y-49+10:y>=17?x+=y-17+10:x+=y}return x}U.prototype._parseBase=function(j,k,g){this.words=[0],this.length=1;for(var N=0,x=1;x<=67108863;x*=k)N++;N--,x=x/k|0;for(var _=j.length-g,B=_%N,y=Math.min(_,_-B)+g,w=0,f=g;f1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},U.prototype.inspect=function(){return(this.red?""};var O=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],F=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],A=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(j,k){j=j||10,k=k|0||1;var g;if(j===16||j==="hex"){g="";for(var N=0,x=0,_=0;_>>24-N&16777215,x!==0||_!==this.length-1?g=O[6-y.length]+y+g:g=y+g,N+=2,N>=26&&(N-=26,_--)}for(x!==0&&(g=x.toString(16)+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(j===(j|0)&&j>=2&&j<=36){var w=F[j],f=A[j];g="";var p=this.clone();for(p.negative=0;!p.isZero();){var c=p.modn(f).toString(j);p=p.idivn(f),p.isZero()?g=c+g:g=O[w-c.length]+c+g}for(this.isZero()&&(g="0"+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var j=this.words[0];return this.length===2?j+=this.words[1]*67108864:this.length===3&&this.words[2]===1?j+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-j:j},U.prototype.toJSON=function(){return this.toString(16)},U.prototype.toBuffer=function(j,k){return G(typeof X<"u"),this.toArrayLike(X,j,k)},U.prototype.toArray=function(j,k){return this.toArrayLike(Array,j,k)},U.prototype.toArrayLike=function(j,k,g){var N=this.byteLength(),x=g||Math.max(1,N);G(N<=x,"byte array longer than desired length"),G(x>0,"Requested array length <= 0"),this.strip();var _=k==="le",B=new j(x),y,w,f=this.clone();if(_){for(w=0;!f.isZero();w++)y=f.andln(255),f.iushrn(8),B[w]=y;for(;w=4096&&(g+=13,k>>>=13),k>=64&&(g+=7,k>>>=7),k>=8&&(g+=4,k>>>=4),k>=2&&(g+=2,k>>>=2),g+k},U.prototype._zeroBits=function(j){if(j===0)return 26;var k=j,g=0;return(k&8191)===0&&(g+=13,k>>>=13),(k&127)===0&&(g+=7,k>>>=7),(k&15)===0&&(g+=4,k>>>=4),(k&3)===0&&(g+=2,k>>>=2),(k&1)===0&&g++,g},U.prototype.bitLength=function(){var j=this.words[this.length-1],k=this._countBits(j);return(this.length-1)*26+k};function W(j){for(var k=new Array(j.bitLength()),g=0;g>>x}return k}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var j=0,k=0;kj.length?this.clone().ior(j):j.clone().ior(this)},U.prototype.uor=function(j){return this.length>j.length?this.clone().iuor(j):j.clone().iuor(this)},U.prototype.iuand=function(j){var k;this.length>j.length?k=j:k=this;for(var g=0;gj.length?this.clone().iand(j):j.clone().iand(this)},U.prototype.uand=function(j){return this.length>j.length?this.clone().iuand(j):j.clone().iuand(this)},U.prototype.iuxor=function(j){var k,g;this.length>j.length?(k=this,g=j):(k=j,g=this);for(var N=0;Nj.length?this.clone().ixor(j):j.clone().ixor(this)},U.prototype.uxor=function(j){return this.length>j.length?this.clone().iuxor(j):j.clone().iuxor(this)},U.prototype.inotn=function(j){G(typeof j=="number"&&j>=0);var k=Math.ceil(j/26)|0,g=j%26;this._expand(k),g>0&&k--;for(var N=0;N0&&(this.words[N]=~this.words[N]&67108863>>26-g),this.strip()},U.prototype.notn=function(j){return this.clone().inotn(j)},U.prototype.setn=function(j,k){G(typeof j=="number"&&j>=0);var g=j/26|0,N=j%26;return this._expand(g+1),k?this.words[g]=this.words[g]|1<j.length?(g=this,N=j):(g=j,N=this);for(var x=0,_=0;_>>26;for(;x!==0&&_>>26;if(this.length=g.length,x!==0)this.words[this.length]=x,this.length++;else if(g!==this)for(;_j.length?this.clone().iadd(j):j.clone().iadd(this)},U.prototype.isub=function(j){if(j.negative!==0){j.negative=0;var k=this.iadd(j);return j.negative=1,k._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(j),this.negative=1,this._normSign();var g=this.cmp(j);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var N,x;g>0?(N=this,x=j):(N=j,x=this);for(var _=0,B=0;B>26,this.words[B]=k&67108863;for(;_!==0&&B>26,this.words[B]=k&67108863;if(_===0&&B>>26,c=w&67108863,h=Math.min(f,k.length-1),d=Math.max(0,f-j.length+1);d<=h;d++){var b=f-d|0;x=j.words[b]|0,_=k.words[d]|0,B=x*_+c,p+=B/67108864|0,c=B&67108863}g.words[f]=c|0,w=p|0}return w!==0?g.words[f]=w|0:g.length--,g.strip()}var E=function(j,k,g){var N=j.words,x=k.words,_=g.words,B=0,y,w,f,p=N[0]|0,c=p&8191,h=p>>>13,d=N[1]|0,b=d&8191,l=d>>>13,o=N[2]|0,u=o&8191,n=o>>>13,s=N[3]|0,t=s&8191,m=s>>>13,a=N[4]|0,r=a&8191,e=a>>>13,i=N[5]|0,$0=i&8191,Q0=i>>>13,Y0=N[6]|0,Z0=Y0&8191,G0=Y0>>>13,V0=N[7]|0,U0=V0&8191,X0=V0>>>13,K0=N[8]|0,I0=K0&8191,J0=K0>>>13,O0=N[9]|0,F0=O0&8191,A0=O0>>>13,W0=x[0]|0,H0=W0&8191,E0=W0>>>13,T0=x[1]|0,D0=T0&8191,C0=T0>>>13,L0=x[2]|0,R0=L0&8191,P0=L0>>>13,z0=x[3]|0,M0=z0&8191,S0=z0>>>13,v0=x[4]|0,q0=v0&8191,j0=v0>>>13,k0=x[5]|0,g0=k0&8191,N0=k0>>>13,x0=x[6]|0,_0=x0&8191,B0=x0>>>13,y0=x[7]|0,w0=y0&8191,f0=y0>>>13,p0=x[8]|0,c0=p0&8191,h0=p0>>>13,d0=x[9]|0,b0=d0&8191,l0=d0>>>13;g.negative=j.negative^k.negative,g.length=19,y=Math.imul(c,H0),w=Math.imul(c,E0),w=w+Math.imul(h,H0)|0,f=Math.imul(h,E0);var o0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(o0>>>26)|0,o0&=67108863,y=Math.imul(b,H0),w=Math.imul(b,E0),w=w+Math.imul(l,H0)|0,f=Math.imul(l,E0),y=y+Math.imul(c,D0)|0,w=w+Math.imul(c,C0)|0,w=w+Math.imul(h,D0)|0,f=f+Math.imul(h,C0)|0;var u0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(u0>>>26)|0,u0&=67108863,y=Math.imul(u,H0),w=Math.imul(u,E0),w=w+Math.imul(n,H0)|0,f=Math.imul(n,E0),y=y+Math.imul(b,D0)|0,w=w+Math.imul(b,C0)|0,w=w+Math.imul(l,D0)|0,f=f+Math.imul(l,C0)|0,y=y+Math.imul(c,R0)|0,w=w+Math.imul(c,P0)|0,w=w+Math.imul(h,R0)|0,f=f+Math.imul(h,P0)|0;var n0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(n0>>>26)|0,n0&=67108863,y=Math.imul(t,H0),w=Math.imul(t,E0),w=w+Math.imul(m,H0)|0,f=Math.imul(m,E0),y=y+Math.imul(u,D0)|0,w=w+Math.imul(u,C0)|0,w=w+Math.imul(n,D0)|0,f=f+Math.imul(n,C0)|0,y=y+Math.imul(b,R0)|0,w=w+Math.imul(b,P0)|0,w=w+Math.imul(l,R0)|0,f=f+Math.imul(l,P0)|0,y=y+Math.imul(c,M0)|0,w=w+Math.imul(c,S0)|0,w=w+Math.imul(h,M0)|0,f=f+Math.imul(h,S0)|0;var s0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(s0>>>26)|0,s0&=67108863,y=Math.imul(r,H0),w=Math.imul(r,E0),w=w+Math.imul(e,H0)|0,f=Math.imul(e,E0),y=y+Math.imul(t,D0)|0,w=w+Math.imul(t,C0)|0,w=w+Math.imul(m,D0)|0,f=f+Math.imul(m,C0)|0,y=y+Math.imul(u,R0)|0,w=w+Math.imul(u,P0)|0,w=w+Math.imul(n,R0)|0,f=f+Math.imul(n,P0)|0,y=y+Math.imul(b,M0)|0,w=w+Math.imul(b,S0)|0,w=w+Math.imul(l,M0)|0,f=f+Math.imul(l,S0)|0,y=y+Math.imul(c,q0)|0,w=w+Math.imul(c,j0)|0,w=w+Math.imul(h,q0)|0,f=f+Math.imul(h,j0)|0;var t0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(t0>>>26)|0,t0&=67108863,y=Math.imul($0,H0),w=Math.imul($0,E0),w=w+Math.imul(Q0,H0)|0,f=Math.imul(Q0,E0),y=y+Math.imul(r,D0)|0,w=w+Math.imul(r,C0)|0,w=w+Math.imul(e,D0)|0,f=f+Math.imul(e,C0)|0,y=y+Math.imul(t,R0)|0,w=w+Math.imul(t,P0)|0,w=w+Math.imul(m,R0)|0,f=f+Math.imul(m,P0)|0,y=y+Math.imul(u,M0)|0,w=w+Math.imul(u,S0)|0,w=w+Math.imul(n,M0)|0,f=f+Math.imul(n,S0)|0,y=y+Math.imul(b,q0)|0,w=w+Math.imul(b,j0)|0,w=w+Math.imul(l,q0)|0,f=f+Math.imul(l,j0)|0,y=y+Math.imul(c,g0)|0,w=w+Math.imul(c,N0)|0,w=w+Math.imul(h,g0)|0,f=f+Math.imul(h,N0)|0;var m0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(m0>>>26)|0,m0&=67108863,y=Math.imul(Z0,H0),w=Math.imul(Z0,E0),w=w+Math.imul(G0,H0)|0,f=Math.imul(G0,E0),y=y+Math.imul($0,D0)|0,w=w+Math.imul($0,C0)|0,w=w+Math.imul(Q0,D0)|0,f=f+Math.imul(Q0,C0)|0,y=y+Math.imul(r,R0)|0,w=w+Math.imul(r,P0)|0,w=w+Math.imul(e,R0)|0,f=f+Math.imul(e,P0)|0,y=y+Math.imul(t,M0)|0,w=w+Math.imul(t,S0)|0,w=w+Math.imul(m,M0)|0,f=f+Math.imul(m,S0)|0,y=y+Math.imul(u,q0)|0,w=w+Math.imul(u,j0)|0,w=w+Math.imul(n,q0)|0,f=f+Math.imul(n,j0)|0,y=y+Math.imul(b,g0)|0,w=w+Math.imul(b,N0)|0,w=w+Math.imul(l,g0)|0,f=f+Math.imul(l,N0)|0,y=y+Math.imul(c,_0)|0,w=w+Math.imul(c,B0)|0,w=w+Math.imul(h,_0)|0,f=f+Math.imul(h,B0)|0;var a0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(a0>>>26)|0,a0&=67108863,y=Math.imul(U0,H0),w=Math.imul(U0,E0),w=w+Math.imul(X0,H0)|0,f=Math.imul(X0,E0),y=y+Math.imul(Z0,D0)|0,w=w+Math.imul(Z0,C0)|0,w=w+Math.imul(G0,D0)|0,f=f+Math.imul(G0,C0)|0,y=y+Math.imul($0,R0)|0,w=w+Math.imul($0,P0)|0,w=w+Math.imul(Q0,R0)|0,f=f+Math.imul(Q0,P0)|0,y=y+Math.imul(r,M0)|0,w=w+Math.imul(r,S0)|0,w=w+Math.imul(e,M0)|0,f=f+Math.imul(e,S0)|0,y=y+Math.imul(t,q0)|0,w=w+Math.imul(t,j0)|0,w=w+Math.imul(m,q0)|0,f=f+Math.imul(m,j0)|0,y=y+Math.imul(u,g0)|0,w=w+Math.imul(u,N0)|0,w=w+Math.imul(n,g0)|0,f=f+Math.imul(n,N0)|0,y=y+Math.imul(b,_0)|0,w=w+Math.imul(b,B0)|0,w=w+Math.imul(l,_0)|0,f=f+Math.imul(l,B0)|0,y=y+Math.imul(c,w0)|0,w=w+Math.imul(c,f0)|0,w=w+Math.imul(h,w0)|0,f=f+Math.imul(h,f0)|0;var r0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(r0>>>26)|0,r0&=67108863,y=Math.imul(I0,H0),w=Math.imul(I0,E0),w=w+Math.imul(J0,H0)|0,f=Math.imul(J0,E0),y=y+Math.imul(U0,D0)|0,w=w+Math.imul(U0,C0)|0,w=w+Math.imul(X0,D0)|0,f=f+Math.imul(X0,C0)|0,y=y+Math.imul(Z0,R0)|0,w=w+Math.imul(Z0,P0)|0,w=w+Math.imul(G0,R0)|0,f=f+Math.imul(G0,P0)|0,y=y+Math.imul($0,M0)|0,w=w+Math.imul($0,S0)|0,w=w+Math.imul(Q0,M0)|0,f=f+Math.imul(Q0,S0)|0,y=y+Math.imul(r,q0)|0,w=w+Math.imul(r,j0)|0,w=w+Math.imul(e,q0)|0,f=f+Math.imul(e,j0)|0,y=y+Math.imul(t,g0)|0,w=w+Math.imul(t,N0)|0,w=w+Math.imul(m,g0)|0,f=f+Math.imul(m,N0)|0,y=y+Math.imul(u,_0)|0,w=w+Math.imul(u,B0)|0,w=w+Math.imul(n,_0)|0,f=f+Math.imul(n,B0)|0,y=y+Math.imul(b,w0)|0,w=w+Math.imul(b,f0)|0,w=w+Math.imul(l,w0)|0,f=f+Math.imul(l,f0)|0,y=y+Math.imul(c,c0)|0,w=w+Math.imul(c,h0)|0,w=w+Math.imul(h,c0)|0,f=f+Math.imul(h,h0)|0;var e0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(e0>>>26)|0,e0&=67108863,y=Math.imul(F0,H0),w=Math.imul(F0,E0),w=w+Math.imul(A0,H0)|0,f=Math.imul(A0,E0),y=y+Math.imul(I0,D0)|0,w=w+Math.imul(I0,C0)|0,w=w+Math.imul(J0,D0)|0,f=f+Math.imul(J0,C0)|0,y=y+Math.imul(U0,R0)|0,w=w+Math.imul(U0,P0)|0,w=w+Math.imul(X0,R0)|0,f=f+Math.imul(X0,P0)|0,y=y+Math.imul(Z0,M0)|0,w=w+Math.imul(Z0,S0)|0,w=w+Math.imul(G0,M0)|0,f=f+Math.imul(G0,S0)|0,y=y+Math.imul($0,q0)|0,w=w+Math.imul($0,j0)|0,w=w+Math.imul(Q0,q0)|0,f=f+Math.imul(Q0,j0)|0,y=y+Math.imul(r,g0)|0,w=w+Math.imul(r,N0)|0,w=w+Math.imul(e,g0)|0,f=f+Math.imul(e,N0)|0,y=y+Math.imul(t,_0)|0,w=w+Math.imul(t,B0)|0,w=w+Math.imul(m,_0)|0,f=f+Math.imul(m,B0)|0,y=y+Math.imul(u,w0)|0,w=w+Math.imul(u,f0)|0,w=w+Math.imul(n,w0)|0,f=f+Math.imul(n,f0)|0,y=y+Math.imul(b,c0)|0,w=w+Math.imul(b,h0)|0,w=w+Math.imul(l,c0)|0,f=f+Math.imul(l,h0)|0,y=y+Math.imul(c,b0)|0,w=w+Math.imul(c,l0)|0,w=w+Math.imul(h,b0)|0,f=f+Math.imul(h,l0)|0;var i0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(i0>>>26)|0,i0&=67108863,y=Math.imul(F0,D0),w=Math.imul(F0,C0),w=w+Math.imul(A0,D0)|0,f=Math.imul(A0,C0),y=y+Math.imul(I0,R0)|0,w=w+Math.imul(I0,P0)|0,w=w+Math.imul(J0,R0)|0,f=f+Math.imul(J0,P0)|0,y=y+Math.imul(U0,M0)|0,w=w+Math.imul(U0,S0)|0,w=w+Math.imul(X0,M0)|0,f=f+Math.imul(X0,S0)|0,y=y+Math.imul(Z0,q0)|0,w=w+Math.imul(Z0,j0)|0,w=w+Math.imul(G0,q0)|0,f=f+Math.imul(G0,j0)|0,y=y+Math.imul($0,g0)|0,w=w+Math.imul($0,N0)|0,w=w+Math.imul(Q0,g0)|0,f=f+Math.imul(Q0,N0)|0,y=y+Math.imul(r,_0)|0,w=w+Math.imul(r,B0)|0,w=w+Math.imul(e,_0)|0,f=f+Math.imul(e,B0)|0,y=y+Math.imul(t,w0)|0,w=w+Math.imul(t,f0)|0,w=w+Math.imul(m,w0)|0,f=f+Math.imul(m,f0)|0,y=y+Math.imul(u,c0)|0,w=w+Math.imul(u,h0)|0,w=w+Math.imul(n,c0)|0,f=f+Math.imul(n,h0)|0,y=y+Math.imul(b,b0)|0,w=w+Math.imul(b,l0)|0,w=w+Math.imul(l,b0)|0,f=f+Math.imul(l,l0)|0;var $$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+($$>>>26)|0,$$&=67108863,y=Math.imul(F0,R0),w=Math.imul(F0,P0),w=w+Math.imul(A0,R0)|0,f=Math.imul(A0,P0),y=y+Math.imul(I0,M0)|0,w=w+Math.imul(I0,S0)|0,w=w+Math.imul(J0,M0)|0,f=f+Math.imul(J0,S0)|0,y=y+Math.imul(U0,q0)|0,w=w+Math.imul(U0,j0)|0,w=w+Math.imul(X0,q0)|0,f=f+Math.imul(X0,j0)|0,y=y+Math.imul(Z0,g0)|0,w=w+Math.imul(Z0,N0)|0,w=w+Math.imul(G0,g0)|0,f=f+Math.imul(G0,N0)|0,y=y+Math.imul($0,_0)|0,w=w+Math.imul($0,B0)|0,w=w+Math.imul(Q0,_0)|0,f=f+Math.imul(Q0,B0)|0,y=y+Math.imul(r,w0)|0,w=w+Math.imul(r,f0)|0,w=w+Math.imul(e,w0)|0,f=f+Math.imul(e,f0)|0,y=y+Math.imul(t,c0)|0,w=w+Math.imul(t,h0)|0,w=w+Math.imul(m,c0)|0,f=f+Math.imul(m,h0)|0,y=y+Math.imul(u,b0)|0,w=w+Math.imul(u,l0)|0,w=w+Math.imul(n,b0)|0,f=f+Math.imul(n,l0)|0;var Q$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,y=Math.imul(F0,M0),w=Math.imul(F0,S0),w=w+Math.imul(A0,M0)|0,f=Math.imul(A0,S0),y=y+Math.imul(I0,q0)|0,w=w+Math.imul(I0,j0)|0,w=w+Math.imul(J0,q0)|0,f=f+Math.imul(J0,j0)|0,y=y+Math.imul(U0,g0)|0,w=w+Math.imul(U0,N0)|0,w=w+Math.imul(X0,g0)|0,f=f+Math.imul(X0,N0)|0,y=y+Math.imul(Z0,_0)|0,w=w+Math.imul(Z0,B0)|0,w=w+Math.imul(G0,_0)|0,f=f+Math.imul(G0,B0)|0,y=y+Math.imul($0,w0)|0,w=w+Math.imul($0,f0)|0,w=w+Math.imul(Q0,w0)|0,f=f+Math.imul(Q0,f0)|0,y=y+Math.imul(r,c0)|0,w=w+Math.imul(r,h0)|0,w=w+Math.imul(e,c0)|0,f=f+Math.imul(e,h0)|0,y=y+Math.imul(t,b0)|0,w=w+Math.imul(t,l0)|0,w=w+Math.imul(m,b0)|0,f=f+Math.imul(m,l0)|0;var Y$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,y=Math.imul(F0,q0),w=Math.imul(F0,j0),w=w+Math.imul(A0,q0)|0,f=Math.imul(A0,j0),y=y+Math.imul(I0,g0)|0,w=w+Math.imul(I0,N0)|0,w=w+Math.imul(J0,g0)|0,f=f+Math.imul(J0,N0)|0,y=y+Math.imul(U0,_0)|0,w=w+Math.imul(U0,B0)|0,w=w+Math.imul(X0,_0)|0,f=f+Math.imul(X0,B0)|0,y=y+Math.imul(Z0,w0)|0,w=w+Math.imul(Z0,f0)|0,w=w+Math.imul(G0,w0)|0,f=f+Math.imul(G0,f0)|0,y=y+Math.imul($0,c0)|0,w=w+Math.imul($0,h0)|0,w=w+Math.imul(Q0,c0)|0,f=f+Math.imul(Q0,h0)|0,y=y+Math.imul(r,b0)|0,w=w+Math.imul(r,l0)|0,w=w+Math.imul(e,b0)|0,f=f+Math.imul(e,l0)|0;var Z$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,y=Math.imul(F0,g0),w=Math.imul(F0,N0),w=w+Math.imul(A0,g0)|0,f=Math.imul(A0,N0),y=y+Math.imul(I0,_0)|0,w=w+Math.imul(I0,B0)|0,w=w+Math.imul(J0,_0)|0,f=f+Math.imul(J0,B0)|0,y=y+Math.imul(U0,w0)|0,w=w+Math.imul(U0,f0)|0,w=w+Math.imul(X0,w0)|0,f=f+Math.imul(X0,f0)|0,y=y+Math.imul(Z0,c0)|0,w=w+Math.imul(Z0,h0)|0,w=w+Math.imul(G0,c0)|0,f=f+Math.imul(G0,h0)|0,y=y+Math.imul($0,b0)|0,w=w+Math.imul($0,l0)|0,w=w+Math.imul(Q0,b0)|0,f=f+Math.imul(Q0,l0)|0;var G$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(G$>>>26)|0,G$&=67108863,y=Math.imul(F0,_0),w=Math.imul(F0,B0),w=w+Math.imul(A0,_0)|0,f=Math.imul(A0,B0),y=y+Math.imul(I0,w0)|0,w=w+Math.imul(I0,f0)|0,w=w+Math.imul(J0,w0)|0,f=f+Math.imul(J0,f0)|0,y=y+Math.imul(U0,c0)|0,w=w+Math.imul(U0,h0)|0,w=w+Math.imul(X0,c0)|0,f=f+Math.imul(X0,h0)|0,y=y+Math.imul(Z0,b0)|0,w=w+Math.imul(Z0,l0)|0,w=w+Math.imul(G0,b0)|0,f=f+Math.imul(G0,l0)|0;var V$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(V$>>>26)|0,V$&=67108863,y=Math.imul(F0,w0),w=Math.imul(F0,f0),w=w+Math.imul(A0,w0)|0,f=Math.imul(A0,f0),y=y+Math.imul(I0,c0)|0,w=w+Math.imul(I0,h0)|0,w=w+Math.imul(J0,c0)|0,f=f+Math.imul(J0,h0)|0,y=y+Math.imul(U0,b0)|0,w=w+Math.imul(U0,l0)|0,w=w+Math.imul(X0,b0)|0,f=f+Math.imul(X0,l0)|0;var U$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(U$>>>26)|0,U$&=67108863,y=Math.imul(F0,c0),w=Math.imul(F0,h0),w=w+Math.imul(A0,c0)|0,f=Math.imul(A0,h0),y=y+Math.imul(I0,b0)|0,w=w+Math.imul(I0,l0)|0,w=w+Math.imul(J0,b0)|0,f=f+Math.imul(J0,l0)|0;var X$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(X$>>>26)|0,X$&=67108863,y=Math.imul(F0,b0),w=Math.imul(F0,l0),w=w+Math.imul(A0,b0)|0,f=Math.imul(A0,l0);var K$=(B+y|0)+((w&8191)<<13)|0;return B=(f+(w>>>13)|0)+(K$>>>26)|0,K$&=67108863,_[0]=o0,_[1]=u0,_[2]=n0,_[3]=s0,_[4]=t0,_[5]=m0,_[6]=a0,_[7]=r0,_[8]=e0,_[9]=i0,_[10]=$$,_[11]=Q$,_[12]=Y$,_[13]=Z$,_[14]=G$,_[15]=V$,_[16]=U$,_[17]=X$,_[18]=K$,B!==0&&(_[19]=B,g.length++),g};Math.imul||(E=H);function T(j,k,g){g.negative=k.negative^j.negative,g.length=j.length+k.length;for(var N=0,x=0,_=0;_>>26)|0,x+=B>>>26,B&=67108863}g.words[_]=y,N=B,B=x}return N!==0?g.words[_]=N:g.length--,g.strip()}function D(j,k,g){var N=new C;return N.mulp(j,k,g)}U.prototype.mulTo=function(j,k){var g,N=this.length+j.length;return this.length===10&&j.length===10?g=E(this,j,k):N<63?g=H(this,j,k):N<1024?g=T(this,j,k):g=D(this,j,k),g};function C(j,k){this.x=j,this.y=k}C.prototype.makeRBT=function(j){for(var k=new Array(j),g=U.prototype._countBits(j)-1,N=0;N>=1;return N},C.prototype.permute=function(j,k,g,N,x,_){for(var B=0;B<_;B++)N[B]=k[j[B]],x[B]=g[j[B]]},C.prototype.transform=function(j,k,g,N,x,_){this.permute(_,j,k,g,N,x);for(var B=1;B>>1)x++;return 1<>>13,g[2*_+1]=x&8191,x=x>>>13;for(_=2*k;_>=26,k+=N/67108864|0,k+=x>>>26,this.words[g]=x&67108863}return k!==0&&(this.words[g]=k,this.length++),this},U.prototype.muln=function(j){return this.clone().imuln(j)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(j){var k=W(j);if(k.length===0)return new U(1);for(var g=this,N=0;N=0);var k=j%26,g=(j-k)/26,N=67108863>>>26-k<<26-k,x;if(k!==0){var _=0;for(x=0;x>>26-k}_&&(this.words[x]=_,this.length++)}if(g!==0){for(x=this.length-1;x>=0;x--)this.words[x+g]=this.words[x];for(x=0;x=0);var N;k?N=(k-k%26)/26:N=0;var x=j%26,_=Math.min((j-x)/26,this.length),B=67108863^67108863>>>x<_)for(this.length-=_,w=0;w=0&&(f!==0||w>=N);w--){var p=this.words[w]|0;this.words[w]=f<<26-x|p>>>x,f=p&B}return y&&f!==0&&(y.words[y.length++]=f),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},U.prototype.ishrn=function(j,k,g){return G(this.negative===0),this.iushrn(j,k,g)},U.prototype.shln=function(j){return this.clone().ishln(j)},U.prototype.ushln=function(j){return this.clone().iushln(j)},U.prototype.shrn=function(j){return this.clone().ishrn(j)},U.prototype.ushrn=function(j){return this.clone().iushrn(j)},U.prototype.testn=function(j){G(typeof j=="number"&&j>=0);var k=j%26,g=(j-k)/26,N=1<=0);var k=j%26,g=(j-k)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(k!==0&&g++,this.length=Math.min(g,this.length),k!==0){var N=67108863^67108863>>>k<=67108864;k++)this.words[k]-=67108864,k===this.length-1?this.words[k+1]=1:this.words[k+1]++;return this.length=Math.max(this.length,k+1),this},U.prototype.isubn=function(j){if(G(typeof j=="number"),G(j<67108864),j<0)return this.iaddn(-j);if(this.negative!==0)return this.negative=0,this.iaddn(j),this.negative=1,this;if(this.words[0]-=j,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var k=0;k>26)-(y/67108864|0),this.words[x+g]=_&67108863}for(;x>26,this.words[x+g]=_&67108863;if(B===0)return this.strip();for(G(B===-1),B=0,x=0;x>26,this.words[x]=_&67108863;return this.negative=1,this.strip()},U.prototype._wordDiv=function(j,k){var g=this.length-j.length,N=this.clone(),x=j,_=x.words[x.length-1]|0,B=this._countBits(_);g=26-B,g!==0&&(x=x.ushln(g),N.iushln(g),_=x.words[x.length-1]|0);var y=N.length-x.length,w;if(k!=="mod"){w=new U(null),w.length=y+1,w.words=new Array(w.length);for(var f=0;f=0;c--){var h=(N.words[x.length+c]|0)*67108864+(N.words[x.length+c-1]|0);for(h=Math.min(h/_|0,67108863),N._ishlnsubmul(x,h,c);N.negative!==0;)h--,N.negative=0,N._ishlnsubmul(x,1,c),N.isZero()||(N.negative^=1);w&&(w.words[c]=h)}return w&&w.strip(),N.strip(),k!=="div"&&g!==0&&N.iushrn(g),{div:w||null,mod:N}},U.prototype.divmod=function(j,k,g){if(G(!j.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var N,x,_;return this.negative!==0&&j.negative===0?(_=this.neg().divmod(j,k),k!=="mod"&&(N=_.div.neg()),k!=="div"&&(x=_.mod.neg(),g&&x.negative!==0&&x.iadd(j)),{div:N,mod:x}):this.negative===0&&j.negative!==0?(_=this.divmod(j.neg(),k),k!=="mod"&&(N=_.div.neg()),{div:N,mod:_.mod}):(this.negative&j.negative)!==0?(_=this.neg().divmod(j.neg(),k),k!=="div"&&(x=_.mod.neg(),g&&x.negative!==0&&x.isub(j)),{div:_.div,mod:x}):j.length>this.length||this.cmp(j)<0?{div:new U(0),mod:this}:j.length===1?k==="div"?{div:this.divn(j.words[0]),mod:null}:k==="mod"?{div:null,mod:new U(this.modn(j.words[0]))}:{div:this.divn(j.words[0]),mod:new U(this.modn(j.words[0]))}:this._wordDiv(j,k)},U.prototype.div=function(j){return this.divmod(j,"div",!1).div},U.prototype.mod=function(j){return this.divmod(j,"mod",!1).mod},U.prototype.umod=function(j){return this.divmod(j,"mod",!0).mod},U.prototype.divRound=function(j){var k=this.divmod(j);if(k.mod.isZero())return k.div;var g=k.div.negative!==0?k.mod.isub(j):k.mod,N=j.ushrn(1),x=j.andln(1),_=g.cmp(N);return _<0||x===1&&_===0?k.div:k.div.negative!==0?k.div.isubn(1):k.div.iaddn(1)},U.prototype.modn=function(j){G(j<=67108863);for(var k=(1<<26)%j,g=0,N=this.length-1;N>=0;N--)g=(k*g+(this.words[N]|0))%j;return g},U.prototype.idivn=function(j){G(j<=67108863);for(var k=0,g=this.length-1;g>=0;g--){var N=(this.words[g]|0)+k*67108864;this.words[g]=N/j|0,k=N%j}return this.strip()},U.prototype.divn=function(j){return this.clone().idivn(j)},U.prototype.egcd=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var N=new U(1),x=new U(0),_=new U(0),B=new U(1),y=0;k.isEven()&&g.isEven();)k.iushrn(1),g.iushrn(1),++y;for(var w=g.clone(),f=k.clone();!k.isZero();){for(var p=0,c=1;(k.words[0]&c)===0&&p<26;++p,c<<=1);if(p>0)for(k.iushrn(p);p-- >0;)(N.isOdd()||x.isOdd())&&(N.iadd(w),x.isub(f)),N.iushrn(1),x.iushrn(1);for(var h=0,d=1;(g.words[0]&d)===0&&h<26;++h,d<<=1);if(h>0)for(g.iushrn(h);h-- >0;)(_.isOdd()||B.isOdd())&&(_.iadd(w),B.isub(f)),_.iushrn(1),B.iushrn(1);k.cmp(g)>=0?(k.isub(g),N.isub(_),x.isub(B)):(g.isub(k),_.isub(N),B.isub(x))}return{a:_,b:B,gcd:g.iushln(y)}},U.prototype._invmp=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var N=new U(1),x=new U(0),_=g.clone();k.cmpn(1)>0&&g.cmpn(1)>0;){for(var B=0,y=1;(k.words[0]&y)===0&&B<26;++B,y<<=1);if(B>0)for(k.iushrn(B);B-- >0;)N.isOdd()&&N.iadd(_),N.iushrn(1);for(var w=0,f=1;(g.words[0]&f)===0&&w<26;++w,f<<=1);if(w>0)for(g.iushrn(w);w-- >0;)x.isOdd()&&x.iadd(_),x.iushrn(1);k.cmp(g)>=0?(k.isub(g),N.isub(x)):(g.isub(k),x.isub(N))}var p;return k.cmpn(1)===0?p=N:p=x,p.cmpn(0)<0&&p.iadd(j),p},U.prototype.gcd=function(j){if(this.isZero())return j.abs();if(j.isZero())return this.abs();var k=this.clone(),g=j.clone();k.negative=0,g.negative=0;for(var N=0;k.isEven()&&g.isEven();N++)k.iushrn(1),g.iushrn(1);do{for(;k.isEven();)k.iushrn(1);for(;g.isEven();)g.iushrn(1);var x=k.cmp(g);if(x<0){var _=k;k=g,g=_}else if(x===0||g.cmpn(1)===0)break;k.isub(g)}while(!0);return g.iushln(N)},U.prototype.invm=function(j){return this.egcd(j).a.umod(j)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(j){return this.words[0]&j},U.prototype.bincn=function(j){G(typeof j=="number");var k=j%26,g=(j-k)/26,N=1<>>26,B&=67108863,this.words[_]=B}return x!==0&&(this.words[_]=x,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(j){var k=j<0;if(this.negative!==0&&!k)return-1;if(this.negative===0&&k)return 1;this.strip();var g;if(this.length>1)g=1;else{k&&(j=-j),G(j<=67108863,"Number is too big");var N=this.words[0]|0;g=N===j?0:Nj.length)return 1;if(this.length=0;g--){var N=this.words[g]|0,x=j.words[g]|0;if(N!==x){Nx&&(k=1);break}}return k},U.prototype.gtn=function(j){return this.cmpn(j)===1},U.prototype.gt=function(j){return this.cmp(j)===1},U.prototype.gten=function(j){return this.cmpn(j)>=0},U.prototype.gte=function(j){return this.cmp(j)>=0},U.prototype.ltn=function(j){return this.cmpn(j)===-1},U.prototype.lt=function(j){return this.cmp(j)===-1},U.prototype.lten=function(j){return this.cmpn(j)<=0},U.prototype.lte=function(j){return this.cmp(j)<=0},U.prototype.eqn=function(j){return this.cmpn(j)===0},U.prototype.eq=function(j){return this.cmp(j)===0},U.red=function(j){return new v(j)},U.prototype.toRed=function(j){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),j.convertTo(this)._forceRed(j)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(j){return this.red=j,this},U.prototype.forceRed=function(j){return G(!this.red,"Already a number in reduction context"),this._forceRed(j)},U.prototype.redAdd=function(j){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,j)},U.prototype.redIAdd=function(j){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,j)},U.prototype.redSub=function(j){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,j)},U.prototype.redISub=function(j){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,j)},U.prototype.redShl=function(j){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,j)},U.prototype.redMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.mul(this,j)},U.prototype.redIMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.imul(this,j)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(j){return G(this.red&&!j.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,j)};var L={k256:null,p224:null,p192:null,p25519:null};function R(j,k){this.name=j,this.p=new U(k,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}R.prototype._tmp=function(){var j=new U(null);return j.words=new Array(Math.ceil(this.n/13)),j},R.prototype.ireduce=function(j){var k=j,g;do this.split(k,this.tmp),k=this.imulK(k),k=k.iadd(this.tmp),g=k.bitLength();while(g>this.n);var N=g0?k.isub(this.p):k.strip!==void 0?k.strip():k._strip(),k},R.prototype.split=function(j,k){j.iushrn(this.n,0,k)},R.prototype.imulK=function(j){return j.imul(this.k)};function P(){R.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(P,R),P.prototype.split=function(j,k){for(var g=4194303,N=Math.min(j.length,9),x=0;x>>22,_=B}_>>>=22,j.words[x-10]=_,_===0&&j.length>10?j.length-=10:j.length-=9},P.prototype.imulK=function(j){j.words[j.length]=0,j.words[j.length+1]=0,j.length+=2;for(var k=0,g=0;g>>=26,j.words[g]=x,k=N}return k!==0&&(j.words[j.length++]=k),j},U._prime=function(j){if(L[j])return L[j];var k;if(j==="k256")k=new P;else if(j==="p224")k=new z;else if(j==="p192")k=new M;else if(j==="p25519")k=new S;else throw new Error("Unknown prime "+j);return L[j]=k,k};function v(j){if(typeof j=="string"){var k=U._prime(j);this.m=k.p,this.prime=k}else G(j.gtn(1),"modulus must be greater than 1"),this.m=j,this.prime=null}v.prototype._verify1=function(j){G(j.negative===0,"red works only with positives"),G(j.red,"red works only with red numbers")},v.prototype._verify2=function(j,k){G((j.negative|k.negative)===0,"red works only with positives"),G(j.red&&j.red===k.red,"red works only with red numbers")},v.prototype.imod=function(j){return this.prime?this.prime.ireduce(j)._forceRed(this):j.umod(this.m)._forceRed(this)},v.prototype.neg=function(j){return j.isZero()?j.clone():this.m.sub(j)._forceRed(this)},v.prototype.add=function(j,k){this._verify2(j,k);var g=j.add(k);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},v.prototype.iadd=function(j,k){this._verify2(j,k);var g=j.iadd(k);return g.cmp(this.m)>=0&&g.isub(this.m),g},v.prototype.sub=function(j,k){this._verify2(j,k);var g=j.sub(k);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},v.prototype.isub=function(j,k){this._verify2(j,k);var g=j.isub(k);return g.cmpn(0)<0&&g.iadd(this.m),g},v.prototype.shl=function(j,k){return this._verify1(j),this.imod(j.ushln(k))},v.prototype.imul=function(j,k){return this._verify2(j,k),this.imod(j.imul(k))},v.prototype.mul=function(j,k){return this._verify2(j,k),this.imod(j.mul(k))},v.prototype.isqr=function(j){return this.imul(j,j.clone())},v.prototype.sqr=function(j){return this.mul(j,j)},v.prototype.sqrt=function(j){if(j.isZero())return j.clone();var k=this.m.andln(3);if(G(k%2===1),k===3){var g=this.m.add(new U(1)).iushrn(2);return this.pow(j,g)}for(var N=this.m.subn(1),x=0;!N.isZero()&&N.andln(1)===0;)x++,N.iushrn(1);G(!N.isZero());var _=new U(1).toRed(this),B=_.redNeg(),y=this.m.subn(1).iushrn(1),w=this.m.bitLength();for(w=new U(2*w*w).toRed(this);this.pow(w,y).cmp(B)!==0;)w.redIAdd(B);for(var f=this.pow(w,N),p=this.pow(j,N.addn(1).iushrn(1)),c=this.pow(j,N),h=x;c.cmp(_)!==0;){for(var d=c,b=0;d.cmp(_)!==0;b++)d=d.redSqr();G(b=0;x--){for(var f=k.words[x],p=w-1;p>=0;p--){var c=f>>p&1;if(_!==N[0]&&(_=this.sqr(_)),c===0&&B===0){y=0;continue}B<<=1,B|=c,y++,!(y!==g&&(x!==0||p!==0))&&(_=this.mul(_,N[B]),y=0,B=0)}w=26}return _},v.prototype.convertTo=function(j){var k=j.umod(this.m);return k===j?k.clone():k},v.prototype.convertFrom=function(j){var k=j.clone();return k.red=null,k},U.mont=function(j){return new q(j)};function q(j){v.call(this,j),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(q,v),q.prototype.convertTo=function(j){return this.imod(j.ushln(this.shift))},q.prototype.convertFrom=function(j){var k=this.imod(j.mul(this.rinv));return k.red=null,k},q.prototype.imul=function(j,k){if(j.isZero()||k.isZero())return j.words[0]=0,j.length=1,j;var g=j.imul(k),N=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),x=g.isub(N).iushrn(this.shift),_=x;return x.cmp(this.m)>=0?_=x.isub(this.m):x.cmpn(0)<0&&(_=x.iadd(this.m)),_._forceRed(this)},q.prototype.mul=function(j,k){if(j.isZero()||k.isZero())return new U(0)._forceRed(this);var g=j.mul(k),N=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),x=g.isub(N).iushrn(this.shift),_=x;return x.cmp(this.m)>=0?_=x.isub(this.m):x.cmpn(0)<0&&(_=x.iadd(this.m)),_._forceRed(this)},q.prototype.invm=function(j){var k=this.imod(j._invmp(this.m).mul(this.r2));return k._forceRed(this)}})(typeof Q>"u"||Q,$)}}),kQ=z$({"(disabled):node_modules/crypto-browserify/index.js"(){}}),gQ=z$({"node_modules/brorand/index.js"($,Q){var Y;Q.exports=function(G){return Y||(Y=new Z(null)),Y.generate(G)};function Z(G){this.rand=G}Q.exports.Rand=Z,Z.prototype.generate=function(G){return this._rand(G)},Z.prototype._rand=function(G){var V=new Buffer(G);return F$.getRandomValues(V),V}}}),NQ=z$({"node_modules/miller-rabin/lib/mr.js"($,Q){var Y=jQ(),Z=gQ();function G(V){this.rand=V||new Z.Rand}Q.exports=G,G.create=function(V){return new G(V)},G.prototype._randbelow=function(V){var U=V.bitLength(),X=Math.ceil(U/8);do var K=new Y(this.rand.generate(X));while(K.cmp(V)>=0);return K},G.prototype._randrange=function(V,U){var X=U.sub(V);return V.add(this._randbelow(X))},G.prototype.test=function(V,U,X){var K=V.bitLength(),I=Y.mont(V),J=new Y(1).toRed(I);U||(U=Math.max(1,K/48|0));for(var O=V.subn(1),F=0;!O.testn(F);F++);for(var A=V.shrn(F),W=O.toRed(I),H=!0;U>0;U--){var E=this._randrange(new Y(2),O);X&&X(E);var T=E.toRed(I).redPow(A);if(!(T.cmp(J)===0||T.cmp(W)===0)){for(var D=1;D0;U--){var W=this._randrange(new Y(2),J),H=V.gcd(W);if(H.cmpn(1)!==0)return H;var E=W.toRed(K).redPow(F);if(!(E.cmp(I)===0||E.cmp(A)===0)){for(var T=1;Tz;)S.ishrn(1);if(S.isEven()&&S.iadd(X),S.testn(1)||S.iadd(K),M.cmp(K)){if(!M.cmp(I))for(;S.mod(F).cmp(A);)S.iadd(E)}else for(;S.mod(G).cmp(H);)S.iadd(E);if(v=S.shrn(1),L(v)&&L(S)&&R(v)&&R(S)&&U.test(v)&&U.test(S))return S}}}}),_Q=z$({"node_modules/diffie-hellman/lib/primes.json"($,Q){Q.exports={modp1:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},modp2:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},modp5:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},modp14:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},modp15:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},modp16:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},modp17:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},modp18:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}}}),BQ=z$({"node_modules/diffie-hellman/lib/dh.js"($,Q){var Y=qQ(),Z=NQ(),G=new Z,V=new Y(24),U=new Y(11),X=new Y(10),K=new Y(3),I=new Y(7),J=xQ(),O=v$();Q.exports=E;function F(D,C){return C=C||"utf8",Buffer.isBuffer(D)||(D=new Buffer(D,C)),this._pub=new Y(D),this}function A(D,C){return C=C||"utf8",Buffer.isBuffer(D)||(D=new Buffer(D,C)),this._priv=new Y(D),this}var W={};function H(D,C){var L=C.toString("hex"),R=[L,D.toString(16)].join("_");if(R in W)return W[R];var P=0;if(D.isEven()||!J.simpleSieve||!J.fermatTest(D)||!G.test(D))return P+=1,L==="02"||L==="05"?P+=8:P+=4,W[R]=P,P;G.test(D.shrn(1))||(P+=2);var z;switch(L){case"02":D.mod(V).cmp(U)&&(P+=8);break;case"05":z=D.mod(X),z.cmp(K)&&z.cmp(I)&&(P+=8);break;default:P+=4}return W[R]=P,P}function E(D,C,L){this.setGenerator(C),this.__prime=new Y(D),this._prime=Y.mont(this.__prime),this._primeLen=D.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,L?(this.setPublicKey=F,this.setPrivateKey=A):this._primeCode=8}Object.defineProperty(E.prototype,"verifyError",{enumerable:!0,get:function(){return typeof this._primeCode!="number"&&(this._primeCode=H(this.__prime,this.__gen)),this._primeCode}}),E.prototype.generateKeys=function(){return this._priv||(this._priv=new Y(O(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},E.prototype.computeSecret=function(D){D=new Y(D),D=D.toRed(this._prime);var C=D.redPow(this._priv).fromRed(),L=new Buffer(C.toArray()),R=this.getPrime();if(L.length0?N:x},U.min=function(N,x){return N.cmp(x)<0?N:x},U.prototype._init=function(N,x,_){if(typeof N=="number")return this._initNumber(N,x,_);if(typeof N=="object")return this._initArray(N,x,_);x==="hex"&&(x=16),G(x===(x|0)&&x>=2&&x<=36),N=N.toString().replace(/\s+/g,"");var B=0;N[0]==="-"&&(B++,this.negative=1),B=0;B-=3)w=N[B]|N[B-1]<<8|N[B-2]<<16,this.words[y]|=w<>>26-f&67108863,f+=24,f>=26&&(f-=26,y++);else if(_==="le")for(B=0,y=0;B>>26-f&67108863,f+=24,f>=26&&(f-=26,y++);return this._strip()};function K(N,x){var _=N.charCodeAt(x);if(_>=48&&_<=57)return _-48;if(_>=65&&_<=70)return _-55;if(_>=97&&_<=102)return _-87;G(!1,"Invalid character in "+N)}function I(N,x,_){var B=K(N,_);return _-1>=x&&(B|=K(N,_-1)<<4),B}U.prototype._parseHex=function(N,x,_){this.length=Math.ceil((N.length-x)/6),this.words=new Array(this.length);for(var B=0;B=x;B-=2)f=I(N,x,B)<=18?(y-=18,w+=1,this.words[w]|=f>>>26):y+=8;else{var p=N.length-x;for(B=p%2===0?x+1:x;B=18?(y-=18,w+=1,this.words[w]|=f>>>26):y+=8}this._strip()};function J(N,x,_,B){for(var y=0,w=0,f=Math.min(N.length,_),p=x;p=49?w=c-49+10:c>=17?w=c-17+10:w=c,G(c>=0&&w1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{U.prototype[Symbol.for("nodejs.util.inspect.custom")]=F}catch{U.prototype.inspect=F}else U.prototype.inspect=F;function F(){return(this.red?""}var A=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],W=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],H=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(N,x){N=N||10,x=x|0||1;var _;if(N===16||N==="hex"){_="";for(var B=0,y=0,w=0;w>>24-B&16777215,B+=2,B>=26&&(B-=26,w--),y!==0||w!==this.length-1?_=A[6-p.length]+p+_:_=p+_}for(y!==0&&(_=y.toString(16)+_);_.length%x!==0;)_="0"+_;return this.negative!==0&&(_="-"+_),_}if(N===(N|0)&&N>=2&&N<=36){var c=W[N],h=H[N];_="";var d=this.clone();for(d.negative=0;!d.isZero();){var b=d.modrn(h).toString(N);d=d.idivn(h),d.isZero()?_=b+_:_=A[c-b.length]+b+_}for(this.isZero()&&(_="0"+_);_.length%x!==0;)_="0"+_;return this.negative!==0&&(_="-"+_),_}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var N=this.words[0];return this.length===2?N+=this.words[1]*67108864:this.length===3&&this.words[2]===1?N+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-N:N},U.prototype.toJSON=function(){return this.toString(16,2)},X&&(U.prototype.toBuffer=function(N,x){return this.toArrayLike(X,N,x)}),U.prototype.toArray=function(N,x){return this.toArrayLike(Array,N,x)};var E=function(N,x){return N.allocUnsafe?N.allocUnsafe(x):new N(x)};U.prototype.toArrayLike=function(N,x,_){this._strip();var B=this.byteLength(),y=_||Math.max(1,B);G(B<=y,"byte array longer than desired length"),G(y>0,"Requested array length <= 0");var w=E(N,y),f=x==="le"?"LE":"BE";return this["_toArrayLike"+f](w,B),w},U.prototype._toArrayLikeLE=function(N,x){for(var _=0,B=0,y=0,w=0;y>8&255),_>16&255),w===6?(_>24&255),B=0,w=0):(B=f>>>24,w+=2)}if(_=0&&(N[_--]=f>>8&255),_>=0&&(N[_--]=f>>16&255),w===6?(_>=0&&(N[_--]=f>>24&255),B=0,w=0):(B=f>>>24,w+=2)}if(_>=0)for(N[_--]=B;_>=0;)N[_--]=0},Math.clz32?U.prototype._countBits=function(N){return 32-Math.clz32(N)}:U.prototype._countBits=function(N){var x=N,_=0;return x>=4096&&(_+=13,x>>>=13),x>=64&&(_+=7,x>>>=7),x>=8&&(_+=4,x>>>=4),x>=2&&(_+=2,x>>>=2),_+x},U.prototype._zeroBits=function(N){if(N===0)return 26;var x=N,_=0;return(x&8191)===0&&(_+=13,x>>>=13),(x&127)===0&&(_+=7,x>>>=7),(x&15)===0&&(_+=4,x>>>=4),(x&3)===0&&(_+=2,x>>>=2),(x&1)===0&&_++,_},U.prototype.bitLength=function(){var N=this.words[this.length-1],x=this._countBits(N);return(this.length-1)*26+x};function T(N){for(var x=new Array(N.bitLength()),_=0;_>>y&1}return x}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var N=0,x=0;xN.length?this.clone().ior(N):N.clone().ior(this)},U.prototype.uor=function(N){return this.length>N.length?this.clone().iuor(N):N.clone().iuor(this)},U.prototype.iuand=function(N){var x;this.length>N.length?x=N:x=this;for(var _=0;_N.length?this.clone().iand(N):N.clone().iand(this)},U.prototype.uand=function(N){return this.length>N.length?this.clone().iuand(N):N.clone().iuand(this)},U.prototype.iuxor=function(N){var x,_;this.length>N.length?(x=this,_=N):(x=N,_=this);for(var B=0;B<_.length;B++)this.words[B]=x.words[B]^_.words[B];if(this!==x)for(;BN.length?this.clone().ixor(N):N.clone().ixor(this)},U.prototype.uxor=function(N){return this.length>N.length?this.clone().iuxor(N):N.clone().iuxor(this)},U.prototype.inotn=function(N){G(typeof N=="number"&&N>=0);var x=Math.ceil(N/26)|0,_=N%26;this._expand(x),_>0&&x--;for(var B=0;B0&&(this.words[B]=~this.words[B]&67108863>>26-_),this._strip()},U.prototype.notn=function(N){return this.clone().inotn(N)},U.prototype.setn=function(N,x){G(typeof N=="number"&&N>=0);var _=N/26|0,B=N%26;return this._expand(_+1),x?this.words[_]=this.words[_]|1<N.length?(_=this,B=N):(_=N,B=this);for(var y=0,w=0;w>>26;for(;y!==0&&w<_.length;w++)x=(_.words[w]|0)+y,this.words[w]=x&67108863,y=x>>>26;if(this.length=_.length,y!==0)this.words[this.length]=y,this.length++;else if(_!==this)for(;w<_.length;w++)this.words[w]=_.words[w];return this},U.prototype.add=function(N){var x;return N.negative!==0&&this.negative===0?(N.negative=0,x=this.sub(N),N.negative^=1,x):N.negative===0&&this.negative!==0?(this.negative=0,x=N.sub(this),this.negative=1,x):this.length>N.length?this.clone().iadd(N):N.clone().iadd(this)},U.prototype.isub=function(N){if(N.negative!==0){N.negative=0;var x=this.iadd(N);return N.negative=1,x._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(N),this.negative=1,this._normSign();var _=this.cmp(N);if(_===0)return this.negative=0,this.length=1,this.words[0]=0,this;var B,y;_>0?(B=this,y=N):(B=N,y=this);for(var w=0,f=0;f>26,this.words[f]=x&67108863;for(;w!==0&&f>26,this.words[f]=x&67108863;if(w===0&&f>>26,b=c&67108863,l=Math.min(h,x.length-1),o=Math.max(0,h-N.length+1);o<=l;o++){var u=h-o|0;y=N.words[u]|0,w=x.words[o]|0,f=y*w+b,d+=f/67108864|0,b=f&67108863}_.words[h]=b|0,c=d|0}return c!==0?_.words[h]=c|0:_.length--,_._strip()}var C=function(N,x,_){var B=N.words,y=x.words,w=_.words,f=0,p,c,h,d=B[0]|0,b=d&8191,l=d>>>13,o=B[1]|0,u=o&8191,n=o>>>13,s=B[2]|0,t=s&8191,m=s>>>13,a=B[3]|0,r=a&8191,e=a>>>13,i=B[4]|0,$0=i&8191,Q0=i>>>13,Y0=B[5]|0,Z0=Y0&8191,G0=Y0>>>13,V0=B[6]|0,U0=V0&8191,X0=V0>>>13,K0=B[7]|0,I0=K0&8191,J0=K0>>>13,O0=B[8]|0,F0=O0&8191,A0=O0>>>13,W0=B[9]|0,H0=W0&8191,E0=W0>>>13,T0=y[0]|0,D0=T0&8191,C0=T0>>>13,L0=y[1]|0,R0=L0&8191,P0=L0>>>13,z0=y[2]|0,M0=z0&8191,S0=z0>>>13,v0=y[3]|0,q0=v0&8191,j0=v0>>>13,k0=y[4]|0,g0=k0&8191,N0=k0>>>13,x0=y[5]|0,_0=x0&8191,B0=x0>>>13,y0=y[6]|0,w0=y0&8191,f0=y0>>>13,p0=y[7]|0,c0=p0&8191,h0=p0>>>13,d0=y[8]|0,b0=d0&8191,l0=d0>>>13,o0=y[9]|0,u0=o0&8191,n0=o0>>>13;_.negative=N.negative^x.negative,_.length=19,p=Math.imul(b,D0),c=Math.imul(b,C0),c=c+Math.imul(l,D0)|0,h=Math.imul(l,C0);var s0=(f+p|0)+((c&8191)<<13)|0;f=(h+(c>>>13)|0)+(s0>>>26)|0,s0&=67108863,p=Math.imul(u,D0),c=Math.imul(u,C0),c=c+Math.imul(n,D0)|0,h=Math.imul(n,C0),p=p+Math.imul(b,R0)|0,c=c+Math.imul(b,P0)|0,c=c+Math.imul(l,R0)|0,h=h+Math.imul(l,P0)|0;var t0=(f+p|0)+((c&8191)<<13)|0;f=(h+(c>>>13)|0)+(t0>>>26)|0,t0&=67108863,p=Math.imul(t,D0),c=Math.imul(t,C0),c=c+Math.imul(m,D0)|0,h=Math.imul(m,C0),p=p+Math.imul(u,R0)|0,c=c+Math.imul(u,P0)|0,c=c+Math.imul(n,R0)|0,h=h+Math.imul(n,P0)|0,p=p+Math.imul(b,M0)|0,c=c+Math.imul(b,S0)|0,c=c+Math.imul(l,M0)|0,h=h+Math.imul(l,S0)|0;var m0=(f+p|0)+((c&8191)<<13)|0;f=(h+(c>>>13)|0)+(m0>>>26)|0,m0&=67108863,p=Math.imul(r,D0),c=Math.imul(r,C0),c=c+Math.imul(e,D0)|0,h=Math.imul(e,C0),p=p+Math.imul(t,R0)|0,c=c+Math.imul(t,P0)|0,c=c+Math.imul(m,R0)|0,h=h+Math.imul(m,P0)|0,p=p+Math.imul(u,M0)|0,c=c+Math.imul(u,S0)|0,c=c+Math.imul(n,M0)|0,h=h+Math.imul(n,S0)|0,p=p+Math.imul(b,q0)|0,c=c+Math.imul(b,j0)|0,c=c+Math.imul(l,q0)|0,h=h+Math.imul(l,j0)|0;var a0=(f+p|0)+((c&8191)<<13)|0;f=(h+(c>>>13)|0)+(a0>>>26)|0,a0&=67108863,p=Math.imul($0,D0),c=Math.imul($0,C0),c=c+Math.imul(Q0,D0)|0,h=Math.imul(Q0,C0),p=p+Math.imul(r,R0)|0,c=c+Math.imul(r,P0)|0,c=c+Math.imul(e,R0)|0,h=h+Math.imul(e,P0)|0,p=p+Math.imul(t,M0)|0,c=c+Math.imul(t,S0)|0,c=c+Math.imul(m,M0)|0,h=h+Math.imul(m,S0)|0,p=p+Math.imul(u,q0)|0,c=c+Math.imul(u,j0)|0,c=c+Math.imul(n,q0)|0,h=h+Math.imul(n,j0)|0,p=p+Math.imul(b,g0)|0,c=c+Math.imul(b,N0)|0,c=c+Math.imul(l,g0)|0,h=h+Math.imul(l,N0)|0;var r0=(f+p|0)+((c&8191)<<13)|0;f=(h+(c>>>13)|0)+(r0>>>26)|0,r0&=67108863,p=Math.imul(Z0,D0),c=Math.imul(Z0,C0),c=c+Math.imul(G0,D0)|0,h=Math.imul(G0,C0),p=p+Math.imul($0,R0)|0,c=c+Math.imul($0,P0)|0,c=c+Math.imul(Q0,R0)|0,h=h+Math.imul(Q0,P0)|0,p=p+Math.imul(r,M0)|0,c=c+Math.imul(r,S0)|0,c=c+Math.imul(e,M0)|0,h=h+Math.imul(e,S0)|0,p=p+Math.imul(t,q0)|0,c=c+Math.imul(t,j0)|0,c=c+Math.imul(m,q0)|0,h=h+Math.imul(m,j0)|0,p=p+Math.imul(u,g0)|0,c=c+Math.imul(u,N0)|0,c=c+Math.imul(n,g0)|0,h=h+Math.imul(n,N0)|0,p=p+Math.imul(b,_0)|0,c=c+Math.imul(b,B0)|0,c=c+Math.imul(l,_0)|0,h=h+Math.imul(l,B0)|0;var e0=(f+p|0)+((c&8191)<<13)|0;f=(h+(c>>>13)|0)+(e0>>>26)|0,e0&=67108863,p=Math.imul(U0,D0),c=Math.imul(U0,C0),c=c+Math.imul(X0,D0)|0,h=Math.imul(X0,C0),p=p+Math.imul(Z0,R0)|0,c=c+Math.imul(Z0,P0)|0,c=c+Math.imul(G0,R0)|0,h=h+Math.imul(G0,P0)|0,p=p+Math.imul($0,M0)|0,c=c+Math.imul($0,S0)|0,c=c+Math.imul(Q0,M0)|0,h=h+Math.imul(Q0,S0)|0,p=p+Math.imul(r,q0)|0,c=c+Math.imul(r,j0)|0,c=c+Math.imul(e,q0)|0,h=h+Math.imul(e,j0)|0,p=p+Math.imul(t,g0)|0,c=c+Math.imul(t,N0)|0,c=c+Math.imul(m,g0)|0,h=h+Math.imul(m,N0)|0,p=p+Math.imul(u,_0)|0,c=c+Math.imul(u,B0)|0,c=c+Math.imul(n,_0)|0,h=h+Math.imul(n,B0)|0,p=p+Math.imul(b,w0)|0,c=c+Math.imul(b,f0)|0,c=c+Math.imul(l,w0)|0,h=h+Math.imul(l,f0)|0;var i0=(f+p|0)+((c&8191)<<13)|0;f=(h+(c>>>13)|0)+(i0>>>26)|0,i0&=67108863,p=Math.imul(I0,D0),c=Math.imul(I0,C0),c=c+Math.imul(J0,D0)|0,h=Math.imul(J0,C0),p=p+Math.imul(U0,R0)|0,c=c+Math.imul(U0,P0)|0,c=c+Math.imul(X0,R0)|0,h=h+Math.imul(X0,P0)|0,p=p+Math.imul(Z0,M0)|0,c=c+Math.imul(Z0,S0)|0,c=c+Math.imul(G0,M0)|0,h=h+Math.imul(G0,S0)|0,p=p+Math.imul($0,q0)|0,c=c+Math.imul($0,j0)|0,c=c+Math.imul(Q0,q0)|0,h=h+Math.imul(Q0,j0)|0,p=p+Math.imul(r,g0)|0,c=c+Math.imul(r,N0)|0,c=c+Math.imul(e,g0)|0,h=h+Math.imul(e,N0)|0,p=p+Math.imul(t,_0)|0,c=c+Math.imul(t,B0)|0,c=c+Math.imul(m,_0)|0,h=h+Math.imul(m,B0)|0,p=p+Math.imul(u,w0)|0,c=c+Math.imul(u,f0)|0,c=c+Math.imul(n,w0)|0,h=h+Math.imul(n,f0)|0,p=p+Math.imul(b,c0)|0,c=c+Math.imul(b,h0)|0,c=c+Math.imul(l,c0)|0,h=h+Math.imul(l,h0)|0;var $$=(f+p|0)+((c&8191)<<13)|0;f=(h+(c>>>13)|0)+($$>>>26)|0,$$&=67108863,p=Math.imul(F0,D0),c=Math.imul(F0,C0),c=c+Math.imul(A0,D0)|0,h=Math.imul(A0,C0),p=p+Math.imul(I0,R0)|0,c=c+Math.imul(I0,P0)|0,c=c+Math.imul(J0,R0)|0,h=h+Math.imul(J0,P0)|0,p=p+Math.imul(U0,M0)|0,c=c+Math.imul(U0,S0)|0,c=c+Math.imul(X0,M0)|0,h=h+Math.imul(X0,S0)|0,p=p+Math.imul(Z0,q0)|0,c=c+Math.imul(Z0,j0)|0,c=c+Math.imul(G0,q0)|0,h=h+Math.imul(G0,j0)|0,p=p+Math.imul($0,g0)|0,c=c+Math.imul($0,N0)|0,c=c+Math.imul(Q0,g0)|0,h=h+Math.imul(Q0,N0)|0,p=p+Math.imul(r,_0)|0,c=c+Math.imul(r,B0)|0,c=c+Math.imul(e,_0)|0,h=h+Math.imul(e,B0)|0,p=p+Math.imul(t,w0)|0,c=c+Math.imul(t,f0)|0,c=c+Math.imul(m,w0)|0,h=h+Math.imul(m,f0)|0,p=p+Math.imul(u,c0)|0,c=c+Math.imul(u,h0)|0,c=c+Math.imul(n,c0)|0,h=h+Math.imul(n,h0)|0,p=p+Math.imul(b,b0)|0,c=c+Math.imul(b,l0)|0,c=c+Math.imul(l,b0)|0,h=h+Math.imul(l,l0)|0;var Q$=(f+p|0)+((c&8191)<<13)|0;f=(h+(c>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,p=Math.imul(H0,D0),c=Math.imul(H0,C0),c=c+Math.imul(E0,D0)|0,h=Math.imul(E0,C0),p=p+Math.imul(F0,R0)|0,c=c+Math.imul(F0,P0)|0,c=c+Math.imul(A0,R0)|0,h=h+Math.imul(A0,P0)|0,p=p+Math.imul(I0,M0)|0,c=c+Math.imul(I0,S0)|0,c=c+Math.imul(J0,M0)|0,h=h+Math.imul(J0,S0)|0,p=p+Math.imul(U0,q0)|0,c=c+Math.imul(U0,j0)|0,c=c+Math.imul(X0,q0)|0,h=h+Math.imul(X0,j0)|0,p=p+Math.imul(Z0,g0)|0,c=c+Math.imul(Z0,N0)|0,c=c+Math.imul(G0,g0)|0,h=h+Math.imul(G0,N0)|0,p=p+Math.imul($0,_0)|0,c=c+Math.imul($0,B0)|0,c=c+Math.imul(Q0,_0)|0,h=h+Math.imul(Q0,B0)|0,p=p+Math.imul(r,w0)|0,c=c+Math.imul(r,f0)|0,c=c+Math.imul(e,w0)|0,h=h+Math.imul(e,f0)|0,p=p+Math.imul(t,c0)|0,c=c+Math.imul(t,h0)|0,c=c+Math.imul(m,c0)|0,h=h+Math.imul(m,h0)|0,p=p+Math.imul(u,b0)|0,c=c+Math.imul(u,l0)|0,c=c+Math.imul(n,b0)|0,h=h+Math.imul(n,l0)|0,p=p+Math.imul(b,u0)|0,c=c+Math.imul(b,n0)|0,c=c+Math.imul(l,u0)|0,h=h+Math.imul(l,n0)|0;var Y$=(f+p|0)+((c&8191)<<13)|0;f=(h+(c>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,p=Math.imul(H0,R0),c=Math.imul(H0,P0),c=c+Math.imul(E0,R0)|0,h=Math.imul(E0,P0),p=p+Math.imul(F0,M0)|0,c=c+Math.imul(F0,S0)|0,c=c+Math.imul(A0,M0)|0,h=h+Math.imul(A0,S0)|0,p=p+Math.imul(I0,q0)|0,c=c+Math.imul(I0,j0)|0,c=c+Math.imul(J0,q0)|0,h=h+Math.imul(J0,j0)|0,p=p+Math.imul(U0,g0)|0,c=c+Math.imul(U0,N0)|0,c=c+Math.imul(X0,g0)|0,h=h+Math.imul(X0,N0)|0,p=p+Math.imul(Z0,_0)|0,c=c+Math.imul(Z0,B0)|0,c=c+Math.imul(G0,_0)|0,h=h+Math.imul(G0,B0)|0,p=p+Math.imul($0,w0)|0,c=c+Math.imul($0,f0)|0,c=c+Math.imul(Q0,w0)|0,h=h+Math.imul(Q0,f0)|0,p=p+Math.imul(r,c0)|0,c=c+Math.imul(r,h0)|0,c=c+Math.imul(e,c0)|0,h=h+Math.imul(e,h0)|0,p=p+Math.imul(t,b0)|0,c=c+Math.imul(t,l0)|0,c=c+Math.imul(m,b0)|0,h=h+Math.imul(m,l0)|0,p=p+Math.imul(u,u0)|0,c=c+Math.imul(u,n0)|0,c=c+Math.imul(n,u0)|0,h=h+Math.imul(n,n0)|0;var Z$=(f+p|0)+((c&8191)<<13)|0;f=(h+(c>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,p=Math.imul(H0,M0),c=Math.imul(H0,S0),c=c+Math.imul(E0,M0)|0,h=Math.imul(E0,S0),p=p+Math.imul(F0,q0)|0,c=c+Math.imul(F0,j0)|0,c=c+Math.imul(A0,q0)|0,h=h+Math.imul(A0,j0)|0,p=p+Math.imul(I0,g0)|0,c=c+Math.imul(I0,N0)|0,c=c+Math.imul(J0,g0)|0,h=h+Math.imul(J0,N0)|0,p=p+Math.imul(U0,_0)|0,c=c+Math.imul(U0,B0)|0,c=c+Math.imul(X0,_0)|0,h=h+Math.imul(X0,B0)|0,p=p+Math.imul(Z0,w0)|0,c=c+Math.imul(Z0,f0)|0,c=c+Math.imul(G0,w0)|0,h=h+Math.imul(G0,f0)|0,p=p+Math.imul($0,c0)|0,c=c+Math.imul($0,h0)|0,c=c+Math.imul(Q0,c0)|0,h=h+Math.imul(Q0,h0)|0,p=p+Math.imul(r,b0)|0,c=c+Math.imul(r,l0)|0,c=c+Math.imul(e,b0)|0,h=h+Math.imul(e,l0)|0,p=p+Math.imul(t,u0)|0,c=c+Math.imul(t,n0)|0,c=c+Math.imul(m,u0)|0,h=h+Math.imul(m,n0)|0;var G$=(f+p|0)+((c&8191)<<13)|0;f=(h+(c>>>13)|0)+(G$>>>26)|0,G$&=67108863,p=Math.imul(H0,q0),c=Math.imul(H0,j0),c=c+Math.imul(E0,q0)|0,h=Math.imul(E0,j0),p=p+Math.imul(F0,g0)|0,c=c+Math.imul(F0,N0)|0,c=c+Math.imul(A0,g0)|0,h=h+Math.imul(A0,N0)|0,p=p+Math.imul(I0,_0)|0,c=c+Math.imul(I0,B0)|0,c=c+Math.imul(J0,_0)|0,h=h+Math.imul(J0,B0)|0,p=p+Math.imul(U0,w0)|0,c=c+Math.imul(U0,f0)|0,c=c+Math.imul(X0,w0)|0,h=h+Math.imul(X0,f0)|0,p=p+Math.imul(Z0,c0)|0,c=c+Math.imul(Z0,h0)|0,c=c+Math.imul(G0,c0)|0,h=h+Math.imul(G0,h0)|0,p=p+Math.imul($0,b0)|0,c=c+Math.imul($0,l0)|0,c=c+Math.imul(Q0,b0)|0,h=h+Math.imul(Q0,l0)|0,p=p+Math.imul(r,u0)|0,c=c+Math.imul(r,n0)|0,c=c+Math.imul(e,u0)|0,h=h+Math.imul(e,n0)|0;var V$=(f+p|0)+((c&8191)<<13)|0;f=(h+(c>>>13)|0)+(V$>>>26)|0,V$&=67108863,p=Math.imul(H0,g0),c=Math.imul(H0,N0),c=c+Math.imul(E0,g0)|0,h=Math.imul(E0,N0),p=p+Math.imul(F0,_0)|0,c=c+Math.imul(F0,B0)|0,c=c+Math.imul(A0,_0)|0,h=h+Math.imul(A0,B0)|0,p=p+Math.imul(I0,w0)|0,c=c+Math.imul(I0,f0)|0,c=c+Math.imul(J0,w0)|0,h=h+Math.imul(J0,f0)|0,p=p+Math.imul(U0,c0)|0,c=c+Math.imul(U0,h0)|0,c=c+Math.imul(X0,c0)|0,h=h+Math.imul(X0,h0)|0,p=p+Math.imul(Z0,b0)|0,c=c+Math.imul(Z0,l0)|0,c=c+Math.imul(G0,b0)|0,h=h+Math.imul(G0,l0)|0,p=p+Math.imul($0,u0)|0,c=c+Math.imul($0,n0)|0,c=c+Math.imul(Q0,u0)|0,h=h+Math.imul(Q0,n0)|0;var U$=(f+p|0)+((c&8191)<<13)|0;f=(h+(c>>>13)|0)+(U$>>>26)|0,U$&=67108863,p=Math.imul(H0,_0),c=Math.imul(H0,B0),c=c+Math.imul(E0,_0)|0,h=Math.imul(E0,B0),p=p+Math.imul(F0,w0)|0,c=c+Math.imul(F0,f0)|0,c=c+Math.imul(A0,w0)|0,h=h+Math.imul(A0,f0)|0,p=p+Math.imul(I0,c0)|0,c=c+Math.imul(I0,h0)|0,c=c+Math.imul(J0,c0)|0,h=h+Math.imul(J0,h0)|0,p=p+Math.imul(U0,b0)|0,c=c+Math.imul(U0,l0)|0,c=c+Math.imul(X0,b0)|0,h=h+Math.imul(X0,l0)|0,p=p+Math.imul(Z0,u0)|0,c=c+Math.imul(Z0,n0)|0,c=c+Math.imul(G0,u0)|0,h=h+Math.imul(G0,n0)|0;var X$=(f+p|0)+((c&8191)<<13)|0;f=(h+(c>>>13)|0)+(X$>>>26)|0,X$&=67108863,p=Math.imul(H0,w0),c=Math.imul(H0,f0),c=c+Math.imul(E0,w0)|0,h=Math.imul(E0,f0),p=p+Math.imul(F0,c0)|0,c=c+Math.imul(F0,h0)|0,c=c+Math.imul(A0,c0)|0,h=h+Math.imul(A0,h0)|0,p=p+Math.imul(I0,b0)|0,c=c+Math.imul(I0,l0)|0,c=c+Math.imul(J0,b0)|0,h=h+Math.imul(J0,l0)|0,p=p+Math.imul(U0,u0)|0,c=c+Math.imul(U0,n0)|0,c=c+Math.imul(X0,u0)|0,h=h+Math.imul(X0,n0)|0;var K$=(f+p|0)+((c&8191)<<13)|0;f=(h+(c>>>13)|0)+(K$>>>26)|0,K$&=67108863,p=Math.imul(H0,c0),c=Math.imul(H0,h0),c=c+Math.imul(E0,c0)|0,h=Math.imul(E0,h0),p=p+Math.imul(F0,b0)|0,c=c+Math.imul(F0,l0)|0,c=c+Math.imul(A0,b0)|0,h=h+Math.imul(A0,l0)|0,p=p+Math.imul(I0,u0)|0,c=c+Math.imul(I0,n0)|0,c=c+Math.imul(J0,u0)|0,h=h+Math.imul(J0,n0)|0;var I$=(f+p|0)+((c&8191)<<13)|0;f=(h+(c>>>13)|0)+(I$>>>26)|0,I$&=67108863,p=Math.imul(H0,b0),c=Math.imul(H0,l0),c=c+Math.imul(E0,b0)|0,h=Math.imul(E0,l0),p=p+Math.imul(F0,u0)|0,c=c+Math.imul(F0,n0)|0,c=c+Math.imul(A0,u0)|0,h=h+Math.imul(A0,n0)|0;var J$=(f+p|0)+((c&8191)<<13)|0;f=(h+(c>>>13)|0)+(J$>>>26)|0,J$&=67108863,p=Math.imul(H0,u0),c=Math.imul(H0,n0),c=c+Math.imul(E0,u0)|0,h=Math.imul(E0,n0);var O$=(f+p|0)+((c&8191)<<13)|0;return f=(h+(c>>>13)|0)+(O$>>>26)|0,O$&=67108863,w[0]=s0,w[1]=t0,w[2]=m0,w[3]=a0,w[4]=r0,w[5]=e0,w[6]=i0,w[7]=$$,w[8]=Q$,w[9]=Y$,w[10]=Z$,w[11]=G$,w[12]=V$,w[13]=U$,w[14]=X$,w[15]=K$,w[16]=I$,w[17]=J$,w[18]=O$,f!==0&&(w[19]=f,_.length++),_};Math.imul||(C=D);function L(N,x,_){_.negative=x.negative^N.negative,_.length=N.length+x.length;for(var B=0,y=0,w=0;w<_.length-1;w++){var f=y;y=0;for(var p=B&67108863,c=Math.min(w,x.length-1),h=Math.max(0,w-N.length+1);h<=c;h++){var d=w-h,b=N.words[d]|0,l=x.words[h]|0,o=b*l,u=o&67108863;f=f+(o/67108864|0)|0,u=u+p|0,p=u&67108863,f=f+(u>>>26)|0,y+=f>>>26,f&=67108863}_.words[w]=p,B=f,f=y}return B!==0?_.words[w]=B:_.length--,_._strip()}function R(N,x,_){return L(N,x,_)}U.prototype.mulTo=function(N,x){var _,B=this.length+N.length;return this.length===10&&N.length===10?_=C(this,N,x):B<63?_=D(this,N,x):B<1024?_=L(this,N,x):_=R(this,N,x),_};function P(N,x){this.x=N,this.y=x}P.prototype.makeRBT=function(N){for(var x=new Array(N),_=U.prototype._countBits(N)-1,B=0;B>=1;return B},P.prototype.permute=function(N,x,_,B,y,w){for(var f=0;f>>1)y++;return 1<>>13,_[2*w+1]=y&8191,y=y>>>13;for(w=2*x;w>=26,_+=y/67108864|0,_+=w>>>26,this.words[B]=w&67108863}return _!==0&&(this.words[B]=_,this.length++),x?this.ineg():this},U.prototype.muln=function(N){return this.clone().imuln(N)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(N){var x=T(N);if(x.length===0)return new U(1);for(var _=this,B=0;B=0);var x=N%26,_=(N-x)/26,B=67108863>>>26-x<<26-x,y;if(x!==0){var w=0;for(y=0;y>>26-x}w&&(this.words[y]=w,this.length++)}if(_!==0){for(y=this.length-1;y>=0;y--)this.words[y+_]=this.words[y];for(y=0;y<_;y++)this.words[y]=0;this.length+=_}return this._strip()},U.prototype.ishln=function(N){return G(this.negative===0),this.iushln(N)},U.prototype.iushrn=function(N,x,_){G(typeof N=="number"&&N>=0);var B;x?B=(x-x%26)/26:B=0;var y=N%26,w=Math.min((N-y)/26,this.length),f=67108863^67108863>>>y<w)for(this.length-=w,c=0;c=0&&(h!==0||c>=B);c--){var d=this.words[c]|0;this.words[c]=h<<26-y|d>>>y,h=d&f}return p&&h!==0&&(p.words[p.length++]=h),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},U.prototype.ishrn=function(N,x,_){return G(this.negative===0),this.iushrn(N,x,_)},U.prototype.shln=function(N){return this.clone().ishln(N)},U.prototype.ushln=function(N){return this.clone().iushln(N)},U.prototype.shrn=function(N){return this.clone().ishrn(N)},U.prototype.ushrn=function(N){return this.clone().iushrn(N)},U.prototype.testn=function(N){G(typeof N=="number"&&N>=0);var x=N%26,_=(N-x)/26,B=1<=0);var x=N%26,_=(N-x)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=_)return this;if(x!==0&&_++,this.length=Math.min(_,this.length),x!==0){var B=67108863^67108863>>>x<=67108864;x++)this.words[x]-=67108864,x===this.length-1?this.words[x+1]=1:this.words[x+1]++;return this.length=Math.max(this.length,x+1),this},U.prototype.isubn=function(N){if(G(typeof N=="number"),G(N<67108864),N<0)return this.iaddn(-N);if(this.negative!==0)return this.negative=0,this.iaddn(N),this.negative=1,this;if(this.words[0]-=N,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var x=0;x>26)-(p/67108864|0),this.words[y+_]=w&67108863}for(;y>26,this.words[y+_]=w&67108863;if(f===0)return this._strip();for(G(f===-1),f=0,y=0;y>26,this.words[y]=w&67108863;return this.negative=1,this._strip()},U.prototype._wordDiv=function(N,x){var _=this.length-N.length,B=this.clone(),y=N,w=y.words[y.length-1]|0,f=this._countBits(w);_=26-f,_!==0&&(y=y.ushln(_),B.iushln(_),w=y.words[y.length-1]|0);var p=B.length-y.length,c;if(x!=="mod"){c=new U(null),c.length=p+1,c.words=new Array(c.length);for(var h=0;h=0;b--){var l=(B.words[y.length+b]|0)*67108864+(B.words[y.length+b-1]|0);for(l=Math.min(l/w|0,67108863),B._ishlnsubmul(y,l,b);B.negative!==0;)l--,B.negative=0,B._ishlnsubmul(y,1,b),B.isZero()||(B.negative^=1);c&&(c.words[b]=l)}return c&&c._strip(),B._strip(),x!=="div"&&_!==0&&B.iushrn(_),{div:c||null,mod:B}},U.prototype.divmod=function(N,x,_){if(G(!N.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var B,y,w;return this.negative!==0&&N.negative===0?(w=this.neg().divmod(N,x),x!=="mod"&&(B=w.div.neg()),x!=="div"&&(y=w.mod.neg(),_&&y.negative!==0&&y.iadd(N)),{div:B,mod:y}):this.negative===0&&N.negative!==0?(w=this.divmod(N.neg(),x),x!=="mod"&&(B=w.div.neg()),{div:B,mod:w.mod}):(this.negative&N.negative)!==0?(w=this.neg().divmod(N.neg(),x),x!=="div"&&(y=w.mod.neg(),_&&y.negative!==0&&y.isub(N)),{div:w.div,mod:y}):N.length>this.length||this.cmp(N)<0?{div:new U(0),mod:this}:N.length===1?x==="div"?{div:this.divn(N.words[0]),mod:null}:x==="mod"?{div:null,mod:new U(this.modrn(N.words[0]))}:{div:this.divn(N.words[0]),mod:new U(this.modrn(N.words[0]))}:this._wordDiv(N,x)},U.prototype.div=function(N){return this.divmod(N,"div",!1).div},U.prototype.mod=function(N){return this.divmod(N,"mod",!1).mod},U.prototype.umod=function(N){return this.divmod(N,"mod",!0).mod},U.prototype.divRound=function(N){var x=this.divmod(N);if(x.mod.isZero())return x.div;var _=x.div.negative!==0?x.mod.isub(N):x.mod,B=N.ushrn(1),y=N.andln(1),w=_.cmp(B);return w<0||y===1&&w===0?x.div:x.div.negative!==0?x.div.isubn(1):x.div.iaddn(1)},U.prototype.modrn=function(N){var x=N<0;x&&(N=-N),G(N<=67108863);for(var _=(1<<26)%N,B=0,y=this.length-1;y>=0;y--)B=(_*B+(this.words[y]|0))%N;return x?-B:B},U.prototype.modn=function(N){return this.modrn(N)},U.prototype.idivn=function(N){var x=N<0;x&&(N=-N),G(N<=67108863);for(var _=0,B=this.length-1;B>=0;B--){var y=(this.words[B]|0)+_*67108864;this.words[B]=y/N|0,_=y%N}return this._strip(),x?this.ineg():this},U.prototype.divn=function(N){return this.clone().idivn(N)},U.prototype.egcd=function(N){G(N.negative===0),G(!N.isZero());var x=this,_=N.clone();x.negative!==0?x=x.umod(N):x=x.clone();for(var B=new U(1),y=new U(0),w=new U(0),f=new U(1),p=0;x.isEven()&&_.isEven();)x.iushrn(1),_.iushrn(1),++p;for(var c=_.clone(),h=x.clone();!x.isZero();){for(var d=0,b=1;(x.words[0]&b)===0&&d<26;++d,b<<=1);if(d>0)for(x.iushrn(d);d-- >0;)(B.isOdd()||y.isOdd())&&(B.iadd(c),y.isub(h)),B.iushrn(1),y.iushrn(1);for(var l=0,o=1;(_.words[0]&o)===0&&l<26;++l,o<<=1);if(l>0)for(_.iushrn(l);l-- >0;)(w.isOdd()||f.isOdd())&&(w.iadd(c),f.isub(h)),w.iushrn(1),f.iushrn(1);x.cmp(_)>=0?(x.isub(_),B.isub(w),y.isub(f)):(_.isub(x),w.isub(B),f.isub(y))}return{a:w,b:f,gcd:_.iushln(p)}},U.prototype._invmp=function(N){G(N.negative===0),G(!N.isZero());var x=this,_=N.clone();x.negative!==0?x=x.umod(N):x=x.clone();for(var B=new U(1),y=new U(0),w=_.clone();x.cmpn(1)>0&&_.cmpn(1)>0;){for(var f=0,p=1;(x.words[0]&p)===0&&f<26;++f,p<<=1);if(f>0)for(x.iushrn(f);f-- >0;)B.isOdd()&&B.iadd(w),B.iushrn(1);for(var c=0,h=1;(_.words[0]&h)===0&&c<26;++c,h<<=1);if(c>0)for(_.iushrn(c);c-- >0;)y.isOdd()&&y.iadd(w),y.iushrn(1);x.cmp(_)>=0?(x.isub(_),B.isub(y)):(_.isub(x),y.isub(B))}var d;return x.cmpn(1)===0?d=B:d=y,d.cmpn(0)<0&&d.iadd(N),d},U.prototype.gcd=function(N){if(this.isZero())return N.abs();if(N.isZero())return this.abs();var x=this.clone(),_=N.clone();x.negative=0,_.negative=0;for(var B=0;x.isEven()&&_.isEven();B++)x.iushrn(1),_.iushrn(1);do{for(;x.isEven();)x.iushrn(1);for(;_.isEven();)_.iushrn(1);var y=x.cmp(_);if(y<0){var w=x;x=_,_=w}else if(y===0||_.cmpn(1)===0)break;x.isub(_)}while(!0);return _.iushln(B)},U.prototype.invm=function(N){return this.egcd(N).a.umod(N)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(N){return this.words[0]&N},U.prototype.bincn=function(N){G(typeof N=="number");var x=N%26,_=(N-x)/26,B=1<>>26,f&=67108863,this.words[w]=f}return y!==0&&(this.words[w]=y,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(N){var x=N<0;if(this.negative!==0&&!x)return-1;if(this.negative===0&&x)return 1;this._strip();var _;if(this.length>1)_=1;else{x&&(N=-N),G(N<=67108863,"Number is too big");var B=this.words[0]|0;_=B===N?0:BN.length)return 1;if(this.length=0;_--){var B=this.words[_]|0,y=N.words[_]|0;if(B!==y){By&&(x=1);break}}return x},U.prototype.gtn=function(N){return this.cmpn(N)===1},U.prototype.gt=function(N){return this.cmp(N)===1},U.prototype.gten=function(N){return this.cmpn(N)>=0},U.prototype.gte=function(N){return this.cmp(N)>=0},U.prototype.ltn=function(N){return this.cmpn(N)===-1},U.prototype.lt=function(N){return this.cmp(N)===-1},U.prototype.lten=function(N){return this.cmpn(N)<=0},U.prototype.lte=function(N){return this.cmp(N)<=0},U.prototype.eqn=function(N){return this.cmpn(N)===0},U.prototype.eq=function(N){return this.cmp(N)===0},U.red=function(N){return new k(N)},U.prototype.toRed=function(N){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),N.convertTo(this)._forceRed(N)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(N){return this.red=N,this},U.prototype.forceRed=function(N){return G(!this.red,"Already a number in reduction context"),this._forceRed(N)},U.prototype.redAdd=function(N){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,N)},U.prototype.redIAdd=function(N){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,N)},U.prototype.redSub=function(N){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,N)},U.prototype.redISub=function(N){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,N)},U.prototype.redShl=function(N){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,N)},U.prototype.redMul=function(N){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,N),this.red.mul(this,N)},U.prototype.redIMul=function(N){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,N),this.red.imul(this,N)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(N){return G(this.red&&!N.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,N)};var z={k256:null,p224:null,p192:null,p25519:null};function M(N,x){this.name=N,this.p=new U(x,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}M.prototype._tmp=function(){var N=new U(null);return N.words=new Array(Math.ceil(this.n/13)),N},M.prototype.ireduce=function(N){var x=N,_;do this.split(x,this.tmp),x=this.imulK(x),x=x.iadd(this.tmp),_=x.bitLength();while(_>this.n);var B=_0?x.isub(this.p):x.strip!==void 0?x.strip():x._strip(),x},M.prototype.split=function(N,x){N.iushrn(this.n,0,x)},M.prototype.imulK=function(N){return N.imul(this.k)};function S(){M.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(S,M),S.prototype.split=function(N,x){for(var _=4194303,B=Math.min(N.length,9),y=0;y>>22,w=f}w>>>=22,N.words[y-10]=w,w===0&&N.length>10?N.length-=10:N.length-=9},S.prototype.imulK=function(N){N.words[N.length]=0,N.words[N.length+1]=0,N.length+=2;for(var x=0,_=0;_>>=26,N.words[_]=y,x=B}return x!==0&&(N.words[N.length++]=x),N},U._prime=function(N){if(z[N])return z[N];var x;if(N==="k256")x=new S;else if(N==="p224")x=new v;else if(N==="p192")x=new q;else if(N==="p25519")x=new j;else throw new Error("Unknown prime "+N);return z[N]=x,x};function k(N){if(typeof N=="string"){var x=U._prime(N);this.m=x.p,this.prime=x}else G(N.gtn(1),"modulus must be greater than 1"),this.m=N,this.prime=null}k.prototype._verify1=function(N){G(N.negative===0,"red works only with positives"),G(N.red,"red works only with red numbers")},k.prototype._verify2=function(N,x){G((N.negative|x.negative)===0,"red works only with positives"),G(N.red&&N.red===x.red,"red works only with red numbers")},k.prototype.imod=function(N){return this.prime?this.prime.ireduce(N)._forceRed(this):(O(N,N.umod(this.m)._forceRed(this)),N)},k.prototype.neg=function(N){return N.isZero()?N.clone():this.m.sub(N)._forceRed(this)},k.prototype.add=function(N,x){this._verify2(N,x);var _=N.add(x);return _.cmp(this.m)>=0&&_.isub(this.m),_._forceRed(this)},k.prototype.iadd=function(N,x){this._verify2(N,x);var _=N.iadd(x);return _.cmp(this.m)>=0&&_.isub(this.m),_},k.prototype.sub=function(N,x){this._verify2(N,x);var _=N.sub(x);return _.cmpn(0)<0&&_.iadd(this.m),_._forceRed(this)},k.prototype.isub=function(N,x){this._verify2(N,x);var _=N.isub(x);return _.cmpn(0)<0&&_.iadd(this.m),_},k.prototype.shl=function(N,x){return this._verify1(N),this.imod(N.ushln(x))},k.prototype.imul=function(N,x){return this._verify2(N,x),this.imod(N.imul(x))},k.prototype.mul=function(N,x){return this._verify2(N,x),this.imod(N.mul(x))},k.prototype.isqr=function(N){return this.imul(N,N.clone())},k.prototype.sqr=function(N){return this.mul(N,N)},k.prototype.sqrt=function(N){if(N.isZero())return N.clone();var x=this.m.andln(3);if(G(x%2===1),x===3){var _=this.m.add(new U(1)).iushrn(2);return this.pow(N,_)}for(var B=this.m.subn(1),y=0;!B.isZero()&&B.andln(1)===0;)y++,B.iushrn(1);G(!B.isZero());var w=new U(1).toRed(this),f=w.redNeg(),p=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new U(2*c*c).toRed(this);this.pow(c,p).cmp(f)!==0;)c.redIAdd(f);for(var h=this.pow(c,B),d=this.pow(N,B.addn(1).iushrn(1)),b=this.pow(N,B),l=y;b.cmp(w)!==0;){for(var o=b,u=0;o.cmp(w)!==0;u++)o=o.redSqr();G(u=0;y--){for(var h=x.words[y],d=c-1;d>=0;d--){var b=h>>d&1;if(w!==B[0]&&(w=this.sqr(w)),b===0&&f===0){p=0;continue}f<<=1,f|=b,p++,!(p!==_&&(y!==0||d!==0))&&(w=this.mul(w,B[f]),p=0,f=0)}c=26}return w},k.prototype.convertTo=function(N){var x=N.umod(this.m);return x===N?x.clone():x},k.prototype.convertFrom=function(N){var x=N.clone();return x.red=null,x},U.mont=function(N){return new g(N)};function g(N){k.call(this,N),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(g,k),g.prototype.convertTo=function(N){return this.imod(N.ushln(this.shift))},g.prototype.convertFrom=function(N){var x=this.imod(N.mul(this.rinv));return x.red=null,x},g.prototype.imul=function(N,x){if(N.isZero()||x.isZero())return N.words[0]=0,N.length=1,N;var _=N.imul(x),B=_.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),y=_.isub(B).iushrn(this.shift),w=y;return y.cmp(this.m)>=0?w=y.isub(this.m):y.cmpn(0)<0&&(w=y.iadd(this.m)),w._forceRed(this)},g.prototype.mul=function(N,x){if(N.isZero()||x.isZero())return new U(0)._forceRed(this);var _=N.mul(x),B=_.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),y=_.isub(B).iushrn(this.shift),w=y;return y.cmp(this.m)>=0?w=y.isub(this.m):y.cmpn(0)<0&&(w=y.iadd(this.m)),w._forceRed(this)},g.prototype.invm=function(N){var x=this.imod(N._invmp(this.m).mul(this.r2));return x._forceRed(this)}})(typeof Q>"u"||Q,$)}}),fQ=z$({"node_modules/browserify-rsa/index.js"($,Q){var Y=wQ(),Z=v$();function G(X){var K=V(X),I=K.toRed(Y.mont(X.modulus)).redPow(new Y(X.publicExponent)).fromRed();return{blinder:I,unblinder:K.invm(X.modulus)}}function V(X){var K=X.modulus.byteLength(),I;do I=new Y(Z(K));while(I.cmp(X.modulus)>=0||!I.umod(X.prime1)||!I.umod(X.prime2));return I}function U(X,K){var I=G(K),J=K.modulus.byteLength(),O=new Y(X).mul(I.blinder).umod(K.modulus),F=O.toRed(Y.mont(K.prime1)),A=O.toRed(Y.mont(K.prime2)),W=K.coefficient,H=K.prime1,E=K.prime2,T=F.redPow(K.exponent1).fromRed(),D=A.redPow(K.exponent2).fromRed(),C=T.isub(D).imul(W).umod(H).imul(E);return D.iadd(C).imul(I.unblinder).umod(K.modulus).toArrayLike(Buffer,"be",J)}U.getr=V,Q.exports=U}}),pQ=z$({"node_modules/elliptic/package.json"($,Q){Q.exports={name:"elliptic",version:"6.5.4",description:"EC cryptography",main:"lib/elliptic.js",files:["lib"],scripts:{lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},repository:{type:"git",url:"git@github.com:indutny/elliptic"},keywords:["EC","Elliptic","curve","Cryptography"],author:"Fedor Indutny ",license:"MIT",bugs:{url:"https://github.com/indutny/elliptic/issues"},homepage:"https://github.com/indutny/elliptic",devDependencies:{brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},dependencies:{"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"}}}}),cQ=z$({"node_modules/elliptic/node_modules/bn.js/lib/bn.js"($,Q){(function(Y,Z){function G(j,k){if(!j)throw new Error(k||"Assertion failed")}function V(j,k){j.super_=k;var g=function(){};g.prototype=k.prototype,j.prototype=new g,j.prototype.constructor=j}function U(j,k,g){if(U.isBN(j))return j;this.negative=0,this.words=null,this.length=0,this.red=null,j!==null&&((k==="le"||k==="be")&&(g=k,k=10),this._init(j||0,k||10,g||"be"))}typeof Y=="object"?Y.exports=U:Z.BN=U,U.BN=U,U.wordSize=26;var X;try{typeof window<"u"&&typeof window.Buffer<"u"?X=window.Buffer:X=R$("buffer").Buffer}catch{}U.isBN=function(j){return j instanceof U?!0:j!==null&&typeof j=="object"&&j.constructor.wordSize===U.wordSize&&Array.isArray(j.words)},U.max=function(j,k){return j.cmp(k)>0?j:k},U.min=function(j,k){return j.cmp(k)<0?j:k},U.prototype._init=function(j,k,g){if(typeof j=="number")return this._initNumber(j,k,g);if(typeof j=="object")return this._initArray(j,k,g);k==="hex"&&(k=16),G(k===(k|0)&&k>=2&&k<=36),j=j.toString().replace(/\s+/g,"");var N=0;j[0]==="-"&&(N++,this.negative=1),N=0;N-=3)_=j[N]|j[N-1]<<8|j[N-2]<<16,this.words[x]|=_<>>26-B&67108863,B+=24,B>=26&&(B-=26,x++);else if(g==="le")for(N=0,x=0;N>>26-B&67108863,B+=24,B>=26&&(B-=26,x++);return this.strip()};function K(j,k){var g=j.charCodeAt(k);return g>=65&&g<=70?g-55:g>=97&&g<=102?g-87:g-48&15}function I(j,k,g){var N=K(j,g);return g-1>=k&&(N|=K(j,g-1)<<4),N}U.prototype._parseHex=function(j,k,g){this.length=Math.ceil((j.length-k)/6),this.words=new Array(this.length);for(var N=0;N=k;N-=2)B=I(j,k,N)<=18?(x-=18,_+=1,this.words[_]|=B>>>26):x+=8;else{var y=j.length-k;for(N=y%2===0?k+1:k;N=18?(x-=18,_+=1,this.words[_]|=B>>>26):x+=8}this.strip()};function J(j,k,g,N){for(var x=0,_=Math.min(j.length,g),B=k;B<_;B++){var y=j.charCodeAt(B)-48;x*=N,y>=49?x+=y-49+10:y>=17?x+=y-17+10:x+=y}return x}U.prototype._parseBase=function(j,k,g){this.words=[0],this.length=1;for(var N=0,x=1;x<=67108863;x*=k)N++;N--,x=x/k|0;for(var _=j.length-g,B=_%N,y=Math.min(_,_-B)+g,w=0,f=g;f1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},U.prototype.inspect=function(){return(this.red?""};var O=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],F=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],A=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(j,k){j=j||10,k=k|0||1;var g;if(j===16||j==="hex"){g="";for(var N=0,x=0,_=0;_>>24-N&16777215,x!==0||_!==this.length-1?g=O[6-y.length]+y+g:g=y+g,N+=2,N>=26&&(N-=26,_--)}for(x!==0&&(g=x.toString(16)+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(j===(j|0)&&j>=2&&j<=36){var w=F[j],f=A[j];g="";var p=this.clone();for(p.negative=0;!p.isZero();){var c=p.modn(f).toString(j);p=p.idivn(f),p.isZero()?g=c+g:g=O[w-c.length]+c+g}for(this.isZero()&&(g="0"+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var j=this.words[0];return this.length===2?j+=this.words[1]*67108864:this.length===3&&this.words[2]===1?j+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-j:j},U.prototype.toJSON=function(){return this.toString(16)},U.prototype.toBuffer=function(j,k){return G(typeof X<"u"),this.toArrayLike(X,j,k)},U.prototype.toArray=function(j,k){return this.toArrayLike(Array,j,k)},U.prototype.toArrayLike=function(j,k,g){var N=this.byteLength(),x=g||Math.max(1,N);G(N<=x,"byte array longer than desired length"),G(x>0,"Requested array length <= 0"),this.strip();var _=k==="le",B=new j(x),y,w,f=this.clone();if(_){for(w=0;!f.isZero();w++)y=f.andln(255),f.iushrn(8),B[w]=y;for(;w=4096&&(g+=13,k>>>=13),k>=64&&(g+=7,k>>>=7),k>=8&&(g+=4,k>>>=4),k>=2&&(g+=2,k>>>=2),g+k},U.prototype._zeroBits=function(j){if(j===0)return 26;var k=j,g=0;return(k&8191)===0&&(g+=13,k>>>=13),(k&127)===0&&(g+=7,k>>>=7),(k&15)===0&&(g+=4,k>>>=4),(k&3)===0&&(g+=2,k>>>=2),(k&1)===0&&g++,g},U.prototype.bitLength=function(){var j=this.words[this.length-1],k=this._countBits(j);return(this.length-1)*26+k};function W(j){for(var k=new Array(j.bitLength()),g=0;g>>x}return k}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var j=0,k=0;kj.length?this.clone().ior(j):j.clone().ior(this)},U.prototype.uor=function(j){return this.length>j.length?this.clone().iuor(j):j.clone().iuor(this)},U.prototype.iuand=function(j){var k;this.length>j.length?k=j:k=this;for(var g=0;gj.length?this.clone().iand(j):j.clone().iand(this)},U.prototype.uand=function(j){return this.length>j.length?this.clone().iuand(j):j.clone().iuand(this)},U.prototype.iuxor=function(j){var k,g;this.length>j.length?(k=this,g=j):(k=j,g=this);for(var N=0;Nj.length?this.clone().ixor(j):j.clone().ixor(this)},U.prototype.uxor=function(j){return this.length>j.length?this.clone().iuxor(j):j.clone().iuxor(this)},U.prototype.inotn=function(j){G(typeof j=="number"&&j>=0);var k=Math.ceil(j/26)|0,g=j%26;this._expand(k),g>0&&k--;for(var N=0;N0&&(this.words[N]=~this.words[N]&67108863>>26-g),this.strip()},U.prototype.notn=function(j){return this.clone().inotn(j)},U.prototype.setn=function(j,k){G(typeof j=="number"&&j>=0);var g=j/26|0,N=j%26;return this._expand(g+1),k?this.words[g]=this.words[g]|1<j.length?(g=this,N=j):(g=j,N=this);for(var x=0,_=0;_>>26;for(;x!==0&&_>>26;if(this.length=g.length,x!==0)this.words[this.length]=x,this.length++;else if(g!==this)for(;_j.length?this.clone().iadd(j):j.clone().iadd(this)},U.prototype.isub=function(j){if(j.negative!==0){j.negative=0;var k=this.iadd(j);return j.negative=1,k._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(j),this.negative=1,this._normSign();var g=this.cmp(j);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var N,x;g>0?(N=this,x=j):(N=j,x=this);for(var _=0,B=0;B>26,this.words[B]=k&67108863;for(;_!==0&&B>26,this.words[B]=k&67108863;if(_===0&&B>>26,c=w&67108863,h=Math.min(f,k.length-1),d=Math.max(0,f-j.length+1);d<=h;d++){var b=f-d|0;x=j.words[b]|0,_=k.words[d]|0,B=x*_+c,p+=B/67108864|0,c=B&67108863}g.words[f]=c|0,w=p|0}return w!==0?g.words[f]=w|0:g.length--,g.strip()}var E=function(j,k,g){var N=j.words,x=k.words,_=g.words,B=0,y,w,f,p=N[0]|0,c=p&8191,h=p>>>13,d=N[1]|0,b=d&8191,l=d>>>13,o=N[2]|0,u=o&8191,n=o>>>13,s=N[3]|0,t=s&8191,m=s>>>13,a=N[4]|0,r=a&8191,e=a>>>13,i=N[5]|0,$0=i&8191,Q0=i>>>13,Y0=N[6]|0,Z0=Y0&8191,G0=Y0>>>13,V0=N[7]|0,U0=V0&8191,X0=V0>>>13,K0=N[8]|0,I0=K0&8191,J0=K0>>>13,O0=N[9]|0,F0=O0&8191,A0=O0>>>13,W0=x[0]|0,H0=W0&8191,E0=W0>>>13,T0=x[1]|0,D0=T0&8191,C0=T0>>>13,L0=x[2]|0,R0=L0&8191,P0=L0>>>13,z0=x[3]|0,M0=z0&8191,S0=z0>>>13,v0=x[4]|0,q0=v0&8191,j0=v0>>>13,k0=x[5]|0,g0=k0&8191,N0=k0>>>13,x0=x[6]|0,_0=x0&8191,B0=x0>>>13,y0=x[7]|0,w0=y0&8191,f0=y0>>>13,p0=x[8]|0,c0=p0&8191,h0=p0>>>13,d0=x[9]|0,b0=d0&8191,l0=d0>>>13;g.negative=j.negative^k.negative,g.length=19,y=Math.imul(c,H0),w=Math.imul(c,E0),w=w+Math.imul(h,H0)|0,f=Math.imul(h,E0);var o0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(o0>>>26)|0,o0&=67108863,y=Math.imul(b,H0),w=Math.imul(b,E0),w=w+Math.imul(l,H0)|0,f=Math.imul(l,E0),y=y+Math.imul(c,D0)|0,w=w+Math.imul(c,C0)|0,w=w+Math.imul(h,D0)|0,f=f+Math.imul(h,C0)|0;var u0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(u0>>>26)|0,u0&=67108863,y=Math.imul(u,H0),w=Math.imul(u,E0),w=w+Math.imul(n,H0)|0,f=Math.imul(n,E0),y=y+Math.imul(b,D0)|0,w=w+Math.imul(b,C0)|0,w=w+Math.imul(l,D0)|0,f=f+Math.imul(l,C0)|0,y=y+Math.imul(c,R0)|0,w=w+Math.imul(c,P0)|0,w=w+Math.imul(h,R0)|0,f=f+Math.imul(h,P0)|0;var n0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(n0>>>26)|0,n0&=67108863,y=Math.imul(t,H0),w=Math.imul(t,E0),w=w+Math.imul(m,H0)|0,f=Math.imul(m,E0),y=y+Math.imul(u,D0)|0,w=w+Math.imul(u,C0)|0,w=w+Math.imul(n,D0)|0,f=f+Math.imul(n,C0)|0,y=y+Math.imul(b,R0)|0,w=w+Math.imul(b,P0)|0,w=w+Math.imul(l,R0)|0,f=f+Math.imul(l,P0)|0,y=y+Math.imul(c,M0)|0,w=w+Math.imul(c,S0)|0,w=w+Math.imul(h,M0)|0,f=f+Math.imul(h,S0)|0;var s0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(s0>>>26)|0,s0&=67108863,y=Math.imul(r,H0),w=Math.imul(r,E0),w=w+Math.imul(e,H0)|0,f=Math.imul(e,E0),y=y+Math.imul(t,D0)|0,w=w+Math.imul(t,C0)|0,w=w+Math.imul(m,D0)|0,f=f+Math.imul(m,C0)|0,y=y+Math.imul(u,R0)|0,w=w+Math.imul(u,P0)|0,w=w+Math.imul(n,R0)|0,f=f+Math.imul(n,P0)|0,y=y+Math.imul(b,M0)|0,w=w+Math.imul(b,S0)|0,w=w+Math.imul(l,M0)|0,f=f+Math.imul(l,S0)|0,y=y+Math.imul(c,q0)|0,w=w+Math.imul(c,j0)|0,w=w+Math.imul(h,q0)|0,f=f+Math.imul(h,j0)|0;var t0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(t0>>>26)|0,t0&=67108863,y=Math.imul($0,H0),w=Math.imul($0,E0),w=w+Math.imul(Q0,H0)|0,f=Math.imul(Q0,E0),y=y+Math.imul(r,D0)|0,w=w+Math.imul(r,C0)|0,w=w+Math.imul(e,D0)|0,f=f+Math.imul(e,C0)|0,y=y+Math.imul(t,R0)|0,w=w+Math.imul(t,P0)|0,w=w+Math.imul(m,R0)|0,f=f+Math.imul(m,P0)|0,y=y+Math.imul(u,M0)|0,w=w+Math.imul(u,S0)|0,w=w+Math.imul(n,M0)|0,f=f+Math.imul(n,S0)|0,y=y+Math.imul(b,q0)|0,w=w+Math.imul(b,j0)|0,w=w+Math.imul(l,q0)|0,f=f+Math.imul(l,j0)|0,y=y+Math.imul(c,g0)|0,w=w+Math.imul(c,N0)|0,w=w+Math.imul(h,g0)|0,f=f+Math.imul(h,N0)|0;var m0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(m0>>>26)|0,m0&=67108863,y=Math.imul(Z0,H0),w=Math.imul(Z0,E0),w=w+Math.imul(G0,H0)|0,f=Math.imul(G0,E0),y=y+Math.imul($0,D0)|0,w=w+Math.imul($0,C0)|0,w=w+Math.imul(Q0,D0)|0,f=f+Math.imul(Q0,C0)|0,y=y+Math.imul(r,R0)|0,w=w+Math.imul(r,P0)|0,w=w+Math.imul(e,R0)|0,f=f+Math.imul(e,P0)|0,y=y+Math.imul(t,M0)|0,w=w+Math.imul(t,S0)|0,w=w+Math.imul(m,M0)|0,f=f+Math.imul(m,S0)|0,y=y+Math.imul(u,q0)|0,w=w+Math.imul(u,j0)|0,w=w+Math.imul(n,q0)|0,f=f+Math.imul(n,j0)|0,y=y+Math.imul(b,g0)|0,w=w+Math.imul(b,N0)|0,w=w+Math.imul(l,g0)|0,f=f+Math.imul(l,N0)|0,y=y+Math.imul(c,_0)|0,w=w+Math.imul(c,B0)|0,w=w+Math.imul(h,_0)|0,f=f+Math.imul(h,B0)|0;var a0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(a0>>>26)|0,a0&=67108863,y=Math.imul(U0,H0),w=Math.imul(U0,E0),w=w+Math.imul(X0,H0)|0,f=Math.imul(X0,E0),y=y+Math.imul(Z0,D0)|0,w=w+Math.imul(Z0,C0)|0,w=w+Math.imul(G0,D0)|0,f=f+Math.imul(G0,C0)|0,y=y+Math.imul($0,R0)|0,w=w+Math.imul($0,P0)|0,w=w+Math.imul(Q0,R0)|0,f=f+Math.imul(Q0,P0)|0,y=y+Math.imul(r,M0)|0,w=w+Math.imul(r,S0)|0,w=w+Math.imul(e,M0)|0,f=f+Math.imul(e,S0)|0,y=y+Math.imul(t,q0)|0,w=w+Math.imul(t,j0)|0,w=w+Math.imul(m,q0)|0,f=f+Math.imul(m,j0)|0,y=y+Math.imul(u,g0)|0,w=w+Math.imul(u,N0)|0,w=w+Math.imul(n,g0)|0,f=f+Math.imul(n,N0)|0,y=y+Math.imul(b,_0)|0,w=w+Math.imul(b,B0)|0,w=w+Math.imul(l,_0)|0,f=f+Math.imul(l,B0)|0,y=y+Math.imul(c,w0)|0,w=w+Math.imul(c,f0)|0,w=w+Math.imul(h,w0)|0,f=f+Math.imul(h,f0)|0;var r0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(r0>>>26)|0,r0&=67108863,y=Math.imul(I0,H0),w=Math.imul(I0,E0),w=w+Math.imul(J0,H0)|0,f=Math.imul(J0,E0),y=y+Math.imul(U0,D0)|0,w=w+Math.imul(U0,C0)|0,w=w+Math.imul(X0,D0)|0,f=f+Math.imul(X0,C0)|0,y=y+Math.imul(Z0,R0)|0,w=w+Math.imul(Z0,P0)|0,w=w+Math.imul(G0,R0)|0,f=f+Math.imul(G0,P0)|0,y=y+Math.imul($0,M0)|0,w=w+Math.imul($0,S0)|0,w=w+Math.imul(Q0,M0)|0,f=f+Math.imul(Q0,S0)|0,y=y+Math.imul(r,q0)|0,w=w+Math.imul(r,j0)|0,w=w+Math.imul(e,q0)|0,f=f+Math.imul(e,j0)|0,y=y+Math.imul(t,g0)|0,w=w+Math.imul(t,N0)|0,w=w+Math.imul(m,g0)|0,f=f+Math.imul(m,N0)|0,y=y+Math.imul(u,_0)|0,w=w+Math.imul(u,B0)|0,w=w+Math.imul(n,_0)|0,f=f+Math.imul(n,B0)|0,y=y+Math.imul(b,w0)|0,w=w+Math.imul(b,f0)|0,w=w+Math.imul(l,w0)|0,f=f+Math.imul(l,f0)|0,y=y+Math.imul(c,c0)|0,w=w+Math.imul(c,h0)|0,w=w+Math.imul(h,c0)|0,f=f+Math.imul(h,h0)|0;var e0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(e0>>>26)|0,e0&=67108863,y=Math.imul(F0,H0),w=Math.imul(F0,E0),w=w+Math.imul(A0,H0)|0,f=Math.imul(A0,E0),y=y+Math.imul(I0,D0)|0,w=w+Math.imul(I0,C0)|0,w=w+Math.imul(J0,D0)|0,f=f+Math.imul(J0,C0)|0,y=y+Math.imul(U0,R0)|0,w=w+Math.imul(U0,P0)|0,w=w+Math.imul(X0,R0)|0,f=f+Math.imul(X0,P0)|0,y=y+Math.imul(Z0,M0)|0,w=w+Math.imul(Z0,S0)|0,w=w+Math.imul(G0,M0)|0,f=f+Math.imul(G0,S0)|0,y=y+Math.imul($0,q0)|0,w=w+Math.imul($0,j0)|0,w=w+Math.imul(Q0,q0)|0,f=f+Math.imul(Q0,j0)|0,y=y+Math.imul(r,g0)|0,w=w+Math.imul(r,N0)|0,w=w+Math.imul(e,g0)|0,f=f+Math.imul(e,N0)|0,y=y+Math.imul(t,_0)|0,w=w+Math.imul(t,B0)|0,w=w+Math.imul(m,_0)|0,f=f+Math.imul(m,B0)|0,y=y+Math.imul(u,w0)|0,w=w+Math.imul(u,f0)|0,w=w+Math.imul(n,w0)|0,f=f+Math.imul(n,f0)|0,y=y+Math.imul(b,c0)|0,w=w+Math.imul(b,h0)|0,w=w+Math.imul(l,c0)|0,f=f+Math.imul(l,h0)|0,y=y+Math.imul(c,b0)|0,w=w+Math.imul(c,l0)|0,w=w+Math.imul(h,b0)|0,f=f+Math.imul(h,l0)|0;var i0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(i0>>>26)|0,i0&=67108863,y=Math.imul(F0,D0),w=Math.imul(F0,C0),w=w+Math.imul(A0,D0)|0,f=Math.imul(A0,C0),y=y+Math.imul(I0,R0)|0,w=w+Math.imul(I0,P0)|0,w=w+Math.imul(J0,R0)|0,f=f+Math.imul(J0,P0)|0,y=y+Math.imul(U0,M0)|0,w=w+Math.imul(U0,S0)|0,w=w+Math.imul(X0,M0)|0,f=f+Math.imul(X0,S0)|0,y=y+Math.imul(Z0,q0)|0,w=w+Math.imul(Z0,j0)|0,w=w+Math.imul(G0,q0)|0,f=f+Math.imul(G0,j0)|0,y=y+Math.imul($0,g0)|0,w=w+Math.imul($0,N0)|0,w=w+Math.imul(Q0,g0)|0,f=f+Math.imul(Q0,N0)|0,y=y+Math.imul(r,_0)|0,w=w+Math.imul(r,B0)|0,w=w+Math.imul(e,_0)|0,f=f+Math.imul(e,B0)|0,y=y+Math.imul(t,w0)|0,w=w+Math.imul(t,f0)|0,w=w+Math.imul(m,w0)|0,f=f+Math.imul(m,f0)|0,y=y+Math.imul(u,c0)|0,w=w+Math.imul(u,h0)|0,w=w+Math.imul(n,c0)|0,f=f+Math.imul(n,h0)|0,y=y+Math.imul(b,b0)|0,w=w+Math.imul(b,l0)|0,w=w+Math.imul(l,b0)|0,f=f+Math.imul(l,l0)|0;var $$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+($$>>>26)|0,$$&=67108863,y=Math.imul(F0,R0),w=Math.imul(F0,P0),w=w+Math.imul(A0,R0)|0,f=Math.imul(A0,P0),y=y+Math.imul(I0,M0)|0,w=w+Math.imul(I0,S0)|0,w=w+Math.imul(J0,M0)|0,f=f+Math.imul(J0,S0)|0,y=y+Math.imul(U0,q0)|0,w=w+Math.imul(U0,j0)|0,w=w+Math.imul(X0,q0)|0,f=f+Math.imul(X0,j0)|0,y=y+Math.imul(Z0,g0)|0,w=w+Math.imul(Z0,N0)|0,w=w+Math.imul(G0,g0)|0,f=f+Math.imul(G0,N0)|0,y=y+Math.imul($0,_0)|0,w=w+Math.imul($0,B0)|0,w=w+Math.imul(Q0,_0)|0,f=f+Math.imul(Q0,B0)|0,y=y+Math.imul(r,w0)|0,w=w+Math.imul(r,f0)|0,w=w+Math.imul(e,w0)|0,f=f+Math.imul(e,f0)|0,y=y+Math.imul(t,c0)|0,w=w+Math.imul(t,h0)|0,w=w+Math.imul(m,c0)|0,f=f+Math.imul(m,h0)|0,y=y+Math.imul(u,b0)|0,w=w+Math.imul(u,l0)|0,w=w+Math.imul(n,b0)|0,f=f+Math.imul(n,l0)|0;var Q$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,y=Math.imul(F0,M0),w=Math.imul(F0,S0),w=w+Math.imul(A0,M0)|0,f=Math.imul(A0,S0),y=y+Math.imul(I0,q0)|0,w=w+Math.imul(I0,j0)|0,w=w+Math.imul(J0,q0)|0,f=f+Math.imul(J0,j0)|0,y=y+Math.imul(U0,g0)|0,w=w+Math.imul(U0,N0)|0,w=w+Math.imul(X0,g0)|0,f=f+Math.imul(X0,N0)|0,y=y+Math.imul(Z0,_0)|0,w=w+Math.imul(Z0,B0)|0,w=w+Math.imul(G0,_0)|0,f=f+Math.imul(G0,B0)|0,y=y+Math.imul($0,w0)|0,w=w+Math.imul($0,f0)|0,w=w+Math.imul(Q0,w0)|0,f=f+Math.imul(Q0,f0)|0,y=y+Math.imul(r,c0)|0,w=w+Math.imul(r,h0)|0,w=w+Math.imul(e,c0)|0,f=f+Math.imul(e,h0)|0,y=y+Math.imul(t,b0)|0,w=w+Math.imul(t,l0)|0,w=w+Math.imul(m,b0)|0,f=f+Math.imul(m,l0)|0;var Y$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,y=Math.imul(F0,q0),w=Math.imul(F0,j0),w=w+Math.imul(A0,q0)|0,f=Math.imul(A0,j0),y=y+Math.imul(I0,g0)|0,w=w+Math.imul(I0,N0)|0,w=w+Math.imul(J0,g0)|0,f=f+Math.imul(J0,N0)|0,y=y+Math.imul(U0,_0)|0,w=w+Math.imul(U0,B0)|0,w=w+Math.imul(X0,_0)|0,f=f+Math.imul(X0,B0)|0,y=y+Math.imul(Z0,w0)|0,w=w+Math.imul(Z0,f0)|0,w=w+Math.imul(G0,w0)|0,f=f+Math.imul(G0,f0)|0,y=y+Math.imul($0,c0)|0,w=w+Math.imul($0,h0)|0,w=w+Math.imul(Q0,c0)|0,f=f+Math.imul(Q0,h0)|0,y=y+Math.imul(r,b0)|0,w=w+Math.imul(r,l0)|0,w=w+Math.imul(e,b0)|0,f=f+Math.imul(e,l0)|0;var Z$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,y=Math.imul(F0,g0),w=Math.imul(F0,N0),w=w+Math.imul(A0,g0)|0,f=Math.imul(A0,N0),y=y+Math.imul(I0,_0)|0,w=w+Math.imul(I0,B0)|0,w=w+Math.imul(J0,_0)|0,f=f+Math.imul(J0,B0)|0,y=y+Math.imul(U0,w0)|0,w=w+Math.imul(U0,f0)|0,w=w+Math.imul(X0,w0)|0,f=f+Math.imul(X0,f0)|0,y=y+Math.imul(Z0,c0)|0,w=w+Math.imul(Z0,h0)|0,w=w+Math.imul(G0,c0)|0,f=f+Math.imul(G0,h0)|0,y=y+Math.imul($0,b0)|0,w=w+Math.imul($0,l0)|0,w=w+Math.imul(Q0,b0)|0,f=f+Math.imul(Q0,l0)|0;var G$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(G$>>>26)|0,G$&=67108863,y=Math.imul(F0,_0),w=Math.imul(F0,B0),w=w+Math.imul(A0,_0)|0,f=Math.imul(A0,B0),y=y+Math.imul(I0,w0)|0,w=w+Math.imul(I0,f0)|0,w=w+Math.imul(J0,w0)|0,f=f+Math.imul(J0,f0)|0,y=y+Math.imul(U0,c0)|0,w=w+Math.imul(U0,h0)|0,w=w+Math.imul(X0,c0)|0,f=f+Math.imul(X0,h0)|0,y=y+Math.imul(Z0,b0)|0,w=w+Math.imul(Z0,l0)|0,w=w+Math.imul(G0,b0)|0,f=f+Math.imul(G0,l0)|0;var V$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(V$>>>26)|0,V$&=67108863,y=Math.imul(F0,w0),w=Math.imul(F0,f0),w=w+Math.imul(A0,w0)|0,f=Math.imul(A0,f0),y=y+Math.imul(I0,c0)|0,w=w+Math.imul(I0,h0)|0,w=w+Math.imul(J0,c0)|0,f=f+Math.imul(J0,h0)|0,y=y+Math.imul(U0,b0)|0,w=w+Math.imul(U0,l0)|0,w=w+Math.imul(X0,b0)|0,f=f+Math.imul(X0,l0)|0;var U$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(U$>>>26)|0,U$&=67108863,y=Math.imul(F0,c0),w=Math.imul(F0,h0),w=w+Math.imul(A0,c0)|0,f=Math.imul(A0,h0),y=y+Math.imul(I0,b0)|0,w=w+Math.imul(I0,l0)|0,w=w+Math.imul(J0,b0)|0,f=f+Math.imul(J0,l0)|0;var X$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(X$>>>26)|0,X$&=67108863,y=Math.imul(F0,b0),w=Math.imul(F0,l0),w=w+Math.imul(A0,b0)|0,f=Math.imul(A0,l0);var K$=(B+y|0)+((w&8191)<<13)|0;return B=(f+(w>>>13)|0)+(K$>>>26)|0,K$&=67108863,_[0]=o0,_[1]=u0,_[2]=n0,_[3]=s0,_[4]=t0,_[5]=m0,_[6]=a0,_[7]=r0,_[8]=e0,_[9]=i0,_[10]=$$,_[11]=Q$,_[12]=Y$,_[13]=Z$,_[14]=G$,_[15]=V$,_[16]=U$,_[17]=X$,_[18]=K$,B!==0&&(_[19]=B,g.length++),g};Math.imul||(E=H);function T(j,k,g){g.negative=k.negative^j.negative,g.length=j.length+k.length;for(var N=0,x=0,_=0;_>>26)|0,x+=B>>>26,B&=67108863}g.words[_]=y,N=B,B=x}return N!==0?g.words[_]=N:g.length--,g.strip()}function D(j,k,g){var N=new C;return N.mulp(j,k,g)}U.prototype.mulTo=function(j,k){var g,N=this.length+j.length;return this.length===10&&j.length===10?g=E(this,j,k):N<63?g=H(this,j,k):N<1024?g=T(this,j,k):g=D(this,j,k),g};function C(j,k){this.x=j,this.y=k}C.prototype.makeRBT=function(j){for(var k=new Array(j),g=U.prototype._countBits(j)-1,N=0;N>=1;return N},C.prototype.permute=function(j,k,g,N,x,_){for(var B=0;B<_;B++)N[B]=k[j[B]],x[B]=g[j[B]]},C.prototype.transform=function(j,k,g,N,x,_){this.permute(_,j,k,g,N,x);for(var B=1;B>>1)x++;return 1<>>13,g[2*_+1]=x&8191,x=x>>>13;for(_=2*k;_>=26,k+=N/67108864|0,k+=x>>>26,this.words[g]=x&67108863}return k!==0&&(this.words[g]=k,this.length++),this},U.prototype.muln=function(j){return this.clone().imuln(j)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(j){var k=W(j);if(k.length===0)return new U(1);for(var g=this,N=0;N=0);var k=j%26,g=(j-k)/26,N=67108863>>>26-k<<26-k,x;if(k!==0){var _=0;for(x=0;x>>26-k}_&&(this.words[x]=_,this.length++)}if(g!==0){for(x=this.length-1;x>=0;x--)this.words[x+g]=this.words[x];for(x=0;x=0);var N;k?N=(k-k%26)/26:N=0;var x=j%26,_=Math.min((j-x)/26,this.length),B=67108863^67108863>>>x<_)for(this.length-=_,w=0;w=0&&(f!==0||w>=N);w--){var p=this.words[w]|0;this.words[w]=f<<26-x|p>>>x,f=p&B}return y&&f!==0&&(y.words[y.length++]=f),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},U.prototype.ishrn=function(j,k,g){return G(this.negative===0),this.iushrn(j,k,g)},U.prototype.shln=function(j){return this.clone().ishln(j)},U.prototype.ushln=function(j){return this.clone().iushln(j)},U.prototype.shrn=function(j){return this.clone().ishrn(j)},U.prototype.ushrn=function(j){return this.clone().iushrn(j)},U.prototype.testn=function(j){G(typeof j=="number"&&j>=0);var k=j%26,g=(j-k)/26,N=1<=0);var k=j%26,g=(j-k)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(k!==0&&g++,this.length=Math.min(g,this.length),k!==0){var N=67108863^67108863>>>k<=67108864;k++)this.words[k]-=67108864,k===this.length-1?this.words[k+1]=1:this.words[k+1]++;return this.length=Math.max(this.length,k+1),this},U.prototype.isubn=function(j){if(G(typeof j=="number"),G(j<67108864),j<0)return this.iaddn(-j);if(this.negative!==0)return this.negative=0,this.iaddn(j),this.negative=1,this;if(this.words[0]-=j,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var k=0;k>26)-(y/67108864|0),this.words[x+g]=_&67108863}for(;x>26,this.words[x+g]=_&67108863;if(B===0)return this.strip();for(G(B===-1),B=0,x=0;x>26,this.words[x]=_&67108863;return this.negative=1,this.strip()},U.prototype._wordDiv=function(j,k){var g=this.length-j.length,N=this.clone(),x=j,_=x.words[x.length-1]|0,B=this._countBits(_);g=26-B,g!==0&&(x=x.ushln(g),N.iushln(g),_=x.words[x.length-1]|0);var y=N.length-x.length,w;if(k!=="mod"){w=new U(null),w.length=y+1,w.words=new Array(w.length);for(var f=0;f=0;c--){var h=(N.words[x.length+c]|0)*67108864+(N.words[x.length+c-1]|0);for(h=Math.min(h/_|0,67108863),N._ishlnsubmul(x,h,c);N.negative!==0;)h--,N.negative=0,N._ishlnsubmul(x,1,c),N.isZero()||(N.negative^=1);w&&(w.words[c]=h)}return w&&w.strip(),N.strip(),k!=="div"&&g!==0&&N.iushrn(g),{div:w||null,mod:N}},U.prototype.divmod=function(j,k,g){if(G(!j.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var N,x,_;return this.negative!==0&&j.negative===0?(_=this.neg().divmod(j,k),k!=="mod"&&(N=_.div.neg()),k!=="div"&&(x=_.mod.neg(),g&&x.negative!==0&&x.iadd(j)),{div:N,mod:x}):this.negative===0&&j.negative!==0?(_=this.divmod(j.neg(),k),k!=="mod"&&(N=_.div.neg()),{div:N,mod:_.mod}):(this.negative&j.negative)!==0?(_=this.neg().divmod(j.neg(),k),k!=="div"&&(x=_.mod.neg(),g&&x.negative!==0&&x.isub(j)),{div:_.div,mod:x}):j.length>this.length||this.cmp(j)<0?{div:new U(0),mod:this}:j.length===1?k==="div"?{div:this.divn(j.words[0]),mod:null}:k==="mod"?{div:null,mod:new U(this.modn(j.words[0]))}:{div:this.divn(j.words[0]),mod:new U(this.modn(j.words[0]))}:this._wordDiv(j,k)},U.prototype.div=function(j){return this.divmod(j,"div",!1).div},U.prototype.mod=function(j){return this.divmod(j,"mod",!1).mod},U.prototype.umod=function(j){return this.divmod(j,"mod",!0).mod},U.prototype.divRound=function(j){var k=this.divmod(j);if(k.mod.isZero())return k.div;var g=k.div.negative!==0?k.mod.isub(j):k.mod,N=j.ushrn(1),x=j.andln(1),_=g.cmp(N);return _<0||x===1&&_===0?k.div:k.div.negative!==0?k.div.isubn(1):k.div.iaddn(1)},U.prototype.modn=function(j){G(j<=67108863);for(var k=(1<<26)%j,g=0,N=this.length-1;N>=0;N--)g=(k*g+(this.words[N]|0))%j;return g},U.prototype.idivn=function(j){G(j<=67108863);for(var k=0,g=this.length-1;g>=0;g--){var N=(this.words[g]|0)+k*67108864;this.words[g]=N/j|0,k=N%j}return this.strip()},U.prototype.divn=function(j){return this.clone().idivn(j)},U.prototype.egcd=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var N=new U(1),x=new U(0),_=new U(0),B=new U(1),y=0;k.isEven()&&g.isEven();)k.iushrn(1),g.iushrn(1),++y;for(var w=g.clone(),f=k.clone();!k.isZero();){for(var p=0,c=1;(k.words[0]&c)===0&&p<26;++p,c<<=1);if(p>0)for(k.iushrn(p);p-- >0;)(N.isOdd()||x.isOdd())&&(N.iadd(w),x.isub(f)),N.iushrn(1),x.iushrn(1);for(var h=0,d=1;(g.words[0]&d)===0&&h<26;++h,d<<=1);if(h>0)for(g.iushrn(h);h-- >0;)(_.isOdd()||B.isOdd())&&(_.iadd(w),B.isub(f)),_.iushrn(1),B.iushrn(1);k.cmp(g)>=0?(k.isub(g),N.isub(_),x.isub(B)):(g.isub(k),_.isub(N),B.isub(x))}return{a:_,b:B,gcd:g.iushln(y)}},U.prototype._invmp=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var N=new U(1),x=new U(0),_=g.clone();k.cmpn(1)>0&&g.cmpn(1)>0;){for(var B=0,y=1;(k.words[0]&y)===0&&B<26;++B,y<<=1);if(B>0)for(k.iushrn(B);B-- >0;)N.isOdd()&&N.iadd(_),N.iushrn(1);for(var w=0,f=1;(g.words[0]&f)===0&&w<26;++w,f<<=1);if(w>0)for(g.iushrn(w);w-- >0;)x.isOdd()&&x.iadd(_),x.iushrn(1);k.cmp(g)>=0?(k.isub(g),N.isub(x)):(g.isub(k),x.isub(N))}var p;return k.cmpn(1)===0?p=N:p=x,p.cmpn(0)<0&&p.iadd(j),p},U.prototype.gcd=function(j){if(this.isZero())return j.abs();if(j.isZero())return this.abs();var k=this.clone(),g=j.clone();k.negative=0,g.negative=0;for(var N=0;k.isEven()&&g.isEven();N++)k.iushrn(1),g.iushrn(1);do{for(;k.isEven();)k.iushrn(1);for(;g.isEven();)g.iushrn(1);var x=k.cmp(g);if(x<0){var _=k;k=g,g=_}else if(x===0||g.cmpn(1)===0)break;k.isub(g)}while(!0);return g.iushln(N)},U.prototype.invm=function(j){return this.egcd(j).a.umod(j)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(j){return this.words[0]&j},U.prototype.bincn=function(j){G(typeof j=="number");var k=j%26,g=(j-k)/26,N=1<>>26,B&=67108863,this.words[_]=B}return x!==0&&(this.words[_]=x,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(j){var k=j<0;if(this.negative!==0&&!k)return-1;if(this.negative===0&&k)return 1;this.strip();var g;if(this.length>1)g=1;else{k&&(j=-j),G(j<=67108863,"Number is too big");var N=this.words[0]|0;g=N===j?0:Nj.length)return 1;if(this.length=0;g--){var N=this.words[g]|0,x=j.words[g]|0;if(N!==x){Nx&&(k=1);break}}return k},U.prototype.gtn=function(j){return this.cmpn(j)===1},U.prototype.gt=function(j){return this.cmp(j)===1},U.prototype.gten=function(j){return this.cmpn(j)>=0},U.prototype.gte=function(j){return this.cmp(j)>=0},U.prototype.ltn=function(j){return this.cmpn(j)===-1},U.prototype.lt=function(j){return this.cmp(j)===-1},U.prototype.lten=function(j){return this.cmpn(j)<=0},U.prototype.lte=function(j){return this.cmp(j)<=0},U.prototype.eqn=function(j){return this.cmpn(j)===0},U.prototype.eq=function(j){return this.cmp(j)===0},U.red=function(j){return new v(j)},U.prototype.toRed=function(j){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),j.convertTo(this)._forceRed(j)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(j){return this.red=j,this},U.prototype.forceRed=function(j){return G(!this.red,"Already a number in reduction context"),this._forceRed(j)},U.prototype.redAdd=function(j){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,j)},U.prototype.redIAdd=function(j){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,j)},U.prototype.redSub=function(j){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,j)},U.prototype.redISub=function(j){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,j)},U.prototype.redShl=function(j){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,j)},U.prototype.redMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.mul(this,j)},U.prototype.redIMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.imul(this,j)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(j){return G(this.red&&!j.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,j)};var L={k256:null,p224:null,p192:null,p25519:null};function R(j,k){this.name=j,this.p=new U(k,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}R.prototype._tmp=function(){var j=new U(null);return j.words=new Array(Math.ceil(this.n/13)),j},R.prototype.ireduce=function(j){var k=j,g;do this.split(k,this.tmp),k=this.imulK(k),k=k.iadd(this.tmp),g=k.bitLength();while(g>this.n);var N=g0?k.isub(this.p):k.strip!==void 0?k.strip():k._strip(),k},R.prototype.split=function(j,k){j.iushrn(this.n,0,k)},R.prototype.imulK=function(j){return j.imul(this.k)};function P(){R.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(P,R),P.prototype.split=function(j,k){for(var g=4194303,N=Math.min(j.length,9),x=0;x>>22,_=B}_>>>=22,j.words[x-10]=_,_===0&&j.length>10?j.length-=10:j.length-=9},P.prototype.imulK=function(j){j.words[j.length]=0,j.words[j.length+1]=0,j.length+=2;for(var k=0,g=0;g>>=26,j.words[g]=x,k=N}return k!==0&&(j.words[j.length++]=k),j},U._prime=function(j){if(L[j])return L[j];var k;if(j==="k256")k=new P;else if(j==="p224")k=new z;else if(j==="p192")k=new M;else if(j==="p25519")k=new S;else throw new Error("Unknown prime "+j);return L[j]=k,k};function v(j){if(typeof j=="string"){var k=U._prime(j);this.m=k.p,this.prime=k}else G(j.gtn(1),"modulus must be greater than 1"),this.m=j,this.prime=null}v.prototype._verify1=function(j){G(j.negative===0,"red works only with positives"),G(j.red,"red works only with red numbers")},v.prototype._verify2=function(j,k){G((j.negative|k.negative)===0,"red works only with positives"),G(j.red&&j.red===k.red,"red works only with red numbers")},v.prototype.imod=function(j){return this.prime?this.prime.ireduce(j)._forceRed(this):j.umod(this.m)._forceRed(this)},v.prototype.neg=function(j){return j.isZero()?j.clone():this.m.sub(j)._forceRed(this)},v.prototype.add=function(j,k){this._verify2(j,k);var g=j.add(k);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},v.prototype.iadd=function(j,k){this._verify2(j,k);var g=j.iadd(k);return g.cmp(this.m)>=0&&g.isub(this.m),g},v.prototype.sub=function(j,k){this._verify2(j,k);var g=j.sub(k);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},v.prototype.isub=function(j,k){this._verify2(j,k);var g=j.isub(k);return g.cmpn(0)<0&&g.iadd(this.m),g},v.prototype.shl=function(j,k){return this._verify1(j),this.imod(j.ushln(k))},v.prototype.imul=function(j,k){return this._verify2(j,k),this.imod(j.imul(k))},v.prototype.mul=function(j,k){return this._verify2(j,k),this.imod(j.mul(k))},v.prototype.isqr=function(j){return this.imul(j,j.clone())},v.prototype.sqr=function(j){return this.mul(j,j)},v.prototype.sqrt=function(j){if(j.isZero())return j.clone();var k=this.m.andln(3);if(G(k%2===1),k===3){var g=this.m.add(new U(1)).iushrn(2);return this.pow(j,g)}for(var N=this.m.subn(1),x=0;!N.isZero()&&N.andln(1)===0;)x++,N.iushrn(1);G(!N.isZero());var _=new U(1).toRed(this),B=_.redNeg(),y=this.m.subn(1).iushrn(1),w=this.m.bitLength();for(w=new U(2*w*w).toRed(this);this.pow(w,y).cmp(B)!==0;)w.redIAdd(B);for(var f=this.pow(w,N),p=this.pow(j,N.addn(1).iushrn(1)),c=this.pow(j,N),h=x;c.cmp(_)!==0;){for(var d=c,b=0;d.cmp(_)!==0;b++)d=d.redSqr();G(b=0;x--){for(var f=k.words[x],p=w-1;p>=0;p--){var c=f>>p&1;if(_!==N[0]&&(_=this.sqr(_)),c===0&&B===0){y=0;continue}B<<=1,B|=c,y++,!(y!==g&&(x!==0||p!==0))&&(_=this.mul(_,N[B]),y=0,B=0)}w=26}return _},v.prototype.convertTo=function(j){var k=j.umod(this.m);return k===j?k.clone():k},v.prototype.convertFrom=function(j){var k=j.clone();return k.red=null,k},U.mont=function(j){return new q(j)};function q(j){v.call(this,j),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(q,v),q.prototype.convertTo=function(j){return this.imod(j.ushln(this.shift))},q.prototype.convertFrom=function(j){var k=this.imod(j.mul(this.rinv));return k.red=null,k},q.prototype.imul=function(j,k){if(j.isZero()||k.isZero())return j.words[0]=0,j.length=1,j;var g=j.imul(k),N=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),x=g.isub(N).iushrn(this.shift),_=x;return x.cmp(this.m)>=0?_=x.isub(this.m):x.cmpn(0)<0&&(_=x.iadd(this.m)),_._forceRed(this)},q.prototype.mul=function(j,k){if(j.isZero()||k.isZero())return new U(0)._forceRed(this);var g=j.mul(k),N=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),x=g.isub(N).iushrn(this.shift),_=x;return x.cmp(this.m)>=0?_=x.isub(this.m):x.cmpn(0)<0&&(_=x.iadd(this.m)),_._forceRed(this)},q.prototype.invm=function(j){var k=this.imod(j._invmp(this.m).mul(this.r2));return k._forceRed(this)}})(typeof Q>"u"||Q,$)}}),hQ=z$({"node_modules/minimalistic-crypto-utils/lib/utils.js"($){var Q=$;function Y(V,U){if(Array.isArray(V))return V.slice();if(!V)return[];var X=[];if(typeof V!="string"){for(var K=0;K>8,O=I&255;J?X.push(J,O):X.push(O)}return X}Q.toArray=Y;function Z(V){return V.length===1?"0"+V:V}Q.zero2=Z;function G(V){for(var U="",X=0;X(W>>1)-1?T=(W>>1)-D:T=D,H.isubn(T)):T=0,A[E]=T,H.iushrn(1)}return A}Q.getNAF=V;function U(J,O){var F=[[],[]];J=J.clone(),O=O.clone();for(var A=0,W=0,H;J.cmpn(-A)>0||O.cmpn(-W)>0;){var E=J.andln(3)+A&3,T=O.andln(3)+W&3;E===3&&(E=-1),T===3&&(T=-1);var D;(E&1)===0?D=0:(H=J.andln(7)+A&7,(H===3||H===5)&&T===2?D=-E:D=E),F[0].push(D);var C;(T&1)===0?C=0:(H=O.andln(7)+W&7,(H===3||H===5)&&E===2?C=-T:C=T),F[1].push(C),2*A===D+1&&(A=1-A),2*W===C+1&&(W=1-W),J.iushrn(1),O.iushrn(1)}return F}Q.getJSF=U;function X(J,O,F){var A="_"+O;J.prototype[O]=function(){return this[A]!==void 0?this[A]:this[A]=F.call(this)}}Q.cachedProperty=X;function K(J){return typeof J=="string"?Q.toArray(J,"hex"):J}Q.parseBytes=K;function I(J){return new Y(J,"hex","le")}Q.intFromLE=I}}),bQ=z$({"node_modules/elliptic/lib/elliptic/curve/base.js"($,Q){var Y=cQ(),Z=dQ(),G=Z.getNAF,V=Z.getJSF,U=Z.assert;function X(I,J){this.type=I,this.p=new Y(J.p,16),this.red=J.prime?Y.red(J.prime):Y.mont(this.p),this.zero=new Y(0).toRed(this.red),this.one=new Y(1).toRed(this.red),this.two=new Y(2).toRed(this.red),this.n=J.n&&new Y(J.n,16),this.g=J.g&&this.pointFromJSON(J.g,J.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var O=this.n&&this.p.div(this.n);!O||O.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}Q.exports=X,X.prototype.point=function(){throw new Error("Not implemented")},X.prototype.validate=function(){throw new Error("Not implemented")},X.prototype._fixedNafMul=function(I,J){U(I.precomputed);var O=I._getDoubles(),F=G(J,1,this._bitLength),A=(1<=H;T--)E=(E<<1)+F[T];W.push(E)}for(var D=this.jpoint(null,null,null),C=this.jpoint(null,null,null),L=A;L>0;L--){for(H=0;H=0;E--){for(var T=0;E>=0&&W[E]===0;E--)T++;if(E>=0&&T++,H=H.dblp(T),E<0)break;var D=W[E];U(D!==0),I.type==="affine"?D>0?H=H.mixedAdd(A[D-1>>1]):H=H.mixedAdd(A[-D-1>>1].neg()):D>0?H=H.add(A[D-1>>1]):H=H.add(A[-D-1>>1].neg())}return I.type==="affine"?H.toP():H},X.prototype._wnafMulAdd=function(I,J,O,F,A){var W=this._wnafT1,H=this._wnafT2,E=this._wnafT3,T=0,D,C,L;for(D=0;D=1;D-=2){var P=D-1,z=D;if(W[P]!==1||W[z]!==1){E[P]=G(O[P],W[P],this._bitLength),E[z]=G(O[z],W[z],this._bitLength),T=Math.max(E[P].length,T),T=Math.max(E[z].length,T);continue}var M=[J[P],null,null,J[z]];J[P].y.cmp(J[z].y)===0?(M[1]=J[P].add(J[z]),M[2]=J[P].toJ().mixedAdd(J[z].neg())):J[P].y.cmp(J[z].y.redNeg())===0?(M[1]=J[P].toJ().mixedAdd(J[z]),M[2]=J[P].add(J[z].neg())):(M[1]=J[P].toJ().mixedAdd(J[z]),M[2]=J[P].toJ().mixedAdd(J[z].neg()));var S=[-3,-1,-5,-7,0,7,5,1,3],v=V(O[P],O[z]);for(T=Math.max(v[0].length,T),E[P]=new Array(T),E[z]=new Array(T),C=0;C=0;D--){for(var N=0;D>=0;){var x=!0;for(C=0;C=0&&N++,k=k.dblp(N),D<0)break;for(C=0;C0?L=H[C][_-1>>1]:_<0&&(L=H[C][-_-1>>1].neg()),L.type==="affine"?k=k.mixedAdd(L):k=k.add(L))}}for(D=0;D=Math.ceil((I.bitLength()+1)/J.step):!1},K.prototype._getDoubles=function(I,J){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var O=[this],F=this,A=0;A=0&&(P=D,z=C),L.negative&&(L=L.neg(),R=R.neg()),P.negative&&(P=P.neg(),z=z.neg()),[{a:L,b:R},{a:P,b:z}]},X.prototype._endoSplit=function(J){var O=this.endo.basis,F=O[0],A=O[1],W=A.b.mul(J).divRound(this.n),H=F.b.neg().mul(J).divRound(this.n),E=W.mul(F.a),T=H.mul(A.a),D=W.mul(F.b),C=H.mul(A.b),L=J.sub(E).sub(T),R=D.add(C).neg();return{k1:L,k2:R}},X.prototype.pointFromX=function(J,O){J=new Z(J,16),J.red||(J=J.toRed(this.red));var F=J.redSqr().redMul(J).redIAdd(J.redMul(this.a)).redIAdd(this.b),A=F.redSqrt();if(A.redSqr().redSub(F).cmp(this.zero)!==0)throw new Error("invalid point");var W=A.fromRed().isOdd();return(O&&!W||!O&&W)&&(A=A.redNeg()),this.point(J,A)},X.prototype.validate=function(J){if(J.inf)return!0;var{x:O,y:F}=J,A=this.a.redMul(O),W=O.redSqr().redMul(O).redIAdd(A).redIAdd(this.b);return F.redSqr().redISub(W).cmpn(0)===0},X.prototype._endoWnafMulAdd=function(J,O,F){for(var A=this._endoWnafT1,W=this._endoWnafT2,H=0;H":""},K.prototype.isInfinity=function(){return this.inf},K.prototype.add=function(J){if(this.inf)return J;if(J.inf)return this;if(this.eq(J))return this.dbl();if(this.neg().eq(J))return this.curve.point(null,null);if(this.x.cmp(J.x)===0)return this.curve.point(null,null);var O=this.y.redSub(J.y);O.cmpn(0)!==0&&(O=O.redMul(this.x.redSub(J.x).redInvm()));var F=O.redSqr().redISub(this.x).redISub(J.x),A=O.redMul(this.x.redSub(F)).redISub(this.y);return this.curve.point(F,A)},K.prototype.dbl=function(){if(this.inf)return this;var J=this.y.redAdd(this.y);if(J.cmpn(0)===0)return this.curve.point(null,null);var O=this.curve.a,F=this.x.redSqr(),A=J.redInvm(),W=F.redAdd(F).redIAdd(F).redIAdd(O).redMul(A),H=W.redSqr().redISub(this.x.redAdd(this.x)),E=W.redMul(this.x.redSub(H)).redISub(this.y);return this.curve.point(H,E)},K.prototype.getX=function(){return this.x.fromRed()},K.prototype.getY=function(){return this.y.fromRed()},K.prototype.mul=function(J){return J=new Z(J,16),this.isInfinity()?this:this._hasDoubles(J)?this.curve._fixedNafMul(this,J):this.curve.endo?this.curve._endoWnafMulAdd([this],[J]):this.curve._wnafMul(this,J)},K.prototype.mulAdd=function(J,O,F){var A=[this,O],W=[J,F];return this.curve.endo?this.curve._endoWnafMulAdd(A,W):this.curve._wnafMulAdd(1,A,W,2)},K.prototype.jmulAdd=function(J,O,F){var A=[this,O],W=[J,F];return this.curve.endo?this.curve._endoWnafMulAdd(A,W,!0):this.curve._wnafMulAdd(1,A,W,2,!0)},K.prototype.eq=function(J){return this===J||this.inf===J.inf&&(this.inf||this.x.cmp(J.x)===0&&this.y.cmp(J.y)===0)},K.prototype.neg=function(J){if(this.inf)return this;var O=this.curve.point(this.x,this.y.redNeg());if(J&&this.precomputed){var F=this.precomputed,A=function(W){return W.neg()};O.precomputed={naf:F.naf&&{wnd:F.naf.wnd,points:F.naf.points.map(A)},doubles:F.doubles&&{step:F.doubles.step,points:F.doubles.points.map(A)}}}return O},K.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var J=this.curve.jpoint(this.x,this.y,this.curve.one);return J};function I(J,O,F,A){V.BasePoint.call(this,J,"jacobian"),O===null&&F===null&&A===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new Z(0)):(this.x=new Z(O,16),this.y=new Z(F,16),this.z=new Z(A,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}G(I,V.BasePoint),X.prototype.jpoint=function(J,O,F){return new I(this,J,O,F)},I.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var J=this.z.redInvm(),O=J.redSqr(),F=this.x.redMul(O),A=this.y.redMul(O).redMul(J);return this.curve.point(F,A)},I.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},I.prototype.add=function(J){if(this.isInfinity())return J;if(J.isInfinity())return this;var O=J.z.redSqr(),F=this.z.redSqr(),A=this.x.redMul(O),W=J.x.redMul(F),H=this.y.redMul(O.redMul(J.z)),E=J.y.redMul(F.redMul(this.z)),T=A.redSub(W),D=H.redSub(E);if(T.cmpn(0)===0)return D.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var C=T.redSqr(),L=C.redMul(T),R=A.redMul(C),P=D.redSqr().redIAdd(L).redISub(R).redISub(R),z=D.redMul(R.redISub(P)).redISub(H.redMul(L)),M=this.z.redMul(J.z).redMul(T);return this.curve.jpoint(P,z,M)},I.prototype.mixedAdd=function(J){if(this.isInfinity())return J.toJ();if(J.isInfinity())return this;var O=this.z.redSqr(),F=this.x,A=J.x.redMul(O),W=this.y,H=J.y.redMul(O).redMul(this.z),E=F.redSub(A),T=W.redSub(H);if(E.cmpn(0)===0)return T.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var D=E.redSqr(),C=D.redMul(E),L=F.redMul(D),R=T.redSqr().redIAdd(C).redISub(L).redISub(L),P=T.redMul(L.redISub(R)).redISub(W.redMul(C)),z=this.z.redMul(E);return this.curve.jpoint(R,P,z)},I.prototype.dblp=function(J){if(J===0)return this;if(this.isInfinity())return this;if(!J)return this.dbl();var O;if(this.curve.zeroA||this.curve.threeA){var F=this;for(O=0;O=0)return!1;if(F.redIAdd(W),this.x.cmp(F)===0)return!0}},I.prototype.inspect=function(){return this.isInfinity()?"":""},I.prototype.isInfinity=function(){return this.z.cmpn(0)===0}}}),oQ=z$({"node_modules/elliptic/lib/elliptic/curve/mont.js"($,Q){var Y=cQ(),Z=q$(),G=bQ(),V=dQ();function U(K){G.call(this,"mont",K),this.a=new Y(K.a,16).toRed(this.red),this.b=new Y(K.b,16).toRed(this.red),this.i4=new Y(4).toRed(this.red).redInvm(),this.two=new Y(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}Z(U,G),Q.exports=U,U.prototype.validate=function(K){var I=K.normalize().x,J=I.redSqr(),O=J.redMul(I).redAdd(J.redMul(this.a)).redAdd(I),F=O.redSqrt();return F.redSqr().cmp(O)===0};function X(K,I,J){G.BasePoint.call(this,K,"projective"),I===null&&J===null?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new Y(I,16),this.z=new Y(J,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}Z(X,G.BasePoint),U.prototype.decodePoint=function(K,I){return this.point(V.toArray(K,I),1)},U.prototype.point=function(K,I){return new X(this,K,I)},U.prototype.pointFromJSON=function(K){return X.fromJSON(this,K)},X.prototype.precompute=function(){},X.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},X.fromJSON=function(K,I){return new X(K,I[0],I[1]||K.one)},X.prototype.inspect=function(){return this.isInfinity()?"":""},X.prototype.isInfinity=function(){return this.z.cmpn(0)===0},X.prototype.dbl=function(){var K=this.x.redAdd(this.z),I=K.redSqr(),J=this.x.redSub(this.z),O=J.redSqr(),F=I.redSub(O),A=I.redMul(O),W=F.redMul(O.redAdd(this.curve.a24.redMul(F)));return this.curve.point(A,W)},X.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},X.prototype.diffAdd=function(K,I){var J=this.x.redAdd(this.z),O=this.x.redSub(this.z),F=K.x.redAdd(K.z),A=K.x.redSub(K.z),W=A.redMul(J),H=F.redMul(O),E=I.z.redMul(W.redAdd(H).redSqr()),T=I.x.redMul(W.redISub(H).redSqr());return this.curve.point(E,T)},X.prototype.mul=function(K){for(var I=K.clone(),J=this,O=this.curve.point(null,null),F=this,A=[];I.cmpn(0)!==0;I.iushrn(1))A.push(I.andln(1));for(var W=A.length-1;W>=0;W--)A[W]===0?(J=J.diffAdd(O,F),O=O.dbl()):(O=J.diffAdd(O,F),J=J.dbl());return O},X.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},X.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},X.prototype.eq=function(K){return this.getX().cmp(K.getX())===0},X.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},X.prototype.getX=function(){return this.normalize(),this.x.fromRed()}}}),uQ=z$({"node_modules/elliptic/lib/elliptic/curve/edwards.js"($,Q){var Y=dQ(),Z=cQ(),G=q$(),V=bQ(),U=Y.assert;function X(I){this.twisted=(I.a|0)!==1,this.mOneA=this.twisted&&(I.a|0)===-1,this.extended=this.mOneA,V.call(this,"edwards",I),this.a=new Z(I.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new Z(I.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new Z(I.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),U(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(I.c|0)===1}G(X,V),Q.exports=X,X.prototype._mulA=function(I){return this.mOneA?I.redNeg():this.a.redMul(I)},X.prototype._mulC=function(I){return this.oneC?I:this.c.redMul(I)},X.prototype.jpoint=function(I,J,O,F){return this.point(I,J,O,F)},X.prototype.pointFromX=function(I,J){I=new Z(I,16),I.red||(I=I.toRed(this.red));var O=I.redSqr(),F=this.c2.redSub(this.a.redMul(O)),A=this.one.redSub(this.c2.redMul(this.d).redMul(O)),W=F.redMul(A.redInvm()),H=W.redSqrt();if(H.redSqr().redSub(W).cmp(this.zero)!==0)throw new Error("invalid point");var E=H.fromRed().isOdd();return(J&&!E||!J&&E)&&(H=H.redNeg()),this.point(I,H)},X.prototype.pointFromY=function(I,J){I=new Z(I,16),I.red||(I=I.toRed(this.red));var O=I.redSqr(),F=O.redSub(this.c2),A=O.redMul(this.d).redMul(this.c2).redSub(this.a),W=F.redMul(A.redInvm());if(W.cmp(this.zero)===0){if(J)throw new Error("invalid point");return this.point(this.zero,I)}var H=W.redSqrt();if(H.redSqr().redSub(W).cmp(this.zero)!==0)throw new Error("invalid point");return H.fromRed().isOdd()!==J&&(H=H.redNeg()),this.point(H,I)},X.prototype.validate=function(I){if(I.isInfinity())return!0;I.normalize();var J=I.x.redSqr(),O=I.y.redSqr(),F=J.redMul(this.a).redAdd(O),A=this.c2.redMul(this.one.redAdd(this.d.redMul(J).redMul(O)));return F.cmp(A)===0};function K(I,J,O,F,A){V.BasePoint.call(this,I,"projective"),J===null&&O===null&&F===null?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new Z(J,16),this.y=new Z(O,16),this.z=F?new Z(F,16):this.curve.one,this.t=A&&new Z(A,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}G(K,V.BasePoint),X.prototype.pointFromJSON=function(I){return K.fromJSON(this,I)},X.prototype.point=function(I,J,O,F){return new K(this,I,J,O,F)},K.fromJSON=function(I,J){return new K(I,J[0],J[1],J[2])},K.prototype.inspect=function(){return this.isInfinity()?"":""},K.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)},K.prototype._extDbl=function(){var I=this.x.redSqr(),J=this.y.redSqr(),O=this.z.redSqr();O=O.redIAdd(O);var F=this.curve._mulA(I),A=this.x.redAdd(this.y).redSqr().redISub(I).redISub(J),W=F.redAdd(J),H=W.redSub(O),E=F.redSub(J),T=A.redMul(H),D=W.redMul(E),C=A.redMul(E),L=H.redMul(W);return this.curve.point(T,D,L,C)},K.prototype._projDbl=function(){var I=this.x.redAdd(this.y).redSqr(),J=this.x.redSqr(),O=this.y.redSqr(),F,A,W,H,E,T;if(this.curve.twisted){H=this.curve._mulA(J);var D=H.redAdd(O);this.zOne?(F=I.redSub(J).redSub(O).redMul(D.redSub(this.curve.two)),A=D.redMul(H.redSub(O)),W=D.redSqr().redSub(D).redSub(D)):(E=this.z.redSqr(),T=D.redSub(E).redISub(E),F=I.redSub(J).redISub(O).redMul(T),A=D.redMul(H.redSub(O)),W=D.redMul(T))}else H=J.redAdd(O),E=this.curve._mulC(this.z).redSqr(),T=H.redSub(E).redSub(E),F=this.curve._mulC(I.redISub(H)).redMul(T),A=this.curve._mulC(H).redMul(J.redISub(O)),W=H.redMul(T);return this.curve.point(F,A,W)},K.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},K.prototype._extAdd=function(I){var J=this.y.redSub(this.x).redMul(I.y.redSub(I.x)),O=this.y.redAdd(this.x).redMul(I.y.redAdd(I.x)),F=this.t.redMul(this.curve.dd).redMul(I.t),A=this.z.redMul(I.z.redAdd(I.z)),W=O.redSub(J),H=A.redSub(F),E=A.redAdd(F),T=O.redAdd(J),D=W.redMul(H),C=E.redMul(T),L=W.redMul(T),R=H.redMul(E);return this.curve.point(D,C,R,L)},K.prototype._projAdd=function(I){var J=this.z.redMul(I.z),O=J.redSqr(),F=this.x.redMul(I.x),A=this.y.redMul(I.y),W=this.curve.d.redMul(F).redMul(A),H=O.redSub(W),E=O.redAdd(W),T=this.x.redAdd(this.y).redMul(I.x.redAdd(I.y)).redISub(F).redISub(A),D=J.redMul(H).redMul(T),C,L;return this.curve.twisted?(C=J.redMul(E).redMul(A.redSub(this.curve._mulA(F))),L=H.redMul(E)):(C=J.redMul(E).redMul(A.redSub(F)),L=this.curve._mulC(H).redMul(E)),this.curve.point(D,C,L)},K.prototype.add=function(I){return this.isInfinity()?I:I.isInfinity()?this:this.curve.extended?this._extAdd(I):this._projAdd(I)},K.prototype.mul=function(I){return this._hasDoubles(I)?this.curve._fixedNafMul(this,I):this.curve._wnafMul(this,I)},K.prototype.mulAdd=function(I,J,O){return this.curve._wnafMulAdd(1,[this,J],[I,O],2,!1)},K.prototype.jmulAdd=function(I,J,O){return this.curve._wnafMulAdd(1,[this,J],[I,O],2,!0)},K.prototype.normalize=function(){if(this.zOne)return this;var I=this.z.redInvm();return this.x=this.x.redMul(I),this.y=this.y.redMul(I),this.t&&(this.t=this.t.redMul(I)),this.z=this.curve.one,this.zOne=!0,this},K.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},K.prototype.getX=function(){return this.normalize(),this.x.fromRed()},K.prototype.getY=function(){return this.normalize(),this.y.fromRed()},K.prototype.eq=function(I){return this===I||this.getX().cmp(I.getX())===0&&this.getY().cmp(I.getY())===0},K.prototype.eqXToP=function(I){var J=I.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(J)===0)return!0;for(var O=I.clone(),F=this.curve.redN.redMul(this.z);;){if(O.iadd(this.curve.n),O.cmp(this.curve.p)>=0)return!1;if(J.redIAdd(F),this.x.cmp(J)===0)return!0}},K.prototype.toP=K.prototype.normalize,K.prototype.mixedAdd=K.prototype.add}}),nQ=z$({"node_modules/elliptic/lib/elliptic/curve/index.js"($){var Q=$;Q.base=bQ(),Q.short=lQ(),Q.mont=oQ(),Q.edwards=uQ()}}),sQ=z$({"node_modules/hash.js/lib/hash/utils.js"($){var Q=$Q(),Y=q$();$.inherits=Y;function Z(k,g){return(k.charCodeAt(g)&64512)!==55296||g<0||g+1>=k.length?!1:(k.charCodeAt(g+1)&64512)===56320}function G(k,g){if(Array.isArray(k))return k.slice();if(!k)return[];var N=[];if(typeof k=="string")if(g){if(g==="hex")for(k=k.replace(/[^a-z0-9]+/gi,""),k.length%2!==0&&(k="0"+k),_=0;_>6|192,N[x++]=B&63|128):Z(k,_)?(B=65536+((B&1023)<<10)+(k.charCodeAt(++_)&1023),N[x++]=B>>18|240,N[x++]=B>>12&63|128,N[x++]=B>>6&63|128,N[x++]=B&63|128):(N[x++]=B>>12|224,N[x++]=B>>6&63|128,N[x++]=B&63|128)}else for(_=0;_>>24|k>>>8&65280|k<<8&16711680|(k&255)<<24;return g>>>0}$.htonl=U;function X(k,g){for(var N="",x=0;x>>0}return B}$.join32=J;function O(k,g){for(var N=new Array(k.length*4),x=0,_=0;x>>24,N[_+1]=B>>>16&255,N[_+2]=B>>>8&255,N[_+3]=B&255):(N[_+3]=B>>>24,N[_+2]=B>>>16&255,N[_+1]=B>>>8&255,N[_]=B&255)}return N}$.split32=O;function F(k,g){return k>>>g|k<<32-g}$.rotr32=F;function A(k,g){return k<>>32-g}$.rotl32=A;function W(k,g){return k+g>>>0}$.sum32=W;function H(k,g,N){return k+g+N>>>0}$.sum32_3=H;function E(k,g,N,x){return k+g+N+x>>>0}$.sum32_4=E;function T(k,g,N,x,_){return k+g+N+x+_>>>0}$.sum32_5=T;function D(k,g,N,x){var _=k[g],B=k[g+1],y=x+B>>>0,w=(y>>0,k[g+1]=y}$.sum64=D;function C(k,g,N,x){var _=g+x>>>0,B=(_>>0}$.sum64_hi=C;function L(k,g,N,x){var _=g+x;return _>>>0}$.sum64_lo=L;function R(k,g,N,x,_,B,y,w){var f=0,p=g;p=p+x>>>0,f+=p>>0,f+=p>>0,f+=p>>0}$.sum64_4_hi=R;function P(k,g,N,x,_,B,y,w){var f=g+x+B+w;return f>>>0}$.sum64_4_lo=P;function z(k,g,N,x,_,B,y,w,f,p){var c=0,h=g;h=h+x>>>0,c+=h>>0,c+=h>>0,c+=h>>0,c+=h>>0}$.sum64_5_hi=z;function M(k,g,N,x,_,B,y,w,f,p){var c=g+x+B+w+p;return c>>>0}$.sum64_5_lo=M;function S(k,g,N){var x=g<<32-N|k>>>N;return x>>>0}$.rotr64_hi=S;function v(k,g,N){var x=k<<32-N|g>>>N;return x>>>0}$.rotr64_lo=v;function q(k,g,N){return k>>>N}$.shr64_hi=q;function j(k,g,N){var x=k<<32-N|g>>>N;return x>>>0}$.shr64_lo=j}}),tQ=z$({"node_modules/hash.js/lib/hash/common.js"($){var Q=sQ(),Y=$Q();function Z(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}$.BlockHash=Z,Z.prototype.update=function(G,V){if(G=Q.toArray(G,V),this.pending?this.pending=this.pending.concat(G):this.pending=G,this.pendingTotal+=G.length,this.pending.length>=this._delta8){G=this.pending;var U=G.length%this._delta8;this.pending=G.slice(G.length-U,G.length),this.pending.length===0&&(this.pending=null),G=Q.join32(G,0,G.length-U,this.endian);for(var X=0;X>>24&255,X[K++]=G>>>16&255,X[K++]=G>>>8&255,X[K++]=G&255}else for(X[K++]=G&255,X[K++]=G>>>8&255,X[K++]=G>>>16&255,X[K++]=G>>>24&255,X[K++]=0,X[K++]=0,X[K++]=0,X[K++]=0,I=8;I>>3}$.g0_256=I;function J(O){return Y(O,17)^Y(O,19)^O>>>10}$.g1_256=J}}),aQ=z$({"node_modules/hash.js/lib/hash/sha/1.js"($,Q){var Y=sQ(),Z=tQ(),G=mQ(),V=Y.rotl32,U=Y.sum32,X=Y.sum32_5,K=G.ft_1,I=Z.BlockHash,J=[1518500249,1859775393,2400959708,3395469782];function O(){if(!(this instanceof O))return new O;I.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}Y.inherits(O,I),Q.exports=O,O.blockSize=512,O.outSize=160,O.hmacStrength=80,O.padLength=64,O.prototype._update=function(F,A){for(var W=this.W,H=0;H<16;H++)W[H]=F[A+H];for(;Hthis.blockSize&&(V=new this.Hash().update(V).digest()),Z(V.length<=this.blockSize);for(var U=V.length;U=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(X,K,I)}Q.exports=V,V.prototype._init=function(U,X,K){var I=U.concat(X).concat(K);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var J=0;J=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(U.concat(K||[])),this._reseed=1},V.prototype.generate=function(U,X,K,I){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");typeof X!="string"&&(I=K,K=X,X=null),K&&(K=Z.toArray(K,I||"hex"),this._update(K));for(var J=[];J.length"}}}),IY=z$({"node_modules/elliptic/lib/elliptic/ec/signature.js"($,Q){var Y=cQ(),Z=dQ(),G=Z.assert;function V(J,O){if(J instanceof V)return J;this._importDER(J,O)||(G(J.r&&J.s,"Signature without r or s"),this.r=new Y(J.r,16),this.s=new Y(J.s,16),J.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=J.recoveryParam)}Q.exports=V;function U(){this.place=0}function X(J,O){var F=J[O.place++];if(!(F&128))return F;var A=F&15;if(A===0||A>4)return!1;for(var W=0,H=0,E=O.place;H>>=0;return W<=127?!1:(O.place=E,W)}function K(J){for(var O=0,F=J.length-1;!J[O]&&!(J[O+1]&128)&&O>>3);for(J.push(F|128);--F;)J.push(O>>>(F<<3)&255);J.push(O)}V.prototype.toDER=function(J){var O=this.r.toArray(),F=this.s.toArray();for(O[0]&128&&(O=[0].concat(O)),F[0]&128&&(F=[0].concat(F)),O=K(O),F=K(F);!F[0]&&!(F[1]&128);)F=F.slice(1);var A=[2];I(A,O.length),A=A.concat(O),A.push(2),I(A,F.length);var W=A.concat(F),H=[48];return I(H,W.length),H=H.concat(W),Z.encode(H,J)}}}),JY=z$({"node_modules/elliptic/lib/elliptic/ec/index.js"($,Q){var Y=cQ(),Z=XY(),G=dQ(),V=UY(),U=gQ(),X=G.assert,K=KY(),I=IY();function J(O){if(!(this instanceof J))return new J(O);typeof O=="string"&&(X(Object.prototype.hasOwnProperty.call(V,O),"Unknown curve "+O),O=V[O]),O instanceof V.PresetCurve&&(O={curve:O}),this.curve=O.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=O.curve.g,this.g.precompute(O.curve.n.bitLength()+1),this.hash=O.hash||O.curve.hash}Q.exports=J,J.prototype.keyPair=function(O){return new K(this,O)},J.prototype.keyFromPrivate=function(O,F){return K.fromPrivate(this,O,F)},J.prototype.keyFromPublic=function(O,F){return K.fromPublic(this,O,F)},J.prototype.genKeyPair=function(O){O||(O={});for(var F=new Z({hash:this.hash,pers:O.pers,persEnc:O.persEnc||"utf8",entropy:O.entropy||U(this.hash.hmacStrength),entropyEnc:O.entropy&&O.entropyEnc||"utf8",nonce:this.n.toArray()}),A=this.n.byteLength(),W=this.n.sub(new Y(2));;){var H=new Y(F.generate(A));if(!(H.cmp(W)>0))return H.iaddn(1),this.keyFromPrivate(H)}},J.prototype._truncateToN=function(O,F){var A=O.byteLength()*8-this.n.bitLength();return A>0&&(O=O.ushrn(A)),!F&&O.cmp(this.n)>=0?O.sub(this.n):O},J.prototype.sign=function(O,F,A,W){typeof A=="object"&&(W=A,A=null),W||(W={}),F=this.keyFromPrivate(F,A),O=this._truncateToN(new Y(O,16));for(var H=this.n.byteLength(),E=F.getPrivate().toArray("be",H),T=O.toArray("be",H),D=new Z({hash:this.hash,entropy:E,nonce:T,pers:W.pers,persEnc:W.persEnc||"utf8"}),C=this.n.sub(new Y(1)),L=0;;L++){var R=W.k?W.k(L):new Y(D.generate(this.n.byteLength()));if(R=this._truncateToN(R,!0),!(R.cmpn(1)<=0||R.cmp(C)>=0)){var P=this.g.mul(R);if(!P.isInfinity()){var z=P.getX(),M=z.umod(this.n);if(M.cmpn(0)!==0){var S=R.invm(this.n).mul(M.mul(F.getPrivate()).iadd(O));if(S=S.umod(this.n),S.cmpn(0)!==0){var v=(P.getY().isOdd()?1:0)|(z.cmp(M)!==0?2:0);return W.canonical&&S.cmp(this.nh)>0&&(S=this.n.sub(S),v^=1),new I({r:M,s:S,recoveryParam:v})}}}}}},J.prototype.verify=function(O,F,A,W){O=this._truncateToN(new Y(O,16)),A=this.keyFromPublic(A,W),F=new I(F,"hex");var{r:H,s:E}=F;if(H.cmpn(1)<0||H.cmp(this.n)>=0||E.cmpn(1)<0||E.cmp(this.n)>=0)return!1;var T=E.invm(this.n),D=T.mul(O).umod(this.n),C=T.mul(H).umod(this.n),L;return this.curve._maxwellTrick?(L=this.g.jmulAdd(D,A.getPublic(),C),L.isInfinity()?!1:L.eqXToP(H)):(L=this.g.mulAdd(D,A.getPublic(),C),L.isInfinity()?!1:L.getX().umod(this.n).cmp(H)===0)},J.prototype.recoverPubKey=function(O,F,A,W){X((3&A)===A,"The recovery param is more than two bits"),F=new I(F,W);var H=this.n,E=new Y(O),T=F.r,D=F.s,C=A&1,L=A>>1;if(T.cmp(this.curve.p.umod(this.curve.n))>=0&&L)throw new Error("Unable to find sencond key candinate");L?T=this.curve.pointFromX(T.add(this.curve.n),C):T=this.curve.pointFromX(T,C);var R=F.r.invm(H),P=H.sub(E).mul(R).umod(H),z=D.mul(R).umod(H);return this.g.mulAdd(P,T,z)},J.prototype.getKeyRecoveryParam=function(O,F,A,W){if(F=new I(F,W),F.recoveryParam!==null)return F.recoveryParam;for(var H=0;H<4;H++){var E;try{E=this.recoverPubKey(O,F,H)}catch{continue}if(E.eq(A))return H}throw new Error("Unable to find valid recovery factor")}}}),OY=z$({"node_modules/elliptic/lib/elliptic/eddsa/key.js"($,Q){var Y=dQ(),Z=Y.assert,G=Y.parseBytes,V=Y.cachedProperty;function U(X,K){this.eddsa=X,this._secret=G(K.secret),X.isPoint(K.pub)?this._pub=K.pub:this._pubBytes=G(K.pub)}U.fromPublic=function(X,K){return K instanceof U?K:new U(X,{pub:K})},U.fromSecret=function(X,K){return K instanceof U?K:new U(X,{secret:K})},U.prototype.secret=function(){return this._secret},V(U,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())}),V(U,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())}),V(U,"privBytes",function(){var X=this.eddsa,K=this.hash(),I=X.encodingLength-1,J=K.slice(0,X.encodingLength);return J[0]&=248,J[I]&=127,J[I]|=64,J}),V(U,"priv",function(){return this.eddsa.decodeInt(this.privBytes())}),V(U,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()}),V(U,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)}),U.prototype.sign=function(X){return Z(this._secret,"KeyPair can only verify"),this.eddsa.sign(X,this)},U.prototype.verify=function(X,K){return this.eddsa.verify(X,K,this)},U.prototype.getSecret=function(X){return Z(this._secret,"KeyPair is public only"),Y.encode(this.secret(),X)},U.prototype.getPublic=function(X){return Y.encode(this.pubBytes(),X)},Q.exports=U}}),FY=z$({"node_modules/elliptic/lib/elliptic/eddsa/signature.js"($,Q){var Y=cQ(),Z=dQ(),G=Z.assert,V=Z.cachedProperty,U=Z.parseBytes;function X(K,I){this.eddsa=K,typeof I!="object"&&(I=U(I)),Array.isArray(I)&&(I={R:I.slice(0,K.encodingLength),S:I.slice(K.encodingLength)}),G(I.R&&I.S,"Signature without R or S"),K.isPoint(I.R)&&(this._R=I.R),I.S instanceof Y&&(this._S=I.S),this._Rencoded=Array.isArray(I.R)?I.R:I.Rencoded,this._Sencoded=Array.isArray(I.S)?I.S:I.Sencoded}V(X,"S",function(){return this.eddsa.decodeInt(this.Sencoded())}),V(X,"R",function(){return this.eddsa.decodePoint(this.Rencoded())}),V(X,"Rencoded",function(){return this.eddsa.encodePoint(this.R())}),V(X,"Sencoded",function(){return this.eddsa.encodeInt(this.S())}),X.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},X.prototype.toHex=function(){return Z.encode(this.toBytes(),"hex").toUpperCase()},Q.exports=X}}),AY=z$({"node_modules/elliptic/lib/elliptic/eddsa/index.js"($,Q){var Y=GY(),Z=UY(),G=dQ(),V=G.assert,U=G.parseBytes,X=OY(),K=FY();function I(J){if(V(J==="ed25519","only tested with ed25519 so far"),!(this instanceof I))return new I(J);J=Z[J].curve,this.curve=J,this.g=J.g,this.g.precompute(J.n.bitLength()+1),this.pointClass=J.point().constructor,this.encodingLength=Math.ceil(J.n.bitLength()/8),this.hash=Y.sha512}Q.exports=I,I.prototype.sign=function(J,O){J=U(J);var F=this.keyFromSecret(O),A=this.hashInt(F.messagePrefix(),J),W=this.g.mul(A),H=this.encodePoint(W),E=this.hashInt(H,F.pubBytes(),J).mul(F.priv()),T=A.add(E).umod(this.curve.n);return this.makeSignature({R:W,S:T,Rencoded:H})},I.prototype.verify=function(J,O,F){J=U(J),O=this.makeSignature(O);var A=this.keyFromPublic(F),W=this.hashInt(O.Rencoded(),A.pubBytes(),J),H=this.g.mul(O.S()),E=O.R().add(A.pub().mul(W));return E.eq(H)},I.prototype.hashInt=function(){for(var J=this.hash(),O=0;O0?j:k},U.min=function(j,k){return j.cmp(k)<0?j:k},U.prototype._init=function(j,k,g){if(typeof j=="number")return this._initNumber(j,k,g);if(typeof j=="object")return this._initArray(j,k,g);k==="hex"&&(k=16),G(k===(k|0)&&k>=2&&k<=36),j=j.toString().replace(/\s+/g,"");var N=0;j[0]==="-"&&(N++,this.negative=1),N=0;N-=3)_=j[N]|j[N-1]<<8|j[N-2]<<16,this.words[x]|=_<>>26-B&67108863,B+=24,B>=26&&(B-=26,x++);else if(g==="le")for(N=0,x=0;N>>26-B&67108863,B+=24,B>=26&&(B-=26,x++);return this.strip()};function K(j,k){var g=j.charCodeAt(k);return g>=65&&g<=70?g-55:g>=97&&g<=102?g-87:g-48&15}function I(j,k,g){var N=K(j,g);return g-1>=k&&(N|=K(j,g-1)<<4),N}U.prototype._parseHex=function(j,k,g){this.length=Math.ceil((j.length-k)/6),this.words=new Array(this.length);for(var N=0;N=k;N-=2)B=I(j,k,N)<=18?(x-=18,_+=1,this.words[_]|=B>>>26):x+=8;else{var y=j.length-k;for(N=y%2===0?k+1:k;N=18?(x-=18,_+=1,this.words[_]|=B>>>26):x+=8}this.strip()};function J(j,k,g,N){for(var x=0,_=Math.min(j.length,g),B=k;B<_;B++){var y=j.charCodeAt(B)-48;x*=N,y>=49?x+=y-49+10:y>=17?x+=y-17+10:x+=y}return x}U.prototype._parseBase=function(j,k,g){this.words=[0],this.length=1;for(var N=0,x=1;x<=67108863;x*=k)N++;N--,x=x/k|0;for(var _=j.length-g,B=_%N,y=Math.min(_,_-B)+g,w=0,f=g;f1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},U.prototype.inspect=function(){return(this.red?""};var O=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],F=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],A=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(j,k){j=j||10,k=k|0||1;var g;if(j===16||j==="hex"){g="";for(var N=0,x=0,_=0;_>>24-N&16777215,x!==0||_!==this.length-1?g=O[6-y.length]+y+g:g=y+g,N+=2,N>=26&&(N-=26,_--)}for(x!==0&&(g=x.toString(16)+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(j===(j|0)&&j>=2&&j<=36){var w=F[j],f=A[j];g="";var p=this.clone();for(p.negative=0;!p.isZero();){var c=p.modn(f).toString(j);p=p.idivn(f),p.isZero()?g=c+g:g=O[w-c.length]+c+g}for(this.isZero()&&(g="0"+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var j=this.words[0];return this.length===2?j+=this.words[1]*67108864:this.length===3&&this.words[2]===1?j+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-j:j},U.prototype.toJSON=function(){return this.toString(16)},U.prototype.toBuffer=function(j,k){return G(typeof X<"u"),this.toArrayLike(X,j,k)},U.prototype.toArray=function(j,k){return this.toArrayLike(Array,j,k)},U.prototype.toArrayLike=function(j,k,g){var N=this.byteLength(),x=g||Math.max(1,N);G(N<=x,"byte array longer than desired length"),G(x>0,"Requested array length <= 0"),this.strip();var _=k==="le",B=new j(x),y,w,f=this.clone();if(_){for(w=0;!f.isZero();w++)y=f.andln(255),f.iushrn(8),B[w]=y;for(;w=4096&&(g+=13,k>>>=13),k>=64&&(g+=7,k>>>=7),k>=8&&(g+=4,k>>>=4),k>=2&&(g+=2,k>>>=2),g+k},U.prototype._zeroBits=function(j){if(j===0)return 26;var k=j,g=0;return(k&8191)===0&&(g+=13,k>>>=13),(k&127)===0&&(g+=7,k>>>=7),(k&15)===0&&(g+=4,k>>>=4),(k&3)===0&&(g+=2,k>>>=2),(k&1)===0&&g++,g},U.prototype.bitLength=function(){var j=this.words[this.length-1],k=this._countBits(j);return(this.length-1)*26+k};function W(j){for(var k=new Array(j.bitLength()),g=0;g>>x}return k}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var j=0,k=0;kj.length?this.clone().ior(j):j.clone().ior(this)},U.prototype.uor=function(j){return this.length>j.length?this.clone().iuor(j):j.clone().iuor(this)},U.prototype.iuand=function(j){var k;this.length>j.length?k=j:k=this;for(var g=0;gj.length?this.clone().iand(j):j.clone().iand(this)},U.prototype.uand=function(j){return this.length>j.length?this.clone().iuand(j):j.clone().iuand(this)},U.prototype.iuxor=function(j){var k,g;this.length>j.length?(k=this,g=j):(k=j,g=this);for(var N=0;Nj.length?this.clone().ixor(j):j.clone().ixor(this)},U.prototype.uxor=function(j){return this.length>j.length?this.clone().iuxor(j):j.clone().iuxor(this)},U.prototype.inotn=function(j){G(typeof j=="number"&&j>=0);var k=Math.ceil(j/26)|0,g=j%26;this._expand(k),g>0&&k--;for(var N=0;N0&&(this.words[N]=~this.words[N]&67108863>>26-g),this.strip()},U.prototype.notn=function(j){return this.clone().inotn(j)},U.prototype.setn=function(j,k){G(typeof j=="number"&&j>=0);var g=j/26|0,N=j%26;return this._expand(g+1),k?this.words[g]=this.words[g]|1<j.length?(g=this,N=j):(g=j,N=this);for(var x=0,_=0;_>>26;for(;x!==0&&_>>26;if(this.length=g.length,x!==0)this.words[this.length]=x,this.length++;else if(g!==this)for(;_j.length?this.clone().iadd(j):j.clone().iadd(this)},U.prototype.isub=function(j){if(j.negative!==0){j.negative=0;var k=this.iadd(j);return j.negative=1,k._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(j),this.negative=1,this._normSign();var g=this.cmp(j);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var N,x;g>0?(N=this,x=j):(N=j,x=this);for(var _=0,B=0;B>26,this.words[B]=k&67108863;for(;_!==0&&B>26,this.words[B]=k&67108863;if(_===0&&B>>26,c=w&67108863,h=Math.min(f,k.length-1),d=Math.max(0,f-j.length+1);d<=h;d++){var b=f-d|0;x=j.words[b]|0,_=k.words[d]|0,B=x*_+c,p+=B/67108864|0,c=B&67108863}g.words[f]=c|0,w=p|0}return w!==0?g.words[f]=w|0:g.length--,g.strip()}var E=function(j,k,g){var N=j.words,x=k.words,_=g.words,B=0,y,w,f,p=N[0]|0,c=p&8191,h=p>>>13,d=N[1]|0,b=d&8191,l=d>>>13,o=N[2]|0,u=o&8191,n=o>>>13,s=N[3]|0,t=s&8191,m=s>>>13,a=N[4]|0,r=a&8191,e=a>>>13,i=N[5]|0,$0=i&8191,Q0=i>>>13,Y0=N[6]|0,Z0=Y0&8191,G0=Y0>>>13,V0=N[7]|0,U0=V0&8191,X0=V0>>>13,K0=N[8]|0,I0=K0&8191,J0=K0>>>13,O0=N[9]|0,F0=O0&8191,A0=O0>>>13,W0=x[0]|0,H0=W0&8191,E0=W0>>>13,T0=x[1]|0,D0=T0&8191,C0=T0>>>13,L0=x[2]|0,R0=L0&8191,P0=L0>>>13,z0=x[3]|0,M0=z0&8191,S0=z0>>>13,v0=x[4]|0,q0=v0&8191,j0=v0>>>13,k0=x[5]|0,g0=k0&8191,N0=k0>>>13,x0=x[6]|0,_0=x0&8191,B0=x0>>>13,y0=x[7]|0,w0=y0&8191,f0=y0>>>13,p0=x[8]|0,c0=p0&8191,h0=p0>>>13,d0=x[9]|0,b0=d0&8191,l0=d0>>>13;g.negative=j.negative^k.negative,g.length=19,y=Math.imul(c,H0),w=Math.imul(c,E0),w=w+Math.imul(h,H0)|0,f=Math.imul(h,E0);var o0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(o0>>>26)|0,o0&=67108863,y=Math.imul(b,H0),w=Math.imul(b,E0),w=w+Math.imul(l,H0)|0,f=Math.imul(l,E0),y=y+Math.imul(c,D0)|0,w=w+Math.imul(c,C0)|0,w=w+Math.imul(h,D0)|0,f=f+Math.imul(h,C0)|0;var u0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(u0>>>26)|0,u0&=67108863,y=Math.imul(u,H0),w=Math.imul(u,E0),w=w+Math.imul(n,H0)|0,f=Math.imul(n,E0),y=y+Math.imul(b,D0)|0,w=w+Math.imul(b,C0)|0,w=w+Math.imul(l,D0)|0,f=f+Math.imul(l,C0)|0,y=y+Math.imul(c,R0)|0,w=w+Math.imul(c,P0)|0,w=w+Math.imul(h,R0)|0,f=f+Math.imul(h,P0)|0;var n0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(n0>>>26)|0,n0&=67108863,y=Math.imul(t,H0),w=Math.imul(t,E0),w=w+Math.imul(m,H0)|0,f=Math.imul(m,E0),y=y+Math.imul(u,D0)|0,w=w+Math.imul(u,C0)|0,w=w+Math.imul(n,D0)|0,f=f+Math.imul(n,C0)|0,y=y+Math.imul(b,R0)|0,w=w+Math.imul(b,P0)|0,w=w+Math.imul(l,R0)|0,f=f+Math.imul(l,P0)|0,y=y+Math.imul(c,M0)|0,w=w+Math.imul(c,S0)|0,w=w+Math.imul(h,M0)|0,f=f+Math.imul(h,S0)|0;var s0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(s0>>>26)|0,s0&=67108863,y=Math.imul(r,H0),w=Math.imul(r,E0),w=w+Math.imul(e,H0)|0,f=Math.imul(e,E0),y=y+Math.imul(t,D0)|0,w=w+Math.imul(t,C0)|0,w=w+Math.imul(m,D0)|0,f=f+Math.imul(m,C0)|0,y=y+Math.imul(u,R0)|0,w=w+Math.imul(u,P0)|0,w=w+Math.imul(n,R0)|0,f=f+Math.imul(n,P0)|0,y=y+Math.imul(b,M0)|0,w=w+Math.imul(b,S0)|0,w=w+Math.imul(l,M0)|0,f=f+Math.imul(l,S0)|0,y=y+Math.imul(c,q0)|0,w=w+Math.imul(c,j0)|0,w=w+Math.imul(h,q0)|0,f=f+Math.imul(h,j0)|0;var t0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(t0>>>26)|0,t0&=67108863,y=Math.imul($0,H0),w=Math.imul($0,E0),w=w+Math.imul(Q0,H0)|0,f=Math.imul(Q0,E0),y=y+Math.imul(r,D0)|0,w=w+Math.imul(r,C0)|0,w=w+Math.imul(e,D0)|0,f=f+Math.imul(e,C0)|0,y=y+Math.imul(t,R0)|0,w=w+Math.imul(t,P0)|0,w=w+Math.imul(m,R0)|0,f=f+Math.imul(m,P0)|0,y=y+Math.imul(u,M0)|0,w=w+Math.imul(u,S0)|0,w=w+Math.imul(n,M0)|0,f=f+Math.imul(n,S0)|0,y=y+Math.imul(b,q0)|0,w=w+Math.imul(b,j0)|0,w=w+Math.imul(l,q0)|0,f=f+Math.imul(l,j0)|0,y=y+Math.imul(c,g0)|0,w=w+Math.imul(c,N0)|0,w=w+Math.imul(h,g0)|0,f=f+Math.imul(h,N0)|0;var m0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(m0>>>26)|0,m0&=67108863,y=Math.imul(Z0,H0),w=Math.imul(Z0,E0),w=w+Math.imul(G0,H0)|0,f=Math.imul(G0,E0),y=y+Math.imul($0,D0)|0,w=w+Math.imul($0,C0)|0,w=w+Math.imul(Q0,D0)|0,f=f+Math.imul(Q0,C0)|0,y=y+Math.imul(r,R0)|0,w=w+Math.imul(r,P0)|0,w=w+Math.imul(e,R0)|0,f=f+Math.imul(e,P0)|0,y=y+Math.imul(t,M0)|0,w=w+Math.imul(t,S0)|0,w=w+Math.imul(m,M0)|0,f=f+Math.imul(m,S0)|0,y=y+Math.imul(u,q0)|0,w=w+Math.imul(u,j0)|0,w=w+Math.imul(n,q0)|0,f=f+Math.imul(n,j0)|0,y=y+Math.imul(b,g0)|0,w=w+Math.imul(b,N0)|0,w=w+Math.imul(l,g0)|0,f=f+Math.imul(l,N0)|0,y=y+Math.imul(c,_0)|0,w=w+Math.imul(c,B0)|0,w=w+Math.imul(h,_0)|0,f=f+Math.imul(h,B0)|0;var a0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(a0>>>26)|0,a0&=67108863,y=Math.imul(U0,H0),w=Math.imul(U0,E0),w=w+Math.imul(X0,H0)|0,f=Math.imul(X0,E0),y=y+Math.imul(Z0,D0)|0,w=w+Math.imul(Z0,C0)|0,w=w+Math.imul(G0,D0)|0,f=f+Math.imul(G0,C0)|0,y=y+Math.imul($0,R0)|0,w=w+Math.imul($0,P0)|0,w=w+Math.imul(Q0,R0)|0,f=f+Math.imul(Q0,P0)|0,y=y+Math.imul(r,M0)|0,w=w+Math.imul(r,S0)|0,w=w+Math.imul(e,M0)|0,f=f+Math.imul(e,S0)|0,y=y+Math.imul(t,q0)|0,w=w+Math.imul(t,j0)|0,w=w+Math.imul(m,q0)|0,f=f+Math.imul(m,j0)|0,y=y+Math.imul(u,g0)|0,w=w+Math.imul(u,N0)|0,w=w+Math.imul(n,g0)|0,f=f+Math.imul(n,N0)|0,y=y+Math.imul(b,_0)|0,w=w+Math.imul(b,B0)|0,w=w+Math.imul(l,_0)|0,f=f+Math.imul(l,B0)|0,y=y+Math.imul(c,w0)|0,w=w+Math.imul(c,f0)|0,w=w+Math.imul(h,w0)|0,f=f+Math.imul(h,f0)|0;var r0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(r0>>>26)|0,r0&=67108863,y=Math.imul(I0,H0),w=Math.imul(I0,E0),w=w+Math.imul(J0,H0)|0,f=Math.imul(J0,E0),y=y+Math.imul(U0,D0)|0,w=w+Math.imul(U0,C0)|0,w=w+Math.imul(X0,D0)|0,f=f+Math.imul(X0,C0)|0,y=y+Math.imul(Z0,R0)|0,w=w+Math.imul(Z0,P0)|0,w=w+Math.imul(G0,R0)|0,f=f+Math.imul(G0,P0)|0,y=y+Math.imul($0,M0)|0,w=w+Math.imul($0,S0)|0,w=w+Math.imul(Q0,M0)|0,f=f+Math.imul(Q0,S0)|0,y=y+Math.imul(r,q0)|0,w=w+Math.imul(r,j0)|0,w=w+Math.imul(e,q0)|0,f=f+Math.imul(e,j0)|0,y=y+Math.imul(t,g0)|0,w=w+Math.imul(t,N0)|0,w=w+Math.imul(m,g0)|0,f=f+Math.imul(m,N0)|0,y=y+Math.imul(u,_0)|0,w=w+Math.imul(u,B0)|0,w=w+Math.imul(n,_0)|0,f=f+Math.imul(n,B0)|0,y=y+Math.imul(b,w0)|0,w=w+Math.imul(b,f0)|0,w=w+Math.imul(l,w0)|0,f=f+Math.imul(l,f0)|0,y=y+Math.imul(c,c0)|0,w=w+Math.imul(c,h0)|0,w=w+Math.imul(h,c0)|0,f=f+Math.imul(h,h0)|0;var e0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(e0>>>26)|0,e0&=67108863,y=Math.imul(F0,H0),w=Math.imul(F0,E0),w=w+Math.imul(A0,H0)|0,f=Math.imul(A0,E0),y=y+Math.imul(I0,D0)|0,w=w+Math.imul(I0,C0)|0,w=w+Math.imul(J0,D0)|0,f=f+Math.imul(J0,C0)|0,y=y+Math.imul(U0,R0)|0,w=w+Math.imul(U0,P0)|0,w=w+Math.imul(X0,R0)|0,f=f+Math.imul(X0,P0)|0,y=y+Math.imul(Z0,M0)|0,w=w+Math.imul(Z0,S0)|0,w=w+Math.imul(G0,M0)|0,f=f+Math.imul(G0,S0)|0,y=y+Math.imul($0,q0)|0,w=w+Math.imul($0,j0)|0,w=w+Math.imul(Q0,q0)|0,f=f+Math.imul(Q0,j0)|0,y=y+Math.imul(r,g0)|0,w=w+Math.imul(r,N0)|0,w=w+Math.imul(e,g0)|0,f=f+Math.imul(e,N0)|0,y=y+Math.imul(t,_0)|0,w=w+Math.imul(t,B0)|0,w=w+Math.imul(m,_0)|0,f=f+Math.imul(m,B0)|0,y=y+Math.imul(u,w0)|0,w=w+Math.imul(u,f0)|0,w=w+Math.imul(n,w0)|0,f=f+Math.imul(n,f0)|0,y=y+Math.imul(b,c0)|0,w=w+Math.imul(b,h0)|0,w=w+Math.imul(l,c0)|0,f=f+Math.imul(l,h0)|0,y=y+Math.imul(c,b0)|0,w=w+Math.imul(c,l0)|0,w=w+Math.imul(h,b0)|0,f=f+Math.imul(h,l0)|0;var i0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(i0>>>26)|0,i0&=67108863,y=Math.imul(F0,D0),w=Math.imul(F0,C0),w=w+Math.imul(A0,D0)|0,f=Math.imul(A0,C0),y=y+Math.imul(I0,R0)|0,w=w+Math.imul(I0,P0)|0,w=w+Math.imul(J0,R0)|0,f=f+Math.imul(J0,P0)|0,y=y+Math.imul(U0,M0)|0,w=w+Math.imul(U0,S0)|0,w=w+Math.imul(X0,M0)|0,f=f+Math.imul(X0,S0)|0,y=y+Math.imul(Z0,q0)|0,w=w+Math.imul(Z0,j0)|0,w=w+Math.imul(G0,q0)|0,f=f+Math.imul(G0,j0)|0,y=y+Math.imul($0,g0)|0,w=w+Math.imul($0,N0)|0,w=w+Math.imul(Q0,g0)|0,f=f+Math.imul(Q0,N0)|0,y=y+Math.imul(r,_0)|0,w=w+Math.imul(r,B0)|0,w=w+Math.imul(e,_0)|0,f=f+Math.imul(e,B0)|0,y=y+Math.imul(t,w0)|0,w=w+Math.imul(t,f0)|0,w=w+Math.imul(m,w0)|0,f=f+Math.imul(m,f0)|0,y=y+Math.imul(u,c0)|0,w=w+Math.imul(u,h0)|0,w=w+Math.imul(n,c0)|0,f=f+Math.imul(n,h0)|0,y=y+Math.imul(b,b0)|0,w=w+Math.imul(b,l0)|0,w=w+Math.imul(l,b0)|0,f=f+Math.imul(l,l0)|0;var $$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+($$>>>26)|0,$$&=67108863,y=Math.imul(F0,R0),w=Math.imul(F0,P0),w=w+Math.imul(A0,R0)|0,f=Math.imul(A0,P0),y=y+Math.imul(I0,M0)|0,w=w+Math.imul(I0,S0)|0,w=w+Math.imul(J0,M0)|0,f=f+Math.imul(J0,S0)|0,y=y+Math.imul(U0,q0)|0,w=w+Math.imul(U0,j0)|0,w=w+Math.imul(X0,q0)|0,f=f+Math.imul(X0,j0)|0,y=y+Math.imul(Z0,g0)|0,w=w+Math.imul(Z0,N0)|0,w=w+Math.imul(G0,g0)|0,f=f+Math.imul(G0,N0)|0,y=y+Math.imul($0,_0)|0,w=w+Math.imul($0,B0)|0,w=w+Math.imul(Q0,_0)|0,f=f+Math.imul(Q0,B0)|0,y=y+Math.imul(r,w0)|0,w=w+Math.imul(r,f0)|0,w=w+Math.imul(e,w0)|0,f=f+Math.imul(e,f0)|0,y=y+Math.imul(t,c0)|0,w=w+Math.imul(t,h0)|0,w=w+Math.imul(m,c0)|0,f=f+Math.imul(m,h0)|0,y=y+Math.imul(u,b0)|0,w=w+Math.imul(u,l0)|0,w=w+Math.imul(n,b0)|0,f=f+Math.imul(n,l0)|0;var Q$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,y=Math.imul(F0,M0),w=Math.imul(F0,S0),w=w+Math.imul(A0,M0)|0,f=Math.imul(A0,S0),y=y+Math.imul(I0,q0)|0,w=w+Math.imul(I0,j0)|0,w=w+Math.imul(J0,q0)|0,f=f+Math.imul(J0,j0)|0,y=y+Math.imul(U0,g0)|0,w=w+Math.imul(U0,N0)|0,w=w+Math.imul(X0,g0)|0,f=f+Math.imul(X0,N0)|0,y=y+Math.imul(Z0,_0)|0,w=w+Math.imul(Z0,B0)|0,w=w+Math.imul(G0,_0)|0,f=f+Math.imul(G0,B0)|0,y=y+Math.imul($0,w0)|0,w=w+Math.imul($0,f0)|0,w=w+Math.imul(Q0,w0)|0,f=f+Math.imul(Q0,f0)|0,y=y+Math.imul(r,c0)|0,w=w+Math.imul(r,h0)|0,w=w+Math.imul(e,c0)|0,f=f+Math.imul(e,h0)|0,y=y+Math.imul(t,b0)|0,w=w+Math.imul(t,l0)|0,w=w+Math.imul(m,b0)|0,f=f+Math.imul(m,l0)|0;var Y$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,y=Math.imul(F0,q0),w=Math.imul(F0,j0),w=w+Math.imul(A0,q0)|0,f=Math.imul(A0,j0),y=y+Math.imul(I0,g0)|0,w=w+Math.imul(I0,N0)|0,w=w+Math.imul(J0,g0)|0,f=f+Math.imul(J0,N0)|0,y=y+Math.imul(U0,_0)|0,w=w+Math.imul(U0,B0)|0,w=w+Math.imul(X0,_0)|0,f=f+Math.imul(X0,B0)|0,y=y+Math.imul(Z0,w0)|0,w=w+Math.imul(Z0,f0)|0,w=w+Math.imul(G0,w0)|0,f=f+Math.imul(G0,f0)|0,y=y+Math.imul($0,c0)|0,w=w+Math.imul($0,h0)|0,w=w+Math.imul(Q0,c0)|0,f=f+Math.imul(Q0,h0)|0,y=y+Math.imul(r,b0)|0,w=w+Math.imul(r,l0)|0,w=w+Math.imul(e,b0)|0,f=f+Math.imul(e,l0)|0;var Z$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,y=Math.imul(F0,g0),w=Math.imul(F0,N0),w=w+Math.imul(A0,g0)|0,f=Math.imul(A0,N0),y=y+Math.imul(I0,_0)|0,w=w+Math.imul(I0,B0)|0,w=w+Math.imul(J0,_0)|0,f=f+Math.imul(J0,B0)|0,y=y+Math.imul(U0,w0)|0,w=w+Math.imul(U0,f0)|0,w=w+Math.imul(X0,w0)|0,f=f+Math.imul(X0,f0)|0,y=y+Math.imul(Z0,c0)|0,w=w+Math.imul(Z0,h0)|0,w=w+Math.imul(G0,c0)|0,f=f+Math.imul(G0,h0)|0,y=y+Math.imul($0,b0)|0,w=w+Math.imul($0,l0)|0,w=w+Math.imul(Q0,b0)|0,f=f+Math.imul(Q0,l0)|0;var G$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(G$>>>26)|0,G$&=67108863,y=Math.imul(F0,_0),w=Math.imul(F0,B0),w=w+Math.imul(A0,_0)|0,f=Math.imul(A0,B0),y=y+Math.imul(I0,w0)|0,w=w+Math.imul(I0,f0)|0,w=w+Math.imul(J0,w0)|0,f=f+Math.imul(J0,f0)|0,y=y+Math.imul(U0,c0)|0,w=w+Math.imul(U0,h0)|0,w=w+Math.imul(X0,c0)|0,f=f+Math.imul(X0,h0)|0,y=y+Math.imul(Z0,b0)|0,w=w+Math.imul(Z0,l0)|0,w=w+Math.imul(G0,b0)|0,f=f+Math.imul(G0,l0)|0;var V$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(V$>>>26)|0,V$&=67108863,y=Math.imul(F0,w0),w=Math.imul(F0,f0),w=w+Math.imul(A0,w0)|0,f=Math.imul(A0,f0),y=y+Math.imul(I0,c0)|0,w=w+Math.imul(I0,h0)|0,w=w+Math.imul(J0,c0)|0,f=f+Math.imul(J0,h0)|0,y=y+Math.imul(U0,b0)|0,w=w+Math.imul(U0,l0)|0,w=w+Math.imul(X0,b0)|0,f=f+Math.imul(X0,l0)|0;var U$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(U$>>>26)|0,U$&=67108863,y=Math.imul(F0,c0),w=Math.imul(F0,h0),w=w+Math.imul(A0,c0)|0,f=Math.imul(A0,h0),y=y+Math.imul(I0,b0)|0,w=w+Math.imul(I0,l0)|0,w=w+Math.imul(J0,b0)|0,f=f+Math.imul(J0,l0)|0;var X$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(X$>>>26)|0,X$&=67108863,y=Math.imul(F0,b0),w=Math.imul(F0,l0),w=w+Math.imul(A0,b0)|0,f=Math.imul(A0,l0);var K$=(B+y|0)+((w&8191)<<13)|0;return B=(f+(w>>>13)|0)+(K$>>>26)|0,K$&=67108863,_[0]=o0,_[1]=u0,_[2]=n0,_[3]=s0,_[4]=t0,_[5]=m0,_[6]=a0,_[7]=r0,_[8]=e0,_[9]=i0,_[10]=$$,_[11]=Q$,_[12]=Y$,_[13]=Z$,_[14]=G$,_[15]=V$,_[16]=U$,_[17]=X$,_[18]=K$,B!==0&&(_[19]=B,g.length++),g};Math.imul||(E=H);function T(j,k,g){g.negative=k.negative^j.negative,g.length=j.length+k.length;for(var N=0,x=0,_=0;_>>26)|0,x+=B>>>26,B&=67108863}g.words[_]=y,N=B,B=x}return N!==0?g.words[_]=N:g.length--,g.strip()}function D(j,k,g){var N=new C;return N.mulp(j,k,g)}U.prototype.mulTo=function(j,k){var g,N=this.length+j.length;return this.length===10&&j.length===10?g=E(this,j,k):N<63?g=H(this,j,k):N<1024?g=T(this,j,k):g=D(this,j,k),g};function C(j,k){this.x=j,this.y=k}C.prototype.makeRBT=function(j){for(var k=new Array(j),g=U.prototype._countBits(j)-1,N=0;N>=1;return N},C.prototype.permute=function(j,k,g,N,x,_){for(var B=0;B<_;B++)N[B]=k[j[B]],x[B]=g[j[B]]},C.prototype.transform=function(j,k,g,N,x,_){this.permute(_,j,k,g,N,x);for(var B=1;B>>1)x++;return 1<>>13,g[2*_+1]=x&8191,x=x>>>13;for(_=2*k;_>=26,k+=N/67108864|0,k+=x>>>26,this.words[g]=x&67108863}return k!==0&&(this.words[g]=k,this.length++),this},U.prototype.muln=function(j){return this.clone().imuln(j)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(j){var k=W(j);if(k.length===0)return new U(1);for(var g=this,N=0;N=0);var k=j%26,g=(j-k)/26,N=67108863>>>26-k<<26-k,x;if(k!==0){var _=0;for(x=0;x>>26-k}_&&(this.words[x]=_,this.length++)}if(g!==0){for(x=this.length-1;x>=0;x--)this.words[x+g]=this.words[x];for(x=0;x=0);var N;k?N=(k-k%26)/26:N=0;var x=j%26,_=Math.min((j-x)/26,this.length),B=67108863^67108863>>>x<_)for(this.length-=_,w=0;w=0&&(f!==0||w>=N);w--){var p=this.words[w]|0;this.words[w]=f<<26-x|p>>>x,f=p&B}return y&&f!==0&&(y.words[y.length++]=f),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},U.prototype.ishrn=function(j,k,g){return G(this.negative===0),this.iushrn(j,k,g)},U.prototype.shln=function(j){return this.clone().ishln(j)},U.prototype.ushln=function(j){return this.clone().iushln(j)},U.prototype.shrn=function(j){return this.clone().ishrn(j)},U.prototype.ushrn=function(j){return this.clone().iushrn(j)},U.prototype.testn=function(j){G(typeof j=="number"&&j>=0);var k=j%26,g=(j-k)/26,N=1<=0);var k=j%26,g=(j-k)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(k!==0&&g++,this.length=Math.min(g,this.length),k!==0){var N=67108863^67108863>>>k<=67108864;k++)this.words[k]-=67108864,k===this.length-1?this.words[k+1]=1:this.words[k+1]++;return this.length=Math.max(this.length,k+1),this},U.prototype.isubn=function(j){if(G(typeof j=="number"),G(j<67108864),j<0)return this.iaddn(-j);if(this.negative!==0)return this.negative=0,this.iaddn(j),this.negative=1,this;if(this.words[0]-=j,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var k=0;k>26)-(y/67108864|0),this.words[x+g]=_&67108863}for(;x>26,this.words[x+g]=_&67108863;if(B===0)return this.strip();for(G(B===-1),B=0,x=0;x>26,this.words[x]=_&67108863;return this.negative=1,this.strip()},U.prototype._wordDiv=function(j,k){var g=this.length-j.length,N=this.clone(),x=j,_=x.words[x.length-1]|0,B=this._countBits(_);g=26-B,g!==0&&(x=x.ushln(g),N.iushln(g),_=x.words[x.length-1]|0);var y=N.length-x.length,w;if(k!=="mod"){w=new U(null),w.length=y+1,w.words=new Array(w.length);for(var f=0;f=0;c--){var h=(N.words[x.length+c]|0)*67108864+(N.words[x.length+c-1]|0);for(h=Math.min(h/_|0,67108863),N._ishlnsubmul(x,h,c);N.negative!==0;)h--,N.negative=0,N._ishlnsubmul(x,1,c),N.isZero()||(N.negative^=1);w&&(w.words[c]=h)}return w&&w.strip(),N.strip(),k!=="div"&&g!==0&&N.iushrn(g),{div:w||null,mod:N}},U.prototype.divmod=function(j,k,g){if(G(!j.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var N,x,_;return this.negative!==0&&j.negative===0?(_=this.neg().divmod(j,k),k!=="mod"&&(N=_.div.neg()),k!=="div"&&(x=_.mod.neg(),g&&x.negative!==0&&x.iadd(j)),{div:N,mod:x}):this.negative===0&&j.negative!==0?(_=this.divmod(j.neg(),k),k!=="mod"&&(N=_.div.neg()),{div:N,mod:_.mod}):(this.negative&j.negative)!==0?(_=this.neg().divmod(j.neg(),k),k!=="div"&&(x=_.mod.neg(),g&&x.negative!==0&&x.isub(j)),{div:_.div,mod:x}):j.length>this.length||this.cmp(j)<0?{div:new U(0),mod:this}:j.length===1?k==="div"?{div:this.divn(j.words[0]),mod:null}:k==="mod"?{div:null,mod:new U(this.modn(j.words[0]))}:{div:this.divn(j.words[0]),mod:new U(this.modn(j.words[0]))}:this._wordDiv(j,k)},U.prototype.div=function(j){return this.divmod(j,"div",!1).div},U.prototype.mod=function(j){return this.divmod(j,"mod",!1).mod},U.prototype.umod=function(j){return this.divmod(j,"mod",!0).mod},U.prototype.divRound=function(j){var k=this.divmod(j);if(k.mod.isZero())return k.div;var g=k.div.negative!==0?k.mod.isub(j):k.mod,N=j.ushrn(1),x=j.andln(1),_=g.cmp(N);return _<0||x===1&&_===0?k.div:k.div.negative!==0?k.div.isubn(1):k.div.iaddn(1)},U.prototype.modn=function(j){G(j<=67108863);for(var k=(1<<26)%j,g=0,N=this.length-1;N>=0;N--)g=(k*g+(this.words[N]|0))%j;return g},U.prototype.idivn=function(j){G(j<=67108863);for(var k=0,g=this.length-1;g>=0;g--){var N=(this.words[g]|0)+k*67108864;this.words[g]=N/j|0,k=N%j}return this.strip()},U.prototype.divn=function(j){return this.clone().idivn(j)},U.prototype.egcd=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var N=new U(1),x=new U(0),_=new U(0),B=new U(1),y=0;k.isEven()&&g.isEven();)k.iushrn(1),g.iushrn(1),++y;for(var w=g.clone(),f=k.clone();!k.isZero();){for(var p=0,c=1;(k.words[0]&c)===0&&p<26;++p,c<<=1);if(p>0)for(k.iushrn(p);p-- >0;)(N.isOdd()||x.isOdd())&&(N.iadd(w),x.isub(f)),N.iushrn(1),x.iushrn(1);for(var h=0,d=1;(g.words[0]&d)===0&&h<26;++h,d<<=1);if(h>0)for(g.iushrn(h);h-- >0;)(_.isOdd()||B.isOdd())&&(_.iadd(w),B.isub(f)),_.iushrn(1),B.iushrn(1);k.cmp(g)>=0?(k.isub(g),N.isub(_),x.isub(B)):(g.isub(k),_.isub(N),B.isub(x))}return{a:_,b:B,gcd:g.iushln(y)}},U.prototype._invmp=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var N=new U(1),x=new U(0),_=g.clone();k.cmpn(1)>0&&g.cmpn(1)>0;){for(var B=0,y=1;(k.words[0]&y)===0&&B<26;++B,y<<=1);if(B>0)for(k.iushrn(B);B-- >0;)N.isOdd()&&N.iadd(_),N.iushrn(1);for(var w=0,f=1;(g.words[0]&f)===0&&w<26;++w,f<<=1);if(w>0)for(g.iushrn(w);w-- >0;)x.isOdd()&&x.iadd(_),x.iushrn(1);k.cmp(g)>=0?(k.isub(g),N.isub(x)):(g.isub(k),x.isub(N))}var p;return k.cmpn(1)===0?p=N:p=x,p.cmpn(0)<0&&p.iadd(j),p},U.prototype.gcd=function(j){if(this.isZero())return j.abs();if(j.isZero())return this.abs();var k=this.clone(),g=j.clone();k.negative=0,g.negative=0;for(var N=0;k.isEven()&&g.isEven();N++)k.iushrn(1),g.iushrn(1);do{for(;k.isEven();)k.iushrn(1);for(;g.isEven();)g.iushrn(1);var x=k.cmp(g);if(x<0){var _=k;k=g,g=_}else if(x===0||g.cmpn(1)===0)break;k.isub(g)}while(!0);return g.iushln(N)},U.prototype.invm=function(j){return this.egcd(j).a.umod(j)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(j){return this.words[0]&j},U.prototype.bincn=function(j){G(typeof j=="number");var k=j%26,g=(j-k)/26,N=1<>>26,B&=67108863,this.words[_]=B}return x!==0&&(this.words[_]=x,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(j){var k=j<0;if(this.negative!==0&&!k)return-1;if(this.negative===0&&k)return 1;this.strip();var g;if(this.length>1)g=1;else{k&&(j=-j),G(j<=67108863,"Number is too big");var N=this.words[0]|0;g=N===j?0:Nj.length)return 1;if(this.length=0;g--){var N=this.words[g]|0,x=j.words[g]|0;if(N!==x){Nx&&(k=1);break}}return k},U.prototype.gtn=function(j){return this.cmpn(j)===1},U.prototype.gt=function(j){return this.cmp(j)===1},U.prototype.gten=function(j){return this.cmpn(j)>=0},U.prototype.gte=function(j){return this.cmp(j)>=0},U.prototype.ltn=function(j){return this.cmpn(j)===-1},U.prototype.lt=function(j){return this.cmp(j)===-1},U.prototype.lten=function(j){return this.cmpn(j)<=0},U.prototype.lte=function(j){return this.cmp(j)<=0},U.prototype.eqn=function(j){return this.cmpn(j)===0},U.prototype.eq=function(j){return this.cmp(j)===0},U.red=function(j){return new v(j)},U.prototype.toRed=function(j){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),j.convertTo(this)._forceRed(j)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(j){return this.red=j,this},U.prototype.forceRed=function(j){return G(!this.red,"Already a number in reduction context"),this._forceRed(j)},U.prototype.redAdd=function(j){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,j)},U.prototype.redIAdd=function(j){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,j)},U.prototype.redSub=function(j){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,j)},U.prototype.redISub=function(j){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,j)},U.prototype.redShl=function(j){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,j)},U.prototype.redMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.mul(this,j)},U.prototype.redIMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.imul(this,j)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(j){return G(this.red&&!j.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,j)};var L={k256:null,p224:null,p192:null,p25519:null};function R(j,k){this.name=j,this.p=new U(k,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}R.prototype._tmp=function(){var j=new U(null);return j.words=new Array(Math.ceil(this.n/13)),j},R.prototype.ireduce=function(j){var k=j,g;do this.split(k,this.tmp),k=this.imulK(k),k=k.iadd(this.tmp),g=k.bitLength();while(g>this.n);var N=g0?k.isub(this.p):k.strip!==void 0?k.strip():k._strip(),k},R.prototype.split=function(j,k){j.iushrn(this.n,0,k)},R.prototype.imulK=function(j){return j.imul(this.k)};function P(){R.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(P,R),P.prototype.split=function(j,k){for(var g=4194303,N=Math.min(j.length,9),x=0;x>>22,_=B}_>>>=22,j.words[x-10]=_,_===0&&j.length>10?j.length-=10:j.length-=9},P.prototype.imulK=function(j){j.words[j.length]=0,j.words[j.length+1]=0,j.length+=2;for(var k=0,g=0;g>>=26,j.words[g]=x,k=N}return k!==0&&(j.words[j.length++]=k),j},U._prime=function(j){if(L[j])return L[j];var k;if(j==="k256")k=new P;else if(j==="p224")k=new z;else if(j==="p192")k=new M;else if(j==="p25519")k=new S;else throw new Error("Unknown prime "+j);return L[j]=k,k};function v(j){if(typeof j=="string"){var k=U._prime(j);this.m=k.p,this.prime=k}else G(j.gtn(1),"modulus must be greater than 1"),this.m=j,this.prime=null}v.prototype._verify1=function(j){G(j.negative===0,"red works only with positives"),G(j.red,"red works only with red numbers")},v.prototype._verify2=function(j,k){G((j.negative|k.negative)===0,"red works only with positives"),G(j.red&&j.red===k.red,"red works only with red numbers")},v.prototype.imod=function(j){return this.prime?this.prime.ireduce(j)._forceRed(this):j.umod(this.m)._forceRed(this)},v.prototype.neg=function(j){return j.isZero()?j.clone():this.m.sub(j)._forceRed(this)},v.prototype.add=function(j,k){this._verify2(j,k);var g=j.add(k);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},v.prototype.iadd=function(j,k){this._verify2(j,k);var g=j.iadd(k);return g.cmp(this.m)>=0&&g.isub(this.m),g},v.prototype.sub=function(j,k){this._verify2(j,k);var g=j.sub(k);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},v.prototype.isub=function(j,k){this._verify2(j,k);var g=j.isub(k);return g.cmpn(0)<0&&g.iadd(this.m),g},v.prototype.shl=function(j,k){return this._verify1(j),this.imod(j.ushln(k))},v.prototype.imul=function(j,k){return this._verify2(j,k),this.imod(j.imul(k))},v.prototype.mul=function(j,k){return this._verify2(j,k),this.imod(j.mul(k))},v.prototype.isqr=function(j){return this.imul(j,j.clone())},v.prototype.sqr=function(j){return this.mul(j,j)},v.prototype.sqrt=function(j){if(j.isZero())return j.clone();var k=this.m.andln(3);if(G(k%2===1),k===3){var g=this.m.add(new U(1)).iushrn(2);return this.pow(j,g)}for(var N=this.m.subn(1),x=0;!N.isZero()&&N.andln(1)===0;)x++,N.iushrn(1);G(!N.isZero());var _=new U(1).toRed(this),B=_.redNeg(),y=this.m.subn(1).iushrn(1),w=this.m.bitLength();for(w=new U(2*w*w).toRed(this);this.pow(w,y).cmp(B)!==0;)w.redIAdd(B);for(var f=this.pow(w,N),p=this.pow(j,N.addn(1).iushrn(1)),c=this.pow(j,N),h=x;c.cmp(_)!==0;){for(var d=c,b=0;d.cmp(_)!==0;b++)d=d.redSqr();G(b=0;x--){for(var f=k.words[x],p=w-1;p>=0;p--){var c=f>>p&1;if(_!==N[0]&&(_=this.sqr(_)),c===0&&B===0){y=0;continue}B<<=1,B|=c,y++,!(y!==g&&(x!==0||p!==0))&&(_=this.mul(_,N[B]),y=0,B=0)}w=26}return _},v.prototype.convertTo=function(j){var k=j.umod(this.m);return k===j?k.clone():k},v.prototype.convertFrom=function(j){var k=j.clone();return k.red=null,k},U.mont=function(j){return new q(j)};function q(j){v.call(this,j),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(q,v),q.prototype.convertTo=function(j){return this.imod(j.ushln(this.shift))},q.prototype.convertFrom=function(j){var k=this.imod(j.mul(this.rinv));return k.red=null,k},q.prototype.imul=function(j,k){if(j.isZero()||k.isZero())return j.words[0]=0,j.length=1,j;var g=j.imul(k),N=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),x=g.isub(N).iushrn(this.shift),_=x;return x.cmp(this.m)>=0?_=x.isub(this.m):x.cmpn(0)<0&&(_=x.iadd(this.m)),_._forceRed(this)},q.prototype.mul=function(j,k){if(j.isZero()||k.isZero())return new U(0)._forceRed(this);var g=j.mul(k),N=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),x=g.isub(N).iushrn(this.shift),_=x;return x.cmp(this.m)>=0?_=x.isub(this.m):x.cmpn(0)<0&&(_=x.iadd(this.m)),_._forceRed(this)},q.prototype.invm=function(j){var k=this.imod(j._invmp(this.m).mul(this.r2));return k._forceRed(this)}})(typeof Q>"u"||Q,$)}}),EY=z$({"node_modules/safer-buffer/safer.js"($,Q){var Y=R$("buffer"),Z=Y.Buffer,G={},V;for(V in Y)!Y.hasOwnProperty(V)||V==="SlowBuffer"||V==="Buffer"||(G[V]=Y[V]);var U=G.Buffer={};for(V in Z)!Z.hasOwnProperty(V)||V==="allocUnsafe"||V==="allocUnsafeSlow"||(U[V]=Z[V]);if(G.Buffer.prototype=Z.prototype,(!U.from||U.from===Uint8Array.from)&&(U.from=function(X,K,I){if(typeof X=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof X);if(X&&typeof X.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof X);return Z(X,K,I)}),U.alloc||(U.alloc=function(X,K,I){if(typeof X!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof X);if(X<0||X>=2*(1<<30))throw new RangeError('The value "'+X+'" is invalid for option "size"');var J=Z(X);return!K||K.length===0?J.fill(0):typeof I=="string"?J.fill(K,I):J.fill(K),J}),!G.kStringMaxLength)try{G.kStringMaxLength=L$}catch{}G.constants||(G.constants={MAX_LENGTH:G.kMaxLength},G.kStringMaxLength&&(G.constants.MAX_STRING_LENGTH=G.kStringMaxLength)),Q.exports=G}}),TY=z$({"node_modules/asn1.js/lib/asn1/base/reporter.js"($){var Q=q$();function Y(G){this._reporterState={obj:null,path:[],options:G||{},errors:[]}}$.Reporter=Y,Y.prototype.isError=function(G){return G instanceof Z},Y.prototype.save=function(){let G=this._reporterState;return{obj:G.obj,pathLen:G.path.length}},Y.prototype.restore=function(G){let V=this._reporterState;V.obj=G.obj,V.path=V.path.slice(0,G.pathLen)},Y.prototype.enterKey=function(G){return this._reporterState.path.push(G)},Y.prototype.exitKey=function(G){let V=this._reporterState;V.path=V.path.slice(0,G-1)},Y.prototype.leaveKey=function(G,V,U){let X=this._reporterState;this.exitKey(G),X.obj!==null&&(X.obj[V]=U)},Y.prototype.path=function(){return this._reporterState.path.join("/")},Y.prototype.enterObject=function(){let G=this._reporterState,V=G.obj;return G.obj={},V},Y.prototype.leaveObject=function(G){let V=this._reporterState,U=V.obj;return V.obj=G,U},Y.prototype.error=function(G){let V,U=this._reporterState,X=G instanceof Z;if(X?V=G:V=new Z(U.path.map(function(K){return"["+JSON.stringify(K)+"]"}).join(""),G.message||G,G.stack),!U.options.partial)throw V;return X||U.errors.push(V),V},Y.prototype.wrapResult=function(G){let V=this._reporterState;return V.options.partial?{result:this.isError(G)?null:G,errors:V.errors}:G};function Z(G,V){this.path=G,this.rethrow(V)}Q(Z,Error),Z.prototype.rethrow=function(G){if(this.message=G+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,Z),!this.stack)try{throw new Error(this.message)}catch(V){this.stack=V.stack}return this}}}),W$=z$({"node_modules/asn1.js/lib/asn1/base/buffer.js"($){var Q=q$(),Y=TY().Reporter,Z=EY().Buffer;function G(U,X){if(Y.call(this,X),!Z.isBuffer(U)){this.error("Input not Buffer");return}this.base=U,this.offset=0,this.length=U.length}Q(G,Y),$.DecoderBuffer=G,G.isDecoderBuffer=function(U){return U instanceof G?!0:typeof U=="object"&&Z.isBuffer(U.base)&&U.constructor.name==="DecoderBuffer"&&typeof U.offset=="number"&&typeof U.length=="number"&&typeof U.save=="function"&&typeof U.restore=="function"&&typeof U.isEmpty=="function"&&typeof U.readUInt8=="function"&&typeof U.skip=="function"&&typeof U.raw=="function"},G.prototype.save=function(){return{offset:this.offset,reporter:Y.prototype.save.call(this)}},G.prototype.restore=function(U){let X=new G(this.base);return X.offset=U.offset,X.length=this.offset,this.offset=U.offset,Y.prototype.restore.call(this,U.reporter),X},G.prototype.isEmpty=function(){return this.offset===this.length},G.prototype.readUInt8=function(U){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(U||"DecoderBuffer overrun")},G.prototype.skip=function(U,X){if(!(this.offset+U<=this.length))return this.error(X||"DecoderBuffer overrun");let K=new G(this.base);return K._reporterState=this._reporterState,K.offset=this.offset,K.length=this.offset+U,this.offset+=U,K},G.prototype.raw=function(U){return this.base.slice(U?U.offset:this.offset,this.length)};function V(U,X){if(Array.isArray(U))this.length=0,this.value=U.map(function(K){return V.isEncoderBuffer(K)||(K=new V(K,X)),this.length+=K.length,K},this);else if(typeof U=="number"){if(!(0<=U&&U<=255))return X.error("non-byte EncoderBuffer value");this.value=U,this.length=1}else if(typeof U=="string")this.value=U,this.length=Z.byteLength(U);else if(Z.isBuffer(U))this.value=U,this.length=U.length;else return X.error("Unsupported type: "+typeof U)}$.EncoderBuffer=V,V.isEncoderBuffer=function(U){return U instanceof V?!0:typeof U=="object"&&U.constructor.name==="EncoderBuffer"&&typeof U.length=="number"&&typeof U.join=="function"},V.prototype.join=function(U,X){return U||(U=Z.alloc(this.length)),X||(X=0),this.length===0||(Array.isArray(this.value)?this.value.forEach(function(K){K.join(U,X),X+=K.length}):(typeof this.value=="number"?U[X]=this.value:typeof this.value=="string"?U.write(this.value,X):Z.isBuffer(this.value)&&this.value.copy(U,X),X+=this.length)),U}}}),DY=z$({"node_modules/asn1.js/lib/asn1/base/node.js"($,Q){var Y=TY().Reporter,Z=W$().EncoderBuffer,G=W$().DecoderBuffer,V=$Q(),U=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],X=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(U),K=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];function I(O,F,A){let W={};this._baseState=W,W.name=A,W.enc=O,W.parent=F||null,W.children=null,W.tag=null,W.args=null,W.reverseArgs=null,W.choice=null,W.optional=!1,W.any=!1,W.obj=!1,W.use=null,W.useDecoder=null,W.key=null,W.default=null,W.explicit=null,W.implicit=null,W.contains=null,W.parent||(W.children=[],this._wrap())}Q.exports=I;var J=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];I.prototype.clone=function(){let O=this._baseState,F={};J.forEach(function(W){F[W]=O[W]});let A=new this.constructor(F.parent);return A._baseState=F,A},I.prototype._wrap=function(){let O=this._baseState;X.forEach(function(F){this[F]=function(){let A=new this.constructor(this);return O.children.push(A),A[F].apply(A,arguments)}},this)},I.prototype._init=function(O){let F=this._baseState;V(F.parent===null),O.call(this),F.children=F.children.filter(function(A){return A._baseState.parent===this},this),V.equal(F.children.length,1,"Root node can have only one child")},I.prototype._useArgs=function(O){let F=this._baseState,A=O.filter(function(W){return W instanceof this.constructor},this);O=O.filter(function(W){return!(W instanceof this.constructor)},this),A.length!==0&&(V(F.children===null),F.children=A,A.forEach(function(W){W._baseState.parent=this},this)),O.length!==0&&(V(F.args===null),F.args=O,F.reverseArgs=O.map(function(W){if(typeof W!="object"||W.constructor!==Object)return W;let H={};return Object.keys(W).forEach(function(E){E==(E|0)&&(E|=0);let T=W[E];H[T]=E}),H}))},K.forEach(function(O){I.prototype[O]=function(){let F=this._baseState;throw new Error(O+" not implemented for encoding: "+F.enc)}}),U.forEach(function(O){I.prototype[O]=function(){let F=this._baseState,A=Array.prototype.slice.call(arguments);return V(F.tag===null),F.tag=O,this._useArgs(A),this}}),I.prototype.use=function(O){V(O);let F=this._baseState;return V(F.use===null),F.use=O,this},I.prototype.optional=function(){let O=this._baseState;return O.optional=!0,this},I.prototype.def=function(O){let F=this._baseState;return V(F.default===null),F.default=O,F.optional=!0,this},I.prototype.explicit=function(O){let F=this._baseState;return V(F.explicit===null&&F.implicit===null),F.explicit=O,this},I.prototype.implicit=function(O){let F=this._baseState;return V(F.explicit===null&&F.implicit===null),F.implicit=O,this},I.prototype.obj=function(){let O=this._baseState,F=Array.prototype.slice.call(arguments);return O.obj=!0,F.length!==0&&this._useArgs(F),this},I.prototype.key=function(O){let F=this._baseState;return V(F.key===null),F.key=O,this},I.prototype.any=function(){let O=this._baseState;return O.any=!0,this},I.prototype.choice=function(O){let F=this._baseState;return V(F.choice===null),F.choice=O,this._useArgs(Object.keys(O).map(function(A){return O[A]})),this},I.prototype.contains=function(O){let F=this._baseState;return V(F.use===null),F.contains=O,this},I.prototype._decode=function(O,F){let A=this._baseState;if(A.parent===null)return O.wrapResult(A.children[0]._decode(O,F));let W=A.default,H=!0,E=null;if(A.key!==null&&(E=O.enterKey(A.key)),A.optional){let D=null;if(A.explicit!==null?D=A.explicit:A.implicit!==null?D=A.implicit:A.tag!==null&&(D=A.tag),D===null&&!A.any){let C=O.save();try{A.choice===null?this._decodeGeneric(A.tag,O,F):this._decodeChoice(O,F),H=!0}catch{H=!1}O.restore(C)}else if(H=this._peekTag(O,D,A.any),O.isError(H))return H}let T;if(A.obj&&H&&(T=O.enterObject()),H){if(A.explicit!==null){let C=this._decodeTag(O,A.explicit);if(O.isError(C))return C;O=C}let D=O.offset;if(A.use===null&&A.choice===null){let C;A.any&&(C=O.save());let L=this._decodeTag(O,A.implicit!==null?A.implicit:A.tag,A.any);if(O.isError(L))return L;A.any?W=O.raw(C):O=L}if(F&&F.track&&A.tag!==null&&F.track(O.path(),D,O.length,"tagged"),F&&F.track&&A.tag!==null&&F.track(O.path(),O.offset,O.length,"content"),A.any||(A.choice===null?W=this._decodeGeneric(A.tag,O,F):W=this._decodeChoice(O,F)),O.isError(W))return W;if(!A.any&&A.choice===null&&A.children!==null&&A.children.forEach(function(C){C._decode(O,F)}),A.contains&&(A.tag==="octstr"||A.tag==="bitstr")){let C=new G(W);W=this._getUse(A.contains,O._reporterState.obj)._decode(C,F)}}return A.obj&&H&&(W=O.leaveObject(T)),A.key!==null&&(W!==null||H===!0)?O.leaveKey(E,A.key,W):E!==null&&O.exitKey(E),W},I.prototype._decodeGeneric=function(O,F,A){let W=this._baseState;return O==="seq"||O==="set"?null:O==="seqof"||O==="setof"?this._decodeList(F,O,W.args[0],A):/str$/.test(O)?this._decodeStr(F,O,A):O==="objid"&&W.args?this._decodeObjid(F,W.args[0],W.args[1],A):O==="objid"?this._decodeObjid(F,null,null,A):O==="gentime"||O==="utctime"?this._decodeTime(F,O,A):O==="null_"?this._decodeNull(F,A):O==="bool"?this._decodeBool(F,A):O==="objDesc"?this._decodeStr(F,O,A):O==="int"||O==="enum"?this._decodeInt(F,W.args&&W.args[0],A):W.use!==null?this._getUse(W.use,F._reporterState.obj)._decode(F,A):F.error("unknown tag: "+O)},I.prototype._getUse=function(O,F){let A=this._baseState;return A.useDecoder=this._use(O,F),V(A.useDecoder._baseState.parent===null),A.useDecoder=A.useDecoder._baseState.children[0],A.implicit!==A.useDecoder._baseState.implicit&&(A.useDecoder=A.useDecoder.clone(),A.useDecoder._baseState.implicit=A.implicit),A.useDecoder},I.prototype._decodeChoice=function(O,F){let A=this._baseState,W=null,H=!1;return Object.keys(A.choice).some(function(E){let T=O.save(),D=A.choice[E];try{let C=D._decode(O,F);if(O.isError(C))return!1;W={type:E,value:C},H=!0}catch{return O.restore(T),!1}return!0},this),H?W:O.error("Choice not matched")},I.prototype._createEncoderBuffer=function(O){return new Z(O,this.reporter)},I.prototype._encode=function(O,F,A){let W=this._baseState;if(W.default!==null&&W.default===O)return;let H=this._encodeValue(O,F,A);if(H!==void 0&&!this._skipDefault(H,F,A))return H},I.prototype._encodeValue=function(O,F,A){let W=this._baseState;if(W.parent===null)return W.children[0]._encode(O,F||new Y);let H=null;if(this.reporter=F,W.optional&&O===void 0)if(W.default!==null)O=W.default;else return;let E=null,T=!1;if(W.any)H=this._createEncoderBuffer(O);else if(W.choice)H=this._encodeChoice(O,F);else if(W.contains)E=this._getUse(W.contains,A)._encode(O,F),T=!0;else if(W.children)E=W.children.map(function(D){if(D._baseState.tag==="null_")return D._encode(null,F,O);if(D._baseState.key===null)return F.error("Child should have a key");let C=F.enterKey(D._baseState.key);if(typeof O!="object")return F.error("Child expected, but input is not object");let L=D._encode(O[D._baseState.key],F,O);return F.leaveKey(C),L},this).filter(function(D){return D}),E=this._createEncoderBuffer(E);else if(W.tag==="seqof"||W.tag==="setof"){if(!(W.args&&W.args.length===1))return F.error("Too many args for : "+W.tag);if(!Array.isArray(O))return F.error("seqof/setof, but data is not Array");let D=this.clone();D._baseState.implicit=null,E=this._createEncoderBuffer(O.map(function(C){let L=this._baseState;return this._getUse(L.args[0],O)._encode(C,F)},D))}else W.use!==null?H=this._getUse(W.use,A)._encode(O,F):(E=this._encodePrimitive(W.tag,O),T=!0);if(!W.any&&W.choice===null){let D=W.implicit!==null?W.implicit:W.tag,C=W.implicit===null?"universal":"context";D===null?W.use===null&&F.error("Tag could be omitted only for .use()"):W.use===null&&(H=this._encodeComposite(D,T,C,E))}return W.explicit!==null&&(H=this._encodeComposite(W.explicit,!1,"context",H)),H},I.prototype._encodeChoice=function(O,F){let A=this._baseState,W=A.choice[O.type];return W||V(!1,O.type+" not found in "+JSON.stringify(Object.keys(A.choice))),W._encode(O.value,F)},I.prototype._encodePrimitive=function(O,F){let A=this._baseState;if(/str$/.test(O))return this._encodeStr(F,O);if(O==="objid"&&A.args)return this._encodeObjid(F,A.reverseArgs[0],A.args[1]);if(O==="objid")return this._encodeObjid(F,null,null);if(O==="gentime"||O==="utctime")return this._encodeTime(F,O);if(O==="null_")return this._encodeNull();if(O==="int"||O==="enum")return this._encodeInt(F,A.args&&A.reverseArgs[0]);if(O==="bool")return this._encodeBool(F);if(O==="objDesc")return this._encodeStr(F,O);throw new Error("Unsupported tag: "+O)},I.prototype._isNumstr=function(O){return/^[0-9 ]*$/.test(O)},I.prototype._isPrintstr=function(O){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(O)}}}),CY=z$({"node_modules/asn1.js/lib/asn1/constants/der.js"($){function Q(Y){let Z={};return Object.keys(Y).forEach(function(G){(G|0)==G&&(G=G|0);let V=Y[G];Z[V]=G}),Z}$.tagClass={0:"universal",1:"application",2:"context",3:"private"},$.tagClassByName=Q($.tagClass),$.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},$.tagByName=Q($.tag)}}),LY=z$({"node_modules/asn1.js/lib/asn1/encoders/der.js"($,Q){var Y=q$(),Z=EY().Buffer,G=DY(),V=CY();function U(J){this.enc="der",this.name=J.name,this.entity=J,this.tree=new X,this.tree._init(J.body)}Q.exports=U,U.prototype.encode=function(J,O){return this.tree._encode(J,O).join()};function X(J){G.call(this,"der",J)}Y(X,G),X.prototype._encodeComposite=function(J,O,F,A){let W=I(J,O,F,this.reporter);if(A.length<128){let T=Z.alloc(2);return T[0]=W,T[1]=A.length,this._createEncoderBuffer([T,A])}let H=1;for(let T=A.length;T>=256;T>>=8)H++;let E=Z.alloc(2+H);E[0]=W,E[1]=128|H;for(let T=1+H,D=A.length;D>0;T--,D>>=8)E[T]=D&255;return this._createEncoderBuffer([E,A])},X.prototype._encodeStr=function(J,O){if(O==="bitstr")return this._createEncoderBuffer([J.unused|0,J.data]);if(O==="bmpstr"){let F=Z.alloc(J.length*2);for(let A=0;A=40)return this.reporter.error("Second objid identifier OOB");J.splice(0,2,J[0]*40+J[1])}let A=0;for(let E=0;E=128;T>>=7)A++}let W=Z.alloc(A),H=W.length-1;for(let E=J.length-1;E>=0;E--){let T=J[E];for(W[H--]=T&127;(T>>=7)>0;)W[H--]=128|T&127}return this._createEncoderBuffer(W)};function K(J){return J<10?"0"+J:J}X.prototype._encodeTime=function(J,O){let F,A=new Date(J);return O==="gentime"?F=[K(A.getUTCFullYear()),K(A.getUTCMonth()+1),K(A.getUTCDate()),K(A.getUTCHours()),K(A.getUTCMinutes()),K(A.getUTCSeconds()),"Z"].join(""):O==="utctime"?F=[K(A.getUTCFullYear()%100),K(A.getUTCMonth()+1),K(A.getUTCDate()),K(A.getUTCHours()),K(A.getUTCMinutes()),K(A.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+O+" time is not supported yet"),this._encodeStr(F,"octstr")},X.prototype._encodeNull=function(){return this._createEncoderBuffer("")},X.prototype._encodeInt=function(J,O){if(typeof J=="string"){if(!O)return this.reporter.error("String int or enum given, but no values map");if(!O.hasOwnProperty(J))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(J));J=O[J]}if(typeof J!="number"&&!Z.isBuffer(J)){let W=J.toArray();!J.sign&&W[0]&128&&W.unshift(0),J=Z.from(W)}if(Z.isBuffer(J)){let W=J.length;J.length===0&&W++;let H=Z.alloc(W);return J.copy(H),J.length===0&&(H[0]=0),this._createEncoderBuffer(H)}if(J<128)return this._createEncoderBuffer(J);if(J<256)return this._createEncoderBuffer([0,J]);let F=1;for(let W=J;W>=256;W>>=8)F++;let A=new Array(F);for(let W=A.length-1;W>=0;W--)A[W]=J&255,J>>=8;return A[0]&128&&A.unshift(0),this._createEncoderBuffer(Z.from(A))},X.prototype._encodeBool=function(J){return this._createEncoderBuffer(J?255:0)},X.prototype._use=function(J,O){return typeof J=="function"&&(J=J(O)),J._getEncoder("der").tree},X.prototype._skipDefault=function(J,O,F){let A=this._baseState,W;if(A.default===null)return!1;let H=J.join();if(A.defaultBuffer===void 0&&(A.defaultBuffer=this._encodeValue(A.default,O,F).join()),H.length!==A.defaultBuffer.length)return!1;for(W=0;W=31?A.error("Multi-octet tag encoding unsupported"):(O||(W|=32),W|=V.tagClassByName[F||"universal"]<<6,W)}}}),RY=z$({"node_modules/asn1.js/lib/asn1/encoders/pem.js"($,Q){var Y=q$(),Z=LY();function G(V){Z.call(this,V),this.enc="pem"}Y(G,Z),Q.exports=G,G.prototype.encode=function(V,U){let X=Z.prototype.encode.call(this,V).toString("base64"),K=["-----BEGIN "+U.label+"-----"];for(let I=0;I>6],H=(A&32)===0;if((A&31)===31){let T=A;for(A=0;(T&128)===128;){if(T=O.readUInt8(F),O.isError(T))return T;A<<=7,A|=T&127}}else A&=31;let E=U.tag[A];return{cls:W,primitive:H,tag:A,tagStr:E}}function J(O,F,A){let W=O.readUInt8(A);if(O.isError(W))return W;if(!F&&W===128)return null;if((W&128)===0)return W;let H=W&127;if(H>4)return O.error("length octect is too long");W=0;for(let E=0;E0&&L.ishrn(R),L}function H(D,C){D=W(D,C),D=D.mod(C);var L=Y.from(D.toArray());if(L.length=F)throw new Error("invalid sig")}Q.exports=X}}),pY=z$({"node_modules/browserify-sign/browser/index.js"($,Q){var Y=S$().Buffer,Z=d$(),G=R$("readable-stream"),V=q$(),U=wY(),X=fY(),K=u$();Object.keys(K).forEach(function(A){K[A].id=Y.from(K[A].id,"hex"),K[A.toLowerCase()]=K[A]});function I(A){G.Writable.call(this);var W=K[A];if(!W)throw new Error("Unknown message digest");this._hashType=W.hash,this._hash=Z(W.hash),this._tag=W.id,this._signType=W.sign}V(I,G.Writable),I.prototype._write=function(A,W,H){this._hash.update(A),H()},I.prototype.update=function(A,W){return typeof A=="string"&&(A=Y.from(A,W)),this._hash.update(A),this},I.prototype.sign=function(A,W){this.end();var H=this._hash.digest(),E=U(H,A,this._hashType,this._signType,this._tag);return W?E.toString(W):E};function J(A){G.Writable.call(this);var W=K[A];if(!W)throw new Error("Unknown message digest");this._hash=Z(W.hash),this._tag=W.id,this._signType=W.sign}V(J,G.Writable),J.prototype._write=function(A,W,H){this._hash.update(A),H()},J.prototype.update=function(A,W){return typeof A=="string"&&(A=Y.from(A,W)),this._hash.update(A),this},J.prototype.verify=function(A,W,H){typeof W=="string"&&(W=Y.from(W,H)),this.end();var E=this._hash.digest();return X(W,E,A,this._signType,this._tag)};function O(A){return new I(A)}function F(A){return new J(A)}Q.exports={Sign:O,Verify:F,createSign:O,createVerify:F}}}),cY=z$({"node_modules/create-ecdh/node_modules/bn.js/lib/bn.js"($,Q){(function(Y,Z){function G(j,k){if(!j)throw new Error(k||"Assertion failed")}function V(j,k){j.super_=k;var g=function(){};g.prototype=k.prototype,j.prototype=new g,j.prototype.constructor=j}function U(j,k,g){if(U.isBN(j))return j;this.negative=0,this.words=null,this.length=0,this.red=null,j!==null&&((k==="le"||k==="be")&&(g=k,k=10),this._init(j||0,k||10,g||"be"))}typeof Y=="object"?Y.exports=U:Z.BN=U,U.BN=U,U.wordSize=26;var X;try{typeof window<"u"&&typeof window.Buffer<"u"?X=window.Buffer:X=R$("buffer").Buffer}catch{}U.isBN=function(j){return j instanceof U?!0:j!==null&&typeof j=="object"&&j.constructor.wordSize===U.wordSize&&Array.isArray(j.words)},U.max=function(j,k){return j.cmp(k)>0?j:k},U.min=function(j,k){return j.cmp(k)<0?j:k},U.prototype._init=function(j,k,g){if(typeof j=="number")return this._initNumber(j,k,g);if(typeof j=="object")return this._initArray(j,k,g);k==="hex"&&(k=16),G(k===(k|0)&&k>=2&&k<=36),j=j.toString().replace(/\s+/g,"");var N=0;j[0]==="-"&&(N++,this.negative=1),N=0;N-=3)_=j[N]|j[N-1]<<8|j[N-2]<<16,this.words[x]|=_<>>26-B&67108863,B+=24,B>=26&&(B-=26,x++);else if(g==="le")for(N=0,x=0;N>>26-B&67108863,B+=24,B>=26&&(B-=26,x++);return this.strip()};function K(j,k){var g=j.charCodeAt(k);return g>=65&&g<=70?g-55:g>=97&&g<=102?g-87:g-48&15}function I(j,k,g){var N=K(j,g);return g-1>=k&&(N|=K(j,g-1)<<4),N}U.prototype._parseHex=function(j,k,g){this.length=Math.ceil((j.length-k)/6),this.words=new Array(this.length);for(var N=0;N=k;N-=2)B=I(j,k,N)<=18?(x-=18,_+=1,this.words[_]|=B>>>26):x+=8;else{var y=j.length-k;for(N=y%2===0?k+1:k;N=18?(x-=18,_+=1,this.words[_]|=B>>>26):x+=8}this.strip()};function J(j,k,g,N){for(var x=0,_=Math.min(j.length,g),B=k;B<_;B++){var y=j.charCodeAt(B)-48;x*=N,y>=49?x+=y-49+10:y>=17?x+=y-17+10:x+=y}return x}U.prototype._parseBase=function(j,k,g){this.words=[0],this.length=1;for(var N=0,x=1;x<=67108863;x*=k)N++;N--,x=x/k|0;for(var _=j.length-g,B=_%N,y=Math.min(_,_-B)+g,w=0,f=g;f1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},U.prototype.inspect=function(){return(this.red?""};var O=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],F=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],A=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(j,k){j=j||10,k=k|0||1;var g;if(j===16||j==="hex"){g="";for(var N=0,x=0,_=0;_>>24-N&16777215,x!==0||_!==this.length-1?g=O[6-y.length]+y+g:g=y+g,N+=2,N>=26&&(N-=26,_--)}for(x!==0&&(g=x.toString(16)+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(j===(j|0)&&j>=2&&j<=36){var w=F[j],f=A[j];g="";var p=this.clone();for(p.negative=0;!p.isZero();){var c=p.modn(f).toString(j);p=p.idivn(f),p.isZero()?g=c+g:g=O[w-c.length]+c+g}for(this.isZero()&&(g="0"+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var j=this.words[0];return this.length===2?j+=this.words[1]*67108864:this.length===3&&this.words[2]===1?j+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-j:j},U.prototype.toJSON=function(){return this.toString(16)},U.prototype.toBuffer=function(j,k){return G(typeof X<"u"),this.toArrayLike(X,j,k)},U.prototype.toArray=function(j,k){return this.toArrayLike(Array,j,k)},U.prototype.toArrayLike=function(j,k,g){var N=this.byteLength(),x=g||Math.max(1,N);G(N<=x,"byte array longer than desired length"),G(x>0,"Requested array length <= 0"),this.strip();var _=k==="le",B=new j(x),y,w,f=this.clone();if(_){for(w=0;!f.isZero();w++)y=f.andln(255),f.iushrn(8),B[w]=y;for(;w=4096&&(g+=13,k>>>=13),k>=64&&(g+=7,k>>>=7),k>=8&&(g+=4,k>>>=4),k>=2&&(g+=2,k>>>=2),g+k},U.prototype._zeroBits=function(j){if(j===0)return 26;var k=j,g=0;return(k&8191)===0&&(g+=13,k>>>=13),(k&127)===0&&(g+=7,k>>>=7),(k&15)===0&&(g+=4,k>>>=4),(k&3)===0&&(g+=2,k>>>=2),(k&1)===0&&g++,g},U.prototype.bitLength=function(){var j=this.words[this.length-1],k=this._countBits(j);return(this.length-1)*26+k};function W(j){for(var k=new Array(j.bitLength()),g=0;g>>x}return k}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var j=0,k=0;kj.length?this.clone().ior(j):j.clone().ior(this)},U.prototype.uor=function(j){return this.length>j.length?this.clone().iuor(j):j.clone().iuor(this)},U.prototype.iuand=function(j){var k;this.length>j.length?k=j:k=this;for(var g=0;gj.length?this.clone().iand(j):j.clone().iand(this)},U.prototype.uand=function(j){return this.length>j.length?this.clone().iuand(j):j.clone().iuand(this)},U.prototype.iuxor=function(j){var k,g;this.length>j.length?(k=this,g=j):(k=j,g=this);for(var N=0;Nj.length?this.clone().ixor(j):j.clone().ixor(this)},U.prototype.uxor=function(j){return this.length>j.length?this.clone().iuxor(j):j.clone().iuxor(this)},U.prototype.inotn=function(j){G(typeof j=="number"&&j>=0);var k=Math.ceil(j/26)|0,g=j%26;this._expand(k),g>0&&k--;for(var N=0;N0&&(this.words[N]=~this.words[N]&67108863>>26-g),this.strip()},U.prototype.notn=function(j){return this.clone().inotn(j)},U.prototype.setn=function(j,k){G(typeof j=="number"&&j>=0);var g=j/26|0,N=j%26;return this._expand(g+1),k?this.words[g]=this.words[g]|1<j.length?(g=this,N=j):(g=j,N=this);for(var x=0,_=0;_>>26;for(;x!==0&&_>>26;if(this.length=g.length,x!==0)this.words[this.length]=x,this.length++;else if(g!==this)for(;_j.length?this.clone().iadd(j):j.clone().iadd(this)},U.prototype.isub=function(j){if(j.negative!==0){j.negative=0;var k=this.iadd(j);return j.negative=1,k._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(j),this.negative=1,this._normSign();var g=this.cmp(j);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var N,x;g>0?(N=this,x=j):(N=j,x=this);for(var _=0,B=0;B>26,this.words[B]=k&67108863;for(;_!==0&&B>26,this.words[B]=k&67108863;if(_===0&&B>>26,c=w&67108863,h=Math.min(f,k.length-1),d=Math.max(0,f-j.length+1);d<=h;d++){var b=f-d|0;x=j.words[b]|0,_=k.words[d]|0,B=x*_+c,p+=B/67108864|0,c=B&67108863}g.words[f]=c|0,w=p|0}return w!==0?g.words[f]=w|0:g.length--,g.strip()}var E=function(j,k,g){var N=j.words,x=k.words,_=g.words,B=0,y,w,f,p=N[0]|0,c=p&8191,h=p>>>13,d=N[1]|0,b=d&8191,l=d>>>13,o=N[2]|0,u=o&8191,n=o>>>13,s=N[3]|0,t=s&8191,m=s>>>13,a=N[4]|0,r=a&8191,e=a>>>13,i=N[5]|0,$0=i&8191,Q0=i>>>13,Y0=N[6]|0,Z0=Y0&8191,G0=Y0>>>13,V0=N[7]|0,U0=V0&8191,X0=V0>>>13,K0=N[8]|0,I0=K0&8191,J0=K0>>>13,O0=N[9]|0,F0=O0&8191,A0=O0>>>13,W0=x[0]|0,H0=W0&8191,E0=W0>>>13,T0=x[1]|0,D0=T0&8191,C0=T0>>>13,L0=x[2]|0,R0=L0&8191,P0=L0>>>13,z0=x[3]|0,M0=z0&8191,S0=z0>>>13,v0=x[4]|0,q0=v0&8191,j0=v0>>>13,k0=x[5]|0,g0=k0&8191,N0=k0>>>13,x0=x[6]|0,_0=x0&8191,B0=x0>>>13,y0=x[7]|0,w0=y0&8191,f0=y0>>>13,p0=x[8]|0,c0=p0&8191,h0=p0>>>13,d0=x[9]|0,b0=d0&8191,l0=d0>>>13;g.negative=j.negative^k.negative,g.length=19,y=Math.imul(c,H0),w=Math.imul(c,E0),w=w+Math.imul(h,H0)|0,f=Math.imul(h,E0);var o0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(o0>>>26)|0,o0&=67108863,y=Math.imul(b,H0),w=Math.imul(b,E0),w=w+Math.imul(l,H0)|0,f=Math.imul(l,E0),y=y+Math.imul(c,D0)|0,w=w+Math.imul(c,C0)|0,w=w+Math.imul(h,D0)|0,f=f+Math.imul(h,C0)|0;var u0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(u0>>>26)|0,u0&=67108863,y=Math.imul(u,H0),w=Math.imul(u,E0),w=w+Math.imul(n,H0)|0,f=Math.imul(n,E0),y=y+Math.imul(b,D0)|0,w=w+Math.imul(b,C0)|0,w=w+Math.imul(l,D0)|0,f=f+Math.imul(l,C0)|0,y=y+Math.imul(c,R0)|0,w=w+Math.imul(c,P0)|0,w=w+Math.imul(h,R0)|0,f=f+Math.imul(h,P0)|0;var n0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(n0>>>26)|0,n0&=67108863,y=Math.imul(t,H0),w=Math.imul(t,E0),w=w+Math.imul(m,H0)|0,f=Math.imul(m,E0),y=y+Math.imul(u,D0)|0,w=w+Math.imul(u,C0)|0,w=w+Math.imul(n,D0)|0,f=f+Math.imul(n,C0)|0,y=y+Math.imul(b,R0)|0,w=w+Math.imul(b,P0)|0,w=w+Math.imul(l,R0)|0,f=f+Math.imul(l,P0)|0,y=y+Math.imul(c,M0)|0,w=w+Math.imul(c,S0)|0,w=w+Math.imul(h,M0)|0,f=f+Math.imul(h,S0)|0;var s0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(s0>>>26)|0,s0&=67108863,y=Math.imul(r,H0),w=Math.imul(r,E0),w=w+Math.imul(e,H0)|0,f=Math.imul(e,E0),y=y+Math.imul(t,D0)|0,w=w+Math.imul(t,C0)|0,w=w+Math.imul(m,D0)|0,f=f+Math.imul(m,C0)|0,y=y+Math.imul(u,R0)|0,w=w+Math.imul(u,P0)|0,w=w+Math.imul(n,R0)|0,f=f+Math.imul(n,P0)|0,y=y+Math.imul(b,M0)|0,w=w+Math.imul(b,S0)|0,w=w+Math.imul(l,M0)|0,f=f+Math.imul(l,S0)|0,y=y+Math.imul(c,q0)|0,w=w+Math.imul(c,j0)|0,w=w+Math.imul(h,q0)|0,f=f+Math.imul(h,j0)|0;var t0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(t0>>>26)|0,t0&=67108863,y=Math.imul($0,H0),w=Math.imul($0,E0),w=w+Math.imul(Q0,H0)|0,f=Math.imul(Q0,E0),y=y+Math.imul(r,D0)|0,w=w+Math.imul(r,C0)|0,w=w+Math.imul(e,D0)|0,f=f+Math.imul(e,C0)|0,y=y+Math.imul(t,R0)|0,w=w+Math.imul(t,P0)|0,w=w+Math.imul(m,R0)|0,f=f+Math.imul(m,P0)|0,y=y+Math.imul(u,M0)|0,w=w+Math.imul(u,S0)|0,w=w+Math.imul(n,M0)|0,f=f+Math.imul(n,S0)|0,y=y+Math.imul(b,q0)|0,w=w+Math.imul(b,j0)|0,w=w+Math.imul(l,q0)|0,f=f+Math.imul(l,j0)|0,y=y+Math.imul(c,g0)|0,w=w+Math.imul(c,N0)|0,w=w+Math.imul(h,g0)|0,f=f+Math.imul(h,N0)|0;var m0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(m0>>>26)|0,m0&=67108863,y=Math.imul(Z0,H0),w=Math.imul(Z0,E0),w=w+Math.imul(G0,H0)|0,f=Math.imul(G0,E0),y=y+Math.imul($0,D0)|0,w=w+Math.imul($0,C0)|0,w=w+Math.imul(Q0,D0)|0,f=f+Math.imul(Q0,C0)|0,y=y+Math.imul(r,R0)|0,w=w+Math.imul(r,P0)|0,w=w+Math.imul(e,R0)|0,f=f+Math.imul(e,P0)|0,y=y+Math.imul(t,M0)|0,w=w+Math.imul(t,S0)|0,w=w+Math.imul(m,M0)|0,f=f+Math.imul(m,S0)|0,y=y+Math.imul(u,q0)|0,w=w+Math.imul(u,j0)|0,w=w+Math.imul(n,q0)|0,f=f+Math.imul(n,j0)|0,y=y+Math.imul(b,g0)|0,w=w+Math.imul(b,N0)|0,w=w+Math.imul(l,g0)|0,f=f+Math.imul(l,N0)|0,y=y+Math.imul(c,_0)|0,w=w+Math.imul(c,B0)|0,w=w+Math.imul(h,_0)|0,f=f+Math.imul(h,B0)|0;var a0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(a0>>>26)|0,a0&=67108863,y=Math.imul(U0,H0),w=Math.imul(U0,E0),w=w+Math.imul(X0,H0)|0,f=Math.imul(X0,E0),y=y+Math.imul(Z0,D0)|0,w=w+Math.imul(Z0,C0)|0,w=w+Math.imul(G0,D0)|0,f=f+Math.imul(G0,C0)|0,y=y+Math.imul($0,R0)|0,w=w+Math.imul($0,P0)|0,w=w+Math.imul(Q0,R0)|0,f=f+Math.imul(Q0,P0)|0,y=y+Math.imul(r,M0)|0,w=w+Math.imul(r,S0)|0,w=w+Math.imul(e,M0)|0,f=f+Math.imul(e,S0)|0,y=y+Math.imul(t,q0)|0,w=w+Math.imul(t,j0)|0,w=w+Math.imul(m,q0)|0,f=f+Math.imul(m,j0)|0,y=y+Math.imul(u,g0)|0,w=w+Math.imul(u,N0)|0,w=w+Math.imul(n,g0)|0,f=f+Math.imul(n,N0)|0,y=y+Math.imul(b,_0)|0,w=w+Math.imul(b,B0)|0,w=w+Math.imul(l,_0)|0,f=f+Math.imul(l,B0)|0,y=y+Math.imul(c,w0)|0,w=w+Math.imul(c,f0)|0,w=w+Math.imul(h,w0)|0,f=f+Math.imul(h,f0)|0;var r0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(r0>>>26)|0,r0&=67108863,y=Math.imul(I0,H0),w=Math.imul(I0,E0),w=w+Math.imul(J0,H0)|0,f=Math.imul(J0,E0),y=y+Math.imul(U0,D0)|0,w=w+Math.imul(U0,C0)|0,w=w+Math.imul(X0,D0)|0,f=f+Math.imul(X0,C0)|0,y=y+Math.imul(Z0,R0)|0,w=w+Math.imul(Z0,P0)|0,w=w+Math.imul(G0,R0)|0,f=f+Math.imul(G0,P0)|0,y=y+Math.imul($0,M0)|0,w=w+Math.imul($0,S0)|0,w=w+Math.imul(Q0,M0)|0,f=f+Math.imul(Q0,S0)|0,y=y+Math.imul(r,q0)|0,w=w+Math.imul(r,j0)|0,w=w+Math.imul(e,q0)|0,f=f+Math.imul(e,j0)|0,y=y+Math.imul(t,g0)|0,w=w+Math.imul(t,N0)|0,w=w+Math.imul(m,g0)|0,f=f+Math.imul(m,N0)|0,y=y+Math.imul(u,_0)|0,w=w+Math.imul(u,B0)|0,w=w+Math.imul(n,_0)|0,f=f+Math.imul(n,B0)|0,y=y+Math.imul(b,w0)|0,w=w+Math.imul(b,f0)|0,w=w+Math.imul(l,w0)|0,f=f+Math.imul(l,f0)|0,y=y+Math.imul(c,c0)|0,w=w+Math.imul(c,h0)|0,w=w+Math.imul(h,c0)|0,f=f+Math.imul(h,h0)|0;var e0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(e0>>>26)|0,e0&=67108863,y=Math.imul(F0,H0),w=Math.imul(F0,E0),w=w+Math.imul(A0,H0)|0,f=Math.imul(A0,E0),y=y+Math.imul(I0,D0)|0,w=w+Math.imul(I0,C0)|0,w=w+Math.imul(J0,D0)|0,f=f+Math.imul(J0,C0)|0,y=y+Math.imul(U0,R0)|0,w=w+Math.imul(U0,P0)|0,w=w+Math.imul(X0,R0)|0,f=f+Math.imul(X0,P0)|0,y=y+Math.imul(Z0,M0)|0,w=w+Math.imul(Z0,S0)|0,w=w+Math.imul(G0,M0)|0,f=f+Math.imul(G0,S0)|0,y=y+Math.imul($0,q0)|0,w=w+Math.imul($0,j0)|0,w=w+Math.imul(Q0,q0)|0,f=f+Math.imul(Q0,j0)|0,y=y+Math.imul(r,g0)|0,w=w+Math.imul(r,N0)|0,w=w+Math.imul(e,g0)|0,f=f+Math.imul(e,N0)|0,y=y+Math.imul(t,_0)|0,w=w+Math.imul(t,B0)|0,w=w+Math.imul(m,_0)|0,f=f+Math.imul(m,B0)|0,y=y+Math.imul(u,w0)|0,w=w+Math.imul(u,f0)|0,w=w+Math.imul(n,w0)|0,f=f+Math.imul(n,f0)|0,y=y+Math.imul(b,c0)|0,w=w+Math.imul(b,h0)|0,w=w+Math.imul(l,c0)|0,f=f+Math.imul(l,h0)|0,y=y+Math.imul(c,b0)|0,w=w+Math.imul(c,l0)|0,w=w+Math.imul(h,b0)|0,f=f+Math.imul(h,l0)|0;var i0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(i0>>>26)|0,i0&=67108863,y=Math.imul(F0,D0),w=Math.imul(F0,C0),w=w+Math.imul(A0,D0)|0,f=Math.imul(A0,C0),y=y+Math.imul(I0,R0)|0,w=w+Math.imul(I0,P0)|0,w=w+Math.imul(J0,R0)|0,f=f+Math.imul(J0,P0)|0,y=y+Math.imul(U0,M0)|0,w=w+Math.imul(U0,S0)|0,w=w+Math.imul(X0,M0)|0,f=f+Math.imul(X0,S0)|0,y=y+Math.imul(Z0,q0)|0,w=w+Math.imul(Z0,j0)|0,w=w+Math.imul(G0,q0)|0,f=f+Math.imul(G0,j0)|0,y=y+Math.imul($0,g0)|0,w=w+Math.imul($0,N0)|0,w=w+Math.imul(Q0,g0)|0,f=f+Math.imul(Q0,N0)|0,y=y+Math.imul(r,_0)|0,w=w+Math.imul(r,B0)|0,w=w+Math.imul(e,_0)|0,f=f+Math.imul(e,B0)|0,y=y+Math.imul(t,w0)|0,w=w+Math.imul(t,f0)|0,w=w+Math.imul(m,w0)|0,f=f+Math.imul(m,f0)|0,y=y+Math.imul(u,c0)|0,w=w+Math.imul(u,h0)|0,w=w+Math.imul(n,c0)|0,f=f+Math.imul(n,h0)|0,y=y+Math.imul(b,b0)|0,w=w+Math.imul(b,l0)|0,w=w+Math.imul(l,b0)|0,f=f+Math.imul(l,l0)|0;var $$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+($$>>>26)|0,$$&=67108863,y=Math.imul(F0,R0),w=Math.imul(F0,P0),w=w+Math.imul(A0,R0)|0,f=Math.imul(A0,P0),y=y+Math.imul(I0,M0)|0,w=w+Math.imul(I0,S0)|0,w=w+Math.imul(J0,M0)|0,f=f+Math.imul(J0,S0)|0,y=y+Math.imul(U0,q0)|0,w=w+Math.imul(U0,j0)|0,w=w+Math.imul(X0,q0)|0,f=f+Math.imul(X0,j0)|0,y=y+Math.imul(Z0,g0)|0,w=w+Math.imul(Z0,N0)|0,w=w+Math.imul(G0,g0)|0,f=f+Math.imul(G0,N0)|0,y=y+Math.imul($0,_0)|0,w=w+Math.imul($0,B0)|0,w=w+Math.imul(Q0,_0)|0,f=f+Math.imul(Q0,B0)|0,y=y+Math.imul(r,w0)|0,w=w+Math.imul(r,f0)|0,w=w+Math.imul(e,w0)|0,f=f+Math.imul(e,f0)|0,y=y+Math.imul(t,c0)|0,w=w+Math.imul(t,h0)|0,w=w+Math.imul(m,c0)|0,f=f+Math.imul(m,h0)|0,y=y+Math.imul(u,b0)|0,w=w+Math.imul(u,l0)|0,w=w+Math.imul(n,b0)|0,f=f+Math.imul(n,l0)|0;var Q$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,y=Math.imul(F0,M0),w=Math.imul(F0,S0),w=w+Math.imul(A0,M0)|0,f=Math.imul(A0,S0),y=y+Math.imul(I0,q0)|0,w=w+Math.imul(I0,j0)|0,w=w+Math.imul(J0,q0)|0,f=f+Math.imul(J0,j0)|0,y=y+Math.imul(U0,g0)|0,w=w+Math.imul(U0,N0)|0,w=w+Math.imul(X0,g0)|0,f=f+Math.imul(X0,N0)|0,y=y+Math.imul(Z0,_0)|0,w=w+Math.imul(Z0,B0)|0,w=w+Math.imul(G0,_0)|0,f=f+Math.imul(G0,B0)|0,y=y+Math.imul($0,w0)|0,w=w+Math.imul($0,f0)|0,w=w+Math.imul(Q0,w0)|0,f=f+Math.imul(Q0,f0)|0,y=y+Math.imul(r,c0)|0,w=w+Math.imul(r,h0)|0,w=w+Math.imul(e,c0)|0,f=f+Math.imul(e,h0)|0,y=y+Math.imul(t,b0)|0,w=w+Math.imul(t,l0)|0,w=w+Math.imul(m,b0)|0,f=f+Math.imul(m,l0)|0;var Y$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,y=Math.imul(F0,q0),w=Math.imul(F0,j0),w=w+Math.imul(A0,q0)|0,f=Math.imul(A0,j0),y=y+Math.imul(I0,g0)|0,w=w+Math.imul(I0,N0)|0,w=w+Math.imul(J0,g0)|0,f=f+Math.imul(J0,N0)|0,y=y+Math.imul(U0,_0)|0,w=w+Math.imul(U0,B0)|0,w=w+Math.imul(X0,_0)|0,f=f+Math.imul(X0,B0)|0,y=y+Math.imul(Z0,w0)|0,w=w+Math.imul(Z0,f0)|0,w=w+Math.imul(G0,w0)|0,f=f+Math.imul(G0,f0)|0,y=y+Math.imul($0,c0)|0,w=w+Math.imul($0,h0)|0,w=w+Math.imul(Q0,c0)|0,f=f+Math.imul(Q0,h0)|0,y=y+Math.imul(r,b0)|0,w=w+Math.imul(r,l0)|0,w=w+Math.imul(e,b0)|0,f=f+Math.imul(e,l0)|0;var Z$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,y=Math.imul(F0,g0),w=Math.imul(F0,N0),w=w+Math.imul(A0,g0)|0,f=Math.imul(A0,N0),y=y+Math.imul(I0,_0)|0,w=w+Math.imul(I0,B0)|0,w=w+Math.imul(J0,_0)|0,f=f+Math.imul(J0,B0)|0,y=y+Math.imul(U0,w0)|0,w=w+Math.imul(U0,f0)|0,w=w+Math.imul(X0,w0)|0,f=f+Math.imul(X0,f0)|0,y=y+Math.imul(Z0,c0)|0,w=w+Math.imul(Z0,h0)|0,w=w+Math.imul(G0,c0)|0,f=f+Math.imul(G0,h0)|0,y=y+Math.imul($0,b0)|0,w=w+Math.imul($0,l0)|0,w=w+Math.imul(Q0,b0)|0,f=f+Math.imul(Q0,l0)|0;var G$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(G$>>>26)|0,G$&=67108863,y=Math.imul(F0,_0),w=Math.imul(F0,B0),w=w+Math.imul(A0,_0)|0,f=Math.imul(A0,B0),y=y+Math.imul(I0,w0)|0,w=w+Math.imul(I0,f0)|0,w=w+Math.imul(J0,w0)|0,f=f+Math.imul(J0,f0)|0,y=y+Math.imul(U0,c0)|0,w=w+Math.imul(U0,h0)|0,w=w+Math.imul(X0,c0)|0,f=f+Math.imul(X0,h0)|0,y=y+Math.imul(Z0,b0)|0,w=w+Math.imul(Z0,l0)|0,w=w+Math.imul(G0,b0)|0,f=f+Math.imul(G0,l0)|0;var V$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(V$>>>26)|0,V$&=67108863,y=Math.imul(F0,w0),w=Math.imul(F0,f0),w=w+Math.imul(A0,w0)|0,f=Math.imul(A0,f0),y=y+Math.imul(I0,c0)|0,w=w+Math.imul(I0,h0)|0,w=w+Math.imul(J0,c0)|0,f=f+Math.imul(J0,h0)|0,y=y+Math.imul(U0,b0)|0,w=w+Math.imul(U0,l0)|0,w=w+Math.imul(X0,b0)|0,f=f+Math.imul(X0,l0)|0;var U$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(U$>>>26)|0,U$&=67108863,y=Math.imul(F0,c0),w=Math.imul(F0,h0),w=w+Math.imul(A0,c0)|0,f=Math.imul(A0,h0),y=y+Math.imul(I0,b0)|0,w=w+Math.imul(I0,l0)|0,w=w+Math.imul(J0,b0)|0,f=f+Math.imul(J0,l0)|0;var X$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(X$>>>26)|0,X$&=67108863,y=Math.imul(F0,b0),w=Math.imul(F0,l0),w=w+Math.imul(A0,b0)|0,f=Math.imul(A0,l0);var K$=(B+y|0)+((w&8191)<<13)|0;return B=(f+(w>>>13)|0)+(K$>>>26)|0,K$&=67108863,_[0]=o0,_[1]=u0,_[2]=n0,_[3]=s0,_[4]=t0,_[5]=m0,_[6]=a0,_[7]=r0,_[8]=e0,_[9]=i0,_[10]=$$,_[11]=Q$,_[12]=Y$,_[13]=Z$,_[14]=G$,_[15]=V$,_[16]=U$,_[17]=X$,_[18]=K$,B!==0&&(_[19]=B,g.length++),g};Math.imul||(E=H);function T(j,k,g){g.negative=k.negative^j.negative,g.length=j.length+k.length;for(var N=0,x=0,_=0;_>>26)|0,x+=B>>>26,B&=67108863}g.words[_]=y,N=B,B=x}return N!==0?g.words[_]=N:g.length--,g.strip()}function D(j,k,g){var N=new C;return N.mulp(j,k,g)}U.prototype.mulTo=function(j,k){var g,N=this.length+j.length;return this.length===10&&j.length===10?g=E(this,j,k):N<63?g=H(this,j,k):N<1024?g=T(this,j,k):g=D(this,j,k),g};function C(j,k){this.x=j,this.y=k}C.prototype.makeRBT=function(j){for(var k=new Array(j),g=U.prototype._countBits(j)-1,N=0;N>=1;return N},C.prototype.permute=function(j,k,g,N,x,_){for(var B=0;B<_;B++)N[B]=k[j[B]],x[B]=g[j[B]]},C.prototype.transform=function(j,k,g,N,x,_){this.permute(_,j,k,g,N,x);for(var B=1;B>>1)x++;return 1<>>13,g[2*_+1]=x&8191,x=x>>>13;for(_=2*k;_>=26,k+=N/67108864|0,k+=x>>>26,this.words[g]=x&67108863}return k!==0&&(this.words[g]=k,this.length++),this},U.prototype.muln=function(j){return this.clone().imuln(j)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(j){var k=W(j);if(k.length===0)return new U(1);for(var g=this,N=0;N=0);var k=j%26,g=(j-k)/26,N=67108863>>>26-k<<26-k,x;if(k!==0){var _=0;for(x=0;x>>26-k}_&&(this.words[x]=_,this.length++)}if(g!==0){for(x=this.length-1;x>=0;x--)this.words[x+g]=this.words[x];for(x=0;x=0);var N;k?N=(k-k%26)/26:N=0;var x=j%26,_=Math.min((j-x)/26,this.length),B=67108863^67108863>>>x<_)for(this.length-=_,w=0;w=0&&(f!==0||w>=N);w--){var p=this.words[w]|0;this.words[w]=f<<26-x|p>>>x,f=p&B}return y&&f!==0&&(y.words[y.length++]=f),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},U.prototype.ishrn=function(j,k,g){return G(this.negative===0),this.iushrn(j,k,g)},U.prototype.shln=function(j){return this.clone().ishln(j)},U.prototype.ushln=function(j){return this.clone().iushln(j)},U.prototype.shrn=function(j){return this.clone().ishrn(j)},U.prototype.ushrn=function(j){return this.clone().iushrn(j)},U.prototype.testn=function(j){G(typeof j=="number"&&j>=0);var k=j%26,g=(j-k)/26,N=1<=0);var k=j%26,g=(j-k)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(k!==0&&g++,this.length=Math.min(g,this.length),k!==0){var N=67108863^67108863>>>k<=67108864;k++)this.words[k]-=67108864,k===this.length-1?this.words[k+1]=1:this.words[k+1]++;return this.length=Math.max(this.length,k+1),this},U.prototype.isubn=function(j){if(G(typeof j=="number"),G(j<67108864),j<0)return this.iaddn(-j);if(this.negative!==0)return this.negative=0,this.iaddn(j),this.negative=1,this;if(this.words[0]-=j,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var k=0;k>26)-(y/67108864|0),this.words[x+g]=_&67108863}for(;x>26,this.words[x+g]=_&67108863;if(B===0)return this.strip();for(G(B===-1),B=0,x=0;x>26,this.words[x]=_&67108863;return this.negative=1,this.strip()},U.prototype._wordDiv=function(j,k){var g=this.length-j.length,N=this.clone(),x=j,_=x.words[x.length-1]|0,B=this._countBits(_);g=26-B,g!==0&&(x=x.ushln(g),N.iushln(g),_=x.words[x.length-1]|0);var y=N.length-x.length,w;if(k!=="mod"){w=new U(null),w.length=y+1,w.words=new Array(w.length);for(var f=0;f=0;c--){var h=(N.words[x.length+c]|0)*67108864+(N.words[x.length+c-1]|0);for(h=Math.min(h/_|0,67108863),N._ishlnsubmul(x,h,c);N.negative!==0;)h--,N.negative=0,N._ishlnsubmul(x,1,c),N.isZero()||(N.negative^=1);w&&(w.words[c]=h)}return w&&w.strip(),N.strip(),k!=="div"&&g!==0&&N.iushrn(g),{div:w||null,mod:N}},U.prototype.divmod=function(j,k,g){if(G(!j.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var N,x,_;return this.negative!==0&&j.negative===0?(_=this.neg().divmod(j,k),k!=="mod"&&(N=_.div.neg()),k!=="div"&&(x=_.mod.neg(),g&&x.negative!==0&&x.iadd(j)),{div:N,mod:x}):this.negative===0&&j.negative!==0?(_=this.divmod(j.neg(),k),k!=="mod"&&(N=_.div.neg()),{div:N,mod:_.mod}):(this.negative&j.negative)!==0?(_=this.neg().divmod(j.neg(),k),k!=="div"&&(x=_.mod.neg(),g&&x.negative!==0&&x.isub(j)),{div:_.div,mod:x}):j.length>this.length||this.cmp(j)<0?{div:new U(0),mod:this}:j.length===1?k==="div"?{div:this.divn(j.words[0]),mod:null}:k==="mod"?{div:null,mod:new U(this.modn(j.words[0]))}:{div:this.divn(j.words[0]),mod:new U(this.modn(j.words[0]))}:this._wordDiv(j,k)},U.prototype.div=function(j){return this.divmod(j,"div",!1).div},U.prototype.mod=function(j){return this.divmod(j,"mod",!1).mod},U.prototype.umod=function(j){return this.divmod(j,"mod",!0).mod},U.prototype.divRound=function(j){var k=this.divmod(j);if(k.mod.isZero())return k.div;var g=k.div.negative!==0?k.mod.isub(j):k.mod,N=j.ushrn(1),x=j.andln(1),_=g.cmp(N);return _<0||x===1&&_===0?k.div:k.div.negative!==0?k.div.isubn(1):k.div.iaddn(1)},U.prototype.modn=function(j){G(j<=67108863);for(var k=(1<<26)%j,g=0,N=this.length-1;N>=0;N--)g=(k*g+(this.words[N]|0))%j;return g},U.prototype.idivn=function(j){G(j<=67108863);for(var k=0,g=this.length-1;g>=0;g--){var N=(this.words[g]|0)+k*67108864;this.words[g]=N/j|0,k=N%j}return this.strip()},U.prototype.divn=function(j){return this.clone().idivn(j)},U.prototype.egcd=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var N=new U(1),x=new U(0),_=new U(0),B=new U(1),y=0;k.isEven()&&g.isEven();)k.iushrn(1),g.iushrn(1),++y;for(var w=g.clone(),f=k.clone();!k.isZero();){for(var p=0,c=1;(k.words[0]&c)===0&&p<26;++p,c<<=1);if(p>0)for(k.iushrn(p);p-- >0;)(N.isOdd()||x.isOdd())&&(N.iadd(w),x.isub(f)),N.iushrn(1),x.iushrn(1);for(var h=0,d=1;(g.words[0]&d)===0&&h<26;++h,d<<=1);if(h>0)for(g.iushrn(h);h-- >0;)(_.isOdd()||B.isOdd())&&(_.iadd(w),B.isub(f)),_.iushrn(1),B.iushrn(1);k.cmp(g)>=0?(k.isub(g),N.isub(_),x.isub(B)):(g.isub(k),_.isub(N),B.isub(x))}return{a:_,b:B,gcd:g.iushln(y)}},U.prototype._invmp=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var N=new U(1),x=new U(0),_=g.clone();k.cmpn(1)>0&&g.cmpn(1)>0;){for(var B=0,y=1;(k.words[0]&y)===0&&B<26;++B,y<<=1);if(B>0)for(k.iushrn(B);B-- >0;)N.isOdd()&&N.iadd(_),N.iushrn(1);for(var w=0,f=1;(g.words[0]&f)===0&&w<26;++w,f<<=1);if(w>0)for(g.iushrn(w);w-- >0;)x.isOdd()&&x.iadd(_),x.iushrn(1);k.cmp(g)>=0?(k.isub(g),N.isub(x)):(g.isub(k),x.isub(N))}var p;return k.cmpn(1)===0?p=N:p=x,p.cmpn(0)<0&&p.iadd(j),p},U.prototype.gcd=function(j){if(this.isZero())return j.abs();if(j.isZero())return this.abs();var k=this.clone(),g=j.clone();k.negative=0,g.negative=0;for(var N=0;k.isEven()&&g.isEven();N++)k.iushrn(1),g.iushrn(1);do{for(;k.isEven();)k.iushrn(1);for(;g.isEven();)g.iushrn(1);var x=k.cmp(g);if(x<0){var _=k;k=g,g=_}else if(x===0||g.cmpn(1)===0)break;k.isub(g)}while(!0);return g.iushln(N)},U.prototype.invm=function(j){return this.egcd(j).a.umod(j)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(j){return this.words[0]&j},U.prototype.bincn=function(j){G(typeof j=="number");var k=j%26,g=(j-k)/26,N=1<>>26,B&=67108863,this.words[_]=B}return x!==0&&(this.words[_]=x,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(j){var k=j<0;if(this.negative!==0&&!k)return-1;if(this.negative===0&&k)return 1;this.strip();var g;if(this.length>1)g=1;else{k&&(j=-j),G(j<=67108863,"Number is too big");var N=this.words[0]|0;g=N===j?0:Nj.length)return 1;if(this.length=0;g--){var N=this.words[g]|0,x=j.words[g]|0;if(N!==x){Nx&&(k=1);break}}return k},U.prototype.gtn=function(j){return this.cmpn(j)===1},U.prototype.gt=function(j){return this.cmp(j)===1},U.prototype.gten=function(j){return this.cmpn(j)>=0},U.prototype.gte=function(j){return this.cmp(j)>=0},U.prototype.ltn=function(j){return this.cmpn(j)===-1},U.prototype.lt=function(j){return this.cmp(j)===-1},U.prototype.lten=function(j){return this.cmpn(j)<=0},U.prototype.lte=function(j){return this.cmp(j)<=0},U.prototype.eqn=function(j){return this.cmpn(j)===0},U.prototype.eq=function(j){return this.cmp(j)===0},U.red=function(j){return new v(j)},U.prototype.toRed=function(j){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),j.convertTo(this)._forceRed(j)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(j){return this.red=j,this},U.prototype.forceRed=function(j){return G(!this.red,"Already a number in reduction context"),this._forceRed(j)},U.prototype.redAdd=function(j){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,j)},U.prototype.redIAdd=function(j){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,j)},U.prototype.redSub=function(j){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,j)},U.prototype.redISub=function(j){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,j)},U.prototype.redShl=function(j){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,j)},U.prototype.redMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.mul(this,j)},U.prototype.redIMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.imul(this,j)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(j){return G(this.red&&!j.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,j)};var L={k256:null,p224:null,p192:null,p25519:null};function R(j,k){this.name=j,this.p=new U(k,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}R.prototype._tmp=function(){var j=new U(null);return j.words=new Array(Math.ceil(this.n/13)),j},R.prototype.ireduce=function(j){var k=j,g;do this.split(k,this.tmp),k=this.imulK(k),k=k.iadd(this.tmp),g=k.bitLength();while(g>this.n);var N=g0?k.isub(this.p):k.strip!==void 0?k.strip():k._strip(),k},R.prototype.split=function(j,k){j.iushrn(this.n,0,k)},R.prototype.imulK=function(j){return j.imul(this.k)};function P(){R.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(P,R),P.prototype.split=function(j,k){for(var g=4194303,N=Math.min(j.length,9),x=0;x>>22,_=B}_>>>=22,j.words[x-10]=_,_===0&&j.length>10?j.length-=10:j.length-=9},P.prototype.imulK=function(j){j.words[j.length]=0,j.words[j.length+1]=0,j.length+=2;for(var k=0,g=0;g>>=26,j.words[g]=x,k=N}return k!==0&&(j.words[j.length++]=k),j},U._prime=function(j){if(L[j])return L[j];var k;if(j==="k256")k=new P;else if(j==="p224")k=new z;else if(j==="p192")k=new M;else if(j==="p25519")k=new S;else throw new Error("Unknown prime "+j);return L[j]=k,k};function v(j){if(typeof j=="string"){var k=U._prime(j);this.m=k.p,this.prime=k}else G(j.gtn(1),"modulus must be greater than 1"),this.m=j,this.prime=null}v.prototype._verify1=function(j){G(j.negative===0,"red works only with positives"),G(j.red,"red works only with red numbers")},v.prototype._verify2=function(j,k){G((j.negative|k.negative)===0,"red works only with positives"),G(j.red&&j.red===k.red,"red works only with red numbers")},v.prototype.imod=function(j){return this.prime?this.prime.ireduce(j)._forceRed(this):j.umod(this.m)._forceRed(this)},v.prototype.neg=function(j){return j.isZero()?j.clone():this.m.sub(j)._forceRed(this)},v.prototype.add=function(j,k){this._verify2(j,k);var g=j.add(k);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},v.prototype.iadd=function(j,k){this._verify2(j,k);var g=j.iadd(k);return g.cmp(this.m)>=0&&g.isub(this.m),g},v.prototype.sub=function(j,k){this._verify2(j,k);var g=j.sub(k);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},v.prototype.isub=function(j,k){this._verify2(j,k);var g=j.isub(k);return g.cmpn(0)<0&&g.iadd(this.m),g},v.prototype.shl=function(j,k){return this._verify1(j),this.imod(j.ushln(k))},v.prototype.imul=function(j,k){return this._verify2(j,k),this.imod(j.imul(k))},v.prototype.mul=function(j,k){return this._verify2(j,k),this.imod(j.mul(k))},v.prototype.isqr=function(j){return this.imul(j,j.clone())},v.prototype.sqr=function(j){return this.mul(j,j)},v.prototype.sqrt=function(j){if(j.isZero())return j.clone();var k=this.m.andln(3);if(G(k%2===1),k===3){var g=this.m.add(new U(1)).iushrn(2);return this.pow(j,g)}for(var N=this.m.subn(1),x=0;!N.isZero()&&N.andln(1)===0;)x++,N.iushrn(1);G(!N.isZero());var _=new U(1).toRed(this),B=_.redNeg(),y=this.m.subn(1).iushrn(1),w=this.m.bitLength();for(w=new U(2*w*w).toRed(this);this.pow(w,y).cmp(B)!==0;)w.redIAdd(B);for(var f=this.pow(w,N),p=this.pow(j,N.addn(1).iushrn(1)),c=this.pow(j,N),h=x;c.cmp(_)!==0;){for(var d=c,b=0;d.cmp(_)!==0;b++)d=d.redSqr();G(b=0;x--){for(var f=k.words[x],p=w-1;p>=0;p--){var c=f>>p&1;if(_!==N[0]&&(_=this.sqr(_)),c===0&&B===0){y=0;continue}B<<=1,B|=c,y++,!(y!==g&&(x!==0||p!==0))&&(_=this.mul(_,N[B]),y=0,B=0)}w=26}return _},v.prototype.convertTo=function(j){var k=j.umod(this.m);return k===j?k.clone():k},v.prototype.convertFrom=function(j){var k=j.clone();return k.red=null,k},U.mont=function(j){return new q(j)};function q(j){v.call(this,j),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(q,v),q.prototype.convertTo=function(j){return this.imod(j.ushln(this.shift))},q.prototype.convertFrom=function(j){var k=this.imod(j.mul(this.rinv));return k.red=null,k},q.prototype.imul=function(j,k){if(j.isZero()||k.isZero())return j.words[0]=0,j.length=1,j;var g=j.imul(k),N=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),x=g.isub(N).iushrn(this.shift),_=x;return x.cmp(this.m)>=0?_=x.isub(this.m):x.cmpn(0)<0&&(_=x.iadd(this.m)),_._forceRed(this)},q.prototype.mul=function(j,k){if(j.isZero()||k.isZero())return new U(0)._forceRed(this);var g=j.mul(k),N=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),x=g.isub(N).iushrn(this.shift),_=x;return x.cmp(this.m)>=0?_=x.isub(this.m):x.cmpn(0)<0&&(_=x.iadd(this.m)),_._forceRed(this)},q.prototype.invm=function(j){var k=this.imod(j._invmp(this.m).mul(this.r2));return k._forceRed(this)}})(typeof Q>"u"||Q,$)}}),hY=z$({"node_modules/create-ecdh/browser.js"($,Q){var Y=WY(),Z=cY();Q.exports=function(X){return new V(X)};var G={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};G.p224=G.secp224r1,G.p256=G.secp256r1=G.prime256v1,G.p192=G.secp192r1=G.prime192v1,G.p384=G.secp384r1,G.p521=G.secp521r1;function V(X){this.curveType=G[X],this.curveType||(this.curveType={name:X}),this.curve=new Y.ec(this.curveType.name),this.keys=void 0}V.prototype.generateKeys=function(X,K){return this.keys=this.curve.genKeyPair(),this.getPublicKey(X,K)},V.prototype.computeSecret=function(X,K,I){K=K||"utf8",Buffer.isBuffer(X)||(X=new Buffer(X,K));var J=this.curve.keyFromPublic(X).getPublic(),O=J.mul(this.keys.getPrivate()).getX();return U(O,I,this.curveType.byteLength)},V.prototype.getPublicKey=function(X,K){var I=this.keys.getPublic(K==="compressed",!0);return K==="hybrid"&&(I[I.length-1]%2?I[0]=7:I[0]=6),U(I,X)},V.prototype.getPrivateKey=function(X){return U(this.keys.getPrivate(),X)},V.prototype.setPublicKey=function(X,K){return K=K||"utf8",Buffer.isBuffer(X)||(X=new Buffer(X,K)),this.keys._importPublic(X),this},V.prototype.setPrivateKey=function(X,K){K=K||"utf8",Buffer.isBuffer(X)||(X=new Buffer(X,K));var I=new Z(X);return I=I.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(I),this};function U(X,K,I){Array.isArray(X)||(X=X.toArray());var J=new Buffer(X);if(I&&J.length0?j:k},U.min=function(j,k){return j.cmp(k)<0?j:k},U.prototype._init=function(j,k,g){if(typeof j=="number")return this._initNumber(j,k,g);if(typeof j=="object")return this._initArray(j,k,g);k==="hex"&&(k=16),G(k===(k|0)&&k>=2&&k<=36),j=j.toString().replace(/\s+/g,"");var N=0;j[0]==="-"&&(N++,this.negative=1),N=0;N-=3)_=j[N]|j[N-1]<<8|j[N-2]<<16,this.words[x]|=_<>>26-B&67108863,B+=24,B>=26&&(B-=26,x++);else if(g==="le")for(N=0,x=0;N>>26-B&67108863,B+=24,B>=26&&(B-=26,x++);return this.strip()};function K(j,k){var g=j.charCodeAt(k);return g>=65&&g<=70?g-55:g>=97&&g<=102?g-87:g-48&15}function I(j,k,g){var N=K(j,g);return g-1>=k&&(N|=K(j,g-1)<<4),N}U.prototype._parseHex=function(j,k,g){this.length=Math.ceil((j.length-k)/6),this.words=new Array(this.length);for(var N=0;N=k;N-=2)B=I(j,k,N)<=18?(x-=18,_+=1,this.words[_]|=B>>>26):x+=8;else{var y=j.length-k;for(N=y%2===0?k+1:k;N=18?(x-=18,_+=1,this.words[_]|=B>>>26):x+=8}this.strip()};function J(j,k,g,N){for(var x=0,_=Math.min(j.length,g),B=k;B<_;B++){var y=j.charCodeAt(B)-48;x*=N,y>=49?x+=y-49+10:y>=17?x+=y-17+10:x+=y}return x}U.prototype._parseBase=function(j,k,g){this.words=[0],this.length=1;for(var N=0,x=1;x<=67108863;x*=k)N++;N--,x=x/k|0;for(var _=j.length-g,B=_%N,y=Math.min(_,_-B)+g,w=0,f=g;f1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},U.prototype.inspect=function(){return(this.red?""};var O=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],F=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],A=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(j,k){j=j||10,k=k|0||1;var g;if(j===16||j==="hex"){g="";for(var N=0,x=0,_=0;_>>24-N&16777215,x!==0||_!==this.length-1?g=O[6-y.length]+y+g:g=y+g,N+=2,N>=26&&(N-=26,_--)}for(x!==0&&(g=x.toString(16)+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(j===(j|0)&&j>=2&&j<=36){var w=F[j],f=A[j];g="";var p=this.clone();for(p.negative=0;!p.isZero();){var c=p.modn(f).toString(j);p=p.idivn(f),p.isZero()?g=c+g:g=O[w-c.length]+c+g}for(this.isZero()&&(g="0"+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var j=this.words[0];return this.length===2?j+=this.words[1]*67108864:this.length===3&&this.words[2]===1?j+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-j:j},U.prototype.toJSON=function(){return this.toString(16)},U.prototype.toBuffer=function(j,k){return G(typeof X<"u"),this.toArrayLike(X,j,k)},U.prototype.toArray=function(j,k){return this.toArrayLike(Array,j,k)},U.prototype.toArrayLike=function(j,k,g){var N=this.byteLength(),x=g||Math.max(1,N);G(N<=x,"byte array longer than desired length"),G(x>0,"Requested array length <= 0"),this.strip();var _=k==="le",B=new j(x),y,w,f=this.clone();if(_){for(w=0;!f.isZero();w++)y=f.andln(255),f.iushrn(8),B[w]=y;for(;w=4096&&(g+=13,k>>>=13),k>=64&&(g+=7,k>>>=7),k>=8&&(g+=4,k>>>=4),k>=2&&(g+=2,k>>>=2),g+k},U.prototype._zeroBits=function(j){if(j===0)return 26;var k=j,g=0;return(k&8191)===0&&(g+=13,k>>>=13),(k&127)===0&&(g+=7,k>>>=7),(k&15)===0&&(g+=4,k>>>=4),(k&3)===0&&(g+=2,k>>>=2),(k&1)===0&&g++,g},U.prototype.bitLength=function(){var j=this.words[this.length-1],k=this._countBits(j);return(this.length-1)*26+k};function W(j){for(var k=new Array(j.bitLength()),g=0;g>>x}return k}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var j=0,k=0;kj.length?this.clone().ior(j):j.clone().ior(this)},U.prototype.uor=function(j){return this.length>j.length?this.clone().iuor(j):j.clone().iuor(this)},U.prototype.iuand=function(j){var k;this.length>j.length?k=j:k=this;for(var g=0;gj.length?this.clone().iand(j):j.clone().iand(this)},U.prototype.uand=function(j){return this.length>j.length?this.clone().iuand(j):j.clone().iuand(this)},U.prototype.iuxor=function(j){var k,g;this.length>j.length?(k=this,g=j):(k=j,g=this);for(var N=0;Nj.length?this.clone().ixor(j):j.clone().ixor(this)},U.prototype.uxor=function(j){return this.length>j.length?this.clone().iuxor(j):j.clone().iuxor(this)},U.prototype.inotn=function(j){G(typeof j=="number"&&j>=0);var k=Math.ceil(j/26)|0,g=j%26;this._expand(k),g>0&&k--;for(var N=0;N0&&(this.words[N]=~this.words[N]&67108863>>26-g),this.strip()},U.prototype.notn=function(j){return this.clone().inotn(j)},U.prototype.setn=function(j,k){G(typeof j=="number"&&j>=0);var g=j/26|0,N=j%26;return this._expand(g+1),k?this.words[g]=this.words[g]|1<j.length?(g=this,N=j):(g=j,N=this);for(var x=0,_=0;_>>26;for(;x!==0&&_>>26;if(this.length=g.length,x!==0)this.words[this.length]=x,this.length++;else if(g!==this)for(;_j.length?this.clone().iadd(j):j.clone().iadd(this)},U.prototype.isub=function(j){if(j.negative!==0){j.negative=0;var k=this.iadd(j);return j.negative=1,k._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(j),this.negative=1,this._normSign();var g=this.cmp(j);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var N,x;g>0?(N=this,x=j):(N=j,x=this);for(var _=0,B=0;B>26,this.words[B]=k&67108863;for(;_!==0&&B>26,this.words[B]=k&67108863;if(_===0&&B>>26,c=w&67108863,h=Math.min(f,k.length-1),d=Math.max(0,f-j.length+1);d<=h;d++){var b=f-d|0;x=j.words[b]|0,_=k.words[d]|0,B=x*_+c,p+=B/67108864|0,c=B&67108863}g.words[f]=c|0,w=p|0}return w!==0?g.words[f]=w|0:g.length--,g.strip()}var E=function(j,k,g){var N=j.words,x=k.words,_=g.words,B=0,y,w,f,p=N[0]|0,c=p&8191,h=p>>>13,d=N[1]|0,b=d&8191,l=d>>>13,o=N[2]|0,u=o&8191,n=o>>>13,s=N[3]|0,t=s&8191,m=s>>>13,a=N[4]|0,r=a&8191,e=a>>>13,i=N[5]|0,$0=i&8191,Q0=i>>>13,Y0=N[6]|0,Z0=Y0&8191,G0=Y0>>>13,V0=N[7]|0,U0=V0&8191,X0=V0>>>13,K0=N[8]|0,I0=K0&8191,J0=K0>>>13,O0=N[9]|0,F0=O0&8191,A0=O0>>>13,W0=x[0]|0,H0=W0&8191,E0=W0>>>13,T0=x[1]|0,D0=T0&8191,C0=T0>>>13,L0=x[2]|0,R0=L0&8191,P0=L0>>>13,z0=x[3]|0,M0=z0&8191,S0=z0>>>13,v0=x[4]|0,q0=v0&8191,j0=v0>>>13,k0=x[5]|0,g0=k0&8191,N0=k0>>>13,x0=x[6]|0,_0=x0&8191,B0=x0>>>13,y0=x[7]|0,w0=y0&8191,f0=y0>>>13,p0=x[8]|0,c0=p0&8191,h0=p0>>>13,d0=x[9]|0,b0=d0&8191,l0=d0>>>13;g.negative=j.negative^k.negative,g.length=19,y=Math.imul(c,H0),w=Math.imul(c,E0),w=w+Math.imul(h,H0)|0,f=Math.imul(h,E0);var o0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(o0>>>26)|0,o0&=67108863,y=Math.imul(b,H0),w=Math.imul(b,E0),w=w+Math.imul(l,H0)|0,f=Math.imul(l,E0),y=y+Math.imul(c,D0)|0,w=w+Math.imul(c,C0)|0,w=w+Math.imul(h,D0)|0,f=f+Math.imul(h,C0)|0;var u0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(u0>>>26)|0,u0&=67108863,y=Math.imul(u,H0),w=Math.imul(u,E0),w=w+Math.imul(n,H0)|0,f=Math.imul(n,E0),y=y+Math.imul(b,D0)|0,w=w+Math.imul(b,C0)|0,w=w+Math.imul(l,D0)|0,f=f+Math.imul(l,C0)|0,y=y+Math.imul(c,R0)|0,w=w+Math.imul(c,P0)|0,w=w+Math.imul(h,R0)|0,f=f+Math.imul(h,P0)|0;var n0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(n0>>>26)|0,n0&=67108863,y=Math.imul(t,H0),w=Math.imul(t,E0),w=w+Math.imul(m,H0)|0,f=Math.imul(m,E0),y=y+Math.imul(u,D0)|0,w=w+Math.imul(u,C0)|0,w=w+Math.imul(n,D0)|0,f=f+Math.imul(n,C0)|0,y=y+Math.imul(b,R0)|0,w=w+Math.imul(b,P0)|0,w=w+Math.imul(l,R0)|0,f=f+Math.imul(l,P0)|0,y=y+Math.imul(c,M0)|0,w=w+Math.imul(c,S0)|0,w=w+Math.imul(h,M0)|0,f=f+Math.imul(h,S0)|0;var s0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(s0>>>26)|0,s0&=67108863,y=Math.imul(r,H0),w=Math.imul(r,E0),w=w+Math.imul(e,H0)|0,f=Math.imul(e,E0),y=y+Math.imul(t,D0)|0,w=w+Math.imul(t,C0)|0,w=w+Math.imul(m,D0)|0,f=f+Math.imul(m,C0)|0,y=y+Math.imul(u,R0)|0,w=w+Math.imul(u,P0)|0,w=w+Math.imul(n,R0)|0,f=f+Math.imul(n,P0)|0,y=y+Math.imul(b,M0)|0,w=w+Math.imul(b,S0)|0,w=w+Math.imul(l,M0)|0,f=f+Math.imul(l,S0)|0,y=y+Math.imul(c,q0)|0,w=w+Math.imul(c,j0)|0,w=w+Math.imul(h,q0)|0,f=f+Math.imul(h,j0)|0;var t0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(t0>>>26)|0,t0&=67108863,y=Math.imul($0,H0),w=Math.imul($0,E0),w=w+Math.imul(Q0,H0)|0,f=Math.imul(Q0,E0),y=y+Math.imul(r,D0)|0,w=w+Math.imul(r,C0)|0,w=w+Math.imul(e,D0)|0,f=f+Math.imul(e,C0)|0,y=y+Math.imul(t,R0)|0,w=w+Math.imul(t,P0)|0,w=w+Math.imul(m,R0)|0,f=f+Math.imul(m,P0)|0,y=y+Math.imul(u,M0)|0,w=w+Math.imul(u,S0)|0,w=w+Math.imul(n,M0)|0,f=f+Math.imul(n,S0)|0,y=y+Math.imul(b,q0)|0,w=w+Math.imul(b,j0)|0,w=w+Math.imul(l,q0)|0,f=f+Math.imul(l,j0)|0,y=y+Math.imul(c,g0)|0,w=w+Math.imul(c,N0)|0,w=w+Math.imul(h,g0)|0,f=f+Math.imul(h,N0)|0;var m0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(m0>>>26)|0,m0&=67108863,y=Math.imul(Z0,H0),w=Math.imul(Z0,E0),w=w+Math.imul(G0,H0)|0,f=Math.imul(G0,E0),y=y+Math.imul($0,D0)|0,w=w+Math.imul($0,C0)|0,w=w+Math.imul(Q0,D0)|0,f=f+Math.imul(Q0,C0)|0,y=y+Math.imul(r,R0)|0,w=w+Math.imul(r,P0)|0,w=w+Math.imul(e,R0)|0,f=f+Math.imul(e,P0)|0,y=y+Math.imul(t,M0)|0,w=w+Math.imul(t,S0)|0,w=w+Math.imul(m,M0)|0,f=f+Math.imul(m,S0)|0,y=y+Math.imul(u,q0)|0,w=w+Math.imul(u,j0)|0,w=w+Math.imul(n,q0)|0,f=f+Math.imul(n,j0)|0,y=y+Math.imul(b,g0)|0,w=w+Math.imul(b,N0)|0,w=w+Math.imul(l,g0)|0,f=f+Math.imul(l,N0)|0,y=y+Math.imul(c,_0)|0,w=w+Math.imul(c,B0)|0,w=w+Math.imul(h,_0)|0,f=f+Math.imul(h,B0)|0;var a0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(a0>>>26)|0,a0&=67108863,y=Math.imul(U0,H0),w=Math.imul(U0,E0),w=w+Math.imul(X0,H0)|0,f=Math.imul(X0,E0),y=y+Math.imul(Z0,D0)|0,w=w+Math.imul(Z0,C0)|0,w=w+Math.imul(G0,D0)|0,f=f+Math.imul(G0,C0)|0,y=y+Math.imul($0,R0)|0,w=w+Math.imul($0,P0)|0,w=w+Math.imul(Q0,R0)|0,f=f+Math.imul(Q0,P0)|0,y=y+Math.imul(r,M0)|0,w=w+Math.imul(r,S0)|0,w=w+Math.imul(e,M0)|0,f=f+Math.imul(e,S0)|0,y=y+Math.imul(t,q0)|0,w=w+Math.imul(t,j0)|0,w=w+Math.imul(m,q0)|0,f=f+Math.imul(m,j0)|0,y=y+Math.imul(u,g0)|0,w=w+Math.imul(u,N0)|0,w=w+Math.imul(n,g0)|0,f=f+Math.imul(n,N0)|0,y=y+Math.imul(b,_0)|0,w=w+Math.imul(b,B0)|0,w=w+Math.imul(l,_0)|0,f=f+Math.imul(l,B0)|0,y=y+Math.imul(c,w0)|0,w=w+Math.imul(c,f0)|0,w=w+Math.imul(h,w0)|0,f=f+Math.imul(h,f0)|0;var r0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(r0>>>26)|0,r0&=67108863,y=Math.imul(I0,H0),w=Math.imul(I0,E0),w=w+Math.imul(J0,H0)|0,f=Math.imul(J0,E0),y=y+Math.imul(U0,D0)|0,w=w+Math.imul(U0,C0)|0,w=w+Math.imul(X0,D0)|0,f=f+Math.imul(X0,C0)|0,y=y+Math.imul(Z0,R0)|0,w=w+Math.imul(Z0,P0)|0,w=w+Math.imul(G0,R0)|0,f=f+Math.imul(G0,P0)|0,y=y+Math.imul($0,M0)|0,w=w+Math.imul($0,S0)|0,w=w+Math.imul(Q0,M0)|0,f=f+Math.imul(Q0,S0)|0,y=y+Math.imul(r,q0)|0,w=w+Math.imul(r,j0)|0,w=w+Math.imul(e,q0)|0,f=f+Math.imul(e,j0)|0,y=y+Math.imul(t,g0)|0,w=w+Math.imul(t,N0)|0,w=w+Math.imul(m,g0)|0,f=f+Math.imul(m,N0)|0,y=y+Math.imul(u,_0)|0,w=w+Math.imul(u,B0)|0,w=w+Math.imul(n,_0)|0,f=f+Math.imul(n,B0)|0,y=y+Math.imul(b,w0)|0,w=w+Math.imul(b,f0)|0,w=w+Math.imul(l,w0)|0,f=f+Math.imul(l,f0)|0,y=y+Math.imul(c,c0)|0,w=w+Math.imul(c,h0)|0,w=w+Math.imul(h,c0)|0,f=f+Math.imul(h,h0)|0;var e0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(e0>>>26)|0,e0&=67108863,y=Math.imul(F0,H0),w=Math.imul(F0,E0),w=w+Math.imul(A0,H0)|0,f=Math.imul(A0,E0),y=y+Math.imul(I0,D0)|0,w=w+Math.imul(I0,C0)|0,w=w+Math.imul(J0,D0)|0,f=f+Math.imul(J0,C0)|0,y=y+Math.imul(U0,R0)|0,w=w+Math.imul(U0,P0)|0,w=w+Math.imul(X0,R0)|0,f=f+Math.imul(X0,P0)|0,y=y+Math.imul(Z0,M0)|0,w=w+Math.imul(Z0,S0)|0,w=w+Math.imul(G0,M0)|0,f=f+Math.imul(G0,S0)|0,y=y+Math.imul($0,q0)|0,w=w+Math.imul($0,j0)|0,w=w+Math.imul(Q0,q0)|0,f=f+Math.imul(Q0,j0)|0,y=y+Math.imul(r,g0)|0,w=w+Math.imul(r,N0)|0,w=w+Math.imul(e,g0)|0,f=f+Math.imul(e,N0)|0,y=y+Math.imul(t,_0)|0,w=w+Math.imul(t,B0)|0,w=w+Math.imul(m,_0)|0,f=f+Math.imul(m,B0)|0,y=y+Math.imul(u,w0)|0,w=w+Math.imul(u,f0)|0,w=w+Math.imul(n,w0)|0,f=f+Math.imul(n,f0)|0,y=y+Math.imul(b,c0)|0,w=w+Math.imul(b,h0)|0,w=w+Math.imul(l,c0)|0,f=f+Math.imul(l,h0)|0,y=y+Math.imul(c,b0)|0,w=w+Math.imul(c,l0)|0,w=w+Math.imul(h,b0)|0,f=f+Math.imul(h,l0)|0;var i0=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(i0>>>26)|0,i0&=67108863,y=Math.imul(F0,D0),w=Math.imul(F0,C0),w=w+Math.imul(A0,D0)|0,f=Math.imul(A0,C0),y=y+Math.imul(I0,R0)|0,w=w+Math.imul(I0,P0)|0,w=w+Math.imul(J0,R0)|0,f=f+Math.imul(J0,P0)|0,y=y+Math.imul(U0,M0)|0,w=w+Math.imul(U0,S0)|0,w=w+Math.imul(X0,M0)|0,f=f+Math.imul(X0,S0)|0,y=y+Math.imul(Z0,q0)|0,w=w+Math.imul(Z0,j0)|0,w=w+Math.imul(G0,q0)|0,f=f+Math.imul(G0,j0)|0,y=y+Math.imul($0,g0)|0,w=w+Math.imul($0,N0)|0,w=w+Math.imul(Q0,g0)|0,f=f+Math.imul(Q0,N0)|0,y=y+Math.imul(r,_0)|0,w=w+Math.imul(r,B0)|0,w=w+Math.imul(e,_0)|0,f=f+Math.imul(e,B0)|0,y=y+Math.imul(t,w0)|0,w=w+Math.imul(t,f0)|0,w=w+Math.imul(m,w0)|0,f=f+Math.imul(m,f0)|0,y=y+Math.imul(u,c0)|0,w=w+Math.imul(u,h0)|0,w=w+Math.imul(n,c0)|0,f=f+Math.imul(n,h0)|0,y=y+Math.imul(b,b0)|0,w=w+Math.imul(b,l0)|0,w=w+Math.imul(l,b0)|0,f=f+Math.imul(l,l0)|0;var $$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+($$>>>26)|0,$$&=67108863,y=Math.imul(F0,R0),w=Math.imul(F0,P0),w=w+Math.imul(A0,R0)|0,f=Math.imul(A0,P0),y=y+Math.imul(I0,M0)|0,w=w+Math.imul(I0,S0)|0,w=w+Math.imul(J0,M0)|0,f=f+Math.imul(J0,S0)|0,y=y+Math.imul(U0,q0)|0,w=w+Math.imul(U0,j0)|0,w=w+Math.imul(X0,q0)|0,f=f+Math.imul(X0,j0)|0,y=y+Math.imul(Z0,g0)|0,w=w+Math.imul(Z0,N0)|0,w=w+Math.imul(G0,g0)|0,f=f+Math.imul(G0,N0)|0,y=y+Math.imul($0,_0)|0,w=w+Math.imul($0,B0)|0,w=w+Math.imul(Q0,_0)|0,f=f+Math.imul(Q0,B0)|0,y=y+Math.imul(r,w0)|0,w=w+Math.imul(r,f0)|0,w=w+Math.imul(e,w0)|0,f=f+Math.imul(e,f0)|0,y=y+Math.imul(t,c0)|0,w=w+Math.imul(t,h0)|0,w=w+Math.imul(m,c0)|0,f=f+Math.imul(m,h0)|0,y=y+Math.imul(u,b0)|0,w=w+Math.imul(u,l0)|0,w=w+Math.imul(n,b0)|0,f=f+Math.imul(n,l0)|0;var Q$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,y=Math.imul(F0,M0),w=Math.imul(F0,S0),w=w+Math.imul(A0,M0)|0,f=Math.imul(A0,S0),y=y+Math.imul(I0,q0)|0,w=w+Math.imul(I0,j0)|0,w=w+Math.imul(J0,q0)|0,f=f+Math.imul(J0,j0)|0,y=y+Math.imul(U0,g0)|0,w=w+Math.imul(U0,N0)|0,w=w+Math.imul(X0,g0)|0,f=f+Math.imul(X0,N0)|0,y=y+Math.imul(Z0,_0)|0,w=w+Math.imul(Z0,B0)|0,w=w+Math.imul(G0,_0)|0,f=f+Math.imul(G0,B0)|0,y=y+Math.imul($0,w0)|0,w=w+Math.imul($0,f0)|0,w=w+Math.imul(Q0,w0)|0,f=f+Math.imul(Q0,f0)|0,y=y+Math.imul(r,c0)|0,w=w+Math.imul(r,h0)|0,w=w+Math.imul(e,c0)|0,f=f+Math.imul(e,h0)|0,y=y+Math.imul(t,b0)|0,w=w+Math.imul(t,l0)|0,w=w+Math.imul(m,b0)|0,f=f+Math.imul(m,l0)|0;var Y$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,y=Math.imul(F0,q0),w=Math.imul(F0,j0),w=w+Math.imul(A0,q0)|0,f=Math.imul(A0,j0),y=y+Math.imul(I0,g0)|0,w=w+Math.imul(I0,N0)|0,w=w+Math.imul(J0,g0)|0,f=f+Math.imul(J0,N0)|0,y=y+Math.imul(U0,_0)|0,w=w+Math.imul(U0,B0)|0,w=w+Math.imul(X0,_0)|0,f=f+Math.imul(X0,B0)|0,y=y+Math.imul(Z0,w0)|0,w=w+Math.imul(Z0,f0)|0,w=w+Math.imul(G0,w0)|0,f=f+Math.imul(G0,f0)|0,y=y+Math.imul($0,c0)|0,w=w+Math.imul($0,h0)|0,w=w+Math.imul(Q0,c0)|0,f=f+Math.imul(Q0,h0)|0,y=y+Math.imul(r,b0)|0,w=w+Math.imul(r,l0)|0,w=w+Math.imul(e,b0)|0,f=f+Math.imul(e,l0)|0;var Z$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,y=Math.imul(F0,g0),w=Math.imul(F0,N0),w=w+Math.imul(A0,g0)|0,f=Math.imul(A0,N0),y=y+Math.imul(I0,_0)|0,w=w+Math.imul(I0,B0)|0,w=w+Math.imul(J0,_0)|0,f=f+Math.imul(J0,B0)|0,y=y+Math.imul(U0,w0)|0,w=w+Math.imul(U0,f0)|0,w=w+Math.imul(X0,w0)|0,f=f+Math.imul(X0,f0)|0,y=y+Math.imul(Z0,c0)|0,w=w+Math.imul(Z0,h0)|0,w=w+Math.imul(G0,c0)|0,f=f+Math.imul(G0,h0)|0,y=y+Math.imul($0,b0)|0,w=w+Math.imul($0,l0)|0,w=w+Math.imul(Q0,b0)|0,f=f+Math.imul(Q0,l0)|0;var G$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(G$>>>26)|0,G$&=67108863,y=Math.imul(F0,_0),w=Math.imul(F0,B0),w=w+Math.imul(A0,_0)|0,f=Math.imul(A0,B0),y=y+Math.imul(I0,w0)|0,w=w+Math.imul(I0,f0)|0,w=w+Math.imul(J0,w0)|0,f=f+Math.imul(J0,f0)|0,y=y+Math.imul(U0,c0)|0,w=w+Math.imul(U0,h0)|0,w=w+Math.imul(X0,c0)|0,f=f+Math.imul(X0,h0)|0,y=y+Math.imul(Z0,b0)|0,w=w+Math.imul(Z0,l0)|0,w=w+Math.imul(G0,b0)|0,f=f+Math.imul(G0,l0)|0;var V$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(V$>>>26)|0,V$&=67108863,y=Math.imul(F0,w0),w=Math.imul(F0,f0),w=w+Math.imul(A0,w0)|0,f=Math.imul(A0,f0),y=y+Math.imul(I0,c0)|0,w=w+Math.imul(I0,h0)|0,w=w+Math.imul(J0,c0)|0,f=f+Math.imul(J0,h0)|0,y=y+Math.imul(U0,b0)|0,w=w+Math.imul(U0,l0)|0,w=w+Math.imul(X0,b0)|0,f=f+Math.imul(X0,l0)|0;var U$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(U$>>>26)|0,U$&=67108863,y=Math.imul(F0,c0),w=Math.imul(F0,h0),w=w+Math.imul(A0,c0)|0,f=Math.imul(A0,h0),y=y+Math.imul(I0,b0)|0,w=w+Math.imul(I0,l0)|0,w=w+Math.imul(J0,b0)|0,f=f+Math.imul(J0,l0)|0;var X$=(B+y|0)+((w&8191)<<13)|0;B=(f+(w>>>13)|0)+(X$>>>26)|0,X$&=67108863,y=Math.imul(F0,b0),w=Math.imul(F0,l0),w=w+Math.imul(A0,b0)|0,f=Math.imul(A0,l0);var K$=(B+y|0)+((w&8191)<<13)|0;return B=(f+(w>>>13)|0)+(K$>>>26)|0,K$&=67108863,_[0]=o0,_[1]=u0,_[2]=n0,_[3]=s0,_[4]=t0,_[5]=m0,_[6]=a0,_[7]=r0,_[8]=e0,_[9]=i0,_[10]=$$,_[11]=Q$,_[12]=Y$,_[13]=Z$,_[14]=G$,_[15]=V$,_[16]=U$,_[17]=X$,_[18]=K$,B!==0&&(_[19]=B,g.length++),g};Math.imul||(E=H);function T(j,k,g){g.negative=k.negative^j.negative,g.length=j.length+k.length;for(var N=0,x=0,_=0;_>>26)|0,x+=B>>>26,B&=67108863}g.words[_]=y,N=B,B=x}return N!==0?g.words[_]=N:g.length--,g.strip()}function D(j,k,g){var N=new C;return N.mulp(j,k,g)}U.prototype.mulTo=function(j,k){var g,N=this.length+j.length;return this.length===10&&j.length===10?g=E(this,j,k):N<63?g=H(this,j,k):N<1024?g=T(this,j,k):g=D(this,j,k),g};function C(j,k){this.x=j,this.y=k}C.prototype.makeRBT=function(j){for(var k=new Array(j),g=U.prototype._countBits(j)-1,N=0;N>=1;return N},C.prototype.permute=function(j,k,g,N,x,_){for(var B=0;B<_;B++)N[B]=k[j[B]],x[B]=g[j[B]]},C.prototype.transform=function(j,k,g,N,x,_){this.permute(_,j,k,g,N,x);for(var B=1;B>>1)x++;return 1<>>13,g[2*_+1]=x&8191,x=x>>>13;for(_=2*k;_>=26,k+=N/67108864|0,k+=x>>>26,this.words[g]=x&67108863}return k!==0&&(this.words[g]=k,this.length++),this},U.prototype.muln=function(j){return this.clone().imuln(j)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(j){var k=W(j);if(k.length===0)return new U(1);for(var g=this,N=0;N=0);var k=j%26,g=(j-k)/26,N=67108863>>>26-k<<26-k,x;if(k!==0){var _=0;for(x=0;x>>26-k}_&&(this.words[x]=_,this.length++)}if(g!==0){for(x=this.length-1;x>=0;x--)this.words[x+g]=this.words[x];for(x=0;x=0);var N;k?N=(k-k%26)/26:N=0;var x=j%26,_=Math.min((j-x)/26,this.length),B=67108863^67108863>>>x<_)for(this.length-=_,w=0;w=0&&(f!==0||w>=N);w--){var p=this.words[w]|0;this.words[w]=f<<26-x|p>>>x,f=p&B}return y&&f!==0&&(y.words[y.length++]=f),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},U.prototype.ishrn=function(j,k,g){return G(this.negative===0),this.iushrn(j,k,g)},U.prototype.shln=function(j){return this.clone().ishln(j)},U.prototype.ushln=function(j){return this.clone().iushln(j)},U.prototype.shrn=function(j){return this.clone().ishrn(j)},U.prototype.ushrn=function(j){return this.clone().iushrn(j)},U.prototype.testn=function(j){G(typeof j=="number"&&j>=0);var k=j%26,g=(j-k)/26,N=1<=0);var k=j%26,g=(j-k)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(k!==0&&g++,this.length=Math.min(g,this.length),k!==0){var N=67108863^67108863>>>k<=67108864;k++)this.words[k]-=67108864,k===this.length-1?this.words[k+1]=1:this.words[k+1]++;return this.length=Math.max(this.length,k+1),this},U.prototype.isubn=function(j){if(G(typeof j=="number"),G(j<67108864),j<0)return this.iaddn(-j);if(this.negative!==0)return this.negative=0,this.iaddn(j),this.negative=1,this;if(this.words[0]-=j,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var k=0;k>26)-(y/67108864|0),this.words[x+g]=_&67108863}for(;x>26,this.words[x+g]=_&67108863;if(B===0)return this.strip();for(G(B===-1),B=0,x=0;x>26,this.words[x]=_&67108863;return this.negative=1,this.strip()},U.prototype._wordDiv=function(j,k){var g=this.length-j.length,N=this.clone(),x=j,_=x.words[x.length-1]|0,B=this._countBits(_);g=26-B,g!==0&&(x=x.ushln(g),N.iushln(g),_=x.words[x.length-1]|0);var y=N.length-x.length,w;if(k!=="mod"){w=new U(null),w.length=y+1,w.words=new Array(w.length);for(var f=0;f=0;c--){var h=(N.words[x.length+c]|0)*67108864+(N.words[x.length+c-1]|0);for(h=Math.min(h/_|0,67108863),N._ishlnsubmul(x,h,c);N.negative!==0;)h--,N.negative=0,N._ishlnsubmul(x,1,c),N.isZero()||(N.negative^=1);w&&(w.words[c]=h)}return w&&w.strip(),N.strip(),k!=="div"&&g!==0&&N.iushrn(g),{div:w||null,mod:N}},U.prototype.divmod=function(j,k,g){if(G(!j.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var N,x,_;return this.negative!==0&&j.negative===0?(_=this.neg().divmod(j,k),k!=="mod"&&(N=_.div.neg()),k!=="div"&&(x=_.mod.neg(),g&&x.negative!==0&&x.iadd(j)),{div:N,mod:x}):this.negative===0&&j.negative!==0?(_=this.divmod(j.neg(),k),k!=="mod"&&(N=_.div.neg()),{div:N,mod:_.mod}):(this.negative&j.negative)!==0?(_=this.neg().divmod(j.neg(),k),k!=="div"&&(x=_.mod.neg(),g&&x.negative!==0&&x.isub(j)),{div:_.div,mod:x}):j.length>this.length||this.cmp(j)<0?{div:new U(0),mod:this}:j.length===1?k==="div"?{div:this.divn(j.words[0]),mod:null}:k==="mod"?{div:null,mod:new U(this.modn(j.words[0]))}:{div:this.divn(j.words[0]),mod:new U(this.modn(j.words[0]))}:this._wordDiv(j,k)},U.prototype.div=function(j){return this.divmod(j,"div",!1).div},U.prototype.mod=function(j){return this.divmod(j,"mod",!1).mod},U.prototype.umod=function(j){return this.divmod(j,"mod",!0).mod},U.prototype.divRound=function(j){var k=this.divmod(j);if(k.mod.isZero())return k.div;var g=k.div.negative!==0?k.mod.isub(j):k.mod,N=j.ushrn(1),x=j.andln(1),_=g.cmp(N);return _<0||x===1&&_===0?k.div:k.div.negative!==0?k.div.isubn(1):k.div.iaddn(1)},U.prototype.modn=function(j){G(j<=67108863);for(var k=(1<<26)%j,g=0,N=this.length-1;N>=0;N--)g=(k*g+(this.words[N]|0))%j;return g},U.prototype.idivn=function(j){G(j<=67108863);for(var k=0,g=this.length-1;g>=0;g--){var N=(this.words[g]|0)+k*67108864;this.words[g]=N/j|0,k=N%j}return this.strip()},U.prototype.divn=function(j){return this.clone().idivn(j)},U.prototype.egcd=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var N=new U(1),x=new U(0),_=new U(0),B=new U(1),y=0;k.isEven()&&g.isEven();)k.iushrn(1),g.iushrn(1),++y;for(var w=g.clone(),f=k.clone();!k.isZero();){for(var p=0,c=1;(k.words[0]&c)===0&&p<26;++p,c<<=1);if(p>0)for(k.iushrn(p);p-- >0;)(N.isOdd()||x.isOdd())&&(N.iadd(w),x.isub(f)),N.iushrn(1),x.iushrn(1);for(var h=0,d=1;(g.words[0]&d)===0&&h<26;++h,d<<=1);if(h>0)for(g.iushrn(h);h-- >0;)(_.isOdd()||B.isOdd())&&(_.iadd(w),B.isub(f)),_.iushrn(1),B.iushrn(1);k.cmp(g)>=0?(k.isub(g),N.isub(_),x.isub(B)):(g.isub(k),_.isub(N),B.isub(x))}return{a:_,b:B,gcd:g.iushln(y)}},U.prototype._invmp=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var N=new U(1),x=new U(0),_=g.clone();k.cmpn(1)>0&&g.cmpn(1)>0;){for(var B=0,y=1;(k.words[0]&y)===0&&B<26;++B,y<<=1);if(B>0)for(k.iushrn(B);B-- >0;)N.isOdd()&&N.iadd(_),N.iushrn(1);for(var w=0,f=1;(g.words[0]&f)===0&&w<26;++w,f<<=1);if(w>0)for(g.iushrn(w);w-- >0;)x.isOdd()&&x.iadd(_),x.iushrn(1);k.cmp(g)>=0?(k.isub(g),N.isub(x)):(g.isub(k),x.isub(N))}var p;return k.cmpn(1)===0?p=N:p=x,p.cmpn(0)<0&&p.iadd(j),p},U.prototype.gcd=function(j){if(this.isZero())return j.abs();if(j.isZero())return this.abs();var k=this.clone(),g=j.clone();k.negative=0,g.negative=0;for(var N=0;k.isEven()&&g.isEven();N++)k.iushrn(1),g.iushrn(1);do{for(;k.isEven();)k.iushrn(1);for(;g.isEven();)g.iushrn(1);var x=k.cmp(g);if(x<0){var _=k;k=g,g=_}else if(x===0||g.cmpn(1)===0)break;k.isub(g)}while(!0);return g.iushln(N)},U.prototype.invm=function(j){return this.egcd(j).a.umod(j)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(j){return this.words[0]&j},U.prototype.bincn=function(j){G(typeof j=="number");var k=j%26,g=(j-k)/26,N=1<>>26,B&=67108863,this.words[_]=B}return x!==0&&(this.words[_]=x,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(j){var k=j<0;if(this.negative!==0&&!k)return-1;if(this.negative===0&&k)return 1;this.strip();var g;if(this.length>1)g=1;else{k&&(j=-j),G(j<=67108863,"Number is too big");var N=this.words[0]|0;g=N===j?0:Nj.length)return 1;if(this.length=0;g--){var N=this.words[g]|0,x=j.words[g]|0;if(N!==x){Nx&&(k=1);break}}return k},U.prototype.gtn=function(j){return this.cmpn(j)===1},U.prototype.gt=function(j){return this.cmp(j)===1},U.prototype.gten=function(j){return this.cmpn(j)>=0},U.prototype.gte=function(j){return this.cmp(j)>=0},U.prototype.ltn=function(j){return this.cmpn(j)===-1},U.prototype.lt=function(j){return this.cmp(j)===-1},U.prototype.lten=function(j){return this.cmpn(j)<=0},U.prototype.lte=function(j){return this.cmp(j)<=0},U.prototype.eqn=function(j){return this.cmpn(j)===0},U.prototype.eq=function(j){return this.cmp(j)===0},U.red=function(j){return new v(j)},U.prototype.toRed=function(j){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),j.convertTo(this)._forceRed(j)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(j){return this.red=j,this},U.prototype.forceRed=function(j){return G(!this.red,"Already a number in reduction context"),this._forceRed(j)},U.prototype.redAdd=function(j){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,j)},U.prototype.redIAdd=function(j){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,j)},U.prototype.redSub=function(j){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,j)},U.prototype.redISub=function(j){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,j)},U.prototype.redShl=function(j){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,j)},U.prototype.redMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.mul(this,j)},U.prototype.redIMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.imul(this,j)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(j){return G(this.red&&!j.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,j)};var L={k256:null,p224:null,p192:null,p25519:null};function R(j,k){this.name=j,this.p=new U(k,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}R.prototype._tmp=function(){var j=new U(null);return j.words=new Array(Math.ceil(this.n/13)),j},R.prototype.ireduce=function(j){var k=j,g;do this.split(k,this.tmp),k=this.imulK(k),k=k.iadd(this.tmp),g=k.bitLength();while(g>this.n);var N=g0?k.isub(this.p):k.strip!==void 0?k.strip():k._strip(),k},R.prototype.split=function(j,k){j.iushrn(this.n,0,k)},R.prototype.imulK=function(j){return j.imul(this.k)};function P(){R.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(P,R),P.prototype.split=function(j,k){for(var g=4194303,N=Math.min(j.length,9),x=0;x>>22,_=B}_>>>=22,j.words[x-10]=_,_===0&&j.length>10?j.length-=10:j.length-=9},P.prototype.imulK=function(j){j.words[j.length]=0,j.words[j.length+1]=0,j.length+=2;for(var k=0,g=0;g>>=26,j.words[g]=x,k=N}return k!==0&&(j.words[j.length++]=k),j},U._prime=function(j){if(L[j])return L[j];var k;if(j==="k256")k=new P;else if(j==="p224")k=new z;else if(j==="p192")k=new M;else if(j==="p25519")k=new S;else throw new Error("Unknown prime "+j);return L[j]=k,k};function v(j){if(typeof j=="string"){var k=U._prime(j);this.m=k.p,this.prime=k}else G(j.gtn(1),"modulus must be greater than 1"),this.m=j,this.prime=null}v.prototype._verify1=function(j){G(j.negative===0,"red works only with positives"),G(j.red,"red works only with red numbers")},v.prototype._verify2=function(j,k){G((j.negative|k.negative)===0,"red works only with positives"),G(j.red&&j.red===k.red,"red works only with red numbers")},v.prototype.imod=function(j){return this.prime?this.prime.ireduce(j)._forceRed(this):j.umod(this.m)._forceRed(this)},v.prototype.neg=function(j){return j.isZero()?j.clone():this.m.sub(j)._forceRed(this)},v.prototype.add=function(j,k){this._verify2(j,k);var g=j.add(k);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},v.prototype.iadd=function(j,k){this._verify2(j,k);var g=j.iadd(k);return g.cmp(this.m)>=0&&g.isub(this.m),g},v.prototype.sub=function(j,k){this._verify2(j,k);var g=j.sub(k);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},v.prototype.isub=function(j,k){this._verify2(j,k);var g=j.isub(k);return g.cmpn(0)<0&&g.iadd(this.m),g},v.prototype.shl=function(j,k){return this._verify1(j),this.imod(j.ushln(k))},v.prototype.imul=function(j,k){return this._verify2(j,k),this.imod(j.imul(k))},v.prototype.mul=function(j,k){return this._verify2(j,k),this.imod(j.mul(k))},v.prototype.isqr=function(j){return this.imul(j,j.clone())},v.prototype.sqr=function(j){return this.mul(j,j)},v.prototype.sqrt=function(j){if(j.isZero())return j.clone();var k=this.m.andln(3);if(G(k%2===1),k===3){var g=this.m.add(new U(1)).iushrn(2);return this.pow(j,g)}for(var N=this.m.subn(1),x=0;!N.isZero()&&N.andln(1)===0;)x++,N.iushrn(1);G(!N.isZero());var _=new U(1).toRed(this),B=_.redNeg(),y=this.m.subn(1).iushrn(1),w=this.m.bitLength();for(w=new U(2*w*w).toRed(this);this.pow(w,y).cmp(B)!==0;)w.redIAdd(B);for(var f=this.pow(w,N),p=this.pow(j,N.addn(1).iushrn(1)),c=this.pow(j,N),h=x;c.cmp(_)!==0;){for(var d=c,b=0;d.cmp(_)!==0;b++)d=d.redSqr();G(b=0;x--){for(var f=k.words[x],p=w-1;p>=0;p--){var c=f>>p&1;if(_!==N[0]&&(_=this.sqr(_)),c===0&&B===0){y=0;continue}B<<=1,B|=c,y++,!(y!==g&&(x!==0||p!==0))&&(_=this.mul(_,N[B]),y=0,B=0)}w=26}return _},v.prototype.convertTo=function(j){var k=j.umod(this.m);return k===j?k.clone():k},v.prototype.convertFrom=function(j){var k=j.clone();return k.red=null,k},U.mont=function(j){return new q(j)};function q(j){v.call(this,j),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(q,v),q.prototype.convertTo=function(j){return this.imod(j.ushln(this.shift))},q.prototype.convertFrom=function(j){var k=this.imod(j.mul(this.rinv));return k.red=null,k},q.prototype.imul=function(j,k){if(j.isZero()||k.isZero())return j.words[0]=0,j.length=1,j;var g=j.imul(k),N=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),x=g.isub(N).iushrn(this.shift),_=x;return x.cmp(this.m)>=0?_=x.isub(this.m):x.cmpn(0)<0&&(_=x.iadd(this.m)),_._forceRed(this)},q.prototype.mul=function(j,k){if(j.isZero()||k.isZero())return new U(0)._forceRed(this);var g=j.mul(k),N=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),x=g.isub(N).iushrn(this.shift),_=x;return x.cmp(this.m)>=0?_=x.isub(this.m):x.cmpn(0)<0&&(_=x.iadd(this.m)),_._forceRed(this)},q.prototype.invm=function(j){var k=this.imod(j._invmp(this.m).mul(this.r2));return k._forceRed(this)}})(typeof Q>"u"||Q,$)}}),{CryptoHasher:oY}=globalThis.Bun,uY=z$({"node_modules/public-encrypt/withPublic.js"($,Q){var Y=lY(),Z=S$().Buffer;function G(V,U){return Z.from(V.toRed(Y.mont(U.modulus)).redPow(new Y(U.publicExponent)).fromRed().toArray())}Q.exports=G}}),nY=z$({"node_modules/public-encrypt/publicEncrypt.js"($,Q){var Y=BY(),Z=v$(),G=d$(),V=dY(),U=bY(),X=lY(),K=uY(),I=fQ(),J=S$().Buffer;Q.exports=function(W,H,E){var T;W.padding?T=W.padding:E?T=1:T=4;var D=Y(W),C;if(T===4)C=O(D,H);else if(T===1)C=F(D,H,E);else if(T===3){if(C=new X(H),C.cmp(D.modulus)>=0)throw new Error("data too long for modulus")}else throw new Error("unknown padding");return E?I(C,D):K(C,D)};function O(W,H){var E=W.modulus.byteLength(),T=H.length,D=G("sha1").update(J.alloc(0)).digest(),C=D.length,L=2*C;if(T>E-L-2)throw new Error("message too long");var R=J.alloc(E-T-L-2),P=E-C-1,z=Z(C),M=U(J.concat([D,R,J.alloc(1,1),H],P),V(z,P)),S=U(z,V(M,C));return new X(J.concat([J.alloc(1),S,M],E))}function F(W,H,E){var T=H.length,D=W.modulus.byteLength();if(T>D-11)throw new Error("message too long");var C;return E?C=J.alloc(D-T-3,255):C=A(D-T-3),new X(J.concat([J.from([0,E?1:2]),C,J.alloc(1),H],D))}function A(W){for(var H=J.allocUnsafe(W),E=0,T=Z(W*2),D=0,C;ED||new V(W).cmp(T.modulus)>=0)throw new Error("decryption error");var C;H?C=K(new V(W),T):C=U(W,T);var L=I.alloc(D-C.length);if(C=I.concat([L,C],D),E===4)return J(T,C);if(E===1)return O(T,C,H);if(E===3)return C;throw new Error("unknown padding")};function J(A,W){var H=A.modulus.byteLength(),E=X("sha1").update(I.alloc(0)).digest(),T=E.length;if(W[0]!==0)throw new Error("decryption error");var D=W.slice(1,T+1),C=W.slice(T+1),L=G(D,Z(C,T)),R=G(C,Z(L,H-T-1));if(F(E,R.slice(0,T)))throw new Error("decryption error");for(var P=T;R[P]===0;)P++;if(R[P++]!==1)throw new Error("decryption error");return R.slice(P)}function O(A,W,H){for(var E=W.slice(0,2),T=2,D=0;W[T++]!==0;)if(T>=W.length){D++;break}var C=W.slice(2,T-1);if((E.toString("hex")!=="0002"&&!H||E.toString("hex")!=="0001"&&H)&&D++,C.length<8&&D++,D)throw new Error("decryption error");return W.slice(T)}function F(A,W){A=I.from(A),W=I.from(W);var H=0,E=A.length;A.length!==W.length&&(H++,E=Math.min(A.length,W.length));for(var T=-1;++TV||O<0)throw new TypeError("offset must be a uint32");if(O>G||O>F)throw new RangeError("offset out of range")}function X(O,F,A){if(typeof O!="number"||O!==O)throw new TypeError("size must be a number");if(O>V||O<0)throw new TypeError("size must be a uint32");if(O+F>A||O>G)throw new RangeError("buffer too small")}$.randomFill=K,$.randomFillSync=J;function K(O,F,A,W){if(!Z.isBuffer(O)&&!(O instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if(typeof F=="function")W=F,F=0,A=O.length;else if(typeof A=="function")W=A,A=O.length-F;else if(typeof W!="function")throw new TypeError('"cb" argument must be a function');return U(F,O.length),X(A,F,O.length),I(O,F,A,W)}function I(O,F,A,W){if(W){Y(A,function(E,T){if(E)return W(E);T.copy(O,F),W(null,O)});return}var H=Y(A);return H.copy(O,F),O}function J(O,F,A){if(typeof F>"u"&&(F=0),!Z.isBuffer(O)&&!(O instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return U(F,O.length),A===void 0&&(A=O.length-F),X(A,F,O.length),I(O,F,A)}}}),aY=z$({"node_modules/crypto-browserify/index.js"($){$.randomBytes=$.rng=$.pseudoRandomBytes=$.prng=v$(),$.createHash=d$(),$.Hash=$.createHash.Hash,$.createHmac=$.Hmac=o$();var Q=n$(),Y=Object.keys(Q),Z=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(Y);$.getHashes=function(){return Z};var G=e$();$.pbkdf2=G.pbkdf2,$.pbkdf2Sync=G.pbkdf2Sync;var V=vQ();$.Cipher=V.Cipher,$.createCipher=V.createCipher,$.Cipheriv=V.Cipheriv,$.createCipheriv=V.createCipheriv,$.Decipher=V.Decipher,$.createDecipher=V.createDecipher,$.Decipheriv=V.Decipheriv,$.createDecipheriv=V.createDecipheriv,$.getCiphers=V.getCiphers,$.listCiphers=V.listCiphers;var U=yQ();$.DiffieHellmanGroup=U.DiffieHellmanGroup,$.createDiffieHellmanGroup=U.createDiffieHellmanGroup,$.getDiffieHellman=U.getDiffieHellman,$.createDiffieHellman=U.createDiffieHellman,$.DiffieHellman=U.DiffieHellman;var X=pY();$.createSign=X.createSign,$.Sign=X.Sign,$.createVerify=X.createVerify,$.Verify=X.Verify,$.createECDH=hY();var K=tY();$.publicEncrypt=K.publicEncrypt,$.privateEncrypt=K.privateEncrypt,$.publicDecrypt=K.publicDecrypt,$.privateDecrypt=K.privateDecrypt,$.getRandomValues=(J)=>F$.getRandomValues(J);var I=mY();$.randomFill=I.randomFill,$.randomFillSync=I.randomFillSync,$.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join(` -`))},$.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}}}),rY={...aY(),[Symbol.for("CommonJS")]:0},H$="buffer",eY=($)=>F$.getRandomValues($),iY=()=>F$.randomUUID(),E$="timingSafeEqual"in F$?($,Q)=>{let{byteLength:Y}=$,{byteLength:Z}=Q;if(typeof Y!="number"||typeof Z!="number")throw new TypeError("Input must be an array buffer view");if(Y!==Z)throw new RangeError("Input buffers must have the same length");return F$.timingSafeEqual($,Q)}:void 0,$Z="scryptSync"in F$?($,Q,Y,Z)=>{let G=F$.scryptSync($,Q,Y,Z);return H$!=="buffer"?new Buffer(G).toString(H$):new Buffer(G)}:void 0,QZ="scryptSync"in F$?function($,Q,Y,Z,G){if(typeof Z=="function"&&(G=Z,Z=void 0),typeof G!="function"){var V=new TypeError("callback must be a function");throw V.code="ERR_INVALID_CALLBACK",V}try{let U=F$.scryptSync($,Q,Y,Z);process.nextTick(G,null,H$!=="buffer"?new Buffer(U).toString(H$):new Buffer(U))}catch(U){throw U}}:void 0;E$&&(Object.defineProperty(E$,"name",{value:"::bunternal::"}),Object.defineProperty(QZ,"name",{value:"::bunternal::"}),Object.defineProperty($Z,"name",{value:"::bunternal::"}));var T$=F$;M$(rY,{DEFAULT_ENCODING:()=>H$,getRandomValues:()=>eY,randomUUID:()=>iY,scrypt:()=>QZ,scryptSync:()=>$Z,timingSafeEqual:()=>E$,webcrypto:()=>T$,subtle:()=>T$.subtle});var{randomBytes:YZ,rng:ZZ,pseudoRandomBytes:GZ,prng:VZ,Hash:UZ,createHash:XZ,createHmac:KZ,Hmac:IZ,getHashes:JZ,pbkdf2:OZ,pbkdf2Sync:FZ,Cipher:AZ,createCipher:WZ,Cipheriv:HZ,createCipheriv:EZ,Decipher:TZ,createDecipher:DZ,Decipheriv:CZ,createDecipheriv:LZ,getCiphers:RZ,listCiphers:PZ,DiffieHellmanGroup:zZ,createDiffieHellmanGroup:MZ,getDiffieHellman:SZ,createDiffieHellman:vZ,DiffieHellman:qZ,createSign:jZ,Sign:kZ,createVerify:gZ,Verify:NZ,createECDH:xZ,publicEncrypt:_Z,privateEncrypt:BZ,publicDecrypt:yZ,privateDecrypt:wZ,randomFill:fZ,randomFillSync:pZ,createCredentials:cZ,constants:hZ}=rY;var bZ=rY;/*! safe-buffer. MIT License. Feross Aboukhadijeh */export{T$ as webcrypto,E$ as timingSafeEqual,$Z as scryptSync,QZ as scrypt,ZZ as rng,iY as randomUUID,pZ as randomFillSync,fZ as randomFill,YZ as randomBytes,_Z as publicEncrypt,yZ as publicDecrypt,GZ as pseudoRandomBytes,VZ as prng,BZ as privateEncrypt,wZ as privateDecrypt,FZ as pbkdf2Sync,OZ as pbkdf2,PZ as listCiphers,eY as getRandomValues,JZ as getHashes,SZ as getDiffieHellman,RZ as getCiphers,bZ as default,gZ as createVerify,jZ as createSign,KZ as createHmac,XZ as createHash,xZ as createECDH,MZ as createDiffieHellmanGroup,vZ as createDiffieHellman,LZ as createDecipheriv,DZ as createDecipher,cZ as createCredentials,EZ as createCipheriv,WZ as createCipher,hZ as constants,NZ as Verify,kZ as Sign,IZ as Hmac,UZ as Hash,zZ as DiffieHellmanGroup,qZ as DiffieHellman,CZ as Decipheriv,TZ as Decipher,H$ as DEFAULT_ENCODING,HZ as Cipheriv,AZ as Cipher}; +var T$=Object.defineProperty;var D$=Object.getOwnPropertyNames;var C$=536870888,L$=(bZ)=>import.meta.require(bZ),O$=globalThis.crypto,R$=O$;var P$=(bZ,$)=>function(){return $||(0,bZ[D$(bZ)[0]])(($={exports:{}}).exports,$),$.exports},z$=(bZ,$)=>{for(var Q in $)T$(bZ,Q,{get:$[Q],enumerable:!0})};var M$=P$({"node_modules/safe-buffer/index.js"(bZ,$){var Q=L$("buffer"),Y=Q.Buffer;function Z(V,U){for(var X in V)U[X]=V[X]}Y.from&&Y.alloc&&Y.allocUnsafe&&Y.allocUnsafeSlow?$.exports=Q:(Z(Q,bZ),bZ.Buffer=G);function G(V,U,X){return Y(V,U,X)}G.prototype=Object.create(Y.prototype),Z(Y,G),G.from=function(V,U,X){if(typeof V=="number")throw new TypeError("Argument must not be a number");return Y(V,U,X)},G.alloc=function(V,U,X){if(typeof V!="number")throw new TypeError("Argument must be a number");var K=Y(V);return U!==void 0?typeof X=="string"?K.fill(U,X):K.fill(U):K.fill(0),K},G.allocUnsafe=function(V){if(typeof V!="number")throw new TypeError("Argument must be a number");return Y(V)},G.allocUnsafeSlow=function(V){if(typeof V!="number")throw new TypeError("Argument must be a number");return Q.SlowBuffer(V)}}}),S$=P$({"node_modules/randombytes/browser.js"(bZ,$){var Q=65536,Y=4294967295;function Z(){throw new Error(`Secure random number generation is not supported by this browser. +Use Chrome, Firefox or Internet Explorer 11`)}var G=M$().Buffer,V=R$;V&&V.getRandomValues?$.exports=U:$.exports=Z;function U(X,K){if(X>Y)throw new RangeError("requested too many random bytes");var I=G.allocUnsafe(X);if(X>0)if(X>Q)for(var J=0;J=this._blockSize;){for(var J=this._blockOffset;J0;++O)this._length[O]+=F,F=this._length[O]/4294967296|0,F>0&&(this._length[O]-=4294967296*F);return this},V.prototype._update=function(){throw new Error("_update is not implemented")},V.prototype.digest=function(U){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var X=this._digest();U!==void 0&&(X=X.toString(U)),this._block.fill(0),this._blockOffset=0;for(var K=0;K<4;++K)this._length[K]=0;return X},V.prototype._digest=function(){throw new Error("_digest is not implemented")},$.exports=V}}),j$=P$({"node_modules/md5.js/index.js"(bZ,$){var Q=v$(),Y=q$(),Z=M$().Buffer,G=new Array(16);function V(){Y.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}Q(V,Y),V.prototype._update=function(){for(var O=G,F=0;F<16;++F)O[F]=this._block.readInt32LE(F*4);var A=this._a,W=this._b,H=this._c,E=this._d;A=X(A,W,H,E,O[0],3614090360,7),E=X(E,A,W,H,O[1],3905402710,12),H=X(H,E,A,W,O[2],606105819,17),W=X(W,H,E,A,O[3],3250441966,22),A=X(A,W,H,E,O[4],4118548399,7),E=X(E,A,W,H,O[5],1200080426,12),H=X(H,E,A,W,O[6],2821735955,17),W=X(W,H,E,A,O[7],4249261313,22),A=X(A,W,H,E,O[8],1770035416,7),E=X(E,A,W,H,O[9],2336552879,12),H=X(H,E,A,W,O[10],4294925233,17),W=X(W,H,E,A,O[11],2304563134,22),A=X(A,W,H,E,O[12],1804603682,7),E=X(E,A,W,H,O[13],4254626195,12),H=X(H,E,A,W,O[14],2792965006,17),W=X(W,H,E,A,O[15],1236535329,22),A=K(A,W,H,E,O[1],4129170786,5),E=K(E,A,W,H,O[6],3225465664,9),H=K(H,E,A,W,O[11],643717713,14),W=K(W,H,E,A,O[0],3921069994,20),A=K(A,W,H,E,O[5],3593408605,5),E=K(E,A,W,H,O[10],38016083,9),H=K(H,E,A,W,O[15],3634488961,14),W=K(W,H,E,A,O[4],3889429448,20),A=K(A,W,H,E,O[9],568446438,5),E=K(E,A,W,H,O[14],3275163606,9),H=K(H,E,A,W,O[3],4107603335,14),W=K(W,H,E,A,O[8],1163531501,20),A=K(A,W,H,E,O[13],2850285829,5),E=K(E,A,W,H,O[2],4243563512,9),H=K(H,E,A,W,O[7],1735328473,14),W=K(W,H,E,A,O[12],2368359562,20),A=I(A,W,H,E,O[5],4294588738,4),E=I(E,A,W,H,O[8],2272392833,11),H=I(H,E,A,W,O[11],1839030562,16),W=I(W,H,E,A,O[14],4259657740,23),A=I(A,W,H,E,O[1],2763975236,4),E=I(E,A,W,H,O[4],1272893353,11),H=I(H,E,A,W,O[7],4139469664,16),W=I(W,H,E,A,O[10],3200236656,23),A=I(A,W,H,E,O[13],681279174,4),E=I(E,A,W,H,O[0],3936430074,11),H=I(H,E,A,W,O[3],3572445317,16),W=I(W,H,E,A,O[6],76029189,23),A=I(A,W,H,E,O[9],3654602809,4),E=I(E,A,W,H,O[12],3873151461,11),H=I(H,E,A,W,O[15],530742520,16),W=I(W,H,E,A,O[2],3299628645,23),A=J(A,W,H,E,O[0],4096336452,6),E=J(E,A,W,H,O[7],1126891415,10),H=J(H,E,A,W,O[14],2878612391,15),W=J(W,H,E,A,O[5],4237533241,21),A=J(A,W,H,E,O[12],1700485571,6),E=J(E,A,W,H,O[3],2399980690,10),H=J(H,E,A,W,O[10],4293915773,15),W=J(W,H,E,A,O[1],2240044497,21),A=J(A,W,H,E,O[8],1873313359,6),E=J(E,A,W,H,O[15],4264355552,10),H=J(H,E,A,W,O[6],2734768916,15),W=J(W,H,E,A,O[13],1309151649,21),A=J(A,W,H,E,O[4],4149444226,6),E=J(E,A,W,H,O[11],3174756917,10),H=J(H,E,A,W,O[2],718787259,15),W=J(W,H,E,A,O[9],3951481745,21),this._a=this._a+A|0,this._b=this._b+W|0,this._c=this._c+H|0,this._d=this._d+E|0},V.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var O=Z.allocUnsafe(16);return O.writeInt32LE(this._a,0),O.writeInt32LE(this._b,4),O.writeInt32LE(this._c,8),O.writeInt32LE(this._d,12),O};function U(O,F){return O<>>32-F}function X(O,F,A,W,H,E,T){return U(O+(F&A|~F&W)+H+E|0,T)+F|0}function K(O,F,A,W,H,E,T){return U(O+(F&W|A&~W)+H+E|0,T)+F|0}function I(O,F,A,W,H,E,T){return U(O+(F^A^W)+H+E|0,T)+F|0}function J(O,F,A,W,H,E,T){return U(O+(A^(F|~W))+H+E|0,T)+F|0}$.exports=V}}),k$=P$({"node_modules/ripemd160/index.js"(bZ,$){var Q=L$("buffer").Buffer,Y=v$(),Z=q$(),G=new Array(16),V=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],U=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],X=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],K=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],I=[0,1518500249,1859775393,2400959708,2840853838],J=[1352829926,1548603684,1836072691,2053994217,0];function O(){Z.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}Y(O,Z),O.prototype._update=function(){for(var D=G,C=0;C<16;++C)D[C]=this._block.readInt32LE(C*4);for(var L=this._a|0,R=this._b|0,P=this._c|0,z=this._d|0,M=this._e|0,S=this._a|0,v=this._b|0,q=this._c|0,j=this._d|0,k=this._e|0,g=0;g<80;g+=1){var N,x;g<16?(N=A(L,R,P,z,M,D[V[g]],I[0],X[g]),x=T(S,v,q,j,k,D[U[g]],J[0],K[g])):g<32?(N=W(L,R,P,z,M,D[V[g]],I[1],X[g]),x=E(S,v,q,j,k,D[U[g]],J[1],K[g])):g<48?(N=H(L,R,P,z,M,D[V[g]],I[2],X[g]),x=H(S,v,q,j,k,D[U[g]],J[2],K[g])):g<64?(N=E(L,R,P,z,M,D[V[g]],I[3],X[g]),x=W(S,v,q,j,k,D[U[g]],J[3],K[g])):(N=T(L,R,P,z,M,D[V[g]],I[4],X[g]),x=A(S,v,q,j,k,D[U[g]],J[4],K[g])),L=M,M=z,z=F(P,10),P=R,R=N,S=k,k=j,j=F(q,10),q=v,v=x}var _=this._b+P+j|0;this._b=this._c+z+k|0,this._c=this._d+M+S|0,this._d=this._e+L+v|0,this._e=this._a+R+q|0,this._a=_},O.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var D=Q.alloc?Q.alloc(20):new Q(20);return D.writeInt32LE(this._a,0),D.writeInt32LE(this._b,4),D.writeInt32LE(this._c,8),D.writeInt32LE(this._d,12),D.writeInt32LE(this._e,16),D};function F(D,C){return D<>>32-C}function A(D,C,L,R,P,z,M,S){return F(D+(C^L^R)+z+M|0,S)+P|0}function W(D,C,L,R,P,z,M,S){return F(D+(C&L|~C&R)+z+M|0,S)+P|0}function H(D,C,L,R,P,z,M,S){return F(D+((C|~L)^R)+z+M|0,S)+P|0}function E(D,C,L,R,P,z,M,S){return F(D+(C&R|L&~R)+z+M|0,S)+P|0}function T(D,C,L,R,P,z,M,S){return F(D+(C^(L|~R))+z+M|0,S)+P|0}$.exports=O}}),g$=P$({"node_modules/sha.js/hash.js"(bZ,$){var Q=M$().Buffer;function Y(Z,G){this._block=Q.alloc(Z),this._finalSize=G,this._blockSize=Z,this._len=0}Y.prototype.update=function(Z,G){typeof Z=="string"&&(G=G||"utf8",Z=Q.from(Z,G));for(var V=this._block,U=this._blockSize,X=Z.length,K=this._len,I=0;I=this._finalSize&&(this._update(this._block),this._block.fill(0));var V=this._len*8;if(V<=4294967295)this._block.writeUInt32BE(V,this._blockSize-4);else{var U=(V&4294967295)>>>0,X=(V-U)/4294967296;this._block.writeUInt32BE(X,this._blockSize-8),this._block.writeUInt32BE(U,this._blockSize-4)}this._update(this._block);var K=this._hash();return Z?K.toString(Z):K},Y.prototype._update=function(){throw new Error("_update must be implemented by subclass")},$.exports=Y}}),N$=P$({"node_modules/sha.js/sha.js"(bZ,$){var Q=v$(),Y=g$(),Z=M$().Buffer,G=[1518500249,1859775393,-1894007588,-899497514],V=new Array(80);function U(){this.init(),this._w=V,Y.call(this,64,56)}Q(U,Y),U.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function X(J){return J<<5|J>>>27}function K(J){return J<<30|J>>>2}function I(J,O,F,A){return J===0?O&F|~O&A:J===2?O&F|O&A|F&A:O^F^A}U.prototype._update=function(J){for(var O=this._w,F=this._a|0,A=this._b|0,W=this._c|0,H=this._d|0,E=this._e|0,T=0;T<16;++T)O[T]=J.readInt32BE(T*4);for(;T<80;++T)O[T]=O[T-3]^O[T-8]^O[T-14]^O[T-16];for(var D=0;D<80;++D){var C=~~(D/20),L=X(F)+I(C,A,W,H)+E+O[D]+G[C]|0;E=H,H=W,W=K(A),A=F,F=L}this._a=F+this._a|0,this._b=A+this._b|0,this._c=W+this._c|0,this._d=H+this._d|0,this._e=E+this._e|0},U.prototype._hash=function(){var J=Z.allocUnsafe(20);return J.writeInt32BE(this._a|0,0),J.writeInt32BE(this._b|0,4),J.writeInt32BE(this._c|0,8),J.writeInt32BE(this._d|0,12),J.writeInt32BE(this._e|0,16),J},$.exports=U}}),x$=P$({"node_modules/sha.js/sha1.js"(bZ,$){var Q=v$(),Y=g$(),Z=M$().Buffer,G=[1518500249,1859775393,-1894007588,-899497514],V=new Array(80);function U(){this.init(),this._w=V,Y.call(this,64,56)}Q(U,Y),U.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function X(O){return O<<1|O>>>31}function K(O){return O<<5|O>>>27}function I(O){return O<<30|O>>>2}function J(O,F,A,W){return O===0?F&A|~F&W:O===2?F&A|F&W|A&W:F^A^W}U.prototype._update=function(O){for(var F=this._w,A=this._a|0,W=this._b|0,H=this._c|0,E=this._d|0,T=this._e|0,D=0;D<16;++D)F[D]=O.readInt32BE(D*4);for(;D<80;++D)F[D]=X(F[D-3]^F[D-8]^F[D-14]^F[D-16]);for(var C=0;C<80;++C){var L=~~(C/20),R=K(A)+J(L,W,H,E)+T+F[C]+G[L]|0;T=E,E=H,H=I(W),W=A,A=R}this._a=A+this._a|0,this._b=W+this._b|0,this._c=H+this._c|0,this._d=E+this._d|0,this._e=T+this._e|0},U.prototype._hash=function(){var O=Z.allocUnsafe(20);return O.writeInt32BE(this._a|0,0),O.writeInt32BE(this._b|0,4),O.writeInt32BE(this._c|0,8),O.writeInt32BE(this._d|0,12),O.writeInt32BE(this._e|0,16),O},$.exports=U}}),_$=P$({"node_modules/sha.js/sha256.js"(bZ,$){var Q=v$(),Y=g$(),Z=M$().Buffer,G=[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],V=new Array(64);function U(){this.init(),this._w=V,Y.call(this,64,56)}Q(U,Y),U.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function X(A,W,H){return H^A&(W^H)}function K(A,W,H){return A&W|H&(A|W)}function I(A){return(A>>>2|A<<30)^(A>>>13|A<<19)^(A>>>22|A<<10)}function J(A){return(A>>>6|A<<26)^(A>>>11|A<<21)^(A>>>25|A<<7)}function O(A){return(A>>>7|A<<25)^(A>>>18|A<<14)^A>>>3}function F(A){return(A>>>17|A<<15)^(A>>>19|A<<13)^A>>>10}U.prototype._update=function(A){for(var W=this._w,H=this._a|0,E=this._b|0,T=this._c|0,D=this._d|0,C=this._e|0,L=this._f|0,R=this._g|0,P=this._h|0,z=0;z<16;++z)W[z]=A.readInt32BE(z*4);for(;z<64;++z)W[z]=F(W[z-2])+W[z-7]+O(W[z-15])+W[z-16]|0;for(var M=0;M<64;++M){var S=P+J(C)+X(C,L,R)+G[M]+W[M]|0,v=I(H)+K(H,E,T)|0;P=R,R=L,L=C,C=D+S|0,D=T,T=E,E=H,H=S+v|0}this._a=H+this._a|0,this._b=E+this._b|0,this._c=T+this._c|0,this._d=D+this._d|0,this._e=C+this._e|0,this._f=L+this._f|0,this._g=R+this._g|0,this._h=P+this._h|0},U.prototype._hash=function(){var A=Z.allocUnsafe(32);return A.writeInt32BE(this._a,0),A.writeInt32BE(this._b,4),A.writeInt32BE(this._c,8),A.writeInt32BE(this._d,12),A.writeInt32BE(this._e,16),A.writeInt32BE(this._f,20),A.writeInt32BE(this._g,24),A.writeInt32BE(this._h,28),A},$.exports=U}}),B$=P$({"node_modules/sha.js/sha224.js"(bZ,$){var Q=v$(),Y=_$(),Z=g$(),G=M$().Buffer,V=new Array(64);function U(){this.init(),this._w=V,Z.call(this,64,56)}Q(U,Y),U.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},U.prototype._hash=function(){var X=G.allocUnsafe(28);return X.writeInt32BE(this._a,0),X.writeInt32BE(this._b,4),X.writeInt32BE(this._c,8),X.writeInt32BE(this._d,12),X.writeInt32BE(this._e,16),X.writeInt32BE(this._f,20),X.writeInt32BE(this._g,24),X},$.exports=U}}),y$=P$({"node_modules/sha.js/sha512.js"(bZ,$){var Q=v$(),Y=g$(),Z=M$().Buffer,G=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],V=new Array(160);function U(){this.init(),this._w=V,Y.call(this,128,112)}Q(U,Y),U.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function X(E,T,D){return D^E&(T^D)}function K(E,T,D){return E&T|D&(E|T)}function I(E,T){return(E>>>28|T<<4)^(T>>>2|E<<30)^(T>>>7|E<<25)}function J(E,T){return(E>>>14|T<<18)^(E>>>18|T<<14)^(T>>>9|E<<23)}function O(E,T){return(E>>>1|T<<31)^(E>>>8|T<<24)^E>>>7}function F(E,T){return(E>>>1|T<<31)^(E>>>8|T<<24)^(E>>>7|T<<25)}function A(E,T){return(E>>>19|T<<13)^(T>>>29|E<<3)^E>>>6}function W(E,T){return(E>>>19|T<<13)^(T>>>29|E<<3)^(E>>>6|T<<26)}function H(E,T){return E>>>0>>0?1:0}U.prototype._update=function(E){for(var T=this._w,D=this._ah|0,C=this._bh|0,L=this._ch|0,R=this._dh|0,P=this._eh|0,z=this._fh|0,M=this._gh|0,S=this._hh|0,v=this._al|0,q=this._bl|0,j=this._cl|0,k=this._dl|0,g=this._el|0,N=this._fl|0,x=this._gl|0,_=this._hl|0,B=0;B<32;B+=2)T[B]=E.readInt32BE(B*4),T[B+1]=E.readInt32BE(B*4+4);for(;B<160;B+=2){var y=T[B-30],w=T[B-30+1],f=O(y,w),p=F(w,y);y=T[B-4],w=T[B-4+1];var c=A(y,w),h=W(w,y),d=T[B-14],b=T[B-14+1],l=T[B-32],o=T[B-32+1],u=p+b|0,n=f+d+H(u,p)|0;u=u+h|0,n=n+c+H(u,h)|0,u=u+o|0,n=n+l+H(u,o)|0,T[B]=n,T[B+1]=u}for(var s=0;s<160;s+=2){n=T[s],u=T[s+1];var t=K(D,C,L),m=K(v,q,j),a=I(D,v),r=I(v,D),e=J(P,g),i=J(g,P),$0=G[s],Q0=G[s+1],Y0=X(P,z,M),Z0=X(g,N,x),G0=_+i|0,V0=S+e+H(G0,_)|0;G0=G0+Z0|0,V0=V0+Y0+H(G0,Z0)|0,G0=G0+Q0|0,V0=V0+$0+H(G0,Q0)|0,G0=G0+u|0,V0=V0+n+H(G0,u)|0;var U0=r+m|0,X0=a+t+H(U0,r)|0;S=M,_=x,M=z,x=N,z=P,N=g,g=k+G0|0,P=R+V0+H(g,k)|0,R=L,k=j,L=C,j=q,C=D,q=v,v=G0+U0|0,D=V0+X0+H(v,G0)|0}this._al=this._al+v|0,this._bl=this._bl+q|0,this._cl=this._cl+j|0,this._dl=this._dl+k|0,this._el=this._el+g|0,this._fl=this._fl+N|0,this._gl=this._gl+x|0,this._hl=this._hl+_|0,this._ah=this._ah+D+H(this._al,v)|0,this._bh=this._bh+C+H(this._bl,q)|0,this._ch=this._ch+L+H(this._cl,j)|0,this._dh=this._dh+R+H(this._dl,k)|0,this._eh=this._eh+P+H(this._el,g)|0,this._fh=this._fh+z+H(this._fl,N)|0,this._gh=this._gh+M+H(this._gl,x)|0,this._hh=this._hh+S+H(this._hl,_)|0},U.prototype._hash=function(){var E=Z.allocUnsafe(64);function T(D,C,L){E.writeInt32BE(D,L),E.writeInt32BE(C,L+4)}return T(this._ah,this._al,0),T(this._bh,this._bl,8),T(this._ch,this._cl,16),T(this._dh,this._dl,24),T(this._eh,this._el,32),T(this._fh,this._fl,40),T(this._gh,this._gl,48),T(this._hh,this._hl,56),E},$.exports=U}}),w$=P$({"node_modules/sha.js/sha384.js"(bZ,$){var Q=v$(),Y=y$(),Z=g$(),G=M$().Buffer,V=new Array(160);function U(){this.init(),this._w=V,Z.call(this,128,112)}Q(U,Y),U.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},U.prototype._hash=function(){var X=G.allocUnsafe(48);function K(I,J,O){X.writeInt32BE(I,O),X.writeInt32BE(J,O+4)}return K(this._ah,this._al,0),K(this._bh,this._bl,8),K(this._ch,this._cl,16),K(this._dh,this._dl,24),K(this._eh,this._el,32),K(this._fh,this._fl,40),X},$.exports=U}}),f$=P$({"node_modules/sha.js/index.js"(Q,$){var Q=$.exports=function(Y){Y=Y.toLowerCase();var Z=Q[Y];if(!Z)throw new Error(Y+" is not supported (we accept pull requests)");return new Z};Q.sha=N$(),Q.sha1=x$(),Q.sha224=B$(),Q.sha256=_$(),Q.sha384=w$(),Q.sha512=y$()}}),p$=import.meta.require("node:stream"),c$=P$({"node_modules/cipher-base/index.js"(bZ,$){var Q=M$().Buffer,Y=p$.Transform,Z=L$("string_decoder").StringDecoder,G=v$();function V(U){Y.call(this),this.hashMode=typeof U=="string",this.hashMode?this[U]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}G(V,Y),V.prototype.update=function(U,X,K){typeof U=="string"&&(U=Q.from(U,X));var I=this._update(U);return this.hashMode?this:(K&&(I=this._toString(I,K)),I)},V.prototype.setAutoPadding=function(){},V.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},V.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},V.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},V.prototype._transform=function(U,X,K){var I;try{this.hashMode?this._update(U):this.push(this._update(U))}catch(J){I=J}finally{K(I)}},V.prototype._flush=function(U){var X;try{this.push(this.__final())}catch(K){X=K}U(X)},V.prototype._finalOrDigest=function(U){var X=this.__final()||Q.alloc(0);return U&&(X=this._toString(X,U,!0)),X},V.prototype._toString=function(U,X,K){if(this._decoder||(this._decoder=new Z(X),this._encoding=X),this._encoding!==X)throw new Error("can't switch encodings");var I=this._decoder.write(U);return K&&(I+=this._decoder.end()),I},$.exports=V}}),h$=P$({"node_modules/create-hash/browser.js"(bZ,$){const{Transform:Q}=p$,Y=function V(U,X){this._options=X,this._hasher=new lY(U,X),this._finalized=!1};Y.prototype=Object.create(Q.prototype),Y.prototype.update=function V(U,X){return this._checkFinalized(),this._hasher.update(U,X),this},Y.prototype.digest=function V(U,X){return this._checkFinalized(),this._finalized=!0,this._hasher.digest(U,X)},Y.prototype._checkFinalized=function V(){if(this._finalized){var U=new Error("Digest already called");throw U.code="ERR_CRYPTO_HASH_FINALIZED",U}},Y.prototype.copy=function V(){const U=Object.create(Y.prototype);return U._options=this._options,U._hasher=this._hasher.copy(),U._finalized=this._finalized,U};const Z={__proto__:Q.prototype,...Y.prototype,_transform(V,U,X){this.update(V,U),X&&X()},_flush(V){this.push(this.digest()),V()}},G=["_events","_eventsCount","_final","_maxListeners","_maxListeners","_read","_undestroy","_writableState","_write","_writev","addListener","asIndexedPairs","closed","compose","constructor","cork","destroy","destroyed","drop","emit","end","errored","eventNames","every","filter","find","flatMap","forEach","getMaxListeners","hasOwnProperty","isPaused","isPrototypeOf","iterator","listenerCount","listeners","map","off","on","once","pause","pipe","prependListener","prependOnceListener","propertyIsEnumerable","push","rawListeners","read","readable","readableAborted","readableBuffer","readableDidRead","readableEncoding","readableEnded","readableFlowing","readableHighWaterMark","readableLength","readableObjectMode","reduce","removeAllListeners","removeListener","resume","setDefaultEncoding","setEncoding","setMaxListeners","some","take","toArray","toLocaleString","toString","uncork","unpipe","unshift","valueOf","wrap","writable","writableBuffer","writableCorked","writableEnded","writableFinished","writableHighWaterMark","writableLength","writableNeedDrain","writableObjectMode","write"];for(let V of G)Object.defineProperty(Y.prototype,V,{get(){return Object.setPrototypeOf(this,Z),Q.call(this,this._options),this[V]},enumerable:!1,configurable:!0});$.exports=function V(U){return new Y(U)},$.exports.createHash=$.exports,$.exports.Hash=Y}}),d$=P$({"node_modules/create-hmac/legacy.js"(bZ,$){var Q=v$(),Y=M$().Buffer,Z=c$(),G=Y.alloc(128),V=64;function U(X,K){Z.call(this,"digest"),typeof K=="string"&&(K=Y.from(K)),this._alg=X,this._key=K,K.length>V?K=X(K):K.lengthF){var A=J==="rmd160"?new U:X(J);O=A.update(O).digest()}else O.lengthQ||Z!==Z)throw new TypeError("Bad key length")}}}),s$=P$({"node_modules/pbkdf2/lib/default-encoding.js"(bZ,$){var Q;global.process&&global.process.browser?Q="utf-8":global.process&&global.process.version?(Y=parseInt(process.version.split(".")[0].slice(1),10),Q=Y>=6?"utf-8":"binary"):Q="utf-8";var Y;$.exports=Q}}),t$=P$({"node_modules/pbkdf2/lib/to-buffer.js"(bZ,$){var Q=M$().Buffer;$.exports=function(Y,Z,G){if(Q.isBuffer(Y))return Y;if(typeof Y=="string")return Q.from(Y,Z);if(ArrayBuffer.isView(Y))return Q.from(Y.buffer);throw new TypeError(G+" must be a string, a Buffer, a typed array or a DataView")}}}),m$=P$({"node_modules/pbkdf2/lib/sync-browser.js"(bZ,$){var Q=b$(),Y=k$(),Z=f$(),G=M$().Buffer,V=n$(),U=s$(),X=t$(),K=G.alloc(128),I={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function J(A,W,H){var E=O(A),T=A==="sha512"||A==="sha384"?128:64;W.length>T?W=E(W):W.length>>0},bZ.writeUInt32BE=function(Z,G,V){Z[0+V]=G>>>24,Z[1+V]=G>>>16&255,Z[2+V]=G>>>8&255,Z[3+V]=G&255},bZ.ip=function(Z,G,V,U){for(var X=0,K=0,I=6;I>=0;I-=2){for(var J=0;J<=24;J+=8)X<<=1,X|=G>>>J+I&1;for(var J=0;J<=24;J+=8)X<<=1,X|=Z>>>J+I&1}for(var I=6;I>=0;I-=2){for(var J=1;J<=25;J+=8)K<<=1,K|=G>>>J+I&1;for(var J=1;J<=25;J+=8)K<<=1,K|=Z>>>J+I&1}V[U+0]=X>>>0,V[U+1]=K>>>0},bZ.rip=function(Z,G,V,U){for(var X=0,K=0,I=0;I<4;I++)for(var J=24;J>=0;J-=8)X<<=1,X|=G>>>J+I&1,X<<=1,X|=Z>>>J+I&1;for(var I=4;I<8;I++)for(var J=24;J>=0;J-=8)K<<=1,K|=G>>>J+I&1,K<<=1,K|=Z>>>J+I&1;V[U+0]=X>>>0,V[U+1]=K>>>0},bZ.pc1=function(Z,G,V,U){for(var X=0,K=0,I=7;I>=5;I--){for(var J=0;J<=24;J+=8)X<<=1,X|=G>>J+I&1;for(var J=0;J<=24;J+=8)X<<=1,X|=Z>>J+I&1}for(var J=0;J<=24;J+=8)X<<=1,X|=G>>J+I&1;for(var I=1;I<=3;I++){for(var J=0;J<=24;J+=8)K<<=1,K|=G>>J+I&1;for(var J=0;J<=24;J+=8)K<<=1,K|=Z>>J+I&1}for(var J=0;J<=24;J+=8)K<<=1,K|=Z>>J+I&1;V[U+0]=X>>>0,V[U+1]=K>>>0},bZ.r28shl=function(Z,G){return Z<>>28-G};var $=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];bZ.pc2=function(Z,G,V,U){for(var X=0,K=0,I=$.length>>>1,J=0;J>>$[J]&1;for(var J=I;J<$.length;J++)K<<=1,K|=G>>>$[J]&1;V[U+0]=X>>>0,V[U+1]=K>>>0},bZ.expand=function(Z,G,V){var U=0,X=0;U=(Z&1)<<5|Z>>>27;for(var K=23;K>=15;K-=4)U<<=6,U|=Z>>>K&63;for(var K=11;K>=3;K-=4)X|=Z>>>K&63,X<<=6;X|=(Z&31)<<1|Z>>>31,G[V+0]=U>>>0,G[V+1]=X>>>0};var Q=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];bZ.substitute=function(Z,G){for(var V=0,U=0;U<4;U++){var X=Z>>>18-U*6&63,K=Q[U*64+X];V<<=4,V|=K}for(var U=0;U<4;U++){var X=G>>>18-U*6&63,K=Q[256+U*64+X];V<<=4,V|=K}return V>>>0};var Y=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];bZ.permute=function(Z){for(var G=0,V=0;V>>Y[V]&1;return G>>>0},bZ.padSplit=function(Z,G,V){for(var U=Z.toString(2);U.length0;U--)G+=this._buffer(Z,G),V+=this._flushBuffer(X,V);return G+=this._buffer(Z,G),X},Y.prototype.final=function(Z){var G;Z&&(G=this.update(Z));var V;return this.type==="encrypt"?V=this._finalEncrypt():V=this._finalDecrypt(),G?G.concat(V):V},Y.prototype._pad=function(Z,G){if(G===0)return!1;for(;G>>1];J=Z.r28shl(J,A),O=Z.r28shl(O,A),Z.pc2(J,O,K.keys,F)}},U.prototype._update=function(K,I,J,O){var F=this._desState,A=Z.readUInt32BE(K,I),W=Z.readUInt32BE(K,I+4);Z.ip(A,W,F.tmp,0),A=F.tmp[0],W=F.tmp[1],this.type==="encrypt"?this._encrypt(F,A,W,F.tmp,0):this._decrypt(F,A,W,F.tmp,0),A=F.tmp[0],W=F.tmp[1],Z.writeUInt32BE(J,A,O),Z.writeUInt32BE(J,W,O+4)},U.prototype._pad=function(K,I){for(var J=K.length-I,O=I;O>>0,A=L}Z.rip(W,A,O,F)},U.prototype._decrypt=function(K,I,J,O,F){for(var A=J,W=I,H=K.keys.length-2;H>=0;H-=2){var E=K.keys[H],T=K.keys[H+1];Z.expand(A,K.tmp,0),E^=K.tmp[0],T^=K.tmp[1];var D=Z.substitute(E,T),C=Z.permute(D),L=A;A=(W^C)>>>0,W=L}Z.rip(A,W,O,F)}}}),YQ=P$({"node_modules/des.js/lib/des/cbc.js"(bZ){var $=i$(),Q=v$(),Y={};function Z(V){$.equal(V.length,8,"Invalid IV length"),this.iv=new Array(8);for(var U=0;U>X%8,Z._prev=Y(Z._prev,V?J:O);return I}function Y(Z,G){var V=Z.length,U=-1,X=$.allocUnsafe(Z.length);for(Z=$.concat([Z,$.from([G])]);++U>7;return X}bZ.encrypt=function(Z,G,V){for(var U=G.length,X=$.allocUnsafe(U),K=-1;++K>>24]^W[D>>>16&255]^H[C>>>8&255]^E[L&255]^I[S++],P=A[D>>>24]^W[C>>>16&255]^H[L>>>8&255]^E[T&255]^I[S++],z=A[C>>>24]^W[L>>>16&255]^H[T>>>8&255]^E[D&255]^I[S++],M=A[L>>>24]^W[T>>>16&255]^H[D>>>8&255]^E[C&255]^I[S++],T=R,D=P,C=z,L=M;return R=(O[T>>>24]<<24|O[D>>>16&255]<<16|O[C>>>8&255]<<8|O[L&255])^I[S++],P=(O[D>>>24]<<24|O[C>>>16&255]<<16|O[L>>>8&255]<<8|O[T&255])^I[S++],z=(O[C>>>24]<<24|O[L>>>16&255]<<16|O[T>>>8&255]<<8|O[D&255])^I[S++],M=(O[L>>>24]<<24|O[T>>>16&255]<<16|O[D>>>8&255]<<8|O[C&255])^I[S++],R=R>>>0,P=P>>>0,z=z>>>0,M=M>>>0,[R,P,z,M]}var V=[0,1,2,4,8,16,32,64,128,27,54],U=function(){for(var K=new Array(256),I=0;I<256;I++)I<128?K[I]=I<<1:K[I]=I<<1^283;for(var J=[],O=[],F=[[],[],[],[]],A=[[],[],[],[]],W=0,H=0,E=0;E<256;++E){var T=H^H<<1^H<<2^H<<3^H<<4;T=T>>>8^T&255^99,J[W]=T,O[T]=W;var D=K[W],C=K[D],L=K[C],R=K[T]*257^T*16843008;F[0][W]=R<<24|R>>>8,F[1][W]=R<<16|R>>>16,F[2][W]=R<<8|R>>>24,F[3][W]=R,R=L*16843009^C*65537^D*257^W*16843008,A[0][T]=R<<24|R>>>8,A[1][T]=R<<16|R>>>16,A[2][T]=R<<8|R>>>24,A[3][T]=R,W===0?W=H=1:(W=D^K[K[K[L^D]]],H^=K[K[H]])}return{SBOX:J,INV_SBOX:O,SUB_MIX:F,INV_SUB_MIX:A}}();function X(K){this._key=Y(K),this._reset()}X.blockSize=16,X.keySize=32,X.prototype.blockSize=X.blockSize,X.prototype.keySize=X.keySize,X.prototype._reset=function(){for(var K=this._key,I=K.length,J=I+6,O=(J+1)*4,F=[],A=0;A>>24,W=U.SBOX[W>>>24]<<24|U.SBOX[W>>>16&255]<<16|U.SBOX[W>>>8&255]<<8|U.SBOX[W&255],W^=V[A/I|0]<<24):I>6&&A%I===4&&(W=U.SBOX[W>>>24]<<24|U.SBOX[W>>>16&255]<<16|U.SBOX[W>>>8&255]<<8|U.SBOX[W&255]),F[A]=F[A-I]^W}for(var H=[],E=0;E>>24]]^U.INV_SUB_MIX[1][U.SBOX[D>>>16&255]]^U.INV_SUB_MIX[2][U.SBOX[D>>>8&255]]^U.INV_SUB_MIX[3][U.SBOX[D&255]]}this._nRounds=J,this._keySchedule=F,this._invKeySchedule=H},X.prototype.encryptBlockRaw=function(K){return K=Y(K),G(K,this._keySchedule,U.SUB_MIX,U.SBOX,this._nRounds)},X.prototype.encryptBlock=function(K){var I=this.encryptBlockRaw(K),J=Q.allocUnsafe(16);return J.writeUInt32BE(I[0],0),J.writeUInt32BE(I[1],4),J.writeUInt32BE(I[2],8),J.writeUInt32BE(I[3],12),J},X.prototype.decryptBlock=function(K){K=Y(K);var I=K[1];K[1]=K[3],K[3]=I;var J=G(K,this._invKeySchedule,U.INV_SUB_MIX,U.INV_SBOX,this._nRounds),O=Q.allocUnsafe(16);return O.writeUInt32BE(J[0],0),O.writeUInt32BE(J[3],4),O.writeUInt32BE(J[2],8),O.writeUInt32BE(J[1],12),O},X.prototype.scrub=function(){Z(this._keySchedule),Z(this._invKeySchedule),Z(this._key)},$.exports.AES=X}}),TQ=P$({"node_modules/browserify-aes/ghash.js"(bZ,$){var Q=M$().Buffer,Y=Q.alloc(16,0);function Z(U){return[U.readUInt32BE(0),U.readUInt32BE(4),U.readUInt32BE(8),U.readUInt32BE(12)]}function G(U){var X=Q.allocUnsafe(16);return X.writeUInt32BE(U[0]>>>0,0),X.writeUInt32BE(U[1]>>>0,4),X.writeUInt32BE(U[2]>>>0,8),X.writeUInt32BE(U[3]>>>0,12),X}function V(U){this.h=U,this.state=Q.alloc(16,0),this.cache=Q.allocUnsafe(0)}V.prototype.ghash=function(U){for(var X=-1;++X0;K--)U[K]=U[K]>>>1|(U[K-1]&1)<<31;U[0]=U[0]>>>1,J&&(U[0]=U[0]^225<<24)}this.state=G(X)},V.prototype.update=function(U){this.cache=Q.concat([this.cache,U]);for(var X;this.cache.length>=16;)X=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(X)},V.prototype.final=function(U,X){return this.cache.length&&this.ghash(Q.concat([this.cache,Y],16)),this.ghash(G([0,U,0,X])),this.state},$.exports=V}}),DQ=P$({"node_modules/browserify-aes/authCipher.js"(bZ,$){var Q=EQ(),Y=M$().Buffer,Z=c$(),G=v$(),V=TQ(),U=XQ(),X=AQ();function K(O,F){var A=0;O.length!==F.length&&A++;for(var W=Math.min(O.length,F.length),H=0;H0||X>0;){var F=new Y;F.update(O),F.update(G),V&&F.update(V),O=F.digest();var A=0;if(K>0){var W=I.length-K;A=Math.min(K,O.length),O.copy(I,W,0,A),K-=A}if(A0){var H=J.length-X,E=Math.min(X,O.length-A);O.copy(J,H,A,A+E),X-=E}}return O.fill(0),{key:I,iv:J}}$.exports=Z}}),RQ=P$({"node_modules/browserify-aes/encrypter.js"(bZ){var $=HQ(),Q=DQ(),Y=M$().Buffer,Z=CQ(),G=c$(),V=EQ(),U=LQ(),X=v$();function K(A,W,H){G.call(this),this._cache=new J,this._cipher=new V.AES(W),this._prev=Y.from(H),this._mode=A,this._autopadding=!0}X(K,G),K.prototype._update=function(A){this._cache.add(A);for(var W,H,E=[];W=this._cache.get();)H=this._mode.encrypt(this,W),E.push(H);return Y.concat(E)};var I=Y.alloc(16,16);K.prototype._final=function(){var A=this._cache.flush();if(this._autopadding)return A=this._mode.encrypt(this,A),this._cipher.scrub(),A;if(!A.equals(I))throw this._cipher.scrub(),new Error("data not multiple of block length")},K.prototype.setAutoPadding=function(A){return this._autopadding=!!A,this};function J(){this.cache=Y.allocUnsafe(0)}J.prototype.add=function(A){this.cache=Y.concat([this.cache,A])},J.prototype.get=function(){if(this.cache.length>15){var A=this.cache.slice(0,16);return this.cache=this.cache.slice(16),A}return null},J.prototype.flush=function(){for(var A=16-this.cache.length,W=Y.allocUnsafe(A),H=-1;++H16)return W=this.cache.slice(0,16),this.cache=this.cache.slice(16),W}else if(this.cache.length>=16)return W=this.cache.slice(0,16),this.cache=this.cache.slice(16),W;return null},I.prototype.flush=function(){if(this.cache.length)return this.cache};function J(A){var W=A[15];if(W<1||W>16)throw new Error("unable to decrypt data");for(var H=-1;++H0?q:j},V.min=function(q,j){return q.cmp(j)<0?q:j},V.prototype._init=function(q,j,k){if(typeof q=="number")return this._initNumber(q,j,k);if(typeof q=="object")return this._initArray(q,j,k);j==="hex"&&(j=16),Z(j===(j|0)&&j>=2&&j<=36),q=q.toString().replace(/\s+/g,"");var g=0;q[0]==="-"&&(g++,this.negative=1),g=0;g-=3)x=q[g]|q[g-1]<<8|q[g-2]<<16,this.words[N]|=x<<_&67108863,this.words[N+1]=x>>>26-_&67108863,_+=24,_>=26&&(_-=26,N++);else if(k==="le")for(g=0,N=0;g>>26-_&67108863,_+=24,_>=26&&(_-=26,N++);return this.strip()};function X(q,j){var k=q.charCodeAt(j);return k>=65&&k<=70?k-55:k>=97&&k<=102?k-87:k-48&15}function K(q,j,k){var g=X(q,k);return k-1>=j&&(g|=X(q,k-1)<<4),g}V.prototype._parseHex=function(q,j,k){this.length=Math.ceil((q.length-j)/6),this.words=new Array(this.length);for(var g=0;g=j;g-=2)_=K(q,j,g)<=18?(N-=18,x+=1,this.words[x]|=_>>>26):N+=8;else{var B=q.length-j;for(g=B%2===0?j+1:j;g=18?(N-=18,x+=1,this.words[x]|=_>>>26):N+=8}this.strip()};function I(q,j,k,g){for(var N=0,x=Math.min(q.length,k),_=j;_=49?N+=B-49+10:B>=17?N+=B-17+10:N+=B}return N}V.prototype._parseBase=function(q,j,k){this.words=[0],this.length=1;for(var g=0,N=1;N<=67108863;N*=j)g++;g--,N=N/j|0;for(var x=q.length-k,_=x%g,B=Math.min(x,x-_)+k,y=0,w=k;w1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},V.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},V.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],O=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],F=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];V.prototype.toString=function(q,j){q=q||10,j=j|0||1;var k;if(q===16||q==="hex"){k="";for(var g=0,N=0,x=0;x>>24-g&16777215,N!==0||x!==this.length-1?k=J[6-B.length]+B+k:k=B+k,g+=2,g>=26&&(g-=26,x--)}for(N!==0&&(k=N.toString(16)+k);k.length%j!==0;)k="0"+k;return this.negative!==0&&(k="-"+k),k}if(q===(q|0)&&q>=2&&q<=36){var y=O[q],w=F[q];k="";var f=this.clone();for(f.negative=0;!f.isZero();){var p=f.modn(w).toString(q);f=f.idivn(w),f.isZero()?k=p+k:k=J[y-p.length]+p+k}for(this.isZero()&&(k="0"+k);k.length%j!==0;)k="0"+k;return this.negative!==0&&(k="-"+k),k}Z(!1,"Base should be between 2 and 36")},V.prototype.toNumber=function(){var q=this.words[0];return this.length===2?q+=this.words[1]*67108864:this.length===3&&this.words[2]===1?q+=4503599627370496+this.words[1]*67108864:this.length>2&&Z(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-q:q},V.prototype.toJSON=function(){return this.toString(16)},V.prototype.toBuffer=function(q,j){return Z(typeof U<"u"),this.toArrayLike(U,q,j)},V.prototype.toArray=function(q,j){return this.toArrayLike(Array,q,j)},V.prototype.toArrayLike=function(q,j,k){var g=this.byteLength(),N=k||Math.max(1,g);Z(g<=N,"byte array longer than desired length"),Z(N>0,"Requested array length <= 0"),this.strip();var x=j==="le",_=new q(N),B,y,w=this.clone();if(x){for(y=0;!w.isZero();y++)B=w.andln(255),w.iushrn(8),_[y]=B;for(;y=4096&&(k+=13,j>>>=13),j>=64&&(k+=7,j>>>=7),j>=8&&(k+=4,j>>>=4),j>=2&&(k+=2,j>>>=2),k+j},V.prototype._zeroBits=function(q){if(q===0)return 26;var j=q,k=0;return(j&8191)===0&&(k+=13,j>>>=13),(j&127)===0&&(k+=7,j>>>=7),(j&15)===0&&(k+=4,j>>>=4),(j&3)===0&&(k+=2,j>>>=2),(j&1)===0&&k++,k},V.prototype.bitLength=function(){var q=this.words[this.length-1],j=this._countBits(q);return(this.length-1)*26+j};function A(q){for(var j=new Array(q.bitLength()),k=0;k>>N}return j}V.prototype.zeroBits=function(){if(this.isZero())return 0;for(var q=0,j=0;jq.length?this.clone().ior(q):q.clone().ior(this)},V.prototype.uor=function(q){return this.length>q.length?this.clone().iuor(q):q.clone().iuor(this)},V.prototype.iuand=function(q){var j;this.length>q.length?j=q:j=this;for(var k=0;kq.length?this.clone().iand(q):q.clone().iand(this)},V.prototype.uand=function(q){return this.length>q.length?this.clone().iuand(q):q.clone().iuand(this)},V.prototype.iuxor=function(q){var j,k;this.length>q.length?(j=this,k=q):(j=q,k=this);for(var g=0;gq.length?this.clone().ixor(q):q.clone().ixor(this)},V.prototype.uxor=function(q){return this.length>q.length?this.clone().iuxor(q):q.clone().iuxor(this)},V.prototype.inotn=function(q){Z(typeof q=="number"&&q>=0);var j=Math.ceil(q/26)|0,k=q%26;this._expand(j),k>0&&j--;for(var g=0;g0&&(this.words[g]=~this.words[g]&67108863>>26-k),this.strip()},V.prototype.notn=function(q){return this.clone().inotn(q)},V.prototype.setn=function(q,j){Z(typeof q=="number"&&q>=0);var k=q/26|0,g=q%26;return this._expand(k+1),j?this.words[k]=this.words[k]|1<q.length?(k=this,g=q):(k=q,g=this);for(var N=0,x=0;x>>26;for(;N!==0&&x>>26;if(this.length=k.length,N!==0)this.words[this.length]=N,this.length++;else if(k!==this)for(;xq.length?this.clone().iadd(q):q.clone().iadd(this)},V.prototype.isub=function(q){if(q.negative!==0){q.negative=0;var j=this.iadd(q);return q.negative=1,j._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(q),this.negative=1,this._normSign();var k=this.cmp(q);if(k===0)return this.negative=0,this.length=1,this.words[0]=0,this;var g,N;k>0?(g=this,N=q):(g=q,N=this);for(var x=0,_=0;_>26,this.words[_]=j&67108863;for(;x!==0&&_>26,this.words[_]=j&67108863;if(x===0&&_>>26,p=y&67108863,c=Math.min(w,j.length-1),h=Math.max(0,w-q.length+1);h<=c;h++){var d=w-h|0;N=q.words[d]|0,x=j.words[h]|0,_=N*x+p,f+=_/67108864|0,p=_&67108863}k.words[w]=p|0,y=f|0}return y!==0?k.words[w]=y|0:k.length--,k.strip()}var H=function(q,j,k){var g=q.words,N=j.words,x=k.words,_=0,B,y,w,f=g[0]|0,p=f&8191,c=f>>>13,h=g[1]|0,d=h&8191,b=h>>>13,l=g[2]|0,o=l&8191,u=l>>>13,n=g[3]|0,s=n&8191,t=n>>>13,m=g[4]|0,a=m&8191,r=m>>>13,e=g[5]|0,i=e&8191,$0=e>>>13,Q0=g[6]|0,Y0=Q0&8191,Z0=Q0>>>13,G0=g[7]|0,V0=G0&8191,U0=G0>>>13,X0=g[8]|0,K0=X0&8191,I0=X0>>>13,J0=g[9]|0,O0=J0&8191,F0=J0>>>13,A0=N[0]|0,W0=A0&8191,H0=A0>>>13,E0=N[1]|0,T0=E0&8191,D0=E0>>>13,C0=N[2]|0,L0=C0&8191,R0=C0>>>13,P0=N[3]|0,z0=P0&8191,M0=P0>>>13,S0=N[4]|0,v0=S0&8191,q0=S0>>>13,j0=N[5]|0,k0=j0&8191,g0=j0>>>13,N0=N[6]|0,x0=N0&8191,_0=N0>>>13,B0=N[7]|0,y0=B0&8191,w0=B0>>>13,f0=N[8]|0,p0=f0&8191,c0=f0>>>13,h0=N[9]|0,d0=h0&8191,b0=h0>>>13;k.negative=q.negative^j.negative,k.length=19,B=Math.imul(p,W0),y=Math.imul(p,H0),y=y+Math.imul(c,W0)|0,w=Math.imul(c,H0);var l0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(l0>>>26)|0,l0&=67108863,B=Math.imul(d,W0),y=Math.imul(d,H0),y=y+Math.imul(b,W0)|0,w=Math.imul(b,H0),B=B+Math.imul(p,T0)|0,y=y+Math.imul(p,D0)|0,y=y+Math.imul(c,T0)|0,w=w+Math.imul(c,D0)|0;var o0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(o0>>>26)|0,o0&=67108863,B=Math.imul(o,W0),y=Math.imul(o,H0),y=y+Math.imul(u,W0)|0,w=Math.imul(u,H0),B=B+Math.imul(d,T0)|0,y=y+Math.imul(d,D0)|0,y=y+Math.imul(b,T0)|0,w=w+Math.imul(b,D0)|0,B=B+Math.imul(p,L0)|0,y=y+Math.imul(p,R0)|0,y=y+Math.imul(c,L0)|0,w=w+Math.imul(c,R0)|0;var u0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(u0>>>26)|0,u0&=67108863,B=Math.imul(s,W0),y=Math.imul(s,H0),y=y+Math.imul(t,W0)|0,w=Math.imul(t,H0),B=B+Math.imul(o,T0)|0,y=y+Math.imul(o,D0)|0,y=y+Math.imul(u,T0)|0,w=w+Math.imul(u,D0)|0,B=B+Math.imul(d,L0)|0,y=y+Math.imul(d,R0)|0,y=y+Math.imul(b,L0)|0,w=w+Math.imul(b,R0)|0,B=B+Math.imul(p,z0)|0,y=y+Math.imul(p,M0)|0,y=y+Math.imul(c,z0)|0,w=w+Math.imul(c,M0)|0;var n0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(n0>>>26)|0,n0&=67108863,B=Math.imul(a,W0),y=Math.imul(a,H0),y=y+Math.imul(r,W0)|0,w=Math.imul(r,H0),B=B+Math.imul(s,T0)|0,y=y+Math.imul(s,D0)|0,y=y+Math.imul(t,T0)|0,w=w+Math.imul(t,D0)|0,B=B+Math.imul(o,L0)|0,y=y+Math.imul(o,R0)|0,y=y+Math.imul(u,L0)|0,w=w+Math.imul(u,R0)|0,B=B+Math.imul(d,z0)|0,y=y+Math.imul(d,M0)|0,y=y+Math.imul(b,z0)|0,w=w+Math.imul(b,M0)|0,B=B+Math.imul(p,v0)|0,y=y+Math.imul(p,q0)|0,y=y+Math.imul(c,v0)|0,w=w+Math.imul(c,q0)|0;var s0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(s0>>>26)|0,s0&=67108863,B=Math.imul(i,W0),y=Math.imul(i,H0),y=y+Math.imul($0,W0)|0,w=Math.imul($0,H0),B=B+Math.imul(a,T0)|0,y=y+Math.imul(a,D0)|0,y=y+Math.imul(r,T0)|0,w=w+Math.imul(r,D0)|0,B=B+Math.imul(s,L0)|0,y=y+Math.imul(s,R0)|0,y=y+Math.imul(t,L0)|0,w=w+Math.imul(t,R0)|0,B=B+Math.imul(o,z0)|0,y=y+Math.imul(o,M0)|0,y=y+Math.imul(u,z0)|0,w=w+Math.imul(u,M0)|0,B=B+Math.imul(d,v0)|0,y=y+Math.imul(d,q0)|0,y=y+Math.imul(b,v0)|0,w=w+Math.imul(b,q0)|0,B=B+Math.imul(p,k0)|0,y=y+Math.imul(p,g0)|0,y=y+Math.imul(c,k0)|0,w=w+Math.imul(c,g0)|0;var t0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(t0>>>26)|0,t0&=67108863,B=Math.imul(Y0,W0),y=Math.imul(Y0,H0),y=y+Math.imul(Z0,W0)|0,w=Math.imul(Z0,H0),B=B+Math.imul(i,T0)|0,y=y+Math.imul(i,D0)|0,y=y+Math.imul($0,T0)|0,w=w+Math.imul($0,D0)|0,B=B+Math.imul(a,L0)|0,y=y+Math.imul(a,R0)|0,y=y+Math.imul(r,L0)|0,w=w+Math.imul(r,R0)|0,B=B+Math.imul(s,z0)|0,y=y+Math.imul(s,M0)|0,y=y+Math.imul(t,z0)|0,w=w+Math.imul(t,M0)|0,B=B+Math.imul(o,v0)|0,y=y+Math.imul(o,q0)|0,y=y+Math.imul(u,v0)|0,w=w+Math.imul(u,q0)|0,B=B+Math.imul(d,k0)|0,y=y+Math.imul(d,g0)|0,y=y+Math.imul(b,k0)|0,w=w+Math.imul(b,g0)|0,B=B+Math.imul(p,x0)|0,y=y+Math.imul(p,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,_0)|0;var m0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(m0>>>26)|0,m0&=67108863,B=Math.imul(V0,W0),y=Math.imul(V0,H0),y=y+Math.imul(U0,W0)|0,w=Math.imul(U0,H0),B=B+Math.imul(Y0,T0)|0,y=y+Math.imul(Y0,D0)|0,y=y+Math.imul(Z0,T0)|0,w=w+Math.imul(Z0,D0)|0,B=B+Math.imul(i,L0)|0,y=y+Math.imul(i,R0)|0,y=y+Math.imul($0,L0)|0,w=w+Math.imul($0,R0)|0,B=B+Math.imul(a,z0)|0,y=y+Math.imul(a,M0)|0,y=y+Math.imul(r,z0)|0,w=w+Math.imul(r,M0)|0,B=B+Math.imul(s,v0)|0,y=y+Math.imul(s,q0)|0,y=y+Math.imul(t,v0)|0,w=w+Math.imul(t,q0)|0,B=B+Math.imul(o,k0)|0,y=y+Math.imul(o,g0)|0,y=y+Math.imul(u,k0)|0,w=w+Math.imul(u,g0)|0,B=B+Math.imul(d,x0)|0,y=y+Math.imul(d,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,_0)|0,B=B+Math.imul(p,y0)|0,y=y+Math.imul(p,w0)|0,y=y+Math.imul(c,y0)|0,w=w+Math.imul(c,w0)|0;var a0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(a0>>>26)|0,a0&=67108863,B=Math.imul(K0,W0),y=Math.imul(K0,H0),y=y+Math.imul(I0,W0)|0,w=Math.imul(I0,H0),B=B+Math.imul(V0,T0)|0,y=y+Math.imul(V0,D0)|0,y=y+Math.imul(U0,T0)|0,w=w+Math.imul(U0,D0)|0,B=B+Math.imul(Y0,L0)|0,y=y+Math.imul(Y0,R0)|0,y=y+Math.imul(Z0,L0)|0,w=w+Math.imul(Z0,R0)|0,B=B+Math.imul(i,z0)|0,y=y+Math.imul(i,M0)|0,y=y+Math.imul($0,z0)|0,w=w+Math.imul($0,M0)|0,B=B+Math.imul(a,v0)|0,y=y+Math.imul(a,q0)|0,y=y+Math.imul(r,v0)|0,w=w+Math.imul(r,q0)|0,B=B+Math.imul(s,k0)|0,y=y+Math.imul(s,g0)|0,y=y+Math.imul(t,k0)|0,w=w+Math.imul(t,g0)|0,B=B+Math.imul(o,x0)|0,y=y+Math.imul(o,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,_0)|0,B=B+Math.imul(d,y0)|0,y=y+Math.imul(d,w0)|0,y=y+Math.imul(b,y0)|0,w=w+Math.imul(b,w0)|0,B=B+Math.imul(p,p0)|0,y=y+Math.imul(p,c0)|0,y=y+Math.imul(c,p0)|0,w=w+Math.imul(c,c0)|0;var r0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(r0>>>26)|0,r0&=67108863,B=Math.imul(O0,W0),y=Math.imul(O0,H0),y=y+Math.imul(F0,W0)|0,w=Math.imul(F0,H0),B=B+Math.imul(K0,T0)|0,y=y+Math.imul(K0,D0)|0,y=y+Math.imul(I0,T0)|0,w=w+Math.imul(I0,D0)|0,B=B+Math.imul(V0,L0)|0,y=y+Math.imul(V0,R0)|0,y=y+Math.imul(U0,L0)|0,w=w+Math.imul(U0,R0)|0,B=B+Math.imul(Y0,z0)|0,y=y+Math.imul(Y0,M0)|0,y=y+Math.imul(Z0,z0)|0,w=w+Math.imul(Z0,M0)|0,B=B+Math.imul(i,v0)|0,y=y+Math.imul(i,q0)|0,y=y+Math.imul($0,v0)|0,w=w+Math.imul($0,q0)|0,B=B+Math.imul(a,k0)|0,y=y+Math.imul(a,g0)|0,y=y+Math.imul(r,k0)|0,w=w+Math.imul(r,g0)|0,B=B+Math.imul(s,x0)|0,y=y+Math.imul(s,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,_0)|0,B=B+Math.imul(o,y0)|0,y=y+Math.imul(o,w0)|0,y=y+Math.imul(u,y0)|0,w=w+Math.imul(u,w0)|0,B=B+Math.imul(d,p0)|0,y=y+Math.imul(d,c0)|0,y=y+Math.imul(b,p0)|0,w=w+Math.imul(b,c0)|0,B=B+Math.imul(p,d0)|0,y=y+Math.imul(p,b0)|0,y=y+Math.imul(c,d0)|0,w=w+Math.imul(c,b0)|0;var e0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(e0>>>26)|0,e0&=67108863,B=Math.imul(O0,T0),y=Math.imul(O0,D0),y=y+Math.imul(F0,T0)|0,w=Math.imul(F0,D0),B=B+Math.imul(K0,L0)|0,y=y+Math.imul(K0,R0)|0,y=y+Math.imul(I0,L0)|0,w=w+Math.imul(I0,R0)|0,B=B+Math.imul(V0,z0)|0,y=y+Math.imul(V0,M0)|0,y=y+Math.imul(U0,z0)|0,w=w+Math.imul(U0,M0)|0,B=B+Math.imul(Y0,v0)|0,y=y+Math.imul(Y0,q0)|0,y=y+Math.imul(Z0,v0)|0,w=w+Math.imul(Z0,q0)|0,B=B+Math.imul(i,k0)|0,y=y+Math.imul(i,g0)|0,y=y+Math.imul($0,k0)|0,w=w+Math.imul($0,g0)|0,B=B+Math.imul(a,x0)|0,y=y+Math.imul(a,_0)|0,y=y+Math.imul(r,x0)|0,w=w+Math.imul(r,_0)|0,B=B+Math.imul(s,y0)|0,y=y+Math.imul(s,w0)|0,y=y+Math.imul(t,y0)|0,w=w+Math.imul(t,w0)|0,B=B+Math.imul(o,p0)|0,y=y+Math.imul(o,c0)|0,y=y+Math.imul(u,p0)|0,w=w+Math.imul(u,c0)|0,B=B+Math.imul(d,d0)|0,y=y+Math.imul(d,b0)|0,y=y+Math.imul(b,d0)|0,w=w+Math.imul(b,b0)|0;var i0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(i0>>>26)|0,i0&=67108863,B=Math.imul(O0,L0),y=Math.imul(O0,R0),y=y+Math.imul(F0,L0)|0,w=Math.imul(F0,R0),B=B+Math.imul(K0,z0)|0,y=y+Math.imul(K0,M0)|0,y=y+Math.imul(I0,z0)|0,w=w+Math.imul(I0,M0)|0,B=B+Math.imul(V0,v0)|0,y=y+Math.imul(V0,q0)|0,y=y+Math.imul(U0,v0)|0,w=w+Math.imul(U0,q0)|0,B=B+Math.imul(Y0,k0)|0,y=y+Math.imul(Y0,g0)|0,y=y+Math.imul(Z0,k0)|0,w=w+Math.imul(Z0,g0)|0,B=B+Math.imul(i,x0)|0,y=y+Math.imul(i,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,_0)|0,B=B+Math.imul(a,y0)|0,y=y+Math.imul(a,w0)|0,y=y+Math.imul(r,y0)|0,w=w+Math.imul(r,w0)|0,B=B+Math.imul(s,p0)|0,y=y+Math.imul(s,c0)|0,y=y+Math.imul(t,p0)|0,w=w+Math.imul(t,c0)|0,B=B+Math.imul(o,d0)|0,y=y+Math.imul(o,b0)|0,y=y+Math.imul(u,d0)|0,w=w+Math.imul(u,b0)|0;var $$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+($$>>>26)|0,$$&=67108863,B=Math.imul(O0,z0),y=Math.imul(O0,M0),y=y+Math.imul(F0,z0)|0,w=Math.imul(F0,M0),B=B+Math.imul(K0,v0)|0,y=y+Math.imul(K0,q0)|0,y=y+Math.imul(I0,v0)|0,w=w+Math.imul(I0,q0)|0,B=B+Math.imul(V0,k0)|0,y=y+Math.imul(V0,g0)|0,y=y+Math.imul(U0,k0)|0,w=w+Math.imul(U0,g0)|0,B=B+Math.imul(Y0,x0)|0,y=y+Math.imul(Y0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,_0)|0,B=B+Math.imul(i,y0)|0,y=y+Math.imul(i,w0)|0,y=y+Math.imul($0,y0)|0,w=w+Math.imul($0,w0)|0,B=B+Math.imul(a,p0)|0,y=y+Math.imul(a,c0)|0,y=y+Math.imul(r,p0)|0,w=w+Math.imul(r,c0)|0,B=B+Math.imul(s,d0)|0,y=y+Math.imul(s,b0)|0,y=y+Math.imul(t,d0)|0,w=w+Math.imul(t,b0)|0;var Q$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,B=Math.imul(O0,v0),y=Math.imul(O0,q0),y=y+Math.imul(F0,v0)|0,w=Math.imul(F0,q0),B=B+Math.imul(K0,k0)|0,y=y+Math.imul(K0,g0)|0,y=y+Math.imul(I0,k0)|0,w=w+Math.imul(I0,g0)|0,B=B+Math.imul(V0,x0)|0,y=y+Math.imul(V0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,_0)|0,B=B+Math.imul(Y0,y0)|0,y=y+Math.imul(Y0,w0)|0,y=y+Math.imul(Z0,y0)|0,w=w+Math.imul(Z0,w0)|0,B=B+Math.imul(i,p0)|0,y=y+Math.imul(i,c0)|0,y=y+Math.imul($0,p0)|0,w=w+Math.imul($0,c0)|0,B=B+Math.imul(a,d0)|0,y=y+Math.imul(a,b0)|0,y=y+Math.imul(r,d0)|0,w=w+Math.imul(r,b0)|0;var Y$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,B=Math.imul(O0,k0),y=Math.imul(O0,g0),y=y+Math.imul(F0,k0)|0,w=Math.imul(F0,g0),B=B+Math.imul(K0,x0)|0,y=y+Math.imul(K0,_0)|0,y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,_0)|0,B=B+Math.imul(V0,y0)|0,y=y+Math.imul(V0,w0)|0,y=y+Math.imul(U0,y0)|0,w=w+Math.imul(U0,w0)|0,B=B+Math.imul(Y0,p0)|0,y=y+Math.imul(Y0,c0)|0,y=y+Math.imul(Z0,p0)|0,w=w+Math.imul(Z0,c0)|0,B=B+Math.imul(i,d0)|0,y=y+Math.imul(i,b0)|0,y=y+Math.imul($0,d0)|0,w=w+Math.imul($0,b0)|0;var Z$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,B=Math.imul(O0,x0),y=Math.imul(O0,_0),y=y+Math.imul(F0,x0)|0,w=Math.imul(F0,_0),B=B+Math.imul(K0,y0)|0,y=y+Math.imul(K0,w0)|0,y=y+Math.imul(I0,y0)|0,w=w+Math.imul(I0,w0)|0,B=B+Math.imul(V0,p0)|0,y=y+Math.imul(V0,c0)|0,y=y+Math.imul(U0,p0)|0,w=w+Math.imul(U0,c0)|0,B=B+Math.imul(Y0,d0)|0,y=y+Math.imul(Y0,b0)|0,y=y+Math.imul(Z0,d0)|0,w=w+Math.imul(Z0,b0)|0;var G$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(G$>>>26)|0,G$&=67108863,B=Math.imul(O0,y0),y=Math.imul(O0,w0),y=y+Math.imul(F0,y0)|0,w=Math.imul(F0,w0),B=B+Math.imul(K0,p0)|0,y=y+Math.imul(K0,c0)|0,y=y+Math.imul(I0,p0)|0,w=w+Math.imul(I0,c0)|0,B=B+Math.imul(V0,d0)|0,y=y+Math.imul(V0,b0)|0,y=y+Math.imul(U0,d0)|0,w=w+Math.imul(U0,b0)|0;var V$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(V$>>>26)|0,V$&=67108863,B=Math.imul(O0,p0),y=Math.imul(O0,c0),y=y+Math.imul(F0,p0)|0,w=Math.imul(F0,c0),B=B+Math.imul(K0,d0)|0,y=y+Math.imul(K0,b0)|0,y=y+Math.imul(I0,d0)|0,w=w+Math.imul(I0,b0)|0;var U$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(U$>>>26)|0,U$&=67108863,B=Math.imul(O0,d0),y=Math.imul(O0,b0),y=y+Math.imul(F0,d0)|0,w=Math.imul(F0,b0);var X$=(_+B|0)+((y&8191)<<13)|0;return _=(w+(y>>>13)|0)+(X$>>>26)|0,X$&=67108863,x[0]=l0,x[1]=o0,x[2]=u0,x[3]=n0,x[4]=s0,x[5]=t0,x[6]=m0,x[7]=a0,x[8]=r0,x[9]=e0,x[10]=i0,x[11]=$$,x[12]=Q$,x[13]=Y$,x[14]=Z$,x[15]=G$,x[16]=V$,x[17]=U$,x[18]=X$,_!==0&&(x[19]=_,k.length++),k};Math.imul||(H=W);function E(q,j,k){k.negative=j.negative^q.negative,k.length=q.length+j.length;for(var g=0,N=0,x=0;x>>26)|0,N+=_>>>26,_&=67108863}k.words[x]=B,g=_,_=N}return g!==0?k.words[x]=g:k.length--,k.strip()}function T(q,j,k){var g=new D;return g.mulp(q,j,k)}V.prototype.mulTo=function(q,j){var k,g=this.length+q.length;return this.length===10&&q.length===10?k=H(this,q,j):g<63?k=W(this,q,j):g<1024?k=E(this,q,j):k=T(this,q,j),k};function D(q,j){this.x=q,this.y=j}D.prototype.makeRBT=function(q){for(var j=new Array(q),k=V.prototype._countBits(q)-1,g=0;g>=1;return g},D.prototype.permute=function(q,j,k,g,N,x){for(var _=0;_>>1)N++;return 1<>>13,k[2*x+1]=N&8191,N=N>>>13;for(x=2*j;x>=26,j+=g/67108864|0,j+=N>>>26,this.words[k]=N&67108863}return j!==0&&(this.words[k]=j,this.length++),this},V.prototype.muln=function(q){return this.clone().imuln(q)},V.prototype.sqr=function(){return this.mul(this)},V.prototype.isqr=function(){return this.imul(this.clone())},V.prototype.pow=function(q){var j=A(q);if(j.length===0)return new V(1);for(var k=this,g=0;g=0);var j=q%26,k=(q-j)/26,g=67108863>>>26-j<<26-j,N;if(j!==0){var x=0;for(N=0;N>>26-j}x&&(this.words[N]=x,this.length++)}if(k!==0){for(N=this.length-1;N>=0;N--)this.words[N+k]=this.words[N];for(N=0;N=0);var g;j?g=(j-j%26)/26:g=0;var N=q%26,x=Math.min((q-N)/26,this.length),_=67108863^67108863>>>N<x)for(this.length-=x,y=0;y=0&&(w!==0||y>=g);y--){var f=this.words[y]|0;this.words[y]=w<<26-N|f>>>N,w=f&_}return B&&w!==0&&(B.words[B.length++]=w),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},V.prototype.ishrn=function(q,j,k){return Z(this.negative===0),this.iushrn(q,j,k)},V.prototype.shln=function(q){return this.clone().ishln(q)},V.prototype.ushln=function(q){return this.clone().iushln(q)},V.prototype.shrn=function(q){return this.clone().ishrn(q)},V.prototype.ushrn=function(q){return this.clone().iushrn(q)},V.prototype.testn=function(q){Z(typeof q=="number"&&q>=0);var j=q%26,k=(q-j)/26,g=1<=0);var j=q%26,k=(q-j)/26;if(Z(this.negative===0,"imaskn works only with positive numbers"),this.length<=k)return this;if(j!==0&&k++,this.length=Math.min(k,this.length),j!==0){var g=67108863^67108863>>>j<=67108864;j++)this.words[j]-=67108864,j===this.length-1?this.words[j+1]=1:this.words[j+1]++;return this.length=Math.max(this.length,j+1),this},V.prototype.isubn=function(q){if(Z(typeof q=="number"),Z(q<67108864),q<0)return this.iaddn(-q);if(this.negative!==0)return this.negative=0,this.iaddn(q),this.negative=1,this;if(this.words[0]-=q,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var j=0;j>26)-(B/67108864|0),this.words[N+k]=x&67108863}for(;N>26,this.words[N+k]=x&67108863;if(_===0)return this.strip();for(Z(_===-1),_=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},V.prototype._wordDiv=function(q,j){var k=this.length-q.length,g=this.clone(),N=q,x=N.words[N.length-1]|0,_=this._countBits(x);k=26-_,k!==0&&(N=N.ushln(k),g.iushln(k),x=N.words[N.length-1]|0);var B=g.length-N.length,y;if(j!=="mod"){y=new V(null),y.length=B+1,y.words=new Array(y.length);for(var w=0;w=0;p--){var c=(g.words[N.length+p]|0)*67108864+(g.words[N.length+p-1]|0);for(c=Math.min(c/x|0,67108863),g._ishlnsubmul(N,c,p);g.negative!==0;)c--,g.negative=0,g._ishlnsubmul(N,1,p),g.isZero()||(g.negative^=1);y&&(y.words[p]=c)}return y&&y.strip(),g.strip(),j!=="div"&&k!==0&&g.iushrn(k),{div:y||null,mod:g}},V.prototype.divmod=function(q,j,k){if(Z(!q.isZero()),this.isZero())return{div:new V(0),mod:new V(0)};var g,N,x;return this.negative!==0&&q.negative===0?(x=this.neg().divmod(q,j),j!=="mod"&&(g=x.div.neg()),j!=="div"&&(N=x.mod.neg(),k&&N.negative!==0&&N.iadd(q)),{div:g,mod:N}):this.negative===0&&q.negative!==0?(x=this.divmod(q.neg(),j),j!=="mod"&&(g=x.div.neg()),{div:g,mod:x.mod}):(this.negative&q.negative)!==0?(x=this.neg().divmod(q.neg(),j),j!=="div"&&(N=x.mod.neg(),k&&N.negative!==0&&N.isub(q)),{div:x.div,mod:N}):q.length>this.length||this.cmp(q)<0?{div:new V(0),mod:this}:q.length===1?j==="div"?{div:this.divn(q.words[0]),mod:null}:j==="mod"?{div:null,mod:new V(this.modn(q.words[0]))}:{div:this.divn(q.words[0]),mod:new V(this.modn(q.words[0]))}:this._wordDiv(q,j)},V.prototype.div=function(q){return this.divmod(q,"div",!1).div},V.prototype.mod=function(q){return this.divmod(q,"mod",!1).mod},V.prototype.umod=function(q){return this.divmod(q,"mod",!0).mod},V.prototype.divRound=function(q){var j=this.divmod(q);if(j.mod.isZero())return j.div;var k=j.div.negative!==0?j.mod.isub(q):j.mod,g=q.ushrn(1),N=q.andln(1),x=k.cmp(g);return x<0||N===1&&x===0?j.div:j.div.negative!==0?j.div.isubn(1):j.div.iaddn(1)},V.prototype.modn=function(q){Z(q<=67108863);for(var j=(1<<26)%q,k=0,g=this.length-1;g>=0;g--)k=(j*k+(this.words[g]|0))%q;return k},V.prototype.idivn=function(q){Z(q<=67108863);for(var j=0,k=this.length-1;k>=0;k--){var g=(this.words[k]|0)+j*67108864;this.words[k]=g/q|0,j=g%q}return this.strip()},V.prototype.divn=function(q){return this.clone().idivn(q)},V.prototype.egcd=function(q){Z(q.negative===0),Z(!q.isZero());var j=this,k=q.clone();j.negative!==0?j=j.umod(q):j=j.clone();for(var g=new V(1),N=new V(0),x=new V(0),_=new V(1),B=0;j.isEven()&&k.isEven();)j.iushrn(1),k.iushrn(1),++B;for(var y=k.clone(),w=j.clone();!j.isZero();){for(var f=0,p=1;(j.words[0]&p)===0&&f<26;++f,p<<=1);if(f>0)for(j.iushrn(f);f-- >0;)(g.isOdd()||N.isOdd())&&(g.iadd(y),N.isub(w)),g.iushrn(1),N.iushrn(1);for(var c=0,h=1;(k.words[0]&h)===0&&c<26;++c,h<<=1);if(c>0)for(k.iushrn(c);c-- >0;)(x.isOdd()||_.isOdd())&&(x.iadd(y),_.isub(w)),x.iushrn(1),_.iushrn(1);j.cmp(k)>=0?(j.isub(k),g.isub(x),N.isub(_)):(k.isub(j),x.isub(g),_.isub(N))}return{a:x,b:_,gcd:k.iushln(B)}},V.prototype._invmp=function(q){Z(q.negative===0),Z(!q.isZero());var j=this,k=q.clone();j.negative!==0?j=j.umod(q):j=j.clone();for(var g=new V(1),N=new V(0),x=k.clone();j.cmpn(1)>0&&k.cmpn(1)>0;){for(var _=0,B=1;(j.words[0]&B)===0&&_<26;++_,B<<=1);if(_>0)for(j.iushrn(_);_-- >0;)g.isOdd()&&g.iadd(x),g.iushrn(1);for(var y=0,w=1;(k.words[0]&w)===0&&y<26;++y,w<<=1);if(y>0)for(k.iushrn(y);y-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);j.cmp(k)>=0?(j.isub(k),g.isub(N)):(k.isub(j),N.isub(g))}var f;return j.cmpn(1)===0?f=g:f=N,f.cmpn(0)<0&&f.iadd(q),f},V.prototype.gcd=function(q){if(this.isZero())return q.abs();if(q.isZero())return this.abs();var j=this.clone(),k=q.clone();j.negative=0,k.negative=0;for(var g=0;j.isEven()&&k.isEven();g++)j.iushrn(1),k.iushrn(1);do{for(;j.isEven();)j.iushrn(1);for(;k.isEven();)k.iushrn(1);var N=j.cmp(k);if(N<0){var x=j;j=k,k=x}else if(N===0||k.cmpn(1)===0)break;j.isub(k)}while(!0);return k.iushln(g)},V.prototype.invm=function(q){return this.egcd(q).a.umod(q)},V.prototype.isEven=function(){return(this.words[0]&1)===0},V.prototype.isOdd=function(){return(this.words[0]&1)===1},V.prototype.andln=function(q){return this.words[0]&q},V.prototype.bincn=function(q){Z(typeof q=="number");var j=q%26,k=(q-j)/26,g=1<>>26,_&=67108863,this.words[x]=_}return N!==0&&(this.words[x]=N,this.length++),this},V.prototype.isZero=function(){return this.length===1&&this.words[0]===0},V.prototype.cmpn=function(q){var j=q<0;if(this.negative!==0&&!j)return-1;if(this.negative===0&&j)return 1;this.strip();var k;if(this.length>1)k=1;else{j&&(q=-q),Z(q<=67108863,"Number is too big");var g=this.words[0]|0;k=g===q?0:gq.length)return 1;if(this.length=0;k--){var g=this.words[k]|0,N=q.words[k]|0;if(g!==N){gN&&(j=1);break}}return j},V.prototype.gtn=function(q){return this.cmpn(q)===1},V.prototype.gt=function(q){return this.cmp(q)===1},V.prototype.gten=function(q){return this.cmpn(q)>=0},V.prototype.gte=function(q){return this.cmp(q)>=0},V.prototype.ltn=function(q){return this.cmpn(q)===-1},V.prototype.lt=function(q){return this.cmp(q)===-1},V.prototype.lten=function(q){return this.cmpn(q)<=0},V.prototype.lte=function(q){return this.cmp(q)<=0},V.prototype.eqn=function(q){return this.cmpn(q)===0},V.prototype.eq=function(q){return this.cmp(q)===0},V.red=function(q){return new S(q)},V.prototype.toRed=function(q){return Z(!this.red,"Already a number in reduction context"),Z(this.negative===0,"red works only with positives"),q.convertTo(this)._forceRed(q)},V.prototype.fromRed=function(){return Z(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},V.prototype._forceRed=function(q){return this.red=q,this},V.prototype.forceRed=function(q){return Z(!this.red,"Already a number in reduction context"),this._forceRed(q)},V.prototype.redAdd=function(q){return Z(this.red,"redAdd works only with red numbers"),this.red.add(this,q)},V.prototype.redIAdd=function(q){return Z(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,q)},V.prototype.redSub=function(q){return Z(this.red,"redSub works only with red numbers"),this.red.sub(this,q)},V.prototype.redISub=function(q){return Z(this.red,"redISub works only with red numbers"),this.red.isub(this,q)},V.prototype.redShl=function(q){return Z(this.red,"redShl works only with red numbers"),this.red.shl(this,q)},V.prototype.redMul=function(q){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,q),this.red.mul(this,q)},V.prototype.redIMul=function(q){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,q),this.red.imul(this,q)},V.prototype.redSqr=function(){return Z(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},V.prototype.redISqr=function(){return Z(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},V.prototype.redSqrt=function(){return Z(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},V.prototype.redInvm=function(){return Z(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},V.prototype.redNeg=function(){return Z(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},V.prototype.redPow=function(q){return Z(this.red&&!q.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,q)};var C={k256:null,p224:null,p192:null,p25519:null};function L(q,j){this.name=q,this.p=new V(j,16),this.n=this.p.bitLength(),this.k=new V(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}L.prototype._tmp=function(){var q=new V(null);return q.words=new Array(Math.ceil(this.n/13)),q},L.prototype.ireduce=function(q){var j=q,k;do this.split(j,this.tmp),j=this.imulK(j),j=j.iadd(this.tmp),k=j.bitLength();while(k>this.n);var g=k0?j.isub(this.p):j.strip!==void 0?j.strip():j._strip(),j},L.prototype.split=function(q,j){q.iushrn(this.n,0,j)},L.prototype.imulK=function(q){return q.imul(this.k)};function R(){L.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}G(R,L),R.prototype.split=function(q,j){for(var k=4194303,g=Math.min(q.length,9),N=0;N>>22,x=_}x>>>=22,q.words[N-10]=x,x===0&&q.length>10?q.length-=10:q.length-=9},R.prototype.imulK=function(q){q.words[q.length]=0,q.words[q.length+1]=0,q.length+=2;for(var j=0,k=0;k>>=26,q.words[k]=N,j=g}return j!==0&&(q.words[q.length++]=j),q},V._prime=function(q){if(C[q])return C[q];var j;if(q==="k256")j=new R;else if(q==="p224")j=new P;else if(q==="p192")j=new z;else if(q==="p25519")j=new M;else throw new Error("Unknown prime "+q);return C[q]=j,j};function S(q){if(typeof q=="string"){var j=V._prime(q);this.m=j.p,this.prime=j}else Z(q.gtn(1),"modulus must be greater than 1"),this.m=q,this.prime=null}S.prototype._verify1=function(q){Z(q.negative===0,"red works only with positives"),Z(q.red,"red works only with red numbers")},S.prototype._verify2=function(q,j){Z((q.negative|j.negative)===0,"red works only with positives"),Z(q.red&&q.red===j.red,"red works only with red numbers")},S.prototype.imod=function(q){return this.prime?this.prime.ireduce(q)._forceRed(this):q.umod(this.m)._forceRed(this)},S.prototype.neg=function(q){return q.isZero()?q.clone():this.m.sub(q)._forceRed(this)},S.prototype.add=function(q,j){this._verify2(q,j);var k=q.add(j);return k.cmp(this.m)>=0&&k.isub(this.m),k._forceRed(this)},S.prototype.iadd=function(q,j){this._verify2(q,j);var k=q.iadd(j);return k.cmp(this.m)>=0&&k.isub(this.m),k},S.prototype.sub=function(q,j){this._verify2(q,j);var k=q.sub(j);return k.cmpn(0)<0&&k.iadd(this.m),k._forceRed(this)},S.prototype.isub=function(q,j){this._verify2(q,j);var k=q.isub(j);return k.cmpn(0)<0&&k.iadd(this.m),k},S.prototype.shl=function(q,j){return this._verify1(q),this.imod(q.ushln(j))},S.prototype.imul=function(q,j){return this._verify2(q,j),this.imod(q.imul(j))},S.prototype.mul=function(q,j){return this._verify2(q,j),this.imod(q.mul(j))},S.prototype.isqr=function(q){return this.imul(q,q.clone())},S.prototype.sqr=function(q){return this.mul(q,q)},S.prototype.sqrt=function(q){if(q.isZero())return q.clone();var j=this.m.andln(3);if(Z(j%2===1),j===3){var k=this.m.add(new V(1)).iushrn(2);return this.pow(q,k)}for(var g=this.m.subn(1),N=0;!g.isZero()&&g.andln(1)===0;)N++,g.iushrn(1);Z(!g.isZero());var x=new V(1).toRed(this),_=x.redNeg(),B=this.m.subn(1).iushrn(1),y=this.m.bitLength();for(y=new V(2*y*y).toRed(this);this.pow(y,B).cmp(_)!==0;)y.redIAdd(_);for(var w=this.pow(y,g),f=this.pow(q,g.addn(1).iushrn(1)),p=this.pow(q,g),c=N;p.cmp(x)!==0;){for(var h=p,d=0;h.cmp(x)!==0;d++)h=h.redSqr();Z(d=0;N--){for(var w=j.words[N],f=y-1;f>=0;f--){var p=w>>f&1;if(x!==g[0]&&(x=this.sqr(x)),p===0&&_===0){B=0;continue}_<<=1,_|=p,B++,!(B!==k&&(N!==0||f!==0))&&(x=this.mul(x,g[_]),B=0,_=0)}y=26}return x},S.prototype.convertTo=function(q){var j=q.umod(this.m);return j===q?j.clone():j},S.prototype.convertFrom=function(q){var j=q.clone();return j.red=null,j},V.mont=function(q){return new v(q)};function v(q){S.call(this,q),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new V(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}G(v,S),v.prototype.convertTo=function(q){return this.imod(q.ushln(this.shift))},v.prototype.convertFrom=function(q){var j=this.imod(q.mul(this.rinv));return j.red=null,j},v.prototype.imul=function(q,j){if(q.isZero()||j.isZero())return q.words[0]=0,q.length=1,q;var k=q.imul(j),g=k.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=k.isub(g).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},v.prototype.mul=function(q,j){if(q.isZero()||j.isZero())return new V(0)._forceRed(this);var k=q.mul(j),g=k.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=k.isub(g).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},v.prototype.invm=function(q){var j=this.imod(q._invmp(this.m).mul(this.r2));return j._forceRed(this)}})(typeof $>"u"||$,bZ)}}),qQ=P$({"node_modules/miller-rabin/node_modules/bn.js/lib/bn.js"(bZ,$){(function(Q,Y){function Z(q,j){if(!q)throw new Error(j||"Assertion failed")}function G(q,j){q.super_=j;var k=function(){};k.prototype=j.prototype,q.prototype=new k,q.prototype.constructor=q}function V(q,j,k){if(V.isBN(q))return q;this.negative=0,this.words=null,this.length=0,this.red=null,q!==null&&((j==="le"||j==="be")&&(k=j,j=10),this._init(q||0,j||10,k||"be"))}typeof Q=="object"?Q.exports=V:Y.BN=V,V.BN=V,V.wordSize=26;var U;try{typeof window<"u"&&typeof window.Buffer<"u"?U=window.Buffer:U=L$("buffer").Buffer}catch{}V.isBN=function(q){return q instanceof V?!0:q!==null&&typeof q=="object"&&q.constructor.wordSize===V.wordSize&&Array.isArray(q.words)},V.max=function(q,j){return q.cmp(j)>0?q:j},V.min=function(q,j){return q.cmp(j)<0?q:j},V.prototype._init=function(q,j,k){if(typeof q=="number")return this._initNumber(q,j,k);if(typeof q=="object")return this._initArray(q,j,k);j==="hex"&&(j=16),Z(j===(j|0)&&j>=2&&j<=36),q=q.toString().replace(/\s+/g,"");var g=0;q[0]==="-"&&(g++,this.negative=1),g=0;g-=3)x=q[g]|q[g-1]<<8|q[g-2]<<16,this.words[N]|=x<<_&67108863,this.words[N+1]=x>>>26-_&67108863,_+=24,_>=26&&(_-=26,N++);else if(k==="le")for(g=0,N=0;g>>26-_&67108863,_+=24,_>=26&&(_-=26,N++);return this.strip()};function X(q,j){var k=q.charCodeAt(j);return k>=65&&k<=70?k-55:k>=97&&k<=102?k-87:k-48&15}function K(q,j,k){var g=X(q,k);return k-1>=j&&(g|=X(q,k-1)<<4),g}V.prototype._parseHex=function(q,j,k){this.length=Math.ceil((q.length-j)/6),this.words=new Array(this.length);for(var g=0;g=j;g-=2)_=K(q,j,g)<=18?(N-=18,x+=1,this.words[x]|=_>>>26):N+=8;else{var B=q.length-j;for(g=B%2===0?j+1:j;g=18?(N-=18,x+=1,this.words[x]|=_>>>26):N+=8}this.strip()};function I(q,j,k,g){for(var N=0,x=Math.min(q.length,k),_=j;_=49?N+=B-49+10:B>=17?N+=B-17+10:N+=B}return N}V.prototype._parseBase=function(q,j,k){this.words=[0],this.length=1;for(var g=0,N=1;N<=67108863;N*=j)g++;g--,N=N/j|0;for(var x=q.length-k,_=x%g,B=Math.min(x,x-_)+k,y=0,w=k;w1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},V.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},V.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],O=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],F=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];V.prototype.toString=function(q,j){q=q||10,j=j|0||1;var k;if(q===16||q==="hex"){k="";for(var g=0,N=0,x=0;x>>24-g&16777215,N!==0||x!==this.length-1?k=J[6-B.length]+B+k:k=B+k,g+=2,g>=26&&(g-=26,x--)}for(N!==0&&(k=N.toString(16)+k);k.length%j!==0;)k="0"+k;return this.negative!==0&&(k="-"+k),k}if(q===(q|0)&&q>=2&&q<=36){var y=O[q],w=F[q];k="";var f=this.clone();for(f.negative=0;!f.isZero();){var p=f.modn(w).toString(q);f=f.idivn(w),f.isZero()?k=p+k:k=J[y-p.length]+p+k}for(this.isZero()&&(k="0"+k);k.length%j!==0;)k="0"+k;return this.negative!==0&&(k="-"+k),k}Z(!1,"Base should be between 2 and 36")},V.prototype.toNumber=function(){var q=this.words[0];return this.length===2?q+=this.words[1]*67108864:this.length===3&&this.words[2]===1?q+=4503599627370496+this.words[1]*67108864:this.length>2&&Z(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-q:q},V.prototype.toJSON=function(){return this.toString(16)},V.prototype.toBuffer=function(q,j){return Z(typeof U<"u"),this.toArrayLike(U,q,j)},V.prototype.toArray=function(q,j){return this.toArrayLike(Array,q,j)},V.prototype.toArrayLike=function(q,j,k){var g=this.byteLength(),N=k||Math.max(1,g);Z(g<=N,"byte array longer than desired length"),Z(N>0,"Requested array length <= 0"),this.strip();var x=j==="le",_=new q(N),B,y,w=this.clone();if(x){for(y=0;!w.isZero();y++)B=w.andln(255),w.iushrn(8),_[y]=B;for(;y=4096&&(k+=13,j>>>=13),j>=64&&(k+=7,j>>>=7),j>=8&&(k+=4,j>>>=4),j>=2&&(k+=2,j>>>=2),k+j},V.prototype._zeroBits=function(q){if(q===0)return 26;var j=q,k=0;return(j&8191)===0&&(k+=13,j>>>=13),(j&127)===0&&(k+=7,j>>>=7),(j&15)===0&&(k+=4,j>>>=4),(j&3)===0&&(k+=2,j>>>=2),(j&1)===0&&k++,k},V.prototype.bitLength=function(){var q=this.words[this.length-1],j=this._countBits(q);return(this.length-1)*26+j};function A(q){for(var j=new Array(q.bitLength()),k=0;k>>N}return j}V.prototype.zeroBits=function(){if(this.isZero())return 0;for(var q=0,j=0;jq.length?this.clone().ior(q):q.clone().ior(this)},V.prototype.uor=function(q){return this.length>q.length?this.clone().iuor(q):q.clone().iuor(this)},V.prototype.iuand=function(q){var j;this.length>q.length?j=q:j=this;for(var k=0;kq.length?this.clone().iand(q):q.clone().iand(this)},V.prototype.uand=function(q){return this.length>q.length?this.clone().iuand(q):q.clone().iuand(this)},V.prototype.iuxor=function(q){var j,k;this.length>q.length?(j=this,k=q):(j=q,k=this);for(var g=0;gq.length?this.clone().ixor(q):q.clone().ixor(this)},V.prototype.uxor=function(q){return this.length>q.length?this.clone().iuxor(q):q.clone().iuxor(this)},V.prototype.inotn=function(q){Z(typeof q=="number"&&q>=0);var j=Math.ceil(q/26)|0,k=q%26;this._expand(j),k>0&&j--;for(var g=0;g0&&(this.words[g]=~this.words[g]&67108863>>26-k),this.strip()},V.prototype.notn=function(q){return this.clone().inotn(q)},V.prototype.setn=function(q,j){Z(typeof q=="number"&&q>=0);var k=q/26|0,g=q%26;return this._expand(k+1),j?this.words[k]=this.words[k]|1<q.length?(k=this,g=q):(k=q,g=this);for(var N=0,x=0;x>>26;for(;N!==0&&x>>26;if(this.length=k.length,N!==0)this.words[this.length]=N,this.length++;else if(k!==this)for(;xq.length?this.clone().iadd(q):q.clone().iadd(this)},V.prototype.isub=function(q){if(q.negative!==0){q.negative=0;var j=this.iadd(q);return q.negative=1,j._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(q),this.negative=1,this._normSign();var k=this.cmp(q);if(k===0)return this.negative=0,this.length=1,this.words[0]=0,this;var g,N;k>0?(g=this,N=q):(g=q,N=this);for(var x=0,_=0;_>26,this.words[_]=j&67108863;for(;x!==0&&_>26,this.words[_]=j&67108863;if(x===0&&_>>26,p=y&67108863,c=Math.min(w,j.length-1),h=Math.max(0,w-q.length+1);h<=c;h++){var d=w-h|0;N=q.words[d]|0,x=j.words[h]|0,_=N*x+p,f+=_/67108864|0,p=_&67108863}k.words[w]=p|0,y=f|0}return y!==0?k.words[w]=y|0:k.length--,k.strip()}var H=function(q,j,k){var g=q.words,N=j.words,x=k.words,_=0,B,y,w,f=g[0]|0,p=f&8191,c=f>>>13,h=g[1]|0,d=h&8191,b=h>>>13,l=g[2]|0,o=l&8191,u=l>>>13,n=g[3]|0,s=n&8191,t=n>>>13,m=g[4]|0,a=m&8191,r=m>>>13,e=g[5]|0,i=e&8191,$0=e>>>13,Q0=g[6]|0,Y0=Q0&8191,Z0=Q0>>>13,G0=g[7]|0,V0=G0&8191,U0=G0>>>13,X0=g[8]|0,K0=X0&8191,I0=X0>>>13,J0=g[9]|0,O0=J0&8191,F0=J0>>>13,A0=N[0]|0,W0=A0&8191,H0=A0>>>13,E0=N[1]|0,T0=E0&8191,D0=E0>>>13,C0=N[2]|0,L0=C0&8191,R0=C0>>>13,P0=N[3]|0,z0=P0&8191,M0=P0>>>13,S0=N[4]|0,v0=S0&8191,q0=S0>>>13,j0=N[5]|0,k0=j0&8191,g0=j0>>>13,N0=N[6]|0,x0=N0&8191,_0=N0>>>13,B0=N[7]|0,y0=B0&8191,w0=B0>>>13,f0=N[8]|0,p0=f0&8191,c0=f0>>>13,h0=N[9]|0,d0=h0&8191,b0=h0>>>13;k.negative=q.negative^j.negative,k.length=19,B=Math.imul(p,W0),y=Math.imul(p,H0),y=y+Math.imul(c,W0)|0,w=Math.imul(c,H0);var l0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(l0>>>26)|0,l0&=67108863,B=Math.imul(d,W0),y=Math.imul(d,H0),y=y+Math.imul(b,W0)|0,w=Math.imul(b,H0),B=B+Math.imul(p,T0)|0,y=y+Math.imul(p,D0)|0,y=y+Math.imul(c,T0)|0,w=w+Math.imul(c,D0)|0;var o0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(o0>>>26)|0,o0&=67108863,B=Math.imul(o,W0),y=Math.imul(o,H0),y=y+Math.imul(u,W0)|0,w=Math.imul(u,H0),B=B+Math.imul(d,T0)|0,y=y+Math.imul(d,D0)|0,y=y+Math.imul(b,T0)|0,w=w+Math.imul(b,D0)|0,B=B+Math.imul(p,L0)|0,y=y+Math.imul(p,R0)|0,y=y+Math.imul(c,L0)|0,w=w+Math.imul(c,R0)|0;var u0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(u0>>>26)|0,u0&=67108863,B=Math.imul(s,W0),y=Math.imul(s,H0),y=y+Math.imul(t,W0)|0,w=Math.imul(t,H0),B=B+Math.imul(o,T0)|0,y=y+Math.imul(o,D0)|0,y=y+Math.imul(u,T0)|0,w=w+Math.imul(u,D0)|0,B=B+Math.imul(d,L0)|0,y=y+Math.imul(d,R0)|0,y=y+Math.imul(b,L0)|0,w=w+Math.imul(b,R0)|0,B=B+Math.imul(p,z0)|0,y=y+Math.imul(p,M0)|0,y=y+Math.imul(c,z0)|0,w=w+Math.imul(c,M0)|0;var n0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(n0>>>26)|0,n0&=67108863,B=Math.imul(a,W0),y=Math.imul(a,H0),y=y+Math.imul(r,W0)|0,w=Math.imul(r,H0),B=B+Math.imul(s,T0)|0,y=y+Math.imul(s,D0)|0,y=y+Math.imul(t,T0)|0,w=w+Math.imul(t,D0)|0,B=B+Math.imul(o,L0)|0,y=y+Math.imul(o,R0)|0,y=y+Math.imul(u,L0)|0,w=w+Math.imul(u,R0)|0,B=B+Math.imul(d,z0)|0,y=y+Math.imul(d,M0)|0,y=y+Math.imul(b,z0)|0,w=w+Math.imul(b,M0)|0,B=B+Math.imul(p,v0)|0,y=y+Math.imul(p,q0)|0,y=y+Math.imul(c,v0)|0,w=w+Math.imul(c,q0)|0;var s0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(s0>>>26)|0,s0&=67108863,B=Math.imul(i,W0),y=Math.imul(i,H0),y=y+Math.imul($0,W0)|0,w=Math.imul($0,H0),B=B+Math.imul(a,T0)|0,y=y+Math.imul(a,D0)|0,y=y+Math.imul(r,T0)|0,w=w+Math.imul(r,D0)|0,B=B+Math.imul(s,L0)|0,y=y+Math.imul(s,R0)|0,y=y+Math.imul(t,L0)|0,w=w+Math.imul(t,R0)|0,B=B+Math.imul(o,z0)|0,y=y+Math.imul(o,M0)|0,y=y+Math.imul(u,z0)|0,w=w+Math.imul(u,M0)|0,B=B+Math.imul(d,v0)|0,y=y+Math.imul(d,q0)|0,y=y+Math.imul(b,v0)|0,w=w+Math.imul(b,q0)|0,B=B+Math.imul(p,k0)|0,y=y+Math.imul(p,g0)|0,y=y+Math.imul(c,k0)|0,w=w+Math.imul(c,g0)|0;var t0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(t0>>>26)|0,t0&=67108863,B=Math.imul(Y0,W0),y=Math.imul(Y0,H0),y=y+Math.imul(Z0,W0)|0,w=Math.imul(Z0,H0),B=B+Math.imul(i,T0)|0,y=y+Math.imul(i,D0)|0,y=y+Math.imul($0,T0)|0,w=w+Math.imul($0,D0)|0,B=B+Math.imul(a,L0)|0,y=y+Math.imul(a,R0)|0,y=y+Math.imul(r,L0)|0,w=w+Math.imul(r,R0)|0,B=B+Math.imul(s,z0)|0,y=y+Math.imul(s,M0)|0,y=y+Math.imul(t,z0)|0,w=w+Math.imul(t,M0)|0,B=B+Math.imul(o,v0)|0,y=y+Math.imul(o,q0)|0,y=y+Math.imul(u,v0)|0,w=w+Math.imul(u,q0)|0,B=B+Math.imul(d,k0)|0,y=y+Math.imul(d,g0)|0,y=y+Math.imul(b,k0)|0,w=w+Math.imul(b,g0)|0,B=B+Math.imul(p,x0)|0,y=y+Math.imul(p,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,_0)|0;var m0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(m0>>>26)|0,m0&=67108863,B=Math.imul(V0,W0),y=Math.imul(V0,H0),y=y+Math.imul(U0,W0)|0,w=Math.imul(U0,H0),B=B+Math.imul(Y0,T0)|0,y=y+Math.imul(Y0,D0)|0,y=y+Math.imul(Z0,T0)|0,w=w+Math.imul(Z0,D0)|0,B=B+Math.imul(i,L0)|0,y=y+Math.imul(i,R0)|0,y=y+Math.imul($0,L0)|0,w=w+Math.imul($0,R0)|0,B=B+Math.imul(a,z0)|0,y=y+Math.imul(a,M0)|0,y=y+Math.imul(r,z0)|0,w=w+Math.imul(r,M0)|0,B=B+Math.imul(s,v0)|0,y=y+Math.imul(s,q0)|0,y=y+Math.imul(t,v0)|0,w=w+Math.imul(t,q0)|0,B=B+Math.imul(o,k0)|0,y=y+Math.imul(o,g0)|0,y=y+Math.imul(u,k0)|0,w=w+Math.imul(u,g0)|0,B=B+Math.imul(d,x0)|0,y=y+Math.imul(d,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,_0)|0,B=B+Math.imul(p,y0)|0,y=y+Math.imul(p,w0)|0,y=y+Math.imul(c,y0)|0,w=w+Math.imul(c,w0)|0;var a0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(a0>>>26)|0,a0&=67108863,B=Math.imul(K0,W0),y=Math.imul(K0,H0),y=y+Math.imul(I0,W0)|0,w=Math.imul(I0,H0),B=B+Math.imul(V0,T0)|0,y=y+Math.imul(V0,D0)|0,y=y+Math.imul(U0,T0)|0,w=w+Math.imul(U0,D0)|0,B=B+Math.imul(Y0,L0)|0,y=y+Math.imul(Y0,R0)|0,y=y+Math.imul(Z0,L0)|0,w=w+Math.imul(Z0,R0)|0,B=B+Math.imul(i,z0)|0,y=y+Math.imul(i,M0)|0,y=y+Math.imul($0,z0)|0,w=w+Math.imul($0,M0)|0,B=B+Math.imul(a,v0)|0,y=y+Math.imul(a,q0)|0,y=y+Math.imul(r,v0)|0,w=w+Math.imul(r,q0)|0,B=B+Math.imul(s,k0)|0,y=y+Math.imul(s,g0)|0,y=y+Math.imul(t,k0)|0,w=w+Math.imul(t,g0)|0,B=B+Math.imul(o,x0)|0,y=y+Math.imul(o,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,_0)|0,B=B+Math.imul(d,y0)|0,y=y+Math.imul(d,w0)|0,y=y+Math.imul(b,y0)|0,w=w+Math.imul(b,w0)|0,B=B+Math.imul(p,p0)|0,y=y+Math.imul(p,c0)|0,y=y+Math.imul(c,p0)|0,w=w+Math.imul(c,c0)|0;var r0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(r0>>>26)|0,r0&=67108863,B=Math.imul(O0,W0),y=Math.imul(O0,H0),y=y+Math.imul(F0,W0)|0,w=Math.imul(F0,H0),B=B+Math.imul(K0,T0)|0,y=y+Math.imul(K0,D0)|0,y=y+Math.imul(I0,T0)|0,w=w+Math.imul(I0,D0)|0,B=B+Math.imul(V0,L0)|0,y=y+Math.imul(V0,R0)|0,y=y+Math.imul(U0,L0)|0,w=w+Math.imul(U0,R0)|0,B=B+Math.imul(Y0,z0)|0,y=y+Math.imul(Y0,M0)|0,y=y+Math.imul(Z0,z0)|0,w=w+Math.imul(Z0,M0)|0,B=B+Math.imul(i,v0)|0,y=y+Math.imul(i,q0)|0,y=y+Math.imul($0,v0)|0,w=w+Math.imul($0,q0)|0,B=B+Math.imul(a,k0)|0,y=y+Math.imul(a,g0)|0,y=y+Math.imul(r,k0)|0,w=w+Math.imul(r,g0)|0,B=B+Math.imul(s,x0)|0,y=y+Math.imul(s,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,_0)|0,B=B+Math.imul(o,y0)|0,y=y+Math.imul(o,w0)|0,y=y+Math.imul(u,y0)|0,w=w+Math.imul(u,w0)|0,B=B+Math.imul(d,p0)|0,y=y+Math.imul(d,c0)|0,y=y+Math.imul(b,p0)|0,w=w+Math.imul(b,c0)|0,B=B+Math.imul(p,d0)|0,y=y+Math.imul(p,b0)|0,y=y+Math.imul(c,d0)|0,w=w+Math.imul(c,b0)|0;var e0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(e0>>>26)|0,e0&=67108863,B=Math.imul(O0,T0),y=Math.imul(O0,D0),y=y+Math.imul(F0,T0)|0,w=Math.imul(F0,D0),B=B+Math.imul(K0,L0)|0,y=y+Math.imul(K0,R0)|0,y=y+Math.imul(I0,L0)|0,w=w+Math.imul(I0,R0)|0,B=B+Math.imul(V0,z0)|0,y=y+Math.imul(V0,M0)|0,y=y+Math.imul(U0,z0)|0,w=w+Math.imul(U0,M0)|0,B=B+Math.imul(Y0,v0)|0,y=y+Math.imul(Y0,q0)|0,y=y+Math.imul(Z0,v0)|0,w=w+Math.imul(Z0,q0)|0,B=B+Math.imul(i,k0)|0,y=y+Math.imul(i,g0)|0,y=y+Math.imul($0,k0)|0,w=w+Math.imul($0,g0)|0,B=B+Math.imul(a,x0)|0,y=y+Math.imul(a,_0)|0,y=y+Math.imul(r,x0)|0,w=w+Math.imul(r,_0)|0,B=B+Math.imul(s,y0)|0,y=y+Math.imul(s,w0)|0,y=y+Math.imul(t,y0)|0,w=w+Math.imul(t,w0)|0,B=B+Math.imul(o,p0)|0,y=y+Math.imul(o,c0)|0,y=y+Math.imul(u,p0)|0,w=w+Math.imul(u,c0)|0,B=B+Math.imul(d,d0)|0,y=y+Math.imul(d,b0)|0,y=y+Math.imul(b,d0)|0,w=w+Math.imul(b,b0)|0;var i0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(i0>>>26)|0,i0&=67108863,B=Math.imul(O0,L0),y=Math.imul(O0,R0),y=y+Math.imul(F0,L0)|0,w=Math.imul(F0,R0),B=B+Math.imul(K0,z0)|0,y=y+Math.imul(K0,M0)|0,y=y+Math.imul(I0,z0)|0,w=w+Math.imul(I0,M0)|0,B=B+Math.imul(V0,v0)|0,y=y+Math.imul(V0,q0)|0,y=y+Math.imul(U0,v0)|0,w=w+Math.imul(U0,q0)|0,B=B+Math.imul(Y0,k0)|0,y=y+Math.imul(Y0,g0)|0,y=y+Math.imul(Z0,k0)|0,w=w+Math.imul(Z0,g0)|0,B=B+Math.imul(i,x0)|0,y=y+Math.imul(i,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,_0)|0,B=B+Math.imul(a,y0)|0,y=y+Math.imul(a,w0)|0,y=y+Math.imul(r,y0)|0,w=w+Math.imul(r,w0)|0,B=B+Math.imul(s,p0)|0,y=y+Math.imul(s,c0)|0,y=y+Math.imul(t,p0)|0,w=w+Math.imul(t,c0)|0,B=B+Math.imul(o,d0)|0,y=y+Math.imul(o,b0)|0,y=y+Math.imul(u,d0)|0,w=w+Math.imul(u,b0)|0;var $$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+($$>>>26)|0,$$&=67108863,B=Math.imul(O0,z0),y=Math.imul(O0,M0),y=y+Math.imul(F0,z0)|0,w=Math.imul(F0,M0),B=B+Math.imul(K0,v0)|0,y=y+Math.imul(K0,q0)|0,y=y+Math.imul(I0,v0)|0,w=w+Math.imul(I0,q0)|0,B=B+Math.imul(V0,k0)|0,y=y+Math.imul(V0,g0)|0,y=y+Math.imul(U0,k0)|0,w=w+Math.imul(U0,g0)|0,B=B+Math.imul(Y0,x0)|0,y=y+Math.imul(Y0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,_0)|0,B=B+Math.imul(i,y0)|0,y=y+Math.imul(i,w0)|0,y=y+Math.imul($0,y0)|0,w=w+Math.imul($0,w0)|0,B=B+Math.imul(a,p0)|0,y=y+Math.imul(a,c0)|0,y=y+Math.imul(r,p0)|0,w=w+Math.imul(r,c0)|0,B=B+Math.imul(s,d0)|0,y=y+Math.imul(s,b0)|0,y=y+Math.imul(t,d0)|0,w=w+Math.imul(t,b0)|0;var Q$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,B=Math.imul(O0,v0),y=Math.imul(O0,q0),y=y+Math.imul(F0,v0)|0,w=Math.imul(F0,q0),B=B+Math.imul(K0,k0)|0,y=y+Math.imul(K0,g0)|0,y=y+Math.imul(I0,k0)|0,w=w+Math.imul(I0,g0)|0,B=B+Math.imul(V0,x0)|0,y=y+Math.imul(V0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,_0)|0,B=B+Math.imul(Y0,y0)|0,y=y+Math.imul(Y0,w0)|0,y=y+Math.imul(Z0,y0)|0,w=w+Math.imul(Z0,w0)|0,B=B+Math.imul(i,p0)|0,y=y+Math.imul(i,c0)|0,y=y+Math.imul($0,p0)|0,w=w+Math.imul($0,c0)|0,B=B+Math.imul(a,d0)|0,y=y+Math.imul(a,b0)|0,y=y+Math.imul(r,d0)|0,w=w+Math.imul(r,b0)|0;var Y$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,B=Math.imul(O0,k0),y=Math.imul(O0,g0),y=y+Math.imul(F0,k0)|0,w=Math.imul(F0,g0),B=B+Math.imul(K0,x0)|0,y=y+Math.imul(K0,_0)|0,y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,_0)|0,B=B+Math.imul(V0,y0)|0,y=y+Math.imul(V0,w0)|0,y=y+Math.imul(U0,y0)|0,w=w+Math.imul(U0,w0)|0,B=B+Math.imul(Y0,p0)|0,y=y+Math.imul(Y0,c0)|0,y=y+Math.imul(Z0,p0)|0,w=w+Math.imul(Z0,c0)|0,B=B+Math.imul(i,d0)|0,y=y+Math.imul(i,b0)|0,y=y+Math.imul($0,d0)|0,w=w+Math.imul($0,b0)|0;var Z$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,B=Math.imul(O0,x0),y=Math.imul(O0,_0),y=y+Math.imul(F0,x0)|0,w=Math.imul(F0,_0),B=B+Math.imul(K0,y0)|0,y=y+Math.imul(K0,w0)|0,y=y+Math.imul(I0,y0)|0,w=w+Math.imul(I0,w0)|0,B=B+Math.imul(V0,p0)|0,y=y+Math.imul(V0,c0)|0,y=y+Math.imul(U0,p0)|0,w=w+Math.imul(U0,c0)|0,B=B+Math.imul(Y0,d0)|0,y=y+Math.imul(Y0,b0)|0,y=y+Math.imul(Z0,d0)|0,w=w+Math.imul(Z0,b0)|0;var G$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(G$>>>26)|0,G$&=67108863,B=Math.imul(O0,y0),y=Math.imul(O0,w0),y=y+Math.imul(F0,y0)|0,w=Math.imul(F0,w0),B=B+Math.imul(K0,p0)|0,y=y+Math.imul(K0,c0)|0,y=y+Math.imul(I0,p0)|0,w=w+Math.imul(I0,c0)|0,B=B+Math.imul(V0,d0)|0,y=y+Math.imul(V0,b0)|0,y=y+Math.imul(U0,d0)|0,w=w+Math.imul(U0,b0)|0;var V$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(V$>>>26)|0,V$&=67108863,B=Math.imul(O0,p0),y=Math.imul(O0,c0),y=y+Math.imul(F0,p0)|0,w=Math.imul(F0,c0),B=B+Math.imul(K0,d0)|0,y=y+Math.imul(K0,b0)|0,y=y+Math.imul(I0,d0)|0,w=w+Math.imul(I0,b0)|0;var U$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(U$>>>26)|0,U$&=67108863,B=Math.imul(O0,d0),y=Math.imul(O0,b0),y=y+Math.imul(F0,d0)|0,w=Math.imul(F0,b0);var X$=(_+B|0)+((y&8191)<<13)|0;return _=(w+(y>>>13)|0)+(X$>>>26)|0,X$&=67108863,x[0]=l0,x[1]=o0,x[2]=u0,x[3]=n0,x[4]=s0,x[5]=t0,x[6]=m0,x[7]=a0,x[8]=r0,x[9]=e0,x[10]=i0,x[11]=$$,x[12]=Q$,x[13]=Y$,x[14]=Z$,x[15]=G$,x[16]=V$,x[17]=U$,x[18]=X$,_!==0&&(x[19]=_,k.length++),k};Math.imul||(H=W);function E(q,j,k){k.negative=j.negative^q.negative,k.length=q.length+j.length;for(var g=0,N=0,x=0;x>>26)|0,N+=_>>>26,_&=67108863}k.words[x]=B,g=_,_=N}return g!==0?k.words[x]=g:k.length--,k.strip()}function T(q,j,k){var g=new D;return g.mulp(q,j,k)}V.prototype.mulTo=function(q,j){var k,g=this.length+q.length;return this.length===10&&q.length===10?k=H(this,q,j):g<63?k=W(this,q,j):g<1024?k=E(this,q,j):k=T(this,q,j),k};function D(q,j){this.x=q,this.y=j}D.prototype.makeRBT=function(q){for(var j=new Array(q),k=V.prototype._countBits(q)-1,g=0;g>=1;return g},D.prototype.permute=function(q,j,k,g,N,x){for(var _=0;_>>1)N++;return 1<>>13,k[2*x+1]=N&8191,N=N>>>13;for(x=2*j;x>=26,j+=g/67108864|0,j+=N>>>26,this.words[k]=N&67108863}return j!==0&&(this.words[k]=j,this.length++),this},V.prototype.muln=function(q){return this.clone().imuln(q)},V.prototype.sqr=function(){return this.mul(this)},V.prototype.isqr=function(){return this.imul(this.clone())},V.prototype.pow=function(q){var j=A(q);if(j.length===0)return new V(1);for(var k=this,g=0;g=0);var j=q%26,k=(q-j)/26,g=67108863>>>26-j<<26-j,N;if(j!==0){var x=0;for(N=0;N>>26-j}x&&(this.words[N]=x,this.length++)}if(k!==0){for(N=this.length-1;N>=0;N--)this.words[N+k]=this.words[N];for(N=0;N=0);var g;j?g=(j-j%26)/26:g=0;var N=q%26,x=Math.min((q-N)/26,this.length),_=67108863^67108863>>>N<x)for(this.length-=x,y=0;y=0&&(w!==0||y>=g);y--){var f=this.words[y]|0;this.words[y]=w<<26-N|f>>>N,w=f&_}return B&&w!==0&&(B.words[B.length++]=w),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},V.prototype.ishrn=function(q,j,k){return Z(this.negative===0),this.iushrn(q,j,k)},V.prototype.shln=function(q){return this.clone().ishln(q)},V.prototype.ushln=function(q){return this.clone().iushln(q)},V.prototype.shrn=function(q){return this.clone().ishrn(q)},V.prototype.ushrn=function(q){return this.clone().iushrn(q)},V.prototype.testn=function(q){Z(typeof q=="number"&&q>=0);var j=q%26,k=(q-j)/26,g=1<=0);var j=q%26,k=(q-j)/26;if(Z(this.negative===0,"imaskn works only with positive numbers"),this.length<=k)return this;if(j!==0&&k++,this.length=Math.min(k,this.length),j!==0){var g=67108863^67108863>>>j<=67108864;j++)this.words[j]-=67108864,j===this.length-1?this.words[j+1]=1:this.words[j+1]++;return this.length=Math.max(this.length,j+1),this},V.prototype.isubn=function(q){if(Z(typeof q=="number"),Z(q<67108864),q<0)return this.iaddn(-q);if(this.negative!==0)return this.negative=0,this.iaddn(q),this.negative=1,this;if(this.words[0]-=q,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var j=0;j>26)-(B/67108864|0),this.words[N+k]=x&67108863}for(;N>26,this.words[N+k]=x&67108863;if(_===0)return this.strip();for(Z(_===-1),_=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},V.prototype._wordDiv=function(q,j){var k=this.length-q.length,g=this.clone(),N=q,x=N.words[N.length-1]|0,_=this._countBits(x);k=26-_,k!==0&&(N=N.ushln(k),g.iushln(k),x=N.words[N.length-1]|0);var B=g.length-N.length,y;if(j!=="mod"){y=new V(null),y.length=B+1,y.words=new Array(y.length);for(var w=0;w=0;p--){var c=(g.words[N.length+p]|0)*67108864+(g.words[N.length+p-1]|0);for(c=Math.min(c/x|0,67108863),g._ishlnsubmul(N,c,p);g.negative!==0;)c--,g.negative=0,g._ishlnsubmul(N,1,p),g.isZero()||(g.negative^=1);y&&(y.words[p]=c)}return y&&y.strip(),g.strip(),j!=="div"&&k!==0&&g.iushrn(k),{div:y||null,mod:g}},V.prototype.divmod=function(q,j,k){if(Z(!q.isZero()),this.isZero())return{div:new V(0),mod:new V(0)};var g,N,x;return this.negative!==0&&q.negative===0?(x=this.neg().divmod(q,j),j!=="mod"&&(g=x.div.neg()),j!=="div"&&(N=x.mod.neg(),k&&N.negative!==0&&N.iadd(q)),{div:g,mod:N}):this.negative===0&&q.negative!==0?(x=this.divmod(q.neg(),j),j!=="mod"&&(g=x.div.neg()),{div:g,mod:x.mod}):(this.negative&q.negative)!==0?(x=this.neg().divmod(q.neg(),j),j!=="div"&&(N=x.mod.neg(),k&&N.negative!==0&&N.isub(q)),{div:x.div,mod:N}):q.length>this.length||this.cmp(q)<0?{div:new V(0),mod:this}:q.length===1?j==="div"?{div:this.divn(q.words[0]),mod:null}:j==="mod"?{div:null,mod:new V(this.modn(q.words[0]))}:{div:this.divn(q.words[0]),mod:new V(this.modn(q.words[0]))}:this._wordDiv(q,j)},V.prototype.div=function(q){return this.divmod(q,"div",!1).div},V.prototype.mod=function(q){return this.divmod(q,"mod",!1).mod},V.prototype.umod=function(q){return this.divmod(q,"mod",!0).mod},V.prototype.divRound=function(q){var j=this.divmod(q);if(j.mod.isZero())return j.div;var k=j.div.negative!==0?j.mod.isub(q):j.mod,g=q.ushrn(1),N=q.andln(1),x=k.cmp(g);return x<0||N===1&&x===0?j.div:j.div.negative!==0?j.div.isubn(1):j.div.iaddn(1)},V.prototype.modn=function(q){Z(q<=67108863);for(var j=(1<<26)%q,k=0,g=this.length-1;g>=0;g--)k=(j*k+(this.words[g]|0))%q;return k},V.prototype.idivn=function(q){Z(q<=67108863);for(var j=0,k=this.length-1;k>=0;k--){var g=(this.words[k]|0)+j*67108864;this.words[k]=g/q|0,j=g%q}return this.strip()},V.prototype.divn=function(q){return this.clone().idivn(q)},V.prototype.egcd=function(q){Z(q.negative===0),Z(!q.isZero());var j=this,k=q.clone();j.negative!==0?j=j.umod(q):j=j.clone();for(var g=new V(1),N=new V(0),x=new V(0),_=new V(1),B=0;j.isEven()&&k.isEven();)j.iushrn(1),k.iushrn(1),++B;for(var y=k.clone(),w=j.clone();!j.isZero();){for(var f=0,p=1;(j.words[0]&p)===0&&f<26;++f,p<<=1);if(f>0)for(j.iushrn(f);f-- >0;)(g.isOdd()||N.isOdd())&&(g.iadd(y),N.isub(w)),g.iushrn(1),N.iushrn(1);for(var c=0,h=1;(k.words[0]&h)===0&&c<26;++c,h<<=1);if(c>0)for(k.iushrn(c);c-- >0;)(x.isOdd()||_.isOdd())&&(x.iadd(y),_.isub(w)),x.iushrn(1),_.iushrn(1);j.cmp(k)>=0?(j.isub(k),g.isub(x),N.isub(_)):(k.isub(j),x.isub(g),_.isub(N))}return{a:x,b:_,gcd:k.iushln(B)}},V.prototype._invmp=function(q){Z(q.negative===0),Z(!q.isZero());var j=this,k=q.clone();j.negative!==0?j=j.umod(q):j=j.clone();for(var g=new V(1),N=new V(0),x=k.clone();j.cmpn(1)>0&&k.cmpn(1)>0;){for(var _=0,B=1;(j.words[0]&B)===0&&_<26;++_,B<<=1);if(_>0)for(j.iushrn(_);_-- >0;)g.isOdd()&&g.iadd(x),g.iushrn(1);for(var y=0,w=1;(k.words[0]&w)===0&&y<26;++y,w<<=1);if(y>0)for(k.iushrn(y);y-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);j.cmp(k)>=0?(j.isub(k),g.isub(N)):(k.isub(j),N.isub(g))}var f;return j.cmpn(1)===0?f=g:f=N,f.cmpn(0)<0&&f.iadd(q),f},V.prototype.gcd=function(q){if(this.isZero())return q.abs();if(q.isZero())return this.abs();var j=this.clone(),k=q.clone();j.negative=0,k.negative=0;for(var g=0;j.isEven()&&k.isEven();g++)j.iushrn(1),k.iushrn(1);do{for(;j.isEven();)j.iushrn(1);for(;k.isEven();)k.iushrn(1);var N=j.cmp(k);if(N<0){var x=j;j=k,k=x}else if(N===0||k.cmpn(1)===0)break;j.isub(k)}while(!0);return k.iushln(g)},V.prototype.invm=function(q){return this.egcd(q).a.umod(q)},V.prototype.isEven=function(){return(this.words[0]&1)===0},V.prototype.isOdd=function(){return(this.words[0]&1)===1},V.prototype.andln=function(q){return this.words[0]&q},V.prototype.bincn=function(q){Z(typeof q=="number");var j=q%26,k=(q-j)/26,g=1<>>26,_&=67108863,this.words[x]=_}return N!==0&&(this.words[x]=N,this.length++),this},V.prototype.isZero=function(){return this.length===1&&this.words[0]===0},V.prototype.cmpn=function(q){var j=q<0;if(this.negative!==0&&!j)return-1;if(this.negative===0&&j)return 1;this.strip();var k;if(this.length>1)k=1;else{j&&(q=-q),Z(q<=67108863,"Number is too big");var g=this.words[0]|0;k=g===q?0:gq.length)return 1;if(this.length=0;k--){var g=this.words[k]|0,N=q.words[k]|0;if(g!==N){gN&&(j=1);break}}return j},V.prototype.gtn=function(q){return this.cmpn(q)===1},V.prototype.gt=function(q){return this.cmp(q)===1},V.prototype.gten=function(q){return this.cmpn(q)>=0},V.prototype.gte=function(q){return this.cmp(q)>=0},V.prototype.ltn=function(q){return this.cmpn(q)===-1},V.prototype.lt=function(q){return this.cmp(q)===-1},V.prototype.lten=function(q){return this.cmpn(q)<=0},V.prototype.lte=function(q){return this.cmp(q)<=0},V.prototype.eqn=function(q){return this.cmpn(q)===0},V.prototype.eq=function(q){return this.cmp(q)===0},V.red=function(q){return new S(q)},V.prototype.toRed=function(q){return Z(!this.red,"Already a number in reduction context"),Z(this.negative===0,"red works only with positives"),q.convertTo(this)._forceRed(q)},V.prototype.fromRed=function(){return Z(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},V.prototype._forceRed=function(q){return this.red=q,this},V.prototype.forceRed=function(q){return Z(!this.red,"Already a number in reduction context"),this._forceRed(q)},V.prototype.redAdd=function(q){return Z(this.red,"redAdd works only with red numbers"),this.red.add(this,q)},V.prototype.redIAdd=function(q){return Z(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,q)},V.prototype.redSub=function(q){return Z(this.red,"redSub works only with red numbers"),this.red.sub(this,q)},V.prototype.redISub=function(q){return Z(this.red,"redISub works only with red numbers"),this.red.isub(this,q)},V.prototype.redShl=function(q){return Z(this.red,"redShl works only with red numbers"),this.red.shl(this,q)},V.prototype.redMul=function(q){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,q),this.red.mul(this,q)},V.prototype.redIMul=function(q){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,q),this.red.imul(this,q)},V.prototype.redSqr=function(){return Z(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},V.prototype.redISqr=function(){return Z(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},V.prototype.redSqrt=function(){return Z(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},V.prototype.redInvm=function(){return Z(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},V.prototype.redNeg=function(){return Z(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},V.prototype.redPow=function(q){return Z(this.red&&!q.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,q)};var C={k256:null,p224:null,p192:null,p25519:null};function L(q,j){this.name=q,this.p=new V(j,16),this.n=this.p.bitLength(),this.k=new V(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}L.prototype._tmp=function(){var q=new V(null);return q.words=new Array(Math.ceil(this.n/13)),q},L.prototype.ireduce=function(q){var j=q,k;do this.split(j,this.tmp),j=this.imulK(j),j=j.iadd(this.tmp),k=j.bitLength();while(k>this.n);var g=k0?j.isub(this.p):j.strip!==void 0?j.strip():j._strip(),j},L.prototype.split=function(q,j){q.iushrn(this.n,0,j)},L.prototype.imulK=function(q){return q.imul(this.k)};function R(){L.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}G(R,L),R.prototype.split=function(q,j){for(var k=4194303,g=Math.min(q.length,9),N=0;N>>22,x=_}x>>>=22,q.words[N-10]=x,x===0&&q.length>10?q.length-=10:q.length-=9},R.prototype.imulK=function(q){q.words[q.length]=0,q.words[q.length+1]=0,q.length+=2;for(var j=0,k=0;k>>=26,q.words[k]=N,j=g}return j!==0&&(q.words[q.length++]=j),q},V._prime=function(q){if(C[q])return C[q];var j;if(q==="k256")j=new R;else if(q==="p224")j=new P;else if(q==="p192")j=new z;else if(q==="p25519")j=new M;else throw new Error("Unknown prime "+q);return C[q]=j,j};function S(q){if(typeof q=="string"){var j=V._prime(q);this.m=j.p,this.prime=j}else Z(q.gtn(1),"modulus must be greater than 1"),this.m=q,this.prime=null}S.prototype._verify1=function(q){Z(q.negative===0,"red works only with positives"),Z(q.red,"red works only with red numbers")},S.prototype._verify2=function(q,j){Z((q.negative|j.negative)===0,"red works only with positives"),Z(q.red&&q.red===j.red,"red works only with red numbers")},S.prototype.imod=function(q){return this.prime?this.prime.ireduce(q)._forceRed(this):q.umod(this.m)._forceRed(this)},S.prototype.neg=function(q){return q.isZero()?q.clone():this.m.sub(q)._forceRed(this)},S.prototype.add=function(q,j){this._verify2(q,j);var k=q.add(j);return k.cmp(this.m)>=0&&k.isub(this.m),k._forceRed(this)},S.prototype.iadd=function(q,j){this._verify2(q,j);var k=q.iadd(j);return k.cmp(this.m)>=0&&k.isub(this.m),k},S.prototype.sub=function(q,j){this._verify2(q,j);var k=q.sub(j);return k.cmpn(0)<0&&k.iadd(this.m),k._forceRed(this)},S.prototype.isub=function(q,j){this._verify2(q,j);var k=q.isub(j);return k.cmpn(0)<0&&k.iadd(this.m),k},S.prototype.shl=function(q,j){return this._verify1(q),this.imod(q.ushln(j))},S.prototype.imul=function(q,j){return this._verify2(q,j),this.imod(q.imul(j))},S.prototype.mul=function(q,j){return this._verify2(q,j),this.imod(q.mul(j))},S.prototype.isqr=function(q){return this.imul(q,q.clone())},S.prototype.sqr=function(q){return this.mul(q,q)},S.prototype.sqrt=function(q){if(q.isZero())return q.clone();var j=this.m.andln(3);if(Z(j%2===1),j===3){var k=this.m.add(new V(1)).iushrn(2);return this.pow(q,k)}for(var g=this.m.subn(1),N=0;!g.isZero()&&g.andln(1)===0;)N++,g.iushrn(1);Z(!g.isZero());var x=new V(1).toRed(this),_=x.redNeg(),B=this.m.subn(1).iushrn(1),y=this.m.bitLength();for(y=new V(2*y*y).toRed(this);this.pow(y,B).cmp(_)!==0;)y.redIAdd(_);for(var w=this.pow(y,g),f=this.pow(q,g.addn(1).iushrn(1)),p=this.pow(q,g),c=N;p.cmp(x)!==0;){for(var h=p,d=0;h.cmp(x)!==0;d++)h=h.redSqr();Z(d=0;N--){for(var w=j.words[N],f=y-1;f>=0;f--){var p=w>>f&1;if(x!==g[0]&&(x=this.sqr(x)),p===0&&_===0){B=0;continue}_<<=1,_|=p,B++,!(B!==k&&(N!==0||f!==0))&&(x=this.mul(x,g[_]),B=0,_=0)}y=26}return x},S.prototype.convertTo=function(q){var j=q.umod(this.m);return j===q?j.clone():j},S.prototype.convertFrom=function(q){var j=q.clone();return j.red=null,j},V.mont=function(q){return new v(q)};function v(q){S.call(this,q),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new V(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}G(v,S),v.prototype.convertTo=function(q){return this.imod(q.ushln(this.shift))},v.prototype.convertFrom=function(q){var j=this.imod(q.mul(this.rinv));return j.red=null,j},v.prototype.imul=function(q,j){if(q.isZero()||j.isZero())return q.words[0]=0,q.length=1,q;var k=q.imul(j),g=k.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=k.isub(g).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},v.prototype.mul=function(q,j){if(q.isZero()||j.isZero())return new V(0)._forceRed(this);var k=q.mul(j),g=k.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=k.isub(g).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},v.prototype.invm=function(q){var j=this.imod(q._invmp(this.m).mul(this.r2));return j._forceRed(this)}})(typeof $>"u"||$,bZ)}}),jQ=P$({"(disabled):node_modules/crypto-browserify/index.js"(){}}),kQ=P$({"node_modules/brorand/index.js"(bZ,$){var Q;$.exports=function(Z){return Q||(Q=new Y(null)),Q.generate(Z)};function Y(Z){this.rand=Z}$.exports.Rand=Y,Y.prototype.generate=function(Z){return this._rand(Z)},Y.prototype._rand=function(Z){var G=new Buffer(Z);return O$.getRandomValues(G),G}}}),gQ=P$({"node_modules/miller-rabin/lib/mr.js"(bZ,$){var Q=qQ(),Y=kQ();function Z(G){this.rand=G||new Y.Rand}$.exports=Z,Z.create=function(G){return new Z(G)},Z.prototype._randbelow=function(G){var V=G.bitLength(),U=Math.ceil(V/8);do var X=new Q(this.rand.generate(U));while(X.cmp(G)>=0);return X},Z.prototype._randrange=function(G,V){var U=V.sub(G);return G.add(this._randbelow(U))},Z.prototype.test=function(G,V,U){var X=G.bitLength(),K=Q.mont(G),I=new Q(1).toRed(K);V||(V=Math.max(1,X/48|0));for(var J=G.subn(1),O=0;!J.testn(O);O++);for(var F=G.shrn(O),A=J.toRed(K),W=!0;V>0;V--){var H=this._randrange(new Q(2),J);U&&U(H);var E=H.toRed(K).redPow(F);if(!(E.cmp(I)===0||E.cmp(A)===0)){for(var T=1;T0;V--){var A=this._randrange(new Q(2),I),W=G.gcd(A);if(W.cmpn(1)!==0)return W;var H=A.toRed(X).redPow(O);if(!(H.cmp(K)===0||H.cmp(F)===0)){for(var E=1;EP;)M.ishrn(1);if(M.isEven()&&M.iadd(U),M.testn(1)||M.iadd(X),z.cmp(X)){if(!z.cmp(K))for(;M.mod(O).cmp(F);)M.iadd(H)}else for(;M.mod(Z).cmp(W);)M.iadd(H);if(S=M.shrn(1),C(S)&&C(M)&&L(S)&&L(M)&&V.test(S)&&V.test(M))return M}}}}),xQ=P$({"node_modules/diffie-hellman/lib/primes.json"(bZ,$){$.exports={modp1:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},modp2:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},modp5:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},modp14:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},modp15:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},modp16:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},modp17:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},modp18:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}}}),_Q=P$({"node_modules/diffie-hellman/lib/dh.js"(bZ,$){var Q=vQ(),Y=gQ(),Z=new Y,G=new Q(24),V=new Q(11),U=new Q(10),X=new Q(3),K=new Q(7),I=NQ(),J=S$();$.exports=H;function O(T,D){return D=D||"utf8",Buffer.isBuffer(T)||(T=new Buffer(T,D)),this._pub=new Q(T),this}function F(T,D){return D=D||"utf8",Buffer.isBuffer(T)||(T=new Buffer(T,D)),this._priv=new Q(T),this}var A={};function W(T,D){var C=D.toString("hex"),L=[C,T.toString(16)].join("_");if(L in A)return A[L];var R=0;if(T.isEven()||!I.simpleSieve||!I.fermatTest(T)||!Z.test(T))return R+=1,C==="02"||C==="05"?R+=8:R+=4,A[L]=R,R;Z.test(T.shrn(1))||(R+=2);var P;switch(C){case"02":T.mod(G).cmp(V)&&(R+=8);break;case"05":P=T.mod(U),P.cmp(X)&&P.cmp(K)&&(R+=8);break;default:R+=4}return A[L]=R,R}function H(T,D,C){this.setGenerator(D),this.__prime=new Q(T),this._prime=Q.mont(this.__prime),this._primeLen=T.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,C?(this.setPublicKey=O,this.setPrivateKey=F):this._primeCode=8}Object.defineProperty(H.prototype,"verifyError",{enumerable:!0,get:function(){return typeof this._primeCode!="number"&&(this._primeCode=W(this.__prime,this.__gen)),this._primeCode}}),H.prototype.generateKeys=function(){return this._priv||(this._priv=new Q(J(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},H.prototype.computeSecret=function(T){T=new Q(T),T=T.toRed(this._prime);var D=T.redPow(this._priv).fromRed(),C=new Buffer(D.toArray()),L=this.getPrime();if(C.length0?g:N},V.min=function(g,N){return g.cmp(N)<0?g:N},V.prototype._init=function(g,N,x){if(typeof g=="number")return this._initNumber(g,N,x);if(typeof g=="object")return this._initArray(g,N,x);N==="hex"&&(N=16),Z(N===(N|0)&&N>=2&&N<=36),g=g.toString().replace(/\s+/g,"");var _=0;g[0]==="-"&&(_++,this.negative=1),_=0;_-=3)y=g[_]|g[_-1]<<8|g[_-2]<<16,this.words[B]|=y<>>26-w&67108863,w+=24,w>=26&&(w-=26,B++);else if(x==="le")for(_=0,B=0;_>>26-w&67108863,w+=24,w>=26&&(w-=26,B++);return this._strip()};function X(g,N){var x=g.charCodeAt(N);if(x>=48&&x<=57)return x-48;if(x>=65&&x<=70)return x-55;if(x>=97&&x<=102)return x-87;Z(!1,"Invalid character in "+g)}function K(g,N,x){var _=X(g,x);return x-1>=N&&(_|=X(g,x-1)<<4),_}V.prototype._parseHex=function(g,N,x){this.length=Math.ceil((g.length-N)/6),this.words=new Array(this.length);for(var _=0;_=N;_-=2)w=K(g,N,_)<=18?(B-=18,y+=1,this.words[y]|=w>>>26):B+=8;else{var f=g.length-N;for(_=f%2===0?N+1:N;_=18?(B-=18,y+=1,this.words[y]|=w>>>26):B+=8}this._strip()};function I(g,N,x,_){for(var B=0,y=0,w=Math.min(g.length,x),f=N;f=49?y=p-49+10:p>=17?y=p-17+10:y=p,Z(p>=0&&y<_,"Invalid character"),B+=y}return B}V.prototype._parseBase=function(g,N,x){this.words=[0],this.length=1;for(var _=0,B=1;B<=67108863;B*=N)_++;_--,B=B/N|0;for(var y=g.length-x,w=y%_,f=Math.min(y,y-w)+x,p=0,c=x;c1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},V.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{V.prototype[Symbol.for("nodejs.util.inspect.custom")]=O}catch{V.prototype.inspect=O}else V.prototype.inspect=O;function O(){return(this.red?""}var F=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],A=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],W=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];V.prototype.toString=function(g,N){g=g||10,N=N|0||1;var x;if(g===16||g==="hex"){x="";for(var _=0,B=0,y=0;y>>24-_&16777215,_+=2,_>=26&&(_-=26,y--),B!==0||y!==this.length-1?x=F[6-f.length]+f+x:x=f+x}for(B!==0&&(x=B.toString(16)+x);x.length%N!==0;)x="0"+x;return this.negative!==0&&(x="-"+x),x}if(g===(g|0)&&g>=2&&g<=36){var p=A[g],c=W[g];x="";var h=this.clone();for(h.negative=0;!h.isZero();){var d=h.modrn(c).toString(g);h=h.idivn(c),h.isZero()?x=d+x:x=F[p-d.length]+d+x}for(this.isZero()&&(x="0"+x);x.length%N!==0;)x="0"+x;return this.negative!==0&&(x="-"+x),x}Z(!1,"Base should be between 2 and 36")},V.prototype.toNumber=function(){var g=this.words[0];return this.length===2?g+=this.words[1]*67108864:this.length===3&&this.words[2]===1?g+=4503599627370496+this.words[1]*67108864:this.length>2&&Z(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-g:g},V.prototype.toJSON=function(){return this.toString(16,2)},U&&(V.prototype.toBuffer=function(g,N){return this.toArrayLike(U,g,N)}),V.prototype.toArray=function(g,N){return this.toArrayLike(Array,g,N)};var H=function(g,N){return g.allocUnsafe?g.allocUnsafe(N):new g(N)};V.prototype.toArrayLike=function(g,N,x){this._strip();var _=this.byteLength(),B=x||Math.max(1,_);Z(_<=B,"byte array longer than desired length"),Z(B>0,"Requested array length <= 0");var y=H(g,B),w=N==="le"?"LE":"BE";return this["_toArrayLike"+w](y,_),y},V.prototype._toArrayLikeLE=function(g,N){for(var x=0,_=0,B=0,y=0;B>8&255),x>16&255),y===6?(x>24&255),_=0,y=0):(_=w>>>24,y+=2)}if(x=0&&(g[x--]=w>>8&255),x>=0&&(g[x--]=w>>16&255),y===6?(x>=0&&(g[x--]=w>>24&255),_=0,y=0):(_=w>>>24,y+=2)}if(x>=0)for(g[x--]=_;x>=0;)g[x--]=0},Math.clz32?V.prototype._countBits=function(g){return 32-Math.clz32(g)}:V.prototype._countBits=function(g){var N=g,x=0;return N>=4096&&(x+=13,N>>>=13),N>=64&&(x+=7,N>>>=7),N>=8&&(x+=4,N>>>=4),N>=2&&(x+=2,N>>>=2),x+N},V.prototype._zeroBits=function(g){if(g===0)return 26;var N=g,x=0;return(N&8191)===0&&(x+=13,N>>>=13),(N&127)===0&&(x+=7,N>>>=7),(N&15)===0&&(x+=4,N>>>=4),(N&3)===0&&(x+=2,N>>>=2),(N&1)===0&&x++,x},V.prototype.bitLength=function(){var g=this.words[this.length-1],N=this._countBits(g);return(this.length-1)*26+N};function E(g){for(var N=new Array(g.bitLength()),x=0;x>>B&1}return N}V.prototype.zeroBits=function(){if(this.isZero())return 0;for(var g=0,N=0;Ng.length?this.clone().ior(g):g.clone().ior(this)},V.prototype.uor=function(g){return this.length>g.length?this.clone().iuor(g):g.clone().iuor(this)},V.prototype.iuand=function(g){var N;this.length>g.length?N=g:N=this;for(var x=0;xg.length?this.clone().iand(g):g.clone().iand(this)},V.prototype.uand=function(g){return this.length>g.length?this.clone().iuand(g):g.clone().iuand(this)},V.prototype.iuxor=function(g){var N,x;this.length>g.length?(N=this,x=g):(N=g,x=this);for(var _=0;_g.length?this.clone().ixor(g):g.clone().ixor(this)},V.prototype.uxor=function(g){return this.length>g.length?this.clone().iuxor(g):g.clone().iuxor(this)},V.prototype.inotn=function(g){Z(typeof g=="number"&&g>=0);var N=Math.ceil(g/26)|0,x=g%26;this._expand(N),x>0&&N--;for(var _=0;_0&&(this.words[_]=~this.words[_]&67108863>>26-x),this._strip()},V.prototype.notn=function(g){return this.clone().inotn(g)},V.prototype.setn=function(g,N){Z(typeof g=="number"&&g>=0);var x=g/26|0,_=g%26;return this._expand(x+1),N?this.words[x]=this.words[x]|1<<_:this.words[x]=this.words[x]&~(1<<_),this._strip()},V.prototype.iadd=function(g){var N;if(this.negative!==0&&g.negative===0)return this.negative=0,N=this.isub(g),this.negative^=1,this._normSign();if(this.negative===0&&g.negative!==0)return g.negative=0,N=this.isub(g),g.negative=1,N._normSign();var x,_;this.length>g.length?(x=this,_=g):(x=g,_=this);for(var B=0,y=0;y<_.length;y++)N=(x.words[y]|0)+(_.words[y]|0)+B,this.words[y]=N&67108863,B=N>>>26;for(;B!==0&&y>>26;if(this.length=x.length,B!==0)this.words[this.length]=B,this.length++;else if(x!==this)for(;yg.length?this.clone().iadd(g):g.clone().iadd(this)},V.prototype.isub=function(g){if(g.negative!==0){g.negative=0;var N=this.iadd(g);return g.negative=1,N._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(g),this.negative=1,this._normSign();var x=this.cmp(g);if(x===0)return this.negative=0,this.length=1,this.words[0]=0,this;var _,B;x>0?(_=this,B=g):(_=g,B=this);for(var y=0,w=0;w>26,this.words[w]=N&67108863;for(;y!==0&&w<_.length;w++)N=(_.words[w]|0)+y,y=N>>26,this.words[w]=N&67108863;if(y===0&&w<_.length&&_!==this)for(;w<_.length;w++)this.words[w]=_.words[w];return this.length=Math.max(this.length,w),_!==this&&(this.negative=1),this._strip()},V.prototype.sub=function(g){return this.clone().isub(g)};function T(g,N,x){x.negative=N.negative^g.negative;var _=g.length+N.length|0;x.length=_,_=_-1|0;var B=g.words[0]|0,y=N.words[0]|0,w=B*y,f=w&67108863,p=w/67108864|0;x.words[0]=f;for(var c=1;c<_;c++){for(var h=p>>>26,d=p&67108863,b=Math.min(c,N.length-1),l=Math.max(0,c-g.length+1);l<=b;l++){var o=c-l|0;B=g.words[o]|0,y=N.words[l]|0,w=B*y+d,h+=w/67108864|0,d=w&67108863}x.words[c]=d|0,p=h|0}return p!==0?x.words[c]=p|0:x.length--,x._strip()}var D=function(g,N,x){var _=g.words,B=N.words,y=x.words,w=0,f,p,c,h=_[0]|0,d=h&8191,b=h>>>13,l=_[1]|0,o=l&8191,u=l>>>13,n=_[2]|0,s=n&8191,t=n>>>13,m=_[3]|0,a=m&8191,r=m>>>13,e=_[4]|0,i=e&8191,$0=e>>>13,Q0=_[5]|0,Y0=Q0&8191,Z0=Q0>>>13,G0=_[6]|0,V0=G0&8191,U0=G0>>>13,X0=_[7]|0,K0=X0&8191,I0=X0>>>13,J0=_[8]|0,O0=J0&8191,F0=J0>>>13,A0=_[9]|0,W0=A0&8191,H0=A0>>>13,E0=B[0]|0,T0=E0&8191,D0=E0>>>13,C0=B[1]|0,L0=C0&8191,R0=C0>>>13,P0=B[2]|0,z0=P0&8191,M0=P0>>>13,S0=B[3]|0,v0=S0&8191,q0=S0>>>13,j0=B[4]|0,k0=j0&8191,g0=j0>>>13,N0=B[5]|0,x0=N0&8191,_0=N0>>>13,B0=B[6]|0,y0=B0&8191,w0=B0>>>13,f0=B[7]|0,p0=f0&8191,c0=f0>>>13,h0=B[8]|0,d0=h0&8191,b0=h0>>>13,l0=B[9]|0,o0=l0&8191,u0=l0>>>13;x.negative=g.negative^N.negative,x.length=19,f=Math.imul(d,T0),p=Math.imul(d,D0),p=p+Math.imul(b,T0)|0,c=Math.imul(b,D0);var n0=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(n0>>>26)|0,n0&=67108863,f=Math.imul(o,T0),p=Math.imul(o,D0),p=p+Math.imul(u,T0)|0,c=Math.imul(u,D0),f=f+Math.imul(d,L0)|0,p=p+Math.imul(d,R0)|0,p=p+Math.imul(b,L0)|0,c=c+Math.imul(b,R0)|0;var s0=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(s0>>>26)|0,s0&=67108863,f=Math.imul(s,T0),p=Math.imul(s,D0),p=p+Math.imul(t,T0)|0,c=Math.imul(t,D0),f=f+Math.imul(o,L0)|0,p=p+Math.imul(o,R0)|0,p=p+Math.imul(u,L0)|0,c=c+Math.imul(u,R0)|0,f=f+Math.imul(d,z0)|0,p=p+Math.imul(d,M0)|0,p=p+Math.imul(b,z0)|0,c=c+Math.imul(b,M0)|0;var t0=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(t0>>>26)|0,t0&=67108863,f=Math.imul(a,T0),p=Math.imul(a,D0),p=p+Math.imul(r,T0)|0,c=Math.imul(r,D0),f=f+Math.imul(s,L0)|0,p=p+Math.imul(s,R0)|0,p=p+Math.imul(t,L0)|0,c=c+Math.imul(t,R0)|0,f=f+Math.imul(o,z0)|0,p=p+Math.imul(o,M0)|0,p=p+Math.imul(u,z0)|0,c=c+Math.imul(u,M0)|0,f=f+Math.imul(d,v0)|0,p=p+Math.imul(d,q0)|0,p=p+Math.imul(b,v0)|0,c=c+Math.imul(b,q0)|0;var m0=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(m0>>>26)|0,m0&=67108863,f=Math.imul(i,T0),p=Math.imul(i,D0),p=p+Math.imul($0,T0)|0,c=Math.imul($0,D0),f=f+Math.imul(a,L0)|0,p=p+Math.imul(a,R0)|0,p=p+Math.imul(r,L0)|0,c=c+Math.imul(r,R0)|0,f=f+Math.imul(s,z0)|0,p=p+Math.imul(s,M0)|0,p=p+Math.imul(t,z0)|0,c=c+Math.imul(t,M0)|0,f=f+Math.imul(o,v0)|0,p=p+Math.imul(o,q0)|0,p=p+Math.imul(u,v0)|0,c=c+Math.imul(u,q0)|0,f=f+Math.imul(d,k0)|0,p=p+Math.imul(d,g0)|0,p=p+Math.imul(b,k0)|0,c=c+Math.imul(b,g0)|0;var a0=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(a0>>>26)|0,a0&=67108863,f=Math.imul(Y0,T0),p=Math.imul(Y0,D0),p=p+Math.imul(Z0,T0)|0,c=Math.imul(Z0,D0),f=f+Math.imul(i,L0)|0,p=p+Math.imul(i,R0)|0,p=p+Math.imul($0,L0)|0,c=c+Math.imul($0,R0)|0,f=f+Math.imul(a,z0)|0,p=p+Math.imul(a,M0)|0,p=p+Math.imul(r,z0)|0,c=c+Math.imul(r,M0)|0,f=f+Math.imul(s,v0)|0,p=p+Math.imul(s,q0)|0,p=p+Math.imul(t,v0)|0,c=c+Math.imul(t,q0)|0,f=f+Math.imul(o,k0)|0,p=p+Math.imul(o,g0)|0,p=p+Math.imul(u,k0)|0,c=c+Math.imul(u,g0)|0,f=f+Math.imul(d,x0)|0,p=p+Math.imul(d,_0)|0,p=p+Math.imul(b,x0)|0,c=c+Math.imul(b,_0)|0;var r0=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(r0>>>26)|0,r0&=67108863,f=Math.imul(V0,T0),p=Math.imul(V0,D0),p=p+Math.imul(U0,T0)|0,c=Math.imul(U0,D0),f=f+Math.imul(Y0,L0)|0,p=p+Math.imul(Y0,R0)|0,p=p+Math.imul(Z0,L0)|0,c=c+Math.imul(Z0,R0)|0,f=f+Math.imul(i,z0)|0,p=p+Math.imul(i,M0)|0,p=p+Math.imul($0,z0)|0,c=c+Math.imul($0,M0)|0,f=f+Math.imul(a,v0)|0,p=p+Math.imul(a,q0)|0,p=p+Math.imul(r,v0)|0,c=c+Math.imul(r,q0)|0,f=f+Math.imul(s,k0)|0,p=p+Math.imul(s,g0)|0,p=p+Math.imul(t,k0)|0,c=c+Math.imul(t,g0)|0,f=f+Math.imul(o,x0)|0,p=p+Math.imul(o,_0)|0,p=p+Math.imul(u,x0)|0,c=c+Math.imul(u,_0)|0,f=f+Math.imul(d,y0)|0,p=p+Math.imul(d,w0)|0,p=p+Math.imul(b,y0)|0,c=c+Math.imul(b,w0)|0;var e0=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(e0>>>26)|0,e0&=67108863,f=Math.imul(K0,T0),p=Math.imul(K0,D0),p=p+Math.imul(I0,T0)|0,c=Math.imul(I0,D0),f=f+Math.imul(V0,L0)|0,p=p+Math.imul(V0,R0)|0,p=p+Math.imul(U0,L0)|0,c=c+Math.imul(U0,R0)|0,f=f+Math.imul(Y0,z0)|0,p=p+Math.imul(Y0,M0)|0,p=p+Math.imul(Z0,z0)|0,c=c+Math.imul(Z0,M0)|0,f=f+Math.imul(i,v0)|0,p=p+Math.imul(i,q0)|0,p=p+Math.imul($0,v0)|0,c=c+Math.imul($0,q0)|0,f=f+Math.imul(a,k0)|0,p=p+Math.imul(a,g0)|0,p=p+Math.imul(r,k0)|0,c=c+Math.imul(r,g0)|0,f=f+Math.imul(s,x0)|0,p=p+Math.imul(s,_0)|0,p=p+Math.imul(t,x0)|0,c=c+Math.imul(t,_0)|0,f=f+Math.imul(o,y0)|0,p=p+Math.imul(o,w0)|0,p=p+Math.imul(u,y0)|0,c=c+Math.imul(u,w0)|0,f=f+Math.imul(d,p0)|0,p=p+Math.imul(d,c0)|0,p=p+Math.imul(b,p0)|0,c=c+Math.imul(b,c0)|0;var i0=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(i0>>>26)|0,i0&=67108863,f=Math.imul(O0,T0),p=Math.imul(O0,D0),p=p+Math.imul(F0,T0)|0,c=Math.imul(F0,D0),f=f+Math.imul(K0,L0)|0,p=p+Math.imul(K0,R0)|0,p=p+Math.imul(I0,L0)|0,c=c+Math.imul(I0,R0)|0,f=f+Math.imul(V0,z0)|0,p=p+Math.imul(V0,M0)|0,p=p+Math.imul(U0,z0)|0,c=c+Math.imul(U0,M0)|0,f=f+Math.imul(Y0,v0)|0,p=p+Math.imul(Y0,q0)|0,p=p+Math.imul(Z0,v0)|0,c=c+Math.imul(Z0,q0)|0,f=f+Math.imul(i,k0)|0,p=p+Math.imul(i,g0)|0,p=p+Math.imul($0,k0)|0,c=c+Math.imul($0,g0)|0,f=f+Math.imul(a,x0)|0,p=p+Math.imul(a,_0)|0,p=p+Math.imul(r,x0)|0,c=c+Math.imul(r,_0)|0,f=f+Math.imul(s,y0)|0,p=p+Math.imul(s,w0)|0,p=p+Math.imul(t,y0)|0,c=c+Math.imul(t,w0)|0,f=f+Math.imul(o,p0)|0,p=p+Math.imul(o,c0)|0,p=p+Math.imul(u,p0)|0,c=c+Math.imul(u,c0)|0,f=f+Math.imul(d,d0)|0,p=p+Math.imul(d,b0)|0,p=p+Math.imul(b,d0)|0,c=c+Math.imul(b,b0)|0;var $$=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+($$>>>26)|0,$$&=67108863,f=Math.imul(W0,T0),p=Math.imul(W0,D0),p=p+Math.imul(H0,T0)|0,c=Math.imul(H0,D0),f=f+Math.imul(O0,L0)|0,p=p+Math.imul(O0,R0)|0,p=p+Math.imul(F0,L0)|0,c=c+Math.imul(F0,R0)|0,f=f+Math.imul(K0,z0)|0,p=p+Math.imul(K0,M0)|0,p=p+Math.imul(I0,z0)|0,c=c+Math.imul(I0,M0)|0,f=f+Math.imul(V0,v0)|0,p=p+Math.imul(V0,q0)|0,p=p+Math.imul(U0,v0)|0,c=c+Math.imul(U0,q0)|0,f=f+Math.imul(Y0,k0)|0,p=p+Math.imul(Y0,g0)|0,p=p+Math.imul(Z0,k0)|0,c=c+Math.imul(Z0,g0)|0,f=f+Math.imul(i,x0)|0,p=p+Math.imul(i,_0)|0,p=p+Math.imul($0,x0)|0,c=c+Math.imul($0,_0)|0,f=f+Math.imul(a,y0)|0,p=p+Math.imul(a,w0)|0,p=p+Math.imul(r,y0)|0,c=c+Math.imul(r,w0)|0,f=f+Math.imul(s,p0)|0,p=p+Math.imul(s,c0)|0,p=p+Math.imul(t,p0)|0,c=c+Math.imul(t,c0)|0,f=f+Math.imul(o,d0)|0,p=p+Math.imul(o,b0)|0,p=p+Math.imul(u,d0)|0,c=c+Math.imul(u,b0)|0,f=f+Math.imul(d,o0)|0,p=p+Math.imul(d,u0)|0,p=p+Math.imul(b,o0)|0,c=c+Math.imul(b,u0)|0;var Q$=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,f=Math.imul(W0,L0),p=Math.imul(W0,R0),p=p+Math.imul(H0,L0)|0,c=Math.imul(H0,R0),f=f+Math.imul(O0,z0)|0,p=p+Math.imul(O0,M0)|0,p=p+Math.imul(F0,z0)|0,c=c+Math.imul(F0,M0)|0,f=f+Math.imul(K0,v0)|0,p=p+Math.imul(K0,q0)|0,p=p+Math.imul(I0,v0)|0,c=c+Math.imul(I0,q0)|0,f=f+Math.imul(V0,k0)|0,p=p+Math.imul(V0,g0)|0,p=p+Math.imul(U0,k0)|0,c=c+Math.imul(U0,g0)|0,f=f+Math.imul(Y0,x0)|0,p=p+Math.imul(Y0,_0)|0,p=p+Math.imul(Z0,x0)|0,c=c+Math.imul(Z0,_0)|0,f=f+Math.imul(i,y0)|0,p=p+Math.imul(i,w0)|0,p=p+Math.imul($0,y0)|0,c=c+Math.imul($0,w0)|0,f=f+Math.imul(a,p0)|0,p=p+Math.imul(a,c0)|0,p=p+Math.imul(r,p0)|0,c=c+Math.imul(r,c0)|0,f=f+Math.imul(s,d0)|0,p=p+Math.imul(s,b0)|0,p=p+Math.imul(t,d0)|0,c=c+Math.imul(t,b0)|0,f=f+Math.imul(o,o0)|0,p=p+Math.imul(o,u0)|0,p=p+Math.imul(u,o0)|0,c=c+Math.imul(u,u0)|0;var Y$=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,f=Math.imul(W0,z0),p=Math.imul(W0,M0),p=p+Math.imul(H0,z0)|0,c=Math.imul(H0,M0),f=f+Math.imul(O0,v0)|0,p=p+Math.imul(O0,q0)|0,p=p+Math.imul(F0,v0)|0,c=c+Math.imul(F0,q0)|0,f=f+Math.imul(K0,k0)|0,p=p+Math.imul(K0,g0)|0,p=p+Math.imul(I0,k0)|0,c=c+Math.imul(I0,g0)|0,f=f+Math.imul(V0,x0)|0,p=p+Math.imul(V0,_0)|0,p=p+Math.imul(U0,x0)|0,c=c+Math.imul(U0,_0)|0,f=f+Math.imul(Y0,y0)|0,p=p+Math.imul(Y0,w0)|0,p=p+Math.imul(Z0,y0)|0,c=c+Math.imul(Z0,w0)|0,f=f+Math.imul(i,p0)|0,p=p+Math.imul(i,c0)|0,p=p+Math.imul($0,p0)|0,c=c+Math.imul($0,c0)|0,f=f+Math.imul(a,d0)|0,p=p+Math.imul(a,b0)|0,p=p+Math.imul(r,d0)|0,c=c+Math.imul(r,b0)|0,f=f+Math.imul(s,o0)|0,p=p+Math.imul(s,u0)|0,p=p+Math.imul(t,o0)|0,c=c+Math.imul(t,u0)|0;var Z$=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,f=Math.imul(W0,v0),p=Math.imul(W0,q0),p=p+Math.imul(H0,v0)|0,c=Math.imul(H0,q0),f=f+Math.imul(O0,k0)|0,p=p+Math.imul(O0,g0)|0,p=p+Math.imul(F0,k0)|0,c=c+Math.imul(F0,g0)|0,f=f+Math.imul(K0,x0)|0,p=p+Math.imul(K0,_0)|0,p=p+Math.imul(I0,x0)|0,c=c+Math.imul(I0,_0)|0,f=f+Math.imul(V0,y0)|0,p=p+Math.imul(V0,w0)|0,p=p+Math.imul(U0,y0)|0,c=c+Math.imul(U0,w0)|0,f=f+Math.imul(Y0,p0)|0,p=p+Math.imul(Y0,c0)|0,p=p+Math.imul(Z0,p0)|0,c=c+Math.imul(Z0,c0)|0,f=f+Math.imul(i,d0)|0,p=p+Math.imul(i,b0)|0,p=p+Math.imul($0,d0)|0,c=c+Math.imul($0,b0)|0,f=f+Math.imul(a,o0)|0,p=p+Math.imul(a,u0)|0,p=p+Math.imul(r,o0)|0,c=c+Math.imul(r,u0)|0;var G$=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(G$>>>26)|0,G$&=67108863,f=Math.imul(W0,k0),p=Math.imul(W0,g0),p=p+Math.imul(H0,k0)|0,c=Math.imul(H0,g0),f=f+Math.imul(O0,x0)|0,p=p+Math.imul(O0,_0)|0,p=p+Math.imul(F0,x0)|0,c=c+Math.imul(F0,_0)|0,f=f+Math.imul(K0,y0)|0,p=p+Math.imul(K0,w0)|0,p=p+Math.imul(I0,y0)|0,c=c+Math.imul(I0,w0)|0,f=f+Math.imul(V0,p0)|0,p=p+Math.imul(V0,c0)|0,p=p+Math.imul(U0,p0)|0,c=c+Math.imul(U0,c0)|0,f=f+Math.imul(Y0,d0)|0,p=p+Math.imul(Y0,b0)|0,p=p+Math.imul(Z0,d0)|0,c=c+Math.imul(Z0,b0)|0,f=f+Math.imul(i,o0)|0,p=p+Math.imul(i,u0)|0,p=p+Math.imul($0,o0)|0,c=c+Math.imul($0,u0)|0;var V$=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(V$>>>26)|0,V$&=67108863,f=Math.imul(W0,x0),p=Math.imul(W0,_0),p=p+Math.imul(H0,x0)|0,c=Math.imul(H0,_0),f=f+Math.imul(O0,y0)|0,p=p+Math.imul(O0,w0)|0,p=p+Math.imul(F0,y0)|0,c=c+Math.imul(F0,w0)|0,f=f+Math.imul(K0,p0)|0,p=p+Math.imul(K0,c0)|0,p=p+Math.imul(I0,p0)|0,c=c+Math.imul(I0,c0)|0,f=f+Math.imul(V0,d0)|0,p=p+Math.imul(V0,b0)|0,p=p+Math.imul(U0,d0)|0,c=c+Math.imul(U0,b0)|0,f=f+Math.imul(Y0,o0)|0,p=p+Math.imul(Y0,u0)|0,p=p+Math.imul(Z0,o0)|0,c=c+Math.imul(Z0,u0)|0;var U$=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(U$>>>26)|0,U$&=67108863,f=Math.imul(W0,y0),p=Math.imul(W0,w0),p=p+Math.imul(H0,y0)|0,c=Math.imul(H0,w0),f=f+Math.imul(O0,p0)|0,p=p+Math.imul(O0,c0)|0,p=p+Math.imul(F0,p0)|0,c=c+Math.imul(F0,c0)|0,f=f+Math.imul(K0,d0)|0,p=p+Math.imul(K0,b0)|0,p=p+Math.imul(I0,d0)|0,c=c+Math.imul(I0,b0)|0,f=f+Math.imul(V0,o0)|0,p=p+Math.imul(V0,u0)|0,p=p+Math.imul(U0,o0)|0,c=c+Math.imul(U0,u0)|0;var X$=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(X$>>>26)|0,X$&=67108863,f=Math.imul(W0,p0),p=Math.imul(W0,c0),p=p+Math.imul(H0,p0)|0,c=Math.imul(H0,c0),f=f+Math.imul(O0,d0)|0,p=p+Math.imul(O0,b0)|0,p=p+Math.imul(F0,d0)|0,c=c+Math.imul(F0,b0)|0,f=f+Math.imul(K0,o0)|0,p=p+Math.imul(K0,u0)|0,p=p+Math.imul(I0,o0)|0,c=c+Math.imul(I0,u0)|0;var K$=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(K$>>>26)|0,K$&=67108863,f=Math.imul(W0,d0),p=Math.imul(W0,b0),p=p+Math.imul(H0,d0)|0,c=Math.imul(H0,b0),f=f+Math.imul(O0,o0)|0,p=p+Math.imul(O0,u0)|0,p=p+Math.imul(F0,o0)|0,c=c+Math.imul(F0,u0)|0;var I$=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(I$>>>26)|0,I$&=67108863,f=Math.imul(W0,o0),p=Math.imul(W0,u0),p=p+Math.imul(H0,o0)|0,c=Math.imul(H0,u0);var J$=(w+f|0)+((p&8191)<<13)|0;return w=(c+(p>>>13)|0)+(J$>>>26)|0,J$&=67108863,y[0]=n0,y[1]=s0,y[2]=t0,y[3]=m0,y[4]=a0,y[5]=r0,y[6]=e0,y[7]=i0,y[8]=$$,y[9]=Q$,y[10]=Y$,y[11]=Z$,y[12]=G$,y[13]=V$,y[14]=U$,y[15]=X$,y[16]=K$,y[17]=I$,y[18]=J$,w!==0&&(y[19]=w,x.length++),x};Math.imul||(D=T);function C(g,N,x){x.negative=N.negative^g.negative,x.length=g.length+N.length;for(var _=0,B=0,y=0;y>>26)|0,B+=w>>>26,w&=67108863}x.words[y]=f,_=w,w=B}return _!==0?x.words[y]=_:x.length--,x._strip()}function L(g,N,x){return C(g,N,x)}V.prototype.mulTo=function(g,N){var x,_=this.length+g.length;return this.length===10&&g.length===10?x=D(this,g,N):_<63?x=T(this,g,N):_<1024?x=C(this,g,N):x=L(this,g,N),x};function R(g,N){this.x=g,this.y=N}R.prototype.makeRBT=function(g){for(var N=new Array(g),x=V.prototype._countBits(g)-1,_=0;_>=1;return _},R.prototype.permute=function(g,N,x,_,B,y){for(var w=0;w>>1)B++;return 1<>>13,x[2*y+1]=B&8191,B=B>>>13;for(y=2*N;y<_;++y)x[y]=0;Z(B===0),Z((B&-8192)===0)},R.prototype.stub=function(g){for(var N=new Array(g),x=0;x>=26,x+=B/67108864|0,x+=y>>>26,this.words[_]=y&67108863}return x!==0&&(this.words[_]=x,this.length++),N?this.ineg():this},V.prototype.muln=function(g){return this.clone().imuln(g)},V.prototype.sqr=function(){return this.mul(this)},V.prototype.isqr=function(){return this.imul(this.clone())},V.prototype.pow=function(g){var N=E(g);if(N.length===0)return new V(1);for(var x=this,_=0;_=0);var N=g%26,x=(g-N)/26,_=67108863>>>26-N<<26-N,B;if(N!==0){var y=0;for(B=0;B>>26-N}y&&(this.words[B]=y,this.length++)}if(x!==0){for(B=this.length-1;B>=0;B--)this.words[B+x]=this.words[B];for(B=0;B=0);var _;N?_=(N-N%26)/26:_=0;var B=g%26,y=Math.min((g-B)/26,this.length),w=67108863^67108863>>>B<y)for(this.length-=y,p=0;p=0&&(c!==0||p>=_);p--){var h=this.words[p]|0;this.words[p]=c<<26-B|h>>>B,c=h&w}return f&&c!==0&&(f.words[f.length++]=c),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},V.prototype.ishrn=function(g,N,x){return Z(this.negative===0),this.iushrn(g,N,x)},V.prototype.shln=function(g){return this.clone().ishln(g)},V.prototype.ushln=function(g){return this.clone().iushln(g)},V.prototype.shrn=function(g){return this.clone().ishrn(g)},V.prototype.ushrn=function(g){return this.clone().iushrn(g)},V.prototype.testn=function(g){Z(typeof g=="number"&&g>=0);var N=g%26,x=(g-N)/26,_=1<=0);var N=g%26,x=(g-N)/26;if(Z(this.negative===0,"imaskn works only with positive numbers"),this.length<=x)return this;if(N!==0&&x++,this.length=Math.min(x,this.length),N!==0){var _=67108863^67108863>>>N<=67108864;N++)this.words[N]-=67108864,N===this.length-1?this.words[N+1]=1:this.words[N+1]++;return this.length=Math.max(this.length,N+1),this},V.prototype.isubn=function(g){if(Z(typeof g=="number"),Z(g<67108864),g<0)return this.iaddn(-g);if(this.negative!==0)return this.negative=0,this.iaddn(g),this.negative=1,this;if(this.words[0]-=g,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var N=0;N>26)-(f/67108864|0),this.words[B+x]=y&67108863}for(;B>26,this.words[B+x]=y&67108863;if(w===0)return this._strip();for(Z(w===-1),w=0,B=0;B>26,this.words[B]=y&67108863;return this.negative=1,this._strip()},V.prototype._wordDiv=function(g,N){var x=this.length-g.length,_=this.clone(),B=g,y=B.words[B.length-1]|0,w=this._countBits(y);x=26-w,x!==0&&(B=B.ushln(x),_.iushln(x),y=B.words[B.length-1]|0);var f=_.length-B.length,p;if(N!=="mod"){p=new V(null),p.length=f+1,p.words=new Array(p.length);for(var c=0;c=0;d--){var b=(_.words[B.length+d]|0)*67108864+(_.words[B.length+d-1]|0);for(b=Math.min(b/y|0,67108863),_._ishlnsubmul(B,b,d);_.negative!==0;)b--,_.negative=0,_._ishlnsubmul(B,1,d),_.isZero()||(_.negative^=1);p&&(p.words[d]=b)}return p&&p._strip(),_._strip(),N!=="div"&&x!==0&&_.iushrn(x),{div:p||null,mod:_}},V.prototype.divmod=function(g,N,x){if(Z(!g.isZero()),this.isZero())return{div:new V(0),mod:new V(0)};var _,B,y;return this.negative!==0&&g.negative===0?(y=this.neg().divmod(g,N),N!=="mod"&&(_=y.div.neg()),N!=="div"&&(B=y.mod.neg(),x&&B.negative!==0&&B.iadd(g)),{div:_,mod:B}):this.negative===0&&g.negative!==0?(y=this.divmod(g.neg(),N),N!=="mod"&&(_=y.div.neg()),{div:_,mod:y.mod}):(this.negative&g.negative)!==0?(y=this.neg().divmod(g.neg(),N),N!=="div"&&(B=y.mod.neg(),x&&B.negative!==0&&B.isub(g)),{div:y.div,mod:B}):g.length>this.length||this.cmp(g)<0?{div:new V(0),mod:this}:g.length===1?N==="div"?{div:this.divn(g.words[0]),mod:null}:N==="mod"?{div:null,mod:new V(this.modrn(g.words[0]))}:{div:this.divn(g.words[0]),mod:new V(this.modrn(g.words[0]))}:this._wordDiv(g,N)},V.prototype.div=function(g){return this.divmod(g,"div",!1).div},V.prototype.mod=function(g){return this.divmod(g,"mod",!1).mod},V.prototype.umod=function(g){return this.divmod(g,"mod",!0).mod},V.prototype.divRound=function(g){var N=this.divmod(g);if(N.mod.isZero())return N.div;var x=N.div.negative!==0?N.mod.isub(g):N.mod,_=g.ushrn(1),B=g.andln(1),y=x.cmp(_);return y<0||B===1&&y===0?N.div:N.div.negative!==0?N.div.isubn(1):N.div.iaddn(1)},V.prototype.modrn=function(g){var N=g<0;N&&(g=-g),Z(g<=67108863);for(var x=(1<<26)%g,_=0,B=this.length-1;B>=0;B--)_=(x*_+(this.words[B]|0))%g;return N?-_:_},V.prototype.modn=function(g){return this.modrn(g)},V.prototype.idivn=function(g){var N=g<0;N&&(g=-g),Z(g<=67108863);for(var x=0,_=this.length-1;_>=0;_--){var B=(this.words[_]|0)+x*67108864;this.words[_]=B/g|0,x=B%g}return this._strip(),N?this.ineg():this},V.prototype.divn=function(g){return this.clone().idivn(g)},V.prototype.egcd=function(g){Z(g.negative===0),Z(!g.isZero());var N=this,x=g.clone();N.negative!==0?N=N.umod(g):N=N.clone();for(var _=new V(1),B=new V(0),y=new V(0),w=new V(1),f=0;N.isEven()&&x.isEven();)N.iushrn(1),x.iushrn(1),++f;for(var p=x.clone(),c=N.clone();!N.isZero();){for(var h=0,d=1;(N.words[0]&d)===0&&h<26;++h,d<<=1);if(h>0)for(N.iushrn(h);h-- >0;)(_.isOdd()||B.isOdd())&&(_.iadd(p),B.isub(c)),_.iushrn(1),B.iushrn(1);for(var b=0,l=1;(x.words[0]&l)===0&&b<26;++b,l<<=1);if(b>0)for(x.iushrn(b);b-- >0;)(y.isOdd()||w.isOdd())&&(y.iadd(p),w.isub(c)),y.iushrn(1),w.iushrn(1);N.cmp(x)>=0?(N.isub(x),_.isub(y),B.isub(w)):(x.isub(N),y.isub(_),w.isub(B))}return{a:y,b:w,gcd:x.iushln(f)}},V.prototype._invmp=function(g){Z(g.negative===0),Z(!g.isZero());var N=this,x=g.clone();N.negative!==0?N=N.umod(g):N=N.clone();for(var _=new V(1),B=new V(0),y=x.clone();N.cmpn(1)>0&&x.cmpn(1)>0;){for(var w=0,f=1;(N.words[0]&f)===0&&w<26;++w,f<<=1);if(w>0)for(N.iushrn(w);w-- >0;)_.isOdd()&&_.iadd(y),_.iushrn(1);for(var p=0,c=1;(x.words[0]&c)===0&&p<26;++p,c<<=1);if(p>0)for(x.iushrn(p);p-- >0;)B.isOdd()&&B.iadd(y),B.iushrn(1);N.cmp(x)>=0?(N.isub(x),_.isub(B)):(x.isub(N),B.isub(_))}var h;return N.cmpn(1)===0?h=_:h=B,h.cmpn(0)<0&&h.iadd(g),h},V.prototype.gcd=function(g){if(this.isZero())return g.abs();if(g.isZero())return this.abs();var N=this.clone(),x=g.clone();N.negative=0,x.negative=0;for(var _=0;N.isEven()&&x.isEven();_++)N.iushrn(1),x.iushrn(1);do{for(;N.isEven();)N.iushrn(1);for(;x.isEven();)x.iushrn(1);var B=N.cmp(x);if(B<0){var y=N;N=x,x=y}else if(B===0||x.cmpn(1)===0)break;N.isub(x)}while(!0);return x.iushln(_)},V.prototype.invm=function(g){return this.egcd(g).a.umod(g)},V.prototype.isEven=function(){return(this.words[0]&1)===0},V.prototype.isOdd=function(){return(this.words[0]&1)===1},V.prototype.andln=function(g){return this.words[0]&g},V.prototype.bincn=function(g){Z(typeof g=="number");var N=g%26,x=(g-N)/26,_=1<>>26,w&=67108863,this.words[y]=w}return B!==0&&(this.words[y]=B,this.length++),this},V.prototype.isZero=function(){return this.length===1&&this.words[0]===0},V.prototype.cmpn=function(g){var N=g<0;if(this.negative!==0&&!N)return-1;if(this.negative===0&&N)return 1;this._strip();var x;if(this.length>1)x=1;else{N&&(g=-g),Z(g<=67108863,"Number is too big");var _=this.words[0]|0;x=_===g?0:_g.length)return 1;if(this.length=0;x--){var _=this.words[x]|0,B=g.words[x]|0;if(_!==B){_B&&(N=1);break}}return N},V.prototype.gtn=function(g){return this.cmpn(g)===1},V.prototype.gt=function(g){return this.cmp(g)===1},V.prototype.gten=function(g){return this.cmpn(g)>=0},V.prototype.gte=function(g){return this.cmp(g)>=0},V.prototype.ltn=function(g){return this.cmpn(g)===-1},V.prototype.lt=function(g){return this.cmp(g)===-1},V.prototype.lten=function(g){return this.cmpn(g)<=0},V.prototype.lte=function(g){return this.cmp(g)<=0},V.prototype.eqn=function(g){return this.cmpn(g)===0},V.prototype.eq=function(g){return this.cmp(g)===0},V.red=function(g){return new j(g)},V.prototype.toRed=function(g){return Z(!this.red,"Already a number in reduction context"),Z(this.negative===0,"red works only with positives"),g.convertTo(this)._forceRed(g)},V.prototype.fromRed=function(){return Z(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},V.prototype._forceRed=function(g){return this.red=g,this},V.prototype.forceRed=function(g){return Z(!this.red,"Already a number in reduction context"),this._forceRed(g)},V.prototype.redAdd=function(g){return Z(this.red,"redAdd works only with red numbers"),this.red.add(this,g)},V.prototype.redIAdd=function(g){return Z(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,g)},V.prototype.redSub=function(g){return Z(this.red,"redSub works only with red numbers"),this.red.sub(this,g)},V.prototype.redISub=function(g){return Z(this.red,"redISub works only with red numbers"),this.red.isub(this,g)},V.prototype.redShl=function(g){return Z(this.red,"redShl works only with red numbers"),this.red.shl(this,g)},V.prototype.redMul=function(g){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,g),this.red.mul(this,g)},V.prototype.redIMul=function(g){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,g),this.red.imul(this,g)},V.prototype.redSqr=function(){return Z(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},V.prototype.redISqr=function(){return Z(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},V.prototype.redSqrt=function(){return Z(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},V.prototype.redInvm=function(){return Z(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},V.prototype.redNeg=function(){return Z(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},V.prototype.redPow=function(g){return Z(this.red&&!g.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,g)};var P={k256:null,p224:null,p192:null,p25519:null};function z(g,N){this.name=g,this.p=new V(N,16),this.n=this.p.bitLength(),this.k=new V(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}z.prototype._tmp=function(){var g=new V(null);return g.words=new Array(Math.ceil(this.n/13)),g},z.prototype.ireduce=function(g){var N=g,x;do this.split(N,this.tmp),N=this.imulK(N),N=N.iadd(this.tmp),x=N.bitLength();while(x>this.n);var _=x0?N.isub(this.p):N.strip!==void 0?N.strip():N._strip(),N},z.prototype.split=function(g,N){g.iushrn(this.n,0,N)},z.prototype.imulK=function(g){return g.imul(this.k)};function M(){z.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}G(M,z),M.prototype.split=function(g,N){for(var x=4194303,_=Math.min(g.length,9),B=0;B<_;B++)N.words[B]=g.words[B];if(N.length=_,g.length<=9){g.words[0]=0,g.length=1;return}var y=g.words[9];for(N.words[N.length++]=y&x,B=10;B>>22,y=w}y>>>=22,g.words[B-10]=y,y===0&&g.length>10?g.length-=10:g.length-=9},M.prototype.imulK=function(g){g.words[g.length]=0,g.words[g.length+1]=0,g.length+=2;for(var N=0,x=0;x>>=26,g.words[x]=B,N=_}return N!==0&&(g.words[g.length++]=N),g},V._prime=function(g){if(P[g])return P[g];var N;if(g==="k256")N=new M;else if(g==="p224")N=new S;else if(g==="p192")N=new v;else if(g==="p25519")N=new q;else throw new Error("Unknown prime "+g);return P[g]=N,N};function j(g){if(typeof g=="string"){var N=V._prime(g);this.m=N.p,this.prime=N}else Z(g.gtn(1),"modulus must be greater than 1"),this.m=g,this.prime=null}j.prototype._verify1=function(g){Z(g.negative===0,"red works only with positives"),Z(g.red,"red works only with red numbers")},j.prototype._verify2=function(g,N){Z((g.negative|N.negative)===0,"red works only with positives"),Z(g.red&&g.red===N.red,"red works only with red numbers")},j.prototype.imod=function(g){return this.prime?this.prime.ireduce(g)._forceRed(this):(J(g,g.umod(this.m)._forceRed(this)),g)},j.prototype.neg=function(g){return g.isZero()?g.clone():this.m.sub(g)._forceRed(this)},j.prototype.add=function(g,N){this._verify2(g,N);var x=g.add(N);return x.cmp(this.m)>=0&&x.isub(this.m),x._forceRed(this)},j.prototype.iadd=function(g,N){this._verify2(g,N);var x=g.iadd(N);return x.cmp(this.m)>=0&&x.isub(this.m),x},j.prototype.sub=function(g,N){this._verify2(g,N);var x=g.sub(N);return x.cmpn(0)<0&&x.iadd(this.m),x._forceRed(this)},j.prototype.isub=function(g,N){this._verify2(g,N);var x=g.isub(N);return x.cmpn(0)<0&&x.iadd(this.m),x},j.prototype.shl=function(g,N){return this._verify1(g),this.imod(g.ushln(N))},j.prototype.imul=function(g,N){return this._verify2(g,N),this.imod(g.imul(N))},j.prototype.mul=function(g,N){return this._verify2(g,N),this.imod(g.mul(N))},j.prototype.isqr=function(g){return this.imul(g,g.clone())},j.prototype.sqr=function(g){return this.mul(g,g)},j.prototype.sqrt=function(g){if(g.isZero())return g.clone();var N=this.m.andln(3);if(Z(N%2===1),N===3){var x=this.m.add(new V(1)).iushrn(2);return this.pow(g,x)}for(var _=this.m.subn(1),B=0;!_.isZero()&&_.andln(1)===0;)B++,_.iushrn(1);Z(!_.isZero());var y=new V(1).toRed(this),w=y.redNeg(),f=this.m.subn(1).iushrn(1),p=this.m.bitLength();for(p=new V(2*p*p).toRed(this);this.pow(p,f).cmp(w)!==0;)p.redIAdd(w);for(var c=this.pow(p,_),h=this.pow(g,_.addn(1).iushrn(1)),d=this.pow(g,_),b=B;d.cmp(y)!==0;){for(var l=d,o=0;l.cmp(y)!==0;o++)l=l.redSqr();Z(o=0;B--){for(var c=N.words[B],h=p-1;h>=0;h--){var d=c>>h&1;if(y!==_[0]&&(y=this.sqr(y)),d===0&&w===0){f=0;continue}w<<=1,w|=d,f++,!(f!==x&&(B!==0||h!==0))&&(y=this.mul(y,_[w]),f=0,w=0)}p=26}return y},j.prototype.convertTo=function(g){var N=g.umod(this.m);return N===g?N.clone():N},j.prototype.convertFrom=function(g){var N=g.clone();return N.red=null,N},V.mont=function(g){return new k(g)};function k(g){j.call(this,g),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new V(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}G(k,j),k.prototype.convertTo=function(g){return this.imod(g.ushln(this.shift))},k.prototype.convertFrom=function(g){var N=this.imod(g.mul(this.rinv));return N.red=null,N},k.prototype.imul=function(g,N){if(g.isZero()||N.isZero())return g.words[0]=0,g.length=1,g;var x=g.imul(N),_=x.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),B=x.isub(_).iushrn(this.shift),y=B;return B.cmp(this.m)>=0?y=B.isub(this.m):B.cmpn(0)<0&&(y=B.iadd(this.m)),y._forceRed(this)},k.prototype.mul=function(g,N){if(g.isZero()||N.isZero())return new V(0)._forceRed(this);var x=g.mul(N),_=x.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),B=x.isub(_).iushrn(this.shift),y=B;return B.cmp(this.m)>=0?y=B.isub(this.m):B.cmpn(0)<0&&(y=B.iadd(this.m)),y._forceRed(this)},k.prototype.invm=function(g){var N=this.imod(g._invmp(this.m).mul(this.r2));return N._forceRed(this)}})(typeof $>"u"||$,bZ)}}),wQ=P$({"node_modules/browserify-rsa/index.js"(bZ,$){var Q=yQ(),Y=S$();function Z(U){var X=G(U),K=X.toRed(Q.mont(U.modulus)).redPow(new Q(U.publicExponent)).fromRed();return{blinder:K,unblinder:X.invm(U.modulus)}}function G(U){var X=U.modulus.byteLength(),K;do K=new Q(Y(X));while(K.cmp(U.modulus)>=0||!K.umod(U.prime1)||!K.umod(U.prime2));return K}function V(U,X){var K=Z(X),I=X.modulus.byteLength(),J=new Q(U).mul(K.blinder).umod(X.modulus),O=J.toRed(Q.mont(X.prime1)),F=J.toRed(Q.mont(X.prime2)),A=X.coefficient,W=X.prime1,H=X.prime2,E=O.redPow(X.exponent1).fromRed(),T=F.redPow(X.exponent2).fromRed(),D=E.isub(T).imul(A).umod(W).imul(H);return T.iadd(D).imul(K.unblinder).umod(X.modulus).toArrayLike(Buffer,"be",I)}V.getr=G,$.exports=V}}),fQ=P$({"node_modules/elliptic/package.json"(bZ,$){$.exports={name:"elliptic",version:"6.5.4",description:"EC cryptography",main:"lib/elliptic.js",files:["lib"],scripts:{lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},repository:{type:"git",url:"git@github.com:indutny/elliptic"},keywords:["EC","Elliptic","curve","Cryptography"],author:"Fedor Indutny ",license:"MIT",bugs:{url:"https://github.com/indutny/elliptic/issues"},homepage:"https://github.com/indutny/elliptic",devDependencies:{brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},dependencies:{"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"}}}}),pQ=P$({"node_modules/elliptic/node_modules/bn.js/lib/bn.js"(bZ,$){(function(Q,Y){function Z(q,j){if(!q)throw new Error(j||"Assertion failed")}function G(q,j){q.super_=j;var k=function(){};k.prototype=j.prototype,q.prototype=new k,q.prototype.constructor=q}function V(q,j,k){if(V.isBN(q))return q;this.negative=0,this.words=null,this.length=0,this.red=null,q!==null&&((j==="le"||j==="be")&&(k=j,j=10),this._init(q||0,j||10,k||"be"))}typeof Q=="object"?Q.exports=V:Y.BN=V,V.BN=V,V.wordSize=26;var U;try{typeof window<"u"&&typeof window.Buffer<"u"?U=window.Buffer:U=L$("buffer").Buffer}catch{}V.isBN=function(q){return q instanceof V?!0:q!==null&&typeof q=="object"&&q.constructor.wordSize===V.wordSize&&Array.isArray(q.words)},V.max=function(q,j){return q.cmp(j)>0?q:j},V.min=function(q,j){return q.cmp(j)<0?q:j},V.prototype._init=function(q,j,k){if(typeof q=="number")return this._initNumber(q,j,k);if(typeof q=="object")return this._initArray(q,j,k);j==="hex"&&(j=16),Z(j===(j|0)&&j>=2&&j<=36),q=q.toString().replace(/\s+/g,"");var g=0;q[0]==="-"&&(g++,this.negative=1),g=0;g-=3)x=q[g]|q[g-1]<<8|q[g-2]<<16,this.words[N]|=x<<_&67108863,this.words[N+1]=x>>>26-_&67108863,_+=24,_>=26&&(_-=26,N++);else if(k==="le")for(g=0,N=0;g>>26-_&67108863,_+=24,_>=26&&(_-=26,N++);return this.strip()};function X(q,j){var k=q.charCodeAt(j);return k>=65&&k<=70?k-55:k>=97&&k<=102?k-87:k-48&15}function K(q,j,k){var g=X(q,k);return k-1>=j&&(g|=X(q,k-1)<<4),g}V.prototype._parseHex=function(q,j,k){this.length=Math.ceil((q.length-j)/6),this.words=new Array(this.length);for(var g=0;g=j;g-=2)_=K(q,j,g)<=18?(N-=18,x+=1,this.words[x]|=_>>>26):N+=8;else{var B=q.length-j;for(g=B%2===0?j+1:j;g=18?(N-=18,x+=1,this.words[x]|=_>>>26):N+=8}this.strip()};function I(q,j,k,g){for(var N=0,x=Math.min(q.length,k),_=j;_=49?N+=B-49+10:B>=17?N+=B-17+10:N+=B}return N}V.prototype._parseBase=function(q,j,k){this.words=[0],this.length=1;for(var g=0,N=1;N<=67108863;N*=j)g++;g--,N=N/j|0;for(var x=q.length-k,_=x%g,B=Math.min(x,x-_)+k,y=0,w=k;w1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},V.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},V.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],O=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],F=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];V.prototype.toString=function(q,j){q=q||10,j=j|0||1;var k;if(q===16||q==="hex"){k="";for(var g=0,N=0,x=0;x>>24-g&16777215,N!==0||x!==this.length-1?k=J[6-B.length]+B+k:k=B+k,g+=2,g>=26&&(g-=26,x--)}for(N!==0&&(k=N.toString(16)+k);k.length%j!==0;)k="0"+k;return this.negative!==0&&(k="-"+k),k}if(q===(q|0)&&q>=2&&q<=36){var y=O[q],w=F[q];k="";var f=this.clone();for(f.negative=0;!f.isZero();){var p=f.modn(w).toString(q);f=f.idivn(w),f.isZero()?k=p+k:k=J[y-p.length]+p+k}for(this.isZero()&&(k="0"+k);k.length%j!==0;)k="0"+k;return this.negative!==0&&(k="-"+k),k}Z(!1,"Base should be between 2 and 36")},V.prototype.toNumber=function(){var q=this.words[0];return this.length===2?q+=this.words[1]*67108864:this.length===3&&this.words[2]===1?q+=4503599627370496+this.words[1]*67108864:this.length>2&&Z(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-q:q},V.prototype.toJSON=function(){return this.toString(16)},V.prototype.toBuffer=function(q,j){return Z(typeof U<"u"),this.toArrayLike(U,q,j)},V.prototype.toArray=function(q,j){return this.toArrayLike(Array,q,j)},V.prototype.toArrayLike=function(q,j,k){var g=this.byteLength(),N=k||Math.max(1,g);Z(g<=N,"byte array longer than desired length"),Z(N>0,"Requested array length <= 0"),this.strip();var x=j==="le",_=new q(N),B,y,w=this.clone();if(x){for(y=0;!w.isZero();y++)B=w.andln(255),w.iushrn(8),_[y]=B;for(;y=4096&&(k+=13,j>>>=13),j>=64&&(k+=7,j>>>=7),j>=8&&(k+=4,j>>>=4),j>=2&&(k+=2,j>>>=2),k+j},V.prototype._zeroBits=function(q){if(q===0)return 26;var j=q,k=0;return(j&8191)===0&&(k+=13,j>>>=13),(j&127)===0&&(k+=7,j>>>=7),(j&15)===0&&(k+=4,j>>>=4),(j&3)===0&&(k+=2,j>>>=2),(j&1)===0&&k++,k},V.prototype.bitLength=function(){var q=this.words[this.length-1],j=this._countBits(q);return(this.length-1)*26+j};function A(q){for(var j=new Array(q.bitLength()),k=0;k>>N}return j}V.prototype.zeroBits=function(){if(this.isZero())return 0;for(var q=0,j=0;jq.length?this.clone().ior(q):q.clone().ior(this)},V.prototype.uor=function(q){return this.length>q.length?this.clone().iuor(q):q.clone().iuor(this)},V.prototype.iuand=function(q){var j;this.length>q.length?j=q:j=this;for(var k=0;kq.length?this.clone().iand(q):q.clone().iand(this)},V.prototype.uand=function(q){return this.length>q.length?this.clone().iuand(q):q.clone().iuand(this)},V.prototype.iuxor=function(q){var j,k;this.length>q.length?(j=this,k=q):(j=q,k=this);for(var g=0;gq.length?this.clone().ixor(q):q.clone().ixor(this)},V.prototype.uxor=function(q){return this.length>q.length?this.clone().iuxor(q):q.clone().iuxor(this)},V.prototype.inotn=function(q){Z(typeof q=="number"&&q>=0);var j=Math.ceil(q/26)|0,k=q%26;this._expand(j),k>0&&j--;for(var g=0;g0&&(this.words[g]=~this.words[g]&67108863>>26-k),this.strip()},V.prototype.notn=function(q){return this.clone().inotn(q)},V.prototype.setn=function(q,j){Z(typeof q=="number"&&q>=0);var k=q/26|0,g=q%26;return this._expand(k+1),j?this.words[k]=this.words[k]|1<q.length?(k=this,g=q):(k=q,g=this);for(var N=0,x=0;x>>26;for(;N!==0&&x>>26;if(this.length=k.length,N!==0)this.words[this.length]=N,this.length++;else if(k!==this)for(;xq.length?this.clone().iadd(q):q.clone().iadd(this)},V.prototype.isub=function(q){if(q.negative!==0){q.negative=0;var j=this.iadd(q);return q.negative=1,j._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(q),this.negative=1,this._normSign();var k=this.cmp(q);if(k===0)return this.negative=0,this.length=1,this.words[0]=0,this;var g,N;k>0?(g=this,N=q):(g=q,N=this);for(var x=0,_=0;_>26,this.words[_]=j&67108863;for(;x!==0&&_>26,this.words[_]=j&67108863;if(x===0&&_>>26,p=y&67108863,c=Math.min(w,j.length-1),h=Math.max(0,w-q.length+1);h<=c;h++){var d=w-h|0;N=q.words[d]|0,x=j.words[h]|0,_=N*x+p,f+=_/67108864|0,p=_&67108863}k.words[w]=p|0,y=f|0}return y!==0?k.words[w]=y|0:k.length--,k.strip()}var H=function(q,j,k){var g=q.words,N=j.words,x=k.words,_=0,B,y,w,f=g[0]|0,p=f&8191,c=f>>>13,h=g[1]|0,d=h&8191,b=h>>>13,l=g[2]|0,o=l&8191,u=l>>>13,n=g[3]|0,s=n&8191,t=n>>>13,m=g[4]|0,a=m&8191,r=m>>>13,e=g[5]|0,i=e&8191,$0=e>>>13,Q0=g[6]|0,Y0=Q0&8191,Z0=Q0>>>13,G0=g[7]|0,V0=G0&8191,U0=G0>>>13,X0=g[8]|0,K0=X0&8191,I0=X0>>>13,J0=g[9]|0,O0=J0&8191,F0=J0>>>13,A0=N[0]|0,W0=A0&8191,H0=A0>>>13,E0=N[1]|0,T0=E0&8191,D0=E0>>>13,C0=N[2]|0,L0=C0&8191,R0=C0>>>13,P0=N[3]|0,z0=P0&8191,M0=P0>>>13,S0=N[4]|0,v0=S0&8191,q0=S0>>>13,j0=N[5]|0,k0=j0&8191,g0=j0>>>13,N0=N[6]|0,x0=N0&8191,_0=N0>>>13,B0=N[7]|0,y0=B0&8191,w0=B0>>>13,f0=N[8]|0,p0=f0&8191,c0=f0>>>13,h0=N[9]|0,d0=h0&8191,b0=h0>>>13;k.negative=q.negative^j.negative,k.length=19,B=Math.imul(p,W0),y=Math.imul(p,H0),y=y+Math.imul(c,W0)|0,w=Math.imul(c,H0);var l0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(l0>>>26)|0,l0&=67108863,B=Math.imul(d,W0),y=Math.imul(d,H0),y=y+Math.imul(b,W0)|0,w=Math.imul(b,H0),B=B+Math.imul(p,T0)|0,y=y+Math.imul(p,D0)|0,y=y+Math.imul(c,T0)|0,w=w+Math.imul(c,D0)|0;var o0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(o0>>>26)|0,o0&=67108863,B=Math.imul(o,W0),y=Math.imul(o,H0),y=y+Math.imul(u,W0)|0,w=Math.imul(u,H0),B=B+Math.imul(d,T0)|0,y=y+Math.imul(d,D0)|0,y=y+Math.imul(b,T0)|0,w=w+Math.imul(b,D0)|0,B=B+Math.imul(p,L0)|0,y=y+Math.imul(p,R0)|0,y=y+Math.imul(c,L0)|0,w=w+Math.imul(c,R0)|0;var u0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(u0>>>26)|0,u0&=67108863,B=Math.imul(s,W0),y=Math.imul(s,H0),y=y+Math.imul(t,W0)|0,w=Math.imul(t,H0),B=B+Math.imul(o,T0)|0,y=y+Math.imul(o,D0)|0,y=y+Math.imul(u,T0)|0,w=w+Math.imul(u,D0)|0,B=B+Math.imul(d,L0)|0,y=y+Math.imul(d,R0)|0,y=y+Math.imul(b,L0)|0,w=w+Math.imul(b,R0)|0,B=B+Math.imul(p,z0)|0,y=y+Math.imul(p,M0)|0,y=y+Math.imul(c,z0)|0,w=w+Math.imul(c,M0)|0;var n0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(n0>>>26)|0,n0&=67108863,B=Math.imul(a,W0),y=Math.imul(a,H0),y=y+Math.imul(r,W0)|0,w=Math.imul(r,H0),B=B+Math.imul(s,T0)|0,y=y+Math.imul(s,D0)|0,y=y+Math.imul(t,T0)|0,w=w+Math.imul(t,D0)|0,B=B+Math.imul(o,L0)|0,y=y+Math.imul(o,R0)|0,y=y+Math.imul(u,L0)|0,w=w+Math.imul(u,R0)|0,B=B+Math.imul(d,z0)|0,y=y+Math.imul(d,M0)|0,y=y+Math.imul(b,z0)|0,w=w+Math.imul(b,M0)|0,B=B+Math.imul(p,v0)|0,y=y+Math.imul(p,q0)|0,y=y+Math.imul(c,v0)|0,w=w+Math.imul(c,q0)|0;var s0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(s0>>>26)|0,s0&=67108863,B=Math.imul(i,W0),y=Math.imul(i,H0),y=y+Math.imul($0,W0)|0,w=Math.imul($0,H0),B=B+Math.imul(a,T0)|0,y=y+Math.imul(a,D0)|0,y=y+Math.imul(r,T0)|0,w=w+Math.imul(r,D0)|0,B=B+Math.imul(s,L0)|0,y=y+Math.imul(s,R0)|0,y=y+Math.imul(t,L0)|0,w=w+Math.imul(t,R0)|0,B=B+Math.imul(o,z0)|0,y=y+Math.imul(o,M0)|0,y=y+Math.imul(u,z0)|0,w=w+Math.imul(u,M0)|0,B=B+Math.imul(d,v0)|0,y=y+Math.imul(d,q0)|0,y=y+Math.imul(b,v0)|0,w=w+Math.imul(b,q0)|0,B=B+Math.imul(p,k0)|0,y=y+Math.imul(p,g0)|0,y=y+Math.imul(c,k0)|0,w=w+Math.imul(c,g0)|0;var t0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(t0>>>26)|0,t0&=67108863,B=Math.imul(Y0,W0),y=Math.imul(Y0,H0),y=y+Math.imul(Z0,W0)|0,w=Math.imul(Z0,H0),B=B+Math.imul(i,T0)|0,y=y+Math.imul(i,D0)|0,y=y+Math.imul($0,T0)|0,w=w+Math.imul($0,D0)|0,B=B+Math.imul(a,L0)|0,y=y+Math.imul(a,R0)|0,y=y+Math.imul(r,L0)|0,w=w+Math.imul(r,R0)|0,B=B+Math.imul(s,z0)|0,y=y+Math.imul(s,M0)|0,y=y+Math.imul(t,z0)|0,w=w+Math.imul(t,M0)|0,B=B+Math.imul(o,v0)|0,y=y+Math.imul(o,q0)|0,y=y+Math.imul(u,v0)|0,w=w+Math.imul(u,q0)|0,B=B+Math.imul(d,k0)|0,y=y+Math.imul(d,g0)|0,y=y+Math.imul(b,k0)|0,w=w+Math.imul(b,g0)|0,B=B+Math.imul(p,x0)|0,y=y+Math.imul(p,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,_0)|0;var m0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(m0>>>26)|0,m0&=67108863,B=Math.imul(V0,W0),y=Math.imul(V0,H0),y=y+Math.imul(U0,W0)|0,w=Math.imul(U0,H0),B=B+Math.imul(Y0,T0)|0,y=y+Math.imul(Y0,D0)|0,y=y+Math.imul(Z0,T0)|0,w=w+Math.imul(Z0,D0)|0,B=B+Math.imul(i,L0)|0,y=y+Math.imul(i,R0)|0,y=y+Math.imul($0,L0)|0,w=w+Math.imul($0,R0)|0,B=B+Math.imul(a,z0)|0,y=y+Math.imul(a,M0)|0,y=y+Math.imul(r,z0)|0,w=w+Math.imul(r,M0)|0,B=B+Math.imul(s,v0)|0,y=y+Math.imul(s,q0)|0,y=y+Math.imul(t,v0)|0,w=w+Math.imul(t,q0)|0,B=B+Math.imul(o,k0)|0,y=y+Math.imul(o,g0)|0,y=y+Math.imul(u,k0)|0,w=w+Math.imul(u,g0)|0,B=B+Math.imul(d,x0)|0,y=y+Math.imul(d,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,_0)|0,B=B+Math.imul(p,y0)|0,y=y+Math.imul(p,w0)|0,y=y+Math.imul(c,y0)|0,w=w+Math.imul(c,w0)|0;var a0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(a0>>>26)|0,a0&=67108863,B=Math.imul(K0,W0),y=Math.imul(K0,H0),y=y+Math.imul(I0,W0)|0,w=Math.imul(I0,H0),B=B+Math.imul(V0,T0)|0,y=y+Math.imul(V0,D0)|0,y=y+Math.imul(U0,T0)|0,w=w+Math.imul(U0,D0)|0,B=B+Math.imul(Y0,L0)|0,y=y+Math.imul(Y0,R0)|0,y=y+Math.imul(Z0,L0)|0,w=w+Math.imul(Z0,R0)|0,B=B+Math.imul(i,z0)|0,y=y+Math.imul(i,M0)|0,y=y+Math.imul($0,z0)|0,w=w+Math.imul($0,M0)|0,B=B+Math.imul(a,v0)|0,y=y+Math.imul(a,q0)|0,y=y+Math.imul(r,v0)|0,w=w+Math.imul(r,q0)|0,B=B+Math.imul(s,k0)|0,y=y+Math.imul(s,g0)|0,y=y+Math.imul(t,k0)|0,w=w+Math.imul(t,g0)|0,B=B+Math.imul(o,x0)|0,y=y+Math.imul(o,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,_0)|0,B=B+Math.imul(d,y0)|0,y=y+Math.imul(d,w0)|0,y=y+Math.imul(b,y0)|0,w=w+Math.imul(b,w0)|0,B=B+Math.imul(p,p0)|0,y=y+Math.imul(p,c0)|0,y=y+Math.imul(c,p0)|0,w=w+Math.imul(c,c0)|0;var r0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(r0>>>26)|0,r0&=67108863,B=Math.imul(O0,W0),y=Math.imul(O0,H0),y=y+Math.imul(F0,W0)|0,w=Math.imul(F0,H0),B=B+Math.imul(K0,T0)|0,y=y+Math.imul(K0,D0)|0,y=y+Math.imul(I0,T0)|0,w=w+Math.imul(I0,D0)|0,B=B+Math.imul(V0,L0)|0,y=y+Math.imul(V0,R0)|0,y=y+Math.imul(U0,L0)|0,w=w+Math.imul(U0,R0)|0,B=B+Math.imul(Y0,z0)|0,y=y+Math.imul(Y0,M0)|0,y=y+Math.imul(Z0,z0)|0,w=w+Math.imul(Z0,M0)|0,B=B+Math.imul(i,v0)|0,y=y+Math.imul(i,q0)|0,y=y+Math.imul($0,v0)|0,w=w+Math.imul($0,q0)|0,B=B+Math.imul(a,k0)|0,y=y+Math.imul(a,g0)|0,y=y+Math.imul(r,k0)|0,w=w+Math.imul(r,g0)|0,B=B+Math.imul(s,x0)|0,y=y+Math.imul(s,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,_0)|0,B=B+Math.imul(o,y0)|0,y=y+Math.imul(o,w0)|0,y=y+Math.imul(u,y0)|0,w=w+Math.imul(u,w0)|0,B=B+Math.imul(d,p0)|0,y=y+Math.imul(d,c0)|0,y=y+Math.imul(b,p0)|0,w=w+Math.imul(b,c0)|0,B=B+Math.imul(p,d0)|0,y=y+Math.imul(p,b0)|0,y=y+Math.imul(c,d0)|0,w=w+Math.imul(c,b0)|0;var e0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(e0>>>26)|0,e0&=67108863,B=Math.imul(O0,T0),y=Math.imul(O0,D0),y=y+Math.imul(F0,T0)|0,w=Math.imul(F0,D0),B=B+Math.imul(K0,L0)|0,y=y+Math.imul(K0,R0)|0,y=y+Math.imul(I0,L0)|0,w=w+Math.imul(I0,R0)|0,B=B+Math.imul(V0,z0)|0,y=y+Math.imul(V0,M0)|0,y=y+Math.imul(U0,z0)|0,w=w+Math.imul(U0,M0)|0,B=B+Math.imul(Y0,v0)|0,y=y+Math.imul(Y0,q0)|0,y=y+Math.imul(Z0,v0)|0,w=w+Math.imul(Z0,q0)|0,B=B+Math.imul(i,k0)|0,y=y+Math.imul(i,g0)|0,y=y+Math.imul($0,k0)|0,w=w+Math.imul($0,g0)|0,B=B+Math.imul(a,x0)|0,y=y+Math.imul(a,_0)|0,y=y+Math.imul(r,x0)|0,w=w+Math.imul(r,_0)|0,B=B+Math.imul(s,y0)|0,y=y+Math.imul(s,w0)|0,y=y+Math.imul(t,y0)|0,w=w+Math.imul(t,w0)|0,B=B+Math.imul(o,p0)|0,y=y+Math.imul(o,c0)|0,y=y+Math.imul(u,p0)|0,w=w+Math.imul(u,c0)|0,B=B+Math.imul(d,d0)|0,y=y+Math.imul(d,b0)|0,y=y+Math.imul(b,d0)|0,w=w+Math.imul(b,b0)|0;var i0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(i0>>>26)|0,i0&=67108863,B=Math.imul(O0,L0),y=Math.imul(O0,R0),y=y+Math.imul(F0,L0)|0,w=Math.imul(F0,R0),B=B+Math.imul(K0,z0)|0,y=y+Math.imul(K0,M0)|0,y=y+Math.imul(I0,z0)|0,w=w+Math.imul(I0,M0)|0,B=B+Math.imul(V0,v0)|0,y=y+Math.imul(V0,q0)|0,y=y+Math.imul(U0,v0)|0,w=w+Math.imul(U0,q0)|0,B=B+Math.imul(Y0,k0)|0,y=y+Math.imul(Y0,g0)|0,y=y+Math.imul(Z0,k0)|0,w=w+Math.imul(Z0,g0)|0,B=B+Math.imul(i,x0)|0,y=y+Math.imul(i,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,_0)|0,B=B+Math.imul(a,y0)|0,y=y+Math.imul(a,w0)|0,y=y+Math.imul(r,y0)|0,w=w+Math.imul(r,w0)|0,B=B+Math.imul(s,p0)|0,y=y+Math.imul(s,c0)|0,y=y+Math.imul(t,p0)|0,w=w+Math.imul(t,c0)|0,B=B+Math.imul(o,d0)|0,y=y+Math.imul(o,b0)|0,y=y+Math.imul(u,d0)|0,w=w+Math.imul(u,b0)|0;var $$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+($$>>>26)|0,$$&=67108863,B=Math.imul(O0,z0),y=Math.imul(O0,M0),y=y+Math.imul(F0,z0)|0,w=Math.imul(F0,M0),B=B+Math.imul(K0,v0)|0,y=y+Math.imul(K0,q0)|0,y=y+Math.imul(I0,v0)|0,w=w+Math.imul(I0,q0)|0,B=B+Math.imul(V0,k0)|0,y=y+Math.imul(V0,g0)|0,y=y+Math.imul(U0,k0)|0,w=w+Math.imul(U0,g0)|0,B=B+Math.imul(Y0,x0)|0,y=y+Math.imul(Y0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,_0)|0,B=B+Math.imul(i,y0)|0,y=y+Math.imul(i,w0)|0,y=y+Math.imul($0,y0)|0,w=w+Math.imul($0,w0)|0,B=B+Math.imul(a,p0)|0,y=y+Math.imul(a,c0)|0,y=y+Math.imul(r,p0)|0,w=w+Math.imul(r,c0)|0,B=B+Math.imul(s,d0)|0,y=y+Math.imul(s,b0)|0,y=y+Math.imul(t,d0)|0,w=w+Math.imul(t,b0)|0;var Q$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,B=Math.imul(O0,v0),y=Math.imul(O0,q0),y=y+Math.imul(F0,v0)|0,w=Math.imul(F0,q0),B=B+Math.imul(K0,k0)|0,y=y+Math.imul(K0,g0)|0,y=y+Math.imul(I0,k0)|0,w=w+Math.imul(I0,g0)|0,B=B+Math.imul(V0,x0)|0,y=y+Math.imul(V0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,_0)|0,B=B+Math.imul(Y0,y0)|0,y=y+Math.imul(Y0,w0)|0,y=y+Math.imul(Z0,y0)|0,w=w+Math.imul(Z0,w0)|0,B=B+Math.imul(i,p0)|0,y=y+Math.imul(i,c0)|0,y=y+Math.imul($0,p0)|0,w=w+Math.imul($0,c0)|0,B=B+Math.imul(a,d0)|0,y=y+Math.imul(a,b0)|0,y=y+Math.imul(r,d0)|0,w=w+Math.imul(r,b0)|0;var Y$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,B=Math.imul(O0,k0),y=Math.imul(O0,g0),y=y+Math.imul(F0,k0)|0,w=Math.imul(F0,g0),B=B+Math.imul(K0,x0)|0,y=y+Math.imul(K0,_0)|0,y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,_0)|0,B=B+Math.imul(V0,y0)|0,y=y+Math.imul(V0,w0)|0,y=y+Math.imul(U0,y0)|0,w=w+Math.imul(U0,w0)|0,B=B+Math.imul(Y0,p0)|0,y=y+Math.imul(Y0,c0)|0,y=y+Math.imul(Z0,p0)|0,w=w+Math.imul(Z0,c0)|0,B=B+Math.imul(i,d0)|0,y=y+Math.imul(i,b0)|0,y=y+Math.imul($0,d0)|0,w=w+Math.imul($0,b0)|0;var Z$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,B=Math.imul(O0,x0),y=Math.imul(O0,_0),y=y+Math.imul(F0,x0)|0,w=Math.imul(F0,_0),B=B+Math.imul(K0,y0)|0,y=y+Math.imul(K0,w0)|0,y=y+Math.imul(I0,y0)|0,w=w+Math.imul(I0,w0)|0,B=B+Math.imul(V0,p0)|0,y=y+Math.imul(V0,c0)|0,y=y+Math.imul(U0,p0)|0,w=w+Math.imul(U0,c0)|0,B=B+Math.imul(Y0,d0)|0,y=y+Math.imul(Y0,b0)|0,y=y+Math.imul(Z0,d0)|0,w=w+Math.imul(Z0,b0)|0;var G$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(G$>>>26)|0,G$&=67108863,B=Math.imul(O0,y0),y=Math.imul(O0,w0),y=y+Math.imul(F0,y0)|0,w=Math.imul(F0,w0),B=B+Math.imul(K0,p0)|0,y=y+Math.imul(K0,c0)|0,y=y+Math.imul(I0,p0)|0,w=w+Math.imul(I0,c0)|0,B=B+Math.imul(V0,d0)|0,y=y+Math.imul(V0,b0)|0,y=y+Math.imul(U0,d0)|0,w=w+Math.imul(U0,b0)|0;var V$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(V$>>>26)|0,V$&=67108863,B=Math.imul(O0,p0),y=Math.imul(O0,c0),y=y+Math.imul(F0,p0)|0,w=Math.imul(F0,c0),B=B+Math.imul(K0,d0)|0,y=y+Math.imul(K0,b0)|0,y=y+Math.imul(I0,d0)|0,w=w+Math.imul(I0,b0)|0;var U$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(U$>>>26)|0,U$&=67108863,B=Math.imul(O0,d0),y=Math.imul(O0,b0),y=y+Math.imul(F0,d0)|0,w=Math.imul(F0,b0);var X$=(_+B|0)+((y&8191)<<13)|0;return _=(w+(y>>>13)|0)+(X$>>>26)|0,X$&=67108863,x[0]=l0,x[1]=o0,x[2]=u0,x[3]=n0,x[4]=s0,x[5]=t0,x[6]=m0,x[7]=a0,x[8]=r0,x[9]=e0,x[10]=i0,x[11]=$$,x[12]=Q$,x[13]=Y$,x[14]=Z$,x[15]=G$,x[16]=V$,x[17]=U$,x[18]=X$,_!==0&&(x[19]=_,k.length++),k};Math.imul||(H=W);function E(q,j,k){k.negative=j.negative^q.negative,k.length=q.length+j.length;for(var g=0,N=0,x=0;x>>26)|0,N+=_>>>26,_&=67108863}k.words[x]=B,g=_,_=N}return g!==0?k.words[x]=g:k.length--,k.strip()}function T(q,j,k){var g=new D;return g.mulp(q,j,k)}V.prototype.mulTo=function(q,j){var k,g=this.length+q.length;return this.length===10&&q.length===10?k=H(this,q,j):g<63?k=W(this,q,j):g<1024?k=E(this,q,j):k=T(this,q,j),k};function D(q,j){this.x=q,this.y=j}D.prototype.makeRBT=function(q){for(var j=new Array(q),k=V.prototype._countBits(q)-1,g=0;g>=1;return g},D.prototype.permute=function(q,j,k,g,N,x){for(var _=0;_>>1)N++;return 1<>>13,k[2*x+1]=N&8191,N=N>>>13;for(x=2*j;x>=26,j+=g/67108864|0,j+=N>>>26,this.words[k]=N&67108863}return j!==0&&(this.words[k]=j,this.length++),this},V.prototype.muln=function(q){return this.clone().imuln(q)},V.prototype.sqr=function(){return this.mul(this)},V.prototype.isqr=function(){return this.imul(this.clone())},V.prototype.pow=function(q){var j=A(q);if(j.length===0)return new V(1);for(var k=this,g=0;g=0);var j=q%26,k=(q-j)/26,g=67108863>>>26-j<<26-j,N;if(j!==0){var x=0;for(N=0;N>>26-j}x&&(this.words[N]=x,this.length++)}if(k!==0){for(N=this.length-1;N>=0;N--)this.words[N+k]=this.words[N];for(N=0;N=0);var g;j?g=(j-j%26)/26:g=0;var N=q%26,x=Math.min((q-N)/26,this.length),_=67108863^67108863>>>N<x)for(this.length-=x,y=0;y=0&&(w!==0||y>=g);y--){var f=this.words[y]|0;this.words[y]=w<<26-N|f>>>N,w=f&_}return B&&w!==0&&(B.words[B.length++]=w),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},V.prototype.ishrn=function(q,j,k){return Z(this.negative===0),this.iushrn(q,j,k)},V.prototype.shln=function(q){return this.clone().ishln(q)},V.prototype.ushln=function(q){return this.clone().iushln(q)},V.prototype.shrn=function(q){return this.clone().ishrn(q)},V.prototype.ushrn=function(q){return this.clone().iushrn(q)},V.prototype.testn=function(q){Z(typeof q=="number"&&q>=0);var j=q%26,k=(q-j)/26,g=1<=0);var j=q%26,k=(q-j)/26;if(Z(this.negative===0,"imaskn works only with positive numbers"),this.length<=k)return this;if(j!==0&&k++,this.length=Math.min(k,this.length),j!==0){var g=67108863^67108863>>>j<=67108864;j++)this.words[j]-=67108864,j===this.length-1?this.words[j+1]=1:this.words[j+1]++;return this.length=Math.max(this.length,j+1),this},V.prototype.isubn=function(q){if(Z(typeof q=="number"),Z(q<67108864),q<0)return this.iaddn(-q);if(this.negative!==0)return this.negative=0,this.iaddn(q),this.negative=1,this;if(this.words[0]-=q,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var j=0;j>26)-(B/67108864|0),this.words[N+k]=x&67108863}for(;N>26,this.words[N+k]=x&67108863;if(_===0)return this.strip();for(Z(_===-1),_=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},V.prototype._wordDiv=function(q,j){var k=this.length-q.length,g=this.clone(),N=q,x=N.words[N.length-1]|0,_=this._countBits(x);k=26-_,k!==0&&(N=N.ushln(k),g.iushln(k),x=N.words[N.length-1]|0);var B=g.length-N.length,y;if(j!=="mod"){y=new V(null),y.length=B+1,y.words=new Array(y.length);for(var w=0;w=0;p--){var c=(g.words[N.length+p]|0)*67108864+(g.words[N.length+p-1]|0);for(c=Math.min(c/x|0,67108863),g._ishlnsubmul(N,c,p);g.negative!==0;)c--,g.negative=0,g._ishlnsubmul(N,1,p),g.isZero()||(g.negative^=1);y&&(y.words[p]=c)}return y&&y.strip(),g.strip(),j!=="div"&&k!==0&&g.iushrn(k),{div:y||null,mod:g}},V.prototype.divmod=function(q,j,k){if(Z(!q.isZero()),this.isZero())return{div:new V(0),mod:new V(0)};var g,N,x;return this.negative!==0&&q.negative===0?(x=this.neg().divmod(q,j),j!=="mod"&&(g=x.div.neg()),j!=="div"&&(N=x.mod.neg(),k&&N.negative!==0&&N.iadd(q)),{div:g,mod:N}):this.negative===0&&q.negative!==0?(x=this.divmod(q.neg(),j),j!=="mod"&&(g=x.div.neg()),{div:g,mod:x.mod}):(this.negative&q.negative)!==0?(x=this.neg().divmod(q.neg(),j),j!=="div"&&(N=x.mod.neg(),k&&N.negative!==0&&N.isub(q)),{div:x.div,mod:N}):q.length>this.length||this.cmp(q)<0?{div:new V(0),mod:this}:q.length===1?j==="div"?{div:this.divn(q.words[0]),mod:null}:j==="mod"?{div:null,mod:new V(this.modn(q.words[0]))}:{div:this.divn(q.words[0]),mod:new V(this.modn(q.words[0]))}:this._wordDiv(q,j)},V.prototype.div=function(q){return this.divmod(q,"div",!1).div},V.prototype.mod=function(q){return this.divmod(q,"mod",!1).mod},V.prototype.umod=function(q){return this.divmod(q,"mod",!0).mod},V.prototype.divRound=function(q){var j=this.divmod(q);if(j.mod.isZero())return j.div;var k=j.div.negative!==0?j.mod.isub(q):j.mod,g=q.ushrn(1),N=q.andln(1),x=k.cmp(g);return x<0||N===1&&x===0?j.div:j.div.negative!==0?j.div.isubn(1):j.div.iaddn(1)},V.prototype.modn=function(q){Z(q<=67108863);for(var j=(1<<26)%q,k=0,g=this.length-1;g>=0;g--)k=(j*k+(this.words[g]|0))%q;return k},V.prototype.idivn=function(q){Z(q<=67108863);for(var j=0,k=this.length-1;k>=0;k--){var g=(this.words[k]|0)+j*67108864;this.words[k]=g/q|0,j=g%q}return this.strip()},V.prototype.divn=function(q){return this.clone().idivn(q)},V.prototype.egcd=function(q){Z(q.negative===0),Z(!q.isZero());var j=this,k=q.clone();j.negative!==0?j=j.umod(q):j=j.clone();for(var g=new V(1),N=new V(0),x=new V(0),_=new V(1),B=0;j.isEven()&&k.isEven();)j.iushrn(1),k.iushrn(1),++B;for(var y=k.clone(),w=j.clone();!j.isZero();){for(var f=0,p=1;(j.words[0]&p)===0&&f<26;++f,p<<=1);if(f>0)for(j.iushrn(f);f-- >0;)(g.isOdd()||N.isOdd())&&(g.iadd(y),N.isub(w)),g.iushrn(1),N.iushrn(1);for(var c=0,h=1;(k.words[0]&h)===0&&c<26;++c,h<<=1);if(c>0)for(k.iushrn(c);c-- >0;)(x.isOdd()||_.isOdd())&&(x.iadd(y),_.isub(w)),x.iushrn(1),_.iushrn(1);j.cmp(k)>=0?(j.isub(k),g.isub(x),N.isub(_)):(k.isub(j),x.isub(g),_.isub(N))}return{a:x,b:_,gcd:k.iushln(B)}},V.prototype._invmp=function(q){Z(q.negative===0),Z(!q.isZero());var j=this,k=q.clone();j.negative!==0?j=j.umod(q):j=j.clone();for(var g=new V(1),N=new V(0),x=k.clone();j.cmpn(1)>0&&k.cmpn(1)>0;){for(var _=0,B=1;(j.words[0]&B)===0&&_<26;++_,B<<=1);if(_>0)for(j.iushrn(_);_-- >0;)g.isOdd()&&g.iadd(x),g.iushrn(1);for(var y=0,w=1;(k.words[0]&w)===0&&y<26;++y,w<<=1);if(y>0)for(k.iushrn(y);y-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);j.cmp(k)>=0?(j.isub(k),g.isub(N)):(k.isub(j),N.isub(g))}var f;return j.cmpn(1)===0?f=g:f=N,f.cmpn(0)<0&&f.iadd(q),f},V.prototype.gcd=function(q){if(this.isZero())return q.abs();if(q.isZero())return this.abs();var j=this.clone(),k=q.clone();j.negative=0,k.negative=0;for(var g=0;j.isEven()&&k.isEven();g++)j.iushrn(1),k.iushrn(1);do{for(;j.isEven();)j.iushrn(1);for(;k.isEven();)k.iushrn(1);var N=j.cmp(k);if(N<0){var x=j;j=k,k=x}else if(N===0||k.cmpn(1)===0)break;j.isub(k)}while(!0);return k.iushln(g)},V.prototype.invm=function(q){return this.egcd(q).a.umod(q)},V.prototype.isEven=function(){return(this.words[0]&1)===0},V.prototype.isOdd=function(){return(this.words[0]&1)===1},V.prototype.andln=function(q){return this.words[0]&q},V.prototype.bincn=function(q){Z(typeof q=="number");var j=q%26,k=(q-j)/26,g=1<>>26,_&=67108863,this.words[x]=_}return N!==0&&(this.words[x]=N,this.length++),this},V.prototype.isZero=function(){return this.length===1&&this.words[0]===0},V.prototype.cmpn=function(q){var j=q<0;if(this.negative!==0&&!j)return-1;if(this.negative===0&&j)return 1;this.strip();var k;if(this.length>1)k=1;else{j&&(q=-q),Z(q<=67108863,"Number is too big");var g=this.words[0]|0;k=g===q?0:gq.length)return 1;if(this.length=0;k--){var g=this.words[k]|0,N=q.words[k]|0;if(g!==N){gN&&(j=1);break}}return j},V.prototype.gtn=function(q){return this.cmpn(q)===1},V.prototype.gt=function(q){return this.cmp(q)===1},V.prototype.gten=function(q){return this.cmpn(q)>=0},V.prototype.gte=function(q){return this.cmp(q)>=0},V.prototype.ltn=function(q){return this.cmpn(q)===-1},V.prototype.lt=function(q){return this.cmp(q)===-1},V.prototype.lten=function(q){return this.cmpn(q)<=0},V.prototype.lte=function(q){return this.cmp(q)<=0},V.prototype.eqn=function(q){return this.cmpn(q)===0},V.prototype.eq=function(q){return this.cmp(q)===0},V.red=function(q){return new S(q)},V.prototype.toRed=function(q){return Z(!this.red,"Already a number in reduction context"),Z(this.negative===0,"red works only with positives"),q.convertTo(this)._forceRed(q)},V.prototype.fromRed=function(){return Z(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},V.prototype._forceRed=function(q){return this.red=q,this},V.prototype.forceRed=function(q){return Z(!this.red,"Already a number in reduction context"),this._forceRed(q)},V.prototype.redAdd=function(q){return Z(this.red,"redAdd works only with red numbers"),this.red.add(this,q)},V.prototype.redIAdd=function(q){return Z(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,q)},V.prototype.redSub=function(q){return Z(this.red,"redSub works only with red numbers"),this.red.sub(this,q)},V.prototype.redISub=function(q){return Z(this.red,"redISub works only with red numbers"),this.red.isub(this,q)},V.prototype.redShl=function(q){return Z(this.red,"redShl works only with red numbers"),this.red.shl(this,q)},V.prototype.redMul=function(q){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,q),this.red.mul(this,q)},V.prototype.redIMul=function(q){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,q),this.red.imul(this,q)},V.prototype.redSqr=function(){return Z(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},V.prototype.redISqr=function(){return Z(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},V.prototype.redSqrt=function(){return Z(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},V.prototype.redInvm=function(){return Z(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},V.prototype.redNeg=function(){return Z(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},V.prototype.redPow=function(q){return Z(this.red&&!q.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,q)};var C={k256:null,p224:null,p192:null,p25519:null};function L(q,j){this.name=q,this.p=new V(j,16),this.n=this.p.bitLength(),this.k=new V(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}L.prototype._tmp=function(){var q=new V(null);return q.words=new Array(Math.ceil(this.n/13)),q},L.prototype.ireduce=function(q){var j=q,k;do this.split(j,this.tmp),j=this.imulK(j),j=j.iadd(this.tmp),k=j.bitLength();while(k>this.n);var g=k0?j.isub(this.p):j.strip!==void 0?j.strip():j._strip(),j},L.prototype.split=function(q,j){q.iushrn(this.n,0,j)},L.prototype.imulK=function(q){return q.imul(this.k)};function R(){L.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}G(R,L),R.prototype.split=function(q,j){for(var k=4194303,g=Math.min(q.length,9),N=0;N>>22,x=_}x>>>=22,q.words[N-10]=x,x===0&&q.length>10?q.length-=10:q.length-=9},R.prototype.imulK=function(q){q.words[q.length]=0,q.words[q.length+1]=0,q.length+=2;for(var j=0,k=0;k>>=26,q.words[k]=N,j=g}return j!==0&&(q.words[q.length++]=j),q},V._prime=function(q){if(C[q])return C[q];var j;if(q==="k256")j=new R;else if(q==="p224")j=new P;else if(q==="p192")j=new z;else if(q==="p25519")j=new M;else throw new Error("Unknown prime "+q);return C[q]=j,j};function S(q){if(typeof q=="string"){var j=V._prime(q);this.m=j.p,this.prime=j}else Z(q.gtn(1),"modulus must be greater than 1"),this.m=q,this.prime=null}S.prototype._verify1=function(q){Z(q.negative===0,"red works only with positives"),Z(q.red,"red works only with red numbers")},S.prototype._verify2=function(q,j){Z((q.negative|j.negative)===0,"red works only with positives"),Z(q.red&&q.red===j.red,"red works only with red numbers")},S.prototype.imod=function(q){return this.prime?this.prime.ireduce(q)._forceRed(this):q.umod(this.m)._forceRed(this)},S.prototype.neg=function(q){return q.isZero()?q.clone():this.m.sub(q)._forceRed(this)},S.prototype.add=function(q,j){this._verify2(q,j);var k=q.add(j);return k.cmp(this.m)>=0&&k.isub(this.m),k._forceRed(this)},S.prototype.iadd=function(q,j){this._verify2(q,j);var k=q.iadd(j);return k.cmp(this.m)>=0&&k.isub(this.m),k},S.prototype.sub=function(q,j){this._verify2(q,j);var k=q.sub(j);return k.cmpn(0)<0&&k.iadd(this.m),k._forceRed(this)},S.prototype.isub=function(q,j){this._verify2(q,j);var k=q.isub(j);return k.cmpn(0)<0&&k.iadd(this.m),k},S.prototype.shl=function(q,j){return this._verify1(q),this.imod(q.ushln(j))},S.prototype.imul=function(q,j){return this._verify2(q,j),this.imod(q.imul(j))},S.prototype.mul=function(q,j){return this._verify2(q,j),this.imod(q.mul(j))},S.prototype.isqr=function(q){return this.imul(q,q.clone())},S.prototype.sqr=function(q){return this.mul(q,q)},S.prototype.sqrt=function(q){if(q.isZero())return q.clone();var j=this.m.andln(3);if(Z(j%2===1),j===3){var k=this.m.add(new V(1)).iushrn(2);return this.pow(q,k)}for(var g=this.m.subn(1),N=0;!g.isZero()&&g.andln(1)===0;)N++,g.iushrn(1);Z(!g.isZero());var x=new V(1).toRed(this),_=x.redNeg(),B=this.m.subn(1).iushrn(1),y=this.m.bitLength();for(y=new V(2*y*y).toRed(this);this.pow(y,B).cmp(_)!==0;)y.redIAdd(_);for(var w=this.pow(y,g),f=this.pow(q,g.addn(1).iushrn(1)),p=this.pow(q,g),c=N;p.cmp(x)!==0;){for(var h=p,d=0;h.cmp(x)!==0;d++)h=h.redSqr();Z(d=0;N--){for(var w=j.words[N],f=y-1;f>=0;f--){var p=w>>f&1;if(x!==g[0]&&(x=this.sqr(x)),p===0&&_===0){B=0;continue}_<<=1,_|=p,B++,!(B!==k&&(N!==0||f!==0))&&(x=this.mul(x,g[_]),B=0,_=0)}y=26}return x},S.prototype.convertTo=function(q){var j=q.umod(this.m);return j===q?j.clone():j},S.prototype.convertFrom=function(q){var j=q.clone();return j.red=null,j},V.mont=function(q){return new v(q)};function v(q){S.call(this,q),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new V(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}G(v,S),v.prototype.convertTo=function(q){return this.imod(q.ushln(this.shift))},v.prototype.convertFrom=function(q){var j=this.imod(q.mul(this.rinv));return j.red=null,j},v.prototype.imul=function(q,j){if(q.isZero()||j.isZero())return q.words[0]=0,q.length=1,q;var k=q.imul(j),g=k.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=k.isub(g).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},v.prototype.mul=function(q,j){if(q.isZero()||j.isZero())return new V(0)._forceRed(this);var k=q.mul(j),g=k.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=k.isub(g).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},v.prototype.invm=function(q){var j=this.imod(q._invmp(this.m).mul(this.r2));return j._forceRed(this)}})(typeof $>"u"||$,bZ)}}),cQ=P$({"node_modules/minimalistic-crypto-utils/lib/utils.js"(bZ){var $=bZ;function Q(G,V){if(Array.isArray(G))return G.slice();if(!G)return[];var U=[];if(typeof G!="string"){for(var X=0;X>8,J=K&255;I?U.push(I,J):U.push(J)}return U}$.toArray=Q;function Y(G){return G.length===1?"0"+G:G}$.zero2=Y;function Z(G){for(var V="",U=0;U(A>>1)-1?E=(A>>1)-T:E=T,W.isubn(E)):E=0,F[H]=E,W.iushrn(1)}return F}$.getNAF=G;function V(I,J){var O=[[],[]];I=I.clone(),J=J.clone();for(var F=0,A=0,W;I.cmpn(-F)>0||J.cmpn(-A)>0;){var H=I.andln(3)+F&3,E=J.andln(3)+A&3;H===3&&(H=-1),E===3&&(E=-1);var T;(H&1)===0?T=0:(W=I.andln(7)+F&7,(W===3||W===5)&&E===2?T=-H:T=H),O[0].push(T);var D;(E&1)===0?D=0:(W=J.andln(7)+A&7,(W===3||W===5)&&H===2?D=-E:D=E),O[1].push(D),2*F===T+1&&(F=1-F),2*A===D+1&&(A=1-A),I.iushrn(1),J.iushrn(1)}return O}$.getJSF=V;function U(I,J,O){var F="_"+J;I.prototype[J]=function(){return this[F]!==void 0?this[F]:this[F]=O.call(this)}}$.cachedProperty=U;function X(I){return typeof I=="string"?$.toArray(I,"hex"):I}$.parseBytes=X;function K(I){return new Q(I,"hex","le")}$.intFromLE=K}}),dQ=P$({"node_modules/elliptic/lib/elliptic/curve/base.js"(bZ,$){var Q=pQ(),Y=hQ(),Z=Y.getNAF,G=Y.getJSF,V=Y.assert;function U(K,I){this.type=K,this.p=new Q(I.p,16),this.red=I.prime?Q.red(I.prime):Q.mont(this.p),this.zero=new Q(0).toRed(this.red),this.one=new Q(1).toRed(this.red),this.two=new Q(2).toRed(this.red),this.n=I.n&&new Q(I.n,16),this.g=I.g&&this.pointFromJSON(I.g,I.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var J=this.n&&this.p.div(this.n);!J||J.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}$.exports=U,U.prototype.point=function(){throw new Error("Not implemented")},U.prototype.validate=function(){throw new Error("Not implemented")},U.prototype._fixedNafMul=function(K,I){V(K.precomputed);var J=K._getDoubles(),O=Z(I,1,this._bitLength),F=(1<=W;E--)H=(H<<1)+O[E];A.push(H)}for(var T=this.jpoint(null,null,null),D=this.jpoint(null,null,null),C=F;C>0;C--){for(W=0;W=0;H--){for(var E=0;H>=0&&A[H]===0;H--)E++;if(H>=0&&E++,W=W.dblp(E),H<0)break;var T=A[H];V(T!==0),K.type==="affine"?T>0?W=W.mixedAdd(F[T-1>>1]):W=W.mixedAdd(F[-T-1>>1].neg()):T>0?W=W.add(F[T-1>>1]):W=W.add(F[-T-1>>1].neg())}return K.type==="affine"?W.toP():W},U.prototype._wnafMulAdd=function(K,I,J,O,F){var A=this._wnafT1,W=this._wnafT2,H=this._wnafT3,E=0,T,D,C;for(T=0;T=1;T-=2){var R=T-1,P=T;if(A[R]!==1||A[P]!==1){H[R]=Z(J[R],A[R],this._bitLength),H[P]=Z(J[P],A[P],this._bitLength),E=Math.max(H[R].length,E),E=Math.max(H[P].length,E);continue}var z=[I[R],null,null,I[P]];I[R].y.cmp(I[P].y)===0?(z[1]=I[R].add(I[P]),z[2]=I[R].toJ().mixedAdd(I[P].neg())):I[R].y.cmp(I[P].y.redNeg())===0?(z[1]=I[R].toJ().mixedAdd(I[P]),z[2]=I[R].add(I[P].neg())):(z[1]=I[R].toJ().mixedAdd(I[P]),z[2]=I[R].toJ().mixedAdd(I[P].neg()));var M=[-3,-1,-5,-7,0,7,5,1,3],S=G(J[R],J[P]);for(E=Math.max(S[0].length,E),H[R]=new Array(E),H[P]=new Array(E),D=0;D=0;T--){for(var g=0;T>=0;){var N=!0;for(D=0;D=0&&g++,j=j.dblp(g),T<0)break;for(D=0;D0?C=W[D][x-1>>1]:x<0&&(C=W[D][-x-1>>1].neg()),C.type==="affine"?j=j.mixedAdd(C):j=j.add(C))}}for(T=0;T=Math.ceil((K.bitLength()+1)/I.step):!1},X.prototype._getDoubles=function(K,I){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var J=[this],O=this,F=0;F=0&&(R=T,P=D),C.negative&&(C=C.neg(),L=L.neg()),R.negative&&(R=R.neg(),P=P.neg()),[{a:C,b:L},{a:R,b:P}]},U.prototype._endoSplit=function(I){var J=this.endo.basis,O=J[0],F=J[1],A=F.b.mul(I).divRound(this.n),W=O.b.neg().mul(I).divRound(this.n),H=A.mul(O.a),E=W.mul(F.a),T=A.mul(O.b),D=W.mul(F.b),C=I.sub(H).sub(E),L=T.add(D).neg();return{k1:C,k2:L}},U.prototype.pointFromX=function(I,J){I=new Y(I,16),I.red||(I=I.toRed(this.red));var O=I.redSqr().redMul(I).redIAdd(I.redMul(this.a)).redIAdd(this.b),F=O.redSqrt();if(F.redSqr().redSub(O).cmp(this.zero)!==0)throw new Error("invalid point");var A=F.fromRed().isOdd();return(J&&!A||!J&&A)&&(F=F.redNeg()),this.point(I,F)},U.prototype.validate=function(I){if(I.inf)return!0;var{x:J,y:O}=I,F=this.a.redMul(J),A=J.redSqr().redMul(J).redIAdd(F).redIAdd(this.b);return O.redSqr().redISub(A).cmpn(0)===0},U.prototype._endoWnafMulAdd=function(I,J,O){for(var F=this._endoWnafT1,A=this._endoWnafT2,W=0;W":""},X.prototype.isInfinity=function(){return this.inf},X.prototype.add=function(I){if(this.inf)return I;if(I.inf)return this;if(this.eq(I))return this.dbl();if(this.neg().eq(I))return this.curve.point(null,null);if(this.x.cmp(I.x)===0)return this.curve.point(null,null);var J=this.y.redSub(I.y);J.cmpn(0)!==0&&(J=J.redMul(this.x.redSub(I.x).redInvm()));var O=J.redSqr().redISub(this.x).redISub(I.x),F=J.redMul(this.x.redSub(O)).redISub(this.y);return this.curve.point(O,F)},X.prototype.dbl=function(){if(this.inf)return this;var I=this.y.redAdd(this.y);if(I.cmpn(0)===0)return this.curve.point(null,null);var J=this.curve.a,O=this.x.redSqr(),F=I.redInvm(),A=O.redAdd(O).redIAdd(O).redIAdd(J).redMul(F),W=A.redSqr().redISub(this.x.redAdd(this.x)),H=A.redMul(this.x.redSub(W)).redISub(this.y);return this.curve.point(W,H)},X.prototype.getX=function(){return this.x.fromRed()},X.prototype.getY=function(){return this.y.fromRed()},X.prototype.mul=function(I){return I=new Y(I,16),this.isInfinity()?this:this._hasDoubles(I)?this.curve._fixedNafMul(this,I):this.curve.endo?this.curve._endoWnafMulAdd([this],[I]):this.curve._wnafMul(this,I)},X.prototype.mulAdd=function(I,J,O){var F=[this,J],A=[I,O];return this.curve.endo?this.curve._endoWnafMulAdd(F,A):this.curve._wnafMulAdd(1,F,A,2)},X.prototype.jmulAdd=function(I,J,O){var F=[this,J],A=[I,O];return this.curve.endo?this.curve._endoWnafMulAdd(F,A,!0):this.curve._wnafMulAdd(1,F,A,2,!0)},X.prototype.eq=function(I){return this===I||this.inf===I.inf&&(this.inf||this.x.cmp(I.x)===0&&this.y.cmp(I.y)===0)},X.prototype.neg=function(I){if(this.inf)return this;var J=this.curve.point(this.x,this.y.redNeg());if(I&&this.precomputed){var O=this.precomputed,F=function(A){return A.neg()};J.precomputed={naf:O.naf&&{wnd:O.naf.wnd,points:O.naf.points.map(F)},doubles:O.doubles&&{step:O.doubles.step,points:O.doubles.points.map(F)}}}return J},X.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var I=this.curve.jpoint(this.x,this.y,this.curve.one);return I};function K(I,J,O,F){G.BasePoint.call(this,I,"jacobian"),J===null&&O===null&&F===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new Y(0)):(this.x=new Y(J,16),this.y=new Y(O,16),this.z=new Y(F,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}Z(K,G.BasePoint),U.prototype.jpoint=function(I,J,O){return new K(this,I,J,O)},K.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var I=this.z.redInvm(),J=I.redSqr(),O=this.x.redMul(J),F=this.y.redMul(J).redMul(I);return this.curve.point(O,F)},K.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},K.prototype.add=function(I){if(this.isInfinity())return I;if(I.isInfinity())return this;var J=I.z.redSqr(),O=this.z.redSqr(),F=this.x.redMul(J),A=I.x.redMul(O),W=this.y.redMul(J.redMul(I.z)),H=I.y.redMul(O.redMul(this.z)),E=F.redSub(A),T=W.redSub(H);if(E.cmpn(0)===0)return T.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var D=E.redSqr(),C=D.redMul(E),L=F.redMul(D),R=T.redSqr().redIAdd(C).redISub(L).redISub(L),P=T.redMul(L.redISub(R)).redISub(W.redMul(C)),z=this.z.redMul(I.z).redMul(E);return this.curve.jpoint(R,P,z)},K.prototype.mixedAdd=function(I){if(this.isInfinity())return I.toJ();if(I.isInfinity())return this;var J=this.z.redSqr(),O=this.x,F=I.x.redMul(J),A=this.y,W=I.y.redMul(J).redMul(this.z),H=O.redSub(F),E=A.redSub(W);if(H.cmpn(0)===0)return E.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var T=H.redSqr(),D=T.redMul(H),C=O.redMul(T),L=E.redSqr().redIAdd(D).redISub(C).redISub(C),R=E.redMul(C.redISub(L)).redISub(A.redMul(D)),P=this.z.redMul(H);return this.curve.jpoint(L,R,P)},K.prototype.dblp=function(I){if(I===0)return this;if(this.isInfinity())return this;if(!I)return this.dbl();var J;if(this.curve.zeroA||this.curve.threeA){var O=this;for(J=0;J=0)return!1;if(O.redIAdd(A),this.x.cmp(O)===0)return!0}},K.prototype.inspect=function(){return this.isInfinity()?"":""},K.prototype.isInfinity=function(){return this.z.cmpn(0)===0}}}),lQ=P$({"node_modules/elliptic/lib/elliptic/curve/mont.js"(bZ,$){var Q=pQ(),Y=v$(),Z=dQ(),G=hQ();function V(X){Z.call(this,"mont",X),this.a=new Q(X.a,16).toRed(this.red),this.b=new Q(X.b,16).toRed(this.red),this.i4=new Q(4).toRed(this.red).redInvm(),this.two=new Q(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}Y(V,Z),$.exports=V,V.prototype.validate=function(X){var K=X.normalize().x,I=K.redSqr(),J=I.redMul(K).redAdd(I.redMul(this.a)).redAdd(K),O=J.redSqrt();return O.redSqr().cmp(J)===0};function U(X,K,I){Z.BasePoint.call(this,X,"projective"),K===null&&I===null?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new Q(K,16),this.z=new Q(I,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}Y(U,Z.BasePoint),V.prototype.decodePoint=function(X,K){return this.point(G.toArray(X,K),1)},V.prototype.point=function(X,K){return new U(this,X,K)},V.prototype.pointFromJSON=function(X){return U.fromJSON(this,X)},U.prototype.precompute=function(){},U.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},U.fromJSON=function(X,K){return new U(X,K[0],K[1]||X.one)},U.prototype.inspect=function(){return this.isInfinity()?"":""},U.prototype.isInfinity=function(){return this.z.cmpn(0)===0},U.prototype.dbl=function(){var X=this.x.redAdd(this.z),K=X.redSqr(),I=this.x.redSub(this.z),J=I.redSqr(),O=K.redSub(J),F=K.redMul(J),A=O.redMul(J.redAdd(this.curve.a24.redMul(O)));return this.curve.point(F,A)},U.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},U.prototype.diffAdd=function(X,K){var I=this.x.redAdd(this.z),J=this.x.redSub(this.z),O=X.x.redAdd(X.z),F=X.x.redSub(X.z),A=F.redMul(I),W=O.redMul(J),H=K.z.redMul(A.redAdd(W).redSqr()),E=K.x.redMul(A.redISub(W).redSqr());return this.curve.point(H,E)},U.prototype.mul=function(X){for(var K=X.clone(),I=this,J=this.curve.point(null,null),O=this,F=[];K.cmpn(0)!==0;K.iushrn(1))F.push(K.andln(1));for(var A=F.length-1;A>=0;A--)F[A]===0?(I=I.diffAdd(J,O),J=J.dbl()):(J=I.diffAdd(J,O),I=I.dbl());return J},U.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},U.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},U.prototype.eq=function(X){return this.getX().cmp(X.getX())===0},U.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},U.prototype.getX=function(){return this.normalize(),this.x.fromRed()}}}),oQ=P$({"node_modules/elliptic/lib/elliptic/curve/edwards.js"(bZ,$){var Q=hQ(),Y=pQ(),Z=v$(),G=dQ(),V=Q.assert;function U(K){this.twisted=(K.a|0)!==1,this.mOneA=this.twisted&&(K.a|0)===-1,this.extended=this.mOneA,G.call(this,"edwards",K),this.a=new Y(K.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new Y(K.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new Y(K.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),V(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(K.c|0)===1}Z(U,G),$.exports=U,U.prototype._mulA=function(K){return this.mOneA?K.redNeg():this.a.redMul(K)},U.prototype._mulC=function(K){return this.oneC?K:this.c.redMul(K)},U.prototype.jpoint=function(K,I,J,O){return this.point(K,I,J,O)},U.prototype.pointFromX=function(K,I){K=new Y(K,16),K.red||(K=K.toRed(this.red));var J=K.redSqr(),O=this.c2.redSub(this.a.redMul(J)),F=this.one.redSub(this.c2.redMul(this.d).redMul(J)),A=O.redMul(F.redInvm()),W=A.redSqrt();if(W.redSqr().redSub(A).cmp(this.zero)!==0)throw new Error("invalid point");var H=W.fromRed().isOdd();return(I&&!H||!I&&H)&&(W=W.redNeg()),this.point(K,W)},U.prototype.pointFromY=function(K,I){K=new Y(K,16),K.red||(K=K.toRed(this.red));var J=K.redSqr(),O=J.redSub(this.c2),F=J.redMul(this.d).redMul(this.c2).redSub(this.a),A=O.redMul(F.redInvm());if(A.cmp(this.zero)===0){if(I)throw new Error("invalid point");return this.point(this.zero,K)}var W=A.redSqrt();if(W.redSqr().redSub(A).cmp(this.zero)!==0)throw new Error("invalid point");return W.fromRed().isOdd()!==I&&(W=W.redNeg()),this.point(W,K)},U.prototype.validate=function(K){if(K.isInfinity())return!0;K.normalize();var I=K.x.redSqr(),J=K.y.redSqr(),O=I.redMul(this.a).redAdd(J),F=this.c2.redMul(this.one.redAdd(this.d.redMul(I).redMul(J)));return O.cmp(F)===0};function X(K,I,J,O,F){G.BasePoint.call(this,K,"projective"),I===null&&J===null&&O===null?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new Y(I,16),this.y=new Y(J,16),this.z=O?new Y(O,16):this.curve.one,this.t=F&&new Y(F,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}Z(X,G.BasePoint),U.prototype.pointFromJSON=function(K){return X.fromJSON(this,K)},U.prototype.point=function(K,I,J,O){return new X(this,K,I,J,O)},X.fromJSON=function(K,I){return new X(K,I[0],I[1],I[2])},X.prototype.inspect=function(){return this.isInfinity()?"":""},X.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)},X.prototype._extDbl=function(){var K=this.x.redSqr(),I=this.y.redSqr(),J=this.z.redSqr();J=J.redIAdd(J);var O=this.curve._mulA(K),F=this.x.redAdd(this.y).redSqr().redISub(K).redISub(I),A=O.redAdd(I),W=A.redSub(J),H=O.redSub(I),E=F.redMul(W),T=A.redMul(H),D=F.redMul(H),C=W.redMul(A);return this.curve.point(E,T,C,D)},X.prototype._projDbl=function(){var K=this.x.redAdd(this.y).redSqr(),I=this.x.redSqr(),J=this.y.redSqr(),O,F,A,W,H,E;if(this.curve.twisted){W=this.curve._mulA(I);var T=W.redAdd(J);this.zOne?(O=K.redSub(I).redSub(J).redMul(T.redSub(this.curve.two)),F=T.redMul(W.redSub(J)),A=T.redSqr().redSub(T).redSub(T)):(H=this.z.redSqr(),E=T.redSub(H).redISub(H),O=K.redSub(I).redISub(J).redMul(E),F=T.redMul(W.redSub(J)),A=T.redMul(E))}else W=I.redAdd(J),H=this.curve._mulC(this.z).redSqr(),E=W.redSub(H).redSub(H),O=this.curve._mulC(K.redISub(W)).redMul(E),F=this.curve._mulC(W).redMul(I.redISub(J)),A=W.redMul(E);return this.curve.point(O,F,A)},X.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},X.prototype._extAdd=function(K){var I=this.y.redSub(this.x).redMul(K.y.redSub(K.x)),J=this.y.redAdd(this.x).redMul(K.y.redAdd(K.x)),O=this.t.redMul(this.curve.dd).redMul(K.t),F=this.z.redMul(K.z.redAdd(K.z)),A=J.redSub(I),W=F.redSub(O),H=F.redAdd(O),E=J.redAdd(I),T=A.redMul(W),D=H.redMul(E),C=A.redMul(E),L=W.redMul(H);return this.curve.point(T,D,L,C)},X.prototype._projAdd=function(K){var I=this.z.redMul(K.z),J=I.redSqr(),O=this.x.redMul(K.x),F=this.y.redMul(K.y),A=this.curve.d.redMul(O).redMul(F),W=J.redSub(A),H=J.redAdd(A),E=this.x.redAdd(this.y).redMul(K.x.redAdd(K.y)).redISub(O).redISub(F),T=I.redMul(W).redMul(E),D,C;return this.curve.twisted?(D=I.redMul(H).redMul(F.redSub(this.curve._mulA(O))),C=W.redMul(H)):(D=I.redMul(H).redMul(F.redSub(O)),C=this.curve._mulC(W).redMul(H)),this.curve.point(T,D,C)},X.prototype.add=function(K){return this.isInfinity()?K:K.isInfinity()?this:this.curve.extended?this._extAdd(K):this._projAdd(K)},X.prototype.mul=function(K){return this._hasDoubles(K)?this.curve._fixedNafMul(this,K):this.curve._wnafMul(this,K)},X.prototype.mulAdd=function(K,I,J){return this.curve._wnafMulAdd(1,[this,I],[K,J],2,!1)},X.prototype.jmulAdd=function(K,I,J){return this.curve._wnafMulAdd(1,[this,I],[K,J],2,!0)},X.prototype.normalize=function(){if(this.zOne)return this;var K=this.z.redInvm();return this.x=this.x.redMul(K),this.y=this.y.redMul(K),this.t&&(this.t=this.t.redMul(K)),this.z=this.curve.one,this.zOne=!0,this},X.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},X.prototype.getX=function(){return this.normalize(),this.x.fromRed()},X.prototype.getY=function(){return this.normalize(),this.y.fromRed()},X.prototype.eq=function(K){return this===K||this.getX().cmp(K.getX())===0&&this.getY().cmp(K.getY())===0},X.prototype.eqXToP=function(K){var I=K.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(I)===0)return!0;for(var J=K.clone(),O=this.curve.redN.redMul(this.z);;){if(J.iadd(this.curve.n),J.cmp(this.curve.p)>=0)return!1;if(I.redIAdd(O),this.x.cmp(I)===0)return!0}},X.prototype.toP=X.prototype.normalize,X.prototype.mixedAdd=X.prototype.add}}),uQ=P$({"node_modules/elliptic/lib/elliptic/curve/index.js"(bZ){var $=bZ;$.base=dQ(),$.short=bQ(),$.mont=lQ(),$.edwards=oQ()}}),nQ=P$({"node_modules/hash.js/lib/hash/utils.js"(bZ){var $=i$(),Q=v$();bZ.inherits=Q;function Y(j,k){return(j.charCodeAt(k)&64512)!==55296||k<0||k+1>=j.length?!1:(j.charCodeAt(k+1)&64512)===56320}function Z(j,k){if(Array.isArray(j))return j.slice();if(!j)return[];var g=[];if(typeof j=="string")if(k){if(k==="hex")for(j=j.replace(/[^a-z0-9]+/gi,""),j.length%2!==0&&(j="0"+j),x=0;x>6|192,g[N++]=_&63|128):Y(j,x)?(_=65536+((_&1023)<<10)+(j.charCodeAt(++x)&1023),g[N++]=_>>18|240,g[N++]=_>>12&63|128,g[N++]=_>>6&63|128,g[N++]=_&63|128):(g[N++]=_>>12|224,g[N++]=_>>6&63|128,g[N++]=_&63|128)}else for(x=0;x>>24|j>>>8&65280|j<<8&16711680|(j&255)<<24;return k>>>0}bZ.htonl=V;function U(j,k){for(var g="",N=0;N>>0}return _}bZ.join32=I;function J(j,k){for(var g=new Array(j.length*4),N=0,x=0;N>>24,g[x+1]=_>>>16&255,g[x+2]=_>>>8&255,g[x+3]=_&255):(g[x+3]=_>>>24,g[x+2]=_>>>16&255,g[x+1]=_>>>8&255,g[x]=_&255)}return g}bZ.split32=J;function O(j,k){return j>>>k|j<<32-k}bZ.rotr32=O;function F(j,k){return j<>>32-k}bZ.rotl32=F;function A(j,k){return j+k>>>0}bZ.sum32=A;function W(j,k,g){return j+k+g>>>0}bZ.sum32_3=W;function H(j,k,g,N){return j+k+g+N>>>0}bZ.sum32_4=H;function E(j,k,g,N,x){return j+k+g+N+x>>>0}bZ.sum32_5=E;function T(j,k,g,N){var x=j[k],_=j[k+1],B=N+_>>>0,y=(B>>0,j[k+1]=B}bZ.sum64=T;function D(j,k,g,N){var x=k+N>>>0,_=(x>>0}bZ.sum64_hi=D;function C(j,k,g,N){var x=k+N;return x>>>0}bZ.sum64_lo=C;function L(j,k,g,N,x,_,B,y){var w=0,f=k;f=f+N>>>0,w+=f>>0,w+=f<_?1:0,f=f+y>>>0,w+=f>>0}bZ.sum64_4_hi=L;function R(j,k,g,N,x,_,B,y){var w=k+N+_+y;return w>>>0}bZ.sum64_4_lo=R;function P(j,k,g,N,x,_,B,y,w,f){var p=0,c=k;c=c+N>>>0,p+=c>>0,p+=c<_?1:0,c=c+y>>>0,p+=c>>0,p+=c>>0}bZ.sum64_5_hi=P;function z(j,k,g,N,x,_,B,y,w,f){var p=k+N+_+y+f;return p>>>0}bZ.sum64_5_lo=z;function M(j,k,g){var N=k<<32-g|j>>>g;return N>>>0}bZ.rotr64_hi=M;function S(j,k,g){var N=j<<32-g|k>>>g;return N>>>0}bZ.rotr64_lo=S;function v(j,k,g){return j>>>g}bZ.shr64_hi=v;function q(j,k,g){var N=j<<32-g|k>>>g;return N>>>0}bZ.shr64_lo=q}}),sQ=P$({"node_modules/hash.js/lib/hash/common.js"(bZ){var $=nQ(),Q=i$();function Y(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}bZ.BlockHash=Y,Y.prototype.update=function(Z,G){if(Z=$.toArray(Z,G),this.pending?this.pending=this.pending.concat(Z):this.pending=Z,this.pendingTotal+=Z.length,this.pending.length>=this._delta8){Z=this.pending;var V=Z.length%this._delta8;this.pending=Z.slice(Z.length-V,Z.length),this.pending.length===0&&(this.pending=null),Z=$.join32(Z,0,Z.length-V,this.endian);for(var U=0;U>>24&255,U[X++]=Z>>>16&255,U[X++]=Z>>>8&255,U[X++]=Z&255}else for(U[X++]=Z&255,U[X++]=Z>>>8&255,U[X++]=Z>>>16&255,U[X++]=Z>>>24&255,U[X++]=0,U[X++]=0,U[X++]=0,U[X++]=0,K=8;K>>3}bZ.g0_256=K;function I(J){return Q(J,17)^Q(J,19)^J>>>10}bZ.g1_256=I}}),mQ=P$({"node_modules/hash.js/lib/hash/sha/1.js"(bZ,$){var Q=nQ(),Y=sQ(),Z=tQ(),G=Q.rotl32,V=Q.sum32,U=Q.sum32_5,X=Z.ft_1,K=Y.BlockHash,I=[1518500249,1859775393,2400959708,3395469782];function J(){if(!(this instanceof J))return new J;K.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}Q.inherits(J,K),$.exports=J,J.blockSize=512,J.outSize=160,J.hmacStrength=80,J.padLength=64,J.prototype._update=function(O,F){for(var A=this.W,W=0;W<16;W++)A[W]=O[F+W];for(;Wthis.blockSize&&(G=new this.Hash().update(G).digest()),Y(G.length<=this.blockSize);for(var V=G.length;V=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(U,X,K)}$.exports=G,G.prototype._init=function(V,U,X){var K=V.concat(U).concat(X);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var I=0;I=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(V.concat(X||[])),this._reseed=1},G.prototype.generate=function(V,U,X,K){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");typeof U!="string"&&(K=X,X=U,U=null),X&&(X=Y.toArray(X,K||"hex"),this._update(X));for(var I=[];I.length"}}}),KY=P$({"node_modules/elliptic/lib/elliptic/ec/signature.js"(bZ,$){var Q=pQ(),Y=hQ(),Z=Y.assert;function G(I,J){if(I instanceof G)return I;this._importDER(I,J)||(Z(I.r&&I.s,"Signature without r or s"),this.r=new Q(I.r,16),this.s=new Q(I.s,16),I.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=I.recoveryParam)}$.exports=G;function V(){this.place=0}function U(I,J){var O=I[J.place++];if(!(O&128))return O;var F=O&15;if(F===0||F>4)return!1;for(var A=0,W=0,H=J.place;W>>=0;return A<=127?!1:(J.place=H,A)}function X(I){for(var J=0,O=I.length-1;!I[J]&&!(I[J+1]&128)&&J>>3);for(I.push(O|128);--O;)I.push(J>>>(O<<3)&255);I.push(J)}G.prototype.toDER=function(I){var J=this.r.toArray(),O=this.s.toArray();for(J[0]&128&&(J=[0].concat(J)),O[0]&128&&(O=[0].concat(O)),J=X(J),O=X(O);!O[0]&&!(O[1]&128);)O=O.slice(1);var F=[2];K(F,J.length),F=F.concat(J),F.push(2),K(F,O.length);var A=F.concat(O),W=[48];return K(W,A.length),W=W.concat(A),Y.encode(W,I)}}}),IY=P$({"node_modules/elliptic/lib/elliptic/ec/index.js"(bZ,$){var Q=pQ(),Y=UY(),Z=hQ(),G=VY(),V=kQ(),U=Z.assert,X=XY(),K=KY();function I(J){if(!(this instanceof I))return new I(J);typeof J=="string"&&(U(Object.prototype.hasOwnProperty.call(G,J),"Unknown curve "+J),J=G[J]),J instanceof G.PresetCurve&&(J={curve:J}),this.curve=J.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=J.curve.g,this.g.precompute(J.curve.n.bitLength()+1),this.hash=J.hash||J.curve.hash}$.exports=I,I.prototype.keyPair=function(J){return new X(this,J)},I.prototype.keyFromPrivate=function(J,O){return X.fromPrivate(this,J,O)},I.prototype.keyFromPublic=function(J,O){return X.fromPublic(this,J,O)},I.prototype.genKeyPair=function(J){J||(J={});for(var O=new Y({hash:this.hash,pers:J.pers,persEnc:J.persEnc||"utf8",entropy:J.entropy||V(this.hash.hmacStrength),entropyEnc:J.entropy&&J.entropyEnc||"utf8",nonce:this.n.toArray()}),F=this.n.byteLength(),A=this.n.sub(new Q(2));;){var W=new Q(O.generate(F));if(!(W.cmp(A)>0))return W.iaddn(1),this.keyFromPrivate(W)}},I.prototype._truncateToN=function(J,O){var F=J.byteLength()*8-this.n.bitLength();return F>0&&(J=J.ushrn(F)),!O&&J.cmp(this.n)>=0?J.sub(this.n):J},I.prototype.sign=function(J,O,F,A){typeof F=="object"&&(A=F,F=null),A||(A={}),O=this.keyFromPrivate(O,F),J=this._truncateToN(new Q(J,16));for(var W=this.n.byteLength(),H=O.getPrivate().toArray("be",W),E=J.toArray("be",W),T=new Y({hash:this.hash,entropy:H,nonce:E,pers:A.pers,persEnc:A.persEnc||"utf8"}),D=this.n.sub(new Q(1)),C=0;;C++){var L=A.k?A.k(C):new Q(T.generate(this.n.byteLength()));if(L=this._truncateToN(L,!0),!(L.cmpn(1)<=0||L.cmp(D)>=0)){var R=this.g.mul(L);if(!R.isInfinity()){var P=R.getX(),z=P.umod(this.n);if(z.cmpn(0)!==0){var M=L.invm(this.n).mul(z.mul(O.getPrivate()).iadd(J));if(M=M.umod(this.n),M.cmpn(0)!==0){var S=(R.getY().isOdd()?1:0)|(P.cmp(z)!==0?2:0);return A.canonical&&M.cmp(this.nh)>0&&(M=this.n.sub(M),S^=1),new K({r:z,s:M,recoveryParam:S})}}}}}},I.prototype.verify=function(J,O,F,A){J=this._truncateToN(new Q(J,16)),F=this.keyFromPublic(F,A),O=new K(O,"hex");var{r:W,s:H}=O;if(W.cmpn(1)<0||W.cmp(this.n)>=0||H.cmpn(1)<0||H.cmp(this.n)>=0)return!1;var E=H.invm(this.n),T=E.mul(J).umod(this.n),D=E.mul(W).umod(this.n),C;return this.curve._maxwellTrick?(C=this.g.jmulAdd(T,F.getPublic(),D),C.isInfinity()?!1:C.eqXToP(W)):(C=this.g.mulAdd(T,F.getPublic(),D),C.isInfinity()?!1:C.getX().umod(this.n).cmp(W)===0)},I.prototype.recoverPubKey=function(J,O,F,A){U((3&F)===F,"The recovery param is more than two bits"),O=new K(O,A);var W=this.n,H=new Q(J),E=O.r,T=O.s,D=F&1,C=F>>1;if(E.cmp(this.curve.p.umod(this.curve.n))>=0&&C)throw new Error("Unable to find sencond key candinate");C?E=this.curve.pointFromX(E.add(this.curve.n),D):E=this.curve.pointFromX(E,D);var L=O.r.invm(W),R=W.sub(H).mul(L).umod(W),P=T.mul(L).umod(W);return this.g.mulAdd(R,E,P)},I.prototype.getKeyRecoveryParam=function(J,O,F,A){if(O=new K(O,A),O.recoveryParam!==null)return O.recoveryParam;for(var W=0;W<4;W++){var H;try{H=this.recoverPubKey(J,O,W)}catch{continue}if(H.eq(F))return W}throw new Error("Unable to find valid recovery factor")}}}),JY=P$({"node_modules/elliptic/lib/elliptic/eddsa/key.js"(bZ,$){var Q=hQ(),Y=Q.assert,Z=Q.parseBytes,G=Q.cachedProperty;function V(U,X){this.eddsa=U,this._secret=Z(X.secret),U.isPoint(X.pub)?this._pub=X.pub:this._pubBytes=Z(X.pub)}V.fromPublic=function(U,X){return X instanceof V?X:new V(U,{pub:X})},V.fromSecret=function(U,X){return X instanceof V?X:new V(U,{secret:X})},V.prototype.secret=function(){return this._secret},G(V,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())}),G(V,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())}),G(V,"privBytes",function(){var U=this.eddsa,X=this.hash(),K=U.encodingLength-1,I=X.slice(0,U.encodingLength);return I[0]&=248,I[K]&=127,I[K]|=64,I}),G(V,"priv",function(){return this.eddsa.decodeInt(this.privBytes())}),G(V,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()}),G(V,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)}),V.prototype.sign=function(U){return Y(this._secret,"KeyPair can only verify"),this.eddsa.sign(U,this)},V.prototype.verify=function(U,X){return this.eddsa.verify(U,X,this)},V.prototype.getSecret=function(U){return Y(this._secret,"KeyPair is public only"),Q.encode(this.secret(),U)},V.prototype.getPublic=function(U){return Q.encode(this.pubBytes(),U)},$.exports=V}}),OY=P$({"node_modules/elliptic/lib/elliptic/eddsa/signature.js"(bZ,$){var Q=pQ(),Y=hQ(),Z=Y.assert,G=Y.cachedProperty,V=Y.parseBytes;function U(X,K){this.eddsa=X,typeof K!="object"&&(K=V(K)),Array.isArray(K)&&(K={R:K.slice(0,X.encodingLength),S:K.slice(X.encodingLength)}),Z(K.R&&K.S,"Signature without R or S"),X.isPoint(K.R)&&(this._R=K.R),K.S instanceof Q&&(this._S=K.S),this._Rencoded=Array.isArray(K.R)?K.R:K.Rencoded,this._Sencoded=Array.isArray(K.S)?K.S:K.Sencoded}G(U,"S",function(){return this.eddsa.decodeInt(this.Sencoded())}),G(U,"R",function(){return this.eddsa.decodePoint(this.Rencoded())}),G(U,"Rencoded",function(){return this.eddsa.encodePoint(this.R())}),G(U,"Sencoded",function(){return this.eddsa.encodeInt(this.S())}),U.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},U.prototype.toHex=function(){return Y.encode(this.toBytes(),"hex").toUpperCase()},$.exports=U}}),FY=P$({"node_modules/elliptic/lib/elliptic/eddsa/index.js"(bZ,$){var Q=ZY(),Y=VY(),Z=hQ(),G=Z.assert,V=Z.parseBytes,U=JY(),X=OY();function K(I){if(G(I==="ed25519","only tested with ed25519 so far"),!(this instanceof K))return new K(I);I=Y[I].curve,this.curve=I,this.g=I.g,this.g.precompute(I.n.bitLength()+1),this.pointClass=I.point().constructor,this.encodingLength=Math.ceil(I.n.bitLength()/8),this.hash=Q.sha512}$.exports=K,K.prototype.sign=function(I,J){I=V(I);var O=this.keyFromSecret(J),F=this.hashInt(O.messagePrefix(),I),A=this.g.mul(F),W=this.encodePoint(A),H=this.hashInt(W,O.pubBytes(),I).mul(O.priv()),E=F.add(H).umod(this.curve.n);return this.makeSignature({R:A,S:E,Rencoded:W})},K.prototype.verify=function(I,J,O){I=V(I),J=this.makeSignature(J);var F=this.keyFromPublic(O),A=this.hashInt(J.Rencoded(),F.pubBytes(),I),W=this.g.mul(J.S()),H=J.R().add(F.pub().mul(A));return H.eq(W)},K.prototype.hashInt=function(){for(var I=this.hash(),J=0;J0?q:j},V.min=function(q,j){return q.cmp(j)<0?q:j},V.prototype._init=function(q,j,k){if(typeof q=="number")return this._initNumber(q,j,k);if(typeof q=="object")return this._initArray(q,j,k);j==="hex"&&(j=16),Z(j===(j|0)&&j>=2&&j<=36),q=q.toString().replace(/\s+/g,"");var g=0;q[0]==="-"&&(g++,this.negative=1),g=0;g-=3)x=q[g]|q[g-1]<<8|q[g-2]<<16,this.words[N]|=x<<_&67108863,this.words[N+1]=x>>>26-_&67108863,_+=24,_>=26&&(_-=26,N++);else if(k==="le")for(g=0,N=0;g>>26-_&67108863,_+=24,_>=26&&(_-=26,N++);return this.strip()};function X(q,j){var k=q.charCodeAt(j);return k>=65&&k<=70?k-55:k>=97&&k<=102?k-87:k-48&15}function K(q,j,k){var g=X(q,k);return k-1>=j&&(g|=X(q,k-1)<<4),g}V.prototype._parseHex=function(q,j,k){this.length=Math.ceil((q.length-j)/6),this.words=new Array(this.length);for(var g=0;g=j;g-=2)_=K(q,j,g)<=18?(N-=18,x+=1,this.words[x]|=_>>>26):N+=8;else{var B=q.length-j;for(g=B%2===0?j+1:j;g=18?(N-=18,x+=1,this.words[x]|=_>>>26):N+=8}this.strip()};function I(q,j,k,g){for(var N=0,x=Math.min(q.length,k),_=j;_=49?N+=B-49+10:B>=17?N+=B-17+10:N+=B}return N}V.prototype._parseBase=function(q,j,k){this.words=[0],this.length=1;for(var g=0,N=1;N<=67108863;N*=j)g++;g--,N=N/j|0;for(var x=q.length-k,_=x%g,B=Math.min(x,x-_)+k,y=0,w=k;w1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},V.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},V.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],O=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],F=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];V.prototype.toString=function(q,j){q=q||10,j=j|0||1;var k;if(q===16||q==="hex"){k="";for(var g=0,N=0,x=0;x>>24-g&16777215,N!==0||x!==this.length-1?k=J[6-B.length]+B+k:k=B+k,g+=2,g>=26&&(g-=26,x--)}for(N!==0&&(k=N.toString(16)+k);k.length%j!==0;)k="0"+k;return this.negative!==0&&(k="-"+k),k}if(q===(q|0)&&q>=2&&q<=36){var y=O[q],w=F[q];k="";var f=this.clone();for(f.negative=0;!f.isZero();){var p=f.modn(w).toString(q);f=f.idivn(w),f.isZero()?k=p+k:k=J[y-p.length]+p+k}for(this.isZero()&&(k="0"+k);k.length%j!==0;)k="0"+k;return this.negative!==0&&(k="-"+k),k}Z(!1,"Base should be between 2 and 36")},V.prototype.toNumber=function(){var q=this.words[0];return this.length===2?q+=this.words[1]*67108864:this.length===3&&this.words[2]===1?q+=4503599627370496+this.words[1]*67108864:this.length>2&&Z(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-q:q},V.prototype.toJSON=function(){return this.toString(16)},V.prototype.toBuffer=function(q,j){return Z(typeof U<"u"),this.toArrayLike(U,q,j)},V.prototype.toArray=function(q,j){return this.toArrayLike(Array,q,j)},V.prototype.toArrayLike=function(q,j,k){var g=this.byteLength(),N=k||Math.max(1,g);Z(g<=N,"byte array longer than desired length"),Z(N>0,"Requested array length <= 0"),this.strip();var x=j==="le",_=new q(N),B,y,w=this.clone();if(x){for(y=0;!w.isZero();y++)B=w.andln(255),w.iushrn(8),_[y]=B;for(;y=4096&&(k+=13,j>>>=13),j>=64&&(k+=7,j>>>=7),j>=8&&(k+=4,j>>>=4),j>=2&&(k+=2,j>>>=2),k+j},V.prototype._zeroBits=function(q){if(q===0)return 26;var j=q,k=0;return(j&8191)===0&&(k+=13,j>>>=13),(j&127)===0&&(k+=7,j>>>=7),(j&15)===0&&(k+=4,j>>>=4),(j&3)===0&&(k+=2,j>>>=2),(j&1)===0&&k++,k},V.prototype.bitLength=function(){var q=this.words[this.length-1],j=this._countBits(q);return(this.length-1)*26+j};function A(q){for(var j=new Array(q.bitLength()),k=0;k>>N}return j}V.prototype.zeroBits=function(){if(this.isZero())return 0;for(var q=0,j=0;jq.length?this.clone().ior(q):q.clone().ior(this)},V.prototype.uor=function(q){return this.length>q.length?this.clone().iuor(q):q.clone().iuor(this)},V.prototype.iuand=function(q){var j;this.length>q.length?j=q:j=this;for(var k=0;kq.length?this.clone().iand(q):q.clone().iand(this)},V.prototype.uand=function(q){return this.length>q.length?this.clone().iuand(q):q.clone().iuand(this)},V.prototype.iuxor=function(q){var j,k;this.length>q.length?(j=this,k=q):(j=q,k=this);for(var g=0;gq.length?this.clone().ixor(q):q.clone().ixor(this)},V.prototype.uxor=function(q){return this.length>q.length?this.clone().iuxor(q):q.clone().iuxor(this)},V.prototype.inotn=function(q){Z(typeof q=="number"&&q>=0);var j=Math.ceil(q/26)|0,k=q%26;this._expand(j),k>0&&j--;for(var g=0;g0&&(this.words[g]=~this.words[g]&67108863>>26-k),this.strip()},V.prototype.notn=function(q){return this.clone().inotn(q)},V.prototype.setn=function(q,j){Z(typeof q=="number"&&q>=0);var k=q/26|0,g=q%26;return this._expand(k+1),j?this.words[k]=this.words[k]|1<q.length?(k=this,g=q):(k=q,g=this);for(var N=0,x=0;x>>26;for(;N!==0&&x>>26;if(this.length=k.length,N!==0)this.words[this.length]=N,this.length++;else if(k!==this)for(;xq.length?this.clone().iadd(q):q.clone().iadd(this)},V.prototype.isub=function(q){if(q.negative!==0){q.negative=0;var j=this.iadd(q);return q.negative=1,j._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(q),this.negative=1,this._normSign();var k=this.cmp(q);if(k===0)return this.negative=0,this.length=1,this.words[0]=0,this;var g,N;k>0?(g=this,N=q):(g=q,N=this);for(var x=0,_=0;_>26,this.words[_]=j&67108863;for(;x!==0&&_>26,this.words[_]=j&67108863;if(x===0&&_>>26,p=y&67108863,c=Math.min(w,j.length-1),h=Math.max(0,w-q.length+1);h<=c;h++){var d=w-h|0;N=q.words[d]|0,x=j.words[h]|0,_=N*x+p,f+=_/67108864|0,p=_&67108863}k.words[w]=p|0,y=f|0}return y!==0?k.words[w]=y|0:k.length--,k.strip()}var H=function(q,j,k){var g=q.words,N=j.words,x=k.words,_=0,B,y,w,f=g[0]|0,p=f&8191,c=f>>>13,h=g[1]|0,d=h&8191,b=h>>>13,l=g[2]|0,o=l&8191,u=l>>>13,n=g[3]|0,s=n&8191,t=n>>>13,m=g[4]|0,a=m&8191,r=m>>>13,e=g[5]|0,i=e&8191,$0=e>>>13,Q0=g[6]|0,Y0=Q0&8191,Z0=Q0>>>13,G0=g[7]|0,V0=G0&8191,U0=G0>>>13,X0=g[8]|0,K0=X0&8191,I0=X0>>>13,J0=g[9]|0,O0=J0&8191,F0=J0>>>13,A0=N[0]|0,W0=A0&8191,H0=A0>>>13,E0=N[1]|0,T0=E0&8191,D0=E0>>>13,C0=N[2]|0,L0=C0&8191,R0=C0>>>13,P0=N[3]|0,z0=P0&8191,M0=P0>>>13,S0=N[4]|0,v0=S0&8191,q0=S0>>>13,j0=N[5]|0,k0=j0&8191,g0=j0>>>13,N0=N[6]|0,x0=N0&8191,_0=N0>>>13,B0=N[7]|0,y0=B0&8191,w0=B0>>>13,f0=N[8]|0,p0=f0&8191,c0=f0>>>13,h0=N[9]|0,d0=h0&8191,b0=h0>>>13;k.negative=q.negative^j.negative,k.length=19,B=Math.imul(p,W0),y=Math.imul(p,H0),y=y+Math.imul(c,W0)|0,w=Math.imul(c,H0);var l0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(l0>>>26)|0,l0&=67108863,B=Math.imul(d,W0),y=Math.imul(d,H0),y=y+Math.imul(b,W0)|0,w=Math.imul(b,H0),B=B+Math.imul(p,T0)|0,y=y+Math.imul(p,D0)|0,y=y+Math.imul(c,T0)|0,w=w+Math.imul(c,D0)|0;var o0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(o0>>>26)|0,o0&=67108863,B=Math.imul(o,W0),y=Math.imul(o,H0),y=y+Math.imul(u,W0)|0,w=Math.imul(u,H0),B=B+Math.imul(d,T0)|0,y=y+Math.imul(d,D0)|0,y=y+Math.imul(b,T0)|0,w=w+Math.imul(b,D0)|0,B=B+Math.imul(p,L0)|0,y=y+Math.imul(p,R0)|0,y=y+Math.imul(c,L0)|0,w=w+Math.imul(c,R0)|0;var u0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(u0>>>26)|0,u0&=67108863,B=Math.imul(s,W0),y=Math.imul(s,H0),y=y+Math.imul(t,W0)|0,w=Math.imul(t,H0),B=B+Math.imul(o,T0)|0,y=y+Math.imul(o,D0)|0,y=y+Math.imul(u,T0)|0,w=w+Math.imul(u,D0)|0,B=B+Math.imul(d,L0)|0,y=y+Math.imul(d,R0)|0,y=y+Math.imul(b,L0)|0,w=w+Math.imul(b,R0)|0,B=B+Math.imul(p,z0)|0,y=y+Math.imul(p,M0)|0,y=y+Math.imul(c,z0)|0,w=w+Math.imul(c,M0)|0;var n0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(n0>>>26)|0,n0&=67108863,B=Math.imul(a,W0),y=Math.imul(a,H0),y=y+Math.imul(r,W0)|0,w=Math.imul(r,H0),B=B+Math.imul(s,T0)|0,y=y+Math.imul(s,D0)|0,y=y+Math.imul(t,T0)|0,w=w+Math.imul(t,D0)|0,B=B+Math.imul(o,L0)|0,y=y+Math.imul(o,R0)|0,y=y+Math.imul(u,L0)|0,w=w+Math.imul(u,R0)|0,B=B+Math.imul(d,z0)|0,y=y+Math.imul(d,M0)|0,y=y+Math.imul(b,z0)|0,w=w+Math.imul(b,M0)|0,B=B+Math.imul(p,v0)|0,y=y+Math.imul(p,q0)|0,y=y+Math.imul(c,v0)|0,w=w+Math.imul(c,q0)|0;var s0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(s0>>>26)|0,s0&=67108863,B=Math.imul(i,W0),y=Math.imul(i,H0),y=y+Math.imul($0,W0)|0,w=Math.imul($0,H0),B=B+Math.imul(a,T0)|0,y=y+Math.imul(a,D0)|0,y=y+Math.imul(r,T0)|0,w=w+Math.imul(r,D0)|0,B=B+Math.imul(s,L0)|0,y=y+Math.imul(s,R0)|0,y=y+Math.imul(t,L0)|0,w=w+Math.imul(t,R0)|0,B=B+Math.imul(o,z0)|0,y=y+Math.imul(o,M0)|0,y=y+Math.imul(u,z0)|0,w=w+Math.imul(u,M0)|0,B=B+Math.imul(d,v0)|0,y=y+Math.imul(d,q0)|0,y=y+Math.imul(b,v0)|0,w=w+Math.imul(b,q0)|0,B=B+Math.imul(p,k0)|0,y=y+Math.imul(p,g0)|0,y=y+Math.imul(c,k0)|0,w=w+Math.imul(c,g0)|0;var t0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(t0>>>26)|0,t0&=67108863,B=Math.imul(Y0,W0),y=Math.imul(Y0,H0),y=y+Math.imul(Z0,W0)|0,w=Math.imul(Z0,H0),B=B+Math.imul(i,T0)|0,y=y+Math.imul(i,D0)|0,y=y+Math.imul($0,T0)|0,w=w+Math.imul($0,D0)|0,B=B+Math.imul(a,L0)|0,y=y+Math.imul(a,R0)|0,y=y+Math.imul(r,L0)|0,w=w+Math.imul(r,R0)|0,B=B+Math.imul(s,z0)|0,y=y+Math.imul(s,M0)|0,y=y+Math.imul(t,z0)|0,w=w+Math.imul(t,M0)|0,B=B+Math.imul(o,v0)|0,y=y+Math.imul(o,q0)|0,y=y+Math.imul(u,v0)|0,w=w+Math.imul(u,q0)|0,B=B+Math.imul(d,k0)|0,y=y+Math.imul(d,g0)|0,y=y+Math.imul(b,k0)|0,w=w+Math.imul(b,g0)|0,B=B+Math.imul(p,x0)|0,y=y+Math.imul(p,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,_0)|0;var m0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(m0>>>26)|0,m0&=67108863,B=Math.imul(V0,W0),y=Math.imul(V0,H0),y=y+Math.imul(U0,W0)|0,w=Math.imul(U0,H0),B=B+Math.imul(Y0,T0)|0,y=y+Math.imul(Y0,D0)|0,y=y+Math.imul(Z0,T0)|0,w=w+Math.imul(Z0,D0)|0,B=B+Math.imul(i,L0)|0,y=y+Math.imul(i,R0)|0,y=y+Math.imul($0,L0)|0,w=w+Math.imul($0,R0)|0,B=B+Math.imul(a,z0)|0,y=y+Math.imul(a,M0)|0,y=y+Math.imul(r,z0)|0,w=w+Math.imul(r,M0)|0,B=B+Math.imul(s,v0)|0,y=y+Math.imul(s,q0)|0,y=y+Math.imul(t,v0)|0,w=w+Math.imul(t,q0)|0,B=B+Math.imul(o,k0)|0,y=y+Math.imul(o,g0)|0,y=y+Math.imul(u,k0)|0,w=w+Math.imul(u,g0)|0,B=B+Math.imul(d,x0)|0,y=y+Math.imul(d,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,_0)|0,B=B+Math.imul(p,y0)|0,y=y+Math.imul(p,w0)|0,y=y+Math.imul(c,y0)|0,w=w+Math.imul(c,w0)|0;var a0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(a0>>>26)|0,a0&=67108863,B=Math.imul(K0,W0),y=Math.imul(K0,H0),y=y+Math.imul(I0,W0)|0,w=Math.imul(I0,H0),B=B+Math.imul(V0,T0)|0,y=y+Math.imul(V0,D0)|0,y=y+Math.imul(U0,T0)|0,w=w+Math.imul(U0,D0)|0,B=B+Math.imul(Y0,L0)|0,y=y+Math.imul(Y0,R0)|0,y=y+Math.imul(Z0,L0)|0,w=w+Math.imul(Z0,R0)|0,B=B+Math.imul(i,z0)|0,y=y+Math.imul(i,M0)|0,y=y+Math.imul($0,z0)|0,w=w+Math.imul($0,M0)|0,B=B+Math.imul(a,v0)|0,y=y+Math.imul(a,q0)|0,y=y+Math.imul(r,v0)|0,w=w+Math.imul(r,q0)|0,B=B+Math.imul(s,k0)|0,y=y+Math.imul(s,g0)|0,y=y+Math.imul(t,k0)|0,w=w+Math.imul(t,g0)|0,B=B+Math.imul(o,x0)|0,y=y+Math.imul(o,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,_0)|0,B=B+Math.imul(d,y0)|0,y=y+Math.imul(d,w0)|0,y=y+Math.imul(b,y0)|0,w=w+Math.imul(b,w0)|0,B=B+Math.imul(p,p0)|0,y=y+Math.imul(p,c0)|0,y=y+Math.imul(c,p0)|0,w=w+Math.imul(c,c0)|0;var r0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(r0>>>26)|0,r0&=67108863,B=Math.imul(O0,W0),y=Math.imul(O0,H0),y=y+Math.imul(F0,W0)|0,w=Math.imul(F0,H0),B=B+Math.imul(K0,T0)|0,y=y+Math.imul(K0,D0)|0,y=y+Math.imul(I0,T0)|0,w=w+Math.imul(I0,D0)|0,B=B+Math.imul(V0,L0)|0,y=y+Math.imul(V0,R0)|0,y=y+Math.imul(U0,L0)|0,w=w+Math.imul(U0,R0)|0,B=B+Math.imul(Y0,z0)|0,y=y+Math.imul(Y0,M0)|0,y=y+Math.imul(Z0,z0)|0,w=w+Math.imul(Z0,M0)|0,B=B+Math.imul(i,v0)|0,y=y+Math.imul(i,q0)|0,y=y+Math.imul($0,v0)|0,w=w+Math.imul($0,q0)|0,B=B+Math.imul(a,k0)|0,y=y+Math.imul(a,g0)|0,y=y+Math.imul(r,k0)|0,w=w+Math.imul(r,g0)|0,B=B+Math.imul(s,x0)|0,y=y+Math.imul(s,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,_0)|0,B=B+Math.imul(o,y0)|0,y=y+Math.imul(o,w0)|0,y=y+Math.imul(u,y0)|0,w=w+Math.imul(u,w0)|0,B=B+Math.imul(d,p0)|0,y=y+Math.imul(d,c0)|0,y=y+Math.imul(b,p0)|0,w=w+Math.imul(b,c0)|0,B=B+Math.imul(p,d0)|0,y=y+Math.imul(p,b0)|0,y=y+Math.imul(c,d0)|0,w=w+Math.imul(c,b0)|0;var e0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(e0>>>26)|0,e0&=67108863,B=Math.imul(O0,T0),y=Math.imul(O0,D0),y=y+Math.imul(F0,T0)|0,w=Math.imul(F0,D0),B=B+Math.imul(K0,L0)|0,y=y+Math.imul(K0,R0)|0,y=y+Math.imul(I0,L0)|0,w=w+Math.imul(I0,R0)|0,B=B+Math.imul(V0,z0)|0,y=y+Math.imul(V0,M0)|0,y=y+Math.imul(U0,z0)|0,w=w+Math.imul(U0,M0)|0,B=B+Math.imul(Y0,v0)|0,y=y+Math.imul(Y0,q0)|0,y=y+Math.imul(Z0,v0)|0,w=w+Math.imul(Z0,q0)|0,B=B+Math.imul(i,k0)|0,y=y+Math.imul(i,g0)|0,y=y+Math.imul($0,k0)|0,w=w+Math.imul($0,g0)|0,B=B+Math.imul(a,x0)|0,y=y+Math.imul(a,_0)|0,y=y+Math.imul(r,x0)|0,w=w+Math.imul(r,_0)|0,B=B+Math.imul(s,y0)|0,y=y+Math.imul(s,w0)|0,y=y+Math.imul(t,y0)|0,w=w+Math.imul(t,w0)|0,B=B+Math.imul(o,p0)|0,y=y+Math.imul(o,c0)|0,y=y+Math.imul(u,p0)|0,w=w+Math.imul(u,c0)|0,B=B+Math.imul(d,d0)|0,y=y+Math.imul(d,b0)|0,y=y+Math.imul(b,d0)|0,w=w+Math.imul(b,b0)|0;var i0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(i0>>>26)|0,i0&=67108863,B=Math.imul(O0,L0),y=Math.imul(O0,R0),y=y+Math.imul(F0,L0)|0,w=Math.imul(F0,R0),B=B+Math.imul(K0,z0)|0,y=y+Math.imul(K0,M0)|0,y=y+Math.imul(I0,z0)|0,w=w+Math.imul(I0,M0)|0,B=B+Math.imul(V0,v0)|0,y=y+Math.imul(V0,q0)|0,y=y+Math.imul(U0,v0)|0,w=w+Math.imul(U0,q0)|0,B=B+Math.imul(Y0,k0)|0,y=y+Math.imul(Y0,g0)|0,y=y+Math.imul(Z0,k0)|0,w=w+Math.imul(Z0,g0)|0,B=B+Math.imul(i,x0)|0,y=y+Math.imul(i,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,_0)|0,B=B+Math.imul(a,y0)|0,y=y+Math.imul(a,w0)|0,y=y+Math.imul(r,y0)|0,w=w+Math.imul(r,w0)|0,B=B+Math.imul(s,p0)|0,y=y+Math.imul(s,c0)|0,y=y+Math.imul(t,p0)|0,w=w+Math.imul(t,c0)|0,B=B+Math.imul(o,d0)|0,y=y+Math.imul(o,b0)|0,y=y+Math.imul(u,d0)|0,w=w+Math.imul(u,b0)|0;var $$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+($$>>>26)|0,$$&=67108863,B=Math.imul(O0,z0),y=Math.imul(O0,M0),y=y+Math.imul(F0,z0)|0,w=Math.imul(F0,M0),B=B+Math.imul(K0,v0)|0,y=y+Math.imul(K0,q0)|0,y=y+Math.imul(I0,v0)|0,w=w+Math.imul(I0,q0)|0,B=B+Math.imul(V0,k0)|0,y=y+Math.imul(V0,g0)|0,y=y+Math.imul(U0,k0)|0,w=w+Math.imul(U0,g0)|0,B=B+Math.imul(Y0,x0)|0,y=y+Math.imul(Y0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,_0)|0,B=B+Math.imul(i,y0)|0,y=y+Math.imul(i,w0)|0,y=y+Math.imul($0,y0)|0,w=w+Math.imul($0,w0)|0,B=B+Math.imul(a,p0)|0,y=y+Math.imul(a,c0)|0,y=y+Math.imul(r,p0)|0,w=w+Math.imul(r,c0)|0,B=B+Math.imul(s,d0)|0,y=y+Math.imul(s,b0)|0,y=y+Math.imul(t,d0)|0,w=w+Math.imul(t,b0)|0;var Q$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,B=Math.imul(O0,v0),y=Math.imul(O0,q0),y=y+Math.imul(F0,v0)|0,w=Math.imul(F0,q0),B=B+Math.imul(K0,k0)|0,y=y+Math.imul(K0,g0)|0,y=y+Math.imul(I0,k0)|0,w=w+Math.imul(I0,g0)|0,B=B+Math.imul(V0,x0)|0,y=y+Math.imul(V0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,_0)|0,B=B+Math.imul(Y0,y0)|0,y=y+Math.imul(Y0,w0)|0,y=y+Math.imul(Z0,y0)|0,w=w+Math.imul(Z0,w0)|0,B=B+Math.imul(i,p0)|0,y=y+Math.imul(i,c0)|0,y=y+Math.imul($0,p0)|0,w=w+Math.imul($0,c0)|0,B=B+Math.imul(a,d0)|0,y=y+Math.imul(a,b0)|0,y=y+Math.imul(r,d0)|0,w=w+Math.imul(r,b0)|0;var Y$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,B=Math.imul(O0,k0),y=Math.imul(O0,g0),y=y+Math.imul(F0,k0)|0,w=Math.imul(F0,g0),B=B+Math.imul(K0,x0)|0,y=y+Math.imul(K0,_0)|0,y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,_0)|0,B=B+Math.imul(V0,y0)|0,y=y+Math.imul(V0,w0)|0,y=y+Math.imul(U0,y0)|0,w=w+Math.imul(U0,w0)|0,B=B+Math.imul(Y0,p0)|0,y=y+Math.imul(Y0,c0)|0,y=y+Math.imul(Z0,p0)|0,w=w+Math.imul(Z0,c0)|0,B=B+Math.imul(i,d0)|0,y=y+Math.imul(i,b0)|0,y=y+Math.imul($0,d0)|0,w=w+Math.imul($0,b0)|0;var Z$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,B=Math.imul(O0,x0),y=Math.imul(O0,_0),y=y+Math.imul(F0,x0)|0,w=Math.imul(F0,_0),B=B+Math.imul(K0,y0)|0,y=y+Math.imul(K0,w0)|0,y=y+Math.imul(I0,y0)|0,w=w+Math.imul(I0,w0)|0,B=B+Math.imul(V0,p0)|0,y=y+Math.imul(V0,c0)|0,y=y+Math.imul(U0,p0)|0,w=w+Math.imul(U0,c0)|0,B=B+Math.imul(Y0,d0)|0,y=y+Math.imul(Y0,b0)|0,y=y+Math.imul(Z0,d0)|0,w=w+Math.imul(Z0,b0)|0;var G$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(G$>>>26)|0,G$&=67108863,B=Math.imul(O0,y0),y=Math.imul(O0,w0),y=y+Math.imul(F0,y0)|0,w=Math.imul(F0,w0),B=B+Math.imul(K0,p0)|0,y=y+Math.imul(K0,c0)|0,y=y+Math.imul(I0,p0)|0,w=w+Math.imul(I0,c0)|0,B=B+Math.imul(V0,d0)|0,y=y+Math.imul(V0,b0)|0,y=y+Math.imul(U0,d0)|0,w=w+Math.imul(U0,b0)|0;var V$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(V$>>>26)|0,V$&=67108863,B=Math.imul(O0,p0),y=Math.imul(O0,c0),y=y+Math.imul(F0,p0)|0,w=Math.imul(F0,c0),B=B+Math.imul(K0,d0)|0,y=y+Math.imul(K0,b0)|0,y=y+Math.imul(I0,d0)|0,w=w+Math.imul(I0,b0)|0;var U$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(U$>>>26)|0,U$&=67108863,B=Math.imul(O0,d0),y=Math.imul(O0,b0),y=y+Math.imul(F0,d0)|0,w=Math.imul(F0,b0);var X$=(_+B|0)+((y&8191)<<13)|0;return _=(w+(y>>>13)|0)+(X$>>>26)|0,X$&=67108863,x[0]=l0,x[1]=o0,x[2]=u0,x[3]=n0,x[4]=s0,x[5]=t0,x[6]=m0,x[7]=a0,x[8]=r0,x[9]=e0,x[10]=i0,x[11]=$$,x[12]=Q$,x[13]=Y$,x[14]=Z$,x[15]=G$,x[16]=V$,x[17]=U$,x[18]=X$,_!==0&&(x[19]=_,k.length++),k};Math.imul||(H=W);function E(q,j,k){k.negative=j.negative^q.negative,k.length=q.length+j.length;for(var g=0,N=0,x=0;x>>26)|0,N+=_>>>26,_&=67108863}k.words[x]=B,g=_,_=N}return g!==0?k.words[x]=g:k.length--,k.strip()}function T(q,j,k){var g=new D;return g.mulp(q,j,k)}V.prototype.mulTo=function(q,j){var k,g=this.length+q.length;return this.length===10&&q.length===10?k=H(this,q,j):g<63?k=W(this,q,j):g<1024?k=E(this,q,j):k=T(this,q,j),k};function D(q,j){this.x=q,this.y=j}D.prototype.makeRBT=function(q){for(var j=new Array(q),k=V.prototype._countBits(q)-1,g=0;g>=1;return g},D.prototype.permute=function(q,j,k,g,N,x){for(var _=0;_>>1)N++;return 1<>>13,k[2*x+1]=N&8191,N=N>>>13;for(x=2*j;x>=26,j+=g/67108864|0,j+=N>>>26,this.words[k]=N&67108863}return j!==0&&(this.words[k]=j,this.length++),this},V.prototype.muln=function(q){return this.clone().imuln(q)},V.prototype.sqr=function(){return this.mul(this)},V.prototype.isqr=function(){return this.imul(this.clone())},V.prototype.pow=function(q){var j=A(q);if(j.length===0)return new V(1);for(var k=this,g=0;g=0);var j=q%26,k=(q-j)/26,g=67108863>>>26-j<<26-j,N;if(j!==0){var x=0;for(N=0;N>>26-j}x&&(this.words[N]=x,this.length++)}if(k!==0){for(N=this.length-1;N>=0;N--)this.words[N+k]=this.words[N];for(N=0;N=0);var g;j?g=(j-j%26)/26:g=0;var N=q%26,x=Math.min((q-N)/26,this.length),_=67108863^67108863>>>N<x)for(this.length-=x,y=0;y=0&&(w!==0||y>=g);y--){var f=this.words[y]|0;this.words[y]=w<<26-N|f>>>N,w=f&_}return B&&w!==0&&(B.words[B.length++]=w),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},V.prototype.ishrn=function(q,j,k){return Z(this.negative===0),this.iushrn(q,j,k)},V.prototype.shln=function(q){return this.clone().ishln(q)},V.prototype.ushln=function(q){return this.clone().iushln(q)},V.prototype.shrn=function(q){return this.clone().ishrn(q)},V.prototype.ushrn=function(q){return this.clone().iushrn(q)},V.prototype.testn=function(q){Z(typeof q=="number"&&q>=0);var j=q%26,k=(q-j)/26,g=1<=0);var j=q%26,k=(q-j)/26;if(Z(this.negative===0,"imaskn works only with positive numbers"),this.length<=k)return this;if(j!==0&&k++,this.length=Math.min(k,this.length),j!==0){var g=67108863^67108863>>>j<=67108864;j++)this.words[j]-=67108864,j===this.length-1?this.words[j+1]=1:this.words[j+1]++;return this.length=Math.max(this.length,j+1),this},V.prototype.isubn=function(q){if(Z(typeof q=="number"),Z(q<67108864),q<0)return this.iaddn(-q);if(this.negative!==0)return this.negative=0,this.iaddn(q),this.negative=1,this;if(this.words[0]-=q,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var j=0;j>26)-(B/67108864|0),this.words[N+k]=x&67108863}for(;N>26,this.words[N+k]=x&67108863;if(_===0)return this.strip();for(Z(_===-1),_=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},V.prototype._wordDiv=function(q,j){var k=this.length-q.length,g=this.clone(),N=q,x=N.words[N.length-1]|0,_=this._countBits(x);k=26-_,k!==0&&(N=N.ushln(k),g.iushln(k),x=N.words[N.length-1]|0);var B=g.length-N.length,y;if(j!=="mod"){y=new V(null),y.length=B+1,y.words=new Array(y.length);for(var w=0;w=0;p--){var c=(g.words[N.length+p]|0)*67108864+(g.words[N.length+p-1]|0);for(c=Math.min(c/x|0,67108863),g._ishlnsubmul(N,c,p);g.negative!==0;)c--,g.negative=0,g._ishlnsubmul(N,1,p),g.isZero()||(g.negative^=1);y&&(y.words[p]=c)}return y&&y.strip(),g.strip(),j!=="div"&&k!==0&&g.iushrn(k),{div:y||null,mod:g}},V.prototype.divmod=function(q,j,k){if(Z(!q.isZero()),this.isZero())return{div:new V(0),mod:new V(0)};var g,N,x;return this.negative!==0&&q.negative===0?(x=this.neg().divmod(q,j),j!=="mod"&&(g=x.div.neg()),j!=="div"&&(N=x.mod.neg(),k&&N.negative!==0&&N.iadd(q)),{div:g,mod:N}):this.negative===0&&q.negative!==0?(x=this.divmod(q.neg(),j),j!=="mod"&&(g=x.div.neg()),{div:g,mod:x.mod}):(this.negative&q.negative)!==0?(x=this.neg().divmod(q.neg(),j),j!=="div"&&(N=x.mod.neg(),k&&N.negative!==0&&N.isub(q)),{div:x.div,mod:N}):q.length>this.length||this.cmp(q)<0?{div:new V(0),mod:this}:q.length===1?j==="div"?{div:this.divn(q.words[0]),mod:null}:j==="mod"?{div:null,mod:new V(this.modn(q.words[0]))}:{div:this.divn(q.words[0]),mod:new V(this.modn(q.words[0]))}:this._wordDiv(q,j)},V.prototype.div=function(q){return this.divmod(q,"div",!1).div},V.prototype.mod=function(q){return this.divmod(q,"mod",!1).mod},V.prototype.umod=function(q){return this.divmod(q,"mod",!0).mod},V.prototype.divRound=function(q){var j=this.divmod(q);if(j.mod.isZero())return j.div;var k=j.div.negative!==0?j.mod.isub(q):j.mod,g=q.ushrn(1),N=q.andln(1),x=k.cmp(g);return x<0||N===1&&x===0?j.div:j.div.negative!==0?j.div.isubn(1):j.div.iaddn(1)},V.prototype.modn=function(q){Z(q<=67108863);for(var j=(1<<26)%q,k=0,g=this.length-1;g>=0;g--)k=(j*k+(this.words[g]|0))%q;return k},V.prototype.idivn=function(q){Z(q<=67108863);for(var j=0,k=this.length-1;k>=0;k--){var g=(this.words[k]|0)+j*67108864;this.words[k]=g/q|0,j=g%q}return this.strip()},V.prototype.divn=function(q){return this.clone().idivn(q)},V.prototype.egcd=function(q){Z(q.negative===0),Z(!q.isZero());var j=this,k=q.clone();j.negative!==0?j=j.umod(q):j=j.clone();for(var g=new V(1),N=new V(0),x=new V(0),_=new V(1),B=0;j.isEven()&&k.isEven();)j.iushrn(1),k.iushrn(1),++B;for(var y=k.clone(),w=j.clone();!j.isZero();){for(var f=0,p=1;(j.words[0]&p)===0&&f<26;++f,p<<=1);if(f>0)for(j.iushrn(f);f-- >0;)(g.isOdd()||N.isOdd())&&(g.iadd(y),N.isub(w)),g.iushrn(1),N.iushrn(1);for(var c=0,h=1;(k.words[0]&h)===0&&c<26;++c,h<<=1);if(c>0)for(k.iushrn(c);c-- >0;)(x.isOdd()||_.isOdd())&&(x.iadd(y),_.isub(w)),x.iushrn(1),_.iushrn(1);j.cmp(k)>=0?(j.isub(k),g.isub(x),N.isub(_)):(k.isub(j),x.isub(g),_.isub(N))}return{a:x,b:_,gcd:k.iushln(B)}},V.prototype._invmp=function(q){Z(q.negative===0),Z(!q.isZero());var j=this,k=q.clone();j.negative!==0?j=j.umod(q):j=j.clone();for(var g=new V(1),N=new V(0),x=k.clone();j.cmpn(1)>0&&k.cmpn(1)>0;){for(var _=0,B=1;(j.words[0]&B)===0&&_<26;++_,B<<=1);if(_>0)for(j.iushrn(_);_-- >0;)g.isOdd()&&g.iadd(x),g.iushrn(1);for(var y=0,w=1;(k.words[0]&w)===0&&y<26;++y,w<<=1);if(y>0)for(k.iushrn(y);y-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);j.cmp(k)>=0?(j.isub(k),g.isub(N)):(k.isub(j),N.isub(g))}var f;return j.cmpn(1)===0?f=g:f=N,f.cmpn(0)<0&&f.iadd(q),f},V.prototype.gcd=function(q){if(this.isZero())return q.abs();if(q.isZero())return this.abs();var j=this.clone(),k=q.clone();j.negative=0,k.negative=0;for(var g=0;j.isEven()&&k.isEven();g++)j.iushrn(1),k.iushrn(1);do{for(;j.isEven();)j.iushrn(1);for(;k.isEven();)k.iushrn(1);var N=j.cmp(k);if(N<0){var x=j;j=k,k=x}else if(N===0||k.cmpn(1)===0)break;j.isub(k)}while(!0);return k.iushln(g)},V.prototype.invm=function(q){return this.egcd(q).a.umod(q)},V.prototype.isEven=function(){return(this.words[0]&1)===0},V.prototype.isOdd=function(){return(this.words[0]&1)===1},V.prototype.andln=function(q){return this.words[0]&q},V.prototype.bincn=function(q){Z(typeof q=="number");var j=q%26,k=(q-j)/26,g=1<>>26,_&=67108863,this.words[x]=_}return N!==0&&(this.words[x]=N,this.length++),this},V.prototype.isZero=function(){return this.length===1&&this.words[0]===0},V.prototype.cmpn=function(q){var j=q<0;if(this.negative!==0&&!j)return-1;if(this.negative===0&&j)return 1;this.strip();var k;if(this.length>1)k=1;else{j&&(q=-q),Z(q<=67108863,"Number is too big");var g=this.words[0]|0;k=g===q?0:gq.length)return 1;if(this.length=0;k--){var g=this.words[k]|0,N=q.words[k]|0;if(g!==N){gN&&(j=1);break}}return j},V.prototype.gtn=function(q){return this.cmpn(q)===1},V.prototype.gt=function(q){return this.cmp(q)===1},V.prototype.gten=function(q){return this.cmpn(q)>=0},V.prototype.gte=function(q){return this.cmp(q)>=0},V.prototype.ltn=function(q){return this.cmpn(q)===-1},V.prototype.lt=function(q){return this.cmp(q)===-1},V.prototype.lten=function(q){return this.cmpn(q)<=0},V.prototype.lte=function(q){return this.cmp(q)<=0},V.prototype.eqn=function(q){return this.cmpn(q)===0},V.prototype.eq=function(q){return this.cmp(q)===0},V.red=function(q){return new S(q)},V.prototype.toRed=function(q){return Z(!this.red,"Already a number in reduction context"),Z(this.negative===0,"red works only with positives"),q.convertTo(this)._forceRed(q)},V.prototype.fromRed=function(){return Z(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},V.prototype._forceRed=function(q){return this.red=q,this},V.prototype.forceRed=function(q){return Z(!this.red,"Already a number in reduction context"),this._forceRed(q)},V.prototype.redAdd=function(q){return Z(this.red,"redAdd works only with red numbers"),this.red.add(this,q)},V.prototype.redIAdd=function(q){return Z(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,q)},V.prototype.redSub=function(q){return Z(this.red,"redSub works only with red numbers"),this.red.sub(this,q)},V.prototype.redISub=function(q){return Z(this.red,"redISub works only with red numbers"),this.red.isub(this,q)},V.prototype.redShl=function(q){return Z(this.red,"redShl works only with red numbers"),this.red.shl(this,q)},V.prototype.redMul=function(q){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,q),this.red.mul(this,q)},V.prototype.redIMul=function(q){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,q),this.red.imul(this,q)},V.prototype.redSqr=function(){return Z(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},V.prototype.redISqr=function(){return Z(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},V.prototype.redSqrt=function(){return Z(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},V.prototype.redInvm=function(){return Z(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},V.prototype.redNeg=function(){return Z(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},V.prototype.redPow=function(q){return Z(this.red&&!q.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,q)};var C={k256:null,p224:null,p192:null,p25519:null};function L(q,j){this.name=q,this.p=new V(j,16),this.n=this.p.bitLength(),this.k=new V(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}L.prototype._tmp=function(){var q=new V(null);return q.words=new Array(Math.ceil(this.n/13)),q},L.prototype.ireduce=function(q){var j=q,k;do this.split(j,this.tmp),j=this.imulK(j),j=j.iadd(this.tmp),k=j.bitLength();while(k>this.n);var g=k0?j.isub(this.p):j.strip!==void 0?j.strip():j._strip(),j},L.prototype.split=function(q,j){q.iushrn(this.n,0,j)},L.prototype.imulK=function(q){return q.imul(this.k)};function R(){L.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}G(R,L),R.prototype.split=function(q,j){for(var k=4194303,g=Math.min(q.length,9),N=0;N>>22,x=_}x>>>=22,q.words[N-10]=x,x===0&&q.length>10?q.length-=10:q.length-=9},R.prototype.imulK=function(q){q.words[q.length]=0,q.words[q.length+1]=0,q.length+=2;for(var j=0,k=0;k>>=26,q.words[k]=N,j=g}return j!==0&&(q.words[q.length++]=j),q},V._prime=function(q){if(C[q])return C[q];var j;if(q==="k256")j=new R;else if(q==="p224")j=new P;else if(q==="p192")j=new z;else if(q==="p25519")j=new M;else throw new Error("Unknown prime "+q);return C[q]=j,j};function S(q){if(typeof q=="string"){var j=V._prime(q);this.m=j.p,this.prime=j}else Z(q.gtn(1),"modulus must be greater than 1"),this.m=q,this.prime=null}S.prototype._verify1=function(q){Z(q.negative===0,"red works only with positives"),Z(q.red,"red works only with red numbers")},S.prototype._verify2=function(q,j){Z((q.negative|j.negative)===0,"red works only with positives"),Z(q.red&&q.red===j.red,"red works only with red numbers")},S.prototype.imod=function(q){return this.prime?this.prime.ireduce(q)._forceRed(this):q.umod(this.m)._forceRed(this)},S.prototype.neg=function(q){return q.isZero()?q.clone():this.m.sub(q)._forceRed(this)},S.prototype.add=function(q,j){this._verify2(q,j);var k=q.add(j);return k.cmp(this.m)>=0&&k.isub(this.m),k._forceRed(this)},S.prototype.iadd=function(q,j){this._verify2(q,j);var k=q.iadd(j);return k.cmp(this.m)>=0&&k.isub(this.m),k},S.prototype.sub=function(q,j){this._verify2(q,j);var k=q.sub(j);return k.cmpn(0)<0&&k.iadd(this.m),k._forceRed(this)},S.prototype.isub=function(q,j){this._verify2(q,j);var k=q.isub(j);return k.cmpn(0)<0&&k.iadd(this.m),k},S.prototype.shl=function(q,j){return this._verify1(q),this.imod(q.ushln(j))},S.prototype.imul=function(q,j){return this._verify2(q,j),this.imod(q.imul(j))},S.prototype.mul=function(q,j){return this._verify2(q,j),this.imod(q.mul(j))},S.prototype.isqr=function(q){return this.imul(q,q.clone())},S.prototype.sqr=function(q){return this.mul(q,q)},S.prototype.sqrt=function(q){if(q.isZero())return q.clone();var j=this.m.andln(3);if(Z(j%2===1),j===3){var k=this.m.add(new V(1)).iushrn(2);return this.pow(q,k)}for(var g=this.m.subn(1),N=0;!g.isZero()&&g.andln(1)===0;)N++,g.iushrn(1);Z(!g.isZero());var x=new V(1).toRed(this),_=x.redNeg(),B=this.m.subn(1).iushrn(1),y=this.m.bitLength();for(y=new V(2*y*y).toRed(this);this.pow(y,B).cmp(_)!==0;)y.redIAdd(_);for(var w=this.pow(y,g),f=this.pow(q,g.addn(1).iushrn(1)),p=this.pow(q,g),c=N;p.cmp(x)!==0;){for(var h=p,d=0;h.cmp(x)!==0;d++)h=h.redSqr();Z(d=0;N--){for(var w=j.words[N],f=y-1;f>=0;f--){var p=w>>f&1;if(x!==g[0]&&(x=this.sqr(x)),p===0&&_===0){B=0;continue}_<<=1,_|=p,B++,!(B!==k&&(N!==0||f!==0))&&(x=this.mul(x,g[_]),B=0,_=0)}y=26}return x},S.prototype.convertTo=function(q){var j=q.umod(this.m);return j===q?j.clone():j},S.prototype.convertFrom=function(q){var j=q.clone();return j.red=null,j},V.mont=function(q){return new v(q)};function v(q){S.call(this,q),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new V(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}G(v,S),v.prototype.convertTo=function(q){return this.imod(q.ushln(this.shift))},v.prototype.convertFrom=function(q){var j=this.imod(q.mul(this.rinv));return j.red=null,j},v.prototype.imul=function(q,j){if(q.isZero()||j.isZero())return q.words[0]=0,q.length=1,q;var k=q.imul(j),g=k.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=k.isub(g).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},v.prototype.mul=function(q,j){if(q.isZero()||j.isZero())return new V(0)._forceRed(this);var k=q.mul(j),g=k.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=k.isub(g).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},v.prototype.invm=function(q){var j=this.imod(q._invmp(this.m).mul(this.r2));return j._forceRed(this)}})(typeof $>"u"||$,bZ)}}),HY=P$({"node_modules/safer-buffer/safer.js"(bZ,$){var Q=L$("buffer"),Y=Q.Buffer,Z={},G;for(G in Q)!Q.hasOwnProperty(G)||G==="SlowBuffer"||G==="Buffer"||(Z[G]=Q[G]);var V=Z.Buffer={};for(G in Y)!Y.hasOwnProperty(G)||G==="allocUnsafe"||G==="allocUnsafeSlow"||(V[G]=Y[G]);if(Z.Buffer.prototype=Y.prototype,(!V.from||V.from===Uint8Array.from)&&(V.from=function(U,X,K){if(typeof U=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof U);if(U&&typeof U.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof U);return Y(U,X,K)}),V.alloc||(V.alloc=function(U,X,K){if(typeof U!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof U);if(U<0||U>=2*(1<<30))throw new RangeError('The value "'+U+'" is invalid for option "size"');var I=Y(U);return!X||X.length===0?I.fill(0):typeof K=="string"?I.fill(X,K):I.fill(X),I}),!Z.kStringMaxLength)try{Z.kStringMaxLength=C$}catch{}Z.constants||(Z.constants={MAX_LENGTH:Z.kMaxLength},Z.kStringMaxLength&&(Z.constants.MAX_STRING_LENGTH=Z.kStringMaxLength)),$.exports=Z}}),EY=P$({"node_modules/asn1.js/lib/asn1/base/reporter.js"(bZ){var $=v$();function Q(Z){this._reporterState={obj:null,path:[],options:Z||{},errors:[]}}bZ.Reporter=Q,Q.prototype.isError=function(Z){return Z instanceof Y},Q.prototype.save=function(){let Z=this._reporterState;return{obj:Z.obj,pathLen:Z.path.length}},Q.prototype.restore=function(Z){let G=this._reporterState;G.obj=Z.obj,G.path=G.path.slice(0,Z.pathLen)},Q.prototype.enterKey=function(Z){return this._reporterState.path.push(Z)},Q.prototype.exitKey=function(Z){let G=this._reporterState;G.path=G.path.slice(0,Z-1)},Q.prototype.leaveKey=function(Z,G,V){let U=this._reporterState;this.exitKey(Z),U.obj!==null&&(U.obj[G]=V)},Q.prototype.path=function(){return this._reporterState.path.join("/")},Q.prototype.enterObject=function(){let Z=this._reporterState,G=Z.obj;return Z.obj={},G},Q.prototype.leaveObject=function(Z){let G=this._reporterState,V=G.obj;return G.obj=Z,V},Q.prototype.error=function(Z){let G,V=this._reporterState,U=Z instanceof Y;if(U?G=Z:G=new Y(V.path.map(function(X){return"["+JSON.stringify(X)+"]"}).join(""),Z.message||Z,Z.stack),!V.options.partial)throw G;return U||V.errors.push(G),G},Q.prototype.wrapResult=function(Z){let G=this._reporterState;return G.options.partial?{result:this.isError(Z)?null:Z,errors:G.errors}:Z};function Y(Z,G){this.path=Z,this.rethrow(G)}$(Y,Error),Y.prototype.rethrow=function(Z){if(this.message=Z+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,Y),!this.stack)try{throw new Error(this.message)}catch(G){this.stack=G.stack}return this}}}),A$=P$({"node_modules/asn1.js/lib/asn1/base/buffer.js"(bZ){var $=v$(),Q=EY().Reporter,Y=HY().Buffer;function Z(V,U){if(Q.call(this,U),!Y.isBuffer(V)){this.error("Input not Buffer");return}this.base=V,this.offset=0,this.length=V.length}$(Z,Q),bZ.DecoderBuffer=Z,Z.isDecoderBuffer=function(V){return V instanceof Z?!0:typeof V=="object"&&Y.isBuffer(V.base)&&V.constructor.name==="DecoderBuffer"&&typeof V.offset=="number"&&typeof V.length=="number"&&typeof V.save=="function"&&typeof V.restore=="function"&&typeof V.isEmpty=="function"&&typeof V.readUInt8=="function"&&typeof V.skip=="function"&&typeof V.raw=="function"},Z.prototype.save=function(){return{offset:this.offset,reporter:Q.prototype.save.call(this)}},Z.prototype.restore=function(V){let U=new Z(this.base);return U.offset=V.offset,U.length=this.offset,this.offset=V.offset,Q.prototype.restore.call(this,V.reporter),U},Z.prototype.isEmpty=function(){return this.offset===this.length},Z.prototype.readUInt8=function(V){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(V||"DecoderBuffer overrun")},Z.prototype.skip=function(V,U){if(!(this.offset+V<=this.length))return this.error(U||"DecoderBuffer overrun");let X=new Z(this.base);return X._reporterState=this._reporterState,X.offset=this.offset,X.length=this.offset+V,this.offset+=V,X},Z.prototype.raw=function(V){return this.base.slice(V?V.offset:this.offset,this.length)};function G(V,U){if(Array.isArray(V))this.length=0,this.value=V.map(function(X){return G.isEncoderBuffer(X)||(X=new G(X,U)),this.length+=X.length,X},this);else if(typeof V=="number"){if(!(0<=V&&V<=255))return U.error("non-byte EncoderBuffer value");this.value=V,this.length=1}else if(typeof V=="string")this.value=V,this.length=Y.byteLength(V);else if(Y.isBuffer(V))this.value=V,this.length=V.length;else return U.error("Unsupported type: "+typeof V)}bZ.EncoderBuffer=G,G.isEncoderBuffer=function(V){return V instanceof G?!0:typeof V=="object"&&V.constructor.name==="EncoderBuffer"&&typeof V.length=="number"&&typeof V.join=="function"},G.prototype.join=function(V,U){return V||(V=Y.alloc(this.length)),U||(U=0),this.length===0||(Array.isArray(this.value)?this.value.forEach(function(X){X.join(V,U),U+=X.length}):(typeof this.value=="number"?V[U]=this.value:typeof this.value=="string"?V.write(this.value,U):Y.isBuffer(this.value)&&this.value.copy(V,U),U+=this.length)),V}}}),TY=P$({"node_modules/asn1.js/lib/asn1/base/node.js"(bZ,$){var Q=EY().Reporter,Y=A$().EncoderBuffer,Z=A$().DecoderBuffer,G=i$(),V=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],U=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(V),X=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];function K(J,O,F){let A={};this._baseState=A,A.name=F,A.enc=J,A.parent=O||null,A.children=null,A.tag=null,A.args=null,A.reverseArgs=null,A.choice=null,A.optional=!1,A.any=!1,A.obj=!1,A.use=null,A.useDecoder=null,A.key=null,A.default=null,A.explicit=null,A.implicit=null,A.contains=null,A.parent||(A.children=[],this._wrap())}$.exports=K;var I=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];K.prototype.clone=function(){let J=this._baseState,O={};I.forEach(function(A){O[A]=J[A]});let F=new this.constructor(O.parent);return F._baseState=O,F},K.prototype._wrap=function(){let J=this._baseState;U.forEach(function(O){this[O]=function(){let F=new this.constructor(this);return J.children.push(F),F[O].apply(F,arguments)}},this)},K.prototype._init=function(J){let O=this._baseState;G(O.parent===null),J.call(this),O.children=O.children.filter(function(F){return F._baseState.parent===this},this),G.equal(O.children.length,1,"Root node can have only one child")},K.prototype._useArgs=function(J){let O=this._baseState,F=J.filter(function(A){return A instanceof this.constructor},this);J=J.filter(function(A){return!(A instanceof this.constructor)},this),F.length!==0&&(G(O.children===null),O.children=F,F.forEach(function(A){A._baseState.parent=this},this)),J.length!==0&&(G(O.args===null),O.args=J,O.reverseArgs=J.map(function(A){if(typeof A!="object"||A.constructor!==Object)return A;let W={};return Object.keys(A).forEach(function(H){H==(H|0)&&(H|=0);let E=A[H];W[E]=H}),W}))},X.forEach(function(J){K.prototype[J]=function(){let O=this._baseState;throw new Error(J+" not implemented for encoding: "+O.enc)}}),V.forEach(function(J){K.prototype[J]=function(){let O=this._baseState,F=Array.prototype.slice.call(arguments);return G(O.tag===null),O.tag=J,this._useArgs(F),this}}),K.prototype.use=function(J){G(J);let O=this._baseState;return G(O.use===null),O.use=J,this},K.prototype.optional=function(){let J=this._baseState;return J.optional=!0,this},K.prototype.def=function(J){let O=this._baseState;return G(O.default===null),O.default=J,O.optional=!0,this},K.prototype.explicit=function(J){let O=this._baseState;return G(O.explicit===null&&O.implicit===null),O.explicit=J,this},K.prototype.implicit=function(J){let O=this._baseState;return G(O.explicit===null&&O.implicit===null),O.implicit=J,this},K.prototype.obj=function(){let J=this._baseState,O=Array.prototype.slice.call(arguments);return J.obj=!0,O.length!==0&&this._useArgs(O),this},K.prototype.key=function(J){let O=this._baseState;return G(O.key===null),O.key=J,this},K.prototype.any=function(){let J=this._baseState;return J.any=!0,this},K.prototype.choice=function(J){let O=this._baseState;return G(O.choice===null),O.choice=J,this._useArgs(Object.keys(J).map(function(F){return J[F]})),this},K.prototype.contains=function(J){let O=this._baseState;return G(O.use===null),O.contains=J,this},K.prototype._decode=function(J,O){let F=this._baseState;if(F.parent===null)return J.wrapResult(F.children[0]._decode(J,O));let A=F.default,W=!0,H=null;if(F.key!==null&&(H=J.enterKey(F.key)),F.optional){let T=null;if(F.explicit!==null?T=F.explicit:F.implicit!==null?T=F.implicit:F.tag!==null&&(T=F.tag),T===null&&!F.any){let D=J.save();try{F.choice===null?this._decodeGeneric(F.tag,J,O):this._decodeChoice(J,O),W=!0}catch{W=!1}J.restore(D)}else if(W=this._peekTag(J,T,F.any),J.isError(W))return W}let E;if(F.obj&&W&&(E=J.enterObject()),W){if(F.explicit!==null){let D=this._decodeTag(J,F.explicit);if(J.isError(D))return D;J=D}let T=J.offset;if(F.use===null&&F.choice===null){let D;F.any&&(D=J.save());let C=this._decodeTag(J,F.implicit!==null?F.implicit:F.tag,F.any);if(J.isError(C))return C;F.any?A=J.raw(D):J=C}if(O&&O.track&&F.tag!==null&&O.track(J.path(),T,J.length,"tagged"),O&&O.track&&F.tag!==null&&O.track(J.path(),J.offset,J.length,"content"),F.any||(F.choice===null?A=this._decodeGeneric(F.tag,J,O):A=this._decodeChoice(J,O)),J.isError(A))return A;if(!F.any&&F.choice===null&&F.children!==null&&F.children.forEach(function(D){D._decode(J,O)}),F.contains&&(F.tag==="octstr"||F.tag==="bitstr")){let D=new Z(A);A=this._getUse(F.contains,J._reporterState.obj)._decode(D,O)}}return F.obj&&W&&(A=J.leaveObject(E)),F.key!==null&&(A!==null||W===!0)?J.leaveKey(H,F.key,A):H!==null&&J.exitKey(H),A},K.prototype._decodeGeneric=function(J,O,F){let A=this._baseState;return J==="seq"||J==="set"?null:J==="seqof"||J==="setof"?this._decodeList(O,J,A.args[0],F):/str$/.test(J)?this._decodeStr(O,J,F):J==="objid"&&A.args?this._decodeObjid(O,A.args[0],A.args[1],F):J==="objid"?this._decodeObjid(O,null,null,F):J==="gentime"||J==="utctime"?this._decodeTime(O,J,F):J==="null_"?this._decodeNull(O,F):J==="bool"?this._decodeBool(O,F):J==="objDesc"?this._decodeStr(O,J,F):J==="int"||J==="enum"?this._decodeInt(O,A.args&&A.args[0],F):A.use!==null?this._getUse(A.use,O._reporterState.obj)._decode(O,F):O.error("unknown tag: "+J)},K.prototype._getUse=function(J,O){let F=this._baseState;return F.useDecoder=this._use(J,O),G(F.useDecoder._baseState.parent===null),F.useDecoder=F.useDecoder._baseState.children[0],F.implicit!==F.useDecoder._baseState.implicit&&(F.useDecoder=F.useDecoder.clone(),F.useDecoder._baseState.implicit=F.implicit),F.useDecoder},K.prototype._decodeChoice=function(J,O){let F=this._baseState,A=null,W=!1;return Object.keys(F.choice).some(function(H){let E=J.save(),T=F.choice[H];try{let D=T._decode(J,O);if(J.isError(D))return!1;A={type:H,value:D},W=!0}catch{return J.restore(E),!1}return!0},this),W?A:J.error("Choice not matched")},K.prototype._createEncoderBuffer=function(J){return new Y(J,this.reporter)},K.prototype._encode=function(J,O,F){let A=this._baseState;if(A.default!==null&&A.default===J)return;let W=this._encodeValue(J,O,F);if(W!==void 0&&!this._skipDefault(W,O,F))return W},K.prototype._encodeValue=function(J,O,F){let A=this._baseState;if(A.parent===null)return A.children[0]._encode(J,O||new Q);let W=null;if(this.reporter=O,A.optional&&J===void 0)if(A.default!==null)J=A.default;else return;let H=null,E=!1;if(A.any)W=this._createEncoderBuffer(J);else if(A.choice)W=this._encodeChoice(J,O);else if(A.contains)H=this._getUse(A.contains,F)._encode(J,O),E=!0;else if(A.children)H=A.children.map(function(T){if(T._baseState.tag==="null_")return T._encode(null,O,J);if(T._baseState.key===null)return O.error("Child should have a key");let D=O.enterKey(T._baseState.key);if(typeof J!="object")return O.error("Child expected, but input is not object");let C=T._encode(J[T._baseState.key],O,J);return O.leaveKey(D),C},this).filter(function(T){return T}),H=this._createEncoderBuffer(H);else if(A.tag==="seqof"||A.tag==="setof"){if(!(A.args&&A.args.length===1))return O.error("Too many args for : "+A.tag);if(!Array.isArray(J))return O.error("seqof/setof, but data is not Array");let T=this.clone();T._baseState.implicit=null,H=this._createEncoderBuffer(J.map(function(D){let C=this._baseState;return this._getUse(C.args[0],J)._encode(D,O)},T))}else A.use!==null?W=this._getUse(A.use,F)._encode(J,O):(H=this._encodePrimitive(A.tag,J),E=!0);if(!A.any&&A.choice===null){let T=A.implicit!==null?A.implicit:A.tag,D=A.implicit===null?"universal":"context";T===null?A.use===null&&O.error("Tag could be omitted only for .use()"):A.use===null&&(W=this._encodeComposite(T,E,D,H))}return A.explicit!==null&&(W=this._encodeComposite(A.explicit,!1,"context",W)),W},K.prototype._encodeChoice=function(J,O){let F=this._baseState,A=F.choice[J.type];return A||G(!1,J.type+" not found in "+JSON.stringify(Object.keys(F.choice))),A._encode(J.value,O)},K.prototype._encodePrimitive=function(J,O){let F=this._baseState;if(/str$/.test(J))return this._encodeStr(O,J);if(J==="objid"&&F.args)return this._encodeObjid(O,F.reverseArgs[0],F.args[1]);if(J==="objid")return this._encodeObjid(O,null,null);if(J==="gentime"||J==="utctime")return this._encodeTime(O,J);if(J==="null_")return this._encodeNull();if(J==="int"||J==="enum")return this._encodeInt(O,F.args&&F.reverseArgs[0]);if(J==="bool")return this._encodeBool(O);if(J==="objDesc")return this._encodeStr(O,J);throw new Error("Unsupported tag: "+J)},K.prototype._isNumstr=function(J){return/^[0-9 ]*$/.test(J)},K.prototype._isPrintstr=function(J){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(J)}}}),DY=P$({"node_modules/asn1.js/lib/asn1/constants/der.js"(bZ){function $(Q){let Y={};return Object.keys(Q).forEach(function(Z){(Z|0)==Z&&(Z=Z|0);let G=Q[Z];Y[G]=Z}),Y}bZ.tagClass={0:"universal",1:"application",2:"context",3:"private"},bZ.tagClassByName=$(bZ.tagClass),bZ.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},bZ.tagByName=$(bZ.tag)}}),CY=P$({"node_modules/asn1.js/lib/asn1/encoders/der.js"(bZ,$){var Q=v$(),Y=HY().Buffer,Z=TY(),G=DY();function V(I){this.enc="der",this.name=I.name,this.entity=I,this.tree=new U,this.tree._init(I.body)}$.exports=V,V.prototype.encode=function(I,J){return this.tree._encode(I,J).join()};function U(I){Z.call(this,"der",I)}Q(U,Z),U.prototype._encodeComposite=function(I,J,O,F){let A=K(I,J,O,this.reporter);if(F.length<128){let E=Y.alloc(2);return E[0]=A,E[1]=F.length,this._createEncoderBuffer([E,F])}let W=1;for(let E=F.length;E>=256;E>>=8)W++;let H=Y.alloc(2+W);H[0]=A,H[1]=128|W;for(let E=1+W,T=F.length;T>0;E--,T>>=8)H[E]=T&255;return this._createEncoderBuffer([H,F])},U.prototype._encodeStr=function(I,J){if(J==="bitstr")return this._createEncoderBuffer([I.unused|0,I.data]);if(J==="bmpstr"){let O=Y.alloc(I.length*2);for(let F=0;F=40)return this.reporter.error("Second objid identifier OOB");I.splice(0,2,I[0]*40+I[1])}let F=0;for(let H=0;H=128;E>>=7)F++}let A=Y.alloc(F),W=A.length-1;for(let H=I.length-1;H>=0;H--){let E=I[H];for(A[W--]=E&127;(E>>=7)>0;)A[W--]=128|E&127}return this._createEncoderBuffer(A)};function X(I){return I<10?"0"+I:I}U.prototype._encodeTime=function(I,J){let O,F=new Date(I);return J==="gentime"?O=[X(F.getUTCFullYear()),X(F.getUTCMonth()+1),X(F.getUTCDate()),X(F.getUTCHours()),X(F.getUTCMinutes()),X(F.getUTCSeconds()),"Z"].join(""):J==="utctime"?O=[X(F.getUTCFullYear()%100),X(F.getUTCMonth()+1),X(F.getUTCDate()),X(F.getUTCHours()),X(F.getUTCMinutes()),X(F.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+J+" time is not supported yet"),this._encodeStr(O,"octstr")},U.prototype._encodeNull=function(){return this._createEncoderBuffer("")},U.prototype._encodeInt=function(I,J){if(typeof I=="string"){if(!J)return this.reporter.error("String int or enum given, but no values map");if(!J.hasOwnProperty(I))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(I));I=J[I]}if(typeof I!="number"&&!Y.isBuffer(I)){let A=I.toArray();!I.sign&&A[0]&128&&A.unshift(0),I=Y.from(A)}if(Y.isBuffer(I)){let A=I.length;I.length===0&&A++;let W=Y.alloc(A);return I.copy(W),I.length===0&&(W[0]=0),this._createEncoderBuffer(W)}if(I<128)return this._createEncoderBuffer(I);if(I<256)return this._createEncoderBuffer([0,I]);let O=1;for(let A=I;A>=256;A>>=8)O++;let F=new Array(O);for(let A=F.length-1;A>=0;A--)F[A]=I&255,I>>=8;return F[0]&128&&F.unshift(0),this._createEncoderBuffer(Y.from(F))},U.prototype._encodeBool=function(I){return this._createEncoderBuffer(I?255:0)},U.prototype._use=function(I,J){return typeof I=="function"&&(I=I(J)),I._getEncoder("der").tree},U.prototype._skipDefault=function(I,J,O){let F=this._baseState,A;if(F.default===null)return!1;let W=I.join();if(F.defaultBuffer===void 0&&(F.defaultBuffer=this._encodeValue(F.default,J,O).join()),W.length!==F.defaultBuffer.length)return!1;for(A=0;A=31?F.error("Multi-octet tag encoding unsupported"):(J||(A|=32),A|=G.tagClassByName[O||"universal"]<<6,A)}}}),LY=P$({"node_modules/asn1.js/lib/asn1/encoders/pem.js"(bZ,$){var Q=v$(),Y=CY();function Z(G){Y.call(this,G),this.enc="pem"}Q(Z,Y),$.exports=Z,Z.prototype.encode=function(G,V){let U=Y.prototype.encode.call(this,G).toString("base64"),X=["-----BEGIN "+V.label+"-----"];for(let K=0;K>6],W=(F&32)===0;if((F&31)===31){let E=F;for(F=0;(E&128)===128;){if(E=J.readUInt8(O),J.isError(E))return E;F<<=7,F|=E&127}}else F&=31;let H=V.tag[F];return{cls:A,primitive:W,tag:F,tagStr:H}}function I(J,O,F){let A=J.readUInt8(F);if(J.isError(A))return A;if(!O&&A===128)return null;if((A&128)===0)return A;let W=A&127;if(W>4)return J.error("length octect is too long");A=0;for(let H=0;H0&&C.ishrn(L),C}function W(T,D){T=A(T,D),T=T.mod(D);var C=Q.from(T.toArray());if(C.length=O)throw new Error("invalid sig")}$.exports=U}}),fY=P$({"node_modules/browserify-sign/browser/index.js"(bZ,$){var Q=M$().Buffer,Y=h$(),Z=L$("readable-stream"),G=v$(),V=yY(),U=wY(),X=o$();Object.keys(X).forEach(function(F){X[F].id=Q.from(X[F].id,"hex"),X[F.toLowerCase()]=X[F]});function K(F){Z.Writable.call(this);var A=X[F];if(!A)throw new Error("Unknown message digest");this._hashType=A.hash,this._hash=Y(A.hash),this._tag=A.id,this._signType=A.sign}G(K,Z.Writable),K.prototype._write=function(F,A,W){this._hash.update(F),W()},K.prototype.update=function(F,A){return typeof F=="string"&&(F=Q.from(F,A)),this._hash.update(F),this},K.prototype.sign=function(F,A){this.end();var W=this._hash.digest(),H=V(W,F,this._hashType,this._signType,this._tag);return A?H.toString(A):H};function I(F){Z.Writable.call(this);var A=X[F];if(!A)throw new Error("Unknown message digest");this._hash=Y(A.hash),this._tag=A.id,this._signType=A.sign}G(I,Z.Writable),I.prototype._write=function(F,A,W){this._hash.update(F),W()},I.prototype.update=function(F,A){return typeof F=="string"&&(F=Q.from(F,A)),this._hash.update(F),this},I.prototype.verify=function(F,A,W){typeof A=="string"&&(A=Q.from(A,W)),this.end();var H=this._hash.digest();return U(A,H,F,this._signType,this._tag)};function J(F){return new K(F)}function O(F){return new I(F)}$.exports={Sign:J,Verify:O,createSign:J,createVerify:O}}}),pY=P$({"node_modules/create-ecdh/node_modules/bn.js/lib/bn.js"(bZ,$){(function(Q,Y){function Z(q,j){if(!q)throw new Error(j||"Assertion failed")}function G(q,j){q.super_=j;var k=function(){};k.prototype=j.prototype,q.prototype=new k,q.prototype.constructor=q}function V(q,j,k){if(V.isBN(q))return q;this.negative=0,this.words=null,this.length=0,this.red=null,q!==null&&((j==="le"||j==="be")&&(k=j,j=10),this._init(q||0,j||10,k||"be"))}typeof Q=="object"?Q.exports=V:Y.BN=V,V.BN=V,V.wordSize=26;var U;try{typeof window<"u"&&typeof window.Buffer<"u"?U=window.Buffer:U=L$("buffer").Buffer}catch{}V.isBN=function(q){return q instanceof V?!0:q!==null&&typeof q=="object"&&q.constructor.wordSize===V.wordSize&&Array.isArray(q.words)},V.max=function(q,j){return q.cmp(j)>0?q:j},V.min=function(q,j){return q.cmp(j)<0?q:j},V.prototype._init=function(q,j,k){if(typeof q=="number")return this._initNumber(q,j,k);if(typeof q=="object")return this._initArray(q,j,k);j==="hex"&&(j=16),Z(j===(j|0)&&j>=2&&j<=36),q=q.toString().replace(/\s+/g,"");var g=0;q[0]==="-"&&(g++,this.negative=1),g=0;g-=3)x=q[g]|q[g-1]<<8|q[g-2]<<16,this.words[N]|=x<<_&67108863,this.words[N+1]=x>>>26-_&67108863,_+=24,_>=26&&(_-=26,N++);else if(k==="le")for(g=0,N=0;g>>26-_&67108863,_+=24,_>=26&&(_-=26,N++);return this.strip()};function X(q,j){var k=q.charCodeAt(j);return k>=65&&k<=70?k-55:k>=97&&k<=102?k-87:k-48&15}function K(q,j,k){var g=X(q,k);return k-1>=j&&(g|=X(q,k-1)<<4),g}V.prototype._parseHex=function(q,j,k){this.length=Math.ceil((q.length-j)/6),this.words=new Array(this.length);for(var g=0;g=j;g-=2)_=K(q,j,g)<=18?(N-=18,x+=1,this.words[x]|=_>>>26):N+=8;else{var B=q.length-j;for(g=B%2===0?j+1:j;g=18?(N-=18,x+=1,this.words[x]|=_>>>26):N+=8}this.strip()};function I(q,j,k,g){for(var N=0,x=Math.min(q.length,k),_=j;_=49?N+=B-49+10:B>=17?N+=B-17+10:N+=B}return N}V.prototype._parseBase=function(q,j,k){this.words=[0],this.length=1;for(var g=0,N=1;N<=67108863;N*=j)g++;g--,N=N/j|0;for(var x=q.length-k,_=x%g,B=Math.min(x,x-_)+k,y=0,w=k;w1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},V.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},V.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],O=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],F=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];V.prototype.toString=function(q,j){q=q||10,j=j|0||1;var k;if(q===16||q==="hex"){k="";for(var g=0,N=0,x=0;x>>24-g&16777215,N!==0||x!==this.length-1?k=J[6-B.length]+B+k:k=B+k,g+=2,g>=26&&(g-=26,x--)}for(N!==0&&(k=N.toString(16)+k);k.length%j!==0;)k="0"+k;return this.negative!==0&&(k="-"+k),k}if(q===(q|0)&&q>=2&&q<=36){var y=O[q],w=F[q];k="";var f=this.clone();for(f.negative=0;!f.isZero();){var p=f.modn(w).toString(q);f=f.idivn(w),f.isZero()?k=p+k:k=J[y-p.length]+p+k}for(this.isZero()&&(k="0"+k);k.length%j!==0;)k="0"+k;return this.negative!==0&&(k="-"+k),k}Z(!1,"Base should be between 2 and 36")},V.prototype.toNumber=function(){var q=this.words[0];return this.length===2?q+=this.words[1]*67108864:this.length===3&&this.words[2]===1?q+=4503599627370496+this.words[1]*67108864:this.length>2&&Z(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-q:q},V.prototype.toJSON=function(){return this.toString(16)},V.prototype.toBuffer=function(q,j){return Z(typeof U<"u"),this.toArrayLike(U,q,j)},V.prototype.toArray=function(q,j){return this.toArrayLike(Array,q,j)},V.prototype.toArrayLike=function(q,j,k){var g=this.byteLength(),N=k||Math.max(1,g);Z(g<=N,"byte array longer than desired length"),Z(N>0,"Requested array length <= 0"),this.strip();var x=j==="le",_=new q(N),B,y,w=this.clone();if(x){for(y=0;!w.isZero();y++)B=w.andln(255),w.iushrn(8),_[y]=B;for(;y=4096&&(k+=13,j>>>=13),j>=64&&(k+=7,j>>>=7),j>=8&&(k+=4,j>>>=4),j>=2&&(k+=2,j>>>=2),k+j},V.prototype._zeroBits=function(q){if(q===0)return 26;var j=q,k=0;return(j&8191)===0&&(k+=13,j>>>=13),(j&127)===0&&(k+=7,j>>>=7),(j&15)===0&&(k+=4,j>>>=4),(j&3)===0&&(k+=2,j>>>=2),(j&1)===0&&k++,k},V.prototype.bitLength=function(){var q=this.words[this.length-1],j=this._countBits(q);return(this.length-1)*26+j};function A(q){for(var j=new Array(q.bitLength()),k=0;k>>N}return j}V.prototype.zeroBits=function(){if(this.isZero())return 0;for(var q=0,j=0;jq.length?this.clone().ior(q):q.clone().ior(this)},V.prototype.uor=function(q){return this.length>q.length?this.clone().iuor(q):q.clone().iuor(this)},V.prototype.iuand=function(q){var j;this.length>q.length?j=q:j=this;for(var k=0;kq.length?this.clone().iand(q):q.clone().iand(this)},V.prototype.uand=function(q){return this.length>q.length?this.clone().iuand(q):q.clone().iuand(this)},V.prototype.iuxor=function(q){var j,k;this.length>q.length?(j=this,k=q):(j=q,k=this);for(var g=0;gq.length?this.clone().ixor(q):q.clone().ixor(this)},V.prototype.uxor=function(q){return this.length>q.length?this.clone().iuxor(q):q.clone().iuxor(this)},V.prototype.inotn=function(q){Z(typeof q=="number"&&q>=0);var j=Math.ceil(q/26)|0,k=q%26;this._expand(j),k>0&&j--;for(var g=0;g0&&(this.words[g]=~this.words[g]&67108863>>26-k),this.strip()},V.prototype.notn=function(q){return this.clone().inotn(q)},V.prototype.setn=function(q,j){Z(typeof q=="number"&&q>=0);var k=q/26|0,g=q%26;return this._expand(k+1),j?this.words[k]=this.words[k]|1<q.length?(k=this,g=q):(k=q,g=this);for(var N=0,x=0;x>>26;for(;N!==0&&x>>26;if(this.length=k.length,N!==0)this.words[this.length]=N,this.length++;else if(k!==this)for(;xq.length?this.clone().iadd(q):q.clone().iadd(this)},V.prototype.isub=function(q){if(q.negative!==0){q.negative=0;var j=this.iadd(q);return q.negative=1,j._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(q),this.negative=1,this._normSign();var k=this.cmp(q);if(k===0)return this.negative=0,this.length=1,this.words[0]=0,this;var g,N;k>0?(g=this,N=q):(g=q,N=this);for(var x=0,_=0;_>26,this.words[_]=j&67108863;for(;x!==0&&_>26,this.words[_]=j&67108863;if(x===0&&_>>26,p=y&67108863,c=Math.min(w,j.length-1),h=Math.max(0,w-q.length+1);h<=c;h++){var d=w-h|0;N=q.words[d]|0,x=j.words[h]|0,_=N*x+p,f+=_/67108864|0,p=_&67108863}k.words[w]=p|0,y=f|0}return y!==0?k.words[w]=y|0:k.length--,k.strip()}var H=function(q,j,k){var g=q.words,N=j.words,x=k.words,_=0,B,y,w,f=g[0]|0,p=f&8191,c=f>>>13,h=g[1]|0,d=h&8191,b=h>>>13,l=g[2]|0,o=l&8191,u=l>>>13,n=g[3]|0,s=n&8191,t=n>>>13,m=g[4]|0,a=m&8191,r=m>>>13,e=g[5]|0,i=e&8191,$0=e>>>13,Q0=g[6]|0,Y0=Q0&8191,Z0=Q0>>>13,G0=g[7]|0,V0=G0&8191,U0=G0>>>13,X0=g[8]|0,K0=X0&8191,I0=X0>>>13,J0=g[9]|0,O0=J0&8191,F0=J0>>>13,A0=N[0]|0,W0=A0&8191,H0=A0>>>13,E0=N[1]|0,T0=E0&8191,D0=E0>>>13,C0=N[2]|0,L0=C0&8191,R0=C0>>>13,P0=N[3]|0,z0=P0&8191,M0=P0>>>13,S0=N[4]|0,v0=S0&8191,q0=S0>>>13,j0=N[5]|0,k0=j0&8191,g0=j0>>>13,N0=N[6]|0,x0=N0&8191,_0=N0>>>13,B0=N[7]|0,y0=B0&8191,w0=B0>>>13,f0=N[8]|0,p0=f0&8191,c0=f0>>>13,h0=N[9]|0,d0=h0&8191,b0=h0>>>13;k.negative=q.negative^j.negative,k.length=19,B=Math.imul(p,W0),y=Math.imul(p,H0),y=y+Math.imul(c,W0)|0,w=Math.imul(c,H0);var l0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(l0>>>26)|0,l0&=67108863,B=Math.imul(d,W0),y=Math.imul(d,H0),y=y+Math.imul(b,W0)|0,w=Math.imul(b,H0),B=B+Math.imul(p,T0)|0,y=y+Math.imul(p,D0)|0,y=y+Math.imul(c,T0)|0,w=w+Math.imul(c,D0)|0;var o0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(o0>>>26)|0,o0&=67108863,B=Math.imul(o,W0),y=Math.imul(o,H0),y=y+Math.imul(u,W0)|0,w=Math.imul(u,H0),B=B+Math.imul(d,T0)|0,y=y+Math.imul(d,D0)|0,y=y+Math.imul(b,T0)|0,w=w+Math.imul(b,D0)|0,B=B+Math.imul(p,L0)|0,y=y+Math.imul(p,R0)|0,y=y+Math.imul(c,L0)|0,w=w+Math.imul(c,R0)|0;var u0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(u0>>>26)|0,u0&=67108863,B=Math.imul(s,W0),y=Math.imul(s,H0),y=y+Math.imul(t,W0)|0,w=Math.imul(t,H0),B=B+Math.imul(o,T0)|0,y=y+Math.imul(o,D0)|0,y=y+Math.imul(u,T0)|0,w=w+Math.imul(u,D0)|0,B=B+Math.imul(d,L0)|0,y=y+Math.imul(d,R0)|0,y=y+Math.imul(b,L0)|0,w=w+Math.imul(b,R0)|0,B=B+Math.imul(p,z0)|0,y=y+Math.imul(p,M0)|0,y=y+Math.imul(c,z0)|0,w=w+Math.imul(c,M0)|0;var n0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(n0>>>26)|0,n0&=67108863,B=Math.imul(a,W0),y=Math.imul(a,H0),y=y+Math.imul(r,W0)|0,w=Math.imul(r,H0),B=B+Math.imul(s,T0)|0,y=y+Math.imul(s,D0)|0,y=y+Math.imul(t,T0)|0,w=w+Math.imul(t,D0)|0,B=B+Math.imul(o,L0)|0,y=y+Math.imul(o,R0)|0,y=y+Math.imul(u,L0)|0,w=w+Math.imul(u,R0)|0,B=B+Math.imul(d,z0)|0,y=y+Math.imul(d,M0)|0,y=y+Math.imul(b,z0)|0,w=w+Math.imul(b,M0)|0,B=B+Math.imul(p,v0)|0,y=y+Math.imul(p,q0)|0,y=y+Math.imul(c,v0)|0,w=w+Math.imul(c,q0)|0;var s0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(s0>>>26)|0,s0&=67108863,B=Math.imul(i,W0),y=Math.imul(i,H0),y=y+Math.imul($0,W0)|0,w=Math.imul($0,H0),B=B+Math.imul(a,T0)|0,y=y+Math.imul(a,D0)|0,y=y+Math.imul(r,T0)|0,w=w+Math.imul(r,D0)|0,B=B+Math.imul(s,L0)|0,y=y+Math.imul(s,R0)|0,y=y+Math.imul(t,L0)|0,w=w+Math.imul(t,R0)|0,B=B+Math.imul(o,z0)|0,y=y+Math.imul(o,M0)|0,y=y+Math.imul(u,z0)|0,w=w+Math.imul(u,M0)|0,B=B+Math.imul(d,v0)|0,y=y+Math.imul(d,q0)|0,y=y+Math.imul(b,v0)|0,w=w+Math.imul(b,q0)|0,B=B+Math.imul(p,k0)|0,y=y+Math.imul(p,g0)|0,y=y+Math.imul(c,k0)|0,w=w+Math.imul(c,g0)|0;var t0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(t0>>>26)|0,t0&=67108863,B=Math.imul(Y0,W0),y=Math.imul(Y0,H0),y=y+Math.imul(Z0,W0)|0,w=Math.imul(Z0,H0),B=B+Math.imul(i,T0)|0,y=y+Math.imul(i,D0)|0,y=y+Math.imul($0,T0)|0,w=w+Math.imul($0,D0)|0,B=B+Math.imul(a,L0)|0,y=y+Math.imul(a,R0)|0,y=y+Math.imul(r,L0)|0,w=w+Math.imul(r,R0)|0,B=B+Math.imul(s,z0)|0,y=y+Math.imul(s,M0)|0,y=y+Math.imul(t,z0)|0,w=w+Math.imul(t,M0)|0,B=B+Math.imul(o,v0)|0,y=y+Math.imul(o,q0)|0,y=y+Math.imul(u,v0)|0,w=w+Math.imul(u,q0)|0,B=B+Math.imul(d,k0)|0,y=y+Math.imul(d,g0)|0,y=y+Math.imul(b,k0)|0,w=w+Math.imul(b,g0)|0,B=B+Math.imul(p,x0)|0,y=y+Math.imul(p,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,_0)|0;var m0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(m0>>>26)|0,m0&=67108863,B=Math.imul(V0,W0),y=Math.imul(V0,H0),y=y+Math.imul(U0,W0)|0,w=Math.imul(U0,H0),B=B+Math.imul(Y0,T0)|0,y=y+Math.imul(Y0,D0)|0,y=y+Math.imul(Z0,T0)|0,w=w+Math.imul(Z0,D0)|0,B=B+Math.imul(i,L0)|0,y=y+Math.imul(i,R0)|0,y=y+Math.imul($0,L0)|0,w=w+Math.imul($0,R0)|0,B=B+Math.imul(a,z0)|0,y=y+Math.imul(a,M0)|0,y=y+Math.imul(r,z0)|0,w=w+Math.imul(r,M0)|0,B=B+Math.imul(s,v0)|0,y=y+Math.imul(s,q0)|0,y=y+Math.imul(t,v0)|0,w=w+Math.imul(t,q0)|0,B=B+Math.imul(o,k0)|0,y=y+Math.imul(o,g0)|0,y=y+Math.imul(u,k0)|0,w=w+Math.imul(u,g0)|0,B=B+Math.imul(d,x0)|0,y=y+Math.imul(d,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,_0)|0,B=B+Math.imul(p,y0)|0,y=y+Math.imul(p,w0)|0,y=y+Math.imul(c,y0)|0,w=w+Math.imul(c,w0)|0;var a0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(a0>>>26)|0,a0&=67108863,B=Math.imul(K0,W0),y=Math.imul(K0,H0),y=y+Math.imul(I0,W0)|0,w=Math.imul(I0,H0),B=B+Math.imul(V0,T0)|0,y=y+Math.imul(V0,D0)|0,y=y+Math.imul(U0,T0)|0,w=w+Math.imul(U0,D0)|0,B=B+Math.imul(Y0,L0)|0,y=y+Math.imul(Y0,R0)|0,y=y+Math.imul(Z0,L0)|0,w=w+Math.imul(Z0,R0)|0,B=B+Math.imul(i,z0)|0,y=y+Math.imul(i,M0)|0,y=y+Math.imul($0,z0)|0,w=w+Math.imul($0,M0)|0,B=B+Math.imul(a,v0)|0,y=y+Math.imul(a,q0)|0,y=y+Math.imul(r,v0)|0,w=w+Math.imul(r,q0)|0,B=B+Math.imul(s,k0)|0,y=y+Math.imul(s,g0)|0,y=y+Math.imul(t,k0)|0,w=w+Math.imul(t,g0)|0,B=B+Math.imul(o,x0)|0,y=y+Math.imul(o,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,_0)|0,B=B+Math.imul(d,y0)|0,y=y+Math.imul(d,w0)|0,y=y+Math.imul(b,y0)|0,w=w+Math.imul(b,w0)|0,B=B+Math.imul(p,p0)|0,y=y+Math.imul(p,c0)|0,y=y+Math.imul(c,p0)|0,w=w+Math.imul(c,c0)|0;var r0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(r0>>>26)|0,r0&=67108863,B=Math.imul(O0,W0),y=Math.imul(O0,H0),y=y+Math.imul(F0,W0)|0,w=Math.imul(F0,H0),B=B+Math.imul(K0,T0)|0,y=y+Math.imul(K0,D0)|0,y=y+Math.imul(I0,T0)|0,w=w+Math.imul(I0,D0)|0,B=B+Math.imul(V0,L0)|0,y=y+Math.imul(V0,R0)|0,y=y+Math.imul(U0,L0)|0,w=w+Math.imul(U0,R0)|0,B=B+Math.imul(Y0,z0)|0,y=y+Math.imul(Y0,M0)|0,y=y+Math.imul(Z0,z0)|0,w=w+Math.imul(Z0,M0)|0,B=B+Math.imul(i,v0)|0,y=y+Math.imul(i,q0)|0,y=y+Math.imul($0,v0)|0,w=w+Math.imul($0,q0)|0,B=B+Math.imul(a,k0)|0,y=y+Math.imul(a,g0)|0,y=y+Math.imul(r,k0)|0,w=w+Math.imul(r,g0)|0,B=B+Math.imul(s,x0)|0,y=y+Math.imul(s,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,_0)|0,B=B+Math.imul(o,y0)|0,y=y+Math.imul(o,w0)|0,y=y+Math.imul(u,y0)|0,w=w+Math.imul(u,w0)|0,B=B+Math.imul(d,p0)|0,y=y+Math.imul(d,c0)|0,y=y+Math.imul(b,p0)|0,w=w+Math.imul(b,c0)|0,B=B+Math.imul(p,d0)|0,y=y+Math.imul(p,b0)|0,y=y+Math.imul(c,d0)|0,w=w+Math.imul(c,b0)|0;var e0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(e0>>>26)|0,e0&=67108863,B=Math.imul(O0,T0),y=Math.imul(O0,D0),y=y+Math.imul(F0,T0)|0,w=Math.imul(F0,D0),B=B+Math.imul(K0,L0)|0,y=y+Math.imul(K0,R0)|0,y=y+Math.imul(I0,L0)|0,w=w+Math.imul(I0,R0)|0,B=B+Math.imul(V0,z0)|0,y=y+Math.imul(V0,M0)|0,y=y+Math.imul(U0,z0)|0,w=w+Math.imul(U0,M0)|0,B=B+Math.imul(Y0,v0)|0,y=y+Math.imul(Y0,q0)|0,y=y+Math.imul(Z0,v0)|0,w=w+Math.imul(Z0,q0)|0,B=B+Math.imul(i,k0)|0,y=y+Math.imul(i,g0)|0,y=y+Math.imul($0,k0)|0,w=w+Math.imul($0,g0)|0,B=B+Math.imul(a,x0)|0,y=y+Math.imul(a,_0)|0,y=y+Math.imul(r,x0)|0,w=w+Math.imul(r,_0)|0,B=B+Math.imul(s,y0)|0,y=y+Math.imul(s,w0)|0,y=y+Math.imul(t,y0)|0,w=w+Math.imul(t,w0)|0,B=B+Math.imul(o,p0)|0,y=y+Math.imul(o,c0)|0,y=y+Math.imul(u,p0)|0,w=w+Math.imul(u,c0)|0,B=B+Math.imul(d,d0)|0,y=y+Math.imul(d,b0)|0,y=y+Math.imul(b,d0)|0,w=w+Math.imul(b,b0)|0;var i0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(i0>>>26)|0,i0&=67108863,B=Math.imul(O0,L0),y=Math.imul(O0,R0),y=y+Math.imul(F0,L0)|0,w=Math.imul(F0,R0),B=B+Math.imul(K0,z0)|0,y=y+Math.imul(K0,M0)|0,y=y+Math.imul(I0,z0)|0,w=w+Math.imul(I0,M0)|0,B=B+Math.imul(V0,v0)|0,y=y+Math.imul(V0,q0)|0,y=y+Math.imul(U0,v0)|0,w=w+Math.imul(U0,q0)|0,B=B+Math.imul(Y0,k0)|0,y=y+Math.imul(Y0,g0)|0,y=y+Math.imul(Z0,k0)|0,w=w+Math.imul(Z0,g0)|0,B=B+Math.imul(i,x0)|0,y=y+Math.imul(i,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,_0)|0,B=B+Math.imul(a,y0)|0,y=y+Math.imul(a,w0)|0,y=y+Math.imul(r,y0)|0,w=w+Math.imul(r,w0)|0,B=B+Math.imul(s,p0)|0,y=y+Math.imul(s,c0)|0,y=y+Math.imul(t,p0)|0,w=w+Math.imul(t,c0)|0,B=B+Math.imul(o,d0)|0,y=y+Math.imul(o,b0)|0,y=y+Math.imul(u,d0)|0,w=w+Math.imul(u,b0)|0;var $$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+($$>>>26)|0,$$&=67108863,B=Math.imul(O0,z0),y=Math.imul(O0,M0),y=y+Math.imul(F0,z0)|0,w=Math.imul(F0,M0),B=B+Math.imul(K0,v0)|0,y=y+Math.imul(K0,q0)|0,y=y+Math.imul(I0,v0)|0,w=w+Math.imul(I0,q0)|0,B=B+Math.imul(V0,k0)|0,y=y+Math.imul(V0,g0)|0,y=y+Math.imul(U0,k0)|0,w=w+Math.imul(U0,g0)|0,B=B+Math.imul(Y0,x0)|0,y=y+Math.imul(Y0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,_0)|0,B=B+Math.imul(i,y0)|0,y=y+Math.imul(i,w0)|0,y=y+Math.imul($0,y0)|0,w=w+Math.imul($0,w0)|0,B=B+Math.imul(a,p0)|0,y=y+Math.imul(a,c0)|0,y=y+Math.imul(r,p0)|0,w=w+Math.imul(r,c0)|0,B=B+Math.imul(s,d0)|0,y=y+Math.imul(s,b0)|0,y=y+Math.imul(t,d0)|0,w=w+Math.imul(t,b0)|0;var Q$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,B=Math.imul(O0,v0),y=Math.imul(O0,q0),y=y+Math.imul(F0,v0)|0,w=Math.imul(F0,q0),B=B+Math.imul(K0,k0)|0,y=y+Math.imul(K0,g0)|0,y=y+Math.imul(I0,k0)|0,w=w+Math.imul(I0,g0)|0,B=B+Math.imul(V0,x0)|0,y=y+Math.imul(V0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,_0)|0,B=B+Math.imul(Y0,y0)|0,y=y+Math.imul(Y0,w0)|0,y=y+Math.imul(Z0,y0)|0,w=w+Math.imul(Z0,w0)|0,B=B+Math.imul(i,p0)|0,y=y+Math.imul(i,c0)|0,y=y+Math.imul($0,p0)|0,w=w+Math.imul($0,c0)|0,B=B+Math.imul(a,d0)|0,y=y+Math.imul(a,b0)|0,y=y+Math.imul(r,d0)|0,w=w+Math.imul(r,b0)|0;var Y$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,B=Math.imul(O0,k0),y=Math.imul(O0,g0),y=y+Math.imul(F0,k0)|0,w=Math.imul(F0,g0),B=B+Math.imul(K0,x0)|0,y=y+Math.imul(K0,_0)|0,y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,_0)|0,B=B+Math.imul(V0,y0)|0,y=y+Math.imul(V0,w0)|0,y=y+Math.imul(U0,y0)|0,w=w+Math.imul(U0,w0)|0,B=B+Math.imul(Y0,p0)|0,y=y+Math.imul(Y0,c0)|0,y=y+Math.imul(Z0,p0)|0,w=w+Math.imul(Z0,c0)|0,B=B+Math.imul(i,d0)|0,y=y+Math.imul(i,b0)|0,y=y+Math.imul($0,d0)|0,w=w+Math.imul($0,b0)|0;var Z$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,B=Math.imul(O0,x0),y=Math.imul(O0,_0),y=y+Math.imul(F0,x0)|0,w=Math.imul(F0,_0),B=B+Math.imul(K0,y0)|0,y=y+Math.imul(K0,w0)|0,y=y+Math.imul(I0,y0)|0,w=w+Math.imul(I0,w0)|0,B=B+Math.imul(V0,p0)|0,y=y+Math.imul(V0,c0)|0,y=y+Math.imul(U0,p0)|0,w=w+Math.imul(U0,c0)|0,B=B+Math.imul(Y0,d0)|0,y=y+Math.imul(Y0,b0)|0,y=y+Math.imul(Z0,d0)|0,w=w+Math.imul(Z0,b0)|0;var G$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(G$>>>26)|0,G$&=67108863,B=Math.imul(O0,y0),y=Math.imul(O0,w0),y=y+Math.imul(F0,y0)|0,w=Math.imul(F0,w0),B=B+Math.imul(K0,p0)|0,y=y+Math.imul(K0,c0)|0,y=y+Math.imul(I0,p0)|0,w=w+Math.imul(I0,c0)|0,B=B+Math.imul(V0,d0)|0,y=y+Math.imul(V0,b0)|0,y=y+Math.imul(U0,d0)|0,w=w+Math.imul(U0,b0)|0;var V$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(V$>>>26)|0,V$&=67108863,B=Math.imul(O0,p0),y=Math.imul(O0,c0),y=y+Math.imul(F0,p0)|0,w=Math.imul(F0,c0),B=B+Math.imul(K0,d0)|0,y=y+Math.imul(K0,b0)|0,y=y+Math.imul(I0,d0)|0,w=w+Math.imul(I0,b0)|0;var U$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(U$>>>26)|0,U$&=67108863,B=Math.imul(O0,d0),y=Math.imul(O0,b0),y=y+Math.imul(F0,d0)|0,w=Math.imul(F0,b0);var X$=(_+B|0)+((y&8191)<<13)|0;return _=(w+(y>>>13)|0)+(X$>>>26)|0,X$&=67108863,x[0]=l0,x[1]=o0,x[2]=u0,x[3]=n0,x[4]=s0,x[5]=t0,x[6]=m0,x[7]=a0,x[8]=r0,x[9]=e0,x[10]=i0,x[11]=$$,x[12]=Q$,x[13]=Y$,x[14]=Z$,x[15]=G$,x[16]=V$,x[17]=U$,x[18]=X$,_!==0&&(x[19]=_,k.length++),k};Math.imul||(H=W);function E(q,j,k){k.negative=j.negative^q.negative,k.length=q.length+j.length;for(var g=0,N=0,x=0;x>>26)|0,N+=_>>>26,_&=67108863}k.words[x]=B,g=_,_=N}return g!==0?k.words[x]=g:k.length--,k.strip()}function T(q,j,k){var g=new D;return g.mulp(q,j,k)}V.prototype.mulTo=function(q,j){var k,g=this.length+q.length;return this.length===10&&q.length===10?k=H(this,q,j):g<63?k=W(this,q,j):g<1024?k=E(this,q,j):k=T(this,q,j),k};function D(q,j){this.x=q,this.y=j}D.prototype.makeRBT=function(q){for(var j=new Array(q),k=V.prototype._countBits(q)-1,g=0;g>=1;return g},D.prototype.permute=function(q,j,k,g,N,x){for(var _=0;_>>1)N++;return 1<>>13,k[2*x+1]=N&8191,N=N>>>13;for(x=2*j;x>=26,j+=g/67108864|0,j+=N>>>26,this.words[k]=N&67108863}return j!==0&&(this.words[k]=j,this.length++),this},V.prototype.muln=function(q){return this.clone().imuln(q)},V.prototype.sqr=function(){return this.mul(this)},V.prototype.isqr=function(){return this.imul(this.clone())},V.prototype.pow=function(q){var j=A(q);if(j.length===0)return new V(1);for(var k=this,g=0;g=0);var j=q%26,k=(q-j)/26,g=67108863>>>26-j<<26-j,N;if(j!==0){var x=0;for(N=0;N>>26-j}x&&(this.words[N]=x,this.length++)}if(k!==0){for(N=this.length-1;N>=0;N--)this.words[N+k]=this.words[N];for(N=0;N=0);var g;j?g=(j-j%26)/26:g=0;var N=q%26,x=Math.min((q-N)/26,this.length),_=67108863^67108863>>>N<x)for(this.length-=x,y=0;y=0&&(w!==0||y>=g);y--){var f=this.words[y]|0;this.words[y]=w<<26-N|f>>>N,w=f&_}return B&&w!==0&&(B.words[B.length++]=w),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},V.prototype.ishrn=function(q,j,k){return Z(this.negative===0),this.iushrn(q,j,k)},V.prototype.shln=function(q){return this.clone().ishln(q)},V.prototype.ushln=function(q){return this.clone().iushln(q)},V.prototype.shrn=function(q){return this.clone().ishrn(q)},V.prototype.ushrn=function(q){return this.clone().iushrn(q)},V.prototype.testn=function(q){Z(typeof q=="number"&&q>=0);var j=q%26,k=(q-j)/26,g=1<=0);var j=q%26,k=(q-j)/26;if(Z(this.negative===0,"imaskn works only with positive numbers"),this.length<=k)return this;if(j!==0&&k++,this.length=Math.min(k,this.length),j!==0){var g=67108863^67108863>>>j<=67108864;j++)this.words[j]-=67108864,j===this.length-1?this.words[j+1]=1:this.words[j+1]++;return this.length=Math.max(this.length,j+1),this},V.prototype.isubn=function(q){if(Z(typeof q=="number"),Z(q<67108864),q<0)return this.iaddn(-q);if(this.negative!==0)return this.negative=0,this.iaddn(q),this.negative=1,this;if(this.words[0]-=q,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var j=0;j>26)-(B/67108864|0),this.words[N+k]=x&67108863}for(;N>26,this.words[N+k]=x&67108863;if(_===0)return this.strip();for(Z(_===-1),_=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},V.prototype._wordDiv=function(q,j){var k=this.length-q.length,g=this.clone(),N=q,x=N.words[N.length-1]|0,_=this._countBits(x);k=26-_,k!==0&&(N=N.ushln(k),g.iushln(k),x=N.words[N.length-1]|0);var B=g.length-N.length,y;if(j!=="mod"){y=new V(null),y.length=B+1,y.words=new Array(y.length);for(var w=0;w=0;p--){var c=(g.words[N.length+p]|0)*67108864+(g.words[N.length+p-1]|0);for(c=Math.min(c/x|0,67108863),g._ishlnsubmul(N,c,p);g.negative!==0;)c--,g.negative=0,g._ishlnsubmul(N,1,p),g.isZero()||(g.negative^=1);y&&(y.words[p]=c)}return y&&y.strip(),g.strip(),j!=="div"&&k!==0&&g.iushrn(k),{div:y||null,mod:g}},V.prototype.divmod=function(q,j,k){if(Z(!q.isZero()),this.isZero())return{div:new V(0),mod:new V(0)};var g,N,x;return this.negative!==0&&q.negative===0?(x=this.neg().divmod(q,j),j!=="mod"&&(g=x.div.neg()),j!=="div"&&(N=x.mod.neg(),k&&N.negative!==0&&N.iadd(q)),{div:g,mod:N}):this.negative===0&&q.negative!==0?(x=this.divmod(q.neg(),j),j!=="mod"&&(g=x.div.neg()),{div:g,mod:x.mod}):(this.negative&q.negative)!==0?(x=this.neg().divmod(q.neg(),j),j!=="div"&&(N=x.mod.neg(),k&&N.negative!==0&&N.isub(q)),{div:x.div,mod:N}):q.length>this.length||this.cmp(q)<0?{div:new V(0),mod:this}:q.length===1?j==="div"?{div:this.divn(q.words[0]),mod:null}:j==="mod"?{div:null,mod:new V(this.modn(q.words[0]))}:{div:this.divn(q.words[0]),mod:new V(this.modn(q.words[0]))}:this._wordDiv(q,j)},V.prototype.div=function(q){return this.divmod(q,"div",!1).div},V.prototype.mod=function(q){return this.divmod(q,"mod",!1).mod},V.prototype.umod=function(q){return this.divmod(q,"mod",!0).mod},V.prototype.divRound=function(q){var j=this.divmod(q);if(j.mod.isZero())return j.div;var k=j.div.negative!==0?j.mod.isub(q):j.mod,g=q.ushrn(1),N=q.andln(1),x=k.cmp(g);return x<0||N===1&&x===0?j.div:j.div.negative!==0?j.div.isubn(1):j.div.iaddn(1)},V.prototype.modn=function(q){Z(q<=67108863);for(var j=(1<<26)%q,k=0,g=this.length-1;g>=0;g--)k=(j*k+(this.words[g]|0))%q;return k},V.prototype.idivn=function(q){Z(q<=67108863);for(var j=0,k=this.length-1;k>=0;k--){var g=(this.words[k]|0)+j*67108864;this.words[k]=g/q|0,j=g%q}return this.strip()},V.prototype.divn=function(q){return this.clone().idivn(q)},V.prototype.egcd=function(q){Z(q.negative===0),Z(!q.isZero());var j=this,k=q.clone();j.negative!==0?j=j.umod(q):j=j.clone();for(var g=new V(1),N=new V(0),x=new V(0),_=new V(1),B=0;j.isEven()&&k.isEven();)j.iushrn(1),k.iushrn(1),++B;for(var y=k.clone(),w=j.clone();!j.isZero();){for(var f=0,p=1;(j.words[0]&p)===0&&f<26;++f,p<<=1);if(f>0)for(j.iushrn(f);f-- >0;)(g.isOdd()||N.isOdd())&&(g.iadd(y),N.isub(w)),g.iushrn(1),N.iushrn(1);for(var c=0,h=1;(k.words[0]&h)===0&&c<26;++c,h<<=1);if(c>0)for(k.iushrn(c);c-- >0;)(x.isOdd()||_.isOdd())&&(x.iadd(y),_.isub(w)),x.iushrn(1),_.iushrn(1);j.cmp(k)>=0?(j.isub(k),g.isub(x),N.isub(_)):(k.isub(j),x.isub(g),_.isub(N))}return{a:x,b:_,gcd:k.iushln(B)}},V.prototype._invmp=function(q){Z(q.negative===0),Z(!q.isZero());var j=this,k=q.clone();j.negative!==0?j=j.umod(q):j=j.clone();for(var g=new V(1),N=new V(0),x=k.clone();j.cmpn(1)>0&&k.cmpn(1)>0;){for(var _=0,B=1;(j.words[0]&B)===0&&_<26;++_,B<<=1);if(_>0)for(j.iushrn(_);_-- >0;)g.isOdd()&&g.iadd(x),g.iushrn(1);for(var y=0,w=1;(k.words[0]&w)===0&&y<26;++y,w<<=1);if(y>0)for(k.iushrn(y);y-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);j.cmp(k)>=0?(j.isub(k),g.isub(N)):(k.isub(j),N.isub(g))}var f;return j.cmpn(1)===0?f=g:f=N,f.cmpn(0)<0&&f.iadd(q),f},V.prototype.gcd=function(q){if(this.isZero())return q.abs();if(q.isZero())return this.abs();var j=this.clone(),k=q.clone();j.negative=0,k.negative=0;for(var g=0;j.isEven()&&k.isEven();g++)j.iushrn(1),k.iushrn(1);do{for(;j.isEven();)j.iushrn(1);for(;k.isEven();)k.iushrn(1);var N=j.cmp(k);if(N<0){var x=j;j=k,k=x}else if(N===0||k.cmpn(1)===0)break;j.isub(k)}while(!0);return k.iushln(g)},V.prototype.invm=function(q){return this.egcd(q).a.umod(q)},V.prototype.isEven=function(){return(this.words[0]&1)===0},V.prototype.isOdd=function(){return(this.words[0]&1)===1},V.prototype.andln=function(q){return this.words[0]&q},V.prototype.bincn=function(q){Z(typeof q=="number");var j=q%26,k=(q-j)/26,g=1<>>26,_&=67108863,this.words[x]=_}return N!==0&&(this.words[x]=N,this.length++),this},V.prototype.isZero=function(){return this.length===1&&this.words[0]===0},V.prototype.cmpn=function(q){var j=q<0;if(this.negative!==0&&!j)return-1;if(this.negative===0&&j)return 1;this.strip();var k;if(this.length>1)k=1;else{j&&(q=-q),Z(q<=67108863,"Number is too big");var g=this.words[0]|0;k=g===q?0:gq.length)return 1;if(this.length=0;k--){var g=this.words[k]|0,N=q.words[k]|0;if(g!==N){gN&&(j=1);break}}return j},V.prototype.gtn=function(q){return this.cmpn(q)===1},V.prototype.gt=function(q){return this.cmp(q)===1},V.prototype.gten=function(q){return this.cmpn(q)>=0},V.prototype.gte=function(q){return this.cmp(q)>=0},V.prototype.ltn=function(q){return this.cmpn(q)===-1},V.prototype.lt=function(q){return this.cmp(q)===-1},V.prototype.lten=function(q){return this.cmpn(q)<=0},V.prototype.lte=function(q){return this.cmp(q)<=0},V.prototype.eqn=function(q){return this.cmpn(q)===0},V.prototype.eq=function(q){return this.cmp(q)===0},V.red=function(q){return new S(q)},V.prototype.toRed=function(q){return Z(!this.red,"Already a number in reduction context"),Z(this.negative===0,"red works only with positives"),q.convertTo(this)._forceRed(q)},V.prototype.fromRed=function(){return Z(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},V.prototype._forceRed=function(q){return this.red=q,this},V.prototype.forceRed=function(q){return Z(!this.red,"Already a number in reduction context"),this._forceRed(q)},V.prototype.redAdd=function(q){return Z(this.red,"redAdd works only with red numbers"),this.red.add(this,q)},V.prototype.redIAdd=function(q){return Z(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,q)},V.prototype.redSub=function(q){return Z(this.red,"redSub works only with red numbers"),this.red.sub(this,q)},V.prototype.redISub=function(q){return Z(this.red,"redISub works only with red numbers"),this.red.isub(this,q)},V.prototype.redShl=function(q){return Z(this.red,"redShl works only with red numbers"),this.red.shl(this,q)},V.prototype.redMul=function(q){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,q),this.red.mul(this,q)},V.prototype.redIMul=function(q){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,q),this.red.imul(this,q)},V.prototype.redSqr=function(){return Z(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},V.prototype.redISqr=function(){return Z(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},V.prototype.redSqrt=function(){return Z(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},V.prototype.redInvm=function(){return Z(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},V.prototype.redNeg=function(){return Z(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},V.prototype.redPow=function(q){return Z(this.red&&!q.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,q)};var C={k256:null,p224:null,p192:null,p25519:null};function L(q,j){this.name=q,this.p=new V(j,16),this.n=this.p.bitLength(),this.k=new V(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}L.prototype._tmp=function(){var q=new V(null);return q.words=new Array(Math.ceil(this.n/13)),q},L.prototype.ireduce=function(q){var j=q,k;do this.split(j,this.tmp),j=this.imulK(j),j=j.iadd(this.tmp),k=j.bitLength();while(k>this.n);var g=k0?j.isub(this.p):j.strip!==void 0?j.strip():j._strip(),j},L.prototype.split=function(q,j){q.iushrn(this.n,0,j)},L.prototype.imulK=function(q){return q.imul(this.k)};function R(){L.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}G(R,L),R.prototype.split=function(q,j){for(var k=4194303,g=Math.min(q.length,9),N=0;N>>22,x=_}x>>>=22,q.words[N-10]=x,x===0&&q.length>10?q.length-=10:q.length-=9},R.prototype.imulK=function(q){q.words[q.length]=0,q.words[q.length+1]=0,q.length+=2;for(var j=0,k=0;k>>=26,q.words[k]=N,j=g}return j!==0&&(q.words[q.length++]=j),q},V._prime=function(q){if(C[q])return C[q];var j;if(q==="k256")j=new R;else if(q==="p224")j=new P;else if(q==="p192")j=new z;else if(q==="p25519")j=new M;else throw new Error("Unknown prime "+q);return C[q]=j,j};function S(q){if(typeof q=="string"){var j=V._prime(q);this.m=j.p,this.prime=j}else Z(q.gtn(1),"modulus must be greater than 1"),this.m=q,this.prime=null}S.prototype._verify1=function(q){Z(q.negative===0,"red works only with positives"),Z(q.red,"red works only with red numbers")},S.prototype._verify2=function(q,j){Z((q.negative|j.negative)===0,"red works only with positives"),Z(q.red&&q.red===j.red,"red works only with red numbers")},S.prototype.imod=function(q){return this.prime?this.prime.ireduce(q)._forceRed(this):q.umod(this.m)._forceRed(this)},S.prototype.neg=function(q){return q.isZero()?q.clone():this.m.sub(q)._forceRed(this)},S.prototype.add=function(q,j){this._verify2(q,j);var k=q.add(j);return k.cmp(this.m)>=0&&k.isub(this.m),k._forceRed(this)},S.prototype.iadd=function(q,j){this._verify2(q,j);var k=q.iadd(j);return k.cmp(this.m)>=0&&k.isub(this.m),k},S.prototype.sub=function(q,j){this._verify2(q,j);var k=q.sub(j);return k.cmpn(0)<0&&k.iadd(this.m),k._forceRed(this)},S.prototype.isub=function(q,j){this._verify2(q,j);var k=q.isub(j);return k.cmpn(0)<0&&k.iadd(this.m),k},S.prototype.shl=function(q,j){return this._verify1(q),this.imod(q.ushln(j))},S.prototype.imul=function(q,j){return this._verify2(q,j),this.imod(q.imul(j))},S.prototype.mul=function(q,j){return this._verify2(q,j),this.imod(q.mul(j))},S.prototype.isqr=function(q){return this.imul(q,q.clone())},S.prototype.sqr=function(q){return this.mul(q,q)},S.prototype.sqrt=function(q){if(q.isZero())return q.clone();var j=this.m.andln(3);if(Z(j%2===1),j===3){var k=this.m.add(new V(1)).iushrn(2);return this.pow(q,k)}for(var g=this.m.subn(1),N=0;!g.isZero()&&g.andln(1)===0;)N++,g.iushrn(1);Z(!g.isZero());var x=new V(1).toRed(this),_=x.redNeg(),B=this.m.subn(1).iushrn(1),y=this.m.bitLength();for(y=new V(2*y*y).toRed(this);this.pow(y,B).cmp(_)!==0;)y.redIAdd(_);for(var w=this.pow(y,g),f=this.pow(q,g.addn(1).iushrn(1)),p=this.pow(q,g),c=N;p.cmp(x)!==0;){for(var h=p,d=0;h.cmp(x)!==0;d++)h=h.redSqr();Z(d=0;N--){for(var w=j.words[N],f=y-1;f>=0;f--){var p=w>>f&1;if(x!==g[0]&&(x=this.sqr(x)),p===0&&_===0){B=0;continue}_<<=1,_|=p,B++,!(B!==k&&(N!==0||f!==0))&&(x=this.mul(x,g[_]),B=0,_=0)}y=26}return x},S.prototype.convertTo=function(q){var j=q.umod(this.m);return j===q?j.clone():j},S.prototype.convertFrom=function(q){var j=q.clone();return j.red=null,j},V.mont=function(q){return new v(q)};function v(q){S.call(this,q),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new V(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}G(v,S),v.prototype.convertTo=function(q){return this.imod(q.ushln(this.shift))},v.prototype.convertFrom=function(q){var j=this.imod(q.mul(this.rinv));return j.red=null,j},v.prototype.imul=function(q,j){if(q.isZero()||j.isZero())return q.words[0]=0,q.length=1,q;var k=q.imul(j),g=k.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=k.isub(g).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},v.prototype.mul=function(q,j){if(q.isZero()||j.isZero())return new V(0)._forceRed(this);var k=q.mul(j),g=k.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=k.isub(g).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},v.prototype.invm=function(q){var j=this.imod(q._invmp(this.m).mul(this.r2));return j._forceRed(this)}})(typeof $>"u"||$,bZ)}}),cY=P$({"node_modules/create-ecdh/browser.js"(bZ,$){var Q=AY(),Y=pY();$.exports=function(U){return new G(U)};var Z={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};Z.p224=Z.secp224r1,Z.p256=Z.secp256r1=Z.prime256v1,Z.p192=Z.secp192r1=Z.prime192v1,Z.p384=Z.secp384r1,Z.p521=Z.secp521r1;function G(U){this.curveType=Z[U],this.curveType||(this.curveType={name:U}),this.curve=new Q.ec(this.curveType.name),this.keys=void 0}G.prototype.generateKeys=function(U,X){return this.keys=this.curve.genKeyPair(),this.getPublicKey(U,X)},G.prototype.computeSecret=function(U,X,K){X=X||"utf8",Buffer.isBuffer(U)||(U=new Buffer(U,X));var I=this.curve.keyFromPublic(U).getPublic(),J=I.mul(this.keys.getPrivate()).getX();return V(J,K,this.curveType.byteLength)},G.prototype.getPublicKey=function(U,X){var K=this.keys.getPublic(X==="compressed",!0);return X==="hybrid"&&(K[K.length-1]%2?K[0]=7:K[0]=6),V(K,U)},G.prototype.getPrivateKey=function(U){return V(this.keys.getPrivate(),U)},G.prototype.setPublicKey=function(U,X){return X=X||"utf8",Buffer.isBuffer(U)||(U=new Buffer(U,X)),this.keys._importPublic(U),this},G.prototype.setPrivateKey=function(U,X){X=X||"utf8",Buffer.isBuffer(U)||(U=new Buffer(U,X));var K=new Y(U);return K=K.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(K),this};function V(U,X,K){Array.isArray(U)||(U=U.toArray());var I=new Buffer(U);if(K&&I.length0?q:j},V.min=function(q,j){return q.cmp(j)<0?q:j},V.prototype._init=function(q,j,k){if(typeof q=="number")return this._initNumber(q,j,k);if(typeof q=="object")return this._initArray(q,j,k);j==="hex"&&(j=16),Z(j===(j|0)&&j>=2&&j<=36),q=q.toString().replace(/\s+/g,"");var g=0;q[0]==="-"&&(g++,this.negative=1),g=0;g-=3)x=q[g]|q[g-1]<<8|q[g-2]<<16,this.words[N]|=x<<_&67108863,this.words[N+1]=x>>>26-_&67108863,_+=24,_>=26&&(_-=26,N++);else if(k==="le")for(g=0,N=0;g>>26-_&67108863,_+=24,_>=26&&(_-=26,N++);return this.strip()};function X(q,j){var k=q.charCodeAt(j);return k>=65&&k<=70?k-55:k>=97&&k<=102?k-87:k-48&15}function K(q,j,k){var g=X(q,k);return k-1>=j&&(g|=X(q,k-1)<<4),g}V.prototype._parseHex=function(q,j,k){this.length=Math.ceil((q.length-j)/6),this.words=new Array(this.length);for(var g=0;g=j;g-=2)_=K(q,j,g)<=18?(N-=18,x+=1,this.words[x]|=_>>>26):N+=8;else{var B=q.length-j;for(g=B%2===0?j+1:j;g=18?(N-=18,x+=1,this.words[x]|=_>>>26):N+=8}this.strip()};function I(q,j,k,g){for(var N=0,x=Math.min(q.length,k),_=j;_=49?N+=B-49+10:B>=17?N+=B-17+10:N+=B}return N}V.prototype._parseBase=function(q,j,k){this.words=[0],this.length=1;for(var g=0,N=1;N<=67108863;N*=j)g++;g--,N=N/j|0;for(var x=q.length-k,_=x%g,B=Math.min(x,x-_)+k,y=0,w=k;w1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},V.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},V.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],O=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],F=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];V.prototype.toString=function(q,j){q=q||10,j=j|0||1;var k;if(q===16||q==="hex"){k="";for(var g=0,N=0,x=0;x>>24-g&16777215,N!==0||x!==this.length-1?k=J[6-B.length]+B+k:k=B+k,g+=2,g>=26&&(g-=26,x--)}for(N!==0&&(k=N.toString(16)+k);k.length%j!==0;)k="0"+k;return this.negative!==0&&(k="-"+k),k}if(q===(q|0)&&q>=2&&q<=36){var y=O[q],w=F[q];k="";var f=this.clone();for(f.negative=0;!f.isZero();){var p=f.modn(w).toString(q);f=f.idivn(w),f.isZero()?k=p+k:k=J[y-p.length]+p+k}for(this.isZero()&&(k="0"+k);k.length%j!==0;)k="0"+k;return this.negative!==0&&(k="-"+k),k}Z(!1,"Base should be between 2 and 36")},V.prototype.toNumber=function(){var q=this.words[0];return this.length===2?q+=this.words[1]*67108864:this.length===3&&this.words[2]===1?q+=4503599627370496+this.words[1]*67108864:this.length>2&&Z(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-q:q},V.prototype.toJSON=function(){return this.toString(16)},V.prototype.toBuffer=function(q,j){return Z(typeof U<"u"),this.toArrayLike(U,q,j)},V.prototype.toArray=function(q,j){return this.toArrayLike(Array,q,j)},V.prototype.toArrayLike=function(q,j,k){var g=this.byteLength(),N=k||Math.max(1,g);Z(g<=N,"byte array longer than desired length"),Z(N>0,"Requested array length <= 0"),this.strip();var x=j==="le",_=new q(N),B,y,w=this.clone();if(x){for(y=0;!w.isZero();y++)B=w.andln(255),w.iushrn(8),_[y]=B;for(;y=4096&&(k+=13,j>>>=13),j>=64&&(k+=7,j>>>=7),j>=8&&(k+=4,j>>>=4),j>=2&&(k+=2,j>>>=2),k+j},V.prototype._zeroBits=function(q){if(q===0)return 26;var j=q,k=0;return(j&8191)===0&&(k+=13,j>>>=13),(j&127)===0&&(k+=7,j>>>=7),(j&15)===0&&(k+=4,j>>>=4),(j&3)===0&&(k+=2,j>>>=2),(j&1)===0&&k++,k},V.prototype.bitLength=function(){var q=this.words[this.length-1],j=this._countBits(q);return(this.length-1)*26+j};function A(q){for(var j=new Array(q.bitLength()),k=0;k>>N}return j}V.prototype.zeroBits=function(){if(this.isZero())return 0;for(var q=0,j=0;jq.length?this.clone().ior(q):q.clone().ior(this)},V.prototype.uor=function(q){return this.length>q.length?this.clone().iuor(q):q.clone().iuor(this)},V.prototype.iuand=function(q){var j;this.length>q.length?j=q:j=this;for(var k=0;kq.length?this.clone().iand(q):q.clone().iand(this)},V.prototype.uand=function(q){return this.length>q.length?this.clone().iuand(q):q.clone().iuand(this)},V.prototype.iuxor=function(q){var j,k;this.length>q.length?(j=this,k=q):(j=q,k=this);for(var g=0;gq.length?this.clone().ixor(q):q.clone().ixor(this)},V.prototype.uxor=function(q){return this.length>q.length?this.clone().iuxor(q):q.clone().iuxor(this)},V.prototype.inotn=function(q){Z(typeof q=="number"&&q>=0);var j=Math.ceil(q/26)|0,k=q%26;this._expand(j),k>0&&j--;for(var g=0;g0&&(this.words[g]=~this.words[g]&67108863>>26-k),this.strip()},V.prototype.notn=function(q){return this.clone().inotn(q)},V.prototype.setn=function(q,j){Z(typeof q=="number"&&q>=0);var k=q/26|0,g=q%26;return this._expand(k+1),j?this.words[k]=this.words[k]|1<q.length?(k=this,g=q):(k=q,g=this);for(var N=0,x=0;x>>26;for(;N!==0&&x>>26;if(this.length=k.length,N!==0)this.words[this.length]=N,this.length++;else if(k!==this)for(;xq.length?this.clone().iadd(q):q.clone().iadd(this)},V.prototype.isub=function(q){if(q.negative!==0){q.negative=0;var j=this.iadd(q);return q.negative=1,j._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(q),this.negative=1,this._normSign();var k=this.cmp(q);if(k===0)return this.negative=0,this.length=1,this.words[0]=0,this;var g,N;k>0?(g=this,N=q):(g=q,N=this);for(var x=0,_=0;_>26,this.words[_]=j&67108863;for(;x!==0&&_>26,this.words[_]=j&67108863;if(x===0&&_>>26,p=y&67108863,c=Math.min(w,j.length-1),h=Math.max(0,w-q.length+1);h<=c;h++){var d=w-h|0;N=q.words[d]|0,x=j.words[h]|0,_=N*x+p,f+=_/67108864|0,p=_&67108863}k.words[w]=p|0,y=f|0}return y!==0?k.words[w]=y|0:k.length--,k.strip()}var H=function(q,j,k){var g=q.words,N=j.words,x=k.words,_=0,B,y,w,f=g[0]|0,p=f&8191,c=f>>>13,h=g[1]|0,d=h&8191,b=h>>>13,l=g[2]|0,o=l&8191,u=l>>>13,n=g[3]|0,s=n&8191,t=n>>>13,m=g[4]|0,a=m&8191,r=m>>>13,e=g[5]|0,i=e&8191,$0=e>>>13,Q0=g[6]|0,Y0=Q0&8191,Z0=Q0>>>13,G0=g[7]|0,V0=G0&8191,U0=G0>>>13,X0=g[8]|0,K0=X0&8191,I0=X0>>>13,J0=g[9]|0,O0=J0&8191,F0=J0>>>13,A0=N[0]|0,W0=A0&8191,H0=A0>>>13,E0=N[1]|0,T0=E0&8191,D0=E0>>>13,C0=N[2]|0,L0=C0&8191,R0=C0>>>13,P0=N[3]|0,z0=P0&8191,M0=P0>>>13,S0=N[4]|0,v0=S0&8191,q0=S0>>>13,j0=N[5]|0,k0=j0&8191,g0=j0>>>13,N0=N[6]|0,x0=N0&8191,_0=N0>>>13,B0=N[7]|0,y0=B0&8191,w0=B0>>>13,f0=N[8]|0,p0=f0&8191,c0=f0>>>13,h0=N[9]|0,d0=h0&8191,b0=h0>>>13;k.negative=q.negative^j.negative,k.length=19,B=Math.imul(p,W0),y=Math.imul(p,H0),y=y+Math.imul(c,W0)|0,w=Math.imul(c,H0);var l0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(l0>>>26)|0,l0&=67108863,B=Math.imul(d,W0),y=Math.imul(d,H0),y=y+Math.imul(b,W0)|0,w=Math.imul(b,H0),B=B+Math.imul(p,T0)|0,y=y+Math.imul(p,D0)|0,y=y+Math.imul(c,T0)|0,w=w+Math.imul(c,D0)|0;var o0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(o0>>>26)|0,o0&=67108863,B=Math.imul(o,W0),y=Math.imul(o,H0),y=y+Math.imul(u,W0)|0,w=Math.imul(u,H0),B=B+Math.imul(d,T0)|0,y=y+Math.imul(d,D0)|0,y=y+Math.imul(b,T0)|0,w=w+Math.imul(b,D0)|0,B=B+Math.imul(p,L0)|0,y=y+Math.imul(p,R0)|0,y=y+Math.imul(c,L0)|0,w=w+Math.imul(c,R0)|0;var u0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(u0>>>26)|0,u0&=67108863,B=Math.imul(s,W0),y=Math.imul(s,H0),y=y+Math.imul(t,W0)|0,w=Math.imul(t,H0),B=B+Math.imul(o,T0)|0,y=y+Math.imul(o,D0)|0,y=y+Math.imul(u,T0)|0,w=w+Math.imul(u,D0)|0,B=B+Math.imul(d,L0)|0,y=y+Math.imul(d,R0)|0,y=y+Math.imul(b,L0)|0,w=w+Math.imul(b,R0)|0,B=B+Math.imul(p,z0)|0,y=y+Math.imul(p,M0)|0,y=y+Math.imul(c,z0)|0,w=w+Math.imul(c,M0)|0;var n0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(n0>>>26)|0,n0&=67108863,B=Math.imul(a,W0),y=Math.imul(a,H0),y=y+Math.imul(r,W0)|0,w=Math.imul(r,H0),B=B+Math.imul(s,T0)|0,y=y+Math.imul(s,D0)|0,y=y+Math.imul(t,T0)|0,w=w+Math.imul(t,D0)|0,B=B+Math.imul(o,L0)|0,y=y+Math.imul(o,R0)|0,y=y+Math.imul(u,L0)|0,w=w+Math.imul(u,R0)|0,B=B+Math.imul(d,z0)|0,y=y+Math.imul(d,M0)|0,y=y+Math.imul(b,z0)|0,w=w+Math.imul(b,M0)|0,B=B+Math.imul(p,v0)|0,y=y+Math.imul(p,q0)|0,y=y+Math.imul(c,v0)|0,w=w+Math.imul(c,q0)|0;var s0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(s0>>>26)|0,s0&=67108863,B=Math.imul(i,W0),y=Math.imul(i,H0),y=y+Math.imul($0,W0)|0,w=Math.imul($0,H0),B=B+Math.imul(a,T0)|0,y=y+Math.imul(a,D0)|0,y=y+Math.imul(r,T0)|0,w=w+Math.imul(r,D0)|0,B=B+Math.imul(s,L0)|0,y=y+Math.imul(s,R0)|0,y=y+Math.imul(t,L0)|0,w=w+Math.imul(t,R0)|0,B=B+Math.imul(o,z0)|0,y=y+Math.imul(o,M0)|0,y=y+Math.imul(u,z0)|0,w=w+Math.imul(u,M0)|0,B=B+Math.imul(d,v0)|0,y=y+Math.imul(d,q0)|0,y=y+Math.imul(b,v0)|0,w=w+Math.imul(b,q0)|0,B=B+Math.imul(p,k0)|0,y=y+Math.imul(p,g0)|0,y=y+Math.imul(c,k0)|0,w=w+Math.imul(c,g0)|0;var t0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(t0>>>26)|0,t0&=67108863,B=Math.imul(Y0,W0),y=Math.imul(Y0,H0),y=y+Math.imul(Z0,W0)|0,w=Math.imul(Z0,H0),B=B+Math.imul(i,T0)|0,y=y+Math.imul(i,D0)|0,y=y+Math.imul($0,T0)|0,w=w+Math.imul($0,D0)|0,B=B+Math.imul(a,L0)|0,y=y+Math.imul(a,R0)|0,y=y+Math.imul(r,L0)|0,w=w+Math.imul(r,R0)|0,B=B+Math.imul(s,z0)|0,y=y+Math.imul(s,M0)|0,y=y+Math.imul(t,z0)|0,w=w+Math.imul(t,M0)|0,B=B+Math.imul(o,v0)|0,y=y+Math.imul(o,q0)|0,y=y+Math.imul(u,v0)|0,w=w+Math.imul(u,q0)|0,B=B+Math.imul(d,k0)|0,y=y+Math.imul(d,g0)|0,y=y+Math.imul(b,k0)|0,w=w+Math.imul(b,g0)|0,B=B+Math.imul(p,x0)|0,y=y+Math.imul(p,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,_0)|0;var m0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(m0>>>26)|0,m0&=67108863,B=Math.imul(V0,W0),y=Math.imul(V0,H0),y=y+Math.imul(U0,W0)|0,w=Math.imul(U0,H0),B=B+Math.imul(Y0,T0)|0,y=y+Math.imul(Y0,D0)|0,y=y+Math.imul(Z0,T0)|0,w=w+Math.imul(Z0,D0)|0,B=B+Math.imul(i,L0)|0,y=y+Math.imul(i,R0)|0,y=y+Math.imul($0,L0)|0,w=w+Math.imul($0,R0)|0,B=B+Math.imul(a,z0)|0,y=y+Math.imul(a,M0)|0,y=y+Math.imul(r,z0)|0,w=w+Math.imul(r,M0)|0,B=B+Math.imul(s,v0)|0,y=y+Math.imul(s,q0)|0,y=y+Math.imul(t,v0)|0,w=w+Math.imul(t,q0)|0,B=B+Math.imul(o,k0)|0,y=y+Math.imul(o,g0)|0,y=y+Math.imul(u,k0)|0,w=w+Math.imul(u,g0)|0,B=B+Math.imul(d,x0)|0,y=y+Math.imul(d,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,_0)|0,B=B+Math.imul(p,y0)|0,y=y+Math.imul(p,w0)|0,y=y+Math.imul(c,y0)|0,w=w+Math.imul(c,w0)|0;var a0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(a0>>>26)|0,a0&=67108863,B=Math.imul(K0,W0),y=Math.imul(K0,H0),y=y+Math.imul(I0,W0)|0,w=Math.imul(I0,H0),B=B+Math.imul(V0,T0)|0,y=y+Math.imul(V0,D0)|0,y=y+Math.imul(U0,T0)|0,w=w+Math.imul(U0,D0)|0,B=B+Math.imul(Y0,L0)|0,y=y+Math.imul(Y0,R0)|0,y=y+Math.imul(Z0,L0)|0,w=w+Math.imul(Z0,R0)|0,B=B+Math.imul(i,z0)|0,y=y+Math.imul(i,M0)|0,y=y+Math.imul($0,z0)|0,w=w+Math.imul($0,M0)|0,B=B+Math.imul(a,v0)|0,y=y+Math.imul(a,q0)|0,y=y+Math.imul(r,v0)|0,w=w+Math.imul(r,q0)|0,B=B+Math.imul(s,k0)|0,y=y+Math.imul(s,g0)|0,y=y+Math.imul(t,k0)|0,w=w+Math.imul(t,g0)|0,B=B+Math.imul(o,x0)|0,y=y+Math.imul(o,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,_0)|0,B=B+Math.imul(d,y0)|0,y=y+Math.imul(d,w0)|0,y=y+Math.imul(b,y0)|0,w=w+Math.imul(b,w0)|0,B=B+Math.imul(p,p0)|0,y=y+Math.imul(p,c0)|0,y=y+Math.imul(c,p0)|0,w=w+Math.imul(c,c0)|0;var r0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(r0>>>26)|0,r0&=67108863,B=Math.imul(O0,W0),y=Math.imul(O0,H0),y=y+Math.imul(F0,W0)|0,w=Math.imul(F0,H0),B=B+Math.imul(K0,T0)|0,y=y+Math.imul(K0,D0)|0,y=y+Math.imul(I0,T0)|0,w=w+Math.imul(I0,D0)|0,B=B+Math.imul(V0,L0)|0,y=y+Math.imul(V0,R0)|0,y=y+Math.imul(U0,L0)|0,w=w+Math.imul(U0,R0)|0,B=B+Math.imul(Y0,z0)|0,y=y+Math.imul(Y0,M0)|0,y=y+Math.imul(Z0,z0)|0,w=w+Math.imul(Z0,M0)|0,B=B+Math.imul(i,v0)|0,y=y+Math.imul(i,q0)|0,y=y+Math.imul($0,v0)|0,w=w+Math.imul($0,q0)|0,B=B+Math.imul(a,k0)|0,y=y+Math.imul(a,g0)|0,y=y+Math.imul(r,k0)|0,w=w+Math.imul(r,g0)|0,B=B+Math.imul(s,x0)|0,y=y+Math.imul(s,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,_0)|0,B=B+Math.imul(o,y0)|0,y=y+Math.imul(o,w0)|0,y=y+Math.imul(u,y0)|0,w=w+Math.imul(u,w0)|0,B=B+Math.imul(d,p0)|0,y=y+Math.imul(d,c0)|0,y=y+Math.imul(b,p0)|0,w=w+Math.imul(b,c0)|0,B=B+Math.imul(p,d0)|0,y=y+Math.imul(p,b0)|0,y=y+Math.imul(c,d0)|0,w=w+Math.imul(c,b0)|0;var e0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(e0>>>26)|0,e0&=67108863,B=Math.imul(O0,T0),y=Math.imul(O0,D0),y=y+Math.imul(F0,T0)|0,w=Math.imul(F0,D0),B=B+Math.imul(K0,L0)|0,y=y+Math.imul(K0,R0)|0,y=y+Math.imul(I0,L0)|0,w=w+Math.imul(I0,R0)|0,B=B+Math.imul(V0,z0)|0,y=y+Math.imul(V0,M0)|0,y=y+Math.imul(U0,z0)|0,w=w+Math.imul(U0,M0)|0,B=B+Math.imul(Y0,v0)|0,y=y+Math.imul(Y0,q0)|0,y=y+Math.imul(Z0,v0)|0,w=w+Math.imul(Z0,q0)|0,B=B+Math.imul(i,k0)|0,y=y+Math.imul(i,g0)|0,y=y+Math.imul($0,k0)|0,w=w+Math.imul($0,g0)|0,B=B+Math.imul(a,x0)|0,y=y+Math.imul(a,_0)|0,y=y+Math.imul(r,x0)|0,w=w+Math.imul(r,_0)|0,B=B+Math.imul(s,y0)|0,y=y+Math.imul(s,w0)|0,y=y+Math.imul(t,y0)|0,w=w+Math.imul(t,w0)|0,B=B+Math.imul(o,p0)|0,y=y+Math.imul(o,c0)|0,y=y+Math.imul(u,p0)|0,w=w+Math.imul(u,c0)|0,B=B+Math.imul(d,d0)|0,y=y+Math.imul(d,b0)|0,y=y+Math.imul(b,d0)|0,w=w+Math.imul(b,b0)|0;var i0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(i0>>>26)|0,i0&=67108863,B=Math.imul(O0,L0),y=Math.imul(O0,R0),y=y+Math.imul(F0,L0)|0,w=Math.imul(F0,R0),B=B+Math.imul(K0,z0)|0,y=y+Math.imul(K0,M0)|0,y=y+Math.imul(I0,z0)|0,w=w+Math.imul(I0,M0)|0,B=B+Math.imul(V0,v0)|0,y=y+Math.imul(V0,q0)|0,y=y+Math.imul(U0,v0)|0,w=w+Math.imul(U0,q0)|0,B=B+Math.imul(Y0,k0)|0,y=y+Math.imul(Y0,g0)|0,y=y+Math.imul(Z0,k0)|0,w=w+Math.imul(Z0,g0)|0,B=B+Math.imul(i,x0)|0,y=y+Math.imul(i,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,_0)|0,B=B+Math.imul(a,y0)|0,y=y+Math.imul(a,w0)|0,y=y+Math.imul(r,y0)|0,w=w+Math.imul(r,w0)|0,B=B+Math.imul(s,p0)|0,y=y+Math.imul(s,c0)|0,y=y+Math.imul(t,p0)|0,w=w+Math.imul(t,c0)|0,B=B+Math.imul(o,d0)|0,y=y+Math.imul(o,b0)|0,y=y+Math.imul(u,d0)|0,w=w+Math.imul(u,b0)|0;var $$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+($$>>>26)|0,$$&=67108863,B=Math.imul(O0,z0),y=Math.imul(O0,M0),y=y+Math.imul(F0,z0)|0,w=Math.imul(F0,M0),B=B+Math.imul(K0,v0)|0,y=y+Math.imul(K0,q0)|0,y=y+Math.imul(I0,v0)|0,w=w+Math.imul(I0,q0)|0,B=B+Math.imul(V0,k0)|0,y=y+Math.imul(V0,g0)|0,y=y+Math.imul(U0,k0)|0,w=w+Math.imul(U0,g0)|0,B=B+Math.imul(Y0,x0)|0,y=y+Math.imul(Y0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,_0)|0,B=B+Math.imul(i,y0)|0,y=y+Math.imul(i,w0)|0,y=y+Math.imul($0,y0)|0,w=w+Math.imul($0,w0)|0,B=B+Math.imul(a,p0)|0,y=y+Math.imul(a,c0)|0,y=y+Math.imul(r,p0)|0,w=w+Math.imul(r,c0)|0,B=B+Math.imul(s,d0)|0,y=y+Math.imul(s,b0)|0,y=y+Math.imul(t,d0)|0,w=w+Math.imul(t,b0)|0;var Q$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,B=Math.imul(O0,v0),y=Math.imul(O0,q0),y=y+Math.imul(F0,v0)|0,w=Math.imul(F0,q0),B=B+Math.imul(K0,k0)|0,y=y+Math.imul(K0,g0)|0,y=y+Math.imul(I0,k0)|0,w=w+Math.imul(I0,g0)|0,B=B+Math.imul(V0,x0)|0,y=y+Math.imul(V0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,_0)|0,B=B+Math.imul(Y0,y0)|0,y=y+Math.imul(Y0,w0)|0,y=y+Math.imul(Z0,y0)|0,w=w+Math.imul(Z0,w0)|0,B=B+Math.imul(i,p0)|0,y=y+Math.imul(i,c0)|0,y=y+Math.imul($0,p0)|0,w=w+Math.imul($0,c0)|0,B=B+Math.imul(a,d0)|0,y=y+Math.imul(a,b0)|0,y=y+Math.imul(r,d0)|0,w=w+Math.imul(r,b0)|0;var Y$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,B=Math.imul(O0,k0),y=Math.imul(O0,g0),y=y+Math.imul(F0,k0)|0,w=Math.imul(F0,g0),B=B+Math.imul(K0,x0)|0,y=y+Math.imul(K0,_0)|0,y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,_0)|0,B=B+Math.imul(V0,y0)|0,y=y+Math.imul(V0,w0)|0,y=y+Math.imul(U0,y0)|0,w=w+Math.imul(U0,w0)|0,B=B+Math.imul(Y0,p0)|0,y=y+Math.imul(Y0,c0)|0,y=y+Math.imul(Z0,p0)|0,w=w+Math.imul(Z0,c0)|0,B=B+Math.imul(i,d0)|0,y=y+Math.imul(i,b0)|0,y=y+Math.imul($0,d0)|0,w=w+Math.imul($0,b0)|0;var Z$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,B=Math.imul(O0,x0),y=Math.imul(O0,_0),y=y+Math.imul(F0,x0)|0,w=Math.imul(F0,_0),B=B+Math.imul(K0,y0)|0,y=y+Math.imul(K0,w0)|0,y=y+Math.imul(I0,y0)|0,w=w+Math.imul(I0,w0)|0,B=B+Math.imul(V0,p0)|0,y=y+Math.imul(V0,c0)|0,y=y+Math.imul(U0,p0)|0,w=w+Math.imul(U0,c0)|0,B=B+Math.imul(Y0,d0)|0,y=y+Math.imul(Y0,b0)|0,y=y+Math.imul(Z0,d0)|0,w=w+Math.imul(Z0,b0)|0;var G$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(G$>>>26)|0,G$&=67108863,B=Math.imul(O0,y0),y=Math.imul(O0,w0),y=y+Math.imul(F0,y0)|0,w=Math.imul(F0,w0),B=B+Math.imul(K0,p0)|0,y=y+Math.imul(K0,c0)|0,y=y+Math.imul(I0,p0)|0,w=w+Math.imul(I0,c0)|0,B=B+Math.imul(V0,d0)|0,y=y+Math.imul(V0,b0)|0,y=y+Math.imul(U0,d0)|0,w=w+Math.imul(U0,b0)|0;var V$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(V$>>>26)|0,V$&=67108863,B=Math.imul(O0,p0),y=Math.imul(O0,c0),y=y+Math.imul(F0,p0)|0,w=Math.imul(F0,c0),B=B+Math.imul(K0,d0)|0,y=y+Math.imul(K0,b0)|0,y=y+Math.imul(I0,d0)|0,w=w+Math.imul(I0,b0)|0;var U$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(U$>>>26)|0,U$&=67108863,B=Math.imul(O0,d0),y=Math.imul(O0,b0),y=y+Math.imul(F0,d0)|0,w=Math.imul(F0,b0);var X$=(_+B|0)+((y&8191)<<13)|0;return _=(w+(y>>>13)|0)+(X$>>>26)|0,X$&=67108863,x[0]=l0,x[1]=o0,x[2]=u0,x[3]=n0,x[4]=s0,x[5]=t0,x[6]=m0,x[7]=a0,x[8]=r0,x[9]=e0,x[10]=i0,x[11]=$$,x[12]=Q$,x[13]=Y$,x[14]=Z$,x[15]=G$,x[16]=V$,x[17]=U$,x[18]=X$,_!==0&&(x[19]=_,k.length++),k};Math.imul||(H=W);function E(q,j,k){k.negative=j.negative^q.negative,k.length=q.length+j.length;for(var g=0,N=0,x=0;x>>26)|0,N+=_>>>26,_&=67108863}k.words[x]=B,g=_,_=N}return g!==0?k.words[x]=g:k.length--,k.strip()}function T(q,j,k){var g=new D;return g.mulp(q,j,k)}V.prototype.mulTo=function(q,j){var k,g=this.length+q.length;return this.length===10&&q.length===10?k=H(this,q,j):g<63?k=W(this,q,j):g<1024?k=E(this,q,j):k=T(this,q,j),k};function D(q,j){this.x=q,this.y=j}D.prototype.makeRBT=function(q){for(var j=new Array(q),k=V.prototype._countBits(q)-1,g=0;g>=1;return g},D.prototype.permute=function(q,j,k,g,N,x){for(var _=0;_>>1)N++;return 1<>>13,k[2*x+1]=N&8191,N=N>>>13;for(x=2*j;x>=26,j+=g/67108864|0,j+=N>>>26,this.words[k]=N&67108863}return j!==0&&(this.words[k]=j,this.length++),this},V.prototype.muln=function(q){return this.clone().imuln(q)},V.prototype.sqr=function(){return this.mul(this)},V.prototype.isqr=function(){return this.imul(this.clone())},V.prototype.pow=function(q){var j=A(q);if(j.length===0)return new V(1);for(var k=this,g=0;g=0);var j=q%26,k=(q-j)/26,g=67108863>>>26-j<<26-j,N;if(j!==0){var x=0;for(N=0;N>>26-j}x&&(this.words[N]=x,this.length++)}if(k!==0){for(N=this.length-1;N>=0;N--)this.words[N+k]=this.words[N];for(N=0;N=0);var g;j?g=(j-j%26)/26:g=0;var N=q%26,x=Math.min((q-N)/26,this.length),_=67108863^67108863>>>N<x)for(this.length-=x,y=0;y=0&&(w!==0||y>=g);y--){var f=this.words[y]|0;this.words[y]=w<<26-N|f>>>N,w=f&_}return B&&w!==0&&(B.words[B.length++]=w),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},V.prototype.ishrn=function(q,j,k){return Z(this.negative===0),this.iushrn(q,j,k)},V.prototype.shln=function(q){return this.clone().ishln(q)},V.prototype.ushln=function(q){return this.clone().iushln(q)},V.prototype.shrn=function(q){return this.clone().ishrn(q)},V.prototype.ushrn=function(q){return this.clone().iushrn(q)},V.prototype.testn=function(q){Z(typeof q=="number"&&q>=0);var j=q%26,k=(q-j)/26,g=1<=0);var j=q%26,k=(q-j)/26;if(Z(this.negative===0,"imaskn works only with positive numbers"),this.length<=k)return this;if(j!==0&&k++,this.length=Math.min(k,this.length),j!==0){var g=67108863^67108863>>>j<=67108864;j++)this.words[j]-=67108864,j===this.length-1?this.words[j+1]=1:this.words[j+1]++;return this.length=Math.max(this.length,j+1),this},V.prototype.isubn=function(q){if(Z(typeof q=="number"),Z(q<67108864),q<0)return this.iaddn(-q);if(this.negative!==0)return this.negative=0,this.iaddn(q),this.negative=1,this;if(this.words[0]-=q,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var j=0;j>26)-(B/67108864|0),this.words[N+k]=x&67108863}for(;N>26,this.words[N+k]=x&67108863;if(_===0)return this.strip();for(Z(_===-1),_=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},V.prototype._wordDiv=function(q,j){var k=this.length-q.length,g=this.clone(),N=q,x=N.words[N.length-1]|0,_=this._countBits(x);k=26-_,k!==0&&(N=N.ushln(k),g.iushln(k),x=N.words[N.length-1]|0);var B=g.length-N.length,y;if(j!=="mod"){y=new V(null),y.length=B+1,y.words=new Array(y.length);for(var w=0;w=0;p--){var c=(g.words[N.length+p]|0)*67108864+(g.words[N.length+p-1]|0);for(c=Math.min(c/x|0,67108863),g._ishlnsubmul(N,c,p);g.negative!==0;)c--,g.negative=0,g._ishlnsubmul(N,1,p),g.isZero()||(g.negative^=1);y&&(y.words[p]=c)}return y&&y.strip(),g.strip(),j!=="div"&&k!==0&&g.iushrn(k),{div:y||null,mod:g}},V.prototype.divmod=function(q,j,k){if(Z(!q.isZero()),this.isZero())return{div:new V(0),mod:new V(0)};var g,N,x;return this.negative!==0&&q.negative===0?(x=this.neg().divmod(q,j),j!=="mod"&&(g=x.div.neg()),j!=="div"&&(N=x.mod.neg(),k&&N.negative!==0&&N.iadd(q)),{div:g,mod:N}):this.negative===0&&q.negative!==0?(x=this.divmod(q.neg(),j),j!=="mod"&&(g=x.div.neg()),{div:g,mod:x.mod}):(this.negative&q.negative)!==0?(x=this.neg().divmod(q.neg(),j),j!=="div"&&(N=x.mod.neg(),k&&N.negative!==0&&N.isub(q)),{div:x.div,mod:N}):q.length>this.length||this.cmp(q)<0?{div:new V(0),mod:this}:q.length===1?j==="div"?{div:this.divn(q.words[0]),mod:null}:j==="mod"?{div:null,mod:new V(this.modn(q.words[0]))}:{div:this.divn(q.words[0]),mod:new V(this.modn(q.words[0]))}:this._wordDiv(q,j)},V.prototype.div=function(q){return this.divmod(q,"div",!1).div},V.prototype.mod=function(q){return this.divmod(q,"mod",!1).mod},V.prototype.umod=function(q){return this.divmod(q,"mod",!0).mod},V.prototype.divRound=function(q){var j=this.divmod(q);if(j.mod.isZero())return j.div;var k=j.div.negative!==0?j.mod.isub(q):j.mod,g=q.ushrn(1),N=q.andln(1),x=k.cmp(g);return x<0||N===1&&x===0?j.div:j.div.negative!==0?j.div.isubn(1):j.div.iaddn(1)},V.prototype.modn=function(q){Z(q<=67108863);for(var j=(1<<26)%q,k=0,g=this.length-1;g>=0;g--)k=(j*k+(this.words[g]|0))%q;return k},V.prototype.idivn=function(q){Z(q<=67108863);for(var j=0,k=this.length-1;k>=0;k--){var g=(this.words[k]|0)+j*67108864;this.words[k]=g/q|0,j=g%q}return this.strip()},V.prototype.divn=function(q){return this.clone().idivn(q)},V.prototype.egcd=function(q){Z(q.negative===0),Z(!q.isZero());var j=this,k=q.clone();j.negative!==0?j=j.umod(q):j=j.clone();for(var g=new V(1),N=new V(0),x=new V(0),_=new V(1),B=0;j.isEven()&&k.isEven();)j.iushrn(1),k.iushrn(1),++B;for(var y=k.clone(),w=j.clone();!j.isZero();){for(var f=0,p=1;(j.words[0]&p)===0&&f<26;++f,p<<=1);if(f>0)for(j.iushrn(f);f-- >0;)(g.isOdd()||N.isOdd())&&(g.iadd(y),N.isub(w)),g.iushrn(1),N.iushrn(1);for(var c=0,h=1;(k.words[0]&h)===0&&c<26;++c,h<<=1);if(c>0)for(k.iushrn(c);c-- >0;)(x.isOdd()||_.isOdd())&&(x.iadd(y),_.isub(w)),x.iushrn(1),_.iushrn(1);j.cmp(k)>=0?(j.isub(k),g.isub(x),N.isub(_)):(k.isub(j),x.isub(g),_.isub(N))}return{a:x,b:_,gcd:k.iushln(B)}},V.prototype._invmp=function(q){Z(q.negative===0),Z(!q.isZero());var j=this,k=q.clone();j.negative!==0?j=j.umod(q):j=j.clone();for(var g=new V(1),N=new V(0),x=k.clone();j.cmpn(1)>0&&k.cmpn(1)>0;){for(var _=0,B=1;(j.words[0]&B)===0&&_<26;++_,B<<=1);if(_>0)for(j.iushrn(_);_-- >0;)g.isOdd()&&g.iadd(x),g.iushrn(1);for(var y=0,w=1;(k.words[0]&w)===0&&y<26;++y,w<<=1);if(y>0)for(k.iushrn(y);y-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);j.cmp(k)>=0?(j.isub(k),g.isub(N)):(k.isub(j),N.isub(g))}var f;return j.cmpn(1)===0?f=g:f=N,f.cmpn(0)<0&&f.iadd(q),f},V.prototype.gcd=function(q){if(this.isZero())return q.abs();if(q.isZero())return this.abs();var j=this.clone(),k=q.clone();j.negative=0,k.negative=0;for(var g=0;j.isEven()&&k.isEven();g++)j.iushrn(1),k.iushrn(1);do{for(;j.isEven();)j.iushrn(1);for(;k.isEven();)k.iushrn(1);var N=j.cmp(k);if(N<0){var x=j;j=k,k=x}else if(N===0||k.cmpn(1)===0)break;j.isub(k)}while(!0);return k.iushln(g)},V.prototype.invm=function(q){return this.egcd(q).a.umod(q)},V.prototype.isEven=function(){return(this.words[0]&1)===0},V.prototype.isOdd=function(){return(this.words[0]&1)===1},V.prototype.andln=function(q){return this.words[0]&q},V.prototype.bincn=function(q){Z(typeof q=="number");var j=q%26,k=(q-j)/26,g=1<>>26,_&=67108863,this.words[x]=_}return N!==0&&(this.words[x]=N,this.length++),this},V.prototype.isZero=function(){return this.length===1&&this.words[0]===0},V.prototype.cmpn=function(q){var j=q<0;if(this.negative!==0&&!j)return-1;if(this.negative===0&&j)return 1;this.strip();var k;if(this.length>1)k=1;else{j&&(q=-q),Z(q<=67108863,"Number is too big");var g=this.words[0]|0;k=g===q?0:gq.length)return 1;if(this.length=0;k--){var g=this.words[k]|0,N=q.words[k]|0;if(g!==N){gN&&(j=1);break}}return j},V.prototype.gtn=function(q){return this.cmpn(q)===1},V.prototype.gt=function(q){return this.cmp(q)===1},V.prototype.gten=function(q){return this.cmpn(q)>=0},V.prototype.gte=function(q){return this.cmp(q)>=0},V.prototype.ltn=function(q){return this.cmpn(q)===-1},V.prototype.lt=function(q){return this.cmp(q)===-1},V.prototype.lten=function(q){return this.cmpn(q)<=0},V.prototype.lte=function(q){return this.cmp(q)<=0},V.prototype.eqn=function(q){return this.cmpn(q)===0},V.prototype.eq=function(q){return this.cmp(q)===0},V.red=function(q){return new S(q)},V.prototype.toRed=function(q){return Z(!this.red,"Already a number in reduction context"),Z(this.negative===0,"red works only with positives"),q.convertTo(this)._forceRed(q)},V.prototype.fromRed=function(){return Z(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},V.prototype._forceRed=function(q){return this.red=q,this},V.prototype.forceRed=function(q){return Z(!this.red,"Already a number in reduction context"),this._forceRed(q)},V.prototype.redAdd=function(q){return Z(this.red,"redAdd works only with red numbers"),this.red.add(this,q)},V.prototype.redIAdd=function(q){return Z(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,q)},V.prototype.redSub=function(q){return Z(this.red,"redSub works only with red numbers"),this.red.sub(this,q)},V.prototype.redISub=function(q){return Z(this.red,"redISub works only with red numbers"),this.red.isub(this,q)},V.prototype.redShl=function(q){return Z(this.red,"redShl works only with red numbers"),this.red.shl(this,q)},V.prototype.redMul=function(q){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,q),this.red.mul(this,q)},V.prototype.redIMul=function(q){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,q),this.red.imul(this,q)},V.prototype.redSqr=function(){return Z(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},V.prototype.redISqr=function(){return Z(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},V.prototype.redSqrt=function(){return Z(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},V.prototype.redInvm=function(){return Z(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},V.prototype.redNeg=function(){return Z(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},V.prototype.redPow=function(q){return Z(this.red&&!q.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,q)};var C={k256:null,p224:null,p192:null,p25519:null};function L(q,j){this.name=q,this.p=new V(j,16),this.n=this.p.bitLength(),this.k=new V(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}L.prototype._tmp=function(){var q=new V(null);return q.words=new Array(Math.ceil(this.n/13)),q},L.prototype.ireduce=function(q){var j=q,k;do this.split(j,this.tmp),j=this.imulK(j),j=j.iadd(this.tmp),k=j.bitLength();while(k>this.n);var g=k0?j.isub(this.p):j.strip!==void 0?j.strip():j._strip(),j},L.prototype.split=function(q,j){q.iushrn(this.n,0,j)},L.prototype.imulK=function(q){return q.imul(this.k)};function R(){L.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}G(R,L),R.prototype.split=function(q,j){for(var k=4194303,g=Math.min(q.length,9),N=0;N>>22,x=_}x>>>=22,q.words[N-10]=x,x===0&&q.length>10?q.length-=10:q.length-=9},R.prototype.imulK=function(q){q.words[q.length]=0,q.words[q.length+1]=0,q.length+=2;for(var j=0,k=0;k>>=26,q.words[k]=N,j=g}return j!==0&&(q.words[q.length++]=j),q},V._prime=function(q){if(C[q])return C[q];var j;if(q==="k256")j=new R;else if(q==="p224")j=new P;else if(q==="p192")j=new z;else if(q==="p25519")j=new M;else throw new Error("Unknown prime "+q);return C[q]=j,j};function S(q){if(typeof q=="string"){var j=V._prime(q);this.m=j.p,this.prime=j}else Z(q.gtn(1),"modulus must be greater than 1"),this.m=q,this.prime=null}S.prototype._verify1=function(q){Z(q.negative===0,"red works only with positives"),Z(q.red,"red works only with red numbers")},S.prototype._verify2=function(q,j){Z((q.negative|j.negative)===0,"red works only with positives"),Z(q.red&&q.red===j.red,"red works only with red numbers")},S.prototype.imod=function(q){return this.prime?this.prime.ireduce(q)._forceRed(this):q.umod(this.m)._forceRed(this)},S.prototype.neg=function(q){return q.isZero()?q.clone():this.m.sub(q)._forceRed(this)},S.prototype.add=function(q,j){this._verify2(q,j);var k=q.add(j);return k.cmp(this.m)>=0&&k.isub(this.m),k._forceRed(this)},S.prototype.iadd=function(q,j){this._verify2(q,j);var k=q.iadd(j);return k.cmp(this.m)>=0&&k.isub(this.m),k},S.prototype.sub=function(q,j){this._verify2(q,j);var k=q.sub(j);return k.cmpn(0)<0&&k.iadd(this.m),k._forceRed(this)},S.prototype.isub=function(q,j){this._verify2(q,j);var k=q.isub(j);return k.cmpn(0)<0&&k.iadd(this.m),k},S.prototype.shl=function(q,j){return this._verify1(q),this.imod(q.ushln(j))},S.prototype.imul=function(q,j){return this._verify2(q,j),this.imod(q.imul(j))},S.prototype.mul=function(q,j){return this._verify2(q,j),this.imod(q.mul(j))},S.prototype.isqr=function(q){return this.imul(q,q.clone())},S.prototype.sqr=function(q){return this.mul(q,q)},S.prototype.sqrt=function(q){if(q.isZero())return q.clone();var j=this.m.andln(3);if(Z(j%2===1),j===3){var k=this.m.add(new V(1)).iushrn(2);return this.pow(q,k)}for(var g=this.m.subn(1),N=0;!g.isZero()&&g.andln(1)===0;)N++,g.iushrn(1);Z(!g.isZero());var x=new V(1).toRed(this),_=x.redNeg(),B=this.m.subn(1).iushrn(1),y=this.m.bitLength();for(y=new V(2*y*y).toRed(this);this.pow(y,B).cmp(_)!==0;)y.redIAdd(_);for(var w=this.pow(y,g),f=this.pow(q,g.addn(1).iushrn(1)),p=this.pow(q,g),c=N;p.cmp(x)!==0;){for(var h=p,d=0;h.cmp(x)!==0;d++)h=h.redSqr();Z(d=0;N--){for(var w=j.words[N],f=y-1;f>=0;f--){var p=w>>f&1;if(x!==g[0]&&(x=this.sqr(x)),p===0&&_===0){B=0;continue}_<<=1,_|=p,B++,!(B!==k&&(N!==0||f!==0))&&(x=this.mul(x,g[_]),B=0,_=0)}y=26}return x},S.prototype.convertTo=function(q){var j=q.umod(this.m);return j===q?j.clone():j},S.prototype.convertFrom=function(q){var j=q.clone();return j.red=null,j},V.mont=function(q){return new v(q)};function v(q){S.call(this,q),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new V(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}G(v,S),v.prototype.convertTo=function(q){return this.imod(q.ushln(this.shift))},v.prototype.convertFrom=function(q){var j=this.imod(q.mul(this.rinv));return j.red=null,j},v.prototype.imul=function(q,j){if(q.isZero()||j.isZero())return q.words[0]=0,q.length=1,q;var k=q.imul(j),g=k.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=k.isub(g).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},v.prototype.mul=function(q,j){if(q.isZero()||j.isZero())return new V(0)._forceRed(this);var k=q.mul(j),g=k.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=k.isub(g).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},v.prototype.invm=function(q){var j=this.imod(q._invmp(this.m).mul(this.r2));return j._forceRed(this)}})(typeof $>"u"||$,bZ)}}),{CryptoHasher:lY}=globalThis.Bun,oY=P$({"node_modules/public-encrypt/withPublic.js"(bZ,$){var Q=bY(),Y=M$().Buffer;function Z(G,V){return Y.from(G.toRed(Q.mont(V.modulus)).redPow(new Q(V.publicExponent)).fromRed().toArray())}$.exports=Z}}),uY=P$({"node_modules/public-encrypt/publicEncrypt.js"(bZ,$){var Q=_Y(),Y=S$(),Z=h$(),G=hY(),V=dY(),U=bY(),X=oY(),K=wQ(),I=M$().Buffer;$.exports=function(A,W,H){var E;A.padding?E=A.padding:H?E=1:E=4;var T=Q(A),D;if(E===4)D=J(T,W);else if(E===1)D=O(T,W,H);else if(E===3){if(D=new U(W),D.cmp(T.modulus)>=0)throw new Error("data too long for modulus")}else throw new Error("unknown padding");return H?K(D,T):X(D,T)};function J(A,W){var H=A.modulus.byteLength(),E=W.length,T=Z("sha1").update(I.alloc(0)).digest(),D=T.length,C=2*D;if(E>H-C-2)throw new Error("message too long");var L=I.alloc(H-E-C-2),R=H-D-1,P=Y(D),z=V(I.concat([T,L,I.alloc(1,1),W],R),G(P,R)),M=V(P,G(z,D));return new U(I.concat([I.alloc(1),M,z],H))}function O(A,W,H){var E=W.length,T=A.modulus.byteLength();if(E>T-11)throw new Error("message too long");var D;return H?D=I.alloc(T-E-3,255):D=F(T-E-3),new U(I.concat([I.from([0,H?1:2]),D,I.alloc(1),W],T))}function F(A){for(var W=I.allocUnsafe(A),H=0,E=Y(A*2),T=0,D;HT||new G(A).cmp(E.modulus)>=0)throw new Error("decryption error");var D;W?D=X(new G(A),E):D=V(A,E);var C=K.alloc(T-D.length);if(D=K.concat([C,D],T),H===4)return I(E,D);if(H===1)return J(E,D,W);if(H===3)return D;throw new Error("unknown padding")};function I(F,A){var W=F.modulus.byteLength(),H=U("sha1").update(K.alloc(0)).digest(),E=H.length;if(A[0]!==0)throw new Error("decryption error");var T=A.slice(1,E+1),D=A.slice(E+1),C=Z(T,Y(D,E)),L=Z(D,Y(C,W-E-1));if(O(H,L.slice(0,E)))throw new Error("decryption error");for(var R=E;L[R]===0;)R++;if(L[R++]!==1)throw new Error("decryption error");return L.slice(R)}function J(F,A,W){for(var H=A.slice(0,2),E=2,T=0;A[E++]!==0;)if(E>=A.length){T++;break}var D=A.slice(2,E-1);if((H.toString("hex")!=="0002"&&!W||H.toString("hex")!=="0001"&&W)&&T++,D.length<8&&T++,T)throw new Error("decryption error");return A.slice(E)}function O(F,A){F=K.from(F),A=K.from(A);var W=0,H=F.length;F.length!==A.length&&(W++,H=Math.min(F.length,A.length));for(var E=-1;++EG||J<0)throw new TypeError("offset must be a uint32");if(J>Z||J>O)throw new RangeError("offset out of range")}function U(J,O,F){if(typeof J!="number"||J!==J)throw new TypeError("size must be a number");if(J>G||J<0)throw new TypeError("size must be a uint32");if(J+O>F||J>Z)throw new RangeError("buffer too small")}bZ.randomFill=X,bZ.randomFillSync=I;function X(J,O,F,A){if(!Y.isBuffer(J)&&!(J instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if(typeof O=="function")A=O,O=0,F=J.length;else if(typeof F=="function")A=F,F=J.length-O;else if(typeof A!="function")throw new TypeError('"cb" argument must be a function');return V(O,J.length),U(F,O,J.length),K(J,O,F,A)}function K(J,O,F,A){if(A){Q(F,function(H,E){if(H)return A(H);E.copy(J,O),A(null,J)});return}var W=Q(F);return W.copy(J,O),J}function I(J,O,F){if(typeof O>"u"&&(O=0),!Y.isBuffer(J)&&!(J instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return V(O,J.length),F===void 0&&(F=J.length-O),U(F,O,J.length),K(J,O,F)}}}),mY=P$({"node_modules/crypto-browserify/index.js"(bZ){bZ.randomBytes=bZ.rng=bZ.pseudoRandomBytes=bZ.prng=S$(),bZ.createHash=h$(),bZ.Hash=bZ.createHash.Hash,bZ.createHmac=bZ.Hmac=l$();var $=u$(),Q=Object.keys($),Y=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(Q);bZ.getHashes=function(){return Y};var Z=r$();bZ.pbkdf2=Z.pbkdf2,bZ.pbkdf2Sync=Z.pbkdf2Sync;var G=SQ();bZ.Cipher=G.Cipher,bZ.createCipher=G.createCipher,bZ.Cipheriv=G.Cipheriv,bZ.createCipheriv=G.createCipheriv,bZ.Decipher=G.Decipher,bZ.createDecipher=G.createDecipher,bZ.Decipheriv=G.Decipheriv,bZ.createDecipheriv=G.createDecipheriv,bZ.getCiphers=G.getCiphers,bZ.listCiphers=G.listCiphers;var V=BQ();bZ.DiffieHellmanGroup=V.DiffieHellmanGroup,bZ.createDiffieHellmanGroup=V.createDiffieHellmanGroup,bZ.getDiffieHellman=V.getDiffieHellman,bZ.createDiffieHellman=V.createDiffieHellman,bZ.DiffieHellman=V.DiffieHellman;var U=fY();bZ.createSign=U.createSign,bZ.Sign=U.Sign,bZ.createVerify=U.createVerify,bZ.Verify=U.Verify,bZ.createECDH=cY();var X=sY();bZ.publicEncrypt=X.publicEncrypt,bZ.privateEncrypt=X.privateEncrypt,bZ.publicDecrypt=X.publicDecrypt,bZ.privateDecrypt=X.privateDecrypt,bZ.getRandomValues=(I)=>O$.getRandomValues(I);var K=tY();bZ.randomFill=K.randomFill,bZ.randomFillSync=K.randomFillSync,bZ.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join(` +`))},bZ.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}}}),aY={...mY(),[Symbol.for("CommonJS")]:0},W$="buffer",rY=(bZ)=>O$.getRandomValues(bZ),eY=()=>O$.randomUUID(),H$="timingSafeEqual"in O$?(bZ,$)=>{let{byteLength:Q}=bZ,{byteLength:Y}=$;if(typeof Q!="number"||typeof Y!="number")throw new TypeError("Input must be an array buffer view");if(Q!==Y)throw new RangeError("Input buffers must have the same length");return O$.timingSafeEqual(bZ,$)}:void 0,iY="scryptSync"in O$?(bZ,$,Q,Y)=>{let Z=O$.scryptSync(bZ,$,Q,Y);return W$!=="buffer"?new Buffer(Z).toString(W$):new Buffer(Z)}:void 0,$Z="scryptSync"in O$?function(bZ,$,Q,Y,Z){if(typeof Y=="function"&&(Z=Y,Y=void 0),typeof Z!="function"){var G=new TypeError("callback must be a function");throw G.code="ERR_INVALID_CALLBACK",G}try{let V=O$.scryptSync(bZ,$,Q,Y);process.nextTick(Z,null,W$!=="buffer"?new Buffer(V).toString(W$):new Buffer(V))}catch(V){throw V}}:void 0;H$&&(Object.defineProperty(H$,"name",{value:"::bunternal::"}),Object.defineProperty($Z,"name",{value:"::bunternal::"}),Object.defineProperty(iY,"name",{value:"::bunternal::"}));var E$=O$;z$(aY,{DEFAULT_ENCODING:()=>W$,getRandomValues:()=>rY,randomUUID:()=>eY,scrypt:()=>$Z,scryptSync:()=>iY,timingSafeEqual:()=>H$,webcrypto:()=>E$,subtle:()=>E$.subtle});var{randomBytes:QZ,rng:YZ,pseudoRandomBytes:ZZ,prng:GZ,Hash:VZ,createHash:UZ,createHmac:XZ,Hmac:KZ,getHashes:IZ,pbkdf2:JZ,pbkdf2Sync:OZ,Cipher:FZ,createCipher:AZ,Cipheriv:WZ,createCipheriv:HZ,Decipher:EZ,createDecipher:TZ,Decipheriv:DZ,createDecipheriv:CZ,getCiphers:LZ,listCiphers:RZ,DiffieHellmanGroup:PZ,createDiffieHellmanGroup:zZ,getDiffieHellman:MZ,createDiffieHellman:SZ,DiffieHellman:vZ,createSign:qZ,Sign:jZ,createVerify:kZ,Verify:gZ,createECDH:NZ,publicEncrypt:xZ,privateEncrypt:_Z,publicDecrypt:BZ,privateDecrypt:yZ,randomFill:wZ,randomFillSync:fZ,createCredentials:pZ,constants:cZ}=aY;var dZ=aY;/*! safe-buffer. MIT License. Feross Aboukhadijeh */export{E$ as webcrypto,H$ as timingSafeEqual,iY as scryptSync,$Z as scrypt,YZ as rng,eY as randomUUID,fZ as randomFillSync,wZ as randomFill,QZ as randomBytes,xZ as publicEncrypt,BZ as publicDecrypt,ZZ as pseudoRandomBytes,GZ as prng,_Z as privateEncrypt,yZ as privateDecrypt,OZ as pbkdf2Sync,JZ as pbkdf2,RZ as listCiphers,rY as getRandomValues,IZ as getHashes,MZ as getDiffieHellman,LZ as getCiphers,dZ as default,kZ as createVerify,qZ as createSign,XZ as createHmac,UZ as createHash,NZ as createECDH,zZ as createDiffieHellmanGroup,SZ as createDiffieHellman,CZ as createDecipheriv,TZ as createDecipher,pZ as createCredentials,HZ as createCipheriv,AZ as createCipher,cZ as constants,gZ as Verify,jZ as Sign,KZ as Hmac,VZ as Hash,PZ as DiffieHellmanGroup,vZ as DiffieHellman,DZ as Decipheriv,EZ as Decipher,W$ as DEFAULT_ENCODING,WZ as Cipheriv,FZ as Cipher}; diff --git a/src/js/out/modules/node/http.js b/src/js/out/modules/node/http.js index dd007e740..02e000138 100644 --- a/src/js/out/modules/node/http.js +++ b/src/js/out/modules/node/http.js @@ -93,7 +93,8 @@ function get(url, options, cb) { return req.end(), req; } var { EventEmitter } = import.meta.require("node:events"), { isIPv6 } = import.meta.require("node:net"), { Readable, Writable, Duplex } = import.meta.require("node:stream"), { URL } = import.meta.require("node:url"), { newArrayWithSize, String, Object, Array } = import.meta.primordials, { isTypedArray } = import.meta.require("util/types"), globalReportError = globalThis.reportError, setTimeout = globalThis.setTimeout, fetch = Bun.fetch, nop = () => { -}, __DEBUG__ = process.env.__DEBUG__, debug = __DEBUG__ ? (...args) => console.log("node:http", ...args) : nop, kEmptyObject = Object.freeze(Object.create(null)), kOutHeaders = Symbol.for("kOutHeaders"), kEndCalled = Symbol.for("kEndCalled"), kAbortController = Symbol.for("kAbortController"), kClearTimeout = Symbol("kClearTimeout"), kCorked = Symbol.for("kCorked"), searchParamsSymbol = Symbol.for("query"), StringPrototypeSlice = String.prototype.slice, StringPrototypeStartsWith = String.prototype.startsWith, StringPrototypeToUpperCase = String.prototype.toUpperCase, StringPrototypeIncludes = String.prototype.includes, StringPrototypeCharCodeAt = String.prototype.charCodeAt, StringPrototypeIndexOf = String.prototype.indexOf, ArrayIsArray = Array.isArray, RegExpPrototypeExec = RegExp.prototype.exec, ObjectAssign = Object.assign, ObjectPrototypeHasOwnProperty = Object.prototype.hasOwnProperty, INVALID_PATH_REGEX = /[^\u0021-\u00ff]/, NODE_HTTP_WARNING = "WARN: Agent is mostly unused in Bun's implementation of http. If you see strange behavior, this is probably the cause.", _globalAgent, _defaultHTTPSAgent, kInternalRequest = Symbol("kInternalRequest"), kInternalSocketData = Symbol.for("::bunternal::"), kEmptyBuffer = Buffer.alloc(0), FakeSocket = class Socket extends Duplex { +}, __DEBUG__ = process.env.__DEBUG__, debug = __DEBUG__ ? (...args) => console.log("node:http", ...args) : nop, kEmptyObject = Object.freeze(Object.create(null)), kOutHeaders = Symbol.for("kOutHeaders"), kEndCalled = Symbol.for("kEndCalled"), kAbortController = Symbol.for("kAbortController"), kClearTimeout = Symbol("kClearTimeout"), kCorked = Symbol.for("kCorked"), searchParamsSymbol = Symbol.for("query"), StringPrototypeSlice = String.prototype.slice, StringPrototypeStartsWith = String.prototype.startsWith, StringPrototypeToUpperCase = String.prototype.toUpperCase, StringPrototypeIncludes = String.prototype.includes, StringPrototypeCharCodeAt = String.prototype.charCodeAt, StringPrototypeIndexOf = String.prototype.indexOf, ArrayIsArray = Array.isArray, RegExpPrototypeExec = RegExp.prototype.exec, ObjectAssign = Object.assign, ObjectPrototypeHasOwnProperty = Object.prototype.hasOwnProperty, INVALID_PATH_REGEX = /[^\u0021-\u00ff]/; +var _globalAgent, _defaultHTTPSAgent, kInternalRequest = Symbol("kInternalRequest"), kInternalSocketData = Symbol.for("::bunternal::"), kEmptyBuffer = Buffer.alloc(0), FakeSocket = class Socket extends Duplex { bytesRead = 0; bytesWritten = 0; connecting = !1; diff --git a/src/js/out/modules/node/net.js b/src/js/out/modules/node/net.js index ddd799cf2..162da7754 100644 --- a/src/js/out/modules/node/net.js +++ b/src/js/out/modules/node/net.js @@ -24,7 +24,9 @@ var isIPv4 = function(s) { self.emit("listening"); }, createServer = function(options, connectionListener) { return new Server(options, connectionListener); -}, v4Seg = "(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])", v4Str = "((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])", IPv4Reg = new RegExp("^((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$"), v6Seg = "(?:[0-9a-fA-F]{1,4})", IPv6Reg = new RegExp("^((?:(?:[0-9a-fA-F]{1,4}):){7}(?:(?:[0-9a-fA-F]{1,4})|:)|(?:(?:[0-9a-fA-F]{1,4}):){6}(?:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|:(?:[0-9a-fA-F]{1,4})|:)|(?:(?:[0-9a-fA-F]{1,4}):){5}(?::((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,2}|:)|(?:(?:[0-9a-fA-F]{1,4}):){4}(?:(:(?:[0-9a-fA-F]{1,4})){0,1}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,3}|:)|(?:(?:[0-9a-fA-F]{1,4}):){3}(?:(:(?:[0-9a-fA-F]{1,4})){0,2}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,4}|:)|(?:(?:[0-9a-fA-F]{1,4}):){2}(?:(:(?:[0-9a-fA-F]{1,4})){0,3}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,5}|:)|(?:(?:[0-9a-fA-F]{1,4}):){1}(?:(:(?:[0-9a-fA-F]{1,4})){0,4}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,6}|:)|(?::((?::(?:[0-9a-fA-F]{1,4})){0,5}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(?::(?:[0-9a-fA-F]{1,4})){1,7}|:)))(%[0-9a-zA-Z-.:]{1,})?$"), { Bun, createFIFO, Object } = import.meta.primordials, { connect: bunConnect } = Bun, { Duplex } = import.meta.require("node:stream"), { EventEmitter } = import.meta.require("node:events"), { setTimeout } = globalThis, bunTlsSymbol = Symbol.for("::buntls::"), bunSocketServerHandlers = Symbol.for("::bunsocket_serverhandlers::"), bunSocketServerConnections = Symbol.for("::bunnetserverconnections::"), bunSocketServerOptions = Symbol.for("::bunnetserveroptions::"), SocketClass, Socket = function(InternalSocket) { +}; +var IPv4Reg = new RegExp("^((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$"); +var IPv6Reg = new RegExp("^((?:(?:[0-9a-fA-F]{1,4}):){7}(?:(?:[0-9a-fA-F]{1,4})|:)|(?:(?:[0-9a-fA-F]{1,4}):){6}(?:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|:(?:[0-9a-fA-F]{1,4})|:)|(?:(?:[0-9a-fA-F]{1,4}):){5}(?::((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,2}|:)|(?:(?:[0-9a-fA-F]{1,4}):){4}(?:(:(?:[0-9a-fA-F]{1,4})){0,1}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,3}|:)|(?:(?:[0-9a-fA-F]{1,4}):){3}(?:(:(?:[0-9a-fA-F]{1,4})){0,2}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,4}|:)|(?:(?:[0-9a-fA-F]{1,4}):){2}(?:(:(?:[0-9a-fA-F]{1,4})){0,3}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,5}|:)|(?:(?:[0-9a-fA-F]{1,4}):){1}(?:(:(?:[0-9a-fA-F]{1,4})){0,4}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,6}|:)|(?::((?::(?:[0-9a-fA-F]{1,4})){0,5}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(?::(?:[0-9a-fA-F]{1,4})){1,7}|:)))(%[0-9a-zA-Z-.:]{1,})?$"), { Bun, createFIFO, Object } = import.meta.primordials, { connect: bunConnect } = Bun, { Duplex } = import.meta.require("node:stream"), { EventEmitter } = import.meta.require("node:events"), { setTimeout } = globalThis, bunTlsSymbol = Symbol.for("::buntls::"), bunSocketServerHandlers = Symbol.for("::bunsocket_serverhandlers::"), bunSocketServerConnections = Symbol.for("::bunnetserverconnections::"), bunSocketServerOptions = Symbol.for("::bunnetserveroptions::"), SocketClass, Socket = function(InternalSocket) { return SocketClass = InternalSocket, Object.defineProperty(SocketClass.prototype, Symbol.toStringTag, { value: "Socket", enumerable: !1 diff --git a/src/js/out/modules/node/path.js b/src/js/out/modules/node/path.js index c089dd8d5..ad6a231a9 100644 --- a/src/js/out/modules/node/path.js +++ b/src/js/out/modules/node/path.js @@ -1 +1 @@ -var k=function(f){var m=g({basename:f.basename.bind(f),dirname:f.dirname.bind(f),extname:f.extname.bind(f),format:f.format.bind(f),isAbsolute:f.isAbsolute.bind(f),join:f.join.bind(f),normalize:f.normalize.bind(f),parse:f.parse.bind(f),relative:f.relative.bind(f),resolve:f.resolve.bind(f),toNamespacedPath:f.toNamespacedPath.bind(f),sep:f.sep,delimiter:f.delimiter});return m.default=m,m},g=(f)=>Object.assign(Object.create(null),f),q=k(Bun._Path()),v=k(Bun._Path(!1)),y=k(Bun._Path(!0));q.win32=y;q.posix=v;var{basename:z,dirname:A,extname:B,format:C,isAbsolute:D,join:E,normalize:F,parse:G,relative:H,resolve:I,toNamespacedPath:J,sep:K,delimiter:L,__esModule:N}=q;q[Symbol.for("CommonJS")]=0;q.__esModule=!0;var P=q;export{y as win32,J as toNamespacedPath,K as sep,I as resolve,H as relative,v as posix,G as parse,F as normalize,E as join,D as isAbsolute,C as format,B as extname,A as dirname,L as delimiter,P as default,g as createModule,z as basename,N as __esModule}; +var z=function(f){var v=y({basename:f.basename.bind(f),dirname:f.dirname.bind(f),extname:f.extname.bind(f),format:f.format.bind(f),isAbsolute:f.isAbsolute.bind(f),join:f.join.bind(f),normalize:f.normalize.bind(f),parse:f.parse.bind(f),relative:f.relative.bind(f),resolve:f.resolve.bind(f),toNamespacedPath:f.toNamespacedPath.bind(f),sep:f.sep,delimiter:f.delimiter});return v.default=v,v},y=(f)=>Object.assign(Object.create(null),f),I=z(Bun._Path()),m=z(Bun._Path(!1)),J=z(Bun._Path(!0));I.win32=J;I.posix=m;var{basename:A,dirname:K,extname:B,format:g,isAbsolute:C,join:D,normalize:E,parse:L,relative:k,resolve:N,toNamespacedPath:F,sep:O,delimiter:G,__esModule:q}=I;I[Symbol.for("CommonJS")]=0;I.__esModule=!0;var H=I;export{J as win32,F as toNamespacedPath,O as sep,N as resolve,k as relative,m as posix,L as parse,E as normalize,D as join,C as isAbsolute,g as format,B as extname,K as dirname,G as delimiter,H as default,y as createModule,A as basename,q as __esModule}; diff --git a/src/js/out/modules/node/path.posix.js b/src/js/out/modules/node/path.posix.js index 64e8a62f5..8071342a9 100644 --- a/src/js/out/modules/node/path.posix.js +++ b/src/js/out/modules/node/path.posix.js @@ -1 +1 @@ -var i=function(e){return{basename:e.basename.bind(e),dirname:e.dirname.bind(e),extname:e.extname.bind(e),format:e.format.bind(e),isAbsolute:e.isAbsolute.bind(e),join:e.join.bind(e),normalize:e.normalize.bind(e),parse:e.parse.bind(e),relative:e.relative.bind(e),resolve:e.resolve.bind(e),toNamespacedPath:e.toNamespacedPath.bind(e),sep:e.sep,delimiter:e.delimiter}},r=i(Bun._Path(!1));r[Symbol.for("CommonJS")]=0;var{basename:d,dirname:l,extname:s,format:c,isAbsolute:f,join:g,normalize:k,parse:m,relative:q,resolve:t,toNamespacedPath:v,sep:w,delimiter:x}=r,z=r;export{v as toNamespacedPath,w as sep,t as resolve,q as relative,m as parse,k as normalize,g as join,f as isAbsolute,c as format,s as extname,l as dirname,x as delimiter,z as default,d as basename}; +var e=function(l){return{basename:l.basename.bind(l),dirname:l.dirname.bind(l),extname:l.extname.bind(l),format:l.format.bind(l),isAbsolute:l.isAbsolute.bind(l),join:l.join.bind(l),normalize:l.normalize.bind(l),parse:l.parse.bind(l),relative:l.relative.bind(l),resolve:l.resolve.bind(l),toNamespacedPath:l.toNamespacedPath.bind(l),sep:l.sep,delimiter:l.delimiter}},r=e(Bun._Path(!1));r[Symbol.for("CommonJS")]=0;var{basename:g,dirname:s,extname:k,format:m,isAbsolute:q,join:t,normalize:v,parse:w,relative:x,resolve:i,toNamespacedPath:d,sep:c,delimiter:f}=r,z=r;export{d as toNamespacedPath,c as sep,i as resolve,x as relative,w as parse,v as normalize,t as join,q as isAbsolute,m as format,k as extname,s as dirname,f as delimiter,z as default,g as basename}; diff --git a/src/js/out/modules/node/stream.consumers.js b/src/js/out/modules/node/stream.consumers.js index 1c66aab55..e2cfb9cc1 100644 --- a/src/js/out/modules/node/stream.consumers.js +++ b/src/js/out/modules/node/stream.consumers.js @@ -1 +1 @@ -var{Bun:T}=import.meta.primordials,c=T.readableStreamToArrayBuffer,g=T.readableStreamToText,h=(o)=>T.readableStreamToText(o).then(JSON.parse),i=async(o)=>{return new Buffer(await c(o))},k=T.readableStreamToBlob,p={[Symbol.for("CommonJS")]:0,arrayBuffer:c,text:g,json:h,buffer:i,blob:k};export{g as text,h as json,p as default,i as buffer,k as blob,c as arrayBuffer}; +var{Bun:o}=import.meta.primordials,i=o.readableStreamToArrayBuffer,p=o.readableStreamToText,c=(q)=>o.readableStreamToText(q).then(JSON.parse),T=async(q)=>{return new Buffer(await i(q))},h=o.readableStreamToBlob,k={[Symbol.for("CommonJS")]:0,arrayBuffer:i,text:p,json:c,buffer:T,blob:h};export{p as text,c as json,k as default,T as buffer,h as blob,i as arrayBuffer}; diff --git a/src/js/out/modules/node/stream.js b/src/js/out/modules/node/stream.js index 533cf8a04..100ca09fa 100644 --- a/src/js/out/modules/node/stream.js +++ b/src/js/out/modules/node/stream.js @@ -1,2 +1,2 @@ -var wq=function(q){if(!(this instanceof wq))return new wq(q);bq.call(this,q);const Q=q.__id;if(Q)fq(this,"__id",{value:Q,readable:!0,writable:!1,enumerable:!1})},dq=function(q){return typeof q==="object"&&q!==null&&q instanceof ReadableStream},lq=function(q,Q){if(typeof q!=="boolean")throw new nq(Q,"boolean",q)};var nq=function(q,Q,X){return new Error(`The argument '${q}' is invalid. Received '${X}' for type '${Q}'`)},oq=function(q,Q,X){return new Error(`The value '${Q}' is invalid for argument '${q}'. Reason: ${X}`)},jQ=function(q,Q){var[X,J,H,Z,K,B,Y]=globalThis[Symbol.for("Bun.lazy")](q),$=[!1],z=function(j,L,N,W){if(L>0){const P=N.subarray(0,L),I=N.subarray(L);if(P.byteLength>0)j.push(P);if(W)j.push(null);return I.byteLength>0?I:void 0}if(W)j.push(null);return N},V=function(j,L,N,W){if(L.byteLength>0)j.push(L);if(W)j.push(null);return N},G=process.env.BUN_DISABLE_DYNAMIC_CHUNK_SIZE!=="1";const U=new FinalizationRegistry((j)=>j&&K(j)),F=512;var M=class j extends Q{#q;#Q=1;#X=!1;#J=void 0;#H;#Z=!1;#K=!G;#B;constructor(L,N={}){super(N);if(typeof N.highWaterMark==="number")this.#H=N.highWaterMark;else this.#H=262144;this.#q=L,this.#X=!1,this.#J=void 0,this.#Z=!1,this.#B={},U.register(this,this.#q,this.#B)}_read(L){if(xq&&Iq("NativeReadable._read",this.__id),this.#Z){xq&&Iq("pendingRead is true",this.__id);return}var N=this.#q;if(xq&&Iq("ptr @ NativeReadable._read",N,this.__id),N===0){this.push(null);return}if(!this.#X)xq&&Iq("NativeReadable not constructed yet",this.__id),this.#Y(N);return this.#V(this.#$(L),N)}#Y(L){this.#X=!0;const N=J(L,this.#H);if(xq&&Iq("NativeReadable internal `start` result",N,this.__id),typeof N==="number"&&N>1)this.#K=!0,xq&&Iq("NativeReadable resized",this.__id),this.#H=Math.min(this.#H,N);if(Y){const W=Y(L);if(xq&&Iq("NativeReadable drain result",W,this.__id),(W?.byteLength??0)>0)this.push(W)}}#$(L=this.#H){var N=this.#J;if(xq&&Iq("chunk @ #getRemainingChunk",N,this.__id),N?.byteLength??0F?L:F;this.#J=N=new Buffer(W)}return N}push(L,N){return xq&&Iq("NativeReadable push -- result, encoding",L,N,this.__id),super.push(...arguments)}#z(L,N,W){if(xq&&Iq("result, isClosed @ #handleResult",L,W,this.__id),typeof L==="number"){if(L>=this.#H&&!this.#K&&!W)this.#H*=2,this.#K=!0;return z(this,L,N,W)}else if(typeof L==="boolean")return this.push(null),N?.byteLength??0>0?N:void 0;else if(ArrayBuffer.isView(L)){if(L.byteLength>=this.#H&&!this.#K&&!W)this.#H*=2,this.#K=!0,xq&&Iq("Resized",this.__id);return V(this,L,N,W)}else throw xq&&Iq("Unknown result type",L,this.__id),new Error("Invalid result from pull")}#V(L,N){xq&&Iq("#internalRead()",this.__id),$[0]=!1;var W=X(N,L,$);if(Cq(W))return this.#Z=!0,W.then((P)=>{this.#Z=!1,xq&&Iq("pending no longerrrrrrrr (result returned from pull)",this.__id),this.#J=this.#z(P,L,$[0])},(P)=>{xq&&Iq("error from pull",P,this.__id),errorOrDestroy(this,P)});else this.#J=this.#z(W,L,$[0])}_destroy(L,N){var W=this.#q;if(W===0){N(L);return}if(U.unregister(this.#B),this.#q=0,B)B(W,!1);xq&&Iq("NativeReadable destroyed",this.__id),H(W,L),N(L)}ref(){var L=this.#q;if(L===0)return;if(this.#Q++===0)B(L,!0)}unref(){var L=this.#q;if(L===0)return;if(this.#Q--===1)B(L,!1)}};if(!B)M.prototype.ref=void 0,M.prototype.unref=void 0;return M},NQ=function(q,Q){return LQ[q]||=jQ(q,Q)},WQ=function(q,Q,X){if(!(Q&&typeof Q==="object"&&Q instanceof ReadableStream))return;const J=gq(Q);if(!J){Iq("no native readable stream");return}const{stream:H,data:Z}=J;return new(NQ(Z,q))(H,X)},{isPromise:Cq,isCallable:Rq,direct:gq,Object:Oq}=import.meta.primordials;globalThis.__IDS_TO_TRACK=process.env.DEBUG_TRACK_EE?.length?process.env.DEBUG_TRACK_EE.split(","):process.env.DEBUG_STREAMS?.length?process.env.DEBUG_STREAMS.split(","):null;var Sq=!!process.env.DEBUG_TRACK_EE,xq=!!(process.env.DEBUG||process.env.DEBUG_STREAMS||Sq),Iq=xq?globalThis.__IDS_TO_TRACK?(...q)=>{const Q=q[q.length-1];if(!globalThis.__IDS_TO_TRACK.includes(Q))return;console.log(`ID: ${Q}`,...q.slice(0,-1))}:(...q)=>console.log(...q.slice(0,-1)):()=>{},kq=Oq.create,fq=Oq.defineProperty,yq=Oq.getOwnPropertyDescriptor,hq=Oq.getOwnPropertyNames,pq=Oq.getPrototypeOf,uq=Oq.prototype.hasOwnProperty,mq=Oq.setPrototypeOf,Eq=(q)=>import.meta.require(q),bq=Eq("bun:events_native");mq(wq.prototype,bq.prototype);mq(wq,bq);wq.prototype.emit=function(q,...Q){var X=this.__id;if(X)Iq("emit",q,...Q,X);else Iq("emit",q,...Q);return bq.prototype.emit.call(this,q,...Q)};wq.prototype.on=function(q,Q){var X=this.__id;if(X)Iq("on",q,"added",X);else Iq("on",q,"added");return bq.prototype.on.call(this,q,Q)};wq.prototype.addListener=function(q,Q){return this.on(q,Q)};var cq=(q,Q)=>function X(){return Q||(0,q[hq(q)[0]])((Q={exports:{}}).exports,Q),Q.exports};var Aq=process.nextTick;var iq=Array.isArray,Dq=cq({"node_modules/readable-stream/lib/ours/primordials.js"(q,Q){Q.exports={ArrayIsArray(X){return Array.isArray(X)},ArrayPrototypeIncludes(X,J){return X.includes(J)},ArrayPrototypeIndexOf(X,J){return X.indexOf(J)},ArrayPrototypeJoin(X,J){return X.join(J)},ArrayPrototypeMap(X,J){return X.map(J)},ArrayPrototypePop(X,J){return X.pop(J)},ArrayPrototypePush(X,J){return X.push(J)},ArrayPrototypeSlice(X,J,H){return X.slice(J,H)},Error,FunctionPrototypeCall(X,J,...H){return X.call(J,...H)},FunctionPrototypeSymbolHasInstance(X,J){return Function.prototype[Symbol.hasInstance].call(X,J)},MathFloor:Math.floor,Number,NumberIsInteger:Number.isInteger,NumberIsNaN:Number.isNaN,NumberMAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,NumberParseInt:Number.parseInt,ObjectDefineProperties(X,J){return Oq.defineProperties(X,J)},ObjectDefineProperty(X,J,H){return Oq.defineProperty(X,J,H)},ObjectGetOwnPropertyDescriptor(X,J){return Oq.getOwnPropertyDescriptor(X,J)},ObjectKeys(X){return Oq.keys(X)},ObjectSetPrototypeOf(X,J){return Oq.setPrototypeOf(X,J)},Promise,PromisePrototypeCatch(X,J){return X.catch(J)},PromisePrototypeThen(X,J,H){return X.then(J,H)},PromiseReject(X){return Promise.reject(X)},ReflectApply:Reflect.apply,RegExpPrototypeTest(X,J){return X.test(J)},SafeSet:Set,String,StringPrototypeSlice(X,J,H){return X.slice(J,H)},StringPrototypeToLowerCase(X){return X.toLowerCase()},StringPrototypeToUpperCase(X){return X.toUpperCase()},StringPrototypeTrim(X){return X.trim()},Symbol,SymbolAsyncIterator:Symbol.asyncIterator,SymbolHasInstance:Symbol.hasInstance,SymbolIterator:Symbol.iterator,TypedArrayPrototypeSet(X,J,H){return X.set(J,H)},Uint8Array}}}),_q=cq({"node_modules/readable-stream/lib/ours/util.js"(q,Q){var X=Eq("buffer"),J=Oq.getPrototypeOf(async function(){}).constructor,H=globalThis.Blob||X.Blob,Z=typeof H!=="undefined"?function B(Y){return Y instanceof H}:function B(Y){return!1},K=class extends Error{constructor(B){if(!Array.isArray(B))throw new TypeError(`Expected input to be an Array, got ${typeof B}`);let Y="";for(let $=0;${B=z,Y=V}),resolve:B,reject:Y}},promisify(B){return new Promise((Y,$)=>{B((z,...V)=>{if(z)return $(z);return Y(...V)})})},debuglog(){return function(){}},format(B,...Y){return B.replace(/%([sdifj])/g,function(...[$,z]){const V=Y.shift();if(z==="f")return V.toFixed(6);else if(z==="j")return JSON.stringify(V);else if(z==="s"&&typeof V==="object")return`${V.constructor!==Oq?V.constructor.name:""} {}`.trim();else return V.toString()})},inspect(B){switch(typeof B){case"string":if(B.includes("'")){if(!B.includes('"'))return`"${B}"`;else if(!B.includes("`")&&!B.includes("${"))return`\`${B}\``}return`'${B}'`;case"number":if(isNaN(B))return"NaN";else if(Oq.is(B,-0))return String(B);return B;case"bigint":return`${String(B)}n`;case"boolean":case"undefined":return String(B);case"object":return"{}"}},types:{isAsyncFunction(B){return B instanceof J},isArrayBufferView(B){return ArrayBuffer.isView(B)}},isBlob:Z},Q.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")}}),sq=cq({"node_modules/readable-stream/lib/ours/errors.js"(q,Q){var{format:X,inspect:J,AggregateError:H}=_q(),Z=globalThis.AggregateError||H,K=Symbol("kIsNodeError"),B=["string","function","number","object","Function","Object","boolean","bigint","symbol"],Y=/^([A-Z][a-z0-9]*)+$/,$="__node_internal_",z={};function V(N,W){if(!N)throw new z.ERR_INTERNAL_ASSERTION(W)}function G(N){let W="",P=N.length;const I=N[0]==="-"?1:0;for(;P>=I+4;P-=3)W=`_${N.slice(P-3,P)}${W}`;return`${N.slice(0,P)}${W}`}function U(N,W,P){if(typeof W==="function")return V(W.length<=P.length,`Code: ${N}; The provided arguments length (${P.length}) does not match the required ones (${W.length}).`),W(...P);const I=(W.match(/%[dfijoOs]/g)||[]).length;if(V(I===P.length,`Code: ${N}; The provided arguments length (${P.length}) does not match the required ones (${I}).`),P.length===0)return W;return X(W,...P)}function F(N,W,P){if(!P)P=Error;class I extends P{constructor(...x){super(U(N,W,x))}toString(){return`${this.name} [${N}]: ${this.message}`}}Oq.defineProperties(I.prototype,{name:{value:P.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${N}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),I.prototype.code=N,I.prototype[K]=!0,z[N]=I}function M(N){const W=$+N.name;return Oq.defineProperty(N,"name",{value:W}),N}function j(N,W){if(N&&W&&N!==W){if(Array.isArray(W.errors))return W.errors.push(N),W;const P=new Z([W,N],W.message);return P.code=W.code,P}return N||W}var L=class extends Error{constructor(N="The operation was aborted",W=void 0){if(W!==void 0&&typeof W!=="object")throw new z.ERR_INVALID_ARG_TYPE("options","Object",W);super(N,W);this.code="ABORT_ERR",this.name="AbortError"}};F("ERR_ASSERTION","%s",Error),F("ERR_INVALID_ARG_TYPE",(N,W,P)=>{if(V(typeof N==="string","'name' must be a string"),!Array.isArray(W))W=[W];let I="The ";if(N.endsWith(" argument"))I+=`${N} `;else I+=`"${N}" ${N.includes(".")?"property":"argument"} `;I+="must be ";const x=[],T=[],A=[];for(let C of W)if(V(typeof C==="string","All expected entries have to be of type string"),B.includes(C))x.push(C.toLowerCase());else if(Y.test(C))T.push(C);else V(C!=="object",'The value "object" should be written as "Object"'),A.push(C);if(T.length>0){const C=x.indexOf("object");if(C!==-1)x.splice(x,C,1),T.push("Object")}if(x.length>0){switch(x.length){case 1:I+=`of type ${x[0]}`;break;case 2:I+=`one of type ${x[0]} or ${x[1]}`;break;default:{const C=x.pop();I+=`one of type ${x.join(", ")}, or ${C}`}}if(T.length>0||A.length>0)I+=" or "}if(T.length>0){switch(T.length){case 1:I+=`an instance of ${T[0]}`;break;case 2:I+=`an instance of ${T[0]} or ${T[1]}`;break;default:{const C=T.pop();I+=`an instance of ${T.join(", ")}, or ${C}`}}if(A.length>0)I+=" or "}switch(A.length){case 0:break;case 1:if(A[0].toLowerCase()!==A[0])I+="an ";I+=`${A[0]}`;break;case 2:I+=`one of ${A[0]} or ${A[1]}`;break;default:{const C=A.pop();I+=`one of ${A.join(", ")}, or ${C}`}}if(P==null)I+=`. Received ${P}`;else if(typeof P==="function"&&P.name)I+=`. Received function ${P.name}`;else if(typeof P==="object"){var O;if((O=P.constructor)!==null&&O!==void 0&&O.name)I+=`. Received an instance of ${P.constructor.name}`;else{const C=J(P,{depth:-1});I+=`. Received ${C}`}}else{let C=J(P,{colors:!1});if(C.length>25)C=`${C.slice(0,25)}...`;I+=`. Received type ${typeof P} (${C})`}return I},TypeError),F("ERR_INVALID_ARG_VALUE",(N,W,P="is invalid")=>{let I=J(W);if(I.length>128)I=I.slice(0,128)+"...";return`The ${N.includes(".")?"property":"argument"} '${N}' ${P}. Received ${I}`},TypeError),F("ERR_INVALID_RETURN_VALUE",(N,W,P)=>{var I;const x=P!==null&&P!==void 0&&(I=P.constructor)!==null&&I!==void 0&&I.name?`instance of ${P.constructor.name}`:`type ${typeof P}`;return`Expected ${N} to be returned from the "${W}" function but got ${x}.`},TypeError),F("ERR_MISSING_ARGS",(...N)=>{V(N.length>0,"At least one arg needs to be specified");let W;const P=N.length;switch(N=(Array.isArray(N)?N:[N]).map((I)=>`"${I}"`).join(" or "),P){case 1:W+=`The ${N[0]} argument`;break;case 2:W+=`The ${N[0]} and ${N[1]} arguments`;break;default:{const I=N.pop();W+=`The ${N.join(", ")}, and ${I} arguments`}break}return`${W} must be specified`},TypeError),F("ERR_OUT_OF_RANGE",(N,W,P)=>{V(W,'Missing "range" argument');let I;if(Number.isInteger(P)&&Math.abs(P)>4294967296)I=G(String(P));else if(typeof P==="bigint"){if(I=String(P),P>2n**32n||P<-(2n**32n))I=G(I);I+="n"}else I=J(P);return`The value of "${N}" is out of range. It must be ${W}. Received ${I}`},RangeError),F("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),F("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),F("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),F("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),F("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),F("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),F("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),F("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),F("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),F("ERR_STREAM_WRITE_AFTER_END","write after end",Error),F("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),Q.exports={AbortError:L,aggregateTwoErrors:M(j),hideStackFrames:M,codes:z}}}),aq=cq({"node_modules/readable-stream/lib/internal/validators.js"(q,Q){var{ArrayIsArray:X,ArrayPrototypeIncludes:J,ArrayPrototypeJoin:H,ArrayPrototypeMap:Z,NumberIsInteger:K,NumberMAX_SAFE_INTEGER:B,NumberMIN_SAFE_INTEGER:Y,NumberParseInt:$,RegExpPrototypeTest:z,String:V,StringPrototypeToUpperCase:G,StringPrototypeTrim:U}=Dq(),{hideStackFrames:F,codes:{ERR_SOCKET_BAD_PORT:M,ERR_INVALID_ARG_TYPE:j,ERR_INVALID_ARG_VALUE:L,ERR_OUT_OF_RANGE:N,ERR_UNKNOWN_SIGNAL:W}}=sq(),{normalizeEncoding:P}=_q(),{isAsyncFunction:I,isArrayBufferView:x}=_q().types,T={};function A(i){return i===(i|0)}function O(i){return i===i>>>0}var C=/^[0-7]+$/,E="must be a 32-bit unsigned integer or an octal string";function w(i,n,o){if(typeof i==="undefined")i=o;if(typeof i==="string"){if(!z(C,i))throw new L(n,i,E);i=$(i,8)}return _(i,n,0,4294967295),i}var D=F((i,n,o=Y,s=B)=>{if(typeof i!=="number")throw new j(n,"number",i);if(!K(i))throw new N(n,"an integer",i);if(is)throw new N(n,`>= ${o} && <= ${s}`,i)}),_=F((i,n,o=-2147483648,s=2147483647)=>{if(typeof i!=="number")throw new j(n,"number",i);if(!A(i)){if(!K(i))throw new N(n,"an integer",i);throw new N(n,`>= ${o} && <= ${s}`,i)}if(is)throw new N(n,`>= ${o} && <= ${s}`,i)}),v=F((i,n,o)=>{if(typeof i!=="number")throw new j(n,"number",i);if(!O(i)){if(!K(i))throw new N(n,"an integer",i);throw new N(n,`>= ${o?1:0} && < 4294967296`,i)}if(o&&i===0)throw new N(n,">= 1 && < 4294967296",i)});function R(i,n){if(typeof i!=="string")throw new j(n,"string",i)}function g(i,n){if(typeof i!=="number")throw new j(n,"number",i)}var S=F((i,n,o)=>{if(!J(o,i)){const a="must be one of: "+H(Z(o,(r)=>typeof r==="string"?`'${r}'`:V(r)),", ");throw new L(n,i,a)}});function k(i,n){if(typeof i!=="boolean")throw new j(n,"boolean",i)}var f=F((i,n,o)=>{const s=o==null,a=s?!1:o.allowArray,r=s?!1:o.allowFunction;if(!(s?!1:o.nullable)&&i===null||!a&&X(i)||typeof i!=="object"&&(!r||typeof i!=="function"))throw new j(n,"Object",i)}),y=F((i,n,o=0)=>{if(!X(i))throw new j(n,"Array",i);if(i.length{if(!x(i))throw new j(n,["Buffer","TypedArray","DataView"],i)});function u(i,n){const o=P(n),s=i.length;if(o==="hex"&&s%2!==0)throw new L("encoding",n,`is invalid for data of length ${s}`)}function m(i,n="Port",o=!0){if(typeof i!=="number"&&typeof i!=="string"||typeof i==="string"&&U(i).length===0||+i!==+i>>>0||i>65535||i===0&&!o)throw new M(n,i,o);return i|0}var b=F((i,n)=>{if(i!==void 0&&(i===null||typeof i!=="object"||!("aborted"in i)))throw new j(n,"AbortSignal",i)}),c=F((i,n)=>{if(typeof i!=="function")throw new j(n,"Function",i)}),d=F((i,n)=>{if(typeof i!=="function"||I(i))throw new j(n,"Function",i)}),l=F((i,n)=>{if(i!==void 0)throw new j(n,"undefined",i)});Q.exports={isInt32:A,isUint32:O,parseFileMode:w,validateArray:y,validateBoolean:k,validateBuffer:p,validateEncoding:u,validateFunction:c,validateInt32:_,validateInteger:D,validateNumber:g,validateObject:f,validateOneOf:S,validatePlainFunction:d,validatePort:m,validateSignalName:h,validateString:R,validateUint32:v,validateUndefined:l,validateAbortSignal:b}}}),rq=cq({"node_modules/readable-stream/lib/internal/streams/utils.js"(q,Q){var{Symbol:X,SymbolAsyncIterator:J,SymbolIterator:H}=Dq(),Z=X("kDestroyed"),K=X("kIsErrored"),B=X("kIsReadable"),Y=X("kIsDisturbed");function $(v,R=!1){var g;return!!(v&&typeof v.pipe==="function"&&typeof v.on==="function"&&(!R||typeof v.pause==="function"&&typeof v.resume==="function")&&(!v._writableState||((g=v._readableState)===null||g===void 0?void 0:g.readable)!==!1)&&(!v._writableState||v._readableState))}function z(v){var R;return!!(v&&typeof v.write==="function"&&typeof v.on==="function"&&(!v._readableState||((R=v._writableState)===null||R===void 0?void 0:R.writable)!==!1))}function V(v){return!!(v&&typeof v.pipe==="function"&&v._readableState&&typeof v.on==="function"&&typeof v.write==="function")}function G(v){return v&&(v._readableState||v._writableState||typeof v.write==="function"&&typeof v.on==="function"||typeof v.pipe==="function"&&typeof v.on==="function")}function U(v,R){if(v==null)return!1;if(R===!0)return typeof v[J]==="function";if(R===!1)return typeof v[H]==="function";return typeof v[J]==="function"||typeof v[H]==="function"}function F(v){if(!G(v))return null;const{_writableState:R,_readableState:g}=v,S=R||g;return!!(v.destroyed||v[Z]||S!==null&&S!==void 0&&S.destroyed)}function M(v){if(!z(v))return null;if(v.writableEnded===!0)return!0;const R=v._writableState;if(R!==null&&R!==void 0&&R.errored)return!1;if(typeof(R===null||R===void 0?void 0:R.ended)!=="boolean")return null;return R.ended}function j(v,R){if(!z(v))return null;if(v.writableFinished===!0)return!0;const g=v._writableState;if(g!==null&&g!==void 0&&g.errored)return!1;if(typeof(g===null||g===void 0?void 0:g.finished)!=="boolean")return null;return!!(g.finished||R===!1&&g.ended===!0&&g.length===0)}function L(v){if(!$(v))return null;if(v.readableEnded===!0)return!0;const R=v._readableState;if(!R||R.errored)return!1;if(typeof(R===null||R===void 0?void 0:R.ended)!=="boolean")return null;return R.ended}function N(v,R){if(!$(v))return null;const g=v._readableState;if(g!==null&&g!==void 0&&g.errored)return!1;if(typeof(g===null||g===void 0?void 0:g.endEmitted)!=="boolean")return null;return!!(g.endEmitted||R===!1&&g.ended===!0&&g.length===0)}function W(v){if(v&&v[B]!=null)return v[B];if(typeof(v===null||v===void 0?void 0:v.readable)!=="boolean")return null;if(F(v))return!1;return $(v)&&v.readable&&!N(v)}function P(v){if(typeof(v===null||v===void 0?void 0:v.writable)!=="boolean")return null;if(F(v))return!1;return z(v)&&v.writable&&!M(v)}function I(v,R){if(!G(v))return null;if(F(v))return!0;if((R===null||R===void 0?void 0:R.readable)!==!1&&W(v))return!1;if((R===null||R===void 0?void 0:R.writable)!==!1&&P(v))return!1;return!0}function x(v){var R,g;if(!G(v))return null;if(v.writableErrored)return v.writableErrored;return(R=(g=v._writableState)===null||g===void 0?void 0:g.errored)!==null&&R!==void 0?R:null}function T(v){var R,g;if(!G(v))return null;if(v.readableErrored)return v.readableErrored;return(R=(g=v._readableState)===null||g===void 0?void 0:g.errored)!==null&&R!==void 0?R:null}function A(v){if(!G(v))return null;if(typeof v.closed==="boolean")return v.closed;const{_writableState:R,_readableState:g}=v;if(typeof(R===null||R===void 0?void 0:R.closed)==="boolean"||typeof(g===null||g===void 0?void 0:g.closed)==="boolean")return(R===null||R===void 0?void 0:R.closed)||(g===null||g===void 0?void 0:g.closed);if(typeof v._closed==="boolean"&&O(v))return v._closed;return null}function O(v){return typeof v._closed==="boolean"&&typeof v._defaultKeepAlive==="boolean"&&typeof v._removedConnection==="boolean"&&typeof v._removedContLen==="boolean"}function C(v){return typeof v._sent100==="boolean"&&O(v)}function E(v){var R;return typeof v._consuming==="boolean"&&typeof v._dumped==="boolean"&&((R=v.req)===null||R===void 0?void 0:R.upgradeOrConnect)===void 0}function w(v){if(!G(v))return null;const{_writableState:R,_readableState:g}=v,S=R||g;return!S&&C(v)||!!(S&&S.autoDestroy&&S.emitClose&&S.closed===!1)}function D(v){var R;return!!(v&&((R=v[Y])!==null&&R!==void 0?R:v.readableDidRead||v.readableAborted))}function _(v){var R,g,S,k,f,y,h,p,u,m;return!!(v&&((R=(g=(S=(k=(f=(y=v[K])!==null&&y!==void 0?y:v.readableErrored)!==null&&f!==void 0?f:v.writableErrored)!==null&&k!==void 0?k:(h=v._readableState)===null||h===void 0?void 0:h.errorEmitted)!==null&&S!==void 0?S:(p=v._writableState)===null||p===void 0?void 0:p.errorEmitted)!==null&&g!==void 0?g:(u=v._readableState)===null||u===void 0?void 0:u.errored)!==null&&R!==void 0?R:(m=v._writableState)===null||m===void 0?void 0:m.errored))}Q.exports={kDestroyed:Z,isDisturbed:D,kIsDisturbed:Y,isErrored:_,kIsErrored:K,isReadable:W,kIsReadable:B,isClosed:A,isDestroyed:F,isDuplexNodeStream:V,isFinished:I,isIterable:U,isReadableNodeStream:$,isReadableEnded:L,isReadableFinished:N,isReadableErrored:T,isNodeStream:G,isWritable:P,isWritableNodeStream:z,isWritableEnded:M,isWritableFinished:j,isWritableErrored:x,isServerRequest:E,isServerResponse:C,willEmitClose:w}}}),tq=cq({"node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(q,Q){var{AbortError:X,codes:J}=sq(),{ERR_INVALID_ARG_TYPE:H,ERR_STREAM_PREMATURE_CLOSE:Z}=J,{once:K}=_q(),{validateAbortSignal:B,validateFunction:Y,validateObject:$}=aq(),{Promise:z}=Dq(),{isClosed:V,isReadable:G,isReadableNodeStream:U,isReadableFinished:F,isReadableErrored:M,isWritable:j,isWritableNodeStream:L,isWritableFinished:N,isWritableErrored:W,isNodeStream:P,willEmitClose:I}=rq();function x(C){return C.setHeader&&typeof C.abort==="function"}var T=()=>{};function A(C,E,w){var D,_;if(arguments.length===2)w=E,E={};else if(E==null)E={};else $(E,"options");Y(w,"callback"),B(E.signal,"options.signal"),w=K(w);const v=(D=E.readable)!==null&&D!==void 0?D:U(C),R=(_=E.writable)!==null&&_!==void 0?_:L(C);if(!P(C))throw new H("stream","Stream",C);const{_writableState:g,_readableState:S}=C,k=()=>{if(!C.writable)h()};let f=I(C)&&U(C)===v&&L(C)===R,y=N(C,!1);const h=()=>{if(y=!0,C.destroyed)f=!1;if(f&&(!C.readable||v))return;if(!v||p)w.call(C)};let p=F(C,!1);const u=()=>{if(p=!0,C.destroyed)f=!1;if(f&&(!C.writable||R))return;if(!R||y)w.call(C)},m=(i)=>{w.call(C,i)};let b=V(C);const c=()=>{b=!0;const i=W(C)||M(C);if(i&&typeof i!=="boolean")return w.call(C,i);if(v&&!p&&U(C,!0)){if(!F(C,!1))return w.call(C,new Z)}if(R&&!y){if(!N(C,!1))return w.call(C,new Z)}w.call(C)},d=()=>{C.req.on("finish",h)};if(x(C)){if(C.on("complete",h),!f)C.on("abort",c);if(C.req)d();else C.on("request",d)}else if(R&&!g)C.on("end",k),C.on("close",k);if(!f&&typeof C.aborted==="boolean")C.on("aborted",c);if(C.on("end",u),C.on("finish",h),E.error!==!1)C.on("error",m);if(C.on("close",c),b)Aq(c);else if(g!==null&&g!==void 0&&g.errorEmitted||S!==null&&S!==void 0&&S.errorEmitted){if(!f)Aq(c)}else if(!v&&(!f||G(C))&&(y||j(C)===!1))Aq(c);else if(!R&&(!f||j(C))&&(p||G(C)===!1))Aq(c);else if(S&&C.req&&C.aborted)Aq(c);const l=()=>{if(w=T,C.removeListener("aborted",c),C.removeListener("complete",h),C.removeListener("abort",c),C.removeListener("request",d),C.req)C.req.removeListener("finish",h);C.removeListener("end",k),C.removeListener("close",k),C.removeListener("finish",h),C.removeListener("end",u),C.removeListener("error",m),C.removeListener("close",c)};if(E.signal&&!b){const i=()=>{const n=w;l(),n.call(C,new X(void 0,{cause:E.signal.reason}))};if(E.signal.aborted)Aq(i);else{const n=w;w=K((...o)=>{E.signal.removeEventListener("abort",i),n.apply(C,o)}),E.signal.addEventListener("abort",i)}}return l}function O(C,E){return new z((w,D)=>{A(C,E,(_)=>{if(_)D(_);else w()})})}Q.exports=A,Q.exports.finished=O}}),eq=cq({"node_modules/readable-stream/lib/internal/streams/operators.js"(q,Q){var X=globalThis.AbortController||Eq("abort-controller").AbortController,{codes:{ERR_INVALID_ARG_TYPE:J,ERR_MISSING_ARGS:H,ERR_OUT_OF_RANGE:Z},AbortError:K}=sq(),{validateAbortSignal:B,validateInteger:Y,validateObject:$}=aq(),z=Dq().Symbol("kWeak"),{finished:V}=tq(),{ArrayPrototypePush:G,MathFloor:U,Number:F,NumberIsNaN:M,Promise:j,PromiseReject:L,PromisePrototypeCatch:N,Symbol:W}=Dq(),P=W("kEmpty"),I=W("kEof");function x(f,y){if(typeof f!=="function")throw new J("fn",["Function","AsyncFunction"],f);if(y!=null)$(y,"options");if((y===null||y===void 0?void 0:y.signal)!=null)B(y.signal,"options.signal");let h=1;if((y===null||y===void 0?void 0:y.concurrency)!=null)h=U(y.concurrency);return Y(h,"concurrency",1),async function*p(){var u,m;const b=new X,c=this,d=[],l=b.signal,i={signal:l},n=()=>b.abort();if(y!==null&&y!==void 0&&(u=y.signal)!==null&&u!==void 0&&u.aborted)n();y===null||y===void 0||(m=y.signal)===null||m===void 0||m.addEventListener("abort",n);let o,s,a=!1;function r(){a=!0}async function t(){try{for await(let Qq of c){var e;if(a)return;if(l.aborted)throw new K;try{Qq=f(Qq,i)}catch(Xq){Qq=L(Xq)}if(Qq===P)continue;if(typeof((e=Qq)===null||e===void 0?void 0:e.catch)==="function")Qq.catch(r);if(d.push(Qq),o)o(),o=null;if(!a&&d.length&&d.length>=h)await new j((Xq)=>{s=Xq})}d.push(I)}catch(Qq){const Xq=L(Qq);N(Xq,r),d.push(Xq)}finally{var qq;if(a=!0,o)o(),o=null;y===null||y===void 0||(qq=y.signal)===null||qq===void 0||qq.removeEventListener("abort",n)}}t();try{while(!0){while(d.length>0){const e=await d[0];if(e===I)return;if(l.aborted)throw new K;if(e!==P)yield e;if(d.shift(),s)s(),s=null}await new j((e)=>{o=e})}}finally{if(b.abort(),a=!0,s)s(),s=null}}.call(this)}function T(f=void 0){if(f!=null)$(f,"options");if((f===null||f===void 0?void 0:f.signal)!=null)B(f.signal,"options.signal");return async function*y(){let h=0;for await(let u of this){var p;if(f!==null&&f!==void 0&&(p=f.signal)!==null&&p!==void 0&&p.aborted)throw new K({cause:f.signal.reason});yield[h++,u]}}.call(this)}async function A(f,y=void 0){for await(let h of w.call(this,f,y))return!0;return!1}async function O(f,y=void 0){if(typeof f!=="function")throw new J("fn",["Function","AsyncFunction"],f);return!await A.call(this,async(...h)=>{return!await f(...h)},y)}async function C(f,y){for await(let h of w.call(this,f,y))return h;return}async function E(f,y){if(typeof f!=="function")throw new J("fn",["Function","AsyncFunction"],f);async function h(p,u){return await f(p,u),P}for await(let p of x.call(this,h,y));}function w(f,y){if(typeof f!=="function")throw new J("fn",["Function","AsyncFunction"],f);async function h(p,u){if(await f(p,u))return p;return P}return x.call(this,h,y)}var D=class extends H{constructor(){super("reduce");this.message="Reduce of an empty stream requires an initial value"}};async function _(f,y,h){var p;if(typeof f!=="function")throw new J("reducer",["Function","AsyncFunction"],f);if(h!=null)$(h,"options");if((h===null||h===void 0?void 0:h.signal)!=null)B(h.signal,"options.signal");let u=arguments.length>1;if(h!==null&&h!==void 0&&(p=h.signal)!==null&&p!==void 0&&p.aborted){const l=new K(void 0,{cause:h.signal.reason});throw this.once("error",()=>{}),await V(this.destroy(l)),l}const m=new X,b=m.signal;if(h!==null&&h!==void 0&&h.signal){const l={once:!0,[z]:this};h.signal.addEventListener("abort",()=>m.abort(),l)}let c=!1;try{for await(let l of this){var d;if(c=!0,h!==null&&h!==void 0&&(d=h.signal)!==null&&d!==void 0&&d.aborted)throw new K;if(!u)y=l,u=!0;else y=await f(y,l,{signal:b})}if(!c&&!u)throw new D}finally{m.abort()}return y}async function v(f){if(f!=null)$(f,"options");if((f===null||f===void 0?void 0:f.signal)!=null)B(f.signal,"options.signal");const y=[];for await(let p of this){var h;if(f!==null&&f!==void 0&&(h=f.signal)!==null&&h!==void 0&&h.aborted)throw new K(void 0,{cause:f.signal.reason});G(y,p)}return y}function R(f,y){const h=x.call(this,f,y);return async function*p(){for await(let u of h)yield*u}.call(this)}function g(f){if(f=F(f),M(f))return 0;if(f<0)throw new Z("number",">= 0",f);return f}function S(f,y=void 0){if(y!=null)$(y,"options");if((y===null||y===void 0?void 0:y.signal)!=null)B(y.signal,"options.signal");return f=g(f),async function*h(){var p;if(y!==null&&y!==void 0&&(p=y.signal)!==null&&p!==void 0&&p.aborted)throw new K;for await(let m of this){var u;if(y!==null&&y!==void 0&&(u=y.signal)!==null&&u!==void 0&&u.aborted)throw new K;if(f--<=0)yield m}}.call(this)}function k(f,y=void 0){if(y!=null)$(y,"options");if((y===null||y===void 0?void 0:y.signal)!=null)B(y.signal,"options.signal");return f=g(f),async function*h(){var p;if(y!==null&&y!==void 0&&(p=y.signal)!==null&&p!==void 0&&p.aborted)throw new K;for await(let m of this){var u;if(y!==null&&y!==void 0&&(u=y.signal)!==null&&u!==void 0&&u.aborted)throw new K;if(f-- >0)yield m;else return}}.call(this)}Q.exports.streamReturningOperators={asIndexedPairs:T,drop:S,filter:w,flatMap:R,map:x,take:k},Q.exports.promiseReturningOperators={every:O,forEach:E,reduce:_,toArray:v,some:A,find:C}}}),qQ=cq({"node_modules/readable-stream/lib/internal/streams/destroy.js"(q,Q){var{aggregateTwoErrors:X,codes:{ERR_MULTIPLE_CALLBACK:J},AbortError:H}=sq(),{Symbol:Z}=Dq(),{kDestroyed:K,isDestroyed:B,isFinished:Y,isServerRequest:$}=rq(),z="#kDestroy",V="#kConstruct";function G(E,w,D){if(E){if(E.stack,w&&!w.errored)w.errored=E;if(D&&!D.errored)D.errored=E}}function U(E,w){const D=this._readableState,_=this._writableState,v=_||D;if(_&&_.destroyed||D&&D.destroyed){if(typeof w==="function")w();return this}if(G(E,_,D),_)_.destroyed=!0;if(D)D.destroyed=!0;if(!v.constructed)this.once(z,(R)=>{F(this,X(R,E),w)});else F(this,E,w);return this}function F(E,w,D){let _=!1;function v(R){if(_)return;_=!0;const{_readableState:g,_writableState:S}=E;if(G(R,S,g),S)S.closed=!0;if(g)g.closed=!0;if(typeof D==="function")D(R);if(R)Aq(M,E,R);else Aq(j,E)}try{E._destroy(w||null,v)}catch(R){v(R)}}function M(E,w){L(E,w),j(E)}function j(E){const{_readableState:w,_writableState:D}=E;if(D)D.closeEmitted=!0;if(w)w.closeEmitted=!0;if(D&&D.emitClose||w&&w.emitClose)E.emit("close")}function L(E,w){const D=E?._readableState,_=E?._writableState;if(_?.errorEmitted||D?.errorEmitted)return;if(_)_.errorEmitted=!0;if(D)D.errorEmitted=!0;E?.emit?.("error",w)}function N(){const E=this._readableState,w=this._writableState;if(E)E.constructed=!0,E.closed=!1,E.closeEmitted=!1,E.destroyed=!1,E.errored=null,E.errorEmitted=!1,E.reading=!1,E.ended=E.readable===!1,E.endEmitted=E.readable===!1;if(w)w.constructed=!0,w.destroyed=!1,w.closed=!1,w.closeEmitted=!1,w.errored=null,w.errorEmitted=!1,w.finalCalled=!1,w.prefinished=!1,w.ended=w.writable===!1,w.ending=w.writable===!1,w.finished=w.writable===!1}function W(E,w,D){const _=E?._readableState,v=E?._writableState;if(v&&v.destroyed||_&&_.destroyed)return this;if(_&&_.autoDestroy||v&&v.autoDestroy)E.destroy(w);else if(w){if(Error.captureStackTrace(w),v&&!v.errored)v.errored=w;if(_&&!_.errored)_.errored=w;if(D)Aq(L,E,w);else L(E,w)}}function P(E,w){if(typeof E._construct!=="function")return;const{_readableState:D,_writableState:_}=E;if(D)D.constructed=!1;if(_)_.constructed=!1;if(E.once(V,w),E.listenerCount(V)>1)return;Aq(I,E)}function I(E){let w=!1;function D(_){if(w){W(E,_!==null&&_!==void 0?_:new J);return}w=!0;const{_readableState:v,_writableState:R}=E,g=R||v;if(v)v.constructed=!0;if(R)R.constructed=!0;if(g.destroyed)E.emit(z,_);else if(_)W(E,_,!0);else Aq(x,E)}try{E._construct(D)}catch(_){D(_)}}function x(E){E.emit(V)}function T(E){return E&&E.setHeader&&typeof E.abort==="function"}function A(E){E.emit("close")}function O(E,w){E.emit("error",w),Aq(A,E)}function C(E,w){if(!E||B(E))return;if(!w&&!Y(E))w=new H;if($(E))E.socket=null,E.destroy(w);else if(T(E))E.abort();else if(T(E.req))E.req.abort();else if(typeof E.destroy==="function")E.destroy(w);else if(typeof E.close==="function")E.close();else if(w)Aq(O,E);else Aq(A,E);if(!E.destroyed)E[K]=!0}Q.exports={construct:P,destroyer:C,destroy:U,undestroy:N,errorOrDestroy:W}}}),QQ=cq({"node_modules/readable-stream/lib/internal/streams/legacy.js"(q,Q){var{ArrayIsArray:X,ObjectSetPrototypeOf:J}=Dq(),{EventEmitter:H}=Eq("bun:events_native"),Z;if(Sq)Z=wq;else Z=H;function K(Y){if(!(this instanceof K))return new K(Y);Z.call(this,Y)}J(K.prototype,Z.prototype),J(K,Z),K.prototype.pipe=function(Y,$){const z=this;function V(N){if(Y.writable&&Y.write(N)===!1&&z.pause)z.pause()}z.on("data",V);function G(){if(z.readable&&z.resume)z.resume()}if(Y.on("drain",G),!Y._isStdio&&(!$||$.end!==!1))z.on("end",F),z.on("close",M);let U=!1;function F(){if(U)return;U=!0,Y.end()}function M(){if(U)return;if(U=!0,typeof Y.destroy==="function")Y.destroy()}function j(N){if(L(),Z.listenerCount(this,"error")===0)this.emit("error",N)}B(z,"error",j),B(Y,"error",j);function L(){z.removeListener("data",V),Y.removeListener("drain",G),z.removeListener("end",F),z.removeListener("close",M),z.removeListener("error",j),Y.removeListener("error",j),z.removeListener("end",L),z.removeListener("close",L),Y.removeListener("close",L)}return z.on("end",L),z.on("close",L),Y.on("close",L),Y.emit("pipe",z),Y};function B(Y,$,z){if(typeof Y.prependListener==="function")return Y.prependListener($,z);if(!Y._events||!Y._events[$])Y.on($,z);else if(X(Y._events[$]))Y._events[$].unshift(z);else Y._events[$]=[z,Y._events[$]]}Q.exports={Stream:K,prependListener:B}}}),XQ=cq({"node_modules/readable-stream/lib/internal/streams/add-abort-signal.js"(q,Q){var{AbortError:X,codes:J}=sq(),H=tq(),{ERR_INVALID_ARG_TYPE:Z}=J,K=(Y,$)=>{if(typeof Y!=="object"||!("aborted"in Y))throw new Z($,"AbortSignal",Y)};function B(Y){return!!(Y&&typeof Y.pipe==="function")}Q.exports.addAbortSignal=function Y($,z){if(K($,"signal"),!B(z))throw new Z("stream","stream.Stream",z);return Q.exports.addAbortSignalNoValidate($,z)},Q.exports.addAbortSignalNoValidate=function(Y,$){if(typeof Y!=="object"||!("aborted"in Y))return $;const z=()=>{$.destroy(new X(void 0,{cause:Y.reason}))};if(Y.aborted)z();else Y.addEventListener("abort",z),H($,()=>Y.removeEventListener("abort",z));return $}}}),JQ=cq({"node_modules/readable-stream/lib/internal/streams/state.js"(q,Q){var{MathFloor:X,NumberIsInteger:J}=Dq(),{ERR_INVALID_ARG_VALUE:H}=sq().codes;function Z(Y,$,z){return Y.highWaterMark!=null?Y.highWaterMark:$?Y[z]:null}function K(Y){return Y?16:16384}function B(Y,$,z,V){const G=Z($,V,z);if(G!=null){if(!J(G)||G<0){const U=V?`options.${z}`:"options.highWaterMark";throw new H(U,G)}return X(G)}return K(Y.objectMode)}Q.exports={getHighWaterMark:B,getDefaultHighWaterMark:K}}}),HQ=cq({"node_modules/readable-stream/lib/internal/streams/from.js"(q,Q){var{PromisePrototypeThen:X,SymbolAsyncIterator:J,SymbolIterator:H}=Dq(),{ERR_INVALID_ARG_TYPE:Z,ERR_STREAM_NULL_VALUES:K}=sq().codes;function B(Y,$,z){let V;if(typeof $==="string"||$ instanceof Buffer)return new Y({objectMode:!0,...z,read(){this.push($),this.push(null)}});let G;if($&&$[J])G=!0,V=$[J]();else if($&&$[H])G=!1,V=$[H]();else throw new Z("iterable",["Iterable"],$);const U=new Y({objectMode:!0,highWaterMark:1,...z});let F=!1;U._read=function(){if(!F)F=!0,j()},U._destroy=function(L,N){X(M(L),()=>Aq(N,L),(W)=>Aq(N,W||L))};async function M(L){const N=L!==void 0&&L!==null,W=typeof V.throw==="function";if(N&&W){const{value:P,done:I}=await V.throw(L);if(await P,I)return}if(typeof V.return==="function"){const{value:P}=await V.return();await P}}async function j(){for(;;){try{const{value:L,done:N}=G?await V.next():V.next();if(N)U.push(null);else{const W=L&&typeof L.then==="function"?await L:L;if(W===null)throw F=!1,new K;else if(U.push(W))continue;else F=!1}}catch(L){U.destroy(L)}break}}return U}Q.exports=B}}),ZQ,KQ=cq({"node_modules/readable-stream/lib/internal/streams/readable.js"(q,Q){var{ArrayPrototypeIndexOf:X,NumberIsInteger:J,NumberIsNaN:H,NumberParseInt:Z,ObjectDefineProperties:K,ObjectKeys:B,ObjectSetPrototypeOf:Y,Promise:$,SafeSet:z,SymbolAsyncIterator:V,Symbol:G}=Dq(),U=globalThis[Symbol.for("Bun.lazy")]("bun:stream").ReadableState,{EventEmitter:F}=Eq("bun:events_native"),{Stream:M,prependListener:j}=QQ();function L(Xq){if(!(this instanceof L))return new L(Xq);const Jq=this instanceof vq();if(this._readableState=new U(Xq,this,Jq),Xq){const{read:Hq,destroy:Zq,construct:Kq,signal:Bq}=Xq;if(typeof Hq==="function")this._read=Hq;if(typeof Zq==="function")this._destroy=Zq;if(typeof Kq==="function")this._construct=Kq;if(Bq&&!Jq)P(Bq,this)}M.call(this,Xq),w.construct(this,()=>{if(this._readableState.needReadable)C(this,this._readableState)})}Y(L.prototype,M.prototype),Y(L,M),L.prototype.on=function(Xq,Jq){const Hq=M.prototype.on.call(this,Xq,Jq),Zq=this._readableState;if(Xq==="data")if(Zq.readableListening=this.listenerCount("readable")>0,Zq.flowing!==!1)xq&&Iq("in flowing mode!",this.__id),this.resume();else xq&&Iq("in readable mode!",this.__id);else if(Xq==="readable"){if(xq&&Iq("readable listener added!",this.__id),!Zq.endEmitted&&!Zq.readableListening){if(Zq.readableListening=Zq.needReadable=!0,Zq.flowing=!1,Zq.emittedReadable=!1,xq&&Iq("on readable - state.length, reading, emittedReadable",Zq.length,Zq.reading,Zq.emittedReadable,this.__id),Zq.length)E(this,Zq);else if(!Zq.reading)Aq(n,this)}else if(Zq.endEmitted)xq&&Iq("end already emitted...",this.__id)}return Hq};class N extends L{#q;#Q;#X;#J;constructor(Xq,Jq){const{objectMode:Hq,highWaterMark:Zq,encoding:Kq,signal:Bq}=Xq;super({objectMode:Hq,highWaterMark:Zq,encoding:Kq,signal:Bq});this.#X=[],this.#q=void 0,this.#J=Jq,this.#Q=!1}#H(){var Xq=this.#X,Jq=0,Hq=Xq.length;for(;Jq0)this.#X=[];return!1}#Z(Xq){Xq.releaseLock(),this.#q=void 0,this.#Q=!0,this.push(null);return}async _read(){xq&&Iq("ReadableFromWeb _read()",this.__id);var Xq=this.#J,Jq=this.#q;if(Xq)Jq=this.#q=Xq.getReader(),this.#J=void 0;else if(this.#H())return;var Hq;try{do{var Zq=!1,Kq;const Bq=Jq.readMany();if(Cq(Bq)){if({done:Zq,value:Kq}=await Bq,this.#Q){this.#X.push(...Kq);return}}else({done:Zq,value:Kq}=Bq);if(Zq){this.#Z(Jq);return}if(!this.push(Kq[0])){this.#X=Kq.slice(1);return}for(let Yq=1,$q=Kq.length;Yq<$q;Yq++)if(!this.push(Kq[Yq])){this.#X=Kq.slice(Yq+1);return}}while(!this.#Q)}catch(Bq){Hq=Bq}finally{if(Hq)throw Hq}}_destroy(Xq,Jq){if(!this.#Q){var Hq=this.#q;if(Hq)this.#q=void 0,Hq.cancel(Xq).finally(()=>{this.#Q=!0,Jq(Xq)});return}try{Jq(Xq)}catch(Zq){globalThis.reportError(Zq)}}}function W(Xq,Jq={}){if(!dq(Xq))throw new _("readableStream","ReadableStream",Xq);k(Jq,"options");const{highWaterMark:Hq,encoding:Zq,objectMode:Kq=!1,signal:Bq}=Jq;if(Zq!==void 0&&!Buffer.isEncoding(Zq))throw new oq(Zq,"options.encoding");return lq(Kq,"options.objectMode"),WQ(L,Xq,Jq)||new N({highWaterMark:Hq,encoding:Zq,objectMode:Kq,signal:Bq},Xq)}Q.exports=L,ZQ=N;var{addAbortSignal:P}=XQ(),I=tq();const{maybeReadMore:x,resume:T,emitReadable:A,onEofChunk:O}=globalThis[Symbol.for("Bun.lazy")]("bun:stream");function C(Xq,Jq){process.nextTick(x,Xq,Jq)}function E(Xq,Jq){xq&&Iq("NativeReadable - emitReadable",Xq.__id),A(Xq,Jq)}var w=qQ(),{aggregateTwoErrors:D,codes:{ERR_INVALID_ARG_TYPE:_,ERR_METHOD_NOT_IMPLEMENTED:v,ERR_OUT_OF_RANGE:R,ERR_STREAM_PUSH_AFTER_EOF:g,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:S}}=sq(),{validateObject:k}=aq(),{StringDecoder:f}=Eq("string_decoder"),y=HQ(),h=()=>{},{errorOrDestroy:p}=w;L.prototype.destroy=w.destroy,L.prototype._undestroy=w.undestroy,L.prototype._destroy=function(Xq,Jq){Jq(Xq)},L.prototype[F.captureRejectionSymbol]=function(Xq){this.destroy(Xq)},L.prototype.push=function(Xq,Jq){return u(this,Xq,Jq,!1)},L.prototype.unshift=function(Xq,Jq){return u(this,Xq,Jq,!0)};function u(Xq,Jq,Hq,Zq){xq&&Iq("readableAddChunk",Jq,Xq.__id);const Kq=Xq._readableState;let Bq;if(!Kq.objectMode){if(typeof Jq==="string"){if(Hq=Hq||Kq.defaultEncoding,Kq.encoding!==Hq)if(Zq&&Kq.encoding)Jq=Buffer.from(Jq,Hq).toString(Kq.encoding);else Jq=Buffer.from(Jq,Hq),Hq=""}else if(Jq instanceof Buffer)Hq="";else if(M._isUint8Array(Jq)){if(Zq||!Kq.decoder)Jq=M._uint8ArrayToBuffer(Jq);Hq=""}else if(Jq!=null)Bq=new _("chunk",["string","Buffer","Uint8Array"],Jq)}if(Bq)p(Xq,Bq);else if(Jq===null)Kq.reading=!1,O(Xq,Kq);else if(Kq.objectMode||Jq&&Jq.length>0)if(Zq)if(Kq.endEmitted)p(Xq,new S);else if(Kq.destroyed||Kq.errored)return!1;else m(Xq,Kq,Jq,!0);else if(Kq.ended)p(Xq,new g);else if(Kq.destroyed||Kq.errored)return!1;else if(Kq.reading=!1,Kq.decoder&&!Hq)if(Jq=Kq.decoder.write(Jq),Kq.objectMode||Jq.length!==0)m(Xq,Kq,Jq,!1);else C(Xq,Kq);else m(Xq,Kq,Jq,!1);else if(!Zq)Kq.reading=!1,C(Xq,Kq);return!Kq.ended&&(Kq.length0){if(Jq.multiAwaitDrain)Jq.awaitDrainWriters.clear();else Jq.awaitDrainWriters=null;Jq.dataEmitted=!0,Xq.emit("data",Hq)}else{if(Jq.length+=Jq.objectMode?1:Hq.length,Zq)Jq.buffer.unshift(Hq);else Jq.buffer.push(Hq);if(xq&&Iq("needReadable @ addChunk",Jq.needReadable,Xq.__id),Jq.needReadable)E(Xq,Jq)}C(Xq,Jq)}L.prototype.isPaused=function(){const Xq=this._readableState;return Xq.paused===!0||Xq.flowing===!1},L.prototype.setEncoding=function(Xq){const Jq=new f(Xq);this._readableState.decoder=Jq,this._readableState.encoding=this._readableState.decoder.encoding;const Hq=this._readableState.buffer;let Zq="";for(let Kq=Hq.length;Kq>0;Kq--)Zq+=Jq.write(Hq.shift());if(Zq!=="")Hq.push(Zq);return this._readableState.length=Zq.length,this};var b=1073741824;function c(Xq){if(Xq>b)throw new R("size","<= 1GiB",Xq);else Xq--,Xq|=Xq>>>1,Xq|=Xq>>>2,Xq|=Xq>>>4,Xq|=Xq>>>8,Xq|=Xq>>>16,Xq++;return Xq}function d(Xq,Jq){if(Xq<=0||Jq.length===0&&Jq.ended)return 0;if(Jq.objectMode)return 1;if(H(Xq)){if(Jq.flowing&&Jq.length)return Jq.buffer.first().length;return Jq.length}if(Xq<=Jq.length)return Xq;return Jq.ended?Jq.length:0}L.prototype.read=function(Xq){if(xq&&Iq("read - n =",Xq,this.__id),!J(Xq))Xq=Z(Xq,10);const Jq=this._readableState,Hq=Xq;if(Xq>Jq.highWaterMark)Jq.highWaterMark=c(Xq);if(Xq!==0)Jq.emittedReadable=!1;if(Xq===0&&Jq.needReadable&&((Jq.highWaterMark!==0?Jq.length>=Jq.highWaterMark:Jq.length>0)||Jq.ended)){if(xq&&Iq("read: emitReadable or endReadable",Jq.length,Jq.ended,this.__id),Jq.length===0&&Jq.ended)r(this);else E(this,Jq);return null}if(Xq=d(Xq,Jq),Xq===0&&Jq.ended){if(xq&&Iq("read: calling endReadable if length 0 -- length, state.ended",Jq.length,Jq.ended,this.__id),Jq.length===0)r(this);return null}let Zq=Jq.needReadable;if(xq&&Iq("need readable",Zq,this.__id),Jq.length===0||Jq.length-Xq0)Bq=a(Xq,Jq);else Bq=null;if(xq&&Iq("ret @ read",Bq,this.__id),Bq===null)Jq.needReadable=Jq.length<=Jq.highWaterMark,xq&&Iq("state.length while ret = null",Jq.length,this.__id),Xq=0;else if(Jq.length-=Xq,Jq.multiAwaitDrain)Jq.awaitDrainWriters.clear();else Jq.awaitDrainWriters=null;if(Jq.length===0){if(!Jq.ended)Jq.needReadable=!0;if(Hq!==Xq&&Jq.ended)r(this)}if(Bq!==null&&!Jq.errorEmitted&&!Jq.closeEmitted)Jq.dataEmitted=!0,this.emit("data",Bq);return Bq},L.prototype._read=function(Xq){throw new v("_read()")},L.prototype.pipe=function(Xq,Jq){const Hq=this,Zq=this._readableState;if(Zq.pipes.length===1){if(!Zq.multiAwaitDrain)Zq.multiAwaitDrain=!0,Zq.awaitDrainWriters=new z(Zq.awaitDrainWriters?[Zq.awaitDrainWriters]:[])}Zq.pipes.push(Xq),xq&&Iq("pipe count=%d opts=%j",Zq.pipes.length,Jq,Hq.__id);const Bq=(!Jq||Jq.end!==!1)&&Xq!==process.stdout&&Xq!==process.stderr?$q:Nq;if(Zq.endEmitted)Aq(Bq);else Hq.once("end",Bq);Xq.on("unpipe",Yq);function Yq(Wq,Pq){if(xq&&Iq("onunpipe",Hq.__id),Wq===Hq){if(Pq&&Pq.hasUnpiped===!1)Pq.hasUnpiped=!0,Gq()}}function $q(){xq&&Iq("onend",Hq.__id),Xq.end()}let zq,Vq=!1;function Gq(){if(xq&&Iq("cleanup",Hq.__id),Xq.removeListener("close",jq),Xq.removeListener("finish",Lq),zq)Xq.removeListener("drain",zq);if(Xq.removeListener("error",Mq),Xq.removeListener("unpipe",Yq),Hq.removeListener("end",$q),Hq.removeListener("end",Nq),Hq.removeListener("data",Fq),Vq=!0,zq&&Zq.awaitDrainWriters&&(!Xq._writableState||Xq._writableState.needDrain))zq()}function Uq(){if(!Vq){if(Zq.pipes.length===1&&Zq.pipes[0]===Xq)xq&&Iq("false write response, pause",0,Hq.__id),Zq.awaitDrainWriters=Xq,Zq.multiAwaitDrain=!1;else if(Zq.pipes.length>1&&Zq.pipes.includes(Xq))xq&&Iq("false write response, pause",Zq.awaitDrainWriters.size,Hq.__id),Zq.awaitDrainWriters.add(Xq);Hq.pause()}if(!zq)zq=l(Hq,Xq),Xq.on("drain",zq)}Hq.on("data",Fq);function Fq(Wq){xq&&Iq("ondata",Hq.__id);const Pq=Xq.write(Wq);if(xq&&Iq("dest.write",Pq,Hq.__id),Pq===!1)Uq()}function Mq(Wq){if(Iq("onerror",Wq),Nq(),Xq.removeListener("error",Mq),Xq.listenerCount("error")===0){const Pq=Xq._writableState||Xq._readableState;if(Pq&&!Pq.errorEmitted)p(Xq,Wq);else Xq.emit("error",Wq)}}j(Xq,"error",Mq);function jq(){Xq.removeListener("finish",Lq),Nq()}Xq.once("close",jq);function Lq(){Iq("onfinish"),Xq.removeListener("close",jq),Nq()}Xq.once("finish",Lq);function Nq(){Iq("unpipe"),Hq.unpipe(Xq)}if(Xq.emit("pipe",Hq),Xq.writableNeedDrain===!0){if(Zq.flowing)Uq()}else if(!Zq.flowing)Iq("pipe resume"),Hq.resume();return Xq};function l(Xq,Jq){return function Hq(){const Zq=Xq._readableState;if(Zq.awaitDrainWriters===Jq)Iq("pipeOnDrain",1),Zq.awaitDrainWriters=null;else if(Zq.multiAwaitDrain)Iq("pipeOnDrain",Zq.awaitDrainWriters.size),Zq.awaitDrainWriters.delete(Jq);if((!Zq.awaitDrainWriters||Zq.awaitDrainWriters.size===0)&&Xq.listenerCount("data"))Xq.resume()}}L.prototype.unpipe=function(Xq){const Jq=this._readableState,Hq={hasUnpiped:!1};if(Jq.pipes.length===0)return this;if(!Xq){const Kq=Jq.pipes;Jq.pipes=[],this.pause();for(let Bq=0;Bq0,Jq.resumeScheduled&&Jq.paused===!1)Jq.flowing=!0;else if(Xq.listenerCount("data")>0)Xq.resume();else if(!Jq.readableListening)Jq.flowing=null}function n(Xq){xq&&Iq("on readable nextTick, calling read(0)",Xq.__id),Xq.read(0)}L.prototype.resume=function(){const Xq=this._readableState;if(!Xq.flowing)xq&&Iq("resume",this.__id),Xq.flowing=!Xq.readableListening,T(this,Xq);return Xq.paused=!1,this},L.prototype.pause=function(){if(xq&&Iq("call pause flowing=%j",this._readableState.flowing,this.__id),this._readableState.flowing!==!1)xq&&Iq("pause",this.__id),this._readableState.flowing=!1,this.emit("pause");return this._readableState.paused=!0,this},L.prototype.wrap=function(Xq){let Jq=!1;Xq.on("data",(Zq)=>{if(!this.push(Zq)&&Xq.pause)Jq=!0,Xq.pause()}),Xq.on("end",()=>{this.push(null)}),Xq.on("error",(Zq)=>{p(this,Zq)}),Xq.on("close",()=>{this.destroy()}),Xq.on("destroy",()=>{this.destroy()}),this._read=()=>{if(Jq&&Xq.resume)Jq=!1,Xq.resume()};const Hq=B(Xq);for(let Zq=1;Zq{Kq=Yq?D(Kq,Yq):null,Hq(),Hq=h});try{while(!0){const Yq=Xq.destroyed?null:Xq.read();if(Yq!==null)yield Yq;else if(Kq)throw Kq;else if(Kq===null)return;else await new $(Zq)}}catch(Yq){throw Kq=D(Kq,Yq),Kq}finally{if((Kq||(Jq===null||Jq===void 0?void 0:Jq.destroyOnReturn)!==!1)&&(Kq===void 0||Xq._readableState.autoDestroy))w.destroyer(Xq,null);else Xq.off("readable",Zq),Bq()}}K(L.prototype,{readable:{get(){const Xq=this._readableState;return!!Xq&&Xq.readable!==!1&&!Xq.destroyed&&!Xq.errorEmitted&&!Xq.endEmitted},set(Xq){if(this._readableState)this._readableState.readable=!!Xq}},readableDidRead:{enumerable:!1,get:function(){return this._readableState.dataEmitted}},readableAborted:{enumerable:!1,get:function(){return!!(this._readableState.readable!==!1&&(this._readableState.destroyed||this._readableState.errored)&&!this._readableState.endEmitted)}},readableHighWaterMark:{enumerable:!1,get:function(){return this._readableState.highWaterMark}},readableBuffer:{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}},readableFlowing:{enumerable:!1,get:function(){return this._readableState.flowing},set:function(Xq){if(this._readableState)this._readableState.flowing=Xq}},readableLength:{enumerable:!1,get(){return this._readableState.length}},readableObjectMode:{enumerable:!1,get(){return this._readableState?this._readableState.objectMode:!1}},readableEncoding:{enumerable:!1,get(){return this._readableState?this._readableState.encoding:null}},errored:{enumerable:!1,get(){return this._readableState?this._readableState.errored:null}},closed:{get(){return this._readableState?this._readableState.closed:!1}},destroyed:{enumerable:!1,get(){return this._readableState?this._readableState.destroyed:!1},set(Xq){if(!this._readableState)return;this._readableState.destroyed=Xq}},readableEnded:{enumerable:!1,get(){return this._readableState?this._readableState.endEmitted:!1}}}),L._fromList=a;function a(Xq,Jq){if(Jq.length===0)return null;let Hq;if(Jq.objectMode)Hq=Jq.buffer.shift();else if(!Xq||Xq>=Jq.length){if(Jq.decoder)Hq=Jq.buffer.join("");else if(Jq.buffer.length===1)Hq=Jq.buffer.first();else Hq=Jq.buffer.concat(Jq.length);Jq.buffer.clear()}else Hq=Jq.buffer.consume(Xq,Jq.decoder);return Hq}function r(Xq){const Jq=Xq._readableState;if(xq&&Iq("endEmitted @ endReadable",Jq.endEmitted,Xq.__id),!Jq.endEmitted)Jq.ended=!0,Aq(t,Jq,Xq)}function t(Xq,Jq){if(xq&&Iq("endReadableNT -- endEmitted, state.length",Xq.endEmitted,Xq.length,Jq.__id),!Xq.errored&&!Xq.closeEmitted&&!Xq.endEmitted&&Xq.length===0){if(Xq.endEmitted=!0,Jq.emit("end"),xq&&Iq("end emitted @ endReadableNT",Jq.__id),Jq.writable&&Jq.allowHalfOpen===!1)Aq(e,Jq);else if(Xq.autoDestroy){const Hq=Jq._writableState;if(!Hq||Hq.autoDestroy&&(Hq.finished||Hq.writable===!1))Jq.destroy()}}}function e(Xq){if(Xq.writable&&!Xq.writableEnded&&!Xq.destroyed)Xq.end()}L.from=function(Xq,Jq){return y(L,Xq,Jq)};var qq={newStreamReadableFromReadableStream:W};function Qq(){if(qq===void 0)qq={};return qq}L.fromWeb=function(Xq,Jq){return Qq().newStreamReadableFromReadableStream(Xq,Jq)},L.toWeb=function(Xq){return Qq().newReadableStreamFromStreamReadable(Xq)},L.wrap=function(Xq,Jq){var Hq,Zq;return new L({objectMode:(Hq=(Zq=Xq.readableObjectMode)!==null&&Zq!==void 0?Zq:Xq.objectMode)!==null&&Hq!==void 0?Hq:!0,...Jq,destroy(Kq,Bq){w.destroyer(Xq,Kq),Bq(Kq)}}).wrap(Xq)}}}),BQ=cq({"node_modules/readable-stream/lib/internal/streams/writable.js"(q,Q){var{ArrayPrototypeSlice:X,Error:J,FunctionPrototypeSymbolHasInstance:H,ObjectDefineProperty:Z,ObjectDefineProperties:K,ObjectSetPrototypeOf:B,StringPrototypeToLowerCase:Y,Symbol:$,SymbolHasInstance:z}=Dq(),{EventEmitter:V}=Eq("bun:events_native"),G=QQ().Stream,U=qQ(),{addAbortSignal:F}=XQ(),{getHighWaterMark:M,getDefaultHighWaterMark:j}=JQ(),{ERR_INVALID_ARG_TYPE:L,ERR_METHOD_NOT_IMPLEMENTED:N,ERR_MULTIPLE_CALLBACK:W,ERR_STREAM_CANNOT_PIPE:P,ERR_STREAM_DESTROYED:I,ERR_STREAM_ALREADY_FINISHED:x,ERR_STREAM_NULL_VALUES:T,ERR_STREAM_WRITE_AFTER_END:A,ERR_UNKNOWN_ENCODING:O}=sq().codes,{errorOrDestroy:C}=U;function E(s={}){const a=this instanceof vq();if(!a&&!H(E,this))return new E(s);if(this._writableState=new _(s,this,a),s){if(typeof s.write==="function")this._write=s.write;if(typeof s.writev==="function")this._writev=s.writev;if(typeof s.destroy==="function")this._destroy=s.destroy;if(typeof s.final==="function")this._final=s.final;if(typeof s.construct==="function")this._construct=s.construct;if(s.signal)F(s.signal,this)}G.call(this,s),U.construct(this,()=>{const r=this._writableState;if(!r.writing)u(this,r);d(this,r)})}B(E.prototype,G.prototype),B(E,G),Q.exports=E;function w(){}var D=$("kOnFinished");function _(s,a,r){if(typeof r!=="boolean")r=a instanceof vq();if(this.objectMode=!!(s&&s.objectMode),r)this.objectMode=this.objectMode||!!(s&&s.writableObjectMode);this.highWaterMark=s?M(this,s,"writableHighWaterMark",r):j(!1),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;const t=!!(s&&s.decodeStrings===!1);this.decodeStrings=!t,this.defaultEncoding=s&&s.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=f.bind(void 0,a),this.writecb=null,this.writelen=0,this.afterWriteTickInfo=null,v(this),this.pendingcb=0,this.constructed=!0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!s||s.emitClose!==!1,this.autoDestroy=!s||s.autoDestroy!==!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this[D]=[]}function v(s){s.buffered=[],s.bufferedIndex=0,s.allBuffers=!0,s.allNoop=!0}_.prototype.getBuffer=function s(){return X(this.buffered,this.bufferedIndex)},Z(_.prototype,"bufferedRequestCount",{get(){return this.buffered.length-this.bufferedIndex}}),Z(E,z,{value:function(s){if(H(this,s))return!0;if(this!==E)return!1;return s&&s._writableState instanceof _}}),E.prototype.pipe=function(){C(this,new P)};function R(s,a,r,t){const e=s._writableState;if(typeof r==="function")t=r,r=e.defaultEncoding;else{if(!r)r=e.defaultEncoding;else if(r!=="buffer"&&!Buffer.isEncoding(r))throw new O(r);if(typeof t!=="function")t=w}if(a===null)throw new T;else if(!e.objectMode)if(typeof a==="string"){if(e.decodeStrings!==!1)a=Buffer.from(a,r),r="buffer"}else if(a instanceof Buffer)r="buffer";else if(G._isUint8Array(a))a=G._uint8ArrayToBuffer(a),r="buffer";else throw new L("chunk",["string","Buffer","Uint8Array"],a);let qq;if(e.ending)qq=new A;else if(e.destroyed)qq=new I("write");if(qq)return Aq(t,qq),C(s,qq,!0),qq;return e.pendingcb++,g(s,e,a,r,t)}E.prototype.write=function(s,a,r){return R(this,s,a,r)===!0},E.prototype.cork=function(){this._writableState.corked++},E.prototype.uncork=function(){const s=this._writableState;if(s.corked){if(s.corked--,!s.writing)u(this,s)}},E.prototype.setDefaultEncoding=function s(a){if(typeof a==="string")a=Y(a);if(!Buffer.isEncoding(a))throw new O(a);return this._writableState.defaultEncoding=a,this};function g(s,a,r,t,e){const qq=a.objectMode?1:r.length;a.length+=qq;const Qq=a.lengthr.bufferedIndex)u(s,r);if(t)if(r.afterWriteTickInfo!==null&&r.afterWriteTickInfo.cb===e)r.afterWriteTickInfo.count++;else r.afterWriteTickInfo={count:1,cb:e,stream:s,state:r},Aq(y,r.afterWriteTickInfo);else h(s,r,1,e)}}function y({stream:s,state:a,count:r,cb:t}){return a.afterWriteTickInfo=null,h(s,a,r,t)}function h(s,a,r,t){if(!a.ending&&!s.destroyed&&a.length===0&&a.needDrain)a.needDrain=!1,s.emit("drain");while(r-- >0)a.pendingcb--,t();if(a.destroyed)p(a);d(s,a)}function p(s){if(s.writing)return;for(let e=s.bufferedIndex;e1&&s._writev){a.pendingcb-=qq-1;const Xq=a.allNoop?w:(Hq)=>{for(let Zq=Qq;Zq256)r.splice(0,Qq),a.bufferedIndex=0;else a.bufferedIndex=Qq}a.bufferProcessing=!1}E.prototype._write=function(s,a,r){if(this._writev)this._writev([{chunk:s,encoding:a}],r);else throw new N("_write()")},E.prototype._writev=null,E.prototype.end=function(s,a,r,t=!1){const e=this._writableState;if(xq&&Iq("end",e,this.__id),typeof s==="function")r=s,s=null,a=null;else if(typeof a==="function")r=a,a=null;let qq;if(s!==null&&s!==void 0){let Qq;if(!t)Qq=R(this,s,a);else Qq=this.write(s,a);if(Qq instanceof J)qq=Qq}if(e.corked)e.corked=1,this.uncork();if(qq)this.emit("error",qq);else if(!e.errored&&!e.ending)e.ending=!0,d(this,e,!0),e.ended=!0;else if(e.finished)qq=new x("end");else if(e.destroyed)qq=new I("end");if(typeof r==="function")if(qq||e.finished)Aq(r,qq);else e[D].push(r);return this};function m(s,a){var r=s.ending&&!s.destroyed&&s.constructed&&s.length===0&&!s.errored&&s.buffered.length===0&&!s.finished&&!s.writing&&!s.errorEmitted&&!s.closeEmitted;return Iq("needFinish",r,a),r}function b(s,a){let r=!1;function t(e){if(r){C(s,e!==null&&e!==void 0?e:W());return}if(r=!0,a.pendingcb--,e){const qq=a[D].splice(0);for(let Qq=0;Qq{if(m(e))l(t,e);else e.pendingcb--},s,a);else if(m(a))a.pendingcb++,l(s,a)}}function l(s,a){a.pendingcb--,a.finished=!0;const r=a[D].splice(0);for(let t=0;t{if(y!=null)throw new U("nully","body",y)},(y)=>{F(k,y)});return k=new T({objectMode:!0,readable:!1,write:v,final(y){R(async()=>{try{await f,Aq(y,null)}catch(h){Aq(y,h)}})},destroy:g})}throw new U("Iterable, AsyncIterable or AsyncFunction",w,_)}if(P(E))return C(E.arrayBuffer());if(Z(E))return N(T,E,{objectMode:!0,writable:!1});if(typeof(E===null||E===void 0?void 0:E.writable)==="object"||typeof(E===null||E===void 0?void 0:E.readable)==="object"){const _=E!==null&&E!==void 0&&E.readable?B(E===null||E===void 0?void 0:E.readable)?E===null||E===void 0?void 0:E.readable:C(E.readable):void 0,v=E!==null&&E!==void 0&&E.writable?Y(E===null||E===void 0?void 0:E.writable)?E===null||E===void 0?void 0:E.writable:C(E.writable):void 0;return O({readable:_,writable:v})}const D=E===null||E===void 0?void 0:E.then;if(typeof D==="function"){let _;return x(D,E,(v)=>{if(v!=null)_.push(v);_.push(null)},(v)=>{F(_,v)}),_=new T({objectMode:!0,writable:!1,read(){}})}throw new G(w,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],E)};function A(C){let{promise:E,resolve:w}=L();const D=new I,_=D.signal;return{value:C(async function*(){while(!0){const R=E;E=null;const{chunk:g,done:S,cb:k}=await R;if(Aq(k),S)return;if(_.aborted)throw new V(void 0,{cause:_.reason});({promise:E,resolve:w}=L()),yield g}}(),{signal:_}),write(R,g,S){const k=w;w=null,k({chunk:R,done:!1,cb:S})},final(R){const g=w;w=null,g({done:!0,cb:R})},destroy(R,g){D.abort(),g(R)}}}function O(C){const E=C.readable&&typeof C.readable.read!=="function"?j.wrap(C.readable):C.readable,w=C.writable;let D=!!J(E),_=!!H(w),v,R,g,S,k;function f(y){const h=S;if(S=null,h)h(y);else if(y)k.destroy(y);else if(!D&&!_)k.destroy()}if(k=new T({readableObjectMode:!!(E!==null&&E!==void 0&&E.readableObjectMode),writableObjectMode:!!(w!==null&&w!==void 0&&w.writableObjectMode),readable:D,writable:_}),_)z(w,(y)=>{if(_=!1,y)F(E,y);f(y)}),k._write=function(y,h,p){if(w.write(y,h))p();else v=p},k._final=function(y){w.end(),R=y},w.on("drain",function(){if(v){const y=v;v=null,y()}}),w.on("finish",function(){if(R){const y=R;R=null,y()}});if(D)z(E,(y)=>{if(D=!1,y)F(E,y);f(y)}),E.on("readable",function(){if(g){const y=g;g=null,y()}}),E.on("end",function(){k.push(null)}),k._read=function(){while(!0){const y=E.read();if(y===null){g=k._read;return}if(!k.push(y))return}};return k._destroy=function(y,h){if(!y&&S!==null)y=new V;if(g=null,v=null,R=null,S===null)h(y);else S=h,F(w,y),F(E,y)},k}}}),vq=cq({"node_modules/readable-stream/lib/internal/streams/duplex.js"(q,Q){var{ObjectDefineProperties:X,ObjectGetOwnPropertyDescriptor:J,ObjectKeys:H,ObjectSetPrototypeOf:Z}=Dq(),K=KQ();function B(G){if(!(this instanceof B))return new B(G);if(K.call(this,G),Tq.call(this,G),G){if(this.allowHalfOpen=G.allowHalfOpen!==!1,G.readable===!1)this._readableState.readable=!1,this._readableState.ended=!0,this._readableState.endEmitted=!0;if(G.writable===!1)this._writableState.writable=!1,this._writableState.ending=!0,this._writableState.ended=!0,this._writableState.finished=!0}else this.allowHalfOpen=!0}Q.exports=B,Z(B.prototype,K.prototype),Z(B,K);for(var Y in Tq.prototype)if(!B.prototype[Y])B.prototype[Y]=Tq.prototype[Y];X(B.prototype,{writable:J(Tq.prototype,"writable"),writableHighWaterMark:J(Tq.prototype,"writableHighWaterMark"),writableObjectMode:J(Tq.prototype,"writableObjectMode"),writableBuffer:J(Tq.prototype,"writableBuffer"),writableLength:J(Tq.prototype,"writableLength"),writableFinished:J(Tq.prototype,"writableFinished"),writableCorked:J(Tq.prototype,"writableCorked"),writableEnded:J(Tq.prototype,"writableEnded"),writableNeedDrain:J(Tq.prototype,"writableNeedDrain"),destroyed:{get(){if(this._readableState===void 0||this._writableState===void 0)return!1;return this._readableState.destroyed&&this._writableState.destroyed},set(G){if(this._readableState&&this._writableState)this._readableState.destroyed=G,this._writableState.destroyed=G}}});var $;function z(){if($===void 0)$={};return $}B.fromWeb=function(G,U){return z().newStreamDuplexFromReadableWritablePair(G,U)},B.toWeb=function(G){return z().newReadableWritablePairFromDuplex(G)};var V;B.from=function(G){if(!V)V=YQ();return V(G,"body")}}}),$Q=cq({"node_modules/readable-stream/lib/internal/streams/transform.js"(q,Q){var{ObjectSetPrototypeOf:X,Symbol:J}=Dq(),{ERR_METHOD_NOT_IMPLEMENTED:H}=sq().codes,Z=vq();function K(z){if(!(this instanceof K))return new K(z);if(Z.call(this,z),this._readableState.sync=!1,this[B]=null,z){if(typeof z.transform==="function")this._transform=z.transform;if(typeof z.flush==="function")this._flush=z.flush}this.on("prefinish",$.bind(this))}X(K.prototype,Z.prototype),X(K,Z),Q.exports=K;var B=J("kCallback");function Y(z){if(typeof this._flush==="function"&&!this.destroyed)this._flush((V,G)=>{if(V){if(z)z(V);else this.destroy(V);return}if(G!=null)this.push(G);if(this.push(null),z)z()});else if(this.push(null),z)z()}function $(){if(this._final!==Y)Y.call(this)}K.prototype._final=Y,K.prototype._transform=function(z,V,G){throw new H("_transform()")},K.prototype._write=function(z,V,G){const U=this._readableState,F=this._writableState,M=U.length;this._transform(z,V,(j,L)=>{if(j){G(j);return}if(L!=null)this.push(L);if(F.ended||M===U.length||U.length{k=!0});const f=Z(R,{readable:g,writable:S},(y)=>{k=!y});return{destroy:(y)=>{if(k)return;k=!0,B.destroyer(R,y||new U("pipe"))},cleanup:f}}function O(R){return M(R[R.length-1],"streams[stream.length - 1]"),R.pop()}function C(R){if(L(R))return R;else if(W(R))return E(R);throw new z("val",["Readable","Iterable","AsyncIterable"],R)}async function*E(R){if(!T)T=KQ();yield*T.prototype[H].call(R)}async function w(R,g,S,{end:k}){let f,y=null;const h=(m)=>{if(m)f=m;if(y){const b=y;y=null,b()}},p=()=>new J((m,b)=>{if(f)b(f);else y=()=>{if(f)b(f);else m()}});g.on("drain",h);const u=Z(g,{readable:!1},h);try{if(g.writableNeedDrain)await p();for await(let m of R)if(!g.write(m))await p();if(k)g.end();await p(),S()}catch(m){S(f!==m?$(f,m):m)}finally{u(),g.off("drain",h)}}function D(...R){return _(R,K(O(R)))}function _(R,g,S){if(R.length===1&&X(R[0]))R=R[0];if(R.length<2)throw new G("streams");const k=new I,f=k.signal,y=S===null||S===void 0?void 0:S.signal,h=[];j(y,"options.signal");function p(){l(new F)}y===null||y===void 0||y.addEventListener("abort",p);let u,m;const b=[];let c=0;function d(o){l(o,--c===0)}function l(o,s){if(o&&(!u||u.code==="ERR_STREAM_PREMATURE_CLOSE"))u=o;if(!u&&!s)return;while(b.length)b.shift()(u);if(y===null||y===void 0||y.removeEventListener("abort",p),k.abort(),s){if(!u)h.forEach((a)=>a());Aq(g,u,m)}}let i;for(let o=0;o0,t=a||(S===null||S===void 0?void 0:S.end)!==!1,e=o===R.length-1;if(P(s)){let qq=function(Qq){if(Qq&&Qq.name!=="AbortError"&&Qq.code!=="ERR_STREAM_PREMATURE_CLOSE")d(Qq)};if(t){const{destroy:Qq,cleanup:Xq}=A(s,a,r);if(b.push(Qq),N(s)&&e)h.push(Xq)}if(s.on("error",qq),N(s)&&e)h.push(()=>{s.removeListener("error",qq)})}if(o===0)if(typeof s==="function"){if(i=s({signal:f}),!L(i))throw new V("Iterable, AsyncIterable or Stream","source",i)}else if(L(s)||W(s))i=s;else i=Y.from(s);else if(typeof s==="function")if(i=C(i),i=s(i,{signal:f}),a){if(!L(i,!0))throw new V("AsyncIterable",`transform[${o-1}]`,i)}else{var n;if(!x)x=zQ();const qq=new x({objectMode:!0}),Qq=(n=i)===null||n===void 0?void 0:n.then;if(typeof Qq==="function")c++,Qq.call(i,(Hq)=>{if(m=Hq,Hq!=null)qq.write(Hq);if(t)qq.end();Aq(d)},(Hq)=>{qq.destroy(Hq),Aq(d,Hq)});else if(L(i,!0))c++,w(i,qq,d,{end:t});else throw new V("AsyncIterable or Promise","destination",i);i=qq;const{destroy:Xq,cleanup:Jq}=A(i,!1,!0);if(b.push(Xq),e)h.push(Jq)}else if(P(s)){if(W(i)){c+=2;const qq=v(i,s,d,{end:t});if(N(s)&&e)h.push(qq)}else if(L(i))c++,w(i,s,d,{end:t});else throw new z("val",["Readable","Iterable","AsyncIterable"],i);i=s}else i=Y.from(s)}if(f!==null&&f!==void 0&&f.aborted||y!==null&&y!==void 0&&y.aborted)Aq(p);return i}function v(R,g,S,{end:k}){if(R.pipe(g,{end:k}),k)R.once("end",()=>g.end());else S();return Z(R,{readable:!0,writable:!1},(f)=>{const y=R._readableState;if(f&&f.code==="ERR_STREAM_PREMATURE_CLOSE"&&y&&y.ended&&!y.errored&&!y.errorEmitted)R.once("end",S).once("error",S);else S(f)}),Z(g,{readable:!1,writable:!0},S)}Q.exports={pipelineImpl:_,pipeline:D}}}),GQ=cq({"node_modules/readable-stream/lib/internal/streams/compose.js"(q,Q){var{pipeline:X}=VQ(),J=vq(),{destroyer:H}=qQ(),{isNodeStream:Z,isReadable:K,isWritable:B}=rq(),{AbortError:Y,codes:{ERR_INVALID_ARG_VALUE:$,ERR_MISSING_ARGS:z}}=sq();Q.exports=function V(...G){if(G.length===0)throw new z("streams");if(G.length===1)return J.from(G[0]);const U=[...G];if(typeof G[0]==="function")G[0]=J.from(G[0]);if(typeof G[G.length-1]==="function"){const A=G.length-1;G[A]=J.from(G[A])}for(let A=0;A0&&!B(G[A]))throw new $(`streams[${A}]`,U[A],"must be writable")}let F,M,j,L,N;function W(A){const O=L;if(L=null,O)O(A);else if(A)N.destroy(A);else if(!T&&!x)N.destroy()}const P=G[0],I=X(G,W),x=!!B(P),T=!!K(I);if(N=new J({writableObjectMode:!!(P!==null&&P!==void 0&&P.writableObjectMode),readableObjectMode:!!(I!==null&&I!==void 0&&I.writableObjectMode),writable:x,readable:T}),x)N._write=function(A,O,C){if(P.write(A,O))C();else F=C},N._final=function(A){P.end(),M=A},P.on("drain",function(){if(F){const A=F;F=null,A()}}),I.on("finish",function(){if(M){const A=M;M=null,A()}});if(T)I.on("readable",function(){if(j){const A=j;j=null,A()}}),I.on("end",function(){N.push(null)}),N._read=function(){while(!0){const A=I.read();if(A===null){j=N._read;return}if(!N.push(A))return}};return N._destroy=function(A,O){if(!A&&L!==null)A=new Y;if(j=null,F=null,M=null,L===null)O(A);else L=O,H(I,A)},N}}}),UQ=cq({"node_modules/readable-stream/lib/stream/promises.js"(q,Q){var{ArrayPrototypePop:X,Promise:J}=Dq(),{isIterable:H,isNodeStream:Z}=rq(),{pipelineImpl:K}=VQ(),{finished:B}=tq();function Y(...$){return new J((z,V)=>{let G,U;const F=$[$.length-1];if(F&&typeof F==="object"&&!Z(F)&&!H(F)){const M=X($);G=M.signal,U=M.end}K($,(M,j)=>{if(M)V(M);else z(j)},{signal:G,end:U})})}Q.exports={finished:B,pipeline:Y}}}),FQ=cq({"node_modules/readable-stream/lib/stream.js"(q,Q){var{ObjectDefineProperty:X,ObjectKeys:J,ReflectApply:H}=Dq(),{promisify:{custom:Z}}=_q(),{streamReturningOperators:K,promiseReturningOperators:B}=eq(),{codes:{ERR_ILLEGAL_CONSTRUCTOR:Y}}=sq(),$=GQ(),{pipeline:z}=VQ(),{destroyer:V}=qQ(),G=tq(),U=UQ(),F=rq(),M=Q.exports=QQ().Stream;M.isDisturbed=F.isDisturbed,M.isErrored=F.isErrored,M.isWritable=F.isWritable,M.isReadable=F.isReadable,M.Readable=KQ();for(let L of J(K)){let N=function(...P){if(new.target)throw Y();return M.Readable.from(H(W,this,P))};const W=K[L];X(N,"name",{value:W.name}),X(N,"length",{value:W.length}),X(M.Readable.prototype,L,{value:N,enumerable:!1,configurable:!0,writable:!0})}for(let L of J(B)){let N=function(...P){if(new.target)throw Y();return H(W,this,P)};const W=B[L];X(N,"name",{value:W.name}),X(N,"length",{value:W.length}),X(M.Readable.prototype,L,{value:N,enumerable:!1,configurable:!0,writable:!0})}M.Writable=BQ(),M.Duplex=vq(),M.Transform=$Q(),M.PassThrough=zQ(),M.pipeline=z;var{addAbortSignal:j}=XQ();M.addAbortSignal=j,M.finished=G,M.destroy=V,M.compose=$,X(M,"promises",{configurable:!0,enumerable:!0,get(){return U}}),X(z,Z,{enumerable:!0,get(){return U.pipeline}}),X(G,Z,{enumerable:!0,get(){return U.finished}}),M.Stream=M,M._isUint8Array=function L(N){return N instanceof Uint8Array},M._uint8ArrayToBuffer=function L(N){return new Buffer(N.buffer,N.byteOffset,N.byteLength)}}}),MQ=cq({"node_modules/readable-stream/lib/ours/index.js"(q,Q){const X=FQ(),J=UQ(),H=X.Readable.destroy;Q.exports=X,Q.exports._uint8ArrayToBuffer=X._uint8ArrayToBuffer,Q.exports._isUint8Array=X._isUint8Array,Q.exports.isDisturbed=X.isDisturbed,Q.exports.isErrored=X.isErrored,Q.exports.isWritable=X.isWritable,Q.exports.isReadable=X.isReadable,Q.exports.Readable=X.Readable,Q.exports.Writable=X.Writable,Q.exports.Duplex=X.Duplex,Q.exports.Transform=X.Transform,Q.exports.PassThrough=X.PassThrough,Q.exports.addAbortSignal=X.addAbortSignal,Q.exports.finished=X.finished,Q.exports.destroy=X.destroy,Q.exports.destroy=H,Q.exports.pipeline=X.pipeline,Q.exports.compose=X.compose,Q.exports._getNativeReadableStreamPrototype=NQ,Q.exports.NativeWritable=pQ,Oq.defineProperty(X,"promises",{configurable:!0,enumerable:!0,get(){return J}}),Q.exports.Stream=X.Stream,Q.exports.default=Q.exports}}),LQ={0:void 0,1:void 0,2:void 0,3:void 0,4:void 0,5:void 0},Tq=BQ(),pQ=class q extends Tq{#q;#Q;#X=!0;_construct;_destroy;_final;constructor(Q,X={}){super(X);this._construct=this.#J,this._destroy=this.#Z,this._final=this.#K,this.#q=Q}#J(Q){this._writableState.constructed=!0,this.constructed=!0,Q()}#H(){if(typeof this.#q==="object")if(typeof this.#q.write==="function")this.#Q=this.#q;else throw new Error("Invalid FileSink");else this.#Q=Bun.file(this.#q).writer()}write(Q,X,J,H=this.#X){if(!H)return this.#X=!1,super.write(Q,X,J);if(!this.#Q)this.#H();var Z=this.#Q,K=Z.write(Q);if(Cq(K))return K.then(()=>{this.emit("drain"),Z.flush(!0)}),!1;if(Z.flush(!0),J)J(null,Q.byteLength);return!0}end(Q,X,J,H=this.#X){return super.end(Q,X,J,H)}#Z(Q,X){if(this._writableState.destroyed=!0,X)X(Q)}#K(Q){if(this.#Q)this.#Q.end();if(Q)Q()}ref(){if(!this.#Q)this.#H();this.#Q.ref()}unref(){if(!this.#Q)return;this.#Q.unref()}},PQ=MQ();PQ[Symbol.for("CommonJS")]=0;PQ[Symbol.for("::bunternal::")]={_ReadableFromWeb:ZQ};var lQ=PQ,IQ=PQ._uint8ArrayToBuffer,xQ=PQ._isUint8Array,TQ=PQ.isDisturbed,AQ=PQ.isErrored,OQ=PQ.isWritable,CQ=PQ.isReadable,EQ=PQ.Readable,Tq=PQ.Writable,wQ=PQ.Duplex,DQ=PQ.Transform,_Q=PQ.PassThrough,vQ=PQ.addAbortSignal,RQ=PQ.finished,gQ=PQ.destroy,SQ=PQ.pipeline,kQ=PQ.compose,fQ=PQ.Stream,yQ=PQ["eos"]=tq,hQ=PQ._getNativeReadableStreamPrototype,pQ=PQ.NativeWritable,uQ=fQ.promise;export{uQ as promises,SQ as pipeline,OQ as isWritable,CQ as isReadable,AQ as isErrored,TQ as isDisturbed,RQ as finished,yQ as eos,gQ as destroy,lQ as default,kQ as compose,vQ as addAbortSignal,IQ as _uint8ArrayToBuffer,xQ as _isUint8Array,hQ as _getNativeReadableStreamPrototype,Tq as Writable,DQ as Transform,fQ as Stream,EQ as Readable,_Q as PassThrough,pQ as NativeWritable,wQ as Duplex}; +var Cq=function(q){if(!(this instanceof Cq))return new Cq(q);mq.call(this,q);const Q=q.__id;if(Q)fq(this,"__id",{value:Q,readable:!0,writable:!1,enumerable:!1})},dq=function(q){return typeof q==="object"&&q!==null&&q instanceof ReadableStream},lq=function(q,Q){if(typeof q!=="boolean")throw new nq(Q,"boolean",q)};var nq=function(q,Q,X){return new Error(`The argument '${q}' is invalid. Received '${X}' for type '${Q}'`)},oq=function(q,Q,X){return new Error(`The value '${Q}' is invalid for argument '${q}'. Reason: ${X}`)},FQ=function(q,Q){var[X,J,H,K,Z,Y,B]=globalThis[Symbol.for("Bun.lazy")](q),$=[!1],z=function(F,L,j,N){if(L>0){const P=j.subarray(0,L),E=j.subarray(L);if(P.byteLength>0)F.push(P);if(N)F.push(null);return E.byteLength>0?E:void 0}if(N)F.push(null);return j},V=function(F,L,j,N){if(L.byteLength>0)F.push(L);if(N)F.push(null);return j},U=process.env.BUN_DISABLE_DYNAMIC_CHUNK_SIZE!=="1";const W=new FinalizationRegistry((F)=>F&&Z(F)),G=512;var M=class F extends Q{#q;#Q=1;#X=!1;#J=void 0;#H;#K=!1;#Z=!U;#Y;constructor(L,j={}){super(j);if(typeof j.highWaterMark==="number")this.#H=j.highWaterMark;else this.#H=262144;this.#q=L,this.#X=!1,this.#J=void 0,this.#K=!1,this.#Y={},W.register(this,this.#q,this.#Y)}_read(L){if(Iq&&Eq("NativeReadable._read",this.__id),this.#K){Iq&&Eq("pendingRead is true",this.__id);return}var j=this.#q;if(Iq&&Eq("ptr @ NativeReadable._read",j,this.__id),j===0){this.push(null);return}if(!this.#X)Iq&&Eq("NativeReadable not constructed yet",this.__id),this.#B(j);return this.#V(this.#$(L),j)}#B(L){this.#X=!0;const j=J(L,this.#H);if(Iq&&Eq("NativeReadable internal `start` result",j,this.__id),typeof j==="number"&&j>1)this.#Z=!0,Iq&&Eq("NativeReadable resized",this.__id),this.#H=Math.min(this.#H,j);if(B){const N=B(L);if(Iq&&Eq("NativeReadable drain result",N,this.__id),(N?.byteLength??0)>0)this.push(N)}}#$(L=this.#H){var j=this.#J;if(Iq&&Eq("chunk @ #getRemainingChunk",j,this.__id),j?.byteLength??0G?L:G;this.#J=j=new Buffer(N)}return j}push(L,j){return Iq&&Eq("NativeReadable push -- result, encoding",L,j,this.__id),super.push(...arguments)}#z(L,j,N){if(Iq&&Eq("result, isClosed @ #handleResult",L,N,this.__id),typeof L==="number"){if(L>=this.#H&&!this.#Z&&!N)this.#H*=2,this.#Z=!0;return z(this,L,j,N)}else if(typeof L==="boolean")return this.push(null),j?.byteLength??0>0?j:void 0;else if(ArrayBuffer.isView(L)){if(L.byteLength>=this.#H&&!this.#Z&&!N)this.#H*=2,this.#Z=!0,Iq&&Eq("Resized",this.__id);return V(this,L,j,N)}else throw Iq&&Eq("Unknown result type",L,this.__id),new Error("Invalid result from pull")}#V(L,j){Iq&&Eq("#internalRead()",this.__id),$[0]=!1;var N=X(j,L,$);if(Oq(N))return this.#K=!0,N.then((P)=>{this.#K=!1,Iq&&Eq("pending no longerrrrrrrr (result returned from pull)",this.__id),this.#J=this.#z(P,L,$[0])},(P)=>{Iq&&Eq("error from pull",P,this.__id),errorOrDestroy(this,P)});else this.#J=this.#z(N,L,$[0])}_destroy(L,j){var N=this.#q;if(N===0){j(L);return}if(W.unregister(this.#Y),this.#q=0,Y)Y(N,!1);Iq&&Eq("NativeReadable destroyed",this.__id),H(N,L),j(L)}ref(){var L=this.#q;if(L===0)return;if(this.#Q++===0)Y(L,!0)}unref(){var L=this.#q;if(L===0)return;if(this.#Q--===1)Y(L,!1)}};if(!Y)M.prototype.ref=void 0,M.prototype.unref=void 0;return M},jQ=function(q,Q){return LQ[q]||=FQ(q,Q)},NQ=function(q,Q,X){if(!(Q&&typeof Q==="object"&&Q instanceof ReadableStream))return;const J=Sq(Q);if(!J){Eq("no native readable stream");return}const{stream:H,data:K}=J;return new(jQ(K,q))(H,X)},{isPromise:Oq,isCallable:Rq,direct:Sq,Object:xq}=import.meta.primordials;globalThis.__IDS_TO_TRACK=process.env.DEBUG_TRACK_EE?.length?process.env.DEBUG_TRACK_EE.split(","):process.env.DEBUG_STREAMS?.length?process.env.DEBUG_STREAMS.split(","):null;var gq=!!process.env.DEBUG_TRACK_EE,Iq=!!(process.env.DEBUG||process.env.DEBUG_STREAMS||gq),Eq=Iq?globalThis.__IDS_TO_TRACK?(...q)=>{const Q=q[q.length-1];if(!globalThis.__IDS_TO_TRACK.includes(Q))return;console.log(`ID: ${Q}`,...q.slice(0,-1))}:(...q)=>console.log(...q.slice(0,-1)):()=>{},kq=xq.create,fq=xq.defineProperty,yq=xq.getOwnPropertyDescriptor,hq=xq.getOwnPropertyNames,pq=xq.getPrototypeOf,uq=xq.prototype.hasOwnProperty,bq=xq.setPrototypeOf,_q=(q)=>import.meta.require(q),mq=_q("bun:events_native");bq(Cq.prototype,mq.prototype);bq(Cq,mq);Cq.prototype.emit=function(q,...Q){var X=this.__id;if(X)Eq("emit",q,...Q,X);else Eq("emit",q,...Q);return mq.prototype.emit.call(this,q,...Q)};Cq.prototype.on=function(q,Q){var X=this.__id;if(X)Eq("on",q,"added",X);else Eq("on",q,"added");return mq.prototype.on.call(this,q,Q)};Cq.prototype.addListener=function(q,Q){return this.on(q,Q)};var cq=(q,Q)=>function X(){return Q||(0,q[hq(q)[0]])((Q={exports:{}}).exports,Q),Q.exports};var Aq=process.nextTick;var iq=Array.isArray,Dq=cq({"node_modules/readable-stream/lib/ours/primordials.js"(q,Q){Q.exports={ArrayIsArray(X){return Array.isArray(X)},ArrayPrototypeIncludes(X,J){return X.includes(J)},ArrayPrototypeIndexOf(X,J){return X.indexOf(J)},ArrayPrototypeJoin(X,J){return X.join(J)},ArrayPrototypeMap(X,J){return X.map(J)},ArrayPrototypePop(X,J){return X.pop(J)},ArrayPrototypePush(X,J){return X.push(J)},ArrayPrototypeSlice(X,J,H){return X.slice(J,H)},Error,FunctionPrototypeCall(X,J,...H){return X.call(J,...H)},FunctionPrototypeSymbolHasInstance(X,J){return Function.prototype[Symbol.hasInstance].call(X,J)},MathFloor:Math.floor,Number,NumberIsInteger:Number.isInteger,NumberIsNaN:Number.isNaN,NumberMAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,NumberParseInt:Number.parseInt,ObjectDefineProperties(X,J){return xq.defineProperties(X,J)},ObjectDefineProperty(X,J,H){return xq.defineProperty(X,J,H)},ObjectGetOwnPropertyDescriptor(X,J){return xq.getOwnPropertyDescriptor(X,J)},ObjectKeys(X){return xq.keys(X)},ObjectSetPrototypeOf(X,J){return xq.setPrototypeOf(X,J)},Promise,PromisePrototypeCatch(X,J){return X.catch(J)},PromisePrototypeThen(X,J,H){return X.then(J,H)},PromiseReject(X){return Promise.reject(X)},ReflectApply:Reflect.apply,RegExpPrototypeTest(X,J){return X.test(J)},SafeSet:Set,String,StringPrototypeSlice(X,J,H){return X.slice(J,H)},StringPrototypeToLowerCase(X){return X.toLowerCase()},StringPrototypeToUpperCase(X){return X.toUpperCase()},StringPrototypeTrim(X){return X.trim()},Symbol,SymbolAsyncIterator:Symbol.asyncIterator,SymbolHasInstance:Symbol.hasInstance,SymbolIterator:Symbol.iterator,TypedArrayPrototypeSet(X,J,H){return X.set(J,H)},Uint8Array}}}),wq=cq({"node_modules/readable-stream/lib/ours/util.js"(q,Q){var X=_q("buffer"),J=xq.getPrototypeOf(async function(){}).constructor,H=globalThis.Blob||X.Blob,K=typeof H!=="undefined"?function Y(B){return B instanceof H}:function Y(B){return!1},Z=class extends Error{constructor(Y){if(!Array.isArray(Y))throw new TypeError(`Expected input to be an Array, got ${typeof Y}`);let B="";for(let $=0;${Y=z,B=V}),resolve:Y,reject:B}},promisify(Y){return new Promise((B,$)=>{Y((z,...V)=>{if(z)return $(z);return B(...V)})})},debuglog(){return function(){}},format(Y,...B){return Y.replace(/%([sdifj])/g,function(...[$,z]){const V=B.shift();if(z==="f")return V.toFixed(6);else if(z==="j")return JSON.stringify(V);else if(z==="s"&&typeof V==="object")return`${V.constructor!==xq?V.constructor.name:""} {}`.trim();else return V.toString()})},inspect(Y){switch(typeof Y){case"string":if(Y.includes("'")){if(!Y.includes('"'))return`"${Y}"`;else if(!Y.includes("`")&&!Y.includes("${"))return`\`${Y}\``}return`'${Y}'`;case"number":if(isNaN(Y))return"NaN";else if(xq.is(Y,-0))return String(Y);return Y;case"bigint":return`${String(Y)}n`;case"boolean":case"undefined":return String(Y);case"object":return"{}"}},types:{isAsyncFunction(Y){return Y instanceof J},isArrayBufferView(Y){return ArrayBuffer.isView(Y)}},isBlob:K},Q.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")}}),sq=cq({"node_modules/readable-stream/lib/ours/errors.js"(q,Q){var{format:X,inspect:J,AggregateError:H}=wq(),K=globalThis.AggregateError||H,Z=Symbol("kIsNodeError"),Y=["string","function","number","object","Function","Object","boolean","bigint","symbol"],B=/^([A-Z][a-z0-9]*)+$/,$="__node_internal_",z={};function V(j,N){if(!j)throw new z.ERR_INTERNAL_ASSERTION(N)}function U(j){let N="",P=j.length;const E=j[0]==="-"?1:0;for(;P>=E+4;P-=3)N=`_${j.slice(P-3,P)}${N}`;return`${j.slice(0,P)}${N}`}function W(j,N,P){if(typeof N==="function")return V(N.length<=P.length,`Code: ${j}; The provided arguments length (${P.length}) does not match the required ones (${N.length}).`),N(...P);const E=(N.match(/%[dfijoOs]/g)||[]).length;if(V(E===P.length,`Code: ${j}; The provided arguments length (${P.length}) does not match the required ones (${E}).`),P.length===0)return N;return X(N,...P)}function G(j,N,P){if(!P)P=Error;class E extends P{constructor(...I){super(W(j,N,I))}toString(){return`${this.name} [${j}]: ${this.message}`}}xq.defineProperties(E.prototype,{name:{value:P.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${j}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),E.prototype.code=j,E.prototype[Z]=!0,z[j]=E}function M(j){const N=$+j.name;return xq.defineProperty(j,"name",{value:N}),j}function F(j,N){if(j&&N&&j!==N){if(Array.isArray(N.errors))return N.errors.push(j),N;const P=new K([N,j],N.message);return P.code=N.code,P}return j||N}var L=class extends Error{constructor(j="The operation was aborted",N=void 0){if(N!==void 0&&typeof N!=="object")throw new z.ERR_INVALID_ARG_TYPE("options","Object",N);super(j,N);this.code="ABORT_ERR",this.name="AbortError"}};G("ERR_ASSERTION","%s",Error),G("ERR_INVALID_ARG_TYPE",(j,N,P)=>{if(V(typeof j==="string","'name' must be a string"),!Array.isArray(N))N=[N];let E="The ";if(j.endsWith(" argument"))E+=`${j} `;else E+=`"${j}" ${j.includes(".")?"property":"argument"} `;E+="must be ";const I=[],T=[],A=[];for(let O of N)if(V(typeof O==="string","All expected entries have to be of type string"),Y.includes(O))I.push(O.toLowerCase());else if(B.test(O))T.push(O);else V(O!=="object",'The value "object" should be written as "Object"'),A.push(O);if(T.length>0){const O=I.indexOf("object");if(O!==-1)I.splice(I,O,1),T.push("Object")}if(I.length>0){switch(I.length){case 1:E+=`of type ${I[0]}`;break;case 2:E+=`one of type ${I[0]} or ${I[1]}`;break;default:{const O=I.pop();E+=`one of type ${I.join(", ")}, or ${O}`}}if(T.length>0||A.length>0)E+=" or "}if(T.length>0){switch(T.length){case 1:E+=`an instance of ${T[0]}`;break;case 2:E+=`an instance of ${T[0]} or ${T[1]}`;break;default:{const O=T.pop();E+=`an instance of ${T.join(", ")}, or ${O}`}}if(A.length>0)E+=" or "}switch(A.length){case 0:break;case 1:if(A[0].toLowerCase()!==A[0])E+="an ";E+=`${A[0]}`;break;case 2:E+=`one of ${A[0]} or ${A[1]}`;break;default:{const O=A.pop();E+=`one of ${A.join(", ")}, or ${O}`}}if(P==null)E+=`. Received ${P}`;else if(typeof P==="function"&&P.name)E+=`. Received function ${P.name}`;else if(typeof P==="object"){var x;if((x=P.constructor)!==null&&x!==void 0&&x.name)E+=`. Received an instance of ${P.constructor.name}`;else{const O=J(P,{depth:-1});E+=`. Received ${O}`}}else{let O=J(P,{colors:!1});if(O.length>25)O=`${O.slice(0,25)}...`;E+=`. Received type ${typeof P} (${O})`}return E},TypeError),G("ERR_INVALID_ARG_VALUE",(j,N,P="is invalid")=>{let E=J(N);if(E.length>128)E=E.slice(0,128)+"...";return`The ${j.includes(".")?"property":"argument"} '${j}' ${P}. Received ${E}`},TypeError),G("ERR_INVALID_RETURN_VALUE",(j,N,P)=>{var E;const I=P!==null&&P!==void 0&&(E=P.constructor)!==null&&E!==void 0&&E.name?`instance of ${P.constructor.name}`:`type ${typeof P}`;return`Expected ${j} to be returned from the "${N}" function but got ${I}.`},TypeError),G("ERR_MISSING_ARGS",(...j)=>{V(j.length>0,"At least one arg needs to be specified");let N;const P=j.length;switch(j=(Array.isArray(j)?j:[j]).map((E)=>`"${E}"`).join(" or "),P){case 1:N+=`The ${j[0]} argument`;break;case 2:N+=`The ${j[0]} and ${j[1]} arguments`;break;default:{const E=j.pop();N+=`The ${j.join(", ")}, and ${E} arguments`}break}return`${N} must be specified`},TypeError),G("ERR_OUT_OF_RANGE",(j,N,P)=>{V(N,'Missing "range" argument');let E;if(Number.isInteger(P)&&Math.abs(P)>4294967296)E=U(String(P));else if(typeof P==="bigint"){if(E=String(P),P>2n**32n||P<-(2n**32n))E=U(E);E+="n"}else E=J(P);return`The value of "${j}" is out of range. It must be ${N}. Received ${E}`},RangeError),G("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),G("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),G("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),G("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),G("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),G("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),G("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),G("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),G("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),G("ERR_STREAM_WRITE_AFTER_END","write after end",Error),G("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),Q.exports={AbortError:L,aggregateTwoErrors:M(F),hideStackFrames:M,codes:z}}}),aq=cq({"node_modules/readable-stream/lib/internal/validators.js"(q,Q){var{ArrayIsArray:X,ArrayPrototypeIncludes:J,ArrayPrototypeJoin:H,ArrayPrototypeMap:K,NumberIsInteger:Z,NumberMAX_SAFE_INTEGER:Y,NumberMIN_SAFE_INTEGER:B,NumberParseInt:$,RegExpPrototypeTest:z,String:V,StringPrototypeToUpperCase:U,StringPrototypeTrim:W}=Dq(),{hideStackFrames:G,codes:{ERR_SOCKET_BAD_PORT:M,ERR_INVALID_ARG_TYPE:F,ERR_INVALID_ARG_VALUE:L,ERR_OUT_OF_RANGE:j,ERR_UNKNOWN_SIGNAL:N}}=sq(),{normalizeEncoding:P}=wq(),{isAsyncFunction:E,isArrayBufferView:I}=wq().types,T={};function A(i){return i===(i|0)}function x(i){return i===i>>>0}var O=/^[0-7]+$/,_="must be a 32-bit unsigned integer or an octal string";function C(i,n,o){if(typeof i==="undefined")i=o;if(typeof i==="string"){if(!z(O,i))throw new L(n,i,_);i=$(i,8)}return w(i,n,0,4294967295),i}var D=G((i,n,o=B,s=Y)=>{if(typeof i!=="number")throw new F(n,"number",i);if(!Z(i))throw new j(n,"an integer",i);if(is)throw new j(n,`>= ${o} && <= ${s}`,i)}),w=G((i,n,o=-2147483648,s=2147483647)=>{if(typeof i!=="number")throw new F(n,"number",i);if(!A(i)){if(!Z(i))throw new j(n,"an integer",i);throw new j(n,`>= ${o} && <= ${s}`,i)}if(is)throw new j(n,`>= ${o} && <= ${s}`,i)}),v=G((i,n,o)=>{if(typeof i!=="number")throw new F(n,"number",i);if(!x(i)){if(!Z(i))throw new j(n,"an integer",i);throw new j(n,`>= ${o?1:0} && < 4294967296`,i)}if(o&&i===0)throw new j(n,">= 1 && < 4294967296",i)});function R(i,n){if(typeof i!=="string")throw new F(n,"string",i)}function S(i,n){if(typeof i!=="number")throw new F(n,"number",i)}var g=G((i,n,o)=>{if(!J(o,i)){const a="must be one of: "+H(K(o,(r)=>typeof r==="string"?`'${r}'`:V(r)),", ");throw new L(n,i,a)}});function k(i,n){if(typeof i!=="boolean")throw new F(n,"boolean",i)}var f=G((i,n,o)=>{const s=o==null,a=s?!1:o.allowArray,r=s?!1:o.allowFunction;if(!(s?!1:o.nullable)&&i===null||!a&&X(i)||typeof i!=="object"&&(!r||typeof i!=="function"))throw new F(n,"Object",i)}),y=G((i,n,o=0)=>{if(!X(i))throw new F(n,"Array",i);if(i.length{if(!I(i))throw new F(n,["Buffer","TypedArray","DataView"],i)});function u(i,n){const o=P(n),s=i.length;if(o==="hex"&&s%2!==0)throw new L("encoding",n,`is invalid for data of length ${s}`)}function b(i,n="Port",o=!0){if(typeof i!=="number"&&typeof i!=="string"||typeof i==="string"&&W(i).length===0||+i!==+i>>>0||i>65535||i===0&&!o)throw new M(n,i,o);return i|0}var m=G((i,n)=>{if(i!==void 0&&(i===null||typeof i!=="object"||!("aborted"in i)))throw new F(n,"AbortSignal",i)}),c=G((i,n)=>{if(typeof i!=="function")throw new F(n,"Function",i)}),d=G((i,n)=>{if(typeof i!=="function"||E(i))throw new F(n,"Function",i)}),l=G((i,n)=>{if(i!==void 0)throw new F(n,"undefined",i)});Q.exports={isInt32:A,isUint32:x,parseFileMode:C,validateArray:y,validateBoolean:k,validateBuffer:p,validateEncoding:u,validateFunction:c,validateInt32:w,validateInteger:D,validateNumber:S,validateObject:f,validateOneOf:g,validatePlainFunction:d,validatePort:b,validateSignalName:h,validateString:R,validateUint32:v,validateUndefined:l,validateAbortSignal:m}}}),rq=cq({"node_modules/readable-stream/lib/internal/streams/utils.js"(q,Q){var{Symbol:X,SymbolAsyncIterator:J,SymbolIterator:H}=Dq(),K=X("kDestroyed"),Z=X("kIsErrored"),Y=X("kIsReadable"),B=X("kIsDisturbed");function $(v,R=!1){var S;return!!(v&&typeof v.pipe==="function"&&typeof v.on==="function"&&(!R||typeof v.pause==="function"&&typeof v.resume==="function")&&(!v._writableState||((S=v._readableState)===null||S===void 0?void 0:S.readable)!==!1)&&(!v._writableState||v._readableState))}function z(v){var R;return!!(v&&typeof v.write==="function"&&typeof v.on==="function"&&(!v._readableState||((R=v._writableState)===null||R===void 0?void 0:R.writable)!==!1))}function V(v){return!!(v&&typeof v.pipe==="function"&&v._readableState&&typeof v.on==="function"&&typeof v.write==="function")}function U(v){return v&&(v._readableState||v._writableState||typeof v.write==="function"&&typeof v.on==="function"||typeof v.pipe==="function"&&typeof v.on==="function")}function W(v,R){if(v==null)return!1;if(R===!0)return typeof v[J]==="function";if(R===!1)return typeof v[H]==="function";return typeof v[J]==="function"||typeof v[H]==="function"}function G(v){if(!U(v))return null;const{_writableState:R,_readableState:S}=v,g=R||S;return!!(v.destroyed||v[K]||g!==null&&g!==void 0&&g.destroyed)}function M(v){if(!z(v))return null;if(v.writableEnded===!0)return!0;const R=v._writableState;if(R!==null&&R!==void 0&&R.errored)return!1;if(typeof(R===null||R===void 0?void 0:R.ended)!=="boolean")return null;return R.ended}function F(v,R){if(!z(v))return null;if(v.writableFinished===!0)return!0;const S=v._writableState;if(S!==null&&S!==void 0&&S.errored)return!1;if(typeof(S===null||S===void 0?void 0:S.finished)!=="boolean")return null;return!!(S.finished||R===!1&&S.ended===!0&&S.length===0)}function L(v){if(!$(v))return null;if(v.readableEnded===!0)return!0;const R=v._readableState;if(!R||R.errored)return!1;if(typeof(R===null||R===void 0?void 0:R.ended)!=="boolean")return null;return R.ended}function j(v,R){if(!$(v))return null;const S=v._readableState;if(S!==null&&S!==void 0&&S.errored)return!1;if(typeof(S===null||S===void 0?void 0:S.endEmitted)!=="boolean")return null;return!!(S.endEmitted||R===!1&&S.ended===!0&&S.length===0)}function N(v){if(v&&v[Y]!=null)return v[Y];if(typeof(v===null||v===void 0?void 0:v.readable)!=="boolean")return null;if(G(v))return!1;return $(v)&&v.readable&&!j(v)}function P(v){if(typeof(v===null||v===void 0?void 0:v.writable)!=="boolean")return null;if(G(v))return!1;return z(v)&&v.writable&&!M(v)}function E(v,R){if(!U(v))return null;if(G(v))return!0;if((R===null||R===void 0?void 0:R.readable)!==!1&&N(v))return!1;if((R===null||R===void 0?void 0:R.writable)!==!1&&P(v))return!1;return!0}function I(v){var R,S;if(!U(v))return null;if(v.writableErrored)return v.writableErrored;return(R=(S=v._writableState)===null||S===void 0?void 0:S.errored)!==null&&R!==void 0?R:null}function T(v){var R,S;if(!U(v))return null;if(v.readableErrored)return v.readableErrored;return(R=(S=v._readableState)===null||S===void 0?void 0:S.errored)!==null&&R!==void 0?R:null}function A(v){if(!U(v))return null;if(typeof v.closed==="boolean")return v.closed;const{_writableState:R,_readableState:S}=v;if(typeof(R===null||R===void 0?void 0:R.closed)==="boolean"||typeof(S===null||S===void 0?void 0:S.closed)==="boolean")return(R===null||R===void 0?void 0:R.closed)||(S===null||S===void 0?void 0:S.closed);if(typeof v._closed==="boolean"&&x(v))return v._closed;return null}function x(v){return typeof v._closed==="boolean"&&typeof v._defaultKeepAlive==="boolean"&&typeof v._removedConnection==="boolean"&&typeof v._removedContLen==="boolean"}function O(v){return typeof v._sent100==="boolean"&&x(v)}function _(v){var R;return typeof v._consuming==="boolean"&&typeof v._dumped==="boolean"&&((R=v.req)===null||R===void 0?void 0:R.upgradeOrConnect)===void 0}function C(v){if(!U(v))return null;const{_writableState:R,_readableState:S}=v,g=R||S;return!g&&O(v)||!!(g&&g.autoDestroy&&g.emitClose&&g.closed===!1)}function D(v){var R;return!!(v&&((R=v[B])!==null&&R!==void 0?R:v.readableDidRead||v.readableAborted))}function w(v){var R,S,g,k,f,y,h,p,u,b;return!!(v&&((R=(S=(g=(k=(f=(y=v[Z])!==null&&y!==void 0?y:v.readableErrored)!==null&&f!==void 0?f:v.writableErrored)!==null&&k!==void 0?k:(h=v._readableState)===null||h===void 0?void 0:h.errorEmitted)!==null&&g!==void 0?g:(p=v._writableState)===null||p===void 0?void 0:p.errorEmitted)!==null&&S!==void 0?S:(u=v._readableState)===null||u===void 0?void 0:u.errored)!==null&&R!==void 0?R:(b=v._writableState)===null||b===void 0?void 0:b.errored))}Q.exports={kDestroyed:K,isDisturbed:D,kIsDisturbed:B,isErrored:w,kIsErrored:Z,isReadable:N,kIsReadable:Y,isClosed:A,isDestroyed:G,isDuplexNodeStream:V,isFinished:E,isIterable:W,isReadableNodeStream:$,isReadableEnded:L,isReadableFinished:j,isReadableErrored:T,isNodeStream:U,isWritable:P,isWritableNodeStream:z,isWritableEnded:M,isWritableFinished:F,isWritableErrored:I,isServerRequest:_,isServerResponse:O,willEmitClose:C}}}),tq=cq({"node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(q,Q){var{AbortError:X,codes:J}=sq(),{ERR_INVALID_ARG_TYPE:H,ERR_STREAM_PREMATURE_CLOSE:K}=J,{once:Z}=wq(),{validateAbortSignal:Y,validateFunction:B,validateObject:$}=aq(),{Promise:z}=Dq(),{isClosed:V,isReadable:U,isReadableNodeStream:W,isReadableFinished:G,isReadableErrored:M,isWritable:F,isWritableNodeStream:L,isWritableFinished:j,isWritableErrored:N,isNodeStream:P,willEmitClose:E}=rq();function I(O){return O.setHeader&&typeof O.abort==="function"}var T=()=>{};function A(O,_,C){var D,w;if(arguments.length===2)C=_,_={};else if(_==null)_={};else $(_,"options");B(C,"callback"),Y(_.signal,"options.signal"),C=Z(C);const v=(D=_.readable)!==null&&D!==void 0?D:W(O),R=(w=_.writable)!==null&&w!==void 0?w:L(O);if(!P(O))throw new H("stream","Stream",O);const{_writableState:S,_readableState:g}=O,k=()=>{if(!O.writable)h()};let f=E(O)&&W(O)===v&&L(O)===R,y=j(O,!1);const h=()=>{if(y=!0,O.destroyed)f=!1;if(f&&(!O.readable||v))return;if(!v||p)C.call(O)};let p=G(O,!1);const u=()=>{if(p=!0,O.destroyed)f=!1;if(f&&(!O.writable||R))return;if(!R||y)C.call(O)},b=(i)=>{C.call(O,i)};let m=V(O);const c=()=>{m=!0;const i=N(O)||M(O);if(i&&typeof i!=="boolean")return C.call(O,i);if(v&&!p&&W(O,!0)){if(!G(O,!1))return C.call(O,new K)}if(R&&!y){if(!j(O,!1))return C.call(O,new K)}C.call(O)},d=()=>{O.req.on("finish",h)};if(I(O)){if(O.on("complete",h),!f)O.on("abort",c);if(O.req)d();else O.on("request",d)}else if(R&&!S)O.on("end",k),O.on("close",k);if(!f&&typeof O.aborted==="boolean")O.on("aborted",c);if(O.on("end",u),O.on("finish",h),_.error!==!1)O.on("error",b);if(O.on("close",c),m)Aq(c);else if(S!==null&&S!==void 0&&S.errorEmitted||g!==null&&g!==void 0&&g.errorEmitted){if(!f)Aq(c)}else if(!v&&(!f||U(O))&&(y||F(O)===!1))Aq(c);else if(!R&&(!f||F(O))&&(p||U(O)===!1))Aq(c);else if(g&&O.req&&O.aborted)Aq(c);const l=()=>{if(C=T,O.removeListener("aborted",c),O.removeListener("complete",h),O.removeListener("abort",c),O.removeListener("request",d),O.req)O.req.removeListener("finish",h);O.removeListener("end",k),O.removeListener("close",k),O.removeListener("finish",h),O.removeListener("end",u),O.removeListener("error",b),O.removeListener("close",c)};if(_.signal&&!m){const i=()=>{const n=C;l(),n.call(O,new X(void 0,{cause:_.signal.reason}))};if(_.signal.aborted)Aq(i);else{const n=C;C=Z((...o)=>{_.signal.removeEventListener("abort",i),n.apply(O,o)}),_.signal.addEventListener("abort",i)}}return l}function x(O,_){return new z((C,D)=>{A(O,_,(w)=>{if(w)D(w);else C()})})}Q.exports=A,Q.exports.finished=x}}),eq=cq({"node_modules/readable-stream/lib/internal/streams/operators.js"(q,Q){var X=globalThis.AbortController||_q("abort-controller").AbortController,{codes:{ERR_INVALID_ARG_TYPE:J,ERR_MISSING_ARGS:H,ERR_OUT_OF_RANGE:K},AbortError:Z}=sq(),{validateAbortSignal:Y,validateInteger:B,validateObject:$}=aq(),z=Dq().Symbol("kWeak"),{finished:V}=tq(),{ArrayPrototypePush:U,MathFloor:W,Number:G,NumberIsNaN:M,Promise:F,PromiseReject:L,PromisePrototypeCatch:j,Symbol:N}=Dq(),P=N("kEmpty"),E=N("kEof");function I(f,y){if(typeof f!=="function")throw new J("fn",["Function","AsyncFunction"],f);if(y!=null)$(y,"options");if((y===null||y===void 0?void 0:y.signal)!=null)Y(y.signal,"options.signal");let h=1;if((y===null||y===void 0?void 0:y.concurrency)!=null)h=W(y.concurrency);return B(h,"concurrency",1),async function*p(){var u,b;const m=new X,c=this,d=[],l=m.signal,i={signal:l},n=()=>m.abort();if(y!==null&&y!==void 0&&(u=y.signal)!==null&&u!==void 0&&u.aborted)n();y===null||y===void 0||(b=y.signal)===null||b===void 0||b.addEventListener("abort",n);let o,s,a=!1;function r(){a=!0}async function t(){try{for await(let Qq of c){var e;if(a)return;if(l.aborted)throw new Z;try{Qq=f(Qq,i)}catch(Xq){Qq=L(Xq)}if(Qq===P)continue;if(typeof((e=Qq)===null||e===void 0?void 0:e.catch)==="function")Qq.catch(r);if(d.push(Qq),o)o(),o=null;if(!a&&d.length&&d.length>=h)await new F((Xq)=>{s=Xq})}d.push(E)}catch(Qq){const Xq=L(Qq);j(Xq,r),d.push(Xq)}finally{var qq;if(a=!0,o)o(),o=null;y===null||y===void 0||(qq=y.signal)===null||qq===void 0||qq.removeEventListener("abort",n)}}t();try{while(!0){while(d.length>0){const e=await d[0];if(e===E)return;if(l.aborted)throw new Z;if(e!==P)yield e;if(d.shift(),s)s(),s=null}await new F((e)=>{o=e})}}finally{if(m.abort(),a=!0,s)s(),s=null}}.call(this)}function T(f=void 0){if(f!=null)$(f,"options");if((f===null||f===void 0?void 0:f.signal)!=null)Y(f.signal,"options.signal");return async function*y(){let h=0;for await(let u of this){var p;if(f!==null&&f!==void 0&&(p=f.signal)!==null&&p!==void 0&&p.aborted)throw new Z({cause:f.signal.reason});yield[h++,u]}}.call(this)}async function A(f,y=void 0){for await(let h of C.call(this,f,y))return!0;return!1}async function x(f,y=void 0){if(typeof f!=="function")throw new J("fn",["Function","AsyncFunction"],f);return!await A.call(this,async(...h)=>{return!await f(...h)},y)}async function O(f,y){for await(let h of C.call(this,f,y))return h;return}async function _(f,y){if(typeof f!=="function")throw new J("fn",["Function","AsyncFunction"],f);async function h(p,u){return await f(p,u),P}for await(let p of I.call(this,h,y));}function C(f,y){if(typeof f!=="function")throw new J("fn",["Function","AsyncFunction"],f);async function h(p,u){if(await f(p,u))return p;return P}return I.call(this,h,y)}var D=class extends H{constructor(){super("reduce");this.message="Reduce of an empty stream requires an initial value"}};async function w(f,y,h){var p;if(typeof f!=="function")throw new J("reducer",["Function","AsyncFunction"],f);if(h!=null)$(h,"options");if((h===null||h===void 0?void 0:h.signal)!=null)Y(h.signal,"options.signal");let u=arguments.length>1;if(h!==null&&h!==void 0&&(p=h.signal)!==null&&p!==void 0&&p.aborted){const l=new Z(void 0,{cause:h.signal.reason});throw this.once("error",()=>{}),await V(this.destroy(l)),l}const b=new X,m=b.signal;if(h!==null&&h!==void 0&&h.signal){const l={once:!0,[z]:this};h.signal.addEventListener("abort",()=>b.abort(),l)}let c=!1;try{for await(let l of this){var d;if(c=!0,h!==null&&h!==void 0&&(d=h.signal)!==null&&d!==void 0&&d.aborted)throw new Z;if(!u)y=l,u=!0;else y=await f(y,l,{signal:m})}if(!c&&!u)throw new D}finally{b.abort()}return y}async function v(f){if(f!=null)$(f,"options");if((f===null||f===void 0?void 0:f.signal)!=null)Y(f.signal,"options.signal");const y=[];for await(let p of this){var h;if(f!==null&&f!==void 0&&(h=f.signal)!==null&&h!==void 0&&h.aborted)throw new Z(void 0,{cause:f.signal.reason});U(y,p)}return y}function R(f,y){const h=I.call(this,f,y);return async function*p(){for await(let u of h)yield*u}.call(this)}function S(f){if(f=G(f),M(f))return 0;if(f<0)throw new K("number",">= 0",f);return f}function g(f,y=void 0){if(y!=null)$(y,"options");if((y===null||y===void 0?void 0:y.signal)!=null)Y(y.signal,"options.signal");return f=S(f),async function*h(){var p;if(y!==null&&y!==void 0&&(p=y.signal)!==null&&p!==void 0&&p.aborted)throw new Z;for await(let b of this){var u;if(y!==null&&y!==void 0&&(u=y.signal)!==null&&u!==void 0&&u.aborted)throw new Z;if(f--<=0)yield b}}.call(this)}function k(f,y=void 0){if(y!=null)$(y,"options");if((y===null||y===void 0?void 0:y.signal)!=null)Y(y.signal,"options.signal");return f=S(f),async function*h(){var p;if(y!==null&&y!==void 0&&(p=y.signal)!==null&&p!==void 0&&p.aborted)throw new Z;for await(let b of this){var u;if(y!==null&&y!==void 0&&(u=y.signal)!==null&&u!==void 0&&u.aborted)throw new Z;if(f-- >0)yield b;else return}}.call(this)}Q.exports.streamReturningOperators={asIndexedPairs:T,drop:g,filter:C,flatMap:R,map:I,take:k},Q.exports.promiseReturningOperators={every:x,forEach:_,reduce:w,toArray:v,some:A,find:O}}}),qQ=cq({"node_modules/readable-stream/lib/internal/streams/destroy.js"(q,Q){var{aggregateTwoErrors:X,codes:{ERR_MULTIPLE_CALLBACK:J},AbortError:H}=sq(),{Symbol:K}=Dq(),{kDestroyed:Z,isDestroyed:Y,isFinished:B,isServerRequest:$}=rq(),z="#kDestroy",V="#kConstruct";function U(_,C,D){if(_){if(_.stack,C&&!C.errored)C.errored=_;if(D&&!D.errored)D.errored=_}}function W(_,C){const D=this._readableState,w=this._writableState,v=w||D;if(w&&w.destroyed||D&&D.destroyed){if(typeof C==="function")C();return this}if(U(_,w,D),w)w.destroyed=!0;if(D)D.destroyed=!0;if(!v.constructed)this.once(z,(R)=>{G(this,X(R,_),C)});else G(this,_,C);return this}function G(_,C,D){let w=!1;function v(R){if(w)return;w=!0;const{_readableState:S,_writableState:g}=_;if(U(R,g,S),g)g.closed=!0;if(S)S.closed=!0;if(typeof D==="function")D(R);if(R)Aq(M,_,R);else Aq(F,_)}try{_._destroy(C||null,v)}catch(R){v(R)}}function M(_,C){L(_,C),F(_)}function F(_){const{_readableState:C,_writableState:D}=_;if(D)D.closeEmitted=!0;if(C)C.closeEmitted=!0;if(D&&D.emitClose||C&&C.emitClose)_.emit("close")}function L(_,C){const D=_?._readableState,w=_?._writableState;if(w?.errorEmitted||D?.errorEmitted)return;if(w)w.errorEmitted=!0;if(D)D.errorEmitted=!0;_?.emit?.("error",C)}function j(){const _=this._readableState,C=this._writableState;if(_)_.constructed=!0,_.closed=!1,_.closeEmitted=!1,_.destroyed=!1,_.errored=null,_.errorEmitted=!1,_.reading=!1,_.ended=_.readable===!1,_.endEmitted=_.readable===!1;if(C)C.constructed=!0,C.destroyed=!1,C.closed=!1,C.closeEmitted=!1,C.errored=null,C.errorEmitted=!1,C.finalCalled=!1,C.prefinished=!1,C.ended=C.writable===!1,C.ending=C.writable===!1,C.finished=C.writable===!1}function N(_,C,D){const w=_?._readableState,v=_?._writableState;if(v&&v.destroyed||w&&w.destroyed)return this;if(w&&w.autoDestroy||v&&v.autoDestroy)_.destroy(C);else if(C){if(Error.captureStackTrace(C),v&&!v.errored)v.errored=C;if(w&&!w.errored)w.errored=C;if(D)Aq(L,_,C);else L(_,C)}}function P(_,C){if(typeof _._construct!=="function")return;const{_readableState:D,_writableState:w}=_;if(D)D.constructed=!1;if(w)w.constructed=!1;if(_.once(V,C),_.listenerCount(V)>1)return;Aq(E,_)}function E(_){let C=!1;function D(w){if(C){N(_,w!==null&&w!==void 0?w:new J);return}C=!0;const{_readableState:v,_writableState:R}=_,S=R||v;if(v)v.constructed=!0;if(R)R.constructed=!0;if(S.destroyed)_.emit(z,w);else if(w)N(_,w,!0);else Aq(I,_)}try{_._construct(D)}catch(w){D(w)}}function I(_){_.emit(V)}function T(_){return _&&_.setHeader&&typeof _.abort==="function"}function A(_){_.emit("close")}function x(_,C){_.emit("error",C),Aq(A,_)}function O(_,C){if(!_||Y(_))return;if(!C&&!B(_))C=new H;if($(_))_.socket=null,_.destroy(C);else if(T(_))_.abort();else if(T(_.req))_.req.abort();else if(typeof _.destroy==="function")_.destroy(C);else if(typeof _.close==="function")_.close();else if(C)Aq(x,_);else Aq(A,_);if(!_.destroyed)_[Z]=!0}Q.exports={construct:P,destroyer:O,destroy:W,undestroy:j,errorOrDestroy:N}}}),QQ=cq({"node_modules/readable-stream/lib/internal/streams/legacy.js"(q,Q){var{ArrayIsArray:X,ObjectSetPrototypeOf:J}=Dq(),{EventEmitter:H}=_q("bun:events_native"),K;if(gq)K=Cq;else K=H;function Z(B){if(!(this instanceof Z))return new Z(B);K.call(this,B)}J(Z.prototype,K.prototype),J(Z,K),Z.prototype.pipe=function(B,$){const z=this;function V(j){if(B.writable&&B.write(j)===!1&&z.pause)z.pause()}z.on("data",V);function U(){if(z.readable&&z.resume)z.resume()}if(B.on("drain",U),!B._isStdio&&(!$||$.end!==!1))z.on("end",G),z.on("close",M);let W=!1;function G(){if(W)return;W=!0,B.end()}function M(){if(W)return;if(W=!0,typeof B.destroy==="function")B.destroy()}function F(j){if(L(),K.listenerCount(this,"error")===0)this.emit("error",j)}Y(z,"error",F),Y(B,"error",F);function L(){z.removeListener("data",V),B.removeListener("drain",U),z.removeListener("end",G),z.removeListener("close",M),z.removeListener("error",F),B.removeListener("error",F),z.removeListener("end",L),z.removeListener("close",L),B.removeListener("close",L)}return z.on("end",L),z.on("close",L),B.on("close",L),B.emit("pipe",z),B};function Y(B,$,z){if(typeof B.prependListener==="function")return B.prependListener($,z);if(!B._events||!B._events[$])B.on($,z);else if(X(B._events[$]))B._events[$].unshift(z);else B._events[$]=[z,B._events[$]]}Q.exports={Stream:Z,prependListener:Y}}}),XQ=cq({"node_modules/readable-stream/lib/internal/streams/add-abort-signal.js"(q,Q){var{AbortError:X,codes:J}=sq(),H=tq(),{ERR_INVALID_ARG_TYPE:K}=J,Z=(B,$)=>{if(typeof B!=="object"||!("aborted"in B))throw new K($,"AbortSignal",B)};function Y(B){return!!(B&&typeof B.pipe==="function")}Q.exports.addAbortSignal=function B($,z){if(Z($,"signal"),!Y(z))throw new K("stream","stream.Stream",z);return Q.exports.addAbortSignalNoValidate($,z)},Q.exports.addAbortSignalNoValidate=function(B,$){if(typeof B!=="object"||!("aborted"in B))return $;const z=()=>{$.destroy(new X(void 0,{cause:B.reason}))};if(B.aborted)z();else B.addEventListener("abort",z),H($,()=>B.removeEventListener("abort",z));return $}}}),JQ=cq({"node_modules/readable-stream/lib/internal/streams/state.js"(q,Q){var{MathFloor:X,NumberIsInteger:J}=Dq(),{ERR_INVALID_ARG_VALUE:H}=sq().codes;function K(B,$,z){return B.highWaterMark!=null?B.highWaterMark:$?B[z]:null}function Z(B){return B?16:16384}function Y(B,$,z,V){const U=K($,V,z);if(U!=null){if(!J(U)||U<0){const W=V?`options.${z}`:"options.highWaterMark";throw new H(W,U)}return X(U)}return Z(B.objectMode)}Q.exports={getHighWaterMark:Y,getDefaultHighWaterMark:Z}}}),HQ=cq({"node_modules/readable-stream/lib/internal/streams/from.js"(q,Q){var{PromisePrototypeThen:X,SymbolAsyncIterator:J,SymbolIterator:H}=Dq(),{ERR_INVALID_ARG_TYPE:K,ERR_STREAM_NULL_VALUES:Z}=sq().codes;function Y(B,$,z){let V;if(typeof $==="string"||$ instanceof Buffer)return new B({objectMode:!0,...z,read(){this.push($),this.push(null)}});let U;if($&&$[J])U=!0,V=$[J]();else if($&&$[H])U=!1,V=$[H]();else throw new K("iterable",["Iterable"],$);const W=new B({objectMode:!0,highWaterMark:1,...z});let G=!1;W._read=function(){if(!G)G=!0,F()},W._destroy=function(L,j){X(M(L),()=>Aq(j,L),(N)=>Aq(j,N||L))};async function M(L){const j=L!==void 0&&L!==null,N=typeof V.throw==="function";if(j&&N){const{value:P,done:E}=await V.throw(L);if(await P,E)return}if(typeof V.return==="function"){const{value:P}=await V.return();await P}}async function F(){for(;;){try{const{value:L,done:j}=U?await V.next():V.next();if(j)W.push(null);else{const N=L&&typeof L.then==="function"?await L:L;if(N===null)throw G=!1,new Z;else if(W.push(N))continue;else G=!1}}catch(L){W.destroy(L)}break}}return W}Q.exports=Y}}),KQ,ZQ=cq({"node_modules/readable-stream/lib/internal/streams/readable.js"(q,Q){var{ArrayPrototypeIndexOf:X,NumberIsInteger:J,NumberIsNaN:H,NumberParseInt:K,ObjectDefineProperties:Z,ObjectKeys:Y,ObjectSetPrototypeOf:B,Promise:$,SafeSet:z,SymbolAsyncIterator:V,Symbol:U}=Dq(),W=globalThis[Symbol.for("Bun.lazy")]("bun:stream").ReadableState,{EventEmitter:G}=_q("bun:events_native"),{Stream:M,prependListener:F}=QQ();function L(Xq){if(!(this instanceof L))return new L(Xq);const Jq=this instanceof vq();if(this._readableState=new W(Xq,this,Jq),Xq){const{read:Hq,destroy:Kq,construct:Zq,signal:Yq}=Xq;if(typeof Hq==="function")this._read=Hq;if(typeof Kq==="function")this._destroy=Kq;if(typeof Zq==="function")this._construct=Zq;if(Yq&&!Jq)P(Yq,this)}M.call(this,Xq),C.construct(this,()=>{if(this._readableState.needReadable)O(this,this._readableState)})}B(L.prototype,M.prototype),B(L,M),L.prototype.on=function(Xq,Jq){const Hq=M.prototype.on.call(this,Xq,Jq),Kq=this._readableState;if(Xq==="data")if(Kq.readableListening=this.listenerCount("readable")>0,Kq.flowing!==!1)Iq&&Eq("in flowing mode!",this.__id),this.resume();else Iq&&Eq("in readable mode!",this.__id);else if(Xq==="readable"){if(Iq&&Eq("readable listener added!",this.__id),!Kq.endEmitted&&!Kq.readableListening){if(Kq.readableListening=Kq.needReadable=!0,Kq.flowing=!1,Kq.emittedReadable=!1,Iq&&Eq("on readable - state.length, reading, emittedReadable",Kq.length,Kq.reading,Kq.emittedReadable,this.__id),Kq.length)_(this,Kq);else if(!Kq.reading)Aq(n,this)}else if(Kq.endEmitted)Iq&&Eq("end already emitted...",this.__id)}return Hq};class j extends L{#q;#Q;#X;#J;constructor(Xq,Jq){const{objectMode:Hq,highWaterMark:Kq,encoding:Zq,signal:Yq}=Xq;super({objectMode:Hq,highWaterMark:Kq,encoding:Zq,signal:Yq});this.#X=[],this.#q=void 0,this.#J=Jq,this.#Q=!1}#H(){var Xq=this.#X,Jq=0,Hq=Xq.length;for(;Jq0)this.#X=[];return!1}#K(Xq){Xq.releaseLock(),this.#q=void 0,this.#Q=!0,this.push(null);return}async _read(){Iq&&Eq("ReadableFromWeb _read()",this.__id);var Xq=this.#J,Jq=this.#q;if(Xq)Jq=this.#q=Xq.getReader(),this.#J=void 0;else if(this.#H())return;var Hq;try{do{var Kq=!1,Zq;const Yq=Jq.readMany();if(Oq(Yq)){if({done:Kq,value:Zq}=await Yq,this.#Q){this.#X.push(...Zq);return}}else({done:Kq,value:Zq}=Yq);if(Kq){this.#K(Jq);return}if(!this.push(Zq[0])){this.#X=Zq.slice(1);return}for(let Bq=1,$q=Zq.length;Bq<$q;Bq++)if(!this.push(Zq[Bq])){this.#X=Zq.slice(Bq+1);return}}while(!this.#Q)}catch(Yq){Hq=Yq}finally{if(Hq)throw Hq}}_destroy(Xq,Jq){if(!this.#Q){var Hq=this.#q;if(Hq)this.#q=void 0,Hq.cancel(Xq).finally(()=>{this.#Q=!0,Jq(Xq)});return}try{Jq(Xq)}catch(Kq){globalThis.reportError(Kq)}}}function N(Xq,Jq={}){if(!dq(Xq))throw new w("readableStream","ReadableStream",Xq);k(Jq,"options");const{highWaterMark:Hq,encoding:Kq,objectMode:Zq=!1,signal:Yq}=Jq;if(Kq!==void 0&&!Buffer.isEncoding(Kq))throw new oq(Kq,"options.encoding");return lq(Zq,"options.objectMode"),NQ(L,Xq,Jq)||new j({highWaterMark:Hq,encoding:Kq,objectMode:Zq,signal:Yq},Xq)}Q.exports=L,KQ=j;var{addAbortSignal:P}=XQ(),E=tq();const{maybeReadMore:I,resume:T,emitReadable:A,onEofChunk:x}=globalThis[Symbol.for("Bun.lazy")]("bun:stream");function O(Xq,Jq){process.nextTick(I,Xq,Jq)}function _(Xq,Jq){Iq&&Eq("NativeReadable - emitReadable",Xq.__id),A(Xq,Jq)}var C=qQ(),{aggregateTwoErrors:D,codes:{ERR_INVALID_ARG_TYPE:w,ERR_METHOD_NOT_IMPLEMENTED:v,ERR_OUT_OF_RANGE:R,ERR_STREAM_PUSH_AFTER_EOF:S,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:g}}=sq(),{validateObject:k}=aq(),{StringDecoder:f}=_q("string_decoder"),y=HQ(),h=()=>{},{errorOrDestroy:p}=C;L.prototype.destroy=C.destroy,L.prototype._undestroy=C.undestroy,L.prototype._destroy=function(Xq,Jq){Jq(Xq)},L.prototype[G.captureRejectionSymbol]=function(Xq){this.destroy(Xq)},L.prototype.push=function(Xq,Jq){return u(this,Xq,Jq,!1)},L.prototype.unshift=function(Xq,Jq){return u(this,Xq,Jq,!0)};function u(Xq,Jq,Hq,Kq){Iq&&Eq("readableAddChunk",Jq,Xq.__id);const Zq=Xq._readableState;let Yq;if(!Zq.objectMode){if(typeof Jq==="string"){if(Hq=Hq||Zq.defaultEncoding,Zq.encoding!==Hq)if(Kq&&Zq.encoding)Jq=Buffer.from(Jq,Hq).toString(Zq.encoding);else Jq=Buffer.from(Jq,Hq),Hq=""}else if(Jq instanceof Buffer)Hq="";else if(M._isUint8Array(Jq)){if(Kq||!Zq.decoder)Jq=M._uint8ArrayToBuffer(Jq);Hq=""}else if(Jq!=null)Yq=new w("chunk",["string","Buffer","Uint8Array"],Jq)}if(Yq)p(Xq,Yq);else if(Jq===null)Zq.reading=!1,x(Xq,Zq);else if(Zq.objectMode||Jq&&Jq.length>0)if(Kq)if(Zq.endEmitted)p(Xq,new g);else if(Zq.destroyed||Zq.errored)return!1;else b(Xq,Zq,Jq,!0);else if(Zq.ended)p(Xq,new S);else if(Zq.destroyed||Zq.errored)return!1;else if(Zq.reading=!1,Zq.decoder&&!Hq)if(Jq=Zq.decoder.write(Jq),Zq.objectMode||Jq.length!==0)b(Xq,Zq,Jq,!1);else O(Xq,Zq);else b(Xq,Zq,Jq,!1);else if(!Kq)Zq.reading=!1,O(Xq,Zq);return!Zq.ended&&(Zq.length0){if(Jq.multiAwaitDrain)Jq.awaitDrainWriters.clear();else Jq.awaitDrainWriters=null;Jq.dataEmitted=!0,Xq.emit("data",Hq)}else{if(Jq.length+=Jq.objectMode?1:Hq.length,Kq)Jq.buffer.unshift(Hq);else Jq.buffer.push(Hq);if(Iq&&Eq("needReadable @ addChunk",Jq.needReadable,Xq.__id),Jq.needReadable)_(Xq,Jq)}O(Xq,Jq)}L.prototype.isPaused=function(){const Xq=this._readableState;return Xq.paused===!0||Xq.flowing===!1},L.prototype.setEncoding=function(Xq){const Jq=new f(Xq);this._readableState.decoder=Jq,this._readableState.encoding=this._readableState.decoder.encoding;const Hq=this._readableState.buffer;let Kq="";for(let Zq=Hq.length;Zq>0;Zq--)Kq+=Jq.write(Hq.shift());if(Kq!=="")Hq.push(Kq);return this._readableState.length=Kq.length,this};var m=1073741824;function c(Xq){if(Xq>m)throw new R("size","<= 1GiB",Xq);else Xq--,Xq|=Xq>>>1,Xq|=Xq>>>2,Xq|=Xq>>>4,Xq|=Xq>>>8,Xq|=Xq>>>16,Xq++;return Xq}function d(Xq,Jq){if(Xq<=0||Jq.length===0&&Jq.ended)return 0;if(Jq.objectMode)return 1;if(H(Xq)){if(Jq.flowing&&Jq.length)return Jq.buffer.first().length;return Jq.length}if(Xq<=Jq.length)return Xq;return Jq.ended?Jq.length:0}L.prototype.read=function(Xq){if(Iq&&Eq("read - n =",Xq,this.__id),!J(Xq))Xq=K(Xq,10);const Jq=this._readableState,Hq=Xq;if(Xq>Jq.highWaterMark)Jq.highWaterMark=c(Xq);if(Xq!==0)Jq.emittedReadable=!1;if(Xq===0&&Jq.needReadable&&((Jq.highWaterMark!==0?Jq.length>=Jq.highWaterMark:Jq.length>0)||Jq.ended)){if(Iq&&Eq("read: emitReadable or endReadable",Jq.length,Jq.ended,this.__id),Jq.length===0&&Jq.ended)r(this);else _(this,Jq);return null}if(Xq=d(Xq,Jq),Xq===0&&Jq.ended){if(Iq&&Eq("read: calling endReadable if length 0 -- length, state.ended",Jq.length,Jq.ended,this.__id),Jq.length===0)r(this);return null}let Kq=Jq.needReadable;if(Iq&&Eq("need readable",Kq,this.__id),Jq.length===0||Jq.length-Xq0)Yq=a(Xq,Jq);else Yq=null;if(Iq&&Eq("ret @ read",Yq,this.__id),Yq===null)Jq.needReadable=Jq.length<=Jq.highWaterMark,Iq&&Eq("state.length while ret = null",Jq.length,this.__id),Xq=0;else if(Jq.length-=Xq,Jq.multiAwaitDrain)Jq.awaitDrainWriters.clear();else Jq.awaitDrainWriters=null;if(Jq.length===0){if(!Jq.ended)Jq.needReadable=!0;if(Hq!==Xq&&Jq.ended)r(this)}if(Yq!==null&&!Jq.errorEmitted&&!Jq.closeEmitted)Jq.dataEmitted=!0,this.emit("data",Yq);return Yq},L.prototype._read=function(Xq){throw new v("_read()")},L.prototype.pipe=function(Xq,Jq){const Hq=this,Kq=this._readableState;if(Kq.pipes.length===1){if(!Kq.multiAwaitDrain)Kq.multiAwaitDrain=!0,Kq.awaitDrainWriters=new z(Kq.awaitDrainWriters?[Kq.awaitDrainWriters]:[])}Kq.pipes.push(Xq),Iq&&Eq("pipe count=%d opts=%j",Kq.pipes.length,Jq,Hq.__id);const Yq=(!Jq||Jq.end!==!1)&&Xq!==process.stdout&&Xq!==process.stderr?$q:jq;if(Kq.endEmitted)Aq(Yq);else Hq.once("end",Yq);Xq.on("unpipe",Bq);function Bq(Nq,Pq){if(Iq&&Eq("onunpipe",Hq.__id),Nq===Hq){if(Pq&&Pq.hasUnpiped===!1)Pq.hasUnpiped=!0,Uq()}}function $q(){Iq&&Eq("onend",Hq.__id),Xq.end()}let zq,Vq=!1;function Uq(){if(Iq&&Eq("cleanup",Hq.__id),Xq.removeListener("close",Fq),Xq.removeListener("finish",Lq),zq)Xq.removeListener("drain",zq);if(Xq.removeListener("error",Mq),Xq.removeListener("unpipe",Bq),Hq.removeListener("end",$q),Hq.removeListener("end",jq),Hq.removeListener("data",Gq),Vq=!0,zq&&Kq.awaitDrainWriters&&(!Xq._writableState||Xq._writableState.needDrain))zq()}function Wq(){if(!Vq){if(Kq.pipes.length===1&&Kq.pipes[0]===Xq)Iq&&Eq("false write response, pause",0,Hq.__id),Kq.awaitDrainWriters=Xq,Kq.multiAwaitDrain=!1;else if(Kq.pipes.length>1&&Kq.pipes.includes(Xq))Iq&&Eq("false write response, pause",Kq.awaitDrainWriters.size,Hq.__id),Kq.awaitDrainWriters.add(Xq);Hq.pause()}if(!zq)zq=l(Hq,Xq),Xq.on("drain",zq)}Hq.on("data",Gq);function Gq(Nq){Iq&&Eq("ondata",Hq.__id);const Pq=Xq.write(Nq);if(Iq&&Eq("dest.write",Pq,Hq.__id),Pq===!1)Wq()}function Mq(Nq){if(Eq("onerror",Nq),jq(),Xq.removeListener("error",Mq),Xq.listenerCount("error")===0){const Pq=Xq._writableState||Xq._readableState;if(Pq&&!Pq.errorEmitted)p(Xq,Nq);else Xq.emit("error",Nq)}}F(Xq,"error",Mq);function Fq(){Xq.removeListener("finish",Lq),jq()}Xq.once("close",Fq);function Lq(){Eq("onfinish"),Xq.removeListener("close",Fq),jq()}Xq.once("finish",Lq);function jq(){Eq("unpipe"),Hq.unpipe(Xq)}if(Xq.emit("pipe",Hq),Xq.writableNeedDrain===!0){if(Kq.flowing)Wq()}else if(!Kq.flowing)Eq("pipe resume"),Hq.resume();return Xq};function l(Xq,Jq){return function Hq(){const Kq=Xq._readableState;if(Kq.awaitDrainWriters===Jq)Eq("pipeOnDrain",1),Kq.awaitDrainWriters=null;else if(Kq.multiAwaitDrain)Eq("pipeOnDrain",Kq.awaitDrainWriters.size),Kq.awaitDrainWriters.delete(Jq);if((!Kq.awaitDrainWriters||Kq.awaitDrainWriters.size===0)&&Xq.listenerCount("data"))Xq.resume()}}L.prototype.unpipe=function(Xq){const Jq=this._readableState,Hq={hasUnpiped:!1};if(Jq.pipes.length===0)return this;if(!Xq){const Zq=Jq.pipes;Jq.pipes=[],this.pause();for(let Yq=0;Yq0,Jq.resumeScheduled&&Jq.paused===!1)Jq.flowing=!0;else if(Xq.listenerCount("data")>0)Xq.resume();else if(!Jq.readableListening)Jq.flowing=null}function n(Xq){Iq&&Eq("on readable nextTick, calling read(0)",Xq.__id),Xq.read(0)}L.prototype.resume=function(){const Xq=this._readableState;if(!Xq.flowing)Iq&&Eq("resume",this.__id),Xq.flowing=!Xq.readableListening,T(this,Xq);return Xq.paused=!1,this},L.prototype.pause=function(){if(Iq&&Eq("call pause flowing=%j",this._readableState.flowing,this.__id),this._readableState.flowing!==!1)Iq&&Eq("pause",this.__id),this._readableState.flowing=!1,this.emit("pause");return this._readableState.paused=!0,this},L.prototype.wrap=function(Xq){let Jq=!1;Xq.on("data",(Kq)=>{if(!this.push(Kq)&&Xq.pause)Jq=!0,Xq.pause()}),Xq.on("end",()=>{this.push(null)}),Xq.on("error",(Kq)=>{p(this,Kq)}),Xq.on("close",()=>{this.destroy()}),Xq.on("destroy",()=>{this.destroy()}),this._read=()=>{if(Jq&&Xq.resume)Jq=!1,Xq.resume()};const Hq=Y(Xq);for(let Kq=1;Kq{Zq=Bq?D(Zq,Bq):null,Hq(),Hq=h});try{while(!0){const Bq=Xq.destroyed?null:Xq.read();if(Bq!==null)yield Bq;else if(Zq)throw Zq;else if(Zq===null)return;else await new $(Kq)}}catch(Bq){throw Zq=D(Zq,Bq),Zq}finally{if((Zq||(Jq===null||Jq===void 0?void 0:Jq.destroyOnReturn)!==!1)&&(Zq===void 0||Xq._readableState.autoDestroy))C.destroyer(Xq,null);else Xq.off("readable",Kq),Yq()}}Z(L.prototype,{readable:{get(){const Xq=this._readableState;return!!Xq&&Xq.readable!==!1&&!Xq.destroyed&&!Xq.errorEmitted&&!Xq.endEmitted},set(Xq){if(this._readableState)this._readableState.readable=!!Xq}},readableDidRead:{enumerable:!1,get:function(){return this._readableState.dataEmitted}},readableAborted:{enumerable:!1,get:function(){return!!(this._readableState.readable!==!1&&(this._readableState.destroyed||this._readableState.errored)&&!this._readableState.endEmitted)}},readableHighWaterMark:{enumerable:!1,get:function(){return this._readableState.highWaterMark}},readableBuffer:{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}},readableFlowing:{enumerable:!1,get:function(){return this._readableState.flowing},set:function(Xq){if(this._readableState)this._readableState.flowing=Xq}},readableLength:{enumerable:!1,get(){return this._readableState.length}},readableObjectMode:{enumerable:!1,get(){return this._readableState?this._readableState.objectMode:!1}},readableEncoding:{enumerable:!1,get(){return this._readableState?this._readableState.encoding:null}},errored:{enumerable:!1,get(){return this._readableState?this._readableState.errored:null}},closed:{get(){return this._readableState?this._readableState.closed:!1}},destroyed:{enumerable:!1,get(){return this._readableState?this._readableState.destroyed:!1},set(Xq){if(!this._readableState)return;this._readableState.destroyed=Xq}},readableEnded:{enumerable:!1,get(){return this._readableState?this._readableState.endEmitted:!1}}}),L._fromList=a;function a(Xq,Jq){if(Jq.length===0)return null;let Hq;if(Jq.objectMode)Hq=Jq.buffer.shift();else if(!Xq||Xq>=Jq.length){if(Jq.decoder)Hq=Jq.buffer.join("");else if(Jq.buffer.length===1)Hq=Jq.buffer.first();else Hq=Jq.buffer.concat(Jq.length);Jq.buffer.clear()}else Hq=Jq.buffer.consume(Xq,Jq.decoder);return Hq}function r(Xq){const Jq=Xq._readableState;if(Iq&&Eq("endEmitted @ endReadable",Jq.endEmitted,Xq.__id),!Jq.endEmitted)Jq.ended=!0,Aq(t,Jq,Xq)}function t(Xq,Jq){if(Iq&&Eq("endReadableNT -- endEmitted, state.length",Xq.endEmitted,Xq.length,Jq.__id),!Xq.errored&&!Xq.closeEmitted&&!Xq.endEmitted&&Xq.length===0){if(Xq.endEmitted=!0,Jq.emit("end"),Iq&&Eq("end emitted @ endReadableNT",Jq.__id),Jq.writable&&Jq.allowHalfOpen===!1)Aq(e,Jq);else if(Xq.autoDestroy){const Hq=Jq._writableState;if(!Hq||Hq.autoDestroy&&(Hq.finished||Hq.writable===!1))Jq.destroy()}}}function e(Xq){if(Xq.writable&&!Xq.writableEnded&&!Xq.destroyed)Xq.end()}L.from=function(Xq,Jq){return y(L,Xq,Jq)};var qq={newStreamReadableFromReadableStream:N};function Qq(){if(qq===void 0)qq={};return qq}L.fromWeb=function(Xq,Jq){return Qq().newStreamReadableFromReadableStream(Xq,Jq)},L.toWeb=function(Xq){return Qq().newReadableStreamFromStreamReadable(Xq)},L.wrap=function(Xq,Jq){var Hq,Kq;return new L({objectMode:(Hq=(Kq=Xq.readableObjectMode)!==null&&Kq!==void 0?Kq:Xq.objectMode)!==null&&Hq!==void 0?Hq:!0,...Jq,destroy(Zq,Yq){C.destroyer(Xq,Zq),Yq(Zq)}}).wrap(Xq)}}}),YQ=cq({"node_modules/readable-stream/lib/internal/streams/writable.js"(q,Q){var{ArrayPrototypeSlice:X,Error:J,FunctionPrototypeSymbolHasInstance:H,ObjectDefineProperty:K,ObjectDefineProperties:Z,ObjectSetPrototypeOf:Y,StringPrototypeToLowerCase:B,Symbol:$,SymbolHasInstance:z}=Dq(),{EventEmitter:V}=_q("bun:events_native"),U=QQ().Stream,W=qQ(),{addAbortSignal:G}=XQ(),{getHighWaterMark:M,getDefaultHighWaterMark:F}=JQ(),{ERR_INVALID_ARG_TYPE:L,ERR_METHOD_NOT_IMPLEMENTED:j,ERR_MULTIPLE_CALLBACK:N,ERR_STREAM_CANNOT_PIPE:P,ERR_STREAM_DESTROYED:E,ERR_STREAM_ALREADY_FINISHED:I,ERR_STREAM_NULL_VALUES:T,ERR_STREAM_WRITE_AFTER_END:A,ERR_UNKNOWN_ENCODING:x}=sq().codes,{errorOrDestroy:O}=W;function _(s={}){const a=this instanceof vq();if(!a&&!H(_,this))return new _(s);if(this._writableState=new w(s,this,a),s){if(typeof s.write==="function")this._write=s.write;if(typeof s.writev==="function")this._writev=s.writev;if(typeof s.destroy==="function")this._destroy=s.destroy;if(typeof s.final==="function")this._final=s.final;if(typeof s.construct==="function")this._construct=s.construct;if(s.signal)G(s.signal,this)}U.call(this,s),W.construct(this,()=>{const r=this._writableState;if(!r.writing)u(this,r);d(this,r)})}Y(_.prototype,U.prototype),Y(_,U),Q.exports=_;function C(){}var D=$("kOnFinished");function w(s,a,r){if(typeof r!=="boolean")r=a instanceof vq();if(this.objectMode=!!(s&&s.objectMode),r)this.objectMode=this.objectMode||!!(s&&s.writableObjectMode);this.highWaterMark=s?M(this,s,"writableHighWaterMark",r):F(!1),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;const t=!!(s&&s.decodeStrings===!1);this.decodeStrings=!t,this.defaultEncoding=s&&s.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=f.bind(void 0,a),this.writecb=null,this.writelen=0,this.afterWriteTickInfo=null,v(this),this.pendingcb=0,this.constructed=!0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!s||s.emitClose!==!1,this.autoDestroy=!s||s.autoDestroy!==!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this[D]=[]}function v(s){s.buffered=[],s.bufferedIndex=0,s.allBuffers=!0,s.allNoop=!0}w.prototype.getBuffer=function s(){return X(this.buffered,this.bufferedIndex)},K(w.prototype,"bufferedRequestCount",{get(){return this.buffered.length-this.bufferedIndex}}),K(_,z,{value:function(s){if(H(this,s))return!0;if(this!==_)return!1;return s&&s._writableState instanceof w}}),_.prototype.pipe=function(){O(this,new P)};function R(s,a,r,t){const e=s._writableState;if(typeof r==="function")t=r,r=e.defaultEncoding;else{if(!r)r=e.defaultEncoding;else if(r!=="buffer"&&!Buffer.isEncoding(r))throw new x(r);if(typeof t!=="function")t=C}if(a===null)throw new T;else if(!e.objectMode)if(typeof a==="string"){if(e.decodeStrings!==!1)a=Buffer.from(a,r),r="buffer"}else if(a instanceof Buffer)r="buffer";else if(U._isUint8Array(a))a=U._uint8ArrayToBuffer(a),r="buffer";else throw new L("chunk",["string","Buffer","Uint8Array"],a);let qq;if(e.ending)qq=new A;else if(e.destroyed)qq=new E("write");if(qq)return Aq(t,qq),O(s,qq,!0),qq;return e.pendingcb++,S(s,e,a,r,t)}_.prototype.write=function(s,a,r){return R(this,s,a,r)===!0},_.prototype.cork=function(){this._writableState.corked++},_.prototype.uncork=function(){const s=this._writableState;if(s.corked){if(s.corked--,!s.writing)u(this,s)}},_.prototype.setDefaultEncoding=function s(a){if(typeof a==="string")a=B(a);if(!Buffer.isEncoding(a))throw new x(a);return this._writableState.defaultEncoding=a,this};function S(s,a,r,t,e){const qq=a.objectMode?1:r.length;a.length+=qq;const Qq=a.lengthr.bufferedIndex)u(s,r);if(t)if(r.afterWriteTickInfo!==null&&r.afterWriteTickInfo.cb===e)r.afterWriteTickInfo.count++;else r.afterWriteTickInfo={count:1,cb:e,stream:s,state:r},Aq(y,r.afterWriteTickInfo);else h(s,r,1,e)}}function y({stream:s,state:a,count:r,cb:t}){return a.afterWriteTickInfo=null,h(s,a,r,t)}function h(s,a,r,t){if(!a.ending&&!s.destroyed&&a.length===0&&a.needDrain)a.needDrain=!1,s.emit("drain");while(r-- >0)a.pendingcb--,t();if(a.destroyed)p(a);d(s,a)}function p(s){if(s.writing)return;for(let e=s.bufferedIndex;e1&&s._writev){a.pendingcb-=qq-1;const Xq=a.allNoop?C:(Hq)=>{for(let Kq=Qq;Kq256)r.splice(0,Qq),a.bufferedIndex=0;else a.bufferedIndex=Qq}a.bufferProcessing=!1}_.prototype._write=function(s,a,r){if(this._writev)this._writev([{chunk:s,encoding:a}],r);else throw new j("_write()")},_.prototype._writev=null,_.prototype.end=function(s,a,r,t=!1){const e=this._writableState;if(Iq&&Eq("end",e,this.__id),typeof s==="function")r=s,s=null,a=null;else if(typeof a==="function")r=a,a=null;let qq;if(s!==null&&s!==void 0){let Qq;if(!t)Qq=R(this,s,a);else Qq=this.write(s,a);if(Qq instanceof J)qq=Qq}if(e.corked)e.corked=1,this.uncork();if(qq)this.emit("error",qq);else if(!e.errored&&!e.ending)e.ending=!0,d(this,e,!0),e.ended=!0;else if(e.finished)qq=new I("end");else if(e.destroyed)qq=new E("end");if(typeof r==="function")if(qq||e.finished)Aq(r,qq);else e[D].push(r);return this};function b(s,a){var r=s.ending&&!s.destroyed&&s.constructed&&s.length===0&&!s.errored&&s.buffered.length===0&&!s.finished&&!s.writing&&!s.errorEmitted&&!s.closeEmitted;return Eq("needFinish",r,a),r}function m(s,a){let r=!1;function t(e){if(r){O(s,e!==null&&e!==void 0?e:N());return}if(r=!0,a.pendingcb--,e){const qq=a[D].splice(0);for(let Qq=0;Qq{if(b(e))l(t,e);else e.pendingcb--},s,a);else if(b(a))a.pendingcb++,l(s,a)}}function l(s,a){a.pendingcb--,a.finished=!0;const r=a[D].splice(0);for(let t=0;t{if(y!=null)throw new W("nully","body",y)},(y)=>{G(k,y)});return k=new T({objectMode:!0,readable:!1,write:v,final(y){R(async()=>{try{await f,Aq(y,null)}catch(h){Aq(y,h)}})},destroy:S})}throw new W("Iterable, AsyncIterable or AsyncFunction",C,w)}if(P(_))return O(_.arrayBuffer());if(K(_))return j(T,_,{objectMode:!0,writable:!1});if(typeof(_===null||_===void 0?void 0:_.writable)==="object"||typeof(_===null||_===void 0?void 0:_.readable)==="object"){const w=_!==null&&_!==void 0&&_.readable?Y(_===null||_===void 0?void 0:_.readable)?_===null||_===void 0?void 0:_.readable:O(_.readable):void 0,v=_!==null&&_!==void 0&&_.writable?B(_===null||_===void 0?void 0:_.writable)?_===null||_===void 0?void 0:_.writable:O(_.writable):void 0;return x({readable:w,writable:v})}const D=_===null||_===void 0?void 0:_.then;if(typeof D==="function"){let w;return I(D,_,(v)=>{if(v!=null)w.push(v);w.push(null)},(v)=>{G(w,v)}),w=new T({objectMode:!0,writable:!1,read(){}})}throw new U(C,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],_)};function A(O){let{promise:_,resolve:C}=L();const D=new E,w=D.signal;return{value:O(async function*(){while(!0){const R=_;_=null;const{chunk:S,done:g,cb:k}=await R;if(Aq(k),g)return;if(w.aborted)throw new V(void 0,{cause:w.reason});({promise:_,resolve:C}=L()),yield S}}(),{signal:w}),write(R,S,g){const k=C;C=null,k({chunk:R,done:!1,cb:g})},final(R){const S=C;C=null,S({done:!0,cb:R})},destroy(R,S){D.abort(),S(R)}}}function x(O){const _=O.readable&&typeof O.readable.read!=="function"?F.wrap(O.readable):O.readable,C=O.writable;let D=!!J(_),w=!!H(C),v,R,S,g,k;function f(y){const h=g;if(g=null,h)h(y);else if(y)k.destroy(y);else if(!D&&!w)k.destroy()}if(k=new T({readableObjectMode:!!(_!==null&&_!==void 0&&_.readableObjectMode),writableObjectMode:!!(C!==null&&C!==void 0&&C.writableObjectMode),readable:D,writable:w}),w)z(C,(y)=>{if(w=!1,y)G(_,y);f(y)}),k._write=function(y,h,p){if(C.write(y,h))p();else v=p},k._final=function(y){C.end(),R=y},C.on("drain",function(){if(v){const y=v;v=null,y()}}),C.on("finish",function(){if(R){const y=R;R=null,y()}});if(D)z(_,(y)=>{if(D=!1,y)G(_,y);f(y)}),_.on("readable",function(){if(S){const y=S;S=null,y()}}),_.on("end",function(){k.push(null)}),k._read=function(){while(!0){const y=_.read();if(y===null){S=k._read;return}if(!k.push(y))return}};return k._destroy=function(y,h){if(!y&&g!==null)y=new V;if(S=null,v=null,R=null,g===null)h(y);else g=h,G(C,y),G(_,y)},k}}}),vq=cq({"node_modules/readable-stream/lib/internal/streams/duplex.js"(q,Q){var{ObjectDefineProperties:X,ObjectGetOwnPropertyDescriptor:J,ObjectKeys:H,ObjectSetPrototypeOf:K}=Dq(),Z=ZQ();function Y(U){if(!(this instanceof Y))return new Y(U);if(Z.call(this,U),Tq.call(this,U),U){if(this.allowHalfOpen=U.allowHalfOpen!==!1,U.readable===!1)this._readableState.readable=!1,this._readableState.ended=!0,this._readableState.endEmitted=!0;if(U.writable===!1)this._writableState.writable=!1,this._writableState.ending=!0,this._writableState.ended=!0,this._writableState.finished=!0}else this.allowHalfOpen=!0}Q.exports=Y,K(Y.prototype,Z.prototype),K(Y,Z);for(var B in Tq.prototype)if(!Y.prototype[B])Y.prototype[B]=Tq.prototype[B];X(Y.prototype,{writable:J(Tq.prototype,"writable"),writableHighWaterMark:J(Tq.prototype,"writableHighWaterMark"),writableObjectMode:J(Tq.prototype,"writableObjectMode"),writableBuffer:J(Tq.prototype,"writableBuffer"),writableLength:J(Tq.prototype,"writableLength"),writableFinished:J(Tq.prototype,"writableFinished"),writableCorked:J(Tq.prototype,"writableCorked"),writableEnded:J(Tq.prototype,"writableEnded"),writableNeedDrain:J(Tq.prototype,"writableNeedDrain"),destroyed:{get(){if(this._readableState===void 0||this._writableState===void 0)return!1;return this._readableState.destroyed&&this._writableState.destroyed},set(U){if(this._readableState&&this._writableState)this._readableState.destroyed=U,this._writableState.destroyed=U}}});var $;function z(){if($===void 0)$={};return $}Y.fromWeb=function(U,W){return z().newStreamDuplexFromReadableWritablePair(U,W)},Y.toWeb=function(U){return z().newReadableWritablePairFromDuplex(U)};var V;Y.from=function(U){if(!V)V=BQ();return V(U,"body")}}}),$Q=cq({"node_modules/readable-stream/lib/internal/streams/transform.js"(q,Q){var{ObjectSetPrototypeOf:X,Symbol:J}=Dq(),{ERR_METHOD_NOT_IMPLEMENTED:H}=sq().codes,K=vq();function Z(z){if(!(this instanceof Z))return new Z(z);if(K.call(this,z),this._readableState.sync=!1,this[Y]=null,z){if(typeof z.transform==="function")this._transform=z.transform;if(typeof z.flush==="function")this._flush=z.flush}this.on("prefinish",$.bind(this))}X(Z.prototype,K.prototype),X(Z,K),Q.exports=Z;var Y=J("kCallback");function B(z){if(typeof this._flush==="function"&&!this.destroyed)this._flush((V,U)=>{if(V){if(z)z(V);else this.destroy(V);return}if(U!=null)this.push(U);if(this.push(null),z)z()});else if(this.push(null),z)z()}function $(){if(this._final!==B)B.call(this)}Z.prototype._final=B,Z.prototype._transform=function(z,V,U){throw new H("_transform()")},Z.prototype._write=function(z,V,U){const W=this._readableState,G=this._writableState,M=W.length;this._transform(z,V,(F,L)=>{if(F){U(F);return}if(L!=null)this.push(L);if(G.ended||M===W.length||W.length{k=!0});const f=K(R,{readable:S,writable:g},(y)=>{k=!y});return{destroy:(y)=>{if(k)return;k=!0,Y.destroyer(R,y||new W("pipe"))},cleanup:f}}function x(R){return M(R[R.length-1],"streams[stream.length - 1]"),R.pop()}function O(R){if(L(R))return R;else if(N(R))return _(R);throw new z("val",["Readable","Iterable","AsyncIterable"],R)}async function*_(R){if(!T)T=ZQ();yield*T.prototype[H].call(R)}async function C(R,S,g,{end:k}){let f,y=null;const h=(b)=>{if(b)f=b;if(y){const m=y;y=null,m()}},p=()=>new J((b,m)=>{if(f)m(f);else y=()=>{if(f)m(f);else b()}});S.on("drain",h);const u=K(S,{readable:!1},h);try{if(S.writableNeedDrain)await p();for await(let b of R)if(!S.write(b))await p();if(k)S.end();await p(),g()}catch(b){g(f!==b?$(f,b):b)}finally{u(),S.off("drain",h)}}function D(...R){return w(R,Z(x(R)))}function w(R,S,g){if(R.length===1&&X(R[0]))R=R[0];if(R.length<2)throw new U("streams");const k=new E,f=k.signal,y=g===null||g===void 0?void 0:g.signal,h=[];F(y,"options.signal");function p(){l(new G)}y===null||y===void 0||y.addEventListener("abort",p);let u,b;const m=[];let c=0;function d(o){l(o,--c===0)}function l(o,s){if(o&&(!u||u.code==="ERR_STREAM_PREMATURE_CLOSE"))u=o;if(!u&&!s)return;while(m.length)m.shift()(u);if(y===null||y===void 0||y.removeEventListener("abort",p),k.abort(),s){if(!u)h.forEach((a)=>a());Aq(S,u,b)}}let i;for(let o=0;o0,t=a||(g===null||g===void 0?void 0:g.end)!==!1,e=o===R.length-1;if(P(s)){let qq=function(Qq){if(Qq&&Qq.name!=="AbortError"&&Qq.code!=="ERR_STREAM_PREMATURE_CLOSE")d(Qq)};if(t){const{destroy:Qq,cleanup:Xq}=A(s,a,r);if(m.push(Qq),j(s)&&e)h.push(Xq)}if(s.on("error",qq),j(s)&&e)h.push(()=>{s.removeListener("error",qq)})}if(o===0)if(typeof s==="function"){if(i=s({signal:f}),!L(i))throw new V("Iterable, AsyncIterable or Stream","source",i)}else if(L(s)||N(s))i=s;else i=B.from(s);else if(typeof s==="function")if(i=O(i),i=s(i,{signal:f}),a){if(!L(i,!0))throw new V("AsyncIterable",`transform[${o-1}]`,i)}else{var n;if(!I)I=zQ();const qq=new I({objectMode:!0}),Qq=(n=i)===null||n===void 0?void 0:n.then;if(typeof Qq==="function")c++,Qq.call(i,(Hq)=>{if(b=Hq,Hq!=null)qq.write(Hq);if(t)qq.end();Aq(d)},(Hq)=>{qq.destroy(Hq),Aq(d,Hq)});else if(L(i,!0))c++,C(i,qq,d,{end:t});else throw new V("AsyncIterable or Promise","destination",i);i=qq;const{destroy:Xq,cleanup:Jq}=A(i,!1,!0);if(m.push(Xq),e)h.push(Jq)}else if(P(s)){if(N(i)){c+=2;const qq=v(i,s,d,{end:t});if(j(s)&&e)h.push(qq)}else if(L(i))c++,C(i,s,d,{end:t});else throw new z("val",["Readable","Iterable","AsyncIterable"],i);i=s}else i=B.from(s)}if(f!==null&&f!==void 0&&f.aborted||y!==null&&y!==void 0&&y.aborted)Aq(p);return i}function v(R,S,g,{end:k}){if(R.pipe(S,{end:k}),k)R.once("end",()=>S.end());else g();return K(R,{readable:!0,writable:!1},(f)=>{const y=R._readableState;if(f&&f.code==="ERR_STREAM_PREMATURE_CLOSE"&&y&&y.ended&&!y.errored&&!y.errorEmitted)R.once("end",g).once("error",g);else g(f)}),K(S,{readable:!1,writable:!0},g)}Q.exports={pipelineImpl:w,pipeline:D}}}),UQ=cq({"node_modules/readable-stream/lib/internal/streams/compose.js"(q,Q){var{pipeline:X}=VQ(),J=vq(),{destroyer:H}=qQ(),{isNodeStream:K,isReadable:Z,isWritable:Y}=rq(),{AbortError:B,codes:{ERR_INVALID_ARG_VALUE:$,ERR_MISSING_ARGS:z}}=sq();Q.exports=function V(...U){if(U.length===0)throw new z("streams");if(U.length===1)return J.from(U[0]);const W=[...U];if(typeof U[0]==="function")U[0]=J.from(U[0]);if(typeof U[U.length-1]==="function"){const A=U.length-1;U[A]=J.from(U[A])}for(let A=0;A0&&!Y(U[A]))throw new $(`streams[${A}]`,W[A],"must be writable")}let G,M,F,L,j;function N(A){const x=L;if(L=null,x)x(A);else if(A)j.destroy(A);else if(!T&&!I)j.destroy()}const P=U[0],E=X(U,N),I=!!Y(P),T=!!Z(E);if(j=new J({writableObjectMode:!!(P!==null&&P!==void 0&&P.writableObjectMode),readableObjectMode:!!(E!==null&&E!==void 0&&E.writableObjectMode),writable:I,readable:T}),I)j._write=function(A,x,O){if(P.write(A,x))O();else G=O},j._final=function(A){P.end(),M=A},P.on("drain",function(){if(G){const A=G;G=null,A()}}),E.on("finish",function(){if(M){const A=M;M=null,A()}});if(T)E.on("readable",function(){if(F){const A=F;F=null,A()}}),E.on("end",function(){j.push(null)}),j._read=function(){while(!0){const A=E.read();if(A===null){F=j._read;return}if(!j.push(A))return}};return j._destroy=function(A,x){if(!A&&L!==null)A=new B;if(F=null,G=null,M=null,L===null)x(A);else L=x,H(E,A)},j}}}),WQ=cq({"node_modules/readable-stream/lib/stream/promises.js"(q,Q){var{ArrayPrototypePop:X,Promise:J}=Dq(),{isIterable:H,isNodeStream:K}=rq(),{pipelineImpl:Z}=VQ(),{finished:Y}=tq();function B(...$){return new J((z,V)=>{let U,W;const G=$[$.length-1];if(G&&typeof G==="object"&&!K(G)&&!H(G)){const M=X($);U=M.signal,W=M.end}Z($,(M,F)=>{if(M)V(M);else z(F)},{signal:U,end:W})})}Q.exports={finished:Y,pipeline:B}}}),GQ=cq({"node_modules/readable-stream/lib/stream.js"(q,Q){var{ObjectDefineProperty:X,ObjectKeys:J,ReflectApply:H}=Dq(),{promisify:{custom:K}}=wq(),{streamReturningOperators:Z,promiseReturningOperators:Y}=eq(),{codes:{ERR_ILLEGAL_CONSTRUCTOR:B}}=sq(),$=UQ(),{pipeline:z}=VQ(),{destroyer:V}=qQ(),U=tq(),W=WQ(),G=rq(),M=Q.exports=QQ().Stream;M.isDisturbed=G.isDisturbed,M.isErrored=G.isErrored,M.isWritable=G.isWritable,M.isReadable=G.isReadable,M.Readable=ZQ();for(let L of J(Z)){let j=function(...P){if(new.target)throw B();return M.Readable.from(H(N,this,P))};const N=Z[L];X(j,"name",{value:N.name}),X(j,"length",{value:N.length}),X(M.Readable.prototype,L,{value:j,enumerable:!1,configurable:!0,writable:!0})}for(let L of J(Y)){let j=function(...P){if(new.target)throw B();return H(N,this,P)};const N=Y[L];X(j,"name",{value:N.name}),X(j,"length",{value:N.length}),X(M.Readable.prototype,L,{value:j,enumerable:!1,configurable:!0,writable:!0})}M.Writable=YQ(),M.Duplex=vq(),M.Transform=$Q(),M.PassThrough=zQ(),M.pipeline=z;var{addAbortSignal:F}=XQ();M.addAbortSignal=F,M.finished=U,M.destroy=V,M.compose=$,X(M,"promises",{configurable:!0,enumerable:!0,get(){return W}}),X(z,K,{enumerable:!0,get(){return W.pipeline}}),X(U,K,{enumerable:!0,get(){return W.finished}}),M.Stream=M,M._isUint8Array=function L(j){return j instanceof Uint8Array},M._uint8ArrayToBuffer=function L(j){return new Buffer(j.buffer,j.byteOffset,j.byteLength)}}}),MQ=cq({"node_modules/readable-stream/lib/ours/index.js"(q,Q){const X=GQ(),J=WQ(),H=X.Readable.destroy;Q.exports=X,Q.exports._uint8ArrayToBuffer=X._uint8ArrayToBuffer,Q.exports._isUint8Array=X._isUint8Array,Q.exports.isDisturbed=X.isDisturbed,Q.exports.isErrored=X.isErrored,Q.exports.isWritable=X.isWritable,Q.exports.isReadable=X.isReadable,Q.exports.Readable=X.Readable,Q.exports.Writable=X.Writable,Q.exports.Duplex=X.Duplex,Q.exports.Transform=X.Transform,Q.exports.PassThrough=X.PassThrough,Q.exports.addAbortSignal=X.addAbortSignal,Q.exports.finished=X.finished,Q.exports.destroy=X.destroy,Q.exports.destroy=H,Q.exports.pipeline=X.pipeline,Q.exports.compose=X.compose,Q.exports._getNativeReadableStreamPrototype=jQ,Q.exports.NativeWritable=pQ,xq.defineProperty(X,"promises",{configurable:!0,enumerable:!0,get(){return J}}),Q.exports.Stream=X.Stream,Q.exports.default=Q.exports}}),LQ={0:void 0,1:void 0,2:void 0,3:void 0,4:void 0,5:void 0},Tq=YQ(),pQ=class q extends Tq{#q;#Q;#X=!0;_construct;_destroy;_final;constructor(Q,X={}){super(X);this._construct=this.#J,this._destroy=this.#K,this._final=this.#Z,this.#q=Q}#J(Q){this._writableState.constructed=!0,this.constructed=!0,Q()}#H(){if(typeof this.#q==="object")if(typeof this.#q.write==="function")this.#Q=this.#q;else throw new Error("Invalid FileSink");else this.#Q=Bun.file(this.#q).writer()}write(Q,X,J,H=this.#X){if(!H)return this.#X=!1,super.write(Q,X,J);if(!this.#Q)this.#H();var K=this.#Q,Z=K.write(Q);if(Oq(Z))return Z.then(()=>{this.emit("drain"),K.flush(!0)}),!1;if(K.flush(!0),J)J(null,Q.byteLength);return!0}end(Q,X,J,H=this.#X){return super.end(Q,X,J,H)}#K(Q,X){if(this._writableState.destroyed=!0,X)X(Q)}#Z(Q){if(this.#Q)this.#Q.end();if(Q)Q()}ref(){if(!this.#Q)this.#H();this.#Q.ref()}unref(){if(!this.#Q)return;this.#Q.unref()}},PQ=MQ();PQ[Symbol.for("CommonJS")]=0;PQ[Symbol.for("::bunternal::")]={_ReadableFromWeb:KQ};var lQ=PQ,EQ=PQ._uint8ArrayToBuffer,IQ=PQ._isUint8Array,TQ=PQ.isDisturbed,AQ=PQ.isErrored,xQ=PQ.isWritable,OQ=PQ.isReadable,_Q=PQ.Readable,Tq=PQ.Writable,CQ=PQ.Duplex,DQ=PQ.Transform,wQ=PQ.PassThrough,vQ=PQ.addAbortSignal,RQ=PQ.finished,SQ=PQ.destroy,gQ=PQ.pipeline,kQ=PQ.compose,fQ=PQ.Stream,yQ=PQ["eos"]=tq,hQ=PQ._getNativeReadableStreamPrototype,pQ=PQ.NativeWritable,uQ=fQ.promise;export{uQ as promises,gQ as pipeline,xQ as isWritable,OQ as isReadable,AQ as isErrored,TQ as isDisturbed,RQ as finished,yQ as eos,SQ as destroy,lQ as default,kQ as compose,vQ as addAbortSignal,EQ as _uint8ArrayToBuffer,IQ as _isUint8Array,hQ as _getNativeReadableStreamPrototype,Tq as Writable,DQ as Transform,fQ as Stream,_Q as Readable,wQ as PassThrough,pQ as NativeWritable,CQ as Duplex}; diff --git a/src/js/out/modules/node/stream.web.js b/src/js/out/modules/node/stream.web.js index 7eca1802a..bb906418c 100644 --- a/src/js/out/modules/node/stream.web.js +++ b/src/js/out/modules/node/stream.web.js @@ -1 +1 @@ -var{ReadableStream:b,ReadableStreamDefaultController:c,WritableStream:d,WritableStreamDefaultController:f,WritableStreamDefaultWriter:h,TransformStream:j,TransformStreamDefaultController:k,ByteLengthQueuingStrategy:l,CountQueuingStrategy:m,ReadableStreamBYOBReader:p,ReadableStreamBYOBRequest:q,ReadableStreamDefaultReader:s}=globalThis,v={ReadableStream:b,ReadableStreamDefaultController:c,WritableStream:d,WritableStreamDefaultController:f,WritableStreamDefaultWriter:h,TransformStream:j,TransformStreamDefaultController:k,ByteLengthQueuingStrategy:l,CountQueuingStrategy:m,ReadableStreamBYOBReader:p,ReadableStreamBYOBRequest:q,ReadableStreamDefaultReader:s,[Symbol.for("CommonJS")]:0};export{v as default,h as WritableStreamDefaultWriter,f as WritableStreamDefaultController,d as WritableStream,k as TransformStreamDefaultController,j as TransformStream,s as ReadableStreamDefaultReader,c as ReadableStreamDefaultController,q as ReadableStreamBYOBRequest,p as ReadableStreamBYOBReader,b as ReadableStream,m as CountQueuingStrategy,l as ByteLengthQueuingStrategy}; +var{ReadableStream:c,ReadableStreamDefaultController:j,WritableStream:k,WritableStreamDefaultController:p,WritableStreamDefaultWriter:v,TransformStream:w,TransformStreamDefaultController:x,ByteLengthQueuingStrategy:z,CountQueuingStrategy:A,ReadableStreamBYOBReader:E,ReadableStreamBYOBRequest:F,ReadableStreamDefaultReader:G}=globalThis,H={ReadableStream:c,ReadableStreamDefaultController:j,WritableStream:k,WritableStreamDefaultController:p,WritableStreamDefaultWriter:v,TransformStream:w,TransformStreamDefaultController:x,ByteLengthQueuingStrategy:z,CountQueuingStrategy:A,ReadableStreamBYOBReader:E,ReadableStreamBYOBRequest:F,ReadableStreamDefaultReader:G,[Symbol.for("CommonJS")]:0};export{H as default,v as WritableStreamDefaultWriter,p as WritableStreamDefaultController,k as WritableStream,x as TransformStreamDefaultController,w as TransformStream,G as ReadableStreamDefaultReader,j as ReadableStreamDefaultController,F as ReadableStreamBYOBRequest,E as ReadableStreamBYOBReader,c as ReadableStream,A as CountQueuingStrategy,z as ByteLengthQueuingStrategy}; diff --git a/src/node-fallbacks/@vercel_fetch.js b/src/node-fallbacks/@vercel_fetch.js index a8de45222..276b4bc9f 100644 --- a/src/node-fallbacks/@vercel_fetch.js +++ b/src/node-fallbacks/@vercel_fetch.js @@ -1,5 +1,5 @@ // This is just a no-op. Intent is to prevent importing a bunch of stuff that isn't relevant. -module.exports = (wrapper = "Bun" in globalThis ? Bun.fetch : globalThis.fetch) => { +export default (wrapper = "Bun" in globalThis ? Bun.fetch : globalThis.fetch) => { async function vercelFetch(url, opts = {}) { // Convert Object bodies to JSON if they are JS objects if ( diff --git a/src/node-fallbacks/buffer.js b/src/node-fallbacks/buffer.js index 9984aef87..aa0065398 100644 --- a/src/node-fallbacks/buffer.js +++ b/src/node-fallbacks/buffer.js @@ -1 +1,2 @@ export * from "buffer"; +export { Buffer as default } from "buffer"; diff --git a/src/node-fallbacks/console.js b/src/node-fallbacks/console.js index 5cb1dfa10..34cc54b56 100644 --- a/src/node-fallbacks/console.js +++ b/src/node-fallbacks/console.js @@ -1 +1 @@ -module.exports = console; +export default console; diff --git a/src/node-fallbacks/crypto.js b/src/node-fallbacks/crypto.js index 8c83b6c87..7745530da 100644 --- a/src/node-fallbacks/crypto.js +++ b/src/node-fallbacks/crypto.js @@ -1,4 +1,5 @@ export * from "crypto-browserify"; +import * as cryptoBrowserify from "crypto-browserify"; export var DEFAULT_ENCODING = "buffer"; @@ -79,3 +80,13 @@ if (timingSafeEqual) { } export const webcrypto = crypto; + +export default { + ...cryptoBrowserify, + getRandomValues, + randomUUID, + timingSafeEqual, + scryptSync, + scrypt, + webcrypto, +}; diff --git a/src/node-fallbacks/domain.js b/src/node-fallbacks/domain.js index 9fe768097..af37e7059 100644 --- a/src/node-fallbacks/domain.js +++ b/src/node-fallbacks/domain.js @@ -1 +1,3 @@ -export * from "domain-browser"; +import domain from "domain-browser"; +export default domain; +export var { create, createDomain } = domain; diff --git a/src/node-fallbacks/http.js b/src/node-fallbacks/http.js index 3f025710f..4bb5b4a0d 100644 --- a/src/node-fallbacks/http.js +++ b/src/node-fallbacks/http.js @@ -1 +1,13 @@ -export * from "stream-http"; +import http from "stream-http"; +export default http; +export var { + // + request, + get, + ClientRequest, + IncomingMessage, + Agent, + globalAgent, + STATUS_CODES, + METHIDS, +} = http; diff --git a/src/node-fallbacks/https.js b/src/node-fallbacks/https.js index a5f405a5a..d1de96beb 100644 --- a/src/node-fallbacks/https.js +++ b/src/node-fallbacks/https.js @@ -1 +1,2 @@ export * from "https-browserify"; +export * as default from "https-browserify"; diff --git a/src/node-fallbacks/node-fetch.js b/src/node-fallbacks/node-fetch.js index f124e6461..a66d8fc7f 100644 --- a/src/node-fallbacks/node-fetch.js +++ b/src/node-fallbacks/node-fetch.js @@ -70,7 +70,6 @@ export default Object.assign(fetch, { fileFrom, fileFromSync, isRedirect, - [Symbol.for("CommonJS")]: 0, }); export { diff --git a/src/node-fallbacks/os.js b/src/node-fallbacks/os.js index c5bef4cf0..df0a41fd2 100644 --- a/src/node-fallbacks/os.js +++ b/src/node-fallbacks/os.js @@ -1 +1,20 @@ -export * from "os-browserify/browser"; +import os from "os-browserify/browser"; +export default os; +export var { + endianness, + hostname, + loadavg, + uptime, + freemem, + totalmem, + cpus, + type, + release, + arch, + platform, + tmpdir, + EOL, + homedir, + networkInterfaces, + getNetworkInterfaces, +} = os; diff --git a/src/node-fallbacks/package.json b/src/node-fallbacks/package.json index 144f553c0..3d48960c5 100644 --- a/src/node-fallbacks/package.json +++ b/src/node-fallbacks/package.json @@ -5,8 +5,8 @@ "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", - "build-gen": "esbuild --bundle *.js --outdir=bun --format=cjs --platform=browser --external:buffer --external:stream --external:util --external:util/ --external:assert", - "build": "esbuild --bundle *.js --outdir=out --format=cjs --minify --platform=browser" + "build-gen": "esbuild --bundle *.js --outdir=bun --format=esm --platform=browser --external:buffer --external:stream --external:util --external:util/ --external:assert", + "build": "esbuild --bundle *.js --outdir=out --format=esm --minify --platform=browser" }, "author": "", "license": "ISC", diff --git a/src/node-fallbacks/path.js b/src/node-fallbacks/path.js index 558f820cc..a582c6d0f 100644 --- a/src/node-fallbacks/path.js +++ b/src/node-fallbacks/path.js @@ -1 +1,2 @@ export * from "path-browserify"; +export * as default from "path-browserify"; diff --git a/src/node-fallbacks/process.js b/src/node-fallbacks/process.js index 74190ab67..fec4e652f 100644 --- a/src/node-fallbacks/process.js +++ b/src/node-fallbacks/process.js @@ -1 +1,2 @@ export * from "process/browser"; +export * as default from "process/browser"; diff --git a/src/node-fallbacks/querystring.js b/src/node-fallbacks/querystring.js index ad7fd038d..00404cc1b 100644 --- a/src/node-fallbacks/querystring.js +++ b/src/node-fallbacks/querystring.js @@ -1 +1,2 @@ -export * from "querystring-es3"; +export { unescapeBuffer, unescape, escape, stringify, encode, parse, decode } from "querystring-es3"; +export { default } from "querystring-es3"; diff --git a/src/node-fallbacks/stream.js b/src/node-fallbacks/stream.js index 381cbc761..bee941be1 100644 --- a/src/node-fallbacks/stream.js +++ b/src/node-fallbacks/stream.js @@ -1 +1,2 @@ export * from "readable-stream"; +export * as default from "readable-stream"; diff --git a/src/node-fallbacks/string_decoder.js b/src/node-fallbacks/string_decoder.js index 90487c47e..c6fd8a2fd 100644 --- a/src/node-fallbacks/string_decoder.js +++ b/src/node-fallbacks/string_decoder.js @@ -1 +1,2 @@ export * from "string_decoder"; +export * as default from "string_decoder"; diff --git a/src/node-fallbacks/sys.js b/src/node-fallbacks/sys.js index 4b20b6354..99f15c638 100644 --- a/src/node-fallbacks/sys.js +++ b/src/node-fallbacks/sys.js @@ -1 +1,2 @@ export * from "util"; +export * as default from "util"; diff --git a/src/node-fallbacks/timers.js b/src/node-fallbacks/timers.js index a02f00701..c69274eef 100644 --- a/src/node-fallbacks/timers.js +++ b/src/node-fallbacks/timers.js @@ -1 +1,2 @@ export * from "timers-browserify"; +export * as default from "timers-browserify"; diff --git a/src/node-fallbacks/tsconfig.json b/src/node-fallbacks/tsconfig.json index d1c7e7a71..1228b6423 100644 --- a/src/node-fallbacks/tsconfig.json +++ b/src/node-fallbacks/tsconfig.json @@ -12,7 +12,7 @@ "https": ["node_modules/https-browserify"], "os": ["node_modules/os-browserify/browser"], "path": ["node_modules/path-browserify"], - "punycode": ["node_modules/punycode"], + "punycode": ["node_modules/punycode/punycode.es6.js"], "process": ["node_modules/process/browser"], "querystring": ["node_modules/querystring-es3"], "stream": ["node_modules/stream-browserify"], diff --git a/src/node-fallbacks/tty.js b/src/node-fallbacks/tty.js index 49efb472e..727bdc5c6 100644 --- a/src/node-fallbacks/tty.js +++ b/src/node-fallbacks/tty.js @@ -1 +1,2 @@ export * from "tty-browserify"; +export * as default from "tty-browserify"; diff --git a/src/node-fallbacks/util.js b/src/node-fallbacks/util.js index 3bd55da0a..1ad352a2a 100644 --- a/src/node-fallbacks/util.js +++ b/src/node-fallbacks/util.js @@ -4,3 +4,4 @@ const TextEncoder = globalThis.TextEncoder; const TextDecoder = globalThis.TextDecoder; export { TextEncoder, TextDecoder }; +export default { TextEncoder, TextDecoder }; diff --git a/src/node-fallbacks/zlib.js b/src/node-fallbacks/zlib.js index 4af7ab847..093367e29 100644 --- a/src/node-fallbacks/zlib.js +++ b/src/node-fallbacks/zlib.js @@ -1 +1,2 @@ export * from "browserify-zlib"; +export * as default from "browserify-zlib"; diff --git a/src/node_fallbacks.zig b/src/node_fallbacks.zig index 170907e58..51da04be0 100644 --- a/src/node_fallbacks.zig +++ b/src/node_fallbacks.zig @@ -67,7 +67,7 @@ const vercel_fetch_import_path = "/bun-vfs/node_modules/@vercel/fetch/index.js"; const assert_package_json = PackageJSON{ .name = "assert", .version = "0.0.0-polyfill", - .module_type = .cjs, + .module_type = .esm, .hash = @truncate(u32, bun.hash("assert@0.0.0-polyfill")), .main_fields = undefined, .browser_map = undefined, @@ -76,7 +76,7 @@ const assert_package_json = PackageJSON{ const buffer_package_json = PackageJSON{ .name = "buffer", .version = "0.0.0-polyfill", - .module_type = .cjs, + .module_type = .esm, .hash = @truncate(u32, bun.hash("buffer@0.0.0-polyfill")), .main_fields = undefined, .browser_map = undefined, @@ -85,7 +85,7 @@ const buffer_package_json = PackageJSON{ const console_package_json = PackageJSON{ .name = "console", .version = "0.0.0-polyfill", - .module_type = .cjs, + .module_type = .esm, .hash = @truncate(u32, bun.hash("console@0.0.0-polyfill")), .main_fields = undefined, .browser_map = undefined, @@ -94,7 +94,7 @@ const console_package_json = PackageJSON{ const constants_package_json = PackageJSON{ .name = "constants", .version = "0.0.0-polyfill", - .module_type = .cjs, + .module_type = .esm, .hash = @truncate(u32, bun.hash("constants@0.0.0-polyfill")), .main_fields = undefined, .browser_map = undefined, @@ -103,7 +103,7 @@ const constants_package_json = PackageJSON{ const crypto_package_json = PackageJSON{ .name = "crypto", .version = "0.0.0-polyfill", - .module_type = .cjs, + .module_type = .esm, .hash = @truncate(u32, bun.hash("crypto@0.0.0-polyfill")), .main_fields = undefined, .browser_map = undefined, @@ -112,7 +112,7 @@ const crypto_package_json = PackageJSON{ const domain_package_json = PackageJSON{ .name = "domain", .version = "0.0.0-polyfill", - .module_type = .cjs, + .module_type = .esm, .hash = @truncate(u32, bun.hash("domain@0.0.0-polyfill")), .main_fields = undefined, .browser_map = undefined, @@ -121,7 +121,7 @@ const domain_package_json = PackageJSON{ const events_package_json = PackageJSON{ .name = "events", .version = "0.0.0-polyfill", - .module_type = .cjs, + .module_type = .esm, .hash = @truncate(u32, bun.hash("events@0.0.0-polyfill")), .main_fields = undefined, .browser_map = undefined, @@ -130,7 +130,7 @@ const events_package_json = PackageJSON{ const http_package_json = PackageJSON{ .name = "http", .version = "0.0.0-polyfill", - .module_type = .cjs, + .module_type = .esm, .hash = @truncate(u32, bun.hash("http@0.0.0-polyfill")), .main_fields = undefined, .browser_map = undefined, @@ -139,7 +139,7 @@ const http_package_json = PackageJSON{ const https_package_json = PackageJSON{ .name = "https", .version = "0.0.0-polyfill", - .module_type = .cjs, + .module_type = .esm, .hash = @truncate(u32, bun.hash("https@0.0.0-polyfill")), .main_fields = undefined, .browser_map = undefined, @@ -148,7 +148,7 @@ const https_package_json = PackageJSON{ const net_package_json = PackageJSON{ .name = "net", .version = "0.0.0-polyfill", - .module_type = .cjs, + .module_type = .esm, .hash = @truncate(u32, bun.hash("net@0.0.0-polyfill")), .main_fields = undefined, .browser_map = undefined, @@ -157,7 +157,7 @@ const net_package_json = PackageJSON{ const os_package_json = PackageJSON{ .name = "os", .version = "0.0.0-polyfill", - .module_type = .cjs, + .module_type = .esm, .hash = @truncate(u32, bun.hash("os@0.0.0-polyfill")), .main_fields = undefined, .browser_map = undefined, @@ -166,7 +166,7 @@ const os_package_json = PackageJSON{ const path_package_json = PackageJSON{ .name = "path", .version = "0.0.0-polyfill", - .module_type = .cjs, + .module_type = .esm, .hash = @truncate(u32, bun.hash("path@0.0.0-polyfill")), .main_fields = undefined, .browser_map = undefined, @@ -175,7 +175,7 @@ const path_package_json = PackageJSON{ const process_package_json = PackageJSON{ .name = "process", .version = "0.0.0-polyfill", - .module_type = .cjs, + .module_type = .esm, .hash = @truncate(u32, bun.hash("process@0.0.0-polyfill")), .main_fields = undefined, .browser_map = undefined, @@ -184,7 +184,7 @@ const process_package_json = PackageJSON{ const punycode_package_json = PackageJSON{ .name = "punycode", .version = "0.0.0-polyfill", - .module_type = .cjs, + .module_type = .esm, .hash = @truncate(u32, bun.hash("punycode@0.0.0-polyfill")), .main_fields = undefined, .browser_map = undefined, @@ -193,7 +193,7 @@ const punycode_package_json = PackageJSON{ const querystring_package_json = PackageJSON{ .name = "querystring", .version = "0.0.0-polyfill", - .module_type = .cjs, + .module_type = .esm, .hash = @truncate(u32, bun.hash("querystring@0.0.0-polyfill")), .main_fields = undefined, .browser_map = undefined, @@ -202,7 +202,7 @@ const querystring_package_json = PackageJSON{ const stream_package_json = PackageJSON{ .name = "stream", .version = "0.0.0-polyfill", - .module_type = .cjs, + .module_type = .esm, .hash = @truncate(u32, bun.hash("stream@0.0.0-polyfill")), .main_fields = undefined, .browser_map = undefined, @@ -211,7 +211,7 @@ const stream_package_json = PackageJSON{ const string_decoder_package_json = PackageJSON{ .name = "string_decoder", .version = "0.0.0-polyfill", - .module_type = .cjs, + .module_type = .esm, .hash = brk: { @setEvalBranchQuota(9999); break :brk @truncate(u32, bun.hash("string_decoder@0.0.0-polyfill")); @@ -225,7 +225,7 @@ const string_decoder_package_json = PackageJSON{ const sys_package_json = PackageJSON{ .name = "sys", .version = "0.0.0-polyfill", - .module_type = .cjs, + .module_type = .esm, .hash = @truncate(u32, bun.hash("sys@0.0.0-polyfill")), .main_fields = undefined, .browser_map = undefined, @@ -234,7 +234,7 @@ const sys_package_json = PackageJSON{ const timers_package_json = PackageJSON{ .name = "timers", .version = "0.0.0-polyfill", - .module_type = .cjs, + .module_type = .esm, .hash = @truncate(u32, bun.hash("timers@0.0.0-polyfill")), .main_fields = undefined, .browser_map = undefined, @@ -243,7 +243,7 @@ const timers_package_json = PackageJSON{ const tty_package_json = PackageJSON{ .name = "tty", .version = "0.0.0-polyfill", - .module_type = .cjs, + .module_type = .esm, .hash = @truncate(u32, bun.hash("tty@0.0.0-polyfill")), .main_fields = undefined, .browser_map = undefined, @@ -252,7 +252,7 @@ const tty_package_json = PackageJSON{ const url_package_json = PackageJSON{ .name = "url", .version = "0.0.0-polyfill", - .module_type = .cjs, + .module_type = .esm, .hash = @truncate(u32, bun.hash("url@0.0.0-polyfill")), .main_fields = undefined, .browser_map = undefined, @@ -261,7 +261,7 @@ const url_package_json = PackageJSON{ const util_package_json = PackageJSON{ .name = "util", .version = "0.0.0-polyfill", - .module_type = .cjs, + .module_type = .esm, .hash = @truncate(u32, bun.hash("util@0.0.0-polyfill")), .main_fields = undefined, .browser_map = undefined, @@ -270,7 +270,7 @@ const util_package_json = PackageJSON{ const zlib_package_json = PackageJSON{ .name = "zlib", .version = "0.0.0-polyfill", - .module_type = .cjs, + .module_type = .esm, .hash = @truncate(u32, bun.hash("zlib@0.0.0-polyfill")), .main_fields = undefined, .browser_map = undefined, @@ -280,7 +280,7 @@ const zlib_package_json = PackageJSON{ const node_fetch_package_json = PackageJSON{ .name = "node-fetch", .version = "0.0.0-polyfill", - .module_type = .cjs, + .module_type = .esm, .hash = @truncate(u32, bun.hash("node-fetch@0.0.0-polyfill")), .main_fields = undefined, .browser_map = undefined, @@ -289,7 +289,7 @@ const node_fetch_package_json = PackageJSON{ const isomorphic_fetch_package_json = PackageJSON{ .name = "isomorphic-fetch", .version = "0.0.0-polyfill", - .module_type = .cjs, + .module_type = .esm, .hash = @truncate(u32, bun.hash("isomorphic-fetch@0.0.0-polyfill")), .main_fields = undefined, .browser_map = undefined, @@ -298,7 +298,7 @@ const isomorphic_fetch_package_json = PackageJSON{ const supports_color_package_json = PackageJSON{ .name = "supports-color", .version = "0.0.0-polyfill", - .module_type = .cjs, + .module_type = .esm, .hash = @truncate(u32, bun.hash("supports-color@0.0.0-polyfill")), .main_fields = undefined, .browser_map = undefined, @@ -308,7 +308,7 @@ const supports_color_package_json = PackageJSON{ const vercel_fetch_package_json = PackageJSON{ .name = "@vercel/fetch", .version = "0.0.0-polyfill", - .module_type = .cjs, + .module_type = .esm, .hash = @truncate(u32, bun.hash("@vercel/fetch@0.0.0-polyfill")), .main_fields = undefined, .browser_map = undefined, diff --git a/test/js/node/fs/node-fetch.test.js b/test/js/node/fs/node-fetch.test.js index 11c5e0ed3..33af3252d 100644 --- a/test/js/node/fs/node-fetch.test.js +++ b/test/js/node/fs/node-fetch.test.js @@ -1,4 +1,4 @@ -import { fetch, Response, Request, Headers } from "node-fetch"; +import fetch2, { fetch, Response, Request, Headers } from "node-fetch"; import { test, expect } from "bun:test"; @@ -19,3 +19,15 @@ test("node-fetch fetches", async () => { expect(await fetch("http://" + server.hostname + ":" + server.port)).toBeInstanceOf(Response); server.stop(true); }); + +test("node-fetch.default fetches", async () => { + const server = Bun.serve({ + port: 0, + fetch(req, server) { + server.stop(); + return new Response(); + }, + }); + expect(await fetch2("http://" + server.hostname + ":" + server.port)).toBeInstanceOf(Response); + server.stop(true); +}); -- cgit v1.2.3 From ceec1afec2bb187fecef0f5006dfe27ee3e1a9a6 Mon Sep 17 00:00:00 2001 From: dave caruso Date: Sat, 24 Jun 2023 02:24:05 -0400 Subject: Add vi.spyOn and clean up some mock function binding calls (#3376) * Add vi.spyOn and clean up some binding calls * add vi.restoreAllMocks * remove junk file --------- Co-authored-by: Jarred Sumner --- src/bun.js/bindings/JSMockFunction.cpp | 12 ++++-------- src/bun.js/test/jest.zig | 25 +++++++++++++------------ test/bun.lockb | Bin 56172 -> 86272 bytes test/js/bun/test/mock-fn.test.js | 12 ++++++++++-- test/js/bun/test/test-interop.js | 19 +++++++++++++++++++ test/package.json | 3 ++- 6 files changed, 48 insertions(+), 23 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/bindings/JSMockFunction.cpp b/src/bun.js/bindings/JSMockFunction.cpp index b7c2659b4..fbfcf0c9e 100644 --- a/src/bun.js/bindings/JSMockFunction.cpp +++ b/src/bun.js/bindings/JSMockFunction.cpp @@ -391,6 +391,7 @@ void JSMockFunction::visitChildrenImpl(JSCell* cell, Visitor& visitor) visitor.append(fn->instances); visitor.append(fn->returnValues); visitor.append(fn->invocationCallOrder); + visitor.append(fn->spyOriginal); fn->mock.visit(visitor); } DEFINE_VISIT_CHILDREN(JSMockFunction); @@ -526,13 +527,13 @@ extern "C" void JSMock__resetSpies(Zig::GlobalObject* globalObject) globalObject->mockModule.activeSpies.clear(); } -extern "C" EncodedJSValue jsFunctionResetSpies(JSC::JSGlobalObject* globalObject, JSC::CallFrame* callframe) +extern "C" EncodedJSValue JSMock__jsRestoreAllMocks(JSC::JSGlobalObject* globalObject, JSC::CallFrame* callframe) { JSMock__resetSpies(jsCast(globalObject)); return JSValue::encode(jsUndefined()); } -extern "C" EncodedJSValue JSMock__spyOn(JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callframe) +extern "C" EncodedJSValue JSMock__jsSpyOn(JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callframe) { auto& vm = lexicalGlobalObject->vm(); auto scope = DECLARE_THROW_SCOPE(vm); @@ -963,7 +964,7 @@ JSC_DEFINE_CUSTOM_GETTER(jsMockFunctionGetter_protoImpl, (JSC::JSGlobalObject * return JSValue::encode(jsUndefined()); } -JSC_DEFINE_HOST_FUNCTION(jsMockFunctionConstructor, (JSC::JSGlobalObject * lexicalGlobalObject, JSC::CallFrame* callframe)) +extern "C" EncodedJSValue JSMock__jsMockFn(JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callframe) { auto& vm = lexicalGlobalObject->vm(); auto* globalObject = jsCast(lexicalGlobalObject); @@ -997,11 +998,6 @@ JSC_DEFINE_HOST_FUNCTION(jsMockFunctionConstructor, (JSC::JSGlobalObject * lexic return JSValue::encode(thisObject); } -extern "C" EncodedJSValue JSMockFunction__createObject(Zig::GlobalObject* globalObject) -{ - auto& vm = globalObject->vm(); - return JSValue::encode(JSC::JSFunction::create(vm, globalObject, 0, "mock"_s, jsMockFunctionConstructor, ImplementationVisibility::Public)); -} extern "C" EncodedJSValue JSMockFunction__getCalls(EncodedJSValue encodedValue) { JSValue value = JSValue::decode(encodedValue); diff --git a/src/bun.js/test/jest.zig b/src/bun.js/test/jest.zig index a1a4f2af8..f43afb1a2 100644 --- a/src/bun.js/test/jest.zig +++ b/src/bun.js/test/jest.zig @@ -333,7 +333,7 @@ pub const Jest = struct { pub fn Bun__Jest__createTestModuleObject(globalObject: *JSC.JSGlobalObject) callconv(.C) JSC.JSValue { JSC.markBinding(@src()); - const module = JSC.JSValue.createEmptyObject(globalObject, 11); + const module = JSC.JSValue.createEmptyObject(globalObject, 12); const test_fn = JSC.NewFunction(globalObject, ZigString.static("test"), 2, TestScope.call, false); module.put( @@ -431,31 +431,32 @@ pub const Jest = struct { Expect.getConstructor(globalObject), ); - const mock_fn = JSMockFunction__createObject(globalObject); - const spyOn = JSC.NewFunction(globalObject, ZigString.static("spyOn"), 2, JSMock__spyOn, false); - const restoreAllMocks = JSC.NewFunction(globalObject, ZigString.static("restoreAllMocks"), 2, jsFunctionResetSpies, false); - module.put(globalObject, ZigString.static("mock"), mock_fn); + const mockFn = JSC.NewFunction(globalObject, ZigString.static("fn"), 1, JSMock__jsMockFn, false); + const spyOn = JSC.NewFunction(globalObject, ZigString.static("spyOn"), 2, JSMock__jsSpyOn, false); + const restoreAllMocks = JSC.NewFunction(globalObject, ZigString.static("restoreAllMocks"), 2, JSMock__jsRestoreAllMocks, false); + module.put(globalObject, ZigString.static("mock"), mockFn); const jest = JSValue.createEmptyObject(globalObject, 3); - jest.put(globalObject, ZigString.static("fn"), mock_fn); + jest.put(globalObject, ZigString.static("fn"), mockFn); jest.put(globalObject, ZigString.static("spyOn"), spyOn); jest.put(globalObject, ZigString.static("restoreAllMocks"), restoreAllMocks); module.put(globalObject, ZigString.static("jest"), jest); module.put(globalObject, ZigString.static("spyOn"), spyOn); - const vi = JSValue.createEmptyObject(globalObject, 1); - vi.put(globalObject, ZigString.static("fn"), mock_fn); + const vi = JSValue.createEmptyObject(globalObject, 3); + vi.put(globalObject, ZigString.static("fn"), mockFn); + vi.put(globalObject, ZigString.static("spyOn"), spyOn); + vi.put(globalObject, ZigString.static("restoreAllMocks"), restoreAllMocks); module.put(globalObject, ZigString.static("vi"), vi); return module; } - extern fn JSMockFunction__createObject(*JSC.JSGlobalObject) JSC.JSValue; - extern fn Bun__Jest__testPreloadObject(*JSC.JSGlobalObject) JSC.JSValue; extern fn Bun__Jest__testModuleObject(*JSC.JSGlobalObject) JSC.JSValue; - extern fn jsFunctionResetSpies(*JSC.JSGlobalObject, *JSC.CallFrame) JSC.JSValue; - extern fn JSMock__spyOn(*JSC.JSGlobalObject, *JSC.CallFrame) JSC.JSValue; + extern fn JSMock__jsMockFn(*JSC.JSGlobalObject, *JSC.CallFrame) JSC.JSValue; + extern fn JSMock__jsRestoreAllMocks(*JSC.JSGlobalObject, *JSC.CallFrame) JSC.JSValue; + extern fn JSMock__jsSpyOn(*JSC.JSGlobalObject, *JSC.CallFrame) JSC.JSValue; pub fn call( _: void, diff --git a/test/bun.lockb b/test/bun.lockb index fc86845e1..a26f2fdfe 100755 Binary files a/test/bun.lockb and b/test/bun.lockb differ diff --git a/test/js/bun/test/mock-fn.test.js b/test/js/bun/test/mock-fn.test.js index eac981fd1..8504e3d70 100644 --- a/test/js/bun/test/mock-fn.test.js +++ b/test/js/bun/test/mock-fn.test.js @@ -2,7 +2,16 @@ * This file is meant to be runnable in both Jest and Bun. * `bunx jest mock-fn.test.js` */ -var { isBun, test, describe, expect, jest, vi, mock, bunTest, spyOn } = require("./test-interop.js")(); +var { isBun, expect, jest, vi, mock, spyOn } = require("./test-interop.js")(); + +// if you want to test vitest, comment the above and uncomment the below + +// import { expect, describe, test, vi } from "vitest"; +// const isBun = false; +// const jest = { fn: vi.fn, restoreAllMocks: vi.restoreAllMocks }; +// const spyOn = vi.spyOn; +// import * as extended from "jest-extended"; +// expect.extend(extended); async function expectResolves(promise) { expect(promise).toBeInstanceOf(Promise); @@ -434,7 +443,6 @@ describe("mock()", () => { return "3"; }, ); - expect(result).toBe(undefined); expect(fn()).toBe("1"); }); test("withImplementation (async)", async () => { diff --git a/test/js/bun/test/test-interop.js b/test/js/bun/test/test-interop.js index 5c41082d6..4b2199ae9 100644 --- a/test/js/bun/test/test-interop.js +++ b/test/js/bun/test/test-interop.js @@ -20,6 +20,25 @@ module.exports = () => { vi: bunTest.vi, spyOn: bunTest.spyOn, }; + } else if (process.env.VITEST) { + const vi = require("vitest"); + + return { + isBun: false, + bunTest: null, + test: vi.test, + describe: vi.describe, + it: vi.it, + expect: vi.expect, + beforeEach: vi.beforeEach, + afterEach: vi.afterEach, + beforeAll: vi.beforeAll, + afterAll: vi.afterAll, + jest: { fn: vi.fn }, + mock: null, + vi, + spyOn: vi.spyOn, + }; } else { const globals = require("@jest/globals"); const extended = require("jest-extended"); diff --git a/test/package.json b/test/package.json index a9b8db913..480305013 100644 --- a/test/package.json +++ b/test/package.json @@ -22,7 +22,8 @@ "supertest": "^6.1.6", "svelte": "^3.55.1", "typescript": "^5.0.2", - "undici": "^5.20.0" + "undici": "^5.20.0", + "vitest": "^0.32.2" }, "private": true, "scripts": { -- cgit v1.2.3 From 069b42a7cc1275969859dc60e7c303528ca2dccb Mon Sep 17 00:00:00 2001 From: Ciro Spaciari Date: Sat, 24 Jun 2023 03:24:34 -0300 Subject: [feat] fs.watch (#3249) * initial support * add types * fix comment * fix types * bigfix up * more fixes * fix some encoding support for watch * fix rename event * fixup * fix latin1 * add fs_events, still failing some tests * fixuup * remove unecesary check * readd tests ops * this is necessary? just testing CI/CD weird errors * just use dupe here * cleanup and fix deinit * fix zig upgrade --- packages/bun-types/fs.d.ts | 97 +++ packages/bun-types/fs/promises.d.ts | 58 ++ src/bun.js/bindings/JSSink.cpp | 2 +- src/bun.js/bindings/JSSink.h | 2 +- src/bun.js/bindings/JSSinkLookupTable.h | 2 +- .../ZigGeneratedClasses+DOMClientIsoSubspaces.h | 1 + .../bindings/ZigGeneratedClasses+DOMIsoSubspaces.h | 1 + .../ZigGeneratedClasses+lazyStructureHeader.h | 6 + .../ZigGeneratedClasses+lazyStructureImpl.h | 7 + src/bun.js/bindings/ZigGeneratedClasses.cpp | 322 ++++++++ src/bun.js/bindings/ZigGeneratedClasses.h | 56 ++ src/bun.js/bindings/generated_classes.zig | 94 +++ src/bun.js/bindings/generated_classes_list.zig | 1 + src/bun.js/event_loop.zig | 7 + src/bun.js/javascript.zig | 7 + src/bun.js/node/fs_events.zig | 609 ++++++++++++++ src/bun.js/node/node.classes.ts | 30 +- src/bun.js/node/node_fs.zig | 13 +- src/bun.js/node/node_fs_binding.zig | 2 + src/bun.js/node/node_fs_watcher.zig | 913 +++++++++++++++++++++ src/bun.js/node/types.zig | 4 + src/bun.js/webcore/encoding.zig | 15 +- src/fs.zig | 54 ++ src/http.zig | 7 +- src/js/node/fs.js | 65 +- src/js/node/fs.promises.ts | 51 ++ src/js/out/modules/node/fs.js | 50 +- src/js/out/modules/node/fs.promises.js | 2 +- src/js/private.d.ts | 86 +- src/jsc.zig | 1 + src/watcher.zig | 68 +- test/js/node/watch/fixtures/close.js | 7 + test/js/node/watch/fixtures/persistent.js | 5 + test/js/node/watch/fixtures/relative.js | 23 + test/js/node/watch/fixtures/unref.js | 7 + test/js/node/watch/fs.watch.test.js | 424 ++++++++++ 36 files changed, 3072 insertions(+), 27 deletions(-) create mode 100644 src/bun.js/node/fs_events.zig create mode 100644 src/bun.js/node/node_fs_watcher.zig create mode 100644 test/js/node/watch/fixtures/close.js create mode 100644 test/js/node/watch/fixtures/persistent.js create mode 100644 test/js/node/watch/fixtures/relative.js create mode 100644 test/js/node/watch/fixtures/unref.js create mode 100644 test/js/node/watch/fs.watch.test.js (limited to 'test/js') diff --git a/packages/bun-types/fs.d.ts b/packages/bun-types/fs.d.ts index 14c5c1d1d..5dfb2c7f2 100644 --- a/packages/bun-types/fs.d.ts +++ b/packages/bun-types/fs.d.ts @@ -19,6 +19,7 @@ */ declare module "fs" { import * as stream from "stream"; + import type EventEmitter from "events"; import type { SystemError, ArrayBufferView } from "bun"; interface ObjectEncodingOptions { encoding?: BufferEncoding | null | undefined; @@ -3929,6 +3930,102 @@ declare module "fs" { */ recursive?: boolean; } + + export interface FSWatcher extends EventEmitter { + /** + * Stop watching for changes on the given `fs.FSWatcher`. Once stopped, the `fs.FSWatcher` object is no longer usable. + * @since v0.6.8 + */ + close(): void; + + /** + * When called, requests that the Node.js event loop not exit so long as the is active. Calling watcher.ref() multiple times will have no effect. + */ + ref(): void; + + /** + * When called, the active object will not require the Node.js event loop to remain active. If there is no other activity keeping the event loop running, the process may exit before the object's callback is invoked. Calling watcher.unref() multiple times will have no effect. + */ + unref(): void; + + /** + * events.EventEmitter + * 1. change + * 2. error + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'change', listener: (eventType: string, filename: string | Buffer) => void): this; + addListener(event: 'error', listener: (error: Error) => void): this; + addListener(event: 'close', listener: () => void): this; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'change', listener: (eventType: string, filename: string | Buffer) => void): this; + on(event: 'error', listener: (error: Error) => void): this; + on(event: 'close', listener: () => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'change', listener: (eventType: string, filename: string | Buffer) => void): this; + once(event: 'error', listener: (error: Error) => void): this; + once(event: 'close', listener: () => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'change', listener: (eventType: string, filename: string | Buffer) => void): this; + prependListener(event: 'error', listener: (error: Error) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'change', listener: (eventType: string, filename: string | Buffer) => void): this; + prependOnceListener(event: 'error', listener: (error: Error) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + } + /** + * Watch for changes on `filename`, where `filename` is either a file or a + * directory. + * + * The second argument is optional. If `options` is provided as a string, it + * specifies the `encoding`. Otherwise `options` should be passed as an object. + * + * The listener callback gets two arguments `(eventType, filename)`. `eventType`is either `'rename'` or `'change'`, and `filename` is the name of the file + * which triggered the event. + * + * On most platforms, `'rename'` is emitted whenever a filename appears or + * disappears in the directory. + * + * The listener callback is attached to the `'change'` event fired by `fs.FSWatcher`, but it is not the same thing as the `'change'` value of`eventType`. + * + * If a `signal` is passed, aborting the corresponding AbortController will close + * the returned `fs.FSWatcher`. + * @since v0.6.8 + * @param listener + */ + export function watch( + filename: PathLike, + options: + | (WatchOptions & { + encoding: 'buffer'; + }) + | 'buffer', + listener?: WatchListener + ): FSWatcher; + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `persistent` is not supplied, the default of `true` is used. + * If `recursive` is not supplied, the default of `false` is used. + */ + export function watch(filename: PathLike, options?: WatchOptions | BufferEncoding | null, listener?: WatchListener): FSWatcher; + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `persistent` is not supplied, the default of `true` is used. + * If `recursive` is not supplied, the default of `false` is used. + */ + export function watch(filename: PathLike, options: WatchOptions | string, listener?: WatchListener): FSWatcher; + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + */ + export function watch(filename: PathLike, listener?: WatchListener): FSWatcher; } declare module "node:fs" { diff --git a/packages/bun-types/fs/promises.d.ts b/packages/bun-types/fs/promises.d.ts index 0d71464b9..2b908fceb 100644 --- a/packages/bun-types/fs/promises.d.ts +++ b/packages/bun-types/fs/promises.d.ts @@ -26,6 +26,7 @@ declare module "fs/promises" { Abortable, RmOptions, RmDirOptions, + WatchOptions, } from "node:fs"; const constants: typeof import("node:fs")["constants"]; @@ -709,6 +710,63 @@ declare module "fs/promises" { * To remove a directory recursively, use `fs.promises.rm()` instead, with the `recursive` option set to `true`. */ function rmdir(path: PathLike, options?: RmDirOptions): Promise; + + /** + * Returns an async iterator that watches for changes on `filename`, where `filename`is either a file or a directory. + * + * ```js + * const { watch } = require('node:fs/promises'); + * + * const ac = new AbortController(); + * const { signal } = ac; + * setTimeout(() => ac.abort(), 10000); + * + * (async () => { + * try { + * const watcher = watch(__filename, { signal }); + * for await (const event of watcher) + * console.log(event); + * } catch (err) { + * if (err.name === 'AbortError') + * return; + * throw err; + * } + * })(); + * ``` + * + * On most platforms, `'rename'` is emitted whenever a filename appears or + * disappears in the directory. + * + * All the `caveats` for `fs.watch()` also apply to `fsPromises.watch()`. + * @since v0.6.8 + * @return of objects with the properties: + */ + function watch( + filename: PathLike, + options: + | (WatchOptions & { + encoding: 'buffer'; + }) + | 'buffer' + ): AsyncIterable>; + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `persistent` is not supplied, the default of `true` is used. + * If `recursive` is not supplied, the default of `false` is used. + */ + function watch(filename: PathLike, options?: WatchOptions | BufferEncoding): AsyncIterable>; + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `persistent` is not supplied, the default of `true` is used. + * If `recursive` is not supplied, the default of `false` is used. + */ + function watch(filename: PathLike, options: WatchOptions | string): AsyncIterable> | AsyncIterable>; } declare module "node:fs/promises" { diff --git a/src/bun.js/bindings/JSSink.cpp b/src/bun.js/bindings/JSSink.cpp index 36be334dd..4acf01ff7 100644 --- a/src/bun.js/bindings/JSSink.cpp +++ b/src/bun.js/bindings/JSSink.cpp @@ -1,6 +1,6 @@ // AUTO-GENERATED FILE. DO NOT EDIT. -// Generated by 'make generate-sink' at 2023-05-18T01:04:00.447Z +// Generated by 'make generate-sink' at 2023-06-14T21:38:04.394Z // To regenerate this file, run: // // make generate-sink diff --git a/src/bun.js/bindings/JSSink.h b/src/bun.js/bindings/JSSink.h index 5bbfab777..37c458e9b 100644 --- a/src/bun.js/bindings/JSSink.h +++ b/src/bun.js/bindings/JSSink.h @@ -1,6 +1,6 @@ // AUTO-GENERATED FILE. DO NOT EDIT. -// Generated by 'make generate-sink' at 2023-05-18T01:04:00.446Z +// Generated by 'make generate-sink' at 2023-06-14T21:38:04.394Z // #pragma once diff --git a/src/bun.js/bindings/JSSinkLookupTable.h b/src/bun.js/bindings/JSSinkLookupTable.h index a4ace6dc3..e4ed81629 100644 --- a/src/bun.js/bindings/JSSinkLookupTable.h +++ b/src/bun.js/bindings/JSSinkLookupTable.h @@ -1,4 +1,4 @@ -// Automatically generated from src/bun.js/bindings/JSSink.cpp using /Users/jarred/Code/bun/src/bun.js/WebKit/Source/JavaScriptCore/create_hash_table. DO NOT EDIT! +// Automatically generated from src/bun.js/bindings/JSSink.cpp using /home/cirospaciari/Repos/bun/src/bun.js/WebKit/Source/JavaScriptCore/create_hash_table. DO NOT EDIT! diff --git a/src/bun.js/bindings/ZigGeneratedClasses+DOMClientIsoSubspaces.h b/src/bun.js/bindings/ZigGeneratedClasses+DOMClientIsoSubspaces.h index b16febcdb..f0d491c0b 100644 --- a/src/bun.js/bindings/ZigGeneratedClasses+DOMClientIsoSubspaces.h +++ b/src/bun.js/bindings/ZigGeneratedClasses+DOMClientIsoSubspaces.h @@ -8,6 +8,7 @@ std::unique_ptr m_clientSubspaceForExpectConstructor;std: std::unique_ptr m_clientSubspaceForExpectAnything; std::unique_ptr m_clientSubspaceForExpectStringContaining; std::unique_ptr m_clientSubspaceForExpectStringMatching; +std::unique_ptr m_clientSubspaceForFSWatcher; std::unique_ptr m_clientSubspaceForFileSystemRouter; std::unique_ptr m_clientSubspaceForFileSystemRouterConstructor;std::unique_ptr m_clientSubspaceForListener; std::unique_ptr m_clientSubspaceForMD4; diff --git a/src/bun.js/bindings/ZigGeneratedClasses+DOMIsoSubspaces.h b/src/bun.js/bindings/ZigGeneratedClasses+DOMIsoSubspaces.h index 59263e62c..02a9adbca 100644 --- a/src/bun.js/bindings/ZigGeneratedClasses+DOMIsoSubspaces.h +++ b/src/bun.js/bindings/ZigGeneratedClasses+DOMIsoSubspaces.h @@ -8,6 +8,7 @@ std::unique_ptr m_subspaceForExpectConstructor;std::unique_ptr m_subspaceForExpectAnything; std::unique_ptr m_subspaceForExpectStringContaining; std::unique_ptr m_subspaceForExpectStringMatching; +std::unique_ptr m_subspaceForFSWatcher; std::unique_ptr m_subspaceForFileSystemRouter; std::unique_ptr m_subspaceForFileSystemRouterConstructor;std::unique_ptr m_subspaceForListener; std::unique_ptr m_subspaceForMD4; diff --git a/src/bun.js/bindings/ZigGeneratedClasses+lazyStructureHeader.h b/src/bun.js/bindings/ZigGeneratedClasses+lazyStructureHeader.h index 4471fbab3..ac03032e6 100644 --- a/src/bun.js/bindings/ZigGeneratedClasses+lazyStructureHeader.h +++ b/src/bun.js/bindings/ZigGeneratedClasses+lazyStructureHeader.h @@ -58,6 +58,12 @@ JSC::Structure* JSExpectStringMatchingStructure() { return m_JSExpectStringMatch JSC::LazyClassStructure m_JSExpectStringMatching; bool hasJSExpectStringMatchingSetterValue { false }; mutable JSC::WriteBarrier m_JSExpectStringMatchingSetterValue; +JSC::Structure* JSFSWatcherStructure() { return m_JSFSWatcher.getInitializedOnMainThread(this); } + JSC::JSObject* JSFSWatcherConstructor() { return m_JSFSWatcher.constructorInitializedOnMainThread(this); } + JSC::JSValue JSFSWatcherPrototype() { return m_JSFSWatcher.prototypeInitializedOnMainThread(this); } + JSC::LazyClassStructure m_JSFSWatcher; + bool hasJSFSWatcherSetterValue { false }; + mutable JSC::WriteBarrier m_JSFSWatcherSetterValue; JSC::Structure* JSFileSystemRouterStructure() { return m_JSFileSystemRouter.getInitializedOnMainThread(this); } JSC::JSObject* JSFileSystemRouterConstructor() { return m_JSFileSystemRouter.constructorInitializedOnMainThread(this); } JSC::JSValue JSFileSystemRouterPrototype() { return m_JSFileSystemRouter.prototypeInitializedOnMainThread(this); } diff --git a/src/bun.js/bindings/ZigGeneratedClasses+lazyStructureImpl.h b/src/bun.js/bindings/ZigGeneratedClasses+lazyStructureImpl.h index 4e5a2c1fa..b3b5327a4 100644 --- a/src/bun.js/bindings/ZigGeneratedClasses+lazyStructureImpl.h +++ b/src/bun.js/bindings/ZigGeneratedClasses+lazyStructureImpl.h @@ -58,6 +58,12 @@ void GlobalObject::initGeneratedLazyClasses() { init.setPrototype(WebCore::JSExpectStringMatching::createPrototype(init.vm, reinterpret_cast(init.global))); init.setStructure(WebCore::JSExpectStringMatching::createStructure(init.vm, init.global, init.prototype)); + }); + m_JSFSWatcher.initLater( + [](LazyClassStructure::Initializer& init) { + init.setPrototype(WebCore::JSFSWatcher::createPrototype(init.vm, reinterpret_cast(init.global))); + init.setStructure(WebCore::JSFSWatcher::createStructure(init.vm, init.global, init.prototype)); + }); m_JSFileSystemRouter.initLater( [](LazyClassStructure::Initializer& init) { @@ -211,6 +217,7 @@ void GlobalObject::visitGeneratedLazyClasses(GlobalObject *thisObject, Visitor& thisObject->m_JSExpectAnything.visit(visitor); visitor.append(thisObject->m_JSExpectAnythingSetterValue); thisObject->m_JSExpectStringContaining.visit(visitor); visitor.append(thisObject->m_JSExpectStringContainingSetterValue); thisObject->m_JSExpectStringMatching.visit(visitor); visitor.append(thisObject->m_JSExpectStringMatchingSetterValue); + thisObject->m_JSFSWatcher.visit(visitor); visitor.append(thisObject->m_JSFSWatcherSetterValue); thisObject->m_JSFileSystemRouter.visit(visitor); visitor.append(thisObject->m_JSFileSystemRouterSetterValue); thisObject->m_JSListener.visit(visitor); visitor.append(thisObject->m_JSListenerSetterValue); thisObject->m_JSMD4.visit(visitor); visitor.append(thisObject->m_JSMD4SetterValue); diff --git a/src/bun.js/bindings/ZigGeneratedClasses.cpp b/src/bun.js/bindings/ZigGeneratedClasses.cpp index d51a1959a..e0a3f33d6 100644 --- a/src/bun.js/bindings/ZigGeneratedClasses.cpp +++ b/src/bun.js/bindings/ZigGeneratedClasses.cpp @@ -5381,6 +5381,297 @@ void JSExpectStringMatching::visitOutputConstraintsImpl(JSCell* cell, Visitor& v } DEFINE_VISIT_OUTPUT_CONSTRAINTS(JSExpectStringMatching); +class JSFSWatcherPrototype final : public JSC::JSNonFinalObject { +public: + using Base = JSC::JSNonFinalObject; + + static JSFSWatcherPrototype* create(JSC::VM& vm, JSGlobalObject* globalObject, JSC::Structure* structure) + { + JSFSWatcherPrototype* ptr = new (NotNull, JSC::allocateCell(vm)) JSFSWatcherPrototype(vm, globalObject, structure); + ptr->finishCreation(vm, globalObject); + return ptr; + } + + DECLARE_INFO; + template + static JSC::GCClient::IsoSubspace* subspaceFor(JSC::VM& vm) + { + return &vm.plainObjectSpace(); + } + static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype) + { + return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info()); + } + +private: + JSFSWatcherPrototype(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::Structure* structure) + : Base(vm, structure) + { + } + + void finishCreation(JSC::VM&, JSC::JSGlobalObject*); +}; + +extern "C" void FSWatcherClass__finalize(void*); + +extern "C" EncodedJSValue FSWatcherPrototype__doClose(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame); +JSC_DECLARE_HOST_FUNCTION(FSWatcherPrototype__closeCallback); + +extern "C" EncodedJSValue FSWatcherPrototype__hasRef(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame); +JSC_DECLARE_HOST_FUNCTION(FSWatcherPrototype__hasRefCallback); + +extern "C" EncodedJSValue FSWatcherPrototype__doRef(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame); +JSC_DECLARE_HOST_FUNCTION(FSWatcherPrototype__refCallback); + +extern "C" EncodedJSValue FSWatcherPrototype__doUnref(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame); +JSC_DECLARE_HOST_FUNCTION(FSWatcherPrototype__unrefCallback); + +STATIC_ASSERT_ISO_SUBSPACE_SHARABLE(JSFSWatcherPrototype, JSFSWatcherPrototype::Base); + +static const HashTableValue JSFSWatcherPrototypeTableValues[] = { + { "close"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, FSWatcherPrototype__closeCallback, 0 } }, + { "hasRef"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, FSWatcherPrototype__hasRefCallback, 0 } }, + { "ref"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, FSWatcherPrototype__refCallback, 0 } }, + { "unref"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, FSWatcherPrototype__unrefCallback, 0 } } +}; + +const ClassInfo JSFSWatcherPrototype::s_info = { "FSWatcher"_s, &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSFSWatcherPrototype) }; + +JSC_DEFINE_HOST_FUNCTION(FSWatcherPrototype__closeCallback, (JSGlobalObject * lexicalGlobalObject, CallFrame* callFrame)) +{ + auto& vm = lexicalGlobalObject->vm(); + + JSFSWatcher* thisObject = jsDynamicCast(callFrame->thisValue()); + + if (UNLIKELY(!thisObject)) { + auto throwScope = DECLARE_THROW_SCOPE(vm); + return throwVMTypeError(lexicalGlobalObject, throwScope); + } + + JSC::EnsureStillAliveScope thisArg = JSC::EnsureStillAliveScope(thisObject); + +#ifdef BUN_DEBUG + /** View the file name of the JS file that called this function + * from a debugger */ + SourceOrigin sourceOrigin = callFrame->callerSourceOrigin(vm); + const char* fileName = sourceOrigin.string().utf8().data(); + static const char* lastFileName = nullptr; + if (lastFileName != fileName) { + lastFileName = fileName; + } +#endif + + return FSWatcherPrototype__doClose(thisObject->wrapped(), lexicalGlobalObject, callFrame); +} + +JSC_DEFINE_HOST_FUNCTION(FSWatcherPrototype__hasRefCallback, (JSGlobalObject * lexicalGlobalObject, CallFrame* callFrame)) +{ + auto& vm = lexicalGlobalObject->vm(); + + JSFSWatcher* thisObject = jsDynamicCast(callFrame->thisValue()); + + if (UNLIKELY(!thisObject)) { + auto throwScope = DECLARE_THROW_SCOPE(vm); + return throwVMTypeError(lexicalGlobalObject, throwScope); + } + + JSC::EnsureStillAliveScope thisArg = JSC::EnsureStillAliveScope(thisObject); + +#ifdef BUN_DEBUG + /** View the file name of the JS file that called this function + * from a debugger */ + SourceOrigin sourceOrigin = callFrame->callerSourceOrigin(vm); + const char* fileName = sourceOrigin.string().utf8().data(); + static const char* lastFileName = nullptr; + if (lastFileName != fileName) { + lastFileName = fileName; + } +#endif + + return FSWatcherPrototype__hasRef(thisObject->wrapped(), lexicalGlobalObject, callFrame); +} + +JSC_DEFINE_HOST_FUNCTION(FSWatcherPrototype__refCallback, (JSGlobalObject * lexicalGlobalObject, CallFrame* callFrame)) +{ + auto& vm = lexicalGlobalObject->vm(); + + JSFSWatcher* thisObject = jsDynamicCast(callFrame->thisValue()); + + if (UNLIKELY(!thisObject)) { + auto throwScope = DECLARE_THROW_SCOPE(vm); + return throwVMTypeError(lexicalGlobalObject, throwScope); + } + + JSC::EnsureStillAliveScope thisArg = JSC::EnsureStillAliveScope(thisObject); + +#ifdef BUN_DEBUG + /** View the file name of the JS file that called this function + * from a debugger */ + SourceOrigin sourceOrigin = callFrame->callerSourceOrigin(vm); + const char* fileName = sourceOrigin.string().utf8().data(); + static const char* lastFileName = nullptr; + if (lastFileName != fileName) { + lastFileName = fileName; + } +#endif + + return FSWatcherPrototype__doRef(thisObject->wrapped(), lexicalGlobalObject, callFrame); +} + +JSC_DEFINE_HOST_FUNCTION(FSWatcherPrototype__unrefCallback, (JSGlobalObject * lexicalGlobalObject, CallFrame* callFrame)) +{ + auto& vm = lexicalGlobalObject->vm(); + + JSFSWatcher* thisObject = jsDynamicCast(callFrame->thisValue()); + + if (UNLIKELY(!thisObject)) { + auto throwScope = DECLARE_THROW_SCOPE(vm); + return throwVMTypeError(lexicalGlobalObject, throwScope); + } + + JSC::EnsureStillAliveScope thisArg = JSC::EnsureStillAliveScope(thisObject); + +#ifdef BUN_DEBUG + /** View the file name of the JS file that called this function + * from a debugger */ + SourceOrigin sourceOrigin = callFrame->callerSourceOrigin(vm); + const char* fileName = sourceOrigin.string().utf8().data(); + static const char* lastFileName = nullptr; + if (lastFileName != fileName) { + lastFileName = fileName; + } +#endif + + return FSWatcherPrototype__doUnref(thisObject->wrapped(), lexicalGlobalObject, callFrame); +} + +extern "C" void FSWatcherPrototype__listenerSetCachedValue(JSC::EncodedJSValue thisValue, JSC::JSGlobalObject* globalObject, JSC::EncodedJSValue value) +{ + auto& vm = globalObject->vm(); + auto* thisObject = jsCast(JSValue::decode(thisValue)); + thisObject->m_listener.set(vm, thisObject, JSValue::decode(value)); +} + +extern "C" EncodedJSValue FSWatcherPrototype__listenerGetCachedValue(JSC::EncodedJSValue thisValue) +{ + auto* thisObject = jsCast(JSValue::decode(thisValue)); + return JSValue::encode(thisObject->m_listener.get()); +} + +void JSFSWatcherPrototype::finishCreation(JSC::VM& vm, JSC::JSGlobalObject* globalObject) +{ + Base::finishCreation(vm); + reifyStaticProperties(vm, JSFSWatcher::info(), JSFSWatcherPrototypeTableValues, *this); + JSC_TO_STRING_TAG_WITHOUT_TRANSITION(); +} + +JSFSWatcher::~JSFSWatcher() +{ + if (m_ctx) { + FSWatcherClass__finalize(m_ctx); + } +} +void JSFSWatcher::destroy(JSCell* cell) +{ + static_cast(cell)->JSFSWatcher::~JSFSWatcher(); +} + +const ClassInfo JSFSWatcher::s_info = { "FSWatcher"_s, &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSFSWatcher) }; + +void JSFSWatcher::finishCreation(VM& vm) +{ + Base::finishCreation(vm); + ASSERT(inherits(info())); +} + +JSFSWatcher* JSFSWatcher::create(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::Structure* structure, void* ctx) +{ + JSFSWatcher* ptr = new (NotNull, JSC::allocateCell(vm)) JSFSWatcher(vm, structure, ctx); + ptr->finishCreation(vm); + return ptr; +} + +extern "C" void* FSWatcher__fromJS(JSC::EncodedJSValue value) +{ + JSC::JSValue decodedValue = JSC::JSValue::decode(value); + if (decodedValue.isEmpty() || !decodedValue.isCell()) + return nullptr; + + JSC::JSCell* cell = decodedValue.asCell(); + JSFSWatcher* object = JSC::jsDynamicCast(cell); + + if (!object) + return nullptr; + + return object->wrapped(); +} + +extern "C" bool FSWatcher__dangerouslySetPtr(JSC::EncodedJSValue value, void* ptr) +{ + JSFSWatcher* object = JSC::jsDynamicCast(JSValue::decode(value)); + if (!object) + return false; + + object->m_ctx = ptr; + return true; +} + +extern "C" const size_t FSWatcher__ptrOffset = JSFSWatcher::offsetOfWrapped(); + +void JSFSWatcher::analyzeHeap(JSCell* cell, HeapAnalyzer& analyzer) +{ + auto* thisObject = jsCast(cell); + if (void* wrapped = thisObject->wrapped()) { + // if (thisObject->scriptExecutionContext()) + // analyzer.setLabelForCell(cell, "url " + thisObject->scriptExecutionContext()->url().string()); + } + Base::analyzeHeap(cell, analyzer); +} + +JSObject* JSFSWatcher::createPrototype(VM& vm, JSDOMGlobalObject* globalObject) +{ + return JSFSWatcherPrototype::create(vm, globalObject, JSFSWatcherPrototype::createStructure(vm, globalObject, globalObject->objectPrototype())); +} + +extern "C" EncodedJSValue FSWatcher__create(Zig::GlobalObject* globalObject, void* ptr) +{ + auto& vm = globalObject->vm(); + JSC::Structure* structure = globalObject->JSFSWatcherStructure(); + JSFSWatcher* instance = JSFSWatcher::create(vm, globalObject, structure, ptr); + + return JSValue::encode(instance); +} + +template +void JSFSWatcher::visitChildrenImpl(JSCell* cell, Visitor& visitor) +{ + JSFSWatcher* thisObject = jsCast(cell); + ASSERT_GC_OBJECT_INHERITS(thisObject, info()); + Base::visitChildren(thisObject, visitor); + visitor.append(thisObject->m_listener); +} + +DEFINE_VISIT_CHILDREN(JSFSWatcher); + +template +void JSFSWatcher::visitAdditionalChildren(Visitor& visitor) +{ + JSFSWatcher* thisObject = this; + ASSERT_GC_OBJECT_INHERITS(thisObject, info()); + visitor.append(thisObject->m_listener); +} + +DEFINE_VISIT_ADDITIONAL_CHILDREN(JSFSWatcher); + +template +void JSFSWatcher::visitOutputConstraintsImpl(JSCell* cell, Visitor& visitor) +{ + JSFSWatcher* thisObject = jsCast(cell); + ASSERT_GC_OBJECT_INHERITS(thisObject, info()); + thisObject->visitAdditionalChildren(visitor); +} + +DEFINE_VISIT_OUTPUT_CONSTRAINTS(JSFSWatcher); class JSFileSystemRouterPrototype final : public JSC::JSNonFinalObject { public: using Base = JSC::JSNonFinalObject; @@ -7654,6 +7945,9 @@ JSC_DECLARE_HOST_FUNCTION(NodeJSFSPrototype__utimesCallback); extern "C" EncodedJSValue NodeJSFSPrototype__utimesSync(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame); JSC_DECLARE_HOST_FUNCTION(NodeJSFSPrototype__utimesSyncCallback); +extern "C" EncodedJSValue NodeJSFSPrototype__watch(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame); +JSC_DECLARE_HOST_FUNCTION(NodeJSFSPrototype__watchCallback); + extern "C" EncodedJSValue NodeJSFSPrototype__write(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame); JSC_DECLARE_HOST_FUNCTION(NodeJSFSPrototype__writeCallback); @@ -7751,6 +8045,7 @@ static const HashTableValue JSNodeJSFSPrototypeTableValues[] = { { "unlinkSync"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, NodeJSFSPrototype__unlinkSyncCallback, 1 } }, { "utimes"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, NodeJSFSPrototype__utimesCallback, 4 } }, { "utimesSync"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, NodeJSFSPrototype__utimesSyncCallback, 3 } }, + { "watch"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, NodeJSFSPrototype__watchCallback, 3 } }, { "write"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, NodeJSFSPrototype__writeCallback, 6 } }, { "writeFile"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, NodeJSFSPrototype__writeFileCallback, 4 } }, { "writeFileSync"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, NodeJSFSPrototype__writeFileSyncCallback, 3 } }, @@ -9795,6 +10090,33 @@ JSC_DEFINE_HOST_FUNCTION(NodeJSFSPrototype__utimesSyncCallback, (JSGlobalObject return NodeJSFSPrototype__utimesSync(thisObject->wrapped(), lexicalGlobalObject, callFrame); } +JSC_DEFINE_HOST_FUNCTION(NodeJSFSPrototype__watchCallback, (JSGlobalObject * lexicalGlobalObject, CallFrame* callFrame)) +{ + auto& vm = lexicalGlobalObject->vm(); + + JSNodeJSFS* thisObject = jsDynamicCast(callFrame->thisValue()); + + if (UNLIKELY(!thisObject)) { + auto throwScope = DECLARE_THROW_SCOPE(vm); + return throwVMTypeError(lexicalGlobalObject, throwScope); + } + + JSC::EnsureStillAliveScope thisArg = JSC::EnsureStillAliveScope(thisObject); + +#ifdef BUN_DEBUG + /** View the file name of the JS file that called this function + * from a debugger */ + SourceOrigin sourceOrigin = callFrame->callerSourceOrigin(vm); + const char* fileName = sourceOrigin.string().utf8().data(); + static const char* lastFileName = nullptr; + if (lastFileName != fileName) { + lastFileName = fileName; + } +#endif + + return NodeJSFSPrototype__watch(thisObject->wrapped(), lexicalGlobalObject, callFrame); +} + JSC_DEFINE_HOST_FUNCTION(NodeJSFSPrototype__writeCallback, (JSGlobalObject * lexicalGlobalObject, CallFrame* callFrame)) { auto& vm = lexicalGlobalObject->vm(); diff --git a/src/bun.js/bindings/ZigGeneratedClasses.h b/src/bun.js/bindings/ZigGeneratedClasses.h index 668cd3f6b..3fa0e26d2 100644 --- a/src/bun.js/bindings/ZigGeneratedClasses.h +++ b/src/bun.js/bindings/ZigGeneratedClasses.h @@ -578,6 +578,62 @@ public: mutable JSC::WriteBarrier m_testValue; }; +class JSFSWatcher final : public JSC::JSDestructibleObject { +public: + using Base = JSC::JSDestructibleObject; + static JSFSWatcher* create(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::Structure* structure, void* ctx); + + DECLARE_EXPORT_INFO; + template static JSC::GCClient::IsoSubspace* subspaceFor(JSC::VM& vm) + { + if constexpr (mode == JSC::SubspaceAccess::Concurrently) + return nullptr; + return WebCore::subspaceForImpl( + vm, + [](auto& spaces) { return spaces.m_clientSubspaceForFSWatcher.get(); }, + [](auto& spaces, auto&& space) { spaces.m_clientSubspaceForFSWatcher = std::forward(space); }, + [](auto& spaces) { return spaces.m_subspaceForFSWatcher.get(); }, + [](auto& spaces, auto&& space) { spaces.m_subspaceForFSWatcher = std::forward(space); }); + } + + static void destroy(JSC::JSCell*); + static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype) + { + return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(static_cast(0b11101110), StructureFlags), info()); + } + + static JSObject* createPrototype(VM& vm, JSDOMGlobalObject* globalObject); + ; + + ~JSFSWatcher(); + + void* wrapped() const { return m_ctx; } + + void detach() + { + m_ctx = nullptr; + } + + static void analyzeHeap(JSCell*, JSC::HeapAnalyzer&); + static ptrdiff_t offsetOfWrapped() { return OBJECT_OFFSETOF(JSFSWatcher, m_ctx); } + + void* m_ctx { nullptr }; + + JSFSWatcher(JSC::VM& vm, JSC::Structure* structure, void* sinkPtr) + : Base(vm, structure) + { + m_ctx = sinkPtr; + } + + void finishCreation(JSC::VM&); + + DECLARE_VISIT_CHILDREN; + template void visitAdditionalChildren(Visitor&); + DECLARE_VISIT_OUTPUT_CONSTRAINTS; + + mutable JSC::WriteBarrier m_listener; +}; + class JSFileSystemRouter final : public JSC::JSDestructibleObject { public: using Base = JSC::JSDestructibleObject; diff --git a/src/bun.js/bindings/generated_classes.zig b/src/bun.js/bindings/generated_classes.zig index 0ec65a469..74e30cd83 100644 --- a/src/bun.js/bindings/generated_classes.zig +++ b/src/bun.js/bindings/generated_classes.zig @@ -1406,6 +1406,96 @@ pub const JSExpectStringMatching = struct { } } }; +pub const JSFSWatcher = struct { + const FSWatcher = Classes.FSWatcher; + const GetterType = fn (*FSWatcher, *JSC.JSGlobalObject) callconv(.C) JSC.JSValue; + const GetterTypeWithThisValue = fn (*FSWatcher, JSC.JSValue, *JSC.JSGlobalObject) callconv(.C) JSC.JSValue; + const SetterType = fn (*FSWatcher, *JSC.JSGlobalObject, JSC.JSValue) callconv(.C) bool; + const SetterTypeWithThisValue = fn (*FSWatcher, JSC.JSValue, *JSC.JSGlobalObject, JSC.JSValue) callconv(.C) bool; + const CallbackType = fn (*FSWatcher, *JSC.JSGlobalObject, *JSC.CallFrame) callconv(.C) JSC.JSValue; + + /// Return the pointer to the wrapped object. + /// If the object does not match the type, return null. + pub fn fromJS(value: JSC.JSValue) ?*FSWatcher { + JSC.markBinding(@src()); + return FSWatcher__fromJS(value); + } + + extern fn FSWatcherPrototype__listenerSetCachedValue(JSC.JSValue, *JSC.JSGlobalObject, JSC.JSValue) void; + + extern fn FSWatcherPrototype__listenerGetCachedValue(JSC.JSValue) JSC.JSValue; + + /// `FSWatcher.listener` setter + /// This value will be visited by the garbage collector. + pub fn listenerSetCached(thisValue: JSC.JSValue, globalObject: *JSC.JSGlobalObject, value: JSC.JSValue) void { + JSC.markBinding(@src()); + FSWatcherPrototype__listenerSetCachedValue(thisValue, globalObject, value); + } + + /// `FSWatcher.listener` getter + /// This value will be visited by the garbage collector. + pub fn listenerGetCached(thisValue: JSC.JSValue) ?JSC.JSValue { + JSC.markBinding(@src()); + const result = FSWatcherPrototype__listenerGetCachedValue(thisValue); + if (result == .zero) + return null; + + return result; + } + + /// Create a new instance of FSWatcher + pub fn toJS(this: *FSWatcher, globalObject: *JSC.JSGlobalObject) JSC.JSValue { + JSC.markBinding(@src()); + if (comptime Environment.allow_assert) { + const value__ = FSWatcher__create(globalObject, this); + std.debug.assert(value__.as(FSWatcher).? == this); // If this fails, likely a C ABI issue. + return value__; + } else { + return FSWatcher__create(globalObject, this); + } + } + + /// Modify the internal ptr to point to a new instance of FSWatcher. + pub fn dangerouslySetPtr(value: JSC.JSValue, ptr: ?*FSWatcher) bool { + JSC.markBinding(@src()); + return FSWatcher__dangerouslySetPtr(value, ptr); + } + + /// Detach the ptr from the thisValue + pub fn detachPtr(_: *FSWatcher, value: JSC.JSValue) void { + JSC.markBinding(@src()); + std.debug.assert(FSWatcher__dangerouslySetPtr(value, null)); + } + + extern fn FSWatcher__fromJS(JSC.JSValue) ?*FSWatcher; + extern fn FSWatcher__getConstructor(*JSC.JSGlobalObject) JSC.JSValue; + + extern fn FSWatcher__create(globalObject: *JSC.JSGlobalObject, ptr: ?*FSWatcher) JSC.JSValue; + + extern fn FSWatcher__dangerouslySetPtr(JSC.JSValue, ?*FSWatcher) bool; + + comptime { + if (@TypeOf(FSWatcher.finalize) != (fn (*FSWatcher) callconv(.C) void)) { + @compileLog("FSWatcher.finalize is not a finalizer"); + } + + if (@TypeOf(FSWatcher.doClose) != CallbackType) + @compileLog("Expected FSWatcher.doClose to be a callback but received " ++ @typeName(@TypeOf(FSWatcher.doClose))); + if (@TypeOf(FSWatcher.hasRef) != CallbackType) + @compileLog("Expected FSWatcher.hasRef to be a callback but received " ++ @typeName(@TypeOf(FSWatcher.hasRef))); + if (@TypeOf(FSWatcher.doRef) != CallbackType) + @compileLog("Expected FSWatcher.doRef to be a callback but received " ++ @typeName(@TypeOf(FSWatcher.doRef))); + if (@TypeOf(FSWatcher.doUnref) != CallbackType) + @compileLog("Expected FSWatcher.doUnref to be a callback but received " ++ @typeName(@TypeOf(FSWatcher.doUnref))); + if (!JSC.is_bindgen) { + @export(FSWatcher.doClose, .{ .name = "FSWatcherPrototype__doClose" }); + @export(FSWatcher.doRef, .{ .name = "FSWatcherPrototype__doRef" }); + @export(FSWatcher.doUnref, .{ .name = "FSWatcherPrototype__doUnref" }); + @export(FSWatcher.finalize, .{ .name = "FSWatcherClass__finalize" }); + @export(FSWatcher.hasRef, .{ .name = "FSWatcherPrototype__hasRef" }); + } + } +}; pub const JSFileSystemRouter = struct { const FileSystemRouter = Classes.FileSystemRouter; const GetterType = fn (*FileSystemRouter, *JSC.JSGlobalObject) callconv(.C) JSC.JSValue; @@ -2312,6 +2402,8 @@ pub const JSNodeJSFS = struct { @compileLog("Expected NodeJSFS.utimes to be a callback but received " ++ @typeName(@TypeOf(NodeJSFS.utimes))); if (@TypeOf(NodeJSFS.utimesSync) != CallbackType) @compileLog("Expected NodeJSFS.utimesSync to be a callback but received " ++ @typeName(@TypeOf(NodeJSFS.utimesSync))); + if (@TypeOf(NodeJSFS.watch) != CallbackType) + @compileLog("Expected NodeJSFS.watch to be a callback but received " ++ @typeName(@TypeOf(NodeJSFS.watch))); if (@TypeOf(NodeJSFS.write) != CallbackType) @compileLog("Expected NodeJSFS.write to be a callback but received " ++ @typeName(@TypeOf(NodeJSFS.write))); if (@TypeOf(NodeJSFS.writeFile) != CallbackType) @@ -2402,6 +2494,7 @@ pub const JSNodeJSFS = struct { @export(NodeJSFS.unlinkSync, .{ .name = "NodeJSFSPrototype__unlinkSync" }); @export(NodeJSFS.utimes, .{ .name = "NodeJSFSPrototype__utimes" }); @export(NodeJSFS.utimesSync, .{ .name = "NodeJSFSPrototype__utimesSync" }); + @export(NodeJSFS.watch, .{ .name = "NodeJSFSPrototype__watch" }); @export(NodeJSFS.write, .{ .name = "NodeJSFSPrototype__write" }); @export(NodeJSFS.writeFile, .{ .name = "NodeJSFSPrototype__writeFile" }); @export(NodeJSFS.writeFileSync, .{ .name = "NodeJSFSPrototype__writeFileSync" }); @@ -4855,6 +4948,7 @@ comptime { _ = JSExpectAnything; _ = JSExpectStringContaining; _ = JSExpectStringMatching; + _ = JSFSWatcher; _ = JSFileSystemRouter; _ = JSListener; _ = JSMD4; diff --git a/src/bun.js/bindings/generated_classes_list.zig b/src/bun.js/bindings/generated_classes_list.zig index c54965093..d90267337 100644 --- a/src/bun.js/bindings/generated_classes_list.zig +++ b/src/bun.js/bindings/generated_classes_list.zig @@ -37,4 +37,5 @@ pub const Classes = struct { pub const BuildArtifact = JSC.API.BuildArtifact; pub const BuildMessage = JSC.BuildMessage; pub const ResolveMessage = JSC.ResolveMessage; + pub const FSWatcher = JSC.Node.FSWatcher.JSObject; }; diff --git a/src/bun.js/event_loop.zig b/src/bun.js/event_loop.zig index 0a3459d64..a3ccd16ad 100644 --- a/src/bun.js/event_loop.zig +++ b/src/bun.js/event_loop.zig @@ -224,6 +224,7 @@ pub const CppTask = opaque { const ThreadSafeFunction = JSC.napi.ThreadSafeFunction; const MicrotaskForDefaultGlobalObject = JSC.MicrotaskForDefaultGlobalObject; const HotReloadTask = JSC.HotReloader.HotReloadTask; +const FSWatchTask = JSC.Node.FSWatcher.FSWatchTask; const PollPendingModulesTask = JSC.ModuleLoader.AsyncModule.Queue; // const PromiseTask = JSInternalPromise.Completion.PromiseTask; const GetAddrInfoRequestTask = JSC.DNS.GetAddrInfoRequest.Task; @@ -242,6 +243,7 @@ pub const Task = TaggedPointerUnion(.{ HotReloadTask, PollPendingModulesTask, GetAddrInfoRequestTask, + FSWatchTask, // PromiseTask, // TimeoutTasklet, }); @@ -467,6 +469,11 @@ pub const EventLoop = struct { // special case: we return return 0; }, + .FSWatchTask => { + var transform_task: *FSWatchTask = task.get(FSWatchTask).?; + transform_task.*.run(); + transform_task.deinit(); + }, @field(Task.Tag, typeBaseName(@typeName(AnyTask))) => { var any: *AnyTask = task.get(AnyTask).?; any.run(); diff --git a/src/bun.js/javascript.zig b/src/bun.js/javascript.zig index bebfbeb18..3baa25e22 100644 --- a/src/bun.js/javascript.zig +++ b/src/bun.js/javascript.zig @@ -2609,6 +2609,13 @@ pub fn NewHotReloader(comptime Ctx: type, comptime EventLoopType: type, comptime return this.tombstones.get(key); } + pub fn onError( + _: *@This(), + err: anyerror, + ) void { + Output.prettyErrorln("Watcher crashed: {s}", .{@errorName(err)}); + } + pub fn onFileUpdate( this: *@This(), events: []watcher.WatchEvent, diff --git a/src/bun.js/node/fs_events.zig b/src/bun.js/node/fs_events.zig new file mode 100644 index 000000000..a3fba5441 --- /dev/null +++ b/src/bun.js/node/fs_events.zig @@ -0,0 +1,609 @@ +const std = @import("std"); +const bun = @import("root").bun; +const Environment = bun.Environment; +const Mutex = @import("../../lock.zig").Lock; +const sync = @import("../../sync.zig"); +const Semaphore = sync.Semaphore; +const UnboundedQueue = @import("../unbounded_queue.zig").UnboundedQueue; +const TaggedPointerUnion = @import("../../tagged_pointer.zig").TaggedPointerUnion; +const string = bun.string; + +pub const CFAbsoluteTime = f64; +pub const CFTimeInterval = f64; +pub const CFArrayCallBacks = anyopaque; + +pub const FSEventStreamEventFlags = c_int; +pub const OSStatus = c_int; +pub const CFIndex = c_long; + +pub const FSEventStreamCreateFlags = u32; +pub const FSEventStreamEventId = u64; + +pub const CFStringEncoding = c_uint; + +pub const CFArrayRef = ?*anyopaque; +pub const CFAllocatorRef = ?*anyopaque; +pub const CFBundleRef = ?*anyopaque; +pub const CFDictionaryRef = ?*anyopaque; +pub const CFRunLoopRef = ?*anyopaque; +pub const CFRunLoopSourceRef = ?*anyopaque; +pub const CFStringRef = ?*anyopaque; +pub const CFTypeRef = ?*anyopaque; +pub const FSEventStreamRef = ?*anyopaque; +pub const FSEventStreamCallback = *const fn (FSEventStreamRef, ?*anyopaque, usize, ?*anyopaque, *FSEventStreamEventFlags, *FSEventStreamEventId) callconv(.C) void; + +// we only care about info and perform +pub const CFRunLoopSourceContext = extern struct { + version: CFIndex = 0, + info: *anyopaque, + retain: ?*anyopaque = null, + release: ?*anyopaque = null, + copyDescription: ?*anyopaque = null, + equal: ?*anyopaque = null, + hash: ?*anyopaque = null, + schedule: ?*anyopaque = null, + cancel: ?*anyopaque = null, + perform: *const fn (?*anyopaque) callconv(.C) void, +}; + +pub const FSEventStreamContext = extern struct { + version: CFIndex = 0, + info: ?*anyopaque = null, + pad: [3]?*anyopaque = .{ null, null, null }, +}; + +pub const kCFStringEncodingUTF8: CFStringEncoding = 0x8000100; +pub const noErr: OSStatus = 0; + +pub const kFSEventStreamCreateFlagNoDefer: c_int = 2; +pub const kFSEventStreamCreateFlagFileEvents: c_int = 16; + +pub const kFSEventStreamEventFlagEventIdsWrapped: c_int = 8; +pub const kFSEventStreamEventFlagHistoryDone: c_int = 16; +pub const kFSEventStreamEventFlagItemChangeOwner: c_int = 0x4000; +pub const kFSEventStreamEventFlagItemCreated: c_int = 0x100; +pub const kFSEventStreamEventFlagItemFinderInfoMod: c_int = 0x2000; +pub const kFSEventStreamEventFlagItemInodeMetaMod: c_int = 0x400; +pub const kFSEventStreamEventFlagItemIsDir: c_int = 0x20000; +pub const kFSEventStreamEventFlagItemModified: c_int = 0x1000; +pub const kFSEventStreamEventFlagItemRemoved: c_int = 0x200; +pub const kFSEventStreamEventFlagItemRenamed: c_int = 0x800; +pub const kFSEventStreamEventFlagItemXattrMod: c_int = 0x8000; +pub const kFSEventStreamEventFlagKernelDropped: c_int = 4; +pub const kFSEventStreamEventFlagMount: c_int = 64; +pub const kFSEventStreamEventFlagRootChanged: c_int = 32; +pub const kFSEventStreamEventFlagUnmount: c_int = 128; +pub const kFSEventStreamEventFlagUserDropped: c_int = 2; + +// Lazy function call binding. +const RTLD_LAZY = 0x1; +// Symbols exported from this image (dynamic library or bundle) +// are generally hidden and only availble to dlsym() when +// directly using the handle returned by this call to dlopen(). +const RTLD_LOCAL = 0x4; + +pub const kFSEventsModified: c_int = + kFSEventStreamEventFlagItemChangeOwner | + kFSEventStreamEventFlagItemFinderInfoMod | + kFSEventStreamEventFlagItemInodeMetaMod | + kFSEventStreamEventFlagItemModified | + kFSEventStreamEventFlagItemXattrMod; + +pub const kFSEventsRenamed: c_int = + kFSEventStreamEventFlagItemCreated | + kFSEventStreamEventFlagItemRemoved | + kFSEventStreamEventFlagItemRenamed; + +pub const kFSEventsSystem: c_int = + kFSEventStreamEventFlagUserDropped | + kFSEventStreamEventFlagKernelDropped | + kFSEventStreamEventFlagEventIdsWrapped | + kFSEventStreamEventFlagHistoryDone | + kFSEventStreamEventFlagMount | + kFSEventStreamEventFlagUnmount | + kFSEventStreamEventFlagRootChanged; + +var fsevents_mutex: Mutex = Mutex.init(); +var fsevents_default_loop_mutex: Mutex = Mutex.init(); +var fsevents_default_loop: ?*FSEventsLoop = null; + +fn dlsym(handle: ?*anyopaque, comptime Type: type, comptime symbol: [:0]const u8) ?Type { + if (std.c.dlsym(handle, symbol)) |ptr| { + return bun.cast(Type, ptr); + } + return null; +} + +pub const CoreFoundation = struct { + handle: ?*anyopaque, + ArrayCreate: *fn (CFAllocatorRef, [*]?*anyopaque, CFIndex, ?*CFArrayCallBacks) callconv(.C) CFArrayRef, + Release: *fn (CFTypeRef) callconv(.C) void, + + RunLoopAddSource: *fn (CFRunLoopRef, CFRunLoopSourceRef, CFStringRef) callconv(.C) void, + RunLoopGetCurrent: *fn () callconv(.C) CFRunLoopRef, + RunLoopRemoveSource: *fn (CFRunLoopRef, CFRunLoopSourceRef, CFStringRef) callconv(.C) void, + RunLoopRun: *fn () callconv(.C) void, + RunLoopSourceCreate: *fn (CFAllocatorRef, CFIndex, *CFRunLoopSourceContext) callconv(.C) CFRunLoopSourceRef, + RunLoopSourceSignal: *fn (CFRunLoopSourceRef) callconv(.C) void, + RunLoopStop: *fn (CFRunLoopRef) callconv(.C) void, + RunLoopWakeUp: *fn (CFRunLoopRef) callconv(.C) void, + StringCreateWithFileSystemRepresentation: *fn (CFAllocatorRef, [*]const u8) callconv(.C) CFStringRef, + RunLoopDefaultMode: *CFStringRef, + + pub fn get() CoreFoundation { + if (fsevents_cf) |cf| return cf; + fsevents_mutex.lock(); + defer fsevents_mutex.unlock(); + if (fsevents_cf) |cf| return cf; + + InitLibrary(); + + return fsevents_cf.?; + } + + // We Actually never deinit it + // pub fn deinit(this: *CoreFoundation) void { + // if(this.handle) | ptr| { + // this.handle = null; + // _ = std.c.dlclose(this.handle); + // } + // } + +}; + +pub const CoreServices = struct { + handle: ?*anyopaque, + FSEventStreamCreate: *fn (CFAllocatorRef, FSEventStreamCallback, *FSEventStreamContext, CFArrayRef, FSEventStreamEventId, CFTimeInterval, FSEventStreamCreateFlags) callconv(.C) FSEventStreamRef, + FSEventStreamInvalidate: *fn (FSEventStreamRef) callconv(.C) void, + FSEventStreamRelease: *fn (FSEventStreamRef) callconv(.C) void, + FSEventStreamScheduleWithRunLoop: *fn (FSEventStreamRef, CFRunLoopRef, CFStringRef) callconv(.C) void, + FSEventStreamStart: *fn (FSEventStreamRef) callconv(.C) c_int, + FSEventStreamStop: *fn (FSEventStreamRef) callconv(.C) void, + // libuv set it to -1 so the actual value is this + kFSEventStreamEventIdSinceNow: FSEventStreamEventId = 18446744073709551615, + + pub fn get() CoreServices { + if (fsevents_cs) |cs| return cs; + fsevents_mutex.lock(); + defer fsevents_mutex.unlock(); + if (fsevents_cs) |cs| return cs; + + InitLibrary(); + + return fsevents_cs.?; + } + + // We Actually never deinit it + // pub fn deinit(this: *CoreServices) void { + // if(this.handle) | ptr| { + // this.handle = null; + // _ = std.c.dlclose(this.handle); + // } + // } + +}; + +var fsevents_cf: ?CoreFoundation = null; +var fsevents_cs: ?CoreServices = null; + +fn InitLibrary() void { + const fsevents_cf_handle = std.c.dlopen("/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation", RTLD_LAZY | RTLD_LOCAL); + if (fsevents_cf_handle == null) @panic("Cannot Load CoreFoundation"); + + fsevents_cf = CoreFoundation{ + .handle = fsevents_cf_handle, + .ArrayCreate = dlsym(fsevents_cf_handle, *fn (CFAllocatorRef, [*]?*anyopaque, CFIndex, ?*CFArrayCallBacks) callconv(.C) CFArrayRef, "CFArrayCreate") orelse @panic("Cannot Load CoreFoundation"), + .Release = dlsym(fsevents_cf_handle, *fn (CFTypeRef) callconv(.C) void, "CFRelease") orelse @panic("Cannot Load CoreFoundation"), + .RunLoopAddSource = dlsym(fsevents_cf_handle, *fn (CFRunLoopRef, CFRunLoopSourceRef, CFStringRef) callconv(.C) void, "CFRunLoopAddSource") orelse @panic("Cannot Load CoreFoundation"), + .RunLoopGetCurrent = dlsym(fsevents_cf_handle, *fn () callconv(.C) CFRunLoopRef, "CFRunLoopGetCurrent") orelse @panic("Cannot Load CoreFoundation"), + .RunLoopRemoveSource = dlsym(fsevents_cf_handle, *fn (CFRunLoopRef, CFRunLoopSourceRef, CFStringRef) callconv(.C) void, "CFRunLoopRemoveSource") orelse @panic("Cannot Load CoreFoundation"), + .RunLoopRun = dlsym(fsevents_cf_handle, *fn () callconv(.C) void, "CFRunLoopRun") orelse @panic("Cannot Load CoreFoundation"), + .RunLoopSourceCreate = dlsym(fsevents_cf_handle, *fn (CFAllocatorRef, CFIndex, *CFRunLoopSourceContext) callconv(.C) CFRunLoopSourceRef, "CFRunLoopSourceCreate") orelse @panic("Cannot Load CoreFoundation"), + .RunLoopSourceSignal = dlsym(fsevents_cf_handle, *fn (CFRunLoopSourceRef) callconv(.C) void, "CFRunLoopSourceSignal") orelse @panic("Cannot Load CoreFoundation"), + .RunLoopStop = dlsym(fsevents_cf_handle, *fn (CFRunLoopRef) callconv(.C) void, "CFRunLoopStop") orelse @panic("Cannot Load CoreFoundation"), + .RunLoopWakeUp = dlsym(fsevents_cf_handle, *fn (CFRunLoopRef) callconv(.C) void, "CFRunLoopWakeUp") orelse @panic("Cannot Load CoreFoundation"), + .StringCreateWithFileSystemRepresentation = dlsym(fsevents_cf_handle, *fn (CFAllocatorRef, [*]const u8) callconv(.C) CFStringRef, "CFStringCreateWithFileSystemRepresentation") orelse @panic("Cannot Load CoreFoundation"), + .RunLoopDefaultMode = dlsym(fsevents_cf_handle, *CFStringRef, "kCFRunLoopDefaultMode") orelse @panic("Cannot Load CoreFoundation"), + }; + + const fsevents_cs_handle = std.c.dlopen("/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices", RTLD_LAZY | RTLD_LOCAL); + if (fsevents_cs_handle == null) @panic("Cannot Load CoreServices"); + + fsevents_cs = CoreServices{ + .handle = fsevents_cs_handle, + .FSEventStreamCreate = dlsym(fsevents_cs_handle, *fn (CFAllocatorRef, FSEventStreamCallback, *FSEventStreamContext, CFArrayRef, FSEventStreamEventId, CFTimeInterval, FSEventStreamCreateFlags) callconv(.C) FSEventStreamRef, "FSEventStreamCreate") orelse @panic("Cannot Load CoreServices"), + .FSEventStreamInvalidate = dlsym(fsevents_cs_handle, *fn (FSEventStreamRef) callconv(.C) void, "FSEventStreamInvalidate") orelse @panic("Cannot Load CoreServices"), + .FSEventStreamRelease = dlsym(fsevents_cs_handle, *fn (FSEventStreamRef) callconv(.C) void, "FSEventStreamRelease") orelse @panic("Cannot Load CoreServices"), + .FSEventStreamScheduleWithRunLoop = dlsym(fsevents_cs_handle, *fn (FSEventStreamRef, CFRunLoopRef, CFStringRef) callconv(.C) void, "FSEventStreamScheduleWithRunLoop") orelse @panic("Cannot Load CoreServices"), + .FSEventStreamStart = dlsym(fsevents_cs_handle, *fn (FSEventStreamRef) callconv(.C) c_int, "FSEventStreamStart") orelse @panic("Cannot Load CoreServices"), + .FSEventStreamStop = dlsym(fsevents_cs_handle, *fn (FSEventStreamRef) callconv(.C) void, "FSEventStreamStop") orelse @panic("Cannot Load CoreServices"), + }; +} + +pub const FSEventsLoop = struct { + signal_source: CFRunLoopSourceRef, + mutex: Mutex, + loop: CFRunLoopRef = null, + sem: Semaphore, + thread: std.Thread = undefined, + tasks: ConcurrentTask.Queue = ConcurrentTask.Queue{}, + watchers: bun.BabyList(?*FSEventsWatcher) = .{}, + watcher_count: u32 = 0, + fsevent_stream: FSEventStreamRef = null, + paths: ?[]?*anyopaque = null, + cf_paths: CFArrayRef = null, + has_scheduled_watchers: bool = false, + + pub const Task = struct { + ctx: ?*anyopaque, + callback: *const (fn (*anyopaque) void), + + pub fn run(this: *Task) void { + var callback = this.callback; + var ctx = this.ctx; + callback(ctx.?); + } + + pub fn New(comptime Type: type, comptime Callback: anytype) type { + return struct { + pub fn init(ctx: *Type) Task { + return Task{ + .callback = wrap, + .ctx = ctx, + }; + } + + pub fn wrap(this: ?*anyopaque) void { + @call(.always_inline, Callback, .{@ptrCast(*Type, @alignCast(@alignOf(Type), this.?))}); + } + }; + } + }; + + pub const ConcurrentTask = struct { + task: Task = undefined, + next: ?*ConcurrentTask = null, + auto_delete: bool = false, + + pub const Queue = UnboundedQueue(ConcurrentTask, .next); + + pub fn from(this: *ConcurrentTask, task: Task) *ConcurrentTask { + this.* = .{ + .task = task, + .next = null, + }; + return this; + } + }; + + pub fn CFThreadLoop(this: *FSEventsLoop) void { + bun.Output.Source.configureNamedThread("CFThreadLoop"); + + const CF = CoreFoundation.get(); + + this.loop = CF.RunLoopGetCurrent(); + + CF.RunLoopAddSource(this.loop, this.signal_source, CF.RunLoopDefaultMode.*); + + this.sem.post(); + + CF.RunLoopRun(); + CF.RunLoopRemoveSource(this.loop, this.signal_source, CF.RunLoopDefaultMode.*); + + this.loop = null; + } + + // Runs in CF thread, executed after `enqueueTaskConcurrent()` + fn CFLoopCallback(arg: ?*anyopaque) callconv(.C) void { + if (arg) |self| { + const this = bun.cast(*FSEventsLoop, self); + + var concurrent = this.tasks.popBatch(); + const count = concurrent.count; + if (count == 0) + return; + + var iter = concurrent.iterator(); + while (iter.next()) |task| { + task.task.run(); + if (task.auto_delete) bun.default_allocator.destroy(task); + } + } + } + + pub fn init() !*FSEventsLoop { + const this = bun.default_allocator.create(FSEventsLoop) catch unreachable; + + const CF = CoreFoundation.get(); + + var ctx = CFRunLoopSourceContext{ + .info = this, + .perform = CFLoopCallback, + }; + + const signal_source = CF.RunLoopSourceCreate(null, 0, &ctx); + if (signal_source == null) { + return error.FailedToCreateCoreFoudationSourceLoop; + } + + var fs_loop = FSEventsLoop{ .sem = Semaphore.init(0), .mutex = Mutex.init(), .signal_source = signal_source }; + + this.* = fs_loop; + this.thread = try std.Thread.spawn(.{}, FSEventsLoop.CFThreadLoop, .{this}); + + // sync threads + this.sem.wait(); + return this; + } + + fn enqueueTaskConcurrent(this: *FSEventsLoop, task: Task) void { + const CF = CoreFoundation.get(); + var concurrent = bun.default_allocator.create(ConcurrentTask) catch unreachable; + concurrent.auto_delete = true; + this.tasks.push(concurrent.from(task)); + CF.RunLoopSourceSignal(this.signal_source); + CF.RunLoopWakeUp(this.loop); + } + + // Runs in CF thread, when there're events in FSEventStream + fn _events_cb(_: FSEventStreamRef, info: ?*anyopaque, numEvents: usize, eventPaths: ?*anyopaque, eventFlags: *FSEventStreamEventFlags, _: *FSEventStreamEventId) callconv(.C) void { + const paths_ptr = bun.cast([*][*:0]const u8, eventPaths); + const paths = paths_ptr[0..numEvents]; + var loop = bun.cast(*FSEventsLoop, info); + const event_flags = bun.cast([*]FSEventStreamEventFlags, eventFlags); + + for (loop.watchers.slice()) |watcher| { + if (watcher) |handle| { + for (paths, 0..) |path_ptr, i| { + var flags = event_flags[i]; + var path = path_ptr[0..bun.len(path_ptr)]; + // Filter out paths that are outside handle's request + if (path.len < handle.path.len or !bun.strings.startsWith(path, handle.path)) { + continue; + } + const is_file = (flags & kFSEventStreamEventFlagItemIsDir) == 0; + + // Remove common prefix, unless the watched folder is "/" + if (!(handle.path.len == 1 and handle.path[0] == '/')) { + path = path[handle.path.len..]; + + // Ignore events with path equal to directory itself + if (path.len <= 1 and is_file) { + continue; + } + if (path.len == 0) { + // Since we're using fsevents to watch the file itself, path == handle.path, and we now need to get the basename of the file back + while (path.len > 0) { + if (bun.strings.startsWithChar(path, '/')) { + path = path[1..]; + break; + } else { + path = path[1..]; + } + } + + // Created and Removed seem to be always set, but don't make sense + flags &= ~kFSEventsRenamed; + } else { + // Skip forward slash + path = path[1..]; + } + } + + // Do not emit events from subdirectories (without option set) + if (path.len == 0 or (bun.strings.containsChar(path, '/') and !handle.recursive)) { + continue; + } + + var is_rename = true; + + if ((flags & kFSEventsRenamed) == 0) { + if ((flags & kFSEventsModified) != 0 or is_file) { + is_rename = false; + } + } + + handle.callback(handle.ctx, path, is_file, is_rename); + } + } + } + } + + // Runs on CF Thread + pub fn _schedule(this: *FSEventsLoop) void { + this.mutex.lock(); + defer this.mutex.unlock(); + this.has_scheduled_watchers = false; + + var watchers = this.watchers.slice(); + + const CF = CoreFoundation.get(); + const CS = CoreServices.get(); + + if (this.fsevent_stream) |stream| { + // Stop emitting events + CS.FSEventStreamStop(stream); + + // Release stream + CS.FSEventStreamInvalidate(stream); + CS.FSEventStreamRelease(stream); + this.fsevent_stream = null; + } + // clean old paths + if (this.paths) |p| { + this.paths = null; + bun.default_allocator.destroy(p); + } + if (this.cf_paths) |cf| { + this.cf_paths = null; + CF.Release(cf); + } + + const paths = bun.default_allocator.alloc(?*anyopaque, this.watcher_count) catch unreachable; + var count: u32 = 0; + for (watchers) |w| { + if (w) |watcher| { + const path = CF.StringCreateWithFileSystemRepresentation(null, watcher.path.ptr); + paths[count] = path; + count += 1; + } + } + + const cf_paths = CF.ArrayCreate(null, paths.ptr, count, null); + var ctx: FSEventStreamContext = .{ + .info = this, + }; + + const latency: CFAbsoluteTime = 0.05; + // Explanation of selected flags: + // 1. NoDefer - without this flag, events that are happening continuously + // (i.e. each event is happening after time interval less than `latency`, + // counted from previous event), will be deferred and passed to callback + // once they'll either fill whole OS buffer, or when this continuous stream + // will stop (i.e. there'll be delay between events, bigger than + // `latency`). + // Specifying this flag will invoke callback after `latency` time passed + // since event. + // 2. FileEvents - fire callback for file changes too (by default it is firing + // it only for directory changes). + // + const flags: FSEventStreamCreateFlags = kFSEventStreamCreateFlagNoDefer | kFSEventStreamCreateFlagFileEvents; + + // + // NOTE: It might sound like a good idea to remember last seen StreamEventId, + // but in reality one dir might have last StreamEventId less than, the other, + // that is being watched now. Which will cause FSEventStream API to report + // changes to files from the past. + // + const ref = CS.FSEventStreamCreate(null, _events_cb, &ctx, cf_paths, CS.kFSEventStreamEventIdSinceNow, latency, flags); + + CS.FSEventStreamScheduleWithRunLoop(ref, this.loop, CF.RunLoopDefaultMode.*); + if (CS.FSEventStreamStart(ref) == 0) { + //clean in case of failure + bun.default_allocator.destroy(paths); + CF.Release(cf_paths); + CS.FSEventStreamInvalidate(ref); + CS.FSEventStreamRelease(ref); + return; + } + this.fsevent_stream = ref; + this.paths = paths; + this.cf_paths = cf_paths; + } + + fn registerWatcher(this: *FSEventsLoop, watcher: *FSEventsWatcher) void { + this.mutex.lock(); + defer this.mutex.unlock(); + if (this.watcher_count == this.watchers.len) { + this.watcher_count += 1; + this.watchers.push(bun.default_allocator, watcher) catch unreachable; + } else { + var watchers = this.watchers.slice(); + for (watchers, 0..) |w, i| { + if (w == null) { + watchers[i] = watcher; + this.watcher_count += 1; + break; + } + } + } + + if (this.has_scheduled_watchers == false) { + this.has_scheduled_watchers = true; + this.enqueueTaskConcurrent(Task.New(FSEventsLoop, _schedule).init(this)); + } + } + + fn unregisterWatcher(this: *FSEventsLoop, watcher: *FSEventsWatcher) void { + this.mutex.lock(); + defer this.mutex.unlock(); + var watchers = this.watchers.slice(); + for (watchers, 0..) |w, i| { + if (w) |item| { + if (item == watcher) { + watchers[i] = null; + // if is the last one just pop + if (i == watchers.len - 1) { + this.watchers.len -= 1; + } + this.watcher_count -= 1; + break; + } + } + } + } + + // Runs on CF loop to close the loop + fn _stop(this: *FSEventsLoop) void { + const CF = CoreFoundation.get(); + CF.RunLoopStop(this.loop); + } + fn deinit(this: *FSEventsLoop) void { + // signal close and wait + this.enqueueTaskConcurrent(Task.New(FSEventsLoop, FSEventsLoop._stop).init(this)); + this.thread.join(); + const CF = CoreFoundation.get(); + + CF.Release(this.signal_source); + this.signal_source = null; + + this.sem.deinit(); + this.mutex.deinit(); + if (this.watcher_count > 0) { + while (this.watchers.popOrNull()) |watcher| { + if (watcher) |w| { + // unlink watcher + w.loop = null; + } + } + } + + this.watchers.deinitWithAllocator(bun.default_allocator); + + bun.default_allocator.destroy(this); + } +}; + +pub const FSEventsWatcher = struct { + path: string, + callback: Callback, + loop: ?*FSEventsLoop, + recursive: bool, + ctx: ?*anyopaque, + + const Callback = *const fn (ctx: ?*anyopaque, path: string, is_file: bool, is_rename: bool) void; + + pub fn init(loop: *FSEventsLoop, path: string, recursive: bool, callback: Callback, ctx: ?*anyopaque) *FSEventsWatcher { + var this = bun.default_allocator.create(FSEventsWatcher) catch unreachable; + this.* = FSEventsWatcher{ + .path = path, + .callback = callback, + .loop = loop, + .recursive = recursive, + .ctx = ctx, + }; + + loop.registerWatcher(this); + return this; + } + + pub fn deinit(this: *FSEventsWatcher) void { + if (this.loop) |loop| { + loop.unregisterWatcher(this); + } + bun.default_allocator.destroy(this); + } +}; + +pub fn watch(path: string, recursive: bool, callback: FSEventsWatcher.Callback, ctx: ?*anyopaque) !*FSEventsWatcher { + if (fsevents_default_loop) |loop| { + return FSEventsWatcher.init(loop, path, recursive, callback, ctx); + } else { + fsevents_default_loop_mutex.lock(); + defer fsevents_default_loop_mutex.unlock(); + if (fsevents_default_loop == null) { + fsevents_default_loop = try FSEventsLoop.init(); + } + return FSEventsWatcher.init(fsevents_default_loop.?, path, recursive, callback, ctx); + } +} diff --git a/src/bun.js/node/node.classes.ts b/src/bun.js/node/node.classes.ts index f984077e4..ce35c940a 100644 --- a/src/bun.js/node/node.classes.ts +++ b/src/bun.js/node/node.classes.ts @@ -1,6 +1,34 @@ import { define } from "../scripts/class-definitions"; export default [ + define({ + name: "FSWatcher", + construct: false, + noConstructor: true, + finalize: true, + configurable: false, + klass: {}, + JSType: "0b11101110", + proto: { + ref: { + fn: "doRef", + length: 0, + }, + unref: { + fn: "doUnref", + length: 0, + }, + hasRef: { + fn: "hasRef", + length: 0, + }, + close: { + fn: "doClose", + length: 0, + }, + }, + values: ["listener"], + }), define({ name: "Timeout", construct: false, @@ -300,7 +328,7 @@ export default [ utimes: { fn: "utimes", length: 4 }, utimesSync: { fn: "utimesSync", length: 3 }, // TODO: - // watch: { fn: "watch", length: 3 }, + watch: { fn: "watch", length: 3 }, // watchFile: { fn: "watchFile", length: 3 }, writeFile: { fn: "writeFile", length: 4 }, writeFileSync: { fn: "writeFileSync", length: 3 }, diff --git a/src/bun.js/node/node_fs.zig b/src/bun.js/node/node_fs.zig index 3ea0822e6..21a65251a 100644 --- a/src/bun.js/node/node_fs.zig +++ b/src/bun.js/node/node_fs.zig @@ -34,7 +34,6 @@ const Mode = JSC.Node.Mode; const uid_t = std.os.uid_t; const gid_t = std.os.gid_t; - /// u63 to allow one null bit const ReadPosition = u63; @@ -2313,7 +2312,7 @@ pub const Arguments = struct { }; pub const UnwatchFile = void; - pub const Watch = void; + pub const Watch = JSC.Node.FSWatcher.Arguments; pub const WatchFile = void; pub const Fsync = struct { fd: FileDescriptor, @@ -2475,7 +2474,7 @@ const Return = struct { pub const Truncate = void; pub const Unlink = void; pub const UnwatchFile = void; - pub const Watch = void; + pub const Watch = JSC.JSValue; pub const WatchFile = void; pub const Utimes = void; @@ -4181,8 +4180,12 @@ pub const NodeFS = struct { return Maybe(Return.Lutimes).todo; } - pub fn watch(_: *NodeFS, _: Arguments.Watch, comptime _: Flavor) Maybe(Return.Watch) { - return Maybe(Return.Watch).todo; + pub fn watch(_: *NodeFS, args: Arguments.Watch, comptime _: Flavor) Maybe(Return.Watch) { + const watcher = args.createFSWatcher() catch |err| { + args.global_this.throwError(err, "Failed to watch filename"); + return Maybe(Return.Watch){ .result = JSC.JSValue.jsUndefined() }; + }; + return Maybe(Return.Watch){ .result = watcher }; } pub fn createReadStream(_: *NodeFS, _: Arguments.CreateReadStream, comptime _: Flavor) Maybe(Return.CreateReadStream) { return Maybe(Return.CreateReadStream).todo; diff --git a/src/bun.js/node/node_fs_binding.zig b/src/bun.js/node/node_fs_binding.zig index 74b769bf6..f178f0355 100644 --- a/src/bun.js/node/node_fs_binding.zig +++ b/src/bun.js/node/node_fs_binding.zig @@ -241,6 +241,8 @@ pub const NodeJSFS = struct { return JSC.Node.Stats.getConstructor(globalThis); } + pub const watch = callSync(.watch); + // Not implemented yet: const notimpl = fdatasync; pub const opendir = notimpl; diff --git a/src/bun.js/node/node_fs_watcher.zig b/src/bun.js/node/node_fs_watcher.zig new file mode 100644 index 000000000..397d51916 --- /dev/null +++ b/src/bun.js/node/node_fs_watcher.zig @@ -0,0 +1,913 @@ +const std = @import("std"); +const JSC = @import("root").bun.JSC; +const bun = @import("root").bun; +const Fs = @import("../../fs.zig"); +const Path = @import("../../resolver/resolve_path.zig"); +const Encoder = JSC.WebCore.Encoder; + +const FSEvents = @import("./fs_events.zig"); + +const VirtualMachine = JSC.VirtualMachine; +const EventLoop = JSC.EventLoop; +const PathLike = JSC.Node.PathLike; +const ArgumentsSlice = JSC.Node.ArgumentsSlice; +const Output = bun.Output; +const string = bun.string; +const StoredFileDescriptorType = bun.StoredFileDescriptorType; +const Environment = bun.Environment; + +pub const FSWatcher = struct { + const watcher = @import("../../watcher.zig"); + const options = @import("../../options.zig"); + pub const Watcher = watcher.NewWatcher(*FSWatcher); + const log = Output.scoped(.FSWatcher, false); + + pub const ChangeEvent = struct { + hash: Watcher.HashType = 0, + event_type: FSWatchTask.EventType = .change, + time_stamp: i64 = 0, + }; + + onAccept: std.ArrayHashMapUnmanaged(FSWatcher.Watcher.HashType, bun.BabyList(OnAcceptCallback), bun.ArrayIdentityContext, false) = .{}, + ctx: *VirtualMachine, + js_watcher: ?*JSObject = null, + watcher_instance: ?*FSWatcher.Watcher = null, + verbose: bool = false, + file_paths: bun.BabyList(string) = .{}, + entry_path: ?string = null, + entry_dir: string = "", + last_change_event: ChangeEvent = .{}, + + pub fn toJS(this: *FSWatcher) JSC.JSValue { + return if (this.js_watcher) |js| js.js_this else JSC.JSValue.jsUndefined(); + } + + pub fn eventLoop(this: FSWatcher) *EventLoop { + return this.ctx.eventLoop(); + } + + pub fn enqueueTaskConcurrent(this: FSWatcher, task: *JSC.ConcurrentTask) void { + this.eventLoop().enqueueTaskConcurrent(task); + } + + pub fn deinit(this: *FSWatcher) void { + while (this.file_paths.popOrNull()) |file_path| { + bun.default_allocator.destroy(file_path); + } + this.file_paths.deinitWithAllocator(bun.default_allocator); + if (this.entry_path) |path| { + this.entry_path = null; + bun.default_allocator.destroy(path); + } + bun.default_allocator.destroy(this); + } + + pub const FSWatchTask = struct { + ctx: *FSWatcher, + count: u8 = 0, + + entries: [8]Entry = undefined, + concurrent_task: JSC.ConcurrentTask = undefined, + + pub const EventType = enum { + rename, + change, + @"error", + abort, + }; + + pub const EventFreeType = enum { + destroy, + free, + none, + }; + + pub const Entry = struct { + file_path: string, + event_type: EventType, + free_type: EventFreeType, + }; + + pub fn append(this: *FSWatchTask, file_path: string, event_type: EventType, free_type: EventFreeType) void { + if (this.count == 8) { + this.enqueue(); + var ctx = this.ctx; + this.* = .{ + .ctx = ctx, + .count = 0, + }; + } + + this.entries[this.count] = .{ + .file_path = file_path, + .event_type = event_type, + .free_type = free_type, + }; + this.count += 1; + } + + pub fn run(this: *FSWatchTask) void { + // this runs on JS Context + if (this.ctx.js_watcher) |js_watcher| { + for (this.entries[0..this.count]) |entry| { + switch (entry.event_type) { + .rename => { + js_watcher.emit(entry.file_path, "rename"); + }, + .change => { + js_watcher.emit(entry.file_path, "change"); + }, + .@"error" => { + // file_path is the error message in this case + js_watcher.emitError(entry.file_path); + }, + .abort => { + js_watcher.emitIfAborted(); + }, + } + } + } + } + + pub fn enqueue(this: *FSWatchTask) void { + if (this.count == 0) + return; + + var that = bun.default_allocator.create(FSWatchTask) catch unreachable; + + that.* = this.*; + this.count = 0; + that.concurrent_task.task = JSC.Task.init(that); + this.ctx.enqueueTaskConcurrent(&that.concurrent_task); + } + + pub fn deinit(this: *FSWatchTask) void { + while (this.count > 0) { + this.count -= 1; + switch (this.entries[this.count].free_type) { + .destroy => bun.default_allocator.destroy(this.entries[this.count].file_path), + .free => bun.default_allocator.free(this.entries[this.count].file_path), + else => {}, + } + } + bun.default_allocator.destroy(this); + } + }; + + fn NewCallback(comptime FunctionSignature: type) type { + return union(enum) { + javascript_callback: JSC.Strong, + zig_callback: struct { + ptr: *anyopaque, + function: *const FunctionSignature, + }, + }; + } + + pub const OnAcceptCallback = NewCallback(fn ( + vm: *JSC.VirtualMachine, + specifier: []const u8, + ) void); + + fn addDirectory(ctx: *FSWatcher, fs_watcher: *FSWatcher.Watcher, fd: StoredFileDescriptorType, file_path: string, recursive: bool, buf: *[bun.MAX_PATH_BYTES + 1]u8, is_entry_path: bool) !void { + var dir_path_clone = bun.default_allocator.dupeZ(u8, file_path) catch unreachable; + + if (is_entry_path) { + ctx.entry_path = dir_path_clone; + ctx.entry_dir = dir_path_clone; + } else { + ctx.file_paths.push(bun.default_allocator, dir_path_clone) catch unreachable; + } + fs_watcher.addDirectory(fd, dir_path_clone, FSWatcher.Watcher.getHash(file_path), false) catch |err| { + ctx.deinit(); + fs_watcher.deinit(true); + return err; + }; + + var iter = (std.fs.IterableDir{ .dir = std.fs.Dir{ + .fd = fd, + } }).iterate(); + + while (iter.next() catch |err| { + ctx.deinit(); + fs_watcher.deinit(true); + return err; + }) |entry| { + var parts = [2]string{ dir_path_clone, entry.name }; + var entry_path = Path.joinAbsStringBuf( + Fs.FileSystem.instance.topLevelDirWithoutTrailingSlash(), + buf, + &parts, + .auto, + ); + + buf[entry_path.len] = 0; + var entry_path_z = buf[0..entry_path.len :0]; + + var fs_info = fdFromAbsolutePathZ(entry_path_z) catch |err| { + ctx.deinit(); + fs_watcher.deinit(true); + return err; + }; + + if (fs_info.is_file) { + const file_path_clone = bun.default_allocator.dupeZ(u8, entry_path) catch unreachable; + + ctx.file_paths.push(bun.default_allocator, file_path_clone) catch unreachable; + + fs_watcher.addFile(fs_info.fd, file_path_clone, FSWatcher.Watcher.getHash(entry_path), options.Loader.file, 0, null, false) catch |err| { + ctx.deinit(); + fs_watcher.deinit(true); + return err; + }; + } else { + if (recursive) { + addDirectory(ctx, fs_watcher, fs_info.fd, entry_path, recursive, buf, false) catch |err| { + ctx.deinit(); + fs_watcher.deinit(true); + return err; + }; + } + } + } + } + + pub fn onError( + this: *FSWatcher, + err: anyerror, + ) void { + var current_task: FSWatchTask = .{ + .ctx = this, + }; + current_task.append(@errorName(err), .@"error", .none); + current_task.enqueue(); + } + + pub fn onFSEventUpdate( + ctx: ?*anyopaque, + path: string, + _: bool, + is_rename: bool, + ) void { + const this = bun.cast(*FSWatcher, ctx.?); + + var current_task: FSWatchTask = .{ + .ctx = this, + }; + defer current_task.enqueue(); + + const relative_path = bun.default_allocator.dupe(u8, path) catch unreachable; + const event_type: FSWatchTask.EventType = if (is_rename) .rename else .change; + + current_task.append(relative_path, event_type, .destroy); + } + + pub fn onFileUpdate( + this: *FSWatcher, + events: []watcher.WatchEvent, + changed_files: []?[:0]u8, + watchlist: watcher.Watchlist, + ) void { + var slice = watchlist.slice(); + const file_paths = slice.items(.file_path); + + var counts = slice.items(.count); + const kinds = slice.items(.kind); + var _on_file_update_path_buf: [bun.MAX_PATH_BYTES]u8 = undefined; + + var ctx = this.watcher_instance.?; + defer ctx.flushEvictions(); + defer Output.flush(); + + var bundler = if (@TypeOf(this.ctx.bundler) == *bun.Bundler) + this.ctx.bundler + else + &this.ctx.bundler; + + var fs: *Fs.FileSystem = bundler.fs; + + var current_task: FSWatchTask = .{ + .ctx = this, + }; + defer current_task.enqueue(); + + const time_stamp = std.time.milliTimestamp(); + const time_diff = time_stamp - this.last_change_event.time_stamp; + + for (events) |event| { + const file_path = file_paths[event.index]; + const update_count = counts[event.index] + 1; + counts[event.index] = update_count; + const kind = kinds[event.index]; + + if (comptime Environment.isDebug) { + if (this.verbose) { + Output.prettyErrorln("[watch] {s} ({s}, {})", .{ file_path, @tagName(kind), event.op }); + } + } + + switch (kind) { + .file => { + if (event.op.delete) { + ctx.removeAtIndex( + event.index, + 0, + &.{}, + .file, + ); + } + + var file_hash: FSWatcher.Watcher.HashType = FSWatcher.Watcher.getHash(file_path); + + if (event.op.write or event.op.delete or event.op.rename) { + const event_type: FSWatchTask.EventType = if (event.op.delete or event.op.rename or event.op.move_to) .rename else .change; + // skip consecutive duplicates + if ((this.last_change_event.time_stamp == 0 or time_diff > 1) or this.last_change_event.event_type != event_type and this.last_change_event.hash != file_hash) { + this.last_change_event.time_stamp = time_stamp; + this.last_change_event.event_type = event_type; + this.last_change_event.hash = file_hash; + + const relative_slice = fs.relative(this.entry_dir, file_path); + + if (this.verbose) + Output.prettyErrorln("File changed: {s}", .{relative_slice}); + + const relative_path = bun.default_allocator.dupe(u8, relative_slice) catch unreachable; + + current_task.append(relative_path, event_type, .destroy); + } + } + }, + .directory => { + // macOS should use FSEvents for directories + if (comptime Environment.isMac) { + @panic("Unexpected directory watch"); + } + + const affected = event.names(changed_files); + + for (affected) |changed_name_| { + const changed_name: []const u8 = bun.asByteSlice(changed_name_.?); + if (changed_name.len == 0 or changed_name[0] == '~' or changed_name[0] == '.') continue; + + var file_hash: FSWatcher.Watcher.HashType = 0; + const relative_slice: string = brk: { + var file_path_without_trailing_slash = std.mem.trimRight(u8, file_path, std.fs.path.sep_str); + + @memcpy(_on_file_update_path_buf[0..file_path_without_trailing_slash.len], file_path_without_trailing_slash); + + _on_file_update_path_buf[file_path_without_trailing_slash.len] = std.fs.path.sep; + + @memcpy(_on_file_update_path_buf[file_path_without_trailing_slash.len + 1 ..][0..changed_name.len], changed_name); + const path_slice = _on_file_update_path_buf[0 .. file_path_without_trailing_slash.len + changed_name.len + 1]; + file_hash = FSWatcher.Watcher.getHash(path_slice); + + const relative = fs.relative(this.entry_dir, path_slice); + + break :brk relative; + }; + + // skip consecutive duplicates + const event_type: FSWatchTask.EventType = .rename; // renaming folders, creating folder or files will be always be rename + if ((this.last_change_event.time_stamp == 0 or time_diff > 1) or this.last_change_event.event_type != event_type and this.last_change_event.hash != file_hash) { + const relative_path = bun.default_allocator.dupe(u8, relative_slice) catch unreachable; + + this.last_change_event.time_stamp = time_stamp; + this.last_change_event.event_type = event_type; + this.last_change_event.hash = file_hash; + + current_task.append(relative_path, event_type, .destroy); + + if (this.verbose) + Output.prettyErrorln(" Dir change: {s}", .{relative_path}); + } + } + + if (this.verbose and affected.len == 0) { + Output.prettyErrorln(" Dir change: {s}", .{fs.relative(this.entry_dir, file_path)}); + } + }, + } + } + } + + pub const Arguments = struct { + path: PathLike, + listener: JSC.JSValue, + global_this: JSC.C.JSContextRef, + signal: ?*JSC.AbortSignal, + persistent: bool, + recursive: bool, + encoding: JSC.Node.Encoding, + verbose: bool, + pub fn fromJS(ctx: JSC.C.JSContextRef, arguments: *ArgumentsSlice, exception: JSC.C.ExceptionRef) ?Arguments { + const vm = ctx.vm(); + const path = PathLike.fromJS(ctx, arguments, exception) orelse { + if (exception.* == null) { + JSC.throwInvalidArguments( + "filename must be a string or TypedArray", + .{}, + ctx, + exception, + ); + } + return null; + }; + + if (exception.* != null) return null; + var listener: JSC.JSValue = .zero; + var signal: ?*JSC.AbortSignal = null; + var persistent: bool = true; + var recursive: bool = false; + var encoding: JSC.Node.Encoding = .utf8; + var verbose = false; + if (arguments.nextEat()) |options_or_callable| { + + // options + if (options_or_callable.isObject()) { + if (options_or_callable.get(ctx, "persistent")) |persistent_| { + if (!persistent_.isBoolean()) { + JSC.throwInvalidArguments( + "persistent must be a boolean.", + .{}, + ctx, + exception, + ); + return null; + } + persistent = persistent_.toBoolean(); + } + + if (options_or_callable.get(ctx, "verbose")) |verbose_| { + if (!verbose_.isBoolean()) { + JSC.throwInvalidArguments( + "verbose must be a boolean.", + .{}, + ctx, + exception, + ); + return null; + } + verbose = verbose_.toBoolean(); + } + + if (options_or_callable.get(ctx, "encoding")) |encoding_| { + if (!encoding_.isString()) { + JSC.throwInvalidArguments( + "encoding must be a string.", + .{}, + ctx, + exception, + ); + return null; + } + if (JSC.Node.Encoding.fromJS(encoding_, ctx.ptr())) |node_encoding| { + encoding = node_encoding; + } else { + JSC.throwInvalidArguments( + "invalid encoding.", + .{}, + ctx, + exception, + ); + return null; + } + } + + if (options_or_callable.get(ctx, "recursive")) |recursive_| { + if (!recursive_.isBoolean()) { + JSC.throwInvalidArguments( + "recursive must be a boolean.", + .{}, + ctx, + exception, + ); + return null; + } + recursive = recursive_.toBoolean(); + } + + // abort signal + if (options_or_callable.get(ctx, "signal")) |signal_| { + if (JSC.AbortSignal.fromJS(signal_)) |signal_obj| { + //Keep it alive + signal_.ensureStillAlive(); + signal = signal_obj; + } else { + JSC.throwInvalidArguments( + "signal is not of type AbortSignal.", + .{}, + ctx, + exception, + ); + + return null; + } + } + + // listener + if (arguments.nextEat()) |callable| { + if (!callable.isCell() or !callable.isCallable(vm)) { + exception.* = JSC.toInvalidArguments("Expected \"listener\" callback to be a function", .{}, ctx).asObjectRef(); + return null; + } + listener = callable; + } + } else { + if (!options_or_callable.isCell() or !options_or_callable.isCallable(vm)) { + exception.* = JSC.toInvalidArguments("Expected \"listener\" callback to be a function", .{}, ctx).asObjectRef(); + return null; + } + listener = options_or_callable; + } + } + if (listener == .zero) { + exception.* = JSC.toInvalidArguments("Expected \"listener\" callback", .{}, ctx).asObjectRef(); + return null; + } + + return Arguments{ + .path = path, + .listener = listener, + .global_this = ctx, + .signal = signal, + .persistent = persistent, + .recursive = recursive, + .encoding = encoding, + .verbose = verbose, + }; + } + + pub fn createFSWatcher(this: Arguments) !JSC.JSValue { + const obj = try FSWatcher.init(this); + return obj.toJS(); + } + }; + + pub const JSObject = struct { + signal: ?*JSC.AbortSignal, + persistent: bool, + manager: ?*FSWatcher.Watcher, + fsevents_watcher: ?*FSEvents.FSEventsWatcher, + poll_ref: JSC.PollRef = .{}, + globalThis: ?*JSC.JSGlobalObject, + js_this: JSC.JSValue, + encoding: JSC.Node.Encoding, + closed: bool, + + pub usingnamespace JSC.Codegen.JSFSWatcher; + + pub fn getFSWatcher(this: *JSObject) *FSWatcher { + if (this.manager) |manager| return manager.ctx; + if (this.fsevents_watcher) |manager| return bun.cast(*FSWatcher, manager.ctx.?); + + @panic("No context attached to JSFSWatcher"); + } + + pub fn init(globalThis: *JSC.JSGlobalObject, manager: ?*FSWatcher.Watcher, fsevents_watcher: ?*FSEvents.FSEventsWatcher, signal: ?*JSC.AbortSignal, listener: JSC.JSValue, persistent: bool, encoding: JSC.Node.Encoding) !*JSObject { + var obj = try globalThis.allocator().create(JSObject); + obj.* = .{ + .signal = null, + .persistent = persistent, + .manager = manager, + .fsevents_watcher = fsevents_watcher, + .globalThis = globalThis, + .js_this = .zero, + .encoding = encoding, + .closed = false, + }; + const instance = obj.getFSWatcher(); + + if (persistent) { + obj.poll_ref.ref(instance.ctx); + } + + var js_this = JSObject.toJS(obj, globalThis); + JSObject.listenerSetCached(js_this, globalThis, listener); + obj.js_this = js_this; + obj.js_this.protect(); + + if (signal) |s| { + + // already aborted? + if (s.aborted()) { + obj.signal = s.ref(); + // abort next tick + var current_task: FSWatchTask = .{ + .ctx = instance, + }; + current_task.append("", .abort, .none); + current_task.enqueue(); + } else { + // watch for abortion + obj.signal = s.ref().listen(JSObject, obj, JSObject.emitAbort); + } + } + return obj; + } + + pub fn emitIfAborted(this: *JSObject) void { + if (this.signal) |s| { + if (s.aborted()) { + const err = s.abortReason(); + this.emitAbort(err); + } + } + } + + pub fn emitAbort(this: *JSObject, err: JSC.JSValue) void { + if (this.closed) return; + defer this.close(true); + + err.ensureStillAlive(); + + if (this.globalThis) |globalThis| { + if (this.js_this != .zero) { + if (JSObject.listenerGetCached(this.js_this)) |listener| { + var args = [_]JSC.JSValue{ + JSC.ZigString.static("error").toValue(globalThis), + if (err.isEmptyOrUndefinedOrNull()) JSC.WebCore.AbortSignal.createAbortError(JSC.ZigString.static("The user aborted a request"), &JSC.ZigString.Empty, globalThis) else err, + }; + _ = listener.callWithGlobalThis( + globalThis, + &args, + ); + } + } + } + } + pub fn emitError(this: *JSObject, err: string) void { + if (this.closed) return; + defer this.close(true); + + if (this.globalThis) |globalThis| { + if (this.js_this != .zero) { + if (JSObject.listenerGetCached(this.js_this)) |listener| { + var args = [_]JSC.JSValue{ + JSC.ZigString.static("error").toValue(globalThis), + JSC.ZigString.fromUTF8(err).toErrorInstance(globalThis), + }; + _ = listener.callWithGlobalThis( + globalThis, + &args, + ); + } + } + } + } + + pub fn emit(this: *JSObject, file_name: string, comptime eventType: string) void { + if (this.globalThis) |globalThis| { + if (this.js_this != .zero) { + if (JSObject.listenerGetCached(this.js_this)) |listener| { + var filename: JSC.JSValue = JSC.JSValue.jsUndefined(); + if (file_name.len > 0) { + if (this.encoding == .buffer) + filename = JSC.ArrayBuffer.createBuffer(globalThis, file_name) + else if (this.encoding == .utf8) { + filename = JSC.ZigString.fromUTF8(file_name).toValueGC(globalThis); + } else { + // convert to desired encoding + filename = Encoder.toStringAtRuntime(file_name.ptr, file_name.len, globalThis, this.encoding); + } + } + var args = [_]JSC.JSValue{ + JSC.ZigString.static(eventType).toValue(globalThis), + filename, + }; + _ = listener.callWithGlobalThis( + globalThis, + &args, + ); + } + } + } + } + + pub fn ref(this: *JSObject) void { + if (this.closed) return; + + if (!this.persistent) { + this.persistent = true; + this.poll_ref.ref(this.getFSWatcher().ctx); + } + } + + pub fn doRef(this: *JSObject, _: *JSC.JSGlobalObject, _: *JSC.CallFrame) callconv(.C) JSC.JSValue { + this.ref(); + return JSC.JSValue.jsUndefined(); + } + + pub fn unref(this: *JSObject) void { + if (this.persistent) { + this.persistent = false; + this.poll_ref.unref(this.getFSWatcher().ctx); + } + } + + pub fn doUnref(this: *JSObject, _: *JSC.JSGlobalObject, _: *JSC.CallFrame) callconv(.C) JSC.JSValue { + this.unref(); + return JSC.JSValue.jsUndefined(); + } + + pub fn hasRef(this: *JSObject, _: *JSC.JSGlobalObject, _: *JSC.CallFrame) callconv(.C) JSC.JSValue { + return JSC.JSValue.jsBoolean(this.persistent); + } + + pub fn close( + this: *JSObject, + emitEvent: bool, + ) void { + if (!this.closed) { + if (this.signal) |signal| { + this.signal = null; + signal.detach(this); + } + this.closed = true; + if (emitEvent) { + this.emit("", "close"); + } + + this.detach(); + } + } + + pub fn detach(this: *JSObject) void { + this.unref(); + + if (this.js_this != .zero) { + this.js_this.unprotect(); + this.js_this = .zero; + } + + this.globalThis = null; + + if (this.signal) |signal| { + this.signal = null; + signal.detach(this); + } + if (this.manager) |manager| { + var ctx = manager.ctx; + this.manager = null; + ctx.js_watcher = null; + ctx.deinit(); + manager.deinit(true); + } + + if (this.fsevents_watcher) |manager| { + var ctx = bun.cast(*FSWatcher, manager.ctx.?); + ctx.js_watcher = null; + ctx.deinit(); + manager.deinit(); + } + } + + pub fn doClose(this: *JSObject, _: *JSC.JSGlobalObject, _: *JSC.CallFrame) callconv(.C) JSC.JSValue { + this.close(true); + return JSC.JSValue.jsUndefined(); + } + + pub fn finalize(this: *JSObject) callconv(.C) void { + if (!this.closed) { + this.detach(); + } + + bun.default_allocator.destroy(this); + } + }; + + const PathResult = struct { + fd: StoredFileDescriptorType = 0, + is_file: bool = true, + }; + + fn fdFromAbsolutePathZ( + absolute_path_z: [:0]const u8, + ) !PathResult { + var stat = try bun.C.lstat_absolute(absolute_path_z); + var result = PathResult{}; + + switch (stat.kind) { + .sym_link => { + var file = try std.fs.openFileAbsoluteZ(absolute_path_z, .{ .mode = .read_only }); + result.fd = file.handle; + const _stat = try file.stat(); + + result.is_file = _stat.kind == .directory; + }, + .directory => { + const dir = (try std.fs.openIterableDirAbsoluteZ(absolute_path_z, .{ + .access_sub_paths = true, + })).dir; + result.fd = dir.fd; + result.is_file = false; + }, + else => { + const file = try std.fs.openFileAbsoluteZ(absolute_path_z, .{ .mode = .read_only }); + result.fd = file.handle; + result.is_file = true; + }, + } + return result; + } + + pub fn init(args: Arguments) !*FSWatcher { + var buf: [bun.MAX_PATH_BYTES + 1]u8 = undefined; + var slice = args.path.slice(); + if (bun.strings.startsWith(slice, "file://")) { + slice = slice[6..]; + } + var parts = [_]string{ + slice, + }; + + var file_path = Path.joinAbsStringBuf( + Fs.FileSystem.instance.top_level_dir, + &buf, + &parts, + .auto, + ); + + buf[file_path.len] = 0; + var file_path_z = buf[0..file_path.len :0]; + + var fs_type = try fdFromAbsolutePathZ(file_path_z); + + var ctx = try bun.default_allocator.create(FSWatcher); + const vm = args.global_this.bunVM(); + ctx.* = .{ + .ctx = vm, + .verbose = args.verbose, + .file_paths = bun.BabyList(string).initCapacity(bun.default_allocator, 1) catch |err| { + ctx.deinit(); + return err; + }, + }; + + if (comptime Environment.isMac) { + if (!fs_type.is_file) { + var dir_path_clone = bun.default_allocator.dupeZ(u8, file_path) catch unreachable; + ctx.entry_path = dir_path_clone; + ctx.entry_dir = dir_path_clone; + + var fsevents_watcher = FSEvents.watch(dir_path_clone, args.recursive, onFSEventUpdate, bun.cast(*anyopaque, ctx)) catch |err| { + ctx.deinit(); + return err; + }; + + ctx.js_watcher = JSObject.init(args.global_this, null, fsevents_watcher, args.signal, args.listener, args.persistent, args.encoding) catch |err| { + ctx.deinit(); + fsevents_watcher.deinit(); + return err; + }; + + return ctx; + } + } + + var fs_watcher = FSWatcher.Watcher.init( + ctx, + vm.bundler.fs, + bun.default_allocator, + ) catch |err| { + ctx.deinit(); + return err; + }; + + ctx.watcher_instance = fs_watcher; + + if (fs_type.is_file) { + var file_path_clone = bun.default_allocator.dupeZ(u8, file_path) catch unreachable; + + ctx.entry_path = file_path_clone; + ctx.entry_dir = std.fs.path.dirname(file_path_clone) orelse file_path_clone; + + fs_watcher.addFile(fs_type.fd, file_path_clone, FSWatcher.Watcher.getHash(file_path), options.Loader.file, 0, null, false) catch |err| { + ctx.deinit(); + fs_watcher.deinit(true); + return err; + }; + } else { + addDirectory(ctx, fs_watcher, fs_type.fd, file_path, args.recursive, &buf, true) catch |err| { + ctx.deinit(); + fs_watcher.deinit(true); + return err; + }; + } + + fs_watcher.start() catch |err| { + ctx.deinit(); + + fs_watcher.deinit(true); + return err; + }; + + ctx.js_watcher = JSObject.init(args.global_this, fs_watcher, null, args.signal, args.listener, args.persistent, args.encoding) catch |err| { + ctx.deinit(); + fs_watcher.deinit(true); + return err; + }; + + return ctx; + } +}; diff --git a/src/bun.js/node/types.zig b/src/bun.js/node/types.zig index e2de35706..659ac31bb 100644 --- a/src/bun.js/node/types.zig +++ b/src/bun.js/node/types.zig @@ -93,6 +93,10 @@ pub fn Maybe(comptime ResultType: type) type { return JSC.JSValue.jsUndefined(); } + if (comptime ReturnType == JSC.JSValue) { + return r; + } + if (comptime ReturnType == JSC.ArrayBuffer) { return r.toJS(globalThis, null); } diff --git a/src/bun.js/webcore/encoding.zig b/src/bun.js/webcore/encoding.zig index 5c8221128..061a25eed 100644 --- a/src/bun.js/webcore/encoding.zig +++ b/src/bun.js/webcore/encoding.zig @@ -802,7 +802,20 @@ pub const Encoder = struct { // pub fn writeUTF16AsUTF8(utf16: [*]const u16, len: usize, to: [*]u8, to_len: usize) callconv(.C) i32 { // return @intCast(i32, strings.copyUTF16IntoUTF8(to[0..to_len], []const u16, utf16[0..len], true).written); // } - + pub fn toStringAtRuntime(input: [*]const u8, len: usize, globalObject: *JSGlobalObject, encoding: JSC.Node.Encoding) JSValue { + return switch (encoding) { + .ucs2 => toString(input, len, globalObject, .utf16le), + .utf16le => toString(input, len, globalObject, .utf16le), + .utf8 => toString(input, len, globalObject, .utf8), + .ascii => toString(input, len, globalObject, .ascii), + .hex => toString(input, len, globalObject, .hex), + .base64 => toString(input, len, globalObject, .base64), + .base64url => toString(input, len, globalObject, .base64url), + .latin1 => toString(input, len, globalObject, .latin1), + // treat everything else as utf8 + else => toString(input, len, globalObject, .utf8), + }; + } pub fn toString(input_ptr: [*]const u8, len: usize, global: *JSGlobalObject, comptime encoding: JSC.Node.Encoding) JSValue { if (len == 0) return ZigString.Empty.toValue(global); diff --git a/src/fs.zig b/src/fs.zig index e87d931df..98174fac3 100644 --- a/src/fs.zig +++ b/src/fs.zig @@ -1109,6 +1109,60 @@ pub const FileSystem = struct { return File{ .path = Path.init(path), .contents = file_contents }; } + pub fn kindFromAbsolute( + fs: *RealFS, + absolute_path: [:0]const u8, + existing_fd: StoredFileDescriptorType, + store_fd: bool, + ) !Entry.Cache { + var outpath: [bun.MAX_PATH_BYTES]u8 = undefined; + + var stat = try C.lstat_absolute(absolute_path); + const is_symlink = stat.kind == std.fs.File.Kind.SymLink; + var _kind = stat.kind; + var cache = Entry.Cache{ + .kind = Entry.Kind.file, + .symlink = PathString.empty, + }; + var symlink: []const u8 = ""; + + if (is_symlink) { + var file = try if (existing_fd != 0) + std.fs.File{ .handle = existing_fd } + else if (store_fd) + std.fs.openFileAbsoluteZ(absolute_path, .{ .mode = .read_only }) + else + bun.openFileForPath(absolute_path); + setMaxFd(file.handle); + + defer { + if ((!store_fd or fs.needToCloseFiles()) and existing_fd == 0) { + file.close(); + } else if (comptime FeatureFlags.store_file_descriptors) { + cache.fd = file.handle; + } + } + const _stat = try file.stat(); + + symlink = try bun.getFdPath(file.handle, &outpath); + + _kind = _stat.kind; + } + + std.debug.assert(_kind != .SymLink); + + if (_kind == .Directory) { + cache.kind = .dir; + } else { + cache.kind = .file; + } + if (symlink.len > 0) { + cache.symlink = PathString.init(try FilenameStore.instance.append([]const u8, symlink)); + } + + return cache; + } + pub fn kind( fs: *RealFS, _dir: string, diff --git a/src/http.zig b/src/http.zig index 827bfa6de..80718db2f 100644 --- a/src/http.zig +++ b/src/http.zig @@ -3238,7 +3238,12 @@ pub const Server = struct { threadlocal var filechange_buf: [32]u8 = undefined; threadlocal var filechange_buf_hinted: [32]u8 = undefined; - + pub fn onError( + _: *@This(), + err: anyerror, + ) void { + Output.prettyErrorln("Watcher crashed: {s}", .{@errorName(err)}); + } pub fn onFileUpdate( ctx: *Server, events: []watcher.WatchEvent, diff --git a/src/js/node/fs.js b/src/js/node/fs.js index f117020dd..6b0e3954e 100644 --- a/src/js/node/fs.js +++ b/src/js/node/fs.js @@ -1,3 +1,5 @@ +import { EventEmitter } from "stream"; + // Hardcoded module "node:fs" var { direct, isPromise, isCallable } = import.meta.primordials; var promises = import.meta.require("node:fs/promises"); @@ -7,6 +9,63 @@ var NativeReadable = _getNativeReadableStreamPrototype(2, Readable); // 2 means var fs = Bun.fs(); var debug = process.env.DEBUG ? console.log : () => {}; + +class FSWatcher extends EventEmitter { + #watcher; + #listener; + constructor(path, options, listener) { + super(); + + if (typeof options === "function") { + listener = options; + options = {}; + } else if (typeof options === "string") { + options = { encoding: options }; + } + + if (typeof listener !== "function") { + listener = () => {}; + } + + this.#listener = listener; + try { + this.#watcher = fs.watch(path, options || {}, this.#onEvent.bind(this)); + } catch (e) { + if (!e.message?.startsWith("FileNotFound")) { + throw e; + } + const notFound = new Error(`ENOENT: no such file or directory, watch '${path}'`); + notFound.code = "ENOENT"; + notFound.errno = -2; + notFound.path = path; + notFound.syscall = "watch"; + notFound.filename = path; + throw notFound; + } + } + + #onEvent(eventType, filenameOrError) { + if (eventType === "error" || eventType === "close") { + this.emit(eventType, filenameOrError); + } else { + this.emit("change", eventType, filenameOrError); + this.#listener(eventType, filenameOrError); + } + } + + close() { + this.#watcher?.close(); + this.#watcher = null; + } + + ref() { + this.#watcher?.ref(); + } + + unref() { + this.#watcher?.unref(); + } +} export var access = function access(...args) { callbackify(fs.accessSync, args); }, @@ -153,6 +212,9 @@ export var access = function access(...args) { rmdirSync = fs.rmdirSync.bind(fs), Dirent = fs.Dirent, Stats = fs.Stats, + watch = function watch(path, options, listener) { + return new FSWatcher(path, options, listener); + }, promises = import.meta.require("node:fs/promises"); function callbackify(fsFunction, args) { @@ -1002,7 +1064,8 @@ export default { writeSync, WriteStream, ReadStream, - + watch, + FSWatcher, [Symbol.for("::bunternal::")]: { ReadStreamClass, WriteStreamClass, diff --git a/src/js/node/fs.promises.ts b/src/js/node/fs.promises.ts index de802928b..7df446ccb 100644 --- a/src/js/node/fs.promises.ts +++ b/src/js/node/fs.promises.ts @@ -1,4 +1,5 @@ // Hardcoded module "node:fs/promises" + // Note: `constants` is injected into the top of this file declare var constants: typeof import("node:fs/promises").constants; @@ -38,6 +39,55 @@ var promisify = { }, }[notrace]; +export function watch( + filename: string | Buffer | URL, + options: { encoding?: BufferEncoding; persistent?: boolean; recursive?: boolean; signal?: AbortSignal } = {}, +) { + type Event = { + eventType: string; + filename: string | Buffer | undefined; + }; + const events: Array = []; + if (filename instanceof URL) { + throw new TypeError("Watch URLs are not supported yet"); + } else if (Buffer.isBuffer(filename)) { + filename = filename.toString(); + } else if (typeof filename !== "string") { + throw new TypeError("Expected path to be a string or Buffer"); + } + let nextEventResolve: Function | null = null; + if (typeof options === "string") { + options = { encoding: options }; + } + fs.watch(filename, options || {}, (eventType: string, filename: string | Buffer | undefined) => { + events.push({ eventType, filename }); + if (nextEventResolve) { + const resolve = nextEventResolve; + nextEventResolve = null; + resolve(); + } + }); + return { + async *[Symbol.asyncIterator]() { + let closed = false; + while (!closed) { + while (events.length) { + let event = events.shift() as Event; + if (event.eventType === "close") { + closed = true; + break; + } + if (event.eventType === "error") { + closed = true; + throw event.filename; + } + yield event; + } + await new Promise((resolve: Function) => (nextEventResolve = resolve)); + } + }, + }; +} export var access = promisify(fs.accessSync), appendFile = promisify(fs.appendFileSync), close = promisify(fs.closeSync), @@ -112,6 +162,7 @@ export default { lutimes, rm, rmdir, + watch, constants, [Symbol.for("CommonJS")]: 0, }; diff --git a/src/js/out/modules/node/fs.js b/src/js/out/modules/node/fs.js index cc1e14d2b..cc3763cfc 100644 --- a/src/js/out/modules/node/fs.js +++ b/src/js/out/modules/node/fs.js @@ -1,3 +1,4 @@ +var {EventEmitter } = import.meta.require("node:stream"); var callbackify = function(fsFunction, args) { try { const result = fsFunction.apply(fs, args.slice(0, args.length - 1)), callback = args[args.length - 1]; @@ -16,7 +17,47 @@ function createWriteStream(path, options) { return new WriteStream(path, options); } var { direct, isPromise, isCallable } = import.meta.primordials, promises = import.meta.require("node:fs/promises"), { Readable, NativeWritable, _getNativeReadableStreamPrototype, eos: eos_ } = import.meta.require("node:stream"), NativeReadable = _getNativeReadableStreamPrototype(2, Readable), fs = Bun.fs(), debug = process.env.DEBUG ? console.log : () => { -}, access = function access2(...args) { +}; + +class FSWatcher extends EventEmitter { + #watcher; + #listener; + constructor(path, options, listener) { + super(); + if (typeof options === "function") + listener = options, options = {}; + else if (typeof options === "string") + options = { encoding: options }; + if (typeof listener !== "function") + listener = () => { + }; + this.#listener = listener; + try { + this.#watcher = fs.watch(path, options || {}, this.#onEvent.bind(this)); + } catch (e) { + if (!e.message?.startsWith("FileNotFound")) + throw e; + const notFound = new Error(`ENOENT: no such file or directory, watch '${path}'`); + throw notFound.code = "ENOENT", notFound.errno = -2, notFound.path = path, notFound.syscall = "watch", notFound.filename = path, notFound; + } + } + #onEvent(eventType, filenameOrError) { + if (eventType === "error" || eventType === "close") + this.emit(eventType, filenameOrError); + else + this.emit("change", eventType, filenameOrError), this.#listener(eventType, filenameOrError); + } + close() { + this.#watcher?.close(), this.#watcher = null; + } + ref() { + this.#watcher?.ref(); + } + unref() { + this.#watcher?.unref(); + } +} +var access = function access2(...args) { callbackify(fs.accessSync, args); }, appendFile = function appendFile2(...args) { callbackify(fs.appendFileSync, args); @@ -88,7 +129,9 @@ var { direct, isPromise, isCallable } = import.meta.primordials, promises = impo callbackify(fs.utimesSync, args); }, lutimes = function lutimes2(...args) { callbackify(fs.lutimesSync, args); -}, accessSync = fs.accessSync.bind(fs), appendFileSync = fs.appendFileSync.bind(fs), closeSync = fs.closeSync.bind(fs), copyFileSync = fs.copyFileSync.bind(fs), existsSync = fs.existsSync.bind(fs), chownSync = fs.chownSync.bind(fs), chmodSync = fs.chmodSync.bind(fs), fchmodSync = fs.fchmodSync.bind(fs), fchownSync = fs.fchownSync.bind(fs), fstatSync = fs.fstatSync.bind(fs), fsyncSync = fs.fsyncSync.bind(fs), ftruncateSync = fs.ftruncateSync.bind(fs), futimesSync = fs.futimesSync.bind(fs), lchmodSync = fs.lchmodSync.bind(fs), lchownSync = fs.lchownSync.bind(fs), linkSync = fs.linkSync.bind(fs), lstatSync = fs.lstatSync.bind(fs), mkdirSync = fs.mkdirSync.bind(fs), mkdtempSync = fs.mkdtempSync.bind(fs), openSync = fs.openSync.bind(fs), readSync = fs.readSync.bind(fs), writeSync = fs.writeSync.bind(fs), readdirSync = fs.readdirSync.bind(fs), readFileSync = fs.readFileSync.bind(fs), writeFileSync = fs.writeFileSync.bind(fs), readlinkSync = fs.readlinkSync.bind(fs), realpathSync = fs.realpathSync.bind(fs), renameSync = fs.renameSync.bind(fs), statSync = fs.statSync.bind(fs), symlinkSync = fs.symlinkSync.bind(fs), truncateSync = fs.truncateSync.bind(fs), unlinkSync = fs.unlinkSync.bind(fs), utimesSync = fs.utimesSync.bind(fs), lutimesSync = fs.lutimesSync.bind(fs), rmSync = fs.rmSync.bind(fs), rmdirSync = fs.rmdirSync.bind(fs), Dirent = fs.Dirent, Stats = fs.Stats, promises = import.meta.require("node:fs/promises"), readStreamPathFastPathSymbol = Symbol.for("Bun.Node.readStreamPathFastPath"), readStreamSymbol = Symbol.for("Bun.NodeReadStream"), readStreamPathOrFdSymbol = Symbol.for("Bun.NodeReadStreamPathOrFd"), writeStreamSymbol = Symbol.for("Bun.NodeWriteStream"), writeStreamPathFastPathSymbol = Symbol.for("Bun.NodeWriteStreamFastPath"), writeStreamPathFastPathCallSymbol = Symbol.for("Bun.NodeWriteStreamFastPathCall"), kIoDone = Symbol.for("kIoDone"), defaultReadStreamOptions = { +}, accessSync = fs.accessSync.bind(fs), appendFileSync = fs.appendFileSync.bind(fs), closeSync = fs.closeSync.bind(fs), copyFileSync = fs.copyFileSync.bind(fs), existsSync = fs.existsSync.bind(fs), chownSync = fs.chownSync.bind(fs), chmodSync = fs.chmodSync.bind(fs), fchmodSync = fs.fchmodSync.bind(fs), fchownSync = fs.fchownSync.bind(fs), fstatSync = fs.fstatSync.bind(fs), fsyncSync = fs.fsyncSync.bind(fs), ftruncateSync = fs.ftruncateSync.bind(fs), futimesSync = fs.futimesSync.bind(fs), lchmodSync = fs.lchmodSync.bind(fs), lchownSync = fs.lchownSync.bind(fs), linkSync = fs.linkSync.bind(fs), lstatSync = fs.lstatSync.bind(fs), mkdirSync = fs.mkdirSync.bind(fs), mkdtempSync = fs.mkdtempSync.bind(fs), openSync = fs.openSync.bind(fs), readSync = fs.readSync.bind(fs), writeSync = fs.writeSync.bind(fs), readdirSync = fs.readdirSync.bind(fs), readFileSync = fs.readFileSync.bind(fs), writeFileSync = fs.writeFileSync.bind(fs), readlinkSync = fs.readlinkSync.bind(fs), realpathSync = fs.realpathSync.bind(fs), renameSync = fs.renameSync.bind(fs), statSync = fs.statSync.bind(fs), symlinkSync = fs.symlinkSync.bind(fs), truncateSync = fs.truncateSync.bind(fs), unlinkSync = fs.unlinkSync.bind(fs), utimesSync = fs.utimesSync.bind(fs), lutimesSync = fs.lutimesSync.bind(fs), rmSync = fs.rmSync.bind(fs), rmdirSync = fs.rmdirSync.bind(fs), Dirent = fs.Dirent, Stats = fs.Stats, watch = function watch2(path, options, listener) { + return new FSWatcher(path, options, listener); +}, promises = import.meta.require("node:fs/promises"), readStreamPathFastPathSymbol = Symbol.for("Bun.Node.readStreamPathFastPath"), readStreamSymbol = Symbol.for("Bun.NodeReadStream"), readStreamPathOrFdSymbol = Symbol.for("Bun.NodeReadStreamPathOrFd"), writeStreamSymbol = Symbol.for("Bun.NodeWriteStream"), writeStreamPathFastPathSymbol = Symbol.for("Bun.NodeWriteStreamFastPath"), writeStreamPathFastPathCallSymbol = Symbol.for("Bun.NodeWriteStreamFastPathCall"), kIoDone = Symbol.for("kIoDone"), defaultReadStreamOptions = { file: void 0, fd: void 0, flags: "r", @@ -590,6 +633,8 @@ var fs_default = { writeSync, WriteStream, ReadStream, + watch, + FSWatcher, [Symbol.for("::bunternal::")]: { ReadStreamClass, WriteStreamClass @@ -600,6 +645,7 @@ export { writeFileSync, writeFile, write, + watch, utimesSync, utimes, unlinkSync, diff --git a/src/js/out/modules/node/fs.promises.js b/src/js/out/modules/node/fs.promises.js index 2780ff166..ef3330771 100644 --- a/src/js/out/modules/node/fs.promises.js +++ b/src/js/out/modules/node/fs.promises.js @@ -1 +1 @@ -var D=Bun.fs(),B="::bunternal::",E={[B]:(S)=>{var b={[B]:function(C,J,q){var z;try{z=S.apply(D,q),q=void 0}catch(A){q=void 0,J(A);return}C(z)}}[B];return async function(...C){return await new Promise((J,q)=>{process.nextTick(b,J,q,C)})}}}[B],G=E(D.accessSync),H=E(D.appendFileSync),I=E(D.closeSync),K=E(D.copyFileSync),L=E(D.existsSync),M=E(D.chownSync),N=E(D.chmodSync),O=E(D.fchmodSync),P=E(D.fchownSync),Q=E(D.fstatSync),R=E(D.fsyncSync),T=E(D.ftruncateSync),U=E(D.futimesSync),V=E(D.lchmodSync),W=E(D.lchownSync),X=E(D.linkSync),Y=E(D.lstatSync),Z=E(D.mkdirSync),_=E(D.mkdtempSync),$=E(D.openSync),x=E(D.readSync),j=E(D.writeSync),v=E(D.readdirSync),w=E(D.readFileSync),k=E(D.writeFileSync),F=E(D.readlinkSync),h=E(D.realpathSync),g=E(D.renameSync),u=E(D.statSync),d=E(D.symlinkSync),n=E(D.truncateSync),l=E(D.unlinkSync),a=E(D.utimesSync),c=E(D.lutimesSync),t=E(D.rmSync),y=E(D.rmdirSync),p={access:G,appendFile:H,close:I,copyFile:K,exists:L,chown:M,chmod:N,fchmod:O,fchown:P,fstat:Q,fsync:R,ftruncate:T,futimes:U,lchmod:V,lchown:W,link:X,lstat:Y,mkdir:Z,mkdtemp:_,open:$,read:x,write:j,readdir:v,readFile:w,writeFile:k,readlink:F,realpath:h,rename:g,stat:u,symlink:d,truncate:n,unlink:l,utimes:a,lutimes:c,rm:t,rmdir:y,constants,[Symbol.for("CommonJS")]:0};export{k as writeFile,j as write,a as utimes,l as unlink,n as truncate,d as symlink,u as stat,y as rmdir,t as rm,g as rename,h as realpath,F as readlink,v as readdir,w as readFile,x as read,$ as open,_ as mkdtemp,Z as mkdir,c as lutimes,Y as lstat,X as link,W as lchown,V as lchmod,U as futimes,T as ftruncate,R as fsync,Q as fstat,P as fchown,O as fchmod,L as exists,p as default,K as copyFile,I as close,M as chown,N as chmod,H as appendFile,G as access}; +function H(S,C={}){const J=[];if(S instanceof URL)throw new TypeError("Watch URLs are not supported yet");else if(Buffer.isBuffer(S))S=S.toString();else if(typeof S!=="string")throw new TypeError("Expected path to be a string or Buffer");let b=null;if(typeof C==="string")C={encoding:C};return D.watch(S,C||{},(q,z)=>{if(J.push({eventType:q,filename:z}),b){const A=b;b=null,A()}}),{async*[Symbol.asyncIterator](){let q=!1;while(!q){while(J.length){let z=J.shift();if(z.eventType==="close"){q=!0;break}if(z.eventType==="error")throw q=!0,z.filename;yield z}await new Promise((z)=>b=z)}}}}var D=Bun.fs(),B="::bunternal::",G={[B]:(S)=>{var C={[B]:function(J,b,q){var z;try{z=S.apply(D,q),q=void 0}catch(A){q=void 0,b(A);return}J(z)}}[B];return async function(...J){return await new Promise((b,q)=>{process.nextTick(C,b,q,J)})}}}[B],I=G(D.accessSync),K=G(D.appendFileSync),L=G(D.closeSync),M=G(D.copyFileSync),N=G(D.existsSync),O=G(D.chownSync),P=G(D.chmodSync),Q=G(D.fchmodSync),U=G(D.fchownSync),V=G(D.fstatSync),W=G(D.fsyncSync),X=G(D.ftruncateSync),Y=G(D.futimesSync),Z=G(D.lchmodSync),_=G(D.lchownSync),$=G(D.linkSync),T=G(D.lstatSync),E=G(D.mkdirSync),j=G(D.mkdtempSync),R=G(D.openSync),k=G(D.readSync),x=G(D.writeSync),F=G(D.readdirSync),u=G(D.readFileSync),w=G(D.writeFileSync),g=G(D.readlinkSync),h=G(D.realpathSync),d=G(D.renameSync),c=G(D.statSync),v=G(D.symlinkSync),a=G(D.truncateSync),y=G(D.unlinkSync),l=G(D.utimesSync),t=G(D.lutimesSync),p=G(D.rmSync),n=G(D.rmdirSync),m={access:I,appendFile:K,close:L,copyFile:M,exists:N,chown:O,chmod:P,fchmod:Q,fchown:U,fstat:V,fsync:W,ftruncate:X,futimes:Y,lchmod:Z,lchown:_,link:$,lstat:T,mkdir:E,mkdtemp:j,open:R,read:k,write:x,readdir:F,readFile:u,writeFile:w,readlink:g,realpath:h,rename:d,stat:c,symlink:v,truncate:a,unlink:y,utimes:l,lutimes:t,rm:p,rmdir:n,watch:H,constants,[Symbol.for("CommonJS")]:0};export{w as writeFile,x as write,H as watch,l as utimes,y as unlink,a as truncate,v as symlink,c as stat,n as rmdir,p as rm,d as rename,h as realpath,g as readlink,F as readdir,u as readFile,k as read,R as open,j as mkdtemp,E as mkdir,t as lutimes,T as lstat,$ as link,_ as lchown,Z as lchmod,Y as futimes,X as ftruncate,W as fsync,V as fstat,U as fchown,Q as fchmod,N as exists,m as default,M as copyFile,L as close,O as chown,P as chmod,K as appendFile,I as access}; diff --git a/src/js/private.d.ts b/src/js/private.d.ts index b6ed64801..b689c208e 100644 --- a/src/js/private.d.ts +++ b/src/js/private.d.ts @@ -6,11 +6,95 @@ */ declare function $bundleError(error: string); +type BunFSWatchOptions = { encoding?: BufferEncoding; persistent?: boolean; recursive?: boolean; signal?: AbortSignal }; + +type BunWatchEventType = "rename" | "change" | "error" | "close"; +type BunWatchListener = (event: WatchEventType, filename: T | Error | undefined) => void; + +interface BunFSWatcher { + /** + * Stop watching for changes on the given `BunFSWatcher`. Once stopped, the `BunFSWatcher` object is no longer usable. + * @since v0.6.8 + */ + close(): void; + + /** + * When called, requests that the Node.js event loop not exit so long as the is active. Calling watcher.ref() multiple times will have no effect. + */ + ref(): void; + + /** + * When called, the active object will not require the Node.js event loop to remain active. If there is no other activity keeping the event loop running, the process may exit before the object's callback is invoked. Calling watcher.unref() multiple times will have no effect. + */ + unref(): void; +} +type BunFS = Omit & { + /** + * Watch for changes on `filename`, where `filename` is either a file or a + * directory. + * + * The second argument is optional. If `options` is provided as a string, it + * specifies the `encoding`. Otherwise `options` should be passed as an object. + * + * The listener callback gets two arguments `(eventType, filename)`. `eventType`is either `'rename'`, `'change', 'error' or 'close'`, and `filename` is the name of the file + * which triggered the event, the error when `eventType` is 'error' or undefined when eventType is 'close'. + * + * On most platforms, `'rename'` is emitted whenever a filename appears or + * disappears in the directory. + * + * + * If a `signal` is passed, aborting the corresponding AbortController will close + * the returned `BunFSWatcher`. + * @since v0.6.8 + * @param listener + */ + watch( + filename: string, + options: + | (WatchOptions & { + encoding: "buffer"; + }) + | "buffer", + listener?: BunWatchListener, + ): BunFSWatcher; + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `BunFSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `persistent` is not supplied, the default of `true` is used. + * If `recursive` is not supplied, the default of `false` is used. + */ + watch( + filename: string, + options?: WatchOptions | BufferEncoding | null, + listener?: BunWatchListener, + ): BunFSWatcher; + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `BunFSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `persistent` is not supplied, the default of `true` is used. + * If `recursive` is not supplied, the default of `false` is used. + */ + watch( + filename: string, + options: BunWatchListener | string, + listener?: BunWatchListener, + ): BunFSWatcher; + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `BunFSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + */ + watch(filename: string, listener?: BunWatchListener): BunFSWatcher; +}; + declare module "bun" { var TOML: { parse(contents: string): any; }; - function fs(): typeof import("node:fs"); + function fs(): BunFS; function _Os(): typeof import("node:os"); function jest(): typeof import("bun:test"); var main: string; diff --git a/src/jsc.zig b/src/jsc.zig index 67cf3f05c..ca31d5f1a 100644 --- a/src/jsc.zig +++ b/src/jsc.zig @@ -50,6 +50,7 @@ pub const FFI = @import("./bun.js/api/ffi.zig").FFI; pub const Node = struct { pub usingnamespace @import("./bun.js/node/types.zig"); pub usingnamespace @import("./bun.js/node/node_fs.zig"); + pub usingnamespace @import("./bun.js/node/node_fs_watcher.zig"); pub usingnamespace @import("./bun.js/node/node_fs_binding.zig"); pub usingnamespace @import("./bun.js/node/node_os.zig"); pub const Syscall = @import("./bun.js/node/syscall.zig"); diff --git a/src/watcher.zig b/src/watcher.zig index 155c0b473..044770dc4 100644 --- a/src/watcher.zig +++ b/src/watcher.zig @@ -108,6 +108,10 @@ pub const INotify = struct { std.os.inotify_rm_watch(inotify_fd, wd); } + pub fn isRunning() bool { + return loaded_inotify; + } + var coalesce_interval: isize = 100_000; pub fn init() !void { std.debug.assert(!loaded_inotify); @@ -229,6 +233,10 @@ const DarwinWatcher = struct { if (fd == 0) return error.KQueueError; } + pub fn isRunning() bool { + return fd != 0; + } + pub fn stop() void { if (fd != 0) { std.os.close(fd); @@ -361,6 +369,8 @@ pub fn NewWatcher(comptime ContextType: type) type { watchloop_handle: ?std.Thread.Id = null, cwd: string, thread: std.Thread = undefined, + running: bool = true, + close_descriptors: bool = false, pub const HashType = u32; @@ -372,7 +382,9 @@ pub fn NewWatcher(comptime ContextType: type) type { pub fn init(ctx: ContextType, fs: *Fs.FileSystem, allocator: std.mem.Allocator) !*Watcher { var watcher = try allocator.create(Watcher); - try PlatformWatcher.init(); + if (!PlatformWatcher.isRunning()) { + try PlatformWatcher.init(); + } watcher.* = Watcher{ .fs = fs, @@ -393,6 +405,26 @@ pub fn NewWatcher(comptime ContextType: type) type { this.thread = try std.Thread.spawn(.{}, Watcher.watchLoop, .{this}); } + pub fn deinit(this: *Watcher, close_descriptors: bool) void { + this.mutex.lock(); + defer this.mutex.unlock(); + + this.close_descriptors = close_descriptors; + if (this.watchloop_handle != null) { + this.running = false; + } else { + if (this.close_descriptors and this.running) { + const fds = this.watchlist.items(.fd); + for (fds) |fd| { + std.os.close(fd); + } + } + this.watchlist.deinit(this.allocator); + const allocator = this.allocator; + allocator.destroy(this); + } + } + // This must only be called from the watcher thread pub fn watchLoop(this: *Watcher) !void { this.watchloop_handle = std.Thread.getCurrentId(); @@ -402,12 +434,24 @@ pub fn NewWatcher(comptime ContextType: type) type { if (FeatureFlags.verbose_watcher) Output.prettyln("Watcher started", .{}); this._watchLoop() catch |err| { - Output.prettyErrorln("Watcher crashed: {s}", .{@errorName(err)}); - this.watchloop_handle = null; PlatformWatcher.stop(); - return; + if (this.running) { + this.ctx.onError(err); + } }; + + // deinit and close descriptors if needed + if (this.close_descriptors) { + const fds = this.watchlist.items(.fd); + for (fds) |fd| { + std.os.close(fd); + } + } + this.watchlist.deinit(this.allocator); + + const allocator = this.allocator; + allocator.destroy(this); } var evict_list_i: WatchItemIndex = 0; @@ -475,7 +519,7 @@ pub fn NewWatcher(comptime ContextType: type) type { var changelist_array: [128]KEvent = std.mem.zeroes([128]KEvent); var changelist = &changelist_array; - while (true) { + while (this.running) { defer Output.flush(); var count_ = std.os.system.kevent( @@ -530,11 +574,12 @@ pub fn NewWatcher(comptime ContextType: type) type { this.mutex.lock(); defer this.mutex.unlock(); - - this.ctx.onFileUpdate(watchevents, this.changed_filepaths[0..watchevents.len], this.watchlist); + if (this.running) { + this.ctx.onFileUpdate(watchevents, this.changed_filepaths[0..watchevents.len], this.watchlist); + } } } else if (Environment.isLinux) { - restart: while (true) { + restart: while (this.running) { defer Output.flush(); var events = try INotify.read(); @@ -600,9 +645,10 @@ pub fn NewWatcher(comptime ContextType: type) type { this.mutex.lock(); defer this.mutex.unlock(); - - this.ctx.onFileUpdate(all_events[0 .. last_event_index + 1], this.changed_filepaths[0 .. name_off + 1], this.watchlist); - remaining_events -= slice.len; + if (this.running) { + this.ctx.onFileUpdate(all_events[0 .. last_event_index + 1], this.changed_filepaths[0 .. name_off + 1], this.watchlist); + remaining_events -= slice.len; + } } } } diff --git a/test/js/node/watch/fixtures/close.js b/test/js/node/watch/fixtures/close.js new file mode 100644 index 000000000..8eeeb79a3 --- /dev/null +++ b/test/js/node/watch/fixtures/close.js @@ -0,0 +1,7 @@ +import fs from "fs"; +fs.watch(import.meta.path, { signal: AbortSignal.timeout(4000) }) + .on("error", err => { + console.error(err.message); + process.exit(1); + }) + .close(); diff --git a/test/js/node/watch/fixtures/persistent.js b/test/js/node/watch/fixtures/persistent.js new file mode 100644 index 000000000..72a2b6564 --- /dev/null +++ b/test/js/node/watch/fixtures/persistent.js @@ -0,0 +1,5 @@ +import fs from "fs"; +fs.watch(import.meta.path, { persistent: false, signal: AbortSignal.timeout(4000) }).on("error", err => { + console.error(err.message); + process.exit(1); +}); diff --git a/test/js/node/watch/fixtures/relative.js b/test/js/node/watch/fixtures/relative.js new file mode 100644 index 000000000..26e09da1a --- /dev/null +++ b/test/js/node/watch/fixtures/relative.js @@ -0,0 +1,23 @@ +import fs from "fs"; +const watcher = fs.watch("relative.txt", { signal: AbortSignal.timeout(2000) }); + +watcher.on("change", function (event, filename) { + if (filename !== "relative.txt" && event !== "change") { + console.error("fail"); + clearInterval(interval); + watcher.close(); + process.exit(1); + } else { + clearInterval(interval); + watcher.close(); + } +}); +watcher.on("error", err => { + clearInterval(interval); + console.error(err.message); + process.exit(1); +}); + +const interval = setInterval(() => { + fs.writeFileSync("relative.txt", "world"); +}, 10); diff --git a/test/js/node/watch/fixtures/unref.js b/test/js/node/watch/fixtures/unref.js new file mode 100644 index 000000000..a0c506a04 --- /dev/null +++ b/test/js/node/watch/fixtures/unref.js @@ -0,0 +1,7 @@ +import fs from "fs"; +fs.watch(import.meta.path, { signal: AbortSignal.timeout(4000) }) + .on("error", err => { + console.error(err.message); + process.exit(1); + }) + .unref(); diff --git a/test/js/node/watch/fs.watch.test.js b/test/js/node/watch/fs.watch.test.js new file mode 100644 index 000000000..56e1798f1 --- /dev/null +++ b/test/js/node/watch/fs.watch.test.js @@ -0,0 +1,424 @@ +import fs from "fs"; +import path from "path"; +import { tempDirWithFiles, bunRun, bunRunAsScript } from "harness"; +import { pathToFileURL } from "bun"; + +import { describe, expect, test } from "bun:test"; +// Because macOS (and possibly other operating systems) can return a watcher +// before it is actually watching, we need to repeat the operation to avoid +// a race condition. +function repeat(fn) { + const interval = setInterval(fn, 20); + return interval; +} +const encodingFileName = `新建文夹件.txt`; +const testDir = tempDirWithFiles("watch", { + "watch.txt": "hello", + "relative.txt": "hello", + "abort.txt": "hello", + "url.txt": "hello", + [encodingFileName]: "hello", +}); + +describe("fs.watch", () => { + test("non-persistent watcher should not block the event loop", done => { + try { + // https://github.com/joyent/node/issues/2293 - non-persistent watcher should not block the event loop + bunRun(path.join(import.meta.dir, "fixtures", "persistent.js")); + done(); + } catch (e) { + done(e); + } + }); + + test("watcher should close and not block the event loop", done => { + try { + bunRun(path.join(import.meta.dir, "fixtures", "close.js")); + done(); + } catch (e) { + done(e); + } + }); + + test("unref watcher should not block the event loop", done => { + try { + bunRun(path.join(import.meta.dir, "fixtures", "unref.js")); + done(); + } catch (e) { + done(e); + } + }); + + test("should work with relative files", done => { + try { + bunRunAsScript(testDir, path.join(import.meta.dir, "fixtures", "relative.js")); + done(); + } catch (e) { + done(e); + } + }); + + test("add file/folder to folder", done => { + let count = 0; + const root = path.join(testDir, "add-directory"); + try { + fs.mkdirSync(root); + } catch {} + let err = undefined; + const watcher = fs.watch(root, { signal: AbortSignal.timeout(3000) }); + watcher.on("change", (event, filename) => { + count++; + try { + expect(event).toBe("rename"); + expect(["new-file.txt", "new-folder.txt"]).toContain(filename); + if (count >= 2) { + watcher.close(); + } + } catch (e) { + err = e; + watcher.close(); + } + }); + + watcher.on("error", e => (err = e)); + watcher.on("close", () => { + clearInterval(interval); + done(err); + }); + + const interval = repeat(() => { + fs.writeFileSync(path.join(root, "new-file.txt"), "hello"); + fs.mkdirSync(path.join(root, "new-folder.txt")); + fs.rmdirSync(path.join(root, "new-folder.txt")); + }); + }); + + test("add file/folder to subfolder", done => { + let count = 0; + const root = path.join(testDir, "add-subdirectory"); + try { + fs.mkdirSync(root); + } catch {} + const subfolder = path.join(root, "subfolder"); + fs.mkdirSync(subfolder); + const watcher = fs.watch(root, { recursive: true, signal: AbortSignal.timeout(3000) }); + let err = undefined; + watcher.on("change", (event, filename) => { + const basename = path.basename(filename); + if (basename === "subfolder") return; + count++; + try { + expect(event).toBe("rename"); + expect(["new-file.txt", "new-folder.txt"]).toContain(basename); + if (count >= 2) { + watcher.close(); + } + } catch (e) { + err = e; + watcher.close(); + } + }); + watcher.on("error", e => (err = e)); + watcher.on("close", () => { + clearInterval(interval); + done(err); + }); + + const interval = repeat(() => { + fs.writeFileSync(path.join(subfolder, "new-file.txt"), "hello"); + fs.mkdirSync(path.join(subfolder, "new-folder.txt")); + fs.rmdirSync(path.join(subfolder, "new-folder.txt")); + }); + }); + + test("should emit event when file is deleted", done => { + const testsubdir = tempDirWithFiles("subdir", { + "deleted.txt": "hello", + }); + const filepath = path.join(testsubdir, "deleted.txt"); + let err = undefined; + const watcher = fs.watch(testsubdir, function (event, filename) { + try { + expect(event).toBe("rename"); + expect(filename).toBe("deleted.txt"); + } catch (e) { + err = e; + } finally { + clearInterval(interval); + watcher.close(); + } + }); + + watcher.once("close", () => { + done(err); + }); + + const interval = repeat(() => { + fs.rmSync(filepath, { force: true }); + const fd = fs.openSync(filepath, "w"); + fs.closeSync(fd); + }); + }); + + test("should emit 'change' event when file is modified", done => { + const filepath = path.join(testDir, "watch.txt"); + + const watcher = fs.watch(filepath); + let err = undefined; + watcher.on("change", function (event, filename) { + try { + expect(event).toBe("change"); + expect(filename).toBe("watch.txt"); + } catch (e) { + err = e; + } finally { + clearInterval(interval); + watcher.close(); + } + }); + + watcher.once("close", () => { + done(err); + }); + + const interval = repeat(() => { + fs.writeFileSync(filepath, "world"); + }); + }); + + test("should error on invalid path", done => { + try { + fs.watch(path.join(testDir, "404.txt")); + done(new Error("should not reach here")); + } catch (err) { + expect(err).toBeInstanceOf(Error); + expect(err.code).toBe("ENOENT"); + expect(err.syscall).toBe("watch"); + done(); + } + }); + + const encodings = ["utf8", "buffer", "hex", "ascii", "base64", "utf16le", "ucs2", "latin1", "binary"]; + + test(`should work with encodings ${encodings.join(", ")}`, async () => { + const watchers = []; + const filepath = path.join(testDir, encodingFileName); + + const promises = []; + encodings.forEach(name => { + const encoded_filename = + name !== "buffer" ? Buffer.from(encodingFileName, "utf8").toString(name) : Buffer.from(encodingFileName); + + promises.push( + new Promise((resolve, reject) => { + watchers.push( + fs.watch(filepath, { encoding: name }, (event, filename) => { + try { + expect(event).toBe("change"); + + if (name !== "buffer") { + expect(filename).toBe(encoded_filename); + } else { + expect(filename).toBeInstanceOf(Buffer); + expect(filename.toString("utf8")).toBe(encodingFileName); + } + + resolve(); + } catch (e) { + reject(e); + } + }), + ); + }), + ); + }); + + const interval = repeat(() => { + fs.writeFileSync(filepath, "world"); + }); + + try { + await Promise.all(promises); + } finally { + clearInterval(interval); + watchers.forEach(watcher => watcher.close()); + } + }); + + test("should work with url", done => { + const filepath = path.join(testDir, "url.txt"); + try { + const watcher = fs.watch(pathToFileURL(filepath)); + let err = undefined; + watcher.on("change", function (event, filename) { + try { + expect(event).toBe("change"); + expect(filename).toBe("url.txt"); + } catch (e) { + err = e; + } finally { + clearInterval(interval); + watcher.close(); + } + }); + + watcher.once("close", () => { + done(err); + }); + + const interval = repeat(() => { + fs.writeFileSync(filepath, "world"); + }); + } catch (e) { + done(e); + } + }); + + test("Signal aborted after creating the watcher", async () => { + const filepath = path.join(testDir, "abort.txt"); + + const ac = new AbortController(); + const promise = new Promise((resolve, reject) => { + const watcher = fs.watch(filepath, { signal: ac.signal }); + watcher.once("error", err => (err.message === "The operation was aborted." ? resolve() : reject(err))); + watcher.once("close", () => reject()); + }); + await Bun.sleep(10); + ac.abort(); + await promise; + }); + + test("Signal aborted before creating the watcher", async () => { + const filepath = path.join(testDir, "abort.txt"); + + const signal = AbortSignal.abort(); + await new Promise((resolve, reject) => { + const watcher = fs.watch(filepath, { signal }); + watcher.once("error", err => (err.message === "The operation was aborted." ? resolve() : reject(err))); + watcher.once("close", () => reject()); + }); + }); +}); + +describe("fs.promises.watchFile", () => { + test("add file/folder to folder", async () => { + let count = 0; + const root = path.join(testDir, "add-promise-directory"); + try { + fs.mkdirSync(root); + } catch {} + let success = false; + let err = undefined; + try { + const ac = new AbortController(); + const watcher = fs.promises.watch(root, { signal: ac.signal }); + + const interval = repeat(() => { + fs.writeFileSync(path.join(root, "new-file.txt"), "hello"); + fs.mkdirSync(path.join(root, "new-folder.txt")); + fs.rmdirSync(path.join(root, "new-folder.txt")); + }); + + for await (const event of watcher) { + count++; + try { + expect(event.eventType).toBe("rename"); + expect(["new-file.txt", "new-folder.txt"]).toContain(event.filename); + + if (count >= 2) { + success = true; + clearInterval(interval); + ac.abort(); + } + } catch (e) { + err = e; + clearInterval(interval); + ac.abort(); + } + } + } catch (e) { + if (!success) { + throw err || e; + } + } + }); + + test("add file/folder to subfolder", async () => { + let count = 0; + const root = path.join(testDir, "add-promise-subdirectory"); + try { + fs.mkdirSync(root); + } catch {} + const subfolder = path.join(root, "subfolder"); + fs.mkdirSync(subfolder); + let success = false; + let err = undefined; + + try { + const ac = new AbortController(); + const watcher = fs.promises.watch(root, { recursive: true, signal: ac.signal }); + + const interval = repeat(() => { + fs.writeFileSync(path.join(subfolder, "new-file.txt"), "hello"); + fs.mkdirSync(path.join(subfolder, "new-folder.txt")); + fs.rmdirSync(path.join(subfolder, "new-folder.txt")); + }); + for await (const event of watcher) { + const basename = path.basename(event.filename); + if (basename === "subfolder") continue; + + count++; + try { + expect(event.eventType).toBe("rename"); + expect(["new-file.txt", "new-folder.txt"]).toContain(basename); + + if (count >= 2) { + success = true; + clearInterval(interval); + ac.abort(); + } + } catch (e) { + err = e; + clearInterval(interval); + ac.abort(); + } + } + } catch (e) { + if (!success) { + throw err || e; + } + } + }); + + test("Signal aborted after creating the watcher", async () => { + const filepath = path.join(testDir, "abort.txt"); + + const ac = new AbortController(); + const watcher = fs.promises.watch(filepath, { signal: ac.signal }); + + const promise = (async () => { + try { + for await (const _ of watcher); + } catch (e) { + expect(e.message).toBe("The operation was aborted."); + } + })(); + await Bun.sleep(10); + ac.abort(); + await promise; + }); + + test("Signal aborted before creating the watcher", async () => { + const filepath = path.join(testDir, "abort.txt"); + + const signal = AbortSignal.abort(); + const watcher = fs.promises.watch(filepath, { signal }); + await (async () => { + try { + for await (const _ of watcher); + } catch (e) { + expect(e.message).toBe("The operation was aborted."); + } + })(); + }); +}); -- cgit v1.2.3 From ff635551436123022ba3980b39580d53973c80a2 Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Sat, 24 Jun 2023 06:02:16 -0700 Subject: Rewrite Bun's runtime CommonJS loader (#3379) * wip changes for CommonJS * this rewrite is almost complete * even more code * wip * Remove usages of `import.meta.require` from builtins * Remove usages of require * Regenerate * :scissors: builtin rewrite commonjs in printer * Use lazy custom getters for import.meta * fixups * Remove depd * ugh * still crashing * fixup undici * comment out import.meta.require.resolve temporarily not a real solution but it stops the crashes * Redo import.meta.primordials * Builtins now have a `builtin://` protocol in source origin * Seems to work? * Finsih getting rid of primordials * switcharoo * No more function * just one more bug * Update launch.json * Implement `require.main` * :scissors: * Bump WebKit * Fixup import cycles * Fixup improt cycles * export more things * Implement `createCommonJSModule` builtin * More exports * regenerate * i broke some stuff * some of these tests work now * We lost the encoding * Sort of fix zlib * Sort of fix util * Update events.js * bump * bump * bump * Fix missing export in fs * fix some bugs with builtin esm modules (stream, worker_threads, events). its not perfect yet. * fix some other internal module bugs * oops * fix some extra require default stuff * uncomment this file but it crsahes on my machine * tidy code here * fixup tls exports * make simdutf happier * Add hasPrefix binding * Add test for `require.main` * Fix CommonJS evaluation order race condition * Make node:http load faster * Add missing exports to tls.js * Use the getter * Regenerate builtins * Fix assertion failure in Bun.write() * revamp dotEnv parser (#3347) - fixes `strings.indexOfAny()` - fixes OOB array access fixes #411 fixes #2823 fixes #3042 * fix tests for `expect()` (#3384) - extend test job time-out for `darwin-aarch64` * `expect().resolves` and `expect().rejects` (#3318) * Move expect and snapshots to their own files * expect().resolves and expect().rejects * Fix promise being added to unhandled rejection list * Handle timeouts in expect() * wip merge * Fix merge issue --------- Co-authored-by: Jarred Sumner Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> * fixup min/memcopy (#3388) * Fix crash in builtins * Don't attempt to evaluate modules with no source code * Update WebCoreJSBuiltins.cpp * Update WebCoreJSBuiltins.cpp * Update WebCoreJSBuiltins.cpp * Fix crash * cleanup * Fix test cc @paperdave * Fixup Undici * Fix issue in node:http * Create util-deprecate.mjs * Fix several bugs * Use the identifier * Support error.code in `util.deprecate` * make the CJs loader slightly more resilient * Update WebCoreJSBuiltins.cpp * Fix macros --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Co-authored-by: dave caruso Co-authored-by: Alex Lam S.L Co-authored-by: Ashcon Partovi Co-authored-by: Ciro Spaciari --- .github/workflows/bun-linux-aarch64.yml | 2 +- .github/workflows/bun-linux-build.yml | 4 +- .github/workflows/bun-mac-aarch64.yml | 16 +- .github/workflows/bun-mac-x64-baseline.yml | 16 +- .github/workflows/bun-mac-x64.yml | 16 +- Dockerfile | 2 +- Makefile | 3 + bench/snippets/util-deprecate.mjs | 60 + bun.lockb | Bin 63661 -> 72925 bytes package.json | 2 +- src/bun.js/bindings/BunString.cpp | 5 + src/bun.js/bindings/CommonJSModuleRecord.cpp | 994 ++++++++++------ src/bun.js/bindings/CommonJSModuleRecord.h | 78 +- src/bun.js/bindings/ImportMetaObject.cpp | 484 +++++--- src/bun.js/bindings/ImportMetaObject.h | 100 +- src/bun.js/bindings/ModuleLoader.cpp | 131 ++- src/bun.js/bindings/ModuleLoader.h | 9 + src/bun.js/bindings/ZigGlobalObject.cpp | 143 +-- src/bun.js/bindings/ZigGlobalObject.h | 9 +- src/bun.js/bindings/ZigSourceProvider.cpp | 38 +- src/bun.js/bindings/ZigSourceProvider.h | 2 +- src/bun.js/bindings/bindings.cpp | 43 +- src/bun.js/bindings/node_util_types.cpp | 2 +- .../bindings/webcore/DOMClientIsoSubspaces.h | 1 + src/bun.js/bindings/webcore/DOMIsoSubspaces.h | 1 + src/bun.js/module_loader.zig | 17 +- src/bun.js/modules/BufferModule.h | 11 +- src/bun.js/modules/ProcessModule.h | 31 +- src/bun.js/modules/StringDecoderModule.h | 11 +- src/bun.js/modules/TTYModule.h | 13 +- src/bun.js/webcore/blob.zig | 67 +- src/js/builtins/BunBuiltinNames.h | 25 +- src/js/builtins/ImportMetaObject.ts | 205 ++-- src/js/builtins/Module.ts | 94 ++ src/js/builtins/builtins.d.ts | 6 +- src/js/builtins/tsconfig.json | 8 +- src/js/node/assert.js | 45 +- src/js/node/async_hooks.js | 5 +- src/js/node/child_process.js | 37 +- src/js/node/crypto.js | 88 +- src/js/node/dns.promises.js | 2 +- src/js/node/events.js | 23 +- src/js/node/fs.js | 31 +- src/js/node/http.js | 42 +- src/js/node/https.js | 3 +- src/js/node/net.js | 6 +- src/js/node/path.js | 1 - src/js/node/readline.js | 10 +- src/js/node/readline.promises.js | 6 +- src/js/node/stream.consumers.js | 2 +- src/js/node/stream.js | 89 +- src/js/node/stream.promises.js | 4 +- src/js/node/timers.promises.js | 1 + src/js/node/tls.js | 66 +- src/js/node/url.js | 1193 ++++++++++++++------ src/js/node/util.js | 126 ++- src/js/node/zlib.js | 110 +- src/js/out/WebCoreJSBuiltins.cpp | 194 ++-- src/js/out/WebCoreJSBuiltins.h | 103 ++ src/js/out/modules/node/assert.js | 82 +- src/js/out/modules/node/assert.strict.js | 2 +- src/js/out/modules/node/async_hooks.js | 3 +- src/js/out/modules/node/child_process.js | 21 +- src/js/out/modules/node/cluster.js | 2 +- src/js/out/modules/node/crypto.js | 8 +- src/js/out/modules/node/dns.promises.js | 3 +- src/js/out/modules/node/events.js | 16 +- src/js/out/modules/node/fs.js | 30 +- src/js/out/modules/node/http.js | 39 +- src/js/out/modules/node/https.js | 4 +- src/js/out/modules/node/inspector.js | 2 +- src/js/out/modules/node/net.js | 6 +- src/js/out/modules/node/path.js | 2 +- src/js/out/modules/node/path.posix.js | 2 +- src/js/out/modules/node/readline.js | 6 +- src/js/out/modules/node/readline.promises.js | 10 +- src/js/out/modules/node/stream.consumers.js | 2 +- src/js/out/modules/node/stream.js | 4 +- src/js/out/modules/node/stream.promises.js | 2 +- src/js/out/modules/node/timers.promises.js | 4 +- src/js/out/modules/node/tls.js | 52 +- src/js/out/modules/node/url.js | 512 +++++---- src/js/out/modules/node/util.js | 138 +-- src/js/out/modules/node/zlib.js | 211 ++-- src/js/out/modules/thirdparty/depd.js | 66 +- src/js/out/modules/thirdparty/undici.js | 33 +- src/js/out/modules/thirdparty/ws.js | 4 +- src/js/thirdparty/depd.js | 118 +- src/js/thirdparty/undici.js | 76 +- src/js/thirdparty/ws.js | 2 +- src/js_parser.zig | 89 +- src/js_printer.zig | 73 +- src/string.zig | 9 + src/string_immutable.zig | 3 +- test/bun.lockb | Bin 86272 -> 95035 bytes test/bundler/esbuild/default.test.ts | 17 +- test/cli/run/require-cache-fixture-b.cjs | 5 + test/cli/run/require-cache-fixture.cjs | 5 + test/js/bun/eventsource/eventsource.test.ts | 284 ++--- test/js/bun/resolve/import-meta.test.js | 2 +- test/js/node/assert/assert-test.test.ts | 11 - test/js/node/assert/assert.test.cjs | 9 + test/js/node/assert/assert.test.ts | 11 + test/js/node/disabled-module.test.cjs | 6 + test/js/node/disabled-module.test.js | 19 +- test/js/node/events/event-emitter.test.ts | 7 + test/js/node/events/events-cjs.test.js | 4 + test/js/node/path/path.test.js | 2 +- test/js/node/process/print-process-args.js | 8 + test/js/node/process/process.test.js | 3 +- test/js/node/stubs.test.js | 3 + test/js/node/util/test-util-types.test.js | 32 +- test/package.json | 2 +- 113 files changed, 4188 insertions(+), 2714 deletions(-) create mode 100644 bench/snippets/util-deprecate.mjs create mode 100644 src/js/builtins/Module.ts delete mode 100644 test/js/node/assert/assert-test.test.ts create mode 100644 test/js/node/assert/assert.test.cjs create mode 100644 test/js/node/assert/assert.test.ts create mode 100644 test/js/node/disabled-module.test.cjs create mode 100644 test/js/node/events/events-cjs.test.js (limited to 'test/js') diff --git a/.github/workflows/bun-linux-aarch64.yml b/.github/workflows/bun-linux-aarch64.yml index 39bfbc413..9bee835b7 100644 --- a/.github/workflows/bun-linux-aarch64.yml +++ b/.github/workflows/bun-linux-aarch64.yml @@ -36,7 +36,7 @@ jobs: arch: aarch64 build_arch: arm64 runner: linux-arm64 - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20/bun-webkit-linux-arm64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-linux-arm64-lto.tar.gz" webkit_basename: "bun-webkit-linux-arm64-lto" build_machine_arch: aarch64 diff --git a/.github/workflows/bun-linux-build.yml b/.github/workflows/bun-linux-build.yml index 603c0ad3d..8689d488e 100644 --- a/.github/workflows/bun-linux-build.yml +++ b/.github/workflows/bun-linux-build.yml @@ -46,7 +46,7 @@ jobs: arch: x86_64 build_arch: amd64 runner: big-ubuntu - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20/bun-webkit-linux-amd64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-linux-amd64-lto.tar.gz" webkit_basename: "bun-webkit-linux-amd64-lto" build_machine_arch: x86_64 - cpu: nehalem @@ -54,7 +54,7 @@ jobs: arch: x86_64 build_arch: amd64 runner: big-ubuntu - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20/bun-webkit-linux-amd64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-linux-amd64-lto.tar.gz" webkit_basename: "bun-webkit-linux-amd64-lto" build_machine_arch: x86_64 diff --git a/.github/workflows/bun-mac-aarch64.yml b/.github/workflows/bun-mac-aarch64.yml index e4d93f206..3040eee43 100644 --- a/.github/workflows/bun-mac-aarch64.yml +++ b/.github/workflows/bun-mac-aarch64.yml @@ -117,7 +117,7 @@ jobs: # obj: bun-obj-darwin-x64-baseline # runner: macos-11 # artifact: bun-obj-darwin-x64-baseline - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" # dependencies: true # compile_obj: false # - cpu: haswell @@ -126,7 +126,7 @@ jobs: # obj: bun-obj-darwin-x64 # runner: macos-11 # artifact: bun-obj-darwin-x64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" # dependencies: true # compile_obj: false # - cpu: nehalem @@ -135,7 +135,7 @@ jobs: # obj: bun-obj-darwin-x64-baseline # runner: macos-11 # artifact: bun-obj-darwin-x64-baseline - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" # dependencies: false # compile_obj: true # - cpu: haswell @@ -144,7 +144,7 @@ jobs: # obj: bun-obj-darwin-x64 # runner: macos-11 # artifact: bun-obj-darwin-x64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" # dependencies: false # compile_obj: true - cpu: native @@ -152,7 +152,7 @@ jobs: tag: bun-darwin-aarch64 obj: bun-obj-darwin-aarch64 artifact: bun-obj-darwin-aarch64 - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20/bun-webkit-macos-arm64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-arm64-lto.tar.gz" runner: macos-arm64 dependencies: true compile_obj: true @@ -257,7 +257,7 @@ jobs: # package: bun-darwin-x64 # runner: macos-11 # artifact: bun-obj-darwin-x64-baseline - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" # - cpu: haswell # arch: x86_64 # tag: bun-darwin-x64 @@ -265,14 +265,14 @@ jobs: # package: bun-darwin-x64 # runner: macos-11 # artifact: bun-obj-darwin-x64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" - cpu: native arch: aarch64 tag: bun-darwin-aarch64 obj: bun-obj-darwin-aarch64 package: bun-darwin-aarch64 artifact: bun-obj-darwin-aarch64 - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20/bun-webkit-macos-arm64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-arm64-lto.tar.gz" runner: macos-arm64 steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/bun-mac-x64-baseline.yml b/.github/workflows/bun-mac-x64-baseline.yml index c7a021c66..dea617b21 100644 --- a/.github/workflows/bun-mac-x64-baseline.yml +++ b/.github/workflows/bun-mac-x64-baseline.yml @@ -117,7 +117,7 @@ jobs: obj: bun-obj-darwin-x64-baseline runner: macos-11 artifact: bun-obj-darwin-x64-baseline - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20/bun-webkit-macos-amd64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" dependencies: true compile_obj: false # - cpu: haswell @@ -126,7 +126,7 @@ jobs: # obj: bun-obj-darwin-x64 # runner: macos-11 # artifact: bun-obj-darwin-x64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" # dependencies: true # compile_obj: false - cpu: nehalem @@ -135,7 +135,7 @@ jobs: obj: bun-obj-darwin-x64-baseline runner: macos-11 artifact: bun-obj-darwin-x64-baseline - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20/bun-webkit-macos-amd64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" dependencies: false compile_obj: true # - cpu: haswell @@ -144,7 +144,7 @@ jobs: # obj: bun-obj-darwin-x64 # runner: macos-11 # artifact: bun-obj-darwin-x64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" # dependencies: false # compile_obj: true # - cpu: native @@ -152,7 +152,7 @@ jobs: # tag: bun-darwin-aarch64 # obj: bun-obj-darwin-aarch64 # artifact: bun-obj-darwin-aarch64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" # runner: macos-arm64 # dependencies: true # compile_obj: true @@ -258,7 +258,7 @@ jobs: package: bun-darwin-x64 runner: macos-11 artifact: bun-obj-darwin-x64-baseline - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20/bun-webkit-macos-amd64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" # - cpu: haswell # arch: x86_64 # tag: bun-darwin-x64 @@ -266,14 +266,14 @@ jobs: # package: bun-darwin-x64 # runner: macos-11 # artifact: bun-obj-darwin-x64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" # - cpu: native # arch: aarch64 # tag: bun-darwin-aarch64 # obj: bun-obj-darwin-aarch64 # package: bun-darwin-aarch64 # artifact: bun-obj-darwin-aarch64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" # runner: macos-arm64 steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/bun-mac-x64.yml b/.github/workflows/bun-mac-x64.yml index d8402d95d..2f2143ab1 100644 --- a/.github/workflows/bun-mac-x64.yml +++ b/.github/workflows/bun-mac-x64.yml @@ -117,7 +117,7 @@ jobs: # obj: bun-obj-darwin-x64-baseline # runner: macos-11 # artifact: bun-obj-darwin-x64-baseline - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" # dependencies: true # compile_obj: false - cpu: haswell @@ -126,7 +126,7 @@ jobs: obj: bun-obj-darwin-x64 runner: macos-11 artifact: bun-obj-darwin-x64 - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20/bun-webkit-macos-amd64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" dependencies: true compile_obj: false # - cpu: nehalem @@ -135,7 +135,7 @@ jobs: # obj: bun-obj-darwin-x64-baseline # runner: macos-11 # artifact: bun-obj-darwin-x64-baseline - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" # dependencies: false # compile_obj: true - cpu: haswell @@ -144,7 +144,7 @@ jobs: obj: bun-obj-darwin-x64 runner: macos-11 artifact: bun-obj-darwin-x64 - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20/bun-webkit-macos-amd64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" dependencies: false compile_obj: true # - cpu: native @@ -152,7 +152,7 @@ jobs: # tag: bun-darwin-aarch64 # obj: bun-obj-darwin-aarch64 # artifact: bun-obj-darwin-aarch64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20/bun-webkit-macos-arm64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-arm64-lto.tar.gz" # runner: macos-arm64 # dependencies: true # compile_obj: true @@ -260,7 +260,7 @@ jobs: # package: bun-darwin-x64 # runner: macos-11 # artifact: bun-obj-darwin-x64-baseline - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" - cpu: haswell arch: x86_64 tag: bun-darwin-x64 @@ -268,14 +268,14 @@ jobs: package: bun-darwin-x64 runner: macos-11 artifact: bun-obj-darwin-x64 - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20/bun-webkit-macos-amd64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" # - cpu: native # arch: aarch64 # tag: bun-darwin-aarch64 # obj: bun-obj-darwin-aarch64 # package: bun-darwin-aarch64 # artifact: bun-obj-darwin-aarch64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20/bun-webkit-macos-arm64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-arm64-lto.tar.gz" # runner: macos-arm64 steps: - uses: actions/checkout@v3 diff --git a/Dockerfile b/Dockerfile index 19d071e93..b4a76208f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,7 +10,7 @@ ARG ARCH=x86_64 ARG BUILD_MACHINE_ARCH=x86_64 ARG TRIPLET=${ARCH}-linux-gnu ARG BUILDARCH=amd64 -ARG WEBKIT_TAG=may20 +ARG WEBKIT_TAG=may20-1 ARG ZIG_TAG=jul1 ARG ZIG_VERSION="0.11.0-dev.3737+9eb008717" ARG WEBKIT_BASENAME="bun-webkit-linux-$BUILDARCH" diff --git a/Makefile b/Makefile index deb4a5c6e..18e229903 100644 --- a/Makefile +++ b/Makefile @@ -561,6 +561,9 @@ builtins: esm: NODE_ENV=production bun src/js/build-esm.ts +esm-debug: + BUN_DEBUG_QUIET_LOGS=1 NODE_ENV=production bun-debug src/js/build-esm.ts + .PHONY: generate-builtins generate-builtins: builtins diff --git a/bench/snippets/util-deprecate.mjs b/bench/snippets/util-deprecate.mjs new file mode 100644 index 000000000..364601d79 --- /dev/null +++ b/bench/snippets/util-deprecate.mjs @@ -0,0 +1,60 @@ +import { bench, run } from "./runner.mjs"; +function deprecateUsingClosure(fn, msg, code) { + if (process.noDeprecation === true) { + return fn; + } + + var realFn = fn; + var wrapper = () => { + return fnToWrap.apply(this, arguments); + }; + + var deprecater = () => { + if (process.throwDeprecation) { + var err = new Error(msg); + if (code) err.code = code; + throw err; + } else if (process.traceDeprecation) { + console.trace(msg); + } else { + console.error(msg); + } + + fnToWrap = realFn; + return realFn.apply(this, arguments); + }; + var fnToWrap = deprecater; + + return wrapper; +} + +function deprecateOriginal(fn, msg) { + var warned = false; + function deprecated() { + if (!warned) { + if (process.throwDeprecation) { + throw new Error(msg); + } else if (process.traceDeprecation) { + console.trace(msg); + } else { + console.error(msg); + } + warned = true; + } + return fn.apply(this, arguments); + } + return deprecated; +} + +const deprecatedy = deprecateUsingClosure(() => {}, "This is deprecated", "DEP0001"); +const deprecatedy2 = deprecateOriginal(() => {}, "This is deprecated"); + +bench("deprecateUsingClosure", () => { + deprecatedy(Math.random() + 1); +}); + +bench("deprecateOriginal", () => { + deprecatedy2(Math.random() + 1); +}); + +await run(); diff --git a/bun.lockb b/bun.lockb index 42721afe8..2c2b03711 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/package.json b/package.json index a5cc3ee64..94f9968ea 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "@types/react": "^18.0.25", "@typescript-eslint/eslint-plugin": "^5.31.0", "@typescript-eslint/parser": "^5.31.0", - "bun-webkit": "0.0.1-b2f1006a06f81bc860c89dd4c7cec3e7117c4c4c" + "bun-webkit": "0.0.1-4b3750ddfe644a5bb131d652407653fac528ad51" }, "version": "0.0.0", "prettier": "./.prettierrc.cjs" diff --git a/src/bun.js/bindings/BunString.cpp b/src/bun.js/bindings/BunString.cpp index f737342f4..f590edd35 100644 --- a/src/bun.js/bindings/BunString.cpp +++ b/src/bun.js/bindings/BunString.cpp @@ -7,6 +7,11 @@ #include "GCDefferalContext.h" using namespace JSC; +extern "C" bool Bun__WTFStringImpl__hasPrefix(const WTF::StringImpl* impl, const char* bytes, size_t length) +{ + return impl->startsWith(bytes, length); +} + extern "C" void Bun__WTFStringImpl__deref(WTF::StringImpl* impl) { impl->deref(); diff --git a/src/bun.js/bindings/CommonJSModuleRecord.cpp b/src/bun.js/bindings/CommonJSModuleRecord.cpp index 1cee1091b..8d4fe0a1e 100644 --- a/src/bun.js/bindings/CommonJSModuleRecord.cpp +++ b/src/bun.js/bindings/CommonJSModuleRecord.cpp @@ -59,458 +59,782 @@ #include #include +#include "ModuleLoader.h" #include #include #include #include "ZigSourceProvider.h" +#include "JavaScriptCore/FunctionPrototype.h" +#include "CommonJSModuleRecord.h" +#include +#include +#include namespace Bun { using namespace JSC; -class JSCommonJSModule final : public JSC::JSNonFinalObject { -public: - using Base = JSC::JSNonFinalObject; - static constexpr unsigned StructureFlags = Base::StructureFlags | JSC::OverridesPut; +JSC_DECLARE_HOST_FUNCTION(jsFunctionRequireCommonJS); - mutable JSC::WriteBarrier m_exportsObject; - mutable JSC::WriteBarrier m_id; +static bool canPerformFastEnumeration(Structure* s) +{ + if (s->typeInfo().overridesGetOwnPropertySlot()) + return false; + if (s->typeInfo().overridesAnyFormOfGetOwnPropertyNames()) + return false; + if (hasIndexedProperties(s->indexingType())) + return false; + if (s->hasAnyKindOfGetterSetterProperties()) + return false; + if (s->isUncacheableDictionary()) + return false; + if (s->hasUnderscoreProtoPropertyExcludingOriginalProto()) + return false; + return true; +} - void finishCreation(JSC::VM& vm, JSC::JSValue exportsObject, JSC::JSString* id, JSC::JSString* filename, JSC::JSString* dirname, JSC::JSValue requireFunction) - { - Base::finishCreation(vm); - ASSERT(inherits(vm, info())); - m_exportsObject.set(vm, this, exportsObject); - m_id.set(vm, this, id); +static bool evaluateCommonJSModuleOnce(JSC::VM& vm, Zig::GlobalObject* globalObject, JSCommonJSModule* moduleObject, JSString* dirname, JSString* filename, WTF::NakedPtr& exception) +{ + JSC::Structure* thisObjectStructure = globalObject->commonJSFunctionArgumentsStructure(); + JSC::JSObject* thisObject = JSC::constructEmptyObject( + vm, + thisObjectStructure); + thisObject->putDirectOffset( + vm, + 0, + moduleObject); - this->putDirectOffset( - vm, - 0, - exportsObject); + thisObject->putDirectOffset( + vm, + 1, + dirname); - this->putDirectOffset( - vm, - 1, - id); + thisObject->putDirectOffset( + vm, + 2, + filename); - this->putDirectOffset( - vm, - 2, - filename); + moduleObject->hasEvaluated = true; + globalObject->m_BunCommonJSModuleValue.set(vm, globalObject, thisObject); - this->putDirectOffset( - vm, - 3, - jsBoolean(false)); + JSValue empty = JSC::evaluate(globalObject, moduleObject->sourceCode.get()->sourceCode(), thisObject, exception); + moduleObject->sourceCode.clear(); - this->putDirectOffset( - vm, - 4, - dirname); + return exception.get() == nullptr; +} - this->putDirectOffset( - vm, - 5, - jsUndefined()); +JSC_DEFINE_HOST_FUNCTION(jsFunctionLoadModule, (JSGlobalObject * lexicalGlobalObject, CallFrame* callframe)) +{ + auto* globalObject = jsCast(lexicalGlobalObject); + auto throwScope = DECLARE_THROW_SCOPE(globalObject->vm()); + JSCommonJSModule* moduleObject = jsDynamicCast(callframe->argument(0)); + if (!moduleObject) { + RELEASE_AND_RETURN(throwScope, JSValue::encode(jsBoolean(true))); + } + + if (moduleObject->hasEvaluated || !moduleObject->sourceCode) { + RELEASE_AND_RETURN(throwScope, JSValue::encode(jsBoolean(true))); } - static JSC::Structure* createStructure( + WTF::NakedPtr exception; + + evaluateCommonJSModuleOnce( + globalObject->vm(), + jsCast(globalObject), + moduleObject, + moduleObject->m_dirname.get(), + moduleObject->m_filename.get(), + exception); + + if (exception.get()) { + // On error, remove the module from the require map/ + // so that it can be re-evaluated on the next require. + globalObject->requireMap()->remove(globalObject, moduleObject->id()); + + throwException(globalObject, throwScope, exception.get()); + exception.clear(); + return JSValue::encode({}); + } + + RELEASE_AND_RETURN(throwScope, JSValue::encode(jsBoolean(true))); +} + +JSC_DEFINE_HOST_FUNCTION(requireResolvePathsFunction, (JSGlobalObject * globalObject, CallFrame* callframe)) +{ + return JSValue::encode(JSC::constructEmptyArray(globalObject, nullptr, 0)); +} + +static const HashTableValue RequireResolveFunctionPrototypeValues[] = { + { "paths"_s, static_cast(JSC::PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, requireResolvePathsFunction, 1 } }, +}; + +class RequireResolveFunctionPrototype final : public JSC::JSNonFinalObject { +public: + using Base = JSC::JSNonFinalObject; + static RequireResolveFunctionPrototype* create( JSC::JSGlobalObject* globalObject) { auto& vm = globalObject->vm(); - JSC::Structure* structure = JSC::Structure::create( - vm, - globalObject, - globalObject->objectPrototype(), - JSC::TypeInfo(JSC::ObjectType, JSCommonJSModule::StructureFlags), - JSCommonJSModule::info(), - JSC::NonArray, - 6); - JSC::PropertyOffset offset; - auto clientData = WebCore::clientData(vm); + auto* structure = RequireResolveFunctionPrototype::createStructure(vm, globalObject, globalObject->functionPrototype()); + RequireResolveFunctionPrototype* prototype = new (NotNull, JSC::allocateCell(vm)) RequireResolveFunctionPrototype(vm, structure); + prototype->finishCreation(vm); + return prototype; + } - structure = structure->addPropertyTransition( - vm, - structure, - JSC::Identifier::fromString(vm, "exports"_s), - 0, - offset); + DECLARE_INFO; - structure = structure->addPropertyTransition( - vm, - structure, - JSC::Identifier::fromString(vm, "id"_s), - 0, - offset); + RequireResolveFunctionPrototype( + JSC::VM& vm, + JSC::Structure* structure) + : Base(vm, structure) + { + } - structure = structure->addPropertyTransition( - vm, - structure, - JSC::Identifier::fromString(vm, "filename"_s), - 0, - offset); + template + static JSC::GCClient::IsoSubspace* subspaceFor(JSC::VM& vm) + { + return &vm.plainObjectSpace(); + } - structure = structure->addPropertyTransition( - vm, - structure, - JSC::Identifier::fromString(vm, "loaded"_s), - 0, - offset); + void finishCreation(JSC::VM& vm); +}; - structure = structure->addPropertyTransition( - vm, - structure, - JSC::Identifier::fromString(vm, "path"_s), - 0, - offset); +static const HashTableValue RequireFunctionPrototypeValues[] = { + { "cache"_s, static_cast(JSC::PropertyAttribute::CustomAccessor), NoIntrinsic, { HashTableValue::GetterSetterType, Zig::jsRequireCacheGetter, Zig::jsRequireCacheSetter } }, +}; - structure = structure->addPropertyTransition( - vm, - structure, - JSC::Identifier::fromString(vm, "require"_s), - 0, - offset); +class RequireFunctionPrototype final : public JSC::JSNonFinalObject { +public: + using Base = JSC::JSNonFinalObject; + static RequireFunctionPrototype* create( + JSC::JSGlobalObject* globalObject) + { + auto& vm = globalObject->vm(); + + auto* structure = RequireFunctionPrototype::createStructure(vm, globalObject, globalObject->functionPrototype()); + RequireFunctionPrototype* prototype = new (NotNull, JSC::allocateCell(vm)) RequireFunctionPrototype(vm, structure); + prototype->finishCreation(vm); - return structure; + JSFunction* resolveFunction = JSFunction::create(vm, moduleRequireResolveCodeGenerator(vm), globalObject->globalScope(), JSFunction::createStructure(vm, globalObject, RequireResolveFunctionPrototype::create(globalObject))); + prototype->putDirect(vm, JSC::Identifier::fromString(vm, "resolve"_s), resolveFunction, PropertyAttribute::Function | 0); + + return prototype; } - static JSCommonJSModule* create( + RequireFunctionPrototype( JSC::VM& vm, - JSC::Structure* structure, - JSC::JSValue exportsObject, - JSC::JSString* id, - JSC::JSString* filename, - JSC::JSString* dirname, - JSC::JSValue requireFunction) + JSC::Structure* structure) + : Base(vm, structure) { - JSCommonJSModule* cell = new (NotNull, JSC::allocateCell(vm)) JSCommonJSModule(vm, structure); - cell->finishCreation(vm, exportsObject, id, filename, dirname, requireFunction); - return cell; } - JSValue exportsObject() + DECLARE_INFO; + + template + static JSC::GCClient::IsoSubspace* subspaceFor(JSC::VM& vm) { - return m_exportsObject.get(); + return &vm.plainObjectSpace(); } - JSValue id() + void finishCreation(JSC::VM& vm) { - return m_id.get(); + Base::finishCreation(vm); + ASSERT(inherits(vm, info())); + + reifyStaticProperties(vm, info(), RequireFunctionPrototypeValues, *this); + JSC::JSFunction* requireDotMainFunction = JSFunction::create( + vm, + moduleMainCodeGenerator(vm), + globalObject()->globalScope()); + + this->putDirect( + vm, + JSC::Identifier::fromString(vm, "main"_s), + JSC::GetterSetter::create(vm, globalObject(), requireDotMainFunction, JSValue()), + PropertyAttribute::Builtin | PropertyAttribute::Accessor | PropertyAttribute::ReadOnly | 0); + this->putDirect(vm, JSC::Identifier::fromString(vm, "extensions"_s), constructEmptyObject(globalObject()), 0); } +}; - DECLARE_VISIT_CHILDREN; +JSC_DEFINE_CUSTOM_GETTER(getterFilename, (JSC::JSGlobalObject * globalObject, JSC::EncodedJSValue thisValue, JSC::PropertyName)) +{ + JSCommonJSModule* thisObject = jsDynamicCast(JSValue::decode(thisValue)); + if (UNLIKELY(!thisObject)) { + return JSValue::encode(jsUndefined()); + } + return JSValue::encode(thisObject->m_filename.get()); +} +JSC_DEFINE_CUSTOM_GETTER(getterId, (JSC::JSGlobalObject * globalObject, JSC::EncodedJSValue thisValue, JSC::PropertyName)) +{ + JSCommonJSModule* thisObject = jsDynamicCast(JSValue::decode(thisValue)); + if (UNLIKELY(!thisObject)) { + return JSValue::encode(jsUndefined()); + } + return JSValue::encode(thisObject->m_id.get()); +} - static bool put( - JSC::JSCell* cell, - JSC::JSGlobalObject* globalObject, - JSC::PropertyName propertyName, - JSC::JSValue value, - JSC::PutPropertySlot& slot) - { +JSC_DEFINE_CUSTOM_GETTER(getterPath, (JSC::JSGlobalObject * globalObject, JSC::EncodedJSValue thisValue, JSC::PropertyName)) +{ + JSCommonJSModule* thisObject = jsDynamicCast(JSValue::decode(thisValue)); + if (UNLIKELY(!thisObject)) { + return JSValue::encode(jsUndefined()); + } + return JSValue::encode(thisObject->m_id.get()); +} - auto& vm = globalObject->vm(); - auto* clientData = WebCore::clientData(vm); - auto throwScope = DECLARE_THROW_SCOPE(vm); +JSC_DEFINE_CUSTOM_SETTER(setterPath, + (JSC::JSGlobalObject * globalObject, JSC::EncodedJSValue thisValue, + JSC::EncodedJSValue value, JSC::PropertyName propertyName)) +{ + JSCommonJSModule* thisObject = jsDynamicCast(JSValue::decode(thisValue)); + if (!thisObject) + return false; - if (propertyName == clientData->builtinNames().exportsPublicName()) { - JSCommonJSModule* thisObject = jsCast(cell); - ASSERT_GC_OBJECT_INHERITS(thisObject, info()); + thisObject->m_id.set(globalObject->vm(), thisObject, JSValue::decode(value).toString(globalObject)); + return true; +} - // It will crash if we attempt to assign Object.defineProperty() result to a JSMap*. - if (UNLIKELY(slot.thisValue() != thisObject)) - RELEASE_AND_RETURN(throwScope, JSObject::definePropertyOnReceiver(globalObject, propertyName, value, slot)); +JSC_DEFINE_CUSTOM_SETTER(setterFilename, + (JSC::JSGlobalObject * globalObject, JSC::EncodedJSValue thisValue, + JSC::EncodedJSValue value, JSC::PropertyName propertyName)) +{ + JSCommonJSModule* thisObject = jsDynamicCast(JSValue::decode(thisValue)); + if (!thisObject) + return false; - JSValue prevValue = thisObject->m_exportsObject.get(); + thisObject->m_filename.set(globalObject->vm(), thisObject, JSValue::decode(value).toString(globalObject)); + return true; +} - // TODO: refactor this to not go through ESM path and we don't need to do this check. - // IF we do this on every call, it causes GC to happen in a place that it may not be able to. - // This breaks loading Bluebird in some cases, for example. - // We need to update the require map "live" because otherwise the code in Discord.js will break - // The bug is something to do with exception handling which causes GC to happen in the error path and then boom. - if (prevValue != value && (!prevValue.isCell() || !value.isCell() || prevValue.asCell()->type() != value.asCell()->type())) { - jsCast(globalObject)->requireMap()->set(globalObject, thisObject->id(), value); - } +JSC_DEFINE_CUSTOM_SETTER(setterId, + (JSC::JSGlobalObject * globalObject, JSC::EncodedJSValue thisValue, + JSC::EncodedJSValue value, JSC::PropertyName propertyName)) +{ + JSCommonJSModule* thisObject = jsDynamicCast(JSValue::decode(thisValue)); + if (!thisObject) + return false; - thisObject->m_exportsObject.set(vm, thisObject, value); - } + thisObject->m_id.set(globalObject->vm(), thisObject, JSValue::decode(value).toString(globalObject)); + return true; +} + +static JSValue createLoaded(VM& vm, JSObject* object) +{ + JSCommonJSModule* cjs = jsCast(object); + return jsBoolean(cjs->hasEvaluated); +} +static JSValue createParent(VM& vm, JSObject* object) +{ + return jsUndefined(); +} +static JSValue createChildren(VM& vm, JSObject* object) +{ + return constructEmptyArray(object->globalObject(), nullptr, 0); +} + +static const struct HashTableValue JSCommonJSModulePrototypeTableValues[] = { + { "children"_s, static_cast(PropertyAttribute::PropertyCallback | PropertyAttribute::DontEnum | 0), NoIntrinsic, { HashTableValue::LazyPropertyType, createChildren } }, + { "filename"_s, static_cast(PropertyAttribute::CustomAccessor), NoIntrinsic, { HashTableValue::GetterSetterType, getterFilename, setterFilename } }, + { "id"_s, static_cast(PropertyAttribute::CustomAccessor), NoIntrinsic, { HashTableValue::GetterSetterType, getterId, setterId } }, + { "loaded"_s, static_cast(PropertyAttribute::PropertyCallback | PropertyAttribute::DontEnum | 0), NoIntrinsic, { HashTableValue::LazyPropertyType, createLoaded } }, + { "parent"_s, static_cast(PropertyAttribute::PropertyCallback | PropertyAttribute::DontEnum | 0), NoIntrinsic, { HashTableValue::LazyPropertyType, createParent } }, + { "path"_s, static_cast(PropertyAttribute::CustomAccessor), NoIntrinsic, { HashTableValue::GetterSetterType, getterPath, setterPath } }, +}; - RELEASE_AND_RETURN(throwScope, Base::put(cell, globalObject, propertyName, value, slot)); +class JSCommonJSModulePrototype final : public JSC::JSNonFinalObject { +public: + using Base = JSC::JSNonFinalObject; + static JSCommonJSModulePrototype* create( + JSC::VM& vm, + JSC::JSGlobalObject* globalObject, + JSC::Structure* structure) + { + JSCommonJSModulePrototype* prototype = new (NotNull, JSC::allocateCell(vm)) JSCommonJSModulePrototype(vm, structure); + prototype->finishCreation(vm, globalObject); + return prototype; } DECLARE_INFO; - template static JSC::GCClient::IsoSubspace* subspaceFor(JSC::VM& vm) + + JSCommonJSModulePrototype( + JSC::VM& vm, + JSC::Structure* structure) + : Base(vm, structure) { - if constexpr (mode == JSC::SubspaceAccess::Concurrently) - return nullptr; - return WebCore::subspaceForImpl( - vm, - [](auto& spaces) { return spaces.m_clientSubspaceForCommonJSModuleRecord.get(); }, - [](auto& spaces, auto&& space) { spaces.m_clientSubspaceForCommonJSModuleRecord = std::forward(space); }, - [](auto& spaces) { return spaces.m_subspaceForCommonJSModuleRecord.get(); }, - [](auto& spaces, auto&& space) { spaces.m_subspaceForCommonJSModuleRecord = std::forward(space); }); } - JSCommonJSModule(JSC::VM& vm, JSC::Structure* structure) - : Base(vm, structure) + template + static JSC::GCClient::IsoSubspace* subspaceFor(JSC::VM& vm) { + return &vm.plainObjectSpace(); + } + + void finishCreation(JSC::VM& vm, JSC::JSGlobalObject* globalObject) + { + Base::finishCreation(vm); + ASSERT(inherits(vm, info())); + reifyStaticProperties(vm, JSCommonJSModule::info(), JSCommonJSModulePrototypeTableValues, *this); + + JSFunction* requireFunction = JSFunction::create( + vm, + moduleRequireCodeGenerator(vm), + globalObject->globalScope(), + JSFunction::createStructure(vm, globalObject, RequireFunctionPrototype::create(globalObject))); + + this->putDirect(vm, clientData(vm)->builtinNames().requirePublicName(), requireFunction, PropertyAttribute::Builtin | PropertyAttribute::Function | 0); + + this->putDirectNativeFunction( + vm, + globalObject, + clientData(vm)->builtinNames().requirePrivateName(), + 2, + jsFunctionRequireCommonJS, ImplementationVisibility::Public, NoIntrinsic, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontDelete | 0); } }; -Structure* createCommonJSModuleStructure( - Zig::GlobalObject* globalObject) +const JSC::ClassInfo JSCommonJSModulePrototype::s_info = { "Module"_s, &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSCommonJSModulePrototype) }; + +void JSCommonJSModule::finishCreation(JSC::VM& vm, JSC::JSString* id, JSC::JSString* filename, JSC::JSString* dirname, JSC::JSSourceCode* sourceCode) { - return JSCommonJSModule::createStructure(globalObject); + Base::finishCreation(vm); + ASSERT(inherits(vm, info())); + m_id.set(vm, this, id); + m_filename.set(vm, this, filename); + m_dirname.set(vm, this, dirname); + this->sourceCode.set(vm, this, sourceCode); } -template -void JSCommonJSModule::visitChildrenImpl(JSCell* cell, Visitor& visitor) +JSC::Structure* JSCommonJSModule::createStructure( + JSC::JSGlobalObject* globalObject) { - JSCommonJSModule* thisObject = jsCast(cell); - ASSERT_GC_OBJECT_INHERITS(thisObject, info()); - Base::visitChildren(thisObject, visitor); - visitor.append(thisObject->m_exportsObject); - visitor.append(thisObject->m_id); -} + auto& vm = globalObject->vm(); -DEFINE_VISIT_CHILDREN(JSCommonJSModule); -const JSC::ClassInfo JSCommonJSModule::s_info = { "Module"_s, &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSCommonJSModule) }; + auto* prototype = JSCommonJSModulePrototype::create(vm, globalObject, JSCommonJSModulePrototype::createStructure(vm, globalObject, globalObject->objectPrototype())); -static bool canPerformFastEnumeration(Structure* s) + // Do not set the number of inline properties on this structure + // there may be an off-by-one error in the Structure which causes `require.id` to become the require + return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info(), NonArray); +} + +JSCommonJSModule* JSCommonJSModule::create( + JSC::VM& vm, + JSC::Structure* structure, + JSC::JSString* id, + JSC::JSString* filename, + JSC::JSString* dirname, + JSC::JSSourceCode* sourceCode) { - if (s->typeInfo().overridesGetOwnPropertySlot()) - return false; - if (s->typeInfo().overridesAnyFormOfGetOwnPropertyNames()) - return false; - if (hasIndexedProperties(s->indexingType())) - return false; - if (s->hasAnyKindOfGetterSetterProperties()) - return false; - if (s->isUncacheableDictionary()) - return false; - if (s->hasUnderscoreProtoPropertyExcludingOriginalProto()) - return false; - return true; + JSCommonJSModule* cell = new (NotNull, JSC::allocateCell(vm)) JSCommonJSModule(vm, structure); + cell->finishCreation(vm, id, filename, dirname, sourceCode); + return cell; } -JSValue evaluateCommonJSModule( - Zig::GlobalObject* globalObject, - Ref sourceProvider, - const WTF::String& sourceURL, - ResolvedSource source) +JSC_DEFINE_HOST_FUNCTION(jsFunctionCreateCommonJSModule, (JSGlobalObject * globalObject, CallFrame* callframe)) { auto& vm = globalObject->vm(); - auto throwScope = DECLARE_THROW_SCOPE(vm); - auto* requireMapKey = jsString(vm, sourceURL); + auto id = callframe->argument(0).toWTFString(globalObject); - JSC::JSObject* exportsObject = source.commonJSExportsLen < 64 - ? JSC::constructEmptyObject(globalObject, globalObject->objectPrototype(), source.commonJSExportsLen) - : JSC::constructEmptyObject(globalObject, globalObject->objectPrototype()); - auto index = sourceURL.reverseFind('/', sourceURL.length()); + JSValue object = callframe->argument(1); + + return JSValue::encode( + JSCommonJSModule::create( + jsCast(globalObject), + id, + object, callframe->argument(2).isBoolean() && callframe->argument(2).asBoolean())); +} + +JSCommonJSModule* JSCommonJSModule::create( + Zig::GlobalObject* globalObject, + const WTF::String& key, + JSValue exportsObject, + bool hasEvaluated) +{ + auto& vm = globalObject->vm(); + JSString* requireMapKey = JSC::jsStringWithCache(vm, key); + auto index = key.reverseFind('/', key.length()); JSString* dirname = jsEmptyString(vm); JSString* filename = requireMapKey; if (index != WTF::notFound) { dirname = JSC::jsSubstring(globalObject, requireMapKey, 0, index); } - globalObject->requireMap()->set(globalObject, requireMapKey, exportsObject); - auto* requireFunction = Zig::ImportMetaObject::createRequireFunction(vm, globalObject, sourceURL); - - JSC::SourceCode inputSource( - WTFMove(sourceProvider)); - - auto* moduleObject = JSCommonJSModule::create( + auto* out = JSCommonJSModule::create( vm, globalObject->CommonJSModuleObjectStructure(), - exportsObject, - requireMapKey, filename, dirname, requireFunction); + requireMapKey, filename, dirname, nullptr); - if (UNLIKELY(throwScope.exception())) { - globalObject->requireMap()->remove(globalObject, requireMapKey); - RELEASE_AND_RETURN(throwScope, JSValue()); - } + out->putDirect(vm, WebCore::clientData(vm)->builtinNames().exportsPublicName(), exportsObject, exportsObject.isCell() && exportsObject.isCallable() ? JSC::PropertyAttribute::Function | 0 : 0); + out->hasEvaluated = hasEvaluated; + return out; +} - JSC::Structure* thisObjectStructure = globalObject->commonJSFunctionArgumentsStructure(); - JSC::JSObject* thisObject = JSC::constructEmptyObject( - vm, - thisObjectStructure); - thisObject->putDirectOffset( - vm, - 0, - moduleObject); +void JSCommonJSModule::destroy(JSC::JSCell* cell) +{ + static_cast(cell)->JSCommonJSModule::~JSCommonJSModule(); +} - thisObject->putDirectOffset( - vm, - 1, - exportsObject); +JSCommonJSModule::~JSCommonJSModule() +{ +} - thisObject->putDirectOffset( - vm, - 2, - dirname); +bool JSCommonJSModule::evaluate( + Zig::GlobalObject* globalObject, + const WTF::String& key, + const SyntheticSourceProvider::SyntheticSourceGenerator& generator) +{ + Vector propertyNames; + JSC::MarkedArgumentBuffer arguments; + auto& vm = globalObject->vm(); + auto throwScope = DECLARE_THROW_SCOPE(vm); + generator(globalObject, JSC::Identifier::fromString(vm, key), propertyNames, arguments); + RETURN_IF_EXCEPTION(throwScope, false); + + bool needsPut = false; + auto getDefaultValue = [&]() -> JSValue { + size_t defaultValueIndex = propertyNames.find(vm.propertyNames->defaultKeyword); + auto cjsSymbol = Identifier::fromUid(vm.symbolRegistry().symbolForKey("CommonJS"_s)); + + if (defaultValueIndex != notFound && propertyNames.contains(cjsSymbol)) { + JSValue current = arguments.at(defaultValueIndex); + needsPut = true; + return current; + } - thisObject->putDirectOffset( - vm, - 3, - filename); + size_t count = propertyNames.size(); + JSValue existingDefaultObject = this->getIfPropertyExists(globalObject, WebCore::clientData(vm)->builtinNames().exportsPublicName()); + JSObject* defaultObject; - thisObject->putDirectOffset( - vm, - 4, - requireFunction); + if (existingDefaultObject && existingDefaultObject.isObject()) { + defaultObject = jsCast(existingDefaultObject); + } else { + defaultObject = JSC::constructEmptyObject(globalObject, globalObject->objectPrototype()); + needsPut = true; + } - { - WTF::NakedPtr exception; - globalObject->m_BunCommonJSModuleValue.set(vm, globalObject, thisObject); - JSC::evaluate(globalObject, inputSource, globalObject->globalThis(), exception); - - if (exception.get()) { - throwScope.throwException(globalObject, exception->value()); - exception.clear(); - RELEASE_AND_RETURN(throwScope, JSValue()); + for (size_t i = 0; i < count; ++i) { + auto prop = propertyNames[i]; + unsigned attributes = 0; + + JSValue value = arguments.at(i); + + if (prop.isSymbol()) { + attributes |= JSC::PropertyAttribute::DontEnum; + } + + if (value.isCell() && value.isCallable()) { + attributes |= JSC::PropertyAttribute::Function; + } + + defaultObject->putDirect(vm, prop, value, attributes); } - } - if (UNLIKELY(throwScope.exception())) { - globalObject->requireMap()->remove(globalObject, requireMapKey); - RELEASE_AND_RETURN(throwScope, JSValue()); + return defaultObject; + }; + + JSValue defaultValue = getDefaultValue(); + if (needsPut) { + unsigned attributes = 0; + + if (defaultValue.isCell() && defaultValue.isCallable()) { + attributes |= JSC::PropertyAttribute::Function; + } + + this->putDirect(vm, WebCore::clientData(vm)->builtinNames().exportsPublicName(), defaultValue, attributes); } - JSValue result = moduleObject->exportsObject(); - - // The developer can do something like: - // - // Object.defineProperty(module, 'exports', {get: getter}) - // - // In which case, the exports object is now a GetterSetter object. - // - // We can't return a GetterSetter object to ESM code, so we need to call it. - if (!result.isEmpty() && (result.isGetterSetter() || result.isCustomGetterSetter())) { - auto* clientData = WebCore::clientData(vm); - - // TODO: is there a faster way to call these getters? We shouldn't need to do a full property lookup. - // - // we use getIfPropertyExists just incase a pathological devleoper did: - // - // - Object.defineProperty(module, 'exports', {get: getter}) - // - delete module.exports - // - if (result.isGetterSetter()) { - JSC::GetterSetter* getter = jsCast(result); - result = getter->callGetter(globalObject, moduleObject); + this->hasEvaluated = true; + RELEASE_AND_RETURN(throwScope, true); +} + +void JSCommonJSModule::toSyntheticSource(JSC::JSGlobalObject* globalObject, + JSC::Identifier moduleKey, + Vector& exportNames, + JSC::MarkedArgumentBuffer& exportValues) +{ + auto result = this->exportsObject(); + + auto& vm = globalObject->vm(); + exportNames.append(vm.propertyNames->defaultKeyword); + exportValues.append(result); + + // This exists to tell ImportMetaObject.ts that this is a CommonJS module. + exportNames.append(Identifier::fromUid(vm.symbolRegistry().symbolForKey("CommonJS"_s))); + exportValues.append(jsNumber(0)); + + if (result.isObject()) { + auto* exports = asObject(result); + + auto* structure = exports->structure(); + uint32_t size = structure->inlineSize() + structure->outOfLineSize(); + exportNames.reserveCapacity(size + 2); + exportValues.ensureCapacity(size + 2); + + if (canPerformFastEnumeration(structure)) { + exports->structure()->forEachProperty(vm, [&](const PropertyTableEntry& entry) -> bool { + auto key = entry.key(); + if (key->isSymbol() || key == vm.propertyNames->defaultKeyword || entry.attributes() & PropertyAttribute::DontEnum) + return true; + + exportNames.append(Identifier::fromUid(vm, key)); + + JSValue value = exports->getDirect(entry.offset()); + + exportValues.append(value); + return true; + }); } else { - result = moduleObject->getIfPropertyExists(globalObject, clientData->builtinNames().exportsPublicName()); - } + auto catchScope = DECLARE_CATCH_SCOPE(vm); + JSC::PropertyNameArray properties(vm, JSC::PropertyNameMode::Strings, JSC::PrivateSymbolMode::Exclude); + exports->methodTable()->getOwnPropertyNames(exports, globalObject, properties, DontEnumPropertiesMode::Exclude); + if (catchScope.exception()) { + catchScope.clearExceptionExceptTermination(); + return; + } + + for (auto property : properties) { + if (UNLIKELY(property.isEmpty() || property.isNull() || property.isPrivateName() || property.isSymbol())) + continue; + + // ignore constructor + if (property == vm.propertyNames->constructor || property == vm.propertyNames->defaultKeyword) + continue; + + JSC::PropertySlot slot(exports, PropertySlot::InternalMethodType::Get); + if (!exports->getPropertySlot(globalObject, property, slot)) + continue; + + exportNames.append(property); - if (UNLIKELY(throwScope.exception())) { - // Unlike getters on properties of the exports object - // When the exports object itself is a getter and it throws - // There's not a lot we can do - // so we surface that error - globalObject->requireMap()->remove(globalObject, requireMapKey); - RELEASE_AND_RETURN(throwScope, JSValue()); + JSValue getterResult = slot.getValue(globalObject, property); + + // If it throws, we keep them in the exports list, but mark it as undefined + // This is consistent with what Node.js does. + if (catchScope.exception()) { + catchScope.clearException(); + getterResult = jsUndefined(); + } + + exportValues.append(getterResult); + } } } +} - globalObject->requireMap()->set(globalObject, requireMapKey, result); +JSValue JSCommonJSModule::exportsObject() +{ + return this->get(globalObject(), JSC::PropertyName(clientData(vm())->builtinNames().exportsPublicName())); +} + +JSValue JSCommonJSModule::id() +{ + return m_id.get(); +} + +bool JSCommonJSModule::put( + JSC::JSCell* cell, + JSC::JSGlobalObject* globalObject, + JSC::PropertyName propertyName, + JSC::JSValue value, + JSC::PutPropertySlot& slot) +{ + + auto& vm = globalObject->vm(); + auto* clientData = WebCore::clientData(vm); + auto throwScope = DECLARE_THROW_SCOPE(vm); + + RELEASE_AND_RETURN(throwScope, Base::put(cell, globalObject, propertyName, value, slot)); +} + +template JSC::GCClient::IsoSubspace* JSCommonJSModule::subspaceFor(JSC::VM& vm) +{ + if constexpr (mode == JSC::SubspaceAccess::Concurrently) + return nullptr; + return WebCore::subspaceForImpl( + vm, + [](auto& spaces) { return spaces.m_clientSubspaceForCommonJSModuleRecord.get(); }, + [](auto& spaces, auto&& space) { spaces.m_clientSubspaceForCommonJSModuleRecord = std::forward(space); }, + [](auto& spaces) { return spaces.m_subspaceForCommonJSModuleRecord.get(); }, + [](auto& spaces, auto&& space) { spaces.m_subspaceForCommonJSModuleRecord = std::forward(space); }); +} + +Structure* createCommonJSModuleStructure( + Zig::GlobalObject* globalObject) +{ + return JSCommonJSModule::createStructure(globalObject); +} + +template +void JSCommonJSModule::visitChildrenImpl(JSCell* cell, Visitor& visitor) +{ + JSCommonJSModule* thisObject = jsCast(cell); + ASSERT_GC_OBJECT_INHERITS(thisObject, info()); + Base::visitChildren(thisObject, visitor); + visitor.append(thisObject->m_id); + visitor.append(thisObject->sourceCode); + visitor.append(thisObject->m_filename); + visitor.append(thisObject->m_dirname); +} + +DEFINE_VISIT_CHILDREN(JSCommonJSModule); +const JSC::ClassInfo JSCommonJSModule::s_info = { "Module"_s, &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSCommonJSModule) }; +const JSC::ClassInfo RequireResolveFunctionPrototype::s_info = { "resolve"_s, &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(RequireResolveFunctionPrototype) }; +const JSC::ClassInfo RequireFunctionPrototype::s_info = { "require"_s, &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(RequireFunctionPrototype) }; + +JSC_DEFINE_HOST_FUNCTION(jsFunctionRequireCommonJS, (JSGlobalObject * lexicalGlobalObject, CallFrame* callframe)) +{ + auto* globalObject = jsCast(lexicalGlobalObject); + auto& vm = globalObject->vm(); + auto throwScope = DECLARE_THROW_SCOPE(vm); + + JSCommonJSModule* thisObject = jsDynamicCast(callframe->thisValue()); + if (!thisObject) + return throwVMTypeError(globalObject, throwScope); + + JSValue specifierValue = callframe->argument(0); + WTF::String specifier = specifierValue.toWTFString(globalObject); + RETURN_IF_EXCEPTION(throwScope, {}); + + WTF::String referrer = thisObject->id().toWTFString(globalObject); + RETURN_IF_EXCEPTION(throwScope, {}); + + BunString specifierStr = Bun::toString(specifier); + BunString referrerStr = Bun::toString(referrer); + + JSValue fetchResult = Bun::fetchCommonJSModule( + globalObject, + jsDynamicCast(callframe->argument(1)), + specifierValue, + &specifierStr, + &referrerStr); + + RELEASE_AND_RETURN(throwScope, JSValue::encode(fetchResult)); +} + +void RequireResolveFunctionPrototype::finishCreation(JSC::VM& vm) +{ + Base::finishCreation(vm); + ASSERT(inherits(vm, info())); - return result; + reifyStaticProperties(vm, RequireResolveFunctionPrototype::info(), RequireResolveFunctionPrototypeValues, *this); + JSC_TO_STRING_TAG_WITHOUT_TRANSITION(); } -JSC::SourceCode createCommonJSModule( +bool JSCommonJSModule::evaluate( Zig::GlobalObject* globalObject, + const WTF::String& key, ResolvedSource source) { - auto sourceURL = Zig::toStringCopy(source.source_url); - auto sourceProvider = Zig::SourceProvider::create(globalObject, source, JSC::SourceProviderSourceType::Program); + auto& vm = globalObject->vm(); + auto sourceProvider = Zig::SourceProvider::create(jsCast(globalObject), source, JSC::SourceProviderSourceType::Program); + JSC::SourceCode rawInputSource( + WTFMove(sourceProvider)); - return JSC::SourceCode( - JSC::SyntheticSourceProvider::create( - [source, sourceProvider = WTFMove(sourceProvider), sourceURL](JSC::JSGlobalObject* globalObject, - JSC::Identifier moduleKey, - Vector& exportNames, - JSC::MarkedArgumentBuffer& exportValues) -> void { - JSValue result = evaluateCommonJSModule( - jsCast(globalObject), - WTFMove(sourceProvider), - sourceURL, - source); - - if (!result) { - return; - } + if (this->hasEvaluated) + return true; - auto& vm = globalObject->vm(); + this->sourceCode.set(vm, this, JSC::JSSourceCode::create(vm, WTFMove(rawInputSource))); + WTF::NakedPtr exception; - exportNames.append(vm.propertyNames->defaultKeyword); - exportValues.append(result); - - // This exists to tell ImportMetaObject.ts that this is a CommonJS module. - exportNames.append(Identifier::fromUid(vm.symbolRegistry().symbolForKey("CommonJS"_s))); - exportValues.append(jsNumber(0)); - - if (result.isObject()) { - DeferGCForAWhile deferGC(vm); - auto* exports = asObject(result); - - auto* structure = exports->structure(); - uint32_t size = structure->inlineSize() + structure->outOfLineSize(); - exportNames.reserveCapacity(size + 2); - exportValues.ensureCapacity(size + 2); - - if (canPerformFastEnumeration(structure)) { - exports->structure()->forEachProperty(vm, [&](const PropertyTableEntry& entry) -> bool { - auto key = entry.key(); - if (key->isSymbol() || key == vm.propertyNames->defaultKeyword || entry.attributes() & PropertyAttribute::DontEnum) - return true; - - exportNames.append(Identifier::fromUid(vm, key)); - - JSValue value = exports->getDirect(entry.offset()); - - exportValues.append(value); - return true; - }); - } else { - auto catchScope = DECLARE_CATCH_SCOPE(vm); - JSC::PropertyNameArray properties(vm, JSC::PropertyNameMode::Strings, JSC::PrivateSymbolMode::Exclude); - exports->methodTable()->getOwnPropertyNames(exports, globalObject, properties, DontEnumPropertiesMode::Exclude); - if (catchScope.exception()) { - catchScope.clearExceptionExceptTermination(); - return; - } + evaluateCommonJSModuleOnce(vm, globalObject, this, this->m_dirname.get(), this->m_filename.get(), exception); - for (auto property : properties) { - if (UNLIKELY(property.isEmpty() || property.isNull() || property.isPrivateName() || property.isSymbol())) - continue; + if (exception.get()) { + // On error, remove the module from the require map/ + // so that it can be re-evaluated on the next require. + globalObject->requireMap()->remove(globalObject, this->id()); - // ignore constructor - if (property == vm.propertyNames->constructor || property == vm.propertyNames->defaultKeyword) - continue; + auto throwScope = DECLARE_THROW_SCOPE(vm); + throwException(globalObject, throwScope, exception.get()); + exception.clear(); - JSC::PropertySlot slot(exports, PropertySlot::InternalMethodType::Get); - if (!exports->getPropertySlot(globalObject, property, slot)) - continue; + return false; + } - exportNames.append(property); + return true; +} - JSValue getterResult = slot.getValue(globalObject, property); +std::optional createCommonJSModule( + Zig::GlobalObject* globalObject, + ResolvedSource source) +{ + JSCommonJSModule* moduleObject; + WTF::String sourceURL = toStringCopy(source.source_url); - // If it throws, we keep them in the exports list, but mark it as undefined - // This is consistent with what Node.js does. - if (catchScope.exception()) { - catchScope.clearException(); - getterResult = jsUndefined(); - } + JSValue specifierValue = Bun::toJS(globalObject, source.specifier); + JSValue entry = globalObject->requireMap()->get(globalObject, specifierValue); - exportValues.append(getterResult); + auto sourceProvider = Zig::SourceProvider::create(jsCast(globalObject), source, JSC::SourceProviderSourceType::Program); + SourceOrigin sourceOrigin = sourceProvider->sourceOrigin(); + + if (entry) { + moduleObject = jsDynamicCast(entry); + } + + if (!moduleObject) { + auto& vm = globalObject->vm(); + auto* requireMapKey = jsStringWithCache(vm, sourceURL); + auto index = sourceURL.reverseFind('/', sourceURL.length()); + JSString* dirname = jsEmptyString(vm); + JSString* filename = requireMapKey; + if (index != WTF::notFound) { + dirname = JSC::jsSubstring(globalObject, requireMapKey, 0, index); + } + + JSC::SourceCode rawInputSource( + WTFMove(sourceProvider)); + + moduleObject = JSCommonJSModule::create( + vm, + globalObject->CommonJSModuleObjectStructure(), + requireMapKey, filename, dirname, JSC::JSSourceCode::create(vm, WTFMove(rawInputSource))); + + moduleObject->putDirect(vm, + WebCore::clientData(vm)->builtinNames().exportsPublicName(), + JSC::constructEmptyObject(globalObject, globalObject->objectPrototype()), 0); + + globalObject->requireMap()->set(globalObject, requireMapKey, moduleObject); + } + + return JSC::SourceCode( + JSC::SyntheticSourceProvider::create( + [](JSC::JSGlobalObject* lexicalGlobalObject, + JSC::Identifier moduleKey, + Vector& exportNames, + JSC::MarkedArgumentBuffer& exportValues) -> void { + auto* globalObject = jsCast(lexicalGlobalObject); + auto& vm = globalObject->vm(); + + JSValue keyValue = identifierToJSValue(vm, moduleKey); + JSValue entry = globalObject->requireMap()->get(globalObject, keyValue); + + if (entry) { + if (auto* moduleObject = jsDynamicCast(entry)) { + if (!moduleObject->hasEvaluated) { + WTF::NakedPtr exception; + if (!evaluateCommonJSModuleOnce( + vm, + globalObject, + moduleObject, + moduleObject->m_dirname.get(), + moduleObject->m_filename.get(), exception)) { + + // On error, remove the module from the require map + // so that it can be re-evaluated on the next require. + globalObject->requireMap()->remove(globalObject, moduleObject->id()); + + auto scope = DECLARE_THROW_SCOPE(vm); + throwException(globalObject, scope, exception.get()); + exception.clear(); + return; + } } + + moduleObject->toSyntheticSource(globalObject, moduleKey, exportNames, exportValues); } } }, - SourceOrigin(WTF::URL::fileURLWithFileSystemPath(sourceURL)), + sourceOrigin, sourceURL)); } - } \ No newline at end of file diff --git a/src/bun.js/bindings/CommonJSModuleRecord.h b/src/bun.js/bindings/CommonJSModuleRecord.h index 86daf875d..48f14b39c 100644 --- a/src/bun.js/bindings/CommonJSModuleRecord.h +++ b/src/bun.js/bindings/CommonJSModuleRecord.h @@ -6,14 +6,90 @@ class GlobalObject; } namespace JSC { class SourceCode; +class JSSourceCode; +class ProgramExecutable; +class AbstractModuleRecord; } namespace Bun { +JSC_DECLARE_HOST_FUNCTION(jsFunctionCreateCommonJSModule); +JSC_DECLARE_HOST_FUNCTION(jsFunctionLoadModule); + +class JSCommonJSModule final : public JSC::JSDestructibleObject { +public: + using Base = JSC::JSDestructibleObject; + static constexpr unsigned StructureFlags = Base::StructureFlags | JSC::OverridesPut; + + mutable JSC::WriteBarrier m_id; + mutable JSC::WriteBarrier m_filename; + mutable JSC::WriteBarrier m_dirname; + mutable JSC::WriteBarrier sourceCode; + + static void destroy(JSC::JSCell*); + ~JSCommonJSModule(); + + void finishCreation(JSC::VM& vm, + JSC::JSString* id, JSC::JSString* filename, + JSC::JSString* dirname, JSC::JSSourceCode* sourceCode); + + static JSC::Structure* createStructure(JSC::JSGlobalObject* globalObject); + + bool evaluate(Zig::GlobalObject* globalObject, const WTF::String& sourceURL, ResolvedSource resolvedSource); + bool evaluate(Zig::GlobalObject* globalObject, const WTF::String& key, const SyntheticSourceProvider::SyntheticSourceGenerator& generator); + + static JSCommonJSModule* create(JSC::VM& vm, JSC::Structure* structure, + JSC::JSString* id, + JSC::JSString* filename, + JSC::JSString* dirname, JSC::JSSourceCode* sourceCode); + + static JSCommonJSModule* create( + Zig::GlobalObject* globalObject, + const WTF::String& key, + JSValue exportsObject, + bool hasEvaluated = false); + + static JSCommonJSModule* create( + Zig::GlobalObject* globalObject, + const WTF::String& key, + ResolvedSource resolvedSource); + + void toSyntheticSource(JSC::JSGlobalObject* globalObject, + JSC::Identifier moduleKey, + Vector& exportNames, + JSC::MarkedArgumentBuffer& exportValues); + + JSValue exportsObject(); + JSValue id(); + + DECLARE_VISIT_CHILDREN; + + static bool put(JSC::JSCell* cell, JSC::JSGlobalObject* globalObject, + JSC::PropertyName propertyName, JSC::JSValue value, + JSC::PutPropertySlot& slot); + + DECLARE_INFO; + template + static JSC::GCClient::IsoSubspace* subspaceFor(JSC::VM& vm); + + bool hasEvaluated = false; + + JSCommonJSModule(JSC::VM& vm, JSC::Structure* structure) + : Base(vm, structure) + { + } +}; + +JSCommonJSModule* createCommonJSModuleWithoutRunning( + Zig::GlobalObject* globalObject, + Ref sourceProvider, + const WTF::String& sourceURL, + ResolvedSource source); + JSC::Structure* createCommonJSModuleStructure( Zig::GlobalObject* globalObject); -JSC::SourceCode createCommonJSModule( +std::optional createCommonJSModule( Zig::GlobalObject* globalObject, ResolvedSource source); diff --git a/src/bun.js/bindings/ImportMetaObject.cpp b/src/bun.js/bindings/ImportMetaObject.cpp index a53712823..d201dafca 100644 --- a/src/bun.js/bindings/ImportMetaObject.cpp +++ b/src/bun.js/bindings/ImportMetaObject.cpp @@ -38,6 +38,9 @@ #include "JSDOMURL.h" #include "JavaScriptCore/JSNativeStdFunction.h" #include "JavaScriptCore/GetterSetter.h" +#include +#include +#include namespace Zig { using namespace JSC; @@ -83,10 +86,12 @@ static EncodedJSValue functionRequireResolve(JSC::JSGlobalObject* globalObject, // require.resolve also supports a paths array // we only support a single path if (!fromValue.isUndefinedOrNull() && fromValue.isObject()) { - if (JSValue pathsValue = fromValue.getObject()->getIfPropertyExists(globalObject, JSC::Identifier::fromString(vm, "paths"_s))) { - if (JSC::JSArray* array = JSC::jsDynamicCast(pathsValue)) { - if (array->length() > 0) { - fromValue = array->getIndex(globalObject, 0); + if (auto pathsObject = fromValue.getObject()->getIfPropertyExists(globalObject, JSC::Identifier::fromString(vm, "paths"_s))) { + if (pathsObject.isCell() && pathsObject.asCell()->type() == JSC::JSType::ArrayType) { + auto pathsArray = JSC::jsCast(pathsObject); + if (pathsArray->length() > 0) { + fromValue = pathsArray->getIndex(globalObject, 0); + RETURN_IF_EXCEPTION(scope, JSC::JSValue::encode(JSC::JSValue {})); } } } @@ -123,142 +128,135 @@ Zig::ImportMetaObject* Zig::ImportMetaObject::create(JSC::JSGlobalObject* global } JSC_DECLARE_HOST_FUNCTION(jsFunctionRequireResolve); +JSC_DEFINE_HOST_FUNCTION(jsFunctionRequireResolve, (JSC::JSGlobalObject * globalObject, JSC::CallFrame* callFrame)) +{ + return functionRequireResolve(globalObject, callFrame, callFrame->thisValue().toWTFString(globalObject)); +} -class JSRequireResolveFunctionPrototype final : public JSC::InternalFunction { -public: - using Base = JSC::InternalFunction; +JSC_DEFINE_CUSTOM_GETTER(jsRequireCacheGetter, (JSC::JSGlobalObject * globalObject, JSC::EncodedJSValue thisValue, JSC::PropertyName)) +{ + Zig::GlobalObject* thisObject = jsCast(globalObject); + return JSValue::encode(thisObject->lazyRequireCacheObject()); +} - static JSRequireResolveFunctionPrototype* create(JSC::VM& vm, JSC::JSGlobalObject* globalObject) - { - auto* structure = createStructure(vm, globalObject, globalObject->functionPrototype()); - JSRequireResolveFunctionPrototype* function = new (NotNull, JSC::allocateCell(vm)) JSRequireResolveFunctionPrototype(vm, structure); - function->finishCreation(vm); - return function; - } +JSC_DEFINE_CUSTOM_SETTER(jsRequireCacheSetter, + (JSC::JSGlobalObject * globalObject, JSC::EncodedJSValue thisValue, + JSC::EncodedJSValue value, JSC::PropertyName propertyName)) +{ + JSObject* thisObject = jsDynamicCast(JSValue::decode(thisValue)); + if (!thisObject) + return false; - static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype) - { - return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::InternalFunctionType, StructureFlags), info()); - } + thisObject->putDirect(globalObject->vm(), propertyName, JSValue::decode(value), 0); + return true; +} - DECLARE_INFO; +JSC_DEFINE_HOST_FUNCTION(requireResolvePathsFunction, (JSGlobalObject * globalObject, CallFrame* callframe)) +{ + return JSValue::encode(JSC::constructEmptyArray(globalObject, nullptr, 0)); +} - static JSC::EncodedJSValue pathsFunction(JSC::JSGlobalObject* globalObject, JSC::CallFrame* callFrame) +static const HashTableValue RequireResolveFunctionPrototypeValues[] = { + { "paths"_s, static_cast(JSC::PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, requireResolvePathsFunction, 1 } }, +}; + +class RequireResolveFunctionPrototype final : public JSC::JSNonFinalObject { +public: + using Base = JSC::JSNonFinalObject; + static RequireResolveFunctionPrototype* create( + JSC::JSGlobalObject* globalObject) { - return JSValue::encode(JSC::constructEmptyArray(globalObject, nullptr)); + auto& vm = globalObject->vm(); + + auto* structure = RequireResolveFunctionPrototype::createStructure(vm, globalObject, globalObject->functionPrototype()); + RequireResolveFunctionPrototype* prototype = new (NotNull, JSC::allocateCell(vm)) RequireResolveFunctionPrototype(vm, structure); + prototype->finishCreation(vm); + return prototype; } -private: - JSRequireResolveFunctionPrototype(JSC::VM& vm, JSC::Structure* structure) - : JSC::InternalFunction(vm, structure, jsFunctionRequireResolve, jsFunctionRequireResolve) + DECLARE_INFO; + RequireResolveFunctionPrototype( + JSC::VM& vm, + JSC::Structure* structure) + : Base(vm, structure) { } - void finishCreation(JSC::VM& vm) + template + static JSC::GCClient::IsoSubspace* subspaceFor(JSC::VM& vm) { - this->putDirectNativeFunction(vm, globalObject(), Identifier::fromString(vm, "paths"_s), 0, pathsFunction, ImplementationVisibility::Public, NoIntrinsic, 0); - Base::finishCreation(vm, 2, "resolve"_s, PropertyAdditionMode::WithoutStructureTransition); + return &vm.plainObjectSpace(); } }; -const JSC::ClassInfo JSRequireResolveFunctionPrototype::s_info = { "Function"_s, &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSRequireResolveFunctionPrototype) }; +class ResolveFunction final : public JSC::InternalFunction { -class JSRequireResolveFunction final : public JSC::InternalFunction { public: using Base = JSC::InternalFunction; - - static JSRequireResolveFunction* create(JSC::VM& vm, JSC::Structure* structure, const WTF::String& from) - { - JSRequireResolveFunction* function = new (NotNull, JSC::allocateCell(vm)) JSRequireResolveFunction(vm, structure, from); - function->finishCreation(vm); - return function; - } - - static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype) + static ResolveFunction* create(JSGlobalObject* globalObject) { - return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::InternalFunctionType, StructureFlags), info()); + JSObject* resolvePrototype = RequireResolveFunctionPrototype::create(globalObject); + Structure* structure = Structure::create( + globalObject->vm(), + globalObject, + resolvePrototype, + JSC::TypeInfo(JSC::InternalFunctionType, StructureFlags), + ResolveFunction::info()); + auto* resolveFunction = new (NotNull, JSC::allocateCell(globalObject->vm())) ResolveFunction(globalObject->vm(), structure); + resolveFunction->finishCreation(globalObject->vm()); + return resolveFunction; } DECLARE_INFO; - WTF::String from; - - template static JSC::GCClient::IsoSubspace* subspaceFor(JSC::VM& vm) - { - if constexpr (mode == JSC::SubspaceAccess::Concurrently) - return nullptr; - - return WebCore::subspaceForImpl( - vm, - [](auto& spaces) { return spaces.m_clientSubspaceForRequireResolveFunction.get(); }, - [](auto& spaces, auto&& space) { spaces.m_clientSubspaceForRequireResolveFunction = std::forward(space); }, - [](auto& spaces) { return spaces.m_subspaceForRequireResolveFunction.get(); }, - [](auto& spaces, auto&& space) { spaces.m_subspaceForRequireResolveFunction = std::forward(space); }); - } - -private: - JSRequireResolveFunction(JSC::VM& vm, JSC::Structure* structure, const WTF::String& from_) - : JSC::InternalFunction(vm, structure, jsFunctionRequireResolve, jsFunctionRequireResolve) - , from(from_) + template + static JSC::GCClient::IsoSubspace* subspaceFor(JSC::VM& vm) { + return &vm.internalFunctionSpace(); } - void finishCreation(JSC::VM& vm) + ResolveFunction( + JSC::VM& vm, + JSC::Structure* structure) + : InternalFunction(vm, structure, jsFunctionRequireResolve, nullptr) { - Base::finishCreation(vm); } }; -const JSC::ClassInfo JSRequireResolveFunction::s_info = { "Function"_s, &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSRequireResolveFunction) }; - -JSC_DEFINE_HOST_FUNCTION(jsFunctionRequireResolve, (JSC::JSGlobalObject * globalObject, JSC::CallFrame* callFrame)) +Structure* Zig::ImportMetaObject::createRequireFunctionStructure(VM& vm, JSGlobalObject* globalObject) { - JSRequireResolveFunction* thisObject = JSC::jsCast(callFrame->jsCallee()); - return functionRequireResolve(globalObject, callFrame, thisObject->from); -} -JSValue Zig::ImportMetaObject::createResolveFunctionPrototype(JSC::VM& vm, Zig::GlobalObject* globalObject) -{ - return JSRequireResolveFunctionPrototype::create(vm, globalObject); + return nullptr; } -JSC::Structure* Zig::ImportMetaObject::createResolveFunctionStructure(JSC::VM& vm, Zig::GlobalObject* globalObject) +JSObject* Zig::ImportMetaObject::createRequireFunction(VM& vm, JSGlobalObject* lexicalGlobalObject, const WTF::String& pathString) { - JSValue prototype = globalObject->requireResolveFunctionPrototype(); - return JSRequireResolveFunction::createStructure(vm, globalObject, prototype); -} + auto* globalObject = lexicalGlobalObject; + JSFunction* requireFunction = JSFunction::create(vm, importMetaObjectRequireCodeGenerator(vm), lexicalGlobalObject); -JSC_DEFINE_CUSTOM_GETTER(jsRequireCacheGetter, (JSC::JSGlobalObject * globalObject, JSC::EncodedJSValue thisValue, JSC::PropertyName)) -{ - Zig::GlobalObject* thisObject = jsCast(globalObject); - return JSValue::encode(thisObject->lazyRequireCacheObject()); -} + JSC::JSFunction* requireDotMainFunction = JSFunction::create( + vm, + moduleMainCodeGenerator(vm), + globalObject->globalScope()); -JSC_DEFINE_CUSTOM_SETTER(jsRequireCacheSetter, - (JSC::JSGlobalObject * globalObject, JSC::EncodedJSValue thisValue, - JSC::EncodedJSValue value, JSC::PropertyName propertyName)) -{ - JSObject* thisObject = jsDynamicCast(JSValue::decode(thisValue)); - if (!thisObject) - return false; + requireFunction->putDirect( + vm, + JSC::Identifier::fromString(vm, "main"_s), + JSC::GetterSetter::create(vm, globalObject, requireDotMainFunction, JSValue()), + PropertyAttribute::Builtin | PropertyAttribute::Accessor | PropertyAttribute::ReadOnly | 0); - thisObject->putDirect(globalObject->vm(), propertyName, JSValue::decode(value), 0); - return true; -} + requireFunction->putDirect(vm, JSC::Identifier::fromString(vm, "extensions"_s), JSC::constructEmptyObject(globalObject), 0); + requireFunction->putDirectCustomAccessor(vm, JSC::Identifier::fromString(vm, "cache"_s), JSC::CustomGetterSetter::create(vm, Zig::jsRequireCacheGetter, Zig::jsRequireCacheSetter), 0); + requireFunction->putDirect(vm, JSC::Identifier::fromString(vm, "resolve"_s), ResolveFunction::create(globalObject), JSC::PropertyAttribute::Function | 0); + requireFunction->putDirect(vm, JSC::Identifier::fromString(vm, "path"_s), jsString(vm, pathString)); -JSObject* Zig::ImportMetaObject::createRequireFunction(VM& vm, JSGlobalObject* lexicalGlobalObject, const WTF::String& pathString) -{ - Zig::GlobalObject* globalObject = static_cast(lexicalGlobalObject); - JSFunction* requireFunction = JSFunction::create(vm, importMetaObjectRequireCodeGenerator(vm), globalObject); - auto* resolveFunction = JSRequireResolveFunction::create(vm, globalObject->requireResolveFunctionStructure(), pathString); - auto clientData = WebCore::clientData(vm); - requireFunction->putDirect(vm, clientData->builtinNames().pathPublicName(), jsString(vm, pathString), PropertyAttribute::DontEnum | 0); - requireFunction->putDirect(vm, clientData->builtinNames().resolvePublicName(), resolveFunction, PropertyAttribute::Function | PropertyAttribute::DontDelete | 0); - requireFunction->putDirectCustomAccessor(vm, Identifier::fromString(vm, "cache"_s), JSC::CustomGetterSetter::create(vm, jsRequireCacheGetter, jsRequireCacheSetter), 0); return requireFunction; } +const JSC::ClassInfo RequireResolveFunctionPrototype::s_info = { "resolve"_s, &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(RequireResolveFunctionPrototype) }; +const JSC::ClassInfo ResolveFunction::s_info = { "resolve"_s, &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(ResolveFunction) }; + extern "C" EncodedJSValue functionImportMeta__resolveSync(JSC::JSGlobalObject* globalObject, JSC::CallFrame* callFrame) { JSC::VM& vm = globalObject->vm(); @@ -268,7 +266,7 @@ extern "C" EncodedJSValue functionImportMeta__resolveSync(JSC::JSGlobalObject* g case 0: { // not "requires" because "require" could be confusing - JSC::throwTypeError(globalObject, scope, "import.meta.resolveSync needs 1 argument (a string)"_s); + JSC::throwTypeError(globalObject, scope, "needs 1 argument (a string)"_s); scope.release(); return JSC::JSValue::encode(JSC::JSValue {}); } @@ -276,7 +274,7 @@ extern "C" EncodedJSValue functionImportMeta__resolveSync(JSC::JSGlobalObject* g JSC::JSValue moduleName = callFrame->argument(0); if (moduleName.isUndefinedOrNull()) { - JSC::throwTypeError(globalObject, scope, "import.meta.resolveSync expects a string"_s); + JSC::throwTypeError(globalObject, scope, "expects a string"_s); scope.release(); return JSC::JSValue::encode(JSC::JSValue {}); } @@ -287,27 +285,34 @@ extern "C" EncodedJSValue functionImportMeta__resolveSync(JSC::JSGlobalObject* g if (callFrame->argumentCount() > 1) { JSC::JSValue fromValue = callFrame->argument(1); - // require.resolve also supports a paths array - // we only support a single path - if (!fromValue.isUndefinedOrNull() && fromValue.isObject()) { - if (JSC::JSArray* array = JSC::jsDynamicCast(fromValue.getObject()->getIfPropertyExists(globalObject, JSC::Identifier::fromString(vm, "paths"_s)))) { - if (array->length() > 0) { - fromValue = array->getIndex(globalObject, 0); - } + if (callFrame->argumentCount() > 2) { + JSC::JSValue isESMValue = callFrame->argument(2); + if (isESMValue.isBoolean()) { + isESM = isESMValue.toBoolean(globalObject); + RETURN_IF_EXCEPTION(scope, JSC::JSValue::encode(JSC::JSValue {})); } + } - if (callFrame->argumentCount() > 2) { - JSC::JSValue isESMValue = callFrame->argument(2); - if (isESMValue.isBoolean()) { - isESM = isESMValue.toBoolean(globalObject); - RETURN_IF_EXCEPTION(scope, JSC::JSValue::encode(JSC::JSValue {})); + if (!fromValue.isUndefinedOrNull() && fromValue.isObject()) { + + if (auto pathsObject = fromValue.getObject()->getIfPropertyExists(globalObject, JSC::Identifier::fromString(vm, "paths"_s))) { + if (pathsObject.isCell() && pathsObject.asCell()->type() == JSC::JSType::ArrayType) { + auto pathsArray = JSC::jsCast(pathsObject); + if (pathsArray->length() > 0) { + fromValue = pathsArray->getIndex(globalObject, 0); + RETURN_IF_EXCEPTION(scope, JSC::JSValue::encode(JSC::JSValue {})); + } } } + } else if (fromValue.isBoolean()) { isESM = fromValue.toBoolean(globalObject); RETURN_IF_EXCEPTION(scope, JSC::JSValue::encode(JSC::JSValue {})); } - from = JSC::JSValue::encode(fromValue); + + if (fromValue.isString()) { + from = JSC::JSValue::encode(fromValue); + } } else { JSC::JSObject* thisObject = JSC::jsDynamicCast(callFrame->thisValue()); @@ -318,8 +323,10 @@ extern "C" EncodedJSValue functionImportMeta__resolveSync(JSC::JSGlobalObject* g } auto clientData = WebCore::clientData(vm); + JSValue pathProperty = thisObject->getIfPropertyExists(globalObject, clientData->builtinNames().pathPublicName()); - from = JSC::JSValue::encode(thisObject->get(globalObject, clientData->builtinNames().pathPublicName())); + if (pathProperty && pathProperty.isString()) + from = JSC::JSValue::encode(pathProperty); } auto result = Bun__resolveSync(globalObject, JSC::JSValue::encode(moduleName), from, isESM); @@ -362,7 +369,7 @@ JSC_DEFINE_HOST_FUNCTION(functionImportMeta__resolve, JSC__JSValue from; - if (callFrame->argumentCount() > 1) { + if (callFrame->argumentCount() > 1 && callFrame->argument(1).isString()) { from = JSC::JSValue::encode(callFrame->argument(1)); } else { JSC::JSObject* thisObject = JSC::jsDynamicCast(callFrame->thisValue()); @@ -374,7 +381,7 @@ JSC_DEFINE_HOST_FUNCTION(functionImportMeta__resolve, auto clientData = WebCore::clientData(vm); - from = JSC::JSValue::encode(thisObject->get(globalObject, clientData->builtinNames().pathPublicName())); + from = JSC::JSValue::encode(thisObject->getIfPropertyExists(globalObject, clientData->builtinNames().pathPublicName())); } return Bun__resolve(globalObject, JSC::JSValue::encode(moduleName), from, true); @@ -382,89 +389,235 @@ JSC_DEFINE_HOST_FUNCTION(functionImportMeta__resolve, } } +enum class ImportMetaPropertyOffset : uint32_t { + url, + dir, + file, + path, + require, + +}; +static constexpr uint32_t numberOfImportMetaProperties = 5; + +Zig::ImportMetaObject* ImportMetaObject::create(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::Structure* structure, const WTF::String& url) +{ + ImportMetaObject* ptr = new (NotNull, JSC::allocateCell(vm)) ImportMetaObject(vm, structure, url); + ptr->finishCreation(vm); + return ptr; +} +Zig::ImportMetaObject* ImportMetaObject::create(JSC::JSGlobalObject* jslobalObject, JSC::JSString* keyString) +{ + auto* globalObject = jsCast(jslobalObject); + auto& vm = globalObject->vm(); + auto view = keyString->value(globalObject); + JSC::Structure* structure = globalObject->ImportMetaObjectStructure(); + return Zig::ImportMetaObject::create(vm, globalObject, structure, view); +} + +JSC_DEFINE_CUSTOM_GETTER(jsImportMetaObjectGetter_url, (JSGlobalObject * globalObject, EncodedJSValue thisValue, PropertyName propertyName)) +{ + ImportMetaObject* thisObject = jsDynamicCast(JSValue::decode(thisValue)); + if (UNLIKELY(!thisObject)) + return JSValue::encode(jsUndefined()); + + return JSValue::encode(thisObject->urlProperty.getInitializedOnMainThread(thisObject)); +} +JSC_DEFINE_CUSTOM_GETTER(jsImportMetaObjectGetter_dir, (JSGlobalObject * globalObject, EncodedJSValue thisValue, PropertyName propertyName)) +{ + ImportMetaObject* thisObject = jsDynamicCast(JSValue::decode(thisValue)); + if (UNLIKELY(!thisObject)) + return JSValue::encode(jsUndefined()); + + return JSValue::encode(thisObject->dirProperty.getInitializedOnMainThread(thisObject)); +} +JSC_DEFINE_CUSTOM_GETTER(jsImportMetaObjectGetter_file, (JSGlobalObject * globalObject, EncodedJSValue thisValue, PropertyName propertyName)) +{ + ImportMetaObject* thisObject = jsDynamicCast(JSValue::decode(thisValue)); + if (UNLIKELY(!thisObject)) + return JSValue::encode(jsUndefined()); + + return JSValue::encode(thisObject->fileProperty.getInitializedOnMainThread(thisObject)); +} +JSC_DEFINE_CUSTOM_GETTER(jsImportMetaObjectGetter_path, (JSGlobalObject * globalObject, EncodedJSValue thisValue, PropertyName propertyName)) +{ + ImportMetaObject* thisObject = jsDynamicCast(JSValue::decode(thisValue)); + if (UNLIKELY(!thisObject)) + return JSValue::encode(jsUndefined()); + + return JSValue::encode(thisObject->pathProperty.getInitializedOnMainThread(thisObject)); +} +JSC_DEFINE_CUSTOM_GETTER(jsImportMetaObjectGetter_require, (JSGlobalObject * globalObject, EncodedJSValue thisValue, PropertyName propertyName)) +{ + ImportMetaObject* thisObject = jsDynamicCast(JSValue::decode(thisValue)); + if (UNLIKELY(!thisObject)) + return JSValue::encode(jsUndefined()); + + return JSValue::encode(thisObject->requireProperty.getInitializedOnMainThread(thisObject)); +} + +static const HashTableValue ImportMetaObjectPrototypeValues[] = { + { "resolve"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, functionImportMeta__resolve, 0 } }, + { "resolveSync"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, functionImportMeta__resolveSync, 0 } }, + { "url"_s, static_cast(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::GetterSetterType, jsImportMetaObjectGetter_url, 0 } }, + { "dir"_s, static_cast(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::GetterSetterType, jsImportMetaObjectGetter_dir, 0 } }, + { "file"_s, static_cast(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::GetterSetterType, jsImportMetaObjectGetter_file, 0 } }, + { "path"_s, static_cast(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::GetterSetterType, jsImportMetaObjectGetter_path, 0 } }, + { "require"_s, static_cast(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::GetterSetterType, jsImportMetaObjectGetter_require, 0 } }, +}; + class ImportMetaObjectPrototype final : public JSC::JSNonFinalObject { public: + DECLARE_INFO; using Base = JSC::JSNonFinalObject; - static ImportMetaObjectPrototype* create(JSC::VM& vm, JSGlobalObject* globalObject, JSC::Structure* structure) + static Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject) { - ImportMetaObjectPrototype* ptr = new (NotNull, JSC::allocateCell(vm)) ImportMetaObjectPrototype(vm, globalObject, structure); - ptr->finishCreation(vm, globalObject); - return ptr; + return Structure::create(vm, globalObject, globalObject->objectPrototype(), TypeInfo(ObjectType, StructureFlags), info()); + } + + static ImportMetaObjectPrototype* create(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::Structure* structure) + { + ImportMetaObjectPrototype* prototype = new (NotNull, JSC::allocateCell(vm)) ImportMetaObjectPrototype(vm, structure); + prototype->finishCreation(vm, globalObject); + return prototype; } - DECLARE_INFO; template static JSC::GCClient::IsoSubspace* subspaceFor(JSC::VM& vm) { return &vm.plainObjectSpace(); } - static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype) + + void finishCreation(JSC::VM& vm, JSC::JSGlobalObject* globalObject) { - return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info()); + Base::finishCreation(vm); + + auto* clientData = WebCore::clientData(vm); + auto& builtinNames = clientData->builtinNames(); + + reifyStaticProperties(vm, ImportMetaObject::info(), ImportMetaObjectPrototypeValues, *this); + JSC_TO_STRING_TAG_WITHOUT_TRANSITION(); + + this->putDirect( + vm, + builtinNames.mainPublicName(), + GetterSetter::create(vm, globalObject, JSFunction::create(vm, importMetaObjectMainCodeGenerator(vm), globalObject), nullptr), + JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::Accessor | JSC::PropertyAttribute::Builtin | 0); } -private: - ImportMetaObjectPrototype(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::Structure* structure) + ImportMetaObjectPrototype(JSC::VM& vm, JSC::Structure* structure) : Base(vm, structure) { } +}; - void finishCreation(JSC::VM&, JSC::JSGlobalObject*); +const ClassInfo ImportMetaObjectPrototype::s_info = { + "ImportMeta"_s, + + Base::info(), nullptr, nullptr, CREATE_METHOD_TABLE(ImportMetaObjectPrototype) }; -STATIC_ASSERT_ISO_SUBSPACE_SHARABLE(ImportMetaObjectPrototype, ImportMetaObjectPrototype::Base); -JSObject* ImportMetaObject::createPrototype(VM& vm, JSDOMGlobalObject& globalObject) +JSC::Structure* ImportMetaObject::createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject) { - return ImportMetaObjectPrototype::create(vm, &globalObject, ImportMetaObjectPrototype::createStructure(vm, &globalObject, globalObject.objectPrototype())); -} + ImportMetaObjectPrototype* prototype = ImportMetaObjectPrototype::create(vm, + globalObject, + ImportMetaObjectPrototype::createStructure(vm, globalObject)); -void ImportMetaObjectPrototype::finishCreation(VM& vm, JSGlobalObject* globalObject_) -{ - Base::finishCreation(vm); - auto* globalObject = reinterpret_cast(globalObject_); auto clientData = WebCore::clientData(vm); - auto& builtinNames = clientData->builtinNames(); - this->putDirect(vm, builtinNames.filePublicName(), jsEmptyString(vm), 0); - this->putDirect(vm, builtinNames.dirPublicName(), jsEmptyString(vm), 0); - this->putDirect(vm, builtinNames.pathPublicName(), jsEmptyString(vm), 0); - this->putDirect(vm, builtinNames.urlPublicName(), jsEmptyString(vm), 0); - - this->putDirect( - vm, - builtinNames.mainPublicName(), - GetterSetter::create(vm, globalObject, JSFunction::create(vm, importMetaObjectMainCodeGenerator(vm), globalObject), nullptr), - JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::Accessor | JSC::PropertyAttribute::Builtin | 0); - - this->putDirect(vm, Identifier::fromString(vm, "primordials"_s), jsUndefined(), JSC::PropertyAttribute::DontEnum | 0); - - String requireString = "[[require]]"_s; - this->putDirect(vm, builtinNames.requirePublicName(), Zig::ImportMetaObject::createRequireFunction(vm, globalObject, requireString), PropertyAttribute::Builtin | PropertyAttribute::Function | 0); - - this->putDirectNativeFunction(vm, globalObject, builtinNames.resolvePublicName(), 1, - functionImportMeta__resolve, - ImplementationVisibility::Public, - NoIntrinsic, - JSC::PropertyAttribute::Function | 0); - this->putDirectNativeFunction( - vm, globalObject, builtinNames.resolveSyncPublicName(), - 1, - functionImportMeta__resolveSync, - ImplementationVisibility::Public, - NoIntrinsic, - JSC::PropertyAttribute::Function | 0); - - JSC_TO_STRING_TAG_WITHOUT_TRANSITION(); + return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), ImportMetaObject::info()); } void ImportMetaObject::finishCreation(VM& vm) { Base::finishCreation(vm); ASSERT(inherits(info())); + + this->requireProperty.initLater([](const JSC::LazyProperty::Initializer& init) { + ImportMetaObject* meta = jsCast(init.owner); + JSFunction* value = jsCast(ImportMetaObject::createRequireFunction(init.vm, meta->globalObject(), meta->url)); + init.set(value); + }); + this->urlProperty.initLater([](const JSC::LazyProperty::Initializer& init) { + ImportMetaObject* meta = jsCast(init.owner); + WTF::URL url = meta->url.startsWith('/') ? WTF::URL::fileURLWithFileSystemPath(meta->url) : WTF::URL(meta->url); + + init.set(jsString(init.vm, url.string())); + }); + this->dirProperty.initLater([](const JSC::LazyProperty::Initializer& init) { + ImportMetaObject* meta = jsCast(init.owner); + + WTF::URL url = meta->url.startsWith('/') ? WTF::URL::fileURLWithFileSystemPath(meta->url) : WTF::URL(meta->url); + WTF::StringView dirname; + + if (url.protocolIs("file"_s)) { + dirname = url.fileSystemPath(); + } else { + dirname = url.path(); + } + + if (dirname.endsWith("/"_s)) { + dirname = dirname.substring(0, dirname.length() - 1); + } else if (dirname.contains('/')) { + dirname = dirname.substring(0, dirname.reverseFind('/')); + } + + init.set(jsString(init.vm, dirname.toString())); + }); + this->fileProperty.initLater([](const JSC::LazyProperty::Initializer& init) { + ImportMetaObject* meta = jsCast(init.owner); + + WTF::URL url = meta->url.startsWith('/') ? WTF::URL::fileURLWithFileSystemPath(meta->url) : WTF::URL(meta->url); + WTF::StringView path; + if (url.protocolIs("file"_s)) { + path = url.fileSystemPath(); + } else { + path = url.path(); + } + + WTF::StringView filename; + + if (path.endsWith("/"_s)) { + filename = path.substring(path.reverseFind('/', path.length() - 2) + 1); + } else { + filename = path.substring(path.reverseFind('/') + 1); + } + + init.set(jsString(init.vm, filename.toString())); + }); + this->pathProperty.initLater([](const JSC::LazyProperty::Initializer& init) { + ImportMetaObject* meta = jsCast(init.owner); + + WTF::URL url = meta->url.startsWith('/') ? WTF::URL::fileURLWithFileSystemPath(meta->url) : WTF::URL(meta->url); + WTF::StringView path; + + if (url.protocolIs("file"_s)) { + path = url.fileSystemPath(); + } else { + path = url.path(); + } + + init.set(jsString(init.vm, path.toString())); + }); } +template +void ImportMetaObject::visitChildrenImpl(JSCell* cell, Visitor& visitor) +{ + ImportMetaObject* fn = jsCast(cell); + ASSERT_GC_OBJECT_INHERITS(fn, info()); + Base::visitChildren(fn, visitor); + + fn->requireProperty.visit(visitor); + fn->urlProperty.visit(visitor); + fn->dirProperty.visit(visitor); + fn->fileProperty.visit(visitor); + fn->pathProperty.visit(visitor); +} + +DEFINE_VISIT_CHILDREN(ImportMetaObject); + void ImportMetaObject::analyzeHeap(JSCell* cell, HeapAnalyzer& analyzer) { auto* thisObject = jsCast(cell); @@ -475,9 +628,6 @@ void ImportMetaObject::analyzeHeap(JSCell* cell, HeapAnalyzer& analyzer) Base::analyzeHeap(cell, analyzer); } -const JSC::ClassInfo ImportMetaObjectPrototype::s_info = { "ImportMeta"_s, &Base::s_info, nullptr, nullptr, - CREATE_METHOD_TABLE(ImportMetaObjectPrototype) }; - const JSC::ClassInfo ImportMetaObject::s_info = { "ImportMeta"_s, &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(ImportMetaObject) }; } diff --git a/src/bun.js/bindings/ImportMetaObject.h b/src/bun.js/bindings/ImportMetaObject.h index d0f8f0963..2794ddbb6 100644 --- a/src/bun.js/bindings/ImportMetaObject.h +++ b/src/bun.js/bindings/ImportMetaObject.h @@ -18,97 +18,55 @@ namespace Zig { using namespace JSC; using namespace WebCore; -class ImportMetaObject final : public JSC::JSDestructibleObject { +JSC_DECLARE_CUSTOM_GETTER(jsRequireCacheGetter); +JSC_DECLARE_CUSTOM_SETTER(jsRequireCacheSetter); + +class ImportMetaObject final : public JSC::JSNonFinalObject { public: - using Base = JSC::JSDestructibleObject; + using Base = JSC::JSNonFinalObject; - static ImportMetaObject* create(JSC::VM& vm, JSGlobalObject* globalObject, JSC::Structure* structure) - { - ImportMetaObject* ptr = new (NotNull, JSC::allocateCell(vm)) ImportMetaObject(vm, globalObject, structure); - ptr->finishCreation(vm); - return ptr; - } + static ImportMetaObject* create(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::Structure* structure, const WTF::String& url); - static JSC::Structure* createResolveFunctionStructure(JSC::VM& vm, Zig::GlobalObject* globalObject); - static JSValue createResolveFunctionPrototype(JSC::VM& vm, Zig::GlobalObject* globalObject); + static JSC::Structure* createRequireFunctionStructure(JSC::VM& vm, JSGlobalObject* globalObject); static JSObject* createRequireFunction(VM& vm, JSGlobalObject* lexicalGlobalObject, const WTF::String& pathString); - static ImportMetaObject* create(JSC::JSGlobalObject* globalObject, JSC::JSValue key); - - static inline Zig::ImportMetaObject* create(JSC::JSGlobalObject* globalObject, JSC::JSString* keyString) - { - // TODO: optimize this by reusing the same JSC::Structure object and using putDirectOffset - auto& vm = globalObject->vm(); - auto view = keyString->value(globalObject); - JSC::Structure* structure = WebCore::getDOMStructure(vm, *reinterpret_cast(globalObject)); - Zig::ImportMetaObject* metaProperties = Zig::ImportMetaObject::create(vm, globalObject, structure); - if (UNLIKELY(!metaProperties)) { - return nullptr; - } - - auto clientData = WebCore::clientData(vm); - auto& builtinNames = clientData->builtinNames(); - - auto index = view.reverseFind('/', view.length()); - if (index != WTF::notFound) { - metaProperties->putDirect(vm, builtinNames.dirPublicName(), - JSC::jsSubstring(globalObject, keyString, 0, index)); - metaProperties->putDirect( - vm, builtinNames.filePublicName(), - JSC::jsSubstring(globalObject, keyString, index + 1, view.length() - index - 1)); - } else { - metaProperties->putDirect(vm, builtinNames.filePublicName(), keyString); - } - metaProperties->putDirect( - vm, - builtinNames.pathPublicName(), - keyString, - 0); - - metaProperties->putDirect( - vm, - builtinNames.requirePublicName(), - Zig::ImportMetaObject::createRequireFunction(vm, globalObject, view), - PropertyAttribute::Builtin | PropertyAttribute::Function | 0); - - if (view.startsWith('/')) { - metaProperties->putDirect(vm, builtinNames.urlPublicName(), JSC::JSValue(JSC::jsString(vm, WTF::URL::fileURLWithFileSystemPath(view).string()))); - } else { - if (view.startsWith("node:"_s) || view.startsWith("bun:"_s)) { - metaProperties->putDirect(globalObject->vm(), JSC::Identifier::fromString(globalObject->vm(), "primordials"_s), reinterpret_cast(globalObject)->primordialsObject()); - } - metaProperties->putDirect(vm, builtinNames.urlPublicName(), keyString); - } - - return metaProperties; - } + static ImportMetaObject* create(JSC::JSGlobalObject* globalObject, JSC::JSString* keyString); + static ImportMetaObject* create(JSC::JSGlobalObject* globalObject, JSValue keyString); DECLARE_INFO; + DECLARE_VISIT_CHILDREN; - static constexpr bool needsDestruction = true; - - template - static CompleteSubspace* subspaceFor(VM& vm) + template static JSC::GCClient::IsoSubspace* subspaceFor(JSC::VM& vm) { - return &vm.destructibleObjectSpace(); - } + if constexpr (mode == JSC::SubspaceAccess::Concurrently) + return nullptr; - static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype) - { - return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info()); + return WebCore::subspaceForImpl( + vm, + [](auto& spaces) { return spaces.m_clientSubspaceForImportMeta.get(); }, + [](auto& spaces, auto&& space) { spaces.m_clientSubspaceForImportMeta = std::forward(space); }, + [](auto& spaces) { return spaces.m_subspaceForImportMeta.get(); }, + [](auto& spaces, auto&& space) { spaces.m_subspaceForImportMeta = std::forward(space); }); } - static JSObject* createPrototype(VM& vm, JSDOMGlobalObject& globalObject); + static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject); static void analyzeHeap(JSCell*, JSC::HeapAnalyzer&); + WTF::String url; + LazyProperty requireProperty; + LazyProperty dirProperty; + LazyProperty urlProperty; + LazyProperty fileProperty; + LazyProperty pathProperty; + private: - ImportMetaObject(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::Structure* structure) + ImportMetaObject(JSC::VM& vm, JSC::Structure* structure, const WTF::String& url) : Base(vm, structure) + , url(url) { } void finishCreation(JSC::VM&); }; -STATIC_ASSERT_ISO_SUBSPACE_SHARABLE(ImportMetaObject, ImportMetaObject::Base); } \ No newline at end of file diff --git a/src/bun.js/bindings/ModuleLoader.cpp b/src/bun.js/bindings/ModuleLoader.cpp index ed1e5702b..0ccbb7dbb 100644 --- a/src/bun.js/bindings/ModuleLoader.cpp +++ b/src/bun.js/bindings/ModuleLoader.cpp @@ -36,6 +36,11 @@ #include "../modules/TTYModule.h" #include "node_util_types.h" #include "CommonJSModuleRecord.h" +#include +#include +#include +#include +#include namespace Bun { using namespace Zig; @@ -350,6 +355,110 @@ extern "C" void Bun__onFulfillAsyncModule( promise->resolve(promise->globalObject(), JSC::JSSourceCode::create(vm, JSC::SourceCode(provider))); } +JSValue fetchCommonJSModule( + Zig::GlobalObject* globalObject, + JSCommonJSModule* target, + JSValue specifierValue, + BunString* specifier, + BunString* referrer) +{ + void* bunVM = globalObject->bunVM(); + auto& vm = globalObject->vm(); + auto scope = DECLARE_THROW_SCOPE(vm); + ErrorableResolvedSource resValue; + ErrorableResolvedSource* res = &resValue; + + auto& builtinNames = WebCore::clientData(vm)->builtinNames(); + + if (Bun__fetchBuiltinModule(bunVM, globalObject, specifier, referrer, res)) { + if (!res->success) { + throwException(scope, res->result.err, globalObject); + return JSValue(); + } + + switch (res->result.value.tag) { + case SyntheticModuleType::Module: { + target->evaluate(globalObject, Bun::toWTFString(*specifier), generateNodeModuleModule); + RETURN_IF_EXCEPTION(scope, {}); + RELEASE_AND_RETURN(scope, target); + } + + case SyntheticModuleType::Buffer: { + target->evaluate(globalObject, Bun::toWTFString(*specifier), generateBufferSourceCode); + RETURN_IF_EXCEPTION(scope, {}); + RELEASE_AND_RETURN(scope, target); + } + case SyntheticModuleType::TTY: { + target->evaluate(globalObject, Bun::toWTFString(*specifier), generateTTYSourceCode); + RETURN_IF_EXCEPTION(scope, {}); + RELEASE_AND_RETURN(scope, target); + } + case SyntheticModuleType::NodeUtilTypes: { + target->evaluate(globalObject, Bun::toWTFString(*specifier), Bun::generateNodeUtilTypesSourceCode); + RETURN_IF_EXCEPTION(scope, {}); + RELEASE_AND_RETURN(scope, target); + } + case SyntheticModuleType::Process: { + target->evaluate(globalObject, Bun::toWTFString(*specifier), generateProcessSourceCode); + RETURN_IF_EXCEPTION(scope, {}); + RELEASE_AND_RETURN(scope, target); + } + case SyntheticModuleType::Events: { + target->evaluate(globalObject, Bun::toWTFString(*specifier), generateEventsSourceCode); + RETURN_IF_EXCEPTION(scope, {}); + RELEASE_AND_RETURN(scope, target); + } + case SyntheticModuleType::StringDecoder: { + target->evaluate(globalObject, Bun::toWTFString(*specifier), generateStringDecoderSourceCode); + RETURN_IF_EXCEPTION(scope, {}); + RELEASE_AND_RETURN(scope, target); + } + default: { + RELEASE_AND_RETURN(scope, jsNumber(-1)); + } + } + } + + // if (JSC::JSValue virtualModuleResult = JSValue::decode(Bun__runVirtualModule(globalObject, specifier))) { + // return handleVirtualModuleResult(globalObject, virtualModuleResult, res, specifier, referrer); + // } + auto* loader = globalObject->moduleLoader(); + JSMap* registry = jsCast(loader->getDirect(vm, Identifier::fromString(vm, "registry"_s))); + + auto hasAlreadyLoadedESMVersionSoWeShouldntTranspileItTwice = [&]() -> bool { + JSValue entry = registry->get(globalObject, specifierValue); + + if (!entry || !entry.isObject()) { + return false; + } + + int status = entry.getObject()->getDirect(vm, WebCore::clientData(vm)->builtinNames().statePublicName()).asInt32(); + return status > JSModuleLoader::Status::Fetch; + }; + + if (hasAlreadyLoadedESMVersionSoWeShouldntTranspileItTwice()) { + RELEASE_AND_RETURN(scope, jsNumber(-1)); + } + + Bun__transpileFile(bunVM, globalObject, specifier, referrer, res, false); + + if (res->success && res->result.value.commonJSExportsLen) { + target->evaluate(globalObject, Bun::toWTFString(*specifier).isolatedCopy(), res->result.value); + RETURN_IF_EXCEPTION(scope, {}); + RELEASE_AND_RETURN(scope, target); + } + + if (!res->success) { + throwException(scope, res->result.err, globalObject); + RELEASE_AND_RETURN(scope, {}); + } + + auto&& provider = Zig::SourceProvider::create(globalObject, res->result.value); + globalObject->moduleLoader()->provideFetch(globalObject, specifierValue, JSC::SourceCode(provider)); + RETURN_IF_EXCEPTION(scope, {}); + RELEASE_AND_RETURN(scope, jsNumber(-1)); +} + template static JSValue fetchSourceCode( Zig::GlobalObject* globalObject, @@ -382,6 +491,11 @@ static JSValue fetchSourceCode( auto rejectOrResolve = [&](JSValue code) -> JSValue { if (auto* exception = scope.exception()) { + if constexpr (!allowPromise) { + scope.release(); + return {}; + } + scope.clearException(); return rejectedInternalPromise(globalObject, exception); } @@ -457,7 +571,7 @@ static JSValue fetchSourceCode( return rejectOrResolve(JSSourceCode::create(vm, WTFMove(source))); } default: { - auto&& provider = Zig::SourceProvider::create(globalObject, res->result.value); + auto&& provider = Zig::SourceProvider::create(globalObject, res->result.value, JSC::SourceProviderSourceType::Module, true); return rejectOrResolve(JSC::JSSourceCode::create(vm, JSC::SourceCode(provider))); } } @@ -477,8 +591,19 @@ static JSValue fetchSourceCode( } if (res->success && res->result.value.commonJSExportsLen) { - auto source = Bun::createCommonJSModule(globalObject, res->result.value); - return rejectOrResolve(JSSourceCode::create(vm, WTFMove(source))); + auto created = Bun::createCommonJSModule(globalObject, res->result.value); + + if (created.has_value()) { + return rejectOrResolve(JSSourceCode::create(vm, WTFMove(created.value()))); + } + + if constexpr (allowPromise) { + auto* exception = scope.exception(); + scope.clearException(); + return rejectedInternalPromise(globalObject, exception); + } else { + return JSC::jsUndefined(); + } } if (!res->success) { diff --git a/src/bun.js/bindings/ModuleLoader.h b/src/bun.js/bindings/ModuleLoader.h index 0deaeff08..6eb04bf40 100644 --- a/src/bun.js/bindings/ModuleLoader.h +++ b/src/bun.js/bindings/ModuleLoader.h @@ -15,6 +15,8 @@ class JSInternalPromise; namespace Bun { using namespace JSC; +class JSCommonJSModule; + typedef uint8_t OnLoadResultType; const OnLoadResultType OnLoadResultTypeError = 0; const OnLoadResultType OnLoadResultTypeCode = 1; @@ -91,4 +93,11 @@ JSValue fetchSourceCodeAsync( BunString* specifier, BunString* referrer); +JSValue fetchCommonJSModule( + Zig::GlobalObject* globalObject, + JSCommonJSModule* moduleObject, + JSValue specifierValue, + BunString* specifier, + BunString* referrer); + } // namespace Bun \ No newline at end of file diff --git a/src/bun.js/bindings/ZigGlobalObject.cpp b/src/bun.js/bindings/ZigGlobalObject.cpp index e49b94687..401485f51 100644 --- a/src/bun.js/bindings/ZigGlobalObject.cpp +++ b/src/bun.js/bindings/ZigGlobalObject.cpp @@ -361,8 +361,8 @@ JSC_DEFINE_HOST_FUNCTION(functionFulfillModuleSync, &specifier, &specifier); - if (result.isUndefined() || !result) { - return JSValue::encode(result); + if (scope.exception() || !result) { + RELEASE_AND_RETURN(scope, JSValue::encode(JSC::jsUndefined())); } globalObject->moduleLoader()->provideFetch(globalObject, key, jsCast(result)->sourceCode()); @@ -1271,10 +1271,12 @@ JSC_DEFINE_HOST_FUNCTION(functionCallNotImplemented, // we're trying out a new way to do this lazy loading static JSC_DEFINE_HOST_FUNCTION(functionLazyLoad, - (JSC::JSGlobalObject * globalObject, JSC::CallFrame* callFrame)) + (JSC::JSGlobalObject * lexicalGlobalObject, JSC::CallFrame* callFrame)) { JSC: + Zig::GlobalObject* globalObject = reinterpret_cast(lexicalGlobalObject); VM& vm = globalObject->vm(); + switch (callFrame->argumentCount()) { case 0: { auto scope = DECLARE_THROW_SCOPE(globalObject->vm()); @@ -1283,13 +1285,6 @@ JSC: return JSC::JSValue::encode(JSC::JSValue {}); } default: { - static NeverDestroyed sqliteString(MAKE_STATIC_STRING_IMPL("sqlite")); - static NeverDestroyed bunJSCString(MAKE_STATIC_STRING_IMPL("bun:jsc")); - static NeverDestroyed bunStreamString(MAKE_STATIC_STRING_IMPL("bun:stream")); - static NeverDestroyed noopString(MAKE_STATIC_STRING_IMPL("noop")); - static NeverDestroyed createImportMeta(MAKE_STATIC_STRING_IMPL("createImportMeta")); - static NeverDestroyed masqueradesAsUndefined(MAKE_STATIC_STRING_IMPL("masqueradesAsUndefined")); - static NeverDestroyed vmString(MAKE_STATIC_STRING_IMPL("vm")); JSC::JSValue moduleName = callFrame->argument(0); if (moduleName.isNumber()) { @@ -1328,24 +1323,24 @@ JSC: return JSC::JSValue::encode(JSC::JSValue {}); } - if (string == sqliteString) { + if (string == "sqlite"_s) { return JSC::JSValue::encode(JSSQLStatementConstructor::create(vm, globalObject, JSSQLStatementConstructor::createStructure(vm, globalObject, globalObject->m_functionPrototype.get()))); } - if (string == bunJSCString) { + if (string == "bun:jsc"_s) { return JSC::JSValue::encode(createJSCModule(globalObject)); } - if (string == pathToFileURLString) { + if (string == "pathToFileURL"_s) { return JSValue::encode( JSFunction::create(vm, globalObject, 1, pathToFileURLString, functionPathToFileURL, ImplementationVisibility::Public, NoIntrinsic)); } - if (string == fileURLToPathString) { + if (string == "fileURLToPath"_s) { return JSValue::encode( JSFunction::create(vm, globalObject, 1, fileURLToPathString, functionFileURLToPath, ImplementationVisibility::Public, NoIntrinsic)); } - if (string == bunStreamString) { + if (string == "bun:stream"_s) { auto* obj = constructEmptyObject(globalObject); obj->putDirect(vm, JSC::PropertyName(JSC::Identifier::fromString(vm, "BufferList"_s)), reinterpret_cast(globalObject)->JSBufferList(), 0); obj->putDirect(vm, JSC::PropertyName(JSC::Identifier::fromString(vm, "ReadableState"_s)), reinterpret_cast(globalObject)->JSReadableState(), 0); @@ -1364,16 +1359,16 @@ JSC: return JSValue::encode(obj); } - if (string == createImportMeta) { + if (string == "createImportMeta"_s) { Zig::ImportMetaObject* obj = Zig::ImportMetaObject::create(globalObject, callFrame->argument(1)); return JSValue::encode(obj); } - if (string == masqueradesAsUndefined) { + if (string == "masqueradesAsUndefined"_s) { return JSValue::encode(InternalFunction::createFunctionThatMasqueradesAsUndefined(vm, globalObject, 0, String(), functionCallNotImplemented)); } - if (string == vmString) { + if (string == "vm"_s) { auto* obj = constructEmptyObject(globalObject); obj->putDirect( vm, JSC::PropertyName(JSC::Identifier::fromString(vm, "Script"_s)), @@ -1394,7 +1389,22 @@ JSC: return JSValue::encode(obj); } - if (UNLIKELY(string == noopString)) { + if (string == "vm"_s) { + auto* obj = constructEmptyObject(globalObject); + } + + if (string == "primordials"_s) { + auto sourceOrigin = callFrame->callerSourceOrigin(vm).url(); + bool isBuiltin = sourceOrigin.protocolIs("builtin"_s); + if (!isBuiltin) { + return JSC::JSValue::encode(JSC::jsUndefined()); + } + + auto* obj = globalObject->primordialsObject(); + return JSValue::encode(obj); + } + + if (UNLIKELY(string == "noop"_s)) { auto* obj = constructEmptyObject(globalObject); obj->putDirectCustomAccessor(vm, JSC::PropertyName(JSC::Identifier::fromString(vm, "getterSetter"_s)), JSC::CustomGetterSetter::create(vm, noop_getter, noop_setter), 0); Zig::JSFFIFunction* function = Zig::JSFFIFunction::create(vm, reinterpret_cast(globalObject), 0, String(), functionNoop, JSC::NoIntrinsic); @@ -2721,7 +2731,7 @@ void GlobalObject::finishCreation(VM& vm) JSC::Structure* structure = globalObject->structureCache().emptyObjectStructureForPrototype( globalObject, globalObject->objectPrototype(), - 5); + 3); JSC::PropertyOffset offset; auto& vm = globalObject->vm(); @@ -2732,13 +2742,6 @@ void GlobalObject::finishCreation(VM& vm) 0, offset); - structure = structure->addPropertyTransition( - vm, - structure, - JSC::Identifier::fromString(vm, "exports"_s), - 0, - offset); - structure = structure->addPropertyTransition( vm, structure, @@ -2753,13 +2756,6 @@ void GlobalObject::finishCreation(VM& vm) 0, offset); - structure = structure->addPropertyTransition( - vm, - structure, - JSC::Identifier::fromString(vm, "require"_s), - JSC::PropertyAttribute::Function | JSC::PropertyAttribute::Builtin | 0, - offset); - init.set(structure); }); @@ -2979,14 +2975,14 @@ void GlobalObject::finishCreation(VM& vm) init.set(structure); }); - m_requireResolveFunctionStructure.initLater( + m_importMetaRequireStructure.initLater( [](const JSC::LazyProperty::Initializer& init) { - init.set(Zig::ImportMetaObject::createResolveFunctionStructure(init.vm, jsCast(init.owner))); + init.set(Zig::ImportMetaObject::createRequireFunctionStructure(init.vm, jsCast(init.owner))); }); - m_resolveFunctionPrototype.initLater( - [](const JSC::LazyProperty::Initializer& init) { - init.set(Zig::ImportMetaObject::createResolveFunctionPrototype(init.vm, jsCast(init.owner)).getObject()); + m_importMetaObjectStructure.initLater( + [](const JSC::LazyProperty::Initializer& init) { + init.set(Zig::ImportMetaObject::createStructure(init.vm, init.owner)); }); m_JSFileSinkClassStructure.initLater( @@ -3434,7 +3430,7 @@ void GlobalObject::addBuiltinGlobals(JSC::VM& vm) auto& builtinNames = WebCore::builtinNames(vm); WTF::Vector extraStaticGlobals; - extraStaticGlobals.reserveCapacity(43); + extraStaticGlobals.reserveCapacity(44); JSC::Identifier queueMicrotaskIdentifier = JSC::Identifier::fromString(vm, "queueMicrotask"_s); extraStaticGlobals.uncheckedAppend( @@ -3655,30 +3651,44 @@ void GlobalObject::addBuiltinGlobals(JSC::VM& vm) PUT_WEBCORE_GENERATED_CONSTRUCTOR("Headers"_s, JSFetchHeaders); PUT_WEBCORE_GENERATED_CONSTRUCTOR("URLSearchParams"_s, JSURLSearchParams); - putDirectCustomAccessor(vm, static_cast(vm.clientData)->builtinNames().TransformStreamPublicName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_TransformStreamConstructor, nullptr), attributesForStructure(static_cast(JSC::PropertyAttribute::DontEnum))); - putDirectCustomAccessor(vm, static_cast(vm.clientData)->builtinNames().TransformStreamPrivateName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_TransformStreamConstructor, nullptr), attributesForStructure(static_cast(JSC::PropertyAttribute::DontEnum))); - putDirectCustomAccessor(vm, static_cast(vm.clientData)->builtinNames().TransformStreamDefaultControllerPublicName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_TransformStreamDefaultControllerConstructor, nullptr), attributesForStructure(static_cast(JSC::PropertyAttribute::DontEnum))); - putDirectCustomAccessor(vm, static_cast(vm.clientData)->builtinNames().TransformStreamDefaultControllerPrivateName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_TransformStreamDefaultControllerConstructor, nullptr), attributesForStructure(static_cast(JSC::PropertyAttribute::DontEnum))); - putDirectCustomAccessor(vm, static_cast(vm.clientData)->builtinNames().ReadableByteStreamControllerPrivateName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_ReadableByteStreamControllerConstructor, nullptr), attributesForStructure(JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly)); - putDirectCustomAccessor(vm, static_cast(vm.clientData)->builtinNames().ReadableStreamPrivateName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_ReadableStreamConstructor, nullptr), attributesForStructure(JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly)); - putDirectCustomAccessor(vm, static_cast(vm.clientData)->builtinNames().ReadableStreamBYOBReaderPrivateName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_ReadableStreamBYOBReaderConstructor, nullptr), attributesForStructure(JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly)); - putDirectCustomAccessor(vm, static_cast(vm.clientData)->builtinNames().ReadableStreamBYOBRequestPrivateName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_ReadableStreamBYOBRequestConstructor, nullptr), attributesForStructure(JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly)); - putDirectCustomAccessor(vm, static_cast(vm.clientData)->builtinNames().ReadableStreamDefaultControllerPrivateName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_ReadableStreamDefaultControllerConstructor, nullptr), attributesForStructure(JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly)); - putDirectCustomAccessor(vm, static_cast(vm.clientData)->builtinNames().ReadableStreamDefaultReaderPrivateName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_ReadableStreamDefaultReaderConstructor, nullptr), attributesForStructure(JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly)); - putDirectCustomAccessor(vm, static_cast(vm.clientData)->builtinNames().WritableStreamPrivateName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_WritableStreamConstructor, nullptr), attributesForStructure(JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly)); - putDirectCustomAccessor(vm, static_cast(vm.clientData)->builtinNames().WritableStreamDefaultControllerPrivateName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_WritableStreamDefaultControllerConstructor, nullptr), attributesForStructure(JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly)); - putDirectCustomAccessor(vm, static_cast(vm.clientData)->builtinNames().WritableStreamDefaultWriterPrivateName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_WritableStreamDefaultWriterConstructor, nullptr), attributesForStructure(JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly)); - putDirectCustomAccessor(vm, static_cast(vm.clientData)->builtinNames().AbortSignalPrivateName(), CustomGetterSetter::create(vm, JSDOMAbortSignal_getter, nullptr), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly); - putDirectCustomAccessor(vm, static_cast(vm.clientData)->builtinNames().ReadableByteStreamControllerPublicName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_ReadableByteStreamControllerConstructor, nullptr), JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly); - putDirectCustomAccessor(vm, static_cast(vm.clientData)->builtinNames().ReadableStreamPublicName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_ReadableStreamConstructor, nullptr), JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly); - putDirectCustomAccessor(vm, static_cast(vm.clientData)->builtinNames().ReadableStreamBYOBReaderPublicName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_ReadableStreamBYOBReaderConstructor, nullptr), JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly); - putDirectCustomAccessor(vm, static_cast(vm.clientData)->builtinNames().ReadableStreamBYOBRequestPublicName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_ReadableStreamBYOBRequestConstructor, nullptr), JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly); - putDirectCustomAccessor(vm, static_cast(vm.clientData)->builtinNames().ReadableStreamDefaultControllerPublicName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_ReadableStreamDefaultControllerConstructor, nullptr), JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly); - putDirectCustomAccessor(vm, static_cast(vm.clientData)->builtinNames().ReadableStreamDefaultReaderPublicName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_ReadableStreamDefaultReaderConstructor, nullptr), JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly); - putDirectCustomAccessor(vm, static_cast(vm.clientData)->builtinNames().WritableStreamPublicName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_WritableStreamConstructor, nullptr), JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly); - putDirectCustomAccessor(vm, static_cast(vm.clientData)->builtinNames().WritableStreamDefaultControllerPublicName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_WritableStreamDefaultControllerConstructor, nullptr), JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly); - putDirectCustomAccessor(vm, static_cast(vm.clientData)->builtinNames().WritableStreamDefaultWriterPublicName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_WritableStreamDefaultWriterConstructor, nullptr), JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly); - + putDirectCustomAccessor(vm, builtinNames.TransformStreamPublicName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_TransformStreamConstructor, nullptr), attributesForStructure(static_cast(JSC::PropertyAttribute::DontEnum))); + putDirectCustomAccessor(vm, builtinNames.TransformStreamPrivateName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_TransformStreamConstructor, nullptr), attributesForStructure(static_cast(JSC::PropertyAttribute::DontEnum))); + putDirectCustomAccessor(vm, builtinNames.TransformStreamDefaultControllerPublicName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_TransformStreamDefaultControllerConstructor, nullptr), attributesForStructure(static_cast(JSC::PropertyAttribute::DontEnum))); + putDirectCustomAccessor(vm, builtinNames.TransformStreamDefaultControllerPrivateName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_TransformStreamDefaultControllerConstructor, nullptr), attributesForStructure(static_cast(JSC::PropertyAttribute::DontEnum))); + putDirectCustomAccessor(vm, builtinNames.ReadableByteStreamControllerPrivateName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_ReadableByteStreamControllerConstructor, nullptr), attributesForStructure(JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly)); + putDirectCustomAccessor(vm, builtinNames.ReadableStreamPrivateName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_ReadableStreamConstructor, nullptr), attributesForStructure(JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly)); + putDirectCustomAccessor(vm, builtinNames.ReadableStreamBYOBReaderPrivateName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_ReadableStreamBYOBReaderConstructor, nullptr), attributesForStructure(JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly)); + putDirectCustomAccessor(vm, builtinNames.ReadableStreamBYOBRequestPrivateName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_ReadableStreamBYOBRequestConstructor, nullptr), attributesForStructure(JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly)); + putDirectCustomAccessor(vm, builtinNames.ReadableStreamDefaultControllerPrivateName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_ReadableStreamDefaultControllerConstructor, nullptr), attributesForStructure(JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly)); + putDirectCustomAccessor(vm, builtinNames.ReadableStreamDefaultReaderPrivateName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_ReadableStreamDefaultReaderConstructor, nullptr), attributesForStructure(JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly)); + putDirectCustomAccessor(vm, builtinNames.WritableStreamPrivateName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_WritableStreamConstructor, nullptr), attributesForStructure(JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly)); + putDirectCustomAccessor(vm, builtinNames.WritableStreamDefaultControllerPrivateName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_WritableStreamDefaultControllerConstructor, nullptr), attributesForStructure(JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly)); + putDirectCustomAccessor(vm, builtinNames.WritableStreamDefaultWriterPrivateName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_WritableStreamDefaultWriterConstructor, nullptr), attributesForStructure(JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly)); + putDirectCustomAccessor(vm, builtinNames.AbortSignalPrivateName(), CustomGetterSetter::create(vm, JSDOMAbortSignal_getter, nullptr), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly); + putDirectCustomAccessor(vm, builtinNames.ReadableByteStreamControllerPublicName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_ReadableByteStreamControllerConstructor, nullptr), JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly); + putDirectCustomAccessor(vm, builtinNames.ReadableStreamPublicName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_ReadableStreamConstructor, nullptr), JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly); + putDirectCustomAccessor(vm, builtinNames.ReadableStreamBYOBReaderPublicName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_ReadableStreamBYOBReaderConstructor, nullptr), JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly); + putDirectCustomAccessor(vm, builtinNames.ReadableStreamBYOBRequestPublicName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_ReadableStreamBYOBRequestConstructor, nullptr), JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly); + putDirectCustomAccessor(vm, builtinNames.ReadableStreamDefaultControllerPublicName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_ReadableStreamDefaultControllerConstructor, nullptr), JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly); + putDirectCustomAccessor(vm, builtinNames.ReadableStreamDefaultReaderPublicName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_ReadableStreamDefaultReaderConstructor, nullptr), JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly); + putDirectCustomAccessor(vm, builtinNames.WritableStreamPublicName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_WritableStreamConstructor, nullptr), JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly); + putDirectCustomAccessor(vm, builtinNames.WritableStreamDefaultControllerPublicName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_WritableStreamDefaultControllerConstructor, nullptr), JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly); + putDirectCustomAccessor(vm, builtinNames.WritableStreamDefaultWriterPublicName(), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_WritableStreamDefaultWriterConstructor, nullptr), JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly); + + putDirectNativeFunction(vm, this, + builtinNames.createCommonJSModulePrivateName(), + 2, + Bun::jsFunctionCreateCommonJSModule, + ImplementationVisibility::Public, + NoIntrinsic, + JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::Function | JSC::PropertyAttribute::DontDelete | 0); + putDirectNativeFunction(vm, this, + builtinNames.evaluateCommonJSModulePrivateName(), + 2, + Bun::jsFunctionLoadModule, + ImplementationVisibility::Public, + NoIntrinsic, + JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::Function | JSC::PropertyAttribute::DontDelete | 0); putDirectCustomAccessor(vm, JSC::Identifier::fromString(vm, "ByteLengthQueuingStrategy"_s), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_ByteLengthQueuingStrategyConstructor, nullptr), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly); putDirectCustomAccessor(vm, JSC::Identifier::fromString(vm, "CountQueuingStrategy"_s), CustomGetterSetter::create(vm, jsServiceWorkerGlobalScope_CountQueuingStrategyConstructor, nullptr), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly); putDirectCustomAccessor(vm, JSC::Identifier::fromString(vm, "SubtleCrypto"_s), JSC::CustomGetterSetter::create(vm, getterSubtleCryptoConstructor, nullptr), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly); @@ -4023,8 +4033,9 @@ void GlobalObject::visitChildrenImpl(JSCell* cell, Visitor& visitor) thisObject->m_emitReadableNextTickFunction.visit(visitor); thisObject->m_JSBufferSubclassStructure.visit(visitor); - thisObject->m_requireResolveFunctionStructure.visit(visitor); - thisObject->m_resolveFunctionPrototype.visit(visitor); + thisObject->m_importMetaRequireStructure.visit(visitor); + thisObject->m_importMetaObjectStructure.visit(visitor); + thisObject->m_dnsObject.visit(visitor); thisObject->m_lazyRequireCacheObject.visit(visitor); thisObject->m_vmModuleContextMap.visit(visitor); diff --git a/src/bun.js/bindings/ZigGlobalObject.h b/src/bun.js/bindings/ZigGlobalObject.h index 2d69e764f..daf0abc5b 100644 --- a/src/bun.js/bindings/ZigGlobalObject.h +++ b/src/bun.js/bindings/ZigGlobalObject.h @@ -248,8 +248,7 @@ public: JSC::JSFunction* emitReadableNextTickFunction() { return m_emitReadableNextTickFunction.getInitializedOnMainThread(this); } - Structure* requireResolveFunctionStructure() { return m_requireResolveFunctionStructure.getInitializedOnMainThread(this); } - JSObject* requireResolveFunctionPrototype() { return m_resolveFunctionPrototype.getInitializedOnMainThread(this); } + Structure* importMetaRequireStructure() { return m_importMetaRequireStructure.getInitializedOnMainThread(this); } JSObject* lazyRequireCacheObject() { return m_lazyRequireCacheObject.getInitializedOnMainThread(this); } @@ -262,6 +261,7 @@ public: JSObject* lazyTestModuleObject() { return m_lazyTestModuleObject.getInitializedOnMainThread(this); } JSObject* lazyPreloadTestModuleObject() { return m_lazyPreloadTestModuleObject.getInitializedOnMainThread(this); } Structure* CommonJSModuleObjectStructure() { return m_commonJSModuleObjectStructure.getInitializedOnMainThread(this); } + Structure* ImportMetaObjectStructure() { return m_importMetaObjectStructure.getInitializedOnMainThread(this); } Structure* commonJSFunctionArgumentsStructure() { return m_commonJSFunctionArgumentsStructure.getInitializedOnMainThread(this); } @@ -481,8 +481,6 @@ private: LazyProperty m_subtleCryptoObject; LazyProperty m_JSHTTPResponseController; LazyProperty m_JSBufferSubclassStructure; - LazyProperty m_requireResolveFunctionStructure; - LazyProperty m_resolveFunctionPrototype; LazyProperty m_dnsObject; LazyProperty m_vmModuleContextMap; LazyProperty m_lazyRequireCacheObject; @@ -496,6 +494,9 @@ private: LazyProperty m_commonJSModuleObjectStructure; LazyProperty m_commonJSFunctionArgumentsStructure; + LazyProperty m_importMetaRequireStructure; + LazyProperty m_importMetaObjectStructure; + DOMGuardedObjectSet m_guardedObjects WTF_GUARDED_BY_LOCK(m_gcLock); void* m_bunVM; diff --git a/src/bun.js/bindings/ZigSourceProvider.cpp b/src/bun.js/bindings/ZigSourceProvider.cpp index ab3062cd5..dda7135b4 100644 --- a/src/bun.js/bindings/ZigSourceProvider.cpp +++ b/src/bun.js/bindings/ZigSourceProvider.cpp @@ -43,21 +43,24 @@ static uintptr_t getSourceProviderMapKey(ResolvedSource& resolvedSource) } } -Ref SourceProvider::create(Zig::GlobalObject* globalObject, ResolvedSource resolvedSource, JSC::SourceProviderSourceType sourceType) +static SourceOrigin toSourceOrigin(const String& sourceURL, bool isBuiltin) { - - uintptr_t providerKey = 0; - if (globalObject->isThreadLocalDefaultGlobalObject) { - auto& sourceProviderMap = globalObject->sourceProviderMap; - providerKey = getSourceProviderMapKey(resolvedSource); - if (providerKey) { - auto sourceProvider = sourceProviderMap.get(providerKey); - if (sourceProvider != nullptr) { - sourceProvider->ref(); - return adoptRef(*reinterpret_cast(sourceProvider)); - } + if (isBuiltin) { + if (sourceURL.startsWith("node:"_s)) { + return SourceOrigin(WTF::URL(makeString("builtin://node/", sourceURL.substring(5)))); + } else if (sourceURL.startsWith("bun:"_s)) { + return SourceOrigin(WTF::URL(makeString("builtin://bun/", sourceURL.substring(4)))); + } else { + return SourceOrigin(WTF::URL(makeString("builtin://", sourceURL))); } } + + return SourceOrigin(WTF::URL::fileURLWithFileSystemPath(sourceURL)); +} + +Ref SourceProvider::create(Zig::GlobalObject* globalObject, ResolvedSource resolvedSource, JSC::SourceProviderSourceType sourceType, bool isBuiltin) +{ + auto stringImpl = Bun::toWTFString(resolvedSource.source_code); auto sourceURLString = toStringCopy(resolvedSource.source_url); @@ -68,14 +71,10 @@ Ref SourceProvider::create(Zig::GlobalObject* globalObject, Reso auto provider = adoptRef(*new SourceProvider( globalObject->isThreadLocalDefaultGlobalObject ? globalObject : nullptr, resolvedSource, stringImpl.releaseImpl().releaseNonNull(), - JSC::SourceOrigin(WTF::URL::fileURLWithFileSystemPath(sourceURLString)), + toSourceOrigin(sourceURLString, isBuiltin), sourceURLString.impl(), TextPosition(), sourceType)); - if (providerKey) { - globalObject->sourceProviderMap.set(providerKey, provider.copyRef()); - } - return provider; } @@ -90,11 +89,6 @@ unsigned SourceProvider::hash() const void SourceProvider::freeSourceCode() { - if (m_globalObjectForSourceProviderMap) { - m_globalObjectForSourceProviderMap->sourceProviderMap.remove((uintptr_t)m_source.get().characters8()); - } - - m_source = *WTF::StringImpl::empty(); } void SourceProvider::updateCache(const UnlinkedFunctionExecutable* executable, const SourceCode&, diff --git a/src/bun.js/bindings/ZigSourceProvider.h b/src/bun.js/bindings/ZigSourceProvider.h index dd78b20ae..c189cc454 100644 --- a/src/bun.js/bindings/ZigSourceProvider.h +++ b/src/bun.js/bindings/ZigSourceProvider.h @@ -34,7 +34,7 @@ class SourceProvider final : public JSC::SourceProvider { using SourceOrigin = JSC::SourceOrigin; public: - static Ref create(Zig::GlobalObject*, ResolvedSource resolvedSource, JSC::SourceProviderSourceType sourceType = JSC::SourceProviderSourceType::Module); + static Ref create(Zig::GlobalObject*, ResolvedSource resolvedSource, JSC::SourceProviderSourceType sourceType = JSC::SourceProviderSourceType::Module, bool isBuiltIn = false); ~SourceProvider() { freeSourceCode(); diff --git a/src/bun.js/bindings/bindings.cpp b/src/bun.js/bindings/bindings.cpp index 2c2f5c2ea..3f3d82dc4 100644 --- a/src/bun.js/bindings/bindings.cpp +++ b/src/bun.js/bindings/bindings.cpp @@ -3912,36 +3912,6 @@ void JSC__VM__throwError(JSC__VM* vm_, JSC__JSGlobalObject* arg1, JSC__JSValue v scope.throwException(arg1, exception); } -#pragma mark - JSC::ThrowScope - -void JSC__ThrowScope__clearException(JSC__ThrowScope* arg0) -{ - arg0->clearException(); -}; -bJSC__ThrowScope JSC__ThrowScope__declare(JSC__VM* arg0, unsigned char* arg1, unsigned char* arg2, - size_t arg3) -{ - Wrap wrapped = Wrap(); - wrapped.cpp = new (wrapped.alignedBuffer()) JSC::ThrowScope(reinterpret_cast(arg0)); - return wrapped.result; -}; -JSC__Exception* JSC__ThrowScope__exception(JSC__ThrowScope* arg0) { return arg0->exception(); } -void JSC__ThrowScope__release(JSC__ThrowScope* arg0) { arg0->release(); } - -#pragma mark - JSC::CatchScope - -void JSC__CatchScope__clearException(JSC__CatchScope* arg0) -{ - arg0->clearException(); -} -bJSC__CatchScope JSC__CatchScope__declare(JSC__VM* arg0, unsigned char* arg1, unsigned char* arg2, - size_t arg3) -{ - JSC::CatchScope scope = JSC::CatchScope(reinterpret_cast(arg0)); - return cast(&scope); -} -JSC__Exception* JSC__CatchScope__exception(JSC__CatchScope* arg0) { return arg0->exception(); } - JSC__JSValue JSC__JSPromise__rejectedPromiseValue(JSC__JSGlobalObject* arg0, JSC__JSValue JSValue1) { @@ -4103,9 +4073,18 @@ restart: if (key.len == 0) return true; - JSC::JSValue propertyValue = objectToUse == object ? objectToUse->getDirect(entry.offset()) : JSValue(); + JSC::JSValue propertyValue = JSValue(); + + if (objectToUse == object) { + propertyValue = objectToUse->getDirect(entry.offset()); + if (!propertyValue) { + scope.clearException(); + return true; + } + } + if (!propertyValue || propertyValue.isGetterSetter() && !((entry.attributes() & PropertyAttribute::Accessor) != 0)) { - propertyValue = objectToUse->get(globalObject, prop); + propertyValue = objectToUse->getIfPropertyExists(globalObject, prop); } if (scope.exception()) diff --git a/src/bun.js/bindings/node_util_types.cpp b/src/bun.js/bindings/node_util_types.cpp index 0c75662cf..f7ae3949e 100644 --- a/src/bun.js/bindings/node_util_types.cpp +++ b/src/bun.js/bindings/node_util_types.cpp @@ -322,7 +322,7 @@ void generateNodeUtilTypesSourceCode(JSC::JSGlobalObject* lexicalGlobalObject, JSC::VM& vm = globalObject->vm(); - JSC::JSObject* defaultObject = constructEmptyObject(globalObject, globalObject->objectPrototype(), 43); + JSC::JSObject* defaultObject = constructEmptyObject(globalObject, globalObject->objectPrototype(), 42); exportNames.reserveCapacity(43); exportValues.ensureCapacity(43); diff --git a/src/bun.js/bindings/webcore/DOMClientIsoSubspaces.h b/src/bun.js/bindings/webcore/DOMClientIsoSubspaces.h index 3997c1d88..65875d091 100644 --- a/src/bun.js/bindings/webcore/DOMClientIsoSubspaces.h +++ b/src/bun.js/bindings/webcore/DOMClientIsoSubspaces.h @@ -29,6 +29,7 @@ public: std::unique_ptr m_clientSubspaceForReadableState; std::unique_ptr m_clientSubspaceForPendingVirtualModuleResult; std::unique_ptr m_clientSubspaceForCallSite; + std::unique_ptr m_clientSubspaceForImportMeta; std::unique_ptr m_clientSubspaceForNapiExternal; std::unique_ptr m_clientSubspaceForRequireResolveFunction; std::unique_ptr m_clientSubspaceForBundlerPlugin; diff --git a/src/bun.js/bindings/webcore/DOMIsoSubspaces.h b/src/bun.js/bindings/webcore/DOMIsoSubspaces.h index 4feca1754..433832450 100644 --- a/src/bun.js/bindings/webcore/DOMIsoSubspaces.h +++ b/src/bun.js/bindings/webcore/DOMIsoSubspaces.h @@ -30,6 +30,7 @@ public: std::unique_ptr m_subspaceForPendingVirtualModuleResult; std::unique_ptr m_subspaceForCallSite; std::unique_ptr m_subspaceForNapiExternal; + std::unique_ptr m_subspaceForImportMeta; std::unique_ptr m_subspaceForRequireResolveFunction; std::unique_ptr m_subspaceForBundlerPlugin; std::unique_ptr m_subspaceForNodeVMScript; diff --git a/src/bun.js/module_loader.zig b/src/bun.js/module_loader.zig index e249bba8b..5838d8a49 100644 --- a/src/bun.js/module_loader.zig +++ b/src/bun.js/module_loader.zig @@ -1836,8 +1836,7 @@ pub const ModuleLoader = struct { .@"node:wasi" => return jsResolvedSource(jsc_vm, jsc_vm.load_builtins_from_path, .@"node:wasi", "node/wasi.js", specifier), .@"node:zlib" => return jsResolvedSource(jsc_vm, jsc_vm.load_builtins_from_path, .@"node:zlib", "node/zlib.js", specifier), - .@"detect-libc" => return jsResolvedSource(jsc_vm, jsc_vm.load_builtins_from_path, .depd, if (Environment.isLinux) "thirdparty/detect-libc.linux.js" else "thirdparty/detect-libc.js", specifier), - .depd => return jsResolvedSource(jsc_vm, jsc_vm.load_builtins_from_path, .depd, "thirdparty/depd.js", specifier), + .@"detect-libc" => return jsResolvedSource(jsc_vm, jsc_vm.load_builtins_from_path, .@"detect-libc", if (Environment.isLinux) "thirdparty/detect-libc.linux.js" else "thirdparty/detect-libc.js", specifier), .undici => return jsResolvedSource(jsc_vm, jsc_vm.load_builtins_from_path, .undici, "thirdparty/undici.js", specifier), .ws => return jsResolvedSource(jsc_vm, jsc_vm.load_builtins_from_path, .ws, "thirdparty/ws.js", specifier), @@ -1851,7 +1850,9 @@ pub const ModuleLoader = struct { .@"node:v8" => return jsResolvedSource(jsc_vm, jsc_vm.load_builtins_from_path, .@"node:v8", "node/v8.js", specifier), } } else if (specifier.hasPrefixComptime(js_ast.Macro.namespaceWithColon)) { - if (jsc_vm.macro_entry_points.get(MacroEntryPoint.generateIDFromSpecifier(specifier.byteSlice()))) |entry| { + const spec = specifier.toUTF8(bun.default_allocator); + defer spec.deinit(); + if (jsc_vm.macro_entry_points.get(MacroEntryPoint.generateIDFromSpecifier(spec.slice()))) |entry| { return ResolvedSource{ .allocator = null, .source_code = bun.String.create(entry.source.contents), @@ -1864,10 +1865,9 @@ pub const ModuleLoader = struct { return ResolvedSource{ .allocator = null, .source_code = bun.String.static( - \\const symbol = Symbol.for("CommonJS"); - \\const lazy = globalThis[Symbol.for("Bun.lazy")]; - \\var masqueradesAsUndefined = lazy("masqueradesAsUndefined"); - \\masqueradesAsUndefined[symbol] = 0; + \\var masqueradesAsUndefined=globalThis[Symbol.for("Bun.lazy")]("masqueradesAsUndefined"); + \\masqueradesAsUndefined[Symbol.for("CommonJS")]=0; + \\masqueradesAsUndefined.default=masqueradesAsUndefined; \\export default masqueradesAsUndefined; \\ ), @@ -2021,7 +2021,6 @@ pub const HardcodedModule = enum { @"node:vm", @"node:wasi", @"node:zlib", - depd, undici, ws, // These are all not implemented yet, but are stubbed @@ -2047,7 +2046,6 @@ pub const HardcodedModule = enum { .{ "bun:main", HardcodedModule.@"bun:main" }, .{ "bun:sqlite", HardcodedModule.@"bun:sqlite" }, .{ "bun:events_native", HardcodedModule.@"bun:events_native" }, - .{ "depd", HardcodedModule.depd }, .{ "detect-libc", HardcodedModule.@"detect-libc" }, .{ "node:assert", HardcodedModule.@"node:assert" }, .{ "node:assert/strict", HardcodedModule.@"node:assert/strict" }, @@ -2118,7 +2116,6 @@ pub const HardcodedModule = enum { .{ "bun:events_native", .{ .path = "bun:events_native" } }, .{ "child_process", .{ .path = "node:child_process" } }, .{ "crypto", .{ .path = "node:crypto" } }, - .{ "depd", .{ .path = "depd" } }, .{ "detect-libc", .{ .path = "detect-libc" } }, .{ "detect-libc/lib/detect-libc.js", .{ .path = "detect-libc" } }, .{ "dns", .{ .path = "node:dns" } }, diff --git a/src/bun.js/modules/BufferModule.h b/src/bun.js/modules/BufferModule.h index 42eab5173..a96fb18c8 100644 --- a/src/bun.js/modules/BufferModule.h +++ b/src/bun.js/modules/BufferModule.h @@ -29,10 +29,13 @@ inline void generateBufferSourceCode(JSC::JSGlobalObject *lexicalGlobalObject, JSC::JSObject *defaultObject = JSC::constructEmptyObject( globalObject, globalObject->objectPrototype(), 12); - defaultObject->putDirect(vm, - PropertyName(Identifier::fromUid( - vm.symbolRegistry().symbolForKey("CommonJS"_s))), - jsNumber(0), 0); + auto CommonJS = + Identifier::fromUid(vm.symbolRegistry().symbolForKey("CommonJS"_s)); + + defaultObject->putDirect(vm, PropertyName(CommonJS), jsNumber(0), 0); + + exportNames.append(CommonJS); + exportValues.append(jsNumber(0)); auto exportProperty = [&](JSC::Identifier name, JSC::JSValue value) { exportNames.append(name); diff --git a/src/bun.js/modules/ProcessModule.h b/src/bun.js/modules/ProcessModule.h index 3c9c3261f..2df74598a 100644 --- a/src/bun.js/modules/ProcessModule.h +++ b/src/bun.js/modules/ProcessModule.h @@ -50,26 +50,23 @@ inline void generateProcessSourceCode(JSC::JSGlobalObject *lexicalGlobalObject, process->getPropertyNames(globalObject, properties, DontEnumPropertiesMode::Exclude); - exportNames.append(JSC::Identifier::fromString(vm, "default"_s)); - JSFunction *processModuleCommonJS = JSFunction::create( - vm, globalObject, 0, "process"_s, jsFunctionProcessModuleCommonJS, - ImplementationVisibility::Public); - processModuleCommonJS->putDirect( - vm, - PropertyName( - Identifier::fromUid(vm.symbolRegistry().symbolForKey("CommonJS"_s))), - jsBoolean(true), 0); - exportValues.append(processModuleCommonJS); + exportNames.append(vm.propertyNames->defaultKeyword); + exportValues.append(process); + + exportNames.append( + Identifier::fromUid(vm.symbolRegistry().symbolForKey("CommonJS"_s))); + exportValues.append(jsNumber(0)); for (auto &entry : properties) { exportNames.append(entry); - exportValues.append(process->get(globalObject, entry)); - processModuleCommonJS->putDirectCustomAccessor( - vm, entry, - JSC::CustomGetterSetter::create(vm, - jsFunctionProcessModuleCommonJSGetter, - jsFunctionProcessModuleCommonJSSetter), - 0); + auto catchScope = DECLARE_CATCH_SCOPE(vm); + JSValue result = process->get(globalObject, entry); + if (catchScope.exception()) { + result = jsUndefined(); + catchScope.clearException(); + } + + exportValues.append(result); } } diff --git a/src/bun.js/modules/StringDecoderModule.h b/src/bun.js/modules/StringDecoderModule.h index c3b5f57bb..1dbf5ef8e 100644 --- a/src/bun.js/modules/StringDecoderModule.h +++ b/src/bun.js/modules/StringDecoderModule.h @@ -16,11 +16,11 @@ generateStringDecoderSourceCode(JSC::JSGlobalObject *lexicalGlobalObject, exportNames.append(JSC::Identifier::fromString(vm, "StringDecoder"_s)); exportValues.append(globalObject->JSStringDecoder()); + auto CommonJS = + Identifier::fromUid(vm.symbolRegistry().symbolForKey("CommonJS"_s)); + JSC::JSObject *defaultObject = constructEmptyObject(globalObject); - defaultObject->putDirect(vm, - PropertyName(Identifier::fromUid( - vm.symbolRegistry().symbolForKey("CommonJS"_s))), - jsNumber(0), 0); + defaultObject->putDirect(vm, PropertyName(CommonJS), jsNumber(0), 0); for (size_t i = 0; i < exportNames.size(); i++) { defaultObject->putDirect(vm, exportNames[i], exportValues.at(i), 0); @@ -28,6 +28,9 @@ generateStringDecoderSourceCode(JSC::JSGlobalObject *lexicalGlobalObject, exportNames.append(vm.propertyNames->defaultKeyword); exportValues.append(defaultObject); + + exportNames.append(CommonJS); + exportValues.append(jsNumber(0)); } } // namespace Zig diff --git a/src/bun.js/modules/TTYModule.h b/src/bun.js/modules/TTYModule.h index 423268b32..79bc8c871 100644 --- a/src/bun.js/modules/TTYModule.h +++ b/src/bun.js/modules/TTYModule.h @@ -62,17 +62,20 @@ inline void generateTTYSourceCode(JSC::JSGlobalObject *lexicalGlobalObject, tty->putDirect(vm, JSC::Identifier::fromString(vm, "WriteStream"_s), notimpl); exportValues.append(notimpl); - tty->putDirect(vm, - PropertyName(Identifier::fromUid( - vm.symbolRegistry().symbolForKey("CommonJS"_s))), - jsNumber(0), 0); - for (size_t i = 0; i < exportNames.size(); i++) { tty->putDirect(vm, exportNames[i], exportValues.at(i), 0); } exportNames.append(vm.propertyNames->defaultKeyword); exportValues.append(tty); + + auto CommonJS = + Identifier::fromUid(vm.symbolRegistry().symbolForKey("CommonJS"_s)); + + exportNames.append(CommonJS); + exportValues.append(jsNumber(0)); + + tty->putDirect(vm, PropertyName(CommonJS), jsNumber(0), 0); } } // namespace Zig diff --git a/src/bun.js/webcore/blob.zig b/src/bun.js/webcore/blob.zig index d19a2da26..1e63ea3a2 100644 --- a/src/bun.js/webcore/blob.zig +++ b/src/bun.js/webcore/blob.zig @@ -599,11 +599,14 @@ pub const Blob = struct { } var needs_async = false; + if (data.isString()) { + defer if (!needs_async and path_or_blob == .path) path_or_blob.path.deinit(); + const len = data.getLength(ctx); if (len < 256 * 1024 or bun.isMissingIOUring()) { - const str = data.getZigString(ctx); + const str = data.toBunString(ctx); const pathlike: JSC.Node.PathOrFileDescriptor = if (path_or_blob == .path) path_or_blob.path @@ -635,6 +638,8 @@ pub const Blob = struct { } } } else if (data.asArrayBuffer(ctx)) |buffer_view| { + defer if (!needs_async and path_or_blob == .path) path_or_blob.path.deinit(); + if (buffer_view.byte_len < 256 * 1024 or bun.isMissingIOUring()) { const pathlike: JSC.Node.PathOrFileDescriptor = if (path_or_blob == .path) path_or_blob.path @@ -784,7 +789,7 @@ pub const Blob = struct { fn writeStringToFileFast( globalThis: *JSC.JSGlobalObject, pathlike: JSC.Node.PathOrFileDescriptor, - str: ZigString, + str: bun.String, needs_async: *bool, comptime needs_open: bool, ) JSC.JSValue { @@ -807,7 +812,7 @@ pub const Blob = struct { unreachable; }; - var truncate = needs_open or str.len == 0; + var truncate = needs_open or str.isEmpty(); var jsc_vm = globalThis.bunVM(); var written: usize = 0; @@ -822,62 +827,12 @@ pub const Blob = struct { _ = JSC.Node.Syscall.close(fd); } } - if (str.len == 0) {} else if (str.is16Bit()) { - var decoded = str.toSlice(jsc_vm.allocator); + if (!str.isEmpty()) { + var decoded = str.toUTF8(jsc_vm.allocator); defer decoded.deinit(); var remain = decoded.slice(); - const end = remain.ptr + remain.len; - - while (remain.ptr != end) { - const result = JSC.Node.Syscall.write(fd, remain); - switch (result) { - .result => |res| { - written += res; - remain = remain[res..]; - if (res == 0) break; - }, - .err => |err| { - truncate = false; - if (err.getErrno() == .AGAIN) { - needs_async.* = true; - return .zero; - } - return JSC.JSPromise.rejectedPromiseValue(globalThis, err.toJSC(globalThis)); - }, - } - } - } else if (str.isUTF8() or strings.isAllASCII(str.slice())) { - var remain = str.slice(); - const end = remain.ptr + remain.len; - - while (remain.ptr != end) { - const result = JSC.Node.Syscall.write(fd, remain); - switch (result) { - .result => |res| { - written += res; - remain = remain[res..]; - if (res == 0) break; - }, - .err => |err| { - truncate = false; - if (err.getErrno() == .AGAIN) { - needs_async.* = true; - return .zero; - } - - return JSC.JSPromise.rejectedPromiseValue(globalThis, err.toJSC(globalThis)); - }, - } - } - } else { - var decoded = str.toOwnedSlice(jsc_vm.allocator) catch { - return JSC.JSPromise.rejectedPromiseValue(globalThis, ZigString.static("Out of memory").toErrorInstance(globalThis)); - }; - defer jsc_vm.allocator.free(decoded); - var remain = decoded; - const end = remain.ptr + remain.len; - while (remain.ptr != end) { + while (remain.len > 0) { const result = JSC.Node.Syscall.write(fd, remain); switch (result) { .result => |res| { diff --git a/src/js/builtins/BunBuiltinNames.h b/src/js/builtins/BunBuiltinNames.h index 640d122ca..af9291918 100644 --- a/src/js/builtins/BunBuiltinNames.h +++ b/src/js/builtins/BunBuiltinNames.h @@ -1,5 +1,15 @@ #pragma once + +#ifdef ASSERT_ENABLED +#if ASSERT_ENABLED +#define ORIGINAL_ASSERT_ENABLED 1 +#undef ASSERT_ENABLED +#define ASSERT_ENABLED 0 +#endif +#endif + + #include "JavaScriptCore/BuiltinUtils.h" #include "root.h" @@ -49,11 +59,11 @@ using namespace JSC; macro(cloneArrayBuffer) \ macro(close) \ macro(closeAlgorithm) \ - macro(closeRequest) \ - macro(closeRequested) \ macro(closed) \ macro(closedPromise) \ macro(closedPromiseCapability) \ + macro(closeRequest) \ + macro(closeRequested) \ macro(code) \ macro(commonJSSymbol) \ macro(connect) \ @@ -61,6 +71,7 @@ using namespace JSC; macro(controlledReadableStream) \ macro(controller) \ macro(cork) \ + macro(createCommonJSModule) \ macro(createEmptyReadableStream) \ macro(createFIFO) \ macro(createNativeReadableStream) \ @@ -93,13 +104,11 @@ using namespace JSC; macro(file) \ macro(filePath) \ macro(fillFromJS) \ - macro(filter) \ macro(finishConsumingStream) \ macro(flush) \ macro(flushAlgorithm) \ macro(format) \ macro(fulfillModuleSync) \ - macro(get) \ macro(getInternalWritableStream) \ macro(handleEvent) \ macro(hash) \ @@ -128,7 +137,7 @@ using namespace JSC; macro(lazyLoad) \ macro(lazyStreamPrototypeMap) \ macro(loadCJS2ESM) \ - macro(loadModule) \ + macro(evaluateCommonJSModule) \ macro(localStreams) \ macro(main) \ macro(makeDOMException) \ @@ -265,3 +274,9 @@ private: }; } // namespace WebCore + +#ifdef ORIGINAL_ASSERT_ENABLED +#undef ASSERT_ENABLED +#define ASSERT_ENABLED 1 +#undef ORIGINAL_ASSERT_ENABLED +#endif diff --git a/src/js/builtins/ImportMetaObject.ts b/src/js/builtins/ImportMetaObject.ts index 7fc8b5fe8..23b795735 100644 --- a/src/js/builtins/ImportMetaObject.ts +++ b/src/js/builtins/ImportMetaObject.ts @@ -8,9 +8,9 @@ export function loadCJS2ESM(this: ImportMetaObject, resolvedSpecifier: string) { // we need to explicitly check because state could be $ModuleFetch // it will throw this error if we do not: // $throwTypeError("Requested module is already fetched."); - var entry = loader.registry.$get(key); + var entry = loader.registry.$get(key)!; - if (!entry || !entry.state || entry.state <= $ModuleFetch) { + if ((entry?.state ?? 0) <= $ModuleFetch) { $fulfillModuleSync(key); entry = loader.registry.$get(key)!; } @@ -24,14 +24,14 @@ export function loadCJS2ESM(this: ImportMetaObject, resolvedSpecifier: string) { // so we just pull it out of the promise here once again // But, this time we do it a little more carefully because this is a JSC function call and not bun source code var moduleRecordPromise = loader.parseModule(key, sourceCodeObject); - var module = entry.module; - if (!module && moduleRecordPromise && $isPromise(moduleRecordPromise)) { + var mod = entry.module; + if (moduleRecordPromise && $isPromise(moduleRecordPromise)) { var reactionsOrResult = $getPromiseInternalField(moduleRecordPromise, $promiseFieldReactionsOrResult); var flags = $getPromiseInternalField(moduleRecordPromise, $promiseFieldFlags); var state = flags & $promiseStateMask; // this branch should never happen, but just to be safe if (state === $promiseStatePending || (reactionsOrResult && $isPromise(reactionsOrResult))) { - throw new TypeError(`require() async module "${key}" is unsupported`); + throw new TypeError(`require() async module "${key}" is unsupported. use "await import()" instead.`); } else if (state === $promiseStateRejected) { if (!reactionsOrResult?.message) { throw new TypeError( @@ -43,15 +43,15 @@ export function loadCJS2ESM(this: ImportMetaObject, resolvedSpecifier: string) { throw reactionsOrResult; } - entry.module = module = reactionsOrResult; - } else if (moduleRecordPromise && !module) { - entry.module = module = moduleRecordPromise as LoaderModule; + entry.module = mod = reactionsOrResult; + } else if (moduleRecordPromise && !mod) { + entry.module = mod = moduleRecordPromise as LoaderModule; } // This is very similar to "requestInstantiate" in ModuleLoader.js in JavaScriptCore. $setStateToMax(entry, $ModuleLink); - var dependenciesMap = module.dependenciesMap; - var requestedModules = loader.requestedModules(module); + var dependenciesMap = mod.dependenciesMap; + var requestedModules = loader.requestedModules(mod); var dependencies = $newArrayWithSize(requestedModules.length); for (var i = 0, length = requestedModules.length; i < length; ++i) { var depName = requestedModules[i]; @@ -59,6 +59,7 @@ export function loadCJS2ESM(this: ImportMetaObject, resolvedSpecifier: string) { // we don't need to run the resolver a 2nd time var depKey = depName[0] === "/" ? depName : loader.resolve(depName, key); var depEntry = loader.ensureRegistered(depKey); + if (depEntry.state < $ModuleLink) { queue.push(depKey); } @@ -81,7 +82,9 @@ export function loadCJS2ESM(this: ImportMetaObject, resolvedSpecifier: string) { if (linkAndEvaluateResult && $isPromise(linkAndEvaluateResult)) { // if you use top-level await, or any dependencies use top-level await, then we throw here // this means the module will still actually load eventually, but that's okay. - throw new TypeError(`require() async module \"${resolvedSpecifier}\" is unsupported`); + throw new TypeError( + `require() async module \"${resolvedSpecifier}\" is unsupported. use "await import()" instead.`, + ); } return loader.registry.$get(resolvedSpecifier); @@ -104,152 +107,114 @@ export function requireESM(this: ImportMetaObject, resolved) { return; } - var commonJS = exports.default; - var cjs = commonJS?.[$commonJSSymbol]; - if (cjs === 0) { - return commonJS; - } else if (cjs && $isCallable(commonJS)) { - return commonJS(); - } - return exports; } -export function internalRequire(this: ImportMetaObject, resolved) { - var cached = $requireMap.$get(resolved); - const last5 = resolved.substring(resolved.length - 5); +export function internalRequire(this: ImportMetaObject, id) { + var cached = $requireMap.$get(id); + const last5 = id.substring(id.length - 5); if (cached) { - if (last5 === ".node") { - return cached.exports; - } - return cached; + return cached.exports; } // TODO: remove this hardcoding if (last5 === ".json") { var fs = (globalThis[Symbol.for("_fs")] ||= Bun.fs()); - var exports = JSON.parse(fs.readFileSync(resolved, "utf8")); - $requireMap.$set(resolved, exports); + var exports = JSON.parse(fs.readFileSync(id, "utf8")); + $requireMap.$set(id, $createCommonJSModule(id, exports, true)); return exports; } else if (last5 === ".node") { - var module = { exports: {} }; - process.dlopen(module, resolved); - $requireMap.$set(resolved, module); + const module = $createCommonJSModule(id, {}, true); + process.dlopen(module, id); + $requireMap.$set(id, module); return module.exports; } else if (last5 === ".toml") { var fs = (globalThis[Symbol.for("_fs")] ||= Bun.fs()); - var exports = Bun.TOML.parse(fs.readFileSync(resolved, "utf8")); - $requireMap.$set(resolved, exports); + var exports = Bun.TOML.parse(fs.readFileSync(id, "utf8")); + $requireMap.$set(id, $createCommonJSModule(id, exports, true)); return exports; } else { - var exports = $requireESM(resolved); - const cachedExports = $requireMap.$get(resolved); - if (cachedExports) { - return cachedExports; + var exports = $requireESM(id); + const cachedModule = $requireMap.$get(id); + if (cachedModule) { + return cachedModule.exports; } - - $requireMap.$set(resolved, exports); + var defaultExport = exports?.default; + if (defaultExport?.[$commonJSSymbol] === 0) { + exports = defaultExport; + } + $requireMap.$set(id, $createCommonJSModule(id, exports, true)); return exports; } } export function createRequireCache() { - class Module { - id; - parent; - filename; - children = []; - paths = []; - - constructor(filename) { - this.id = filename; - // TODO: windows - const lastSlash = filename.lastIndexOf("/"); - if (lastSlash !== -1 && filename.length > lastSlash + 1) { - this.filename = filename.substring(lastSlash + 1); - } else { - this.filename = filename; + var moduleMap = new Map(); + var inner = {}; + return new Proxy(inner, { + get(target, key: string) { + const entry = $requireMap.$get(key); + if (entry) return entry; + + const esm = Loader.registry.$get(key); + if (esm?.evaluated) { + const namespace = Loader.getModuleNamespaceObject(esm.module); + const exports = + namespace[$commonJSSymbol] === 0 || namespace.default?.[$commonJSSymbol] ? namespace.default : namespace; + const mod = $createCommonJSModule(key, exports, true); + $requireMap.$set(key, mod); + return mod; } - } - get loaded() { + return inner[key]; + }, + set(target, key: string, value) { + $requireMap.$set(key, value); return true; - } - - require(path) { - return $internalRequire($resolveSync(path, this.id)); - } - - get exports() { - return $requireMap.$get(this.id) ?? {}; - } + }, - set exports(value) { - $requireMap.$set(this.id, value); - } - } + has(target, key: string) { + return $requireMap.$has(key) || Loader.registry.$has(key); + }, - var moduleMap = new Map(); + deleteProperty(target, key: string) { + moduleMap.$delete(key); + $requireMap.$delete(key); + Loader.registry.$delete(key); + return true; + }, - return new Proxy( - {}, - { - get(target, key: string) { - const entry = $requireMap.$get(key); - if (entry) { - var mod = moduleMap.$get(key); - if (!mod) { - mod = new Module(key); - moduleMap.$set(key, mod); - } - return mod; + ownKeys(target) { + var array = [...$requireMap.$keys()]; + const registryKeys = [...Loader.registry.$keys()]; + for (const key of registryKeys) { + if (!array.includes(key)) { + $arrayPush(array, key); } - }, - set(target, key: string, value) { - if (!moduleMap.$has(key)) { - moduleMap.$set(key, new Module(key)); - } - - $requireMap.$set(key, value?.exports); - - return true; - }, - - has(target, key: string) { - return $requireMap.$has(key); - }, - - deleteProperty(target, key: string) { - moduleMap.$delete(key); - $requireMap.$delete(key); - Loader.registry.$delete(key); - return true; - }, + } - ownKeys(target) { - return [...$requireMap.$keys()]; - }, + return array; + }, - // In Node, require.cache has a null prototype - getPrototypeOf(target) { - return null; - }, + // In Node, require.cache has a null prototype + getPrototypeOf(target) { + return null; + }, - getOwnPropertyDescriptor(target, key: string) { - if ($requireMap.$has(key)) { - return { - configurable: true, - enumerable: true, - }; - } - }, + getOwnPropertyDescriptor(target, key: string) { + if ($requireMap.$has(key) || Loader.registry.$has(key)) { + return { + configurable: true, + enumerable: true, + }; + } }, - ); + }); } $sloppy; export function require(this: ImportMetaObject, name) { - var from = this?.path ?? arguments.callee.path; + var from = this?.path ?? arguments.callee?.path; if (typeof name !== "string") { throw new TypeError("require(name) must be a string"); diff --git a/src/js/builtins/Module.ts b/src/js/builtins/Module.ts new file mode 100644 index 000000000..ebfc1c477 --- /dev/null +++ b/src/js/builtins/Module.ts @@ -0,0 +1,94 @@ +interface Module { + id: string; + path: string; + + $require(id: string, mod: any): any; + children: Module[]; +} + +$getter; +export function main() { + return $requireMap.$get(Bun.main); +} + +export function require(this: Module, id: string) { + const existing = $requireMap.$get(id) || $requireMap.$get((id = $resolveSync(id, this.path, false))); + if (existing) { + // Scenario where this is necessary: + // + // In an ES Module, we have: + // + // import "react-dom/server" + // import "react" + // + // Synchronously, the "react" import is created first, and then the + // "react-dom/server" import is created. Then, at ES Module link time, they + // are evaluated. The "react-dom/server" import is evaluated first, and + // require("react") was previously created as an ESM module, so we wait + // for the ESM module to load + // + // ...and then when this code is reached, unless + // we evaluate it "early", we'll get an empty object instead of the module + // exports. + // + $evaluateCommonJSModule(existing); + return existing.exports; + } + + if (id.endsWith(".json") || id.endsWith(".toml") || id.endsWith(".node")) { + return $internalRequire(id); + } + + let esm = Loader.registry.$get(id); + if (esm?.evaluated) { + const mod = esm.module; + const namespace = Loader.getModuleNamespaceObject(mod); + const exports = + namespace?.[$commonJSSymbol] === 0 || namespace?.default?.[$commonJSSymbol] === 0 ? namespace.default : namespace; + $requireMap.$set(id, $createCommonJSModule(id, exports, true)); + return exports; + } + + // To handle import/export cycles, we need to create a module object and put + // it into the map before we import it. + const mod = $createCommonJSModule(id, {}, false); + $requireMap.$set(id, mod); + + // This is where we load the module. We will see if Module._load and + // Module._compile are actually important for compatibility. + // + // Note: we do not need to wrap this in a try/catch, if it throws the C++ code will + // clear the module from the map. + // + var out = this.$require(id, mod); + + // -1 means we need to lookup the module from the ESM registry. + if (out === -1) { + try { + out = $requireESM(id); + } catch (exception) { + // Since the ESM code is mostly JS, we need to handle exceptions here. + $requireMap.$delete(id); + throw exception; + } + + esm = Loader.registry.$get(id); + + // If we can pull out a ModuleNamespaceObject, let's do it. + if (esm?.evaluated) { + const namespace = Loader.getModuleNamespaceObject(esm!.module); + return (mod.exports = + // if they choose a module + namespace?.[$commonJSSymbol] === 0 || namespace?.default?.[$commonJSSymbol] === 0 + ? namespace.default + : namespace); + } + } + + $evaluateCommonJSModule(mod); + return mod.exports; +} + +export function requireResolve(this: Module, id: string) { + return $resolveSync(id, this.path, false); +} diff --git a/src/js/builtins/builtins.d.ts b/src/js/builtins/builtins.d.ts index d2e7037dc..449c9c128 100644 --- a/src/js/builtins/builtins.d.ts +++ b/src/js/builtins/builtins.d.ts @@ -341,9 +341,9 @@ declare function $releaseLock(): TODO; declare function $removeEventListener(): TODO; declare function $require(): TODO; declare function $requireESM(path: string): any; -declare const $requireMap: Map; +declare const $requireMap: Map; declare function $resolve(name: string, from: string): Promise; -declare function $resolveSync(name: string, from: string): string; +declare function $resolveSync(name: string, from: string, isESM?: boolean): string; declare function $resume(): TODO; declare function $search(): TODO; declare function $searchParams(): TODO; @@ -402,6 +402,8 @@ declare function $writer(): TODO; declare function $writing(): TODO; declare function $written(): TODO; +declare function $createCommonJSModule(id: string, exports: any, hasEvaluated: boolean): NodeModule; + // The following I cannot find any definitions of, but they are functional. declare function $toLength(length: number): number; declare function $isTypedArrayView(obj: unknown): obj is ArrayBufferView | DataView | Uint8Array; diff --git a/src/js/builtins/tsconfig.json b/src/js/builtins/tsconfig.json index f8b12c5c3..6cdbe0eef 100644 --- a/src/js/builtins/tsconfig.json +++ b/src/js/builtins/tsconfig.json @@ -3,5 +3,11 @@ "compilerOptions": { "noEmit": true }, - "include": [".", "../private.d.ts", "builtins.d.ts", "../generated/builtins/WebCoreJSBuiltins.d.ts", "../../../packages/bun-types/index.d.ts"] + "include": [ + ".", + "../private.d.ts", + "builtins.d.ts", + "../out/WebCoreJSBuiltins.d.ts", + "../../../packages/bun-types/index.d.ts" + ] } diff --git a/src/js/node/assert.js b/src/js/node/assert.js index 3cf158f57..ba4df43cc 100644 --- a/src/js/node/assert.js +++ b/src/js/node/assert.js @@ -1,43 +1,12 @@ // Hardcoded module "node:assert" -var { Bun } = import.meta.primordials; +var { Bun } = globalThis[Symbol.for("Bun.lazy")]("primordials"); +import util from "node:util"; + var isDeepEqual = Bun.deepEquals; -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf, - __hasOwnProp = Object.prototype.hasOwnProperty; -var __markAsModule = target => __defProp(target, "__esModule", { value: !0 }); var __commonJS = (cb, mod) => function () { return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; -var __reExport = (target, module2, desc) => { - if ((module2 && typeof module2 == "object") || typeof module2 == "function") - for (let key of __getOwnPropNames(module2)) - !__hasOwnProp.call(target, key) && - key !== "default" && - __defProp(target, key, { - get: () => module2[key], - enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable, - }); - return target; - }, - __toModule = module2 => - __reExport( - __markAsModule( - __defProp( - module2 != null ? __create(__getProtoOf(module2)) : {}, - "default", - module2 && module2.__esModule && "default" in module2 - ? { get: () => module2.default, enumerable: !0 } - : { value: module2, enumerable: !0 }, - ), - ), - module2, - ); - -var require = path => import.meta.require(path); // assert/build/internal/errors.js var require_errors = __commonJS({ @@ -175,7 +144,6 @@ var require_errors = __commonJS({ "ERR_INVALID_ARG_VALUE", function (name, value) { var reason = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "is invalid"; - util === void 0 && (util = require("util")); var inspected = util.inspect(value); return ( inspected.length > 128 && (inspected = "".concat(inspected.slice(0, 128), "...")), @@ -387,8 +355,7 @@ var require_assertion_error = __commonJS({ _typeof(obj) ); } - var _require = require("util"), - inspect = _require.inspect, + var inspect = util.inspect, _require2 = require_errors(), ERR_INVALID_ARG_TYPE = _require2.codes.ERR_INVALID_ARG_TYPE; function endsWith(str, search, this_len) { @@ -871,9 +838,9 @@ var require_assert = __commonJS({ ERR_INVALID_RETURN_VALUE = _require$codes.ERR_INVALID_RETURN_VALUE, ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, AssertionError = require_assertion_error(), - _require2 = require("util"), + _require2 = util, inspect = _require2.inspect, - _require$types = require("util").types, + _require$types = util.types, isPromise = _require$types.isPromise, isRegExp = _require$types.isRegExp, objectAssign = Object.assign, diff --git a/src/js/node/async_hooks.js b/src/js/node/async_hooks.js index 7887bb64f..ec82ce8aa 100644 --- a/src/js/node/async_hooks.js +++ b/src/js/node/async_hooks.js @@ -1,8 +1,5 @@ // Hardcoded module "node:async_hooks" -var drainMicrotasks = () => { - ({ drainMicrotasks } = import.meta.require("bun:jsc")); - drainMicrotasks(); -}; +import { drainMicrotasks } from "bun:jsc"; var notImplemented = () => { console.warn( diff --git a/src/js/node/child_process.js b/src/js/node/child_process.js index 691c9e096..29b203219 100644 --- a/src/js/node/child_process.js +++ b/src/js/node/child_process.js @@ -1,15 +1,11 @@ // Hardcoded module "node:child_process" -const EventEmitter = import.meta.require("node:events"); -const { - Readable: { fromWeb: ReadableFromWeb }, - NativeWritable, -} = import.meta.require("node:stream"); -const { - constants: { signals }, -} = import.meta.require("node:os"); -const { promisify } = import.meta.require("node:util"); - -const { ArrayBuffer, Uint8Array, String, Object, Buffer, Promise } = import.meta.primordials; +import { EventEmitter } from "node:events"; +import * as StreamModule from "node:stream"; +import { constants } from "node:os"; +import { promisify } from "node:util"; +const signals = constants.signals; + +const { ArrayBuffer, Uint8Array, String, Object, Buffer, Promise } = globalThis[Symbol.for("Bun.lazy")]("primordials"); var ObjectPrototypeHasOwnProperty = Object.prototype.hasOwnProperty; var ObjectCreate = Object.create; @@ -21,8 +17,6 @@ var BufferIsEncoding = Buffer.isEncoding; var kEmptyObject = ObjectCreate(null); var ArrayPrototypePush = Array.prototype.push; -var ArrayPrototypeReduce = Array.prototype.reduce; -var ArrayPrototypeFilter = Array.prototype.filter; var ArrayPrototypeJoin = Array.prototype.join; var ArrayPrototypeMap = Array.prototype.map; var ArrayPrototypeIncludes = Array.prototype.includes; @@ -60,6 +54,9 @@ if (__TRACK_STDIO__) { }; } +var NativeWritable; +var ReadableFromWeb; + // Sections: // 1. Exported child_process functions // 2. child_process helpers @@ -961,6 +958,10 @@ export class ChildProcess extends EventEmitter { debug("ChildProcess: getBunSpawnIo: this.#handle is undefined"); } } + + NativeWritable ||= StreamModule.NativeWritable; + ReadableFromWeb ||= StreamModule.Readable.fromWeb; + const io = this.#stdioOptions[i]; switch (i) { case 0: { @@ -979,15 +980,7 @@ export class ChildProcess extends EventEmitter { case 1: { switch (io) { case "pipe": - return ReadableFromWeb( - this.#handle[fdToStdioName(i)], - __TRACK_STDIO__ - ? { - encoding, - __id: `PARENT_${fdToStdioName(i).toUpperCase()}-${globalThis.__getId()}`, - } - : { encoding }, - ); + return ReadableFromWeb(this.#handle[fdToStdioName(i)], { encoding }); case "inherit": return process[fdToStdioName(i)] || null; case "destroyed": diff --git a/src/js/node/crypto.js b/src/js/node/crypto.js index a644499c8..3791bdcd9 100644 --- a/src/js/node/crypto.js +++ b/src/js/node/crypto.js @@ -5,10 +5,12 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty; +import { StringDecoder } from "node:string_decoder"; +import * as BufferModule from "node:buffer"; +import * as StreamModule from "node:stream"; const MAX_STRING_LENGTH = 536870888; - -var __require = id => import.meta.require(id); +var Buffer = globalThis.Buffer; const crypto = globalThis.crypto; const globalCrypto = crypto; @@ -48,7 +50,7 @@ var __export = (target, all) => { // node_modules/safe-buffer/index.js var require_safe_buffer = __commonJS({ "node_modules/safe-buffer/index.js"(exports, module) { - var buffer = __require("buffer"), + var buffer = BufferModule, Buffer2 = buffer.Buffer; function copyProps(src, dst) { for (var key in src) dst[key] = src[key]; @@ -146,21 +148,20 @@ var require_hash_base = __commonJS({ "node_modules/hash-base/index.js"(exports, module) { "use strict"; var Buffer2 = require_safe_buffer().Buffer, - Transform = __require("readable-stream").Transform, inherits = require_inherits_browser(); function throwIfNotStringOrBuffer(val, prefix) { if (!Buffer2.isBuffer(val) && typeof val != "string") throw new TypeError(prefix + " must be a string or a buffer"); } function HashBase(blockSize) { - Transform.call(this), + StreamModule.Transform.call(this), (this._block = Buffer2.allocUnsafe(blockSize)), (this._blockSize = blockSize), (this._blockOffset = 0), (this._length = [0, 0, 0, 0]), (this._finalized = !1); } - inherits(HashBase, Transform); + inherits(HashBase, StreamModule.Transform); HashBase.prototype._transform = function (chunk, encoding, callback) { var error = null; try { @@ -341,7 +342,7 @@ var require_md5 = __commonJS({ var require_ripemd160 = __commonJS({ "node_modules/ripemd160/index.js"(exports, module) { "use strict"; - var Buffer2 = __require("buffer").Buffer, + var Buffer2 = Buffer, inherits = require_inherits_browser(), HashBase = require_hash_base(), ARRAY16 = new Array(16), @@ -1063,25 +1064,20 @@ var require_sha2 = __commonJS({ }, }); -// stream.js -var stream_exports = import.meta.require("node:stream"); - // node_modules/cipher-base/index.js var require_cipher_base = __commonJS({ "node_modules/cipher-base/index.js"(exports, module) { var Buffer2 = require_safe_buffer().Buffer, - Transform = stream_exports.Transform, - StringDecoder = __require("string_decoder").StringDecoder, inherits = require_inherits_browser(); function CipherBase(hashMode) { - Transform.call(this), + StreamModule.Transform.call(this), (this.hashMode = typeof hashMode == "string"), this.hashMode ? (this[hashMode] = this._finalOrDigest) : (this.final = this._finalOrDigest), this._final && ((this.__final = this._final), (this._final = null)), (this._decoder = null), (this._encoding = null); } - inherits(CipherBase, Transform); + inherits(CipherBase, StreamModule.Transform); CipherBase.prototype.update = function (data, inputEnc, outputEnc) { typeof data == "string" && (data = Buffer2.from(data, inputEnc)); var outData = this._update(data); @@ -1134,15 +1130,13 @@ var require_cipher_base = __commonJS({ var require_browser2 = __commonJS({ "node_modules/create-hash/browser.js"(exports, module) { ("use strict"); - const { Transform } = stream_exports; - // does not become a node stream unless you create it into one const LazyHash = function Hash(algorithm, options) { this._options = options; this._hasher = new CryptoHasher(algorithm, options); this._finalized = false; }; - LazyHash.prototype = Object.create(Transform.prototype); + LazyHash.prototype = Object.create(StreamModule.Transform.prototype); LazyHash.prototype.update = function update(data, encoding) { this._checkFinalized(); this._hasher.update(data, encoding); @@ -1169,7 +1163,7 @@ var require_browser2 = __commonJS({ }; const lazyHashFullInitProto = { - __proto__: Transform.prototype, + __proto__: StreamModule.Transform.prototype, ...LazyHash.prototype, _transform(data, encoding, callback) { this.update(data, encoding); @@ -1271,7 +1265,7 @@ var require_browser2 = __commonJS({ Object.defineProperty(LazyHash.prototype, method, { get() { Object.setPrototypeOf(this, lazyHashFullInitProto); - Transform.call(this, this._options); + StreamModule.Transform.call(this, this._options); return this[method]; }, enumerable: false, @@ -3330,12 +3324,7 @@ var require_bn = __commonJS({ this._init(number || 0, base || 10, endian || "be")); } typeof module2 == "object" ? (module2.exports = BN) : (exports2.BN = BN), (BN.BN = BN), (BN.wordSize = 26); - var Buffer2; - try { - typeof window < "u" && typeof window.Buffer < "u" - ? (Buffer2 = window.Buffer) - : (Buffer2 = __require("buffer").Buffer); - } catch {} + var Buffer2 = Buffer; (BN.isBN = function (num) { return num instanceof BN ? !0 @@ -5322,12 +5311,7 @@ var require_bn2 = __commonJS({ this._init(number || 0, base || 10, endian || "be")); } typeof module2 == "object" ? (module2.exports = BN) : (exports2.BN = BN), (BN.BN = BN), (BN.wordSize = 26); - var Buffer2; - try { - typeof window < "u" && typeof window.Buffer < "u" - ? (Buffer2 = window.Buffer) - : (Buffer2 = __require("buffer").Buffer); - } catch {} + var Buffer2 = Buffer; (BN.isBN = function (num) { return num instanceof BN ? !0 @@ -7670,12 +7654,7 @@ var require_bn3 = __commonJS({ this._init(number || 0, base || 10, endian || "be")); } typeof module2 == "object" ? (module2.exports = BN) : (exports2.BN = BN), (BN.BN = BN), (BN.wordSize = 26); - var Buffer2; - try { - typeof window < "u" && typeof window.Buffer < "u" - ? (Buffer2 = window.Buffer) - : (Buffer2 = __require("buffer").Buffer); - } catch {} + var Buffer2 = Buffer; (BN.isBN = function (num) { return num instanceof BN ? !0 @@ -9797,12 +9776,7 @@ var require_bn4 = __commonJS({ this._init(number || 0, base || 10, endian || "be")); } typeof module2 == "object" ? (module2.exports = BN) : (exports2.BN = BN), (BN.BN = BN), (BN.wordSize = 26); - var Buffer2; - try { - typeof window < "u" && typeof window.Buffer < "u" - ? (Buffer2 = window.Buffer) - : (Buffer2 = __require("buffer").Buffer); - } catch {} + var Buffer2 = Buffer; (BN.isBN = function (num) { return num instanceof BN ? !0 @@ -15491,12 +15465,8 @@ var require_bn5 = __commonJS({ this._init(number || 0, base || 10, endian || "be")); } typeof module2 == "object" ? (module2.exports = BN) : (exports2.BN = BN), (BN.BN = BN), (BN.wordSize = 26); - var Buffer2; - try { - typeof window < "u" && typeof window.Buffer < "u" - ? (Buffer2 = window.Buffer) - : (Buffer2 = __require("buffer").Buffer); - } catch {} + var Buffer2 = Buffer; + (BN.isBN = function (num) { return num instanceof BN ? !0 @@ -17461,8 +17431,8 @@ var require_bn5 = __commonJS({ var require_safer = __commonJS({ "node_modules/safer-buffer/safer.js"(exports, module) { "use strict"; - var buffer = __require("buffer"), - Buffer2 = buffer.Buffer, + var buffer = BufferModule, + Buffer2 = Buffer, safer = {}, key; for (key in buffer) @@ -19334,7 +19304,6 @@ var require_browser8 = __commonJS({ "node_modules/browserify-sign/browser/index.js"(exports, module) { var Buffer2 = require_safe_buffer().Buffer, createHash = require_browser2(), - stream = __require("readable-stream"), inherits = require_inherits_browser(), sign = require_sign(), verify = require_verify(), @@ -19343,7 +19312,7 @@ var require_browser8 = __commonJS({ (algorithms[key].id = Buffer2.from(algorithms[key].id, "hex")), (algorithms[key.toLowerCase()] = algorithms[key]); }); function Sign(algorithm) { - stream.Writable.call(this); + StreamModule.Writable.call(this); var data = algorithms[algorithm]; if (!data) throw new Error("Unknown message digest"); (this._hashType = data.hash), @@ -19351,7 +19320,7 @@ var require_browser8 = __commonJS({ (this._tag = data.id), (this._signType = data.sign); } - inherits(Sign, stream.Writable); + inherits(Sign, StreamModule.Writable); Sign.prototype._write = function (data, _, done) { this._hash.update(data), done(); }; @@ -19365,12 +19334,12 @@ var require_browser8 = __commonJS({ return enc ? sig.toString(enc) : sig; }; function Verify(algorithm) { - stream.Writable.call(this); + StreamModule.Writable.call(this); var data = algorithms[algorithm]; if (!data) throw new Error("Unknown message digest"); (this._hash = createHash(data.hash)), (this._tag = data.id), (this._signType = data.sign); } - inherits(Verify, stream.Writable); + inherits(Verify, StreamModule.Writable); Verify.prototype._write = function (data, _, done) { this._hash.update(data), done(); }; @@ -19423,12 +19392,7 @@ var require_bn6 = __commonJS({ this._init(number || 0, base || 10, endian || "be")); } typeof module2 == "object" ? (module2.exports = BN) : (exports2.BN = BN), (BN.BN = BN), (BN.wordSize = 26); - var Buffer2; - try { - typeof window < "u" && typeof window.Buffer < "u" - ? (Buffer2 = window.Buffer) - : (Buffer2 = __require("buffer").Buffer); - } catch {} + var Buffer2 = Buffer; (BN.isBN = function (num) { return num instanceof BN ? !0 diff --git a/src/js/node/dns.promises.js b/src/js/node/dns.promises.js index b41cc2b22..8b1aa4e48 100644 --- a/src/js/node/dns.promises.js +++ b/src/js/node/dns.promises.js @@ -1,5 +1,5 @@ // Hardcoded module "node:dns/promises" -const { promises } = import.meta.require("node:dns"); +import { promises } from "node:dns"; export const { lookup, diff --git a/src/js/node/events.js b/src/js/node/events.js index e42f89ad1..4fd16a85b 100644 --- a/src/js/node/events.js +++ b/src/js/node/events.js @@ -1,7 +1,8 @@ // Reimplementation of https://nodejs.org/api/events.html // Reference: https://github.com/nodejs/node/blob/main/lib/events.js import { throwNotImplemented } from "../shared"; -var { isPromise, Array, Object } = import.meta.primordials; + +var { isPromise, Array, Object } = globalThis[Symbol.for("Bun.lazy")]("primordials"); const SymbolFor = Symbol.for; const ObjectDefineProperty = Object.defineProperty; const kCapture = Symbol("kCapture"); @@ -386,8 +387,6 @@ Object.defineProperties(EventEmitter, { EventEmitter.init = EventEmitter; EventEmitter[Symbol.for("CommonJS")] = 0; -export default EventEmitter; - function eventTargetAgnosticRemoveListener(emitter, name, listener, flags) { if (typeof emitter.removeListener === "function") { emitter.removeListener(name, listener); @@ -454,10 +453,22 @@ function checkListener(listener) { } } -export class EventEmitterAsyncResource extends EventEmitter { +class EventEmitterAsyncResource extends EventEmitter { constructor(options = undefined) { throwNotImplemented("EventEmitterAsyncResource", 1832); } } - -EventEmitter.EventEmitterAsyncResource = EventEmitterAsyncResource; +const usingDomains = false; +// EventEmitter[Symbol.for("CommonJS")] = 0; +Object.assign(EventEmitter, { once, on, getEventListeners, setMaxListeners, listenerCount, EventEmitterAsyncResource }); +export { + EventEmitter, + once, + on, + getEventListeners, + setMaxListeners, + listenerCount, + usingDomains, + captureRejectionSymbol, +}; +export default EventEmitter; diff --git a/src/js/node/fs.js b/src/js/node/fs.js index 6b0e3954e..2bd752d19 100644 --- a/src/js/node/fs.js +++ b/src/js/node/fs.js @@ -1,11 +1,14 @@ -import { EventEmitter } from "stream"; +export var ReadStream; +export var WriteStream; + +import { EventEmitter } from "node:events"; // Hardcoded module "node:fs" -var { direct, isPromise, isCallable } = import.meta.primordials; -var promises = import.meta.require("node:fs/promises"); +var { direct, isPromise, isCallable } = globalThis[Symbol.for("Bun.lazy")]("primordials"); +export { default as promises } from "node:fs/promises"; +import promises from "node:fs/promises"; -var { Readable, NativeWritable, _getNativeReadableStreamPrototype, eos: eos_ } = import.meta.require("node:stream"); -var NativeReadable = _getNativeReadableStreamPrototype(2, Readable); // 2 means native type is a file here +import * as Stream from "node:stream"; var fs = Bun.fs(); var debug = process.env.DEBUG ? console.log : () => {}; @@ -214,8 +217,7 @@ export var access = function access(...args) { Stats = fs.Stats, watch = function watch(path, options, listener) { return new FSWatcher(path, options, listener); - }, - promises = import.meta.require("node:fs/promises"); + }; function callbackify(fsFunction, args) { try { @@ -284,7 +286,8 @@ var defaultReadStreamOptions = { }; var ReadStreamClass; -export var ReadStream = (function (InternalReadStream) { + +ReadStream = (function (InternalReadStream) { ReadStreamClass = InternalReadStream; Object.defineProperty(ReadStreamClass.prototype, Symbol.toStringTag, { value: "ReadStream", @@ -303,7 +306,7 @@ export var ReadStream = (function (InternalReadStream) { }, ); })( - class ReadStream extends NativeReadable { + class ReadStream extends Stream._getNativeReadableStreamPrototype(2, Stream.Readable) { constructor(pathOrFd, options = defaultReadStreamOptions) { if (typeof options !== "object" || !options) { throw new TypeError("Expected options to be an object"); @@ -631,7 +634,7 @@ var defaultWriteStreamOptions = { }; var WriteStreamClass; -export var WriteStream = (function (InternalWriteStream) { +WriteStream = (function (InternalWriteStream) { WriteStreamClass = InternalWriteStream; Object.defineProperty(WriteStreamClass.prototype, Symbol.toStringTag, { value: "WritesStream", @@ -650,7 +653,7 @@ export var WriteStream = (function (InternalWriteStream) { }, ); })( - class WriteStream extends NativeWritable { + class WriteStream extends Stream.NativeWritable { constructor(path, options = defaultWriteStreamOptions) { if (!options) { throw new TypeError("Expected options to be an object"); @@ -939,7 +942,7 @@ export function createWriteStream(path, options) { } // NOTE: This was too smart and doesn't actually work -// export var WriteStream = Object.defineProperty( +// WriteStream = Object.defineProperty( // function WriteStream(path, options) { // var _InternalWriteStream = getLazyWriteStream(); // return new _InternalWriteStream(path, options); @@ -948,7 +951,7 @@ export function createWriteStream(path, options) { // { value: (instance) => instance[writeStreamSymbol] === true }, // ); -// export var ReadStream = Object.defineProperty( +// ReadStream = Object.defineProperty( // function ReadStream(path, options) { // var _InternalReadStream = getLazyReadStream(); // return new _InternalReadStream(path, options); @@ -1077,3 +1080,5 @@ export default { // return getLazyReadStream(); // }, }; + +export { constants } from "node:fs/promises"; diff --git a/src/js/node/http.js b/src/js/node/http.js index 8839c9af7..4fba20881 100644 --- a/src/js/node/http.js +++ b/src/js/node/http.js @@ -1,10 +1,34 @@ // Hardcoded module "node:http" -const { EventEmitter } = import.meta.require("node:events"); -const { isIPv6 } = import.meta.require("node:net"); -const { Readable, Writable, Duplex } = import.meta.require("node:stream"); -const { URL } = import.meta.require("node:url"); -const { newArrayWithSize, String, Object, Array } = import.meta.primordials; -const { isTypedArray } = import.meta.require("util/types"); +import { EventEmitter } from "node:events"; +import { Readable, Writable, Duplex } from "node:stream"; +import { isTypedArray } from "util/types"; + +// Cheaper to duplicate this than to import it from node:net +function isIPv6(input) { + const v4Seg = "(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])"; + const v4Str = `(${v4Seg}[.]){3}${v4Seg}`; + const v6Seg = "(?:[0-9a-fA-F]{1,4})"; + const IPv6Reg = new RegExp( + "^(" + + `(?:${v6Seg}:){7}(?:${v6Seg}|:)|` + + `(?:${v6Seg}:){6}(?:${v4Str}|:${v6Seg}|:)|` + + `(?:${v6Seg}:){5}(?::${v4Str}|(:${v6Seg}){1,2}|:)|` + + `(?:${v6Seg}:){4}(?:(:${v6Seg}){0,1}:${v4Str}|(:${v6Seg}){1,3}|:)|` + + `(?:${v6Seg}:){3}(?:(:${v6Seg}){0,2}:${v4Str}|(:${v6Seg}){1,4}|:)|` + + `(?:${v6Seg}:){2}(?:(:${v6Seg}){0,3}:${v4Str}|(:${v6Seg}){1,5}|:)|` + + `(?:${v6Seg}:){1}(?:(:${v6Seg}){0,4}:${v4Str}|(:${v6Seg}){1,6}|:)|` + + `(?::((?::${v6Seg}){0,5}:${v4Str}|(?::${v6Seg}){1,7}|:))` + + ")(%[0-9a-zA-Z-.:]{1,})?$", + ); + + return IPv6Reg.test(input); +} + +// TODO: add primordial for URL +// Importing from node:url is unnecessary +const { URL } = globalThis; + +const { newArrayWithSize, String, Object, Array } = globalThis[Symbol.for("Bun.lazy")]("primordials"); const globalReportError = globalThis.reportError; const setTimeout = globalThis.setTimeout; @@ -1788,7 +1812,7 @@ export function get(url, options, cb) { req.end(); return req; } - +_globalAgent ??= new Agent(); var defaultObject = { Agent, Server, @@ -1806,10 +1830,12 @@ var defaultObject = { debug(`${NODE_HTTP_WARNING}\n`, "setMaxIdleHTTPParsers() is a no-op"); }, get globalAgent() { - return (_globalAgent ??= new Agent()); + return _globalAgent; }, set globalAgent(agent) {}, [Symbol.for("CommonJS")]: 0, }; export default defaultObject; + +export { _globalAgent as globalAgent }; diff --git a/src/js/node/https.js b/src/js/node/https.js index 8253e2905..5bef145ff 100644 --- a/src/js/node/https.js +++ b/src/js/node/https.js @@ -1,4 +1,3 @@ // Hardcoded module "node:https" export * from "node:http"; -const HTTP = import.meta.require("node:http"); -export default HTTP; +export { default as default } from "node:http"; diff --git a/src/js/node/net.js b/src/js/node/net.js index e767d0096..430a0dfa2 100644 --- a/src/js/node/net.js +++ b/src/js/node/net.js @@ -19,6 +19,8 @@ // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. +import { Duplex } from "node:stream"; +import { EventEmitter } from "node:events"; // IPv4 Segment const v4Seg = "(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])"; @@ -54,10 +56,8 @@ function isIP(s) { return 0; } -const { Bun, createFIFO, Object } = import.meta.primordials; +const { Bun, createFIFO, Object } = globalThis[Symbol.for("Bun.lazy")]("primordials"); const { connect: bunConnect } = Bun; -const { Duplex } = import.meta.require("node:stream"); -const { EventEmitter } = import.meta.require("node:events"); var { setTimeout } = globalThis; const bunTlsSymbol = Symbol.for("::buntls::"); diff --git a/src/js/node/path.js b/src/js/node/path.js index bcdd1f7f7..7c20d520b 100644 --- a/src/js/node/path.js +++ b/src/js/node/path.js @@ -1,6 +1,5 @@ // Hardcoded module "node:path" export const createModule = obj => Object.assign(Object.create(null), obj); - function bound(obj) { var result = createModule({ basename: obj.basename.bind(obj), diff --git a/src/js/node/readline.js b/src/js/node/readline.js index 0c253e8a0..64e73172a 100644 --- a/src/js/node/readline.js +++ b/src/js/node/readline.js @@ -25,10 +25,10 @@ // ---------------------------------------------------------------------------- // Section: Imports // ---------------------------------------------------------------------------- -var { Array, RegExp, String, Bun } = import.meta.primordials; -var EventEmitter = import.meta.require("node:events"); -var { clearTimeout, setTimeout } = import.meta.require("timers"); -var { StringDecoder } = import.meta.require("string_decoder"); +var { Array, RegExp, String, Bun } = globalThis[Symbol.for("Bun.lazy")]("primordials"); +import { EventEmitter } from "node:events"; +import { clearTimeout, setTimeout } from "timers"; +import { StringDecoder } from "string_decoder"; var isWritable; var { inspect } = Bun; @@ -1573,7 +1573,7 @@ function InterfaceConstructor(input, output, completer, terminal) { } ObjectSetPrototypeOf(InterfaceConstructor.prototype, EventEmitter.prototype); -ObjectSetPrototypeOf(InterfaceConstructor, EventEmitter); +// ObjectSetPrototypeOf(InterfaceConstructor, EventEmitter); var _Interface = class Interface extends InterfaceConstructor { // TODO: Enumerate all the properties of the class diff --git a/src/js/node/readline.promises.js b/src/js/node/readline.promises.js index 94d9b3f96..6890235b4 100644 --- a/src/js/node/readline.promises.js +++ b/src/js/node/readline.promises.js @@ -1,7 +1,7 @@ // Hardcoded module "node:readline/promises" -var { - promises: { Readline, Interface, createInterface }, -} = import.meta.require("node:readline"); +import { promises } from "node:readline"; + +export const { Readline, Interface, createInterface } = promises; export default { Readline, diff --git a/src/js/node/stream.consumers.js b/src/js/node/stream.consumers.js index 39d436eed..a1f85ab94 100644 --- a/src/js/node/stream.consumers.js +++ b/src/js/node/stream.consumers.js @@ -1,5 +1,5 @@ // Hardcoded module "node:stream/consumers" / "readable-stream/consumer" -const { Bun } = import.meta.primordials; +const { Bun } = globalThis[Symbol.for("Bun.lazy")]("primordials"); export const arrayBuffer = Bun.readableStreamToArrayBuffer; export const text = Bun.readableStreamToText; diff --git a/src/js/node/stream.js b/src/js/node/stream.js index 67d82d287..9344fa73f 100644 --- a/src/js/node/stream.js +++ b/src/js/node/stream.js @@ -1,7 +1,9 @@ // Hardcoded module "node:stream" / "readable-stream" // "readable-stream" npm package // just transpiled -var { isPromise, isCallable, direct, Object } = import.meta.primordials; +var { isPromise, isCallable, direct, Object } = globalThis[Symbol.for("Bun.lazy")]("primordials"); +import { EventEmitter as EE } from "bun:events_native"; +import { StringDecoder } from "node:string_decoder"; globalThis.__IDS_TO_TRACK = process.env.DEBUG_TRACK_EE?.length ? process.env.DEBUG_TRACK_EE.split(",") @@ -37,48 +39,6 @@ var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __ObjectSetPrototypeOf = Object.setPrototypeOf; -var __require = x => import.meta.require(x); - -var _EE = __require("bun:events_native"); - -function DebugEventEmitter(opts) { - if (!(this instanceof DebugEventEmitter)) return new DebugEventEmitter(opts); - _EE.call(this, opts); - const __id = opts.__id; - if (__id) { - __defProp(this, "__id", { - value: __id, - readable: true, - writable: false, - enumerable: false, - }); - } -} - -__ObjectSetPrototypeOf(DebugEventEmitter.prototype, _EE.prototype); -__ObjectSetPrototypeOf(DebugEventEmitter, _EE); - -DebugEventEmitter.prototype.emit = function (event, ...args) { - var __id = this.__id; - if (__id) { - debug("emit", event, ...args, __id); - } else { - debug("emit", event, ...args); - } - return _EE.prototype.emit.call(this, event, ...args); -}; -DebugEventEmitter.prototype.on = function (event, handler) { - var __id = this.__id; - if (__id) { - debug("on", event, "added", __id); - } else { - debug("on", event, "added"); - } - return _EE.prototype.on.call(this, event, handler); -}; -DebugEventEmitter.prototype.addListener = function (event, handler) { - return this.on(event, handler); -}; var __commonJS = (cb, mod) => function __require2() { @@ -260,9 +220,8 @@ var require_primordials = __commonJS({ var require_util = __commonJS({ "node_modules/readable-stream/lib/ours/util.js"(exports, module) { "use strict"; - var bufferModule = __require("buffer"); + var AsyncFunction = Object.getPrototypeOf(async function () {}).constructor; - var Blob = globalThis.Blob || bufferModule.Blob; var isBlob = typeof Blob !== "undefined" ? function isBlob2(b) { @@ -1388,7 +1347,6 @@ var require_end_of_stream = __commonJS({ var require_operators = __commonJS({ "node_modules/readable-stream/lib/internal/streams/operators.js"(exports, module) { "use strict"; - var AbortController = globalThis.AbortController || __require("abort-controller").AbortController; var { codes: { ERR_INVALID_ARG_TYPE, ERR_MISSING_ARGS, ERR_OUT_OF_RANGE }, AbortError, @@ -2084,13 +2042,6 @@ var require_legacy = __commonJS({ "node_modules/readable-stream/lib/internal/streams/legacy.js"(exports, module) { "use strict"; var { ArrayIsArray, ObjectSetPrototypeOf } = require_primordials(); - var { EventEmitter: _EE } = __require("bun:events_native"); - var EE; - if (__TRACK_EE__) { - EE = DebugEventEmitter; - } else { - EE = _EE; - } function Stream(options) { if (!(this instanceof Stream)) return new Stream(options); @@ -2332,6 +2283,7 @@ var require_from = __commonJS({ }); var _ReadableFromWeb; +var _ReadableFromWebForUndici; // node_modules/readable-stream/lib/internal/streams/readable.js var require_readable = __commonJS({ @@ -2352,7 +2304,6 @@ var require_readable = __commonJS({ } = require_primordials(); var ReadableState = globalThis[Symbol.for("Bun.lazy")]("bun:stream").ReadableState; - var { EventEmitter: EE } = __require("bun:events_native"); var { Stream, prependListener } = require_legacy(); function Readable(options) { @@ -2537,6 +2488,8 @@ var require_readable = __commonJS({ } } + _ReadableFromWebForUndici = ReadableFromWeb; + /** * @param {ReadableStream} readableStream * @param {{ @@ -2596,7 +2549,7 @@ var require_readable = __commonJS({ } module.exports = Readable; - _ReadableFromWeb = ReadableFromWeb; + _ReadableFromWeb = newStreamReadableFromReadableStream; var { addAbortSignal } = require_add_abort_signal(); var eos = require_end_of_stream(); @@ -2626,7 +2579,6 @@ var require_readable = __commonJS({ }, } = require_errors(); var { validateObject } = require_validators(); - var { StringDecoder } = __require("string_decoder"); var from = require_from(); var nop = () => {}; var { errorOrDestroy } = destroyImpl; @@ -3422,7 +3374,6 @@ var require_writable = __commonJS({ SymbolHasInstance, } = require_primordials(); - var { EventEmitter: EE } = __require("bun:events_native"); var Stream = require_legacy().Stream; var destroyImpl = require_destroy(); var { addAbortSignal } = require_add_abort_signal(); @@ -4048,7 +3999,6 @@ var require_writable = __commonJS({ var require_duplexify = __commonJS({ "node_modules/readable-stream/lib/internal/streams/duplexify.js"(exports, module) { "use strict"; - var bufferModule = __require("buffer"); var { isReadable, isWritable, @@ -4068,7 +4018,6 @@ var require_duplexify = __commonJS({ var Readable = require_readable(); var { createDeferredPromise } = require_util(); var from = require_from(); - var Blob = globalThis.Blob || bufferModule.Blob; var isBlob = typeof Blob !== "undefined" ? function isBlob2(b) { @@ -4077,7 +4026,6 @@ var require_duplexify = __commonJS({ : function isBlob2(b) { return false; }; - var AbortController = globalThis.AbortController || __require("abort-controller").AbortController; var { FunctionPrototypeCall } = require_primordials(); class Duplexify extends Duplex { constructor(options) { @@ -4619,7 +4567,6 @@ var require_pipeline = __commonJS({ } = require_errors(); var { validateFunction, validateAbortSignal } = require_validators(); var { isIterable, isReadable, isReadableNodeStream, isNodeStream } = require_utils(); - var AbortController = globalThis.AbortController || __require("abort-controller").AbortController; var PassThrough; var Readable; function destroyer(stream, reading, writing) { @@ -5304,7 +5251,7 @@ function createNativeStreamReadable(nativeType, Readable) { const finalizer = new FinalizationRegistry(ptr => ptr && deinit(ptr)); const MIN_BUFFER_SIZE = 512; var NativeReadable = class NativeReadable extends Readable { - #ptr; + #bunNativePtr; #refCount = 1; #constructed = false; #remainingChunk = undefined; @@ -5319,12 +5266,12 @@ function createNativeStreamReadable(nativeType, Readable) { } else { this.#highWaterMark = 256 * 1024; } - this.#ptr = ptr; + this.#bunNativePtr = ptr; this.#constructed = false; this.#remainingChunk = undefined; this.#pendingRead = false; this.#unregisterToken = {}; - finalizer.register(this, this.#ptr, this.#unregisterToken); + finalizer.register(this, this.#bunNativePtr, this.#unregisterToken); } // maxToRead is by default the highWaterMark passed from the Readable.read call to this fn @@ -5337,7 +5284,7 @@ function createNativeStreamReadable(nativeType, Readable) { return; } - var ptr = this.#ptr; + var ptr = this.#bunNativePtr; __DEBUG__ && debug("ptr @ NativeReadable._read", ptr, this.__id); if (ptr === 0) { this.push(null); @@ -5458,14 +5405,14 @@ function createNativeStreamReadable(nativeType, Readable) { } _destroy(error, callback) { - var ptr = this.#ptr; + var ptr = this.#bunNativePtr; if (ptr === 0) { callback(error); return; } finalizer.unregister(this.#unregisterToken); - this.#ptr = 0; + this.#bunNativePtr = 0; if (updateRef) { updateRef(ptr, false); } @@ -5475,7 +5422,7 @@ function createNativeStreamReadable(nativeType, Readable) { } ref() { - var ptr = this.#ptr; + var ptr = this.#bunNativePtr; if (ptr === 0) return; if (this.#refCount++ === 0) { updateRef(ptr, true); @@ -5483,7 +5430,7 @@ function createNativeStreamReadable(nativeType, Readable) { } unref() { - var ptr = this.#ptr; + var ptr = this.#bunNativePtr; if (ptr === 0) return; if (this.#refCount-- === 1) { updateRef(ptr, false); @@ -5632,7 +5579,7 @@ var NativeWritable = class NativeWritable extends Writable { const stream_exports = require_ours(); stream_exports[Symbol.for("CommonJS")] = 0; -stream_exports[Symbol.for("::bunternal::")] = { _ReadableFromWeb }; +stream_exports[Symbol.for("::bunternal::")] = { _ReadableFromWeb, _ReadableFromWebForUndici }; export default stream_exports; export var _uint8ArrayToBuffer = stream_exports._uint8ArrayToBuffer; export var _isUint8Array = stream_exports._isUint8Array; @@ -5654,4 +5601,4 @@ export var Stream = stream_exports.Stream; export var eos = (stream_exports["eos"] = require_end_of_stream); export var _getNativeReadableStreamPrototype = stream_exports._getNativeReadableStreamPrototype; export var NativeWritable = stream_exports.NativeWritable; -export var promises = Stream.promise; +export var promises = Stream.promises; diff --git a/src/js/node/stream.promises.js b/src/js/node/stream.promises.js index d00c424a6..323785a4c 100644 --- a/src/js/node/stream.promises.js +++ b/src/js/node/stream.promises.js @@ -1,5 +1,5 @@ -// Hardcoded module "node:stream" -var { promises } = import.meta.require("node:stream"); +// Hardcoded module "node:stream/promises" +import { promises } from "node:stream"; export var { pipeline, finished } = promises; diff --git a/src/js/node/timers.promises.js b/src/js/node/timers.promises.js index 2bb7bce49..3e2e7bcd5 100644 --- a/src/js/node/timers.promises.js +++ b/src/js/node/timers.promises.js @@ -233,3 +233,4 @@ function setIntervalPromise(after = 1, value, options = {}) { } export { setTimeoutPromise as setTimeout, setImmediatePromise as setImmediate, setIntervalPromise as setInterval }; +export default { setTimeout: setTimeoutPromise, setImmediate: setImmediatePromise, setInterval: setIntervalPromise }; diff --git a/src/js/node/tls.js b/src/js/node/tls.js index b3b089daf..356c25cbd 100644 --- a/src/js/node/tls.js +++ b/src/js/node/tls.js @@ -1,5 +1,7 @@ // Hardcoded module "node:tls" import { isTypedArray } from "util/types"; +import net, { Server as NetServer } from "node:net"; +const InternalTCPSocket = net[Symbol.for("::bunternal::")]; function parseCertString() { throwNotImplemented("Not implemented"); @@ -81,8 +83,6 @@ function createSecureContext(options) { return new SecureContext(options); } -const { [Symbol.for("::bunternal::")]: InternalTCPSocket, Server: NetServer } = import.meta.require("net"); - const buntls = Symbol.for("::buntls::"); var SocketClass; @@ -286,7 +286,7 @@ class Server extends NetServer { function createServer(options, connectionListener) { return new Server(options, connectionListener); } -export const CLIENT_RENEG_LIMIT = 3, +const CLIENT_RENEG_LIMIT = 3, CLIENT_RENEG_WINDOW = 600, DEFAULT_ECDH_CURVE = "auto", // https://github.com/Jarred-Sumner/uSockets/blob/fafc241e8664243fc0c51d69684d5d02b9805134/src/crypto/openssl.c#L519-L523 @@ -304,34 +304,54 @@ export const CLIENT_RENEG_LIMIT = 3, }, connect = createConnection; -var exports = { - createSecureContext, - parseCertString, +function getCiphers() { + return DEFAULT_CIPHERS.split(":"); +} - getCiphers() { - return DEFAULT_CIPHERS.split(":"); - }, +function getCurves() { + return; +} - getCurves() { - return; - }, +function convertALPNProtocols(protocols, out) {} - convertALPNProtocols(protocols, out) {}, - TLSSocket, - SecureContext, +var exports = { + [Symbol.for("CommonJS")]: 0, CLIENT_RENEG_LIMIT, CLIENT_RENEG_WINDOW, - DEFAULT_ECDH_CURVE, + connect, + convertALPNProtocols, + createConnection, + createSecureContext, + createServer, DEFAULT_CIPHERS, - DEFAULT_MIN_VERSION, + DEFAULT_ECDH_CURVE, DEFAULT_MAX_VERSION, - [Symbol.for("CommonJS")]: 0, + DEFAULT_MIN_VERSION, + getCiphers, + getCurves, + parseCertString, + SecureContext, + Server, + TLSSocket, +}; + +export { + CLIENT_RENEG_LIMIT, + CLIENT_RENEG_WINDOW, connect, + convertALPNProtocols, createConnection, - Server, + createSecureContext, createServer, + DEFAULT_CIPHERS, + DEFAULT_ECDH_CURVE, + DEFAULT_MAX_VERSION, + DEFAULT_MIN_VERSION, + getCiphers, + getCurves, + parseCertString, + SecureContext, + Server, + TLSSocket, + exports as default, }; - -export default exports; - -export { createSecureContext, parseCertString, TLSSocket, SecureContext }; diff --git a/src/js/node/url.js b/src/js/node/url.js index f9a4427ce..9fb1b4374 100644 --- a/src/js/node/url.js +++ b/src/js/node/url.js @@ -1,398 +1,851 @@ -// Hardcoded module "node:url" +/* + * Copyright Joyent, Inc. and other Node contributors. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to permit + * persons to whom the Software is furnished to do so, subject to the + * following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + * USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + "use strict"; -const { URL: F, URLSearchParams: M, [Symbol.for("Bun.lazy")]: S } = globalThis; -function it(s) { - return typeof s == "string"; + +const { URL, URLSearchParams } = globalThis; + +function Url() { + this.protocol = null; + this.slashes = null; + this.auth = null; + this.host = null; + this.port = null; + this.hostname = null; + this.hash = null; + this.search = null; + this.query = null; + this.pathname = null; + this.path = null; + this.href = null; } -function D(s) { - return typeof s == "object" && s !== null; -} -function I(s) { - return s === null; -} -function E(s) { - return s == null; -} -function ft(s) { - return s === void 0; -} -function m() { - (this.protocol = null), - (this.slashes = null), - (this.auth = null), - (this.host = null), - (this.port = null), - (this.hostname = null), - (this.hash = null), - (this.search = null), - (this.query = null), - (this.pathname = null), - (this.path = null), - (this.href = null); -} -var tt = /^([a-z0-9.+-]+:)/i, - st = /:[0-9]*$/, - ht = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/, - et = [ - "<", - ">", - '"', - "`", - " ", - "\r", - ` -`, - " ", - ], - rt = ["{", "}", "|", "\\", "^", "`"].concat(et), - B = ["'"].concat(rt), - G = ["%", "/", "?", ";", "#"].concat(B), - J = ["/", "?", "#"], - ot = 255, - K = /^[+a-z0-9A-Z_-]{0,63}$/, - at = /^([+a-z0-9A-Z_-]{0,63})(.*)$/, - nt = { javascript: !0, "javascript:": !0 }, - N = { javascript: !0, "javascript:": !0 }, - R = { - http: !0, - https: !0, - ftp: !0, - gopher: !0, - file: !0, - "http:": !0, - "https:": !0, - "ftp:": !0, - "gopher:": !0, - "file:": !0, + +// Reference: RFC 3986, RFC 1808, RFC 2396 + +/* + * define these here so at least they only have to be + * compiled once on the first module load. + */ +var protocolPattern = /^([a-z0-9.+-]+:)/i, + portPattern = /:[0-9]*$/, + // Special case for a simple path URL + simplePathPattern = /^(\/\/?(?!\/)[^?\s]*)(\?[^\s]*)?$/, + /* + * RFC 2396: characters reserved for delimiting URLs. + * We actually just auto-escape these. + */ + delims = ["<", ">", '"', "`", " ", "\r", "\n", "\t"], + // RFC 2396: characters not allowed for various reasons. + unwise = ["{", "}", "|", "\\", "^", "`"].concat(delims), + // Allowed by RFCs, but cause of XSS attacks. Always escape these. + autoEscape = ["'"].concat(unwise), + /* + * Characters that are never ever allowed in a hostname. + * Note that any invalid chars are also handled, but these + * are the ones that are *expected* to be seen, so we fast-path + * them. + */ + nonHostChars = ["%", "/", "?", ";", "#"].concat(autoEscape), + hostEndingChars = ["/", "?", "#"], + hostnameMaxLen = 255, + hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/, + hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/, + // protocols that can allow "unsafe" and "unwise" chars. + unsafeProtocol = { + javascript: true, + "javascript:": true, + }, + // protocols that never have a hostname. + hostlessProtocol = { + javascript: true, + "javascript:": true, }, - Z = { - parse(s) { - var r = decodeURIComponent; - return (s + "") - .replace(/\+/g, " ") - .split("&") - .filter(Boolean) - .reduce(function (t, o, a) { - var l = o.split("="), - f = r(l[0] || ""), - h = r(l[1] || ""), - g = t[f]; - return (t[f] = g === void 0 ? h : [].concat(g, h)), t; - }, {}); - }, - stringify(s) { - var r = encodeURIComponent; - return Object.keys(s || {}) - .reduce(function (t, o) { - return ( - [].concat(s[o]).forEach(function (a) { - t.push(r(o) + "=" + r(a)); - }), - t - ); - }, []) - .join("&") - .replace(/\s/g, "+"); - }, + // protocols that always contain a // bit. + slashedProtocol = { + http: true, + https: true, + ftp: true, + gopher: true, + file: true, + "http:": true, + "https:": true, + "ftp:": true, + "gopher:": true, + "file:": true, }; -function A(s, r, t) { - if (s && D(s) && s instanceof m) return s; - var o = new m(); - return o.parse(s, r, t), o; + +function urlParse(url, parseQueryString, slashesDenoteHost) { + if (url && typeof url === "object" && url instanceof Url) { + return url; + } + + var u = new Url(); + u.parse(url, parseQueryString, slashesDenoteHost); + return u; } -m.prototype.parse = function (s, r, t) { - if (!it(s)) throw new TypeError("Parameter 'url' must be a string, not " + typeof s); - var o = s.indexOf("?"), - a = o !== -1 && o < s.indexOf("#") ? "?" : "#", - l = s.split(a), - f = /\\/g; - (l[0] = l[0].replace(f, "/")), (s = l.join(a)); - var h = s; - if (((h = h.trim()), !t && s.split("#").length === 1)) { - var g = ht.exec(h); - if (g) - return ( - (this.path = h), - (this.href = h), - (this.pathname = g[1]), - g[2] - ? ((this.search = g[2]), - r ? (this.query = Z.parse(this.search.substr(1))) : (this.query = this.search.substr(1))) - : r && ((this.search = ""), (this.query = {})), - this - ); - } - var c = tt.exec(h); - if (c) { - c = c[0]; - var v = c.toLowerCase(); - (this.protocol = v), (h = h.substr(c.length)); - } - if (t || c || h.match(/^\/\/[^@\/]+@[^@\/]+/)) { - var j = h.substr(0, 2) === "//"; - j && !(c && N[c]) && ((h = h.substr(2)), (this.slashes = !0)); - } - if (!N[c] && (j || (c && !R[c]))) { - for (var u = -1, n = 0; n < J.length; n++) { - var b = h.indexOf(J[n]); - b !== -1 && (u === -1 || b < u) && (u = b); + +Url.prototype.parse = function (url, parseQueryString, slashesDenoteHost) { + if (typeof url !== "string") { + throw new TypeError("Parameter 'url' must be a string, not " + typeof url); + } + + /* + * Copy chrome, IE, opera backslash-handling behavior. + * Back slashes before the query string get converted to forward slashes + * See: https://code.google.com/p/chromium/issues/detail?id=25916 + */ + var queryIndex = url.indexOf("?"), + splitter = queryIndex !== -1 && queryIndex < url.indexOf("#") ? "?" : "#", + uSplit = url.split(splitter), + slashRegex = /\\/g; + uSplit[0] = uSplit[0].replace(slashRegex, "/"); + url = uSplit.join(splitter); + + var rest = url; + + /* + * trim before proceeding. + * This is to support parse stuff like " http://foo.com \n" + */ + rest = rest.trim(); + + if (!slashesDenoteHost && url.split("#").length === 1) { + // Try fast path regexp + var simplePath = simplePathPattern.exec(rest); + if (simplePath) { + this.path = rest; + this.href = rest; + this.pathname = simplePath[1]; + if (simplePath[2]) { + this.search = simplePath[2]; + if (parseQueryString) { + this.query = new URLSearchParams(this.search.substr(1)).toJSON(); + } else { + this.query = this.search.substr(1); + } + } else if (parseQueryString) { + this.search = ""; + this.query = {}; + } + return this; + } + } + + var proto = protocolPattern.exec(rest); + if (proto) { + proto = proto[0]; + var lowerProto = proto.toLowerCase(); + this.protocol = lowerProto; + rest = rest.substr(proto.length); + } + + /* + * figure out if it's got a host + * user@server is *always* interpreted as a hostname, and url + * resolution will treat //foo/bar as host=foo,path=bar because that's + * how the browser resolves relative URLs. + */ + if (slashesDenoteHost || proto || rest.match(/^\/\/[^@/]+@[^@/]+/)) { + var slashes = rest.substr(0, 2) === "//"; + if (slashes && !(proto && hostlessProtocol[proto])) { + rest = rest.substr(2); + this.slashes = true; + } + } + + if (!hostlessProtocol[proto] && (slashes || (proto && !slashedProtocol[proto]))) { + /* + * there's a hostname. + * the first instance of /, ?, ;, or # ends the host. + * + * If there is an @ in the hostname, then non-host chars *are* allowed + * to the left of the last @ sign, unless some host-ending character + * comes *before* the @-sign. + * URLs are obnoxious. + * + * ex: + * http://a@b@c/ => user:a@b host:c + * http://a@b?@c => user:a host:c path:/?@c + */ + + /* + * v0.12 TODO(isaacs): This is not quite how Chrome does things. + * Review our test case against browsers more comprehensively. + */ + + // find the first instance of any hostEndingChars + var hostEnd = -1; + for (var i = 0; i < hostEndingChars.length; i++) { + var hec = rest.indexOf(hostEndingChars[i]); + if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { + hostEnd = hec; + } + } + + /* + * at this point, either we have an explicit point where the + * auth portion cannot go past, or the last @ char is the decider. + */ + var auth, atSign; + if (hostEnd === -1) { + // atSign can be anywhere. + atSign = rest.lastIndexOf("@"); + } else { + /* + * atSign must be in auth portion. + * http://a@b/c@d => host:b auth:a path:/c@d + */ + atSign = rest.lastIndexOf("@", hostEnd); + } + + /* + * Now we have a portion which is definitely the auth. + * Pull that off. + */ + if (atSign !== -1) { + auth = rest.slice(0, atSign); + rest = rest.slice(atSign + 1); + this.auth = decodeURIComponent(auth); } - var P, p; - u === -1 ? (p = h.lastIndexOf("@")) : (p = h.lastIndexOf("@", u)), - p !== -1 && ((P = h.slice(0, p)), (h = h.slice(p + 1)), (this.auth = decodeURIComponent(P))), - (u = -1); - for (var n = 0; n < G.length; n++) { - var b = h.indexOf(G[n]); - b !== -1 && (u === -1 || b < u) && (u = b); + + // the host is the remaining to the left of the first non-host char + hostEnd = -1; + for (var i = 0; i < nonHostChars.length; i++) { + var hec = rest.indexOf(nonHostChars[i]); + if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { + hostEnd = hec; + } + } + // if we still have not hit it, then the entire thing is a host. + if (hostEnd === -1) { + hostEnd = rest.length; } - u === -1 && (u = h.length), - (this.host = h.slice(0, u)), - (h = h.slice(u)), - this.parseHost(), - (this.hostname = this.hostname || ""); - var C = this.hostname[0] === "[" && this.hostname[this.hostname.length - 1] === "]"; - if (!C) - for (var e = this.hostname.split(/\./), n = 0, i = e.length; n < i; n++) { - var d = e[n]; - if (!!d && !d.match(K)) { - for (var y = "", x = 0, _ = d.length; x < _; x++) d.charCodeAt(x) > 127 ? (y += "x") : (y += d[x]); - if (!y.match(K)) { - var q = e.slice(0, n), - O = e.slice(n + 1), - U = d.match(at); - U && (q.push(U[1]), O.unshift(U[2])), - O.length && (h = "/" + O.join(".") + h), - (this.hostname = q.join(".")); + + this.host = rest.slice(0, hostEnd); + rest = rest.slice(hostEnd); + + // pull out port. + this.parseHost(); + + /* + * we've indicated that there is a hostname, + * so even if it's empty, it has to be present. + */ + this.hostname = this.hostname || ""; + + /* + * if hostname begins with [ and ends with ] + * assume that it's an IPv6 address. + */ + var ipv6Hostname = this.hostname[0] === "[" && this.hostname[this.hostname.length - 1] === "]"; + + // validate a little. + if (!ipv6Hostname) { + var hostparts = this.hostname.split(/\./); + for (var i = 0, l = hostparts.length; i < l; i++) { + var part = hostparts[i]; + if (!part) { + continue; + } + if (!part.match(hostnamePartPattern)) { + var newpart = ""; + for (var j = 0, k = part.length; j < k; j++) { + if (part.charCodeAt(j) > 127) { + /* + * we replace non-ASCII char with a temporary placeholder + * we need this to make sure size of hostname is not + * broken by replacing non-ASCII by nothing + */ + newpart += "x"; + } else { + newpart += part[j]; + } + } + // we test again with ASCII char only + if (!newpart.match(hostnamePartPattern)) { + var validParts = hostparts.slice(0, i); + var notHost = hostparts.slice(i + 1); + var bit = part.match(hostnamePartStart); + if (bit) { + validParts.push(bit[1]); + notHost.unshift(bit[2]); + } + if (notHost.length) { + rest = "/" + notHost.join(".") + rest; + } + this.hostname = validParts.join("."); break; } } } - this.hostname.length > ot ? (this.hostname = "") : (this.hostname = this.hostname.toLowerCase()), - C || (this.hostname = new F(`https://${this.hostname}`).hostname); - var w = this.port ? ":" + this.port : "", - H = this.hostname || ""; - (this.host = H + w), - (this.href += this.host), - C && ((this.hostname = this.hostname.substr(1, this.hostname.length - 2)), h[0] !== "/" && (h = "/" + h)); - } - if (!nt[v]) - for (var n = 0, i = B.length; n < i; n++) { - var L = B[n]; - if (h.indexOf(L) !== -1) { - var z = encodeURIComponent(L); - z === L && (z = escape(L)), (h = h.split(L).join(z)); + } + + if (this.hostname.length > hostnameMaxLen) { + this.hostname = ""; + } else { + // hostnames are always lower case. + this.hostname = this.hostname.toLowerCase(); + } + + if (!ipv6Hostname) { + /* + * IDNA Support: Returns a punycoded representation of "domain". + * It only converts parts of the domain name that + * have non-ASCII characters, i.e. it doesn't matter if + * you call it with a domain that already is ASCII-only. + */ + this.hostname = new URL("http://" + this.hostname).hostname; + } + + var p = this.port ? ":" + this.port : ""; + var h = this.hostname || ""; + this.host = h + p; + this.href += this.host; + + /* + * strip [ and ] from the hostname + * the host field still retains them, though + */ + if (ipv6Hostname) { + this.hostname = this.hostname.substr(1, this.hostname.length - 2); + if (rest[0] !== "/") { + rest = "/" + rest; + } + } + } + + /* + * now rest is set to the post-host stuff. + * chop off any delim chars. + */ + if (!unsafeProtocol[lowerProto]) { + /* + * First, make 100% sure that any "autoEscape" chars get + * escaped, even if encodeURIComponent doesn't think they + * need to be. + */ + for (var i = 0, l = autoEscape.length; i < l; i++) { + var ae = autoEscape[i]; + if (rest.indexOf(ae) === -1) { + continue; + } + var esc = encodeURIComponent(ae); + if (esc === ae) { + esc = escape(ae); } + rest = rest.split(ae).join(esc); + } + } + + // chop off from the tail first. + var hash = rest.indexOf("#"); + if (hash !== -1) { + // got a fragment string. + this.hash = rest.substr(hash); + rest = rest.slice(0, hash); + } + var qm = rest.indexOf("?"); + if (qm !== -1) { + this.search = rest.substr(qm); + this.query = rest.substr(qm + 1); + if (parseQueryString) { + this.query = new URLSearchParams(this.query); } - var $ = h.indexOf("#"); - $ !== -1 && ((this.hash = h.substr($)), (h = h.slice(0, $))); - var T = h.indexOf("?"); - if ( - (T !== -1 - ? ((this.search = h.substr(T)), - (this.query = h.substr(T + 1)), - r && (this.query = Z.parse(this.query)), - (h = h.slice(0, T))) - : r && ((this.search = ""), (this.query = {})), - h && (this.pathname = h), - R[v] && this.hostname && !this.pathname && (this.pathname = "/"), - this.pathname || this.search) - ) { - var w = this.pathname || "", - Q = this.search || ""; - this.path = w + Q; - } - return (this.href = this.format()), this; + rest = rest.slice(0, qm); + } else if (parseQueryString) { + // no query string, but parseQueryString still requested + this.search = ""; + this.query = {}; + } + if (rest) { + this.pathname = rest; + } + if (slashedProtocol[lowerProto] && this.hostname && !this.pathname) { + this.pathname = "/"; + } + + // to support http.request + if (this.pathname || this.search) { + var p = this.pathname || ""; + var s = this.search || ""; + this.path = p + s; + } + + // finally, reconstruct the href based on what has been validated. + this.href = this.format(); + return this; }; -function V(s) { - return it(s) && (s = A(s)), s instanceof m ? s.format() : m.prototype.format.call(s); + +// format a parsed object into a url string +function urlFormat(obj) { + /* + * ensure it's an object, and not a string url. + * If it's an obj, this is a no-op. + * this way, you can call url_format() on strings + * to clean up potentially wonky urls. + */ + if (typeof obj === "string") { + obj = urlParse(obj); + } + if (!(obj instanceof Url)) { + return Url.prototype.format.call(obj); + } + return obj.format(); } -m.prototype.format = function () { - var s = this.auth || ""; - s && ((s = encodeURIComponent(s)), (s = s.replace(/%3A/i, ":")), (s += "@")); - var r = this.protocol || "", - t = this.pathname || "", - o = this.hash || "", - a = !1, - l = ""; - this.host - ? (a = s + this.host) - : this.hostname && - ((a = s + (this.hostname.indexOf(":") === -1 ? this.hostname : "[" + this.hostname + "]")), - this.port && (a += ":" + this.port)), - this.query && D(this.query) && Object.keys(this.query).length && (l = Z.stringify(this.query)); - var f = this.search || (l && "?" + l) || ""; - return ( - r && r.substr(-1) !== ":" && (r += ":"), - this.slashes || ((!r || R[r]) && a !== !1) - ? ((a = "//" + (a || "")), t && t.charAt(0) !== "/" && (t = "/" + t)) - : a || (a = ""), - o && o.charAt(0) !== "#" && (o = "#" + o), - f && f.charAt(0) !== "?" && (f = "?" + f), - (t = t.replace(/[?#]/g, function (h) { - return encodeURIComponent(h); - })), - (f = f.replace("#", "%23")), - r + a + t + f + o - ); + +Url.prototype.format = function () { + var auth = this.auth || ""; + if (auth) { + auth = encodeURIComponent(auth); + auth = auth.replace(/%3A/i, ":"); + auth += "@"; + } + + var protocol = this.protocol || "", + pathname = this.pathname || "", + hash = this.hash || "", + host = false, + query = ""; + + if (this.host) { + host = auth + this.host; + } else if (this.hostname) { + host = auth + (this.hostname.indexOf(":") === -1 ? this.hostname : "[" + this.hostname + "]"); + if (this.port) { + host += ":" + this.port; + } + } + + if (this.query && typeof this.query === "object" && Object.keys(this.query).length) { + query = new URLSearchParams(this.query).toString(); + } + + var search = this.search || (query && "?" + query) || ""; + + if (protocol && protocol.substr(-1) !== ":") { + protocol += ":"; + } + + /* + * only the slashedProtocols get the //. Not mailto:, xmpp:, etc. + * unless they had them to begin with. + */ + if (this.slashes || ((!protocol || slashedProtocol[protocol]) && host !== false)) { + host = "//" + (host || ""); + if (pathname && pathname.charAt(0) !== "/") { + pathname = "/" + pathname; + } + } else if (!host) { + host = ""; + } + + if (hash && hash.charAt(0) !== "#") { + hash = "#" + hash; + } + if (search && search.charAt(0) !== "?") { + search = "?" + search; + } + + pathname = pathname.replace(/[?#]/g, function (match) { + return encodeURIComponent(match); + }); + search = search.replace("#", "%23"); + + return protocol + host + pathname + search + hash; }; -function W(s, r) { - return A(s, !1, !0).resolve(r); + +function urlResolve(source, relative) { + return urlParse(source, false, true).resolve(relative); } -m.prototype.resolve = function (s) { - return this.resolveObject(A(s, !1, !0)).format(); + +Url.prototype.resolve = function (relative) { + return this.resolveObject(urlParse(relative, false, true)).format(); }; -function X(s, r) { - return s ? A(s, !1, !0).resolveObject(r) : r; + +function urlResolveObject(source, relative) { + if (!source) { + return relative; + } + return urlParse(source, false, true).resolveObject(relative); } -(m.prototype.resolveObject = function (s) { - if (it(s)) { - var r = new m(); - r.parse(s, !1, !0), (s = r); - } - for (var t = new m(), o = Object.keys(this), a = 0; a < o.length; a++) { - var l = o[a]; - t[l] = this[l]; - } - if (((t.hash = s.hash), s.href === "")) return (t.href = t.format()), t; - if (s.slashes && !s.protocol) { - for (var f = Object.keys(s), h = 0; h < f.length; h++) { - var g = f[h]; - g !== "protocol" && (t[g] = s[g]); + +Url.prototype.resolveObject = function (relative) { + if (typeof relative === "string") { + var rel = new Url(); + rel.parse(relative, false, true); + relative = rel; + } + + var result = new Url(); + var tkeys = Object.keys(this); + for (var tk = 0; tk < tkeys.length; tk++) { + var tkey = tkeys[tk]; + result[tkey] = this[tkey]; + } + + /* + * hash is always overridden, no matter what. + * even href="" will remove it. + */ + result.hash = relative.hash; + + // if the relative url is empty, then there's nothing left to do here. + if (relative.href === "") { + result.href = result.format(); + return result; + } + + // hrefs like //foo/bar always cut to the protocol. + if (relative.slashes && !relative.protocol) { + // take everything except the protocol from relative + var rkeys = Object.keys(relative); + for (var rk = 0; rk < rkeys.length; rk++) { + var rkey = rkeys[rk]; + if (rkey !== "protocol") { + result[rkey] = relative[rkey]; + } } - return R[t.protocol] && t.hostname && !t.pathname && (t.path = t.pathname = "/"), (t.href = t.format()), t; + + // urlParse appends trailing / to urls like http://www.example.com + if (slashedProtocol[result.protocol] && result.hostname && !result.pathname) { + result.pathname = "/"; + result.path = result.pathname; + } + + result.href = result.format(); + return result; } - if (s.protocol && s.protocol !== t.protocol) { - if (!R[s.protocol]) { - for (var c = Object.keys(s), v = 0; v < c.length; v++) { - var j = c[v]; - t[j] = s[j]; + + if (relative.protocol && relative.protocol !== result.protocol) { + /* + * if it's a known url protocol, then changing + * the protocol does weird things + * first, if it's not file:, then we MUST have a host, + * and if there was a path + * to begin with, then we MUST have a path. + * if it is file:, then the host is dropped, + * because that's known to be hostless. + * anything else is assumed to be absolute. + */ + if (!slashedProtocol[relative.protocol]) { + var keys = Object.keys(relative); + for (var v = 0; v < keys.length; v++) { + var k = keys[v]; + result[k] = relative[k]; } - return (t.href = t.format()), t; + result.href = result.format(); + return result; } - if (((t.protocol = s.protocol), !s.host && !N[s.protocol])) { - for (var i = (s.pathname || "").split("/"); i.length && !(s.host = i.shift()); ); - s.host || (s.host = ""), - s.hostname || (s.hostname = ""), - i[0] !== "" && i.unshift(""), - i.length < 2 && i.unshift(""), - (t.pathname = i.join("/")); - } else t.pathname = s.pathname; - if ( - ((t.search = s.search), - (t.query = s.query), - (t.host = s.host || ""), - (t.auth = s.auth), - (t.hostname = s.hostname || s.host), - (t.port = s.port), - t.pathname || t.search) - ) { - var u = t.pathname || "", - n = t.search || ""; - t.path = u + n; + + result.protocol = relative.protocol; + if (!relative.host && !hostlessProtocol[relative.protocol]) { + var relPath = (relative.pathname || "").split("/"); + while (relPath.length && !(relative.host = relPath.shift())) {} + if (!relative.host) { + relative.host = ""; + } + if (!relative.hostname) { + relative.hostname = ""; + } + if (relPath[0] !== "") { + relPath.unshift(""); + } + if (relPath.length < 2) { + relPath.unshift(""); + } + result.pathname = relPath.join("/"); + } else { + result.pathname = relative.pathname; } - return (t.slashes = t.slashes || s.slashes), (t.href = t.format()), t; - } - var b = t.pathname && t.pathname.charAt(0) === "/", - P = s.host || (s.pathname && s.pathname.charAt(0) === "/"), - p = P || b || (t.host && s.pathname), - C = p, - e = (t.pathname && t.pathname.split("/")) || [], - i = (s.pathname && s.pathname.split("/")) || [], - d = t.protocol && !R[t.protocol]; - if ( - (d && - ((t.hostname = ""), - (t.port = null), - t.host && (e[0] === "" ? (e[0] = t.host) : e.unshift(t.host)), - (t.host = ""), - s.protocol && - ((s.hostname = null), - (s.port = null), - s.host && (i[0] === "" ? (i[0] = s.host) : i.unshift(s.host)), - (s.host = null)), - (p = p && (i[0] === "" || e[0] === ""))), - P) - ) - (t.host = s.host || s.host === "" ? s.host : t.host), - (t.hostname = s.hostname || s.hostname === "" ? s.hostname : t.hostname), - (t.search = s.search), - (t.query = s.query), - (e = i); - else if (i.length) e || (e = []), e.pop(), (e = e.concat(i)), (t.search = s.search), (t.query = s.query); - else if (!E(s.search)) { - if (d) { - t.hostname = t.host = e.shift(); - var y = t.host && t.host.indexOf("@") > 0 ? t.host.split("@") : !1; - y && ((t.auth = y.shift()), (t.host = t.hostname = y.shift())); + result.search = relative.search; + result.query = relative.query; + result.host = relative.host || ""; + result.auth = relative.auth; + result.hostname = relative.hostname || relative.host; + result.port = relative.port; + // to support http.request + if (result.pathname || result.search) { + var p = result.pathname || ""; + var s = result.search || ""; + result.path = p + s; } - return ( - (t.search = s.search), - (t.query = s.query), - (!I(t.pathname) || !I(t.search)) && (t.path = (t.pathname ? t.pathname : "") + (t.search ? t.search : "")), - (t.href = t.format()), - t - ); - } - if (!e.length) - return (t.pathname = null), t.search ? (t.path = "/" + t.search) : (t.path = null), (t.href = t.format()), t; - for ( - var x = e.slice(-1)[0], - _ = ((t.host || s.host || e.length > 1) && (x === "." || x === "..")) || x === "", - q = 0, - O = e.length; - O >= 0; - O-- - ) - (x = e[O]), x === "." ? e.splice(O, 1) : x === ".." ? (e.splice(O, 1), q++) : q && (e.splice(O, 1), q--); - if (!p && !C) for (; q--; q) e.unshift(".."); - p && e[0] !== "" && (!e[0] || e[0].charAt(0) !== "/") && e.unshift(""), - _ && e.join("/").substr(-1) !== "/" && e.push(""); - var U = e[0] === "" || (e[0] && e[0].charAt(0) === "/"); - if (d) { - t.hostname = t.host = U ? "" : e.length ? e.shift() : ""; - var y = t.host && t.host.indexOf("@") > 0 ? t.host.split("@") : !1; - y && ((t.auth = y.shift()), (t.host = t.hostname = y.shift())); - } - return ( - (p = p || (t.host && e.length)), - p && !U && e.unshift(""), - e.length ? (t.pathname = e.join("/")) : ((t.pathname = null), (t.path = null)), - (!I(t.pathname) || !I(t.search)) && (t.path = (t.pathname ? t.pathname : "") + (t.search ? t.search : "")), - (t.auth = s.auth || t.auth), - (t.slashes = t.slashes || s.slashes), - (t.href = t.format()), - t - ); -}), - (m.prototype.parseHost = function () { - var s = this.host, - r = st.exec(s); - r && ((r = r[0]), r !== ":" && (this.port = r.substr(1)), (s = s.substr(0, s.length - r.length))), - s && (this.hostname = s); - }); -var Y, k; -S && ((Y = S("pathToFileURL")), (k = S("fileURLToPath"))); -var ut = { - parse: A, - resolve: W, - resolveObject: X, - format: V, - Url: m, - pathToFileURL: Y, - fileURLToPath: k, - URL: F, - URLSearchParams: M, + result.slashes = result.slashes || relative.slashes; + result.href = result.format(); + return result; + } + + var isSourceAbs = result.pathname && result.pathname.charAt(0) === "/", + isRelAbs = relative.host || (relative.pathname && relative.pathname.charAt(0) === "/"), + mustEndAbs = isRelAbs || isSourceAbs || (result.host && relative.pathname), + removeAllDots = mustEndAbs, + srcPath = (result.pathname && result.pathname.split("/")) || [], + relPath = (relative.pathname && relative.pathname.split("/")) || [], + psychotic = result.protocol && !slashedProtocol[result.protocol]; + + /* + * if the url is a non-slashed url, then relative + * links like ../.. should be able + * to crawl up to the hostname, as well. This is strange. + * result.protocol has already been set by now. + * Later on, put the first path part into the host field. + */ + if (psychotic) { + result.hostname = ""; + result.port = null; + if (result.host) { + if (srcPath[0] === "") { + srcPath[0] = result.host; + } else { + srcPath.unshift(result.host); + } + } + result.host = ""; + if (relative.protocol) { + relative.hostname = null; + relative.port = null; + if (relative.host) { + if (relPath[0] === "") { + relPath[0] = relative.host; + } else { + relPath.unshift(relative.host); + } + } + relative.host = null; + } + mustEndAbs = mustEndAbs && (relPath[0] === "" || srcPath[0] === ""); + } + + if (isRelAbs) { + // it's absolute. + result.host = relative.host || relative.host === "" ? relative.host : result.host; + result.hostname = relative.hostname || relative.hostname === "" ? relative.hostname : result.hostname; + result.search = relative.search; + result.query = relative.query; + srcPath = relPath; + // fall through to the dot-handling below. + } else if (relPath.length) { + /* + * it's relative + * throw away the existing file, and take the new path instead. + */ + if (!srcPath) { + srcPath = []; + } + srcPath.pop(); + srcPath = srcPath.concat(relPath); + result.search = relative.search; + result.query = relative.query; + } else if (relative.search != null) { + /* + * just pull out the search. + * like href='?foo'. + * Put this after the other two cases because it simplifies the booleans + */ + if (psychotic) { + result.host = srcPath.shift(); + result.hostname = result.host; + /* + * occationaly the auth can get stuck only in host + * this especially happens in cases like + * url.resolveObject('mailto:local1@domain1', 'local2@domain2') + */ + var authInHost = result.host && result.host.indexOf("@") > 0 ? result.host.split("@") : false; + if (authInHost) { + result.auth = authInHost.shift(); + result.hostname = authInHost.shift(); + result.host = result.hostname; + } + } + result.search = relative.search; + result.query = relative.query; + // to support http.request + if (result.pathname !== null || result.search !== null) { + result.path = (result.pathname ? result.pathname : "") + (result.search ? result.search : ""); + } + result.href = result.format(); + return result; + } + + if (!srcPath.length) { + /* + * no path at all. easy. + * we've already handled the other stuff above. + */ + result.pathname = null; + // to support http.request + if (result.search) { + result.path = "/" + result.search; + } else { + result.path = null; + } + result.href = result.format(); + return result; + } + + /* + * if a url ENDs in . or .., then it must get a trailing slash. + * however, if it ends in anything else non-slashy, + * then it must NOT get a trailing slash. + */ + var last = srcPath.slice(-1)[0]; + var hasTrailingSlash = + ((result.host || relative.host || srcPath.length > 1) && (last === "." || last === "..")) || last === ""; + + /* + * strip single dots, resolve double dots to parent dir + * if the path tries to go above the root, `up` ends up > 0 + */ + var up = 0; + for (var i = srcPath.length; i >= 0; i--) { + last = srcPath[i]; + if (last === ".") { + srcPath.splice(i, 1); + } else if (last === "..") { + srcPath.splice(i, 1); + up++; + } else if (up) { + srcPath.splice(i, 1); + up--; + } + } + + // if the path is allowed to go above the root, restore leading ..s + if (!mustEndAbs && !removeAllDots) { + for (; up--; up) { + srcPath.unshift(".."); + } + } + + if (mustEndAbs && srcPath[0] !== "" && (!srcPath[0] || srcPath[0].charAt(0) !== "/")) { + srcPath.unshift(""); + } + + if (hasTrailingSlash && srcPath.join("/").substr(-1) !== "/") { + srcPath.push(""); + } + + var isAbsolute = srcPath[0] === "" || (srcPath[0] && srcPath[0].charAt(0) === "/"); + + // put the host back + if (psychotic) { + result.hostname = isAbsolute ? "" : srcPath.length ? srcPath.shift() : ""; + result.host = result.hostname; + /* + * occationaly the auth can get stuck only in host + * this especially happens in cases like + * url.resolveObject('mailto:local1@domain1', 'local2@domain2') + */ + var authInHost = result.host && result.host.indexOf("@") > 0 ? result.host.split("@") : false; + if (authInHost) { + result.auth = authInHost.shift(); + result.hostname = authInHost.shift(); + result.host = result.hostname; + } + } + + mustEndAbs = mustEndAbs || (result.host && srcPath.length); + + if (mustEndAbs && !isAbsolute) { + srcPath.unshift(""); + } + + if (srcPath.length > 0) { + result.pathname = srcPath.join("/"); + } else { + result.pathname = null; + result.path = null; + } + + // to support request.http + if (result.pathname !== null || result.search !== null) { + result.path = (result.pathname ? result.pathname : "") + (result.search ? result.search : ""); + } + result.auth = relative.auth || result.auth; + result.slashes = result.slashes || relative.slashes; + result.href = result.format(); + return result; +}; + +Url.prototype.parseHost = function () { + var host = this.host; + var port = portPattern.exec(host); + if (port) { + port = port[0]; + if (port !== ":") { + this.port = port.substr(1); + } + host = host.substr(0, host.length - port.length); + } + if (host) { + this.hostname = host; + } +}; +function urlToHttpOptions(url) { + const options = { + protocol: url.protocol, + hostname: + typeof url.hostname === "string" && url.hostname.startsWith("[") ? url.hostname.slice(1, -1) : url.hostname, + hash: url.hash, + search: url.search, + pathname: url.pathname, + path: `${url.pathname || ""}${url.search || ""}`, + href: url.href, + }; + if (url.port !== "") { + options.port = Number(url.port); + } + if (url.username || url.password) { + options.auth = `${decodeURIComponent(url.username)}:${decodeURIComponent(url.password)}`; + } + return options; +} + +const lazy = globalThis[Symbol.for("Bun.lazy")]; +const pathToFileURL = lazy("pathToFileURL"); +const fileURLToPath = lazy("fileURLToPath"); +const defaultObject = { + parse: urlParse, + resolve: urlResolve, + resolveObject: urlResolveObject, + format: urlFormat, + Url, + URLSearchParams, + URL, + pathToFileURL, + fileURLToPath, + urlToHttpOptions, }; -("use strict"); + export { - F as URL, - M as URLSearchParams, - m as Url, - ut as default, - k as fileURLToPath, - V as format, - A as parse, - Y as pathToFileURL, - W as resolve, - X as resolveObject, + defaultObject as default, + urlParse as parse, + urlResolve as resolve, + urlResolveObject as resolveObject, + urlFormat as format, + Url, + URLSearchParams, + URL, + pathToFileURL, + fileURLToPath, + urlToHttpOptions, }; diff --git a/src/js/node/util.js b/src/js/node/util.js index 282f4b371..346f88ffb 100644 --- a/src/js/node/util.js +++ b/src/js/node/util.js @@ -1,4 +1,11 @@ // Hardcoded module "node:util" +import * as types from "node:util/types"; +export { default as types } from "node:util/types"; + +var cjs_exports = {}; + +export default cjs_exports; + var __getOwnPropNames = Object.getOwnPropertyNames; var __commonJS = (cb, mod) => function __require() { @@ -17,6 +24,10 @@ export function isBuffer(value) { ); } +function isFunction(value) { + return typeof value === "function"; +} + // node_modules/inherits/inherits_browser.js var require_inherits_browser = __commonJS({ "node_modules/inherits/inherits_browser.js"(exports, module2) { @@ -35,9 +46,6 @@ var require_inherits_browser = __commonJS({ }); const deepEquals = Bun.deepEquals; const isDeepStrictEqual = (a, b) => deepEquals(a, b, true); -const exports = { - isDeepStrictEqual, -}; var getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors; var formatRegExp = /%[sdj%]/g; function format(f) { @@ -78,21 +86,19 @@ function format(f) { } return str; } -exports.format = format; -function deprecate(fn, msg) { - if (typeof process !== "undefined" && process.noDeprecation === true) { + +function deprecate(fn, msg, code) { + if (process.noDeprecation === true) { return fn; } - if (typeof process === "undefined") { - return function () { - return exports.deprecate(fn, msg).apply(this, arguments); - }; - } + var warned = false; function deprecated() { if (!warned) { if (process.throwDeprecation) { - throw new Error(msg); + var err = new Error(msg); + if (code) err.code = code; + throw err; } else if (process.traceDeprecation) { console.trace(msg); } else { @@ -104,7 +110,7 @@ function deprecate(fn, msg) { } return deprecated; } -exports.deprecate = deprecate; + var debugs = {}; var debugEnvRegex = /^$/; if (process.env.NODE_DEBUG) { @@ -123,7 +129,7 @@ function debuglog(set) { if (debugEnvRegex.test(set)) { var pid = process.pid; debugs[set] = function () { - var msg = exports.format.apply(exports, arguments); + var msg = format.apply(cjs_exports, arguments); console.error("%s %d: %s", set, pid, msg); }; } else { @@ -132,7 +138,6 @@ function debuglog(set) { } return debugs[set]; } -exports.debuglog = debuglog; function inspect(obj, opts) { var ctx = { seen: [], @@ -143,7 +148,7 @@ function inspect(obj, opts) { if (isBoolean(opts)) { ctx.showHidden = opts; } else if (opts) { - exports._extend(ctx, opts); + _extend(ctx, opts); } if (isUndefined(ctx.showHidden)) ctx.showHidden = false; if (isUndefined(ctx.depth)) ctx.depth = 2; @@ -152,7 +157,6 @@ function inspect(obj, opts) { if (ctx.colors) ctx.stylize = stylizeWithColor; return formatValue(ctx, obj, ctx.depth); } -exports.inspect = inspect; inspect.colors = { bold: [1, 22], italic: [3, 23], @@ -201,7 +205,7 @@ function formatValue(ctx, value, recurseTimes) { ctx.customInspect && value && isFunction(value.inspect) && - value.inspect !== exports.inspect && + value.inspect !== inspect && !(value.constructor && value.constructor.prototype === value) ) { var ret = value.inspect(recurseTimes, ctx); @@ -388,51 +392,42 @@ function reduceToSingleString(output, base, braces) { } return braces[0] + base + " " + output.join(", ") + " " + braces[1]; } -const types = import.meta.require("node:util/types"); -exports.types = types; + function isArray(ar) { return Array.isArray(ar); } -exports.isArray = isArray; + function isBoolean(arg) { return typeof arg === "boolean"; } -exports.isBoolean = isBoolean; + function isNull(arg) { return arg === null; } -exports.isNull = isNull; + function isNullOrUndefined(arg) { return arg == null; } -exports.isNullOrUndefined = isNullOrUndefined; + function isNumber(arg) { return typeof arg === "number"; } -exports.isNumber = isNumber; + function isString(arg) { return typeof arg === "string"; } -exports.isString = isString; function isSymbol(arg) { return typeof arg === "symbol"; } -exports.isSymbol = isSymbol; function isUndefined(arg) { return arg === void 0; } -exports.isUndefined = isUndefined; -var isRegExp = (exports.isRegExp = exports.types.isRegExp); +var isRegExp = types.isRegExp; function isObject(arg) { return typeof arg === "object" && arg !== null; } -exports.isObject = isObject; -var isDate = (exports.isDate = exports.types.isDate); -var isError = (exports.isError = exports.types.isNativeError); -function isFunction(arg) { - return typeof arg === "function"; -} -var isFunction = (exports.isFunction = isFunction); +var isDate = types.isDate; +var isError = types.isNativeError; function isPrimitive(arg) { return ( arg === null || @@ -443,8 +438,6 @@ function isPrimitive(arg) { typeof arg === "undefined" ); } -exports.isPrimitive = isPrimitive; -exports.isBuffer = isBuffer; function pad(n) { return n < 10 ? "0" + n.toString(10) : n.toString(10); } @@ -454,11 +447,11 @@ function timestamp() { var time = [pad(d.getHours()), pad(d.getMinutes()), pad(d.getSeconds())].join(":"); return [d.getDate(), months[d.getMonth()], time].join(" "); } -var log = (exports.log = function () { - console.log("%s - %s", timestamp(), exports.format.apply(exports, arguments)); -}); -var inherits = (exports.inherits = require_inherits_browser()); -var _extend = (exports._extend = function (origin, add) { +var log = function log() { + console.log("%s - %s", timestamp(), format.apply(cjs_exports, arguments)); +}; +var inherits = (inherits = require_inherits_browser()); +var _extend = function (origin, add) { if (!add || !isObject(add)) return origin; var keys = Object.keys(add); var i = keys.length; @@ -466,12 +459,12 @@ var _extend = (exports._extend = function (origin, add) { origin[keys[i]] = add[keys[i]]; } return origin; -}); +}; function hasOwnProperty(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } var kCustomPromisifiedSymbol = Symbol.for("util.promisify.custom"); -var promisify = (exports.promisify = function promisify(original) { +var promisify = function promisify(original) { if (typeof original !== "function") throw new TypeError('The "original" argument must be of type Function'); if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) { var fn = original[kCustomPromisifiedSymbol]; @@ -519,8 +512,8 @@ var promisify = (exports.promisify = function promisify(original) { configurable: true, }); return Object.defineProperties(fn, getOwnPropertyDescriptors(original)); -}); -exports.promisify.custom = kCustomPromisifiedSymbol; +}; +promisify.custom = kCustomPromisifiedSymbol; function callbackifyOnRejected(reason, cb) { if (!reason) { var newReason = new Error("Promise was rejected with a falsy value"); @@ -556,11 +549,40 @@ function callbackify(original) { Object.defineProperties(callbackified, getOwnPropertyDescriptors(original)); return callbackified; } -exports.callbackify = callbackify; -export var TextDecoder = (exports.TextDecoder = globalThis.TextDecoder); -export var TextEncoder = (exports.TextEncoder = globalThis.TextEncoder); -exports[Symbol.for("CommonJS")] = 0; -export default exports; +export var TextDecoder = globalThis.TextDecoder; +export var TextEncoder = globalThis.TextEncoder; + +Object.assign(cjs_exports, { + format, + deprecate, + debuglog, + _extend, + inspect, + types, + isArray, + isBoolean, + isNull, + isNullOrUndefined, + isNumber, + isString, + isSymbol, + isUndefined, + isRegExp, + isObject, + isDate, + isFunction, + isError, + isPrimitive, + isBuffer, + log, + inherits, + promisify, + callbackify, + isDeepStrictEqual, + TextDecoder, + TextEncoder, + [Symbol.for("CommonJS")]: 0, +}); export { format, diff --git a/src/js/node/zlib.js b/src/js/node/zlib.js index 1414f4664..77a9e8089 100644 --- a/src/js/node/zlib.js +++ b/src/js/node/zlib.js @@ -3,6 +3,41 @@ // This is a very slow module! // It should really be fixed. It will show up in benchmarking. It also loads // slowly. We need to fix it! +import { default as assert } from "node:assert"; +import * as AssertModule from "node:assert"; +import * as BufferModule from "node:buffer"; +import * as StreamModule from "node:stream"; +import * as Util from "node:util"; + +export var Deflate, + Inflate, + Gzip, + Gunzip, + DeflateRaw, + InflateRaw, + Unzip, + createDeflate, + createInflate, + createDeflateRaw, + createInflateRaw, + createGzip, + createGunzip, + createUnzip, + deflate, + deflateSync, + gzip, + gzipSync, + deflateRaw, + deflateRawSync, + unzip, + unzipSync, + inflate, + inflateSync, + gunzip, + gunzipSync, + inflateRaw, + inflateRawSync, + constants; var __create = Object.create; var __defProp = Object.defineProperty; @@ -38,8 +73,6 @@ var __toESM = (mod, isNodeMode, target) => ( ); var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", { value: true }), mod); -const require = id => import.meta.require(id); - // node_modules/pako/lib/zlib/zstream.js var require_zstream = __commonJS({ "node_modules/pako/lib/zlib/zstream.js"(exports, module2) { @@ -3593,7 +3626,7 @@ var require_constants = __commonJS({ var require_binding = __commonJS({ "node_modules/browserify-zlib/lib/binding.js"(exports) { "use strict"; - var assert = require("assert"); + var Zstream = require_zstream(); var zlib_deflate = require_deflate(); var zlib_inflate = require_inflate(); @@ -3937,12 +3970,12 @@ var require_binding = __commonJS({ var require_lib = __commonJS({ "node_modules/browserify-zlib/lib/index.js"(exports) { "use strict"; - var Buffer2 = require("buffer").Buffer; - var Transform = require("stream").Transform; + var Buffer2 = BufferModule.Buffer; + var Transform = StreamModule.Transform; var binding = require_binding(); - var util = require("util"); - var assert = require("assert").ok; - var kMaxLength = require("buffer").kMaxLength; + var util = Util; + var assert = AssertModule.ok; + var kMaxLength = BufferModule.kMaxLength; var kRangeErrorMessage = "Cannot create final Buffer. It would be larger than 0x" + kMaxLength.toString(16) + " bytes"; binding.Z_MIN_WINDOWBITS = 8; @@ -4437,36 +4470,35 @@ var require_lib = __commonJS({ // zlib.js var zlib_exports = require_lib(); zlib_exports[Symbol.for("CommonJS")] = 0; + export default zlib_exports; -export var { - Deflate, - Inflate, - Gzip, - Gunzip, - DeflateRaw, - InflateRaw, - Unzip, - createDeflate, - createInflate, - createDeflateRaw, - createInflateRaw, - createGzip, - createGunzip, - createUnzip, - deflate, - deflateSync, - gzip, - gzipSync, - deflateRaw, - deflateRawSync, - unzip, - unzipSync, - inflate, - inflateSync, - gunzip, - gunzipSync, - inflateRaw, - inflateRawSync, - constants, -} = zlib_exports; +Deflate = zlib_exports.Deflate; +Inflate = zlib_exports.Inflate; +Gzip = zlib_exports.Gzip; +Gunzip = zlib_exports.Gunzip; +DeflateRaw = zlib_exports.DeflateRaw; +InflateRaw = zlib_exports.InflateRaw; +Unzip = zlib_exports.Unzip; +createDeflate = zlib_exports.createDeflate; +createInflate = zlib_exports.createInflate; +createDeflateRaw = zlib_exports.createDeflateRaw; +createInflateRaw = zlib_exports.createInflateRaw; +createGzip = zlib_exports.createGzip; +createGunzip = zlib_exports.createGunzip; +createUnzip = zlib_exports.createUnzip; +deflate = zlib_exports.deflate; +deflateSync = zlib_exports.deflateSync; +gzip = zlib_exports.gzip; +gzipSync = zlib_exports.gzipSync; +deflateRaw = zlib_exports.deflateRaw; +deflateRawSync = zlib_exports.deflateRawSync; +unzip = zlib_exports.unzip; +unzipSync = zlib_exports.unzipSync; +inflate = zlib_exports.inflate; +inflateSync = zlib_exports.inflateSync; +gunzip = zlib_exports.gunzip; +gunzipSync = zlib_exports.gunzipSync; +inflateRaw = zlib_exports.inflateRaw; +inflateRawSync = zlib_exports.inflateRawSync; +constants = zlib_exports.constants; diff --git a/src/js/out/WebCoreJSBuiltins.cpp b/src/js/out/WebCoreJSBuiltins.cpp index 455a0a3a4..f494e6635 100644 --- a/src/js/out/WebCoreJSBuiltins.cpp +++ b/src/js/out/WebCoreJSBuiltins.cpp @@ -116,7 +116,7 @@ const JSC::ConstructorKind s_writableStreamInternalsCreateInternalWritableStream const JSC::ImplementationVisibility s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeLength = 956; static const JSC::Intrinsic s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCode = "(function (o,w){\"use strict\";const C={};if(o===@undefined)o={};if(w===@undefined)w={};if(!@isObject(o))@throwTypeError(\"WritableStream constructor takes an object as first argument\");if(\"type\"in o)@throwRangeError(\"Invalid type is specified\");const E=@extractSizeAlgorithm(w),_=@extractHighWaterMark(w,1),f={};if(\"start\"in o){if(f[\"start\"]=o[\"start\"],typeof f[\"start\"]!==\"function\")@throwTypeError(\"underlyingSink.start should be a function\")}if(\"write\"in o){if(f[\"write\"]=o[\"write\"],typeof f[\"write\"]!==\"function\")@throwTypeError(\"underlyingSink.write should be a function\")}if(\"close\"in o){if(f[\"close\"]=o[\"close\"],typeof f[\"close\"]!==\"function\")@throwTypeError(\"underlyingSink.close should be a function\")}if(\"abort\"in o){if(f[\"abort\"]=o[\"abort\"],typeof f[\"abort\"]!==\"function\")@throwTypeError(\"underlyingSink.abort should be a function\")}return @initializeWritableStreamSlots(C,o),@setUpWritableStreamDefaultControllerFromUnderlyingSink(C,o,f,_,E),C})\n"; +const char* const s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCode = "(function (f,o){\"use strict\";const C={};if(f===@undefined)f={};if(o===@undefined)o={};if(!@isObject(f))@throwTypeError(\"WritableStream constructor takes an object as first argument\");if(\"type\"in f)@throwRangeError(\"Invalid type is specified\");const w=@extractSizeAlgorithm(o),E=@extractHighWaterMark(o,1),_={};if(\"start\"in f){if(_[\"start\"]=f[\"start\"],typeof _[\"start\"]!==\"function\")@throwTypeError(\"underlyingSink.start should be a function\")}if(\"write\"in f){if(_[\"write\"]=f[\"write\"],typeof _[\"write\"]!==\"function\")@throwTypeError(\"underlyingSink.write should be a function\")}if(\"close\"in f){if(_[\"close\"]=f[\"close\"],typeof _[\"close\"]!==\"function\")@throwTypeError(\"underlyingSink.close should be a function\")}if(\"abort\"in f){if(_[\"abort\"]=f[\"abort\"],typeof _[\"abort\"]!==\"function\")@throwTypeError(\"underlyingSink.abort should be a function\")}return @initializeWritableStreamSlots(C,f),@setUpWritableStreamDefaultControllerFromUnderlyingSink(C,f,_,E,w),C})\n"; // initializeWritableStreamSlots const JSC::ConstructAbility s_writableStreamInternalsInitializeWritableStreamSlotsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -156,7 +156,7 @@ const JSC::ConstructorKind s_writableStreamInternalsSetUpWritableStreamDefaultWr const JSC::ImplementationVisibility s_writableStreamInternalsSetUpWritableStreamDefaultWriterCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsSetUpWritableStreamDefaultWriterCodeLength = 887; static const JSC::Intrinsic s_writableStreamInternalsSetUpWritableStreamDefaultWriterCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsSetUpWritableStreamDefaultWriterCode = "(function (n,v){\"use strict\";if(@isWritableStreamLocked(v))@throwTypeError(\"WritableStream is locked\");@putByIdDirectPrivate(n,\"stream\",v),@putByIdDirectPrivate(v,\"writer\",n);const g=@newPromiseCapability(@Promise),h=@newPromiseCapability(@Promise);@putByIdDirectPrivate(n,\"readyPromise\",g),@putByIdDirectPrivate(n,\"closedPromise\",h);const B=@getByIdDirectPrivate(v,\"state\");if(B===\"writable\"){if(@writableStreamCloseQueuedOrInFlight(v)||!@getByIdDirectPrivate(v,\"backpressure\"))g.@resolve.@call()}else if(B===\"erroring\")g.@reject.@call(@undefined,@getByIdDirectPrivate(v,\"storedError\")),@markPromiseAsHandled(g.@promise);else if(B===\"closed\")g.@resolve.@call(),h.@resolve.@call();else{@assert(B===\"errored\");const _=@getByIdDirectPrivate(v,\"storedError\");g.@reject.@call(@undefined,_),@markPromiseAsHandled(g.@promise),h.@reject.@call(@undefined,_),@markPromiseAsHandled(h.@promise)}})\n"; +const char* const s_writableStreamInternalsSetUpWritableStreamDefaultWriterCode = "(function (n,g){\"use strict\";if(@isWritableStreamLocked(g))@throwTypeError(\"WritableStream is locked\");@putByIdDirectPrivate(n,\"stream\",g),@putByIdDirectPrivate(g,\"writer\",n);const v=@newPromiseCapability(@Promise),h=@newPromiseCapability(@Promise);@putByIdDirectPrivate(n,\"readyPromise\",v),@putByIdDirectPrivate(n,\"closedPromise\",h);const B=@getByIdDirectPrivate(g,\"state\");if(B===\"writable\"){if(@writableStreamCloseQueuedOrInFlight(g)||!@getByIdDirectPrivate(g,\"backpressure\"))v.@resolve.@call()}else if(B===\"erroring\")v.@reject.@call(@undefined,@getByIdDirectPrivate(g,\"storedError\")),@markPromiseAsHandled(v.@promise);else if(B===\"closed\")v.@resolve.@call(),h.@resolve.@call();else{@assert(B===\"errored\");const _=@getByIdDirectPrivate(g,\"storedError\");v.@reject.@call(@undefined,_),@markPromiseAsHandled(v.@promise),h.@reject.@call(@undefined,_),@markPromiseAsHandled(h.@promise)}})\n"; // writableStreamAbort const JSC::ConstructAbility s_writableStreamInternalsWritableStreamAbortCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -164,7 +164,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamAbortCodeConst const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamAbortCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamAbortCodeLength = 501; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamAbortCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamAbortCode = "(function (c,h){\"use strict\";const B=@getByIdDirectPrivate(c,\"state\");if(B===\"closed\"||B===\"errored\")return @Promise.@resolve();const _=@getByIdDirectPrivate(c,\"pendingAbortRequest\");if(_!==@undefined)return _.promise.@promise;@assert(B===\"writable\"||B===\"erroring\");let f=!1;if(B===\"erroring\")f=!0,h=@undefined;const j=@newPromiseCapability(@Promise);if(@putByIdDirectPrivate(c,\"pendingAbortRequest\",{promise:j,reason:h,wasAlreadyErroring:f}),!f)@writableStreamStartErroring(c,h);return j.@promise})\n"; +const char* const s_writableStreamInternalsWritableStreamAbortCode = "(function (h,B){\"use strict\";const _=@getByIdDirectPrivate(h,\"state\");if(_===\"closed\"||_===\"errored\")return @Promise.@resolve();const f=@getByIdDirectPrivate(h,\"pendingAbortRequest\");if(f!==@undefined)return f.promise.@promise;@assert(_===\"writable\"||_===\"erroring\");let j=!1;if(_===\"erroring\")j=!0,B=@undefined;const c=@newPromiseCapability(@Promise);if(@putByIdDirectPrivate(h,\"pendingAbortRequest\",{promise:c,reason:B,wasAlreadyErroring:j}),!j)@writableStreamStartErroring(h,B);return c.@promise})\n"; // writableStreamClose const JSC::ConstructAbility s_writableStreamInternalsWritableStreamCloseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -172,7 +172,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamCloseCodeConst const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamCloseCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamCloseCodeLength = 642; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamCloseCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamCloseCode = "(function (n){\"use strict\";const _=@getByIdDirectPrivate(n,\"state\");if(_===\"closed\"||_===\"errored\")return @Promise.@reject(@makeTypeError(\"Cannot close a writable stream that is closed or errored\"));@assert(_===\"writable\"||_===\"erroring\"),@assert(!@writableStreamCloseQueuedOrInFlight(n));const u=@newPromiseCapability(@Promise);@putByIdDirectPrivate(n,\"closeRequest\",u);const d=@getByIdDirectPrivate(n,\"writer\");if(d!==@undefined&&@getByIdDirectPrivate(n,\"backpressure\")&&_===\"writable\")@getByIdDirectPrivate(d,\"readyPromise\").@resolve.@call();return @writableStreamDefaultControllerClose(@getByIdDirectPrivate(n,\"controller\")),u.@promise})\n"; +const char* const s_writableStreamInternalsWritableStreamCloseCode = "(function (_){\"use strict\";const d=@getByIdDirectPrivate(_,\"state\");if(d===\"closed\"||d===\"errored\")return @Promise.@reject(@makeTypeError(\"Cannot close a writable stream that is closed or errored\"));@assert(d===\"writable\"||d===\"erroring\"),@assert(!@writableStreamCloseQueuedOrInFlight(_));const n=@newPromiseCapability(@Promise);@putByIdDirectPrivate(_,\"closeRequest\",n);const u=@getByIdDirectPrivate(_,\"writer\");if(u!==@undefined&&@getByIdDirectPrivate(_,\"backpressure\")&&d===\"writable\")@getByIdDirectPrivate(u,\"readyPromise\").@resolve.@call();return @writableStreamDefaultControllerClose(@getByIdDirectPrivate(_,\"controller\")),n.@promise})\n"; // writableStreamAddWriteRequest const JSC::ConstructAbility s_writableStreamInternalsWritableStreamAddWriteRequestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -204,7 +204,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamFinishErroring const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamFinishErroringCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamFinishErroringCodeLength = 1058; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamFinishErroringCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamFinishErroringCode = "(function (_){\"use strict\";@assert(@getByIdDirectPrivate(_,\"state\")===\"erroring\"),@assert(!@writableStreamHasOperationMarkedInFlight(_)),@putByIdDirectPrivate(_,\"state\",\"errored\");const p=@getByIdDirectPrivate(_,\"controller\");@getByIdDirectPrivate(p,\"errorSteps\").@call();const h=@getByIdDirectPrivate(_,\"storedError\"),A=@getByIdDirectPrivate(_,\"writeRequests\");for(var B=A.shift();B;B=A.shift())B.@reject.@call(@undefined,h);@putByIdDirectPrivate(_,\"writeRequests\",@createFIFO());const i=@getByIdDirectPrivate(_,\"pendingAbortRequest\");if(i===@undefined){@writableStreamRejectCloseAndClosedPromiseIfNeeded(_);return}if(@putByIdDirectPrivate(_,\"pendingAbortRequest\",@undefined),i.wasAlreadyErroring){i.promise.@reject.@call(@undefined,h),@writableStreamRejectCloseAndClosedPromiseIfNeeded(_);return}@getByIdDirectPrivate(p,\"abortSteps\").@call(@undefined,i.reason).@then(()=>{i.promise.@resolve.@call(),@writableStreamRejectCloseAndClosedPromiseIfNeeded(_)},(I)=>{i.promise.@reject.@call(@undefined,I),@writableStreamRejectCloseAndClosedPromiseIfNeeded(_)})})\n"; +const char* const s_writableStreamInternalsWritableStreamFinishErroringCode = "(function (i){\"use strict\";@assert(@getByIdDirectPrivate(i,\"state\")===\"erroring\"),@assert(!@writableStreamHasOperationMarkedInFlight(i)),@putByIdDirectPrivate(i,\"state\",\"errored\");const _=@getByIdDirectPrivate(i,\"controller\");@getByIdDirectPrivate(_,\"errorSteps\").@call();const p=@getByIdDirectPrivate(i,\"storedError\"),h=@getByIdDirectPrivate(i,\"writeRequests\");for(var A=h.shift();A;A=h.shift())A.@reject.@call(@undefined,p);@putByIdDirectPrivate(i,\"writeRequests\",@createFIFO());const B=@getByIdDirectPrivate(i,\"pendingAbortRequest\");if(B===@undefined){@writableStreamRejectCloseAndClosedPromiseIfNeeded(i);return}if(@putByIdDirectPrivate(i,\"pendingAbortRequest\",@undefined),B.wasAlreadyErroring){B.promise.@reject.@call(@undefined,p),@writableStreamRejectCloseAndClosedPromiseIfNeeded(i);return}@getByIdDirectPrivate(_,\"abortSteps\").@call(@undefined,B.reason).@then(()=>{B.promise.@resolve.@call(),@writableStreamRejectCloseAndClosedPromiseIfNeeded(i)},(I)=>{B.promise.@reject.@call(@undefined,I),@writableStreamRejectCloseAndClosedPromiseIfNeeded(i)})})\n"; // writableStreamFinishInFlightClose const JSC::ConstructAbility s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -348,7 +348,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterW const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeLength = 919; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultWriterWriteCode = "(function (g,P){\"use strict\";const W=@getByIdDirectPrivate(g,\"stream\");@assert(W!==@undefined);const _=@getByIdDirectPrivate(W,\"controller\");@assert(_!==@undefined);const b=@writableStreamDefaultControllerGetChunkSize(_,P);if(W!==@getByIdDirectPrivate(g,\"stream\"))return @Promise.@reject(@makeTypeError(\"writer is not stream's writer\"));const d=@getByIdDirectPrivate(W,\"state\");if(d===\"errored\")return @Promise.@reject(@getByIdDirectPrivate(W,\"storedError\"));if(@writableStreamCloseQueuedOrInFlight(W)||d===\"closed\")return @Promise.@reject(@makeTypeError(\"stream is closing or closed\"));if(@writableStreamCloseQueuedOrInFlight(W)||d===\"closed\")return @Promise.@reject(@makeTypeError(\"stream is closing or closed\"));if(d===\"erroring\")return @Promise.@reject(@getByIdDirectPrivate(W,\"storedError\"));@assert(d===\"writable\");const f=@writableStreamAddWriteRequest(W);return @writableStreamDefaultControllerWrite(_,P,b),f})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultWriterWriteCode = "(function (d,P){\"use strict\";const W=@getByIdDirectPrivate(d,\"stream\");@assert(W!==@undefined);const _=@getByIdDirectPrivate(W,\"controller\");@assert(_!==@undefined);const b=@writableStreamDefaultControllerGetChunkSize(_,P);if(W!==@getByIdDirectPrivate(d,\"stream\"))return @Promise.@reject(@makeTypeError(\"writer is not stream's writer\"));const f=@getByIdDirectPrivate(W,\"state\");if(f===\"errored\")return @Promise.@reject(@getByIdDirectPrivate(W,\"storedError\"));if(@writableStreamCloseQueuedOrInFlight(W)||f===\"closed\")return @Promise.@reject(@makeTypeError(\"stream is closing or closed\"));if(@writableStreamCloseQueuedOrInFlight(W)||f===\"closed\")return @Promise.@reject(@makeTypeError(\"stream is closing or closed\"));if(f===\"erroring\")return @Promise.@reject(@getByIdDirectPrivate(W,\"storedError\"));@assert(f===\"writable\");const g=@writableStreamAddWriteRequest(W);return @writableStreamDefaultControllerWrite(_,P,b),g})\n"; // setUpWritableStreamDefaultController const JSC::ConstructAbility s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -356,7 +356,7 @@ const JSC::ConstructorKind s_writableStreamInternalsSetUpWritableStreamDefaultCo const JSC::ImplementationVisibility s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeLength = 700; static const JSC::Intrinsic s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsSetUpWritableStreamDefaultControllerCode = "(function (_,B,v,P,U,d,f,j){\"use strict\";@assert(@isWritableStream(_)),@assert(@getByIdDirectPrivate(_,\"controller\")===@undefined),@putByIdDirectPrivate(B,\"stream\",_),@putByIdDirectPrivate(_,\"controller\",B),@resetQueue(@getByIdDirectPrivate(B,\"queue\")),@putByIdDirectPrivate(B,\"started\",-1),@putByIdDirectPrivate(B,\"startAlgorithm\",v),@putByIdDirectPrivate(B,\"strategySizeAlgorithm\",j),@putByIdDirectPrivate(B,\"strategyHWM\",f),@putByIdDirectPrivate(B,\"writeAlgorithm\",P),@putByIdDirectPrivate(B,\"closeAlgorithm\",U),@putByIdDirectPrivate(B,\"abortAlgorithm\",d);const q=@writableStreamDefaultControllerGetBackpressure(B);@writableStreamUpdateBackpressure(_,q),@writableStreamDefaultControllerStart(B)})\n"; +const char* const s_writableStreamInternalsSetUpWritableStreamDefaultControllerCode = "(function (B,f,j,v,P,q,_,U){\"use strict\";@assert(@isWritableStream(B)),@assert(@getByIdDirectPrivate(B,\"controller\")===@undefined),@putByIdDirectPrivate(f,\"stream\",B),@putByIdDirectPrivate(B,\"controller\",f),@resetQueue(@getByIdDirectPrivate(f,\"queue\")),@putByIdDirectPrivate(f,\"started\",-1),@putByIdDirectPrivate(f,\"startAlgorithm\",j),@putByIdDirectPrivate(f,\"strategySizeAlgorithm\",U),@putByIdDirectPrivate(f,\"strategyHWM\",_),@putByIdDirectPrivate(f,\"writeAlgorithm\",v),@putByIdDirectPrivate(f,\"closeAlgorithm\",P),@putByIdDirectPrivate(f,\"abortAlgorithm\",q);const d=@writableStreamDefaultControllerGetBackpressure(f);@writableStreamUpdateBackpressure(B,d),@writableStreamDefaultControllerStart(f)})\n"; // writableStreamDefaultControllerStart const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerStartCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -460,7 +460,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControl const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCodeLength = 734; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCode = "(function (i,d){\"use strict\";const _=@getByIdDirectPrivate(i,\"stream\");@writableStreamMarkFirstWriteRequestInFlight(_),@getByIdDirectPrivate(i,\"writeAlgorithm\").@call(@undefined,d).@then(()=>{@writableStreamFinishInFlightWrite(_);const v=@getByIdDirectPrivate(_,\"state\");if(@assert(v===\"writable\"||v===\"erroring\"),@dequeueValue(@getByIdDirectPrivate(i,\"queue\")),!@writableStreamCloseQueuedOrInFlight(_)&&v===\"writable\"){const M=@writableStreamDefaultControllerGetBackpressure(i);@writableStreamUpdateBackpressure(_,M)}@writableStreamDefaultControllerAdvanceQueueIfNeeded(i)},(v)=>{if(@getByIdDirectPrivate(_,\"state\")===\"writable\")@writableStreamDefaultControllerClearAlgorithms(i);@writableStreamFinishInFlightWriteWithError(_,v)})})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCode = "(function (d,_){\"use strict\";const q=@getByIdDirectPrivate(d,\"stream\");@writableStreamMarkFirstWriteRequestInFlight(q),@getByIdDirectPrivate(d,\"writeAlgorithm\").@call(@undefined,_).@then(()=>{@writableStreamFinishInFlightWrite(q);const M=@getByIdDirectPrivate(q,\"state\");if(@assert(M===\"writable\"||M===\"erroring\"),@dequeueValue(@getByIdDirectPrivate(d,\"queue\")),!@writableStreamCloseQueuedOrInFlight(q)&&M===\"writable\"){const i=@writableStreamDefaultControllerGetBackpressure(d);@writableStreamUpdateBackpressure(q,i)}@writableStreamDefaultControllerAdvanceQueueIfNeeded(d)},(M)=>{if(@getByIdDirectPrivate(q,\"state\")===\"writable\")@writableStreamDefaultControllerClearAlgorithms(d);@writableStreamFinishInFlightWriteWithError(q,M)})})\n"; // writableStreamDefaultControllerWrite const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -468,7 +468,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControl const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeLength = 450; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultControllerWriteCode = "(function (y,B,D){\"use strict\";try{@enqueueValueWithSize(@getByIdDirectPrivate(y,\"queue\"),B,D);const I=@getByIdDirectPrivate(y,\"stream\"),_=@getByIdDirectPrivate(I,\"state\");if(!@writableStreamCloseQueuedOrInFlight(I)&&_===\"writable\"){const d=@writableStreamDefaultControllerGetBackpressure(y);@writableStreamUpdateBackpressure(I,d)}@writableStreamDefaultControllerAdvanceQueueIfNeeded(y)}catch(I){@writableStreamDefaultControllerErrorIfNeeded(y,I)}})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultControllerWriteCode = "(function (d,y,B){\"use strict\";try{@enqueueValueWithSize(@getByIdDirectPrivate(d,\"queue\"),y,B);const D=@getByIdDirectPrivate(d,\"stream\"),I=@getByIdDirectPrivate(D,\"state\");if(!@writableStreamCloseQueuedOrInFlight(D)&&I===\"writable\"){const _=@writableStreamDefaultControllerGetBackpressure(d);@writableStreamUpdateBackpressure(D,_)}@writableStreamDefaultControllerAdvanceQueueIfNeeded(d)}catch(D){@writableStreamDefaultControllerErrorIfNeeded(d,D)}})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ @@ -502,7 +502,7 @@ const JSC::ConstructorKind s_transformStreamInternalsCreateTransformStreamCodeCo const JSC::ImplementationVisibility s_transformStreamInternalsCreateTransformStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsCreateTransformStreamCodeLength = 513; static const JSC::Intrinsic s_transformStreamInternalsCreateTransformStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsCreateTransformStreamCode = "(function (_,B,c,j,v,x,D){\"use strict\";if(j===@undefined)j=1;if(v===@undefined)v=()=>1;if(x===@undefined)x=0;if(D===@undefined)D=()=>1;@assert(j>=0),@assert(x>=0);const E={};@putByIdDirectPrivate(E,\"TransformStream\",!0);const F=new @TransformStream(E),q=@newPromiseCapability(@Promise);@initializeTransformStream(F,q.@promise,j,v,x,D);const G=new @TransformStreamDefaultController;return @setUpTransformStreamDefaultController(F,G,B,c),_().@then(()=>{q.@resolve.@call()},(I)=>{q.@reject.@call(@undefined,I)}),F})\n"; +const char* const s_transformStreamInternalsCreateTransformStreamCode = "(function (q,x,D,E,_,F,j){\"use strict\";if(E===@undefined)E=1;if(_===@undefined)_=()=>1;if(F===@undefined)F=0;if(j===@undefined)j=()=>1;@assert(E>=0),@assert(F>=0);const G={};@putByIdDirectPrivate(G,\"TransformStream\",!0);const I=new @TransformStream(G),v=@newPromiseCapability(@Promise);@initializeTransformStream(I,v.@promise,E,_,F,j);const B=new @TransformStreamDefaultController;return @setUpTransformStreamDefaultController(I,B,x,D),q().@then(()=>{v.@resolve.@call()},(c)=>{v.@reject.@call(@undefined,c)}),I})\n"; // initializeTransformStream const JSC::ConstructAbility s_transformStreamInternalsInitializeTransformStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -510,7 +510,7 @@ const JSC::ConstructorKind s_transformStreamInternalsInitializeTransformStreamCo const JSC::ImplementationVisibility s_transformStreamInternalsInitializeTransformStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsInitializeTransformStreamCodeLength = 1015; static const JSC::Intrinsic s_transformStreamInternalsInitializeTransformStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsInitializeTransformStreamCode = "(function (B,T,j,I,q,J){\"use strict\";const v=()=>{return T},K=(F)=>{return @transformStreamDefaultSinkWriteAlgorithm(B,F)},x=(F)=>{return @transformStreamDefaultSinkAbortAlgorithm(B,F)},L=()=>{return @transformStreamDefaultSinkCloseAlgorithm(B)},C=@createWritableStream(v,K,L,x,j,I),f=()=>{return @transformStreamDefaultSourcePullAlgorithm(B)},D=(F)=>{return @transformStreamErrorWritableAndUnblockWrite(B,F),@Promise.@resolve()},G={};@putByIdDirectPrivate(G,\"start\",v),@putByIdDirectPrivate(G,\"pull\",f),@putByIdDirectPrivate(G,\"cancel\",D);const E={};@putByIdDirectPrivate(E,\"size\",J),@putByIdDirectPrivate(E,\"highWaterMark\",q);const N=new @ReadableStream(G,E);@putByIdDirectPrivate(B,\"writable\",C),@putByIdDirectPrivate(B,\"internalWritable\",@getInternalWritableStream(C)),@putByIdDirectPrivate(B,\"readable\",N),@putByIdDirectPrivate(B,\"backpressure\",@undefined),@putByIdDirectPrivate(B,\"backpressureChangePromise\",@undefined),@transformStreamSetBackpressure(B,!0),@putByIdDirectPrivate(B,\"controller\",@undefined)})\n"; +const char* const s_transformStreamInternalsInitializeTransformStreamCode = "(function (f,K,B,T,j,J){\"use strict\";const q=()=>{return K},L=(G)=>{return @transformStreamDefaultSinkWriteAlgorithm(f,G)},v=(G)=>{return @transformStreamDefaultSinkAbortAlgorithm(f,G)},x=()=>{return @transformStreamDefaultSinkCloseAlgorithm(f)},C=@createWritableStream(q,L,x,v,B,T),N=()=>{return @transformStreamDefaultSourcePullAlgorithm(f)},D=(G)=>{return @transformStreamErrorWritableAndUnblockWrite(f,G),@Promise.@resolve()},I={};@putByIdDirectPrivate(I,\"start\",q),@putByIdDirectPrivate(I,\"pull\",N),@putByIdDirectPrivate(I,\"cancel\",D);const E={};@putByIdDirectPrivate(E,\"size\",J),@putByIdDirectPrivate(E,\"highWaterMark\",j);const F=new @ReadableStream(I,E);@putByIdDirectPrivate(f,\"writable\",C),@putByIdDirectPrivate(f,\"internalWritable\",@getInternalWritableStream(C)),@putByIdDirectPrivate(f,\"readable\",F),@putByIdDirectPrivate(f,\"backpressure\",@undefined),@putByIdDirectPrivate(f,\"backpressureChangePromise\",@undefined),@transformStreamSetBackpressure(f,!0),@putByIdDirectPrivate(f,\"controller\",@undefined)})\n"; // transformStreamError const JSC::ConstructAbility s_transformStreamInternalsTransformStreamErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -542,7 +542,7 @@ const JSC::ConstructorKind s_transformStreamInternalsSetUpTransformStreamDefault const JSC::ImplementationVisibility s_transformStreamInternalsSetUpTransformStreamDefaultControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsSetUpTransformStreamDefaultControllerCodeLength = 294; static const JSC::Intrinsic s_transformStreamInternalsSetUpTransformStreamDefaultControllerCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsSetUpTransformStreamDefaultControllerCode = "(function (d,P,_,b){\"use strict\";@assert(@isTransformStream(d)),@assert(@getByIdDirectPrivate(d,\"controller\")===@undefined),@putByIdDirectPrivate(P,\"stream\",d),@putByIdDirectPrivate(d,\"controller\",P),@putByIdDirectPrivate(P,\"transformAlgorithm\",_),@putByIdDirectPrivate(P,\"flushAlgorithm\",b)})\n"; +const char* const s_transformStreamInternalsSetUpTransformStreamDefaultControllerCode = "(function (d,_,b,P){\"use strict\";@assert(@isTransformStream(d)),@assert(@getByIdDirectPrivate(d,\"controller\")===@undefined),@putByIdDirectPrivate(_,\"stream\",d),@putByIdDirectPrivate(d,\"controller\",_),@putByIdDirectPrivate(_,\"transformAlgorithm\",b),@putByIdDirectPrivate(_,\"flushAlgorithm\",P)})\n"; // setUpTransformStreamDefaultControllerFromTransformer const JSC::ConstructAbility s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -566,7 +566,7 @@ const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultContr const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCodeLength = 622; static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCode = "(function (S,W){\"use strict\";const f=@getByIdDirectPrivate(S,\"stream\"),g=@getByIdDirectPrivate(f,\"readable\"),i=@getByIdDirectPrivate(g,\"readableStreamController\");if(@assert(i!==@undefined),!@readableStreamDefaultControllerCanCloseOrEnqueue(i))@throwTypeError(\"TransformStream.readable cannot close or enqueue\");try{@readableStreamDefaultControllerEnqueue(i,W)}catch(j){throw @transformStreamErrorWritableAndUnblockWrite(f,j),@getByIdDirectPrivate(g,\"storedError\")}const _=!@readableStreamDefaultControllerShouldCallPull(i);if(_!==@getByIdDirectPrivate(f,\"backpressure\"))@assert(_),@transformStreamSetBackpressure(f,!0)})\n"; +const char* const s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCode = "(function (_,S){\"use strict\";const f=@getByIdDirectPrivate(_,\"stream\"),g=@getByIdDirectPrivate(f,\"readable\"),i=@getByIdDirectPrivate(g,\"readableStreamController\");if(@assert(i!==@undefined),!@readableStreamDefaultControllerCanCloseOrEnqueue(i))@throwTypeError(\"TransformStream.readable cannot close or enqueue\");try{@readableStreamDefaultControllerEnqueue(i,S)}catch(j){throw @transformStreamErrorWritableAndUnblockWrite(f,j),@getByIdDirectPrivate(g,\"storedError\")}const W=!@readableStreamDefaultControllerShouldCallPull(i);if(W!==@getByIdDirectPrivate(f,\"backpressure\"))@assert(W),@transformStreamSetBackpressure(f,!0)})\n"; // transformStreamDefaultControllerError const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultControllerErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -598,7 +598,7 @@ const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultSinkW const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeLength = 764; static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCode = "(function (d,v){\"use strict\";const f=@getByIdDirectPrivate(d,\"internalWritable\");@assert(@getByIdDirectPrivate(f,\"state\")===\"writable\");const j=@getByIdDirectPrivate(d,\"controller\");if(@getByIdDirectPrivate(d,\"backpressure\")){const x=@newPromiseCapability(@Promise),_=@getByIdDirectPrivate(d,\"backpressureChangePromise\");return @assert(_!==@undefined),_.@promise.@then(()=>{const z=@getByIdDirectPrivate(f,\"state\");if(z===\"erroring\"){x.@reject.@call(@undefined,@getByIdDirectPrivate(f,\"storedError\"));return}@assert(z===\"writable\"),@transformStreamDefaultControllerPerformTransform(j,v).@then(()=>{x.@resolve()},(q)=>{x.@reject.@call(@undefined,q)})},(z)=>{x.@reject.@call(@undefined,z)}),x.@promise}return @transformStreamDefaultControllerPerformTransform(j,v)})\n"; +const char* const s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCode = "(function (_,d){\"use strict\";const v=@getByIdDirectPrivate(_,\"internalWritable\");@assert(@getByIdDirectPrivate(v,\"state\")===\"writable\");const f=@getByIdDirectPrivate(_,\"controller\");if(@getByIdDirectPrivate(_,\"backpressure\")){const j=@newPromiseCapability(@Promise),q=@getByIdDirectPrivate(_,\"backpressureChangePromise\");return @assert(q!==@undefined),q.@promise.@then(()=>{const x=@getByIdDirectPrivate(v,\"state\");if(x===\"erroring\"){j.@reject.@call(@undefined,@getByIdDirectPrivate(v,\"storedError\"));return}@assert(x===\"writable\"),@transformStreamDefaultControllerPerformTransform(f,d).@then(()=>{j.@resolve()},(z)=>{j.@reject.@call(@undefined,z)})},(x)=>{j.@reject.@call(@undefined,x)}),j.@promise}return @transformStreamDefaultControllerPerformTransform(f,d)})\n"; // transformStreamDefaultSinkAbortAlgorithm const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -614,7 +614,7 @@ const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultSinkC const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCodeLength = 789; static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCode = "(function (_){\"use strict\";const I=@getByIdDirectPrivate(_,\"readable\"),k=@getByIdDirectPrivate(_,\"controller\"),f=@getByIdDirectPrivate(I,\"readableStreamController\"),u=@getByIdDirectPrivate(k,\"flushAlgorithm\");@assert(u!==@undefined);const v=@getByIdDirectPrivate(k,\"flushAlgorithm\").@call();@transformStreamDefaultControllerClearAlgorithms(k);const q=@newPromiseCapability(@Promise);return v.@then(()=>{if(@getByIdDirectPrivate(I,\"state\")===@streamErrored){q.@reject.@call(@undefined,@getByIdDirectPrivate(I,\"storedError\"));return}if(@readableStreamDefaultControllerCanCloseOrEnqueue(f))@readableStreamDefaultControllerClose(f);q.@resolve()},(j)=>{@transformStreamError(@getByIdDirectPrivate(k,\"stream\"),j),q.@reject.@call(@undefined,@getByIdDirectPrivate(I,\"storedError\"))}),q.@promise})\n"; +const char* const s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCode = "(function (_){\"use strict\";const q=@getByIdDirectPrivate(_,\"readable\"),I=@getByIdDirectPrivate(_,\"controller\"),f=@getByIdDirectPrivate(q,\"readableStreamController\"),j=@getByIdDirectPrivate(I,\"flushAlgorithm\");@assert(j!==@undefined);const k=@getByIdDirectPrivate(I,\"flushAlgorithm\").@call();@transformStreamDefaultControllerClearAlgorithms(I);const u=@newPromiseCapability(@Promise);return k.@then(()=>{if(@getByIdDirectPrivate(q,\"state\")===@streamErrored){u.@reject.@call(@undefined,@getByIdDirectPrivate(q,\"storedError\"));return}if(@readableStreamDefaultControllerCanCloseOrEnqueue(f))@readableStreamDefaultControllerClose(f);u.@resolve()},(v)=>{@transformStreamError(@getByIdDirectPrivate(I,\"stream\"),v),u.@reject.@call(@undefined,@getByIdDirectPrivate(q,\"storedError\"))}),u.@promise})\n"; // transformStreamDefaultSourcePullAlgorithm const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultSourcePullAlgorithmCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -656,7 +656,7 @@ const JSC::ConstructorKind s_processObjectInternalsGetStdinStreamCodeConstructor const JSC::ImplementationVisibility s_processObjectInternalsGetStdinStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_processObjectInternalsGetStdinStreamCodeLength = 1799; static const JSC::Intrinsic s_processObjectInternalsGetStdinStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_processObjectInternalsGetStdinStreamCode = "(function (Y,G,K){\"use strict\";var L={path:\"node:process\",require:G},M=(H)=>L.require(H),{Duplex:N,eos:P,destroy:Q}=M(\"node:stream\"),j=class H extends N{#Y;#$;#j;#z=!0;#G=!1;#H=!0;#I;#J;#K;get isTTY(){return M(\"tty\").isatty(Y)}get fd(){return Y}constructor(){super({readable:!0,writable:!0})}#L(T){const U=this.#J;if(this.#J=null,U)U(T);else if(T)this.destroy(T);else if(!this.#z&&!this.#H)this.destroy()}_destroy(T,U){if(!T&&this.#J!==null){var I=class z extends Error{constructor(J=\"The operation was aborted\",V=void 0){if(V!==void 0&&typeof V!==\"object\")throw new Error(`Invalid AbortError options:\\n\\n${JSON.stringify(V,null,2)}`);super(J,V);this.code=\"ABORT_ERR\",this.name=\"AbortError\"}};T=new I}if(this.#J===null)U(T);else if(this.#J=U,this.#j)Q(this.#j,T)}setRawMode(T){}on(T,U){if(T===\"readable\")this.ref(),this.#G=!0;return super.on(T,U)}pause(){return this.unref(),super.pause()}resume(){return this.ref(),super.resume()}ref(){this.#Y\?\?=K.stdin.stream().getReader(),this.#$\?\?=setInterval(()=>{},1<<30)}unref(){if(this.#$)clearInterval(this.#$),this.#$=null}async#M(){try{var T,U;const I=this.#Y.readMany();if(!I\?.then)({done:T,value:U}=I);else({done:T,value:U}=await I);if(!T){this.push(U[0]);const z=U.length;for(let J=1;J{if(this.#I){const I=this.#I;this.#I=null,I()}}),U.on(\"drain\",()=>{if(this.#K){const I=this.#K;this.#K=null,I()}}),P(U,(I)=>{if(this.#H=!1,I)Q(U,I);this.#L(I)}),U}_write(T,U,I){var z=this.#j;if(!z)z=this.#N();if(z.write(T,U))I();else this.#K=I}_final(T){this.#j.end(),this.#I=(...U)=>T(...U)}};return new j})\n"; +const char* const s_processObjectInternalsGetStdinStreamCode = "(function (Y,j,z){\"use strict\";var L={path:\"node:process\",require:j},G=(U)=>L.require(U),{Duplex:N,eos:H,destroy:Q}=G(\"node:stream\"),T=class U extends N{#Y;#$;#j;#z=!0;#G=!1;#H=!0;#I;#J;#K;get isTTY(){return G(\"tty\").isatty(Y)}get fd(){return Y}constructor(){super({readable:!0,writable:!0})}#L(P){const V=this.#J;if(this.#J=null,V)V(P);else if(P)this.destroy(P);else if(!this.#z&&!this.#H)this.destroy()}_destroy(P,V){if(!P&&this.#J!==null){var I=class J extends Error{constructor(K=\"The operation was aborted\",M=void 0){if(M!==void 0&&typeof M!==\"object\")throw new Error(`Invalid AbortError options:\\n\\n${JSON.stringify(M,null,2)}`);super(K,M);this.code=\"ABORT_ERR\",this.name=\"AbortError\"}};P=new I}if(this.#J===null)V(P);else if(this.#J=V,this.#j)Q(this.#j,P)}setRawMode(P){}on(P,V){if(P===\"readable\")this.ref(),this.#G=!0;return super.on(P,V)}pause(){return this.unref(),super.pause()}resume(){return this.ref(),super.resume()}ref(){this.#Y\?\?=z.stdin.stream().getReader(),this.#$\?\?=setInterval(()=>{},1<<30)}unref(){if(this.#$)clearInterval(this.#$),this.#$=null}async#M(){try{var P,V;const I=this.#Y.readMany();if(!I\?.then)({done:P,value:V}=I);else({done:P,value:V}=await I);if(!P){this.push(V[0]);const J=V.length;for(let K=1;K{if(this.#I){const I=this.#I;this.#I=null,I()}}),V.on(\"drain\",()=>{if(this.#K){const I=this.#K;this.#K=null,I()}}),H(V,(I)=>{if(this.#H=!1,I)Q(V,I);this.#L(I)}),V}_write(P,V,I){var J=this.#j;if(!J)J=this.#N();if(J.write(P,V))I();else this.#K=I}_final(P){this.#j.end(),this.#I=(...V)=>P(...V)}};return new T})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ @@ -674,7 +674,7 @@ const JSC::ConstructorKind s_transformStreamInitializeTransformStreamCodeConstru const JSC::ImplementationVisibility s_transformStreamInitializeTransformStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInitializeTransformStreamCodeLength = 1334; static const JSC::Intrinsic s_transformStreamInitializeTransformStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInitializeTransformStreamCode = "(function (){\"use strict\";let u=arguments[0];if(@isObject(u)&&@getByIdDirectPrivate(u,\"TransformStream\"))return this;let G=arguments[1],E=arguments[2];if(u===@undefined)u=null;if(E===@undefined)E={};if(G===@undefined)G={};let j={};if(u!==null){if(\"start\"in u){if(j[\"start\"]=u[\"start\"],typeof j[\"start\"]!==\"function\")@throwTypeError(\"transformer.start should be a function\")}if(\"transform\"in u){if(j[\"transform\"]=u[\"transform\"],typeof j[\"transform\"]!==\"function\")@throwTypeError(\"transformer.transform should be a function\")}if(\"flush\"in u){if(j[\"flush\"]=u[\"flush\"],typeof j[\"flush\"]!==\"function\")@throwTypeError(\"transformer.flush should be a function\")}if(\"readableType\"in u)@throwRangeError(\"TransformStream transformer has a readableType\");if(\"writableType\"in u)@throwRangeError(\"TransformStream transformer has a writableType\")}const q=@extractHighWaterMark(E,0),J=@extractSizeAlgorithm(E),_=@extractHighWaterMark(G,1),v=@extractSizeAlgorithm(G),x=@newPromiseCapability(@Promise);if(@initializeTransformStream(this,x.@promise,_,v,q,J),@setUpTransformStreamDefaultControllerFromTransformer(this,u,j),(\"start\"in j)){const I=@getByIdDirectPrivate(this,\"controller\");(()=>@promiseInvokeOrNoopMethodNoCatch(u,j[\"start\"],[I]))().@then(()=>{x.@resolve.@call()},(B)=>{x.@reject.@call(@undefined,B)})}else x.@resolve.@call();return this})\n"; +const char* const s_transformStreamInitializeTransformStreamCode = "(function (){\"use strict\";let u=arguments[0];if(@isObject(u)&&@getByIdDirectPrivate(u,\"TransformStream\"))return this;let j=arguments[1],q=arguments[2];if(u===@undefined)u=null;if(q===@undefined)q={};if(j===@undefined)j={};let F={};if(u!==null){if(\"start\"in u){if(F[\"start\"]=u[\"start\"],typeof F[\"start\"]!==\"function\")@throwTypeError(\"transformer.start should be a function\")}if(\"transform\"in u){if(F[\"transform\"]=u[\"transform\"],typeof F[\"transform\"]!==\"function\")@throwTypeError(\"transformer.transform should be a function\")}if(\"flush\"in u){if(F[\"flush\"]=u[\"flush\"],typeof F[\"flush\"]!==\"function\")@throwTypeError(\"transformer.flush should be a function\")}if(\"readableType\"in u)@throwRangeError(\"TransformStream transformer has a readableType\");if(\"writableType\"in u)@throwRangeError(\"TransformStream transformer has a writableType\")}const v=@extractHighWaterMark(q,0),G=@extractSizeAlgorithm(q),x=@extractHighWaterMark(j,1),I=@extractSizeAlgorithm(j),B=@newPromiseCapability(@Promise);if(@initializeTransformStream(this,B.@promise,x,I,v,G),@setUpTransformStreamDefaultControllerFromTransformer(this,u,F),(\"start\"in F)){const J=@getByIdDirectPrivate(this,\"controller\");(()=>@promiseInvokeOrNoopMethodNoCatch(u,F[\"start\"],[J]))().@then(()=>{B.@resolve.@call()},(_)=>{B.@reject.@call(@undefined,_)})}else B.@resolve.@call();return this})\n"; // readable const JSC::ConstructAbility s_transformStreamReadableCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -701,6 +701,40 @@ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ WEBCORE_FOREACH_TRANSFORMSTREAM_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR) #undef DEFINE_BUILTIN_GENERATOR +/* Module.ts */ +// main +const JSC::ConstructAbility s_moduleMainCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; +const JSC::ConstructorKind s_moduleMainCodeConstructorKind = JSC::ConstructorKind::None; +const JSC::ImplementationVisibility s_moduleMainCodeImplementationVisibility = JSC::ImplementationVisibility::Public; +const int s_moduleMainCodeLength = 63; +static const JSC::Intrinsic s_moduleMainCodeIntrinsic = JSC::NoIntrinsic; +const char* const s_moduleMainCode = "(function (){\"use strict\";return @requireMap.@get(@Bun.main)})\n"; + +// require +const JSC::ConstructAbility s_moduleRequireCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; +const JSC::ConstructorKind s_moduleRequireCodeConstructorKind = JSC::ConstructorKind::None; +const JSC::ImplementationVisibility s_moduleRequireCodeImplementationVisibility = JSC::ImplementationVisibility::Public; +const int s_moduleRequireCodeLength = 871; +static const JSC::Intrinsic s_moduleRequireCodeIntrinsic = JSC::NoIntrinsic; +const char* const s_moduleRequireCode = "(function (_){\"use strict\";const y=@requireMap.@get(_)||@requireMap.@get(_=@resolveSync(_,this.path,!1));if(y)return @evaluateCommonJSModule(y),y.exports;if(_.endsWith(\".json\")||_.endsWith(\".toml\")||_.endsWith(\".node\"))return @internalRequire(_);let M=@Loader.registry.@get(_);if(M\?.evaluated){const h=M.module,l=@Loader.getModuleNamespaceObject(h),r=l\?.[@commonJSSymbol]===0||l\?.default\?.[@commonJSSymbol]===0\?l.default:l;return @requireMap.@set(_,@createCommonJSModule(_,r,!0)),r}const b=@createCommonJSModule(_,{},!1);@requireMap.@set(_,b);var f=this.@require(_,b);if(f===-1){try{f=@requireESM(_)}catch(h){throw @requireMap.@delete(_),h}if(M=@Loader.registry.@get(_),M\?.evaluated){const h=@Loader.getModuleNamespaceObject(M.module);return b.exports=h\?.[@commonJSSymbol]===0||h\?.default\?.[@commonJSSymbol]===0\?h.default:h}}return @evaluateCommonJSModule(b),b.exports})\n"; + +// requireResolve +const JSC::ConstructAbility s_moduleRequireResolveCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; +const JSC::ConstructorKind s_moduleRequireResolveCodeConstructorKind = JSC::ConstructorKind::None; +const JSC::ImplementationVisibility s_moduleRequireResolveCodeImplementationVisibility = JSC::ImplementationVisibility::Public; +const int s_moduleRequireResolveCodeLength = 65; +static const JSC::Intrinsic s_moduleRequireResolveCodeIntrinsic = JSC::NoIntrinsic; +const char* const s_moduleRequireResolveCode = "(function (n){\"use strict\";return @resolveSync(n,this.path,!1)})\n"; + +#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ +JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ +{\ + JSVMClientData* clientData = static_cast(vm.clientData); \ + return clientData->builtinFunctions().moduleBuiltins().codeName##Executable()->link(vm, nullptr, clientData->builtinFunctions().moduleBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \ +} +WEBCORE_FOREACH_MODULE_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR) +#undef DEFINE_BUILTIN_GENERATOR + /* JSBufferPrototype.ts */ // setBigUint64 const JSC::ConstructAbility s_jsBufferPrototypeSetBigUint64CodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -900,7 +934,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteUInt8CodeConstructorKind = JS const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUInt8CodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteUInt8CodeLength = 132; static const JSC::Intrinsic s_jsBufferPrototypeWriteUInt8CodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteUInt8Code = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint8(c,d),c+1})\n"; +const char* const s_jsBufferPrototypeWriteUInt8Code = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint8(d,c),d+1})\n"; // writeInt16LE const JSC::ConstructAbility s_jsBufferPrototypeWriteInt16LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -948,7 +982,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteInt32BECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteInt32BECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteInt32BECodeLength = 135; static const JSC::Intrinsic s_jsBufferPrototypeWriteInt32BECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteInt32BECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt32(d,c,!1),d+4})\n"; +const char* const s_jsBufferPrototypeWriteInt32BECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt32(c,d,!1),c+4})\n"; // writeUInt32LE const JSC::ConstructAbility s_jsBufferPrototypeWriteUInt32LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -956,7 +990,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteUInt32LECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUInt32LECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteUInt32LECodeLength = 136; static const JSC::Intrinsic s_jsBufferPrototypeWriteUInt32LECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteUInt32LECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint32(c,d,!0),c+4})\n"; +const char* const s_jsBufferPrototypeWriteUInt32LECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint32(d,c,!0),d+4})\n"; // writeUInt32BE const JSC::ConstructAbility s_jsBufferPrototypeWriteUInt32BECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -972,7 +1006,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteIntLECodeConstructorKind = JS const JSC::ImplementationVisibility s_jsBufferPrototypeWriteIntLECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteIntLECodeLength = 573; static const JSC::Intrinsic s_jsBufferPrototypeWriteIntLECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteIntLECode = "(function (c,j,r){\"use strict\";const d=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(r){case 1:{d.setInt8(j,c);break}case 2:{d.setInt16(j,c,!0);break}case 3:{d.setUint16(j,c&65535,!0),d.setInt8(j+2,Math.floor(c*0.0000152587890625));break}case 4:{d.setInt32(j,c,!0);break}case 5:{d.setUint32(j,c|0,!0),d.setInt8(j+4,Math.floor(c*0.00000000023283064365386964));break}case 6:{d.setUint32(j,c|0,!0),d.setInt16(j+4,Math.floor(c*0.00000000023283064365386964),!0);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return j+r})\n"; +const char* const s_jsBufferPrototypeWriteIntLECode = "(function (d,r,c){\"use strict\";const j=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(c){case 1:{j.setInt8(r,d);break}case 2:{j.setInt16(r,d,!0);break}case 3:{j.setUint16(r,d&65535,!0),j.setInt8(r+2,Math.floor(d*0.0000152587890625));break}case 4:{j.setInt32(r,d,!0);break}case 5:{j.setUint32(r,d|0,!0),j.setInt8(r+4,Math.floor(d*0.00000000023283064365386964));break}case 6:{j.setUint32(r,d|0,!0),j.setInt16(r+4,Math.floor(d*0.00000000023283064365386964),!0);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return r+c})\n"; // writeIntBE const JSC::ConstructAbility s_jsBufferPrototypeWriteIntBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -980,7 +1014,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteIntBECodeConstructorKind = JS const JSC::ImplementationVisibility s_jsBufferPrototypeWriteIntBECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteIntBECodeLength = 573; static const JSC::Intrinsic s_jsBufferPrototypeWriteIntBECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteIntBECode = "(function (r,E,c){\"use strict\";const d=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(c){case 1:{d.setInt8(E,r);break}case 2:{d.setInt16(E,r,!1);break}case 3:{d.setUint16(E+1,r&65535,!1),d.setInt8(E,Math.floor(r*0.0000152587890625));break}case 4:{d.setInt32(E,r,!1);break}case 5:{d.setUint32(E+1,r|0,!1),d.setInt8(E,Math.floor(r*0.00000000023283064365386964));break}case 6:{d.setUint32(E+2,r|0,!1),d.setInt16(E,Math.floor(r*0.00000000023283064365386964),!1);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return E+c})\n"; +const char* const s_jsBufferPrototypeWriteIntBECode = "(function (d,r,E){\"use strict\";const c=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(E){case 1:{c.setInt8(r,d);break}case 2:{c.setInt16(r,d,!1);break}case 3:{c.setUint16(r+1,d&65535,!1),c.setInt8(r,Math.floor(d*0.0000152587890625));break}case 4:{c.setInt32(r,d,!1);break}case 5:{c.setUint32(r+1,d|0,!1),c.setInt8(r,Math.floor(d*0.00000000023283064365386964));break}case 6:{c.setUint32(r+2,d|0,!1),c.setInt16(r,Math.floor(d*0.00000000023283064365386964),!1);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return r+E})\n"; // writeUIntLE const JSC::ConstructAbility s_jsBufferPrototypeWriteUIntLECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -988,7 +1022,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteUIntLECodeConstructorKind = J const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUIntLECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteUIntLECodeLength = 579; static const JSC::Intrinsic s_jsBufferPrototypeWriteUIntLECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteUIntLECode = "(function (d,c,r){\"use strict\";const E=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(r){case 1:{E.setUint8(c,d);break}case 2:{E.setUint16(c,d,!0);break}case 3:{E.setUint16(c,d&65535,!0),E.setUint8(c+2,Math.floor(d*0.0000152587890625));break}case 4:{E.setUint32(c,d,!0);break}case 5:{E.setUint32(c,d|0,!0),E.setUint8(c+4,Math.floor(d*0.00000000023283064365386964));break}case 6:{E.setUint32(c,d|0,!0),E.setUint16(c+4,Math.floor(d*0.00000000023283064365386964),!0);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return c+r})\n"; +const char* const s_jsBufferPrototypeWriteUIntLECode = "(function (d,r,E){\"use strict\";const c=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(E){case 1:{c.setUint8(r,d);break}case 2:{c.setUint16(r,d,!0);break}case 3:{c.setUint16(r,d&65535,!0),c.setUint8(r+2,Math.floor(d*0.0000152587890625));break}case 4:{c.setUint32(r,d,!0);break}case 5:{c.setUint32(r,d|0,!0),c.setUint8(r+4,Math.floor(d*0.00000000023283064365386964));break}case 6:{c.setUint32(r,d|0,!0),c.setUint16(r+4,Math.floor(d*0.00000000023283064365386964),!0);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return r+E})\n"; // writeUIntBE const JSC::ConstructAbility s_jsBufferPrototypeWriteUIntBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1044,7 +1078,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteBigInt64BECodeConstructorKind const JSC::ImplementationVisibility s_jsBufferPrototypeWriteBigInt64BECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteBigInt64BECodeLength = 138; static const JSC::Intrinsic s_jsBufferPrototypeWriteBigInt64BECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteBigInt64BECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setBigInt64(c,d,!1),c+8})\n"; +const char* const s_jsBufferPrototypeWriteBigInt64BECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setBigInt64(d,c,!1),d+8})\n"; // writeBigUInt64LE const JSC::ConstructAbility s_jsBufferPrototypeWriteBigUInt64LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1108,7 +1142,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeBase64WriteCodeConstructorKind = J const JSC::ImplementationVisibility s_jsBufferPrototypeBase64WriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeBase64WriteCodeLength = 67; static const JSC::Intrinsic s_jsBufferPrototypeBase64WriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeBase64WriteCode = "(function (a,d,r){\"use strict\";return this.write(a,d,r,\"base64\")})\n"; +const char* const s_jsBufferPrototypeBase64WriteCode = "(function (a,r,d){\"use strict\";return this.write(a,r,d,\"base64\")})\n"; // base64urlWrite const JSC::ConstructAbility s_jsBufferPrototypeBase64urlWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1164,7 +1198,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeAsciiSliceCodeConstructorKind = JS const JSC::ImplementationVisibility s_jsBufferPrototypeAsciiSliceCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeAsciiSliceCodeLength = 65; static const JSC::Intrinsic s_jsBufferPrototypeAsciiSliceCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeAsciiSliceCode = "(function (d,r){\"use strict\";return this.toString(d,r,\"ascii\")})\n"; +const char* const s_jsBufferPrototypeAsciiSliceCode = "(function (r,d){\"use strict\";return this.toString(r,d,\"ascii\")})\n"; // base64Slice const JSC::ConstructAbility s_jsBufferPrototypeBase64SliceCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1278,7 +1312,7 @@ const JSC::ConstructorKind s_readableByteStreamControllerByobRequestCodeConstruc const JSC::ImplementationVisibility s_readableByteStreamControllerByobRequestCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamControllerByobRequestCodeLength = 523; static const JSC::Intrinsic s_readableByteStreamControllerByobRequestCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamControllerByobRequestCode = "(function (){\"use strict\";if(!@isReadableByteStreamController(this))throw @makeGetterTypeError(\"ReadableByteStreamController\",\"byobRequest\");var _=@getByIdDirectPrivate(this,\"byobRequest\");if(_===@undefined){var a=@getByIdDirectPrivate(this,\"pendingPullIntos\");const l=a.peek();if(l){const m=new @Uint8Array(l.buffer,l.byteOffset+l.bytesFilled,l.byteLength-l.bytesFilled);@putByIdDirectPrivate(this,\"byobRequest\",new @ReadableStreamBYOBRequest(this,m,@isReadableStream))}}return @getByIdDirectPrivate(this,\"byobRequest\")})\n"; +const char* const s_readableByteStreamControllerByobRequestCode = "(function (){\"use strict\";if(!@isReadableByteStreamController(this))throw @makeGetterTypeError(\"ReadableByteStreamController\",\"byobRequest\");var _=@getByIdDirectPrivate(this,\"byobRequest\");if(_===@undefined){var m=@getByIdDirectPrivate(this,\"pendingPullIntos\");const a=m.peek();if(a){const l=new @Uint8Array(a.buffer,a.byteOffset+a.bytesFilled,a.byteLength-a.bytesFilled);@putByIdDirectPrivate(this,\"byobRequest\",new @ReadableStreamBYOBRequest(this,l,@isReadableStream))}}return @getByIdDirectPrivate(this,\"byobRequest\")})\n"; // desiredSize const JSC::ConstructAbility s_readableByteStreamControllerDesiredSizeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1304,7 +1338,7 @@ const JSC::ConstructorKind s_consoleObjectAsyncIteratorCodeConstructorKind = JSC const JSC::ImplementationVisibility s_consoleObjectAsyncIteratorCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_consoleObjectAsyncIteratorCodeLength = 577; static const JSC::Intrinsic s_consoleObjectAsyncIteratorCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_consoleObjectAsyncIteratorCode = "(function (){\"use strict\";const j=async function*q(){var D=@Bun.stdin.stream().getReader(),F=new globalThis.TextDecoder(\"utf-8\",{fatal:!1}),G,H=@Bun.indexOfLine;try{while(!0){var J,K,w;const L=D.readMany();if(@isPromise(L))({done:J,value:K}=await L);else({done:J,value:K}=L);if(J){if(w)yield F.decode(w);return}var _;for(let M of K){if(_=M,w)_=@Buffer.concat([w,M]),w=null;var z=0,A=H(_,z);while(A!==-1)yield F.decode(_.subarray(z,A)),z=A+1,A=H(_,z);w=_.subarray(z)}}}catch(L){G=L}finally{if(D.releaseLock(),G)throw G}},m=globalThis.Symbol.asyncIterator;return this[m]=j,j()})\n"; +const char* const s_consoleObjectAsyncIteratorCode = "(function (){\"use strict\";const w=async function*_(){var A=@Bun.stdin.stream().getReader(),F=new globalThis.TextDecoder(\"utf-8\",{fatal:!1}),H,J=@Bun.indexOfLine;try{while(!0){var K,m,L;const D=A.readMany();if(@isPromise(D))({done:K,value:m}=await D);else({done:K,value:m}=D);if(K){if(L)yield F.decode(L);return}var M;for(let z of m){if(M=z,L)M=@Buffer.concat([L,z]),L=null;var q=0,B=J(M,q);while(B!==-1)yield F.decode(M.subarray(q,B)),q=B+1,B=J(M,q);L=M.subarray(q)}}}catch(D){H=D}finally{if(A.releaseLock(),H)throw H}},G=globalThis.Symbol.asyncIterator;return this[G]=w,w()})\n"; // write const JSC::ConstructAbility s_consoleObjectWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1370,7 +1404,7 @@ const JSC::ConstructorKind s_readableStreamInternalsSetupReadableStreamDefaultCo const JSC::ImplementationVisibility s_readableStreamInternalsSetupReadableStreamDefaultControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsSetupReadableStreamDefaultControllerCodeLength = 523; static const JSC::Intrinsic s_readableStreamInternalsSetupReadableStreamDefaultControllerCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsSetupReadableStreamDefaultControllerCode = "(function (_,w,f,b,q,v,x){\"use strict\";const B=new @ReadableStreamDefaultController(_,w,f,b,@isReadableStream),C=()=>@promiseInvokeOrNoopMethod(w,v,[B]),j=(D)=>@promiseInvokeOrNoopMethod(w,x,[D]);@putByIdDirectPrivate(B,\"pullAlgorithm\",C),@putByIdDirectPrivate(B,\"cancelAlgorithm\",j),@putByIdDirectPrivate(B,\"pull\",@readableStreamDefaultControllerPull),@putByIdDirectPrivate(B,\"cancel\",@readableStreamDefaultControllerCancel),@putByIdDirectPrivate(_,\"readableStreamController\",B),@readableStreamDefaultControllerStart(B)})\n"; +const char* const s_readableStreamInternalsSetupReadableStreamDefaultControllerCode = "(function (b,j,v,w,_,x,f){\"use strict\";const B=new @ReadableStreamDefaultController(b,j,v,w,@isReadableStream),C=()=>@promiseInvokeOrNoopMethod(j,x,[B]),D=(q)=>@promiseInvokeOrNoopMethod(j,f,[q]);@putByIdDirectPrivate(B,\"pullAlgorithm\",C),@putByIdDirectPrivate(B,\"cancelAlgorithm\",D),@putByIdDirectPrivate(B,\"pull\",@readableStreamDefaultControllerPull),@putByIdDirectPrivate(B,\"cancel\",@readableStreamDefaultControllerCancel),@putByIdDirectPrivate(b,\"readableStreamController\",B),@readableStreamDefaultControllerStart(B)})\n"; // createReadableStreamController const JSC::ConstructAbility s_readableStreamInternalsCreateReadableStreamControllerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1386,7 +1420,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControl const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerStartCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamDefaultControllerStartCodeLength = 465; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultControllerStartCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamDefaultControllerStartCode = "(function (m){\"use strict\";if(@getByIdDirectPrivate(m,\"started\")!==-1)return;const B=@getByIdDirectPrivate(m,\"underlyingSource\"),a=B.start;@putByIdDirectPrivate(m,\"started\",0),@promiseInvokeOrNoopMethodNoCatch(B,a,[m]).@then(()=>{@putByIdDirectPrivate(m,\"started\",1),@assert(!@getByIdDirectPrivate(m,\"pulling\")),@assert(!@getByIdDirectPrivate(m,\"pullAgain\")),@readableStreamDefaultControllerCallPullIfNeeded(m)},(p)=>{@readableStreamDefaultControllerError(m,p)})})\n"; +const char* const s_readableStreamInternalsReadableStreamDefaultControllerStartCode = "(function (m){\"use strict\";if(@getByIdDirectPrivate(m,\"started\")!==-1)return;const B=@getByIdDirectPrivate(m,\"underlyingSource\"),p=B.start;@putByIdDirectPrivate(m,\"started\",0),@promiseInvokeOrNoopMethodNoCatch(B,p,[m]).@then(()=>{@putByIdDirectPrivate(m,\"started\",1),@assert(!@getByIdDirectPrivate(m,\"pulling\")),@assert(!@getByIdDirectPrivate(m,\"pullAgain\")),@readableStreamDefaultControllerCallPullIfNeeded(m)},(a)=>{@readableStreamDefaultControllerError(m,a)})})\n"; // readableStreamPipeToWritableStream const JSC::ConstructAbility s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1394,7 +1428,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamPipeToWritable const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeLength = 1631; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamPipeToWritableStreamCode = "(function (f,k,D,q,w,x){\"use strict\";if(@assert(@isReadableStream(f)),@assert(@isWritableStream(k)),@assert(!@isReadableStreamLocked(f)),@assert(!@isWritableStreamLocked(k)),@assert(x===@undefined||@isAbortSignal(x)),@getByIdDirectPrivate(f,\"underlyingByteSource\")!==@undefined)return @Promise.@reject(\"Piping to a readable bytestream is not supported\");let z={source:f,destination:k,preventAbort:q,preventCancel:w,preventClose:D,signal:x};if(z.reader=@acquireReadableStreamDefaultReader(f),z.writer=@acquireWritableStreamDefaultWriter(k),@putByIdDirectPrivate(f,\"disturbed\",!0),z.finalized=!1,z.shuttingDown=!1,z.promiseCapability=@newPromiseCapability(@Promise),z.pendingReadPromiseCapability=@newPromiseCapability(@Promise),z.pendingReadPromiseCapability.@resolve.@call(),z.pendingWritePromise=@Promise.@resolve(),x!==@undefined){const B=(F)=>{if(z.finalized)return;@pipeToShutdownWithAction(z,()=>{const _=!z.preventAbort&&@getByIdDirectPrivate(z.destination,\"state\")===\"writable\"\?@writableStreamAbort(z.destination,F):@Promise.@resolve(),H=!z.preventCancel&&@getByIdDirectPrivate(z.source,\"state\")===@streamReadable\?@readableStreamCancel(z.source,F):@Promise.@resolve();let E=@newPromiseCapability(@Promise),I=!0,J=()=>{if(I){I=!1;return}E.@resolve.@call()},K=(L)=>{E.@reject.@call(@undefined,L)};return _.@then(J,K),H.@then(J,K),E.@promise},F)};if(@whenSignalAborted(x,B))return z.promiseCapability.@promise}return @pipeToErrorsMustBePropagatedForward(z),@pipeToErrorsMustBePropagatedBackward(z),@pipeToClosingMustBePropagatedForward(z),@pipeToClosingMustBePropagatedBackward(z),@pipeToLoop(z),z.promiseCapability.@promise})\n"; +const char* const s_readableStreamInternalsReadableStreamPipeToWritableStreamCode = "(function (_,z,k,f,q,B){\"use strict\";if(@assert(@isReadableStream(_)),@assert(@isWritableStream(z)),@assert(!@isReadableStreamLocked(_)),@assert(!@isWritableStreamLocked(z)),@assert(B===@undefined||@isAbortSignal(B)),@getByIdDirectPrivate(_,\"underlyingByteSource\")!==@undefined)return @Promise.@reject(\"Piping to a readable bytestream is not supported\");let H={source:_,destination:z,preventAbort:f,preventCancel:q,preventClose:k,signal:B};if(H.reader=@acquireReadableStreamDefaultReader(_),H.writer=@acquireWritableStreamDefaultWriter(z),@putByIdDirectPrivate(_,\"disturbed\",!0),H.finalized=!1,H.shuttingDown=!1,H.promiseCapability=@newPromiseCapability(@Promise),H.pendingReadPromiseCapability=@newPromiseCapability(@Promise),H.pendingReadPromiseCapability.@resolve.@call(),H.pendingWritePromise=@Promise.@resolve(),B!==@undefined){const I=(J)=>{if(H.finalized)return;@pipeToShutdownWithAction(H,()=>{const K=!H.preventAbort&&@getByIdDirectPrivate(H.destination,\"state\")===\"writable\"\?@writableStreamAbort(H.destination,J):@Promise.@resolve(),E=!H.preventCancel&&@getByIdDirectPrivate(H.source,\"state\")===@streamReadable\?@readableStreamCancel(H.source,J):@Promise.@resolve();let w=@newPromiseCapability(@Promise),x=!0,T=()=>{if(x){x=!1;return}w.@resolve.@call()},F=(G)=>{w.@reject.@call(@undefined,G)};return K.@then(T,F),E.@then(T,F),w.@promise},J)};if(@whenSignalAborted(B,I))return H.promiseCapability.@promise}return @pipeToErrorsMustBePropagatedForward(H),@pipeToErrorsMustBePropagatedBackward(H),@pipeToClosingMustBePropagatedForward(H),@pipeToClosingMustBePropagatedBackward(H),@pipeToLoop(H),H.promiseCapability.@promise})\n"; // pipeToLoop const JSC::ConstructAbility s_readableStreamInternalsPipeToLoopCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1410,7 +1444,7 @@ const JSC::ConstructorKind s_readableStreamInternalsPipeToDoReadWriteCodeConstru const JSC::ImplementationVisibility s_readableStreamInternalsPipeToDoReadWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsPipeToDoReadWriteCodeLength = 731; static const JSC::Intrinsic s_readableStreamInternalsPipeToDoReadWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsPipeToDoReadWriteCode = "(function (_){\"use strict\";return @assert(!_.shuttingDown),_.pendingReadPromiseCapability=@newPromiseCapability(@Promise),@getByIdDirectPrivate(_.writer,\"readyPromise\").@promise.@then(()=>{if(_.shuttingDown){_.pendingReadPromiseCapability.@resolve.@call(@undefined,!1);return}@readableStreamDefaultReaderRead(_.reader).@then((m)=>{const d=!m.done&&@getByIdDirectPrivate(_.writer,\"stream\")!==@undefined;if(_.pendingReadPromiseCapability.@resolve.@call(@undefined,d),!d)return;_.pendingWritePromise=@writableStreamDefaultWriterWrite(_.writer,m.value)},(m)=>{_.pendingReadPromiseCapability.@resolve.@call(@undefined,!1)})},(m)=>{_.pendingReadPromiseCapability.@resolve.@call(@undefined,!1)}),_.pendingReadPromiseCapability.@promise})\n"; +const char* const s_readableStreamInternalsPipeToDoReadWriteCode = "(function (m){\"use strict\";return @assert(!m.shuttingDown),m.pendingReadPromiseCapability=@newPromiseCapability(@Promise),@getByIdDirectPrivate(m.writer,\"readyPromise\").@promise.@then(()=>{if(m.shuttingDown){m.pendingReadPromiseCapability.@resolve.@call(@undefined,!1);return}@readableStreamDefaultReaderRead(m.reader).@then((_)=>{const d=!_.done&&@getByIdDirectPrivate(m.writer,\"stream\")!==@undefined;if(m.pendingReadPromiseCapability.@resolve.@call(@undefined,d),!d)return;m.pendingWritePromise=@writableStreamDefaultWriterWrite(m.writer,_.value)},(_)=>{m.pendingReadPromiseCapability.@resolve.@call(@undefined,!1)})},(_)=>{m.pendingReadPromiseCapability.@resolve.@call(@undefined,!1)}),m.pendingReadPromiseCapability.@promise})\n"; // pipeToErrorsMustBePropagatedForward const JSC::ConstructAbility s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1418,7 +1452,7 @@ const JSC::ConstructorKind s_readableStreamInternalsPipeToErrorsMustBePropagated const JSC::ImplementationVisibility s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCodeLength = 438; static const JSC::Intrinsic s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCode = "(function (_){\"use strict\";const b=()=>{_.pendingReadPromiseCapability.@resolve.@call(@undefined,!1);const d=@getByIdDirectPrivate(_.source,\"storedError\");if(!_.preventAbort){@pipeToShutdownWithAction(_,()=>@writableStreamAbort(_.destination,d),d);return}@pipeToShutdown(_,d)};if(@getByIdDirectPrivate(_.source,\"state\")===@streamErrored){b();return}@getByIdDirectPrivate(_.reader,\"closedPromiseCapability\").@promise.@then(@undefined,b)})\n"; +const char* const s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCode = "(function (d){\"use strict\";const _=()=>{d.pendingReadPromiseCapability.@resolve.@call(@undefined,!1);const b=@getByIdDirectPrivate(d.source,\"storedError\");if(!d.preventAbort){@pipeToShutdownWithAction(d,()=>@writableStreamAbort(d.destination,b),b);return}@pipeToShutdown(d,b)};if(@getByIdDirectPrivate(d.source,\"state\")===@streamErrored){_();return}@getByIdDirectPrivate(d.reader,\"closedPromiseCapability\").@promise.@then(@undefined,_)})\n"; // pipeToErrorsMustBePropagatedBackward const JSC::ConstructAbility s_readableStreamInternalsPipeToErrorsMustBePropagatedBackwardCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1450,7 +1484,7 @@ const JSC::ConstructorKind s_readableStreamInternalsPipeToShutdownWithActionCode const JSC::ImplementationVisibility s_readableStreamInternalsPipeToShutdownWithActionCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsPipeToShutdownWithActionCodeLength = 458; static const JSC::Intrinsic s_readableStreamInternalsPipeToShutdownWithActionCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsPipeToShutdownWithActionCode = "(function (m,b){\"use strict\";if(m.shuttingDown)return;m.shuttingDown=!0;const d=arguments.length>2,g=arguments[2],h=()=>{b().@then(()=>{if(d)@pipeToFinalize(m,g);else @pipeToFinalize(m)},(j)=>{@pipeToFinalize(m,j)})};if(@getByIdDirectPrivate(m.destination,\"state\")===\"writable\"&&!@writableStreamCloseQueuedOrInFlight(m.destination)){m.pendingReadPromiseCapability.@promise.@then(()=>{m.pendingWritePromise.@then(h,h)},(_)=>@pipeToFinalize(m,_));return}h()})\n"; +const char* const s_readableStreamInternalsPipeToShutdownWithActionCode = "(function (_,m){\"use strict\";if(_.shuttingDown)return;_.shuttingDown=!0;const b=arguments.length>2,d=arguments[2],g=()=>{m().@then(()=>{if(b)@pipeToFinalize(_,d);else @pipeToFinalize(_)},(j)=>{@pipeToFinalize(_,j)})};if(@getByIdDirectPrivate(_.destination,\"state\")===\"writable\"&&!@writableStreamCloseQueuedOrInFlight(_.destination)){_.pendingReadPromiseCapability.@promise.@then(()=>{_.pendingWritePromise.@then(g,g)},(h)=>@pipeToFinalize(_,h));return}g()})\n"; // pipeToShutdown const JSC::ConstructAbility s_readableStreamInternalsPipeToShutdownCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1482,7 +1516,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamTeePullFunctio const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamTeePullFunctionCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamTeePullFunctionCodeLength = 764; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamTeePullFunctionCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamTeePullFunctionCode = "(function (i,_,f){\"use strict\";return function(){@Promise.prototype.@then.@call(@readableStreamDefaultReaderRead(_),function(m){if(@assert(@isObject(m)),@assert(typeof m.done===\"boolean\"),m.done&&!i.closedOrErrored){if(!i.canceled1)@readableStreamDefaultControllerClose(i.branch1.@readableStreamController);if(!i.canceled2)@readableStreamDefaultControllerClose(i.branch2.@readableStreamController);if(i.closedOrErrored=!0,!i.canceled1||!i.canceled2)i.cancelPromiseCapability.@resolve.@call()}if(i.closedOrErrored)return;if(!i.canceled1)@readableStreamDefaultControllerEnqueue(i.branch1.@readableStreamController,m.value);if(!i.canceled2)@readableStreamDefaultControllerEnqueue(i.branch2.@readableStreamController,f\?@structuredCloneForStream(m.value):m.value)})}})\n"; +const char* const s_readableStreamInternalsReadableStreamTeePullFunctionCode = "(function (i,f,m){\"use strict\";return function(){@Promise.prototype.@then.@call(@readableStreamDefaultReaderRead(f),function(_){if(@assert(@isObject(_)),@assert(typeof _.done===\"boolean\"),_.done&&!i.closedOrErrored){if(!i.canceled1)@readableStreamDefaultControllerClose(i.branch1.@readableStreamController);if(!i.canceled2)@readableStreamDefaultControllerClose(i.branch2.@readableStreamController);if(i.closedOrErrored=!0,!i.canceled1||!i.canceled2)i.cancelPromiseCapability.@resolve.@call()}if(i.closedOrErrored)return;if(!i.canceled1)@readableStreamDefaultControllerEnqueue(i.branch1.@readableStreamController,_.value);if(!i.canceled2)@readableStreamDefaultControllerEnqueue(i.branch2.@readableStreamController,m\?@structuredCloneForStream(_.value):_.value)})}})\n"; // readableStreamTeeBranch1CancelFunction const JSC::ConstructAbility s_readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1530,7 +1564,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadDirectStreamCodeConstruc const JSC::ImplementationVisibility s_readableStreamInternalsReadDirectStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadDirectStreamCodeLength = 900; static const JSC::Intrinsic s_readableStreamInternalsReadDirectStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadDirectStreamCode = "(function (j,w,_){\"use strict\";@putByIdDirectPrivate(j,\"underlyingSource\",@undefined),@putByIdDirectPrivate(j,\"start\",@undefined);function x(q,A){if(A&&_\?.cancel){try{var B=_.cancel(A);@markPromiseAsHandled(B)}catch(v){}_=@undefined}if(q){if(@putByIdDirectPrivate(q,\"readableStreamController\",@undefined),@putByIdDirectPrivate(q,\"reader\",@undefined),A)@putByIdDirectPrivate(q,\"state\",@streamErrored),@putByIdDirectPrivate(q,\"storedError\",A);else @putByIdDirectPrivate(q,\"state\",@streamClosed);q=@undefined}}if(!_.pull){x();return}if(!@isCallable(_.pull)){x(),@throwTypeError(\"pull is not a function\");return}@putByIdDirectPrivate(j,\"readableStreamController\",w);const f=@getByIdDirectPrivate(j,\"highWaterMark\");w.start({highWaterMark:!f||f<64\?64:f}),@startDirectStream.@call(w,j,_.pull,x),@putByIdDirectPrivate(j,\"reader\",{});var z=_.pull(w);if(w=@undefined,z&&@isPromise(z))return z.@then(()=>{})})\n"; +const char* const s_readableStreamInternalsReadDirectStreamCode = "(function (_,f,j){\"use strict\";@putByIdDirectPrivate(_,\"underlyingSource\",@undefined),@putByIdDirectPrivate(_,\"start\",@undefined);function q(x,z){if(z&&j\?.cancel){try{var A=j.cancel(z);@markPromiseAsHandled(A)}catch(B){}j=@undefined}if(x){if(@putByIdDirectPrivate(x,\"readableStreamController\",@undefined),@putByIdDirectPrivate(x,\"reader\",@undefined),z)@putByIdDirectPrivate(x,\"state\",@streamErrored),@putByIdDirectPrivate(x,\"storedError\",z);else @putByIdDirectPrivate(x,\"state\",@streamClosed);x=@undefined}}if(!j.pull){q();return}if(!@isCallable(j.pull)){q(),@throwTypeError(\"pull is not a function\");return}@putByIdDirectPrivate(_,\"readableStreamController\",f);const v=@getByIdDirectPrivate(_,\"highWaterMark\");f.start({highWaterMark:!v||v<64\?64:v}),@startDirectStream.@call(f,_,j.pull,q),@putByIdDirectPrivate(_,\"reader\",{});var w=j.pull(f);if(f=@undefined,w&&@isPromise(w))return w.@then(()=>{})})\n"; // assignToStream const JSC::ConstructAbility s_readableStreamInternalsAssignToStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1546,7 +1580,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadStreamIntoSinkCodeConstr const JSC::ImplementationVisibility s_readableStreamInternalsReadStreamIntoSinkCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadStreamIntoSinkCodeLength = 1395; static const JSC::Intrinsic s_readableStreamInternalsReadStreamIntoSinkCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadStreamIntoSinkCode = "(async function (c,G,f){\"use strict\";var I=!1,z=!1;try{var E=c.getReader(),H=E.readMany();if(H&&@isPromise(H))H=await H;if(H.done)return I=!0,G.end();var J=H.value.length;const x=@getByIdDirectPrivate(c,\"highWaterMark\");if(f)@startDirectStream.@call(G,c,@undefined,()=>!z&&@markPromiseAsHandled(c.cancel()));G.start({highWaterMark:x||0});for(var K=0,P=H.value,A=H.value.length;K!x&&@markPromiseAsHandled(_.cancel()));D.start({highWaterMark:P||0});for(var H=0,f=F.value,J=F.value.length;H{var B=@createFulfilledPromise({value:S,done:!1});return S=@undefined,@readableStreamClose(C),C=@undefined,B}}else if(this._pendingRead){var y=this._pendingRead;this._pendingRead=@undefined,@putByIdDirectPrivate(this,\"pull\",@noopDoneFunction),@fulfillPromise(y,{value:@undefined,done:!0})}@readableStreamClose(C)})\n"; +const char* const s_readableStreamInternalsOnCloseDirectStreamCode = "(function (c){\"use strict\";var v=this.@controlledReadableStream;if(!v||@getByIdDirectPrivate(v,\"state\")!==@streamReadable)return;if(this._deferClose!==0){this._deferClose=1,this._deferCloseReason=c;return}if(@putByIdDirectPrivate(v,\"state\",@streamClosing),typeof this.@underlyingSource.close===\"function\")try{this.@underlyingSource.close.@call(this.@underlyingSource,c)}catch(j){}var b;try{b=this.@sink.end(),@putByIdDirectPrivate(this,\"sink\",@undefined)}catch(j){if(this._pendingRead){var y=this._pendingRead;this._pendingRead=@undefined,@rejectPromise(y,j)}@readableStreamError(v,j);return}this.error=this.flush=this.write=this.close=this.end=@onReadableStreamDirectControllerClosed;var B=@getByIdDirectPrivate(v,\"reader\");if(B&&@isReadableStreamDefaultReader(B)){var C=this._pendingRead;if(C&&@isPromise(C)&&b\?.byteLength){this._pendingRead=@undefined,@fulfillPromise(C,{value:b,done:!1}),@readableStreamClose(v);return}}if(b\?.byteLength){var S=@getByIdDirectPrivate(B,\"readRequests\");if(S\?.isNotEmpty()){@readableStreamFulfillReadRequest(v,b,!1),@readableStreamClose(v);return}@putByIdDirectPrivate(v,\"state\",@streamReadable),this.@pull=()=>{var j=@createFulfilledPromise({value:b,done:!1});return b=@undefined,@readableStreamClose(v),v=@undefined,j}}else if(this._pendingRead){var y=this._pendingRead;this._pendingRead=@undefined,@putByIdDirectPrivate(this,\"pull\",@noopDoneFunction),@fulfillPromise(y,{value:@undefined,done:!0})}@readableStreamClose(v)})\n"; // onFlushDirectStream const JSC::ConstructAbility s_readableStreamInternalsOnFlushDirectStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1610,7 +1644,7 @@ const JSC::ConstructorKind s_readableStreamInternalsCreateTextStreamCodeConstruc const JSC::ImplementationVisibility s_readableStreamInternalsCreateTextStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsCreateTextStreamCodeLength = 984; static const JSC::Intrinsic s_readableStreamInternalsCreateTextStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsCreateTextStreamCode = "(function (v){\"use strict\";var x,A=[],C=!1,_=!1,E=\"\",q=@toLength(0),F=@newPromiseCapability(@Promise),G=!1;return x={start(){},write(w){if(typeof w===\"string\"){var z=@toLength(w.length);if(z>0)E+=w,C=!0,q+=z;return z}if(!w||!(@ArrayBuffer.@isView(w)||w instanceof @ArrayBuffer))@throwTypeError(\"Expected text, ArrayBuffer or ArrayBufferView\");const j=@toLength(w.byteLength);if(j>0)if(_=!0,E.length>0)@arrayPush(A,E,w),E=\"\";else @arrayPush(A,w);return q+=j,j},flush(){return 0},end(){if(G)return\"\";return x.fulfill()},fulfill(){G=!0;const w=x.finishInternal();return @fulfillPromise(F.@promise,w),w},finishInternal(){if(!C&&!_)return\"\";if(C&&!_)return E;if(_&&!C)return new globalThis.TextDecoder().decode(@Bun.concatArrayBuffers(A));var w=new @Bun.ArrayBufferSink;w.start({highWaterMark:q,asUint8Array:!0});for(let z of A)w.write(z);if(A.length=0,E.length>0)w.write(E),E=\"\";return new globalThis.TextDecoder().decode(w.end())},close(){try{if(!G)G=!0,x.fulfill()}catch(w){}}},[x,F]})\n"; +const char* const s_readableStreamInternalsCreateTextStreamCode = "(function (_){\"use strict\";var z,j=[],q=!1,w=!1,x=\"\",A=@toLength(0),C=@newPromiseCapability(@Promise),E=!1;return z={start(){},write(v){if(typeof v===\"string\"){var F=@toLength(v.length);if(F>0)x+=v,q=!0,A+=F;return F}if(!v||!(@ArrayBuffer.@isView(v)||v instanceof @ArrayBuffer))@throwTypeError(\"Expected text, ArrayBuffer or ArrayBufferView\");const G=@toLength(v.byteLength);if(G>0)if(w=!0,x.length>0)@arrayPush(j,x,v),x=\"\";else @arrayPush(j,v);return A+=G,G},flush(){return 0},end(){if(E)return\"\";return z.fulfill()},fulfill(){E=!0;const v=z.finishInternal();return @fulfillPromise(C.@promise,v),v},finishInternal(){if(!q&&!w)return\"\";if(q&&!w)return x;if(w&&!q)return new globalThis.TextDecoder().decode(@Bun.concatArrayBuffers(j));var v=new @Bun.ArrayBufferSink;v.start({highWaterMark:A,asUint8Array:!0});for(let F of j)v.write(F);if(j.length=0,x.length>0)v.write(x),x=\"\";return new globalThis.TextDecoder().decode(v.end())},close(){try{if(!E)E=!0,z.fulfill()}catch(v){}}},[z,C]})\n"; // initializeTextStream const JSC::ConstructAbility s_readableStreamInternalsInitializeTextStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1626,7 +1660,7 @@ const JSC::ConstructorKind s_readableStreamInternalsInitializeArrayStreamCodeCon const JSC::ImplementationVisibility s_readableStreamInternalsInitializeArrayStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsInitializeArrayStreamCodeLength = 797; static const JSC::Intrinsic s_readableStreamInternalsInitializeArrayStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsInitializeArrayStreamCode = "(function (t,p){\"use strict\";var _=[],b=@newPromiseCapability(@Promise),d=!1;function j(){return d=!0,b.@resolve.@call(@undefined,_),_}var m={start(){},write(v){return @arrayPush(_,v),v.byteLength||v.length},flush(){return 0},end(){if(d)return[];return j()},close(){if(!d)j()}},q={@underlyingSource:t,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:m,close:@onCloseDirectStream,write:m.write,error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};return @putByIdDirectPrivate(this,\"readableStreamController\",q),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined),b})\n"; +const char* const s_readableStreamInternalsInitializeArrayStreamCode = "(function (_,t){\"use strict\";var p=[],b=@newPromiseCapability(@Promise),d=!1;function j(){return d=!0,b.@resolve.@call(@undefined,p),p}var m={start(){},write(v){return @arrayPush(p,v),v.byteLength||v.length},flush(){return 0},end(){if(d)return[];return j()},close(){if(!d)j()}},q={@underlyingSource:_,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:m,close:@onCloseDirectStream,write:m.write,error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};return @putByIdDirectPrivate(this,\"readableStreamController\",q),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined),b})\n"; // initializeArrayBufferStream const JSC::ConstructAbility s_readableStreamInternalsInitializeArrayBufferStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1634,7 +1668,7 @@ const JSC::ConstructorKind s_readableStreamInternalsInitializeArrayBufferStreamC const JSC::ImplementationVisibility s_readableStreamInternalsInitializeArrayBufferStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsInitializeArrayBufferStreamCodeLength = 690; static const JSC::Intrinsic s_readableStreamInternalsInitializeArrayBufferStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsInitializeArrayBufferStreamCode = "(function (_,m){\"use strict\";var D=m&&typeof m===\"number\"\?{highWaterMark:m,stream:!0,asUint8Array:!0}:{stream:!0,asUint8Array:!0},w=new @Bun.ArrayBufferSink;w.start(D);var b={@underlyingSource:_,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:w,close:@onCloseDirectStream,write:w.write.bind(w),error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};@putByIdDirectPrivate(this,\"readableStreamController\",b),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined)})\n"; +const char* const s_readableStreamInternalsInitializeArrayBufferStreamCode = "(function (_,m){\"use strict\";var w=m&&typeof m===\"number\"\?{highWaterMark:m,stream:!0,asUint8Array:!0}:{stream:!0,asUint8Array:!0},D=new @Bun.ArrayBufferSink;D.start(w);var b={@underlyingSource:_,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:D,close:@onCloseDirectStream,write:D.write.bind(D),error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};@putByIdDirectPrivate(this,\"readableStreamController\",b),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined)})\n"; // readableStreamError const JSC::ConstructAbility s_readableStreamInternalsReadableStreamErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1698,7 +1732,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControl const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerCancelCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamDefaultControllerCancelCodeLength = 146; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultControllerCancelCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamDefaultControllerCancelCode = "(function (_,d){\"use strict\";return @putByIdDirectPrivate(_,\"queue\",@newQueue()),@getByIdDirectPrivate(_,\"cancelAlgorithm\").@call(@undefined,d)})\n"; +const char* const s_readableStreamInternalsReadableStreamDefaultControllerCancelCode = "(function (d,_){\"use strict\";return @putByIdDirectPrivate(d,\"queue\",@newQueue()),@getByIdDirectPrivate(d,\"cancelAlgorithm\").@call(@undefined,_)})\n"; // readableStreamDefaultControllerPull const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerPullCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1754,7 +1788,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamAddReadRequest const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamAddReadRequestCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamAddReadRequestCodeLength = 274; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamAddReadRequestCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamAddReadRequestCode = "(function (h){\"use strict\";@assert(@isReadableStreamDefaultReader(@getByIdDirectPrivate(h,\"reader\"))),@assert(@getByIdDirectPrivate(h,\"state\")==@streamReadable);const i=@newPromise();return @getByIdDirectPrivate(@getByIdDirectPrivate(h,\"reader\"),\"readRequests\").push(i),i})\n"; +const char* const s_readableStreamInternalsReadableStreamAddReadRequestCode = "(function (i){\"use strict\";@assert(@isReadableStreamDefaultReader(@getByIdDirectPrivate(i,\"reader\"))),@assert(@getByIdDirectPrivate(i,\"state\")==@streamReadable);const h=@newPromise();return @getByIdDirectPrivate(@getByIdDirectPrivate(i,\"reader\"),\"readRequests\").push(h),h})\n"; // isReadableStreamDisturbed const JSC::ConstructAbility s_readableStreamInternalsIsReadableStreamDisturbedCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1770,7 +1804,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamReaderGenericR const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamReaderGenericReleaseCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamReaderGenericReleaseCodeLength = 813; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamReaderGenericReleaseCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamReaderGenericReleaseCode = "(function (c){\"use strict\";if(@assert(!!@getByIdDirectPrivate(c,\"ownerReadableStream\")),@assert(@getByIdDirectPrivate(@getByIdDirectPrivate(c,\"ownerReadableStream\"),\"reader\")===c),@getByIdDirectPrivate(@getByIdDirectPrivate(c,\"ownerReadableStream\"),\"state\")===@streamReadable)@getByIdDirectPrivate(c,\"closedPromiseCapability\").@reject.@call(@undefined,@makeTypeError(\"releasing lock of reader whose stream is still in readable state\"));else @putByIdDirectPrivate(c,\"closedPromiseCapability\",{@promise:@newHandledRejectedPromise(@makeTypeError(\"reader released lock\"))});const _=@getByIdDirectPrivate(c,\"closedPromiseCapability\").@promise;@markPromiseAsHandled(_),@putByIdDirectPrivate(@getByIdDirectPrivate(c,\"ownerReadableStream\"),\"reader\",@undefined),@putByIdDirectPrivate(c,\"ownerReadableStream\",@undefined)})\n"; +const char* const s_readableStreamInternalsReadableStreamReaderGenericReleaseCode = "(function (_){\"use strict\";if(@assert(!!@getByIdDirectPrivate(_,\"ownerReadableStream\")),@assert(@getByIdDirectPrivate(@getByIdDirectPrivate(_,\"ownerReadableStream\"),\"reader\")===_),@getByIdDirectPrivate(@getByIdDirectPrivate(_,\"ownerReadableStream\"),\"state\")===@streamReadable)@getByIdDirectPrivate(_,\"closedPromiseCapability\").@reject.@call(@undefined,@makeTypeError(\"releasing lock of reader whose stream is still in readable state\"));else @putByIdDirectPrivate(_,\"closedPromiseCapability\",{@promise:@newHandledRejectedPromise(@makeTypeError(\"reader released lock\"))});const c=@getByIdDirectPrivate(_,\"closedPromiseCapability\").@promise;@markPromiseAsHandled(c),@putByIdDirectPrivate(@getByIdDirectPrivate(_,\"ownerReadableStream\"),\"reader\",@undefined),@putByIdDirectPrivate(_,\"ownerReadableStream\",@undefined)})\n"; // readableStreamDefaultControllerCanCloseOrEnqueue const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerCanCloseOrEnqueueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1786,7 +1820,7 @@ const JSC::ConstructorKind s_readableStreamInternalsLazyLoadStreamCodeConstructo const JSC::ImplementationVisibility s_readableStreamInternalsLazyLoadStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsLazyLoadStreamCodeLength = 1589; static const JSC::Intrinsic s_readableStreamInternalsLazyLoadStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsLazyLoadStreamCode = "(function (W,I){\"use strict\";var N=@getByIdDirectPrivate(W,\"bunNativeType\"),J=@getByIdDirectPrivate(W,\"bunNativePtr\"),K=@lazyStreamPrototypeMap.@get(N);if(K===@undefined){let m=function(F){var{c:p,v:z}=this;this.c=@undefined,this.v=@undefined,f(F,p,z)},U=function(F){try{F.close()}catch(p){globalThis.reportError(p)}},M=function(F,p,z,A){A[0]=!1;var G;try{G=b(F,z,A)}catch(H){return p.error(H)}return f(G,p,z)};var j=m,Q=U,q=M,[b,x,X,y,O,Y,Z]=@lazyLoad(N),P=[!1],f;f=function F(p,z,A){if(p&&@isPromise(p))return p.then(m.bind({c:z,v:A}),(G)=>z.error(G));else if(typeof p===\"number\")if(A&&A.byteLength===p&&A.buffer===z.byobRequest\?.view\?.buffer)z.byobRequest.respondWithNewView(A);else z.byobRequest.respond(p);else if(p.constructor===@Uint8Array)z.enqueue(p);if(P[0]||p===!1)@enqueueJob(U,z),P[0]=!1};const E=O\?new FinalizationRegistry(O):null;K=class F{constructor(p,z,A){if(this.#f=p,this.#b={},this.pull=this.#j.bind(this),this.cancel=this.#m.bind(this),this.autoAllocateChunkSize=z,A!==@undefined)this.start=(G)=>{G.enqueue(A)};if(E)E.register(this,p,this.#b)}#b;pull;cancel;start;#f;type=\"bytes\";autoAllocateChunkSize=0;static startSync=x;#j(p){var z=this.#f;if(!z){p.close();return}M(z,p,p.byobRequest.view,P)}#m(p){var z=this.#f;E&&E.unregister(this.#b),Y&&Y(z,!1),X(z,p)}static deinit=O;static drain=Z},@lazyStreamPrototypeMap.@set(N,K)}const B=K.startSync(J,I);var _;const{drain:D,deinit:L}=K;if(D)_=D(J);if(B===0){if(O&&J&&@enqueueJob(O,J),(_\?.byteLength\?\?0)>0)return{start(m){m.enqueue(_),m.close()},type:\"bytes\"};return{start(m){m.close()},type:\"bytes\"}}return new K(J,B,_)})\n"; +const char* const s_readableStreamInternalsLazyLoadStreamCode = "(function (E,m){\"use strict\";var y=@getByIdDirectPrivate(E,\"bunNativeType\"),q=@getByIdDirectPrivate(E,\"bunNativePtr\"),x=@lazyStreamPrototypeMap.@get(y);if(x===@undefined){let U=function(Y){var{c:Z,v:_}=this;this.c=@undefined,this.v=@undefined,K(Y,Z,_)},W=function(Y){try{Y.close()}catch(Z){globalThis.reportError(Z)}},X=function(Y,Z,_,p){p[0]=!1;var z;try{z=F(Y,_,p)}catch(A){return Z.error(A)}return K(z,Z,_)};var P=U,Q=W,O=X,[F,G,H,b,B,D,I]=@lazyLoad(y),J=[!1],K;K=function Y(Z,_,p){if(Z&&@isPromise(Z))return Z.then(U.bind({c:_,v:p}),(z)=>_.error(z));else if(typeof Z===\"number\")if(p&&p.byteLength===Z&&p.buffer===_.byobRequest\?.view\?.buffer)_.byobRequest.respondWithNewView(p);else _.byobRequest.respond(Z);else if(Z.constructor===@Uint8Array)_.enqueue(Z);if(J[0]||Z===!1)@enqueueJob(W,_),J[0]=!1};const j=B\?new FinalizationRegistry(B):null;x=class Y{constructor(Z,_,p){if(this.#f=Z,this.#b={},this.pull=this.#j.bind(this),this.cancel=this.#m.bind(this),this.autoAllocateChunkSize=_,p!==@undefined)this.start=(z)=>{z.enqueue(p)};if(j)j.register(this,Z,this.#b)}#b;pull;cancel;start;#f;type=\"bytes\";autoAllocateChunkSize=0;static startSync=G;#j(Z){var _=this.#f;if(!_){Z.close();return}X(_,Z,Z.byobRequest.view,J)}#m(Z){var _=this.#f;j&&j.unregister(this.#b),D&&D(_,!1),H(_,Z)}static deinit=B;static drain=I},@lazyStreamPrototypeMap.@set(y,x)}const L=x.startSync(q,m);var M;const{drain:f,deinit:N}=x;if(f)M=f(q);if(L===0){if(B&&q&&@enqueueJob(B,q),(M\?.byteLength\?\?0)>0)return{start(U){U.enqueue(M),U.close()},type:\"bytes\"};return{start(U){U.close()},type:\"bytes\"}}return new x(q,L,M)})\n"; // readableStreamIntoArray const JSC::ConstructAbility s_readableStreamInternalsReadableStreamIntoArrayCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1810,7 +1844,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamToArrayBufferD const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeLength = 727; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamToArrayBufferDirectCode = "(function (j,q){\"use strict\";var x=new @Bun.ArrayBufferSink;@putByIdDirectPrivate(j,\"underlyingSource\",@undefined);var z=@getByIdDirectPrivate(j,\"highWaterMark\");x.start(z\?{highWaterMark:z}:{});var A=@newPromiseCapability(@Promise),B=!1,C=q.pull,D=q.close,F={start(){},close(_){if(!B){if(B=!0,D)D();@fulfillPromise(A.@promise,x.end())}},end(){if(!B){if(B=!0,D)D();@fulfillPromise(A.@promise,x.end())}},flush(){return 0},write:x.write.bind(x)},G=!1;try{const _=C(F);if(_&&@isObject(_)&&@isPromise(_))return async function(O,v,w){while(!B)await w(O);return await v}(F,promise,C);return A.@promise}catch(_){return G=!0,@readableStreamError(j,_),@Promise.@reject(_)}finally{if(!G&&j)@readableStreamClose(j);F=D=x=C=j=@undefined}})\n"; +const char* const s_readableStreamInternalsReadableStreamToArrayBufferDirectCode = "(function (O,_){\"use strict\";var q=new @Bun.ArrayBufferSink;@putByIdDirectPrivate(O,\"underlyingSource\",@undefined);var z=@getByIdDirectPrivate(O,\"highWaterMark\");q.start(z\?{highWaterMark:z}:{});var v=@newPromiseCapability(@Promise),A=!1,x=_.pull,B=_.close,C={start(){},close(F){if(!A){if(A=!0,B)B();@fulfillPromise(v.@promise,q.end())}},end(){if(!A){if(A=!0,B)B();@fulfillPromise(v.@promise,q.end())}},flush(){return 0},write:q.write.bind(q)},D=!1;try{const F=x(C);if(F&&@isObject(F)&&@isPromise(F))return async function(G,j,w){while(!A)await w(G);return await j}(C,promise,x);return v.@promise}catch(F){return D=!0,@readableStreamError(O,F),@Promise.@reject(F)}finally{if(!D&&O)@readableStreamClose(O);C=B=q=x=O=@undefined}})\n"; // readableStreamToTextDirect const JSC::ConstructAbility s_readableStreamInternalsReadableStreamToTextDirectCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1834,7 +1868,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefineLazyIter const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeLength = 516; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamDefineLazyIteratorsCode = "(function (h){\"use strict\";var x=globalThis.Symbol.asyncIterator,k=async function*w(z,B){var D=z.getReader(),i;try{while(!0){var F,G;const j=D.readMany();if(@isPromise(j))({done:F,value:G}=await j);else({done:F,value:G}=j);if(F)return;yield*G}}catch(j){i=j}finally{if(D.releaseLock(),!B)z.cancel(i);if(i)throw i}},g=function w(){return k(this,!1)},q=function w({preventCancel:z=!1}={preventCancel:!1}){return k(this,z)};return @Object.@defineProperty(h,x,{value:g}),@Object.@defineProperty(h,\"values\",{value:q}),h})\n"; +const char* const s_readableStreamInternalsReadableStreamDefineLazyIteratorsCode = "(function (k){\"use strict\";var B=globalThis.Symbol.asyncIterator,g=async function*z(D,F){var G=D.getReader(),j;try{while(!0){var x,h;const q=G.readMany();if(@isPromise(q))({done:x,value:h}=await q);else({done:x,value:h}=q);if(x)return;yield*h}}catch(q){j=q}finally{if(G.releaseLock(),!F)D.cancel(j);if(j)throw j}},i=function z(){return g(this,!1)},w=function z({preventCancel:D=!1}={preventCancel:!1}){return g(this,D)};return @Object.@defineProperty(k,B,{value:i}),@Object.@defineProperty(k,\"values\",{value:w}),k})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ @@ -1986,7 +2020,7 @@ const JSC::ConstructorKind s_readableStreamDefaultReaderReadManyCodeConstructorK const JSC::ImplementationVisibility s_readableStreamDefaultReaderReadManyCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamDefaultReaderReadManyCodeLength = 2598; static const JSC::Intrinsic s_readableStreamDefaultReaderReadManyCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamDefaultReaderReadManyCode = "(function (){\"use strict\";if(!@isReadableStreamDefaultReader(this))@throwTypeError(\"ReadableStreamDefaultReader.readMany() should not be called directly\");const K=@getByIdDirectPrivate(this,\"ownerReadableStream\");if(!K)@throwTypeError(\"readMany() called on a reader owned by no readable stream\");const k=@getByIdDirectPrivate(K,\"state\");if(@putByIdDirectPrivate(K,\"disturbed\",!0),k===@streamClosed)return{value:[],size:0,done:!0};else if(k===@streamErrored)throw @getByIdDirectPrivate(K,\"storedError\");var E=@getByIdDirectPrivate(K,\"readableStreamController\"),x=@getByIdDirectPrivate(E,\"queue\");if(!x)return E.@pull(E).@then(function({done:S,value:T}){return S\?{done:!0,value:[],size:0}:{value:[T],size:1,done:!1}});const C=x.content;var _=x.size,A=C.toArray(!1),N=A.length;if(N>0){var D=@newArrayWithSize(N);if(@isReadableByteStreamController(E)){{const S=A[0];if(!(@ArrayBuffer.@isView(S)||S instanceof @ArrayBuffer))@putByValDirect(D,0,new @Uint8Array(S.buffer,S.byteOffset,S.byteLength));else @putByValDirect(D,0,S)}for(var F=1;F{if(S.done)return{value:[],size:0,done:!0};var T=@getByIdDirectPrivate(K,\"readableStreamController\"),U=@getByIdDirectPrivate(T,\"queue\"),W=[S.value].concat(U.content.toArray(!1)),j=W.length;if(@isReadableByteStreamController(T))for(var G=0;G0){var K=@newArrayWithSize(J);if(@isReadableByteStreamController(F)){{const w=E[0];if(!(@ArrayBuffer.@isView(w)||w instanceof @ArrayBuffer))@putByValDirect(K,0,new @Uint8Array(w.buffer,w.byteOffset,w.byteLength));else @putByValDirect(K,0,w)}for(var d=1;d{if(w.done)return{value:[],size:0,done:!0};var C=@getByIdDirectPrivate(_,\"readableStreamController\"),N=@getByIdDirectPrivate(C,\"queue\"),Q=[w.value].concat(N.content.toArray(!1)),S=Q.length;if(@isReadableByteStreamController(C))for(var T=0;T0}shift(){var{_head:v,_tail:x,_list:k,_capacityMask:w}=this;if(v===x)return @undefined;var A=k[v];if(@putByValDirect(k,v,@undefined),v=this._head=v+1&w,v<2&&x>1e4&&x<=k.length>>>2)this._shrinkArray();return A}peek(){if(this._head===this._tail)return @undefined;return this._list[this._head]}push(v){var x=this._tail;if(@putByValDirect(this._list,x,v),this._tail=x+1&this._capacityMask,this._tail===this._head)this._growArray()}toArray(v){var x=this._list,k=@toLength(x.length);if(v||this._head>this._tail){var w=@toLength(this._head),A=@toLength(this._tail),B=@toLength(k-w+A),E=@newArrayWithSize(B),g=0;for(var F=w;F>>=1,this._capacityMask>>>=1}}return new z})\n"; +const char* const s_streamInternalsCreateFIFOCode = "(function (){\"use strict\";var b=@Array.prototype.slice;class k{constructor(){this._head=0,this._tail=0,this._capacityMask=3,this._list=@newArrayWithSize(4)}_head;_tail;_capacityMask;_list;size(){if(this._head===this._tail)return 0;if(this._head0}shift(){var{_head:z,_tail:v,_list:g,_capacityMask:w}=this;if(z===v)return @undefined;var A=g[z];if(@putByValDirect(g,z,@undefined),z=this._head=z+1&w,z<2&&v>1e4&&v<=g.length>>>2)this._shrinkArray();return A}peek(){if(this._head===this._tail)return @undefined;return this._list[this._head]}push(z){var v=this._tail;if(@putByValDirect(this._list,v,z),this._tail=v+1&this._capacityMask,this._tail===this._head)this._growArray()}toArray(z){var v=this._list,g=@toLength(v.length);if(z||this._head>this._tail){var w=@toLength(this._head),A=@toLength(this._tail),B=@toLength(g-w+A),E=@newArrayWithSize(B),x=0;for(var F=w;F>>=1,this._capacityMask>>>=1}}return new k})\n"; // newQueue const JSC::ConstructAbility s_streamInternalsNewQueueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2116,7 +2150,7 @@ const JSC::ConstructorKind s_streamInternalsEnqueueValueWithSizeCodeConstructorK const JSC::ImplementationVisibility s_streamInternalsEnqueueValueWithSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_streamInternalsEnqueueValueWithSizeCodeLength = 161; static const JSC::Intrinsic s_streamInternalsEnqueueValueWithSizeCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_streamInternalsEnqueueValueWithSizeCode = "(function (n,d,o){\"use strict\";if(o=@toNumber(o),!@isFinite(o)||o<0)@throwRangeError(\"size has an incorrect value\");n.content.push({value:d,size:o}),n.size+=o})\n"; +const char* const s_streamInternalsEnqueueValueWithSizeCode = "(function (n,o,d){\"use strict\";if(d=@toNumber(d),!@isFinite(d)||d<0)@throwRangeError(\"size has an incorrect value\");n.content.push({value:o,size:d}),n.size+=d})\n"; // peekQueueValue const JSC::ConstructAbility s_streamInternalsPeekQueueValueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2140,7 +2174,7 @@ const JSC::ConstructorKind s_streamInternalsExtractSizeAlgorithmCodeConstructorK const JSC::ImplementationVisibility s_streamInternalsExtractSizeAlgorithmCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_streamInternalsExtractSizeAlgorithmCodeLength = 176; static const JSC::Intrinsic s_streamInternalsExtractSizeAlgorithmCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_streamInternalsExtractSizeAlgorithmCode = "(function (d){\"use strict\";const w=d.size;if(w===@undefined)return()=>1;if(typeof w!==\"function\")@throwTypeError(\"strategy.size must be a function\");return(p)=>{return w(p)}})\n"; +const char* const s_streamInternalsExtractSizeAlgorithmCode = "(function (d){\"use strict\";const p=d.size;if(p===@undefined)return()=>1;if(typeof p!==\"function\")@throwTypeError(\"strategy.size must be a function\");return(w)=>{return p(w)}})\n"; // extractHighWaterMark const JSC::ConstructAbility s_streamInternalsExtractHighWaterMarkCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2172,7 +2206,7 @@ const JSC::ConstructorKind s_streamInternalsToDictionaryCodeConstructorKind = JS const JSC::ImplementationVisibility s_streamInternalsToDictionaryCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_streamInternalsToDictionaryCodeLength = 115; static const JSC::Intrinsic s_streamInternalsToDictionaryCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_streamInternalsToDictionaryCode = "(function (c,n,p){\"use strict\";if(c===@undefined||c===null)return n;if(!@isObject(c))@throwTypeError(p);return c})\n"; +const char* const s_streamInternalsToDictionaryCode = "(function (c,p,n){\"use strict\";if(c===@undefined||c===null)return p;if(!@isObject(c))@throwTypeError(n);return c})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ @@ -2188,41 +2222,41 @@ WEBCORE_FOREACH_STREAMINTERNALS_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR) const JSC::ConstructAbility s_importMetaObjectLoadCJS2ESMCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; const JSC::ConstructorKind s_importMetaObjectLoadCJS2ESMCodeConstructorKind = JSC::ConstructorKind::None; const JSC::ImplementationVisibility s_importMetaObjectLoadCJS2ESMCodeImplementationVisibility = JSC::ImplementationVisibility::Public; -const int s_importMetaObjectLoadCJS2ESMCodeLength = 1337; +const int s_importMetaObjectLoadCJS2ESMCodeLength = 1387; static const JSC::Intrinsic s_importMetaObjectLoadCJS2ESMCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_importMetaObjectLoadCJS2ESMCode = "(function (x){\"use strict\";var I=@Loader,_=@createFIFO(),J=x;while(J){var w=I.registry.@get(J);if(!w||!w.state||w.state<=@ModuleFetch)@fulfillModuleSync(J),w=I.registry.@get(J);var L=@getPromiseInternalField(w.fetch,@promiseFieldReactionsOrResult),z=I.parseModule(J,L),Q=w.module;if(!Q&&z&&@isPromise(z)){var T=@getPromiseInternalField(z,@promiseFieldReactionsOrResult),B=@getPromiseInternalField(z,@promiseFieldFlags),U=B&@promiseStateMask;if(U===@promiseStatePending||T&&@isPromise(T))@throwTypeError(`require() async module \"${J}\" is unsupported`);else if(U===@promiseStateRejected){if(!T\?.message)@throwTypeError(`${T+\"\"\?T:\"An error occurred\"} occurred while parsing module \\\"${J}\\\"`);throw T}w.module=Q=T}else if(z&&!Q)w.module=Q=z;@setStateToMax(w,@ModuleLink);var V=Q.dependenciesMap,W=I.requestedModules(Q),X=@newArrayWithSize(W.length);for(var Y=0,Z=W.length;Y=@ModuleLink)J=_.shift()}var H=I.linkAndEvaluateModule(x,@undefined);if(H&&@isPromise(H))@throwTypeError(`require() async module \\\"${x}\\\" is unsupported`);return I.registry.@get(x)})\n"; +const char* const s_importMetaObjectLoadCJS2ESMCode = "(function (_){\"use strict\";var x=@Loader,z=@createFIFO(),w=_;while(w){var G=x.registry.@get(w);if((G\?.state\?\?0)<=@ModuleFetch)@fulfillModuleSync(w),G=x.registry.@get(w);var D=@getPromiseInternalField(G.fetch,@promiseFieldReactionsOrResult),H=x.parseModule(w,D),I=G.module;if(H&&@isPromise(H)){var J=@getPromiseInternalField(H,@promiseFieldReactionsOrResult),B=@getPromiseInternalField(H,@promiseFieldFlags),F=B&@promiseStateMask;if(F===@promiseStatePending||J&&@isPromise(J))@throwTypeError(`require() async module \"${w}\" is unsupported. use \"await import()\" instead.`);else if(F===@promiseStateRejected){if(!J\?.message)@throwTypeError(`${J+\"\"\?J:\"An error occurred\"} occurred while parsing module \\\"${w}\\\"`);throw J}G.module=I=J}else if(H&&!I)G.module=I=H;@setStateToMax(G,@ModuleLink);var L=I.dependenciesMap,Q=x.requestedModules(I),T=@newArrayWithSize(Q.length);for(var U=0,V=Q.length;U=@ModuleLink)w=z.shift()}var Z=x.linkAndEvaluateModule(_,@undefined);if(Z&&@isPromise(Z))@throwTypeError(`require() async module \\\"${_}\\\" is unsupported. use \"await import()\" instead.`);return x.registry.@get(_)})\n"; // requireESM const JSC::ConstructAbility s_importMetaObjectRequireESMCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; const JSC::ConstructorKind s_importMetaObjectRequireESMCodeConstructorKind = JSC::ConstructorKind::None; const JSC::ImplementationVisibility s_importMetaObjectRequireESMCodeImplementationVisibility = JSC::ImplementationVisibility::Public; -const int s_importMetaObjectRequireESMCodeLength = 419; +const int s_importMetaObjectRequireESMCodeLength = 325; static const JSC::Intrinsic s_importMetaObjectRequireESMCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_importMetaObjectRequireESMCode = "(function (a){\"use strict\";var f=@Loader.registry.@get(a);if(!f||!f.evaluated)f=@loadCJS2ESM(a);if(!f||!f.evaluated||!f.module)@throwTypeError(`require() failed to evaluate module \"${a}\". This is an internal consistentency error.`);var g=@Loader.getModuleNamespaceObject(f.module);if(g[@commonJSSymbol]===0)return;var _=g.default,u=_\?.[@commonJSSymbol];if(u===0)return _;else if(u&&@isCallable(_))return _();return g})\n"; +const char* const s_importMetaObjectRequireESMCode = "(function (a){\"use strict\";var c=@Loader.registry.@get(a);if(!c||!c.evaluated)c=@loadCJS2ESM(a);if(!c||!c.evaluated||!c.module)@throwTypeError(`require() failed to evaluate module \"${a}\". This is an internal consistentency error.`);var _=@Loader.getModuleNamespaceObject(c.module);if(_[@commonJSSymbol]===0)return;return _})\n"; // internalRequire const JSC::ConstructAbility s_importMetaObjectInternalRequireCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; const JSC::ConstructorKind s_importMetaObjectInternalRequireCodeConstructorKind = JSC::ConstructorKind::None; const JSC::ImplementationVisibility s_importMetaObjectInternalRequireCodeImplementationVisibility = JSC::ImplementationVisibility::Public; -const int s_importMetaObjectInternalRequireCodeLength = 611; +const int s_importMetaObjectInternalRequireCodeLength = 747; static const JSC::Intrinsic s_importMetaObjectInternalRequireCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_importMetaObjectInternalRequireCode = "(function (n){\"use strict\";var _=@requireMap.@get(n);const q=n.substring(n.length-5);if(_){if(q===\".node\")return _.exports;return _}if(q===\".json\"){var b=globalThis[Symbol.for(\"_fs\")]||=@Bun.fs(),j=JSON.parse(b.readFileSync(n,\"utf8\"));return @requireMap.@set(n,j),j}else if(q===\".node\"){var i={exports:{}};return process.dlopen(i,n),@requireMap.@set(n,i),i.exports}else if(q===\".toml\"){var b=globalThis[Symbol.for(\"_fs\")]||=@Bun.fs(),j=@Bun.TOML.parse(b.readFileSync(n,\"utf8\"));return @requireMap.@set(n,j),j}else{var j=@requireESM(n);const g=@requireMap.@get(n);if(g)return g;return @requireMap.@set(n,j),j}})\n"; +const char* const s_importMetaObjectInternalRequireCode = "(function (b){\"use strict\";var g=@requireMap.@get(b);const j=b.substring(b.length-5);if(g)return g.exports;if(j===\".json\"){var k=globalThis[Symbol.for(\"_fs\")]||=@Bun.fs(),q=JSON.parse(k.readFileSync(b,\"utf8\"));return @requireMap.@set(b,@createCommonJSModule(b,q,!0)),q}else if(j===\".node\"){const v=@createCommonJSModule(b,{},!0);return process.dlopen(v,b),@requireMap.@set(b,v),v.exports}else if(j===\".toml\"){var k=globalThis[Symbol.for(\"_fs\")]||=@Bun.fs(),q=@Bun.TOML.parse(k.readFileSync(b,\"utf8\"));return @requireMap.@set(b,@createCommonJSModule(b,q,!0)),q}else{var q=@requireESM(b);const n=@requireMap.@get(b);if(n)return n.exports;var _=q\?.default;if(_\?.[@commonJSSymbol]===0)q=_;return @requireMap.@set(b,@createCommonJSModule(b,q,!0)),q}})\n"; // createRequireCache const JSC::ConstructAbility s_importMetaObjectCreateRequireCacheCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; const JSC::ConstructorKind s_importMetaObjectCreateRequireCacheCodeConstructorKind = JSC::ConstructorKind::None; const JSC::ImplementationVisibility s_importMetaObjectCreateRequireCacheCodeImplementationVisibility = JSC::ImplementationVisibility::Public; -const int s_importMetaObjectCreateRequireCacheCodeLength = 891; +const int s_importMetaObjectCreateRequireCacheCodeLength = 854; static const JSC::Intrinsic s_importMetaObjectCreateRequireCacheCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_importMetaObjectCreateRequireCacheCode = "(function (){\"use strict\";class _{id;parent;filename;children=[];paths=[];constructor(c){this.id=c;const q=c.lastIndexOf(\"/\");if(q!==-1&&c.length>q+1)this.filename=c.substring(q+1);else this.filename=c}get loaded(){return!0}require(c){return @internalRequire(@resolveSync(c,this.id))}get exports(){return @requireMap.@get(this.id)\?\?{}}set exports(c){@requireMap.@set(this.id,c)}}var P=new Map;return new Proxy({},{get(c,q){if(@requireMap.@get(q)){var r=P.@get(q);if(!r)r=new _(q),P.@set(q,r);return r}},set(c,q,K){if(!P.@has(q))P.@set(q,new _(q));return @requireMap.@set(q,K\?.exports),!0},has(c,q){return @requireMap.@has(q)},deleteProperty(c,q){return P.@delete(q),@requireMap.@delete(q),@Loader.registry.@delete(q),!0},ownKeys(c){return[...@requireMap.@keys()]},getPrototypeOf(c){return null},getOwnPropertyDescriptor(c,q){if(@requireMap.@has(q))return{configurable:!0,enumerable:!0}}})})\n"; +const char* const s_importMetaObjectCreateRequireCacheCode = "(function (){\"use strict\";var _=new Map,u={};return new Proxy(u,{get(h,f){const t=@requireMap.@get(f);if(t)return t;const L=@Loader.registry.@get(f);if(L\?.evaluated){const b=@Loader.getModuleNamespaceObject(L.module),c=b[@commonJSSymbol]===0||b.default\?.[@commonJSSymbol]\?b.default:b,g=@createCommonJSModule(f,c,!0);return @requireMap.@set(f,g),g}return u[f]},set(h,f,t){return @requireMap.@set(f,t),!0},has(h,f){return @requireMap.@has(f)||@Loader.registry.@has(f)},deleteProperty(h,f){return _.@delete(f),@requireMap.@delete(f),@Loader.registry.@delete(f),!0},ownKeys(h){var f=[...@requireMap.@keys()];const t=[...@Loader.registry.@keys()];for(let L of t)if(!f.includes(L))@arrayPush(f,L);return f},getPrototypeOf(h){return null},getOwnPropertyDescriptor(h,f){if(@requireMap.@has(f)||@Loader.registry.@has(f))return{configurable:!0,enumerable:!0}}})})\n"; // require const JSC::ConstructAbility s_importMetaObjectRequireCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; const JSC::ConstructorKind s_importMetaObjectRequireCodeConstructorKind = JSC::ConstructorKind::None; const JSC::ImplementationVisibility s_importMetaObjectRequireCodeImplementationVisibility = JSC::ImplementationVisibility::Public; -const int s_importMetaObjectRequireCodeLength = 172; +const int s_importMetaObjectRequireCodeLength = 173; static const JSC::Intrinsic s_importMetaObjectRequireCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_importMetaObjectRequireCode = "(function (l){var i=this\?.path\?\?arguments.callee.path;if(typeof l!==\"string\")@throwTypeError(\"require(name) must be a string\");return @internalRequire(@resolveSync(l,i))})\n"; +const char* const s_importMetaObjectRequireCode = "(function (c){var l=this\?.path\?\?arguments.callee\?.path;if(typeof c!==\"string\")@throwTypeError(\"require(name) must be a string\");return @internalRequire(@resolveSync(c,l))})\n"; // main const JSC::ConstructAbility s_importMetaObjectMainCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2446,7 +2480,7 @@ const JSC::ConstructorKind s_readableStreamConsumeReadableStreamCodeConstructorK const JSC::ImplementationVisibility s_readableStreamConsumeReadableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Private; const int s_readableStreamConsumeReadableStreamCodeLength = 1603; static const JSC::Intrinsic s_readableStreamConsumeReadableStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamConsumeReadableStreamCode = "(function (j,k,w){\"use strict\";const B=globalThis.Symbol.for(\"Bun.consumeReadableStreamPrototype\");var D=globalThis[B];if(!D)D=globalThis[B]=[];var G=D[k];if(G===@undefined){var[H,I,J,K,_,F]=globalThis[globalThis.Symbol.for(\"Bun.lazy\")](k);G=class A{handleError;handleClosed;processResult;constructor(L,N){this.#_=N,this.#F=L,this.#$=!1,this.handleError=this._handleError.bind(this),this.handleClosed=this._handleClosed.bind(this),this.processResult=this._processResult.bind(this),L.closed.then(this.handleClosed,this.handleError)}_handleClosed(){if(this.#$)return;this.#$=!0;var L=this.#_;this.#_=0,K(L),F(L)}_handleError(L){if(this.#$)return;this.#$=!0;var N=this.#_;this.#_=0,I(N,L),F(N)}#_;#$=!1;#F;_handleReadMany({value:L,done:N,size:q}){if(N){this.handleClosed();return}if(this.#$)return;J(this.#_,L,N,q)}read(){if(!this.#_)return @throwTypeError(\"ReadableStreamSink is already closed\");return this.processResult(this.#F.read())}_processResult(L){if(L&&@isPromise(L)){if(@getPromiseInternalField(L,@promiseFieldFlags)&@promiseStateFulfilled){const q=@getPromiseInternalField(L,@promiseFieldReactionsOrResult);if(q)L=q}}if(L&&@isPromise(L))return L.then(this.processResult,this.handleError),null;if(L.done)return this.handleClosed(),0;else if(L.value)return L.value;else return-1}readMany(){if(!this.#_)return @throwTypeError(\"ReadableStreamSink is already closed\");return this.processResult(this.#F.readMany())}};const x=k+1;if(D.length_.byteLength)@throwRangeError(\"bytesWritten value is too great\");if(@assert(@getByIdDirectPrivate(w,\"pendingPullIntos\").isEmpty()||@getByIdDirectPrivate(w,\"pendingPullIntos\").peek()===_),@readableByteStreamControllerInvalidateBYOBRequest(w),_.bytesFilled+=R,_.bytesFilled<_.elementSize)return;@readableByteStreamControllerShiftPendingDescriptor(w);const g=_.bytesFilled%_.elementSize;if(g>0){const h=_.byteOffset+_.bytesFilled,f=@cloneArrayBuffer(_.buffer,h-g,g);@readableByteStreamControllerEnqueueChunk(w,f,0,f.byteLength)}_.buffer=@transferBufferToCurrentRealm(_.buffer),_.bytesFilled-=g,@readableByteStreamControllerCommitDescriptor(@getByIdDirectPrivate(w,\"controlledReadableStream\"),_),@readableByteStreamControllerProcessPullDescriptors(w)})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCode = "(function (f,w,R){\"use strict\";if(R.bytesFilled+w>R.byteLength)@throwRangeError(\"bytesWritten value is too great\");if(@assert(@getByIdDirectPrivate(f,\"pendingPullIntos\").isEmpty()||@getByIdDirectPrivate(f,\"pendingPullIntos\").peek()===R),@readableByteStreamControllerInvalidateBYOBRequest(f),R.bytesFilled+=w,R.bytesFilled0){const g=R.byteOffset+R.bytesFilled,h=@cloneArrayBuffer(R.buffer,g-_,_);@readableByteStreamControllerEnqueueChunk(f,h,0,h.byteLength)}R.buffer=@transferBufferToCurrentRealm(R.buffer),R.bytesFilled-=_,@readableByteStreamControllerCommitDescriptor(@getByIdDirectPrivate(f,\"controlledReadableStream\"),R),@readableByteStreamControllerProcessPullDescriptors(f)})\n"; // readableByteStreamControllerRespondInClosedState const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2794,7 +2828,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCodeLength = 502; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCode = "(function (a,d){\"use strict\";if(d.buffer=@transferBufferToCurrentRealm(d.buffer),@assert(d.bytesFilled===0),@readableStreamHasBYOBReader(@getByIdDirectPrivate(a,\"controlledReadableStream\")))while(@getByIdDirectPrivate(@getByIdDirectPrivate(@getByIdDirectPrivate(a,\"controlledReadableStream\"),\"reader\"),\"readIntoRequests\")\?.isNotEmpty()){let _=@readableByteStreamControllerShiftPendingDescriptor(a);@readableByteStreamControllerCommitDescriptor(@getByIdDirectPrivate(a,\"controlledReadableStream\"),_)}})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCode = "(function (a,_){\"use strict\";if(_.buffer=@transferBufferToCurrentRealm(_.buffer),@assert(_.bytesFilled===0),@readableStreamHasBYOBReader(@getByIdDirectPrivate(a,\"controlledReadableStream\")))while(@getByIdDirectPrivate(@getByIdDirectPrivate(@getByIdDirectPrivate(a,\"controlledReadableStream\"),\"reader\"),\"readIntoRequests\")\?.isNotEmpty()){let d=@readableByteStreamControllerShiftPendingDescriptor(a);@readableByteStreamControllerCommitDescriptor(@getByIdDirectPrivate(a,\"controlledReadableStream\"),d)}})\n"; // readableByteStreamControllerProcessPullDescriptors const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerProcessPullDescriptorsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2810,7 +2844,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeLength = 970; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCode = "(function (_,z){\"use strict\";const q=z.bytesFilled-z.bytesFilled%z.elementSize,j=@getByIdDirectPrivate(_,\"queue\").sizeq)E=w-z.bytesFilled,G=!0;while(E>0){let H=@getByIdDirectPrivate(_,\"queue\").content.peek();const k=E0),@assert(z.bytesFilled_)k=E-w.bytesFilled,G=!0;while(k>0){let H=@getByIdDirectPrivate(j,\"queue\").content.peek();const v=k0),@assert(w.bytesFilled0){if(@readableByteStreamControllerFillDescriptorFromQueue(_,E)){const R=@readableByteStreamControllerConvertDescriptor(E);return @readableByteStreamControllerHandleQueueDrain(_),@createFulfilledPromise({value:R,done:!1})}if(@getByIdDirectPrivate(_,\"closeRequested\")){const R=@makeTypeError(\"Closing stream has been requested\");return @readableByteStreamControllerError(_,R),@Promise.@reject(R)}}E.buffer=@transferBufferToCurrentRealm(E.buffer),@getByIdDirectPrivate(_,\"pendingPullIntos\").push(E);const N=@readableStreamAddReadIntoRequest(d);return @readableByteStreamControllerCallPullIfNeeded(_),N})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCode = "(function (_,k){\"use strict\";const L=@getByIdDirectPrivate(_,\"controlledReadableStream\");let d=1;if(k.BYTES_PER_ELEMENT!==@undefined)d=k.BYTES_PER_ELEMENT;const N=k.constructor,A={buffer:k.buffer,byteOffset:k.byteOffset,byteLength:k.byteLength,bytesFilled:0,elementSize:d,ctor:N,readerType:\"byob\"};var R=@getByIdDirectPrivate(_,\"pendingPullIntos\");if(R\?.isNotEmpty())return A.buffer=@transferBufferToCurrentRealm(A.buffer),R.push(A),@readableStreamAddReadIntoRequest(L);if(@getByIdDirectPrivate(L,\"state\")===@streamClosed){const b=new N(A.buffer,A.byteOffset,0);return @createFulfilledPromise({value:b,done:!0})}if(@getByIdDirectPrivate(_,\"queue\").size>0){if(@readableByteStreamControllerFillDescriptorFromQueue(_,A)){const b=@readableByteStreamControllerConvertDescriptor(A);return @readableByteStreamControllerHandleQueueDrain(_),@createFulfilledPromise({value:b,done:!1})}if(@getByIdDirectPrivate(_,\"closeRequested\")){const b=@makeTypeError(\"Closing stream has been requested\");return @readableByteStreamControllerError(_,b),@Promise.@reject(b)}}A.buffer=@transferBufferToCurrentRealm(A.buffer),@getByIdDirectPrivate(_,\"pendingPullIntos\").push(A);const E=@readableStreamAddReadIntoRequest(L);return @readableByteStreamControllerCallPullIfNeeded(_),E})\n"; // readableStreamAddReadIntoRequest const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamAddReadIntoRequestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2918,7 +2952,7 @@ const JSC::ConstructorKind s_eventSourceGetEventSourceCodeConstructorKind = JSC: const JSC::ImplementationVisibility s_eventSourceGetEventSourceCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_eventSourceGetEventSourceCodeLength = 5477; static const JSC::Intrinsic s_eventSourceGetEventSourceCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_eventSourceGetEventSourceCode = "(function (){\"use strict\";class j extends EventTarget{#K;#w;#G;#A;#B;#L=!1;#M=null;#O=\"\";#$=\"\";#F=\"\";#J=!0;#Q=0;#U=0;#V=0;#W=null;static#X(V){V.#H()}static#j(V,w){const W=V.data,A=W.#F\?`Last-Event-ID: ${W.#F}\\r\\n`:\"\",X=`GET ${w.pathname}${w.search} HTTP/1.1\\r\\nHost: bun\\r\\nContent-type: text/event-stream\\r\\nContent-length: 0\\r\\n${A}\\r\\n`,B=V.write(X);if(B!==X.length)W.#$=X.substring(B)}static#Y(V,w,W){for(;;){if(W>=w.length)return;let A=-1,X=w.indexOf(\"\\r\\n\",W);const B=X+2;if(X>0)if(V.#Q===0){const Z=parseInt(w.substring(W,X),16);if(Z===0){V.#w=2,V.#M\?.end();return}A=B+Z}else A=w.length;else{if(V.#O.length===0){V.#O+=w.substring(W);return}A=w.length}let Y=w.substring(B,A);W=A+2;let F=0,G=Y.indexOf(\"\\n\\n\");if(G==-1){V.#O+=w.substring(B);return}if(V.#O.length)V.#O+=Y,Y=V.#O,V.#O=\"\";let J=!0;while(J){const Z=Y.substring(F,G);let K,z=\"\",L,H=0,M=-1;for(;;){let O=Z.indexOf(\"\\n\",H);if(O===-1){if(H>=Z.length)break;O=Z.length}const U=Z.substring(H,O);if(U.startsWith(\"data:\"))if(z.length)z+=`\\n${U.substring(5).trim()}`;else z=U.substring(5).trim();else if(U.startsWith(\"event:\"))K=U.substring(6).trim();else if(U.startsWith(\"id:\"))L=U.substring(3).trim();else if(U.startsWith(\"retry:\")){if(M=parseInt(U.substring(6).trim(),10),@isNaN(M))M=-1}H=O+1}if(V.#F=L||\"\",M>=0)V.#V=M;if(z||L||K)V.dispatchEvent(new MessageEvent(K||\"message\",{data:z||\"\",origin:V.#K.origin,source:V,lastEventId:L}));if(Y.length===G+2){J=!1;break}const Q=Y.indexOf(\"\\n\\n\",G+1);if(Q===-1)break;F=G,G=Q}}}static#Z={open(V){const w=V.data;if(w.#M=V,!w.#L)j.#j(V,w.#K)},handshake(V,w,W){const A=V.data;if(w)j.#j(V,A.#K);else A.#w=2,A.dispatchEvent(new ErrorEvent(\"error\",{error:W})),V.end()},data(V,w){const W=V.data;switch(W.#w){case 0:{let A=w.toString();const X=A.indexOf(\"\\r\\n\\r\\n\");if(X===-1){W.#O+=A;return}if(W.#O.length)W.#O+=A,A=W.#O,W.#O=\"\";const B=A.substring(0,X),Y=B.indexOf(\"\\r\\n\");if(Y===-1){W.#w=2,W.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Invalid HTTP request\")})),V.end();return}const F=B.substring(0,Y);if(F!==\"HTTP/1.1 200 OK\"){W.#w=2,W.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(F)})),V.end();return}let G=Y+1,J=!1,Z=-1;for(;;){let z=B.indexOf(\"\\r\\n\",G);if(z===-1){if(G>=B.length){if(!J)W.#w=2,W.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's response has no MIME type and \"text/event-stream\" is required. Aborting the connection.`)})),V.end();return}z=B.length}const L=B.substring(G+1,z),H=L.indexOf(\":\"),M=L.substring(0,H),Q=M.localeCompare(\"content-type\",@undefined,{sensitivity:\"accent\"})===0;if(G=z+1,Q)if(L.endsWith(\" text/event-stream\"))J=!0;else{W.#w=2,W.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's response has a MIME type that is not \"text/event-stream\". Aborting the connection.`)})),V.end();return}else if(M.localeCompare(\"content-length\",@undefined,{sensitivity:\"accent\"})===0){if(Z=parseInt(L.substring(H+1).trim(),10),@isNaN(Z)||Z<=0){W.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's Content-Length is invalid. Aborting the connection.`)})),V.end();return}if(J)break}else if(M.localeCompare(\"transfer-encoding\",@undefined,{sensitivity:\"accent\"})===0){if(L.substring(H+1).trim()!==\"chunked\"){W.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's Transfer-Encoding is invalid. Aborting the connection.`)})),V.end();return}if(Z=0,J)break}}W.#Q=Z,W.#w=1,W.dispatchEvent(new Event(\"open\"));const K=A.substring(X+4);if(j.#Y(W,K,0),W.#Q>0){if(W.#U+=K.length,W.#U>=W.#Q)W.#w=2,V.end()}return}case 1:if(j.#Y(W,w.toString(),2),W.#Q>0){if(W.#U+=w.byteLength,W.#U>=W.#Q)W.#w=2,V.end()}return;default:break}},drain(V){const w=V.data;if(w.#w===0){const W=w.#O;if(W.length){const A=V.write(W);if(A!==W.length)V.data.#$=W.substring(A);else V.data.#$=\"\"}}},close:j.#z,end(V){j.#z(V).dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Connection closed by server\")}))},timeout(V){j.#z(V).dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Timeout\")}))},binaryType:\"buffer\"};static#z(V){const w=V.data;if(w.#M=null,w.#U=0,w.#w=2,w.#J){if(w.#W)clearTimeout(w.#W);w.#W=setTimeout(j.#X,w.#V,w)}return w}constructor(V,w=@undefined){super();const W=new URL(V);this.#L=W.protocol===\"https:\",this.#K=W,this.#w=2,process.nextTick(j.#X,this)}ref(){this.#W\?.ref(),this.#M\?.ref()}unref(){this.#W\?.unref(),this.#M\?.unref()}#H(){if(this.#w!==2)return;const V=this.#K,w=this.#L;this.#w=0,@Bun.connect({data:this,socket:j.#Z,hostname:V.hostname,port:parseInt(V.port||(w\?\"443\":\"80\"),10),tls:w\?{requestCert:!0,rejectUnauthorized:!1}:!1}).catch((W)=>{if(super.dispatchEvent(new ErrorEvent(\"error\",{error:W})),this.#J){if(this.#W)this.#W.unref\?.();this.#W=setTimeout(j.#X,1000,this)}})}get url(){return this.#K.href}get readyState(){return this.#w}close(){this.#J=!1,this.#w=2,this.#M\?.unref(),this.#M\?.end()}get onopen(){return this.#B}get onerror(){return this.#G}get onmessage(){return this.#A}set onopen(V){if(this.#B)super.removeEventListener(\"close\",this.#B);super.addEventListener(\"open\",V),this.#B=V}set onerror(V){if(this.#G)super.removeEventListener(\"error\",this.#G);super.addEventListener(\"error\",V),this.#G=V}set onmessage(V){if(this.#A)super.removeEventListener(\"message\",this.#A);super.addEventListener(\"message\",V),this.#A=V}}return Object.defineProperty(j.prototype,\"CONNECTING\",{enumerable:!0,value:0}),Object.defineProperty(j.prototype,\"OPEN\",{enumerable:!0,value:1}),Object.defineProperty(j.prototype,\"CLOSED\",{enumerable:!0,value:2}),j[Symbol.for(\"CommonJS\")]=0,j})\n"; +const char* const s_eventSourceGetEventSourceCode = "(function (){\"use strict\";class j extends EventTarget{#$;#j;#w;#A;#B;#F=!1;#G=null;#J=\"\";#K=\"\";#L=\"\";#M=!0;#O=0;#Q=0;#U=0;#V=null;static#W(w){w.#H()}static#X(w,A){const B=w.data,F=B.#L\?`Last-Event-ID: ${B.#L}\\r\\n`:\"\",G=`GET ${A.pathname}${A.search} HTTP/1.1\\r\\nHost: bun\\r\\nContent-type: text/event-stream\\r\\nContent-length: 0\\r\\n${F}\\r\\n`,J=w.write(G);if(J!==G.length)B.#K=G.substring(J)}static#Y(w,A,B){for(;;){if(B>=A.length)return;let F=-1,G=A.indexOf(\"\\r\\n\",B);const J=G+2;if(G>0)if(w.#O===0){const Q=parseInt(A.substring(B,G),16);if(Q===0){w.#j=2,w.#G\?.end();return}F=J+Q}else F=A.length;else{if(w.#J.length===0){w.#J+=A.substring(B);return}F=A.length}let K=A.substring(J,F);B=F+2;let L=0,M=K.indexOf(\"\\n\\n\");if(M==-1){w.#J+=A.substring(J);return}if(w.#J.length)w.#J+=K,K=w.#J,w.#J=\"\";let O=!0;while(O){const Q=K.substring(L,M);let U,V=\"\",W,X=0,Y=-1;for(;;){let z=Q.indexOf(\"\\n\",X);if(z===-1){if(X>=Q.length)break;z=Q.length}const H=Q.substring(X,z);if(H.startsWith(\"data:\"))if(V.length)V+=`\\n${H.substring(5).trim()}`;else V=H.substring(5).trim();else if(H.startsWith(\"event:\"))U=H.substring(6).trim();else if(H.startsWith(\"id:\"))W=H.substring(3).trim();else if(H.startsWith(\"retry:\")){if(Y=parseInt(H.substring(6).trim(),10),@isNaN(Y))Y=-1}X=z+1}if(w.#L=W||\"\",Y>=0)w.#U=Y;if(V||W||U)w.dispatchEvent(new MessageEvent(U||\"message\",{data:V||\"\",origin:w.#$.origin,source:w,lastEventId:W}));if(K.length===M+2){O=!1;break}const Z=K.indexOf(\"\\n\\n\",M+1);if(Z===-1)break;L=M,M=Z}}}static#Z={open(w){const A=w.data;if(A.#G=w,!A.#F)j.#X(w,A.#$)},handshake(w,A,B){const F=w.data;if(A)j.#X(w,F.#$);else F.#j=2,F.dispatchEvent(new ErrorEvent(\"error\",{error:B})),w.end()},data(w,A){const B=w.data;switch(B.#j){case 0:{let F=A.toString();const G=F.indexOf(\"\\r\\n\\r\\n\");if(G===-1){B.#J+=F;return}if(B.#J.length)B.#J+=F,F=B.#J,B.#J=\"\";const J=F.substring(0,G),K=J.indexOf(\"\\r\\n\");if(K===-1){B.#j=2,B.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Invalid HTTP request\")})),w.end();return}const L=J.substring(0,K);if(L!==\"HTTP/1.1 200 OK\"){B.#j=2,B.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(L)})),w.end();return}let M=K+1,O=!1,Q=-1;for(;;){let V=J.indexOf(\"\\r\\n\",M);if(V===-1){if(M>=J.length){if(!O)B.#j=2,B.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's response has no MIME type and \"text/event-stream\" is required. Aborting the connection.`)})),w.end();return}V=J.length}const W=J.substring(M+1,V),X=W.indexOf(\":\"),Y=W.substring(0,X),Z=Y.localeCompare(\"content-type\",@undefined,{sensitivity:\"accent\"})===0;if(M=V+1,Z)if(W.endsWith(\" text/event-stream\"))O=!0;else{B.#j=2,B.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's response has a MIME type that is not \"text/event-stream\". Aborting the connection.`)})),w.end();return}else if(Y.localeCompare(\"content-length\",@undefined,{sensitivity:\"accent\"})===0){if(Q=parseInt(W.substring(X+1).trim(),10),@isNaN(Q)||Q<=0){B.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's Content-Length is invalid. Aborting the connection.`)})),w.end();return}if(O)break}else if(Y.localeCompare(\"transfer-encoding\",@undefined,{sensitivity:\"accent\"})===0){if(W.substring(X+1).trim()!==\"chunked\"){B.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's Transfer-Encoding is invalid. Aborting the connection.`)})),w.end();return}if(Q=0,O)break}}B.#O=Q,B.#j=1,B.dispatchEvent(new Event(\"open\"));const U=F.substring(G+4);if(j.#Y(B,U,0),B.#O>0){if(B.#Q+=U.length,B.#Q>=B.#O)B.#j=2,w.end()}return}case 1:if(j.#Y(B,A.toString(),2),B.#O>0){if(B.#Q+=A.byteLength,B.#Q>=B.#O)B.#j=2,w.end()}return;default:break}},drain(w){const A=w.data;if(A.#j===0){const B=A.#J;if(B.length){const F=w.write(B);if(F!==B.length)w.data.#K=B.substring(F);else w.data.#K=\"\"}}},close:j.#z,end(w){j.#z(w).dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Connection closed by server\")}))},timeout(w){j.#z(w).dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Timeout\")}))},binaryType:\"buffer\"};static#z(w){const A=w.data;if(A.#G=null,A.#Q=0,A.#j=2,A.#M){if(A.#V)clearTimeout(A.#V);A.#V=setTimeout(j.#W,A.#U,A)}return A}constructor(w,A=@undefined){super();const B=new URL(w);this.#F=B.protocol===\"https:\",this.#$=B,this.#j=2,process.nextTick(j.#W,this)}ref(){this.#V\?.ref(),this.#G\?.ref()}unref(){this.#V\?.unref(),this.#G\?.unref()}#H(){if(this.#j!==2)return;const w=this.#$,A=this.#F;this.#j=0,@Bun.connect({data:this,socket:j.#Z,hostname:w.hostname,port:parseInt(w.port||(A\?\"443\":\"80\"),10),tls:A\?{requestCert:!0,rejectUnauthorized:!1}:!1}).catch((B)=>{if(super.dispatchEvent(new ErrorEvent(\"error\",{error:B})),this.#M){if(this.#V)this.#V.unref\?.();this.#V=setTimeout(j.#W,1000,this)}})}get url(){return this.#$.href}get readyState(){return this.#j}close(){this.#M=!1,this.#j=2,this.#G\?.unref(),this.#G\?.end()}get onopen(){return this.#B}get onerror(){return this.#w}get onmessage(){return this.#A}set onopen(w){if(this.#B)super.removeEventListener(\"close\",this.#B);super.addEventListener(\"open\",w),this.#B=w}set onerror(w){if(this.#w)super.removeEventListener(\"error\",this.#w);super.addEventListener(\"error\",w),this.#w=w}set onmessage(w){if(this.#A)super.removeEventListener(\"message\",this.#A);super.addEventListener(\"message\",w),this.#A=w}}return Object.defineProperty(j.prototype,\"CONNECTING\",{enumerable:!0,value:0}),Object.defineProperty(j.prototype,\"OPEN\",{enumerable:!0,value:1}),Object.defineProperty(j.prototype,\"CLOSED\",{enumerable:!0,value:2}),j[Symbol.for(\"CommonJS\")]=0,j})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ diff --git a/src/js/out/WebCoreJSBuiltins.h b/src/js/out/WebCoreJSBuiltins.h index e79dc1922..d17918af2 100644 --- a/src/js/out/WebCoreJSBuiltins.h +++ b/src/js/out/WebCoreJSBuiltins.h @@ -1354,6 +1354,106 @@ inline void TransformStreamBuiltinsWrapper::exportNames() WEBCORE_FOREACH_TRANSFORMSTREAM_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME) #undef EXPORT_FUNCTION_NAME } +/* Module.ts */ +// main +#define WEBCORE_BUILTIN_MODULE_MAIN 1 +extern const char* const s_moduleMainCode; +extern const int s_moduleMainCodeLength; +extern const JSC::ConstructAbility s_moduleMainCodeConstructAbility; +extern const JSC::ConstructorKind s_moduleMainCodeConstructorKind; +extern const JSC::ImplementationVisibility s_moduleMainCodeImplementationVisibility; + +// require +#define WEBCORE_BUILTIN_MODULE_REQUIRE 1 +extern const char* const s_moduleRequireCode; +extern const int s_moduleRequireCodeLength; +extern const JSC::ConstructAbility s_moduleRequireCodeConstructAbility; +extern const JSC::ConstructorKind s_moduleRequireCodeConstructorKind; +extern const JSC::ImplementationVisibility s_moduleRequireCodeImplementationVisibility; + +// requireResolve +#define WEBCORE_BUILTIN_MODULE_REQUIRERESOLVE 1 +extern const char* const s_moduleRequireResolveCode; +extern const int s_moduleRequireResolveCodeLength; +extern const JSC::ConstructAbility s_moduleRequireResolveCodeConstructAbility; +extern const JSC::ConstructorKind s_moduleRequireResolveCodeConstructorKind; +extern const JSC::ImplementationVisibility s_moduleRequireResolveCodeImplementationVisibility; + +#define WEBCORE_FOREACH_MODULE_BUILTIN_DATA(macro) \ + macro(main, moduleMain, 0) \ + macro(require, moduleRequire, 1) \ + macro(requireResolve, moduleRequireResolve, 1) \ + +#define WEBCORE_FOREACH_MODULE_BUILTIN_CODE(macro) \ + macro(moduleMainCode, main, "get main"_s, s_moduleMainCodeLength) \ + macro(moduleRequireCode, require, ASCIILiteral(), s_moduleRequireCodeLength) \ + macro(moduleRequireResolveCode, requireResolve, ASCIILiteral(), s_moduleRequireResolveCodeLength) \ + +#define WEBCORE_FOREACH_MODULE_BUILTIN_FUNCTION_NAME(macro) \ + macro(main) \ + macro(require) \ + macro(requireResolve) \ + +#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ + JSC::FunctionExecutable* codeName##Generator(JSC::VM&); + +WEBCORE_FOREACH_MODULE_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR) +#undef DECLARE_BUILTIN_GENERATOR + +class ModuleBuiltinsWrapper : private JSC::WeakHandleOwner { +public: + explicit ModuleBuiltinsWrapper(JSC::VM& vm) + : m_vm(vm) + WEBCORE_FOREACH_MODULE_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES) +#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createWithoutCopying(s_##name, length), { })) + WEBCORE_FOREACH_MODULE_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS) +#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS + { + } + +#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \ + JSC::UnlinkedFunctionExecutable* name##Executable(); \ + const JSC::SourceCode& name##Source() const { return m_##name##Source; } + WEBCORE_FOREACH_MODULE_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES) +#undef EXPOSE_BUILTIN_EXECUTABLES + + WEBCORE_FOREACH_MODULE_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR) + + void exportNames(); + +private: + JSC::VM& m_vm; + + WEBCORE_FOREACH_MODULE_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES) + +#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \ + JSC::SourceCode m_##name##Source;\ + JSC::Weak m_##name##Executable; + WEBCORE_FOREACH_MODULE_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS) +#undef DECLARE_BUILTIN_SOURCE_MEMBERS + +}; + +#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \ +inline JSC::UnlinkedFunctionExecutable* ModuleBuiltinsWrapper::name##Executable() \ +{\ + if (!m_##name##Executable) {\ + JSC::Identifier executableName = functionName##PublicName();\ + if (overriddenName)\ + executableName = JSC::Identifier::fromString(m_vm, overriddenName);\ + m_##name##Executable = JSC::Weak(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ImplementationVisibility, s_##name##ConstructorKind, s_##name##ConstructAbility), this, &m_##name##Executable);\ + }\ + return m_##name##Executable.get();\ +} +WEBCORE_FOREACH_MODULE_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES) +#undef DEFINE_BUILTIN_EXECUTABLES + +inline void ModuleBuiltinsWrapper::exportNames() +{ +#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName()); + WEBCORE_FOREACH_MODULE_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME) +#undef EXPORT_FUNCTION_NAME +} /* JSBufferPrototype.ts */ // setBigUint64 #define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_SETBIGUINT64 1 @@ -5488,6 +5588,7 @@ public: , m_transformStreamInternalsBuiltins(m_vm) , m_processObjectInternalsBuiltins(m_vm) , m_transformStreamBuiltins(m_vm) + , m_moduleBuiltins(m_vm) , m_jsBufferPrototypeBuiltins(m_vm) , m_readableByteStreamControllerBuiltins(m_vm) , m_consoleObjectBuiltins(m_vm) @@ -5520,6 +5621,7 @@ public: TransformStreamInternalsBuiltinsWrapper& transformStreamInternalsBuiltins() { return m_transformStreamInternalsBuiltins; } ProcessObjectInternalsBuiltinsWrapper& processObjectInternalsBuiltins() { return m_processObjectInternalsBuiltins; } TransformStreamBuiltinsWrapper& transformStreamBuiltins() { return m_transformStreamBuiltins; } + ModuleBuiltinsWrapper& moduleBuiltins() { return m_moduleBuiltins; } JSBufferPrototypeBuiltinsWrapper& jsBufferPrototypeBuiltins() { return m_jsBufferPrototypeBuiltins; } ReadableByteStreamControllerBuiltinsWrapper& readableByteStreamControllerBuiltins() { return m_readableByteStreamControllerBuiltins; } ConsoleObjectBuiltinsWrapper& consoleObjectBuiltins() { return m_consoleObjectBuiltins; } @@ -5547,6 +5649,7 @@ private: TransformStreamInternalsBuiltinsWrapper m_transformStreamInternalsBuiltins; ProcessObjectInternalsBuiltinsWrapper m_processObjectInternalsBuiltins; TransformStreamBuiltinsWrapper m_transformStreamBuiltins; + ModuleBuiltinsWrapper m_moduleBuiltins; JSBufferPrototypeBuiltinsWrapper m_jsBufferPrototypeBuiltins; ReadableByteStreamControllerBuiltinsWrapper m_readableByteStreamControllerBuiltins; ConsoleObjectBuiltinsWrapper m_consoleObjectBuiltins; diff --git a/src/js/out/modules/node/assert.js b/src/js/out/modules/node/assert.js index 172a95445..4086ef8d5 100644 --- a/src/js/out/modules/node/assert.js +++ b/src/js/out/modules/node/assert.js @@ -1,53 +1,53 @@ -var V0=function(){throw new Error("CallTracker is not supported yet")},{Bun:$0}=import.meta.primordials,X0=$0.deepEquals;var U0=(H,Q)=>function(){return Q||(0,H[Object.keys(H)[0]])((Q={exports:{}}).exports,Q),Q.exports};var K0=(H)=>import.meta.require(H),W0=U0({"assert/build/internal/errors.js"(H,Q){function Z(v){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Z=function(T){return typeof T}:Z=function(T){return T&&typeof Symbol=="function"&&T.constructor===Symbol&&T!==Symbol.prototype?"symbol":typeof T},Z(v)}function J(v,T){if(!(v instanceof T))throw new TypeError("Cannot call a class as a function")}function z(v,T){return T&&(Z(T)==="object"||typeof T=="function")?T:X(v)}function X(v){if(v===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return v}function K(v){return K=Object.setPrototypeOf?Object.getPrototypeOf:function(T){return T.__proto__||Object.getPrototypeOf(T)},K(v)}function Y(v,T){if(typeof T!="function"&&T!==null)throw new TypeError("Super expression must either be null or a function");v.prototype=Object.create(T&&T.prototype,{constructor:{value:v,writable:!0,configurable:!0}}),T&&$(v,T)}function $(v,T){return $=Object.setPrototypeOf||function(w,F){return w.__proto__=F,w},$(v,T)}var U={},W,B;function D(v,T,w){w||(w=Error);function F(N,A,I){return typeof T=="string"?T:T(N,A,I)}var O=function(N){Y(A,N);function A(I,P,S){var j;return J(this,A),j=z(this,K(A).call(this,F(I,P,S))),j.code=v,j}return A}(w);U[v]=O}function V(v,T){if(Array.isArray(v)){var w=v.length;return v=v.map(function(F){return String(F)}),w>2?"one of ".concat(T," ").concat(v.slice(0,w-1).join(", "),", or ")+v[w-1]:w===2?"one of ".concat(T," ").concat(v[0]," or ").concat(v[1]):"of ".concat(T," ").concat(v[0])}else return"of ".concat(T," ").concat(String(v))}function M(v,T,w){return v.substr(!w||w<0?0:+w,T.length)===T}function G(v,T,w){return(w===void 0||w>v.length)&&(w=v.length),v.substring(w-T.length,w)===T}function q(v,T,w){return typeof w!="number"&&(w=0),w+T.length>v.length?!1:v.indexOf(T,w)!==-1}D("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),D("ERR_INVALID_ARG_TYPE",function(v,T,w){W===void 0&&(W=Y0()),W(typeof v=="string","'name' must be a string");var F;typeof T=="string"&&M(T,"not ")?(F="must not be",T=T.replace(/^not /,"")):F="must be";var O;if(G(v," argument"))O="The ".concat(v," ").concat(F," ").concat(V(T,"type"));else{var N=q(v,".")?"property":"argument";O='The "'.concat(v,'" ').concat(N," ").concat(F," ").concat(V(T,"type"))}return O+=". Received type ".concat(Z(w)),O},TypeError),D("ERR_INVALID_ARG_VALUE",function(v,T){var w=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"is invalid";B===void 0&&(B=K0("util"));var F=B.inspect(T);return F.length>128&&(F="".concat(F.slice(0,128),"...")),"The argument '".concat(v,"' ").concat(w,". Received ").concat(F)},TypeError,RangeError),D("ERR_INVALID_RETURN_VALUE",function(v,T,w){var F;return w&&w.constructor&&w.constructor.name?F="instance of ".concat(w.constructor.name):F="type ".concat(Z(w)),"Expected ".concat(v,' to be returned from the "').concat(T,'"')+" function but got ".concat(F,".")},TypeError),D("ERR_MISSING_ARGS",function(){for(var v=arguments.length,T=new Array(v),w=0;w0,"At least one arg needs to be specified");var F="The ",O=T.length;switch(T=T.map(function(N){return'"'.concat(N,'"')}),O){case 1:F+="".concat(T[0]," argument");break;case 2:F+="".concat(T[0]," and ").concat(T[1]," arguments");break;default:F+=T.slice(0,O-1).join(", "),F+=", and ".concat(T[O-1]," arguments");break}return"".concat(F," must be specified")},TypeError),Q.exports.codes=U}}),B0=U0({"assert/build/internal/assert/assertion_error.js"(H,Q){function Z(b){for(var h=1;hb.length)&&(k=b.length),b.substring(k-h.length,k)===h}function N(b,h){if(h=Math.floor(h),b.length==0||h==0)return"";var k=b.length*h;for(h=Math.floor(Math.log(h)/Math.log(2));h;)b+=b,h--;return b+=b.substring(0,k-b.length),b}var A="",I="",P="",S="",j={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"},R=10;function f(b){var h=Object.keys(b),k=Object.create(Object.getPrototypeOf(b));return h.forEach(function(x){k[x]=b[x]}),Object.defineProperty(k,"message",{value:b.message}),k}function C(b){return T(b,{compact:!1,customInspect:!1,depth:1000,maxArrayLength:Infinity,showHidden:!1,breakLength:Infinity,showProxy:!1,sorted:!0,getters:!0})}function E(b,h,k){var x="",y="",m=0,g="",d=!1,_=C(b),u=_.split(` -`),i=C(h).split(` -`),p=0,n="";if(k==="strictEqual"&&q(b)==="object"&&q(h)==="object"&&b!==null&&h!==null&&(k="strictEqualObject"),u.length===1&&i.length===1&&u[0]!==i[0]){var l=u[0].length+i[0].length;if(l<=R){if((q(b)!=="object"||b===null)&&(q(h)!=="object"||h===null)&&(b!==0||h!==0))return"".concat(j[k],` +import X1 from"node:util";var D1=function(){throw new Error("CallTracker is not supported yet")},{Bun:$1}=globalThis[Symbol.for("Bun.lazy")]("primordials"),z1=$1.deepEquals,W1=(H,Q)=>function(){return Q||(0,H[Object.keys(H)[0]])((Q={exports:{}}).exports,Q),Q.exports},Y1=W1({"assert/build/internal/errors.js"(H,Q){function Z(G){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Z=function(T){return typeof T}:Z=function(T){return T&&typeof Symbol=="function"&&T.constructor===Symbol&&T!==Symbol.prototype?"symbol":typeof T},Z(G)}function J(G,T){if(!(G instanceof T))throw new TypeError("Cannot call a class as a function")}function z(G,T){return T&&(Z(T)==="object"||typeof T=="function")?T:X(G)}function X(G){if(G===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return G}function U(G){return U=Object.setPrototypeOf?Object.getPrototypeOf:function(T){return T.__proto__||Object.getPrototypeOf(T)},U(G)}function $(G,T){if(typeof T!="function"&&T!==null)throw new TypeError("Super expression must either be null or a function");G.prototype=Object.create(T&&T.prototype,{constructor:{value:G,writable:!0,configurable:!0}}),T&&K(G,T)}function K(G,T){return K=Object.setPrototypeOf||function(w,O){return w.__proto__=O,w},K(G,T)}var W={},Y,B;function V(G,T,w){w||(w=Error);function O(N,I,P){return typeof T=="string"?T:T(N,I,P)}var F=function(N){$(I,N);function I(P,A,S){var j;return J(this,I),j=z(this,U(I).call(this,O(P,A,S))),j.code=G,j}return I}(w);W[G]=F}function D(G,T){if(Array.isArray(G)){var w=G.length;return G=G.map(function(O){return String(O)}),w>2?"one of ".concat(T," ").concat(G.slice(0,w-1).join(", "),", or ")+G[w-1]:w===2?"one of ".concat(T," ").concat(G[0]," or ").concat(G[1]):"of ".concat(T," ").concat(G[0])}else return"of ".concat(T," ").concat(String(G))}function M(G,T,w){return G.substr(!w||w<0?0:+w,T.length)===T}function q(G,T,w){return(w===void 0||w>G.length)&&(w=G.length),G.substring(w-T.length,w)===T}function v(G,T,w){return typeof w!="number"&&(w=0),w+T.length>G.length?!1:G.indexOf(T,w)!==-1}V("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),V("ERR_INVALID_ARG_TYPE",function(G,T,w){Y===void 0&&(Y=U1()),Y(typeof G=="string","'name' must be a string");var O;typeof T=="string"&&M(T,"not ")?(O="must not be",T=T.replace(/^not /,"")):O="must be";var F;if(q(G," argument"))F="The ".concat(G," ").concat(O," ").concat(D(T,"type"));else{var N=v(G,".")?"property":"argument";F='The "'.concat(G,'" ').concat(N," ").concat(O," ").concat(D(T,"type"))}return F+=". Received type ".concat(Z(w)),F},TypeError),V("ERR_INVALID_ARG_VALUE",function(G,T){var w=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"is invalid",O=B.inspect(T);return O.length>128&&(O="".concat(O.slice(0,128),"...")),"The argument '".concat(G,"' ").concat(w,". Received ").concat(O)},TypeError,RangeError),V("ERR_INVALID_RETURN_VALUE",function(G,T,w){var O;return w&&w.constructor&&w.constructor.name?O="instance of ".concat(w.constructor.name):O="type ".concat(Z(w)),"Expected ".concat(G,' to be returned from the "').concat(T,'"')+" function but got ".concat(O,".")},TypeError),V("ERR_MISSING_ARGS",function(){for(var G=arguments.length,T=new Array(G),w=0;w0,"At least one arg needs to be specified");var O="The ",F=T.length;switch(T=T.map(function(N){return'"'.concat(N,'"')}),F){case 1:O+="".concat(T[0]," argument");break;case 2:O+="".concat(T[0]," and ").concat(T[1]," arguments");break;default:O+=T.slice(0,F-1).join(", "),O+=", and ".concat(T[F-1]," arguments");break}return"".concat(O," must be specified")},TypeError),Q.exports.codes=W}}),B1=W1({"assert/build/internal/assert/assertion_error.js"(H,Q){function Z(L){for(var b=1;bL.length)&&(h=L.length),L.substring(h-b.length,h)===b}function F(L,b){if(b=Math.floor(b),L.length==0||b==0)return"";var h=L.length*b;for(b=Math.floor(Math.log(b)/Math.log(2));b;)L+=L,b--;return L+=L.substring(0,h-L.length),L}var N="",I="",P="",A="",S={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"},j=10;function R(L){var b=Object.keys(L),h=Object.create(Object.getPrototypeOf(L));return b.forEach(function(k){h[k]=L[k]}),Object.defineProperty(h,"message",{value:L.message}),h}function f(L){return G(L,{compact:!1,customInspect:!1,depth:1000,maxArrayLength:Infinity,showHidden:!1,breakLength:Infinity,showProxy:!1,sorted:!0,getters:!0})}function C(L,b,h){var k="",m="",x=0,y="",g=!1,d=f(L),_=d.split(` +`),u=f(b).split(` +`),n=0,i="";if(h==="strictEqual"&&v(L)==="object"&&v(b)==="object"&&L!==null&&b!==null&&(h="strictEqualObject"),_.length===1&&u.length===1&&_[0]!==u[0]){var p=_[0].length+u[0].length;if(p<=j){if((v(L)!=="object"||L===null)&&(v(b)!=="object"||b===null)&&(L!==0||b!==0))return"".concat(S[h],` -`)+"".concat(u[0]," !== ").concat(i[0],` -`)}else if(k!=="strictEqualObject"){var c=process.stderr&&process.stderr.isTTY?process.stderr.columns:80;if(l2&&(n=` - `.concat(N(" ",p),"^"),p=0)}}}for(var o=u[u.length-1],a=i[i.length-1];o===a&&(p++<2?g=` - `.concat(o).concat(g):x=o,u.pop(),i.pop(),!(u.length===0||i.length===0));)o=u[u.length-1],a=i[i.length-1];var t=Math.max(u.length,i.length);if(t===0){var s=_.split(` -`);if(s.length>30)for(s[26]="".concat(A,"...").concat(S);s.length>27;)s.pop();return"".concat(j.notIdentical,` +`)+"".concat(_[0]," !== ").concat(u[0],` +`)}else if(h!=="strictEqualObject"){var l=process.stderr&&process.stderr.isTTY?process.stderr.columns:80;if(p2&&(i=` + `.concat(F(" ",n),"^"),n=0)}}}for(var c=_[_.length-1],o=u[u.length-1];c===o&&(n++<2?y=` + `.concat(c).concat(y):k=c,_.pop(),u.pop(),!(_.length===0||u.length===0));)c=_[_.length-1],o=u[u.length-1];var a=Math.max(_.length,u.length);if(a===0){var t=d.split(` +`);if(t.length>30)for(t[26]="".concat(N,"...").concat(A);t.length>27;)t.pop();return"".concat(S.notIdentical,` -`).concat(s.join(` +`).concat(t.join(` `),` -`)}p>3&&(g=` -`.concat(A,"...").concat(S).concat(g),d=!0),x!==""&&(g=` - `.concat(x).concat(g),x="");var r=0,e=j[k]+` -`.concat(I,"+ actual").concat(S," ").concat(P,"- expected").concat(S),H0=" ".concat(A,"...").concat(S," Lines skipped");for(p=0;p1&&p>2&&(Q0>4?(y+=` -`.concat(A,"...").concat(S),d=!0):Q0>3&&(y+=` - `.concat(i[p-2]),r++),y+=` - `.concat(i[p-1]),r++),m=p,x+=` -`.concat(P,"-").concat(S," ").concat(i[p]),r++;else if(i.length1&&p>2&&(Q0>4?(y+=` -`.concat(A,"...").concat(S),d=!0):Q0>3&&(y+=` - `.concat(u[p-2]),r++),y+=` - `.concat(u[p-1]),r++),m=p,y+=` -`.concat(I,"+").concat(S," ").concat(u[p]),r++;else{var Z0=i[p],J0=u[p],z0=J0!==Z0&&(!O(J0,",")||J0.slice(0,-1)!==Z0);z0&&O(Z0,",")&&Z0.slice(0,-1)===J0&&(z0=!1,J0+=","),z0?(Q0>1&&p>2&&(Q0>4?(y+=` -`.concat(A,"...").concat(S),d=!0):Q0>3&&(y+=` - `.concat(u[p-2]),r++),y+=` - `.concat(u[p-1]),r++),m=p,y+=` -`.concat(I,"+").concat(S," ").concat(J0),x+=` -`.concat(P,"-").concat(S," ").concat(Z0),r+=2):(y+=x,x="",(Q0===1||p===0)&&(y+=` - `.concat(J0),r++))}if(r>20&&p30)for(p[26]="".concat(A,"...").concat(S);p.length>27;)p.pop();p.length===1?x=Y(this,G(h).call(this,"".concat(i," ").concat(p[0]))):x=Y(this,G(h).call(this,"".concat(i,` +`)}n>3&&(y=` +`.concat(N,"...").concat(A).concat(y),g=!0),k!==""&&(y=` + `.concat(k).concat(y),k="");var r=0,s=S[h]+` +`.concat(I,"+ actual").concat(A," ").concat(P,"- expected").concat(A),e=" ".concat(N,"...").concat(A," Lines skipped");for(n=0;n1&&n>2&&(H1>4?(m+=` +`.concat(N,"...").concat(A),g=!0):H1>3&&(m+=` + `.concat(u[n-2]),r++),m+=` + `.concat(u[n-1]),r++),x=n,k+=` +`.concat(P,"-").concat(A," ").concat(u[n]),r++;else if(u.length1&&n>2&&(H1>4?(m+=` +`.concat(N,"...").concat(A),g=!0):H1>3&&(m+=` + `.concat(_[n-2]),r++),m+=` + `.concat(_[n-1]),r++),x=n,m+=` +`.concat(I,"+").concat(A," ").concat(_[n]),r++;else{var Q1=u[n],Z1=_[n],J1=Z1!==Q1&&(!O(Z1,",")||Z1.slice(0,-1)!==Q1);J1&&O(Q1,",")&&Q1.slice(0,-1)===Z1&&(J1=!1,Z1+=","),J1?(H1>1&&n>2&&(H1>4?(m+=` +`.concat(N,"...").concat(A),g=!0):H1>3&&(m+=` + `.concat(_[n-2]),r++),m+=` + `.concat(_[n-1]),r++),x=n,m+=` +`.concat(I,"+").concat(A," ").concat(Z1),k+=` +`.concat(P,"-").concat(A," ").concat(Q1),r+=2):(m+=k,k="",(H1===1||n===0)&&(m+=` + `.concat(Z1),r++))}if(r>20&&n30)for(n[26]="".concat(N,"...").concat(A);n.length>27;)n.pop();n.length===1?k=$(this,q(b).call(this,"".concat(u," ").concat(n[0]))):k=$(this,q(b).call(this,"".concat(u,` -`).concat(p.join(` +`).concat(n.join(` `),` -`)))}else{var n=C(d),l="",c=j[m];m==="notDeepEqual"||m==="notEqual"?(n="".concat(j[m],` +`)))}else{var i=f(g),p="",l=S[x];x==="notDeepEqual"||x==="notEqual"?(i="".concat(S[x],` -`).concat(n),n.length>1024&&(n="".concat(n.slice(0,1021),"..."))):(l="".concat(C(_)),n.length>512&&(n="".concat(n.slice(0,509),"...")),l.length>512&&(l="".concat(l.slice(0,509),"...")),m==="deepEqual"||m==="equal"?n="".concat(c,` +`).concat(i),i.length>1024&&(i="".concat(i.slice(0,1021),"..."))):(p="".concat(f(d)),i.length>512&&(i="".concat(i.slice(0,509),"...")),p.length>512&&(p="".concat(p.slice(0,509),"...")),x==="deepEqual"||x==="equal"?i="".concat(l,` -`).concat(n,` +`).concat(i,` should equal -`):l=" ".concat(m," ").concat(l)),x=Y(this,G(h).call(this,"".concat(n).concat(l)))}return Error.stackTraceLimit=u,x.generatedMessage=!y,Object.defineProperty($(x),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),x.code="ERR_ASSERTION",x.actual=d,x.expected=_,x.operator=m,Error.captureStackTrace&&Error.captureStackTrace($(x),g),x.stack,x.name="AssertionError",Y(x)}return K(h,[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:T.custom,value:function(k,x){return T(this,Z({},x,{customInspect:!1,depth:0}))}}]),h}(W(Error));Q.exports=L}}),Y0=U0({"assert/build/assert.js"(H,Q){function Z(y){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Z=function(m){return typeof m}:Z=function(m){return m&&typeof Symbol=="function"&&m.constructor===Symbol&&m!==Symbol.prototype?"symbol":typeof m},Z(y)}function J(y,m){if(!(y instanceof m))throw new TypeError("Cannot call a class as a function")}var z=W0(),X=z.codes,K=X.ERR_AMBIGUOUS_ARGUMENT,Y=X.ERR_INVALID_ARG_TYPE,$=X.ERR_INVALID_ARG_VALUE,U=X.ERR_INVALID_RETURN_VALUE,W=X.ERR_MISSING_ARGS,B=B0(),D=K0("util"),V=D.inspect,M=K0("util").types,G=M.isPromise,q=M.isRegExp,v=Object.assign,T=Object.is,w=new Map,F=!1,O=Q.exports=S,N={};function A(y){throw y.message instanceof Error?y.message:new B(y)}function I(y,m,g,d,_){var u=arguments.length,i;if(u===0)i="Failed";else if(u===1)g=y,y=void 0;else{if(F===!1){F=!0;var p=process.emitWarning?process.emitWarning:console.warn.bind(console);p("assert.fail() with more than one argument is deprecated. Please use assert.strictEqual() instead or only pass a message.","DeprecationWarning","DEP0094")}u===2&&(d="!=")}if(g instanceof Error)throw g;var n={actual:y,expected:m,operator:d===void 0?"fail":d,stackStartFn:_||I};g!==void 0&&(n.message=g);var l=new B(n);throw i&&(l.message=i,l.generatedMessage=!0),l}O.fail=I,O.AssertionError=B;function P(y,m,g,d){if(!g){var _=!1;if(m===0)_=!0,d="No value argument passed to `assert.ok()`";else if(d instanceof Error)throw d;var u=new B({actual:g,expected:!0,message:d,operator:"==",stackStartFn:y});throw u.generatedMessage=_,u}}function S(){for(var y=arguments.length,m=new Array(y),g=0;g1?g-1:0),_=1;_1?g-1:0),_=1;_1?g-1:0),_=1;_1?g-1:0),_=1;_1?g-1:0),_=1;_1?g-1:0),_=1;_1?g-1:0),_=1;_1?g-1:0),_=1;_ { - ({ drainMicrotasks } = import.meta.require("bun:jsc")), drainMicrotasks(); }, notImplemented = () => { console.warn("[bun] Warning: async_hooks has not been implemented yet. See https://github.com/oven-sh/bun/issues/1832"), notImplemented = () => { }; diff --git a/src/js/out/modules/node/child_process.js b/src/js/out/modules/node/child_process.js index ddc16e9e9..84bf59e83 100644 --- a/src/js/out/modules/node/child_process.js +++ b/src/js/out/modules/node/child_process.js @@ -1,3 +1,7 @@ +import {EventEmitter} from "node:events"; +import * as StreamModule from "node:stream"; +import {constants} from "node:os"; +import {promisify} from "node:util"; function spawn(file, args, options) { options = normalizeSpawnArguments(file, args, options), validateTimeout(options.timeout), validateAbortSignal(options.signal, "options.signal"); const killSignal2 = sanitizeKillSignal(options.killSignal), child = new ChildProcess; @@ -449,19 +453,14 @@ var validateFunction = function(value, name) { return new TypeError(`The value "${value}" is invalid for option "${name}"`); }, ERR_INVALID_ARG_VALUE = function(name, value, reason) { return new Error(`The value "${value}" is invalid for argument '${name}'. Reason: ${reason}`); -}, EventEmitter = import.meta.require("node:events"), { - Readable: { fromWeb: ReadableFromWeb }, - NativeWritable -} = import.meta.require("node:stream"), { - constants: { signals } -} = import.meta.require("node:os"), { promisify } = import.meta.require("node:util"), { ArrayBuffer, Uint8Array, String, Object, Buffer, Promise: Promise2 } = import.meta.primordials, ObjectPrototypeHasOwnProperty = Object.prototype.hasOwnProperty, ObjectCreate = Object.create, ObjectAssign = Object.assign, ObjectDefineProperty = Object.defineProperty, BufferConcat = Buffer.concat, BufferIsEncoding = Buffer.isEncoding, kEmptyObject = ObjectCreate(null), ArrayPrototypePush = Array.prototype.push, ArrayPrototypeReduce = Array.prototype.reduce, ArrayPrototypeFilter = Array.prototype.filter, ArrayPrototypeJoin = Array.prototype.join, ArrayPrototypeMap = Array.prototype.map, ArrayPrototypeIncludes = Array.prototype.includes, ArrayPrototypeSlice = Array.prototype.slice, ArrayPrototypeUnshift = Array.prototype.unshift, ArrayIsArray = Array.isArray, ArrayBufferIsView = ArrayBuffer.isView, NumberIsInteger = Number.isInteger; +}, signals = constants.signals, { ArrayBuffer, Uint8Array, String, Object, Buffer, Promise: Promise2 } = globalThis[Symbol.for("Bun.lazy")]("primordials"), ObjectPrototypeHasOwnProperty = Object.prototype.hasOwnProperty, ObjectCreate = Object.create, ObjectAssign = Object.assign, ObjectDefineProperty = Object.defineProperty, BufferConcat = Buffer.concat, BufferIsEncoding = Buffer.isEncoding, kEmptyObject = ObjectCreate(null), ArrayPrototypePush = Array.prototype.push, ArrayPrototypeJoin = Array.prototype.join, ArrayPrototypeMap = Array.prototype.map, ArrayPrototypeIncludes = Array.prototype.includes, ArrayPrototypeSlice = Array.prototype.slice, ArrayPrototypeUnshift = Array.prototype.unshift, ArrayIsArray = Array.isArray, ArrayBufferIsView = ArrayBuffer.isView, NumberIsInteger = Number.isInteger; var StringPrototypeToUpperCase = String.prototype.toUpperCase, StringPrototypeIncludes = String.prototype.includes, StringPrototypeSlice = String.prototype.slice, Uint8ArrayPrototypeIncludes = Uint8Array.prototype.includes, MAX_BUFFER = 1048576, __DEBUG__ = process.env.DEBUG || !1, __TRACK_STDIO__ = process.env.DEBUG_STDIO, debug = __DEBUG__ ? console.log : () => { }; if (__TRACK_STDIO__) debug("child_process: debug mode on"), globalThis.__lastId = null, globalThis.__getId = () => { return globalThis.__lastId !== null ? globalThis.__lastId++ : 0; }; -var customPromiseExecFunction = (orig) => { +var NativeWritable2, ReadableFromWeb, customPromiseExecFunction = (orig) => { return (...args) => { let resolve, reject; const promise = new Promise2((res, rej) => { @@ -520,12 +519,13 @@ class ChildProcess extends EventEmitter { debug("ChildProcess: getBunSpawnIo: this.#handle is null. This means the subprocess already exited"); else debug("ChildProcess: getBunSpawnIo: this.#handle is undefined"); + NativeWritable2 ||= StreamModule.NativeWritable, ReadableFromWeb ||= StreamModule.Readable.fromWeb; const io = this.#stdioOptions[i]; switch (i) { case 0: switch (io) { case "pipe": - return new NativeWritable(this.#handle.stdin); + return new NativeWritable2(this.#handle.stdin); case "inherit": return process.stdin || null; case "destroyed": @@ -537,10 +537,7 @@ class ChildProcess extends EventEmitter { case 1: switch (io) { case "pipe": - return ReadableFromWeb(this.#handle[fdToStdioName(i)], __TRACK_STDIO__ ? { - encoding, - __id: `PARENT_${fdToStdioName(i).toUpperCase()}-${globalThis.__getId()}` - } : { encoding }); + return ReadableFromWeb(this.#handle[fdToStdioName(i)], { encoding }); case "inherit": return process[fdToStdioName(i)] || null; case "destroyed": diff --git a/src/js/out/modules/node/cluster.js b/src/js/out/modules/node/cluster.js index 871fe0338..036e80380 100644 --- a/src/js/out/modules/node/cluster.js +++ b/src/js/out/modules/node/cluster.js @@ -1,4 +1,4 @@ -var EventEmitter = import.meta.require("node:events"); +import EventEmitter from "node:events"; // src/js/shared.ts function throwNotImplemented(feature, issue) { diff --git a/src/js/out/modules/node/crypto.js b/src/js/out/modules/node/crypto.js index 7968a8eef..503647e7c 100644 --- a/src/js/out/modules/node/crypto.js +++ b/src/js/out/modules/node/crypto.js @@ -1,4 +1,4 @@ -var T$=Object.defineProperty;var D$=Object.getOwnPropertyNames;var C$=536870888,L$=(bZ)=>import.meta.require(bZ),O$=globalThis.crypto,R$=O$;var P$=(bZ,$)=>function(){return $||(0,bZ[D$(bZ)[0]])(($={exports:{}}).exports,$),$.exports},z$=(bZ,$)=>{for(var Q in $)T$(bZ,Q,{get:$[Q],enumerable:!0})};var M$=P$({"node_modules/safe-buffer/index.js"(bZ,$){var Q=L$("buffer"),Y=Q.Buffer;function Z(V,U){for(var X in V)U[X]=V[X]}Y.from&&Y.alloc&&Y.allocUnsafe&&Y.allocUnsafeSlow?$.exports=Q:(Z(Q,bZ),bZ.Buffer=G);function G(V,U,X){return Y(V,U,X)}G.prototype=Object.create(Y.prototype),Z(Y,G),G.from=function(V,U,X){if(typeof V=="number")throw new TypeError("Argument must not be a number");return Y(V,U,X)},G.alloc=function(V,U,X){if(typeof V!="number")throw new TypeError("Argument must be a number");var K=Y(V);return U!==void 0?typeof X=="string"?K.fill(U,X):K.fill(U):K.fill(0),K},G.allocUnsafe=function(V){if(typeof V!="number")throw new TypeError("Argument must be a number");return Y(V)},G.allocUnsafeSlow=function(V){if(typeof V!="number")throw new TypeError("Argument must be a number");return Q.SlowBuffer(V)}}}),S$=P$({"node_modules/randombytes/browser.js"(bZ,$){var Q=65536,Y=4294967295;function Z(){throw new Error(`Secure random number generation is not supported by this browser. -Use Chrome, Firefox or Internet Explorer 11`)}var G=M$().Buffer,V=R$;V&&V.getRandomValues?$.exports=U:$.exports=Z;function U(X,K){if(X>Y)throw new RangeError("requested too many random bytes");var I=G.allocUnsafe(X);if(X>0)if(X>Q)for(var J=0;J=this._blockSize;){for(var J=this._blockOffset;J0;++O)this._length[O]+=F,F=this._length[O]/4294967296|0,F>0&&(this._length[O]-=4294967296*F);return this},V.prototype._update=function(){throw new Error("_update is not implemented")},V.prototype.digest=function(U){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var X=this._digest();U!==void 0&&(X=X.toString(U)),this._block.fill(0),this._blockOffset=0;for(var K=0;K<4;++K)this._length[K]=0;return X},V.prototype._digest=function(){throw new Error("_digest is not implemented")},$.exports=V}}),j$=P$({"node_modules/md5.js/index.js"(bZ,$){var Q=v$(),Y=q$(),Z=M$().Buffer,G=new Array(16);function V(){Y.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}Q(V,Y),V.prototype._update=function(){for(var O=G,F=0;F<16;++F)O[F]=this._block.readInt32LE(F*4);var A=this._a,W=this._b,H=this._c,E=this._d;A=X(A,W,H,E,O[0],3614090360,7),E=X(E,A,W,H,O[1],3905402710,12),H=X(H,E,A,W,O[2],606105819,17),W=X(W,H,E,A,O[3],3250441966,22),A=X(A,W,H,E,O[4],4118548399,7),E=X(E,A,W,H,O[5],1200080426,12),H=X(H,E,A,W,O[6],2821735955,17),W=X(W,H,E,A,O[7],4249261313,22),A=X(A,W,H,E,O[8],1770035416,7),E=X(E,A,W,H,O[9],2336552879,12),H=X(H,E,A,W,O[10],4294925233,17),W=X(W,H,E,A,O[11],2304563134,22),A=X(A,W,H,E,O[12],1804603682,7),E=X(E,A,W,H,O[13],4254626195,12),H=X(H,E,A,W,O[14],2792965006,17),W=X(W,H,E,A,O[15],1236535329,22),A=K(A,W,H,E,O[1],4129170786,5),E=K(E,A,W,H,O[6],3225465664,9),H=K(H,E,A,W,O[11],643717713,14),W=K(W,H,E,A,O[0],3921069994,20),A=K(A,W,H,E,O[5],3593408605,5),E=K(E,A,W,H,O[10],38016083,9),H=K(H,E,A,W,O[15],3634488961,14),W=K(W,H,E,A,O[4],3889429448,20),A=K(A,W,H,E,O[9],568446438,5),E=K(E,A,W,H,O[14],3275163606,9),H=K(H,E,A,W,O[3],4107603335,14),W=K(W,H,E,A,O[8],1163531501,20),A=K(A,W,H,E,O[13],2850285829,5),E=K(E,A,W,H,O[2],4243563512,9),H=K(H,E,A,W,O[7],1735328473,14),W=K(W,H,E,A,O[12],2368359562,20),A=I(A,W,H,E,O[5],4294588738,4),E=I(E,A,W,H,O[8],2272392833,11),H=I(H,E,A,W,O[11],1839030562,16),W=I(W,H,E,A,O[14],4259657740,23),A=I(A,W,H,E,O[1],2763975236,4),E=I(E,A,W,H,O[4],1272893353,11),H=I(H,E,A,W,O[7],4139469664,16),W=I(W,H,E,A,O[10],3200236656,23),A=I(A,W,H,E,O[13],681279174,4),E=I(E,A,W,H,O[0],3936430074,11),H=I(H,E,A,W,O[3],3572445317,16),W=I(W,H,E,A,O[6],76029189,23),A=I(A,W,H,E,O[9],3654602809,4),E=I(E,A,W,H,O[12],3873151461,11),H=I(H,E,A,W,O[15],530742520,16),W=I(W,H,E,A,O[2],3299628645,23),A=J(A,W,H,E,O[0],4096336452,6),E=J(E,A,W,H,O[7],1126891415,10),H=J(H,E,A,W,O[14],2878612391,15),W=J(W,H,E,A,O[5],4237533241,21),A=J(A,W,H,E,O[12],1700485571,6),E=J(E,A,W,H,O[3],2399980690,10),H=J(H,E,A,W,O[10],4293915773,15),W=J(W,H,E,A,O[1],2240044497,21),A=J(A,W,H,E,O[8],1873313359,6),E=J(E,A,W,H,O[15],4264355552,10),H=J(H,E,A,W,O[6],2734768916,15),W=J(W,H,E,A,O[13],1309151649,21),A=J(A,W,H,E,O[4],4149444226,6),E=J(E,A,W,H,O[11],3174756917,10),H=J(H,E,A,W,O[2],718787259,15),W=J(W,H,E,A,O[9],3951481745,21),this._a=this._a+A|0,this._b=this._b+W|0,this._c=this._c+H|0,this._d=this._d+E|0},V.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var O=Z.allocUnsafe(16);return O.writeInt32LE(this._a,0),O.writeInt32LE(this._b,4),O.writeInt32LE(this._c,8),O.writeInt32LE(this._d,12),O};function U(O,F){return O<>>32-F}function X(O,F,A,W,H,E,T){return U(O+(F&A|~F&W)+H+E|0,T)+F|0}function K(O,F,A,W,H,E,T){return U(O+(F&W|A&~W)+H+E|0,T)+F|0}function I(O,F,A,W,H,E,T){return U(O+(F^A^W)+H+E|0,T)+F|0}function J(O,F,A,W,H,E,T){return U(O+(A^(F|~W))+H+E|0,T)+F|0}$.exports=V}}),k$=P$({"node_modules/ripemd160/index.js"(bZ,$){var Q=L$("buffer").Buffer,Y=v$(),Z=q$(),G=new Array(16),V=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],U=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],X=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],K=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],I=[0,1518500249,1859775393,2400959708,2840853838],J=[1352829926,1548603684,1836072691,2053994217,0];function O(){Z.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}Y(O,Z),O.prototype._update=function(){for(var D=G,C=0;C<16;++C)D[C]=this._block.readInt32LE(C*4);for(var L=this._a|0,R=this._b|0,P=this._c|0,z=this._d|0,M=this._e|0,S=this._a|0,v=this._b|0,q=this._c|0,j=this._d|0,k=this._e|0,g=0;g<80;g+=1){var N,x;g<16?(N=A(L,R,P,z,M,D[V[g]],I[0],X[g]),x=T(S,v,q,j,k,D[U[g]],J[0],K[g])):g<32?(N=W(L,R,P,z,M,D[V[g]],I[1],X[g]),x=E(S,v,q,j,k,D[U[g]],J[1],K[g])):g<48?(N=H(L,R,P,z,M,D[V[g]],I[2],X[g]),x=H(S,v,q,j,k,D[U[g]],J[2],K[g])):g<64?(N=E(L,R,P,z,M,D[V[g]],I[3],X[g]),x=W(S,v,q,j,k,D[U[g]],J[3],K[g])):(N=T(L,R,P,z,M,D[V[g]],I[4],X[g]),x=A(S,v,q,j,k,D[U[g]],J[4],K[g])),L=M,M=z,z=F(P,10),P=R,R=N,S=k,k=j,j=F(q,10),q=v,v=x}var _=this._b+P+j|0;this._b=this._c+z+k|0,this._c=this._d+M+S|0,this._d=this._e+L+v|0,this._e=this._a+R+q|0,this._a=_},O.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var D=Q.alloc?Q.alloc(20):new Q(20);return D.writeInt32LE(this._a,0),D.writeInt32LE(this._b,4),D.writeInt32LE(this._c,8),D.writeInt32LE(this._d,12),D.writeInt32LE(this._e,16),D};function F(D,C){return D<>>32-C}function A(D,C,L,R,P,z,M,S){return F(D+(C^L^R)+z+M|0,S)+P|0}function W(D,C,L,R,P,z,M,S){return F(D+(C&L|~C&R)+z+M|0,S)+P|0}function H(D,C,L,R,P,z,M,S){return F(D+((C|~L)^R)+z+M|0,S)+P|0}function E(D,C,L,R,P,z,M,S){return F(D+(C&R|L&~R)+z+M|0,S)+P|0}function T(D,C,L,R,P,z,M,S){return F(D+(C^(L|~R))+z+M|0,S)+P|0}$.exports=O}}),g$=P$({"node_modules/sha.js/hash.js"(bZ,$){var Q=M$().Buffer;function Y(Z,G){this._block=Q.alloc(Z),this._finalSize=G,this._blockSize=Z,this._len=0}Y.prototype.update=function(Z,G){typeof Z=="string"&&(G=G||"utf8",Z=Q.from(Z,G));for(var V=this._block,U=this._blockSize,X=Z.length,K=this._len,I=0;I=this._finalSize&&(this._update(this._block),this._block.fill(0));var V=this._len*8;if(V<=4294967295)this._block.writeUInt32BE(V,this._blockSize-4);else{var U=(V&4294967295)>>>0,X=(V-U)/4294967296;this._block.writeUInt32BE(X,this._blockSize-8),this._block.writeUInt32BE(U,this._blockSize-4)}this._update(this._block);var K=this._hash();return Z?K.toString(Z):K},Y.prototype._update=function(){throw new Error("_update must be implemented by subclass")},$.exports=Y}}),N$=P$({"node_modules/sha.js/sha.js"(bZ,$){var Q=v$(),Y=g$(),Z=M$().Buffer,G=[1518500249,1859775393,-1894007588,-899497514],V=new Array(80);function U(){this.init(),this._w=V,Y.call(this,64,56)}Q(U,Y),U.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function X(J){return J<<5|J>>>27}function K(J){return J<<30|J>>>2}function I(J,O,F,A){return J===0?O&F|~O&A:J===2?O&F|O&A|F&A:O^F^A}U.prototype._update=function(J){for(var O=this._w,F=this._a|0,A=this._b|0,W=this._c|0,H=this._d|0,E=this._e|0,T=0;T<16;++T)O[T]=J.readInt32BE(T*4);for(;T<80;++T)O[T]=O[T-3]^O[T-8]^O[T-14]^O[T-16];for(var D=0;D<80;++D){var C=~~(D/20),L=X(F)+I(C,A,W,H)+E+O[D]+G[C]|0;E=H,H=W,W=K(A),A=F,F=L}this._a=F+this._a|0,this._b=A+this._b|0,this._c=W+this._c|0,this._d=H+this._d|0,this._e=E+this._e|0},U.prototype._hash=function(){var J=Z.allocUnsafe(20);return J.writeInt32BE(this._a|0,0),J.writeInt32BE(this._b|0,4),J.writeInt32BE(this._c|0,8),J.writeInt32BE(this._d|0,12),J.writeInt32BE(this._e|0,16),J},$.exports=U}}),x$=P$({"node_modules/sha.js/sha1.js"(bZ,$){var Q=v$(),Y=g$(),Z=M$().Buffer,G=[1518500249,1859775393,-1894007588,-899497514],V=new Array(80);function U(){this.init(),this._w=V,Y.call(this,64,56)}Q(U,Y),U.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function X(O){return O<<1|O>>>31}function K(O){return O<<5|O>>>27}function I(O){return O<<30|O>>>2}function J(O,F,A,W){return O===0?F&A|~F&W:O===2?F&A|F&W|A&W:F^A^W}U.prototype._update=function(O){for(var F=this._w,A=this._a|0,W=this._b|0,H=this._c|0,E=this._d|0,T=this._e|0,D=0;D<16;++D)F[D]=O.readInt32BE(D*4);for(;D<80;++D)F[D]=X(F[D-3]^F[D-8]^F[D-14]^F[D-16]);for(var C=0;C<80;++C){var L=~~(C/20),R=K(A)+J(L,W,H,E)+T+F[C]+G[L]|0;T=E,E=H,H=I(W),W=A,A=R}this._a=A+this._a|0,this._b=W+this._b|0,this._c=H+this._c|0,this._d=E+this._d|0,this._e=T+this._e|0},U.prototype._hash=function(){var O=Z.allocUnsafe(20);return O.writeInt32BE(this._a|0,0),O.writeInt32BE(this._b|0,4),O.writeInt32BE(this._c|0,8),O.writeInt32BE(this._d|0,12),O.writeInt32BE(this._e|0,16),O},$.exports=U}}),_$=P$({"node_modules/sha.js/sha256.js"(bZ,$){var Q=v$(),Y=g$(),Z=M$().Buffer,G=[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],V=new Array(64);function U(){this.init(),this._w=V,Y.call(this,64,56)}Q(U,Y),U.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function X(A,W,H){return H^A&(W^H)}function K(A,W,H){return A&W|H&(A|W)}function I(A){return(A>>>2|A<<30)^(A>>>13|A<<19)^(A>>>22|A<<10)}function J(A){return(A>>>6|A<<26)^(A>>>11|A<<21)^(A>>>25|A<<7)}function O(A){return(A>>>7|A<<25)^(A>>>18|A<<14)^A>>>3}function F(A){return(A>>>17|A<<15)^(A>>>19|A<<13)^A>>>10}U.prototype._update=function(A){for(var W=this._w,H=this._a|0,E=this._b|0,T=this._c|0,D=this._d|0,C=this._e|0,L=this._f|0,R=this._g|0,P=this._h|0,z=0;z<16;++z)W[z]=A.readInt32BE(z*4);for(;z<64;++z)W[z]=F(W[z-2])+W[z-7]+O(W[z-15])+W[z-16]|0;for(var M=0;M<64;++M){var S=P+J(C)+X(C,L,R)+G[M]+W[M]|0,v=I(H)+K(H,E,T)|0;P=R,R=L,L=C,C=D+S|0,D=T,T=E,E=H,H=S+v|0}this._a=H+this._a|0,this._b=E+this._b|0,this._c=T+this._c|0,this._d=D+this._d|0,this._e=C+this._e|0,this._f=L+this._f|0,this._g=R+this._g|0,this._h=P+this._h|0},U.prototype._hash=function(){var A=Z.allocUnsafe(32);return A.writeInt32BE(this._a,0),A.writeInt32BE(this._b,4),A.writeInt32BE(this._c,8),A.writeInt32BE(this._d,12),A.writeInt32BE(this._e,16),A.writeInt32BE(this._f,20),A.writeInt32BE(this._g,24),A.writeInt32BE(this._h,28),A},$.exports=U}}),B$=P$({"node_modules/sha.js/sha224.js"(bZ,$){var Q=v$(),Y=_$(),Z=g$(),G=M$().Buffer,V=new Array(64);function U(){this.init(),this._w=V,Z.call(this,64,56)}Q(U,Y),U.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},U.prototype._hash=function(){var X=G.allocUnsafe(28);return X.writeInt32BE(this._a,0),X.writeInt32BE(this._b,4),X.writeInt32BE(this._c,8),X.writeInt32BE(this._d,12),X.writeInt32BE(this._e,16),X.writeInt32BE(this._f,20),X.writeInt32BE(this._g,24),X},$.exports=U}}),y$=P$({"node_modules/sha.js/sha512.js"(bZ,$){var Q=v$(),Y=g$(),Z=M$().Buffer,G=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],V=new Array(160);function U(){this.init(),this._w=V,Y.call(this,128,112)}Q(U,Y),U.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function X(E,T,D){return D^E&(T^D)}function K(E,T,D){return E&T|D&(E|T)}function I(E,T){return(E>>>28|T<<4)^(T>>>2|E<<30)^(T>>>7|E<<25)}function J(E,T){return(E>>>14|T<<18)^(E>>>18|T<<14)^(T>>>9|E<<23)}function O(E,T){return(E>>>1|T<<31)^(E>>>8|T<<24)^E>>>7}function F(E,T){return(E>>>1|T<<31)^(E>>>8|T<<24)^(E>>>7|T<<25)}function A(E,T){return(E>>>19|T<<13)^(T>>>29|E<<3)^E>>>6}function W(E,T){return(E>>>19|T<<13)^(T>>>29|E<<3)^(E>>>6|T<<26)}function H(E,T){return E>>>0>>0?1:0}U.prototype._update=function(E){for(var T=this._w,D=this._ah|0,C=this._bh|0,L=this._ch|0,R=this._dh|0,P=this._eh|0,z=this._fh|0,M=this._gh|0,S=this._hh|0,v=this._al|0,q=this._bl|0,j=this._cl|0,k=this._dl|0,g=this._el|0,N=this._fl|0,x=this._gl|0,_=this._hl|0,B=0;B<32;B+=2)T[B]=E.readInt32BE(B*4),T[B+1]=E.readInt32BE(B*4+4);for(;B<160;B+=2){var y=T[B-30],w=T[B-30+1],f=O(y,w),p=F(w,y);y=T[B-4],w=T[B-4+1];var c=A(y,w),h=W(w,y),d=T[B-14],b=T[B-14+1],l=T[B-32],o=T[B-32+1],u=p+b|0,n=f+d+H(u,p)|0;u=u+h|0,n=n+c+H(u,h)|0,u=u+o|0,n=n+l+H(u,o)|0,T[B]=n,T[B+1]=u}for(var s=0;s<160;s+=2){n=T[s],u=T[s+1];var t=K(D,C,L),m=K(v,q,j),a=I(D,v),r=I(v,D),e=J(P,g),i=J(g,P),$0=G[s],Q0=G[s+1],Y0=X(P,z,M),Z0=X(g,N,x),G0=_+i|0,V0=S+e+H(G0,_)|0;G0=G0+Z0|0,V0=V0+Y0+H(G0,Z0)|0,G0=G0+Q0|0,V0=V0+$0+H(G0,Q0)|0,G0=G0+u|0,V0=V0+n+H(G0,u)|0;var U0=r+m|0,X0=a+t+H(U0,r)|0;S=M,_=x,M=z,x=N,z=P,N=g,g=k+G0|0,P=R+V0+H(g,k)|0,R=L,k=j,L=C,j=q,C=D,q=v,v=G0+U0|0,D=V0+X0+H(v,G0)|0}this._al=this._al+v|0,this._bl=this._bl+q|0,this._cl=this._cl+j|0,this._dl=this._dl+k|0,this._el=this._el+g|0,this._fl=this._fl+N|0,this._gl=this._gl+x|0,this._hl=this._hl+_|0,this._ah=this._ah+D+H(this._al,v)|0,this._bh=this._bh+C+H(this._bl,q)|0,this._ch=this._ch+L+H(this._cl,j)|0,this._dh=this._dh+R+H(this._dl,k)|0,this._eh=this._eh+P+H(this._el,g)|0,this._fh=this._fh+z+H(this._fl,N)|0,this._gh=this._gh+M+H(this._gl,x)|0,this._hh=this._hh+S+H(this._hl,_)|0},U.prototype._hash=function(){var E=Z.allocUnsafe(64);function T(D,C,L){E.writeInt32BE(D,L),E.writeInt32BE(C,L+4)}return T(this._ah,this._al,0),T(this._bh,this._bl,8),T(this._ch,this._cl,16),T(this._dh,this._dl,24),T(this._eh,this._el,32),T(this._fh,this._fl,40),T(this._gh,this._gl,48),T(this._hh,this._hl,56),E},$.exports=U}}),w$=P$({"node_modules/sha.js/sha384.js"(bZ,$){var Q=v$(),Y=y$(),Z=g$(),G=M$().Buffer,V=new Array(160);function U(){this.init(),this._w=V,Z.call(this,128,112)}Q(U,Y),U.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},U.prototype._hash=function(){var X=G.allocUnsafe(48);function K(I,J,O){X.writeInt32BE(I,O),X.writeInt32BE(J,O+4)}return K(this._ah,this._al,0),K(this._bh,this._bl,8),K(this._ch,this._cl,16),K(this._dh,this._dl,24),K(this._eh,this._el,32),K(this._fh,this._fl,40),X},$.exports=U}}),f$=P$({"node_modules/sha.js/index.js"(Q,$){var Q=$.exports=function(Y){Y=Y.toLowerCase();var Z=Q[Y];if(!Z)throw new Error(Y+" is not supported (we accept pull requests)");return new Z};Q.sha=N$(),Q.sha1=x$(),Q.sha224=B$(),Q.sha256=_$(),Q.sha384=w$(),Q.sha512=y$()}}),p$=import.meta.require("node:stream"),c$=P$({"node_modules/cipher-base/index.js"(bZ,$){var Q=M$().Buffer,Y=p$.Transform,Z=L$("string_decoder").StringDecoder,G=v$();function V(U){Y.call(this),this.hashMode=typeof U=="string",this.hashMode?this[U]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}G(V,Y),V.prototype.update=function(U,X,K){typeof U=="string"&&(U=Q.from(U,X));var I=this._update(U);return this.hashMode?this:(K&&(I=this._toString(I,K)),I)},V.prototype.setAutoPadding=function(){},V.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},V.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},V.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},V.prototype._transform=function(U,X,K){var I;try{this.hashMode?this._update(U):this.push(this._update(U))}catch(J){I=J}finally{K(I)}},V.prototype._flush=function(U){var X;try{this.push(this.__final())}catch(K){X=K}U(X)},V.prototype._finalOrDigest=function(U){var X=this.__final()||Q.alloc(0);return U&&(X=this._toString(X,U,!0)),X},V.prototype._toString=function(U,X,K){if(this._decoder||(this._decoder=new Z(X),this._encoding=X),this._encoding!==X)throw new Error("can't switch encodings");var I=this._decoder.write(U);return K&&(I+=this._decoder.end()),I},$.exports=V}}),h$=P$({"node_modules/create-hash/browser.js"(bZ,$){const{Transform:Q}=p$,Y=function V(U,X){this._options=X,this._hasher=new lY(U,X),this._finalized=!1};Y.prototype=Object.create(Q.prototype),Y.prototype.update=function V(U,X){return this._checkFinalized(),this._hasher.update(U,X),this},Y.prototype.digest=function V(U,X){return this._checkFinalized(),this._finalized=!0,this._hasher.digest(U,X)},Y.prototype._checkFinalized=function V(){if(this._finalized){var U=new Error("Digest already called");throw U.code="ERR_CRYPTO_HASH_FINALIZED",U}},Y.prototype.copy=function V(){const U=Object.create(Y.prototype);return U._options=this._options,U._hasher=this._hasher.copy(),U._finalized=this._finalized,U};const Z={__proto__:Q.prototype,...Y.prototype,_transform(V,U,X){this.update(V,U),X&&X()},_flush(V){this.push(this.digest()),V()}},G=["_events","_eventsCount","_final","_maxListeners","_maxListeners","_read","_undestroy","_writableState","_write","_writev","addListener","asIndexedPairs","closed","compose","constructor","cork","destroy","destroyed","drop","emit","end","errored","eventNames","every","filter","find","flatMap","forEach","getMaxListeners","hasOwnProperty","isPaused","isPrototypeOf","iterator","listenerCount","listeners","map","off","on","once","pause","pipe","prependListener","prependOnceListener","propertyIsEnumerable","push","rawListeners","read","readable","readableAborted","readableBuffer","readableDidRead","readableEncoding","readableEnded","readableFlowing","readableHighWaterMark","readableLength","readableObjectMode","reduce","removeAllListeners","removeListener","resume","setDefaultEncoding","setEncoding","setMaxListeners","some","take","toArray","toLocaleString","toString","uncork","unpipe","unshift","valueOf","wrap","writable","writableBuffer","writableCorked","writableEnded","writableFinished","writableHighWaterMark","writableLength","writableNeedDrain","writableObjectMode","write"];for(let V of G)Object.defineProperty(Y.prototype,V,{get(){return Object.setPrototypeOf(this,Z),Q.call(this,this._options),this[V]},enumerable:!1,configurable:!0});$.exports=function V(U){return new Y(U)},$.exports.createHash=$.exports,$.exports.Hash=Y}}),d$=P$({"node_modules/create-hmac/legacy.js"(bZ,$){var Q=v$(),Y=M$().Buffer,Z=c$(),G=Y.alloc(128),V=64;function U(X,K){Z.call(this,"digest"),typeof K=="string"&&(K=Y.from(K)),this._alg=X,this._key=K,K.length>V?K=X(K):K.lengthF){var A=J==="rmd160"?new U:X(J);O=A.update(O).digest()}else O.lengthQ||Z!==Z)throw new TypeError("Bad key length")}}}),s$=P$({"node_modules/pbkdf2/lib/default-encoding.js"(bZ,$){var Q;global.process&&global.process.browser?Q="utf-8":global.process&&global.process.version?(Y=parseInt(process.version.split(".")[0].slice(1),10),Q=Y>=6?"utf-8":"binary"):Q="utf-8";var Y;$.exports=Q}}),t$=P$({"node_modules/pbkdf2/lib/to-buffer.js"(bZ,$){var Q=M$().Buffer;$.exports=function(Y,Z,G){if(Q.isBuffer(Y))return Y;if(typeof Y=="string")return Q.from(Y,Z);if(ArrayBuffer.isView(Y))return Q.from(Y.buffer);throw new TypeError(G+" must be a string, a Buffer, a typed array or a DataView")}}}),m$=P$({"node_modules/pbkdf2/lib/sync-browser.js"(bZ,$){var Q=b$(),Y=k$(),Z=f$(),G=M$().Buffer,V=n$(),U=s$(),X=t$(),K=G.alloc(128),I={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function J(A,W,H){var E=O(A),T=A==="sha512"||A==="sha384"?128:64;W.length>T?W=E(W):W.length>>0},bZ.writeUInt32BE=function(Z,G,V){Z[0+V]=G>>>24,Z[1+V]=G>>>16&255,Z[2+V]=G>>>8&255,Z[3+V]=G&255},bZ.ip=function(Z,G,V,U){for(var X=0,K=0,I=6;I>=0;I-=2){for(var J=0;J<=24;J+=8)X<<=1,X|=G>>>J+I&1;for(var J=0;J<=24;J+=8)X<<=1,X|=Z>>>J+I&1}for(var I=6;I>=0;I-=2){for(var J=1;J<=25;J+=8)K<<=1,K|=G>>>J+I&1;for(var J=1;J<=25;J+=8)K<<=1,K|=Z>>>J+I&1}V[U+0]=X>>>0,V[U+1]=K>>>0},bZ.rip=function(Z,G,V,U){for(var X=0,K=0,I=0;I<4;I++)for(var J=24;J>=0;J-=8)X<<=1,X|=G>>>J+I&1,X<<=1,X|=Z>>>J+I&1;for(var I=4;I<8;I++)for(var J=24;J>=0;J-=8)K<<=1,K|=G>>>J+I&1,K<<=1,K|=Z>>>J+I&1;V[U+0]=X>>>0,V[U+1]=K>>>0},bZ.pc1=function(Z,G,V,U){for(var X=0,K=0,I=7;I>=5;I--){for(var J=0;J<=24;J+=8)X<<=1,X|=G>>J+I&1;for(var J=0;J<=24;J+=8)X<<=1,X|=Z>>J+I&1}for(var J=0;J<=24;J+=8)X<<=1,X|=G>>J+I&1;for(var I=1;I<=3;I++){for(var J=0;J<=24;J+=8)K<<=1,K|=G>>J+I&1;for(var J=0;J<=24;J+=8)K<<=1,K|=Z>>J+I&1}for(var J=0;J<=24;J+=8)K<<=1,K|=Z>>J+I&1;V[U+0]=X>>>0,V[U+1]=K>>>0},bZ.r28shl=function(Z,G){return Z<>>28-G};var $=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];bZ.pc2=function(Z,G,V,U){for(var X=0,K=0,I=$.length>>>1,J=0;J>>$[J]&1;for(var J=I;J<$.length;J++)K<<=1,K|=G>>>$[J]&1;V[U+0]=X>>>0,V[U+1]=K>>>0},bZ.expand=function(Z,G,V){var U=0,X=0;U=(Z&1)<<5|Z>>>27;for(var K=23;K>=15;K-=4)U<<=6,U|=Z>>>K&63;for(var K=11;K>=3;K-=4)X|=Z>>>K&63,X<<=6;X|=(Z&31)<<1|Z>>>31,G[V+0]=U>>>0,G[V+1]=X>>>0};var Q=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];bZ.substitute=function(Z,G){for(var V=0,U=0;U<4;U++){var X=Z>>>18-U*6&63,K=Q[U*64+X];V<<=4,V|=K}for(var U=0;U<4;U++){var X=G>>>18-U*6&63,K=Q[256+U*64+X];V<<=4,V|=K}return V>>>0};var Y=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];bZ.permute=function(Z){for(var G=0,V=0;V>>Y[V]&1;return G>>>0},bZ.padSplit=function(Z,G,V){for(var U=Z.toString(2);U.length0;U--)G+=this._buffer(Z,G),V+=this._flushBuffer(X,V);return G+=this._buffer(Z,G),X},Y.prototype.final=function(Z){var G;Z&&(G=this.update(Z));var V;return this.type==="encrypt"?V=this._finalEncrypt():V=this._finalDecrypt(),G?G.concat(V):V},Y.prototype._pad=function(Z,G){if(G===0)return!1;for(;G>>1];J=Z.r28shl(J,A),O=Z.r28shl(O,A),Z.pc2(J,O,K.keys,F)}},U.prototype._update=function(K,I,J,O){var F=this._desState,A=Z.readUInt32BE(K,I),W=Z.readUInt32BE(K,I+4);Z.ip(A,W,F.tmp,0),A=F.tmp[0],W=F.tmp[1],this.type==="encrypt"?this._encrypt(F,A,W,F.tmp,0):this._decrypt(F,A,W,F.tmp,0),A=F.tmp[0],W=F.tmp[1],Z.writeUInt32BE(J,A,O),Z.writeUInt32BE(J,W,O+4)},U.prototype._pad=function(K,I){for(var J=K.length-I,O=I;O>>0,A=L}Z.rip(W,A,O,F)},U.prototype._decrypt=function(K,I,J,O,F){for(var A=J,W=I,H=K.keys.length-2;H>=0;H-=2){var E=K.keys[H],T=K.keys[H+1];Z.expand(A,K.tmp,0),E^=K.tmp[0],T^=K.tmp[1];var D=Z.substitute(E,T),C=Z.permute(D),L=A;A=(W^C)>>>0,W=L}Z.rip(A,W,O,F)}}}),YQ=P$({"node_modules/des.js/lib/des/cbc.js"(bZ){var $=i$(),Q=v$(),Y={};function Z(V){$.equal(V.length,8,"Invalid IV length"),this.iv=new Array(8);for(var U=0;U>X%8,Z._prev=Y(Z._prev,V?J:O);return I}function Y(Z,G){var V=Z.length,U=-1,X=$.allocUnsafe(Z.length);for(Z=$.concat([Z,$.from([G])]);++U>7;return X}bZ.encrypt=function(Z,G,V){for(var U=G.length,X=$.allocUnsafe(U),K=-1;++K>>24]^W[D>>>16&255]^H[C>>>8&255]^E[L&255]^I[S++],P=A[D>>>24]^W[C>>>16&255]^H[L>>>8&255]^E[T&255]^I[S++],z=A[C>>>24]^W[L>>>16&255]^H[T>>>8&255]^E[D&255]^I[S++],M=A[L>>>24]^W[T>>>16&255]^H[D>>>8&255]^E[C&255]^I[S++],T=R,D=P,C=z,L=M;return R=(O[T>>>24]<<24|O[D>>>16&255]<<16|O[C>>>8&255]<<8|O[L&255])^I[S++],P=(O[D>>>24]<<24|O[C>>>16&255]<<16|O[L>>>8&255]<<8|O[T&255])^I[S++],z=(O[C>>>24]<<24|O[L>>>16&255]<<16|O[T>>>8&255]<<8|O[D&255])^I[S++],M=(O[L>>>24]<<24|O[T>>>16&255]<<16|O[D>>>8&255]<<8|O[C&255])^I[S++],R=R>>>0,P=P>>>0,z=z>>>0,M=M>>>0,[R,P,z,M]}var V=[0,1,2,4,8,16,32,64,128,27,54],U=function(){for(var K=new Array(256),I=0;I<256;I++)I<128?K[I]=I<<1:K[I]=I<<1^283;for(var J=[],O=[],F=[[],[],[],[]],A=[[],[],[],[]],W=0,H=0,E=0;E<256;++E){var T=H^H<<1^H<<2^H<<3^H<<4;T=T>>>8^T&255^99,J[W]=T,O[T]=W;var D=K[W],C=K[D],L=K[C],R=K[T]*257^T*16843008;F[0][W]=R<<24|R>>>8,F[1][W]=R<<16|R>>>16,F[2][W]=R<<8|R>>>24,F[3][W]=R,R=L*16843009^C*65537^D*257^W*16843008,A[0][T]=R<<24|R>>>8,A[1][T]=R<<16|R>>>16,A[2][T]=R<<8|R>>>24,A[3][T]=R,W===0?W=H=1:(W=D^K[K[K[L^D]]],H^=K[K[H]])}return{SBOX:J,INV_SBOX:O,SUB_MIX:F,INV_SUB_MIX:A}}();function X(K){this._key=Y(K),this._reset()}X.blockSize=16,X.keySize=32,X.prototype.blockSize=X.blockSize,X.prototype.keySize=X.keySize,X.prototype._reset=function(){for(var K=this._key,I=K.length,J=I+6,O=(J+1)*4,F=[],A=0;A>>24,W=U.SBOX[W>>>24]<<24|U.SBOX[W>>>16&255]<<16|U.SBOX[W>>>8&255]<<8|U.SBOX[W&255],W^=V[A/I|0]<<24):I>6&&A%I===4&&(W=U.SBOX[W>>>24]<<24|U.SBOX[W>>>16&255]<<16|U.SBOX[W>>>8&255]<<8|U.SBOX[W&255]),F[A]=F[A-I]^W}for(var H=[],E=0;E>>24]]^U.INV_SUB_MIX[1][U.SBOX[D>>>16&255]]^U.INV_SUB_MIX[2][U.SBOX[D>>>8&255]]^U.INV_SUB_MIX[3][U.SBOX[D&255]]}this._nRounds=J,this._keySchedule=F,this._invKeySchedule=H},X.prototype.encryptBlockRaw=function(K){return K=Y(K),G(K,this._keySchedule,U.SUB_MIX,U.SBOX,this._nRounds)},X.prototype.encryptBlock=function(K){var I=this.encryptBlockRaw(K),J=Q.allocUnsafe(16);return J.writeUInt32BE(I[0],0),J.writeUInt32BE(I[1],4),J.writeUInt32BE(I[2],8),J.writeUInt32BE(I[3],12),J},X.prototype.decryptBlock=function(K){K=Y(K);var I=K[1];K[1]=K[3],K[3]=I;var J=G(K,this._invKeySchedule,U.INV_SUB_MIX,U.INV_SBOX,this._nRounds),O=Q.allocUnsafe(16);return O.writeUInt32BE(J[0],0),O.writeUInt32BE(J[3],4),O.writeUInt32BE(J[2],8),O.writeUInt32BE(J[1],12),O},X.prototype.scrub=function(){Z(this._keySchedule),Z(this._invKeySchedule),Z(this._key)},$.exports.AES=X}}),TQ=P$({"node_modules/browserify-aes/ghash.js"(bZ,$){var Q=M$().Buffer,Y=Q.alloc(16,0);function Z(U){return[U.readUInt32BE(0),U.readUInt32BE(4),U.readUInt32BE(8),U.readUInt32BE(12)]}function G(U){var X=Q.allocUnsafe(16);return X.writeUInt32BE(U[0]>>>0,0),X.writeUInt32BE(U[1]>>>0,4),X.writeUInt32BE(U[2]>>>0,8),X.writeUInt32BE(U[3]>>>0,12),X}function V(U){this.h=U,this.state=Q.alloc(16,0),this.cache=Q.allocUnsafe(0)}V.prototype.ghash=function(U){for(var X=-1;++X0;K--)U[K]=U[K]>>>1|(U[K-1]&1)<<31;U[0]=U[0]>>>1,J&&(U[0]=U[0]^225<<24)}this.state=G(X)},V.prototype.update=function(U){this.cache=Q.concat([this.cache,U]);for(var X;this.cache.length>=16;)X=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(X)},V.prototype.final=function(U,X){return this.cache.length&&this.ghash(Q.concat([this.cache,Y],16)),this.ghash(G([0,U,0,X])),this.state},$.exports=V}}),DQ=P$({"node_modules/browserify-aes/authCipher.js"(bZ,$){var Q=EQ(),Y=M$().Buffer,Z=c$(),G=v$(),V=TQ(),U=XQ(),X=AQ();function K(O,F){var A=0;O.length!==F.length&&A++;for(var W=Math.min(O.length,F.length),H=0;H0||X>0;){var F=new Y;F.update(O),F.update(G),V&&F.update(V),O=F.digest();var A=0;if(K>0){var W=I.length-K;A=Math.min(K,O.length),O.copy(I,W,0,A),K-=A}if(A0){var H=J.length-X,E=Math.min(X,O.length-A);O.copy(J,H,A,A+E),X-=E}}return O.fill(0),{key:I,iv:J}}$.exports=Z}}),RQ=P$({"node_modules/browserify-aes/encrypter.js"(bZ){var $=HQ(),Q=DQ(),Y=M$().Buffer,Z=CQ(),G=c$(),V=EQ(),U=LQ(),X=v$();function K(A,W,H){G.call(this),this._cache=new J,this._cipher=new V.AES(W),this._prev=Y.from(H),this._mode=A,this._autopadding=!0}X(K,G),K.prototype._update=function(A){this._cache.add(A);for(var W,H,E=[];W=this._cache.get();)H=this._mode.encrypt(this,W),E.push(H);return Y.concat(E)};var I=Y.alloc(16,16);K.prototype._final=function(){var A=this._cache.flush();if(this._autopadding)return A=this._mode.encrypt(this,A),this._cipher.scrub(),A;if(!A.equals(I))throw this._cipher.scrub(),new Error("data not multiple of block length")},K.prototype.setAutoPadding=function(A){return this._autopadding=!!A,this};function J(){this.cache=Y.allocUnsafe(0)}J.prototype.add=function(A){this.cache=Y.concat([this.cache,A])},J.prototype.get=function(){if(this.cache.length>15){var A=this.cache.slice(0,16);return this.cache=this.cache.slice(16),A}return null},J.prototype.flush=function(){for(var A=16-this.cache.length,W=Y.allocUnsafe(A),H=-1;++H16)return W=this.cache.slice(0,16),this.cache=this.cache.slice(16),W}else if(this.cache.length>=16)return W=this.cache.slice(0,16),this.cache=this.cache.slice(16),W;return null},I.prototype.flush=function(){if(this.cache.length)return this.cache};function J(A){var W=A[15];if(W<1||W>16)throw new Error("unable to decrypt data");for(var H=-1;++H0?q:j},V.min=function(q,j){return q.cmp(j)<0?q:j},V.prototype._init=function(q,j,k){if(typeof q=="number")return this._initNumber(q,j,k);if(typeof q=="object")return this._initArray(q,j,k);j==="hex"&&(j=16),Z(j===(j|0)&&j>=2&&j<=36),q=q.toString().replace(/\s+/g,"");var g=0;q[0]==="-"&&(g++,this.negative=1),g=0;g-=3)x=q[g]|q[g-1]<<8|q[g-2]<<16,this.words[N]|=x<<_&67108863,this.words[N+1]=x>>>26-_&67108863,_+=24,_>=26&&(_-=26,N++);else if(k==="le")for(g=0,N=0;g>>26-_&67108863,_+=24,_>=26&&(_-=26,N++);return this.strip()};function X(q,j){var k=q.charCodeAt(j);return k>=65&&k<=70?k-55:k>=97&&k<=102?k-87:k-48&15}function K(q,j,k){var g=X(q,k);return k-1>=j&&(g|=X(q,k-1)<<4),g}V.prototype._parseHex=function(q,j,k){this.length=Math.ceil((q.length-j)/6),this.words=new Array(this.length);for(var g=0;g=j;g-=2)_=K(q,j,g)<=18?(N-=18,x+=1,this.words[x]|=_>>>26):N+=8;else{var B=q.length-j;for(g=B%2===0?j+1:j;g=18?(N-=18,x+=1,this.words[x]|=_>>>26):N+=8}this.strip()};function I(q,j,k,g){for(var N=0,x=Math.min(q.length,k),_=j;_=49?N+=B-49+10:B>=17?N+=B-17+10:N+=B}return N}V.prototype._parseBase=function(q,j,k){this.words=[0],this.length=1;for(var g=0,N=1;N<=67108863;N*=j)g++;g--,N=N/j|0;for(var x=q.length-k,_=x%g,B=Math.min(x,x-_)+k,y=0,w=k;w1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},V.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},V.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],O=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],F=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];V.prototype.toString=function(q,j){q=q||10,j=j|0||1;var k;if(q===16||q==="hex"){k="";for(var g=0,N=0,x=0;x>>24-g&16777215,N!==0||x!==this.length-1?k=J[6-B.length]+B+k:k=B+k,g+=2,g>=26&&(g-=26,x--)}for(N!==0&&(k=N.toString(16)+k);k.length%j!==0;)k="0"+k;return this.negative!==0&&(k="-"+k),k}if(q===(q|0)&&q>=2&&q<=36){var y=O[q],w=F[q];k="";var f=this.clone();for(f.negative=0;!f.isZero();){var p=f.modn(w).toString(q);f=f.idivn(w),f.isZero()?k=p+k:k=J[y-p.length]+p+k}for(this.isZero()&&(k="0"+k);k.length%j!==0;)k="0"+k;return this.negative!==0&&(k="-"+k),k}Z(!1,"Base should be between 2 and 36")},V.prototype.toNumber=function(){var q=this.words[0];return this.length===2?q+=this.words[1]*67108864:this.length===3&&this.words[2]===1?q+=4503599627370496+this.words[1]*67108864:this.length>2&&Z(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-q:q},V.prototype.toJSON=function(){return this.toString(16)},V.prototype.toBuffer=function(q,j){return Z(typeof U<"u"),this.toArrayLike(U,q,j)},V.prototype.toArray=function(q,j){return this.toArrayLike(Array,q,j)},V.prototype.toArrayLike=function(q,j,k){var g=this.byteLength(),N=k||Math.max(1,g);Z(g<=N,"byte array longer than desired length"),Z(N>0,"Requested array length <= 0"),this.strip();var x=j==="le",_=new q(N),B,y,w=this.clone();if(x){for(y=0;!w.isZero();y++)B=w.andln(255),w.iushrn(8),_[y]=B;for(;y=4096&&(k+=13,j>>>=13),j>=64&&(k+=7,j>>>=7),j>=8&&(k+=4,j>>>=4),j>=2&&(k+=2,j>>>=2),k+j},V.prototype._zeroBits=function(q){if(q===0)return 26;var j=q,k=0;return(j&8191)===0&&(k+=13,j>>>=13),(j&127)===0&&(k+=7,j>>>=7),(j&15)===0&&(k+=4,j>>>=4),(j&3)===0&&(k+=2,j>>>=2),(j&1)===0&&k++,k},V.prototype.bitLength=function(){var q=this.words[this.length-1],j=this._countBits(q);return(this.length-1)*26+j};function A(q){for(var j=new Array(q.bitLength()),k=0;k>>N}return j}V.prototype.zeroBits=function(){if(this.isZero())return 0;for(var q=0,j=0;jq.length?this.clone().ior(q):q.clone().ior(this)},V.prototype.uor=function(q){return this.length>q.length?this.clone().iuor(q):q.clone().iuor(this)},V.prototype.iuand=function(q){var j;this.length>q.length?j=q:j=this;for(var k=0;kq.length?this.clone().iand(q):q.clone().iand(this)},V.prototype.uand=function(q){return this.length>q.length?this.clone().iuand(q):q.clone().iuand(this)},V.prototype.iuxor=function(q){var j,k;this.length>q.length?(j=this,k=q):(j=q,k=this);for(var g=0;gq.length?this.clone().ixor(q):q.clone().ixor(this)},V.prototype.uxor=function(q){return this.length>q.length?this.clone().iuxor(q):q.clone().iuxor(this)},V.prototype.inotn=function(q){Z(typeof q=="number"&&q>=0);var j=Math.ceil(q/26)|0,k=q%26;this._expand(j),k>0&&j--;for(var g=0;g0&&(this.words[g]=~this.words[g]&67108863>>26-k),this.strip()},V.prototype.notn=function(q){return this.clone().inotn(q)},V.prototype.setn=function(q,j){Z(typeof q=="number"&&q>=0);var k=q/26|0,g=q%26;return this._expand(k+1),j?this.words[k]=this.words[k]|1<q.length?(k=this,g=q):(k=q,g=this);for(var N=0,x=0;x>>26;for(;N!==0&&x>>26;if(this.length=k.length,N!==0)this.words[this.length]=N,this.length++;else if(k!==this)for(;xq.length?this.clone().iadd(q):q.clone().iadd(this)},V.prototype.isub=function(q){if(q.negative!==0){q.negative=0;var j=this.iadd(q);return q.negative=1,j._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(q),this.negative=1,this._normSign();var k=this.cmp(q);if(k===0)return this.negative=0,this.length=1,this.words[0]=0,this;var g,N;k>0?(g=this,N=q):(g=q,N=this);for(var x=0,_=0;_>26,this.words[_]=j&67108863;for(;x!==0&&_>26,this.words[_]=j&67108863;if(x===0&&_>>26,p=y&67108863,c=Math.min(w,j.length-1),h=Math.max(0,w-q.length+1);h<=c;h++){var d=w-h|0;N=q.words[d]|0,x=j.words[h]|0,_=N*x+p,f+=_/67108864|0,p=_&67108863}k.words[w]=p|0,y=f|0}return y!==0?k.words[w]=y|0:k.length--,k.strip()}var H=function(q,j,k){var g=q.words,N=j.words,x=k.words,_=0,B,y,w,f=g[0]|0,p=f&8191,c=f>>>13,h=g[1]|0,d=h&8191,b=h>>>13,l=g[2]|0,o=l&8191,u=l>>>13,n=g[3]|0,s=n&8191,t=n>>>13,m=g[4]|0,a=m&8191,r=m>>>13,e=g[5]|0,i=e&8191,$0=e>>>13,Q0=g[6]|0,Y0=Q0&8191,Z0=Q0>>>13,G0=g[7]|0,V0=G0&8191,U0=G0>>>13,X0=g[8]|0,K0=X0&8191,I0=X0>>>13,J0=g[9]|0,O0=J0&8191,F0=J0>>>13,A0=N[0]|0,W0=A0&8191,H0=A0>>>13,E0=N[1]|0,T0=E0&8191,D0=E0>>>13,C0=N[2]|0,L0=C0&8191,R0=C0>>>13,P0=N[3]|0,z0=P0&8191,M0=P0>>>13,S0=N[4]|0,v0=S0&8191,q0=S0>>>13,j0=N[5]|0,k0=j0&8191,g0=j0>>>13,N0=N[6]|0,x0=N0&8191,_0=N0>>>13,B0=N[7]|0,y0=B0&8191,w0=B0>>>13,f0=N[8]|0,p0=f0&8191,c0=f0>>>13,h0=N[9]|0,d0=h0&8191,b0=h0>>>13;k.negative=q.negative^j.negative,k.length=19,B=Math.imul(p,W0),y=Math.imul(p,H0),y=y+Math.imul(c,W0)|0,w=Math.imul(c,H0);var l0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(l0>>>26)|0,l0&=67108863,B=Math.imul(d,W0),y=Math.imul(d,H0),y=y+Math.imul(b,W0)|0,w=Math.imul(b,H0),B=B+Math.imul(p,T0)|0,y=y+Math.imul(p,D0)|0,y=y+Math.imul(c,T0)|0,w=w+Math.imul(c,D0)|0;var o0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(o0>>>26)|0,o0&=67108863,B=Math.imul(o,W0),y=Math.imul(o,H0),y=y+Math.imul(u,W0)|0,w=Math.imul(u,H0),B=B+Math.imul(d,T0)|0,y=y+Math.imul(d,D0)|0,y=y+Math.imul(b,T0)|0,w=w+Math.imul(b,D0)|0,B=B+Math.imul(p,L0)|0,y=y+Math.imul(p,R0)|0,y=y+Math.imul(c,L0)|0,w=w+Math.imul(c,R0)|0;var u0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(u0>>>26)|0,u0&=67108863,B=Math.imul(s,W0),y=Math.imul(s,H0),y=y+Math.imul(t,W0)|0,w=Math.imul(t,H0),B=B+Math.imul(o,T0)|0,y=y+Math.imul(o,D0)|0,y=y+Math.imul(u,T0)|0,w=w+Math.imul(u,D0)|0,B=B+Math.imul(d,L0)|0,y=y+Math.imul(d,R0)|0,y=y+Math.imul(b,L0)|0,w=w+Math.imul(b,R0)|0,B=B+Math.imul(p,z0)|0,y=y+Math.imul(p,M0)|0,y=y+Math.imul(c,z0)|0,w=w+Math.imul(c,M0)|0;var n0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(n0>>>26)|0,n0&=67108863,B=Math.imul(a,W0),y=Math.imul(a,H0),y=y+Math.imul(r,W0)|0,w=Math.imul(r,H0),B=B+Math.imul(s,T0)|0,y=y+Math.imul(s,D0)|0,y=y+Math.imul(t,T0)|0,w=w+Math.imul(t,D0)|0,B=B+Math.imul(o,L0)|0,y=y+Math.imul(o,R0)|0,y=y+Math.imul(u,L0)|0,w=w+Math.imul(u,R0)|0,B=B+Math.imul(d,z0)|0,y=y+Math.imul(d,M0)|0,y=y+Math.imul(b,z0)|0,w=w+Math.imul(b,M0)|0,B=B+Math.imul(p,v0)|0,y=y+Math.imul(p,q0)|0,y=y+Math.imul(c,v0)|0,w=w+Math.imul(c,q0)|0;var s0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(s0>>>26)|0,s0&=67108863,B=Math.imul(i,W0),y=Math.imul(i,H0),y=y+Math.imul($0,W0)|0,w=Math.imul($0,H0),B=B+Math.imul(a,T0)|0,y=y+Math.imul(a,D0)|0,y=y+Math.imul(r,T0)|0,w=w+Math.imul(r,D0)|0,B=B+Math.imul(s,L0)|0,y=y+Math.imul(s,R0)|0,y=y+Math.imul(t,L0)|0,w=w+Math.imul(t,R0)|0,B=B+Math.imul(o,z0)|0,y=y+Math.imul(o,M0)|0,y=y+Math.imul(u,z0)|0,w=w+Math.imul(u,M0)|0,B=B+Math.imul(d,v0)|0,y=y+Math.imul(d,q0)|0,y=y+Math.imul(b,v0)|0,w=w+Math.imul(b,q0)|0,B=B+Math.imul(p,k0)|0,y=y+Math.imul(p,g0)|0,y=y+Math.imul(c,k0)|0,w=w+Math.imul(c,g0)|0;var t0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(t0>>>26)|0,t0&=67108863,B=Math.imul(Y0,W0),y=Math.imul(Y0,H0),y=y+Math.imul(Z0,W0)|0,w=Math.imul(Z0,H0),B=B+Math.imul(i,T0)|0,y=y+Math.imul(i,D0)|0,y=y+Math.imul($0,T0)|0,w=w+Math.imul($0,D0)|0,B=B+Math.imul(a,L0)|0,y=y+Math.imul(a,R0)|0,y=y+Math.imul(r,L0)|0,w=w+Math.imul(r,R0)|0,B=B+Math.imul(s,z0)|0,y=y+Math.imul(s,M0)|0,y=y+Math.imul(t,z0)|0,w=w+Math.imul(t,M0)|0,B=B+Math.imul(o,v0)|0,y=y+Math.imul(o,q0)|0,y=y+Math.imul(u,v0)|0,w=w+Math.imul(u,q0)|0,B=B+Math.imul(d,k0)|0,y=y+Math.imul(d,g0)|0,y=y+Math.imul(b,k0)|0,w=w+Math.imul(b,g0)|0,B=B+Math.imul(p,x0)|0,y=y+Math.imul(p,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,_0)|0;var m0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(m0>>>26)|0,m0&=67108863,B=Math.imul(V0,W0),y=Math.imul(V0,H0),y=y+Math.imul(U0,W0)|0,w=Math.imul(U0,H0),B=B+Math.imul(Y0,T0)|0,y=y+Math.imul(Y0,D0)|0,y=y+Math.imul(Z0,T0)|0,w=w+Math.imul(Z0,D0)|0,B=B+Math.imul(i,L0)|0,y=y+Math.imul(i,R0)|0,y=y+Math.imul($0,L0)|0,w=w+Math.imul($0,R0)|0,B=B+Math.imul(a,z0)|0,y=y+Math.imul(a,M0)|0,y=y+Math.imul(r,z0)|0,w=w+Math.imul(r,M0)|0,B=B+Math.imul(s,v0)|0,y=y+Math.imul(s,q0)|0,y=y+Math.imul(t,v0)|0,w=w+Math.imul(t,q0)|0,B=B+Math.imul(o,k0)|0,y=y+Math.imul(o,g0)|0,y=y+Math.imul(u,k0)|0,w=w+Math.imul(u,g0)|0,B=B+Math.imul(d,x0)|0,y=y+Math.imul(d,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,_0)|0,B=B+Math.imul(p,y0)|0,y=y+Math.imul(p,w0)|0,y=y+Math.imul(c,y0)|0,w=w+Math.imul(c,w0)|0;var a0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(a0>>>26)|0,a0&=67108863,B=Math.imul(K0,W0),y=Math.imul(K0,H0),y=y+Math.imul(I0,W0)|0,w=Math.imul(I0,H0),B=B+Math.imul(V0,T0)|0,y=y+Math.imul(V0,D0)|0,y=y+Math.imul(U0,T0)|0,w=w+Math.imul(U0,D0)|0,B=B+Math.imul(Y0,L0)|0,y=y+Math.imul(Y0,R0)|0,y=y+Math.imul(Z0,L0)|0,w=w+Math.imul(Z0,R0)|0,B=B+Math.imul(i,z0)|0,y=y+Math.imul(i,M0)|0,y=y+Math.imul($0,z0)|0,w=w+Math.imul($0,M0)|0,B=B+Math.imul(a,v0)|0,y=y+Math.imul(a,q0)|0,y=y+Math.imul(r,v0)|0,w=w+Math.imul(r,q0)|0,B=B+Math.imul(s,k0)|0,y=y+Math.imul(s,g0)|0,y=y+Math.imul(t,k0)|0,w=w+Math.imul(t,g0)|0,B=B+Math.imul(o,x0)|0,y=y+Math.imul(o,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,_0)|0,B=B+Math.imul(d,y0)|0,y=y+Math.imul(d,w0)|0,y=y+Math.imul(b,y0)|0,w=w+Math.imul(b,w0)|0,B=B+Math.imul(p,p0)|0,y=y+Math.imul(p,c0)|0,y=y+Math.imul(c,p0)|0,w=w+Math.imul(c,c0)|0;var r0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(r0>>>26)|0,r0&=67108863,B=Math.imul(O0,W0),y=Math.imul(O0,H0),y=y+Math.imul(F0,W0)|0,w=Math.imul(F0,H0),B=B+Math.imul(K0,T0)|0,y=y+Math.imul(K0,D0)|0,y=y+Math.imul(I0,T0)|0,w=w+Math.imul(I0,D0)|0,B=B+Math.imul(V0,L0)|0,y=y+Math.imul(V0,R0)|0,y=y+Math.imul(U0,L0)|0,w=w+Math.imul(U0,R0)|0,B=B+Math.imul(Y0,z0)|0,y=y+Math.imul(Y0,M0)|0,y=y+Math.imul(Z0,z0)|0,w=w+Math.imul(Z0,M0)|0,B=B+Math.imul(i,v0)|0,y=y+Math.imul(i,q0)|0,y=y+Math.imul($0,v0)|0,w=w+Math.imul($0,q0)|0,B=B+Math.imul(a,k0)|0,y=y+Math.imul(a,g0)|0,y=y+Math.imul(r,k0)|0,w=w+Math.imul(r,g0)|0,B=B+Math.imul(s,x0)|0,y=y+Math.imul(s,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,_0)|0,B=B+Math.imul(o,y0)|0,y=y+Math.imul(o,w0)|0,y=y+Math.imul(u,y0)|0,w=w+Math.imul(u,w0)|0,B=B+Math.imul(d,p0)|0,y=y+Math.imul(d,c0)|0,y=y+Math.imul(b,p0)|0,w=w+Math.imul(b,c0)|0,B=B+Math.imul(p,d0)|0,y=y+Math.imul(p,b0)|0,y=y+Math.imul(c,d0)|0,w=w+Math.imul(c,b0)|0;var e0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(e0>>>26)|0,e0&=67108863,B=Math.imul(O0,T0),y=Math.imul(O0,D0),y=y+Math.imul(F0,T0)|0,w=Math.imul(F0,D0),B=B+Math.imul(K0,L0)|0,y=y+Math.imul(K0,R0)|0,y=y+Math.imul(I0,L0)|0,w=w+Math.imul(I0,R0)|0,B=B+Math.imul(V0,z0)|0,y=y+Math.imul(V0,M0)|0,y=y+Math.imul(U0,z0)|0,w=w+Math.imul(U0,M0)|0,B=B+Math.imul(Y0,v0)|0,y=y+Math.imul(Y0,q0)|0,y=y+Math.imul(Z0,v0)|0,w=w+Math.imul(Z0,q0)|0,B=B+Math.imul(i,k0)|0,y=y+Math.imul(i,g0)|0,y=y+Math.imul($0,k0)|0,w=w+Math.imul($0,g0)|0,B=B+Math.imul(a,x0)|0,y=y+Math.imul(a,_0)|0,y=y+Math.imul(r,x0)|0,w=w+Math.imul(r,_0)|0,B=B+Math.imul(s,y0)|0,y=y+Math.imul(s,w0)|0,y=y+Math.imul(t,y0)|0,w=w+Math.imul(t,w0)|0,B=B+Math.imul(o,p0)|0,y=y+Math.imul(o,c0)|0,y=y+Math.imul(u,p0)|0,w=w+Math.imul(u,c0)|0,B=B+Math.imul(d,d0)|0,y=y+Math.imul(d,b0)|0,y=y+Math.imul(b,d0)|0,w=w+Math.imul(b,b0)|0;var i0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(i0>>>26)|0,i0&=67108863,B=Math.imul(O0,L0),y=Math.imul(O0,R0),y=y+Math.imul(F0,L0)|0,w=Math.imul(F0,R0),B=B+Math.imul(K0,z0)|0,y=y+Math.imul(K0,M0)|0,y=y+Math.imul(I0,z0)|0,w=w+Math.imul(I0,M0)|0,B=B+Math.imul(V0,v0)|0,y=y+Math.imul(V0,q0)|0,y=y+Math.imul(U0,v0)|0,w=w+Math.imul(U0,q0)|0,B=B+Math.imul(Y0,k0)|0,y=y+Math.imul(Y0,g0)|0,y=y+Math.imul(Z0,k0)|0,w=w+Math.imul(Z0,g0)|0,B=B+Math.imul(i,x0)|0,y=y+Math.imul(i,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,_0)|0,B=B+Math.imul(a,y0)|0,y=y+Math.imul(a,w0)|0,y=y+Math.imul(r,y0)|0,w=w+Math.imul(r,w0)|0,B=B+Math.imul(s,p0)|0,y=y+Math.imul(s,c0)|0,y=y+Math.imul(t,p0)|0,w=w+Math.imul(t,c0)|0,B=B+Math.imul(o,d0)|0,y=y+Math.imul(o,b0)|0,y=y+Math.imul(u,d0)|0,w=w+Math.imul(u,b0)|0;var $$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+($$>>>26)|0,$$&=67108863,B=Math.imul(O0,z0),y=Math.imul(O0,M0),y=y+Math.imul(F0,z0)|0,w=Math.imul(F0,M0),B=B+Math.imul(K0,v0)|0,y=y+Math.imul(K0,q0)|0,y=y+Math.imul(I0,v0)|0,w=w+Math.imul(I0,q0)|0,B=B+Math.imul(V0,k0)|0,y=y+Math.imul(V0,g0)|0,y=y+Math.imul(U0,k0)|0,w=w+Math.imul(U0,g0)|0,B=B+Math.imul(Y0,x0)|0,y=y+Math.imul(Y0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,_0)|0,B=B+Math.imul(i,y0)|0,y=y+Math.imul(i,w0)|0,y=y+Math.imul($0,y0)|0,w=w+Math.imul($0,w0)|0,B=B+Math.imul(a,p0)|0,y=y+Math.imul(a,c0)|0,y=y+Math.imul(r,p0)|0,w=w+Math.imul(r,c0)|0,B=B+Math.imul(s,d0)|0,y=y+Math.imul(s,b0)|0,y=y+Math.imul(t,d0)|0,w=w+Math.imul(t,b0)|0;var Q$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,B=Math.imul(O0,v0),y=Math.imul(O0,q0),y=y+Math.imul(F0,v0)|0,w=Math.imul(F0,q0),B=B+Math.imul(K0,k0)|0,y=y+Math.imul(K0,g0)|0,y=y+Math.imul(I0,k0)|0,w=w+Math.imul(I0,g0)|0,B=B+Math.imul(V0,x0)|0,y=y+Math.imul(V0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,_0)|0,B=B+Math.imul(Y0,y0)|0,y=y+Math.imul(Y0,w0)|0,y=y+Math.imul(Z0,y0)|0,w=w+Math.imul(Z0,w0)|0,B=B+Math.imul(i,p0)|0,y=y+Math.imul(i,c0)|0,y=y+Math.imul($0,p0)|0,w=w+Math.imul($0,c0)|0,B=B+Math.imul(a,d0)|0,y=y+Math.imul(a,b0)|0,y=y+Math.imul(r,d0)|0,w=w+Math.imul(r,b0)|0;var Y$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,B=Math.imul(O0,k0),y=Math.imul(O0,g0),y=y+Math.imul(F0,k0)|0,w=Math.imul(F0,g0),B=B+Math.imul(K0,x0)|0,y=y+Math.imul(K0,_0)|0,y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,_0)|0,B=B+Math.imul(V0,y0)|0,y=y+Math.imul(V0,w0)|0,y=y+Math.imul(U0,y0)|0,w=w+Math.imul(U0,w0)|0,B=B+Math.imul(Y0,p0)|0,y=y+Math.imul(Y0,c0)|0,y=y+Math.imul(Z0,p0)|0,w=w+Math.imul(Z0,c0)|0,B=B+Math.imul(i,d0)|0,y=y+Math.imul(i,b0)|0,y=y+Math.imul($0,d0)|0,w=w+Math.imul($0,b0)|0;var Z$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,B=Math.imul(O0,x0),y=Math.imul(O0,_0),y=y+Math.imul(F0,x0)|0,w=Math.imul(F0,_0),B=B+Math.imul(K0,y0)|0,y=y+Math.imul(K0,w0)|0,y=y+Math.imul(I0,y0)|0,w=w+Math.imul(I0,w0)|0,B=B+Math.imul(V0,p0)|0,y=y+Math.imul(V0,c0)|0,y=y+Math.imul(U0,p0)|0,w=w+Math.imul(U0,c0)|0,B=B+Math.imul(Y0,d0)|0,y=y+Math.imul(Y0,b0)|0,y=y+Math.imul(Z0,d0)|0,w=w+Math.imul(Z0,b0)|0;var G$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(G$>>>26)|0,G$&=67108863,B=Math.imul(O0,y0),y=Math.imul(O0,w0),y=y+Math.imul(F0,y0)|0,w=Math.imul(F0,w0),B=B+Math.imul(K0,p0)|0,y=y+Math.imul(K0,c0)|0,y=y+Math.imul(I0,p0)|0,w=w+Math.imul(I0,c0)|0,B=B+Math.imul(V0,d0)|0,y=y+Math.imul(V0,b0)|0,y=y+Math.imul(U0,d0)|0,w=w+Math.imul(U0,b0)|0;var V$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(V$>>>26)|0,V$&=67108863,B=Math.imul(O0,p0),y=Math.imul(O0,c0),y=y+Math.imul(F0,p0)|0,w=Math.imul(F0,c0),B=B+Math.imul(K0,d0)|0,y=y+Math.imul(K0,b0)|0,y=y+Math.imul(I0,d0)|0,w=w+Math.imul(I0,b0)|0;var U$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(U$>>>26)|0,U$&=67108863,B=Math.imul(O0,d0),y=Math.imul(O0,b0),y=y+Math.imul(F0,d0)|0,w=Math.imul(F0,b0);var X$=(_+B|0)+((y&8191)<<13)|0;return _=(w+(y>>>13)|0)+(X$>>>26)|0,X$&=67108863,x[0]=l0,x[1]=o0,x[2]=u0,x[3]=n0,x[4]=s0,x[5]=t0,x[6]=m0,x[7]=a0,x[8]=r0,x[9]=e0,x[10]=i0,x[11]=$$,x[12]=Q$,x[13]=Y$,x[14]=Z$,x[15]=G$,x[16]=V$,x[17]=U$,x[18]=X$,_!==0&&(x[19]=_,k.length++),k};Math.imul||(H=W);function E(q,j,k){k.negative=j.negative^q.negative,k.length=q.length+j.length;for(var g=0,N=0,x=0;x>>26)|0,N+=_>>>26,_&=67108863}k.words[x]=B,g=_,_=N}return g!==0?k.words[x]=g:k.length--,k.strip()}function T(q,j,k){var g=new D;return g.mulp(q,j,k)}V.prototype.mulTo=function(q,j){var k,g=this.length+q.length;return this.length===10&&q.length===10?k=H(this,q,j):g<63?k=W(this,q,j):g<1024?k=E(this,q,j):k=T(this,q,j),k};function D(q,j){this.x=q,this.y=j}D.prototype.makeRBT=function(q){for(var j=new Array(q),k=V.prototype._countBits(q)-1,g=0;g>=1;return g},D.prototype.permute=function(q,j,k,g,N,x){for(var _=0;_>>1)N++;return 1<>>13,k[2*x+1]=N&8191,N=N>>>13;for(x=2*j;x>=26,j+=g/67108864|0,j+=N>>>26,this.words[k]=N&67108863}return j!==0&&(this.words[k]=j,this.length++),this},V.prototype.muln=function(q){return this.clone().imuln(q)},V.prototype.sqr=function(){return this.mul(this)},V.prototype.isqr=function(){return this.imul(this.clone())},V.prototype.pow=function(q){var j=A(q);if(j.length===0)return new V(1);for(var k=this,g=0;g=0);var j=q%26,k=(q-j)/26,g=67108863>>>26-j<<26-j,N;if(j!==0){var x=0;for(N=0;N>>26-j}x&&(this.words[N]=x,this.length++)}if(k!==0){for(N=this.length-1;N>=0;N--)this.words[N+k]=this.words[N];for(N=0;N=0);var g;j?g=(j-j%26)/26:g=0;var N=q%26,x=Math.min((q-N)/26,this.length),_=67108863^67108863>>>N<x)for(this.length-=x,y=0;y=0&&(w!==0||y>=g);y--){var f=this.words[y]|0;this.words[y]=w<<26-N|f>>>N,w=f&_}return B&&w!==0&&(B.words[B.length++]=w),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},V.prototype.ishrn=function(q,j,k){return Z(this.negative===0),this.iushrn(q,j,k)},V.prototype.shln=function(q){return this.clone().ishln(q)},V.prototype.ushln=function(q){return this.clone().iushln(q)},V.prototype.shrn=function(q){return this.clone().ishrn(q)},V.prototype.ushrn=function(q){return this.clone().iushrn(q)},V.prototype.testn=function(q){Z(typeof q=="number"&&q>=0);var j=q%26,k=(q-j)/26,g=1<=0);var j=q%26,k=(q-j)/26;if(Z(this.negative===0,"imaskn works only with positive numbers"),this.length<=k)return this;if(j!==0&&k++,this.length=Math.min(k,this.length),j!==0){var g=67108863^67108863>>>j<=67108864;j++)this.words[j]-=67108864,j===this.length-1?this.words[j+1]=1:this.words[j+1]++;return this.length=Math.max(this.length,j+1),this},V.prototype.isubn=function(q){if(Z(typeof q=="number"),Z(q<67108864),q<0)return this.iaddn(-q);if(this.negative!==0)return this.negative=0,this.iaddn(q),this.negative=1,this;if(this.words[0]-=q,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var j=0;j>26)-(B/67108864|0),this.words[N+k]=x&67108863}for(;N>26,this.words[N+k]=x&67108863;if(_===0)return this.strip();for(Z(_===-1),_=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},V.prototype._wordDiv=function(q,j){var k=this.length-q.length,g=this.clone(),N=q,x=N.words[N.length-1]|0,_=this._countBits(x);k=26-_,k!==0&&(N=N.ushln(k),g.iushln(k),x=N.words[N.length-1]|0);var B=g.length-N.length,y;if(j!=="mod"){y=new V(null),y.length=B+1,y.words=new Array(y.length);for(var w=0;w=0;p--){var c=(g.words[N.length+p]|0)*67108864+(g.words[N.length+p-1]|0);for(c=Math.min(c/x|0,67108863),g._ishlnsubmul(N,c,p);g.negative!==0;)c--,g.negative=0,g._ishlnsubmul(N,1,p),g.isZero()||(g.negative^=1);y&&(y.words[p]=c)}return y&&y.strip(),g.strip(),j!=="div"&&k!==0&&g.iushrn(k),{div:y||null,mod:g}},V.prototype.divmod=function(q,j,k){if(Z(!q.isZero()),this.isZero())return{div:new V(0),mod:new V(0)};var g,N,x;return this.negative!==0&&q.negative===0?(x=this.neg().divmod(q,j),j!=="mod"&&(g=x.div.neg()),j!=="div"&&(N=x.mod.neg(),k&&N.negative!==0&&N.iadd(q)),{div:g,mod:N}):this.negative===0&&q.negative!==0?(x=this.divmod(q.neg(),j),j!=="mod"&&(g=x.div.neg()),{div:g,mod:x.mod}):(this.negative&q.negative)!==0?(x=this.neg().divmod(q.neg(),j),j!=="div"&&(N=x.mod.neg(),k&&N.negative!==0&&N.isub(q)),{div:x.div,mod:N}):q.length>this.length||this.cmp(q)<0?{div:new V(0),mod:this}:q.length===1?j==="div"?{div:this.divn(q.words[0]),mod:null}:j==="mod"?{div:null,mod:new V(this.modn(q.words[0]))}:{div:this.divn(q.words[0]),mod:new V(this.modn(q.words[0]))}:this._wordDiv(q,j)},V.prototype.div=function(q){return this.divmod(q,"div",!1).div},V.prototype.mod=function(q){return this.divmod(q,"mod",!1).mod},V.prototype.umod=function(q){return this.divmod(q,"mod",!0).mod},V.prototype.divRound=function(q){var j=this.divmod(q);if(j.mod.isZero())return j.div;var k=j.div.negative!==0?j.mod.isub(q):j.mod,g=q.ushrn(1),N=q.andln(1),x=k.cmp(g);return x<0||N===1&&x===0?j.div:j.div.negative!==0?j.div.isubn(1):j.div.iaddn(1)},V.prototype.modn=function(q){Z(q<=67108863);for(var j=(1<<26)%q,k=0,g=this.length-1;g>=0;g--)k=(j*k+(this.words[g]|0))%q;return k},V.prototype.idivn=function(q){Z(q<=67108863);for(var j=0,k=this.length-1;k>=0;k--){var g=(this.words[k]|0)+j*67108864;this.words[k]=g/q|0,j=g%q}return this.strip()},V.prototype.divn=function(q){return this.clone().idivn(q)},V.prototype.egcd=function(q){Z(q.negative===0),Z(!q.isZero());var j=this,k=q.clone();j.negative!==0?j=j.umod(q):j=j.clone();for(var g=new V(1),N=new V(0),x=new V(0),_=new V(1),B=0;j.isEven()&&k.isEven();)j.iushrn(1),k.iushrn(1),++B;for(var y=k.clone(),w=j.clone();!j.isZero();){for(var f=0,p=1;(j.words[0]&p)===0&&f<26;++f,p<<=1);if(f>0)for(j.iushrn(f);f-- >0;)(g.isOdd()||N.isOdd())&&(g.iadd(y),N.isub(w)),g.iushrn(1),N.iushrn(1);for(var c=0,h=1;(k.words[0]&h)===0&&c<26;++c,h<<=1);if(c>0)for(k.iushrn(c);c-- >0;)(x.isOdd()||_.isOdd())&&(x.iadd(y),_.isub(w)),x.iushrn(1),_.iushrn(1);j.cmp(k)>=0?(j.isub(k),g.isub(x),N.isub(_)):(k.isub(j),x.isub(g),_.isub(N))}return{a:x,b:_,gcd:k.iushln(B)}},V.prototype._invmp=function(q){Z(q.negative===0),Z(!q.isZero());var j=this,k=q.clone();j.negative!==0?j=j.umod(q):j=j.clone();for(var g=new V(1),N=new V(0),x=k.clone();j.cmpn(1)>0&&k.cmpn(1)>0;){for(var _=0,B=1;(j.words[0]&B)===0&&_<26;++_,B<<=1);if(_>0)for(j.iushrn(_);_-- >0;)g.isOdd()&&g.iadd(x),g.iushrn(1);for(var y=0,w=1;(k.words[0]&w)===0&&y<26;++y,w<<=1);if(y>0)for(k.iushrn(y);y-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);j.cmp(k)>=0?(j.isub(k),g.isub(N)):(k.isub(j),N.isub(g))}var f;return j.cmpn(1)===0?f=g:f=N,f.cmpn(0)<0&&f.iadd(q),f},V.prototype.gcd=function(q){if(this.isZero())return q.abs();if(q.isZero())return this.abs();var j=this.clone(),k=q.clone();j.negative=0,k.negative=0;for(var g=0;j.isEven()&&k.isEven();g++)j.iushrn(1),k.iushrn(1);do{for(;j.isEven();)j.iushrn(1);for(;k.isEven();)k.iushrn(1);var N=j.cmp(k);if(N<0){var x=j;j=k,k=x}else if(N===0||k.cmpn(1)===0)break;j.isub(k)}while(!0);return k.iushln(g)},V.prototype.invm=function(q){return this.egcd(q).a.umod(q)},V.prototype.isEven=function(){return(this.words[0]&1)===0},V.prototype.isOdd=function(){return(this.words[0]&1)===1},V.prototype.andln=function(q){return this.words[0]&q},V.prototype.bincn=function(q){Z(typeof q=="number");var j=q%26,k=(q-j)/26,g=1<>>26,_&=67108863,this.words[x]=_}return N!==0&&(this.words[x]=N,this.length++),this},V.prototype.isZero=function(){return this.length===1&&this.words[0]===0},V.prototype.cmpn=function(q){var j=q<0;if(this.negative!==0&&!j)return-1;if(this.negative===0&&j)return 1;this.strip();var k;if(this.length>1)k=1;else{j&&(q=-q),Z(q<=67108863,"Number is too big");var g=this.words[0]|0;k=g===q?0:gq.length)return 1;if(this.length=0;k--){var g=this.words[k]|0,N=q.words[k]|0;if(g!==N){gN&&(j=1);break}}return j},V.prototype.gtn=function(q){return this.cmpn(q)===1},V.prototype.gt=function(q){return this.cmp(q)===1},V.prototype.gten=function(q){return this.cmpn(q)>=0},V.prototype.gte=function(q){return this.cmp(q)>=0},V.prototype.ltn=function(q){return this.cmpn(q)===-1},V.prototype.lt=function(q){return this.cmp(q)===-1},V.prototype.lten=function(q){return this.cmpn(q)<=0},V.prototype.lte=function(q){return this.cmp(q)<=0},V.prototype.eqn=function(q){return this.cmpn(q)===0},V.prototype.eq=function(q){return this.cmp(q)===0},V.red=function(q){return new S(q)},V.prototype.toRed=function(q){return Z(!this.red,"Already a number in reduction context"),Z(this.negative===0,"red works only with positives"),q.convertTo(this)._forceRed(q)},V.prototype.fromRed=function(){return Z(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},V.prototype._forceRed=function(q){return this.red=q,this},V.prototype.forceRed=function(q){return Z(!this.red,"Already a number in reduction context"),this._forceRed(q)},V.prototype.redAdd=function(q){return Z(this.red,"redAdd works only with red numbers"),this.red.add(this,q)},V.prototype.redIAdd=function(q){return Z(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,q)},V.prototype.redSub=function(q){return Z(this.red,"redSub works only with red numbers"),this.red.sub(this,q)},V.prototype.redISub=function(q){return Z(this.red,"redISub works only with red numbers"),this.red.isub(this,q)},V.prototype.redShl=function(q){return Z(this.red,"redShl works only with red numbers"),this.red.shl(this,q)},V.prototype.redMul=function(q){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,q),this.red.mul(this,q)},V.prototype.redIMul=function(q){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,q),this.red.imul(this,q)},V.prototype.redSqr=function(){return Z(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},V.prototype.redISqr=function(){return Z(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},V.prototype.redSqrt=function(){return Z(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},V.prototype.redInvm=function(){return Z(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},V.prototype.redNeg=function(){return Z(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},V.prototype.redPow=function(q){return Z(this.red&&!q.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,q)};var C={k256:null,p224:null,p192:null,p25519:null};function L(q,j){this.name=q,this.p=new V(j,16),this.n=this.p.bitLength(),this.k=new V(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}L.prototype._tmp=function(){var q=new V(null);return q.words=new Array(Math.ceil(this.n/13)),q},L.prototype.ireduce=function(q){var j=q,k;do this.split(j,this.tmp),j=this.imulK(j),j=j.iadd(this.tmp),k=j.bitLength();while(k>this.n);var g=k0?j.isub(this.p):j.strip!==void 0?j.strip():j._strip(),j},L.prototype.split=function(q,j){q.iushrn(this.n,0,j)},L.prototype.imulK=function(q){return q.imul(this.k)};function R(){L.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}G(R,L),R.prototype.split=function(q,j){for(var k=4194303,g=Math.min(q.length,9),N=0;N>>22,x=_}x>>>=22,q.words[N-10]=x,x===0&&q.length>10?q.length-=10:q.length-=9},R.prototype.imulK=function(q){q.words[q.length]=0,q.words[q.length+1]=0,q.length+=2;for(var j=0,k=0;k>>=26,q.words[k]=N,j=g}return j!==0&&(q.words[q.length++]=j),q},V._prime=function(q){if(C[q])return C[q];var j;if(q==="k256")j=new R;else if(q==="p224")j=new P;else if(q==="p192")j=new z;else if(q==="p25519")j=new M;else throw new Error("Unknown prime "+q);return C[q]=j,j};function S(q){if(typeof q=="string"){var j=V._prime(q);this.m=j.p,this.prime=j}else Z(q.gtn(1),"modulus must be greater than 1"),this.m=q,this.prime=null}S.prototype._verify1=function(q){Z(q.negative===0,"red works only with positives"),Z(q.red,"red works only with red numbers")},S.prototype._verify2=function(q,j){Z((q.negative|j.negative)===0,"red works only with positives"),Z(q.red&&q.red===j.red,"red works only with red numbers")},S.prototype.imod=function(q){return this.prime?this.prime.ireduce(q)._forceRed(this):q.umod(this.m)._forceRed(this)},S.prototype.neg=function(q){return q.isZero()?q.clone():this.m.sub(q)._forceRed(this)},S.prototype.add=function(q,j){this._verify2(q,j);var k=q.add(j);return k.cmp(this.m)>=0&&k.isub(this.m),k._forceRed(this)},S.prototype.iadd=function(q,j){this._verify2(q,j);var k=q.iadd(j);return k.cmp(this.m)>=0&&k.isub(this.m),k},S.prototype.sub=function(q,j){this._verify2(q,j);var k=q.sub(j);return k.cmpn(0)<0&&k.iadd(this.m),k._forceRed(this)},S.prototype.isub=function(q,j){this._verify2(q,j);var k=q.isub(j);return k.cmpn(0)<0&&k.iadd(this.m),k},S.prototype.shl=function(q,j){return this._verify1(q),this.imod(q.ushln(j))},S.prototype.imul=function(q,j){return this._verify2(q,j),this.imod(q.imul(j))},S.prototype.mul=function(q,j){return this._verify2(q,j),this.imod(q.mul(j))},S.prototype.isqr=function(q){return this.imul(q,q.clone())},S.prototype.sqr=function(q){return this.mul(q,q)},S.prototype.sqrt=function(q){if(q.isZero())return q.clone();var j=this.m.andln(3);if(Z(j%2===1),j===3){var k=this.m.add(new V(1)).iushrn(2);return this.pow(q,k)}for(var g=this.m.subn(1),N=0;!g.isZero()&&g.andln(1)===0;)N++,g.iushrn(1);Z(!g.isZero());var x=new V(1).toRed(this),_=x.redNeg(),B=this.m.subn(1).iushrn(1),y=this.m.bitLength();for(y=new V(2*y*y).toRed(this);this.pow(y,B).cmp(_)!==0;)y.redIAdd(_);for(var w=this.pow(y,g),f=this.pow(q,g.addn(1).iushrn(1)),p=this.pow(q,g),c=N;p.cmp(x)!==0;){for(var h=p,d=0;h.cmp(x)!==0;d++)h=h.redSqr();Z(d=0;N--){for(var w=j.words[N],f=y-1;f>=0;f--){var p=w>>f&1;if(x!==g[0]&&(x=this.sqr(x)),p===0&&_===0){B=0;continue}_<<=1,_|=p,B++,!(B!==k&&(N!==0||f!==0))&&(x=this.mul(x,g[_]),B=0,_=0)}y=26}return x},S.prototype.convertTo=function(q){var j=q.umod(this.m);return j===q?j.clone():j},S.prototype.convertFrom=function(q){var j=q.clone();return j.red=null,j},V.mont=function(q){return new v(q)};function v(q){S.call(this,q),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new V(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}G(v,S),v.prototype.convertTo=function(q){return this.imod(q.ushln(this.shift))},v.prototype.convertFrom=function(q){var j=this.imod(q.mul(this.rinv));return j.red=null,j},v.prototype.imul=function(q,j){if(q.isZero()||j.isZero())return q.words[0]=0,q.length=1,q;var k=q.imul(j),g=k.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=k.isub(g).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},v.prototype.mul=function(q,j){if(q.isZero()||j.isZero())return new V(0)._forceRed(this);var k=q.mul(j),g=k.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=k.isub(g).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},v.prototype.invm=function(q){var j=this.imod(q._invmp(this.m).mul(this.r2));return j._forceRed(this)}})(typeof $>"u"||$,bZ)}}),qQ=P$({"node_modules/miller-rabin/node_modules/bn.js/lib/bn.js"(bZ,$){(function(Q,Y){function Z(q,j){if(!q)throw new Error(j||"Assertion failed")}function G(q,j){q.super_=j;var k=function(){};k.prototype=j.prototype,q.prototype=new k,q.prototype.constructor=q}function V(q,j,k){if(V.isBN(q))return q;this.negative=0,this.words=null,this.length=0,this.red=null,q!==null&&((j==="le"||j==="be")&&(k=j,j=10),this._init(q||0,j||10,k||"be"))}typeof Q=="object"?Q.exports=V:Y.BN=V,V.BN=V,V.wordSize=26;var U;try{typeof window<"u"&&typeof window.Buffer<"u"?U=window.Buffer:U=L$("buffer").Buffer}catch{}V.isBN=function(q){return q instanceof V?!0:q!==null&&typeof q=="object"&&q.constructor.wordSize===V.wordSize&&Array.isArray(q.words)},V.max=function(q,j){return q.cmp(j)>0?q:j},V.min=function(q,j){return q.cmp(j)<0?q:j},V.prototype._init=function(q,j,k){if(typeof q=="number")return this._initNumber(q,j,k);if(typeof q=="object")return this._initArray(q,j,k);j==="hex"&&(j=16),Z(j===(j|0)&&j>=2&&j<=36),q=q.toString().replace(/\s+/g,"");var g=0;q[0]==="-"&&(g++,this.negative=1),g=0;g-=3)x=q[g]|q[g-1]<<8|q[g-2]<<16,this.words[N]|=x<<_&67108863,this.words[N+1]=x>>>26-_&67108863,_+=24,_>=26&&(_-=26,N++);else if(k==="le")for(g=0,N=0;g>>26-_&67108863,_+=24,_>=26&&(_-=26,N++);return this.strip()};function X(q,j){var k=q.charCodeAt(j);return k>=65&&k<=70?k-55:k>=97&&k<=102?k-87:k-48&15}function K(q,j,k){var g=X(q,k);return k-1>=j&&(g|=X(q,k-1)<<4),g}V.prototype._parseHex=function(q,j,k){this.length=Math.ceil((q.length-j)/6),this.words=new Array(this.length);for(var g=0;g=j;g-=2)_=K(q,j,g)<=18?(N-=18,x+=1,this.words[x]|=_>>>26):N+=8;else{var B=q.length-j;for(g=B%2===0?j+1:j;g=18?(N-=18,x+=1,this.words[x]|=_>>>26):N+=8}this.strip()};function I(q,j,k,g){for(var N=0,x=Math.min(q.length,k),_=j;_=49?N+=B-49+10:B>=17?N+=B-17+10:N+=B}return N}V.prototype._parseBase=function(q,j,k){this.words=[0],this.length=1;for(var g=0,N=1;N<=67108863;N*=j)g++;g--,N=N/j|0;for(var x=q.length-k,_=x%g,B=Math.min(x,x-_)+k,y=0,w=k;w1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},V.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},V.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],O=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],F=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];V.prototype.toString=function(q,j){q=q||10,j=j|0||1;var k;if(q===16||q==="hex"){k="";for(var g=0,N=0,x=0;x>>24-g&16777215,N!==0||x!==this.length-1?k=J[6-B.length]+B+k:k=B+k,g+=2,g>=26&&(g-=26,x--)}for(N!==0&&(k=N.toString(16)+k);k.length%j!==0;)k="0"+k;return this.negative!==0&&(k="-"+k),k}if(q===(q|0)&&q>=2&&q<=36){var y=O[q],w=F[q];k="";var f=this.clone();for(f.negative=0;!f.isZero();){var p=f.modn(w).toString(q);f=f.idivn(w),f.isZero()?k=p+k:k=J[y-p.length]+p+k}for(this.isZero()&&(k="0"+k);k.length%j!==0;)k="0"+k;return this.negative!==0&&(k="-"+k),k}Z(!1,"Base should be between 2 and 36")},V.prototype.toNumber=function(){var q=this.words[0];return this.length===2?q+=this.words[1]*67108864:this.length===3&&this.words[2]===1?q+=4503599627370496+this.words[1]*67108864:this.length>2&&Z(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-q:q},V.prototype.toJSON=function(){return this.toString(16)},V.prototype.toBuffer=function(q,j){return Z(typeof U<"u"),this.toArrayLike(U,q,j)},V.prototype.toArray=function(q,j){return this.toArrayLike(Array,q,j)},V.prototype.toArrayLike=function(q,j,k){var g=this.byteLength(),N=k||Math.max(1,g);Z(g<=N,"byte array longer than desired length"),Z(N>0,"Requested array length <= 0"),this.strip();var x=j==="le",_=new q(N),B,y,w=this.clone();if(x){for(y=0;!w.isZero();y++)B=w.andln(255),w.iushrn(8),_[y]=B;for(;y=4096&&(k+=13,j>>>=13),j>=64&&(k+=7,j>>>=7),j>=8&&(k+=4,j>>>=4),j>=2&&(k+=2,j>>>=2),k+j},V.prototype._zeroBits=function(q){if(q===0)return 26;var j=q,k=0;return(j&8191)===0&&(k+=13,j>>>=13),(j&127)===0&&(k+=7,j>>>=7),(j&15)===0&&(k+=4,j>>>=4),(j&3)===0&&(k+=2,j>>>=2),(j&1)===0&&k++,k},V.prototype.bitLength=function(){var q=this.words[this.length-1],j=this._countBits(q);return(this.length-1)*26+j};function A(q){for(var j=new Array(q.bitLength()),k=0;k>>N}return j}V.prototype.zeroBits=function(){if(this.isZero())return 0;for(var q=0,j=0;jq.length?this.clone().ior(q):q.clone().ior(this)},V.prototype.uor=function(q){return this.length>q.length?this.clone().iuor(q):q.clone().iuor(this)},V.prototype.iuand=function(q){var j;this.length>q.length?j=q:j=this;for(var k=0;kq.length?this.clone().iand(q):q.clone().iand(this)},V.prototype.uand=function(q){return this.length>q.length?this.clone().iuand(q):q.clone().iuand(this)},V.prototype.iuxor=function(q){var j,k;this.length>q.length?(j=this,k=q):(j=q,k=this);for(var g=0;gq.length?this.clone().ixor(q):q.clone().ixor(this)},V.prototype.uxor=function(q){return this.length>q.length?this.clone().iuxor(q):q.clone().iuxor(this)},V.prototype.inotn=function(q){Z(typeof q=="number"&&q>=0);var j=Math.ceil(q/26)|0,k=q%26;this._expand(j),k>0&&j--;for(var g=0;g0&&(this.words[g]=~this.words[g]&67108863>>26-k),this.strip()},V.prototype.notn=function(q){return this.clone().inotn(q)},V.prototype.setn=function(q,j){Z(typeof q=="number"&&q>=0);var k=q/26|0,g=q%26;return this._expand(k+1),j?this.words[k]=this.words[k]|1<q.length?(k=this,g=q):(k=q,g=this);for(var N=0,x=0;x>>26;for(;N!==0&&x>>26;if(this.length=k.length,N!==0)this.words[this.length]=N,this.length++;else if(k!==this)for(;xq.length?this.clone().iadd(q):q.clone().iadd(this)},V.prototype.isub=function(q){if(q.negative!==0){q.negative=0;var j=this.iadd(q);return q.negative=1,j._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(q),this.negative=1,this._normSign();var k=this.cmp(q);if(k===0)return this.negative=0,this.length=1,this.words[0]=0,this;var g,N;k>0?(g=this,N=q):(g=q,N=this);for(var x=0,_=0;_>26,this.words[_]=j&67108863;for(;x!==0&&_>26,this.words[_]=j&67108863;if(x===0&&_>>26,p=y&67108863,c=Math.min(w,j.length-1),h=Math.max(0,w-q.length+1);h<=c;h++){var d=w-h|0;N=q.words[d]|0,x=j.words[h]|0,_=N*x+p,f+=_/67108864|0,p=_&67108863}k.words[w]=p|0,y=f|0}return y!==0?k.words[w]=y|0:k.length--,k.strip()}var H=function(q,j,k){var g=q.words,N=j.words,x=k.words,_=0,B,y,w,f=g[0]|0,p=f&8191,c=f>>>13,h=g[1]|0,d=h&8191,b=h>>>13,l=g[2]|0,o=l&8191,u=l>>>13,n=g[3]|0,s=n&8191,t=n>>>13,m=g[4]|0,a=m&8191,r=m>>>13,e=g[5]|0,i=e&8191,$0=e>>>13,Q0=g[6]|0,Y0=Q0&8191,Z0=Q0>>>13,G0=g[7]|0,V0=G0&8191,U0=G0>>>13,X0=g[8]|0,K0=X0&8191,I0=X0>>>13,J0=g[9]|0,O0=J0&8191,F0=J0>>>13,A0=N[0]|0,W0=A0&8191,H0=A0>>>13,E0=N[1]|0,T0=E0&8191,D0=E0>>>13,C0=N[2]|0,L0=C0&8191,R0=C0>>>13,P0=N[3]|0,z0=P0&8191,M0=P0>>>13,S0=N[4]|0,v0=S0&8191,q0=S0>>>13,j0=N[5]|0,k0=j0&8191,g0=j0>>>13,N0=N[6]|0,x0=N0&8191,_0=N0>>>13,B0=N[7]|0,y0=B0&8191,w0=B0>>>13,f0=N[8]|0,p0=f0&8191,c0=f0>>>13,h0=N[9]|0,d0=h0&8191,b0=h0>>>13;k.negative=q.negative^j.negative,k.length=19,B=Math.imul(p,W0),y=Math.imul(p,H0),y=y+Math.imul(c,W0)|0,w=Math.imul(c,H0);var l0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(l0>>>26)|0,l0&=67108863,B=Math.imul(d,W0),y=Math.imul(d,H0),y=y+Math.imul(b,W0)|0,w=Math.imul(b,H0),B=B+Math.imul(p,T0)|0,y=y+Math.imul(p,D0)|0,y=y+Math.imul(c,T0)|0,w=w+Math.imul(c,D0)|0;var o0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(o0>>>26)|0,o0&=67108863,B=Math.imul(o,W0),y=Math.imul(o,H0),y=y+Math.imul(u,W0)|0,w=Math.imul(u,H0),B=B+Math.imul(d,T0)|0,y=y+Math.imul(d,D0)|0,y=y+Math.imul(b,T0)|0,w=w+Math.imul(b,D0)|0,B=B+Math.imul(p,L0)|0,y=y+Math.imul(p,R0)|0,y=y+Math.imul(c,L0)|0,w=w+Math.imul(c,R0)|0;var u0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(u0>>>26)|0,u0&=67108863,B=Math.imul(s,W0),y=Math.imul(s,H0),y=y+Math.imul(t,W0)|0,w=Math.imul(t,H0),B=B+Math.imul(o,T0)|0,y=y+Math.imul(o,D0)|0,y=y+Math.imul(u,T0)|0,w=w+Math.imul(u,D0)|0,B=B+Math.imul(d,L0)|0,y=y+Math.imul(d,R0)|0,y=y+Math.imul(b,L0)|0,w=w+Math.imul(b,R0)|0,B=B+Math.imul(p,z0)|0,y=y+Math.imul(p,M0)|0,y=y+Math.imul(c,z0)|0,w=w+Math.imul(c,M0)|0;var n0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(n0>>>26)|0,n0&=67108863,B=Math.imul(a,W0),y=Math.imul(a,H0),y=y+Math.imul(r,W0)|0,w=Math.imul(r,H0),B=B+Math.imul(s,T0)|0,y=y+Math.imul(s,D0)|0,y=y+Math.imul(t,T0)|0,w=w+Math.imul(t,D0)|0,B=B+Math.imul(o,L0)|0,y=y+Math.imul(o,R0)|0,y=y+Math.imul(u,L0)|0,w=w+Math.imul(u,R0)|0,B=B+Math.imul(d,z0)|0,y=y+Math.imul(d,M0)|0,y=y+Math.imul(b,z0)|0,w=w+Math.imul(b,M0)|0,B=B+Math.imul(p,v0)|0,y=y+Math.imul(p,q0)|0,y=y+Math.imul(c,v0)|0,w=w+Math.imul(c,q0)|0;var s0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(s0>>>26)|0,s0&=67108863,B=Math.imul(i,W0),y=Math.imul(i,H0),y=y+Math.imul($0,W0)|0,w=Math.imul($0,H0),B=B+Math.imul(a,T0)|0,y=y+Math.imul(a,D0)|0,y=y+Math.imul(r,T0)|0,w=w+Math.imul(r,D0)|0,B=B+Math.imul(s,L0)|0,y=y+Math.imul(s,R0)|0,y=y+Math.imul(t,L0)|0,w=w+Math.imul(t,R0)|0,B=B+Math.imul(o,z0)|0,y=y+Math.imul(o,M0)|0,y=y+Math.imul(u,z0)|0,w=w+Math.imul(u,M0)|0,B=B+Math.imul(d,v0)|0,y=y+Math.imul(d,q0)|0,y=y+Math.imul(b,v0)|0,w=w+Math.imul(b,q0)|0,B=B+Math.imul(p,k0)|0,y=y+Math.imul(p,g0)|0,y=y+Math.imul(c,k0)|0,w=w+Math.imul(c,g0)|0;var t0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(t0>>>26)|0,t0&=67108863,B=Math.imul(Y0,W0),y=Math.imul(Y0,H0),y=y+Math.imul(Z0,W0)|0,w=Math.imul(Z0,H0),B=B+Math.imul(i,T0)|0,y=y+Math.imul(i,D0)|0,y=y+Math.imul($0,T0)|0,w=w+Math.imul($0,D0)|0,B=B+Math.imul(a,L0)|0,y=y+Math.imul(a,R0)|0,y=y+Math.imul(r,L0)|0,w=w+Math.imul(r,R0)|0,B=B+Math.imul(s,z0)|0,y=y+Math.imul(s,M0)|0,y=y+Math.imul(t,z0)|0,w=w+Math.imul(t,M0)|0,B=B+Math.imul(o,v0)|0,y=y+Math.imul(o,q0)|0,y=y+Math.imul(u,v0)|0,w=w+Math.imul(u,q0)|0,B=B+Math.imul(d,k0)|0,y=y+Math.imul(d,g0)|0,y=y+Math.imul(b,k0)|0,w=w+Math.imul(b,g0)|0,B=B+Math.imul(p,x0)|0,y=y+Math.imul(p,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,_0)|0;var m0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(m0>>>26)|0,m0&=67108863,B=Math.imul(V0,W0),y=Math.imul(V0,H0),y=y+Math.imul(U0,W0)|0,w=Math.imul(U0,H0),B=B+Math.imul(Y0,T0)|0,y=y+Math.imul(Y0,D0)|0,y=y+Math.imul(Z0,T0)|0,w=w+Math.imul(Z0,D0)|0,B=B+Math.imul(i,L0)|0,y=y+Math.imul(i,R0)|0,y=y+Math.imul($0,L0)|0,w=w+Math.imul($0,R0)|0,B=B+Math.imul(a,z0)|0,y=y+Math.imul(a,M0)|0,y=y+Math.imul(r,z0)|0,w=w+Math.imul(r,M0)|0,B=B+Math.imul(s,v0)|0,y=y+Math.imul(s,q0)|0,y=y+Math.imul(t,v0)|0,w=w+Math.imul(t,q0)|0,B=B+Math.imul(o,k0)|0,y=y+Math.imul(o,g0)|0,y=y+Math.imul(u,k0)|0,w=w+Math.imul(u,g0)|0,B=B+Math.imul(d,x0)|0,y=y+Math.imul(d,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,_0)|0,B=B+Math.imul(p,y0)|0,y=y+Math.imul(p,w0)|0,y=y+Math.imul(c,y0)|0,w=w+Math.imul(c,w0)|0;var a0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(a0>>>26)|0,a0&=67108863,B=Math.imul(K0,W0),y=Math.imul(K0,H0),y=y+Math.imul(I0,W0)|0,w=Math.imul(I0,H0),B=B+Math.imul(V0,T0)|0,y=y+Math.imul(V0,D0)|0,y=y+Math.imul(U0,T0)|0,w=w+Math.imul(U0,D0)|0,B=B+Math.imul(Y0,L0)|0,y=y+Math.imul(Y0,R0)|0,y=y+Math.imul(Z0,L0)|0,w=w+Math.imul(Z0,R0)|0,B=B+Math.imul(i,z0)|0,y=y+Math.imul(i,M0)|0,y=y+Math.imul($0,z0)|0,w=w+Math.imul($0,M0)|0,B=B+Math.imul(a,v0)|0,y=y+Math.imul(a,q0)|0,y=y+Math.imul(r,v0)|0,w=w+Math.imul(r,q0)|0,B=B+Math.imul(s,k0)|0,y=y+Math.imul(s,g0)|0,y=y+Math.imul(t,k0)|0,w=w+Math.imul(t,g0)|0,B=B+Math.imul(o,x0)|0,y=y+Math.imul(o,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,_0)|0,B=B+Math.imul(d,y0)|0,y=y+Math.imul(d,w0)|0,y=y+Math.imul(b,y0)|0,w=w+Math.imul(b,w0)|0,B=B+Math.imul(p,p0)|0,y=y+Math.imul(p,c0)|0,y=y+Math.imul(c,p0)|0,w=w+Math.imul(c,c0)|0;var r0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(r0>>>26)|0,r0&=67108863,B=Math.imul(O0,W0),y=Math.imul(O0,H0),y=y+Math.imul(F0,W0)|0,w=Math.imul(F0,H0),B=B+Math.imul(K0,T0)|0,y=y+Math.imul(K0,D0)|0,y=y+Math.imul(I0,T0)|0,w=w+Math.imul(I0,D0)|0,B=B+Math.imul(V0,L0)|0,y=y+Math.imul(V0,R0)|0,y=y+Math.imul(U0,L0)|0,w=w+Math.imul(U0,R0)|0,B=B+Math.imul(Y0,z0)|0,y=y+Math.imul(Y0,M0)|0,y=y+Math.imul(Z0,z0)|0,w=w+Math.imul(Z0,M0)|0,B=B+Math.imul(i,v0)|0,y=y+Math.imul(i,q0)|0,y=y+Math.imul($0,v0)|0,w=w+Math.imul($0,q0)|0,B=B+Math.imul(a,k0)|0,y=y+Math.imul(a,g0)|0,y=y+Math.imul(r,k0)|0,w=w+Math.imul(r,g0)|0,B=B+Math.imul(s,x0)|0,y=y+Math.imul(s,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,_0)|0,B=B+Math.imul(o,y0)|0,y=y+Math.imul(o,w0)|0,y=y+Math.imul(u,y0)|0,w=w+Math.imul(u,w0)|0,B=B+Math.imul(d,p0)|0,y=y+Math.imul(d,c0)|0,y=y+Math.imul(b,p0)|0,w=w+Math.imul(b,c0)|0,B=B+Math.imul(p,d0)|0,y=y+Math.imul(p,b0)|0,y=y+Math.imul(c,d0)|0,w=w+Math.imul(c,b0)|0;var e0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(e0>>>26)|0,e0&=67108863,B=Math.imul(O0,T0),y=Math.imul(O0,D0),y=y+Math.imul(F0,T0)|0,w=Math.imul(F0,D0),B=B+Math.imul(K0,L0)|0,y=y+Math.imul(K0,R0)|0,y=y+Math.imul(I0,L0)|0,w=w+Math.imul(I0,R0)|0,B=B+Math.imul(V0,z0)|0,y=y+Math.imul(V0,M0)|0,y=y+Math.imul(U0,z0)|0,w=w+Math.imul(U0,M0)|0,B=B+Math.imul(Y0,v0)|0,y=y+Math.imul(Y0,q0)|0,y=y+Math.imul(Z0,v0)|0,w=w+Math.imul(Z0,q0)|0,B=B+Math.imul(i,k0)|0,y=y+Math.imul(i,g0)|0,y=y+Math.imul($0,k0)|0,w=w+Math.imul($0,g0)|0,B=B+Math.imul(a,x0)|0,y=y+Math.imul(a,_0)|0,y=y+Math.imul(r,x0)|0,w=w+Math.imul(r,_0)|0,B=B+Math.imul(s,y0)|0,y=y+Math.imul(s,w0)|0,y=y+Math.imul(t,y0)|0,w=w+Math.imul(t,w0)|0,B=B+Math.imul(o,p0)|0,y=y+Math.imul(o,c0)|0,y=y+Math.imul(u,p0)|0,w=w+Math.imul(u,c0)|0,B=B+Math.imul(d,d0)|0,y=y+Math.imul(d,b0)|0,y=y+Math.imul(b,d0)|0,w=w+Math.imul(b,b0)|0;var i0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(i0>>>26)|0,i0&=67108863,B=Math.imul(O0,L0),y=Math.imul(O0,R0),y=y+Math.imul(F0,L0)|0,w=Math.imul(F0,R0),B=B+Math.imul(K0,z0)|0,y=y+Math.imul(K0,M0)|0,y=y+Math.imul(I0,z0)|0,w=w+Math.imul(I0,M0)|0,B=B+Math.imul(V0,v0)|0,y=y+Math.imul(V0,q0)|0,y=y+Math.imul(U0,v0)|0,w=w+Math.imul(U0,q0)|0,B=B+Math.imul(Y0,k0)|0,y=y+Math.imul(Y0,g0)|0,y=y+Math.imul(Z0,k0)|0,w=w+Math.imul(Z0,g0)|0,B=B+Math.imul(i,x0)|0,y=y+Math.imul(i,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,_0)|0,B=B+Math.imul(a,y0)|0,y=y+Math.imul(a,w0)|0,y=y+Math.imul(r,y0)|0,w=w+Math.imul(r,w0)|0,B=B+Math.imul(s,p0)|0,y=y+Math.imul(s,c0)|0,y=y+Math.imul(t,p0)|0,w=w+Math.imul(t,c0)|0,B=B+Math.imul(o,d0)|0,y=y+Math.imul(o,b0)|0,y=y+Math.imul(u,d0)|0,w=w+Math.imul(u,b0)|0;var $$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+($$>>>26)|0,$$&=67108863,B=Math.imul(O0,z0),y=Math.imul(O0,M0),y=y+Math.imul(F0,z0)|0,w=Math.imul(F0,M0),B=B+Math.imul(K0,v0)|0,y=y+Math.imul(K0,q0)|0,y=y+Math.imul(I0,v0)|0,w=w+Math.imul(I0,q0)|0,B=B+Math.imul(V0,k0)|0,y=y+Math.imul(V0,g0)|0,y=y+Math.imul(U0,k0)|0,w=w+Math.imul(U0,g0)|0,B=B+Math.imul(Y0,x0)|0,y=y+Math.imul(Y0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,_0)|0,B=B+Math.imul(i,y0)|0,y=y+Math.imul(i,w0)|0,y=y+Math.imul($0,y0)|0,w=w+Math.imul($0,w0)|0,B=B+Math.imul(a,p0)|0,y=y+Math.imul(a,c0)|0,y=y+Math.imul(r,p0)|0,w=w+Math.imul(r,c0)|0,B=B+Math.imul(s,d0)|0,y=y+Math.imul(s,b0)|0,y=y+Math.imul(t,d0)|0,w=w+Math.imul(t,b0)|0;var Q$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,B=Math.imul(O0,v0),y=Math.imul(O0,q0),y=y+Math.imul(F0,v0)|0,w=Math.imul(F0,q0),B=B+Math.imul(K0,k0)|0,y=y+Math.imul(K0,g0)|0,y=y+Math.imul(I0,k0)|0,w=w+Math.imul(I0,g0)|0,B=B+Math.imul(V0,x0)|0,y=y+Math.imul(V0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,_0)|0,B=B+Math.imul(Y0,y0)|0,y=y+Math.imul(Y0,w0)|0,y=y+Math.imul(Z0,y0)|0,w=w+Math.imul(Z0,w0)|0,B=B+Math.imul(i,p0)|0,y=y+Math.imul(i,c0)|0,y=y+Math.imul($0,p0)|0,w=w+Math.imul($0,c0)|0,B=B+Math.imul(a,d0)|0,y=y+Math.imul(a,b0)|0,y=y+Math.imul(r,d0)|0,w=w+Math.imul(r,b0)|0;var Y$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,B=Math.imul(O0,k0),y=Math.imul(O0,g0),y=y+Math.imul(F0,k0)|0,w=Math.imul(F0,g0),B=B+Math.imul(K0,x0)|0,y=y+Math.imul(K0,_0)|0,y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,_0)|0,B=B+Math.imul(V0,y0)|0,y=y+Math.imul(V0,w0)|0,y=y+Math.imul(U0,y0)|0,w=w+Math.imul(U0,w0)|0,B=B+Math.imul(Y0,p0)|0,y=y+Math.imul(Y0,c0)|0,y=y+Math.imul(Z0,p0)|0,w=w+Math.imul(Z0,c0)|0,B=B+Math.imul(i,d0)|0,y=y+Math.imul(i,b0)|0,y=y+Math.imul($0,d0)|0,w=w+Math.imul($0,b0)|0;var Z$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,B=Math.imul(O0,x0),y=Math.imul(O0,_0),y=y+Math.imul(F0,x0)|0,w=Math.imul(F0,_0),B=B+Math.imul(K0,y0)|0,y=y+Math.imul(K0,w0)|0,y=y+Math.imul(I0,y0)|0,w=w+Math.imul(I0,w0)|0,B=B+Math.imul(V0,p0)|0,y=y+Math.imul(V0,c0)|0,y=y+Math.imul(U0,p0)|0,w=w+Math.imul(U0,c0)|0,B=B+Math.imul(Y0,d0)|0,y=y+Math.imul(Y0,b0)|0,y=y+Math.imul(Z0,d0)|0,w=w+Math.imul(Z0,b0)|0;var G$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(G$>>>26)|0,G$&=67108863,B=Math.imul(O0,y0),y=Math.imul(O0,w0),y=y+Math.imul(F0,y0)|0,w=Math.imul(F0,w0),B=B+Math.imul(K0,p0)|0,y=y+Math.imul(K0,c0)|0,y=y+Math.imul(I0,p0)|0,w=w+Math.imul(I0,c0)|0,B=B+Math.imul(V0,d0)|0,y=y+Math.imul(V0,b0)|0,y=y+Math.imul(U0,d0)|0,w=w+Math.imul(U0,b0)|0;var V$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(V$>>>26)|0,V$&=67108863,B=Math.imul(O0,p0),y=Math.imul(O0,c0),y=y+Math.imul(F0,p0)|0,w=Math.imul(F0,c0),B=B+Math.imul(K0,d0)|0,y=y+Math.imul(K0,b0)|0,y=y+Math.imul(I0,d0)|0,w=w+Math.imul(I0,b0)|0;var U$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(U$>>>26)|0,U$&=67108863,B=Math.imul(O0,d0),y=Math.imul(O0,b0),y=y+Math.imul(F0,d0)|0,w=Math.imul(F0,b0);var X$=(_+B|0)+((y&8191)<<13)|0;return _=(w+(y>>>13)|0)+(X$>>>26)|0,X$&=67108863,x[0]=l0,x[1]=o0,x[2]=u0,x[3]=n0,x[4]=s0,x[5]=t0,x[6]=m0,x[7]=a0,x[8]=r0,x[9]=e0,x[10]=i0,x[11]=$$,x[12]=Q$,x[13]=Y$,x[14]=Z$,x[15]=G$,x[16]=V$,x[17]=U$,x[18]=X$,_!==0&&(x[19]=_,k.length++),k};Math.imul||(H=W);function E(q,j,k){k.negative=j.negative^q.negative,k.length=q.length+j.length;for(var g=0,N=0,x=0;x>>26)|0,N+=_>>>26,_&=67108863}k.words[x]=B,g=_,_=N}return g!==0?k.words[x]=g:k.length--,k.strip()}function T(q,j,k){var g=new D;return g.mulp(q,j,k)}V.prototype.mulTo=function(q,j){var k,g=this.length+q.length;return this.length===10&&q.length===10?k=H(this,q,j):g<63?k=W(this,q,j):g<1024?k=E(this,q,j):k=T(this,q,j),k};function D(q,j){this.x=q,this.y=j}D.prototype.makeRBT=function(q){for(var j=new Array(q),k=V.prototype._countBits(q)-1,g=0;g>=1;return g},D.prototype.permute=function(q,j,k,g,N,x){for(var _=0;_>>1)N++;return 1<>>13,k[2*x+1]=N&8191,N=N>>>13;for(x=2*j;x>=26,j+=g/67108864|0,j+=N>>>26,this.words[k]=N&67108863}return j!==0&&(this.words[k]=j,this.length++),this},V.prototype.muln=function(q){return this.clone().imuln(q)},V.prototype.sqr=function(){return this.mul(this)},V.prototype.isqr=function(){return this.imul(this.clone())},V.prototype.pow=function(q){var j=A(q);if(j.length===0)return new V(1);for(var k=this,g=0;g=0);var j=q%26,k=(q-j)/26,g=67108863>>>26-j<<26-j,N;if(j!==0){var x=0;for(N=0;N>>26-j}x&&(this.words[N]=x,this.length++)}if(k!==0){for(N=this.length-1;N>=0;N--)this.words[N+k]=this.words[N];for(N=0;N=0);var g;j?g=(j-j%26)/26:g=0;var N=q%26,x=Math.min((q-N)/26,this.length),_=67108863^67108863>>>N<x)for(this.length-=x,y=0;y=0&&(w!==0||y>=g);y--){var f=this.words[y]|0;this.words[y]=w<<26-N|f>>>N,w=f&_}return B&&w!==0&&(B.words[B.length++]=w),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},V.prototype.ishrn=function(q,j,k){return Z(this.negative===0),this.iushrn(q,j,k)},V.prototype.shln=function(q){return this.clone().ishln(q)},V.prototype.ushln=function(q){return this.clone().iushln(q)},V.prototype.shrn=function(q){return this.clone().ishrn(q)},V.prototype.ushrn=function(q){return this.clone().iushrn(q)},V.prototype.testn=function(q){Z(typeof q=="number"&&q>=0);var j=q%26,k=(q-j)/26,g=1<=0);var j=q%26,k=(q-j)/26;if(Z(this.negative===0,"imaskn works only with positive numbers"),this.length<=k)return this;if(j!==0&&k++,this.length=Math.min(k,this.length),j!==0){var g=67108863^67108863>>>j<=67108864;j++)this.words[j]-=67108864,j===this.length-1?this.words[j+1]=1:this.words[j+1]++;return this.length=Math.max(this.length,j+1),this},V.prototype.isubn=function(q){if(Z(typeof q=="number"),Z(q<67108864),q<0)return this.iaddn(-q);if(this.negative!==0)return this.negative=0,this.iaddn(q),this.negative=1,this;if(this.words[0]-=q,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var j=0;j>26)-(B/67108864|0),this.words[N+k]=x&67108863}for(;N>26,this.words[N+k]=x&67108863;if(_===0)return this.strip();for(Z(_===-1),_=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},V.prototype._wordDiv=function(q,j){var k=this.length-q.length,g=this.clone(),N=q,x=N.words[N.length-1]|0,_=this._countBits(x);k=26-_,k!==0&&(N=N.ushln(k),g.iushln(k),x=N.words[N.length-1]|0);var B=g.length-N.length,y;if(j!=="mod"){y=new V(null),y.length=B+1,y.words=new Array(y.length);for(var w=0;w=0;p--){var c=(g.words[N.length+p]|0)*67108864+(g.words[N.length+p-1]|0);for(c=Math.min(c/x|0,67108863),g._ishlnsubmul(N,c,p);g.negative!==0;)c--,g.negative=0,g._ishlnsubmul(N,1,p),g.isZero()||(g.negative^=1);y&&(y.words[p]=c)}return y&&y.strip(),g.strip(),j!=="div"&&k!==0&&g.iushrn(k),{div:y||null,mod:g}},V.prototype.divmod=function(q,j,k){if(Z(!q.isZero()),this.isZero())return{div:new V(0),mod:new V(0)};var g,N,x;return this.negative!==0&&q.negative===0?(x=this.neg().divmod(q,j),j!=="mod"&&(g=x.div.neg()),j!=="div"&&(N=x.mod.neg(),k&&N.negative!==0&&N.iadd(q)),{div:g,mod:N}):this.negative===0&&q.negative!==0?(x=this.divmod(q.neg(),j),j!=="mod"&&(g=x.div.neg()),{div:g,mod:x.mod}):(this.negative&q.negative)!==0?(x=this.neg().divmod(q.neg(),j),j!=="div"&&(N=x.mod.neg(),k&&N.negative!==0&&N.isub(q)),{div:x.div,mod:N}):q.length>this.length||this.cmp(q)<0?{div:new V(0),mod:this}:q.length===1?j==="div"?{div:this.divn(q.words[0]),mod:null}:j==="mod"?{div:null,mod:new V(this.modn(q.words[0]))}:{div:this.divn(q.words[0]),mod:new V(this.modn(q.words[0]))}:this._wordDiv(q,j)},V.prototype.div=function(q){return this.divmod(q,"div",!1).div},V.prototype.mod=function(q){return this.divmod(q,"mod",!1).mod},V.prototype.umod=function(q){return this.divmod(q,"mod",!0).mod},V.prototype.divRound=function(q){var j=this.divmod(q);if(j.mod.isZero())return j.div;var k=j.div.negative!==0?j.mod.isub(q):j.mod,g=q.ushrn(1),N=q.andln(1),x=k.cmp(g);return x<0||N===1&&x===0?j.div:j.div.negative!==0?j.div.isubn(1):j.div.iaddn(1)},V.prototype.modn=function(q){Z(q<=67108863);for(var j=(1<<26)%q,k=0,g=this.length-1;g>=0;g--)k=(j*k+(this.words[g]|0))%q;return k},V.prototype.idivn=function(q){Z(q<=67108863);for(var j=0,k=this.length-1;k>=0;k--){var g=(this.words[k]|0)+j*67108864;this.words[k]=g/q|0,j=g%q}return this.strip()},V.prototype.divn=function(q){return this.clone().idivn(q)},V.prototype.egcd=function(q){Z(q.negative===0),Z(!q.isZero());var j=this,k=q.clone();j.negative!==0?j=j.umod(q):j=j.clone();for(var g=new V(1),N=new V(0),x=new V(0),_=new V(1),B=0;j.isEven()&&k.isEven();)j.iushrn(1),k.iushrn(1),++B;for(var y=k.clone(),w=j.clone();!j.isZero();){for(var f=0,p=1;(j.words[0]&p)===0&&f<26;++f,p<<=1);if(f>0)for(j.iushrn(f);f-- >0;)(g.isOdd()||N.isOdd())&&(g.iadd(y),N.isub(w)),g.iushrn(1),N.iushrn(1);for(var c=0,h=1;(k.words[0]&h)===0&&c<26;++c,h<<=1);if(c>0)for(k.iushrn(c);c-- >0;)(x.isOdd()||_.isOdd())&&(x.iadd(y),_.isub(w)),x.iushrn(1),_.iushrn(1);j.cmp(k)>=0?(j.isub(k),g.isub(x),N.isub(_)):(k.isub(j),x.isub(g),_.isub(N))}return{a:x,b:_,gcd:k.iushln(B)}},V.prototype._invmp=function(q){Z(q.negative===0),Z(!q.isZero());var j=this,k=q.clone();j.negative!==0?j=j.umod(q):j=j.clone();for(var g=new V(1),N=new V(0),x=k.clone();j.cmpn(1)>0&&k.cmpn(1)>0;){for(var _=0,B=1;(j.words[0]&B)===0&&_<26;++_,B<<=1);if(_>0)for(j.iushrn(_);_-- >0;)g.isOdd()&&g.iadd(x),g.iushrn(1);for(var y=0,w=1;(k.words[0]&w)===0&&y<26;++y,w<<=1);if(y>0)for(k.iushrn(y);y-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);j.cmp(k)>=0?(j.isub(k),g.isub(N)):(k.isub(j),N.isub(g))}var f;return j.cmpn(1)===0?f=g:f=N,f.cmpn(0)<0&&f.iadd(q),f},V.prototype.gcd=function(q){if(this.isZero())return q.abs();if(q.isZero())return this.abs();var j=this.clone(),k=q.clone();j.negative=0,k.negative=0;for(var g=0;j.isEven()&&k.isEven();g++)j.iushrn(1),k.iushrn(1);do{for(;j.isEven();)j.iushrn(1);for(;k.isEven();)k.iushrn(1);var N=j.cmp(k);if(N<0){var x=j;j=k,k=x}else if(N===0||k.cmpn(1)===0)break;j.isub(k)}while(!0);return k.iushln(g)},V.prototype.invm=function(q){return this.egcd(q).a.umod(q)},V.prototype.isEven=function(){return(this.words[0]&1)===0},V.prototype.isOdd=function(){return(this.words[0]&1)===1},V.prototype.andln=function(q){return this.words[0]&q},V.prototype.bincn=function(q){Z(typeof q=="number");var j=q%26,k=(q-j)/26,g=1<>>26,_&=67108863,this.words[x]=_}return N!==0&&(this.words[x]=N,this.length++),this},V.prototype.isZero=function(){return this.length===1&&this.words[0]===0},V.prototype.cmpn=function(q){var j=q<0;if(this.negative!==0&&!j)return-1;if(this.negative===0&&j)return 1;this.strip();var k;if(this.length>1)k=1;else{j&&(q=-q),Z(q<=67108863,"Number is too big");var g=this.words[0]|0;k=g===q?0:gq.length)return 1;if(this.length=0;k--){var g=this.words[k]|0,N=q.words[k]|0;if(g!==N){gN&&(j=1);break}}return j},V.prototype.gtn=function(q){return this.cmpn(q)===1},V.prototype.gt=function(q){return this.cmp(q)===1},V.prototype.gten=function(q){return this.cmpn(q)>=0},V.prototype.gte=function(q){return this.cmp(q)>=0},V.prototype.ltn=function(q){return this.cmpn(q)===-1},V.prototype.lt=function(q){return this.cmp(q)===-1},V.prototype.lten=function(q){return this.cmpn(q)<=0},V.prototype.lte=function(q){return this.cmp(q)<=0},V.prototype.eqn=function(q){return this.cmpn(q)===0},V.prototype.eq=function(q){return this.cmp(q)===0},V.red=function(q){return new S(q)},V.prototype.toRed=function(q){return Z(!this.red,"Already a number in reduction context"),Z(this.negative===0,"red works only with positives"),q.convertTo(this)._forceRed(q)},V.prototype.fromRed=function(){return Z(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},V.prototype._forceRed=function(q){return this.red=q,this},V.prototype.forceRed=function(q){return Z(!this.red,"Already a number in reduction context"),this._forceRed(q)},V.prototype.redAdd=function(q){return Z(this.red,"redAdd works only with red numbers"),this.red.add(this,q)},V.prototype.redIAdd=function(q){return Z(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,q)},V.prototype.redSub=function(q){return Z(this.red,"redSub works only with red numbers"),this.red.sub(this,q)},V.prototype.redISub=function(q){return Z(this.red,"redISub works only with red numbers"),this.red.isub(this,q)},V.prototype.redShl=function(q){return Z(this.red,"redShl works only with red numbers"),this.red.shl(this,q)},V.prototype.redMul=function(q){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,q),this.red.mul(this,q)},V.prototype.redIMul=function(q){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,q),this.red.imul(this,q)},V.prototype.redSqr=function(){return Z(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},V.prototype.redISqr=function(){return Z(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},V.prototype.redSqrt=function(){return Z(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},V.prototype.redInvm=function(){return Z(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},V.prototype.redNeg=function(){return Z(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},V.prototype.redPow=function(q){return Z(this.red&&!q.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,q)};var C={k256:null,p224:null,p192:null,p25519:null};function L(q,j){this.name=q,this.p=new V(j,16),this.n=this.p.bitLength(),this.k=new V(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}L.prototype._tmp=function(){var q=new V(null);return q.words=new Array(Math.ceil(this.n/13)),q},L.prototype.ireduce=function(q){var j=q,k;do this.split(j,this.tmp),j=this.imulK(j),j=j.iadd(this.tmp),k=j.bitLength();while(k>this.n);var g=k0?j.isub(this.p):j.strip!==void 0?j.strip():j._strip(),j},L.prototype.split=function(q,j){q.iushrn(this.n,0,j)},L.prototype.imulK=function(q){return q.imul(this.k)};function R(){L.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}G(R,L),R.prototype.split=function(q,j){for(var k=4194303,g=Math.min(q.length,9),N=0;N>>22,x=_}x>>>=22,q.words[N-10]=x,x===0&&q.length>10?q.length-=10:q.length-=9},R.prototype.imulK=function(q){q.words[q.length]=0,q.words[q.length+1]=0,q.length+=2;for(var j=0,k=0;k>>=26,q.words[k]=N,j=g}return j!==0&&(q.words[q.length++]=j),q},V._prime=function(q){if(C[q])return C[q];var j;if(q==="k256")j=new R;else if(q==="p224")j=new P;else if(q==="p192")j=new z;else if(q==="p25519")j=new M;else throw new Error("Unknown prime "+q);return C[q]=j,j};function S(q){if(typeof q=="string"){var j=V._prime(q);this.m=j.p,this.prime=j}else Z(q.gtn(1),"modulus must be greater than 1"),this.m=q,this.prime=null}S.prototype._verify1=function(q){Z(q.negative===0,"red works only with positives"),Z(q.red,"red works only with red numbers")},S.prototype._verify2=function(q,j){Z((q.negative|j.negative)===0,"red works only with positives"),Z(q.red&&q.red===j.red,"red works only with red numbers")},S.prototype.imod=function(q){return this.prime?this.prime.ireduce(q)._forceRed(this):q.umod(this.m)._forceRed(this)},S.prototype.neg=function(q){return q.isZero()?q.clone():this.m.sub(q)._forceRed(this)},S.prototype.add=function(q,j){this._verify2(q,j);var k=q.add(j);return k.cmp(this.m)>=0&&k.isub(this.m),k._forceRed(this)},S.prototype.iadd=function(q,j){this._verify2(q,j);var k=q.iadd(j);return k.cmp(this.m)>=0&&k.isub(this.m),k},S.prototype.sub=function(q,j){this._verify2(q,j);var k=q.sub(j);return k.cmpn(0)<0&&k.iadd(this.m),k._forceRed(this)},S.prototype.isub=function(q,j){this._verify2(q,j);var k=q.isub(j);return k.cmpn(0)<0&&k.iadd(this.m),k},S.prototype.shl=function(q,j){return this._verify1(q),this.imod(q.ushln(j))},S.prototype.imul=function(q,j){return this._verify2(q,j),this.imod(q.imul(j))},S.prototype.mul=function(q,j){return this._verify2(q,j),this.imod(q.mul(j))},S.prototype.isqr=function(q){return this.imul(q,q.clone())},S.prototype.sqr=function(q){return this.mul(q,q)},S.prototype.sqrt=function(q){if(q.isZero())return q.clone();var j=this.m.andln(3);if(Z(j%2===1),j===3){var k=this.m.add(new V(1)).iushrn(2);return this.pow(q,k)}for(var g=this.m.subn(1),N=0;!g.isZero()&&g.andln(1)===0;)N++,g.iushrn(1);Z(!g.isZero());var x=new V(1).toRed(this),_=x.redNeg(),B=this.m.subn(1).iushrn(1),y=this.m.bitLength();for(y=new V(2*y*y).toRed(this);this.pow(y,B).cmp(_)!==0;)y.redIAdd(_);for(var w=this.pow(y,g),f=this.pow(q,g.addn(1).iushrn(1)),p=this.pow(q,g),c=N;p.cmp(x)!==0;){for(var h=p,d=0;h.cmp(x)!==0;d++)h=h.redSqr();Z(d=0;N--){for(var w=j.words[N],f=y-1;f>=0;f--){var p=w>>f&1;if(x!==g[0]&&(x=this.sqr(x)),p===0&&_===0){B=0;continue}_<<=1,_|=p,B++,!(B!==k&&(N!==0||f!==0))&&(x=this.mul(x,g[_]),B=0,_=0)}y=26}return x},S.prototype.convertTo=function(q){var j=q.umod(this.m);return j===q?j.clone():j},S.prototype.convertFrom=function(q){var j=q.clone();return j.red=null,j},V.mont=function(q){return new v(q)};function v(q){S.call(this,q),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new V(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}G(v,S),v.prototype.convertTo=function(q){return this.imod(q.ushln(this.shift))},v.prototype.convertFrom=function(q){var j=this.imod(q.mul(this.rinv));return j.red=null,j},v.prototype.imul=function(q,j){if(q.isZero()||j.isZero())return q.words[0]=0,q.length=1,q;var k=q.imul(j),g=k.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=k.isub(g).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},v.prototype.mul=function(q,j){if(q.isZero()||j.isZero())return new V(0)._forceRed(this);var k=q.mul(j),g=k.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=k.isub(g).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},v.prototype.invm=function(q){var j=this.imod(q._invmp(this.m).mul(this.r2));return j._forceRed(this)}})(typeof $>"u"||$,bZ)}}),jQ=P$({"(disabled):node_modules/crypto-browserify/index.js"(){}}),kQ=P$({"node_modules/brorand/index.js"(bZ,$){var Q;$.exports=function(Z){return Q||(Q=new Y(null)),Q.generate(Z)};function Y(Z){this.rand=Z}$.exports.Rand=Y,Y.prototype.generate=function(Z){return this._rand(Z)},Y.prototype._rand=function(Z){var G=new Buffer(Z);return O$.getRandomValues(G),G}}}),gQ=P$({"node_modules/miller-rabin/lib/mr.js"(bZ,$){var Q=qQ(),Y=kQ();function Z(G){this.rand=G||new Y.Rand}$.exports=Z,Z.create=function(G){return new Z(G)},Z.prototype._randbelow=function(G){var V=G.bitLength(),U=Math.ceil(V/8);do var X=new Q(this.rand.generate(U));while(X.cmp(G)>=0);return X},Z.prototype._randrange=function(G,V){var U=V.sub(G);return G.add(this._randbelow(U))},Z.prototype.test=function(G,V,U){var X=G.bitLength(),K=Q.mont(G),I=new Q(1).toRed(K);V||(V=Math.max(1,X/48|0));for(var J=G.subn(1),O=0;!J.testn(O);O++);for(var F=G.shrn(O),A=J.toRed(K),W=!0;V>0;V--){var H=this._randrange(new Q(2),J);U&&U(H);var E=H.toRed(K).redPow(F);if(!(E.cmp(I)===0||E.cmp(A)===0)){for(var T=1;T0;V--){var A=this._randrange(new Q(2),I),W=G.gcd(A);if(W.cmpn(1)!==0)return W;var H=A.toRed(X).redPow(O);if(!(H.cmp(K)===0||H.cmp(F)===0)){for(var E=1;EP;)M.ishrn(1);if(M.isEven()&&M.iadd(U),M.testn(1)||M.iadd(X),z.cmp(X)){if(!z.cmp(K))for(;M.mod(O).cmp(F);)M.iadd(H)}else for(;M.mod(Z).cmp(W);)M.iadd(H);if(S=M.shrn(1),C(S)&&C(M)&&L(S)&&L(M)&&V.test(S)&&V.test(M))return M}}}}),xQ=P$({"node_modules/diffie-hellman/lib/primes.json"(bZ,$){$.exports={modp1:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},modp2:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},modp5:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},modp14:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},modp15:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},modp16:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},modp17:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},modp18:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}}}),_Q=P$({"node_modules/diffie-hellman/lib/dh.js"(bZ,$){var Q=vQ(),Y=gQ(),Z=new Y,G=new Q(24),V=new Q(11),U=new Q(10),X=new Q(3),K=new Q(7),I=NQ(),J=S$();$.exports=H;function O(T,D){return D=D||"utf8",Buffer.isBuffer(T)||(T=new Buffer(T,D)),this._pub=new Q(T),this}function F(T,D){return D=D||"utf8",Buffer.isBuffer(T)||(T=new Buffer(T,D)),this._priv=new Q(T),this}var A={};function W(T,D){var C=D.toString("hex"),L=[C,T.toString(16)].join("_");if(L in A)return A[L];var R=0;if(T.isEven()||!I.simpleSieve||!I.fermatTest(T)||!Z.test(T))return R+=1,C==="02"||C==="05"?R+=8:R+=4,A[L]=R,R;Z.test(T.shrn(1))||(R+=2);var P;switch(C){case"02":T.mod(G).cmp(V)&&(R+=8);break;case"05":P=T.mod(U),P.cmp(X)&&P.cmp(K)&&(R+=8);break;default:R+=4}return A[L]=R,R}function H(T,D,C){this.setGenerator(D),this.__prime=new Q(T),this._prime=Q.mont(this.__prime),this._primeLen=T.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,C?(this.setPublicKey=O,this.setPrivateKey=F):this._primeCode=8}Object.defineProperty(H.prototype,"verifyError",{enumerable:!0,get:function(){return typeof this._primeCode!="number"&&(this._primeCode=W(this.__prime,this.__gen)),this._primeCode}}),H.prototype.generateKeys=function(){return this._priv||(this._priv=new Q(J(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},H.prototype.computeSecret=function(T){T=new Q(T),T=T.toRed(this._prime);var D=T.redPow(this._priv).fromRed(),C=new Buffer(D.toArray()),L=this.getPrime();if(C.length0?g:N},V.min=function(g,N){return g.cmp(N)<0?g:N},V.prototype._init=function(g,N,x){if(typeof g=="number")return this._initNumber(g,N,x);if(typeof g=="object")return this._initArray(g,N,x);N==="hex"&&(N=16),Z(N===(N|0)&&N>=2&&N<=36),g=g.toString().replace(/\s+/g,"");var _=0;g[0]==="-"&&(_++,this.negative=1),_=0;_-=3)y=g[_]|g[_-1]<<8|g[_-2]<<16,this.words[B]|=y<>>26-w&67108863,w+=24,w>=26&&(w-=26,B++);else if(x==="le")for(_=0,B=0;_>>26-w&67108863,w+=24,w>=26&&(w-=26,B++);return this._strip()};function X(g,N){var x=g.charCodeAt(N);if(x>=48&&x<=57)return x-48;if(x>=65&&x<=70)return x-55;if(x>=97&&x<=102)return x-87;Z(!1,"Invalid character in "+g)}function K(g,N,x){var _=X(g,x);return x-1>=N&&(_|=X(g,x-1)<<4),_}V.prototype._parseHex=function(g,N,x){this.length=Math.ceil((g.length-N)/6),this.words=new Array(this.length);for(var _=0;_=N;_-=2)w=K(g,N,_)<=18?(B-=18,y+=1,this.words[y]|=w>>>26):B+=8;else{var f=g.length-N;for(_=f%2===0?N+1:N;_=18?(B-=18,y+=1,this.words[y]|=w>>>26):B+=8}this._strip()};function I(g,N,x,_){for(var B=0,y=0,w=Math.min(g.length,x),f=N;f=49?y=p-49+10:p>=17?y=p-17+10:y=p,Z(p>=0&&y<_,"Invalid character"),B+=y}return B}V.prototype._parseBase=function(g,N,x){this.words=[0],this.length=1;for(var _=0,B=1;B<=67108863;B*=N)_++;_--,B=B/N|0;for(var y=g.length-x,w=y%_,f=Math.min(y,y-w)+x,p=0,c=x;c1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},V.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{V.prototype[Symbol.for("nodejs.util.inspect.custom")]=O}catch{V.prototype.inspect=O}else V.prototype.inspect=O;function O(){return(this.red?""}var F=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],A=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],W=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];V.prototype.toString=function(g,N){g=g||10,N=N|0||1;var x;if(g===16||g==="hex"){x="";for(var _=0,B=0,y=0;y>>24-_&16777215,_+=2,_>=26&&(_-=26,y--),B!==0||y!==this.length-1?x=F[6-f.length]+f+x:x=f+x}for(B!==0&&(x=B.toString(16)+x);x.length%N!==0;)x="0"+x;return this.negative!==0&&(x="-"+x),x}if(g===(g|0)&&g>=2&&g<=36){var p=A[g],c=W[g];x="";var h=this.clone();for(h.negative=0;!h.isZero();){var d=h.modrn(c).toString(g);h=h.idivn(c),h.isZero()?x=d+x:x=F[p-d.length]+d+x}for(this.isZero()&&(x="0"+x);x.length%N!==0;)x="0"+x;return this.negative!==0&&(x="-"+x),x}Z(!1,"Base should be between 2 and 36")},V.prototype.toNumber=function(){var g=this.words[0];return this.length===2?g+=this.words[1]*67108864:this.length===3&&this.words[2]===1?g+=4503599627370496+this.words[1]*67108864:this.length>2&&Z(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-g:g},V.prototype.toJSON=function(){return this.toString(16,2)},U&&(V.prototype.toBuffer=function(g,N){return this.toArrayLike(U,g,N)}),V.prototype.toArray=function(g,N){return this.toArrayLike(Array,g,N)};var H=function(g,N){return g.allocUnsafe?g.allocUnsafe(N):new g(N)};V.prototype.toArrayLike=function(g,N,x){this._strip();var _=this.byteLength(),B=x||Math.max(1,_);Z(_<=B,"byte array longer than desired length"),Z(B>0,"Requested array length <= 0");var y=H(g,B),w=N==="le"?"LE":"BE";return this["_toArrayLike"+w](y,_),y},V.prototype._toArrayLikeLE=function(g,N){for(var x=0,_=0,B=0,y=0;B>8&255),x>16&255),y===6?(x>24&255),_=0,y=0):(_=w>>>24,y+=2)}if(x=0&&(g[x--]=w>>8&255),x>=0&&(g[x--]=w>>16&255),y===6?(x>=0&&(g[x--]=w>>24&255),_=0,y=0):(_=w>>>24,y+=2)}if(x>=0)for(g[x--]=_;x>=0;)g[x--]=0},Math.clz32?V.prototype._countBits=function(g){return 32-Math.clz32(g)}:V.prototype._countBits=function(g){var N=g,x=0;return N>=4096&&(x+=13,N>>>=13),N>=64&&(x+=7,N>>>=7),N>=8&&(x+=4,N>>>=4),N>=2&&(x+=2,N>>>=2),x+N},V.prototype._zeroBits=function(g){if(g===0)return 26;var N=g,x=0;return(N&8191)===0&&(x+=13,N>>>=13),(N&127)===0&&(x+=7,N>>>=7),(N&15)===0&&(x+=4,N>>>=4),(N&3)===0&&(x+=2,N>>>=2),(N&1)===0&&x++,x},V.prototype.bitLength=function(){var g=this.words[this.length-1],N=this._countBits(g);return(this.length-1)*26+N};function E(g){for(var N=new Array(g.bitLength()),x=0;x>>B&1}return N}V.prototype.zeroBits=function(){if(this.isZero())return 0;for(var g=0,N=0;Ng.length?this.clone().ior(g):g.clone().ior(this)},V.prototype.uor=function(g){return this.length>g.length?this.clone().iuor(g):g.clone().iuor(this)},V.prototype.iuand=function(g){var N;this.length>g.length?N=g:N=this;for(var x=0;xg.length?this.clone().iand(g):g.clone().iand(this)},V.prototype.uand=function(g){return this.length>g.length?this.clone().iuand(g):g.clone().iuand(this)},V.prototype.iuxor=function(g){var N,x;this.length>g.length?(N=this,x=g):(N=g,x=this);for(var _=0;_g.length?this.clone().ixor(g):g.clone().ixor(this)},V.prototype.uxor=function(g){return this.length>g.length?this.clone().iuxor(g):g.clone().iuxor(this)},V.prototype.inotn=function(g){Z(typeof g=="number"&&g>=0);var N=Math.ceil(g/26)|0,x=g%26;this._expand(N),x>0&&N--;for(var _=0;_0&&(this.words[_]=~this.words[_]&67108863>>26-x),this._strip()},V.prototype.notn=function(g){return this.clone().inotn(g)},V.prototype.setn=function(g,N){Z(typeof g=="number"&&g>=0);var x=g/26|0,_=g%26;return this._expand(x+1),N?this.words[x]=this.words[x]|1<<_:this.words[x]=this.words[x]&~(1<<_),this._strip()},V.prototype.iadd=function(g){var N;if(this.negative!==0&&g.negative===0)return this.negative=0,N=this.isub(g),this.negative^=1,this._normSign();if(this.negative===0&&g.negative!==0)return g.negative=0,N=this.isub(g),g.negative=1,N._normSign();var x,_;this.length>g.length?(x=this,_=g):(x=g,_=this);for(var B=0,y=0;y<_.length;y++)N=(x.words[y]|0)+(_.words[y]|0)+B,this.words[y]=N&67108863,B=N>>>26;for(;B!==0&&y>>26;if(this.length=x.length,B!==0)this.words[this.length]=B,this.length++;else if(x!==this)for(;yg.length?this.clone().iadd(g):g.clone().iadd(this)},V.prototype.isub=function(g){if(g.negative!==0){g.negative=0;var N=this.iadd(g);return g.negative=1,N._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(g),this.negative=1,this._normSign();var x=this.cmp(g);if(x===0)return this.negative=0,this.length=1,this.words[0]=0,this;var _,B;x>0?(_=this,B=g):(_=g,B=this);for(var y=0,w=0;w>26,this.words[w]=N&67108863;for(;y!==0&&w<_.length;w++)N=(_.words[w]|0)+y,y=N>>26,this.words[w]=N&67108863;if(y===0&&w<_.length&&_!==this)for(;w<_.length;w++)this.words[w]=_.words[w];return this.length=Math.max(this.length,w),_!==this&&(this.negative=1),this._strip()},V.prototype.sub=function(g){return this.clone().isub(g)};function T(g,N,x){x.negative=N.negative^g.negative;var _=g.length+N.length|0;x.length=_,_=_-1|0;var B=g.words[0]|0,y=N.words[0]|0,w=B*y,f=w&67108863,p=w/67108864|0;x.words[0]=f;for(var c=1;c<_;c++){for(var h=p>>>26,d=p&67108863,b=Math.min(c,N.length-1),l=Math.max(0,c-g.length+1);l<=b;l++){var o=c-l|0;B=g.words[o]|0,y=N.words[l]|0,w=B*y+d,h+=w/67108864|0,d=w&67108863}x.words[c]=d|0,p=h|0}return p!==0?x.words[c]=p|0:x.length--,x._strip()}var D=function(g,N,x){var _=g.words,B=N.words,y=x.words,w=0,f,p,c,h=_[0]|0,d=h&8191,b=h>>>13,l=_[1]|0,o=l&8191,u=l>>>13,n=_[2]|0,s=n&8191,t=n>>>13,m=_[3]|0,a=m&8191,r=m>>>13,e=_[4]|0,i=e&8191,$0=e>>>13,Q0=_[5]|0,Y0=Q0&8191,Z0=Q0>>>13,G0=_[6]|0,V0=G0&8191,U0=G0>>>13,X0=_[7]|0,K0=X0&8191,I0=X0>>>13,J0=_[8]|0,O0=J0&8191,F0=J0>>>13,A0=_[9]|0,W0=A0&8191,H0=A0>>>13,E0=B[0]|0,T0=E0&8191,D0=E0>>>13,C0=B[1]|0,L0=C0&8191,R0=C0>>>13,P0=B[2]|0,z0=P0&8191,M0=P0>>>13,S0=B[3]|0,v0=S0&8191,q0=S0>>>13,j0=B[4]|0,k0=j0&8191,g0=j0>>>13,N0=B[5]|0,x0=N0&8191,_0=N0>>>13,B0=B[6]|0,y0=B0&8191,w0=B0>>>13,f0=B[7]|0,p0=f0&8191,c0=f0>>>13,h0=B[8]|0,d0=h0&8191,b0=h0>>>13,l0=B[9]|0,o0=l0&8191,u0=l0>>>13;x.negative=g.negative^N.negative,x.length=19,f=Math.imul(d,T0),p=Math.imul(d,D0),p=p+Math.imul(b,T0)|0,c=Math.imul(b,D0);var n0=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(n0>>>26)|0,n0&=67108863,f=Math.imul(o,T0),p=Math.imul(o,D0),p=p+Math.imul(u,T0)|0,c=Math.imul(u,D0),f=f+Math.imul(d,L0)|0,p=p+Math.imul(d,R0)|0,p=p+Math.imul(b,L0)|0,c=c+Math.imul(b,R0)|0;var s0=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(s0>>>26)|0,s0&=67108863,f=Math.imul(s,T0),p=Math.imul(s,D0),p=p+Math.imul(t,T0)|0,c=Math.imul(t,D0),f=f+Math.imul(o,L0)|0,p=p+Math.imul(o,R0)|0,p=p+Math.imul(u,L0)|0,c=c+Math.imul(u,R0)|0,f=f+Math.imul(d,z0)|0,p=p+Math.imul(d,M0)|0,p=p+Math.imul(b,z0)|0,c=c+Math.imul(b,M0)|0;var t0=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(t0>>>26)|0,t0&=67108863,f=Math.imul(a,T0),p=Math.imul(a,D0),p=p+Math.imul(r,T0)|0,c=Math.imul(r,D0),f=f+Math.imul(s,L0)|0,p=p+Math.imul(s,R0)|0,p=p+Math.imul(t,L0)|0,c=c+Math.imul(t,R0)|0,f=f+Math.imul(o,z0)|0,p=p+Math.imul(o,M0)|0,p=p+Math.imul(u,z0)|0,c=c+Math.imul(u,M0)|0,f=f+Math.imul(d,v0)|0,p=p+Math.imul(d,q0)|0,p=p+Math.imul(b,v0)|0,c=c+Math.imul(b,q0)|0;var m0=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(m0>>>26)|0,m0&=67108863,f=Math.imul(i,T0),p=Math.imul(i,D0),p=p+Math.imul($0,T0)|0,c=Math.imul($0,D0),f=f+Math.imul(a,L0)|0,p=p+Math.imul(a,R0)|0,p=p+Math.imul(r,L0)|0,c=c+Math.imul(r,R0)|0,f=f+Math.imul(s,z0)|0,p=p+Math.imul(s,M0)|0,p=p+Math.imul(t,z0)|0,c=c+Math.imul(t,M0)|0,f=f+Math.imul(o,v0)|0,p=p+Math.imul(o,q0)|0,p=p+Math.imul(u,v0)|0,c=c+Math.imul(u,q0)|0,f=f+Math.imul(d,k0)|0,p=p+Math.imul(d,g0)|0,p=p+Math.imul(b,k0)|0,c=c+Math.imul(b,g0)|0;var a0=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(a0>>>26)|0,a0&=67108863,f=Math.imul(Y0,T0),p=Math.imul(Y0,D0),p=p+Math.imul(Z0,T0)|0,c=Math.imul(Z0,D0),f=f+Math.imul(i,L0)|0,p=p+Math.imul(i,R0)|0,p=p+Math.imul($0,L0)|0,c=c+Math.imul($0,R0)|0,f=f+Math.imul(a,z0)|0,p=p+Math.imul(a,M0)|0,p=p+Math.imul(r,z0)|0,c=c+Math.imul(r,M0)|0,f=f+Math.imul(s,v0)|0,p=p+Math.imul(s,q0)|0,p=p+Math.imul(t,v0)|0,c=c+Math.imul(t,q0)|0,f=f+Math.imul(o,k0)|0,p=p+Math.imul(o,g0)|0,p=p+Math.imul(u,k0)|0,c=c+Math.imul(u,g0)|0,f=f+Math.imul(d,x0)|0,p=p+Math.imul(d,_0)|0,p=p+Math.imul(b,x0)|0,c=c+Math.imul(b,_0)|0;var r0=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(r0>>>26)|0,r0&=67108863,f=Math.imul(V0,T0),p=Math.imul(V0,D0),p=p+Math.imul(U0,T0)|0,c=Math.imul(U0,D0),f=f+Math.imul(Y0,L0)|0,p=p+Math.imul(Y0,R0)|0,p=p+Math.imul(Z0,L0)|0,c=c+Math.imul(Z0,R0)|0,f=f+Math.imul(i,z0)|0,p=p+Math.imul(i,M0)|0,p=p+Math.imul($0,z0)|0,c=c+Math.imul($0,M0)|0,f=f+Math.imul(a,v0)|0,p=p+Math.imul(a,q0)|0,p=p+Math.imul(r,v0)|0,c=c+Math.imul(r,q0)|0,f=f+Math.imul(s,k0)|0,p=p+Math.imul(s,g0)|0,p=p+Math.imul(t,k0)|0,c=c+Math.imul(t,g0)|0,f=f+Math.imul(o,x0)|0,p=p+Math.imul(o,_0)|0,p=p+Math.imul(u,x0)|0,c=c+Math.imul(u,_0)|0,f=f+Math.imul(d,y0)|0,p=p+Math.imul(d,w0)|0,p=p+Math.imul(b,y0)|0,c=c+Math.imul(b,w0)|0;var e0=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(e0>>>26)|0,e0&=67108863,f=Math.imul(K0,T0),p=Math.imul(K0,D0),p=p+Math.imul(I0,T0)|0,c=Math.imul(I0,D0),f=f+Math.imul(V0,L0)|0,p=p+Math.imul(V0,R0)|0,p=p+Math.imul(U0,L0)|0,c=c+Math.imul(U0,R0)|0,f=f+Math.imul(Y0,z0)|0,p=p+Math.imul(Y0,M0)|0,p=p+Math.imul(Z0,z0)|0,c=c+Math.imul(Z0,M0)|0,f=f+Math.imul(i,v0)|0,p=p+Math.imul(i,q0)|0,p=p+Math.imul($0,v0)|0,c=c+Math.imul($0,q0)|0,f=f+Math.imul(a,k0)|0,p=p+Math.imul(a,g0)|0,p=p+Math.imul(r,k0)|0,c=c+Math.imul(r,g0)|0,f=f+Math.imul(s,x0)|0,p=p+Math.imul(s,_0)|0,p=p+Math.imul(t,x0)|0,c=c+Math.imul(t,_0)|0,f=f+Math.imul(o,y0)|0,p=p+Math.imul(o,w0)|0,p=p+Math.imul(u,y0)|0,c=c+Math.imul(u,w0)|0,f=f+Math.imul(d,p0)|0,p=p+Math.imul(d,c0)|0,p=p+Math.imul(b,p0)|0,c=c+Math.imul(b,c0)|0;var i0=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(i0>>>26)|0,i0&=67108863,f=Math.imul(O0,T0),p=Math.imul(O0,D0),p=p+Math.imul(F0,T0)|0,c=Math.imul(F0,D0),f=f+Math.imul(K0,L0)|0,p=p+Math.imul(K0,R0)|0,p=p+Math.imul(I0,L0)|0,c=c+Math.imul(I0,R0)|0,f=f+Math.imul(V0,z0)|0,p=p+Math.imul(V0,M0)|0,p=p+Math.imul(U0,z0)|0,c=c+Math.imul(U0,M0)|0,f=f+Math.imul(Y0,v0)|0,p=p+Math.imul(Y0,q0)|0,p=p+Math.imul(Z0,v0)|0,c=c+Math.imul(Z0,q0)|0,f=f+Math.imul(i,k0)|0,p=p+Math.imul(i,g0)|0,p=p+Math.imul($0,k0)|0,c=c+Math.imul($0,g0)|0,f=f+Math.imul(a,x0)|0,p=p+Math.imul(a,_0)|0,p=p+Math.imul(r,x0)|0,c=c+Math.imul(r,_0)|0,f=f+Math.imul(s,y0)|0,p=p+Math.imul(s,w0)|0,p=p+Math.imul(t,y0)|0,c=c+Math.imul(t,w0)|0,f=f+Math.imul(o,p0)|0,p=p+Math.imul(o,c0)|0,p=p+Math.imul(u,p0)|0,c=c+Math.imul(u,c0)|0,f=f+Math.imul(d,d0)|0,p=p+Math.imul(d,b0)|0,p=p+Math.imul(b,d0)|0,c=c+Math.imul(b,b0)|0;var $$=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+($$>>>26)|0,$$&=67108863,f=Math.imul(W0,T0),p=Math.imul(W0,D0),p=p+Math.imul(H0,T0)|0,c=Math.imul(H0,D0),f=f+Math.imul(O0,L0)|0,p=p+Math.imul(O0,R0)|0,p=p+Math.imul(F0,L0)|0,c=c+Math.imul(F0,R0)|0,f=f+Math.imul(K0,z0)|0,p=p+Math.imul(K0,M0)|0,p=p+Math.imul(I0,z0)|0,c=c+Math.imul(I0,M0)|0,f=f+Math.imul(V0,v0)|0,p=p+Math.imul(V0,q0)|0,p=p+Math.imul(U0,v0)|0,c=c+Math.imul(U0,q0)|0,f=f+Math.imul(Y0,k0)|0,p=p+Math.imul(Y0,g0)|0,p=p+Math.imul(Z0,k0)|0,c=c+Math.imul(Z0,g0)|0,f=f+Math.imul(i,x0)|0,p=p+Math.imul(i,_0)|0,p=p+Math.imul($0,x0)|0,c=c+Math.imul($0,_0)|0,f=f+Math.imul(a,y0)|0,p=p+Math.imul(a,w0)|0,p=p+Math.imul(r,y0)|0,c=c+Math.imul(r,w0)|0,f=f+Math.imul(s,p0)|0,p=p+Math.imul(s,c0)|0,p=p+Math.imul(t,p0)|0,c=c+Math.imul(t,c0)|0,f=f+Math.imul(o,d0)|0,p=p+Math.imul(o,b0)|0,p=p+Math.imul(u,d0)|0,c=c+Math.imul(u,b0)|0,f=f+Math.imul(d,o0)|0,p=p+Math.imul(d,u0)|0,p=p+Math.imul(b,o0)|0,c=c+Math.imul(b,u0)|0;var Q$=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,f=Math.imul(W0,L0),p=Math.imul(W0,R0),p=p+Math.imul(H0,L0)|0,c=Math.imul(H0,R0),f=f+Math.imul(O0,z0)|0,p=p+Math.imul(O0,M0)|0,p=p+Math.imul(F0,z0)|0,c=c+Math.imul(F0,M0)|0,f=f+Math.imul(K0,v0)|0,p=p+Math.imul(K0,q0)|0,p=p+Math.imul(I0,v0)|0,c=c+Math.imul(I0,q0)|0,f=f+Math.imul(V0,k0)|0,p=p+Math.imul(V0,g0)|0,p=p+Math.imul(U0,k0)|0,c=c+Math.imul(U0,g0)|0,f=f+Math.imul(Y0,x0)|0,p=p+Math.imul(Y0,_0)|0,p=p+Math.imul(Z0,x0)|0,c=c+Math.imul(Z0,_0)|0,f=f+Math.imul(i,y0)|0,p=p+Math.imul(i,w0)|0,p=p+Math.imul($0,y0)|0,c=c+Math.imul($0,w0)|0,f=f+Math.imul(a,p0)|0,p=p+Math.imul(a,c0)|0,p=p+Math.imul(r,p0)|0,c=c+Math.imul(r,c0)|0,f=f+Math.imul(s,d0)|0,p=p+Math.imul(s,b0)|0,p=p+Math.imul(t,d0)|0,c=c+Math.imul(t,b0)|0,f=f+Math.imul(o,o0)|0,p=p+Math.imul(o,u0)|0,p=p+Math.imul(u,o0)|0,c=c+Math.imul(u,u0)|0;var Y$=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,f=Math.imul(W0,z0),p=Math.imul(W0,M0),p=p+Math.imul(H0,z0)|0,c=Math.imul(H0,M0),f=f+Math.imul(O0,v0)|0,p=p+Math.imul(O0,q0)|0,p=p+Math.imul(F0,v0)|0,c=c+Math.imul(F0,q0)|0,f=f+Math.imul(K0,k0)|0,p=p+Math.imul(K0,g0)|0,p=p+Math.imul(I0,k0)|0,c=c+Math.imul(I0,g0)|0,f=f+Math.imul(V0,x0)|0,p=p+Math.imul(V0,_0)|0,p=p+Math.imul(U0,x0)|0,c=c+Math.imul(U0,_0)|0,f=f+Math.imul(Y0,y0)|0,p=p+Math.imul(Y0,w0)|0,p=p+Math.imul(Z0,y0)|0,c=c+Math.imul(Z0,w0)|0,f=f+Math.imul(i,p0)|0,p=p+Math.imul(i,c0)|0,p=p+Math.imul($0,p0)|0,c=c+Math.imul($0,c0)|0,f=f+Math.imul(a,d0)|0,p=p+Math.imul(a,b0)|0,p=p+Math.imul(r,d0)|0,c=c+Math.imul(r,b0)|0,f=f+Math.imul(s,o0)|0,p=p+Math.imul(s,u0)|0,p=p+Math.imul(t,o0)|0,c=c+Math.imul(t,u0)|0;var Z$=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,f=Math.imul(W0,v0),p=Math.imul(W0,q0),p=p+Math.imul(H0,v0)|0,c=Math.imul(H0,q0),f=f+Math.imul(O0,k0)|0,p=p+Math.imul(O0,g0)|0,p=p+Math.imul(F0,k0)|0,c=c+Math.imul(F0,g0)|0,f=f+Math.imul(K0,x0)|0,p=p+Math.imul(K0,_0)|0,p=p+Math.imul(I0,x0)|0,c=c+Math.imul(I0,_0)|0,f=f+Math.imul(V0,y0)|0,p=p+Math.imul(V0,w0)|0,p=p+Math.imul(U0,y0)|0,c=c+Math.imul(U0,w0)|0,f=f+Math.imul(Y0,p0)|0,p=p+Math.imul(Y0,c0)|0,p=p+Math.imul(Z0,p0)|0,c=c+Math.imul(Z0,c0)|0,f=f+Math.imul(i,d0)|0,p=p+Math.imul(i,b0)|0,p=p+Math.imul($0,d0)|0,c=c+Math.imul($0,b0)|0,f=f+Math.imul(a,o0)|0,p=p+Math.imul(a,u0)|0,p=p+Math.imul(r,o0)|0,c=c+Math.imul(r,u0)|0;var G$=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(G$>>>26)|0,G$&=67108863,f=Math.imul(W0,k0),p=Math.imul(W0,g0),p=p+Math.imul(H0,k0)|0,c=Math.imul(H0,g0),f=f+Math.imul(O0,x0)|0,p=p+Math.imul(O0,_0)|0,p=p+Math.imul(F0,x0)|0,c=c+Math.imul(F0,_0)|0,f=f+Math.imul(K0,y0)|0,p=p+Math.imul(K0,w0)|0,p=p+Math.imul(I0,y0)|0,c=c+Math.imul(I0,w0)|0,f=f+Math.imul(V0,p0)|0,p=p+Math.imul(V0,c0)|0,p=p+Math.imul(U0,p0)|0,c=c+Math.imul(U0,c0)|0,f=f+Math.imul(Y0,d0)|0,p=p+Math.imul(Y0,b0)|0,p=p+Math.imul(Z0,d0)|0,c=c+Math.imul(Z0,b0)|0,f=f+Math.imul(i,o0)|0,p=p+Math.imul(i,u0)|0,p=p+Math.imul($0,o0)|0,c=c+Math.imul($0,u0)|0;var V$=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(V$>>>26)|0,V$&=67108863,f=Math.imul(W0,x0),p=Math.imul(W0,_0),p=p+Math.imul(H0,x0)|0,c=Math.imul(H0,_0),f=f+Math.imul(O0,y0)|0,p=p+Math.imul(O0,w0)|0,p=p+Math.imul(F0,y0)|0,c=c+Math.imul(F0,w0)|0,f=f+Math.imul(K0,p0)|0,p=p+Math.imul(K0,c0)|0,p=p+Math.imul(I0,p0)|0,c=c+Math.imul(I0,c0)|0,f=f+Math.imul(V0,d0)|0,p=p+Math.imul(V0,b0)|0,p=p+Math.imul(U0,d0)|0,c=c+Math.imul(U0,b0)|0,f=f+Math.imul(Y0,o0)|0,p=p+Math.imul(Y0,u0)|0,p=p+Math.imul(Z0,o0)|0,c=c+Math.imul(Z0,u0)|0;var U$=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(U$>>>26)|0,U$&=67108863,f=Math.imul(W0,y0),p=Math.imul(W0,w0),p=p+Math.imul(H0,y0)|0,c=Math.imul(H0,w0),f=f+Math.imul(O0,p0)|0,p=p+Math.imul(O0,c0)|0,p=p+Math.imul(F0,p0)|0,c=c+Math.imul(F0,c0)|0,f=f+Math.imul(K0,d0)|0,p=p+Math.imul(K0,b0)|0,p=p+Math.imul(I0,d0)|0,c=c+Math.imul(I0,b0)|0,f=f+Math.imul(V0,o0)|0,p=p+Math.imul(V0,u0)|0,p=p+Math.imul(U0,o0)|0,c=c+Math.imul(U0,u0)|0;var X$=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(X$>>>26)|0,X$&=67108863,f=Math.imul(W0,p0),p=Math.imul(W0,c0),p=p+Math.imul(H0,p0)|0,c=Math.imul(H0,c0),f=f+Math.imul(O0,d0)|0,p=p+Math.imul(O0,b0)|0,p=p+Math.imul(F0,d0)|0,c=c+Math.imul(F0,b0)|0,f=f+Math.imul(K0,o0)|0,p=p+Math.imul(K0,u0)|0,p=p+Math.imul(I0,o0)|0,c=c+Math.imul(I0,u0)|0;var K$=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(K$>>>26)|0,K$&=67108863,f=Math.imul(W0,d0),p=Math.imul(W0,b0),p=p+Math.imul(H0,d0)|0,c=Math.imul(H0,b0),f=f+Math.imul(O0,o0)|0,p=p+Math.imul(O0,u0)|0,p=p+Math.imul(F0,o0)|0,c=c+Math.imul(F0,u0)|0;var I$=(w+f|0)+((p&8191)<<13)|0;w=(c+(p>>>13)|0)+(I$>>>26)|0,I$&=67108863,f=Math.imul(W0,o0),p=Math.imul(W0,u0),p=p+Math.imul(H0,o0)|0,c=Math.imul(H0,u0);var J$=(w+f|0)+((p&8191)<<13)|0;return w=(c+(p>>>13)|0)+(J$>>>26)|0,J$&=67108863,y[0]=n0,y[1]=s0,y[2]=t0,y[3]=m0,y[4]=a0,y[5]=r0,y[6]=e0,y[7]=i0,y[8]=$$,y[9]=Q$,y[10]=Y$,y[11]=Z$,y[12]=G$,y[13]=V$,y[14]=U$,y[15]=X$,y[16]=K$,y[17]=I$,y[18]=J$,w!==0&&(y[19]=w,x.length++),x};Math.imul||(D=T);function C(g,N,x){x.negative=N.negative^g.negative,x.length=g.length+N.length;for(var _=0,B=0,y=0;y>>26)|0,B+=w>>>26,w&=67108863}x.words[y]=f,_=w,w=B}return _!==0?x.words[y]=_:x.length--,x._strip()}function L(g,N,x){return C(g,N,x)}V.prototype.mulTo=function(g,N){var x,_=this.length+g.length;return this.length===10&&g.length===10?x=D(this,g,N):_<63?x=T(this,g,N):_<1024?x=C(this,g,N):x=L(this,g,N),x};function R(g,N){this.x=g,this.y=N}R.prototype.makeRBT=function(g){for(var N=new Array(g),x=V.prototype._countBits(g)-1,_=0;_>=1;return _},R.prototype.permute=function(g,N,x,_,B,y){for(var w=0;w>>1)B++;return 1<>>13,x[2*y+1]=B&8191,B=B>>>13;for(y=2*N;y<_;++y)x[y]=0;Z(B===0),Z((B&-8192)===0)},R.prototype.stub=function(g){for(var N=new Array(g),x=0;x>=26,x+=B/67108864|0,x+=y>>>26,this.words[_]=y&67108863}return x!==0&&(this.words[_]=x,this.length++),N?this.ineg():this},V.prototype.muln=function(g){return this.clone().imuln(g)},V.prototype.sqr=function(){return this.mul(this)},V.prototype.isqr=function(){return this.imul(this.clone())},V.prototype.pow=function(g){var N=E(g);if(N.length===0)return new V(1);for(var x=this,_=0;_=0);var N=g%26,x=(g-N)/26,_=67108863>>>26-N<<26-N,B;if(N!==0){var y=0;for(B=0;B>>26-N}y&&(this.words[B]=y,this.length++)}if(x!==0){for(B=this.length-1;B>=0;B--)this.words[B+x]=this.words[B];for(B=0;B=0);var _;N?_=(N-N%26)/26:_=0;var B=g%26,y=Math.min((g-B)/26,this.length),w=67108863^67108863>>>B<y)for(this.length-=y,p=0;p=0&&(c!==0||p>=_);p--){var h=this.words[p]|0;this.words[p]=c<<26-B|h>>>B,c=h&w}return f&&c!==0&&(f.words[f.length++]=c),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},V.prototype.ishrn=function(g,N,x){return Z(this.negative===0),this.iushrn(g,N,x)},V.prototype.shln=function(g){return this.clone().ishln(g)},V.prototype.ushln=function(g){return this.clone().iushln(g)},V.prototype.shrn=function(g){return this.clone().ishrn(g)},V.prototype.ushrn=function(g){return this.clone().iushrn(g)},V.prototype.testn=function(g){Z(typeof g=="number"&&g>=0);var N=g%26,x=(g-N)/26,_=1<=0);var N=g%26,x=(g-N)/26;if(Z(this.negative===0,"imaskn works only with positive numbers"),this.length<=x)return this;if(N!==0&&x++,this.length=Math.min(x,this.length),N!==0){var _=67108863^67108863>>>N<=67108864;N++)this.words[N]-=67108864,N===this.length-1?this.words[N+1]=1:this.words[N+1]++;return this.length=Math.max(this.length,N+1),this},V.prototype.isubn=function(g){if(Z(typeof g=="number"),Z(g<67108864),g<0)return this.iaddn(-g);if(this.negative!==0)return this.negative=0,this.iaddn(g),this.negative=1,this;if(this.words[0]-=g,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var N=0;N>26)-(f/67108864|0),this.words[B+x]=y&67108863}for(;B>26,this.words[B+x]=y&67108863;if(w===0)return this._strip();for(Z(w===-1),w=0,B=0;B>26,this.words[B]=y&67108863;return this.negative=1,this._strip()},V.prototype._wordDiv=function(g,N){var x=this.length-g.length,_=this.clone(),B=g,y=B.words[B.length-1]|0,w=this._countBits(y);x=26-w,x!==0&&(B=B.ushln(x),_.iushln(x),y=B.words[B.length-1]|0);var f=_.length-B.length,p;if(N!=="mod"){p=new V(null),p.length=f+1,p.words=new Array(p.length);for(var c=0;c=0;d--){var b=(_.words[B.length+d]|0)*67108864+(_.words[B.length+d-1]|0);for(b=Math.min(b/y|0,67108863),_._ishlnsubmul(B,b,d);_.negative!==0;)b--,_.negative=0,_._ishlnsubmul(B,1,d),_.isZero()||(_.negative^=1);p&&(p.words[d]=b)}return p&&p._strip(),_._strip(),N!=="div"&&x!==0&&_.iushrn(x),{div:p||null,mod:_}},V.prototype.divmod=function(g,N,x){if(Z(!g.isZero()),this.isZero())return{div:new V(0),mod:new V(0)};var _,B,y;return this.negative!==0&&g.negative===0?(y=this.neg().divmod(g,N),N!=="mod"&&(_=y.div.neg()),N!=="div"&&(B=y.mod.neg(),x&&B.negative!==0&&B.iadd(g)),{div:_,mod:B}):this.negative===0&&g.negative!==0?(y=this.divmod(g.neg(),N),N!=="mod"&&(_=y.div.neg()),{div:_,mod:y.mod}):(this.negative&g.negative)!==0?(y=this.neg().divmod(g.neg(),N),N!=="div"&&(B=y.mod.neg(),x&&B.negative!==0&&B.isub(g)),{div:y.div,mod:B}):g.length>this.length||this.cmp(g)<0?{div:new V(0),mod:this}:g.length===1?N==="div"?{div:this.divn(g.words[0]),mod:null}:N==="mod"?{div:null,mod:new V(this.modrn(g.words[0]))}:{div:this.divn(g.words[0]),mod:new V(this.modrn(g.words[0]))}:this._wordDiv(g,N)},V.prototype.div=function(g){return this.divmod(g,"div",!1).div},V.prototype.mod=function(g){return this.divmod(g,"mod",!1).mod},V.prototype.umod=function(g){return this.divmod(g,"mod",!0).mod},V.prototype.divRound=function(g){var N=this.divmod(g);if(N.mod.isZero())return N.div;var x=N.div.negative!==0?N.mod.isub(g):N.mod,_=g.ushrn(1),B=g.andln(1),y=x.cmp(_);return y<0||B===1&&y===0?N.div:N.div.negative!==0?N.div.isubn(1):N.div.iaddn(1)},V.prototype.modrn=function(g){var N=g<0;N&&(g=-g),Z(g<=67108863);for(var x=(1<<26)%g,_=0,B=this.length-1;B>=0;B--)_=(x*_+(this.words[B]|0))%g;return N?-_:_},V.prototype.modn=function(g){return this.modrn(g)},V.prototype.idivn=function(g){var N=g<0;N&&(g=-g),Z(g<=67108863);for(var x=0,_=this.length-1;_>=0;_--){var B=(this.words[_]|0)+x*67108864;this.words[_]=B/g|0,x=B%g}return this._strip(),N?this.ineg():this},V.prototype.divn=function(g){return this.clone().idivn(g)},V.prototype.egcd=function(g){Z(g.negative===0),Z(!g.isZero());var N=this,x=g.clone();N.negative!==0?N=N.umod(g):N=N.clone();for(var _=new V(1),B=new V(0),y=new V(0),w=new V(1),f=0;N.isEven()&&x.isEven();)N.iushrn(1),x.iushrn(1),++f;for(var p=x.clone(),c=N.clone();!N.isZero();){for(var h=0,d=1;(N.words[0]&d)===0&&h<26;++h,d<<=1);if(h>0)for(N.iushrn(h);h-- >0;)(_.isOdd()||B.isOdd())&&(_.iadd(p),B.isub(c)),_.iushrn(1),B.iushrn(1);for(var b=0,l=1;(x.words[0]&l)===0&&b<26;++b,l<<=1);if(b>0)for(x.iushrn(b);b-- >0;)(y.isOdd()||w.isOdd())&&(y.iadd(p),w.isub(c)),y.iushrn(1),w.iushrn(1);N.cmp(x)>=0?(N.isub(x),_.isub(y),B.isub(w)):(x.isub(N),y.isub(_),w.isub(B))}return{a:y,b:w,gcd:x.iushln(f)}},V.prototype._invmp=function(g){Z(g.negative===0),Z(!g.isZero());var N=this,x=g.clone();N.negative!==0?N=N.umod(g):N=N.clone();for(var _=new V(1),B=new V(0),y=x.clone();N.cmpn(1)>0&&x.cmpn(1)>0;){for(var w=0,f=1;(N.words[0]&f)===0&&w<26;++w,f<<=1);if(w>0)for(N.iushrn(w);w-- >0;)_.isOdd()&&_.iadd(y),_.iushrn(1);for(var p=0,c=1;(x.words[0]&c)===0&&p<26;++p,c<<=1);if(p>0)for(x.iushrn(p);p-- >0;)B.isOdd()&&B.iadd(y),B.iushrn(1);N.cmp(x)>=0?(N.isub(x),_.isub(B)):(x.isub(N),B.isub(_))}var h;return N.cmpn(1)===0?h=_:h=B,h.cmpn(0)<0&&h.iadd(g),h},V.prototype.gcd=function(g){if(this.isZero())return g.abs();if(g.isZero())return this.abs();var N=this.clone(),x=g.clone();N.negative=0,x.negative=0;for(var _=0;N.isEven()&&x.isEven();_++)N.iushrn(1),x.iushrn(1);do{for(;N.isEven();)N.iushrn(1);for(;x.isEven();)x.iushrn(1);var B=N.cmp(x);if(B<0){var y=N;N=x,x=y}else if(B===0||x.cmpn(1)===0)break;N.isub(x)}while(!0);return x.iushln(_)},V.prototype.invm=function(g){return this.egcd(g).a.umod(g)},V.prototype.isEven=function(){return(this.words[0]&1)===0},V.prototype.isOdd=function(){return(this.words[0]&1)===1},V.prototype.andln=function(g){return this.words[0]&g},V.prototype.bincn=function(g){Z(typeof g=="number");var N=g%26,x=(g-N)/26,_=1<>>26,w&=67108863,this.words[y]=w}return B!==0&&(this.words[y]=B,this.length++),this},V.prototype.isZero=function(){return this.length===1&&this.words[0]===0},V.prototype.cmpn=function(g){var N=g<0;if(this.negative!==0&&!N)return-1;if(this.negative===0&&N)return 1;this._strip();var x;if(this.length>1)x=1;else{N&&(g=-g),Z(g<=67108863,"Number is too big");var _=this.words[0]|0;x=_===g?0:_g.length)return 1;if(this.length=0;x--){var _=this.words[x]|0,B=g.words[x]|0;if(_!==B){_B&&(N=1);break}}return N},V.prototype.gtn=function(g){return this.cmpn(g)===1},V.prototype.gt=function(g){return this.cmp(g)===1},V.prototype.gten=function(g){return this.cmpn(g)>=0},V.prototype.gte=function(g){return this.cmp(g)>=0},V.prototype.ltn=function(g){return this.cmpn(g)===-1},V.prototype.lt=function(g){return this.cmp(g)===-1},V.prototype.lten=function(g){return this.cmpn(g)<=0},V.prototype.lte=function(g){return this.cmp(g)<=0},V.prototype.eqn=function(g){return this.cmpn(g)===0},V.prototype.eq=function(g){return this.cmp(g)===0},V.red=function(g){return new j(g)},V.prototype.toRed=function(g){return Z(!this.red,"Already a number in reduction context"),Z(this.negative===0,"red works only with positives"),g.convertTo(this)._forceRed(g)},V.prototype.fromRed=function(){return Z(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},V.prototype._forceRed=function(g){return this.red=g,this},V.prototype.forceRed=function(g){return Z(!this.red,"Already a number in reduction context"),this._forceRed(g)},V.prototype.redAdd=function(g){return Z(this.red,"redAdd works only with red numbers"),this.red.add(this,g)},V.prototype.redIAdd=function(g){return Z(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,g)},V.prototype.redSub=function(g){return Z(this.red,"redSub works only with red numbers"),this.red.sub(this,g)},V.prototype.redISub=function(g){return Z(this.red,"redISub works only with red numbers"),this.red.isub(this,g)},V.prototype.redShl=function(g){return Z(this.red,"redShl works only with red numbers"),this.red.shl(this,g)},V.prototype.redMul=function(g){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,g),this.red.mul(this,g)},V.prototype.redIMul=function(g){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,g),this.red.imul(this,g)},V.prototype.redSqr=function(){return Z(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},V.prototype.redISqr=function(){return Z(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},V.prototype.redSqrt=function(){return Z(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},V.prototype.redInvm=function(){return Z(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},V.prototype.redNeg=function(){return Z(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},V.prototype.redPow=function(g){return Z(this.red&&!g.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,g)};var P={k256:null,p224:null,p192:null,p25519:null};function z(g,N){this.name=g,this.p=new V(N,16),this.n=this.p.bitLength(),this.k=new V(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}z.prototype._tmp=function(){var g=new V(null);return g.words=new Array(Math.ceil(this.n/13)),g},z.prototype.ireduce=function(g){var N=g,x;do this.split(N,this.tmp),N=this.imulK(N),N=N.iadd(this.tmp),x=N.bitLength();while(x>this.n);var _=x0?N.isub(this.p):N.strip!==void 0?N.strip():N._strip(),N},z.prototype.split=function(g,N){g.iushrn(this.n,0,N)},z.prototype.imulK=function(g){return g.imul(this.k)};function M(){z.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}G(M,z),M.prototype.split=function(g,N){for(var x=4194303,_=Math.min(g.length,9),B=0;B<_;B++)N.words[B]=g.words[B];if(N.length=_,g.length<=9){g.words[0]=0,g.length=1;return}var y=g.words[9];for(N.words[N.length++]=y&x,B=10;B>>22,y=w}y>>>=22,g.words[B-10]=y,y===0&&g.length>10?g.length-=10:g.length-=9},M.prototype.imulK=function(g){g.words[g.length]=0,g.words[g.length+1]=0,g.length+=2;for(var N=0,x=0;x>>=26,g.words[x]=B,N=_}return N!==0&&(g.words[g.length++]=N),g},V._prime=function(g){if(P[g])return P[g];var N;if(g==="k256")N=new M;else if(g==="p224")N=new S;else if(g==="p192")N=new v;else if(g==="p25519")N=new q;else throw new Error("Unknown prime "+g);return P[g]=N,N};function j(g){if(typeof g=="string"){var N=V._prime(g);this.m=N.p,this.prime=N}else Z(g.gtn(1),"modulus must be greater than 1"),this.m=g,this.prime=null}j.prototype._verify1=function(g){Z(g.negative===0,"red works only with positives"),Z(g.red,"red works only with red numbers")},j.prototype._verify2=function(g,N){Z((g.negative|N.negative)===0,"red works only with positives"),Z(g.red&&g.red===N.red,"red works only with red numbers")},j.prototype.imod=function(g){return this.prime?this.prime.ireduce(g)._forceRed(this):(J(g,g.umod(this.m)._forceRed(this)),g)},j.prototype.neg=function(g){return g.isZero()?g.clone():this.m.sub(g)._forceRed(this)},j.prototype.add=function(g,N){this._verify2(g,N);var x=g.add(N);return x.cmp(this.m)>=0&&x.isub(this.m),x._forceRed(this)},j.prototype.iadd=function(g,N){this._verify2(g,N);var x=g.iadd(N);return x.cmp(this.m)>=0&&x.isub(this.m),x},j.prototype.sub=function(g,N){this._verify2(g,N);var x=g.sub(N);return x.cmpn(0)<0&&x.iadd(this.m),x._forceRed(this)},j.prototype.isub=function(g,N){this._verify2(g,N);var x=g.isub(N);return x.cmpn(0)<0&&x.iadd(this.m),x},j.prototype.shl=function(g,N){return this._verify1(g),this.imod(g.ushln(N))},j.prototype.imul=function(g,N){return this._verify2(g,N),this.imod(g.imul(N))},j.prototype.mul=function(g,N){return this._verify2(g,N),this.imod(g.mul(N))},j.prototype.isqr=function(g){return this.imul(g,g.clone())},j.prototype.sqr=function(g){return this.mul(g,g)},j.prototype.sqrt=function(g){if(g.isZero())return g.clone();var N=this.m.andln(3);if(Z(N%2===1),N===3){var x=this.m.add(new V(1)).iushrn(2);return this.pow(g,x)}for(var _=this.m.subn(1),B=0;!_.isZero()&&_.andln(1)===0;)B++,_.iushrn(1);Z(!_.isZero());var y=new V(1).toRed(this),w=y.redNeg(),f=this.m.subn(1).iushrn(1),p=this.m.bitLength();for(p=new V(2*p*p).toRed(this);this.pow(p,f).cmp(w)!==0;)p.redIAdd(w);for(var c=this.pow(p,_),h=this.pow(g,_.addn(1).iushrn(1)),d=this.pow(g,_),b=B;d.cmp(y)!==0;){for(var l=d,o=0;l.cmp(y)!==0;o++)l=l.redSqr();Z(o=0;B--){for(var c=N.words[B],h=p-1;h>=0;h--){var d=c>>h&1;if(y!==_[0]&&(y=this.sqr(y)),d===0&&w===0){f=0;continue}w<<=1,w|=d,f++,!(f!==x&&(B!==0||h!==0))&&(y=this.mul(y,_[w]),f=0,w=0)}p=26}return y},j.prototype.convertTo=function(g){var N=g.umod(this.m);return N===g?N.clone():N},j.prototype.convertFrom=function(g){var N=g.clone();return N.red=null,N},V.mont=function(g){return new k(g)};function k(g){j.call(this,g),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new V(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}G(k,j),k.prototype.convertTo=function(g){return this.imod(g.ushln(this.shift))},k.prototype.convertFrom=function(g){var N=this.imod(g.mul(this.rinv));return N.red=null,N},k.prototype.imul=function(g,N){if(g.isZero()||N.isZero())return g.words[0]=0,g.length=1,g;var x=g.imul(N),_=x.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),B=x.isub(_).iushrn(this.shift),y=B;return B.cmp(this.m)>=0?y=B.isub(this.m):B.cmpn(0)<0&&(y=B.iadd(this.m)),y._forceRed(this)},k.prototype.mul=function(g,N){if(g.isZero()||N.isZero())return new V(0)._forceRed(this);var x=g.mul(N),_=x.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),B=x.isub(_).iushrn(this.shift),y=B;return B.cmp(this.m)>=0?y=B.isub(this.m):B.cmpn(0)<0&&(y=B.iadd(this.m)),y._forceRed(this)},k.prototype.invm=function(g){var N=this.imod(g._invmp(this.m).mul(this.r2));return N._forceRed(this)}})(typeof $>"u"||$,bZ)}}),wQ=P$({"node_modules/browserify-rsa/index.js"(bZ,$){var Q=yQ(),Y=S$();function Z(U){var X=G(U),K=X.toRed(Q.mont(U.modulus)).redPow(new Q(U.publicExponent)).fromRed();return{blinder:K,unblinder:X.invm(U.modulus)}}function G(U){var X=U.modulus.byteLength(),K;do K=new Q(Y(X));while(K.cmp(U.modulus)>=0||!K.umod(U.prime1)||!K.umod(U.prime2));return K}function V(U,X){var K=Z(X),I=X.modulus.byteLength(),J=new Q(U).mul(K.blinder).umod(X.modulus),O=J.toRed(Q.mont(X.prime1)),F=J.toRed(Q.mont(X.prime2)),A=X.coefficient,W=X.prime1,H=X.prime2,E=O.redPow(X.exponent1).fromRed(),T=F.redPow(X.exponent2).fromRed(),D=E.isub(T).imul(A).umod(W).imul(H);return T.iadd(D).imul(K.unblinder).umod(X.modulus).toArrayLike(Buffer,"be",I)}V.getr=G,$.exports=V}}),fQ=P$({"node_modules/elliptic/package.json"(bZ,$){$.exports={name:"elliptic",version:"6.5.4",description:"EC cryptography",main:"lib/elliptic.js",files:["lib"],scripts:{lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},repository:{type:"git",url:"git@github.com:indutny/elliptic"},keywords:["EC","Elliptic","curve","Cryptography"],author:"Fedor Indutny ",license:"MIT",bugs:{url:"https://github.com/indutny/elliptic/issues"},homepage:"https://github.com/indutny/elliptic",devDependencies:{brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},dependencies:{"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"}}}}),pQ=P$({"node_modules/elliptic/node_modules/bn.js/lib/bn.js"(bZ,$){(function(Q,Y){function Z(q,j){if(!q)throw new Error(j||"Assertion failed")}function G(q,j){q.super_=j;var k=function(){};k.prototype=j.prototype,q.prototype=new k,q.prototype.constructor=q}function V(q,j,k){if(V.isBN(q))return q;this.negative=0,this.words=null,this.length=0,this.red=null,q!==null&&((j==="le"||j==="be")&&(k=j,j=10),this._init(q||0,j||10,k||"be"))}typeof Q=="object"?Q.exports=V:Y.BN=V,V.BN=V,V.wordSize=26;var U;try{typeof window<"u"&&typeof window.Buffer<"u"?U=window.Buffer:U=L$("buffer").Buffer}catch{}V.isBN=function(q){return q instanceof V?!0:q!==null&&typeof q=="object"&&q.constructor.wordSize===V.wordSize&&Array.isArray(q.words)},V.max=function(q,j){return q.cmp(j)>0?q:j},V.min=function(q,j){return q.cmp(j)<0?q:j},V.prototype._init=function(q,j,k){if(typeof q=="number")return this._initNumber(q,j,k);if(typeof q=="object")return this._initArray(q,j,k);j==="hex"&&(j=16),Z(j===(j|0)&&j>=2&&j<=36),q=q.toString().replace(/\s+/g,"");var g=0;q[0]==="-"&&(g++,this.negative=1),g=0;g-=3)x=q[g]|q[g-1]<<8|q[g-2]<<16,this.words[N]|=x<<_&67108863,this.words[N+1]=x>>>26-_&67108863,_+=24,_>=26&&(_-=26,N++);else if(k==="le")for(g=0,N=0;g>>26-_&67108863,_+=24,_>=26&&(_-=26,N++);return this.strip()};function X(q,j){var k=q.charCodeAt(j);return k>=65&&k<=70?k-55:k>=97&&k<=102?k-87:k-48&15}function K(q,j,k){var g=X(q,k);return k-1>=j&&(g|=X(q,k-1)<<4),g}V.prototype._parseHex=function(q,j,k){this.length=Math.ceil((q.length-j)/6),this.words=new Array(this.length);for(var g=0;g=j;g-=2)_=K(q,j,g)<=18?(N-=18,x+=1,this.words[x]|=_>>>26):N+=8;else{var B=q.length-j;for(g=B%2===0?j+1:j;g=18?(N-=18,x+=1,this.words[x]|=_>>>26):N+=8}this.strip()};function I(q,j,k,g){for(var N=0,x=Math.min(q.length,k),_=j;_=49?N+=B-49+10:B>=17?N+=B-17+10:N+=B}return N}V.prototype._parseBase=function(q,j,k){this.words=[0],this.length=1;for(var g=0,N=1;N<=67108863;N*=j)g++;g--,N=N/j|0;for(var x=q.length-k,_=x%g,B=Math.min(x,x-_)+k,y=0,w=k;w1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},V.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},V.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],O=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],F=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];V.prototype.toString=function(q,j){q=q||10,j=j|0||1;var k;if(q===16||q==="hex"){k="";for(var g=0,N=0,x=0;x>>24-g&16777215,N!==0||x!==this.length-1?k=J[6-B.length]+B+k:k=B+k,g+=2,g>=26&&(g-=26,x--)}for(N!==0&&(k=N.toString(16)+k);k.length%j!==0;)k="0"+k;return this.negative!==0&&(k="-"+k),k}if(q===(q|0)&&q>=2&&q<=36){var y=O[q],w=F[q];k="";var f=this.clone();for(f.negative=0;!f.isZero();){var p=f.modn(w).toString(q);f=f.idivn(w),f.isZero()?k=p+k:k=J[y-p.length]+p+k}for(this.isZero()&&(k="0"+k);k.length%j!==0;)k="0"+k;return this.negative!==0&&(k="-"+k),k}Z(!1,"Base should be between 2 and 36")},V.prototype.toNumber=function(){var q=this.words[0];return this.length===2?q+=this.words[1]*67108864:this.length===3&&this.words[2]===1?q+=4503599627370496+this.words[1]*67108864:this.length>2&&Z(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-q:q},V.prototype.toJSON=function(){return this.toString(16)},V.prototype.toBuffer=function(q,j){return Z(typeof U<"u"),this.toArrayLike(U,q,j)},V.prototype.toArray=function(q,j){return this.toArrayLike(Array,q,j)},V.prototype.toArrayLike=function(q,j,k){var g=this.byteLength(),N=k||Math.max(1,g);Z(g<=N,"byte array longer than desired length"),Z(N>0,"Requested array length <= 0"),this.strip();var x=j==="le",_=new q(N),B,y,w=this.clone();if(x){for(y=0;!w.isZero();y++)B=w.andln(255),w.iushrn(8),_[y]=B;for(;y=4096&&(k+=13,j>>>=13),j>=64&&(k+=7,j>>>=7),j>=8&&(k+=4,j>>>=4),j>=2&&(k+=2,j>>>=2),k+j},V.prototype._zeroBits=function(q){if(q===0)return 26;var j=q,k=0;return(j&8191)===0&&(k+=13,j>>>=13),(j&127)===0&&(k+=7,j>>>=7),(j&15)===0&&(k+=4,j>>>=4),(j&3)===0&&(k+=2,j>>>=2),(j&1)===0&&k++,k},V.prototype.bitLength=function(){var q=this.words[this.length-1],j=this._countBits(q);return(this.length-1)*26+j};function A(q){for(var j=new Array(q.bitLength()),k=0;k>>N}return j}V.prototype.zeroBits=function(){if(this.isZero())return 0;for(var q=0,j=0;jq.length?this.clone().ior(q):q.clone().ior(this)},V.prototype.uor=function(q){return this.length>q.length?this.clone().iuor(q):q.clone().iuor(this)},V.prototype.iuand=function(q){var j;this.length>q.length?j=q:j=this;for(var k=0;kq.length?this.clone().iand(q):q.clone().iand(this)},V.prototype.uand=function(q){return this.length>q.length?this.clone().iuand(q):q.clone().iuand(this)},V.prototype.iuxor=function(q){var j,k;this.length>q.length?(j=this,k=q):(j=q,k=this);for(var g=0;gq.length?this.clone().ixor(q):q.clone().ixor(this)},V.prototype.uxor=function(q){return this.length>q.length?this.clone().iuxor(q):q.clone().iuxor(this)},V.prototype.inotn=function(q){Z(typeof q=="number"&&q>=0);var j=Math.ceil(q/26)|0,k=q%26;this._expand(j),k>0&&j--;for(var g=0;g0&&(this.words[g]=~this.words[g]&67108863>>26-k),this.strip()},V.prototype.notn=function(q){return this.clone().inotn(q)},V.prototype.setn=function(q,j){Z(typeof q=="number"&&q>=0);var k=q/26|0,g=q%26;return this._expand(k+1),j?this.words[k]=this.words[k]|1<q.length?(k=this,g=q):(k=q,g=this);for(var N=0,x=0;x>>26;for(;N!==0&&x>>26;if(this.length=k.length,N!==0)this.words[this.length]=N,this.length++;else if(k!==this)for(;xq.length?this.clone().iadd(q):q.clone().iadd(this)},V.prototype.isub=function(q){if(q.negative!==0){q.negative=0;var j=this.iadd(q);return q.negative=1,j._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(q),this.negative=1,this._normSign();var k=this.cmp(q);if(k===0)return this.negative=0,this.length=1,this.words[0]=0,this;var g,N;k>0?(g=this,N=q):(g=q,N=this);for(var x=0,_=0;_>26,this.words[_]=j&67108863;for(;x!==0&&_>26,this.words[_]=j&67108863;if(x===0&&_>>26,p=y&67108863,c=Math.min(w,j.length-1),h=Math.max(0,w-q.length+1);h<=c;h++){var d=w-h|0;N=q.words[d]|0,x=j.words[h]|0,_=N*x+p,f+=_/67108864|0,p=_&67108863}k.words[w]=p|0,y=f|0}return y!==0?k.words[w]=y|0:k.length--,k.strip()}var H=function(q,j,k){var g=q.words,N=j.words,x=k.words,_=0,B,y,w,f=g[0]|0,p=f&8191,c=f>>>13,h=g[1]|0,d=h&8191,b=h>>>13,l=g[2]|0,o=l&8191,u=l>>>13,n=g[3]|0,s=n&8191,t=n>>>13,m=g[4]|0,a=m&8191,r=m>>>13,e=g[5]|0,i=e&8191,$0=e>>>13,Q0=g[6]|0,Y0=Q0&8191,Z0=Q0>>>13,G0=g[7]|0,V0=G0&8191,U0=G0>>>13,X0=g[8]|0,K0=X0&8191,I0=X0>>>13,J0=g[9]|0,O0=J0&8191,F0=J0>>>13,A0=N[0]|0,W0=A0&8191,H0=A0>>>13,E0=N[1]|0,T0=E0&8191,D0=E0>>>13,C0=N[2]|0,L0=C0&8191,R0=C0>>>13,P0=N[3]|0,z0=P0&8191,M0=P0>>>13,S0=N[4]|0,v0=S0&8191,q0=S0>>>13,j0=N[5]|0,k0=j0&8191,g0=j0>>>13,N0=N[6]|0,x0=N0&8191,_0=N0>>>13,B0=N[7]|0,y0=B0&8191,w0=B0>>>13,f0=N[8]|0,p0=f0&8191,c0=f0>>>13,h0=N[9]|0,d0=h0&8191,b0=h0>>>13;k.negative=q.negative^j.negative,k.length=19,B=Math.imul(p,W0),y=Math.imul(p,H0),y=y+Math.imul(c,W0)|0,w=Math.imul(c,H0);var l0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(l0>>>26)|0,l0&=67108863,B=Math.imul(d,W0),y=Math.imul(d,H0),y=y+Math.imul(b,W0)|0,w=Math.imul(b,H0),B=B+Math.imul(p,T0)|0,y=y+Math.imul(p,D0)|0,y=y+Math.imul(c,T0)|0,w=w+Math.imul(c,D0)|0;var o0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(o0>>>26)|0,o0&=67108863,B=Math.imul(o,W0),y=Math.imul(o,H0),y=y+Math.imul(u,W0)|0,w=Math.imul(u,H0),B=B+Math.imul(d,T0)|0,y=y+Math.imul(d,D0)|0,y=y+Math.imul(b,T0)|0,w=w+Math.imul(b,D0)|0,B=B+Math.imul(p,L0)|0,y=y+Math.imul(p,R0)|0,y=y+Math.imul(c,L0)|0,w=w+Math.imul(c,R0)|0;var u0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(u0>>>26)|0,u0&=67108863,B=Math.imul(s,W0),y=Math.imul(s,H0),y=y+Math.imul(t,W0)|0,w=Math.imul(t,H0),B=B+Math.imul(o,T0)|0,y=y+Math.imul(o,D0)|0,y=y+Math.imul(u,T0)|0,w=w+Math.imul(u,D0)|0,B=B+Math.imul(d,L0)|0,y=y+Math.imul(d,R0)|0,y=y+Math.imul(b,L0)|0,w=w+Math.imul(b,R0)|0,B=B+Math.imul(p,z0)|0,y=y+Math.imul(p,M0)|0,y=y+Math.imul(c,z0)|0,w=w+Math.imul(c,M0)|0;var n0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(n0>>>26)|0,n0&=67108863,B=Math.imul(a,W0),y=Math.imul(a,H0),y=y+Math.imul(r,W0)|0,w=Math.imul(r,H0),B=B+Math.imul(s,T0)|0,y=y+Math.imul(s,D0)|0,y=y+Math.imul(t,T0)|0,w=w+Math.imul(t,D0)|0,B=B+Math.imul(o,L0)|0,y=y+Math.imul(o,R0)|0,y=y+Math.imul(u,L0)|0,w=w+Math.imul(u,R0)|0,B=B+Math.imul(d,z0)|0,y=y+Math.imul(d,M0)|0,y=y+Math.imul(b,z0)|0,w=w+Math.imul(b,M0)|0,B=B+Math.imul(p,v0)|0,y=y+Math.imul(p,q0)|0,y=y+Math.imul(c,v0)|0,w=w+Math.imul(c,q0)|0;var s0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(s0>>>26)|0,s0&=67108863,B=Math.imul(i,W0),y=Math.imul(i,H0),y=y+Math.imul($0,W0)|0,w=Math.imul($0,H0),B=B+Math.imul(a,T0)|0,y=y+Math.imul(a,D0)|0,y=y+Math.imul(r,T0)|0,w=w+Math.imul(r,D0)|0,B=B+Math.imul(s,L0)|0,y=y+Math.imul(s,R0)|0,y=y+Math.imul(t,L0)|0,w=w+Math.imul(t,R0)|0,B=B+Math.imul(o,z0)|0,y=y+Math.imul(o,M0)|0,y=y+Math.imul(u,z0)|0,w=w+Math.imul(u,M0)|0,B=B+Math.imul(d,v0)|0,y=y+Math.imul(d,q0)|0,y=y+Math.imul(b,v0)|0,w=w+Math.imul(b,q0)|0,B=B+Math.imul(p,k0)|0,y=y+Math.imul(p,g0)|0,y=y+Math.imul(c,k0)|0,w=w+Math.imul(c,g0)|0;var t0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(t0>>>26)|0,t0&=67108863,B=Math.imul(Y0,W0),y=Math.imul(Y0,H0),y=y+Math.imul(Z0,W0)|0,w=Math.imul(Z0,H0),B=B+Math.imul(i,T0)|0,y=y+Math.imul(i,D0)|0,y=y+Math.imul($0,T0)|0,w=w+Math.imul($0,D0)|0,B=B+Math.imul(a,L0)|0,y=y+Math.imul(a,R0)|0,y=y+Math.imul(r,L0)|0,w=w+Math.imul(r,R0)|0,B=B+Math.imul(s,z0)|0,y=y+Math.imul(s,M0)|0,y=y+Math.imul(t,z0)|0,w=w+Math.imul(t,M0)|0,B=B+Math.imul(o,v0)|0,y=y+Math.imul(o,q0)|0,y=y+Math.imul(u,v0)|0,w=w+Math.imul(u,q0)|0,B=B+Math.imul(d,k0)|0,y=y+Math.imul(d,g0)|0,y=y+Math.imul(b,k0)|0,w=w+Math.imul(b,g0)|0,B=B+Math.imul(p,x0)|0,y=y+Math.imul(p,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,_0)|0;var m0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(m0>>>26)|0,m0&=67108863,B=Math.imul(V0,W0),y=Math.imul(V0,H0),y=y+Math.imul(U0,W0)|0,w=Math.imul(U0,H0),B=B+Math.imul(Y0,T0)|0,y=y+Math.imul(Y0,D0)|0,y=y+Math.imul(Z0,T0)|0,w=w+Math.imul(Z0,D0)|0,B=B+Math.imul(i,L0)|0,y=y+Math.imul(i,R0)|0,y=y+Math.imul($0,L0)|0,w=w+Math.imul($0,R0)|0,B=B+Math.imul(a,z0)|0,y=y+Math.imul(a,M0)|0,y=y+Math.imul(r,z0)|0,w=w+Math.imul(r,M0)|0,B=B+Math.imul(s,v0)|0,y=y+Math.imul(s,q0)|0,y=y+Math.imul(t,v0)|0,w=w+Math.imul(t,q0)|0,B=B+Math.imul(o,k0)|0,y=y+Math.imul(o,g0)|0,y=y+Math.imul(u,k0)|0,w=w+Math.imul(u,g0)|0,B=B+Math.imul(d,x0)|0,y=y+Math.imul(d,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,_0)|0,B=B+Math.imul(p,y0)|0,y=y+Math.imul(p,w0)|0,y=y+Math.imul(c,y0)|0,w=w+Math.imul(c,w0)|0;var a0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(a0>>>26)|0,a0&=67108863,B=Math.imul(K0,W0),y=Math.imul(K0,H0),y=y+Math.imul(I0,W0)|0,w=Math.imul(I0,H0),B=B+Math.imul(V0,T0)|0,y=y+Math.imul(V0,D0)|0,y=y+Math.imul(U0,T0)|0,w=w+Math.imul(U0,D0)|0,B=B+Math.imul(Y0,L0)|0,y=y+Math.imul(Y0,R0)|0,y=y+Math.imul(Z0,L0)|0,w=w+Math.imul(Z0,R0)|0,B=B+Math.imul(i,z0)|0,y=y+Math.imul(i,M0)|0,y=y+Math.imul($0,z0)|0,w=w+Math.imul($0,M0)|0,B=B+Math.imul(a,v0)|0,y=y+Math.imul(a,q0)|0,y=y+Math.imul(r,v0)|0,w=w+Math.imul(r,q0)|0,B=B+Math.imul(s,k0)|0,y=y+Math.imul(s,g0)|0,y=y+Math.imul(t,k0)|0,w=w+Math.imul(t,g0)|0,B=B+Math.imul(o,x0)|0,y=y+Math.imul(o,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,_0)|0,B=B+Math.imul(d,y0)|0,y=y+Math.imul(d,w0)|0,y=y+Math.imul(b,y0)|0,w=w+Math.imul(b,w0)|0,B=B+Math.imul(p,p0)|0,y=y+Math.imul(p,c0)|0,y=y+Math.imul(c,p0)|0,w=w+Math.imul(c,c0)|0;var r0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(r0>>>26)|0,r0&=67108863,B=Math.imul(O0,W0),y=Math.imul(O0,H0),y=y+Math.imul(F0,W0)|0,w=Math.imul(F0,H0),B=B+Math.imul(K0,T0)|0,y=y+Math.imul(K0,D0)|0,y=y+Math.imul(I0,T0)|0,w=w+Math.imul(I0,D0)|0,B=B+Math.imul(V0,L0)|0,y=y+Math.imul(V0,R0)|0,y=y+Math.imul(U0,L0)|0,w=w+Math.imul(U0,R0)|0,B=B+Math.imul(Y0,z0)|0,y=y+Math.imul(Y0,M0)|0,y=y+Math.imul(Z0,z0)|0,w=w+Math.imul(Z0,M0)|0,B=B+Math.imul(i,v0)|0,y=y+Math.imul(i,q0)|0,y=y+Math.imul($0,v0)|0,w=w+Math.imul($0,q0)|0,B=B+Math.imul(a,k0)|0,y=y+Math.imul(a,g0)|0,y=y+Math.imul(r,k0)|0,w=w+Math.imul(r,g0)|0,B=B+Math.imul(s,x0)|0,y=y+Math.imul(s,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,_0)|0,B=B+Math.imul(o,y0)|0,y=y+Math.imul(o,w0)|0,y=y+Math.imul(u,y0)|0,w=w+Math.imul(u,w0)|0,B=B+Math.imul(d,p0)|0,y=y+Math.imul(d,c0)|0,y=y+Math.imul(b,p0)|0,w=w+Math.imul(b,c0)|0,B=B+Math.imul(p,d0)|0,y=y+Math.imul(p,b0)|0,y=y+Math.imul(c,d0)|0,w=w+Math.imul(c,b0)|0;var e0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(e0>>>26)|0,e0&=67108863,B=Math.imul(O0,T0),y=Math.imul(O0,D0),y=y+Math.imul(F0,T0)|0,w=Math.imul(F0,D0),B=B+Math.imul(K0,L0)|0,y=y+Math.imul(K0,R0)|0,y=y+Math.imul(I0,L0)|0,w=w+Math.imul(I0,R0)|0,B=B+Math.imul(V0,z0)|0,y=y+Math.imul(V0,M0)|0,y=y+Math.imul(U0,z0)|0,w=w+Math.imul(U0,M0)|0,B=B+Math.imul(Y0,v0)|0,y=y+Math.imul(Y0,q0)|0,y=y+Math.imul(Z0,v0)|0,w=w+Math.imul(Z0,q0)|0,B=B+Math.imul(i,k0)|0,y=y+Math.imul(i,g0)|0,y=y+Math.imul($0,k0)|0,w=w+Math.imul($0,g0)|0,B=B+Math.imul(a,x0)|0,y=y+Math.imul(a,_0)|0,y=y+Math.imul(r,x0)|0,w=w+Math.imul(r,_0)|0,B=B+Math.imul(s,y0)|0,y=y+Math.imul(s,w0)|0,y=y+Math.imul(t,y0)|0,w=w+Math.imul(t,w0)|0,B=B+Math.imul(o,p0)|0,y=y+Math.imul(o,c0)|0,y=y+Math.imul(u,p0)|0,w=w+Math.imul(u,c0)|0,B=B+Math.imul(d,d0)|0,y=y+Math.imul(d,b0)|0,y=y+Math.imul(b,d0)|0,w=w+Math.imul(b,b0)|0;var i0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(i0>>>26)|0,i0&=67108863,B=Math.imul(O0,L0),y=Math.imul(O0,R0),y=y+Math.imul(F0,L0)|0,w=Math.imul(F0,R0),B=B+Math.imul(K0,z0)|0,y=y+Math.imul(K0,M0)|0,y=y+Math.imul(I0,z0)|0,w=w+Math.imul(I0,M0)|0,B=B+Math.imul(V0,v0)|0,y=y+Math.imul(V0,q0)|0,y=y+Math.imul(U0,v0)|0,w=w+Math.imul(U0,q0)|0,B=B+Math.imul(Y0,k0)|0,y=y+Math.imul(Y0,g0)|0,y=y+Math.imul(Z0,k0)|0,w=w+Math.imul(Z0,g0)|0,B=B+Math.imul(i,x0)|0,y=y+Math.imul(i,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,_0)|0,B=B+Math.imul(a,y0)|0,y=y+Math.imul(a,w0)|0,y=y+Math.imul(r,y0)|0,w=w+Math.imul(r,w0)|0,B=B+Math.imul(s,p0)|0,y=y+Math.imul(s,c0)|0,y=y+Math.imul(t,p0)|0,w=w+Math.imul(t,c0)|0,B=B+Math.imul(o,d0)|0,y=y+Math.imul(o,b0)|0,y=y+Math.imul(u,d0)|0,w=w+Math.imul(u,b0)|0;var $$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+($$>>>26)|0,$$&=67108863,B=Math.imul(O0,z0),y=Math.imul(O0,M0),y=y+Math.imul(F0,z0)|0,w=Math.imul(F0,M0),B=B+Math.imul(K0,v0)|0,y=y+Math.imul(K0,q0)|0,y=y+Math.imul(I0,v0)|0,w=w+Math.imul(I0,q0)|0,B=B+Math.imul(V0,k0)|0,y=y+Math.imul(V0,g0)|0,y=y+Math.imul(U0,k0)|0,w=w+Math.imul(U0,g0)|0,B=B+Math.imul(Y0,x0)|0,y=y+Math.imul(Y0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,_0)|0,B=B+Math.imul(i,y0)|0,y=y+Math.imul(i,w0)|0,y=y+Math.imul($0,y0)|0,w=w+Math.imul($0,w0)|0,B=B+Math.imul(a,p0)|0,y=y+Math.imul(a,c0)|0,y=y+Math.imul(r,p0)|0,w=w+Math.imul(r,c0)|0,B=B+Math.imul(s,d0)|0,y=y+Math.imul(s,b0)|0,y=y+Math.imul(t,d0)|0,w=w+Math.imul(t,b0)|0;var Q$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,B=Math.imul(O0,v0),y=Math.imul(O0,q0),y=y+Math.imul(F0,v0)|0,w=Math.imul(F0,q0),B=B+Math.imul(K0,k0)|0,y=y+Math.imul(K0,g0)|0,y=y+Math.imul(I0,k0)|0,w=w+Math.imul(I0,g0)|0,B=B+Math.imul(V0,x0)|0,y=y+Math.imul(V0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,_0)|0,B=B+Math.imul(Y0,y0)|0,y=y+Math.imul(Y0,w0)|0,y=y+Math.imul(Z0,y0)|0,w=w+Math.imul(Z0,w0)|0,B=B+Math.imul(i,p0)|0,y=y+Math.imul(i,c0)|0,y=y+Math.imul($0,p0)|0,w=w+Math.imul($0,c0)|0,B=B+Math.imul(a,d0)|0,y=y+Math.imul(a,b0)|0,y=y+Math.imul(r,d0)|0,w=w+Math.imul(r,b0)|0;var Y$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,B=Math.imul(O0,k0),y=Math.imul(O0,g0),y=y+Math.imul(F0,k0)|0,w=Math.imul(F0,g0),B=B+Math.imul(K0,x0)|0,y=y+Math.imul(K0,_0)|0,y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,_0)|0,B=B+Math.imul(V0,y0)|0,y=y+Math.imul(V0,w0)|0,y=y+Math.imul(U0,y0)|0,w=w+Math.imul(U0,w0)|0,B=B+Math.imul(Y0,p0)|0,y=y+Math.imul(Y0,c0)|0,y=y+Math.imul(Z0,p0)|0,w=w+Math.imul(Z0,c0)|0,B=B+Math.imul(i,d0)|0,y=y+Math.imul(i,b0)|0,y=y+Math.imul($0,d0)|0,w=w+Math.imul($0,b0)|0;var Z$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,B=Math.imul(O0,x0),y=Math.imul(O0,_0),y=y+Math.imul(F0,x0)|0,w=Math.imul(F0,_0),B=B+Math.imul(K0,y0)|0,y=y+Math.imul(K0,w0)|0,y=y+Math.imul(I0,y0)|0,w=w+Math.imul(I0,w0)|0,B=B+Math.imul(V0,p0)|0,y=y+Math.imul(V0,c0)|0,y=y+Math.imul(U0,p0)|0,w=w+Math.imul(U0,c0)|0,B=B+Math.imul(Y0,d0)|0,y=y+Math.imul(Y0,b0)|0,y=y+Math.imul(Z0,d0)|0,w=w+Math.imul(Z0,b0)|0;var G$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(G$>>>26)|0,G$&=67108863,B=Math.imul(O0,y0),y=Math.imul(O0,w0),y=y+Math.imul(F0,y0)|0,w=Math.imul(F0,w0),B=B+Math.imul(K0,p0)|0,y=y+Math.imul(K0,c0)|0,y=y+Math.imul(I0,p0)|0,w=w+Math.imul(I0,c0)|0,B=B+Math.imul(V0,d0)|0,y=y+Math.imul(V0,b0)|0,y=y+Math.imul(U0,d0)|0,w=w+Math.imul(U0,b0)|0;var V$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(V$>>>26)|0,V$&=67108863,B=Math.imul(O0,p0),y=Math.imul(O0,c0),y=y+Math.imul(F0,p0)|0,w=Math.imul(F0,c0),B=B+Math.imul(K0,d0)|0,y=y+Math.imul(K0,b0)|0,y=y+Math.imul(I0,d0)|0,w=w+Math.imul(I0,b0)|0;var U$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(U$>>>26)|0,U$&=67108863,B=Math.imul(O0,d0),y=Math.imul(O0,b0),y=y+Math.imul(F0,d0)|0,w=Math.imul(F0,b0);var X$=(_+B|0)+((y&8191)<<13)|0;return _=(w+(y>>>13)|0)+(X$>>>26)|0,X$&=67108863,x[0]=l0,x[1]=o0,x[2]=u0,x[3]=n0,x[4]=s0,x[5]=t0,x[6]=m0,x[7]=a0,x[8]=r0,x[9]=e0,x[10]=i0,x[11]=$$,x[12]=Q$,x[13]=Y$,x[14]=Z$,x[15]=G$,x[16]=V$,x[17]=U$,x[18]=X$,_!==0&&(x[19]=_,k.length++),k};Math.imul||(H=W);function E(q,j,k){k.negative=j.negative^q.negative,k.length=q.length+j.length;for(var g=0,N=0,x=0;x>>26)|0,N+=_>>>26,_&=67108863}k.words[x]=B,g=_,_=N}return g!==0?k.words[x]=g:k.length--,k.strip()}function T(q,j,k){var g=new D;return g.mulp(q,j,k)}V.prototype.mulTo=function(q,j){var k,g=this.length+q.length;return this.length===10&&q.length===10?k=H(this,q,j):g<63?k=W(this,q,j):g<1024?k=E(this,q,j):k=T(this,q,j),k};function D(q,j){this.x=q,this.y=j}D.prototype.makeRBT=function(q){for(var j=new Array(q),k=V.prototype._countBits(q)-1,g=0;g>=1;return g},D.prototype.permute=function(q,j,k,g,N,x){for(var _=0;_>>1)N++;return 1<>>13,k[2*x+1]=N&8191,N=N>>>13;for(x=2*j;x>=26,j+=g/67108864|0,j+=N>>>26,this.words[k]=N&67108863}return j!==0&&(this.words[k]=j,this.length++),this},V.prototype.muln=function(q){return this.clone().imuln(q)},V.prototype.sqr=function(){return this.mul(this)},V.prototype.isqr=function(){return this.imul(this.clone())},V.prototype.pow=function(q){var j=A(q);if(j.length===0)return new V(1);for(var k=this,g=0;g=0);var j=q%26,k=(q-j)/26,g=67108863>>>26-j<<26-j,N;if(j!==0){var x=0;for(N=0;N>>26-j}x&&(this.words[N]=x,this.length++)}if(k!==0){for(N=this.length-1;N>=0;N--)this.words[N+k]=this.words[N];for(N=0;N=0);var g;j?g=(j-j%26)/26:g=0;var N=q%26,x=Math.min((q-N)/26,this.length),_=67108863^67108863>>>N<x)for(this.length-=x,y=0;y=0&&(w!==0||y>=g);y--){var f=this.words[y]|0;this.words[y]=w<<26-N|f>>>N,w=f&_}return B&&w!==0&&(B.words[B.length++]=w),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},V.prototype.ishrn=function(q,j,k){return Z(this.negative===0),this.iushrn(q,j,k)},V.prototype.shln=function(q){return this.clone().ishln(q)},V.prototype.ushln=function(q){return this.clone().iushln(q)},V.prototype.shrn=function(q){return this.clone().ishrn(q)},V.prototype.ushrn=function(q){return this.clone().iushrn(q)},V.prototype.testn=function(q){Z(typeof q=="number"&&q>=0);var j=q%26,k=(q-j)/26,g=1<=0);var j=q%26,k=(q-j)/26;if(Z(this.negative===0,"imaskn works only with positive numbers"),this.length<=k)return this;if(j!==0&&k++,this.length=Math.min(k,this.length),j!==0){var g=67108863^67108863>>>j<=67108864;j++)this.words[j]-=67108864,j===this.length-1?this.words[j+1]=1:this.words[j+1]++;return this.length=Math.max(this.length,j+1),this},V.prototype.isubn=function(q){if(Z(typeof q=="number"),Z(q<67108864),q<0)return this.iaddn(-q);if(this.negative!==0)return this.negative=0,this.iaddn(q),this.negative=1,this;if(this.words[0]-=q,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var j=0;j>26)-(B/67108864|0),this.words[N+k]=x&67108863}for(;N>26,this.words[N+k]=x&67108863;if(_===0)return this.strip();for(Z(_===-1),_=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},V.prototype._wordDiv=function(q,j){var k=this.length-q.length,g=this.clone(),N=q,x=N.words[N.length-1]|0,_=this._countBits(x);k=26-_,k!==0&&(N=N.ushln(k),g.iushln(k),x=N.words[N.length-1]|0);var B=g.length-N.length,y;if(j!=="mod"){y=new V(null),y.length=B+1,y.words=new Array(y.length);for(var w=0;w=0;p--){var c=(g.words[N.length+p]|0)*67108864+(g.words[N.length+p-1]|0);for(c=Math.min(c/x|0,67108863),g._ishlnsubmul(N,c,p);g.negative!==0;)c--,g.negative=0,g._ishlnsubmul(N,1,p),g.isZero()||(g.negative^=1);y&&(y.words[p]=c)}return y&&y.strip(),g.strip(),j!=="div"&&k!==0&&g.iushrn(k),{div:y||null,mod:g}},V.prototype.divmod=function(q,j,k){if(Z(!q.isZero()),this.isZero())return{div:new V(0),mod:new V(0)};var g,N,x;return this.negative!==0&&q.negative===0?(x=this.neg().divmod(q,j),j!=="mod"&&(g=x.div.neg()),j!=="div"&&(N=x.mod.neg(),k&&N.negative!==0&&N.iadd(q)),{div:g,mod:N}):this.negative===0&&q.negative!==0?(x=this.divmod(q.neg(),j),j!=="mod"&&(g=x.div.neg()),{div:g,mod:x.mod}):(this.negative&q.negative)!==0?(x=this.neg().divmod(q.neg(),j),j!=="div"&&(N=x.mod.neg(),k&&N.negative!==0&&N.isub(q)),{div:x.div,mod:N}):q.length>this.length||this.cmp(q)<0?{div:new V(0),mod:this}:q.length===1?j==="div"?{div:this.divn(q.words[0]),mod:null}:j==="mod"?{div:null,mod:new V(this.modn(q.words[0]))}:{div:this.divn(q.words[0]),mod:new V(this.modn(q.words[0]))}:this._wordDiv(q,j)},V.prototype.div=function(q){return this.divmod(q,"div",!1).div},V.prototype.mod=function(q){return this.divmod(q,"mod",!1).mod},V.prototype.umod=function(q){return this.divmod(q,"mod",!0).mod},V.prototype.divRound=function(q){var j=this.divmod(q);if(j.mod.isZero())return j.div;var k=j.div.negative!==0?j.mod.isub(q):j.mod,g=q.ushrn(1),N=q.andln(1),x=k.cmp(g);return x<0||N===1&&x===0?j.div:j.div.negative!==0?j.div.isubn(1):j.div.iaddn(1)},V.prototype.modn=function(q){Z(q<=67108863);for(var j=(1<<26)%q,k=0,g=this.length-1;g>=0;g--)k=(j*k+(this.words[g]|0))%q;return k},V.prototype.idivn=function(q){Z(q<=67108863);for(var j=0,k=this.length-1;k>=0;k--){var g=(this.words[k]|0)+j*67108864;this.words[k]=g/q|0,j=g%q}return this.strip()},V.prototype.divn=function(q){return this.clone().idivn(q)},V.prototype.egcd=function(q){Z(q.negative===0),Z(!q.isZero());var j=this,k=q.clone();j.negative!==0?j=j.umod(q):j=j.clone();for(var g=new V(1),N=new V(0),x=new V(0),_=new V(1),B=0;j.isEven()&&k.isEven();)j.iushrn(1),k.iushrn(1),++B;for(var y=k.clone(),w=j.clone();!j.isZero();){for(var f=0,p=1;(j.words[0]&p)===0&&f<26;++f,p<<=1);if(f>0)for(j.iushrn(f);f-- >0;)(g.isOdd()||N.isOdd())&&(g.iadd(y),N.isub(w)),g.iushrn(1),N.iushrn(1);for(var c=0,h=1;(k.words[0]&h)===0&&c<26;++c,h<<=1);if(c>0)for(k.iushrn(c);c-- >0;)(x.isOdd()||_.isOdd())&&(x.iadd(y),_.isub(w)),x.iushrn(1),_.iushrn(1);j.cmp(k)>=0?(j.isub(k),g.isub(x),N.isub(_)):(k.isub(j),x.isub(g),_.isub(N))}return{a:x,b:_,gcd:k.iushln(B)}},V.prototype._invmp=function(q){Z(q.negative===0),Z(!q.isZero());var j=this,k=q.clone();j.negative!==0?j=j.umod(q):j=j.clone();for(var g=new V(1),N=new V(0),x=k.clone();j.cmpn(1)>0&&k.cmpn(1)>0;){for(var _=0,B=1;(j.words[0]&B)===0&&_<26;++_,B<<=1);if(_>0)for(j.iushrn(_);_-- >0;)g.isOdd()&&g.iadd(x),g.iushrn(1);for(var y=0,w=1;(k.words[0]&w)===0&&y<26;++y,w<<=1);if(y>0)for(k.iushrn(y);y-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);j.cmp(k)>=0?(j.isub(k),g.isub(N)):(k.isub(j),N.isub(g))}var f;return j.cmpn(1)===0?f=g:f=N,f.cmpn(0)<0&&f.iadd(q),f},V.prototype.gcd=function(q){if(this.isZero())return q.abs();if(q.isZero())return this.abs();var j=this.clone(),k=q.clone();j.negative=0,k.negative=0;for(var g=0;j.isEven()&&k.isEven();g++)j.iushrn(1),k.iushrn(1);do{for(;j.isEven();)j.iushrn(1);for(;k.isEven();)k.iushrn(1);var N=j.cmp(k);if(N<0){var x=j;j=k,k=x}else if(N===0||k.cmpn(1)===0)break;j.isub(k)}while(!0);return k.iushln(g)},V.prototype.invm=function(q){return this.egcd(q).a.umod(q)},V.prototype.isEven=function(){return(this.words[0]&1)===0},V.prototype.isOdd=function(){return(this.words[0]&1)===1},V.prototype.andln=function(q){return this.words[0]&q},V.prototype.bincn=function(q){Z(typeof q=="number");var j=q%26,k=(q-j)/26,g=1<>>26,_&=67108863,this.words[x]=_}return N!==0&&(this.words[x]=N,this.length++),this},V.prototype.isZero=function(){return this.length===1&&this.words[0]===0},V.prototype.cmpn=function(q){var j=q<0;if(this.negative!==0&&!j)return-1;if(this.negative===0&&j)return 1;this.strip();var k;if(this.length>1)k=1;else{j&&(q=-q),Z(q<=67108863,"Number is too big");var g=this.words[0]|0;k=g===q?0:gq.length)return 1;if(this.length=0;k--){var g=this.words[k]|0,N=q.words[k]|0;if(g!==N){gN&&(j=1);break}}return j},V.prototype.gtn=function(q){return this.cmpn(q)===1},V.prototype.gt=function(q){return this.cmp(q)===1},V.prototype.gten=function(q){return this.cmpn(q)>=0},V.prototype.gte=function(q){return this.cmp(q)>=0},V.prototype.ltn=function(q){return this.cmpn(q)===-1},V.prototype.lt=function(q){return this.cmp(q)===-1},V.prototype.lten=function(q){return this.cmpn(q)<=0},V.prototype.lte=function(q){return this.cmp(q)<=0},V.prototype.eqn=function(q){return this.cmpn(q)===0},V.prototype.eq=function(q){return this.cmp(q)===0},V.red=function(q){return new S(q)},V.prototype.toRed=function(q){return Z(!this.red,"Already a number in reduction context"),Z(this.negative===0,"red works only with positives"),q.convertTo(this)._forceRed(q)},V.prototype.fromRed=function(){return Z(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},V.prototype._forceRed=function(q){return this.red=q,this},V.prototype.forceRed=function(q){return Z(!this.red,"Already a number in reduction context"),this._forceRed(q)},V.prototype.redAdd=function(q){return Z(this.red,"redAdd works only with red numbers"),this.red.add(this,q)},V.prototype.redIAdd=function(q){return Z(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,q)},V.prototype.redSub=function(q){return Z(this.red,"redSub works only with red numbers"),this.red.sub(this,q)},V.prototype.redISub=function(q){return Z(this.red,"redISub works only with red numbers"),this.red.isub(this,q)},V.prototype.redShl=function(q){return Z(this.red,"redShl works only with red numbers"),this.red.shl(this,q)},V.prototype.redMul=function(q){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,q),this.red.mul(this,q)},V.prototype.redIMul=function(q){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,q),this.red.imul(this,q)},V.prototype.redSqr=function(){return Z(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},V.prototype.redISqr=function(){return Z(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},V.prototype.redSqrt=function(){return Z(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},V.prototype.redInvm=function(){return Z(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},V.prototype.redNeg=function(){return Z(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},V.prototype.redPow=function(q){return Z(this.red&&!q.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,q)};var C={k256:null,p224:null,p192:null,p25519:null};function L(q,j){this.name=q,this.p=new V(j,16),this.n=this.p.bitLength(),this.k=new V(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}L.prototype._tmp=function(){var q=new V(null);return q.words=new Array(Math.ceil(this.n/13)),q},L.prototype.ireduce=function(q){var j=q,k;do this.split(j,this.tmp),j=this.imulK(j),j=j.iadd(this.tmp),k=j.bitLength();while(k>this.n);var g=k0?j.isub(this.p):j.strip!==void 0?j.strip():j._strip(),j},L.prototype.split=function(q,j){q.iushrn(this.n,0,j)},L.prototype.imulK=function(q){return q.imul(this.k)};function R(){L.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}G(R,L),R.prototype.split=function(q,j){for(var k=4194303,g=Math.min(q.length,9),N=0;N>>22,x=_}x>>>=22,q.words[N-10]=x,x===0&&q.length>10?q.length-=10:q.length-=9},R.prototype.imulK=function(q){q.words[q.length]=0,q.words[q.length+1]=0,q.length+=2;for(var j=0,k=0;k>>=26,q.words[k]=N,j=g}return j!==0&&(q.words[q.length++]=j),q},V._prime=function(q){if(C[q])return C[q];var j;if(q==="k256")j=new R;else if(q==="p224")j=new P;else if(q==="p192")j=new z;else if(q==="p25519")j=new M;else throw new Error("Unknown prime "+q);return C[q]=j,j};function S(q){if(typeof q=="string"){var j=V._prime(q);this.m=j.p,this.prime=j}else Z(q.gtn(1),"modulus must be greater than 1"),this.m=q,this.prime=null}S.prototype._verify1=function(q){Z(q.negative===0,"red works only with positives"),Z(q.red,"red works only with red numbers")},S.prototype._verify2=function(q,j){Z((q.negative|j.negative)===0,"red works only with positives"),Z(q.red&&q.red===j.red,"red works only with red numbers")},S.prototype.imod=function(q){return this.prime?this.prime.ireduce(q)._forceRed(this):q.umod(this.m)._forceRed(this)},S.prototype.neg=function(q){return q.isZero()?q.clone():this.m.sub(q)._forceRed(this)},S.prototype.add=function(q,j){this._verify2(q,j);var k=q.add(j);return k.cmp(this.m)>=0&&k.isub(this.m),k._forceRed(this)},S.prototype.iadd=function(q,j){this._verify2(q,j);var k=q.iadd(j);return k.cmp(this.m)>=0&&k.isub(this.m),k},S.prototype.sub=function(q,j){this._verify2(q,j);var k=q.sub(j);return k.cmpn(0)<0&&k.iadd(this.m),k._forceRed(this)},S.prototype.isub=function(q,j){this._verify2(q,j);var k=q.isub(j);return k.cmpn(0)<0&&k.iadd(this.m),k},S.prototype.shl=function(q,j){return this._verify1(q),this.imod(q.ushln(j))},S.prototype.imul=function(q,j){return this._verify2(q,j),this.imod(q.imul(j))},S.prototype.mul=function(q,j){return this._verify2(q,j),this.imod(q.mul(j))},S.prototype.isqr=function(q){return this.imul(q,q.clone())},S.prototype.sqr=function(q){return this.mul(q,q)},S.prototype.sqrt=function(q){if(q.isZero())return q.clone();var j=this.m.andln(3);if(Z(j%2===1),j===3){var k=this.m.add(new V(1)).iushrn(2);return this.pow(q,k)}for(var g=this.m.subn(1),N=0;!g.isZero()&&g.andln(1)===0;)N++,g.iushrn(1);Z(!g.isZero());var x=new V(1).toRed(this),_=x.redNeg(),B=this.m.subn(1).iushrn(1),y=this.m.bitLength();for(y=new V(2*y*y).toRed(this);this.pow(y,B).cmp(_)!==0;)y.redIAdd(_);for(var w=this.pow(y,g),f=this.pow(q,g.addn(1).iushrn(1)),p=this.pow(q,g),c=N;p.cmp(x)!==0;){for(var h=p,d=0;h.cmp(x)!==0;d++)h=h.redSqr();Z(d=0;N--){for(var w=j.words[N],f=y-1;f>=0;f--){var p=w>>f&1;if(x!==g[0]&&(x=this.sqr(x)),p===0&&_===0){B=0;continue}_<<=1,_|=p,B++,!(B!==k&&(N!==0||f!==0))&&(x=this.mul(x,g[_]),B=0,_=0)}y=26}return x},S.prototype.convertTo=function(q){var j=q.umod(this.m);return j===q?j.clone():j},S.prototype.convertFrom=function(q){var j=q.clone();return j.red=null,j},V.mont=function(q){return new v(q)};function v(q){S.call(this,q),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new V(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}G(v,S),v.prototype.convertTo=function(q){return this.imod(q.ushln(this.shift))},v.prototype.convertFrom=function(q){var j=this.imod(q.mul(this.rinv));return j.red=null,j},v.prototype.imul=function(q,j){if(q.isZero()||j.isZero())return q.words[0]=0,q.length=1,q;var k=q.imul(j),g=k.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=k.isub(g).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},v.prototype.mul=function(q,j){if(q.isZero()||j.isZero())return new V(0)._forceRed(this);var k=q.mul(j),g=k.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=k.isub(g).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},v.prototype.invm=function(q){var j=this.imod(q._invmp(this.m).mul(this.r2));return j._forceRed(this)}})(typeof $>"u"||$,bZ)}}),cQ=P$({"node_modules/minimalistic-crypto-utils/lib/utils.js"(bZ){var $=bZ;function Q(G,V){if(Array.isArray(G))return G.slice();if(!G)return[];var U=[];if(typeof G!="string"){for(var X=0;X>8,J=K&255;I?U.push(I,J):U.push(J)}return U}$.toArray=Q;function Y(G){return G.length===1?"0"+G:G}$.zero2=Y;function Z(G){for(var V="",U=0;U(A>>1)-1?E=(A>>1)-T:E=T,W.isubn(E)):E=0,F[H]=E,W.iushrn(1)}return F}$.getNAF=G;function V(I,J){var O=[[],[]];I=I.clone(),J=J.clone();for(var F=0,A=0,W;I.cmpn(-F)>0||J.cmpn(-A)>0;){var H=I.andln(3)+F&3,E=J.andln(3)+A&3;H===3&&(H=-1),E===3&&(E=-1);var T;(H&1)===0?T=0:(W=I.andln(7)+F&7,(W===3||W===5)&&E===2?T=-H:T=H),O[0].push(T);var D;(E&1)===0?D=0:(W=J.andln(7)+A&7,(W===3||W===5)&&H===2?D=-E:D=E),O[1].push(D),2*F===T+1&&(F=1-F),2*A===D+1&&(A=1-A),I.iushrn(1),J.iushrn(1)}return O}$.getJSF=V;function U(I,J,O){var F="_"+J;I.prototype[J]=function(){return this[F]!==void 0?this[F]:this[F]=O.call(this)}}$.cachedProperty=U;function X(I){return typeof I=="string"?$.toArray(I,"hex"):I}$.parseBytes=X;function K(I){return new Q(I,"hex","le")}$.intFromLE=K}}),dQ=P$({"node_modules/elliptic/lib/elliptic/curve/base.js"(bZ,$){var Q=pQ(),Y=hQ(),Z=Y.getNAF,G=Y.getJSF,V=Y.assert;function U(K,I){this.type=K,this.p=new Q(I.p,16),this.red=I.prime?Q.red(I.prime):Q.mont(this.p),this.zero=new Q(0).toRed(this.red),this.one=new Q(1).toRed(this.red),this.two=new Q(2).toRed(this.red),this.n=I.n&&new Q(I.n,16),this.g=I.g&&this.pointFromJSON(I.g,I.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var J=this.n&&this.p.div(this.n);!J||J.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}$.exports=U,U.prototype.point=function(){throw new Error("Not implemented")},U.prototype.validate=function(){throw new Error("Not implemented")},U.prototype._fixedNafMul=function(K,I){V(K.precomputed);var J=K._getDoubles(),O=Z(I,1,this._bitLength),F=(1<=W;E--)H=(H<<1)+O[E];A.push(H)}for(var T=this.jpoint(null,null,null),D=this.jpoint(null,null,null),C=F;C>0;C--){for(W=0;W=0;H--){for(var E=0;H>=0&&A[H]===0;H--)E++;if(H>=0&&E++,W=W.dblp(E),H<0)break;var T=A[H];V(T!==0),K.type==="affine"?T>0?W=W.mixedAdd(F[T-1>>1]):W=W.mixedAdd(F[-T-1>>1].neg()):T>0?W=W.add(F[T-1>>1]):W=W.add(F[-T-1>>1].neg())}return K.type==="affine"?W.toP():W},U.prototype._wnafMulAdd=function(K,I,J,O,F){var A=this._wnafT1,W=this._wnafT2,H=this._wnafT3,E=0,T,D,C;for(T=0;T=1;T-=2){var R=T-1,P=T;if(A[R]!==1||A[P]!==1){H[R]=Z(J[R],A[R],this._bitLength),H[P]=Z(J[P],A[P],this._bitLength),E=Math.max(H[R].length,E),E=Math.max(H[P].length,E);continue}var z=[I[R],null,null,I[P]];I[R].y.cmp(I[P].y)===0?(z[1]=I[R].add(I[P]),z[2]=I[R].toJ().mixedAdd(I[P].neg())):I[R].y.cmp(I[P].y.redNeg())===0?(z[1]=I[R].toJ().mixedAdd(I[P]),z[2]=I[R].add(I[P].neg())):(z[1]=I[R].toJ().mixedAdd(I[P]),z[2]=I[R].toJ().mixedAdd(I[P].neg()));var M=[-3,-1,-5,-7,0,7,5,1,3],S=G(J[R],J[P]);for(E=Math.max(S[0].length,E),H[R]=new Array(E),H[P]=new Array(E),D=0;D=0;T--){for(var g=0;T>=0;){var N=!0;for(D=0;D=0&&g++,j=j.dblp(g),T<0)break;for(D=0;D0?C=W[D][x-1>>1]:x<0&&(C=W[D][-x-1>>1].neg()),C.type==="affine"?j=j.mixedAdd(C):j=j.add(C))}}for(T=0;T=Math.ceil((K.bitLength()+1)/I.step):!1},X.prototype._getDoubles=function(K,I){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var J=[this],O=this,F=0;F=0&&(R=T,P=D),C.negative&&(C=C.neg(),L=L.neg()),R.negative&&(R=R.neg(),P=P.neg()),[{a:C,b:L},{a:R,b:P}]},U.prototype._endoSplit=function(I){var J=this.endo.basis,O=J[0],F=J[1],A=F.b.mul(I).divRound(this.n),W=O.b.neg().mul(I).divRound(this.n),H=A.mul(O.a),E=W.mul(F.a),T=A.mul(O.b),D=W.mul(F.b),C=I.sub(H).sub(E),L=T.add(D).neg();return{k1:C,k2:L}},U.prototype.pointFromX=function(I,J){I=new Y(I,16),I.red||(I=I.toRed(this.red));var O=I.redSqr().redMul(I).redIAdd(I.redMul(this.a)).redIAdd(this.b),F=O.redSqrt();if(F.redSqr().redSub(O).cmp(this.zero)!==0)throw new Error("invalid point");var A=F.fromRed().isOdd();return(J&&!A||!J&&A)&&(F=F.redNeg()),this.point(I,F)},U.prototype.validate=function(I){if(I.inf)return!0;var{x:J,y:O}=I,F=this.a.redMul(J),A=J.redSqr().redMul(J).redIAdd(F).redIAdd(this.b);return O.redSqr().redISub(A).cmpn(0)===0},U.prototype._endoWnafMulAdd=function(I,J,O){for(var F=this._endoWnafT1,A=this._endoWnafT2,W=0;W":""},X.prototype.isInfinity=function(){return this.inf},X.prototype.add=function(I){if(this.inf)return I;if(I.inf)return this;if(this.eq(I))return this.dbl();if(this.neg().eq(I))return this.curve.point(null,null);if(this.x.cmp(I.x)===0)return this.curve.point(null,null);var J=this.y.redSub(I.y);J.cmpn(0)!==0&&(J=J.redMul(this.x.redSub(I.x).redInvm()));var O=J.redSqr().redISub(this.x).redISub(I.x),F=J.redMul(this.x.redSub(O)).redISub(this.y);return this.curve.point(O,F)},X.prototype.dbl=function(){if(this.inf)return this;var I=this.y.redAdd(this.y);if(I.cmpn(0)===0)return this.curve.point(null,null);var J=this.curve.a,O=this.x.redSqr(),F=I.redInvm(),A=O.redAdd(O).redIAdd(O).redIAdd(J).redMul(F),W=A.redSqr().redISub(this.x.redAdd(this.x)),H=A.redMul(this.x.redSub(W)).redISub(this.y);return this.curve.point(W,H)},X.prototype.getX=function(){return this.x.fromRed()},X.prototype.getY=function(){return this.y.fromRed()},X.prototype.mul=function(I){return I=new Y(I,16),this.isInfinity()?this:this._hasDoubles(I)?this.curve._fixedNafMul(this,I):this.curve.endo?this.curve._endoWnafMulAdd([this],[I]):this.curve._wnafMul(this,I)},X.prototype.mulAdd=function(I,J,O){var F=[this,J],A=[I,O];return this.curve.endo?this.curve._endoWnafMulAdd(F,A):this.curve._wnafMulAdd(1,F,A,2)},X.prototype.jmulAdd=function(I,J,O){var F=[this,J],A=[I,O];return this.curve.endo?this.curve._endoWnafMulAdd(F,A,!0):this.curve._wnafMulAdd(1,F,A,2,!0)},X.prototype.eq=function(I){return this===I||this.inf===I.inf&&(this.inf||this.x.cmp(I.x)===0&&this.y.cmp(I.y)===0)},X.prototype.neg=function(I){if(this.inf)return this;var J=this.curve.point(this.x,this.y.redNeg());if(I&&this.precomputed){var O=this.precomputed,F=function(A){return A.neg()};J.precomputed={naf:O.naf&&{wnd:O.naf.wnd,points:O.naf.points.map(F)},doubles:O.doubles&&{step:O.doubles.step,points:O.doubles.points.map(F)}}}return J},X.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var I=this.curve.jpoint(this.x,this.y,this.curve.one);return I};function K(I,J,O,F){G.BasePoint.call(this,I,"jacobian"),J===null&&O===null&&F===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new Y(0)):(this.x=new Y(J,16),this.y=new Y(O,16),this.z=new Y(F,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}Z(K,G.BasePoint),U.prototype.jpoint=function(I,J,O){return new K(this,I,J,O)},K.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var I=this.z.redInvm(),J=I.redSqr(),O=this.x.redMul(J),F=this.y.redMul(J).redMul(I);return this.curve.point(O,F)},K.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},K.prototype.add=function(I){if(this.isInfinity())return I;if(I.isInfinity())return this;var J=I.z.redSqr(),O=this.z.redSqr(),F=this.x.redMul(J),A=I.x.redMul(O),W=this.y.redMul(J.redMul(I.z)),H=I.y.redMul(O.redMul(this.z)),E=F.redSub(A),T=W.redSub(H);if(E.cmpn(0)===0)return T.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var D=E.redSqr(),C=D.redMul(E),L=F.redMul(D),R=T.redSqr().redIAdd(C).redISub(L).redISub(L),P=T.redMul(L.redISub(R)).redISub(W.redMul(C)),z=this.z.redMul(I.z).redMul(E);return this.curve.jpoint(R,P,z)},K.prototype.mixedAdd=function(I){if(this.isInfinity())return I.toJ();if(I.isInfinity())return this;var J=this.z.redSqr(),O=this.x,F=I.x.redMul(J),A=this.y,W=I.y.redMul(J).redMul(this.z),H=O.redSub(F),E=A.redSub(W);if(H.cmpn(0)===0)return E.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var T=H.redSqr(),D=T.redMul(H),C=O.redMul(T),L=E.redSqr().redIAdd(D).redISub(C).redISub(C),R=E.redMul(C.redISub(L)).redISub(A.redMul(D)),P=this.z.redMul(H);return this.curve.jpoint(L,R,P)},K.prototype.dblp=function(I){if(I===0)return this;if(this.isInfinity())return this;if(!I)return this.dbl();var J;if(this.curve.zeroA||this.curve.threeA){var O=this;for(J=0;J=0)return!1;if(O.redIAdd(A),this.x.cmp(O)===0)return!0}},K.prototype.inspect=function(){return this.isInfinity()?"":""},K.prototype.isInfinity=function(){return this.z.cmpn(0)===0}}}),lQ=P$({"node_modules/elliptic/lib/elliptic/curve/mont.js"(bZ,$){var Q=pQ(),Y=v$(),Z=dQ(),G=hQ();function V(X){Z.call(this,"mont",X),this.a=new Q(X.a,16).toRed(this.red),this.b=new Q(X.b,16).toRed(this.red),this.i4=new Q(4).toRed(this.red).redInvm(),this.two=new Q(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}Y(V,Z),$.exports=V,V.prototype.validate=function(X){var K=X.normalize().x,I=K.redSqr(),J=I.redMul(K).redAdd(I.redMul(this.a)).redAdd(K),O=J.redSqrt();return O.redSqr().cmp(J)===0};function U(X,K,I){Z.BasePoint.call(this,X,"projective"),K===null&&I===null?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new Q(K,16),this.z=new Q(I,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}Y(U,Z.BasePoint),V.prototype.decodePoint=function(X,K){return this.point(G.toArray(X,K),1)},V.prototype.point=function(X,K){return new U(this,X,K)},V.prototype.pointFromJSON=function(X){return U.fromJSON(this,X)},U.prototype.precompute=function(){},U.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},U.fromJSON=function(X,K){return new U(X,K[0],K[1]||X.one)},U.prototype.inspect=function(){return this.isInfinity()?"":""},U.prototype.isInfinity=function(){return this.z.cmpn(0)===0},U.prototype.dbl=function(){var X=this.x.redAdd(this.z),K=X.redSqr(),I=this.x.redSub(this.z),J=I.redSqr(),O=K.redSub(J),F=K.redMul(J),A=O.redMul(J.redAdd(this.curve.a24.redMul(O)));return this.curve.point(F,A)},U.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},U.prototype.diffAdd=function(X,K){var I=this.x.redAdd(this.z),J=this.x.redSub(this.z),O=X.x.redAdd(X.z),F=X.x.redSub(X.z),A=F.redMul(I),W=O.redMul(J),H=K.z.redMul(A.redAdd(W).redSqr()),E=K.x.redMul(A.redISub(W).redSqr());return this.curve.point(H,E)},U.prototype.mul=function(X){for(var K=X.clone(),I=this,J=this.curve.point(null,null),O=this,F=[];K.cmpn(0)!==0;K.iushrn(1))F.push(K.andln(1));for(var A=F.length-1;A>=0;A--)F[A]===0?(I=I.diffAdd(J,O),J=J.dbl()):(J=I.diffAdd(J,O),I=I.dbl());return J},U.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},U.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},U.prototype.eq=function(X){return this.getX().cmp(X.getX())===0},U.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},U.prototype.getX=function(){return this.normalize(),this.x.fromRed()}}}),oQ=P$({"node_modules/elliptic/lib/elliptic/curve/edwards.js"(bZ,$){var Q=hQ(),Y=pQ(),Z=v$(),G=dQ(),V=Q.assert;function U(K){this.twisted=(K.a|0)!==1,this.mOneA=this.twisted&&(K.a|0)===-1,this.extended=this.mOneA,G.call(this,"edwards",K),this.a=new Y(K.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new Y(K.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new Y(K.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),V(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(K.c|0)===1}Z(U,G),$.exports=U,U.prototype._mulA=function(K){return this.mOneA?K.redNeg():this.a.redMul(K)},U.prototype._mulC=function(K){return this.oneC?K:this.c.redMul(K)},U.prototype.jpoint=function(K,I,J,O){return this.point(K,I,J,O)},U.prototype.pointFromX=function(K,I){K=new Y(K,16),K.red||(K=K.toRed(this.red));var J=K.redSqr(),O=this.c2.redSub(this.a.redMul(J)),F=this.one.redSub(this.c2.redMul(this.d).redMul(J)),A=O.redMul(F.redInvm()),W=A.redSqrt();if(W.redSqr().redSub(A).cmp(this.zero)!==0)throw new Error("invalid point");var H=W.fromRed().isOdd();return(I&&!H||!I&&H)&&(W=W.redNeg()),this.point(K,W)},U.prototype.pointFromY=function(K,I){K=new Y(K,16),K.red||(K=K.toRed(this.red));var J=K.redSqr(),O=J.redSub(this.c2),F=J.redMul(this.d).redMul(this.c2).redSub(this.a),A=O.redMul(F.redInvm());if(A.cmp(this.zero)===0){if(I)throw new Error("invalid point");return this.point(this.zero,K)}var W=A.redSqrt();if(W.redSqr().redSub(A).cmp(this.zero)!==0)throw new Error("invalid point");return W.fromRed().isOdd()!==I&&(W=W.redNeg()),this.point(W,K)},U.prototype.validate=function(K){if(K.isInfinity())return!0;K.normalize();var I=K.x.redSqr(),J=K.y.redSqr(),O=I.redMul(this.a).redAdd(J),F=this.c2.redMul(this.one.redAdd(this.d.redMul(I).redMul(J)));return O.cmp(F)===0};function X(K,I,J,O,F){G.BasePoint.call(this,K,"projective"),I===null&&J===null&&O===null?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new Y(I,16),this.y=new Y(J,16),this.z=O?new Y(O,16):this.curve.one,this.t=F&&new Y(F,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}Z(X,G.BasePoint),U.prototype.pointFromJSON=function(K){return X.fromJSON(this,K)},U.prototype.point=function(K,I,J,O){return new X(this,K,I,J,O)},X.fromJSON=function(K,I){return new X(K,I[0],I[1],I[2])},X.prototype.inspect=function(){return this.isInfinity()?"":""},X.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)},X.prototype._extDbl=function(){var K=this.x.redSqr(),I=this.y.redSqr(),J=this.z.redSqr();J=J.redIAdd(J);var O=this.curve._mulA(K),F=this.x.redAdd(this.y).redSqr().redISub(K).redISub(I),A=O.redAdd(I),W=A.redSub(J),H=O.redSub(I),E=F.redMul(W),T=A.redMul(H),D=F.redMul(H),C=W.redMul(A);return this.curve.point(E,T,C,D)},X.prototype._projDbl=function(){var K=this.x.redAdd(this.y).redSqr(),I=this.x.redSqr(),J=this.y.redSqr(),O,F,A,W,H,E;if(this.curve.twisted){W=this.curve._mulA(I);var T=W.redAdd(J);this.zOne?(O=K.redSub(I).redSub(J).redMul(T.redSub(this.curve.two)),F=T.redMul(W.redSub(J)),A=T.redSqr().redSub(T).redSub(T)):(H=this.z.redSqr(),E=T.redSub(H).redISub(H),O=K.redSub(I).redISub(J).redMul(E),F=T.redMul(W.redSub(J)),A=T.redMul(E))}else W=I.redAdd(J),H=this.curve._mulC(this.z).redSqr(),E=W.redSub(H).redSub(H),O=this.curve._mulC(K.redISub(W)).redMul(E),F=this.curve._mulC(W).redMul(I.redISub(J)),A=W.redMul(E);return this.curve.point(O,F,A)},X.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},X.prototype._extAdd=function(K){var I=this.y.redSub(this.x).redMul(K.y.redSub(K.x)),J=this.y.redAdd(this.x).redMul(K.y.redAdd(K.x)),O=this.t.redMul(this.curve.dd).redMul(K.t),F=this.z.redMul(K.z.redAdd(K.z)),A=J.redSub(I),W=F.redSub(O),H=F.redAdd(O),E=J.redAdd(I),T=A.redMul(W),D=H.redMul(E),C=A.redMul(E),L=W.redMul(H);return this.curve.point(T,D,L,C)},X.prototype._projAdd=function(K){var I=this.z.redMul(K.z),J=I.redSqr(),O=this.x.redMul(K.x),F=this.y.redMul(K.y),A=this.curve.d.redMul(O).redMul(F),W=J.redSub(A),H=J.redAdd(A),E=this.x.redAdd(this.y).redMul(K.x.redAdd(K.y)).redISub(O).redISub(F),T=I.redMul(W).redMul(E),D,C;return this.curve.twisted?(D=I.redMul(H).redMul(F.redSub(this.curve._mulA(O))),C=W.redMul(H)):(D=I.redMul(H).redMul(F.redSub(O)),C=this.curve._mulC(W).redMul(H)),this.curve.point(T,D,C)},X.prototype.add=function(K){return this.isInfinity()?K:K.isInfinity()?this:this.curve.extended?this._extAdd(K):this._projAdd(K)},X.prototype.mul=function(K){return this._hasDoubles(K)?this.curve._fixedNafMul(this,K):this.curve._wnafMul(this,K)},X.prototype.mulAdd=function(K,I,J){return this.curve._wnafMulAdd(1,[this,I],[K,J],2,!1)},X.prototype.jmulAdd=function(K,I,J){return this.curve._wnafMulAdd(1,[this,I],[K,J],2,!0)},X.prototype.normalize=function(){if(this.zOne)return this;var K=this.z.redInvm();return this.x=this.x.redMul(K),this.y=this.y.redMul(K),this.t&&(this.t=this.t.redMul(K)),this.z=this.curve.one,this.zOne=!0,this},X.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},X.prototype.getX=function(){return this.normalize(),this.x.fromRed()},X.prototype.getY=function(){return this.normalize(),this.y.fromRed()},X.prototype.eq=function(K){return this===K||this.getX().cmp(K.getX())===0&&this.getY().cmp(K.getY())===0},X.prototype.eqXToP=function(K){var I=K.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(I)===0)return!0;for(var J=K.clone(),O=this.curve.redN.redMul(this.z);;){if(J.iadd(this.curve.n),J.cmp(this.curve.p)>=0)return!1;if(I.redIAdd(O),this.x.cmp(I)===0)return!0}},X.prototype.toP=X.prototype.normalize,X.prototype.mixedAdd=X.prototype.add}}),uQ=P$({"node_modules/elliptic/lib/elliptic/curve/index.js"(bZ){var $=bZ;$.base=dQ(),$.short=bQ(),$.mont=lQ(),$.edwards=oQ()}}),nQ=P$({"node_modules/hash.js/lib/hash/utils.js"(bZ){var $=i$(),Q=v$();bZ.inherits=Q;function Y(j,k){return(j.charCodeAt(k)&64512)!==55296||k<0||k+1>=j.length?!1:(j.charCodeAt(k+1)&64512)===56320}function Z(j,k){if(Array.isArray(j))return j.slice();if(!j)return[];var g=[];if(typeof j=="string")if(k){if(k==="hex")for(j=j.replace(/[^a-z0-9]+/gi,""),j.length%2!==0&&(j="0"+j),x=0;x>6|192,g[N++]=_&63|128):Y(j,x)?(_=65536+((_&1023)<<10)+(j.charCodeAt(++x)&1023),g[N++]=_>>18|240,g[N++]=_>>12&63|128,g[N++]=_>>6&63|128,g[N++]=_&63|128):(g[N++]=_>>12|224,g[N++]=_>>6&63|128,g[N++]=_&63|128)}else for(x=0;x>>24|j>>>8&65280|j<<8&16711680|(j&255)<<24;return k>>>0}bZ.htonl=V;function U(j,k){for(var g="",N=0;N>>0}return _}bZ.join32=I;function J(j,k){for(var g=new Array(j.length*4),N=0,x=0;N>>24,g[x+1]=_>>>16&255,g[x+2]=_>>>8&255,g[x+3]=_&255):(g[x+3]=_>>>24,g[x+2]=_>>>16&255,g[x+1]=_>>>8&255,g[x]=_&255)}return g}bZ.split32=J;function O(j,k){return j>>>k|j<<32-k}bZ.rotr32=O;function F(j,k){return j<>>32-k}bZ.rotl32=F;function A(j,k){return j+k>>>0}bZ.sum32=A;function W(j,k,g){return j+k+g>>>0}bZ.sum32_3=W;function H(j,k,g,N){return j+k+g+N>>>0}bZ.sum32_4=H;function E(j,k,g,N,x){return j+k+g+N+x>>>0}bZ.sum32_5=E;function T(j,k,g,N){var x=j[k],_=j[k+1],B=N+_>>>0,y=(B>>0,j[k+1]=B}bZ.sum64=T;function D(j,k,g,N){var x=k+N>>>0,_=(x>>0}bZ.sum64_hi=D;function C(j,k,g,N){var x=k+N;return x>>>0}bZ.sum64_lo=C;function L(j,k,g,N,x,_,B,y){var w=0,f=k;f=f+N>>>0,w+=f>>0,w+=f<_?1:0,f=f+y>>>0,w+=f>>0}bZ.sum64_4_hi=L;function R(j,k,g,N,x,_,B,y){var w=k+N+_+y;return w>>>0}bZ.sum64_4_lo=R;function P(j,k,g,N,x,_,B,y,w,f){var p=0,c=k;c=c+N>>>0,p+=c>>0,p+=c<_?1:0,c=c+y>>>0,p+=c>>0,p+=c>>0}bZ.sum64_5_hi=P;function z(j,k,g,N,x,_,B,y,w,f){var p=k+N+_+y+f;return p>>>0}bZ.sum64_5_lo=z;function M(j,k,g){var N=k<<32-g|j>>>g;return N>>>0}bZ.rotr64_hi=M;function S(j,k,g){var N=j<<32-g|k>>>g;return N>>>0}bZ.rotr64_lo=S;function v(j,k,g){return j>>>g}bZ.shr64_hi=v;function q(j,k,g){var N=j<<32-g|k>>>g;return N>>>0}bZ.shr64_lo=q}}),sQ=P$({"node_modules/hash.js/lib/hash/common.js"(bZ){var $=nQ(),Q=i$();function Y(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}bZ.BlockHash=Y,Y.prototype.update=function(Z,G){if(Z=$.toArray(Z,G),this.pending?this.pending=this.pending.concat(Z):this.pending=Z,this.pendingTotal+=Z.length,this.pending.length>=this._delta8){Z=this.pending;var V=Z.length%this._delta8;this.pending=Z.slice(Z.length-V,Z.length),this.pending.length===0&&(this.pending=null),Z=$.join32(Z,0,Z.length-V,this.endian);for(var U=0;U>>24&255,U[X++]=Z>>>16&255,U[X++]=Z>>>8&255,U[X++]=Z&255}else for(U[X++]=Z&255,U[X++]=Z>>>8&255,U[X++]=Z>>>16&255,U[X++]=Z>>>24&255,U[X++]=0,U[X++]=0,U[X++]=0,U[X++]=0,K=8;K>>3}bZ.g0_256=K;function I(J){return Q(J,17)^Q(J,19)^J>>>10}bZ.g1_256=I}}),mQ=P$({"node_modules/hash.js/lib/hash/sha/1.js"(bZ,$){var Q=nQ(),Y=sQ(),Z=tQ(),G=Q.rotl32,V=Q.sum32,U=Q.sum32_5,X=Z.ft_1,K=Y.BlockHash,I=[1518500249,1859775393,2400959708,3395469782];function J(){if(!(this instanceof J))return new J;K.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}Q.inherits(J,K),$.exports=J,J.blockSize=512,J.outSize=160,J.hmacStrength=80,J.padLength=64,J.prototype._update=function(O,F){for(var A=this.W,W=0;W<16;W++)A[W]=O[F+W];for(;Wthis.blockSize&&(G=new this.Hash().update(G).digest()),Y(G.length<=this.blockSize);for(var V=G.length;V=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(U,X,K)}$.exports=G,G.prototype._init=function(V,U,X){var K=V.concat(U).concat(X);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var I=0;I=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(V.concat(X||[])),this._reseed=1},G.prototype.generate=function(V,U,X,K){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");typeof U!="string"&&(K=X,X=U,U=null),X&&(X=Y.toArray(X,K||"hex"),this._update(X));for(var I=[];I.length"}}}),KY=P$({"node_modules/elliptic/lib/elliptic/ec/signature.js"(bZ,$){var Q=pQ(),Y=hQ(),Z=Y.assert;function G(I,J){if(I instanceof G)return I;this._importDER(I,J)||(Z(I.r&&I.s,"Signature without r or s"),this.r=new Q(I.r,16),this.s=new Q(I.s,16),I.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=I.recoveryParam)}$.exports=G;function V(){this.place=0}function U(I,J){var O=I[J.place++];if(!(O&128))return O;var F=O&15;if(F===0||F>4)return!1;for(var A=0,W=0,H=J.place;W>>=0;return A<=127?!1:(J.place=H,A)}function X(I){for(var J=0,O=I.length-1;!I[J]&&!(I[J+1]&128)&&J>>3);for(I.push(O|128);--O;)I.push(J>>>(O<<3)&255);I.push(J)}G.prototype.toDER=function(I){var J=this.r.toArray(),O=this.s.toArray();for(J[0]&128&&(J=[0].concat(J)),O[0]&128&&(O=[0].concat(O)),J=X(J),O=X(O);!O[0]&&!(O[1]&128);)O=O.slice(1);var F=[2];K(F,J.length),F=F.concat(J),F.push(2),K(F,O.length);var A=F.concat(O),W=[48];return K(W,A.length),W=W.concat(A),Y.encode(W,I)}}}),IY=P$({"node_modules/elliptic/lib/elliptic/ec/index.js"(bZ,$){var Q=pQ(),Y=UY(),Z=hQ(),G=VY(),V=kQ(),U=Z.assert,X=XY(),K=KY();function I(J){if(!(this instanceof I))return new I(J);typeof J=="string"&&(U(Object.prototype.hasOwnProperty.call(G,J),"Unknown curve "+J),J=G[J]),J instanceof G.PresetCurve&&(J={curve:J}),this.curve=J.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=J.curve.g,this.g.precompute(J.curve.n.bitLength()+1),this.hash=J.hash||J.curve.hash}$.exports=I,I.prototype.keyPair=function(J){return new X(this,J)},I.prototype.keyFromPrivate=function(J,O){return X.fromPrivate(this,J,O)},I.prototype.keyFromPublic=function(J,O){return X.fromPublic(this,J,O)},I.prototype.genKeyPair=function(J){J||(J={});for(var O=new Y({hash:this.hash,pers:J.pers,persEnc:J.persEnc||"utf8",entropy:J.entropy||V(this.hash.hmacStrength),entropyEnc:J.entropy&&J.entropyEnc||"utf8",nonce:this.n.toArray()}),F=this.n.byteLength(),A=this.n.sub(new Q(2));;){var W=new Q(O.generate(F));if(!(W.cmp(A)>0))return W.iaddn(1),this.keyFromPrivate(W)}},I.prototype._truncateToN=function(J,O){var F=J.byteLength()*8-this.n.bitLength();return F>0&&(J=J.ushrn(F)),!O&&J.cmp(this.n)>=0?J.sub(this.n):J},I.prototype.sign=function(J,O,F,A){typeof F=="object"&&(A=F,F=null),A||(A={}),O=this.keyFromPrivate(O,F),J=this._truncateToN(new Q(J,16));for(var W=this.n.byteLength(),H=O.getPrivate().toArray("be",W),E=J.toArray("be",W),T=new Y({hash:this.hash,entropy:H,nonce:E,pers:A.pers,persEnc:A.persEnc||"utf8"}),D=this.n.sub(new Q(1)),C=0;;C++){var L=A.k?A.k(C):new Q(T.generate(this.n.byteLength()));if(L=this._truncateToN(L,!0),!(L.cmpn(1)<=0||L.cmp(D)>=0)){var R=this.g.mul(L);if(!R.isInfinity()){var P=R.getX(),z=P.umod(this.n);if(z.cmpn(0)!==0){var M=L.invm(this.n).mul(z.mul(O.getPrivate()).iadd(J));if(M=M.umod(this.n),M.cmpn(0)!==0){var S=(R.getY().isOdd()?1:0)|(P.cmp(z)!==0?2:0);return A.canonical&&M.cmp(this.nh)>0&&(M=this.n.sub(M),S^=1),new K({r:z,s:M,recoveryParam:S})}}}}}},I.prototype.verify=function(J,O,F,A){J=this._truncateToN(new Q(J,16)),F=this.keyFromPublic(F,A),O=new K(O,"hex");var{r:W,s:H}=O;if(W.cmpn(1)<0||W.cmp(this.n)>=0||H.cmpn(1)<0||H.cmp(this.n)>=0)return!1;var E=H.invm(this.n),T=E.mul(J).umod(this.n),D=E.mul(W).umod(this.n),C;return this.curve._maxwellTrick?(C=this.g.jmulAdd(T,F.getPublic(),D),C.isInfinity()?!1:C.eqXToP(W)):(C=this.g.mulAdd(T,F.getPublic(),D),C.isInfinity()?!1:C.getX().umod(this.n).cmp(W)===0)},I.prototype.recoverPubKey=function(J,O,F,A){U((3&F)===F,"The recovery param is more than two bits"),O=new K(O,A);var W=this.n,H=new Q(J),E=O.r,T=O.s,D=F&1,C=F>>1;if(E.cmp(this.curve.p.umod(this.curve.n))>=0&&C)throw new Error("Unable to find sencond key candinate");C?E=this.curve.pointFromX(E.add(this.curve.n),D):E=this.curve.pointFromX(E,D);var L=O.r.invm(W),R=W.sub(H).mul(L).umod(W),P=T.mul(L).umod(W);return this.g.mulAdd(R,E,P)},I.prototype.getKeyRecoveryParam=function(J,O,F,A){if(O=new K(O,A),O.recoveryParam!==null)return O.recoveryParam;for(var W=0;W<4;W++){var H;try{H=this.recoverPubKey(J,O,W)}catch{continue}if(H.eq(F))return W}throw new Error("Unable to find valid recovery factor")}}}),JY=P$({"node_modules/elliptic/lib/elliptic/eddsa/key.js"(bZ,$){var Q=hQ(),Y=Q.assert,Z=Q.parseBytes,G=Q.cachedProperty;function V(U,X){this.eddsa=U,this._secret=Z(X.secret),U.isPoint(X.pub)?this._pub=X.pub:this._pubBytes=Z(X.pub)}V.fromPublic=function(U,X){return X instanceof V?X:new V(U,{pub:X})},V.fromSecret=function(U,X){return X instanceof V?X:new V(U,{secret:X})},V.prototype.secret=function(){return this._secret},G(V,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())}),G(V,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())}),G(V,"privBytes",function(){var U=this.eddsa,X=this.hash(),K=U.encodingLength-1,I=X.slice(0,U.encodingLength);return I[0]&=248,I[K]&=127,I[K]|=64,I}),G(V,"priv",function(){return this.eddsa.decodeInt(this.privBytes())}),G(V,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()}),G(V,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)}),V.prototype.sign=function(U){return Y(this._secret,"KeyPair can only verify"),this.eddsa.sign(U,this)},V.prototype.verify=function(U,X){return this.eddsa.verify(U,X,this)},V.prototype.getSecret=function(U){return Y(this._secret,"KeyPair is public only"),Q.encode(this.secret(),U)},V.prototype.getPublic=function(U){return Q.encode(this.pubBytes(),U)},$.exports=V}}),OY=P$({"node_modules/elliptic/lib/elliptic/eddsa/signature.js"(bZ,$){var Q=pQ(),Y=hQ(),Z=Y.assert,G=Y.cachedProperty,V=Y.parseBytes;function U(X,K){this.eddsa=X,typeof K!="object"&&(K=V(K)),Array.isArray(K)&&(K={R:K.slice(0,X.encodingLength),S:K.slice(X.encodingLength)}),Z(K.R&&K.S,"Signature without R or S"),X.isPoint(K.R)&&(this._R=K.R),K.S instanceof Q&&(this._S=K.S),this._Rencoded=Array.isArray(K.R)?K.R:K.Rencoded,this._Sencoded=Array.isArray(K.S)?K.S:K.Sencoded}G(U,"S",function(){return this.eddsa.decodeInt(this.Sencoded())}),G(U,"R",function(){return this.eddsa.decodePoint(this.Rencoded())}),G(U,"Rencoded",function(){return this.eddsa.encodePoint(this.R())}),G(U,"Sencoded",function(){return this.eddsa.encodeInt(this.S())}),U.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},U.prototype.toHex=function(){return Y.encode(this.toBytes(),"hex").toUpperCase()},$.exports=U}}),FY=P$({"node_modules/elliptic/lib/elliptic/eddsa/index.js"(bZ,$){var Q=ZY(),Y=VY(),Z=hQ(),G=Z.assert,V=Z.parseBytes,U=JY(),X=OY();function K(I){if(G(I==="ed25519","only tested with ed25519 so far"),!(this instanceof K))return new K(I);I=Y[I].curve,this.curve=I,this.g=I.g,this.g.precompute(I.n.bitLength()+1),this.pointClass=I.point().constructor,this.encodingLength=Math.ceil(I.n.bitLength()/8),this.hash=Q.sha512}$.exports=K,K.prototype.sign=function(I,J){I=V(I);var O=this.keyFromSecret(J),F=this.hashInt(O.messagePrefix(),I),A=this.g.mul(F),W=this.encodePoint(A),H=this.hashInt(W,O.pubBytes(),I).mul(O.priv()),E=F.add(H).umod(this.curve.n);return this.makeSignature({R:A,S:E,Rencoded:W})},K.prototype.verify=function(I,J,O){I=V(I),J=this.makeSignature(J);var F=this.keyFromPublic(O),A=this.hashInt(J.Rencoded(),F.pubBytes(),I),W=this.g.mul(J.S()),H=J.R().add(F.pub().mul(A));return H.eq(W)},K.prototype.hashInt=function(){for(var I=this.hash(),J=0;J0?q:j},V.min=function(q,j){return q.cmp(j)<0?q:j},V.prototype._init=function(q,j,k){if(typeof q=="number")return this._initNumber(q,j,k);if(typeof q=="object")return this._initArray(q,j,k);j==="hex"&&(j=16),Z(j===(j|0)&&j>=2&&j<=36),q=q.toString().replace(/\s+/g,"");var g=0;q[0]==="-"&&(g++,this.negative=1),g=0;g-=3)x=q[g]|q[g-1]<<8|q[g-2]<<16,this.words[N]|=x<<_&67108863,this.words[N+1]=x>>>26-_&67108863,_+=24,_>=26&&(_-=26,N++);else if(k==="le")for(g=0,N=0;g>>26-_&67108863,_+=24,_>=26&&(_-=26,N++);return this.strip()};function X(q,j){var k=q.charCodeAt(j);return k>=65&&k<=70?k-55:k>=97&&k<=102?k-87:k-48&15}function K(q,j,k){var g=X(q,k);return k-1>=j&&(g|=X(q,k-1)<<4),g}V.prototype._parseHex=function(q,j,k){this.length=Math.ceil((q.length-j)/6),this.words=new Array(this.length);for(var g=0;g=j;g-=2)_=K(q,j,g)<=18?(N-=18,x+=1,this.words[x]|=_>>>26):N+=8;else{var B=q.length-j;for(g=B%2===0?j+1:j;g=18?(N-=18,x+=1,this.words[x]|=_>>>26):N+=8}this.strip()};function I(q,j,k,g){for(var N=0,x=Math.min(q.length,k),_=j;_=49?N+=B-49+10:B>=17?N+=B-17+10:N+=B}return N}V.prototype._parseBase=function(q,j,k){this.words=[0],this.length=1;for(var g=0,N=1;N<=67108863;N*=j)g++;g--,N=N/j|0;for(var x=q.length-k,_=x%g,B=Math.min(x,x-_)+k,y=0,w=k;w1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},V.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},V.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],O=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],F=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];V.prototype.toString=function(q,j){q=q||10,j=j|0||1;var k;if(q===16||q==="hex"){k="";for(var g=0,N=0,x=0;x>>24-g&16777215,N!==0||x!==this.length-1?k=J[6-B.length]+B+k:k=B+k,g+=2,g>=26&&(g-=26,x--)}for(N!==0&&(k=N.toString(16)+k);k.length%j!==0;)k="0"+k;return this.negative!==0&&(k="-"+k),k}if(q===(q|0)&&q>=2&&q<=36){var y=O[q],w=F[q];k="";var f=this.clone();for(f.negative=0;!f.isZero();){var p=f.modn(w).toString(q);f=f.idivn(w),f.isZero()?k=p+k:k=J[y-p.length]+p+k}for(this.isZero()&&(k="0"+k);k.length%j!==0;)k="0"+k;return this.negative!==0&&(k="-"+k),k}Z(!1,"Base should be between 2 and 36")},V.prototype.toNumber=function(){var q=this.words[0];return this.length===2?q+=this.words[1]*67108864:this.length===3&&this.words[2]===1?q+=4503599627370496+this.words[1]*67108864:this.length>2&&Z(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-q:q},V.prototype.toJSON=function(){return this.toString(16)},V.prototype.toBuffer=function(q,j){return Z(typeof U<"u"),this.toArrayLike(U,q,j)},V.prototype.toArray=function(q,j){return this.toArrayLike(Array,q,j)},V.prototype.toArrayLike=function(q,j,k){var g=this.byteLength(),N=k||Math.max(1,g);Z(g<=N,"byte array longer than desired length"),Z(N>0,"Requested array length <= 0"),this.strip();var x=j==="le",_=new q(N),B,y,w=this.clone();if(x){for(y=0;!w.isZero();y++)B=w.andln(255),w.iushrn(8),_[y]=B;for(;y=4096&&(k+=13,j>>>=13),j>=64&&(k+=7,j>>>=7),j>=8&&(k+=4,j>>>=4),j>=2&&(k+=2,j>>>=2),k+j},V.prototype._zeroBits=function(q){if(q===0)return 26;var j=q,k=0;return(j&8191)===0&&(k+=13,j>>>=13),(j&127)===0&&(k+=7,j>>>=7),(j&15)===0&&(k+=4,j>>>=4),(j&3)===0&&(k+=2,j>>>=2),(j&1)===0&&k++,k},V.prototype.bitLength=function(){var q=this.words[this.length-1],j=this._countBits(q);return(this.length-1)*26+j};function A(q){for(var j=new Array(q.bitLength()),k=0;k>>N}return j}V.prototype.zeroBits=function(){if(this.isZero())return 0;for(var q=0,j=0;jq.length?this.clone().ior(q):q.clone().ior(this)},V.prototype.uor=function(q){return this.length>q.length?this.clone().iuor(q):q.clone().iuor(this)},V.prototype.iuand=function(q){var j;this.length>q.length?j=q:j=this;for(var k=0;kq.length?this.clone().iand(q):q.clone().iand(this)},V.prototype.uand=function(q){return this.length>q.length?this.clone().iuand(q):q.clone().iuand(this)},V.prototype.iuxor=function(q){var j,k;this.length>q.length?(j=this,k=q):(j=q,k=this);for(var g=0;gq.length?this.clone().ixor(q):q.clone().ixor(this)},V.prototype.uxor=function(q){return this.length>q.length?this.clone().iuxor(q):q.clone().iuxor(this)},V.prototype.inotn=function(q){Z(typeof q=="number"&&q>=0);var j=Math.ceil(q/26)|0,k=q%26;this._expand(j),k>0&&j--;for(var g=0;g0&&(this.words[g]=~this.words[g]&67108863>>26-k),this.strip()},V.prototype.notn=function(q){return this.clone().inotn(q)},V.prototype.setn=function(q,j){Z(typeof q=="number"&&q>=0);var k=q/26|0,g=q%26;return this._expand(k+1),j?this.words[k]=this.words[k]|1<q.length?(k=this,g=q):(k=q,g=this);for(var N=0,x=0;x>>26;for(;N!==0&&x>>26;if(this.length=k.length,N!==0)this.words[this.length]=N,this.length++;else if(k!==this)for(;xq.length?this.clone().iadd(q):q.clone().iadd(this)},V.prototype.isub=function(q){if(q.negative!==0){q.negative=0;var j=this.iadd(q);return q.negative=1,j._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(q),this.negative=1,this._normSign();var k=this.cmp(q);if(k===0)return this.negative=0,this.length=1,this.words[0]=0,this;var g,N;k>0?(g=this,N=q):(g=q,N=this);for(var x=0,_=0;_>26,this.words[_]=j&67108863;for(;x!==0&&_>26,this.words[_]=j&67108863;if(x===0&&_>>26,p=y&67108863,c=Math.min(w,j.length-1),h=Math.max(0,w-q.length+1);h<=c;h++){var d=w-h|0;N=q.words[d]|0,x=j.words[h]|0,_=N*x+p,f+=_/67108864|0,p=_&67108863}k.words[w]=p|0,y=f|0}return y!==0?k.words[w]=y|0:k.length--,k.strip()}var H=function(q,j,k){var g=q.words,N=j.words,x=k.words,_=0,B,y,w,f=g[0]|0,p=f&8191,c=f>>>13,h=g[1]|0,d=h&8191,b=h>>>13,l=g[2]|0,o=l&8191,u=l>>>13,n=g[3]|0,s=n&8191,t=n>>>13,m=g[4]|0,a=m&8191,r=m>>>13,e=g[5]|0,i=e&8191,$0=e>>>13,Q0=g[6]|0,Y0=Q0&8191,Z0=Q0>>>13,G0=g[7]|0,V0=G0&8191,U0=G0>>>13,X0=g[8]|0,K0=X0&8191,I0=X0>>>13,J0=g[9]|0,O0=J0&8191,F0=J0>>>13,A0=N[0]|0,W0=A0&8191,H0=A0>>>13,E0=N[1]|0,T0=E0&8191,D0=E0>>>13,C0=N[2]|0,L0=C0&8191,R0=C0>>>13,P0=N[3]|0,z0=P0&8191,M0=P0>>>13,S0=N[4]|0,v0=S0&8191,q0=S0>>>13,j0=N[5]|0,k0=j0&8191,g0=j0>>>13,N0=N[6]|0,x0=N0&8191,_0=N0>>>13,B0=N[7]|0,y0=B0&8191,w0=B0>>>13,f0=N[8]|0,p0=f0&8191,c0=f0>>>13,h0=N[9]|0,d0=h0&8191,b0=h0>>>13;k.negative=q.negative^j.negative,k.length=19,B=Math.imul(p,W0),y=Math.imul(p,H0),y=y+Math.imul(c,W0)|0,w=Math.imul(c,H0);var l0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(l0>>>26)|0,l0&=67108863,B=Math.imul(d,W0),y=Math.imul(d,H0),y=y+Math.imul(b,W0)|0,w=Math.imul(b,H0),B=B+Math.imul(p,T0)|0,y=y+Math.imul(p,D0)|0,y=y+Math.imul(c,T0)|0,w=w+Math.imul(c,D0)|0;var o0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(o0>>>26)|0,o0&=67108863,B=Math.imul(o,W0),y=Math.imul(o,H0),y=y+Math.imul(u,W0)|0,w=Math.imul(u,H0),B=B+Math.imul(d,T0)|0,y=y+Math.imul(d,D0)|0,y=y+Math.imul(b,T0)|0,w=w+Math.imul(b,D0)|0,B=B+Math.imul(p,L0)|0,y=y+Math.imul(p,R0)|0,y=y+Math.imul(c,L0)|0,w=w+Math.imul(c,R0)|0;var u0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(u0>>>26)|0,u0&=67108863,B=Math.imul(s,W0),y=Math.imul(s,H0),y=y+Math.imul(t,W0)|0,w=Math.imul(t,H0),B=B+Math.imul(o,T0)|0,y=y+Math.imul(o,D0)|0,y=y+Math.imul(u,T0)|0,w=w+Math.imul(u,D0)|0,B=B+Math.imul(d,L0)|0,y=y+Math.imul(d,R0)|0,y=y+Math.imul(b,L0)|0,w=w+Math.imul(b,R0)|0,B=B+Math.imul(p,z0)|0,y=y+Math.imul(p,M0)|0,y=y+Math.imul(c,z0)|0,w=w+Math.imul(c,M0)|0;var n0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(n0>>>26)|0,n0&=67108863,B=Math.imul(a,W0),y=Math.imul(a,H0),y=y+Math.imul(r,W0)|0,w=Math.imul(r,H0),B=B+Math.imul(s,T0)|0,y=y+Math.imul(s,D0)|0,y=y+Math.imul(t,T0)|0,w=w+Math.imul(t,D0)|0,B=B+Math.imul(o,L0)|0,y=y+Math.imul(o,R0)|0,y=y+Math.imul(u,L0)|0,w=w+Math.imul(u,R0)|0,B=B+Math.imul(d,z0)|0,y=y+Math.imul(d,M0)|0,y=y+Math.imul(b,z0)|0,w=w+Math.imul(b,M0)|0,B=B+Math.imul(p,v0)|0,y=y+Math.imul(p,q0)|0,y=y+Math.imul(c,v0)|0,w=w+Math.imul(c,q0)|0;var s0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(s0>>>26)|0,s0&=67108863,B=Math.imul(i,W0),y=Math.imul(i,H0),y=y+Math.imul($0,W0)|0,w=Math.imul($0,H0),B=B+Math.imul(a,T0)|0,y=y+Math.imul(a,D0)|0,y=y+Math.imul(r,T0)|0,w=w+Math.imul(r,D0)|0,B=B+Math.imul(s,L0)|0,y=y+Math.imul(s,R0)|0,y=y+Math.imul(t,L0)|0,w=w+Math.imul(t,R0)|0,B=B+Math.imul(o,z0)|0,y=y+Math.imul(o,M0)|0,y=y+Math.imul(u,z0)|0,w=w+Math.imul(u,M0)|0,B=B+Math.imul(d,v0)|0,y=y+Math.imul(d,q0)|0,y=y+Math.imul(b,v0)|0,w=w+Math.imul(b,q0)|0,B=B+Math.imul(p,k0)|0,y=y+Math.imul(p,g0)|0,y=y+Math.imul(c,k0)|0,w=w+Math.imul(c,g0)|0;var t0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(t0>>>26)|0,t0&=67108863,B=Math.imul(Y0,W0),y=Math.imul(Y0,H0),y=y+Math.imul(Z0,W0)|0,w=Math.imul(Z0,H0),B=B+Math.imul(i,T0)|0,y=y+Math.imul(i,D0)|0,y=y+Math.imul($0,T0)|0,w=w+Math.imul($0,D0)|0,B=B+Math.imul(a,L0)|0,y=y+Math.imul(a,R0)|0,y=y+Math.imul(r,L0)|0,w=w+Math.imul(r,R0)|0,B=B+Math.imul(s,z0)|0,y=y+Math.imul(s,M0)|0,y=y+Math.imul(t,z0)|0,w=w+Math.imul(t,M0)|0,B=B+Math.imul(o,v0)|0,y=y+Math.imul(o,q0)|0,y=y+Math.imul(u,v0)|0,w=w+Math.imul(u,q0)|0,B=B+Math.imul(d,k0)|0,y=y+Math.imul(d,g0)|0,y=y+Math.imul(b,k0)|0,w=w+Math.imul(b,g0)|0,B=B+Math.imul(p,x0)|0,y=y+Math.imul(p,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,_0)|0;var m0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(m0>>>26)|0,m0&=67108863,B=Math.imul(V0,W0),y=Math.imul(V0,H0),y=y+Math.imul(U0,W0)|0,w=Math.imul(U0,H0),B=B+Math.imul(Y0,T0)|0,y=y+Math.imul(Y0,D0)|0,y=y+Math.imul(Z0,T0)|0,w=w+Math.imul(Z0,D0)|0,B=B+Math.imul(i,L0)|0,y=y+Math.imul(i,R0)|0,y=y+Math.imul($0,L0)|0,w=w+Math.imul($0,R0)|0,B=B+Math.imul(a,z0)|0,y=y+Math.imul(a,M0)|0,y=y+Math.imul(r,z0)|0,w=w+Math.imul(r,M0)|0,B=B+Math.imul(s,v0)|0,y=y+Math.imul(s,q0)|0,y=y+Math.imul(t,v0)|0,w=w+Math.imul(t,q0)|0,B=B+Math.imul(o,k0)|0,y=y+Math.imul(o,g0)|0,y=y+Math.imul(u,k0)|0,w=w+Math.imul(u,g0)|0,B=B+Math.imul(d,x0)|0,y=y+Math.imul(d,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,_0)|0,B=B+Math.imul(p,y0)|0,y=y+Math.imul(p,w0)|0,y=y+Math.imul(c,y0)|0,w=w+Math.imul(c,w0)|0;var a0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(a0>>>26)|0,a0&=67108863,B=Math.imul(K0,W0),y=Math.imul(K0,H0),y=y+Math.imul(I0,W0)|0,w=Math.imul(I0,H0),B=B+Math.imul(V0,T0)|0,y=y+Math.imul(V0,D0)|0,y=y+Math.imul(U0,T0)|0,w=w+Math.imul(U0,D0)|0,B=B+Math.imul(Y0,L0)|0,y=y+Math.imul(Y0,R0)|0,y=y+Math.imul(Z0,L0)|0,w=w+Math.imul(Z0,R0)|0,B=B+Math.imul(i,z0)|0,y=y+Math.imul(i,M0)|0,y=y+Math.imul($0,z0)|0,w=w+Math.imul($0,M0)|0,B=B+Math.imul(a,v0)|0,y=y+Math.imul(a,q0)|0,y=y+Math.imul(r,v0)|0,w=w+Math.imul(r,q0)|0,B=B+Math.imul(s,k0)|0,y=y+Math.imul(s,g0)|0,y=y+Math.imul(t,k0)|0,w=w+Math.imul(t,g0)|0,B=B+Math.imul(o,x0)|0,y=y+Math.imul(o,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,_0)|0,B=B+Math.imul(d,y0)|0,y=y+Math.imul(d,w0)|0,y=y+Math.imul(b,y0)|0,w=w+Math.imul(b,w0)|0,B=B+Math.imul(p,p0)|0,y=y+Math.imul(p,c0)|0,y=y+Math.imul(c,p0)|0,w=w+Math.imul(c,c0)|0;var r0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(r0>>>26)|0,r0&=67108863,B=Math.imul(O0,W0),y=Math.imul(O0,H0),y=y+Math.imul(F0,W0)|0,w=Math.imul(F0,H0),B=B+Math.imul(K0,T0)|0,y=y+Math.imul(K0,D0)|0,y=y+Math.imul(I0,T0)|0,w=w+Math.imul(I0,D0)|0,B=B+Math.imul(V0,L0)|0,y=y+Math.imul(V0,R0)|0,y=y+Math.imul(U0,L0)|0,w=w+Math.imul(U0,R0)|0,B=B+Math.imul(Y0,z0)|0,y=y+Math.imul(Y0,M0)|0,y=y+Math.imul(Z0,z0)|0,w=w+Math.imul(Z0,M0)|0,B=B+Math.imul(i,v0)|0,y=y+Math.imul(i,q0)|0,y=y+Math.imul($0,v0)|0,w=w+Math.imul($0,q0)|0,B=B+Math.imul(a,k0)|0,y=y+Math.imul(a,g0)|0,y=y+Math.imul(r,k0)|0,w=w+Math.imul(r,g0)|0,B=B+Math.imul(s,x0)|0,y=y+Math.imul(s,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,_0)|0,B=B+Math.imul(o,y0)|0,y=y+Math.imul(o,w0)|0,y=y+Math.imul(u,y0)|0,w=w+Math.imul(u,w0)|0,B=B+Math.imul(d,p0)|0,y=y+Math.imul(d,c0)|0,y=y+Math.imul(b,p0)|0,w=w+Math.imul(b,c0)|0,B=B+Math.imul(p,d0)|0,y=y+Math.imul(p,b0)|0,y=y+Math.imul(c,d0)|0,w=w+Math.imul(c,b0)|0;var e0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(e0>>>26)|0,e0&=67108863,B=Math.imul(O0,T0),y=Math.imul(O0,D0),y=y+Math.imul(F0,T0)|0,w=Math.imul(F0,D0),B=B+Math.imul(K0,L0)|0,y=y+Math.imul(K0,R0)|0,y=y+Math.imul(I0,L0)|0,w=w+Math.imul(I0,R0)|0,B=B+Math.imul(V0,z0)|0,y=y+Math.imul(V0,M0)|0,y=y+Math.imul(U0,z0)|0,w=w+Math.imul(U0,M0)|0,B=B+Math.imul(Y0,v0)|0,y=y+Math.imul(Y0,q0)|0,y=y+Math.imul(Z0,v0)|0,w=w+Math.imul(Z0,q0)|0,B=B+Math.imul(i,k0)|0,y=y+Math.imul(i,g0)|0,y=y+Math.imul($0,k0)|0,w=w+Math.imul($0,g0)|0,B=B+Math.imul(a,x0)|0,y=y+Math.imul(a,_0)|0,y=y+Math.imul(r,x0)|0,w=w+Math.imul(r,_0)|0,B=B+Math.imul(s,y0)|0,y=y+Math.imul(s,w0)|0,y=y+Math.imul(t,y0)|0,w=w+Math.imul(t,w0)|0,B=B+Math.imul(o,p0)|0,y=y+Math.imul(o,c0)|0,y=y+Math.imul(u,p0)|0,w=w+Math.imul(u,c0)|0,B=B+Math.imul(d,d0)|0,y=y+Math.imul(d,b0)|0,y=y+Math.imul(b,d0)|0,w=w+Math.imul(b,b0)|0;var i0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(i0>>>26)|0,i0&=67108863,B=Math.imul(O0,L0),y=Math.imul(O0,R0),y=y+Math.imul(F0,L0)|0,w=Math.imul(F0,R0),B=B+Math.imul(K0,z0)|0,y=y+Math.imul(K0,M0)|0,y=y+Math.imul(I0,z0)|0,w=w+Math.imul(I0,M0)|0,B=B+Math.imul(V0,v0)|0,y=y+Math.imul(V0,q0)|0,y=y+Math.imul(U0,v0)|0,w=w+Math.imul(U0,q0)|0,B=B+Math.imul(Y0,k0)|0,y=y+Math.imul(Y0,g0)|0,y=y+Math.imul(Z0,k0)|0,w=w+Math.imul(Z0,g0)|0,B=B+Math.imul(i,x0)|0,y=y+Math.imul(i,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,_0)|0,B=B+Math.imul(a,y0)|0,y=y+Math.imul(a,w0)|0,y=y+Math.imul(r,y0)|0,w=w+Math.imul(r,w0)|0,B=B+Math.imul(s,p0)|0,y=y+Math.imul(s,c0)|0,y=y+Math.imul(t,p0)|0,w=w+Math.imul(t,c0)|0,B=B+Math.imul(o,d0)|0,y=y+Math.imul(o,b0)|0,y=y+Math.imul(u,d0)|0,w=w+Math.imul(u,b0)|0;var $$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+($$>>>26)|0,$$&=67108863,B=Math.imul(O0,z0),y=Math.imul(O0,M0),y=y+Math.imul(F0,z0)|0,w=Math.imul(F0,M0),B=B+Math.imul(K0,v0)|0,y=y+Math.imul(K0,q0)|0,y=y+Math.imul(I0,v0)|0,w=w+Math.imul(I0,q0)|0,B=B+Math.imul(V0,k0)|0,y=y+Math.imul(V0,g0)|0,y=y+Math.imul(U0,k0)|0,w=w+Math.imul(U0,g0)|0,B=B+Math.imul(Y0,x0)|0,y=y+Math.imul(Y0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,_0)|0,B=B+Math.imul(i,y0)|0,y=y+Math.imul(i,w0)|0,y=y+Math.imul($0,y0)|0,w=w+Math.imul($0,w0)|0,B=B+Math.imul(a,p0)|0,y=y+Math.imul(a,c0)|0,y=y+Math.imul(r,p0)|0,w=w+Math.imul(r,c0)|0,B=B+Math.imul(s,d0)|0,y=y+Math.imul(s,b0)|0,y=y+Math.imul(t,d0)|0,w=w+Math.imul(t,b0)|0;var Q$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,B=Math.imul(O0,v0),y=Math.imul(O0,q0),y=y+Math.imul(F0,v0)|0,w=Math.imul(F0,q0),B=B+Math.imul(K0,k0)|0,y=y+Math.imul(K0,g0)|0,y=y+Math.imul(I0,k0)|0,w=w+Math.imul(I0,g0)|0,B=B+Math.imul(V0,x0)|0,y=y+Math.imul(V0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,_0)|0,B=B+Math.imul(Y0,y0)|0,y=y+Math.imul(Y0,w0)|0,y=y+Math.imul(Z0,y0)|0,w=w+Math.imul(Z0,w0)|0,B=B+Math.imul(i,p0)|0,y=y+Math.imul(i,c0)|0,y=y+Math.imul($0,p0)|0,w=w+Math.imul($0,c0)|0,B=B+Math.imul(a,d0)|0,y=y+Math.imul(a,b0)|0,y=y+Math.imul(r,d0)|0,w=w+Math.imul(r,b0)|0;var Y$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,B=Math.imul(O0,k0),y=Math.imul(O0,g0),y=y+Math.imul(F0,k0)|0,w=Math.imul(F0,g0),B=B+Math.imul(K0,x0)|0,y=y+Math.imul(K0,_0)|0,y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,_0)|0,B=B+Math.imul(V0,y0)|0,y=y+Math.imul(V0,w0)|0,y=y+Math.imul(U0,y0)|0,w=w+Math.imul(U0,w0)|0,B=B+Math.imul(Y0,p0)|0,y=y+Math.imul(Y0,c0)|0,y=y+Math.imul(Z0,p0)|0,w=w+Math.imul(Z0,c0)|0,B=B+Math.imul(i,d0)|0,y=y+Math.imul(i,b0)|0,y=y+Math.imul($0,d0)|0,w=w+Math.imul($0,b0)|0;var Z$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,B=Math.imul(O0,x0),y=Math.imul(O0,_0),y=y+Math.imul(F0,x0)|0,w=Math.imul(F0,_0),B=B+Math.imul(K0,y0)|0,y=y+Math.imul(K0,w0)|0,y=y+Math.imul(I0,y0)|0,w=w+Math.imul(I0,w0)|0,B=B+Math.imul(V0,p0)|0,y=y+Math.imul(V0,c0)|0,y=y+Math.imul(U0,p0)|0,w=w+Math.imul(U0,c0)|0,B=B+Math.imul(Y0,d0)|0,y=y+Math.imul(Y0,b0)|0,y=y+Math.imul(Z0,d0)|0,w=w+Math.imul(Z0,b0)|0;var G$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(G$>>>26)|0,G$&=67108863,B=Math.imul(O0,y0),y=Math.imul(O0,w0),y=y+Math.imul(F0,y0)|0,w=Math.imul(F0,w0),B=B+Math.imul(K0,p0)|0,y=y+Math.imul(K0,c0)|0,y=y+Math.imul(I0,p0)|0,w=w+Math.imul(I0,c0)|0,B=B+Math.imul(V0,d0)|0,y=y+Math.imul(V0,b0)|0,y=y+Math.imul(U0,d0)|0,w=w+Math.imul(U0,b0)|0;var V$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(V$>>>26)|0,V$&=67108863,B=Math.imul(O0,p0),y=Math.imul(O0,c0),y=y+Math.imul(F0,p0)|0,w=Math.imul(F0,c0),B=B+Math.imul(K0,d0)|0,y=y+Math.imul(K0,b0)|0,y=y+Math.imul(I0,d0)|0,w=w+Math.imul(I0,b0)|0;var U$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(U$>>>26)|0,U$&=67108863,B=Math.imul(O0,d0),y=Math.imul(O0,b0),y=y+Math.imul(F0,d0)|0,w=Math.imul(F0,b0);var X$=(_+B|0)+((y&8191)<<13)|0;return _=(w+(y>>>13)|0)+(X$>>>26)|0,X$&=67108863,x[0]=l0,x[1]=o0,x[2]=u0,x[3]=n0,x[4]=s0,x[5]=t0,x[6]=m0,x[7]=a0,x[8]=r0,x[9]=e0,x[10]=i0,x[11]=$$,x[12]=Q$,x[13]=Y$,x[14]=Z$,x[15]=G$,x[16]=V$,x[17]=U$,x[18]=X$,_!==0&&(x[19]=_,k.length++),k};Math.imul||(H=W);function E(q,j,k){k.negative=j.negative^q.negative,k.length=q.length+j.length;for(var g=0,N=0,x=0;x>>26)|0,N+=_>>>26,_&=67108863}k.words[x]=B,g=_,_=N}return g!==0?k.words[x]=g:k.length--,k.strip()}function T(q,j,k){var g=new D;return g.mulp(q,j,k)}V.prototype.mulTo=function(q,j){var k,g=this.length+q.length;return this.length===10&&q.length===10?k=H(this,q,j):g<63?k=W(this,q,j):g<1024?k=E(this,q,j):k=T(this,q,j),k};function D(q,j){this.x=q,this.y=j}D.prototype.makeRBT=function(q){for(var j=new Array(q),k=V.prototype._countBits(q)-1,g=0;g>=1;return g},D.prototype.permute=function(q,j,k,g,N,x){for(var _=0;_>>1)N++;return 1<>>13,k[2*x+1]=N&8191,N=N>>>13;for(x=2*j;x>=26,j+=g/67108864|0,j+=N>>>26,this.words[k]=N&67108863}return j!==0&&(this.words[k]=j,this.length++),this},V.prototype.muln=function(q){return this.clone().imuln(q)},V.prototype.sqr=function(){return this.mul(this)},V.prototype.isqr=function(){return this.imul(this.clone())},V.prototype.pow=function(q){var j=A(q);if(j.length===0)return new V(1);for(var k=this,g=0;g=0);var j=q%26,k=(q-j)/26,g=67108863>>>26-j<<26-j,N;if(j!==0){var x=0;for(N=0;N>>26-j}x&&(this.words[N]=x,this.length++)}if(k!==0){for(N=this.length-1;N>=0;N--)this.words[N+k]=this.words[N];for(N=0;N=0);var g;j?g=(j-j%26)/26:g=0;var N=q%26,x=Math.min((q-N)/26,this.length),_=67108863^67108863>>>N<x)for(this.length-=x,y=0;y=0&&(w!==0||y>=g);y--){var f=this.words[y]|0;this.words[y]=w<<26-N|f>>>N,w=f&_}return B&&w!==0&&(B.words[B.length++]=w),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},V.prototype.ishrn=function(q,j,k){return Z(this.negative===0),this.iushrn(q,j,k)},V.prototype.shln=function(q){return this.clone().ishln(q)},V.prototype.ushln=function(q){return this.clone().iushln(q)},V.prototype.shrn=function(q){return this.clone().ishrn(q)},V.prototype.ushrn=function(q){return this.clone().iushrn(q)},V.prototype.testn=function(q){Z(typeof q=="number"&&q>=0);var j=q%26,k=(q-j)/26,g=1<=0);var j=q%26,k=(q-j)/26;if(Z(this.negative===0,"imaskn works only with positive numbers"),this.length<=k)return this;if(j!==0&&k++,this.length=Math.min(k,this.length),j!==0){var g=67108863^67108863>>>j<=67108864;j++)this.words[j]-=67108864,j===this.length-1?this.words[j+1]=1:this.words[j+1]++;return this.length=Math.max(this.length,j+1),this},V.prototype.isubn=function(q){if(Z(typeof q=="number"),Z(q<67108864),q<0)return this.iaddn(-q);if(this.negative!==0)return this.negative=0,this.iaddn(q),this.negative=1,this;if(this.words[0]-=q,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var j=0;j>26)-(B/67108864|0),this.words[N+k]=x&67108863}for(;N>26,this.words[N+k]=x&67108863;if(_===0)return this.strip();for(Z(_===-1),_=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},V.prototype._wordDiv=function(q,j){var k=this.length-q.length,g=this.clone(),N=q,x=N.words[N.length-1]|0,_=this._countBits(x);k=26-_,k!==0&&(N=N.ushln(k),g.iushln(k),x=N.words[N.length-1]|0);var B=g.length-N.length,y;if(j!=="mod"){y=new V(null),y.length=B+1,y.words=new Array(y.length);for(var w=0;w=0;p--){var c=(g.words[N.length+p]|0)*67108864+(g.words[N.length+p-1]|0);for(c=Math.min(c/x|0,67108863),g._ishlnsubmul(N,c,p);g.negative!==0;)c--,g.negative=0,g._ishlnsubmul(N,1,p),g.isZero()||(g.negative^=1);y&&(y.words[p]=c)}return y&&y.strip(),g.strip(),j!=="div"&&k!==0&&g.iushrn(k),{div:y||null,mod:g}},V.prototype.divmod=function(q,j,k){if(Z(!q.isZero()),this.isZero())return{div:new V(0),mod:new V(0)};var g,N,x;return this.negative!==0&&q.negative===0?(x=this.neg().divmod(q,j),j!=="mod"&&(g=x.div.neg()),j!=="div"&&(N=x.mod.neg(),k&&N.negative!==0&&N.iadd(q)),{div:g,mod:N}):this.negative===0&&q.negative!==0?(x=this.divmod(q.neg(),j),j!=="mod"&&(g=x.div.neg()),{div:g,mod:x.mod}):(this.negative&q.negative)!==0?(x=this.neg().divmod(q.neg(),j),j!=="div"&&(N=x.mod.neg(),k&&N.negative!==0&&N.isub(q)),{div:x.div,mod:N}):q.length>this.length||this.cmp(q)<0?{div:new V(0),mod:this}:q.length===1?j==="div"?{div:this.divn(q.words[0]),mod:null}:j==="mod"?{div:null,mod:new V(this.modn(q.words[0]))}:{div:this.divn(q.words[0]),mod:new V(this.modn(q.words[0]))}:this._wordDiv(q,j)},V.prototype.div=function(q){return this.divmod(q,"div",!1).div},V.prototype.mod=function(q){return this.divmod(q,"mod",!1).mod},V.prototype.umod=function(q){return this.divmod(q,"mod",!0).mod},V.prototype.divRound=function(q){var j=this.divmod(q);if(j.mod.isZero())return j.div;var k=j.div.negative!==0?j.mod.isub(q):j.mod,g=q.ushrn(1),N=q.andln(1),x=k.cmp(g);return x<0||N===1&&x===0?j.div:j.div.negative!==0?j.div.isubn(1):j.div.iaddn(1)},V.prototype.modn=function(q){Z(q<=67108863);for(var j=(1<<26)%q,k=0,g=this.length-1;g>=0;g--)k=(j*k+(this.words[g]|0))%q;return k},V.prototype.idivn=function(q){Z(q<=67108863);for(var j=0,k=this.length-1;k>=0;k--){var g=(this.words[k]|0)+j*67108864;this.words[k]=g/q|0,j=g%q}return this.strip()},V.prototype.divn=function(q){return this.clone().idivn(q)},V.prototype.egcd=function(q){Z(q.negative===0),Z(!q.isZero());var j=this,k=q.clone();j.negative!==0?j=j.umod(q):j=j.clone();for(var g=new V(1),N=new V(0),x=new V(0),_=new V(1),B=0;j.isEven()&&k.isEven();)j.iushrn(1),k.iushrn(1),++B;for(var y=k.clone(),w=j.clone();!j.isZero();){for(var f=0,p=1;(j.words[0]&p)===0&&f<26;++f,p<<=1);if(f>0)for(j.iushrn(f);f-- >0;)(g.isOdd()||N.isOdd())&&(g.iadd(y),N.isub(w)),g.iushrn(1),N.iushrn(1);for(var c=0,h=1;(k.words[0]&h)===0&&c<26;++c,h<<=1);if(c>0)for(k.iushrn(c);c-- >0;)(x.isOdd()||_.isOdd())&&(x.iadd(y),_.isub(w)),x.iushrn(1),_.iushrn(1);j.cmp(k)>=0?(j.isub(k),g.isub(x),N.isub(_)):(k.isub(j),x.isub(g),_.isub(N))}return{a:x,b:_,gcd:k.iushln(B)}},V.prototype._invmp=function(q){Z(q.negative===0),Z(!q.isZero());var j=this,k=q.clone();j.negative!==0?j=j.umod(q):j=j.clone();for(var g=new V(1),N=new V(0),x=k.clone();j.cmpn(1)>0&&k.cmpn(1)>0;){for(var _=0,B=1;(j.words[0]&B)===0&&_<26;++_,B<<=1);if(_>0)for(j.iushrn(_);_-- >0;)g.isOdd()&&g.iadd(x),g.iushrn(1);for(var y=0,w=1;(k.words[0]&w)===0&&y<26;++y,w<<=1);if(y>0)for(k.iushrn(y);y-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);j.cmp(k)>=0?(j.isub(k),g.isub(N)):(k.isub(j),N.isub(g))}var f;return j.cmpn(1)===0?f=g:f=N,f.cmpn(0)<0&&f.iadd(q),f},V.prototype.gcd=function(q){if(this.isZero())return q.abs();if(q.isZero())return this.abs();var j=this.clone(),k=q.clone();j.negative=0,k.negative=0;for(var g=0;j.isEven()&&k.isEven();g++)j.iushrn(1),k.iushrn(1);do{for(;j.isEven();)j.iushrn(1);for(;k.isEven();)k.iushrn(1);var N=j.cmp(k);if(N<0){var x=j;j=k,k=x}else if(N===0||k.cmpn(1)===0)break;j.isub(k)}while(!0);return k.iushln(g)},V.prototype.invm=function(q){return this.egcd(q).a.umod(q)},V.prototype.isEven=function(){return(this.words[0]&1)===0},V.prototype.isOdd=function(){return(this.words[0]&1)===1},V.prototype.andln=function(q){return this.words[0]&q},V.prototype.bincn=function(q){Z(typeof q=="number");var j=q%26,k=(q-j)/26,g=1<>>26,_&=67108863,this.words[x]=_}return N!==0&&(this.words[x]=N,this.length++),this},V.prototype.isZero=function(){return this.length===1&&this.words[0]===0},V.prototype.cmpn=function(q){var j=q<0;if(this.negative!==0&&!j)return-1;if(this.negative===0&&j)return 1;this.strip();var k;if(this.length>1)k=1;else{j&&(q=-q),Z(q<=67108863,"Number is too big");var g=this.words[0]|0;k=g===q?0:gq.length)return 1;if(this.length=0;k--){var g=this.words[k]|0,N=q.words[k]|0;if(g!==N){gN&&(j=1);break}}return j},V.prototype.gtn=function(q){return this.cmpn(q)===1},V.prototype.gt=function(q){return this.cmp(q)===1},V.prototype.gten=function(q){return this.cmpn(q)>=0},V.prototype.gte=function(q){return this.cmp(q)>=0},V.prototype.ltn=function(q){return this.cmpn(q)===-1},V.prototype.lt=function(q){return this.cmp(q)===-1},V.prototype.lten=function(q){return this.cmpn(q)<=0},V.prototype.lte=function(q){return this.cmp(q)<=0},V.prototype.eqn=function(q){return this.cmpn(q)===0},V.prototype.eq=function(q){return this.cmp(q)===0},V.red=function(q){return new S(q)},V.prototype.toRed=function(q){return Z(!this.red,"Already a number in reduction context"),Z(this.negative===0,"red works only with positives"),q.convertTo(this)._forceRed(q)},V.prototype.fromRed=function(){return Z(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},V.prototype._forceRed=function(q){return this.red=q,this},V.prototype.forceRed=function(q){return Z(!this.red,"Already a number in reduction context"),this._forceRed(q)},V.prototype.redAdd=function(q){return Z(this.red,"redAdd works only with red numbers"),this.red.add(this,q)},V.prototype.redIAdd=function(q){return Z(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,q)},V.prototype.redSub=function(q){return Z(this.red,"redSub works only with red numbers"),this.red.sub(this,q)},V.prototype.redISub=function(q){return Z(this.red,"redISub works only with red numbers"),this.red.isub(this,q)},V.prototype.redShl=function(q){return Z(this.red,"redShl works only with red numbers"),this.red.shl(this,q)},V.prototype.redMul=function(q){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,q),this.red.mul(this,q)},V.prototype.redIMul=function(q){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,q),this.red.imul(this,q)},V.prototype.redSqr=function(){return Z(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},V.prototype.redISqr=function(){return Z(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},V.prototype.redSqrt=function(){return Z(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},V.prototype.redInvm=function(){return Z(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},V.prototype.redNeg=function(){return Z(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},V.prototype.redPow=function(q){return Z(this.red&&!q.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,q)};var C={k256:null,p224:null,p192:null,p25519:null};function L(q,j){this.name=q,this.p=new V(j,16),this.n=this.p.bitLength(),this.k=new V(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}L.prototype._tmp=function(){var q=new V(null);return q.words=new Array(Math.ceil(this.n/13)),q},L.prototype.ireduce=function(q){var j=q,k;do this.split(j,this.tmp),j=this.imulK(j),j=j.iadd(this.tmp),k=j.bitLength();while(k>this.n);var g=k0?j.isub(this.p):j.strip!==void 0?j.strip():j._strip(),j},L.prototype.split=function(q,j){q.iushrn(this.n,0,j)},L.prototype.imulK=function(q){return q.imul(this.k)};function R(){L.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}G(R,L),R.prototype.split=function(q,j){for(var k=4194303,g=Math.min(q.length,9),N=0;N>>22,x=_}x>>>=22,q.words[N-10]=x,x===0&&q.length>10?q.length-=10:q.length-=9},R.prototype.imulK=function(q){q.words[q.length]=0,q.words[q.length+1]=0,q.length+=2;for(var j=0,k=0;k>>=26,q.words[k]=N,j=g}return j!==0&&(q.words[q.length++]=j),q},V._prime=function(q){if(C[q])return C[q];var j;if(q==="k256")j=new R;else if(q==="p224")j=new P;else if(q==="p192")j=new z;else if(q==="p25519")j=new M;else throw new Error("Unknown prime "+q);return C[q]=j,j};function S(q){if(typeof q=="string"){var j=V._prime(q);this.m=j.p,this.prime=j}else Z(q.gtn(1),"modulus must be greater than 1"),this.m=q,this.prime=null}S.prototype._verify1=function(q){Z(q.negative===0,"red works only with positives"),Z(q.red,"red works only with red numbers")},S.prototype._verify2=function(q,j){Z((q.negative|j.negative)===0,"red works only with positives"),Z(q.red&&q.red===j.red,"red works only with red numbers")},S.prototype.imod=function(q){return this.prime?this.prime.ireduce(q)._forceRed(this):q.umod(this.m)._forceRed(this)},S.prototype.neg=function(q){return q.isZero()?q.clone():this.m.sub(q)._forceRed(this)},S.prototype.add=function(q,j){this._verify2(q,j);var k=q.add(j);return k.cmp(this.m)>=0&&k.isub(this.m),k._forceRed(this)},S.prototype.iadd=function(q,j){this._verify2(q,j);var k=q.iadd(j);return k.cmp(this.m)>=0&&k.isub(this.m),k},S.prototype.sub=function(q,j){this._verify2(q,j);var k=q.sub(j);return k.cmpn(0)<0&&k.iadd(this.m),k._forceRed(this)},S.prototype.isub=function(q,j){this._verify2(q,j);var k=q.isub(j);return k.cmpn(0)<0&&k.iadd(this.m),k},S.prototype.shl=function(q,j){return this._verify1(q),this.imod(q.ushln(j))},S.prototype.imul=function(q,j){return this._verify2(q,j),this.imod(q.imul(j))},S.prototype.mul=function(q,j){return this._verify2(q,j),this.imod(q.mul(j))},S.prototype.isqr=function(q){return this.imul(q,q.clone())},S.prototype.sqr=function(q){return this.mul(q,q)},S.prototype.sqrt=function(q){if(q.isZero())return q.clone();var j=this.m.andln(3);if(Z(j%2===1),j===3){var k=this.m.add(new V(1)).iushrn(2);return this.pow(q,k)}for(var g=this.m.subn(1),N=0;!g.isZero()&&g.andln(1)===0;)N++,g.iushrn(1);Z(!g.isZero());var x=new V(1).toRed(this),_=x.redNeg(),B=this.m.subn(1).iushrn(1),y=this.m.bitLength();for(y=new V(2*y*y).toRed(this);this.pow(y,B).cmp(_)!==0;)y.redIAdd(_);for(var w=this.pow(y,g),f=this.pow(q,g.addn(1).iushrn(1)),p=this.pow(q,g),c=N;p.cmp(x)!==0;){for(var h=p,d=0;h.cmp(x)!==0;d++)h=h.redSqr();Z(d=0;N--){for(var w=j.words[N],f=y-1;f>=0;f--){var p=w>>f&1;if(x!==g[0]&&(x=this.sqr(x)),p===0&&_===0){B=0;continue}_<<=1,_|=p,B++,!(B!==k&&(N!==0||f!==0))&&(x=this.mul(x,g[_]),B=0,_=0)}y=26}return x},S.prototype.convertTo=function(q){var j=q.umod(this.m);return j===q?j.clone():j},S.prototype.convertFrom=function(q){var j=q.clone();return j.red=null,j},V.mont=function(q){return new v(q)};function v(q){S.call(this,q),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new V(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}G(v,S),v.prototype.convertTo=function(q){return this.imod(q.ushln(this.shift))},v.prototype.convertFrom=function(q){var j=this.imod(q.mul(this.rinv));return j.red=null,j},v.prototype.imul=function(q,j){if(q.isZero()||j.isZero())return q.words[0]=0,q.length=1,q;var k=q.imul(j),g=k.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=k.isub(g).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},v.prototype.mul=function(q,j){if(q.isZero()||j.isZero())return new V(0)._forceRed(this);var k=q.mul(j),g=k.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=k.isub(g).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},v.prototype.invm=function(q){var j=this.imod(q._invmp(this.m).mul(this.r2));return j._forceRed(this)}})(typeof $>"u"||$,bZ)}}),HY=P$({"node_modules/safer-buffer/safer.js"(bZ,$){var Q=L$("buffer"),Y=Q.Buffer,Z={},G;for(G in Q)!Q.hasOwnProperty(G)||G==="SlowBuffer"||G==="Buffer"||(Z[G]=Q[G]);var V=Z.Buffer={};for(G in Y)!Y.hasOwnProperty(G)||G==="allocUnsafe"||G==="allocUnsafeSlow"||(V[G]=Y[G]);if(Z.Buffer.prototype=Y.prototype,(!V.from||V.from===Uint8Array.from)&&(V.from=function(U,X,K){if(typeof U=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof U);if(U&&typeof U.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof U);return Y(U,X,K)}),V.alloc||(V.alloc=function(U,X,K){if(typeof U!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof U);if(U<0||U>=2*(1<<30))throw new RangeError('The value "'+U+'" is invalid for option "size"');var I=Y(U);return!X||X.length===0?I.fill(0):typeof K=="string"?I.fill(X,K):I.fill(X),I}),!Z.kStringMaxLength)try{Z.kStringMaxLength=C$}catch{}Z.constants||(Z.constants={MAX_LENGTH:Z.kMaxLength},Z.kStringMaxLength&&(Z.constants.MAX_STRING_LENGTH=Z.kStringMaxLength)),$.exports=Z}}),EY=P$({"node_modules/asn1.js/lib/asn1/base/reporter.js"(bZ){var $=v$();function Q(Z){this._reporterState={obj:null,path:[],options:Z||{},errors:[]}}bZ.Reporter=Q,Q.prototype.isError=function(Z){return Z instanceof Y},Q.prototype.save=function(){let Z=this._reporterState;return{obj:Z.obj,pathLen:Z.path.length}},Q.prototype.restore=function(Z){let G=this._reporterState;G.obj=Z.obj,G.path=G.path.slice(0,Z.pathLen)},Q.prototype.enterKey=function(Z){return this._reporterState.path.push(Z)},Q.prototype.exitKey=function(Z){let G=this._reporterState;G.path=G.path.slice(0,Z-1)},Q.prototype.leaveKey=function(Z,G,V){let U=this._reporterState;this.exitKey(Z),U.obj!==null&&(U.obj[G]=V)},Q.prototype.path=function(){return this._reporterState.path.join("/")},Q.prototype.enterObject=function(){let Z=this._reporterState,G=Z.obj;return Z.obj={},G},Q.prototype.leaveObject=function(Z){let G=this._reporterState,V=G.obj;return G.obj=Z,V},Q.prototype.error=function(Z){let G,V=this._reporterState,U=Z instanceof Y;if(U?G=Z:G=new Y(V.path.map(function(X){return"["+JSON.stringify(X)+"]"}).join(""),Z.message||Z,Z.stack),!V.options.partial)throw G;return U||V.errors.push(G),G},Q.prototype.wrapResult=function(Z){let G=this._reporterState;return G.options.partial?{result:this.isError(Z)?null:Z,errors:G.errors}:Z};function Y(Z,G){this.path=Z,this.rethrow(G)}$(Y,Error),Y.prototype.rethrow=function(Z){if(this.message=Z+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,Y),!this.stack)try{throw new Error(this.message)}catch(G){this.stack=G.stack}return this}}}),A$=P$({"node_modules/asn1.js/lib/asn1/base/buffer.js"(bZ){var $=v$(),Q=EY().Reporter,Y=HY().Buffer;function Z(V,U){if(Q.call(this,U),!Y.isBuffer(V)){this.error("Input not Buffer");return}this.base=V,this.offset=0,this.length=V.length}$(Z,Q),bZ.DecoderBuffer=Z,Z.isDecoderBuffer=function(V){return V instanceof Z?!0:typeof V=="object"&&Y.isBuffer(V.base)&&V.constructor.name==="DecoderBuffer"&&typeof V.offset=="number"&&typeof V.length=="number"&&typeof V.save=="function"&&typeof V.restore=="function"&&typeof V.isEmpty=="function"&&typeof V.readUInt8=="function"&&typeof V.skip=="function"&&typeof V.raw=="function"},Z.prototype.save=function(){return{offset:this.offset,reporter:Q.prototype.save.call(this)}},Z.prototype.restore=function(V){let U=new Z(this.base);return U.offset=V.offset,U.length=this.offset,this.offset=V.offset,Q.prototype.restore.call(this,V.reporter),U},Z.prototype.isEmpty=function(){return this.offset===this.length},Z.prototype.readUInt8=function(V){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(V||"DecoderBuffer overrun")},Z.prototype.skip=function(V,U){if(!(this.offset+V<=this.length))return this.error(U||"DecoderBuffer overrun");let X=new Z(this.base);return X._reporterState=this._reporterState,X.offset=this.offset,X.length=this.offset+V,this.offset+=V,X},Z.prototype.raw=function(V){return this.base.slice(V?V.offset:this.offset,this.length)};function G(V,U){if(Array.isArray(V))this.length=0,this.value=V.map(function(X){return G.isEncoderBuffer(X)||(X=new G(X,U)),this.length+=X.length,X},this);else if(typeof V=="number"){if(!(0<=V&&V<=255))return U.error("non-byte EncoderBuffer value");this.value=V,this.length=1}else if(typeof V=="string")this.value=V,this.length=Y.byteLength(V);else if(Y.isBuffer(V))this.value=V,this.length=V.length;else return U.error("Unsupported type: "+typeof V)}bZ.EncoderBuffer=G,G.isEncoderBuffer=function(V){return V instanceof G?!0:typeof V=="object"&&V.constructor.name==="EncoderBuffer"&&typeof V.length=="number"&&typeof V.join=="function"},G.prototype.join=function(V,U){return V||(V=Y.alloc(this.length)),U||(U=0),this.length===0||(Array.isArray(this.value)?this.value.forEach(function(X){X.join(V,U),U+=X.length}):(typeof this.value=="number"?V[U]=this.value:typeof this.value=="string"?V.write(this.value,U):Y.isBuffer(this.value)&&this.value.copy(V,U),U+=this.length)),V}}}),TY=P$({"node_modules/asn1.js/lib/asn1/base/node.js"(bZ,$){var Q=EY().Reporter,Y=A$().EncoderBuffer,Z=A$().DecoderBuffer,G=i$(),V=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],U=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(V),X=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];function K(J,O,F){let A={};this._baseState=A,A.name=F,A.enc=J,A.parent=O||null,A.children=null,A.tag=null,A.args=null,A.reverseArgs=null,A.choice=null,A.optional=!1,A.any=!1,A.obj=!1,A.use=null,A.useDecoder=null,A.key=null,A.default=null,A.explicit=null,A.implicit=null,A.contains=null,A.parent||(A.children=[],this._wrap())}$.exports=K;var I=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];K.prototype.clone=function(){let J=this._baseState,O={};I.forEach(function(A){O[A]=J[A]});let F=new this.constructor(O.parent);return F._baseState=O,F},K.prototype._wrap=function(){let J=this._baseState;U.forEach(function(O){this[O]=function(){let F=new this.constructor(this);return J.children.push(F),F[O].apply(F,arguments)}},this)},K.prototype._init=function(J){let O=this._baseState;G(O.parent===null),J.call(this),O.children=O.children.filter(function(F){return F._baseState.parent===this},this),G.equal(O.children.length,1,"Root node can have only one child")},K.prototype._useArgs=function(J){let O=this._baseState,F=J.filter(function(A){return A instanceof this.constructor},this);J=J.filter(function(A){return!(A instanceof this.constructor)},this),F.length!==0&&(G(O.children===null),O.children=F,F.forEach(function(A){A._baseState.parent=this},this)),J.length!==0&&(G(O.args===null),O.args=J,O.reverseArgs=J.map(function(A){if(typeof A!="object"||A.constructor!==Object)return A;let W={};return Object.keys(A).forEach(function(H){H==(H|0)&&(H|=0);let E=A[H];W[E]=H}),W}))},X.forEach(function(J){K.prototype[J]=function(){let O=this._baseState;throw new Error(J+" not implemented for encoding: "+O.enc)}}),V.forEach(function(J){K.prototype[J]=function(){let O=this._baseState,F=Array.prototype.slice.call(arguments);return G(O.tag===null),O.tag=J,this._useArgs(F),this}}),K.prototype.use=function(J){G(J);let O=this._baseState;return G(O.use===null),O.use=J,this},K.prototype.optional=function(){let J=this._baseState;return J.optional=!0,this},K.prototype.def=function(J){let O=this._baseState;return G(O.default===null),O.default=J,O.optional=!0,this},K.prototype.explicit=function(J){let O=this._baseState;return G(O.explicit===null&&O.implicit===null),O.explicit=J,this},K.prototype.implicit=function(J){let O=this._baseState;return G(O.explicit===null&&O.implicit===null),O.implicit=J,this},K.prototype.obj=function(){let J=this._baseState,O=Array.prototype.slice.call(arguments);return J.obj=!0,O.length!==0&&this._useArgs(O),this},K.prototype.key=function(J){let O=this._baseState;return G(O.key===null),O.key=J,this},K.prototype.any=function(){let J=this._baseState;return J.any=!0,this},K.prototype.choice=function(J){let O=this._baseState;return G(O.choice===null),O.choice=J,this._useArgs(Object.keys(J).map(function(F){return J[F]})),this},K.prototype.contains=function(J){let O=this._baseState;return G(O.use===null),O.contains=J,this},K.prototype._decode=function(J,O){let F=this._baseState;if(F.parent===null)return J.wrapResult(F.children[0]._decode(J,O));let A=F.default,W=!0,H=null;if(F.key!==null&&(H=J.enterKey(F.key)),F.optional){let T=null;if(F.explicit!==null?T=F.explicit:F.implicit!==null?T=F.implicit:F.tag!==null&&(T=F.tag),T===null&&!F.any){let D=J.save();try{F.choice===null?this._decodeGeneric(F.tag,J,O):this._decodeChoice(J,O),W=!0}catch{W=!1}J.restore(D)}else if(W=this._peekTag(J,T,F.any),J.isError(W))return W}let E;if(F.obj&&W&&(E=J.enterObject()),W){if(F.explicit!==null){let D=this._decodeTag(J,F.explicit);if(J.isError(D))return D;J=D}let T=J.offset;if(F.use===null&&F.choice===null){let D;F.any&&(D=J.save());let C=this._decodeTag(J,F.implicit!==null?F.implicit:F.tag,F.any);if(J.isError(C))return C;F.any?A=J.raw(D):J=C}if(O&&O.track&&F.tag!==null&&O.track(J.path(),T,J.length,"tagged"),O&&O.track&&F.tag!==null&&O.track(J.path(),J.offset,J.length,"content"),F.any||(F.choice===null?A=this._decodeGeneric(F.tag,J,O):A=this._decodeChoice(J,O)),J.isError(A))return A;if(!F.any&&F.choice===null&&F.children!==null&&F.children.forEach(function(D){D._decode(J,O)}),F.contains&&(F.tag==="octstr"||F.tag==="bitstr")){let D=new Z(A);A=this._getUse(F.contains,J._reporterState.obj)._decode(D,O)}}return F.obj&&W&&(A=J.leaveObject(E)),F.key!==null&&(A!==null||W===!0)?J.leaveKey(H,F.key,A):H!==null&&J.exitKey(H),A},K.prototype._decodeGeneric=function(J,O,F){let A=this._baseState;return J==="seq"||J==="set"?null:J==="seqof"||J==="setof"?this._decodeList(O,J,A.args[0],F):/str$/.test(J)?this._decodeStr(O,J,F):J==="objid"&&A.args?this._decodeObjid(O,A.args[0],A.args[1],F):J==="objid"?this._decodeObjid(O,null,null,F):J==="gentime"||J==="utctime"?this._decodeTime(O,J,F):J==="null_"?this._decodeNull(O,F):J==="bool"?this._decodeBool(O,F):J==="objDesc"?this._decodeStr(O,J,F):J==="int"||J==="enum"?this._decodeInt(O,A.args&&A.args[0],F):A.use!==null?this._getUse(A.use,O._reporterState.obj)._decode(O,F):O.error("unknown tag: "+J)},K.prototype._getUse=function(J,O){let F=this._baseState;return F.useDecoder=this._use(J,O),G(F.useDecoder._baseState.parent===null),F.useDecoder=F.useDecoder._baseState.children[0],F.implicit!==F.useDecoder._baseState.implicit&&(F.useDecoder=F.useDecoder.clone(),F.useDecoder._baseState.implicit=F.implicit),F.useDecoder},K.prototype._decodeChoice=function(J,O){let F=this._baseState,A=null,W=!1;return Object.keys(F.choice).some(function(H){let E=J.save(),T=F.choice[H];try{let D=T._decode(J,O);if(J.isError(D))return!1;A={type:H,value:D},W=!0}catch{return J.restore(E),!1}return!0},this),W?A:J.error("Choice not matched")},K.prototype._createEncoderBuffer=function(J){return new Y(J,this.reporter)},K.prototype._encode=function(J,O,F){let A=this._baseState;if(A.default!==null&&A.default===J)return;let W=this._encodeValue(J,O,F);if(W!==void 0&&!this._skipDefault(W,O,F))return W},K.prototype._encodeValue=function(J,O,F){let A=this._baseState;if(A.parent===null)return A.children[0]._encode(J,O||new Q);let W=null;if(this.reporter=O,A.optional&&J===void 0)if(A.default!==null)J=A.default;else return;let H=null,E=!1;if(A.any)W=this._createEncoderBuffer(J);else if(A.choice)W=this._encodeChoice(J,O);else if(A.contains)H=this._getUse(A.contains,F)._encode(J,O),E=!0;else if(A.children)H=A.children.map(function(T){if(T._baseState.tag==="null_")return T._encode(null,O,J);if(T._baseState.key===null)return O.error("Child should have a key");let D=O.enterKey(T._baseState.key);if(typeof J!="object")return O.error("Child expected, but input is not object");let C=T._encode(J[T._baseState.key],O,J);return O.leaveKey(D),C},this).filter(function(T){return T}),H=this._createEncoderBuffer(H);else if(A.tag==="seqof"||A.tag==="setof"){if(!(A.args&&A.args.length===1))return O.error("Too many args for : "+A.tag);if(!Array.isArray(J))return O.error("seqof/setof, but data is not Array");let T=this.clone();T._baseState.implicit=null,H=this._createEncoderBuffer(J.map(function(D){let C=this._baseState;return this._getUse(C.args[0],J)._encode(D,O)},T))}else A.use!==null?W=this._getUse(A.use,F)._encode(J,O):(H=this._encodePrimitive(A.tag,J),E=!0);if(!A.any&&A.choice===null){let T=A.implicit!==null?A.implicit:A.tag,D=A.implicit===null?"universal":"context";T===null?A.use===null&&O.error("Tag could be omitted only for .use()"):A.use===null&&(W=this._encodeComposite(T,E,D,H))}return A.explicit!==null&&(W=this._encodeComposite(A.explicit,!1,"context",W)),W},K.prototype._encodeChoice=function(J,O){let F=this._baseState,A=F.choice[J.type];return A||G(!1,J.type+" not found in "+JSON.stringify(Object.keys(F.choice))),A._encode(J.value,O)},K.prototype._encodePrimitive=function(J,O){let F=this._baseState;if(/str$/.test(J))return this._encodeStr(O,J);if(J==="objid"&&F.args)return this._encodeObjid(O,F.reverseArgs[0],F.args[1]);if(J==="objid")return this._encodeObjid(O,null,null);if(J==="gentime"||J==="utctime")return this._encodeTime(O,J);if(J==="null_")return this._encodeNull();if(J==="int"||J==="enum")return this._encodeInt(O,F.args&&F.reverseArgs[0]);if(J==="bool")return this._encodeBool(O);if(J==="objDesc")return this._encodeStr(O,J);throw new Error("Unsupported tag: "+J)},K.prototype._isNumstr=function(J){return/^[0-9 ]*$/.test(J)},K.prototype._isPrintstr=function(J){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(J)}}}),DY=P$({"node_modules/asn1.js/lib/asn1/constants/der.js"(bZ){function $(Q){let Y={};return Object.keys(Q).forEach(function(Z){(Z|0)==Z&&(Z=Z|0);let G=Q[Z];Y[G]=Z}),Y}bZ.tagClass={0:"universal",1:"application",2:"context",3:"private"},bZ.tagClassByName=$(bZ.tagClass),bZ.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},bZ.tagByName=$(bZ.tag)}}),CY=P$({"node_modules/asn1.js/lib/asn1/encoders/der.js"(bZ,$){var Q=v$(),Y=HY().Buffer,Z=TY(),G=DY();function V(I){this.enc="der",this.name=I.name,this.entity=I,this.tree=new U,this.tree._init(I.body)}$.exports=V,V.prototype.encode=function(I,J){return this.tree._encode(I,J).join()};function U(I){Z.call(this,"der",I)}Q(U,Z),U.prototype._encodeComposite=function(I,J,O,F){let A=K(I,J,O,this.reporter);if(F.length<128){let E=Y.alloc(2);return E[0]=A,E[1]=F.length,this._createEncoderBuffer([E,F])}let W=1;for(let E=F.length;E>=256;E>>=8)W++;let H=Y.alloc(2+W);H[0]=A,H[1]=128|W;for(let E=1+W,T=F.length;T>0;E--,T>>=8)H[E]=T&255;return this._createEncoderBuffer([H,F])},U.prototype._encodeStr=function(I,J){if(J==="bitstr")return this._createEncoderBuffer([I.unused|0,I.data]);if(J==="bmpstr"){let O=Y.alloc(I.length*2);for(let F=0;F=40)return this.reporter.error("Second objid identifier OOB");I.splice(0,2,I[0]*40+I[1])}let F=0;for(let H=0;H=128;E>>=7)F++}let A=Y.alloc(F),W=A.length-1;for(let H=I.length-1;H>=0;H--){let E=I[H];for(A[W--]=E&127;(E>>=7)>0;)A[W--]=128|E&127}return this._createEncoderBuffer(A)};function X(I){return I<10?"0"+I:I}U.prototype._encodeTime=function(I,J){let O,F=new Date(I);return J==="gentime"?O=[X(F.getUTCFullYear()),X(F.getUTCMonth()+1),X(F.getUTCDate()),X(F.getUTCHours()),X(F.getUTCMinutes()),X(F.getUTCSeconds()),"Z"].join(""):J==="utctime"?O=[X(F.getUTCFullYear()%100),X(F.getUTCMonth()+1),X(F.getUTCDate()),X(F.getUTCHours()),X(F.getUTCMinutes()),X(F.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+J+" time is not supported yet"),this._encodeStr(O,"octstr")},U.prototype._encodeNull=function(){return this._createEncoderBuffer("")},U.prototype._encodeInt=function(I,J){if(typeof I=="string"){if(!J)return this.reporter.error("String int or enum given, but no values map");if(!J.hasOwnProperty(I))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(I));I=J[I]}if(typeof I!="number"&&!Y.isBuffer(I)){let A=I.toArray();!I.sign&&A[0]&128&&A.unshift(0),I=Y.from(A)}if(Y.isBuffer(I)){let A=I.length;I.length===0&&A++;let W=Y.alloc(A);return I.copy(W),I.length===0&&(W[0]=0),this._createEncoderBuffer(W)}if(I<128)return this._createEncoderBuffer(I);if(I<256)return this._createEncoderBuffer([0,I]);let O=1;for(let A=I;A>=256;A>>=8)O++;let F=new Array(O);for(let A=F.length-1;A>=0;A--)F[A]=I&255,I>>=8;return F[0]&128&&F.unshift(0),this._createEncoderBuffer(Y.from(F))},U.prototype._encodeBool=function(I){return this._createEncoderBuffer(I?255:0)},U.prototype._use=function(I,J){return typeof I=="function"&&(I=I(J)),I._getEncoder("der").tree},U.prototype._skipDefault=function(I,J,O){let F=this._baseState,A;if(F.default===null)return!1;let W=I.join();if(F.defaultBuffer===void 0&&(F.defaultBuffer=this._encodeValue(F.default,J,O).join()),W.length!==F.defaultBuffer.length)return!1;for(A=0;A=31?F.error("Multi-octet tag encoding unsupported"):(J||(A|=32),A|=G.tagClassByName[O||"universal"]<<6,A)}}}),LY=P$({"node_modules/asn1.js/lib/asn1/encoders/pem.js"(bZ,$){var Q=v$(),Y=CY();function Z(G){Y.call(this,G),this.enc="pem"}Q(Z,Y),$.exports=Z,Z.prototype.encode=function(G,V){let U=Y.prototype.encode.call(this,G).toString("base64"),X=["-----BEGIN "+V.label+"-----"];for(let K=0;K>6],W=(F&32)===0;if((F&31)===31){let E=F;for(F=0;(E&128)===128;){if(E=J.readUInt8(O),J.isError(E))return E;F<<=7,F|=E&127}}else F&=31;let H=V.tag[F];return{cls:A,primitive:W,tag:F,tagStr:H}}function I(J,O,F){let A=J.readUInt8(F);if(J.isError(A))return A;if(!O&&A===128)return null;if((A&128)===0)return A;let W=A&127;if(W>4)return J.error("length octect is too long");A=0;for(let H=0;H0&&C.ishrn(L),C}function W(T,D){T=A(T,D),T=T.mod(D);var C=Q.from(T.toArray());if(C.length=O)throw new Error("invalid sig")}$.exports=U}}),fY=P$({"node_modules/browserify-sign/browser/index.js"(bZ,$){var Q=M$().Buffer,Y=h$(),Z=L$("readable-stream"),G=v$(),V=yY(),U=wY(),X=o$();Object.keys(X).forEach(function(F){X[F].id=Q.from(X[F].id,"hex"),X[F.toLowerCase()]=X[F]});function K(F){Z.Writable.call(this);var A=X[F];if(!A)throw new Error("Unknown message digest");this._hashType=A.hash,this._hash=Y(A.hash),this._tag=A.id,this._signType=A.sign}G(K,Z.Writable),K.prototype._write=function(F,A,W){this._hash.update(F),W()},K.prototype.update=function(F,A){return typeof F=="string"&&(F=Q.from(F,A)),this._hash.update(F),this},K.prototype.sign=function(F,A){this.end();var W=this._hash.digest(),H=V(W,F,this._hashType,this._signType,this._tag);return A?H.toString(A):H};function I(F){Z.Writable.call(this);var A=X[F];if(!A)throw new Error("Unknown message digest");this._hash=Y(A.hash),this._tag=A.id,this._signType=A.sign}G(I,Z.Writable),I.prototype._write=function(F,A,W){this._hash.update(F),W()},I.prototype.update=function(F,A){return typeof F=="string"&&(F=Q.from(F,A)),this._hash.update(F),this},I.prototype.verify=function(F,A,W){typeof A=="string"&&(A=Q.from(A,W)),this.end();var H=this._hash.digest();return U(A,H,F,this._signType,this._tag)};function J(F){return new K(F)}function O(F){return new I(F)}$.exports={Sign:J,Verify:O,createSign:J,createVerify:O}}}),pY=P$({"node_modules/create-ecdh/node_modules/bn.js/lib/bn.js"(bZ,$){(function(Q,Y){function Z(q,j){if(!q)throw new Error(j||"Assertion failed")}function G(q,j){q.super_=j;var k=function(){};k.prototype=j.prototype,q.prototype=new k,q.prototype.constructor=q}function V(q,j,k){if(V.isBN(q))return q;this.negative=0,this.words=null,this.length=0,this.red=null,q!==null&&((j==="le"||j==="be")&&(k=j,j=10),this._init(q||0,j||10,k||"be"))}typeof Q=="object"?Q.exports=V:Y.BN=V,V.BN=V,V.wordSize=26;var U;try{typeof window<"u"&&typeof window.Buffer<"u"?U=window.Buffer:U=L$("buffer").Buffer}catch{}V.isBN=function(q){return q instanceof V?!0:q!==null&&typeof q=="object"&&q.constructor.wordSize===V.wordSize&&Array.isArray(q.words)},V.max=function(q,j){return q.cmp(j)>0?q:j},V.min=function(q,j){return q.cmp(j)<0?q:j},V.prototype._init=function(q,j,k){if(typeof q=="number")return this._initNumber(q,j,k);if(typeof q=="object")return this._initArray(q,j,k);j==="hex"&&(j=16),Z(j===(j|0)&&j>=2&&j<=36),q=q.toString().replace(/\s+/g,"");var g=0;q[0]==="-"&&(g++,this.negative=1),g=0;g-=3)x=q[g]|q[g-1]<<8|q[g-2]<<16,this.words[N]|=x<<_&67108863,this.words[N+1]=x>>>26-_&67108863,_+=24,_>=26&&(_-=26,N++);else if(k==="le")for(g=0,N=0;g>>26-_&67108863,_+=24,_>=26&&(_-=26,N++);return this.strip()};function X(q,j){var k=q.charCodeAt(j);return k>=65&&k<=70?k-55:k>=97&&k<=102?k-87:k-48&15}function K(q,j,k){var g=X(q,k);return k-1>=j&&(g|=X(q,k-1)<<4),g}V.prototype._parseHex=function(q,j,k){this.length=Math.ceil((q.length-j)/6),this.words=new Array(this.length);for(var g=0;g=j;g-=2)_=K(q,j,g)<=18?(N-=18,x+=1,this.words[x]|=_>>>26):N+=8;else{var B=q.length-j;for(g=B%2===0?j+1:j;g=18?(N-=18,x+=1,this.words[x]|=_>>>26):N+=8}this.strip()};function I(q,j,k,g){for(var N=0,x=Math.min(q.length,k),_=j;_=49?N+=B-49+10:B>=17?N+=B-17+10:N+=B}return N}V.prototype._parseBase=function(q,j,k){this.words=[0],this.length=1;for(var g=0,N=1;N<=67108863;N*=j)g++;g--,N=N/j|0;for(var x=q.length-k,_=x%g,B=Math.min(x,x-_)+k,y=0,w=k;w1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},V.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},V.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],O=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],F=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];V.prototype.toString=function(q,j){q=q||10,j=j|0||1;var k;if(q===16||q==="hex"){k="";for(var g=0,N=0,x=0;x>>24-g&16777215,N!==0||x!==this.length-1?k=J[6-B.length]+B+k:k=B+k,g+=2,g>=26&&(g-=26,x--)}for(N!==0&&(k=N.toString(16)+k);k.length%j!==0;)k="0"+k;return this.negative!==0&&(k="-"+k),k}if(q===(q|0)&&q>=2&&q<=36){var y=O[q],w=F[q];k="";var f=this.clone();for(f.negative=0;!f.isZero();){var p=f.modn(w).toString(q);f=f.idivn(w),f.isZero()?k=p+k:k=J[y-p.length]+p+k}for(this.isZero()&&(k="0"+k);k.length%j!==0;)k="0"+k;return this.negative!==0&&(k="-"+k),k}Z(!1,"Base should be between 2 and 36")},V.prototype.toNumber=function(){var q=this.words[0];return this.length===2?q+=this.words[1]*67108864:this.length===3&&this.words[2]===1?q+=4503599627370496+this.words[1]*67108864:this.length>2&&Z(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-q:q},V.prototype.toJSON=function(){return this.toString(16)},V.prototype.toBuffer=function(q,j){return Z(typeof U<"u"),this.toArrayLike(U,q,j)},V.prototype.toArray=function(q,j){return this.toArrayLike(Array,q,j)},V.prototype.toArrayLike=function(q,j,k){var g=this.byteLength(),N=k||Math.max(1,g);Z(g<=N,"byte array longer than desired length"),Z(N>0,"Requested array length <= 0"),this.strip();var x=j==="le",_=new q(N),B,y,w=this.clone();if(x){for(y=0;!w.isZero();y++)B=w.andln(255),w.iushrn(8),_[y]=B;for(;y=4096&&(k+=13,j>>>=13),j>=64&&(k+=7,j>>>=7),j>=8&&(k+=4,j>>>=4),j>=2&&(k+=2,j>>>=2),k+j},V.prototype._zeroBits=function(q){if(q===0)return 26;var j=q,k=0;return(j&8191)===0&&(k+=13,j>>>=13),(j&127)===0&&(k+=7,j>>>=7),(j&15)===0&&(k+=4,j>>>=4),(j&3)===0&&(k+=2,j>>>=2),(j&1)===0&&k++,k},V.prototype.bitLength=function(){var q=this.words[this.length-1],j=this._countBits(q);return(this.length-1)*26+j};function A(q){for(var j=new Array(q.bitLength()),k=0;k>>N}return j}V.prototype.zeroBits=function(){if(this.isZero())return 0;for(var q=0,j=0;jq.length?this.clone().ior(q):q.clone().ior(this)},V.prototype.uor=function(q){return this.length>q.length?this.clone().iuor(q):q.clone().iuor(this)},V.prototype.iuand=function(q){var j;this.length>q.length?j=q:j=this;for(var k=0;kq.length?this.clone().iand(q):q.clone().iand(this)},V.prototype.uand=function(q){return this.length>q.length?this.clone().iuand(q):q.clone().iuand(this)},V.prototype.iuxor=function(q){var j,k;this.length>q.length?(j=this,k=q):(j=q,k=this);for(var g=0;gq.length?this.clone().ixor(q):q.clone().ixor(this)},V.prototype.uxor=function(q){return this.length>q.length?this.clone().iuxor(q):q.clone().iuxor(this)},V.prototype.inotn=function(q){Z(typeof q=="number"&&q>=0);var j=Math.ceil(q/26)|0,k=q%26;this._expand(j),k>0&&j--;for(var g=0;g0&&(this.words[g]=~this.words[g]&67108863>>26-k),this.strip()},V.prototype.notn=function(q){return this.clone().inotn(q)},V.prototype.setn=function(q,j){Z(typeof q=="number"&&q>=0);var k=q/26|0,g=q%26;return this._expand(k+1),j?this.words[k]=this.words[k]|1<q.length?(k=this,g=q):(k=q,g=this);for(var N=0,x=0;x>>26;for(;N!==0&&x>>26;if(this.length=k.length,N!==0)this.words[this.length]=N,this.length++;else if(k!==this)for(;xq.length?this.clone().iadd(q):q.clone().iadd(this)},V.prototype.isub=function(q){if(q.negative!==0){q.negative=0;var j=this.iadd(q);return q.negative=1,j._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(q),this.negative=1,this._normSign();var k=this.cmp(q);if(k===0)return this.negative=0,this.length=1,this.words[0]=0,this;var g,N;k>0?(g=this,N=q):(g=q,N=this);for(var x=0,_=0;_>26,this.words[_]=j&67108863;for(;x!==0&&_>26,this.words[_]=j&67108863;if(x===0&&_>>26,p=y&67108863,c=Math.min(w,j.length-1),h=Math.max(0,w-q.length+1);h<=c;h++){var d=w-h|0;N=q.words[d]|0,x=j.words[h]|0,_=N*x+p,f+=_/67108864|0,p=_&67108863}k.words[w]=p|0,y=f|0}return y!==0?k.words[w]=y|0:k.length--,k.strip()}var H=function(q,j,k){var g=q.words,N=j.words,x=k.words,_=0,B,y,w,f=g[0]|0,p=f&8191,c=f>>>13,h=g[1]|0,d=h&8191,b=h>>>13,l=g[2]|0,o=l&8191,u=l>>>13,n=g[3]|0,s=n&8191,t=n>>>13,m=g[4]|0,a=m&8191,r=m>>>13,e=g[5]|0,i=e&8191,$0=e>>>13,Q0=g[6]|0,Y0=Q0&8191,Z0=Q0>>>13,G0=g[7]|0,V0=G0&8191,U0=G0>>>13,X0=g[8]|0,K0=X0&8191,I0=X0>>>13,J0=g[9]|0,O0=J0&8191,F0=J0>>>13,A0=N[0]|0,W0=A0&8191,H0=A0>>>13,E0=N[1]|0,T0=E0&8191,D0=E0>>>13,C0=N[2]|0,L0=C0&8191,R0=C0>>>13,P0=N[3]|0,z0=P0&8191,M0=P0>>>13,S0=N[4]|0,v0=S0&8191,q0=S0>>>13,j0=N[5]|0,k0=j0&8191,g0=j0>>>13,N0=N[6]|0,x0=N0&8191,_0=N0>>>13,B0=N[7]|0,y0=B0&8191,w0=B0>>>13,f0=N[8]|0,p0=f0&8191,c0=f0>>>13,h0=N[9]|0,d0=h0&8191,b0=h0>>>13;k.negative=q.negative^j.negative,k.length=19,B=Math.imul(p,W0),y=Math.imul(p,H0),y=y+Math.imul(c,W0)|0,w=Math.imul(c,H0);var l0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(l0>>>26)|0,l0&=67108863,B=Math.imul(d,W0),y=Math.imul(d,H0),y=y+Math.imul(b,W0)|0,w=Math.imul(b,H0),B=B+Math.imul(p,T0)|0,y=y+Math.imul(p,D0)|0,y=y+Math.imul(c,T0)|0,w=w+Math.imul(c,D0)|0;var o0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(o0>>>26)|0,o0&=67108863,B=Math.imul(o,W0),y=Math.imul(o,H0),y=y+Math.imul(u,W0)|0,w=Math.imul(u,H0),B=B+Math.imul(d,T0)|0,y=y+Math.imul(d,D0)|0,y=y+Math.imul(b,T0)|0,w=w+Math.imul(b,D0)|0,B=B+Math.imul(p,L0)|0,y=y+Math.imul(p,R0)|0,y=y+Math.imul(c,L0)|0,w=w+Math.imul(c,R0)|0;var u0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(u0>>>26)|0,u0&=67108863,B=Math.imul(s,W0),y=Math.imul(s,H0),y=y+Math.imul(t,W0)|0,w=Math.imul(t,H0),B=B+Math.imul(o,T0)|0,y=y+Math.imul(o,D0)|0,y=y+Math.imul(u,T0)|0,w=w+Math.imul(u,D0)|0,B=B+Math.imul(d,L0)|0,y=y+Math.imul(d,R0)|0,y=y+Math.imul(b,L0)|0,w=w+Math.imul(b,R0)|0,B=B+Math.imul(p,z0)|0,y=y+Math.imul(p,M0)|0,y=y+Math.imul(c,z0)|0,w=w+Math.imul(c,M0)|0;var n0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(n0>>>26)|0,n0&=67108863,B=Math.imul(a,W0),y=Math.imul(a,H0),y=y+Math.imul(r,W0)|0,w=Math.imul(r,H0),B=B+Math.imul(s,T0)|0,y=y+Math.imul(s,D0)|0,y=y+Math.imul(t,T0)|0,w=w+Math.imul(t,D0)|0,B=B+Math.imul(o,L0)|0,y=y+Math.imul(o,R0)|0,y=y+Math.imul(u,L0)|0,w=w+Math.imul(u,R0)|0,B=B+Math.imul(d,z0)|0,y=y+Math.imul(d,M0)|0,y=y+Math.imul(b,z0)|0,w=w+Math.imul(b,M0)|0,B=B+Math.imul(p,v0)|0,y=y+Math.imul(p,q0)|0,y=y+Math.imul(c,v0)|0,w=w+Math.imul(c,q0)|0;var s0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(s0>>>26)|0,s0&=67108863,B=Math.imul(i,W0),y=Math.imul(i,H0),y=y+Math.imul($0,W0)|0,w=Math.imul($0,H0),B=B+Math.imul(a,T0)|0,y=y+Math.imul(a,D0)|0,y=y+Math.imul(r,T0)|0,w=w+Math.imul(r,D0)|0,B=B+Math.imul(s,L0)|0,y=y+Math.imul(s,R0)|0,y=y+Math.imul(t,L0)|0,w=w+Math.imul(t,R0)|0,B=B+Math.imul(o,z0)|0,y=y+Math.imul(o,M0)|0,y=y+Math.imul(u,z0)|0,w=w+Math.imul(u,M0)|0,B=B+Math.imul(d,v0)|0,y=y+Math.imul(d,q0)|0,y=y+Math.imul(b,v0)|0,w=w+Math.imul(b,q0)|0,B=B+Math.imul(p,k0)|0,y=y+Math.imul(p,g0)|0,y=y+Math.imul(c,k0)|0,w=w+Math.imul(c,g0)|0;var t0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(t0>>>26)|0,t0&=67108863,B=Math.imul(Y0,W0),y=Math.imul(Y0,H0),y=y+Math.imul(Z0,W0)|0,w=Math.imul(Z0,H0),B=B+Math.imul(i,T0)|0,y=y+Math.imul(i,D0)|0,y=y+Math.imul($0,T0)|0,w=w+Math.imul($0,D0)|0,B=B+Math.imul(a,L0)|0,y=y+Math.imul(a,R0)|0,y=y+Math.imul(r,L0)|0,w=w+Math.imul(r,R0)|0,B=B+Math.imul(s,z0)|0,y=y+Math.imul(s,M0)|0,y=y+Math.imul(t,z0)|0,w=w+Math.imul(t,M0)|0,B=B+Math.imul(o,v0)|0,y=y+Math.imul(o,q0)|0,y=y+Math.imul(u,v0)|0,w=w+Math.imul(u,q0)|0,B=B+Math.imul(d,k0)|0,y=y+Math.imul(d,g0)|0,y=y+Math.imul(b,k0)|0,w=w+Math.imul(b,g0)|0,B=B+Math.imul(p,x0)|0,y=y+Math.imul(p,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,_0)|0;var m0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(m0>>>26)|0,m0&=67108863,B=Math.imul(V0,W0),y=Math.imul(V0,H0),y=y+Math.imul(U0,W0)|0,w=Math.imul(U0,H0),B=B+Math.imul(Y0,T0)|0,y=y+Math.imul(Y0,D0)|0,y=y+Math.imul(Z0,T0)|0,w=w+Math.imul(Z0,D0)|0,B=B+Math.imul(i,L0)|0,y=y+Math.imul(i,R0)|0,y=y+Math.imul($0,L0)|0,w=w+Math.imul($0,R0)|0,B=B+Math.imul(a,z0)|0,y=y+Math.imul(a,M0)|0,y=y+Math.imul(r,z0)|0,w=w+Math.imul(r,M0)|0,B=B+Math.imul(s,v0)|0,y=y+Math.imul(s,q0)|0,y=y+Math.imul(t,v0)|0,w=w+Math.imul(t,q0)|0,B=B+Math.imul(o,k0)|0,y=y+Math.imul(o,g0)|0,y=y+Math.imul(u,k0)|0,w=w+Math.imul(u,g0)|0,B=B+Math.imul(d,x0)|0,y=y+Math.imul(d,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,_0)|0,B=B+Math.imul(p,y0)|0,y=y+Math.imul(p,w0)|0,y=y+Math.imul(c,y0)|0,w=w+Math.imul(c,w0)|0;var a0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(a0>>>26)|0,a0&=67108863,B=Math.imul(K0,W0),y=Math.imul(K0,H0),y=y+Math.imul(I0,W0)|0,w=Math.imul(I0,H0),B=B+Math.imul(V0,T0)|0,y=y+Math.imul(V0,D0)|0,y=y+Math.imul(U0,T0)|0,w=w+Math.imul(U0,D0)|0,B=B+Math.imul(Y0,L0)|0,y=y+Math.imul(Y0,R0)|0,y=y+Math.imul(Z0,L0)|0,w=w+Math.imul(Z0,R0)|0,B=B+Math.imul(i,z0)|0,y=y+Math.imul(i,M0)|0,y=y+Math.imul($0,z0)|0,w=w+Math.imul($0,M0)|0,B=B+Math.imul(a,v0)|0,y=y+Math.imul(a,q0)|0,y=y+Math.imul(r,v0)|0,w=w+Math.imul(r,q0)|0,B=B+Math.imul(s,k0)|0,y=y+Math.imul(s,g0)|0,y=y+Math.imul(t,k0)|0,w=w+Math.imul(t,g0)|0,B=B+Math.imul(o,x0)|0,y=y+Math.imul(o,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,_0)|0,B=B+Math.imul(d,y0)|0,y=y+Math.imul(d,w0)|0,y=y+Math.imul(b,y0)|0,w=w+Math.imul(b,w0)|0,B=B+Math.imul(p,p0)|0,y=y+Math.imul(p,c0)|0,y=y+Math.imul(c,p0)|0,w=w+Math.imul(c,c0)|0;var r0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(r0>>>26)|0,r0&=67108863,B=Math.imul(O0,W0),y=Math.imul(O0,H0),y=y+Math.imul(F0,W0)|0,w=Math.imul(F0,H0),B=B+Math.imul(K0,T0)|0,y=y+Math.imul(K0,D0)|0,y=y+Math.imul(I0,T0)|0,w=w+Math.imul(I0,D0)|0,B=B+Math.imul(V0,L0)|0,y=y+Math.imul(V0,R0)|0,y=y+Math.imul(U0,L0)|0,w=w+Math.imul(U0,R0)|0,B=B+Math.imul(Y0,z0)|0,y=y+Math.imul(Y0,M0)|0,y=y+Math.imul(Z0,z0)|0,w=w+Math.imul(Z0,M0)|0,B=B+Math.imul(i,v0)|0,y=y+Math.imul(i,q0)|0,y=y+Math.imul($0,v0)|0,w=w+Math.imul($0,q0)|0,B=B+Math.imul(a,k0)|0,y=y+Math.imul(a,g0)|0,y=y+Math.imul(r,k0)|0,w=w+Math.imul(r,g0)|0,B=B+Math.imul(s,x0)|0,y=y+Math.imul(s,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,_0)|0,B=B+Math.imul(o,y0)|0,y=y+Math.imul(o,w0)|0,y=y+Math.imul(u,y0)|0,w=w+Math.imul(u,w0)|0,B=B+Math.imul(d,p0)|0,y=y+Math.imul(d,c0)|0,y=y+Math.imul(b,p0)|0,w=w+Math.imul(b,c0)|0,B=B+Math.imul(p,d0)|0,y=y+Math.imul(p,b0)|0,y=y+Math.imul(c,d0)|0,w=w+Math.imul(c,b0)|0;var e0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(e0>>>26)|0,e0&=67108863,B=Math.imul(O0,T0),y=Math.imul(O0,D0),y=y+Math.imul(F0,T0)|0,w=Math.imul(F0,D0),B=B+Math.imul(K0,L0)|0,y=y+Math.imul(K0,R0)|0,y=y+Math.imul(I0,L0)|0,w=w+Math.imul(I0,R0)|0,B=B+Math.imul(V0,z0)|0,y=y+Math.imul(V0,M0)|0,y=y+Math.imul(U0,z0)|0,w=w+Math.imul(U0,M0)|0,B=B+Math.imul(Y0,v0)|0,y=y+Math.imul(Y0,q0)|0,y=y+Math.imul(Z0,v0)|0,w=w+Math.imul(Z0,q0)|0,B=B+Math.imul(i,k0)|0,y=y+Math.imul(i,g0)|0,y=y+Math.imul($0,k0)|0,w=w+Math.imul($0,g0)|0,B=B+Math.imul(a,x0)|0,y=y+Math.imul(a,_0)|0,y=y+Math.imul(r,x0)|0,w=w+Math.imul(r,_0)|0,B=B+Math.imul(s,y0)|0,y=y+Math.imul(s,w0)|0,y=y+Math.imul(t,y0)|0,w=w+Math.imul(t,w0)|0,B=B+Math.imul(o,p0)|0,y=y+Math.imul(o,c0)|0,y=y+Math.imul(u,p0)|0,w=w+Math.imul(u,c0)|0,B=B+Math.imul(d,d0)|0,y=y+Math.imul(d,b0)|0,y=y+Math.imul(b,d0)|0,w=w+Math.imul(b,b0)|0;var i0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(i0>>>26)|0,i0&=67108863,B=Math.imul(O0,L0),y=Math.imul(O0,R0),y=y+Math.imul(F0,L0)|0,w=Math.imul(F0,R0),B=B+Math.imul(K0,z0)|0,y=y+Math.imul(K0,M0)|0,y=y+Math.imul(I0,z0)|0,w=w+Math.imul(I0,M0)|0,B=B+Math.imul(V0,v0)|0,y=y+Math.imul(V0,q0)|0,y=y+Math.imul(U0,v0)|0,w=w+Math.imul(U0,q0)|0,B=B+Math.imul(Y0,k0)|0,y=y+Math.imul(Y0,g0)|0,y=y+Math.imul(Z0,k0)|0,w=w+Math.imul(Z0,g0)|0,B=B+Math.imul(i,x0)|0,y=y+Math.imul(i,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,_0)|0,B=B+Math.imul(a,y0)|0,y=y+Math.imul(a,w0)|0,y=y+Math.imul(r,y0)|0,w=w+Math.imul(r,w0)|0,B=B+Math.imul(s,p0)|0,y=y+Math.imul(s,c0)|0,y=y+Math.imul(t,p0)|0,w=w+Math.imul(t,c0)|0,B=B+Math.imul(o,d0)|0,y=y+Math.imul(o,b0)|0,y=y+Math.imul(u,d0)|0,w=w+Math.imul(u,b0)|0;var $$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+($$>>>26)|0,$$&=67108863,B=Math.imul(O0,z0),y=Math.imul(O0,M0),y=y+Math.imul(F0,z0)|0,w=Math.imul(F0,M0),B=B+Math.imul(K0,v0)|0,y=y+Math.imul(K0,q0)|0,y=y+Math.imul(I0,v0)|0,w=w+Math.imul(I0,q0)|0,B=B+Math.imul(V0,k0)|0,y=y+Math.imul(V0,g0)|0,y=y+Math.imul(U0,k0)|0,w=w+Math.imul(U0,g0)|0,B=B+Math.imul(Y0,x0)|0,y=y+Math.imul(Y0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,_0)|0,B=B+Math.imul(i,y0)|0,y=y+Math.imul(i,w0)|0,y=y+Math.imul($0,y0)|0,w=w+Math.imul($0,w0)|0,B=B+Math.imul(a,p0)|0,y=y+Math.imul(a,c0)|0,y=y+Math.imul(r,p0)|0,w=w+Math.imul(r,c0)|0,B=B+Math.imul(s,d0)|0,y=y+Math.imul(s,b0)|0,y=y+Math.imul(t,d0)|0,w=w+Math.imul(t,b0)|0;var Q$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,B=Math.imul(O0,v0),y=Math.imul(O0,q0),y=y+Math.imul(F0,v0)|0,w=Math.imul(F0,q0),B=B+Math.imul(K0,k0)|0,y=y+Math.imul(K0,g0)|0,y=y+Math.imul(I0,k0)|0,w=w+Math.imul(I0,g0)|0,B=B+Math.imul(V0,x0)|0,y=y+Math.imul(V0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,_0)|0,B=B+Math.imul(Y0,y0)|0,y=y+Math.imul(Y0,w0)|0,y=y+Math.imul(Z0,y0)|0,w=w+Math.imul(Z0,w0)|0,B=B+Math.imul(i,p0)|0,y=y+Math.imul(i,c0)|0,y=y+Math.imul($0,p0)|0,w=w+Math.imul($0,c0)|0,B=B+Math.imul(a,d0)|0,y=y+Math.imul(a,b0)|0,y=y+Math.imul(r,d0)|0,w=w+Math.imul(r,b0)|0;var Y$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,B=Math.imul(O0,k0),y=Math.imul(O0,g0),y=y+Math.imul(F0,k0)|0,w=Math.imul(F0,g0),B=B+Math.imul(K0,x0)|0,y=y+Math.imul(K0,_0)|0,y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,_0)|0,B=B+Math.imul(V0,y0)|0,y=y+Math.imul(V0,w0)|0,y=y+Math.imul(U0,y0)|0,w=w+Math.imul(U0,w0)|0,B=B+Math.imul(Y0,p0)|0,y=y+Math.imul(Y0,c0)|0,y=y+Math.imul(Z0,p0)|0,w=w+Math.imul(Z0,c0)|0,B=B+Math.imul(i,d0)|0,y=y+Math.imul(i,b0)|0,y=y+Math.imul($0,d0)|0,w=w+Math.imul($0,b0)|0;var Z$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,B=Math.imul(O0,x0),y=Math.imul(O0,_0),y=y+Math.imul(F0,x0)|0,w=Math.imul(F0,_0),B=B+Math.imul(K0,y0)|0,y=y+Math.imul(K0,w0)|0,y=y+Math.imul(I0,y0)|0,w=w+Math.imul(I0,w0)|0,B=B+Math.imul(V0,p0)|0,y=y+Math.imul(V0,c0)|0,y=y+Math.imul(U0,p0)|0,w=w+Math.imul(U0,c0)|0,B=B+Math.imul(Y0,d0)|0,y=y+Math.imul(Y0,b0)|0,y=y+Math.imul(Z0,d0)|0,w=w+Math.imul(Z0,b0)|0;var G$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(G$>>>26)|0,G$&=67108863,B=Math.imul(O0,y0),y=Math.imul(O0,w0),y=y+Math.imul(F0,y0)|0,w=Math.imul(F0,w0),B=B+Math.imul(K0,p0)|0,y=y+Math.imul(K0,c0)|0,y=y+Math.imul(I0,p0)|0,w=w+Math.imul(I0,c0)|0,B=B+Math.imul(V0,d0)|0,y=y+Math.imul(V0,b0)|0,y=y+Math.imul(U0,d0)|0,w=w+Math.imul(U0,b0)|0;var V$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(V$>>>26)|0,V$&=67108863,B=Math.imul(O0,p0),y=Math.imul(O0,c0),y=y+Math.imul(F0,p0)|0,w=Math.imul(F0,c0),B=B+Math.imul(K0,d0)|0,y=y+Math.imul(K0,b0)|0,y=y+Math.imul(I0,d0)|0,w=w+Math.imul(I0,b0)|0;var U$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(U$>>>26)|0,U$&=67108863,B=Math.imul(O0,d0),y=Math.imul(O0,b0),y=y+Math.imul(F0,d0)|0,w=Math.imul(F0,b0);var X$=(_+B|0)+((y&8191)<<13)|0;return _=(w+(y>>>13)|0)+(X$>>>26)|0,X$&=67108863,x[0]=l0,x[1]=o0,x[2]=u0,x[3]=n0,x[4]=s0,x[5]=t0,x[6]=m0,x[7]=a0,x[8]=r0,x[9]=e0,x[10]=i0,x[11]=$$,x[12]=Q$,x[13]=Y$,x[14]=Z$,x[15]=G$,x[16]=V$,x[17]=U$,x[18]=X$,_!==0&&(x[19]=_,k.length++),k};Math.imul||(H=W);function E(q,j,k){k.negative=j.negative^q.negative,k.length=q.length+j.length;for(var g=0,N=0,x=0;x>>26)|0,N+=_>>>26,_&=67108863}k.words[x]=B,g=_,_=N}return g!==0?k.words[x]=g:k.length--,k.strip()}function T(q,j,k){var g=new D;return g.mulp(q,j,k)}V.prototype.mulTo=function(q,j){var k,g=this.length+q.length;return this.length===10&&q.length===10?k=H(this,q,j):g<63?k=W(this,q,j):g<1024?k=E(this,q,j):k=T(this,q,j),k};function D(q,j){this.x=q,this.y=j}D.prototype.makeRBT=function(q){for(var j=new Array(q),k=V.prototype._countBits(q)-1,g=0;g>=1;return g},D.prototype.permute=function(q,j,k,g,N,x){for(var _=0;_>>1)N++;return 1<>>13,k[2*x+1]=N&8191,N=N>>>13;for(x=2*j;x>=26,j+=g/67108864|0,j+=N>>>26,this.words[k]=N&67108863}return j!==0&&(this.words[k]=j,this.length++),this},V.prototype.muln=function(q){return this.clone().imuln(q)},V.prototype.sqr=function(){return this.mul(this)},V.prototype.isqr=function(){return this.imul(this.clone())},V.prototype.pow=function(q){var j=A(q);if(j.length===0)return new V(1);for(var k=this,g=0;g=0);var j=q%26,k=(q-j)/26,g=67108863>>>26-j<<26-j,N;if(j!==0){var x=0;for(N=0;N>>26-j}x&&(this.words[N]=x,this.length++)}if(k!==0){for(N=this.length-1;N>=0;N--)this.words[N+k]=this.words[N];for(N=0;N=0);var g;j?g=(j-j%26)/26:g=0;var N=q%26,x=Math.min((q-N)/26,this.length),_=67108863^67108863>>>N<x)for(this.length-=x,y=0;y=0&&(w!==0||y>=g);y--){var f=this.words[y]|0;this.words[y]=w<<26-N|f>>>N,w=f&_}return B&&w!==0&&(B.words[B.length++]=w),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},V.prototype.ishrn=function(q,j,k){return Z(this.negative===0),this.iushrn(q,j,k)},V.prototype.shln=function(q){return this.clone().ishln(q)},V.prototype.ushln=function(q){return this.clone().iushln(q)},V.prototype.shrn=function(q){return this.clone().ishrn(q)},V.prototype.ushrn=function(q){return this.clone().iushrn(q)},V.prototype.testn=function(q){Z(typeof q=="number"&&q>=0);var j=q%26,k=(q-j)/26,g=1<=0);var j=q%26,k=(q-j)/26;if(Z(this.negative===0,"imaskn works only with positive numbers"),this.length<=k)return this;if(j!==0&&k++,this.length=Math.min(k,this.length),j!==0){var g=67108863^67108863>>>j<=67108864;j++)this.words[j]-=67108864,j===this.length-1?this.words[j+1]=1:this.words[j+1]++;return this.length=Math.max(this.length,j+1),this},V.prototype.isubn=function(q){if(Z(typeof q=="number"),Z(q<67108864),q<0)return this.iaddn(-q);if(this.negative!==0)return this.negative=0,this.iaddn(q),this.negative=1,this;if(this.words[0]-=q,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var j=0;j>26)-(B/67108864|0),this.words[N+k]=x&67108863}for(;N>26,this.words[N+k]=x&67108863;if(_===0)return this.strip();for(Z(_===-1),_=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},V.prototype._wordDiv=function(q,j){var k=this.length-q.length,g=this.clone(),N=q,x=N.words[N.length-1]|0,_=this._countBits(x);k=26-_,k!==0&&(N=N.ushln(k),g.iushln(k),x=N.words[N.length-1]|0);var B=g.length-N.length,y;if(j!=="mod"){y=new V(null),y.length=B+1,y.words=new Array(y.length);for(var w=0;w=0;p--){var c=(g.words[N.length+p]|0)*67108864+(g.words[N.length+p-1]|0);for(c=Math.min(c/x|0,67108863),g._ishlnsubmul(N,c,p);g.negative!==0;)c--,g.negative=0,g._ishlnsubmul(N,1,p),g.isZero()||(g.negative^=1);y&&(y.words[p]=c)}return y&&y.strip(),g.strip(),j!=="div"&&k!==0&&g.iushrn(k),{div:y||null,mod:g}},V.prototype.divmod=function(q,j,k){if(Z(!q.isZero()),this.isZero())return{div:new V(0),mod:new V(0)};var g,N,x;return this.negative!==0&&q.negative===0?(x=this.neg().divmod(q,j),j!=="mod"&&(g=x.div.neg()),j!=="div"&&(N=x.mod.neg(),k&&N.negative!==0&&N.iadd(q)),{div:g,mod:N}):this.negative===0&&q.negative!==0?(x=this.divmod(q.neg(),j),j!=="mod"&&(g=x.div.neg()),{div:g,mod:x.mod}):(this.negative&q.negative)!==0?(x=this.neg().divmod(q.neg(),j),j!=="div"&&(N=x.mod.neg(),k&&N.negative!==0&&N.isub(q)),{div:x.div,mod:N}):q.length>this.length||this.cmp(q)<0?{div:new V(0),mod:this}:q.length===1?j==="div"?{div:this.divn(q.words[0]),mod:null}:j==="mod"?{div:null,mod:new V(this.modn(q.words[0]))}:{div:this.divn(q.words[0]),mod:new V(this.modn(q.words[0]))}:this._wordDiv(q,j)},V.prototype.div=function(q){return this.divmod(q,"div",!1).div},V.prototype.mod=function(q){return this.divmod(q,"mod",!1).mod},V.prototype.umod=function(q){return this.divmod(q,"mod",!0).mod},V.prototype.divRound=function(q){var j=this.divmod(q);if(j.mod.isZero())return j.div;var k=j.div.negative!==0?j.mod.isub(q):j.mod,g=q.ushrn(1),N=q.andln(1),x=k.cmp(g);return x<0||N===1&&x===0?j.div:j.div.negative!==0?j.div.isubn(1):j.div.iaddn(1)},V.prototype.modn=function(q){Z(q<=67108863);for(var j=(1<<26)%q,k=0,g=this.length-1;g>=0;g--)k=(j*k+(this.words[g]|0))%q;return k},V.prototype.idivn=function(q){Z(q<=67108863);for(var j=0,k=this.length-1;k>=0;k--){var g=(this.words[k]|0)+j*67108864;this.words[k]=g/q|0,j=g%q}return this.strip()},V.prototype.divn=function(q){return this.clone().idivn(q)},V.prototype.egcd=function(q){Z(q.negative===0),Z(!q.isZero());var j=this,k=q.clone();j.negative!==0?j=j.umod(q):j=j.clone();for(var g=new V(1),N=new V(0),x=new V(0),_=new V(1),B=0;j.isEven()&&k.isEven();)j.iushrn(1),k.iushrn(1),++B;for(var y=k.clone(),w=j.clone();!j.isZero();){for(var f=0,p=1;(j.words[0]&p)===0&&f<26;++f,p<<=1);if(f>0)for(j.iushrn(f);f-- >0;)(g.isOdd()||N.isOdd())&&(g.iadd(y),N.isub(w)),g.iushrn(1),N.iushrn(1);for(var c=0,h=1;(k.words[0]&h)===0&&c<26;++c,h<<=1);if(c>0)for(k.iushrn(c);c-- >0;)(x.isOdd()||_.isOdd())&&(x.iadd(y),_.isub(w)),x.iushrn(1),_.iushrn(1);j.cmp(k)>=0?(j.isub(k),g.isub(x),N.isub(_)):(k.isub(j),x.isub(g),_.isub(N))}return{a:x,b:_,gcd:k.iushln(B)}},V.prototype._invmp=function(q){Z(q.negative===0),Z(!q.isZero());var j=this,k=q.clone();j.negative!==0?j=j.umod(q):j=j.clone();for(var g=new V(1),N=new V(0),x=k.clone();j.cmpn(1)>0&&k.cmpn(1)>0;){for(var _=0,B=1;(j.words[0]&B)===0&&_<26;++_,B<<=1);if(_>0)for(j.iushrn(_);_-- >0;)g.isOdd()&&g.iadd(x),g.iushrn(1);for(var y=0,w=1;(k.words[0]&w)===0&&y<26;++y,w<<=1);if(y>0)for(k.iushrn(y);y-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);j.cmp(k)>=0?(j.isub(k),g.isub(N)):(k.isub(j),N.isub(g))}var f;return j.cmpn(1)===0?f=g:f=N,f.cmpn(0)<0&&f.iadd(q),f},V.prototype.gcd=function(q){if(this.isZero())return q.abs();if(q.isZero())return this.abs();var j=this.clone(),k=q.clone();j.negative=0,k.negative=0;for(var g=0;j.isEven()&&k.isEven();g++)j.iushrn(1),k.iushrn(1);do{for(;j.isEven();)j.iushrn(1);for(;k.isEven();)k.iushrn(1);var N=j.cmp(k);if(N<0){var x=j;j=k,k=x}else if(N===0||k.cmpn(1)===0)break;j.isub(k)}while(!0);return k.iushln(g)},V.prototype.invm=function(q){return this.egcd(q).a.umod(q)},V.prototype.isEven=function(){return(this.words[0]&1)===0},V.prototype.isOdd=function(){return(this.words[0]&1)===1},V.prototype.andln=function(q){return this.words[0]&q},V.prototype.bincn=function(q){Z(typeof q=="number");var j=q%26,k=(q-j)/26,g=1<>>26,_&=67108863,this.words[x]=_}return N!==0&&(this.words[x]=N,this.length++),this},V.prototype.isZero=function(){return this.length===1&&this.words[0]===0},V.prototype.cmpn=function(q){var j=q<0;if(this.negative!==0&&!j)return-1;if(this.negative===0&&j)return 1;this.strip();var k;if(this.length>1)k=1;else{j&&(q=-q),Z(q<=67108863,"Number is too big");var g=this.words[0]|0;k=g===q?0:gq.length)return 1;if(this.length=0;k--){var g=this.words[k]|0,N=q.words[k]|0;if(g!==N){gN&&(j=1);break}}return j},V.prototype.gtn=function(q){return this.cmpn(q)===1},V.prototype.gt=function(q){return this.cmp(q)===1},V.prototype.gten=function(q){return this.cmpn(q)>=0},V.prototype.gte=function(q){return this.cmp(q)>=0},V.prototype.ltn=function(q){return this.cmpn(q)===-1},V.prototype.lt=function(q){return this.cmp(q)===-1},V.prototype.lten=function(q){return this.cmpn(q)<=0},V.prototype.lte=function(q){return this.cmp(q)<=0},V.prototype.eqn=function(q){return this.cmpn(q)===0},V.prototype.eq=function(q){return this.cmp(q)===0},V.red=function(q){return new S(q)},V.prototype.toRed=function(q){return Z(!this.red,"Already a number in reduction context"),Z(this.negative===0,"red works only with positives"),q.convertTo(this)._forceRed(q)},V.prototype.fromRed=function(){return Z(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},V.prototype._forceRed=function(q){return this.red=q,this},V.prototype.forceRed=function(q){return Z(!this.red,"Already a number in reduction context"),this._forceRed(q)},V.prototype.redAdd=function(q){return Z(this.red,"redAdd works only with red numbers"),this.red.add(this,q)},V.prototype.redIAdd=function(q){return Z(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,q)},V.prototype.redSub=function(q){return Z(this.red,"redSub works only with red numbers"),this.red.sub(this,q)},V.prototype.redISub=function(q){return Z(this.red,"redISub works only with red numbers"),this.red.isub(this,q)},V.prototype.redShl=function(q){return Z(this.red,"redShl works only with red numbers"),this.red.shl(this,q)},V.prototype.redMul=function(q){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,q),this.red.mul(this,q)},V.prototype.redIMul=function(q){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,q),this.red.imul(this,q)},V.prototype.redSqr=function(){return Z(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},V.prototype.redISqr=function(){return Z(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},V.prototype.redSqrt=function(){return Z(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},V.prototype.redInvm=function(){return Z(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},V.prototype.redNeg=function(){return Z(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},V.prototype.redPow=function(q){return Z(this.red&&!q.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,q)};var C={k256:null,p224:null,p192:null,p25519:null};function L(q,j){this.name=q,this.p=new V(j,16),this.n=this.p.bitLength(),this.k=new V(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}L.prototype._tmp=function(){var q=new V(null);return q.words=new Array(Math.ceil(this.n/13)),q},L.prototype.ireduce=function(q){var j=q,k;do this.split(j,this.tmp),j=this.imulK(j),j=j.iadd(this.tmp),k=j.bitLength();while(k>this.n);var g=k0?j.isub(this.p):j.strip!==void 0?j.strip():j._strip(),j},L.prototype.split=function(q,j){q.iushrn(this.n,0,j)},L.prototype.imulK=function(q){return q.imul(this.k)};function R(){L.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}G(R,L),R.prototype.split=function(q,j){for(var k=4194303,g=Math.min(q.length,9),N=0;N>>22,x=_}x>>>=22,q.words[N-10]=x,x===0&&q.length>10?q.length-=10:q.length-=9},R.prototype.imulK=function(q){q.words[q.length]=0,q.words[q.length+1]=0,q.length+=2;for(var j=0,k=0;k>>=26,q.words[k]=N,j=g}return j!==0&&(q.words[q.length++]=j),q},V._prime=function(q){if(C[q])return C[q];var j;if(q==="k256")j=new R;else if(q==="p224")j=new P;else if(q==="p192")j=new z;else if(q==="p25519")j=new M;else throw new Error("Unknown prime "+q);return C[q]=j,j};function S(q){if(typeof q=="string"){var j=V._prime(q);this.m=j.p,this.prime=j}else Z(q.gtn(1),"modulus must be greater than 1"),this.m=q,this.prime=null}S.prototype._verify1=function(q){Z(q.negative===0,"red works only with positives"),Z(q.red,"red works only with red numbers")},S.prototype._verify2=function(q,j){Z((q.negative|j.negative)===0,"red works only with positives"),Z(q.red&&q.red===j.red,"red works only with red numbers")},S.prototype.imod=function(q){return this.prime?this.prime.ireduce(q)._forceRed(this):q.umod(this.m)._forceRed(this)},S.prototype.neg=function(q){return q.isZero()?q.clone():this.m.sub(q)._forceRed(this)},S.prototype.add=function(q,j){this._verify2(q,j);var k=q.add(j);return k.cmp(this.m)>=0&&k.isub(this.m),k._forceRed(this)},S.prototype.iadd=function(q,j){this._verify2(q,j);var k=q.iadd(j);return k.cmp(this.m)>=0&&k.isub(this.m),k},S.prototype.sub=function(q,j){this._verify2(q,j);var k=q.sub(j);return k.cmpn(0)<0&&k.iadd(this.m),k._forceRed(this)},S.prototype.isub=function(q,j){this._verify2(q,j);var k=q.isub(j);return k.cmpn(0)<0&&k.iadd(this.m),k},S.prototype.shl=function(q,j){return this._verify1(q),this.imod(q.ushln(j))},S.prototype.imul=function(q,j){return this._verify2(q,j),this.imod(q.imul(j))},S.prototype.mul=function(q,j){return this._verify2(q,j),this.imod(q.mul(j))},S.prototype.isqr=function(q){return this.imul(q,q.clone())},S.prototype.sqr=function(q){return this.mul(q,q)},S.prototype.sqrt=function(q){if(q.isZero())return q.clone();var j=this.m.andln(3);if(Z(j%2===1),j===3){var k=this.m.add(new V(1)).iushrn(2);return this.pow(q,k)}for(var g=this.m.subn(1),N=0;!g.isZero()&&g.andln(1)===0;)N++,g.iushrn(1);Z(!g.isZero());var x=new V(1).toRed(this),_=x.redNeg(),B=this.m.subn(1).iushrn(1),y=this.m.bitLength();for(y=new V(2*y*y).toRed(this);this.pow(y,B).cmp(_)!==0;)y.redIAdd(_);for(var w=this.pow(y,g),f=this.pow(q,g.addn(1).iushrn(1)),p=this.pow(q,g),c=N;p.cmp(x)!==0;){for(var h=p,d=0;h.cmp(x)!==0;d++)h=h.redSqr();Z(d=0;N--){for(var w=j.words[N],f=y-1;f>=0;f--){var p=w>>f&1;if(x!==g[0]&&(x=this.sqr(x)),p===0&&_===0){B=0;continue}_<<=1,_|=p,B++,!(B!==k&&(N!==0||f!==0))&&(x=this.mul(x,g[_]),B=0,_=0)}y=26}return x},S.prototype.convertTo=function(q){var j=q.umod(this.m);return j===q?j.clone():j},S.prototype.convertFrom=function(q){var j=q.clone();return j.red=null,j},V.mont=function(q){return new v(q)};function v(q){S.call(this,q),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new V(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}G(v,S),v.prototype.convertTo=function(q){return this.imod(q.ushln(this.shift))},v.prototype.convertFrom=function(q){var j=this.imod(q.mul(this.rinv));return j.red=null,j},v.prototype.imul=function(q,j){if(q.isZero()||j.isZero())return q.words[0]=0,q.length=1,q;var k=q.imul(j),g=k.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=k.isub(g).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},v.prototype.mul=function(q,j){if(q.isZero()||j.isZero())return new V(0)._forceRed(this);var k=q.mul(j),g=k.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=k.isub(g).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},v.prototype.invm=function(q){var j=this.imod(q._invmp(this.m).mul(this.r2));return j._forceRed(this)}})(typeof $>"u"||$,bZ)}}),cY=P$({"node_modules/create-ecdh/browser.js"(bZ,$){var Q=AY(),Y=pY();$.exports=function(U){return new G(U)};var Z={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};Z.p224=Z.secp224r1,Z.p256=Z.secp256r1=Z.prime256v1,Z.p192=Z.secp192r1=Z.prime192v1,Z.p384=Z.secp384r1,Z.p521=Z.secp521r1;function G(U){this.curveType=Z[U],this.curveType||(this.curveType={name:U}),this.curve=new Q.ec(this.curveType.name),this.keys=void 0}G.prototype.generateKeys=function(U,X){return this.keys=this.curve.genKeyPair(),this.getPublicKey(U,X)},G.prototype.computeSecret=function(U,X,K){X=X||"utf8",Buffer.isBuffer(U)||(U=new Buffer(U,X));var I=this.curve.keyFromPublic(U).getPublic(),J=I.mul(this.keys.getPrivate()).getX();return V(J,K,this.curveType.byteLength)},G.prototype.getPublicKey=function(U,X){var K=this.keys.getPublic(X==="compressed",!0);return X==="hybrid"&&(K[K.length-1]%2?K[0]=7:K[0]=6),V(K,U)},G.prototype.getPrivateKey=function(U){return V(this.keys.getPrivate(),U)},G.prototype.setPublicKey=function(U,X){return X=X||"utf8",Buffer.isBuffer(U)||(U=new Buffer(U,X)),this.keys._importPublic(U),this},G.prototype.setPrivateKey=function(U,X){X=X||"utf8",Buffer.isBuffer(U)||(U=new Buffer(U,X));var K=new Y(U);return K=K.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(K),this};function V(U,X,K){Array.isArray(U)||(U=U.toArray());var I=new Buffer(U);if(K&&I.length0?q:j},V.min=function(q,j){return q.cmp(j)<0?q:j},V.prototype._init=function(q,j,k){if(typeof q=="number")return this._initNumber(q,j,k);if(typeof q=="object")return this._initArray(q,j,k);j==="hex"&&(j=16),Z(j===(j|0)&&j>=2&&j<=36),q=q.toString().replace(/\s+/g,"");var g=0;q[0]==="-"&&(g++,this.negative=1),g=0;g-=3)x=q[g]|q[g-1]<<8|q[g-2]<<16,this.words[N]|=x<<_&67108863,this.words[N+1]=x>>>26-_&67108863,_+=24,_>=26&&(_-=26,N++);else if(k==="le")for(g=0,N=0;g>>26-_&67108863,_+=24,_>=26&&(_-=26,N++);return this.strip()};function X(q,j){var k=q.charCodeAt(j);return k>=65&&k<=70?k-55:k>=97&&k<=102?k-87:k-48&15}function K(q,j,k){var g=X(q,k);return k-1>=j&&(g|=X(q,k-1)<<4),g}V.prototype._parseHex=function(q,j,k){this.length=Math.ceil((q.length-j)/6),this.words=new Array(this.length);for(var g=0;g=j;g-=2)_=K(q,j,g)<=18?(N-=18,x+=1,this.words[x]|=_>>>26):N+=8;else{var B=q.length-j;for(g=B%2===0?j+1:j;g=18?(N-=18,x+=1,this.words[x]|=_>>>26):N+=8}this.strip()};function I(q,j,k,g){for(var N=0,x=Math.min(q.length,k),_=j;_=49?N+=B-49+10:B>=17?N+=B-17+10:N+=B}return N}V.prototype._parseBase=function(q,j,k){this.words=[0],this.length=1;for(var g=0,N=1;N<=67108863;N*=j)g++;g--,N=N/j|0;for(var x=q.length-k,_=x%g,B=Math.min(x,x-_)+k,y=0,w=k;w1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},V.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},V.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],O=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],F=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];V.prototype.toString=function(q,j){q=q||10,j=j|0||1;var k;if(q===16||q==="hex"){k="";for(var g=0,N=0,x=0;x>>24-g&16777215,N!==0||x!==this.length-1?k=J[6-B.length]+B+k:k=B+k,g+=2,g>=26&&(g-=26,x--)}for(N!==0&&(k=N.toString(16)+k);k.length%j!==0;)k="0"+k;return this.negative!==0&&(k="-"+k),k}if(q===(q|0)&&q>=2&&q<=36){var y=O[q],w=F[q];k="";var f=this.clone();for(f.negative=0;!f.isZero();){var p=f.modn(w).toString(q);f=f.idivn(w),f.isZero()?k=p+k:k=J[y-p.length]+p+k}for(this.isZero()&&(k="0"+k);k.length%j!==0;)k="0"+k;return this.negative!==0&&(k="-"+k),k}Z(!1,"Base should be between 2 and 36")},V.prototype.toNumber=function(){var q=this.words[0];return this.length===2?q+=this.words[1]*67108864:this.length===3&&this.words[2]===1?q+=4503599627370496+this.words[1]*67108864:this.length>2&&Z(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-q:q},V.prototype.toJSON=function(){return this.toString(16)},V.prototype.toBuffer=function(q,j){return Z(typeof U<"u"),this.toArrayLike(U,q,j)},V.prototype.toArray=function(q,j){return this.toArrayLike(Array,q,j)},V.prototype.toArrayLike=function(q,j,k){var g=this.byteLength(),N=k||Math.max(1,g);Z(g<=N,"byte array longer than desired length"),Z(N>0,"Requested array length <= 0"),this.strip();var x=j==="le",_=new q(N),B,y,w=this.clone();if(x){for(y=0;!w.isZero();y++)B=w.andln(255),w.iushrn(8),_[y]=B;for(;y=4096&&(k+=13,j>>>=13),j>=64&&(k+=7,j>>>=7),j>=8&&(k+=4,j>>>=4),j>=2&&(k+=2,j>>>=2),k+j},V.prototype._zeroBits=function(q){if(q===0)return 26;var j=q,k=0;return(j&8191)===0&&(k+=13,j>>>=13),(j&127)===0&&(k+=7,j>>>=7),(j&15)===0&&(k+=4,j>>>=4),(j&3)===0&&(k+=2,j>>>=2),(j&1)===0&&k++,k},V.prototype.bitLength=function(){var q=this.words[this.length-1],j=this._countBits(q);return(this.length-1)*26+j};function A(q){for(var j=new Array(q.bitLength()),k=0;k>>N}return j}V.prototype.zeroBits=function(){if(this.isZero())return 0;for(var q=0,j=0;jq.length?this.clone().ior(q):q.clone().ior(this)},V.prototype.uor=function(q){return this.length>q.length?this.clone().iuor(q):q.clone().iuor(this)},V.prototype.iuand=function(q){var j;this.length>q.length?j=q:j=this;for(var k=0;kq.length?this.clone().iand(q):q.clone().iand(this)},V.prototype.uand=function(q){return this.length>q.length?this.clone().iuand(q):q.clone().iuand(this)},V.prototype.iuxor=function(q){var j,k;this.length>q.length?(j=this,k=q):(j=q,k=this);for(var g=0;gq.length?this.clone().ixor(q):q.clone().ixor(this)},V.prototype.uxor=function(q){return this.length>q.length?this.clone().iuxor(q):q.clone().iuxor(this)},V.prototype.inotn=function(q){Z(typeof q=="number"&&q>=0);var j=Math.ceil(q/26)|0,k=q%26;this._expand(j),k>0&&j--;for(var g=0;g0&&(this.words[g]=~this.words[g]&67108863>>26-k),this.strip()},V.prototype.notn=function(q){return this.clone().inotn(q)},V.prototype.setn=function(q,j){Z(typeof q=="number"&&q>=0);var k=q/26|0,g=q%26;return this._expand(k+1),j?this.words[k]=this.words[k]|1<q.length?(k=this,g=q):(k=q,g=this);for(var N=0,x=0;x>>26;for(;N!==0&&x>>26;if(this.length=k.length,N!==0)this.words[this.length]=N,this.length++;else if(k!==this)for(;xq.length?this.clone().iadd(q):q.clone().iadd(this)},V.prototype.isub=function(q){if(q.negative!==0){q.negative=0;var j=this.iadd(q);return q.negative=1,j._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(q),this.negative=1,this._normSign();var k=this.cmp(q);if(k===0)return this.negative=0,this.length=1,this.words[0]=0,this;var g,N;k>0?(g=this,N=q):(g=q,N=this);for(var x=0,_=0;_>26,this.words[_]=j&67108863;for(;x!==0&&_>26,this.words[_]=j&67108863;if(x===0&&_>>26,p=y&67108863,c=Math.min(w,j.length-1),h=Math.max(0,w-q.length+1);h<=c;h++){var d=w-h|0;N=q.words[d]|0,x=j.words[h]|0,_=N*x+p,f+=_/67108864|0,p=_&67108863}k.words[w]=p|0,y=f|0}return y!==0?k.words[w]=y|0:k.length--,k.strip()}var H=function(q,j,k){var g=q.words,N=j.words,x=k.words,_=0,B,y,w,f=g[0]|0,p=f&8191,c=f>>>13,h=g[1]|0,d=h&8191,b=h>>>13,l=g[2]|0,o=l&8191,u=l>>>13,n=g[3]|0,s=n&8191,t=n>>>13,m=g[4]|0,a=m&8191,r=m>>>13,e=g[5]|0,i=e&8191,$0=e>>>13,Q0=g[6]|0,Y0=Q0&8191,Z0=Q0>>>13,G0=g[7]|0,V0=G0&8191,U0=G0>>>13,X0=g[8]|0,K0=X0&8191,I0=X0>>>13,J0=g[9]|0,O0=J0&8191,F0=J0>>>13,A0=N[0]|0,W0=A0&8191,H0=A0>>>13,E0=N[1]|0,T0=E0&8191,D0=E0>>>13,C0=N[2]|0,L0=C0&8191,R0=C0>>>13,P0=N[3]|0,z0=P0&8191,M0=P0>>>13,S0=N[4]|0,v0=S0&8191,q0=S0>>>13,j0=N[5]|0,k0=j0&8191,g0=j0>>>13,N0=N[6]|0,x0=N0&8191,_0=N0>>>13,B0=N[7]|0,y0=B0&8191,w0=B0>>>13,f0=N[8]|0,p0=f0&8191,c0=f0>>>13,h0=N[9]|0,d0=h0&8191,b0=h0>>>13;k.negative=q.negative^j.negative,k.length=19,B=Math.imul(p,W0),y=Math.imul(p,H0),y=y+Math.imul(c,W0)|0,w=Math.imul(c,H0);var l0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(l0>>>26)|0,l0&=67108863,B=Math.imul(d,W0),y=Math.imul(d,H0),y=y+Math.imul(b,W0)|0,w=Math.imul(b,H0),B=B+Math.imul(p,T0)|0,y=y+Math.imul(p,D0)|0,y=y+Math.imul(c,T0)|0,w=w+Math.imul(c,D0)|0;var o0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(o0>>>26)|0,o0&=67108863,B=Math.imul(o,W0),y=Math.imul(o,H0),y=y+Math.imul(u,W0)|0,w=Math.imul(u,H0),B=B+Math.imul(d,T0)|0,y=y+Math.imul(d,D0)|0,y=y+Math.imul(b,T0)|0,w=w+Math.imul(b,D0)|0,B=B+Math.imul(p,L0)|0,y=y+Math.imul(p,R0)|0,y=y+Math.imul(c,L0)|0,w=w+Math.imul(c,R0)|0;var u0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(u0>>>26)|0,u0&=67108863,B=Math.imul(s,W0),y=Math.imul(s,H0),y=y+Math.imul(t,W0)|0,w=Math.imul(t,H0),B=B+Math.imul(o,T0)|0,y=y+Math.imul(o,D0)|0,y=y+Math.imul(u,T0)|0,w=w+Math.imul(u,D0)|0,B=B+Math.imul(d,L0)|0,y=y+Math.imul(d,R0)|0,y=y+Math.imul(b,L0)|0,w=w+Math.imul(b,R0)|0,B=B+Math.imul(p,z0)|0,y=y+Math.imul(p,M0)|0,y=y+Math.imul(c,z0)|0,w=w+Math.imul(c,M0)|0;var n0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(n0>>>26)|0,n0&=67108863,B=Math.imul(a,W0),y=Math.imul(a,H0),y=y+Math.imul(r,W0)|0,w=Math.imul(r,H0),B=B+Math.imul(s,T0)|0,y=y+Math.imul(s,D0)|0,y=y+Math.imul(t,T0)|0,w=w+Math.imul(t,D0)|0,B=B+Math.imul(o,L0)|0,y=y+Math.imul(o,R0)|0,y=y+Math.imul(u,L0)|0,w=w+Math.imul(u,R0)|0,B=B+Math.imul(d,z0)|0,y=y+Math.imul(d,M0)|0,y=y+Math.imul(b,z0)|0,w=w+Math.imul(b,M0)|0,B=B+Math.imul(p,v0)|0,y=y+Math.imul(p,q0)|0,y=y+Math.imul(c,v0)|0,w=w+Math.imul(c,q0)|0;var s0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(s0>>>26)|0,s0&=67108863,B=Math.imul(i,W0),y=Math.imul(i,H0),y=y+Math.imul($0,W0)|0,w=Math.imul($0,H0),B=B+Math.imul(a,T0)|0,y=y+Math.imul(a,D0)|0,y=y+Math.imul(r,T0)|0,w=w+Math.imul(r,D0)|0,B=B+Math.imul(s,L0)|0,y=y+Math.imul(s,R0)|0,y=y+Math.imul(t,L0)|0,w=w+Math.imul(t,R0)|0,B=B+Math.imul(o,z0)|0,y=y+Math.imul(o,M0)|0,y=y+Math.imul(u,z0)|0,w=w+Math.imul(u,M0)|0,B=B+Math.imul(d,v0)|0,y=y+Math.imul(d,q0)|0,y=y+Math.imul(b,v0)|0,w=w+Math.imul(b,q0)|0,B=B+Math.imul(p,k0)|0,y=y+Math.imul(p,g0)|0,y=y+Math.imul(c,k0)|0,w=w+Math.imul(c,g0)|0;var t0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(t0>>>26)|0,t0&=67108863,B=Math.imul(Y0,W0),y=Math.imul(Y0,H0),y=y+Math.imul(Z0,W0)|0,w=Math.imul(Z0,H0),B=B+Math.imul(i,T0)|0,y=y+Math.imul(i,D0)|0,y=y+Math.imul($0,T0)|0,w=w+Math.imul($0,D0)|0,B=B+Math.imul(a,L0)|0,y=y+Math.imul(a,R0)|0,y=y+Math.imul(r,L0)|0,w=w+Math.imul(r,R0)|0,B=B+Math.imul(s,z0)|0,y=y+Math.imul(s,M0)|0,y=y+Math.imul(t,z0)|0,w=w+Math.imul(t,M0)|0,B=B+Math.imul(o,v0)|0,y=y+Math.imul(o,q0)|0,y=y+Math.imul(u,v0)|0,w=w+Math.imul(u,q0)|0,B=B+Math.imul(d,k0)|0,y=y+Math.imul(d,g0)|0,y=y+Math.imul(b,k0)|0,w=w+Math.imul(b,g0)|0,B=B+Math.imul(p,x0)|0,y=y+Math.imul(p,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,_0)|0;var m0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(m0>>>26)|0,m0&=67108863,B=Math.imul(V0,W0),y=Math.imul(V0,H0),y=y+Math.imul(U0,W0)|0,w=Math.imul(U0,H0),B=B+Math.imul(Y0,T0)|0,y=y+Math.imul(Y0,D0)|0,y=y+Math.imul(Z0,T0)|0,w=w+Math.imul(Z0,D0)|0,B=B+Math.imul(i,L0)|0,y=y+Math.imul(i,R0)|0,y=y+Math.imul($0,L0)|0,w=w+Math.imul($0,R0)|0,B=B+Math.imul(a,z0)|0,y=y+Math.imul(a,M0)|0,y=y+Math.imul(r,z0)|0,w=w+Math.imul(r,M0)|0,B=B+Math.imul(s,v0)|0,y=y+Math.imul(s,q0)|0,y=y+Math.imul(t,v0)|0,w=w+Math.imul(t,q0)|0,B=B+Math.imul(o,k0)|0,y=y+Math.imul(o,g0)|0,y=y+Math.imul(u,k0)|0,w=w+Math.imul(u,g0)|0,B=B+Math.imul(d,x0)|0,y=y+Math.imul(d,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,_0)|0,B=B+Math.imul(p,y0)|0,y=y+Math.imul(p,w0)|0,y=y+Math.imul(c,y0)|0,w=w+Math.imul(c,w0)|0;var a0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(a0>>>26)|0,a0&=67108863,B=Math.imul(K0,W0),y=Math.imul(K0,H0),y=y+Math.imul(I0,W0)|0,w=Math.imul(I0,H0),B=B+Math.imul(V0,T0)|0,y=y+Math.imul(V0,D0)|0,y=y+Math.imul(U0,T0)|0,w=w+Math.imul(U0,D0)|0,B=B+Math.imul(Y0,L0)|0,y=y+Math.imul(Y0,R0)|0,y=y+Math.imul(Z0,L0)|0,w=w+Math.imul(Z0,R0)|0,B=B+Math.imul(i,z0)|0,y=y+Math.imul(i,M0)|0,y=y+Math.imul($0,z0)|0,w=w+Math.imul($0,M0)|0,B=B+Math.imul(a,v0)|0,y=y+Math.imul(a,q0)|0,y=y+Math.imul(r,v0)|0,w=w+Math.imul(r,q0)|0,B=B+Math.imul(s,k0)|0,y=y+Math.imul(s,g0)|0,y=y+Math.imul(t,k0)|0,w=w+Math.imul(t,g0)|0,B=B+Math.imul(o,x0)|0,y=y+Math.imul(o,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,_0)|0,B=B+Math.imul(d,y0)|0,y=y+Math.imul(d,w0)|0,y=y+Math.imul(b,y0)|0,w=w+Math.imul(b,w0)|0,B=B+Math.imul(p,p0)|0,y=y+Math.imul(p,c0)|0,y=y+Math.imul(c,p0)|0,w=w+Math.imul(c,c0)|0;var r0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(r0>>>26)|0,r0&=67108863,B=Math.imul(O0,W0),y=Math.imul(O0,H0),y=y+Math.imul(F0,W0)|0,w=Math.imul(F0,H0),B=B+Math.imul(K0,T0)|0,y=y+Math.imul(K0,D0)|0,y=y+Math.imul(I0,T0)|0,w=w+Math.imul(I0,D0)|0,B=B+Math.imul(V0,L0)|0,y=y+Math.imul(V0,R0)|0,y=y+Math.imul(U0,L0)|0,w=w+Math.imul(U0,R0)|0,B=B+Math.imul(Y0,z0)|0,y=y+Math.imul(Y0,M0)|0,y=y+Math.imul(Z0,z0)|0,w=w+Math.imul(Z0,M0)|0,B=B+Math.imul(i,v0)|0,y=y+Math.imul(i,q0)|0,y=y+Math.imul($0,v0)|0,w=w+Math.imul($0,q0)|0,B=B+Math.imul(a,k0)|0,y=y+Math.imul(a,g0)|0,y=y+Math.imul(r,k0)|0,w=w+Math.imul(r,g0)|0,B=B+Math.imul(s,x0)|0,y=y+Math.imul(s,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,_0)|0,B=B+Math.imul(o,y0)|0,y=y+Math.imul(o,w0)|0,y=y+Math.imul(u,y0)|0,w=w+Math.imul(u,w0)|0,B=B+Math.imul(d,p0)|0,y=y+Math.imul(d,c0)|0,y=y+Math.imul(b,p0)|0,w=w+Math.imul(b,c0)|0,B=B+Math.imul(p,d0)|0,y=y+Math.imul(p,b0)|0,y=y+Math.imul(c,d0)|0,w=w+Math.imul(c,b0)|0;var e0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(e0>>>26)|0,e0&=67108863,B=Math.imul(O0,T0),y=Math.imul(O0,D0),y=y+Math.imul(F0,T0)|0,w=Math.imul(F0,D0),B=B+Math.imul(K0,L0)|0,y=y+Math.imul(K0,R0)|0,y=y+Math.imul(I0,L0)|0,w=w+Math.imul(I0,R0)|0,B=B+Math.imul(V0,z0)|0,y=y+Math.imul(V0,M0)|0,y=y+Math.imul(U0,z0)|0,w=w+Math.imul(U0,M0)|0,B=B+Math.imul(Y0,v0)|0,y=y+Math.imul(Y0,q0)|0,y=y+Math.imul(Z0,v0)|0,w=w+Math.imul(Z0,q0)|0,B=B+Math.imul(i,k0)|0,y=y+Math.imul(i,g0)|0,y=y+Math.imul($0,k0)|0,w=w+Math.imul($0,g0)|0,B=B+Math.imul(a,x0)|0,y=y+Math.imul(a,_0)|0,y=y+Math.imul(r,x0)|0,w=w+Math.imul(r,_0)|0,B=B+Math.imul(s,y0)|0,y=y+Math.imul(s,w0)|0,y=y+Math.imul(t,y0)|0,w=w+Math.imul(t,w0)|0,B=B+Math.imul(o,p0)|0,y=y+Math.imul(o,c0)|0,y=y+Math.imul(u,p0)|0,w=w+Math.imul(u,c0)|0,B=B+Math.imul(d,d0)|0,y=y+Math.imul(d,b0)|0,y=y+Math.imul(b,d0)|0,w=w+Math.imul(b,b0)|0;var i0=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(i0>>>26)|0,i0&=67108863,B=Math.imul(O0,L0),y=Math.imul(O0,R0),y=y+Math.imul(F0,L0)|0,w=Math.imul(F0,R0),B=B+Math.imul(K0,z0)|0,y=y+Math.imul(K0,M0)|0,y=y+Math.imul(I0,z0)|0,w=w+Math.imul(I0,M0)|0,B=B+Math.imul(V0,v0)|0,y=y+Math.imul(V0,q0)|0,y=y+Math.imul(U0,v0)|0,w=w+Math.imul(U0,q0)|0,B=B+Math.imul(Y0,k0)|0,y=y+Math.imul(Y0,g0)|0,y=y+Math.imul(Z0,k0)|0,w=w+Math.imul(Z0,g0)|0,B=B+Math.imul(i,x0)|0,y=y+Math.imul(i,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,_0)|0,B=B+Math.imul(a,y0)|0,y=y+Math.imul(a,w0)|0,y=y+Math.imul(r,y0)|0,w=w+Math.imul(r,w0)|0,B=B+Math.imul(s,p0)|0,y=y+Math.imul(s,c0)|0,y=y+Math.imul(t,p0)|0,w=w+Math.imul(t,c0)|0,B=B+Math.imul(o,d0)|0,y=y+Math.imul(o,b0)|0,y=y+Math.imul(u,d0)|0,w=w+Math.imul(u,b0)|0;var $$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+($$>>>26)|0,$$&=67108863,B=Math.imul(O0,z0),y=Math.imul(O0,M0),y=y+Math.imul(F0,z0)|0,w=Math.imul(F0,M0),B=B+Math.imul(K0,v0)|0,y=y+Math.imul(K0,q0)|0,y=y+Math.imul(I0,v0)|0,w=w+Math.imul(I0,q0)|0,B=B+Math.imul(V0,k0)|0,y=y+Math.imul(V0,g0)|0,y=y+Math.imul(U0,k0)|0,w=w+Math.imul(U0,g0)|0,B=B+Math.imul(Y0,x0)|0,y=y+Math.imul(Y0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,_0)|0,B=B+Math.imul(i,y0)|0,y=y+Math.imul(i,w0)|0,y=y+Math.imul($0,y0)|0,w=w+Math.imul($0,w0)|0,B=B+Math.imul(a,p0)|0,y=y+Math.imul(a,c0)|0,y=y+Math.imul(r,p0)|0,w=w+Math.imul(r,c0)|0,B=B+Math.imul(s,d0)|0,y=y+Math.imul(s,b0)|0,y=y+Math.imul(t,d0)|0,w=w+Math.imul(t,b0)|0;var Q$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,B=Math.imul(O0,v0),y=Math.imul(O0,q0),y=y+Math.imul(F0,v0)|0,w=Math.imul(F0,q0),B=B+Math.imul(K0,k0)|0,y=y+Math.imul(K0,g0)|0,y=y+Math.imul(I0,k0)|0,w=w+Math.imul(I0,g0)|0,B=B+Math.imul(V0,x0)|0,y=y+Math.imul(V0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,_0)|0,B=B+Math.imul(Y0,y0)|0,y=y+Math.imul(Y0,w0)|0,y=y+Math.imul(Z0,y0)|0,w=w+Math.imul(Z0,w0)|0,B=B+Math.imul(i,p0)|0,y=y+Math.imul(i,c0)|0,y=y+Math.imul($0,p0)|0,w=w+Math.imul($0,c0)|0,B=B+Math.imul(a,d0)|0,y=y+Math.imul(a,b0)|0,y=y+Math.imul(r,d0)|0,w=w+Math.imul(r,b0)|0;var Y$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,B=Math.imul(O0,k0),y=Math.imul(O0,g0),y=y+Math.imul(F0,k0)|0,w=Math.imul(F0,g0),B=B+Math.imul(K0,x0)|0,y=y+Math.imul(K0,_0)|0,y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,_0)|0,B=B+Math.imul(V0,y0)|0,y=y+Math.imul(V0,w0)|0,y=y+Math.imul(U0,y0)|0,w=w+Math.imul(U0,w0)|0,B=B+Math.imul(Y0,p0)|0,y=y+Math.imul(Y0,c0)|0,y=y+Math.imul(Z0,p0)|0,w=w+Math.imul(Z0,c0)|0,B=B+Math.imul(i,d0)|0,y=y+Math.imul(i,b0)|0,y=y+Math.imul($0,d0)|0,w=w+Math.imul($0,b0)|0;var Z$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,B=Math.imul(O0,x0),y=Math.imul(O0,_0),y=y+Math.imul(F0,x0)|0,w=Math.imul(F0,_0),B=B+Math.imul(K0,y0)|0,y=y+Math.imul(K0,w0)|0,y=y+Math.imul(I0,y0)|0,w=w+Math.imul(I0,w0)|0,B=B+Math.imul(V0,p0)|0,y=y+Math.imul(V0,c0)|0,y=y+Math.imul(U0,p0)|0,w=w+Math.imul(U0,c0)|0,B=B+Math.imul(Y0,d0)|0,y=y+Math.imul(Y0,b0)|0,y=y+Math.imul(Z0,d0)|0,w=w+Math.imul(Z0,b0)|0;var G$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(G$>>>26)|0,G$&=67108863,B=Math.imul(O0,y0),y=Math.imul(O0,w0),y=y+Math.imul(F0,y0)|0,w=Math.imul(F0,w0),B=B+Math.imul(K0,p0)|0,y=y+Math.imul(K0,c0)|0,y=y+Math.imul(I0,p0)|0,w=w+Math.imul(I0,c0)|0,B=B+Math.imul(V0,d0)|0,y=y+Math.imul(V0,b0)|0,y=y+Math.imul(U0,d0)|0,w=w+Math.imul(U0,b0)|0;var V$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(V$>>>26)|0,V$&=67108863,B=Math.imul(O0,p0),y=Math.imul(O0,c0),y=y+Math.imul(F0,p0)|0,w=Math.imul(F0,c0),B=B+Math.imul(K0,d0)|0,y=y+Math.imul(K0,b0)|0,y=y+Math.imul(I0,d0)|0,w=w+Math.imul(I0,b0)|0;var U$=(_+B|0)+((y&8191)<<13)|0;_=(w+(y>>>13)|0)+(U$>>>26)|0,U$&=67108863,B=Math.imul(O0,d0),y=Math.imul(O0,b0),y=y+Math.imul(F0,d0)|0,w=Math.imul(F0,b0);var X$=(_+B|0)+((y&8191)<<13)|0;return _=(w+(y>>>13)|0)+(X$>>>26)|0,X$&=67108863,x[0]=l0,x[1]=o0,x[2]=u0,x[3]=n0,x[4]=s0,x[5]=t0,x[6]=m0,x[7]=a0,x[8]=r0,x[9]=e0,x[10]=i0,x[11]=$$,x[12]=Q$,x[13]=Y$,x[14]=Z$,x[15]=G$,x[16]=V$,x[17]=U$,x[18]=X$,_!==0&&(x[19]=_,k.length++),k};Math.imul||(H=W);function E(q,j,k){k.negative=j.negative^q.negative,k.length=q.length+j.length;for(var g=0,N=0,x=0;x>>26)|0,N+=_>>>26,_&=67108863}k.words[x]=B,g=_,_=N}return g!==0?k.words[x]=g:k.length--,k.strip()}function T(q,j,k){var g=new D;return g.mulp(q,j,k)}V.prototype.mulTo=function(q,j){var k,g=this.length+q.length;return this.length===10&&q.length===10?k=H(this,q,j):g<63?k=W(this,q,j):g<1024?k=E(this,q,j):k=T(this,q,j),k};function D(q,j){this.x=q,this.y=j}D.prototype.makeRBT=function(q){for(var j=new Array(q),k=V.prototype._countBits(q)-1,g=0;g>=1;return g},D.prototype.permute=function(q,j,k,g,N,x){for(var _=0;_>>1)N++;return 1<>>13,k[2*x+1]=N&8191,N=N>>>13;for(x=2*j;x>=26,j+=g/67108864|0,j+=N>>>26,this.words[k]=N&67108863}return j!==0&&(this.words[k]=j,this.length++),this},V.prototype.muln=function(q){return this.clone().imuln(q)},V.prototype.sqr=function(){return this.mul(this)},V.prototype.isqr=function(){return this.imul(this.clone())},V.prototype.pow=function(q){var j=A(q);if(j.length===0)return new V(1);for(var k=this,g=0;g=0);var j=q%26,k=(q-j)/26,g=67108863>>>26-j<<26-j,N;if(j!==0){var x=0;for(N=0;N>>26-j}x&&(this.words[N]=x,this.length++)}if(k!==0){for(N=this.length-1;N>=0;N--)this.words[N+k]=this.words[N];for(N=0;N=0);var g;j?g=(j-j%26)/26:g=0;var N=q%26,x=Math.min((q-N)/26,this.length),_=67108863^67108863>>>N<x)for(this.length-=x,y=0;y=0&&(w!==0||y>=g);y--){var f=this.words[y]|0;this.words[y]=w<<26-N|f>>>N,w=f&_}return B&&w!==0&&(B.words[B.length++]=w),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},V.prototype.ishrn=function(q,j,k){return Z(this.negative===0),this.iushrn(q,j,k)},V.prototype.shln=function(q){return this.clone().ishln(q)},V.prototype.ushln=function(q){return this.clone().iushln(q)},V.prototype.shrn=function(q){return this.clone().ishrn(q)},V.prototype.ushrn=function(q){return this.clone().iushrn(q)},V.prototype.testn=function(q){Z(typeof q=="number"&&q>=0);var j=q%26,k=(q-j)/26,g=1<=0);var j=q%26,k=(q-j)/26;if(Z(this.negative===0,"imaskn works only with positive numbers"),this.length<=k)return this;if(j!==0&&k++,this.length=Math.min(k,this.length),j!==0){var g=67108863^67108863>>>j<=67108864;j++)this.words[j]-=67108864,j===this.length-1?this.words[j+1]=1:this.words[j+1]++;return this.length=Math.max(this.length,j+1),this},V.prototype.isubn=function(q){if(Z(typeof q=="number"),Z(q<67108864),q<0)return this.iaddn(-q);if(this.negative!==0)return this.negative=0,this.iaddn(q),this.negative=1,this;if(this.words[0]-=q,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var j=0;j>26)-(B/67108864|0),this.words[N+k]=x&67108863}for(;N>26,this.words[N+k]=x&67108863;if(_===0)return this.strip();for(Z(_===-1),_=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},V.prototype._wordDiv=function(q,j){var k=this.length-q.length,g=this.clone(),N=q,x=N.words[N.length-1]|0,_=this._countBits(x);k=26-_,k!==0&&(N=N.ushln(k),g.iushln(k),x=N.words[N.length-1]|0);var B=g.length-N.length,y;if(j!=="mod"){y=new V(null),y.length=B+1,y.words=new Array(y.length);for(var w=0;w=0;p--){var c=(g.words[N.length+p]|0)*67108864+(g.words[N.length+p-1]|0);for(c=Math.min(c/x|0,67108863),g._ishlnsubmul(N,c,p);g.negative!==0;)c--,g.negative=0,g._ishlnsubmul(N,1,p),g.isZero()||(g.negative^=1);y&&(y.words[p]=c)}return y&&y.strip(),g.strip(),j!=="div"&&k!==0&&g.iushrn(k),{div:y||null,mod:g}},V.prototype.divmod=function(q,j,k){if(Z(!q.isZero()),this.isZero())return{div:new V(0),mod:new V(0)};var g,N,x;return this.negative!==0&&q.negative===0?(x=this.neg().divmod(q,j),j!=="mod"&&(g=x.div.neg()),j!=="div"&&(N=x.mod.neg(),k&&N.negative!==0&&N.iadd(q)),{div:g,mod:N}):this.negative===0&&q.negative!==0?(x=this.divmod(q.neg(),j),j!=="mod"&&(g=x.div.neg()),{div:g,mod:x.mod}):(this.negative&q.negative)!==0?(x=this.neg().divmod(q.neg(),j),j!=="div"&&(N=x.mod.neg(),k&&N.negative!==0&&N.isub(q)),{div:x.div,mod:N}):q.length>this.length||this.cmp(q)<0?{div:new V(0),mod:this}:q.length===1?j==="div"?{div:this.divn(q.words[0]),mod:null}:j==="mod"?{div:null,mod:new V(this.modn(q.words[0]))}:{div:this.divn(q.words[0]),mod:new V(this.modn(q.words[0]))}:this._wordDiv(q,j)},V.prototype.div=function(q){return this.divmod(q,"div",!1).div},V.prototype.mod=function(q){return this.divmod(q,"mod",!1).mod},V.prototype.umod=function(q){return this.divmod(q,"mod",!0).mod},V.prototype.divRound=function(q){var j=this.divmod(q);if(j.mod.isZero())return j.div;var k=j.div.negative!==0?j.mod.isub(q):j.mod,g=q.ushrn(1),N=q.andln(1),x=k.cmp(g);return x<0||N===1&&x===0?j.div:j.div.negative!==0?j.div.isubn(1):j.div.iaddn(1)},V.prototype.modn=function(q){Z(q<=67108863);for(var j=(1<<26)%q,k=0,g=this.length-1;g>=0;g--)k=(j*k+(this.words[g]|0))%q;return k},V.prototype.idivn=function(q){Z(q<=67108863);for(var j=0,k=this.length-1;k>=0;k--){var g=(this.words[k]|0)+j*67108864;this.words[k]=g/q|0,j=g%q}return this.strip()},V.prototype.divn=function(q){return this.clone().idivn(q)},V.prototype.egcd=function(q){Z(q.negative===0),Z(!q.isZero());var j=this,k=q.clone();j.negative!==0?j=j.umod(q):j=j.clone();for(var g=new V(1),N=new V(0),x=new V(0),_=new V(1),B=0;j.isEven()&&k.isEven();)j.iushrn(1),k.iushrn(1),++B;for(var y=k.clone(),w=j.clone();!j.isZero();){for(var f=0,p=1;(j.words[0]&p)===0&&f<26;++f,p<<=1);if(f>0)for(j.iushrn(f);f-- >0;)(g.isOdd()||N.isOdd())&&(g.iadd(y),N.isub(w)),g.iushrn(1),N.iushrn(1);for(var c=0,h=1;(k.words[0]&h)===0&&c<26;++c,h<<=1);if(c>0)for(k.iushrn(c);c-- >0;)(x.isOdd()||_.isOdd())&&(x.iadd(y),_.isub(w)),x.iushrn(1),_.iushrn(1);j.cmp(k)>=0?(j.isub(k),g.isub(x),N.isub(_)):(k.isub(j),x.isub(g),_.isub(N))}return{a:x,b:_,gcd:k.iushln(B)}},V.prototype._invmp=function(q){Z(q.negative===0),Z(!q.isZero());var j=this,k=q.clone();j.negative!==0?j=j.umod(q):j=j.clone();for(var g=new V(1),N=new V(0),x=k.clone();j.cmpn(1)>0&&k.cmpn(1)>0;){for(var _=0,B=1;(j.words[0]&B)===0&&_<26;++_,B<<=1);if(_>0)for(j.iushrn(_);_-- >0;)g.isOdd()&&g.iadd(x),g.iushrn(1);for(var y=0,w=1;(k.words[0]&w)===0&&y<26;++y,w<<=1);if(y>0)for(k.iushrn(y);y-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);j.cmp(k)>=0?(j.isub(k),g.isub(N)):(k.isub(j),N.isub(g))}var f;return j.cmpn(1)===0?f=g:f=N,f.cmpn(0)<0&&f.iadd(q),f},V.prototype.gcd=function(q){if(this.isZero())return q.abs();if(q.isZero())return this.abs();var j=this.clone(),k=q.clone();j.negative=0,k.negative=0;for(var g=0;j.isEven()&&k.isEven();g++)j.iushrn(1),k.iushrn(1);do{for(;j.isEven();)j.iushrn(1);for(;k.isEven();)k.iushrn(1);var N=j.cmp(k);if(N<0){var x=j;j=k,k=x}else if(N===0||k.cmpn(1)===0)break;j.isub(k)}while(!0);return k.iushln(g)},V.prototype.invm=function(q){return this.egcd(q).a.umod(q)},V.prototype.isEven=function(){return(this.words[0]&1)===0},V.prototype.isOdd=function(){return(this.words[0]&1)===1},V.prototype.andln=function(q){return this.words[0]&q},V.prototype.bincn=function(q){Z(typeof q=="number");var j=q%26,k=(q-j)/26,g=1<>>26,_&=67108863,this.words[x]=_}return N!==0&&(this.words[x]=N,this.length++),this},V.prototype.isZero=function(){return this.length===1&&this.words[0]===0},V.prototype.cmpn=function(q){var j=q<0;if(this.negative!==0&&!j)return-1;if(this.negative===0&&j)return 1;this.strip();var k;if(this.length>1)k=1;else{j&&(q=-q),Z(q<=67108863,"Number is too big");var g=this.words[0]|0;k=g===q?0:gq.length)return 1;if(this.length=0;k--){var g=this.words[k]|0,N=q.words[k]|0;if(g!==N){gN&&(j=1);break}}return j},V.prototype.gtn=function(q){return this.cmpn(q)===1},V.prototype.gt=function(q){return this.cmp(q)===1},V.prototype.gten=function(q){return this.cmpn(q)>=0},V.prototype.gte=function(q){return this.cmp(q)>=0},V.prototype.ltn=function(q){return this.cmpn(q)===-1},V.prototype.lt=function(q){return this.cmp(q)===-1},V.prototype.lten=function(q){return this.cmpn(q)<=0},V.prototype.lte=function(q){return this.cmp(q)<=0},V.prototype.eqn=function(q){return this.cmpn(q)===0},V.prototype.eq=function(q){return this.cmp(q)===0},V.red=function(q){return new S(q)},V.prototype.toRed=function(q){return Z(!this.red,"Already a number in reduction context"),Z(this.negative===0,"red works only with positives"),q.convertTo(this)._forceRed(q)},V.prototype.fromRed=function(){return Z(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},V.prototype._forceRed=function(q){return this.red=q,this},V.prototype.forceRed=function(q){return Z(!this.red,"Already a number in reduction context"),this._forceRed(q)},V.prototype.redAdd=function(q){return Z(this.red,"redAdd works only with red numbers"),this.red.add(this,q)},V.prototype.redIAdd=function(q){return Z(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,q)},V.prototype.redSub=function(q){return Z(this.red,"redSub works only with red numbers"),this.red.sub(this,q)},V.prototype.redISub=function(q){return Z(this.red,"redISub works only with red numbers"),this.red.isub(this,q)},V.prototype.redShl=function(q){return Z(this.red,"redShl works only with red numbers"),this.red.shl(this,q)},V.prototype.redMul=function(q){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,q),this.red.mul(this,q)},V.prototype.redIMul=function(q){return Z(this.red,"redMul works only with red numbers"),this.red._verify2(this,q),this.red.imul(this,q)},V.prototype.redSqr=function(){return Z(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},V.prototype.redISqr=function(){return Z(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},V.prototype.redSqrt=function(){return Z(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},V.prototype.redInvm=function(){return Z(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},V.prototype.redNeg=function(){return Z(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},V.prototype.redPow=function(q){return Z(this.red&&!q.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,q)};var C={k256:null,p224:null,p192:null,p25519:null};function L(q,j){this.name=q,this.p=new V(j,16),this.n=this.p.bitLength(),this.k=new V(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}L.prototype._tmp=function(){var q=new V(null);return q.words=new Array(Math.ceil(this.n/13)),q},L.prototype.ireduce=function(q){var j=q,k;do this.split(j,this.tmp),j=this.imulK(j),j=j.iadd(this.tmp),k=j.bitLength();while(k>this.n);var g=k0?j.isub(this.p):j.strip!==void 0?j.strip():j._strip(),j},L.prototype.split=function(q,j){q.iushrn(this.n,0,j)},L.prototype.imulK=function(q){return q.imul(this.k)};function R(){L.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}G(R,L),R.prototype.split=function(q,j){for(var k=4194303,g=Math.min(q.length,9),N=0;N>>22,x=_}x>>>=22,q.words[N-10]=x,x===0&&q.length>10?q.length-=10:q.length-=9},R.prototype.imulK=function(q){q.words[q.length]=0,q.words[q.length+1]=0,q.length+=2;for(var j=0,k=0;k>>=26,q.words[k]=N,j=g}return j!==0&&(q.words[q.length++]=j),q},V._prime=function(q){if(C[q])return C[q];var j;if(q==="k256")j=new R;else if(q==="p224")j=new P;else if(q==="p192")j=new z;else if(q==="p25519")j=new M;else throw new Error("Unknown prime "+q);return C[q]=j,j};function S(q){if(typeof q=="string"){var j=V._prime(q);this.m=j.p,this.prime=j}else Z(q.gtn(1),"modulus must be greater than 1"),this.m=q,this.prime=null}S.prototype._verify1=function(q){Z(q.negative===0,"red works only with positives"),Z(q.red,"red works only with red numbers")},S.prototype._verify2=function(q,j){Z((q.negative|j.negative)===0,"red works only with positives"),Z(q.red&&q.red===j.red,"red works only with red numbers")},S.prototype.imod=function(q){return this.prime?this.prime.ireduce(q)._forceRed(this):q.umod(this.m)._forceRed(this)},S.prototype.neg=function(q){return q.isZero()?q.clone():this.m.sub(q)._forceRed(this)},S.prototype.add=function(q,j){this._verify2(q,j);var k=q.add(j);return k.cmp(this.m)>=0&&k.isub(this.m),k._forceRed(this)},S.prototype.iadd=function(q,j){this._verify2(q,j);var k=q.iadd(j);return k.cmp(this.m)>=0&&k.isub(this.m),k},S.prototype.sub=function(q,j){this._verify2(q,j);var k=q.sub(j);return k.cmpn(0)<0&&k.iadd(this.m),k._forceRed(this)},S.prototype.isub=function(q,j){this._verify2(q,j);var k=q.isub(j);return k.cmpn(0)<0&&k.iadd(this.m),k},S.prototype.shl=function(q,j){return this._verify1(q),this.imod(q.ushln(j))},S.prototype.imul=function(q,j){return this._verify2(q,j),this.imod(q.imul(j))},S.prototype.mul=function(q,j){return this._verify2(q,j),this.imod(q.mul(j))},S.prototype.isqr=function(q){return this.imul(q,q.clone())},S.prototype.sqr=function(q){return this.mul(q,q)},S.prototype.sqrt=function(q){if(q.isZero())return q.clone();var j=this.m.andln(3);if(Z(j%2===1),j===3){var k=this.m.add(new V(1)).iushrn(2);return this.pow(q,k)}for(var g=this.m.subn(1),N=0;!g.isZero()&&g.andln(1)===0;)N++,g.iushrn(1);Z(!g.isZero());var x=new V(1).toRed(this),_=x.redNeg(),B=this.m.subn(1).iushrn(1),y=this.m.bitLength();for(y=new V(2*y*y).toRed(this);this.pow(y,B).cmp(_)!==0;)y.redIAdd(_);for(var w=this.pow(y,g),f=this.pow(q,g.addn(1).iushrn(1)),p=this.pow(q,g),c=N;p.cmp(x)!==0;){for(var h=p,d=0;h.cmp(x)!==0;d++)h=h.redSqr();Z(d=0;N--){for(var w=j.words[N],f=y-1;f>=0;f--){var p=w>>f&1;if(x!==g[0]&&(x=this.sqr(x)),p===0&&_===0){B=0;continue}_<<=1,_|=p,B++,!(B!==k&&(N!==0||f!==0))&&(x=this.mul(x,g[_]),B=0,_=0)}y=26}return x},S.prototype.convertTo=function(q){var j=q.umod(this.m);return j===q?j.clone():j},S.prototype.convertFrom=function(q){var j=q.clone();return j.red=null,j},V.mont=function(q){return new v(q)};function v(q){S.call(this,q),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new V(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}G(v,S),v.prototype.convertTo=function(q){return this.imod(q.ushln(this.shift))},v.prototype.convertFrom=function(q){var j=this.imod(q.mul(this.rinv));return j.red=null,j},v.prototype.imul=function(q,j){if(q.isZero()||j.isZero())return q.words[0]=0,q.length=1,q;var k=q.imul(j),g=k.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=k.isub(g).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},v.prototype.mul=function(q,j){if(q.isZero()||j.isZero())return new V(0)._forceRed(this);var k=q.mul(j),g=k.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=k.isub(g).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},v.prototype.invm=function(q){var j=this.imod(q._invmp(this.m).mul(this.r2));return j._forceRed(this)}})(typeof $>"u"||$,bZ)}}),{CryptoHasher:lY}=globalThis.Bun,oY=P$({"node_modules/public-encrypt/withPublic.js"(bZ,$){var Q=bY(),Y=M$().Buffer;function Z(G,V){return Y.from(G.toRed(Q.mont(V.modulus)).redPow(new Q(V.publicExponent)).fromRed().toArray())}$.exports=Z}}),uY=P$({"node_modules/public-encrypt/publicEncrypt.js"(bZ,$){var Q=_Y(),Y=S$(),Z=h$(),G=hY(),V=dY(),U=bY(),X=oY(),K=wQ(),I=M$().Buffer;$.exports=function(A,W,H){var E;A.padding?E=A.padding:H?E=1:E=4;var T=Q(A),D;if(E===4)D=J(T,W);else if(E===1)D=O(T,W,H);else if(E===3){if(D=new U(W),D.cmp(T.modulus)>=0)throw new Error("data too long for modulus")}else throw new Error("unknown padding");return H?K(D,T):X(D,T)};function J(A,W){var H=A.modulus.byteLength(),E=W.length,T=Z("sha1").update(I.alloc(0)).digest(),D=T.length,C=2*D;if(E>H-C-2)throw new Error("message too long");var L=I.alloc(H-E-C-2),R=H-D-1,P=Y(D),z=V(I.concat([T,L,I.alloc(1,1),W],R),G(P,R)),M=V(P,G(z,D));return new U(I.concat([I.alloc(1),M,z],H))}function O(A,W,H){var E=W.length,T=A.modulus.byteLength();if(E>T-11)throw new Error("message too long");var D;return H?D=I.alloc(T-E-3,255):D=F(T-E-3),new U(I.concat([I.from([0,H?1:2]),D,I.alloc(1),W],T))}function F(A){for(var W=I.allocUnsafe(A),H=0,E=Y(A*2),T=0,D;HT||new G(A).cmp(E.modulus)>=0)throw new Error("decryption error");var D;W?D=X(new G(A),E):D=V(A,E);var C=K.alloc(T-D.length);if(D=K.concat([C,D],T),H===4)return I(E,D);if(H===1)return J(E,D,W);if(H===3)return D;throw new Error("unknown padding")};function I(F,A){var W=F.modulus.byteLength(),H=U("sha1").update(K.alloc(0)).digest(),E=H.length;if(A[0]!==0)throw new Error("decryption error");var T=A.slice(1,E+1),D=A.slice(E+1),C=Z(T,Y(D,E)),L=Z(D,Y(C,W-E-1));if(O(H,L.slice(0,E)))throw new Error("decryption error");for(var R=E;L[R]===0;)R++;if(L[R++]!==1)throw new Error("decryption error");return L.slice(R)}function J(F,A,W){for(var H=A.slice(0,2),E=2,T=0;A[E++]!==0;)if(E>=A.length){T++;break}var D=A.slice(2,E-1);if((H.toString("hex")!=="0002"&&!W||H.toString("hex")!=="0001"&&W)&&T++,D.length<8&&T++,T)throw new Error("decryption error");return A.slice(E)}function O(F,A){F=K.from(F),A=K.from(A);var W=0,H=F.length;F.length!==A.length&&(W++,H=Math.min(F.length,A.length));for(var E=-1;++EG||J<0)throw new TypeError("offset must be a uint32");if(J>Z||J>O)throw new RangeError("offset out of range")}function U(J,O,F){if(typeof J!="number"||J!==J)throw new TypeError("size must be a number");if(J>G||J<0)throw new TypeError("size must be a uint32");if(J+O>F||J>Z)throw new RangeError("buffer too small")}bZ.randomFill=X,bZ.randomFillSync=I;function X(J,O,F,A){if(!Y.isBuffer(J)&&!(J instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if(typeof O=="function")A=O,O=0,F=J.length;else if(typeof F=="function")A=F,F=J.length-O;else if(typeof A!="function")throw new TypeError('"cb" argument must be a function');return V(O,J.length),U(F,O,J.length),K(J,O,F,A)}function K(J,O,F,A){if(A){Q(F,function(H,E){if(H)return A(H);E.copy(J,O),A(null,J)});return}var W=Q(F);return W.copy(J,O),J}function I(J,O,F){if(typeof O>"u"&&(O=0),!Y.isBuffer(J)&&!(J instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return V(O,J.length),F===void 0&&(F=J.length-O),U(F,O,J.length),K(J,O,F)}}}),mY=P$({"node_modules/crypto-browserify/index.js"(bZ){bZ.randomBytes=bZ.rng=bZ.pseudoRandomBytes=bZ.prng=S$(),bZ.createHash=h$(),bZ.Hash=bZ.createHash.Hash,bZ.createHmac=bZ.Hmac=l$();var $=u$(),Q=Object.keys($),Y=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(Q);bZ.getHashes=function(){return Y};var Z=r$();bZ.pbkdf2=Z.pbkdf2,bZ.pbkdf2Sync=Z.pbkdf2Sync;var G=SQ();bZ.Cipher=G.Cipher,bZ.createCipher=G.createCipher,bZ.Cipheriv=G.Cipheriv,bZ.createCipheriv=G.createCipheriv,bZ.Decipher=G.Decipher,bZ.createDecipher=G.createDecipher,bZ.Decipheriv=G.Decipheriv,bZ.createDecipheriv=G.createDecipheriv,bZ.getCiphers=G.getCiphers,bZ.listCiphers=G.listCiphers;var V=BQ();bZ.DiffieHellmanGroup=V.DiffieHellmanGroup,bZ.createDiffieHellmanGroup=V.createDiffieHellmanGroup,bZ.getDiffieHellman=V.getDiffieHellman,bZ.createDiffieHellman=V.createDiffieHellman,bZ.DiffieHellman=V.DiffieHellman;var U=fY();bZ.createSign=U.createSign,bZ.Sign=U.Sign,bZ.createVerify=U.createVerify,bZ.Verify=U.Verify,bZ.createECDH=cY();var X=sY();bZ.publicEncrypt=X.publicEncrypt,bZ.privateEncrypt=X.privateEncrypt,bZ.publicDecrypt=X.publicDecrypt,bZ.privateDecrypt=X.privateDecrypt,bZ.getRandomValues=(I)=>O$.getRandomValues(I);var K=tY();bZ.randomFill=K.randomFill,bZ.randomFillSync=K.randomFillSync,bZ.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join(` -`))},bZ.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}}}),aY={...mY(),[Symbol.for("CommonJS")]:0},W$="buffer",rY=(bZ)=>O$.getRandomValues(bZ),eY=()=>O$.randomUUID(),H$="timingSafeEqual"in O$?(bZ,$)=>{let{byteLength:Q}=bZ,{byteLength:Y}=$;if(typeof Q!="number"||typeof Y!="number")throw new TypeError("Input must be an array buffer view");if(Q!==Y)throw new RangeError("Input buffers must have the same length");return O$.timingSafeEqual(bZ,$)}:void 0,iY="scryptSync"in O$?(bZ,$,Q,Y)=>{let Z=O$.scryptSync(bZ,$,Q,Y);return W$!=="buffer"?new Buffer(Z).toString(W$):new Buffer(Z)}:void 0,$Z="scryptSync"in O$?function(bZ,$,Q,Y,Z){if(typeof Y=="function"&&(Z=Y,Y=void 0),typeof Z!="function"){var G=new TypeError("callback must be a function");throw G.code="ERR_INVALID_CALLBACK",G}try{let V=O$.scryptSync(bZ,$,Q,Y);process.nextTick(Z,null,W$!=="buffer"?new Buffer(V).toString(W$):new Buffer(V))}catch(V){throw V}}:void 0;H$&&(Object.defineProperty(H$,"name",{value:"::bunternal::"}),Object.defineProperty($Z,"name",{value:"::bunternal::"}),Object.defineProperty(iY,"name",{value:"::bunternal::"}));var E$=O$;z$(aY,{DEFAULT_ENCODING:()=>W$,getRandomValues:()=>rY,randomUUID:()=>eY,scrypt:()=>$Z,scryptSync:()=>iY,timingSafeEqual:()=>H$,webcrypto:()=>E$,subtle:()=>E$.subtle});var{randomBytes:QZ,rng:YZ,pseudoRandomBytes:ZZ,prng:GZ,Hash:VZ,createHash:UZ,createHmac:XZ,Hmac:KZ,getHashes:IZ,pbkdf2:JZ,pbkdf2Sync:OZ,Cipher:FZ,createCipher:AZ,Cipheriv:WZ,createCipheriv:HZ,Decipher:EZ,createDecipher:TZ,Decipheriv:DZ,createDecipheriv:CZ,getCiphers:LZ,listCiphers:RZ,DiffieHellmanGroup:PZ,createDiffieHellmanGroup:zZ,getDiffieHellman:MZ,createDiffieHellman:SZ,DiffieHellman:vZ,createSign:qZ,Sign:jZ,createVerify:kZ,Verify:gZ,createECDH:NZ,publicEncrypt:xZ,privateEncrypt:_Z,publicDecrypt:BZ,privateDecrypt:yZ,randomFill:wZ,randomFillSync:fZ,createCredentials:pZ,constants:cZ}=aY;var dZ=aY;/*! safe-buffer. MIT License. Feross Aboukhadijeh */export{E$ as webcrypto,H$ as timingSafeEqual,iY as scryptSync,$Z as scrypt,YZ as rng,eY as randomUUID,fZ as randomFillSync,wZ as randomFill,QZ as randomBytes,xZ as publicEncrypt,BZ as publicDecrypt,ZZ as pseudoRandomBytes,GZ as prng,_Z as privateEncrypt,yZ as privateDecrypt,OZ as pbkdf2Sync,JZ as pbkdf2,RZ as listCiphers,rY as getRandomValues,IZ as getHashes,MZ as getDiffieHellman,LZ as getCiphers,dZ as default,kZ as createVerify,qZ as createSign,XZ as createHmac,UZ as createHash,NZ as createECDH,zZ as createDiffieHellmanGroup,SZ as createDiffieHellman,CZ as createDecipheriv,TZ as createDecipher,pZ as createCredentials,HZ as createCipheriv,AZ as createCipher,cZ as constants,gZ as Verify,jZ as Sign,KZ as Hmac,VZ as Hash,PZ as DiffieHellmanGroup,vZ as DiffieHellman,DZ as Decipheriv,EZ as Decipher,W$ as DEFAULT_ENCODING,WZ as Cipheriv,FZ as Cipher}; +import{StringDecoder as z$} from"node:string_decoder";import*as M$ from"node:buffer";import*as A$ from"node:stream";var L$=Object.defineProperty;var R$=Object.getOwnPropertyNames;var S$=536870888,F$=globalThis.Buffer,H$=globalThis.crypto,v$=H$;var q$=($,Q)=>function(){return Q||(0,$[R$($)[0]])((Q={exports:{}}).exports,Q),Q.exports},j$=($,Q)=>{for(var Y in Q)L$($,Y,{get:Q[Y],enumerable:!0})};var k$=q$({"node_modules/safe-buffer/index.js"($,Q){var Y=M$,Z=Y.Buffer;function G(U,X){for(var K in U)X[K]=U[K]}Z.from&&Z.alloc&&Z.allocUnsafe&&Z.allocUnsafeSlow?Q.exports=Y:(G(Y,$),$.Buffer=V);function V(U,X,K){return Z(U,X,K)}V.prototype=Object.create(Z.prototype),G(Z,V),V.from=function(U,X,K){if(typeof U=="number")throw new TypeError("Argument must not be a number");return Z(U,X,K)},V.alloc=function(U,X,K){if(typeof U!="number")throw new TypeError("Argument must be a number");var I=Z(U);return X!==void 0?typeof K=="string"?I.fill(X,K):I.fill(X):I.fill(0),I},V.allocUnsafe=function(U){if(typeof U!="number")throw new TypeError("Argument must be a number");return Z(U)},V.allocUnsafeSlow=function(U){if(typeof U!="number")throw new TypeError("Argument must be a number");return Y.SlowBuffer(U)}}}),g$=q$({"node_modules/randombytes/browser.js"($,Q){var Y=65536,Z=4294967295;function G(){throw new Error(`Secure random number generation is not supported by this browser. +Use Chrome, Firefox or Internet Explorer 11`)}var V=k$().Buffer,U=v$;U&&U.getRandomValues?Q.exports=X:Q.exports=G;function X(K,I){if(K>Z)throw new RangeError("requested too many random bytes");var O=V.allocUnsafe(K);if(K>0)if(K>Y)for(var J=0;J=this._blockSize;){for(var O=this._blockOffset;O0;++J)this._length[J]+=F,F=this._length[J]/4294967296|0,F>0&&(this._length[J]-=4294967296*F);return this},V.prototype._update=function(){throw new Error("_update is not implemented")},V.prototype.digest=function(U){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var X=this._digest();U!==void 0&&(X=X.toString(U)),this._block.fill(0),this._blockOffset=0;for(var K=0;K<4;++K)this._length[K]=0;return X},V.prototype._digest=function(){throw new Error("_digest is not implemented")},Q.exports=V}}),x$=q$({"node_modules/md5.js/index.js"($,Q){var Y=_$(),Z=N$(),G=k$().Buffer,V=new Array(16);function U(){Z.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}Y(U,Z),U.prototype._update=function(){for(var F=V,A=0;A<16;++A)F[A]=this._block.readInt32LE(A*4);var H=this._a,W=this._b,E=this._c,T=this._d;H=K(H,W,E,T,F[0],3614090360,7),T=K(T,H,W,E,F[1],3905402710,12),E=K(E,T,H,W,F[2],606105819,17),W=K(W,E,T,H,F[3],3250441966,22),H=K(H,W,E,T,F[4],4118548399,7),T=K(T,H,W,E,F[5],1200080426,12),E=K(E,T,H,W,F[6],2821735955,17),W=K(W,E,T,H,F[7],4249261313,22),H=K(H,W,E,T,F[8],1770035416,7),T=K(T,H,W,E,F[9],2336552879,12),E=K(E,T,H,W,F[10],4294925233,17),W=K(W,E,T,H,F[11],2304563134,22),H=K(H,W,E,T,F[12],1804603682,7),T=K(T,H,W,E,F[13],4254626195,12),E=K(E,T,H,W,F[14],2792965006,17),W=K(W,E,T,H,F[15],1236535329,22),H=I(H,W,E,T,F[1],4129170786,5),T=I(T,H,W,E,F[6],3225465664,9),E=I(E,T,H,W,F[11],643717713,14),W=I(W,E,T,H,F[0],3921069994,20),H=I(H,W,E,T,F[5],3593408605,5),T=I(T,H,W,E,F[10],38016083,9),E=I(E,T,H,W,F[15],3634488961,14),W=I(W,E,T,H,F[4],3889429448,20),H=I(H,W,E,T,F[9],568446438,5),T=I(T,H,W,E,F[14],3275163606,9),E=I(E,T,H,W,F[3],4107603335,14),W=I(W,E,T,H,F[8],1163531501,20),H=I(H,W,E,T,F[13],2850285829,5),T=I(T,H,W,E,F[2],4243563512,9),E=I(E,T,H,W,F[7],1735328473,14),W=I(W,E,T,H,F[12],2368359562,20),H=O(H,W,E,T,F[5],4294588738,4),T=O(T,H,W,E,F[8],2272392833,11),E=O(E,T,H,W,F[11],1839030562,16),W=O(W,E,T,H,F[14],4259657740,23),H=O(H,W,E,T,F[1],2763975236,4),T=O(T,H,W,E,F[4],1272893353,11),E=O(E,T,H,W,F[7],4139469664,16),W=O(W,E,T,H,F[10],3200236656,23),H=O(H,W,E,T,F[13],681279174,4),T=O(T,H,W,E,F[0],3936430074,11),E=O(E,T,H,W,F[3],3572445317,16),W=O(W,E,T,H,F[6],76029189,23),H=O(H,W,E,T,F[9],3654602809,4),T=O(T,H,W,E,F[12],3873151461,11),E=O(E,T,H,W,F[15],530742520,16),W=O(W,E,T,H,F[2],3299628645,23),H=J(H,W,E,T,F[0],4096336452,6),T=J(T,H,W,E,F[7],1126891415,10),E=J(E,T,H,W,F[14],2878612391,15),W=J(W,E,T,H,F[5],4237533241,21),H=J(H,W,E,T,F[12],1700485571,6),T=J(T,H,W,E,F[3],2399980690,10),E=J(E,T,H,W,F[10],4293915773,15),W=J(W,E,T,H,F[1],2240044497,21),H=J(H,W,E,T,F[8],1873313359,6),T=J(T,H,W,E,F[15],4264355552,10),E=J(E,T,H,W,F[6],2734768916,15),W=J(W,E,T,H,F[13],1309151649,21),H=J(H,W,E,T,F[4],4149444226,6),T=J(T,H,W,E,F[11],3174756917,10),E=J(E,T,H,W,F[2],718787259,15),W=J(W,E,T,H,F[9],3951481745,21),this._a=this._a+H|0,this._b=this._b+W|0,this._c=this._c+E|0,this._d=this._d+T|0},U.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var F=G.allocUnsafe(16);return F.writeInt32LE(this._a,0),F.writeInt32LE(this._b,4),F.writeInt32LE(this._c,8),F.writeInt32LE(this._d,12),F};function X(F,A){return F<>>32-A}function K(F,A,H,W,E,T,D){return X(F+(A&H|~A&W)+E+T|0,D)+A|0}function I(F,A,H,W,E,T,D){return X(F+(A&W|H&~W)+E+T|0,D)+A|0}function O(F,A,H,W,E,T,D){return X(F+(A^H^W)+E+T|0,D)+A|0}function J(F,A,H,W,E,T,D){return X(F+(H^(A|~W))+E+T|0,D)+A|0}Q.exports=U}}),B$=q$({"node_modules/ripemd160/index.js"($,Q){var Y=F$,Z=_$(),G=N$(),V=new Array(16),U=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],X=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],K=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],I=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],O=[0,1518500249,1859775393,2400959708,2840853838],J=[1352829926,1548603684,1836072691,2053994217,0];function F(){G.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}Z(F,G),F.prototype._update=function(){for(var C=V,L=0;L<16;++L)C[L]=this._block.readInt32LE(L*4);for(var R=this._a|0,P=this._b|0,z=this._c|0,M=this._d|0,S=this._e|0,v=this._a|0,q=this._b|0,j=this._c|0,k=this._d|0,g=this._e|0,_=0;_<80;_+=1){var N,x;_<16?(N=H(R,P,z,M,S,C[U[_]],O[0],K[_]),x=D(v,q,j,k,g,C[X[_]],J[0],I[_])):_<32?(N=W(R,P,z,M,S,C[U[_]],O[1],K[_]),x=T(v,q,j,k,g,C[X[_]],J[1],I[_])):_<48?(N=E(R,P,z,M,S,C[U[_]],O[2],K[_]),x=E(v,q,j,k,g,C[X[_]],J[2],I[_])):_<64?(N=T(R,P,z,M,S,C[U[_]],O[3],K[_]),x=W(v,q,j,k,g,C[X[_]],J[3],I[_])):(N=D(R,P,z,M,S,C[U[_]],O[4],K[_]),x=H(v,q,j,k,g,C[X[_]],J[4],I[_])),R=S,S=M,M=A(z,10),z=P,P=N,v=g,g=k,k=A(j,10),j=q,q=x}var B=this._b+z+k|0;this._b=this._c+M+g|0,this._c=this._d+S+v|0,this._d=this._e+R+q|0,this._e=this._a+P+j|0,this._a=B},F.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var C=Y.alloc?Y.alloc(20):new Y(20);return C.writeInt32LE(this._a,0),C.writeInt32LE(this._b,4),C.writeInt32LE(this._c,8),C.writeInt32LE(this._d,12),C.writeInt32LE(this._e,16),C};function A(C,L){return C<>>32-L}function H(C,L,R,P,z,M,S,v){return A(C+(L^R^P)+M+S|0,v)+z|0}function W(C,L,R,P,z,M,S,v){return A(C+(L&R|~L&P)+M+S|0,v)+z|0}function E(C,L,R,P,z,M,S,v){return A(C+((L|~R)^P)+M+S|0,v)+z|0}function T(C,L,R,P,z,M,S,v){return A(C+(L&P|R&~P)+M+S|0,v)+z|0}function D(C,L,R,P,z,M,S,v){return A(C+(L^(R|~P))+M+S|0,v)+z|0}Q.exports=F}}),y$=q$({"node_modules/sha.js/hash.js"($,Q){var Y=k$().Buffer;function Z(G,V){this._block=Y.alloc(G),this._finalSize=V,this._blockSize=G,this._len=0}Z.prototype.update=function(G,V){typeof G=="string"&&(V=V||"utf8",G=Y.from(G,V));for(var U=this._block,X=this._blockSize,K=G.length,I=this._len,O=0;O=this._finalSize&&(this._update(this._block),this._block.fill(0));var U=this._len*8;if(U<=4294967295)this._block.writeUInt32BE(U,this._blockSize-4);else{var X=(U&4294967295)>>>0,K=(U-X)/4294967296;this._block.writeUInt32BE(K,this._blockSize-8),this._block.writeUInt32BE(X,this._blockSize-4)}this._update(this._block);var I=this._hash();return G?I.toString(G):I},Z.prototype._update=function(){throw new Error("_update must be implemented by subclass")},Q.exports=Z}}),w$=q$({"node_modules/sha.js/sha.js"($,Q){var Y=_$(),Z=y$(),G=k$().Buffer,V=[1518500249,1859775393,-1894007588,-899497514],U=new Array(80);function X(){this.init(),this._w=U,Z.call(this,64,56)}Y(X,Z),X.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function K(J){return J<<5|J>>>27}function I(J){return J<<30|J>>>2}function O(J,F,A,H){return J===0?F&A|~F&H:J===2?F&A|F&H|A&H:F^A^H}X.prototype._update=function(J){for(var F=this._w,A=this._a|0,H=this._b|0,W=this._c|0,E=this._d|0,T=this._e|0,D=0;D<16;++D)F[D]=J.readInt32BE(D*4);for(;D<80;++D)F[D]=F[D-3]^F[D-8]^F[D-14]^F[D-16];for(var C=0;C<80;++C){var L=~~(C/20),R=K(A)+O(L,H,W,E)+T+F[C]+V[L]|0;T=E,E=W,W=I(H),H=A,A=R}this._a=A+this._a|0,this._b=H+this._b|0,this._c=W+this._c|0,this._d=E+this._d|0,this._e=T+this._e|0},X.prototype._hash=function(){var J=G.allocUnsafe(20);return J.writeInt32BE(this._a|0,0),J.writeInt32BE(this._b|0,4),J.writeInt32BE(this._c|0,8),J.writeInt32BE(this._d|0,12),J.writeInt32BE(this._e|0,16),J},Q.exports=X}}),p$=q$({"node_modules/sha.js/sha1.js"($,Q){var Y=_$(),Z=y$(),G=k$().Buffer,V=[1518500249,1859775393,-1894007588,-899497514],U=new Array(80);function X(){this.init(),this._w=U,Z.call(this,64,56)}Y(X,Z),X.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function K(F){return F<<1|F>>>31}function I(F){return F<<5|F>>>27}function O(F){return F<<30|F>>>2}function J(F,A,H,W){return F===0?A&H|~A&W:F===2?A&H|A&W|H&W:A^H^W}X.prototype._update=function(F){for(var A=this._w,H=this._a|0,W=this._b|0,E=this._c|0,T=this._d|0,D=this._e|0,C=0;C<16;++C)A[C]=F.readInt32BE(C*4);for(;C<80;++C)A[C]=K(A[C-3]^A[C-8]^A[C-14]^A[C-16]);for(var L=0;L<80;++L){var R=~~(L/20),P=I(H)+J(R,W,E,T)+D+A[L]+V[R]|0;D=T,T=E,E=O(W),W=H,H=P}this._a=H+this._a|0,this._b=W+this._b|0,this._c=E+this._c|0,this._d=T+this._d|0,this._e=D+this._e|0},X.prototype._hash=function(){var F=G.allocUnsafe(20);return F.writeInt32BE(this._a|0,0),F.writeInt32BE(this._b|0,4),F.writeInt32BE(this._c|0,8),F.writeInt32BE(this._d|0,12),F.writeInt32BE(this._e|0,16),F},Q.exports=X}}),f$=q$({"node_modules/sha.js/sha256.js"($,Q){var Y=_$(),Z=y$(),G=k$().Buffer,V=[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],U=new Array(64);function X(){this.init(),this._w=U,Z.call(this,64,56)}Y(X,Z),X.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function K(H,W,E){return E^H&(W^E)}function I(H,W,E){return H&W|E&(H|W)}function O(H){return(H>>>2|H<<30)^(H>>>13|H<<19)^(H>>>22|H<<10)}function J(H){return(H>>>6|H<<26)^(H>>>11|H<<21)^(H>>>25|H<<7)}function F(H){return(H>>>7|H<<25)^(H>>>18|H<<14)^H>>>3}function A(H){return(H>>>17|H<<15)^(H>>>19|H<<13)^H>>>10}X.prototype._update=function(H){for(var W=this._w,E=this._a|0,T=this._b|0,D=this._c|0,C=this._d|0,L=this._e|0,R=this._f|0,P=this._g|0,z=this._h|0,M=0;M<16;++M)W[M]=H.readInt32BE(M*4);for(;M<64;++M)W[M]=A(W[M-2])+W[M-7]+F(W[M-15])+W[M-16]|0;for(var S=0;S<64;++S){var v=z+J(L)+K(L,R,P)+V[S]+W[S]|0,q=O(E)+I(E,T,D)|0;z=P,P=R,R=L,L=C+v|0,C=D,D=T,T=E,E=v+q|0}this._a=E+this._a|0,this._b=T+this._b|0,this._c=D+this._c|0,this._d=C+this._d|0,this._e=L+this._e|0,this._f=R+this._f|0,this._g=P+this._g|0,this._h=z+this._h|0},X.prototype._hash=function(){var H=G.allocUnsafe(32);return H.writeInt32BE(this._a,0),H.writeInt32BE(this._b,4),H.writeInt32BE(this._c,8),H.writeInt32BE(this._d,12),H.writeInt32BE(this._e,16),H.writeInt32BE(this._f,20),H.writeInt32BE(this._g,24),H.writeInt32BE(this._h,28),H},Q.exports=X}}),c$=q$({"node_modules/sha.js/sha224.js"($,Q){var Y=_$(),Z=f$(),G=y$(),V=k$().Buffer,U=new Array(64);function X(){this.init(),this._w=U,G.call(this,64,56)}Y(X,Z),X.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},X.prototype._hash=function(){var K=V.allocUnsafe(28);return K.writeInt32BE(this._a,0),K.writeInt32BE(this._b,4),K.writeInt32BE(this._c,8),K.writeInt32BE(this._d,12),K.writeInt32BE(this._e,16),K.writeInt32BE(this._f,20),K.writeInt32BE(this._g,24),K},Q.exports=X}}),h$=q$({"node_modules/sha.js/sha512.js"($,Q){var Y=_$(),Z=y$(),G=k$().Buffer,V=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],U=new Array(160);function X(){this.init(),this._w=U,Z.call(this,128,112)}Y(X,Z),X.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function K(T,D,C){return C^T&(D^C)}function I(T,D,C){return T&D|C&(T|D)}function O(T,D){return(T>>>28|D<<4)^(D>>>2|T<<30)^(D>>>7|T<<25)}function J(T,D){return(T>>>14|D<<18)^(T>>>18|D<<14)^(D>>>9|T<<23)}function F(T,D){return(T>>>1|D<<31)^(T>>>8|D<<24)^T>>>7}function A(T,D){return(T>>>1|D<<31)^(T>>>8|D<<24)^(T>>>7|D<<25)}function H(T,D){return(T>>>19|D<<13)^(D>>>29|T<<3)^T>>>6}function W(T,D){return(T>>>19|D<<13)^(D>>>29|T<<3)^(T>>>6|D<<26)}function E(T,D){return T>>>0>>0?1:0}X.prototype._update=function(T){for(var D=this._w,C=this._ah|0,L=this._bh|0,R=this._ch|0,P=this._dh|0,z=this._eh|0,M=this._fh|0,S=this._gh|0,v=this._hh|0,q=this._al|0,j=this._bl|0,k=this._cl|0,g=this._dl|0,_=this._el|0,N=this._fl|0,x=this._gl|0,B=this._hl|0,y=0;y<32;y+=2)D[y]=T.readInt32BE(y*4),D[y+1]=T.readInt32BE(y*4+4);for(;y<160;y+=2){var w=D[y-30],p=D[y-30+1],f=F(w,p),c=A(p,w);w=D[y-4],p=D[y-4+1];var h=H(w,p),d=W(p,w),b=D[y-14],l=D[y-14+1],o=D[y-32],u=D[y-32+1],n=c+l|0,s=f+b+E(n,c)|0;n=n+d|0,s=s+h+E(n,d)|0,n=n+u|0,s=s+o+E(n,u)|0,D[y]=s,D[y+1]=n}for(var t=0;t<160;t+=2){s=D[t],n=D[t+1];var m=I(C,L,R),a=I(q,j,k),e=O(C,q),r=O(q,C),i=J(z,_),$0=J(_,z),Q0=V[t],Y0=V[t+1],Z0=K(z,M,S),G0=K(_,N,x),V0=B+$0|0,U0=v+i+E(V0,B)|0;V0=V0+G0|0,U0=U0+Z0+E(V0,G0)|0,V0=V0+Y0|0,U0=U0+Q0+E(V0,Y0)|0,V0=V0+n|0,U0=U0+s+E(V0,n)|0;var X0=r+a|0,K0=e+m+E(X0,r)|0;v=S,B=x,S=M,x=N,M=z,N=_,_=g+V0|0,z=P+U0+E(_,g)|0,P=R,g=k,R=L,k=j,L=C,j=q,q=V0+X0|0,C=U0+K0+E(q,V0)|0}this._al=this._al+q|0,this._bl=this._bl+j|0,this._cl=this._cl+k|0,this._dl=this._dl+g|0,this._el=this._el+_|0,this._fl=this._fl+N|0,this._gl=this._gl+x|0,this._hl=this._hl+B|0,this._ah=this._ah+C+E(this._al,q)|0,this._bh=this._bh+L+E(this._bl,j)|0,this._ch=this._ch+R+E(this._cl,k)|0,this._dh=this._dh+P+E(this._dl,g)|0,this._eh=this._eh+z+E(this._el,_)|0,this._fh=this._fh+M+E(this._fl,N)|0,this._gh=this._gh+S+E(this._gl,x)|0,this._hh=this._hh+v+E(this._hl,B)|0},X.prototype._hash=function(){var T=G.allocUnsafe(64);function D(C,L,R){T.writeInt32BE(C,R),T.writeInt32BE(L,R+4)}return D(this._ah,this._al,0),D(this._bh,this._bl,8),D(this._ch,this._cl,16),D(this._dh,this._dl,24),D(this._eh,this._el,32),D(this._fh,this._fl,40),D(this._gh,this._gl,48),D(this._hh,this._hl,56),T},Q.exports=X}}),d$=q$({"node_modules/sha.js/sha384.js"($,Q){var Y=_$(),Z=h$(),G=y$(),V=k$().Buffer,U=new Array(160);function X(){this.init(),this._w=U,G.call(this,128,112)}Y(X,Z),X.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},X.prototype._hash=function(){var K=V.allocUnsafe(48);function I(O,J,F){K.writeInt32BE(O,F),K.writeInt32BE(J,F+4)}return I(this._ah,this._al,0),I(this._bh,this._bl,8),I(this._ch,this._cl,16),I(this._dh,this._dl,24),I(this._eh,this._el,32),I(this._fh,this._fl,40),K},Q.exports=X}}),b$=q$({"node_modules/sha.js/index.js"(Y,Q){var Y=Q.exports=function(Z){Z=Z.toLowerCase();var G=Y[Z];if(!G)throw new Error(Z+" is not supported (we accept pull requests)");return new G};Y.sha=w$(),Y.sha1=p$(),Y.sha224=c$(),Y.sha256=f$(),Y.sha384=d$(),Y.sha512=h$()}}),l$=q$({"node_modules/cipher-base/index.js"($,Q){var Y=k$().Buffer,Z=_$();function G(V){A$.Transform.call(this),this.hashMode=typeof V=="string",this.hashMode?this[V]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}Z(G,A$.Transform),G.prototype.update=function(V,U,X){typeof V=="string"&&(V=Y.from(V,U));var K=this._update(V);return this.hashMode?this:(X&&(K=this._toString(K,X)),K)},G.prototype.setAutoPadding=function(){},G.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},G.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},G.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},G.prototype._transform=function(V,U,X){var K;try{this.hashMode?this._update(V):this.push(this._update(V))}catch(I){K=I}finally{X(K)}},G.prototype._flush=function(V){var U;try{this.push(this.__final())}catch(X){U=X}V(U)},G.prototype._finalOrDigest=function(V){var U=this.__final()||Y.alloc(0);return V&&(U=this._toString(U,V,!0)),U},G.prototype._toString=function(V,U,X){if(this._decoder||(this._decoder=new z$(U),this._encoding=U),this._encoding!==U)throw new Error("can't switch encodings");var K=this._decoder.write(V);return X&&(K+=this._decoder.end()),K},Q.exports=G}}),o$=q$({"node_modules/create-hash/browser.js"($,Q){const Y=function V(U,X){this._options=X,this._hasher=new sY(U,X),this._finalized=!1};Y.prototype=Object.create(A$.Transform.prototype),Y.prototype.update=function V(U,X){return this._checkFinalized(),this._hasher.update(U,X),this},Y.prototype.digest=function V(U,X){return this._checkFinalized(),this._finalized=!0,this._hasher.digest(U,X)},Y.prototype._checkFinalized=function V(){if(this._finalized){var U=new Error("Digest already called");throw U.code="ERR_CRYPTO_HASH_FINALIZED",U}},Y.prototype.copy=function V(){const U=Object.create(Y.prototype);return U._options=this._options,U._hasher=this._hasher.copy(),U._finalized=this._finalized,U};const Z={__proto__:A$.Transform.prototype,...Y.prototype,_transform(V,U,X){this.update(V,U),X&&X()},_flush(V){this.push(this.digest()),V()}},G=["_events","_eventsCount","_final","_maxListeners","_maxListeners","_read","_undestroy","_writableState","_write","_writev","addListener","asIndexedPairs","closed","compose","constructor","cork","destroy","destroyed","drop","emit","end","errored","eventNames","every","filter","find","flatMap","forEach","getMaxListeners","hasOwnProperty","isPaused","isPrototypeOf","iterator","listenerCount","listeners","map","off","on","once","pause","pipe","prependListener","prependOnceListener","propertyIsEnumerable","push","rawListeners","read","readable","readableAborted","readableBuffer","readableDidRead","readableEncoding","readableEnded","readableFlowing","readableHighWaterMark","readableLength","readableObjectMode","reduce","removeAllListeners","removeListener","resume","setDefaultEncoding","setEncoding","setMaxListeners","some","take","toArray","toLocaleString","toString","uncork","unpipe","unshift","valueOf","wrap","writable","writableBuffer","writableCorked","writableEnded","writableFinished","writableHighWaterMark","writableLength","writableNeedDrain","writableObjectMode","write"];for(let V of G)Object.defineProperty(Y.prototype,V,{get(){return Object.setPrototypeOf(this,Z),A$.Transform.call(this,this._options),this[V]},enumerable:!1,configurable:!0});Q.exports=function V(U){return new Y(U)},Q.exports.createHash=Q.exports,Q.exports.Hash=Y}}),u$=q$({"node_modules/create-hmac/legacy.js"($,Q){var Y=_$(),Z=k$().Buffer,G=l$(),V=Z.alloc(128),U=64;function X(K,I){G.call(this,"digest"),typeof I=="string"&&(I=Z.from(I)),this._alg=K,this._key=I,I.length>U?I=K(I):I.lengthA){var H=J==="rmd160"?new X:K(J);F=H.update(F).digest()}else F.lengthY||G!==G)throw new TypeError("Bad key length")}}}),e$=q$({"node_modules/pbkdf2/lib/default-encoding.js"($,Q){var Y;global.process&&global.process.browser?Y="utf-8":global.process&&global.process.version?(Z=parseInt(process.version.split(".")[0].slice(1),10),Y=Z>=6?"utf-8":"binary"):Y="utf-8";var Z;Q.exports=Y}}),r$=q$({"node_modules/pbkdf2/lib/to-buffer.js"($,Q){var Y=k$().Buffer;Q.exports=function(Z,G,V){if(Y.isBuffer(Z))return Z;if(typeof Z=="string")return Y.from(Z,G);if(ArrayBuffer.isView(Z))return Y.from(Z.buffer);throw new TypeError(V+" must be a string, a Buffer, a typed array or a DataView")}}}),i$=q$({"node_modules/pbkdf2/lib/sync-browser.js"($,Q){var Y=n$(),Z=B$(),G=b$(),V=k$().Buffer,U=a$(),X=e$(),K=r$(),I=V.alloc(128),O={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function J(H,W,E){var T=F(H),D=H==="sha512"||H==="sha384"?128:64;W.length>D?W=T(W):W.length>>0},$.writeUInt32BE=function(G,V,U){G[0+U]=V>>>24,G[1+U]=V>>>16&255,G[2+U]=V>>>8&255,G[3+U]=V&255},$.ip=function(G,V,U,X){for(var K=0,I=0,O=6;O>=0;O-=2){for(var J=0;J<=24;J+=8)K<<=1,K|=V>>>J+O&1;for(var J=0;J<=24;J+=8)K<<=1,K|=G>>>J+O&1}for(var O=6;O>=0;O-=2){for(var J=1;J<=25;J+=8)I<<=1,I|=V>>>J+O&1;for(var J=1;J<=25;J+=8)I<<=1,I|=G>>>J+O&1}U[X+0]=K>>>0,U[X+1]=I>>>0},$.rip=function(G,V,U,X){for(var K=0,I=0,O=0;O<4;O++)for(var J=24;J>=0;J-=8)K<<=1,K|=V>>>J+O&1,K<<=1,K|=G>>>J+O&1;for(var O=4;O<8;O++)for(var J=24;J>=0;J-=8)I<<=1,I|=V>>>J+O&1,I<<=1,I|=G>>>J+O&1;U[X+0]=K>>>0,U[X+1]=I>>>0},$.pc1=function(G,V,U,X){for(var K=0,I=0,O=7;O>=5;O--){for(var J=0;J<=24;J+=8)K<<=1,K|=V>>J+O&1;for(var J=0;J<=24;J+=8)K<<=1,K|=G>>J+O&1}for(var J=0;J<=24;J+=8)K<<=1,K|=V>>J+O&1;for(var O=1;O<=3;O++){for(var J=0;J<=24;J+=8)I<<=1,I|=V>>J+O&1;for(var J=0;J<=24;J+=8)I<<=1,I|=G>>J+O&1}for(var J=0;J<=24;J+=8)I<<=1,I|=G>>J+O&1;U[X+0]=K>>>0,U[X+1]=I>>>0},$.r28shl=function(G,V){return G<>>28-V};var Q=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];$.pc2=function(G,V,U,X){for(var K=0,I=0,O=Q.length>>>1,J=0;J>>Q[J]&1;for(var J=O;J>>Q[J]&1;U[X+0]=K>>>0,U[X+1]=I>>>0},$.expand=function(G,V,U){var X=0,K=0;X=(G&1)<<5|G>>>27;for(var I=23;I>=15;I-=4)X<<=6,X|=G>>>I&63;for(var I=11;I>=3;I-=4)K|=G>>>I&63,K<<=6;K|=(G&31)<<1|G>>>31,V[U+0]=X>>>0,V[U+1]=K>>>0};var Y=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];$.substitute=function(G,V){for(var U=0,X=0;X<4;X++){var K=G>>>18-X*6&63,I=Y[X*64+K];U<<=4,U|=I}for(var X=0;X<4;X++){var K=V>>>18-X*6&63,I=Y[256+X*64+K];U<<=4,U|=I}return U>>>0};var Z=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];$.permute=function(G){for(var V=0,U=0;U>>Z[U]&1;return V>>>0},$.padSplit=function(G,V,U){for(var X=G.toString(2);X.length0;X--)V+=this._buffer(G,V),U+=this._flushBuffer(K,U);return V+=this._buffer(G,V),K},Z.prototype.final=function(G){var V;G&&(V=this.update(G));var U;return this.type==="encrypt"?U=this._finalEncrypt():U=this._finalDecrypt(),V?V.concat(U):U},Z.prototype._pad=function(G,V){if(V===0)return!1;for(;V>>1];J=G.r28shl(J,H),F=G.r28shl(F,H),G.pc2(J,F,I.keys,A)}},X.prototype._update=function(I,O,J,F){var A=this._desState,H=G.readUInt32BE(I,O),W=G.readUInt32BE(I,O+4);G.ip(H,W,A.tmp,0),H=A.tmp[0],W=A.tmp[1],this.type==="encrypt"?this._encrypt(A,H,W,A.tmp,0):this._decrypt(A,H,W,A.tmp,0),H=A.tmp[0],W=A.tmp[1],G.writeUInt32BE(J,H,F),G.writeUInt32BE(J,W,F+4)},X.prototype._pad=function(I,O){for(var J=I.length-O,F=O;F>>0,H=R}G.rip(W,H,F,A)},X.prototype._decrypt=function(I,O,J,F,A){for(var H=J,W=O,E=I.keys.length-2;E>=0;E-=2){var T=I.keys[E],D=I.keys[E+1];G.expand(H,I.tmp,0),T^=I.tmp[0],D^=I.tmp[1];var C=G.substitute(T,D),L=G.permute(C),R=H;H=(W^L)>>>0,W=R}G.rip(H,W,F,A)}}}),UQ=q$({"node_modules/des.js/lib/des/cbc.js"($){var Q=ZQ(),Y=_$(),Z={};function G(U){Q.equal(U.length,8,"Invalid IV length"),this.iv=new Array(8);for(var X=0;X>K%8,G._prev=Z(G._prev,U?J:F);return O}function Z(G,V){var U=G.length,X=-1,K=Q.allocUnsafe(G.length);for(G=Q.concat([G,Q.from([V])]);++X>7;return K}$.encrypt=function(G,V,U){for(var X=V.length,K=Q.allocUnsafe(X),I=-1;++I>>24]^W[C>>>16&255]^E[L>>>8&255]^T[R&255]^O[v++],z=H[C>>>24]^W[L>>>16&255]^E[R>>>8&255]^T[D&255]^O[v++],M=H[L>>>24]^W[R>>>16&255]^E[D>>>8&255]^T[C&255]^O[v++],S=H[R>>>24]^W[D>>>16&255]^E[C>>>8&255]^T[L&255]^O[v++],D=P,C=z,L=M,R=S;return P=(F[D>>>24]<<24|F[C>>>16&255]<<16|F[L>>>8&255]<<8|F[R&255])^O[v++],z=(F[C>>>24]<<24|F[L>>>16&255]<<16|F[R>>>8&255]<<8|F[D&255])^O[v++],M=(F[L>>>24]<<24|F[R>>>16&255]<<16|F[D>>>8&255]<<8|F[C&255])^O[v++],S=(F[R>>>24]<<24|F[D>>>16&255]<<16|F[C>>>8&255]<<8|F[L&255])^O[v++],P=P>>>0,z=z>>>0,M=M>>>0,S=S>>>0,[P,z,M,S]}var U=[0,1,2,4,8,16,32,64,128,27,54],X=function(){for(var I=new Array(256),O=0;O<256;O++)O<128?I[O]=O<<1:I[O]=O<<1^283;for(var J=[],F=[],A=[[],[],[],[]],H=[[],[],[],[]],W=0,E=0,T=0;T<256;++T){var D=E^E<<1^E<<2^E<<3^E<<4;D=D>>>8^D&255^99,J[W]=D,F[D]=W;var C=I[W],L=I[C],R=I[L],P=I[D]*257^D*16843008;A[0][W]=P<<24|P>>>8,A[1][W]=P<<16|P>>>16,A[2][W]=P<<8|P>>>24,A[3][W]=P,P=R*16843009^L*65537^C*257^W*16843008,H[0][D]=P<<24|P>>>8,H[1][D]=P<<16|P>>>16,H[2][D]=P<<8|P>>>24,H[3][D]=P,W===0?W=E=1:(W=C^I[I[I[R^C]]],E^=I[I[E]])}return{SBOX:J,INV_SBOX:F,SUB_MIX:A,INV_SUB_MIX:H}}();function K(I){this._key=Z(I),this._reset()}K.blockSize=16,K.keySize=32,K.prototype.blockSize=K.blockSize,K.prototype.keySize=K.keySize,K.prototype._reset=function(){for(var I=this._key,O=I.length,J=O+6,F=(J+1)*4,A=[],H=0;H>>24,W=X.SBOX[W>>>24]<<24|X.SBOX[W>>>16&255]<<16|X.SBOX[W>>>8&255]<<8|X.SBOX[W&255],W^=U[H/O|0]<<24):O>6&&H%O===4&&(W=X.SBOX[W>>>24]<<24|X.SBOX[W>>>16&255]<<16|X.SBOX[W>>>8&255]<<8|X.SBOX[W&255]),A[H]=A[H-O]^W}for(var E=[],T=0;T>>24]]^X.INV_SUB_MIX[1][X.SBOX[C>>>16&255]]^X.INV_SUB_MIX[2][X.SBOX[C>>>8&255]]^X.INV_SUB_MIX[3][X.SBOX[C&255]]}this._nRounds=J,this._keySchedule=A,this._invKeySchedule=E},K.prototype.encryptBlockRaw=function(I){return I=Z(I),V(I,this._keySchedule,X.SUB_MIX,X.SBOX,this._nRounds)},K.prototype.encryptBlock=function(I){var O=this.encryptBlockRaw(I),J=Y.allocUnsafe(16);return J.writeUInt32BE(O[0],0),J.writeUInt32BE(O[1],4),J.writeUInt32BE(O[2],8),J.writeUInt32BE(O[3],12),J},K.prototype.decryptBlock=function(I){I=Z(I);var O=I[1];I[1]=I[3],I[3]=O;var J=V(I,this._invKeySchedule,X.INV_SUB_MIX,X.INV_SBOX,this._nRounds),F=Y.allocUnsafe(16);return F.writeUInt32BE(J[0],0),F.writeUInt32BE(J[3],4),F.writeUInt32BE(J[2],8),F.writeUInt32BE(J[1],12),F},K.prototype.scrub=function(){G(this._keySchedule),G(this._invKeySchedule),G(this._key)},Q.exports.AES=K}}),RQ=q$({"node_modules/browserify-aes/ghash.js"($,Q){var Y=k$().Buffer,Z=Y.alloc(16,0);function G(X){return[X.readUInt32BE(0),X.readUInt32BE(4),X.readUInt32BE(8),X.readUInt32BE(12)]}function V(X){var K=Y.allocUnsafe(16);return K.writeUInt32BE(X[0]>>>0,0),K.writeUInt32BE(X[1]>>>0,4),K.writeUInt32BE(X[2]>>>0,8),K.writeUInt32BE(X[3]>>>0,12),K}function U(X){this.h=X,this.state=Y.alloc(16,0),this.cache=Y.allocUnsafe(0)}U.prototype.ghash=function(X){for(var K=-1;++K0;I--)X[I]=X[I]>>>1|(X[I-1]&1)<<31;X[0]=X[0]>>>1,J&&(X[0]=X[0]^225<<24)}this.state=V(K)},U.prototype.update=function(X){this.cache=Y.concat([this.cache,X]);for(var K;this.cache.length>=16;)K=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(K)},U.prototype.final=function(X,K){return this.cache.length&&this.ghash(Y.concat([this.cache,Z],16)),this.ghash(V([0,X,0,K])),this.state},Q.exports=U}}),PQ=q$({"node_modules/browserify-aes/authCipher.js"($,Q){var Y=LQ(),Z=k$().Buffer,G=l$(),V=_$(),U=RQ(),X=JQ(),K=TQ();function I(F,A){var H=0;F.length!==A.length&&H++;for(var W=Math.min(F.length,A.length),E=0;E0||K>0;){var A=new Z;A.update(F),A.update(V),U&&A.update(U),F=A.digest();var H=0;if(I>0){var W=O.length-I;H=Math.min(I,F.length),F.copy(O,W,0,H),I-=H}if(H0){var E=J.length-K,T=Math.min(K,F.length-H);F.copy(J,E,H,H+T),K-=T}}return F.fill(0),{key:O,iv:J}}Q.exports=G}}),SQ=q$({"node_modules/browserify-aes/encrypter.js"($){var Q=CQ(),Y=PQ(),Z=k$().Buffer,G=zQ(),V=l$(),U=LQ(),X=MQ(),K=_$();function I(H,W,E){V.call(this),this._cache=new J,this._cipher=new U.AES(W),this._prev=Z.from(E),this._mode=H,this._autopadding=!0}K(I,V),I.prototype._update=function(H){this._cache.add(H);for(var W,E,T=[];W=this._cache.get();)E=this._mode.encrypt(this,W),T.push(E);return Z.concat(T)};var O=Z.alloc(16,16);I.prototype._final=function(){var H=this._cache.flush();if(this._autopadding)return H=this._mode.encrypt(this,H),this._cipher.scrub(),H;if(!H.equals(O))throw this._cipher.scrub(),new Error("data not multiple of block length")},I.prototype.setAutoPadding=function(H){return this._autopadding=!!H,this};function J(){this.cache=Z.allocUnsafe(0)}J.prototype.add=function(H){this.cache=Z.concat([this.cache,H])},J.prototype.get=function(){if(this.cache.length>15){var H=this.cache.slice(0,16);return this.cache=this.cache.slice(16),H}return null},J.prototype.flush=function(){for(var H=16-this.cache.length,W=Z.allocUnsafe(H),E=-1;++E16)return W=this.cache.slice(0,16),this.cache=this.cache.slice(16),W}else if(this.cache.length>=16)return W=this.cache.slice(0,16),this.cache=this.cache.slice(16),W;return null},O.prototype.flush=function(){if(this.cache.length)return this.cache};function J(H){var W=H[15];if(W<1||W>16)throw new Error("unable to decrypt data");for(var E=-1;++E0?j:k},U.min=function(j,k){return j.cmp(k)<0?j:k},U.prototype._init=function(j,k,g){if(typeof j=="number")return this._initNumber(j,k,g);if(typeof j=="object")return this._initArray(j,k,g);k==="hex"&&(k=16),G(k===(k|0)&&k>=2&&k<=36),j=j.toString().replace(/\s+/g,"");var _=0;j[0]==="-"&&(_++,this.negative=1),_=0;_-=3)x=j[_]|j[_-1]<<8|j[_-2]<<16,this.words[N]|=x<>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);else if(g==="le")for(_=0,N=0;_>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);return this.strip()};function K(j,k){var g=j.charCodeAt(k);return g>=65&&g<=70?g-55:g>=97&&g<=102?g-87:g-48&15}function I(j,k,g){var _=K(j,g);return g-1>=k&&(_|=K(j,g-1)<<4),_}U.prototype._parseHex=function(j,k,g){this.length=Math.ceil((j.length-k)/6),this.words=new Array(this.length);for(var _=0;_=k;_-=2)B=I(j,k,_)<=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8;else{var y=j.length-k;for(_=y%2===0?k+1:k;_=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8}this.strip()};function O(j,k,g,_){for(var N=0,x=Math.min(j.length,g),B=k;B=49?N+=y-49+10:y>=17?N+=y-17+10:N+=y}return N}U.prototype._parseBase=function(j,k,g){this.words=[0],this.length=1;for(var _=0,N=1;N<=67108863;N*=k)_++;_--,N=N/k|0;for(var x=j.length-g,B=x%_,y=Math.min(x,x-B)+g,w=0,p=g;p1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},U.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],F=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],A=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(j,k){j=j||10,k=k|0||1;var g;if(j===16||j==="hex"){g="";for(var _=0,N=0,x=0;x>>24-_&16777215,N!==0||x!==this.length-1?g=J[6-y.length]+y+g:g=y+g,_+=2,_>=26&&(_-=26,x--)}for(N!==0&&(g=N.toString(16)+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(j===(j|0)&&j>=2&&j<=36){var w=F[j],p=A[j];g="";var f=this.clone();for(f.negative=0;!f.isZero();){var c=f.modn(p).toString(j);f=f.idivn(p),f.isZero()?g=c+g:g=J[w-c.length]+c+g}for(this.isZero()&&(g="0"+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var j=this.words[0];return this.length===2?j+=this.words[1]*67108864:this.length===3&&this.words[2]===1?j+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-j:j},U.prototype.toJSON=function(){return this.toString(16)},U.prototype.toBuffer=function(j,k){return G(typeof X<"u"),this.toArrayLike(X,j,k)},U.prototype.toArray=function(j,k){return this.toArrayLike(Array,j,k)},U.prototype.toArrayLike=function(j,k,g){var _=this.byteLength(),N=g||Math.max(1,_);G(_<=N,"byte array longer than desired length"),G(N>0,"Requested array length <= 0"),this.strip();var x=k==="le",B=new j(N),y,w,p=this.clone();if(x){for(w=0;!p.isZero();w++)y=p.andln(255),p.iushrn(8),B[w]=y;for(;w=4096&&(g+=13,k>>>=13),k>=64&&(g+=7,k>>>=7),k>=8&&(g+=4,k>>>=4),k>=2&&(g+=2,k>>>=2),g+k},U.prototype._zeroBits=function(j){if(j===0)return 26;var k=j,g=0;return(k&8191)===0&&(g+=13,k>>>=13),(k&127)===0&&(g+=7,k>>>=7),(k&15)===0&&(g+=4,k>>>=4),(k&3)===0&&(g+=2,k>>>=2),(k&1)===0&&g++,g},U.prototype.bitLength=function(){var j=this.words[this.length-1],k=this._countBits(j);return(this.length-1)*26+k};function H(j){for(var k=new Array(j.bitLength()),g=0;g>>N}return k}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var j=0,k=0;kj.length?this.clone().ior(j):j.clone().ior(this)},U.prototype.uor=function(j){return this.length>j.length?this.clone().iuor(j):j.clone().iuor(this)},U.prototype.iuand=function(j){var k;this.length>j.length?k=j:k=this;for(var g=0;gj.length?this.clone().iand(j):j.clone().iand(this)},U.prototype.uand=function(j){return this.length>j.length?this.clone().iuand(j):j.clone().iuand(this)},U.prototype.iuxor=function(j){var k,g;this.length>j.length?(k=this,g=j):(k=j,g=this);for(var _=0;_j.length?this.clone().ixor(j):j.clone().ixor(this)},U.prototype.uxor=function(j){return this.length>j.length?this.clone().iuxor(j):j.clone().iuxor(this)},U.prototype.inotn=function(j){G(typeof j=="number"&&j>=0);var k=Math.ceil(j/26)|0,g=j%26;this._expand(k),g>0&&k--;for(var _=0;_0&&(this.words[_]=~this.words[_]&67108863>>26-g),this.strip()},U.prototype.notn=function(j){return this.clone().inotn(j)},U.prototype.setn=function(j,k){G(typeof j=="number"&&j>=0);var g=j/26|0,_=j%26;return this._expand(g+1),k?this.words[g]=this.words[g]|1<<_:this.words[g]=this.words[g]&~(1<<_),this.strip()},U.prototype.iadd=function(j){var k;if(this.negative!==0&&j.negative===0)return this.negative=0,k=this.isub(j),this.negative^=1,this._normSign();if(this.negative===0&&j.negative!==0)return j.negative=0,k=this.isub(j),j.negative=1,k._normSign();var g,_;this.length>j.length?(g=this,_=j):(g=j,_=this);for(var N=0,x=0;x<_.length;x++)k=(g.words[x]|0)+(_.words[x]|0)+N,this.words[x]=k&67108863,N=k>>>26;for(;N!==0&&x>>26;if(this.length=g.length,N!==0)this.words[this.length]=N,this.length++;else if(g!==this)for(;xj.length?this.clone().iadd(j):j.clone().iadd(this)},U.prototype.isub=function(j){if(j.negative!==0){j.negative=0;var k=this.iadd(j);return j.negative=1,k._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(j),this.negative=1,this._normSign();var g=this.cmp(j);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var _,N;g>0?(_=this,N=j):(_=j,N=this);for(var x=0,B=0;B>26,this.words[B]=k&67108863;for(;x!==0&&B<_.length;B++)k=(_.words[B]|0)+x,x=k>>26,this.words[B]=k&67108863;if(x===0&&B<_.length&&_!==this)for(;B<_.length;B++)this.words[B]=_.words[B];return this.length=Math.max(this.length,B),_!==this&&(this.negative=1),this.strip()},U.prototype.sub=function(j){return this.clone().isub(j)};function W(j,k,g){g.negative=k.negative^j.negative;var _=j.length+k.length|0;g.length=_,_=_-1|0;var N=j.words[0]|0,x=k.words[0]|0,B=N*x,y=B&67108863,w=B/67108864|0;g.words[0]=y;for(var p=1;p<_;p++){for(var f=w>>>26,c=w&67108863,h=Math.min(p,k.length-1),d=Math.max(0,p-j.length+1);d<=h;d++){var b=p-d|0;N=j.words[b]|0,x=k.words[d]|0,B=N*x+c,f+=B/67108864|0,c=B&67108863}g.words[p]=c|0,w=f|0}return w!==0?g.words[p]=w|0:g.length--,g.strip()}var E=function(j,k,g){var _=j.words,N=k.words,x=g.words,B=0,y,w,p,f=_[0]|0,c=f&8191,h=f>>>13,d=_[1]|0,b=d&8191,l=d>>>13,o=_[2]|0,u=o&8191,n=o>>>13,s=_[3]|0,t=s&8191,m=s>>>13,a=_[4]|0,e=a&8191,r=a>>>13,i=_[5]|0,$0=i&8191,Q0=i>>>13,Y0=_[6]|0,Z0=Y0&8191,G0=Y0>>>13,V0=_[7]|0,U0=V0&8191,X0=V0>>>13,K0=_[8]|0,I0=K0&8191,O0=K0>>>13,J0=_[9]|0,F0=J0&8191,A0=J0>>>13,H0=N[0]|0,W0=H0&8191,E0=H0>>>13,T0=N[1]|0,D0=T0&8191,C0=T0>>>13,L0=N[2]|0,R0=L0&8191,P0=L0>>>13,z0=N[3]|0,M0=z0&8191,S0=z0>>>13,v0=N[4]|0,q0=v0&8191,j0=v0>>>13,k0=N[5]|0,g0=k0&8191,_0=k0>>>13,N0=N[6]|0,x0=N0&8191,B0=N0>>>13,y0=N[7]|0,w0=y0&8191,p0=y0>>>13,f0=N[8]|0,c0=f0&8191,h0=f0>>>13,d0=N[9]|0,b0=d0&8191,l0=d0>>>13;g.negative=j.negative^k.negative,g.length=19,y=Math.imul(c,W0),w=Math.imul(c,E0),w=w+Math.imul(h,W0)|0,p=Math.imul(h,E0);var o0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(o0>>>26)|0,o0&=67108863,y=Math.imul(b,W0),w=Math.imul(b,E0),w=w+Math.imul(l,W0)|0,p=Math.imul(l,E0),y=y+Math.imul(c,D0)|0,w=w+Math.imul(c,C0)|0,w=w+Math.imul(h,D0)|0,p=p+Math.imul(h,C0)|0;var u0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(u0>>>26)|0,u0&=67108863,y=Math.imul(u,W0),w=Math.imul(u,E0),w=w+Math.imul(n,W0)|0,p=Math.imul(n,E0),y=y+Math.imul(b,D0)|0,w=w+Math.imul(b,C0)|0,w=w+Math.imul(l,D0)|0,p=p+Math.imul(l,C0)|0,y=y+Math.imul(c,R0)|0,w=w+Math.imul(c,P0)|0,w=w+Math.imul(h,R0)|0,p=p+Math.imul(h,P0)|0;var n0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(n0>>>26)|0,n0&=67108863,y=Math.imul(t,W0),w=Math.imul(t,E0),w=w+Math.imul(m,W0)|0,p=Math.imul(m,E0),y=y+Math.imul(u,D0)|0,w=w+Math.imul(u,C0)|0,w=w+Math.imul(n,D0)|0,p=p+Math.imul(n,C0)|0,y=y+Math.imul(b,R0)|0,w=w+Math.imul(b,P0)|0,w=w+Math.imul(l,R0)|0,p=p+Math.imul(l,P0)|0,y=y+Math.imul(c,M0)|0,w=w+Math.imul(c,S0)|0,w=w+Math.imul(h,M0)|0,p=p+Math.imul(h,S0)|0;var s0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(s0>>>26)|0,s0&=67108863,y=Math.imul(e,W0),w=Math.imul(e,E0),w=w+Math.imul(r,W0)|0,p=Math.imul(r,E0),y=y+Math.imul(t,D0)|0,w=w+Math.imul(t,C0)|0,w=w+Math.imul(m,D0)|0,p=p+Math.imul(m,C0)|0,y=y+Math.imul(u,R0)|0,w=w+Math.imul(u,P0)|0,w=w+Math.imul(n,R0)|0,p=p+Math.imul(n,P0)|0,y=y+Math.imul(b,M0)|0,w=w+Math.imul(b,S0)|0,w=w+Math.imul(l,M0)|0,p=p+Math.imul(l,S0)|0,y=y+Math.imul(c,q0)|0,w=w+Math.imul(c,j0)|0,w=w+Math.imul(h,q0)|0,p=p+Math.imul(h,j0)|0;var t0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(t0>>>26)|0,t0&=67108863,y=Math.imul($0,W0),w=Math.imul($0,E0),w=w+Math.imul(Q0,W0)|0,p=Math.imul(Q0,E0),y=y+Math.imul(e,D0)|0,w=w+Math.imul(e,C0)|0,w=w+Math.imul(r,D0)|0,p=p+Math.imul(r,C0)|0,y=y+Math.imul(t,R0)|0,w=w+Math.imul(t,P0)|0,w=w+Math.imul(m,R0)|0,p=p+Math.imul(m,P0)|0,y=y+Math.imul(u,M0)|0,w=w+Math.imul(u,S0)|0,w=w+Math.imul(n,M0)|0,p=p+Math.imul(n,S0)|0,y=y+Math.imul(b,q0)|0,w=w+Math.imul(b,j0)|0,w=w+Math.imul(l,q0)|0,p=p+Math.imul(l,j0)|0,y=y+Math.imul(c,g0)|0,w=w+Math.imul(c,_0)|0,w=w+Math.imul(h,g0)|0,p=p+Math.imul(h,_0)|0;var m0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(m0>>>26)|0,m0&=67108863,y=Math.imul(Z0,W0),w=Math.imul(Z0,E0),w=w+Math.imul(G0,W0)|0,p=Math.imul(G0,E0),y=y+Math.imul($0,D0)|0,w=w+Math.imul($0,C0)|0,w=w+Math.imul(Q0,D0)|0,p=p+Math.imul(Q0,C0)|0,y=y+Math.imul(e,R0)|0,w=w+Math.imul(e,P0)|0,w=w+Math.imul(r,R0)|0,p=p+Math.imul(r,P0)|0,y=y+Math.imul(t,M0)|0,w=w+Math.imul(t,S0)|0,w=w+Math.imul(m,M0)|0,p=p+Math.imul(m,S0)|0,y=y+Math.imul(u,q0)|0,w=w+Math.imul(u,j0)|0,w=w+Math.imul(n,q0)|0,p=p+Math.imul(n,j0)|0,y=y+Math.imul(b,g0)|0,w=w+Math.imul(b,_0)|0,w=w+Math.imul(l,g0)|0,p=p+Math.imul(l,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,B0)|0,w=w+Math.imul(h,x0)|0,p=p+Math.imul(h,B0)|0;var a0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(a0>>>26)|0,a0&=67108863,y=Math.imul(U0,W0),w=Math.imul(U0,E0),w=w+Math.imul(X0,W0)|0,p=Math.imul(X0,E0),y=y+Math.imul(Z0,D0)|0,w=w+Math.imul(Z0,C0)|0,w=w+Math.imul(G0,D0)|0,p=p+Math.imul(G0,C0)|0,y=y+Math.imul($0,R0)|0,w=w+Math.imul($0,P0)|0,w=w+Math.imul(Q0,R0)|0,p=p+Math.imul(Q0,P0)|0,y=y+Math.imul(e,M0)|0,w=w+Math.imul(e,S0)|0,w=w+Math.imul(r,M0)|0,p=p+Math.imul(r,S0)|0,y=y+Math.imul(t,q0)|0,w=w+Math.imul(t,j0)|0,w=w+Math.imul(m,q0)|0,p=p+Math.imul(m,j0)|0,y=y+Math.imul(u,g0)|0,w=w+Math.imul(u,_0)|0,w=w+Math.imul(n,g0)|0,p=p+Math.imul(n,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,B0)|0,w=w+Math.imul(l,x0)|0,p=p+Math.imul(l,B0)|0,y=y+Math.imul(c,w0)|0,w=w+Math.imul(c,p0)|0,w=w+Math.imul(h,w0)|0,p=p+Math.imul(h,p0)|0;var e0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(e0>>>26)|0,e0&=67108863,y=Math.imul(I0,W0),w=Math.imul(I0,E0),w=w+Math.imul(O0,W0)|0,p=Math.imul(O0,E0),y=y+Math.imul(U0,D0)|0,w=w+Math.imul(U0,C0)|0,w=w+Math.imul(X0,D0)|0,p=p+Math.imul(X0,C0)|0,y=y+Math.imul(Z0,R0)|0,w=w+Math.imul(Z0,P0)|0,w=w+Math.imul(G0,R0)|0,p=p+Math.imul(G0,P0)|0,y=y+Math.imul($0,M0)|0,w=w+Math.imul($0,S0)|0,w=w+Math.imul(Q0,M0)|0,p=p+Math.imul(Q0,S0)|0,y=y+Math.imul(e,q0)|0,w=w+Math.imul(e,j0)|0,w=w+Math.imul(r,q0)|0,p=p+Math.imul(r,j0)|0,y=y+Math.imul(t,g0)|0,w=w+Math.imul(t,_0)|0,w=w+Math.imul(m,g0)|0,p=p+Math.imul(m,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,B0)|0,w=w+Math.imul(n,x0)|0,p=p+Math.imul(n,B0)|0,y=y+Math.imul(b,w0)|0,w=w+Math.imul(b,p0)|0,w=w+Math.imul(l,w0)|0,p=p+Math.imul(l,p0)|0,y=y+Math.imul(c,c0)|0,w=w+Math.imul(c,h0)|0,w=w+Math.imul(h,c0)|0,p=p+Math.imul(h,h0)|0;var r0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(r0>>>26)|0,r0&=67108863,y=Math.imul(F0,W0),w=Math.imul(F0,E0),w=w+Math.imul(A0,W0)|0,p=Math.imul(A0,E0),y=y+Math.imul(I0,D0)|0,w=w+Math.imul(I0,C0)|0,w=w+Math.imul(O0,D0)|0,p=p+Math.imul(O0,C0)|0,y=y+Math.imul(U0,R0)|0,w=w+Math.imul(U0,P0)|0,w=w+Math.imul(X0,R0)|0,p=p+Math.imul(X0,P0)|0,y=y+Math.imul(Z0,M0)|0,w=w+Math.imul(Z0,S0)|0,w=w+Math.imul(G0,M0)|0,p=p+Math.imul(G0,S0)|0,y=y+Math.imul($0,q0)|0,w=w+Math.imul($0,j0)|0,w=w+Math.imul(Q0,q0)|0,p=p+Math.imul(Q0,j0)|0,y=y+Math.imul(e,g0)|0,w=w+Math.imul(e,_0)|0,w=w+Math.imul(r,g0)|0,p=p+Math.imul(r,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,B0)|0,w=w+Math.imul(m,x0)|0,p=p+Math.imul(m,B0)|0,y=y+Math.imul(u,w0)|0,w=w+Math.imul(u,p0)|0,w=w+Math.imul(n,w0)|0,p=p+Math.imul(n,p0)|0,y=y+Math.imul(b,c0)|0,w=w+Math.imul(b,h0)|0,w=w+Math.imul(l,c0)|0,p=p+Math.imul(l,h0)|0,y=y+Math.imul(c,b0)|0,w=w+Math.imul(c,l0)|0,w=w+Math.imul(h,b0)|0,p=p+Math.imul(h,l0)|0;var i0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(i0>>>26)|0,i0&=67108863,y=Math.imul(F0,D0),w=Math.imul(F0,C0),w=w+Math.imul(A0,D0)|0,p=Math.imul(A0,C0),y=y+Math.imul(I0,R0)|0,w=w+Math.imul(I0,P0)|0,w=w+Math.imul(O0,R0)|0,p=p+Math.imul(O0,P0)|0,y=y+Math.imul(U0,M0)|0,w=w+Math.imul(U0,S0)|0,w=w+Math.imul(X0,M0)|0,p=p+Math.imul(X0,S0)|0,y=y+Math.imul(Z0,q0)|0,w=w+Math.imul(Z0,j0)|0,w=w+Math.imul(G0,q0)|0,p=p+Math.imul(G0,j0)|0,y=y+Math.imul($0,g0)|0,w=w+Math.imul($0,_0)|0,w=w+Math.imul(Q0,g0)|0,p=p+Math.imul(Q0,_0)|0,y=y+Math.imul(e,x0)|0,w=w+Math.imul(e,B0)|0,w=w+Math.imul(r,x0)|0,p=p+Math.imul(r,B0)|0,y=y+Math.imul(t,w0)|0,w=w+Math.imul(t,p0)|0,w=w+Math.imul(m,w0)|0,p=p+Math.imul(m,p0)|0,y=y+Math.imul(u,c0)|0,w=w+Math.imul(u,h0)|0,w=w+Math.imul(n,c0)|0,p=p+Math.imul(n,h0)|0,y=y+Math.imul(b,b0)|0,w=w+Math.imul(b,l0)|0,w=w+Math.imul(l,b0)|0,p=p+Math.imul(l,l0)|0;var $$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+($$>>>26)|0,$$&=67108863,y=Math.imul(F0,R0),w=Math.imul(F0,P0),w=w+Math.imul(A0,R0)|0,p=Math.imul(A0,P0),y=y+Math.imul(I0,M0)|0,w=w+Math.imul(I0,S0)|0,w=w+Math.imul(O0,M0)|0,p=p+Math.imul(O0,S0)|0,y=y+Math.imul(U0,q0)|0,w=w+Math.imul(U0,j0)|0,w=w+Math.imul(X0,q0)|0,p=p+Math.imul(X0,j0)|0,y=y+Math.imul(Z0,g0)|0,w=w+Math.imul(Z0,_0)|0,w=w+Math.imul(G0,g0)|0,p=p+Math.imul(G0,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,B0)|0,w=w+Math.imul(Q0,x0)|0,p=p+Math.imul(Q0,B0)|0,y=y+Math.imul(e,w0)|0,w=w+Math.imul(e,p0)|0,w=w+Math.imul(r,w0)|0,p=p+Math.imul(r,p0)|0,y=y+Math.imul(t,c0)|0,w=w+Math.imul(t,h0)|0,w=w+Math.imul(m,c0)|0,p=p+Math.imul(m,h0)|0,y=y+Math.imul(u,b0)|0,w=w+Math.imul(u,l0)|0,w=w+Math.imul(n,b0)|0,p=p+Math.imul(n,l0)|0;var Q$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,y=Math.imul(F0,M0),w=Math.imul(F0,S0),w=w+Math.imul(A0,M0)|0,p=Math.imul(A0,S0),y=y+Math.imul(I0,q0)|0,w=w+Math.imul(I0,j0)|0,w=w+Math.imul(O0,q0)|0,p=p+Math.imul(O0,j0)|0,y=y+Math.imul(U0,g0)|0,w=w+Math.imul(U0,_0)|0,w=w+Math.imul(X0,g0)|0,p=p+Math.imul(X0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,B0)|0,w=w+Math.imul(G0,x0)|0,p=p+Math.imul(G0,B0)|0,y=y+Math.imul($0,w0)|0,w=w+Math.imul($0,p0)|0,w=w+Math.imul(Q0,w0)|0,p=p+Math.imul(Q0,p0)|0,y=y+Math.imul(e,c0)|0,w=w+Math.imul(e,h0)|0,w=w+Math.imul(r,c0)|0,p=p+Math.imul(r,h0)|0,y=y+Math.imul(t,b0)|0,w=w+Math.imul(t,l0)|0,w=w+Math.imul(m,b0)|0,p=p+Math.imul(m,l0)|0;var Y$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,y=Math.imul(F0,q0),w=Math.imul(F0,j0),w=w+Math.imul(A0,q0)|0,p=Math.imul(A0,j0),y=y+Math.imul(I0,g0)|0,w=w+Math.imul(I0,_0)|0,w=w+Math.imul(O0,g0)|0,p=p+Math.imul(O0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,B0)|0,w=w+Math.imul(X0,x0)|0,p=p+Math.imul(X0,B0)|0,y=y+Math.imul(Z0,w0)|0,w=w+Math.imul(Z0,p0)|0,w=w+Math.imul(G0,w0)|0,p=p+Math.imul(G0,p0)|0,y=y+Math.imul($0,c0)|0,w=w+Math.imul($0,h0)|0,w=w+Math.imul(Q0,c0)|0,p=p+Math.imul(Q0,h0)|0,y=y+Math.imul(e,b0)|0,w=w+Math.imul(e,l0)|0,w=w+Math.imul(r,b0)|0,p=p+Math.imul(r,l0)|0;var Z$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,y=Math.imul(F0,g0),w=Math.imul(F0,_0),w=w+Math.imul(A0,g0)|0,p=Math.imul(A0,_0),y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,B0)|0,w=w+Math.imul(O0,x0)|0,p=p+Math.imul(O0,B0)|0,y=y+Math.imul(U0,w0)|0,w=w+Math.imul(U0,p0)|0,w=w+Math.imul(X0,w0)|0,p=p+Math.imul(X0,p0)|0,y=y+Math.imul(Z0,c0)|0,w=w+Math.imul(Z0,h0)|0,w=w+Math.imul(G0,c0)|0,p=p+Math.imul(G0,h0)|0,y=y+Math.imul($0,b0)|0,w=w+Math.imul($0,l0)|0,w=w+Math.imul(Q0,b0)|0,p=p+Math.imul(Q0,l0)|0;var G$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(G$>>>26)|0,G$&=67108863,y=Math.imul(F0,x0),w=Math.imul(F0,B0),w=w+Math.imul(A0,x0)|0,p=Math.imul(A0,B0),y=y+Math.imul(I0,w0)|0,w=w+Math.imul(I0,p0)|0,w=w+Math.imul(O0,w0)|0,p=p+Math.imul(O0,p0)|0,y=y+Math.imul(U0,c0)|0,w=w+Math.imul(U0,h0)|0,w=w+Math.imul(X0,c0)|0,p=p+Math.imul(X0,h0)|0,y=y+Math.imul(Z0,b0)|0,w=w+Math.imul(Z0,l0)|0,w=w+Math.imul(G0,b0)|0,p=p+Math.imul(G0,l0)|0;var V$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(V$>>>26)|0,V$&=67108863,y=Math.imul(F0,w0),w=Math.imul(F0,p0),w=w+Math.imul(A0,w0)|0,p=Math.imul(A0,p0),y=y+Math.imul(I0,c0)|0,w=w+Math.imul(I0,h0)|0,w=w+Math.imul(O0,c0)|0,p=p+Math.imul(O0,h0)|0,y=y+Math.imul(U0,b0)|0,w=w+Math.imul(U0,l0)|0,w=w+Math.imul(X0,b0)|0,p=p+Math.imul(X0,l0)|0;var U$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(U$>>>26)|0,U$&=67108863,y=Math.imul(F0,c0),w=Math.imul(F0,h0),w=w+Math.imul(A0,c0)|0,p=Math.imul(A0,h0),y=y+Math.imul(I0,b0)|0,w=w+Math.imul(I0,l0)|0,w=w+Math.imul(O0,b0)|0,p=p+Math.imul(O0,l0)|0;var X$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(X$>>>26)|0,X$&=67108863,y=Math.imul(F0,b0),w=Math.imul(F0,l0),w=w+Math.imul(A0,b0)|0,p=Math.imul(A0,l0);var K$=(B+y|0)+((w&8191)<<13)|0;return B=(p+(w>>>13)|0)+(K$>>>26)|0,K$&=67108863,x[0]=o0,x[1]=u0,x[2]=n0,x[3]=s0,x[4]=t0,x[5]=m0,x[6]=a0,x[7]=e0,x[8]=r0,x[9]=i0,x[10]=$$,x[11]=Q$,x[12]=Y$,x[13]=Z$,x[14]=G$,x[15]=V$,x[16]=U$,x[17]=X$,x[18]=K$,B!==0&&(x[19]=B,g.length++),g};Math.imul||(E=W);function T(j,k,g){g.negative=k.negative^j.negative,g.length=j.length+k.length;for(var _=0,N=0,x=0;x>>26)|0,N+=B>>>26,B&=67108863}g.words[x]=y,_=B,B=N}return _!==0?g.words[x]=_:g.length--,g.strip()}function D(j,k,g){var _=new C;return _.mulp(j,k,g)}U.prototype.mulTo=function(j,k){var g,_=this.length+j.length;return this.length===10&&j.length===10?g=E(this,j,k):_<63?g=W(this,j,k):_<1024?g=T(this,j,k):g=D(this,j,k),g};function C(j,k){this.x=j,this.y=k}C.prototype.makeRBT=function(j){for(var k=new Array(j),g=U.prototype._countBits(j)-1,_=0;_>=1;return _},C.prototype.permute=function(j,k,g,_,N,x){for(var B=0;B>>1)N++;return 1<>>13,g[2*x+1]=N&8191,N=N>>>13;for(x=2*k;x<_;++x)g[x]=0;G(N===0),G((N&-8192)===0)},C.prototype.stub=function(j){for(var k=new Array(j),g=0;g>=26,k+=_/67108864|0,k+=N>>>26,this.words[g]=N&67108863}return k!==0&&(this.words[g]=k,this.length++),this},U.prototype.muln=function(j){return this.clone().imuln(j)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(j){var k=H(j);if(k.length===0)return new U(1);for(var g=this,_=0;_=0);var k=j%26,g=(j-k)/26,_=67108863>>>26-k<<26-k,N;if(k!==0){var x=0;for(N=0;N>>26-k}x&&(this.words[N]=x,this.length++)}if(g!==0){for(N=this.length-1;N>=0;N--)this.words[N+g]=this.words[N];for(N=0;N=0);var _;k?_=(k-k%26)/26:_=0;var N=j%26,x=Math.min((j-N)/26,this.length),B=67108863^67108863>>>N<x)for(this.length-=x,w=0;w=0&&(p!==0||w>=_);w--){var f=this.words[w]|0;this.words[w]=p<<26-N|f>>>N,p=f&B}return y&&p!==0&&(y.words[y.length++]=p),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},U.prototype.ishrn=function(j,k,g){return G(this.negative===0),this.iushrn(j,k,g)},U.prototype.shln=function(j){return this.clone().ishln(j)},U.prototype.ushln=function(j){return this.clone().iushln(j)},U.prototype.shrn=function(j){return this.clone().ishrn(j)},U.prototype.ushrn=function(j){return this.clone().iushrn(j)},U.prototype.testn=function(j){G(typeof j=="number"&&j>=0);var k=j%26,g=(j-k)/26,_=1<=0);var k=j%26,g=(j-k)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(k!==0&&g++,this.length=Math.min(g,this.length),k!==0){var _=67108863^67108863>>>k<=67108864;k++)this.words[k]-=67108864,k===this.length-1?this.words[k+1]=1:this.words[k+1]++;return this.length=Math.max(this.length,k+1),this},U.prototype.isubn=function(j){if(G(typeof j=="number"),G(j<67108864),j<0)return this.iaddn(-j);if(this.negative!==0)return this.negative=0,this.iaddn(j),this.negative=1,this;if(this.words[0]-=j,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var k=0;k>26)-(y/67108864|0),this.words[N+g]=x&67108863}for(;N>26,this.words[N+g]=x&67108863;if(B===0)return this.strip();for(G(B===-1),B=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},U.prototype._wordDiv=function(j,k){var g=this.length-j.length,_=this.clone(),N=j,x=N.words[N.length-1]|0,B=this._countBits(x);g=26-B,g!==0&&(N=N.ushln(g),_.iushln(g),x=N.words[N.length-1]|0);var y=_.length-N.length,w;if(k!=="mod"){w=new U(null),w.length=y+1,w.words=new Array(w.length);for(var p=0;p=0;c--){var h=(_.words[N.length+c]|0)*67108864+(_.words[N.length+c-1]|0);for(h=Math.min(h/x|0,67108863),_._ishlnsubmul(N,h,c);_.negative!==0;)h--,_.negative=0,_._ishlnsubmul(N,1,c),_.isZero()||(_.negative^=1);w&&(w.words[c]=h)}return w&&w.strip(),_.strip(),k!=="div"&&g!==0&&_.iushrn(g),{div:w||null,mod:_}},U.prototype.divmod=function(j,k,g){if(G(!j.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var _,N,x;return this.negative!==0&&j.negative===0?(x=this.neg().divmod(j,k),k!=="mod"&&(_=x.div.neg()),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.iadd(j)),{div:_,mod:N}):this.negative===0&&j.negative!==0?(x=this.divmod(j.neg(),k),k!=="mod"&&(_=x.div.neg()),{div:_,mod:x.mod}):(this.negative&j.negative)!==0?(x=this.neg().divmod(j.neg(),k),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.isub(j)),{div:x.div,mod:N}):j.length>this.length||this.cmp(j)<0?{div:new U(0),mod:this}:j.length===1?k==="div"?{div:this.divn(j.words[0]),mod:null}:k==="mod"?{div:null,mod:new U(this.modn(j.words[0]))}:{div:this.divn(j.words[0]),mod:new U(this.modn(j.words[0]))}:this._wordDiv(j,k)},U.prototype.div=function(j){return this.divmod(j,"div",!1).div},U.prototype.mod=function(j){return this.divmod(j,"mod",!1).mod},U.prototype.umod=function(j){return this.divmod(j,"mod",!0).mod},U.prototype.divRound=function(j){var k=this.divmod(j);if(k.mod.isZero())return k.div;var g=k.div.negative!==0?k.mod.isub(j):k.mod,_=j.ushrn(1),N=j.andln(1),x=g.cmp(_);return x<0||N===1&&x===0?k.div:k.div.negative!==0?k.div.isubn(1):k.div.iaddn(1)},U.prototype.modn=function(j){G(j<=67108863);for(var k=(1<<26)%j,g=0,_=this.length-1;_>=0;_--)g=(k*g+(this.words[_]|0))%j;return g},U.prototype.idivn=function(j){G(j<=67108863);for(var k=0,g=this.length-1;g>=0;g--){var _=(this.words[g]|0)+k*67108864;this.words[g]=_/j|0,k=_%j}return this.strip()},U.prototype.divn=function(j){return this.clone().idivn(j)},U.prototype.egcd=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=new U(0),B=new U(1),y=0;k.isEven()&&g.isEven();)k.iushrn(1),g.iushrn(1),++y;for(var w=g.clone(),p=k.clone();!k.isZero();){for(var f=0,c=1;(k.words[0]&c)===0&&f<26;++f,c<<=1);if(f>0)for(k.iushrn(f);f-- >0;)(_.isOdd()||N.isOdd())&&(_.iadd(w),N.isub(p)),_.iushrn(1),N.iushrn(1);for(var h=0,d=1;(g.words[0]&d)===0&&h<26;++h,d<<=1);if(h>0)for(g.iushrn(h);h-- >0;)(x.isOdd()||B.isOdd())&&(x.iadd(w),B.isub(p)),x.iushrn(1),B.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(x),N.isub(B)):(g.isub(k),x.isub(_),B.isub(N))}return{a:x,b:B,gcd:g.iushln(y)}},U.prototype._invmp=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=g.clone();k.cmpn(1)>0&&g.cmpn(1)>0;){for(var B=0,y=1;(k.words[0]&y)===0&&B<26;++B,y<<=1);if(B>0)for(k.iushrn(B);B-- >0;)_.isOdd()&&_.iadd(x),_.iushrn(1);for(var w=0,p=1;(g.words[0]&p)===0&&w<26;++w,p<<=1);if(w>0)for(g.iushrn(w);w-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(N)):(g.isub(k),N.isub(_))}var f;return k.cmpn(1)===0?f=_:f=N,f.cmpn(0)<0&&f.iadd(j),f},U.prototype.gcd=function(j){if(this.isZero())return j.abs();if(j.isZero())return this.abs();var k=this.clone(),g=j.clone();k.negative=0,g.negative=0;for(var _=0;k.isEven()&&g.isEven();_++)k.iushrn(1),g.iushrn(1);do{for(;k.isEven();)k.iushrn(1);for(;g.isEven();)g.iushrn(1);var N=k.cmp(g);if(N<0){var x=k;k=g,g=x}else if(N===0||g.cmpn(1)===0)break;k.isub(g)}while(!0);return g.iushln(_)},U.prototype.invm=function(j){return this.egcd(j).a.umod(j)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(j){return this.words[0]&j},U.prototype.bincn=function(j){G(typeof j=="number");var k=j%26,g=(j-k)/26,_=1<>>26,B&=67108863,this.words[x]=B}return N!==0&&(this.words[x]=N,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(j){var k=j<0;if(this.negative!==0&&!k)return-1;if(this.negative===0&&k)return 1;this.strip();var g;if(this.length>1)g=1;else{k&&(j=-j),G(j<=67108863,"Number is too big");var _=this.words[0]|0;g=_===j?0:_j.length)return 1;if(this.length=0;g--){var _=this.words[g]|0,N=j.words[g]|0;if(_!==N){_N&&(k=1);break}}return k},U.prototype.gtn=function(j){return this.cmpn(j)===1},U.prototype.gt=function(j){return this.cmp(j)===1},U.prototype.gten=function(j){return this.cmpn(j)>=0},U.prototype.gte=function(j){return this.cmp(j)>=0},U.prototype.ltn=function(j){return this.cmpn(j)===-1},U.prototype.lt=function(j){return this.cmp(j)===-1},U.prototype.lten=function(j){return this.cmpn(j)<=0},U.prototype.lte=function(j){return this.cmp(j)<=0},U.prototype.eqn=function(j){return this.cmpn(j)===0},U.prototype.eq=function(j){return this.cmp(j)===0},U.red=function(j){return new v(j)},U.prototype.toRed=function(j){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),j.convertTo(this)._forceRed(j)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(j){return this.red=j,this},U.prototype.forceRed=function(j){return G(!this.red,"Already a number in reduction context"),this._forceRed(j)},U.prototype.redAdd=function(j){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,j)},U.prototype.redIAdd=function(j){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,j)},U.prototype.redSub=function(j){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,j)},U.prototype.redISub=function(j){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,j)},U.prototype.redShl=function(j){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,j)},U.prototype.redMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.mul(this,j)},U.prototype.redIMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.imul(this,j)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(j){return G(this.red&&!j.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,j)};var L={k256:null,p224:null,p192:null,p25519:null};function R(j,k){this.name=j,this.p=new U(k,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}R.prototype._tmp=function(){var j=new U(null);return j.words=new Array(Math.ceil(this.n/13)),j},R.prototype.ireduce=function(j){var k=j,g;do this.split(k,this.tmp),k=this.imulK(k),k=k.iadd(this.tmp),g=k.bitLength();while(g>this.n);var _=g0?k.isub(this.p):k.strip!==void 0?k.strip():k._strip(),k},R.prototype.split=function(j,k){j.iushrn(this.n,0,k)},R.prototype.imulK=function(j){return j.imul(this.k)};function P(){R.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(P,R),P.prototype.split=function(j,k){for(var g=4194303,_=Math.min(j.length,9),N=0;N<_;N++)k.words[N]=j.words[N];if(k.length=_,j.length<=9){j.words[0]=0,j.length=1;return}var x=j.words[9];for(k.words[k.length++]=x&g,N=10;N>>22,x=B}x>>>=22,j.words[N-10]=x,x===0&&j.length>10?j.length-=10:j.length-=9},P.prototype.imulK=function(j){j.words[j.length]=0,j.words[j.length+1]=0,j.length+=2;for(var k=0,g=0;g>>=26,j.words[g]=N,k=_}return k!==0&&(j.words[j.length++]=k),j},U._prime=function(j){if(L[j])return L[j];var k;if(j==="k256")k=new P;else if(j==="p224")k=new z;else if(j==="p192")k=new M;else if(j==="p25519")k=new S;else throw new Error("Unknown prime "+j);return L[j]=k,k};function v(j){if(typeof j=="string"){var k=U._prime(j);this.m=k.p,this.prime=k}else G(j.gtn(1),"modulus must be greater than 1"),this.m=j,this.prime=null}v.prototype._verify1=function(j){G(j.negative===0,"red works only with positives"),G(j.red,"red works only with red numbers")},v.prototype._verify2=function(j,k){G((j.negative|k.negative)===0,"red works only with positives"),G(j.red&&j.red===k.red,"red works only with red numbers")},v.prototype.imod=function(j){return this.prime?this.prime.ireduce(j)._forceRed(this):j.umod(this.m)._forceRed(this)},v.prototype.neg=function(j){return j.isZero()?j.clone():this.m.sub(j)._forceRed(this)},v.prototype.add=function(j,k){this._verify2(j,k);var g=j.add(k);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},v.prototype.iadd=function(j,k){this._verify2(j,k);var g=j.iadd(k);return g.cmp(this.m)>=0&&g.isub(this.m),g},v.prototype.sub=function(j,k){this._verify2(j,k);var g=j.sub(k);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},v.prototype.isub=function(j,k){this._verify2(j,k);var g=j.isub(k);return g.cmpn(0)<0&&g.iadd(this.m),g},v.prototype.shl=function(j,k){return this._verify1(j),this.imod(j.ushln(k))},v.prototype.imul=function(j,k){return this._verify2(j,k),this.imod(j.imul(k))},v.prototype.mul=function(j,k){return this._verify2(j,k),this.imod(j.mul(k))},v.prototype.isqr=function(j){return this.imul(j,j.clone())},v.prototype.sqr=function(j){return this.mul(j,j)},v.prototype.sqrt=function(j){if(j.isZero())return j.clone();var k=this.m.andln(3);if(G(k%2===1),k===3){var g=this.m.add(new U(1)).iushrn(2);return this.pow(j,g)}for(var _=this.m.subn(1),N=0;!_.isZero()&&_.andln(1)===0;)N++,_.iushrn(1);G(!_.isZero());var x=new U(1).toRed(this),B=x.redNeg(),y=this.m.subn(1).iushrn(1),w=this.m.bitLength();for(w=new U(2*w*w).toRed(this);this.pow(w,y).cmp(B)!==0;)w.redIAdd(B);for(var p=this.pow(w,_),f=this.pow(j,_.addn(1).iushrn(1)),c=this.pow(j,_),h=N;c.cmp(x)!==0;){for(var d=c,b=0;d.cmp(x)!==0;b++)d=d.redSqr();G(b=0;N--){for(var p=k.words[N],f=w-1;f>=0;f--){var c=p>>f&1;if(x!==_[0]&&(x=this.sqr(x)),c===0&&B===0){y=0;continue}B<<=1,B|=c,y++,!(y!==g&&(N!==0||f!==0))&&(x=this.mul(x,_[B]),y=0,B=0)}w=26}return x},v.prototype.convertTo=function(j){var k=j.umod(this.m);return k===j?k.clone():k},v.prototype.convertFrom=function(j){var k=j.clone();return k.red=null,k},U.mont=function(j){return new q(j)};function q(j){v.call(this,j),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(q,v),q.prototype.convertTo=function(j){return this.imod(j.ushln(this.shift))},q.prototype.convertFrom=function(j){var k=this.imod(j.mul(this.rinv));return k.red=null,k},q.prototype.imul=function(j,k){if(j.isZero()||k.isZero())return j.words[0]=0,j.length=1,j;var g=j.imul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.mul=function(j,k){if(j.isZero()||k.isZero())return new U(0)._forceRed(this);var g=j.mul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.invm=function(j){var k=this.imod(j._invmp(this.m).mul(this.r2));return k._forceRed(this)}})(typeof Q>"u"||Q,$)}}),_Q=q$({"node_modules/miller-rabin/node_modules/bn.js/lib/bn.js"($,Q){(function(Y,Z){function G(j,k){if(!j)throw new Error(k||"Assertion failed")}function V(j,k){j.super_=k;var g=function(){};g.prototype=k.prototype,j.prototype=new g,j.prototype.constructor=j}function U(j,k,g){if(U.isBN(j))return j;this.negative=0,this.words=null,this.length=0,this.red=null,j!==null&&((k==="le"||k==="be")&&(g=k,k=10),this._init(j||0,k||10,g||"be"))}typeof Y=="object"?Y.exports=U:Z.BN=U,U.BN=U,U.wordSize=26;var X=F$;U.isBN=function(j){return j instanceof U?!0:j!==null&&typeof j=="object"&&j.constructor.wordSize===U.wordSize&&Array.isArray(j.words)},U.max=function(j,k){return j.cmp(k)>0?j:k},U.min=function(j,k){return j.cmp(k)<0?j:k},U.prototype._init=function(j,k,g){if(typeof j=="number")return this._initNumber(j,k,g);if(typeof j=="object")return this._initArray(j,k,g);k==="hex"&&(k=16),G(k===(k|0)&&k>=2&&k<=36),j=j.toString().replace(/\s+/g,"");var _=0;j[0]==="-"&&(_++,this.negative=1),_=0;_-=3)x=j[_]|j[_-1]<<8|j[_-2]<<16,this.words[N]|=x<>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);else if(g==="le")for(_=0,N=0;_>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);return this.strip()};function K(j,k){var g=j.charCodeAt(k);return g>=65&&g<=70?g-55:g>=97&&g<=102?g-87:g-48&15}function I(j,k,g){var _=K(j,g);return g-1>=k&&(_|=K(j,g-1)<<4),_}U.prototype._parseHex=function(j,k,g){this.length=Math.ceil((j.length-k)/6),this.words=new Array(this.length);for(var _=0;_=k;_-=2)B=I(j,k,_)<=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8;else{var y=j.length-k;for(_=y%2===0?k+1:k;_=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8}this.strip()};function O(j,k,g,_){for(var N=0,x=Math.min(j.length,g),B=k;B=49?N+=y-49+10:y>=17?N+=y-17+10:N+=y}return N}U.prototype._parseBase=function(j,k,g){this.words=[0],this.length=1;for(var _=0,N=1;N<=67108863;N*=k)_++;_--,N=N/k|0;for(var x=j.length-g,B=x%_,y=Math.min(x,x-B)+g,w=0,p=g;p1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},U.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],F=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],A=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(j,k){j=j||10,k=k|0||1;var g;if(j===16||j==="hex"){g="";for(var _=0,N=0,x=0;x>>24-_&16777215,N!==0||x!==this.length-1?g=J[6-y.length]+y+g:g=y+g,_+=2,_>=26&&(_-=26,x--)}for(N!==0&&(g=N.toString(16)+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(j===(j|0)&&j>=2&&j<=36){var w=F[j],p=A[j];g="";var f=this.clone();for(f.negative=0;!f.isZero();){var c=f.modn(p).toString(j);f=f.idivn(p),f.isZero()?g=c+g:g=J[w-c.length]+c+g}for(this.isZero()&&(g="0"+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var j=this.words[0];return this.length===2?j+=this.words[1]*67108864:this.length===3&&this.words[2]===1?j+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-j:j},U.prototype.toJSON=function(){return this.toString(16)},U.prototype.toBuffer=function(j,k){return G(typeof X<"u"),this.toArrayLike(X,j,k)},U.prototype.toArray=function(j,k){return this.toArrayLike(Array,j,k)},U.prototype.toArrayLike=function(j,k,g){var _=this.byteLength(),N=g||Math.max(1,_);G(_<=N,"byte array longer than desired length"),G(N>0,"Requested array length <= 0"),this.strip();var x=k==="le",B=new j(N),y,w,p=this.clone();if(x){for(w=0;!p.isZero();w++)y=p.andln(255),p.iushrn(8),B[w]=y;for(;w=4096&&(g+=13,k>>>=13),k>=64&&(g+=7,k>>>=7),k>=8&&(g+=4,k>>>=4),k>=2&&(g+=2,k>>>=2),g+k},U.prototype._zeroBits=function(j){if(j===0)return 26;var k=j,g=0;return(k&8191)===0&&(g+=13,k>>>=13),(k&127)===0&&(g+=7,k>>>=7),(k&15)===0&&(g+=4,k>>>=4),(k&3)===0&&(g+=2,k>>>=2),(k&1)===0&&g++,g},U.prototype.bitLength=function(){var j=this.words[this.length-1],k=this._countBits(j);return(this.length-1)*26+k};function H(j){for(var k=new Array(j.bitLength()),g=0;g>>N}return k}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var j=0,k=0;kj.length?this.clone().ior(j):j.clone().ior(this)},U.prototype.uor=function(j){return this.length>j.length?this.clone().iuor(j):j.clone().iuor(this)},U.prototype.iuand=function(j){var k;this.length>j.length?k=j:k=this;for(var g=0;gj.length?this.clone().iand(j):j.clone().iand(this)},U.prototype.uand=function(j){return this.length>j.length?this.clone().iuand(j):j.clone().iuand(this)},U.prototype.iuxor=function(j){var k,g;this.length>j.length?(k=this,g=j):(k=j,g=this);for(var _=0;_j.length?this.clone().ixor(j):j.clone().ixor(this)},U.prototype.uxor=function(j){return this.length>j.length?this.clone().iuxor(j):j.clone().iuxor(this)},U.prototype.inotn=function(j){G(typeof j=="number"&&j>=0);var k=Math.ceil(j/26)|0,g=j%26;this._expand(k),g>0&&k--;for(var _=0;_0&&(this.words[_]=~this.words[_]&67108863>>26-g),this.strip()},U.prototype.notn=function(j){return this.clone().inotn(j)},U.prototype.setn=function(j,k){G(typeof j=="number"&&j>=0);var g=j/26|0,_=j%26;return this._expand(g+1),k?this.words[g]=this.words[g]|1<<_:this.words[g]=this.words[g]&~(1<<_),this.strip()},U.prototype.iadd=function(j){var k;if(this.negative!==0&&j.negative===0)return this.negative=0,k=this.isub(j),this.negative^=1,this._normSign();if(this.negative===0&&j.negative!==0)return j.negative=0,k=this.isub(j),j.negative=1,k._normSign();var g,_;this.length>j.length?(g=this,_=j):(g=j,_=this);for(var N=0,x=0;x<_.length;x++)k=(g.words[x]|0)+(_.words[x]|0)+N,this.words[x]=k&67108863,N=k>>>26;for(;N!==0&&x>>26;if(this.length=g.length,N!==0)this.words[this.length]=N,this.length++;else if(g!==this)for(;xj.length?this.clone().iadd(j):j.clone().iadd(this)},U.prototype.isub=function(j){if(j.negative!==0){j.negative=0;var k=this.iadd(j);return j.negative=1,k._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(j),this.negative=1,this._normSign();var g=this.cmp(j);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var _,N;g>0?(_=this,N=j):(_=j,N=this);for(var x=0,B=0;B>26,this.words[B]=k&67108863;for(;x!==0&&B<_.length;B++)k=(_.words[B]|0)+x,x=k>>26,this.words[B]=k&67108863;if(x===0&&B<_.length&&_!==this)for(;B<_.length;B++)this.words[B]=_.words[B];return this.length=Math.max(this.length,B),_!==this&&(this.negative=1),this.strip()},U.prototype.sub=function(j){return this.clone().isub(j)};function W(j,k,g){g.negative=k.negative^j.negative;var _=j.length+k.length|0;g.length=_,_=_-1|0;var N=j.words[0]|0,x=k.words[0]|0,B=N*x,y=B&67108863,w=B/67108864|0;g.words[0]=y;for(var p=1;p<_;p++){for(var f=w>>>26,c=w&67108863,h=Math.min(p,k.length-1),d=Math.max(0,p-j.length+1);d<=h;d++){var b=p-d|0;N=j.words[b]|0,x=k.words[d]|0,B=N*x+c,f+=B/67108864|0,c=B&67108863}g.words[p]=c|0,w=f|0}return w!==0?g.words[p]=w|0:g.length--,g.strip()}var E=function(j,k,g){var _=j.words,N=k.words,x=g.words,B=0,y,w,p,f=_[0]|0,c=f&8191,h=f>>>13,d=_[1]|0,b=d&8191,l=d>>>13,o=_[2]|0,u=o&8191,n=o>>>13,s=_[3]|0,t=s&8191,m=s>>>13,a=_[4]|0,e=a&8191,r=a>>>13,i=_[5]|0,$0=i&8191,Q0=i>>>13,Y0=_[6]|0,Z0=Y0&8191,G0=Y0>>>13,V0=_[7]|0,U0=V0&8191,X0=V0>>>13,K0=_[8]|0,I0=K0&8191,O0=K0>>>13,J0=_[9]|0,F0=J0&8191,A0=J0>>>13,H0=N[0]|0,W0=H0&8191,E0=H0>>>13,T0=N[1]|0,D0=T0&8191,C0=T0>>>13,L0=N[2]|0,R0=L0&8191,P0=L0>>>13,z0=N[3]|0,M0=z0&8191,S0=z0>>>13,v0=N[4]|0,q0=v0&8191,j0=v0>>>13,k0=N[5]|0,g0=k0&8191,_0=k0>>>13,N0=N[6]|0,x0=N0&8191,B0=N0>>>13,y0=N[7]|0,w0=y0&8191,p0=y0>>>13,f0=N[8]|0,c0=f0&8191,h0=f0>>>13,d0=N[9]|0,b0=d0&8191,l0=d0>>>13;g.negative=j.negative^k.negative,g.length=19,y=Math.imul(c,W0),w=Math.imul(c,E0),w=w+Math.imul(h,W0)|0,p=Math.imul(h,E0);var o0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(o0>>>26)|0,o0&=67108863,y=Math.imul(b,W0),w=Math.imul(b,E0),w=w+Math.imul(l,W0)|0,p=Math.imul(l,E0),y=y+Math.imul(c,D0)|0,w=w+Math.imul(c,C0)|0,w=w+Math.imul(h,D0)|0,p=p+Math.imul(h,C0)|0;var u0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(u0>>>26)|0,u0&=67108863,y=Math.imul(u,W0),w=Math.imul(u,E0),w=w+Math.imul(n,W0)|0,p=Math.imul(n,E0),y=y+Math.imul(b,D0)|0,w=w+Math.imul(b,C0)|0,w=w+Math.imul(l,D0)|0,p=p+Math.imul(l,C0)|0,y=y+Math.imul(c,R0)|0,w=w+Math.imul(c,P0)|0,w=w+Math.imul(h,R0)|0,p=p+Math.imul(h,P0)|0;var n0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(n0>>>26)|0,n0&=67108863,y=Math.imul(t,W0),w=Math.imul(t,E0),w=w+Math.imul(m,W0)|0,p=Math.imul(m,E0),y=y+Math.imul(u,D0)|0,w=w+Math.imul(u,C0)|0,w=w+Math.imul(n,D0)|0,p=p+Math.imul(n,C0)|0,y=y+Math.imul(b,R0)|0,w=w+Math.imul(b,P0)|0,w=w+Math.imul(l,R0)|0,p=p+Math.imul(l,P0)|0,y=y+Math.imul(c,M0)|0,w=w+Math.imul(c,S0)|0,w=w+Math.imul(h,M0)|0,p=p+Math.imul(h,S0)|0;var s0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(s0>>>26)|0,s0&=67108863,y=Math.imul(e,W0),w=Math.imul(e,E0),w=w+Math.imul(r,W0)|0,p=Math.imul(r,E0),y=y+Math.imul(t,D0)|0,w=w+Math.imul(t,C0)|0,w=w+Math.imul(m,D0)|0,p=p+Math.imul(m,C0)|0,y=y+Math.imul(u,R0)|0,w=w+Math.imul(u,P0)|0,w=w+Math.imul(n,R0)|0,p=p+Math.imul(n,P0)|0,y=y+Math.imul(b,M0)|0,w=w+Math.imul(b,S0)|0,w=w+Math.imul(l,M0)|0,p=p+Math.imul(l,S0)|0,y=y+Math.imul(c,q0)|0,w=w+Math.imul(c,j0)|0,w=w+Math.imul(h,q0)|0,p=p+Math.imul(h,j0)|0;var t0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(t0>>>26)|0,t0&=67108863,y=Math.imul($0,W0),w=Math.imul($0,E0),w=w+Math.imul(Q0,W0)|0,p=Math.imul(Q0,E0),y=y+Math.imul(e,D0)|0,w=w+Math.imul(e,C0)|0,w=w+Math.imul(r,D0)|0,p=p+Math.imul(r,C0)|0,y=y+Math.imul(t,R0)|0,w=w+Math.imul(t,P0)|0,w=w+Math.imul(m,R0)|0,p=p+Math.imul(m,P0)|0,y=y+Math.imul(u,M0)|0,w=w+Math.imul(u,S0)|0,w=w+Math.imul(n,M0)|0,p=p+Math.imul(n,S0)|0,y=y+Math.imul(b,q0)|0,w=w+Math.imul(b,j0)|0,w=w+Math.imul(l,q0)|0,p=p+Math.imul(l,j0)|0,y=y+Math.imul(c,g0)|0,w=w+Math.imul(c,_0)|0,w=w+Math.imul(h,g0)|0,p=p+Math.imul(h,_0)|0;var m0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(m0>>>26)|0,m0&=67108863,y=Math.imul(Z0,W0),w=Math.imul(Z0,E0),w=w+Math.imul(G0,W0)|0,p=Math.imul(G0,E0),y=y+Math.imul($0,D0)|0,w=w+Math.imul($0,C0)|0,w=w+Math.imul(Q0,D0)|0,p=p+Math.imul(Q0,C0)|0,y=y+Math.imul(e,R0)|0,w=w+Math.imul(e,P0)|0,w=w+Math.imul(r,R0)|0,p=p+Math.imul(r,P0)|0,y=y+Math.imul(t,M0)|0,w=w+Math.imul(t,S0)|0,w=w+Math.imul(m,M0)|0,p=p+Math.imul(m,S0)|0,y=y+Math.imul(u,q0)|0,w=w+Math.imul(u,j0)|0,w=w+Math.imul(n,q0)|0,p=p+Math.imul(n,j0)|0,y=y+Math.imul(b,g0)|0,w=w+Math.imul(b,_0)|0,w=w+Math.imul(l,g0)|0,p=p+Math.imul(l,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,B0)|0,w=w+Math.imul(h,x0)|0,p=p+Math.imul(h,B0)|0;var a0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(a0>>>26)|0,a0&=67108863,y=Math.imul(U0,W0),w=Math.imul(U0,E0),w=w+Math.imul(X0,W0)|0,p=Math.imul(X0,E0),y=y+Math.imul(Z0,D0)|0,w=w+Math.imul(Z0,C0)|0,w=w+Math.imul(G0,D0)|0,p=p+Math.imul(G0,C0)|0,y=y+Math.imul($0,R0)|0,w=w+Math.imul($0,P0)|0,w=w+Math.imul(Q0,R0)|0,p=p+Math.imul(Q0,P0)|0,y=y+Math.imul(e,M0)|0,w=w+Math.imul(e,S0)|0,w=w+Math.imul(r,M0)|0,p=p+Math.imul(r,S0)|0,y=y+Math.imul(t,q0)|0,w=w+Math.imul(t,j0)|0,w=w+Math.imul(m,q0)|0,p=p+Math.imul(m,j0)|0,y=y+Math.imul(u,g0)|0,w=w+Math.imul(u,_0)|0,w=w+Math.imul(n,g0)|0,p=p+Math.imul(n,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,B0)|0,w=w+Math.imul(l,x0)|0,p=p+Math.imul(l,B0)|0,y=y+Math.imul(c,w0)|0,w=w+Math.imul(c,p0)|0,w=w+Math.imul(h,w0)|0,p=p+Math.imul(h,p0)|0;var e0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(e0>>>26)|0,e0&=67108863,y=Math.imul(I0,W0),w=Math.imul(I0,E0),w=w+Math.imul(O0,W0)|0,p=Math.imul(O0,E0),y=y+Math.imul(U0,D0)|0,w=w+Math.imul(U0,C0)|0,w=w+Math.imul(X0,D0)|0,p=p+Math.imul(X0,C0)|0,y=y+Math.imul(Z0,R0)|0,w=w+Math.imul(Z0,P0)|0,w=w+Math.imul(G0,R0)|0,p=p+Math.imul(G0,P0)|0,y=y+Math.imul($0,M0)|0,w=w+Math.imul($0,S0)|0,w=w+Math.imul(Q0,M0)|0,p=p+Math.imul(Q0,S0)|0,y=y+Math.imul(e,q0)|0,w=w+Math.imul(e,j0)|0,w=w+Math.imul(r,q0)|0,p=p+Math.imul(r,j0)|0,y=y+Math.imul(t,g0)|0,w=w+Math.imul(t,_0)|0,w=w+Math.imul(m,g0)|0,p=p+Math.imul(m,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,B0)|0,w=w+Math.imul(n,x0)|0,p=p+Math.imul(n,B0)|0,y=y+Math.imul(b,w0)|0,w=w+Math.imul(b,p0)|0,w=w+Math.imul(l,w0)|0,p=p+Math.imul(l,p0)|0,y=y+Math.imul(c,c0)|0,w=w+Math.imul(c,h0)|0,w=w+Math.imul(h,c0)|0,p=p+Math.imul(h,h0)|0;var r0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(r0>>>26)|0,r0&=67108863,y=Math.imul(F0,W0),w=Math.imul(F0,E0),w=w+Math.imul(A0,W0)|0,p=Math.imul(A0,E0),y=y+Math.imul(I0,D0)|0,w=w+Math.imul(I0,C0)|0,w=w+Math.imul(O0,D0)|0,p=p+Math.imul(O0,C0)|0,y=y+Math.imul(U0,R0)|0,w=w+Math.imul(U0,P0)|0,w=w+Math.imul(X0,R0)|0,p=p+Math.imul(X0,P0)|0,y=y+Math.imul(Z0,M0)|0,w=w+Math.imul(Z0,S0)|0,w=w+Math.imul(G0,M0)|0,p=p+Math.imul(G0,S0)|0,y=y+Math.imul($0,q0)|0,w=w+Math.imul($0,j0)|0,w=w+Math.imul(Q0,q0)|0,p=p+Math.imul(Q0,j0)|0,y=y+Math.imul(e,g0)|0,w=w+Math.imul(e,_0)|0,w=w+Math.imul(r,g0)|0,p=p+Math.imul(r,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,B0)|0,w=w+Math.imul(m,x0)|0,p=p+Math.imul(m,B0)|0,y=y+Math.imul(u,w0)|0,w=w+Math.imul(u,p0)|0,w=w+Math.imul(n,w0)|0,p=p+Math.imul(n,p0)|0,y=y+Math.imul(b,c0)|0,w=w+Math.imul(b,h0)|0,w=w+Math.imul(l,c0)|0,p=p+Math.imul(l,h0)|0,y=y+Math.imul(c,b0)|0,w=w+Math.imul(c,l0)|0,w=w+Math.imul(h,b0)|0,p=p+Math.imul(h,l0)|0;var i0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(i0>>>26)|0,i0&=67108863,y=Math.imul(F0,D0),w=Math.imul(F0,C0),w=w+Math.imul(A0,D0)|0,p=Math.imul(A0,C0),y=y+Math.imul(I0,R0)|0,w=w+Math.imul(I0,P0)|0,w=w+Math.imul(O0,R0)|0,p=p+Math.imul(O0,P0)|0,y=y+Math.imul(U0,M0)|0,w=w+Math.imul(U0,S0)|0,w=w+Math.imul(X0,M0)|0,p=p+Math.imul(X0,S0)|0,y=y+Math.imul(Z0,q0)|0,w=w+Math.imul(Z0,j0)|0,w=w+Math.imul(G0,q0)|0,p=p+Math.imul(G0,j0)|0,y=y+Math.imul($0,g0)|0,w=w+Math.imul($0,_0)|0,w=w+Math.imul(Q0,g0)|0,p=p+Math.imul(Q0,_0)|0,y=y+Math.imul(e,x0)|0,w=w+Math.imul(e,B0)|0,w=w+Math.imul(r,x0)|0,p=p+Math.imul(r,B0)|0,y=y+Math.imul(t,w0)|0,w=w+Math.imul(t,p0)|0,w=w+Math.imul(m,w0)|0,p=p+Math.imul(m,p0)|0,y=y+Math.imul(u,c0)|0,w=w+Math.imul(u,h0)|0,w=w+Math.imul(n,c0)|0,p=p+Math.imul(n,h0)|0,y=y+Math.imul(b,b0)|0,w=w+Math.imul(b,l0)|0,w=w+Math.imul(l,b0)|0,p=p+Math.imul(l,l0)|0;var $$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+($$>>>26)|0,$$&=67108863,y=Math.imul(F0,R0),w=Math.imul(F0,P0),w=w+Math.imul(A0,R0)|0,p=Math.imul(A0,P0),y=y+Math.imul(I0,M0)|0,w=w+Math.imul(I0,S0)|0,w=w+Math.imul(O0,M0)|0,p=p+Math.imul(O0,S0)|0,y=y+Math.imul(U0,q0)|0,w=w+Math.imul(U0,j0)|0,w=w+Math.imul(X0,q0)|0,p=p+Math.imul(X0,j0)|0,y=y+Math.imul(Z0,g0)|0,w=w+Math.imul(Z0,_0)|0,w=w+Math.imul(G0,g0)|0,p=p+Math.imul(G0,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,B0)|0,w=w+Math.imul(Q0,x0)|0,p=p+Math.imul(Q0,B0)|0,y=y+Math.imul(e,w0)|0,w=w+Math.imul(e,p0)|0,w=w+Math.imul(r,w0)|0,p=p+Math.imul(r,p0)|0,y=y+Math.imul(t,c0)|0,w=w+Math.imul(t,h0)|0,w=w+Math.imul(m,c0)|0,p=p+Math.imul(m,h0)|0,y=y+Math.imul(u,b0)|0,w=w+Math.imul(u,l0)|0,w=w+Math.imul(n,b0)|0,p=p+Math.imul(n,l0)|0;var Q$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,y=Math.imul(F0,M0),w=Math.imul(F0,S0),w=w+Math.imul(A0,M0)|0,p=Math.imul(A0,S0),y=y+Math.imul(I0,q0)|0,w=w+Math.imul(I0,j0)|0,w=w+Math.imul(O0,q0)|0,p=p+Math.imul(O0,j0)|0,y=y+Math.imul(U0,g0)|0,w=w+Math.imul(U0,_0)|0,w=w+Math.imul(X0,g0)|0,p=p+Math.imul(X0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,B0)|0,w=w+Math.imul(G0,x0)|0,p=p+Math.imul(G0,B0)|0,y=y+Math.imul($0,w0)|0,w=w+Math.imul($0,p0)|0,w=w+Math.imul(Q0,w0)|0,p=p+Math.imul(Q0,p0)|0,y=y+Math.imul(e,c0)|0,w=w+Math.imul(e,h0)|0,w=w+Math.imul(r,c0)|0,p=p+Math.imul(r,h0)|0,y=y+Math.imul(t,b0)|0,w=w+Math.imul(t,l0)|0,w=w+Math.imul(m,b0)|0,p=p+Math.imul(m,l0)|0;var Y$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,y=Math.imul(F0,q0),w=Math.imul(F0,j0),w=w+Math.imul(A0,q0)|0,p=Math.imul(A0,j0),y=y+Math.imul(I0,g0)|0,w=w+Math.imul(I0,_0)|0,w=w+Math.imul(O0,g0)|0,p=p+Math.imul(O0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,B0)|0,w=w+Math.imul(X0,x0)|0,p=p+Math.imul(X0,B0)|0,y=y+Math.imul(Z0,w0)|0,w=w+Math.imul(Z0,p0)|0,w=w+Math.imul(G0,w0)|0,p=p+Math.imul(G0,p0)|0,y=y+Math.imul($0,c0)|0,w=w+Math.imul($0,h0)|0,w=w+Math.imul(Q0,c0)|0,p=p+Math.imul(Q0,h0)|0,y=y+Math.imul(e,b0)|0,w=w+Math.imul(e,l0)|0,w=w+Math.imul(r,b0)|0,p=p+Math.imul(r,l0)|0;var Z$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,y=Math.imul(F0,g0),w=Math.imul(F0,_0),w=w+Math.imul(A0,g0)|0,p=Math.imul(A0,_0),y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,B0)|0,w=w+Math.imul(O0,x0)|0,p=p+Math.imul(O0,B0)|0,y=y+Math.imul(U0,w0)|0,w=w+Math.imul(U0,p0)|0,w=w+Math.imul(X0,w0)|0,p=p+Math.imul(X0,p0)|0,y=y+Math.imul(Z0,c0)|0,w=w+Math.imul(Z0,h0)|0,w=w+Math.imul(G0,c0)|0,p=p+Math.imul(G0,h0)|0,y=y+Math.imul($0,b0)|0,w=w+Math.imul($0,l0)|0,w=w+Math.imul(Q0,b0)|0,p=p+Math.imul(Q0,l0)|0;var G$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(G$>>>26)|0,G$&=67108863,y=Math.imul(F0,x0),w=Math.imul(F0,B0),w=w+Math.imul(A0,x0)|0,p=Math.imul(A0,B0),y=y+Math.imul(I0,w0)|0,w=w+Math.imul(I0,p0)|0,w=w+Math.imul(O0,w0)|0,p=p+Math.imul(O0,p0)|0,y=y+Math.imul(U0,c0)|0,w=w+Math.imul(U0,h0)|0,w=w+Math.imul(X0,c0)|0,p=p+Math.imul(X0,h0)|0,y=y+Math.imul(Z0,b0)|0,w=w+Math.imul(Z0,l0)|0,w=w+Math.imul(G0,b0)|0,p=p+Math.imul(G0,l0)|0;var V$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(V$>>>26)|0,V$&=67108863,y=Math.imul(F0,w0),w=Math.imul(F0,p0),w=w+Math.imul(A0,w0)|0,p=Math.imul(A0,p0),y=y+Math.imul(I0,c0)|0,w=w+Math.imul(I0,h0)|0,w=w+Math.imul(O0,c0)|0,p=p+Math.imul(O0,h0)|0,y=y+Math.imul(U0,b0)|0,w=w+Math.imul(U0,l0)|0,w=w+Math.imul(X0,b0)|0,p=p+Math.imul(X0,l0)|0;var U$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(U$>>>26)|0,U$&=67108863,y=Math.imul(F0,c0),w=Math.imul(F0,h0),w=w+Math.imul(A0,c0)|0,p=Math.imul(A0,h0),y=y+Math.imul(I0,b0)|0,w=w+Math.imul(I0,l0)|0,w=w+Math.imul(O0,b0)|0,p=p+Math.imul(O0,l0)|0;var X$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(X$>>>26)|0,X$&=67108863,y=Math.imul(F0,b0),w=Math.imul(F0,l0),w=w+Math.imul(A0,b0)|0,p=Math.imul(A0,l0);var K$=(B+y|0)+((w&8191)<<13)|0;return B=(p+(w>>>13)|0)+(K$>>>26)|0,K$&=67108863,x[0]=o0,x[1]=u0,x[2]=n0,x[3]=s0,x[4]=t0,x[5]=m0,x[6]=a0,x[7]=e0,x[8]=r0,x[9]=i0,x[10]=$$,x[11]=Q$,x[12]=Y$,x[13]=Z$,x[14]=G$,x[15]=V$,x[16]=U$,x[17]=X$,x[18]=K$,B!==0&&(x[19]=B,g.length++),g};Math.imul||(E=W);function T(j,k,g){g.negative=k.negative^j.negative,g.length=j.length+k.length;for(var _=0,N=0,x=0;x>>26)|0,N+=B>>>26,B&=67108863}g.words[x]=y,_=B,B=N}return _!==0?g.words[x]=_:g.length--,g.strip()}function D(j,k,g){var _=new C;return _.mulp(j,k,g)}U.prototype.mulTo=function(j,k){var g,_=this.length+j.length;return this.length===10&&j.length===10?g=E(this,j,k):_<63?g=W(this,j,k):_<1024?g=T(this,j,k):g=D(this,j,k),g};function C(j,k){this.x=j,this.y=k}C.prototype.makeRBT=function(j){for(var k=new Array(j),g=U.prototype._countBits(j)-1,_=0;_>=1;return _},C.prototype.permute=function(j,k,g,_,N,x){for(var B=0;B>>1)N++;return 1<>>13,g[2*x+1]=N&8191,N=N>>>13;for(x=2*k;x<_;++x)g[x]=0;G(N===0),G((N&-8192)===0)},C.prototype.stub=function(j){for(var k=new Array(j),g=0;g>=26,k+=_/67108864|0,k+=N>>>26,this.words[g]=N&67108863}return k!==0&&(this.words[g]=k,this.length++),this},U.prototype.muln=function(j){return this.clone().imuln(j)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(j){var k=H(j);if(k.length===0)return new U(1);for(var g=this,_=0;_=0);var k=j%26,g=(j-k)/26,_=67108863>>>26-k<<26-k,N;if(k!==0){var x=0;for(N=0;N>>26-k}x&&(this.words[N]=x,this.length++)}if(g!==0){for(N=this.length-1;N>=0;N--)this.words[N+g]=this.words[N];for(N=0;N=0);var _;k?_=(k-k%26)/26:_=0;var N=j%26,x=Math.min((j-N)/26,this.length),B=67108863^67108863>>>N<x)for(this.length-=x,w=0;w=0&&(p!==0||w>=_);w--){var f=this.words[w]|0;this.words[w]=p<<26-N|f>>>N,p=f&B}return y&&p!==0&&(y.words[y.length++]=p),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},U.prototype.ishrn=function(j,k,g){return G(this.negative===0),this.iushrn(j,k,g)},U.prototype.shln=function(j){return this.clone().ishln(j)},U.prototype.ushln=function(j){return this.clone().iushln(j)},U.prototype.shrn=function(j){return this.clone().ishrn(j)},U.prototype.ushrn=function(j){return this.clone().iushrn(j)},U.prototype.testn=function(j){G(typeof j=="number"&&j>=0);var k=j%26,g=(j-k)/26,_=1<=0);var k=j%26,g=(j-k)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(k!==0&&g++,this.length=Math.min(g,this.length),k!==0){var _=67108863^67108863>>>k<=67108864;k++)this.words[k]-=67108864,k===this.length-1?this.words[k+1]=1:this.words[k+1]++;return this.length=Math.max(this.length,k+1),this},U.prototype.isubn=function(j){if(G(typeof j=="number"),G(j<67108864),j<0)return this.iaddn(-j);if(this.negative!==0)return this.negative=0,this.iaddn(j),this.negative=1,this;if(this.words[0]-=j,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var k=0;k>26)-(y/67108864|0),this.words[N+g]=x&67108863}for(;N>26,this.words[N+g]=x&67108863;if(B===0)return this.strip();for(G(B===-1),B=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},U.prototype._wordDiv=function(j,k){var g=this.length-j.length,_=this.clone(),N=j,x=N.words[N.length-1]|0,B=this._countBits(x);g=26-B,g!==0&&(N=N.ushln(g),_.iushln(g),x=N.words[N.length-1]|0);var y=_.length-N.length,w;if(k!=="mod"){w=new U(null),w.length=y+1,w.words=new Array(w.length);for(var p=0;p=0;c--){var h=(_.words[N.length+c]|0)*67108864+(_.words[N.length+c-1]|0);for(h=Math.min(h/x|0,67108863),_._ishlnsubmul(N,h,c);_.negative!==0;)h--,_.negative=0,_._ishlnsubmul(N,1,c),_.isZero()||(_.negative^=1);w&&(w.words[c]=h)}return w&&w.strip(),_.strip(),k!=="div"&&g!==0&&_.iushrn(g),{div:w||null,mod:_}},U.prototype.divmod=function(j,k,g){if(G(!j.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var _,N,x;return this.negative!==0&&j.negative===0?(x=this.neg().divmod(j,k),k!=="mod"&&(_=x.div.neg()),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.iadd(j)),{div:_,mod:N}):this.negative===0&&j.negative!==0?(x=this.divmod(j.neg(),k),k!=="mod"&&(_=x.div.neg()),{div:_,mod:x.mod}):(this.negative&j.negative)!==0?(x=this.neg().divmod(j.neg(),k),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.isub(j)),{div:x.div,mod:N}):j.length>this.length||this.cmp(j)<0?{div:new U(0),mod:this}:j.length===1?k==="div"?{div:this.divn(j.words[0]),mod:null}:k==="mod"?{div:null,mod:new U(this.modn(j.words[0]))}:{div:this.divn(j.words[0]),mod:new U(this.modn(j.words[0]))}:this._wordDiv(j,k)},U.prototype.div=function(j){return this.divmod(j,"div",!1).div},U.prototype.mod=function(j){return this.divmod(j,"mod",!1).mod},U.prototype.umod=function(j){return this.divmod(j,"mod",!0).mod},U.prototype.divRound=function(j){var k=this.divmod(j);if(k.mod.isZero())return k.div;var g=k.div.negative!==0?k.mod.isub(j):k.mod,_=j.ushrn(1),N=j.andln(1),x=g.cmp(_);return x<0||N===1&&x===0?k.div:k.div.negative!==0?k.div.isubn(1):k.div.iaddn(1)},U.prototype.modn=function(j){G(j<=67108863);for(var k=(1<<26)%j,g=0,_=this.length-1;_>=0;_--)g=(k*g+(this.words[_]|0))%j;return g},U.prototype.idivn=function(j){G(j<=67108863);for(var k=0,g=this.length-1;g>=0;g--){var _=(this.words[g]|0)+k*67108864;this.words[g]=_/j|0,k=_%j}return this.strip()},U.prototype.divn=function(j){return this.clone().idivn(j)},U.prototype.egcd=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=new U(0),B=new U(1),y=0;k.isEven()&&g.isEven();)k.iushrn(1),g.iushrn(1),++y;for(var w=g.clone(),p=k.clone();!k.isZero();){for(var f=0,c=1;(k.words[0]&c)===0&&f<26;++f,c<<=1);if(f>0)for(k.iushrn(f);f-- >0;)(_.isOdd()||N.isOdd())&&(_.iadd(w),N.isub(p)),_.iushrn(1),N.iushrn(1);for(var h=0,d=1;(g.words[0]&d)===0&&h<26;++h,d<<=1);if(h>0)for(g.iushrn(h);h-- >0;)(x.isOdd()||B.isOdd())&&(x.iadd(w),B.isub(p)),x.iushrn(1),B.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(x),N.isub(B)):(g.isub(k),x.isub(_),B.isub(N))}return{a:x,b:B,gcd:g.iushln(y)}},U.prototype._invmp=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=g.clone();k.cmpn(1)>0&&g.cmpn(1)>0;){for(var B=0,y=1;(k.words[0]&y)===0&&B<26;++B,y<<=1);if(B>0)for(k.iushrn(B);B-- >0;)_.isOdd()&&_.iadd(x),_.iushrn(1);for(var w=0,p=1;(g.words[0]&p)===0&&w<26;++w,p<<=1);if(w>0)for(g.iushrn(w);w-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(N)):(g.isub(k),N.isub(_))}var f;return k.cmpn(1)===0?f=_:f=N,f.cmpn(0)<0&&f.iadd(j),f},U.prototype.gcd=function(j){if(this.isZero())return j.abs();if(j.isZero())return this.abs();var k=this.clone(),g=j.clone();k.negative=0,g.negative=0;for(var _=0;k.isEven()&&g.isEven();_++)k.iushrn(1),g.iushrn(1);do{for(;k.isEven();)k.iushrn(1);for(;g.isEven();)g.iushrn(1);var N=k.cmp(g);if(N<0){var x=k;k=g,g=x}else if(N===0||g.cmpn(1)===0)break;k.isub(g)}while(!0);return g.iushln(_)},U.prototype.invm=function(j){return this.egcd(j).a.umod(j)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(j){return this.words[0]&j},U.prototype.bincn=function(j){G(typeof j=="number");var k=j%26,g=(j-k)/26,_=1<>>26,B&=67108863,this.words[x]=B}return N!==0&&(this.words[x]=N,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(j){var k=j<0;if(this.negative!==0&&!k)return-1;if(this.negative===0&&k)return 1;this.strip();var g;if(this.length>1)g=1;else{k&&(j=-j),G(j<=67108863,"Number is too big");var _=this.words[0]|0;g=_===j?0:_j.length)return 1;if(this.length=0;g--){var _=this.words[g]|0,N=j.words[g]|0;if(_!==N){_N&&(k=1);break}}return k},U.prototype.gtn=function(j){return this.cmpn(j)===1},U.prototype.gt=function(j){return this.cmp(j)===1},U.prototype.gten=function(j){return this.cmpn(j)>=0},U.prototype.gte=function(j){return this.cmp(j)>=0},U.prototype.ltn=function(j){return this.cmpn(j)===-1},U.prototype.lt=function(j){return this.cmp(j)===-1},U.prototype.lten=function(j){return this.cmpn(j)<=0},U.prototype.lte=function(j){return this.cmp(j)<=0},U.prototype.eqn=function(j){return this.cmpn(j)===0},U.prototype.eq=function(j){return this.cmp(j)===0},U.red=function(j){return new v(j)},U.prototype.toRed=function(j){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),j.convertTo(this)._forceRed(j)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(j){return this.red=j,this},U.prototype.forceRed=function(j){return G(!this.red,"Already a number in reduction context"),this._forceRed(j)},U.prototype.redAdd=function(j){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,j)},U.prototype.redIAdd=function(j){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,j)},U.prototype.redSub=function(j){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,j)},U.prototype.redISub=function(j){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,j)},U.prototype.redShl=function(j){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,j)},U.prototype.redMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.mul(this,j)},U.prototype.redIMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.imul(this,j)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(j){return G(this.red&&!j.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,j)};var L={k256:null,p224:null,p192:null,p25519:null};function R(j,k){this.name=j,this.p=new U(k,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}R.prototype._tmp=function(){var j=new U(null);return j.words=new Array(Math.ceil(this.n/13)),j},R.prototype.ireduce=function(j){var k=j,g;do this.split(k,this.tmp),k=this.imulK(k),k=k.iadd(this.tmp),g=k.bitLength();while(g>this.n);var _=g0?k.isub(this.p):k.strip!==void 0?k.strip():k._strip(),k},R.prototype.split=function(j,k){j.iushrn(this.n,0,k)},R.prototype.imulK=function(j){return j.imul(this.k)};function P(){R.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(P,R),P.prototype.split=function(j,k){for(var g=4194303,_=Math.min(j.length,9),N=0;N<_;N++)k.words[N]=j.words[N];if(k.length=_,j.length<=9){j.words[0]=0,j.length=1;return}var x=j.words[9];for(k.words[k.length++]=x&g,N=10;N>>22,x=B}x>>>=22,j.words[N-10]=x,x===0&&j.length>10?j.length-=10:j.length-=9},P.prototype.imulK=function(j){j.words[j.length]=0,j.words[j.length+1]=0,j.length+=2;for(var k=0,g=0;g>>=26,j.words[g]=N,k=_}return k!==0&&(j.words[j.length++]=k),j},U._prime=function(j){if(L[j])return L[j];var k;if(j==="k256")k=new P;else if(j==="p224")k=new z;else if(j==="p192")k=new M;else if(j==="p25519")k=new S;else throw new Error("Unknown prime "+j);return L[j]=k,k};function v(j){if(typeof j=="string"){var k=U._prime(j);this.m=k.p,this.prime=k}else G(j.gtn(1),"modulus must be greater than 1"),this.m=j,this.prime=null}v.prototype._verify1=function(j){G(j.negative===0,"red works only with positives"),G(j.red,"red works only with red numbers")},v.prototype._verify2=function(j,k){G((j.negative|k.negative)===0,"red works only with positives"),G(j.red&&j.red===k.red,"red works only with red numbers")},v.prototype.imod=function(j){return this.prime?this.prime.ireduce(j)._forceRed(this):j.umod(this.m)._forceRed(this)},v.prototype.neg=function(j){return j.isZero()?j.clone():this.m.sub(j)._forceRed(this)},v.prototype.add=function(j,k){this._verify2(j,k);var g=j.add(k);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},v.prototype.iadd=function(j,k){this._verify2(j,k);var g=j.iadd(k);return g.cmp(this.m)>=0&&g.isub(this.m),g},v.prototype.sub=function(j,k){this._verify2(j,k);var g=j.sub(k);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},v.prototype.isub=function(j,k){this._verify2(j,k);var g=j.isub(k);return g.cmpn(0)<0&&g.iadd(this.m),g},v.prototype.shl=function(j,k){return this._verify1(j),this.imod(j.ushln(k))},v.prototype.imul=function(j,k){return this._verify2(j,k),this.imod(j.imul(k))},v.prototype.mul=function(j,k){return this._verify2(j,k),this.imod(j.mul(k))},v.prototype.isqr=function(j){return this.imul(j,j.clone())},v.prototype.sqr=function(j){return this.mul(j,j)},v.prototype.sqrt=function(j){if(j.isZero())return j.clone();var k=this.m.andln(3);if(G(k%2===1),k===3){var g=this.m.add(new U(1)).iushrn(2);return this.pow(j,g)}for(var _=this.m.subn(1),N=0;!_.isZero()&&_.andln(1)===0;)N++,_.iushrn(1);G(!_.isZero());var x=new U(1).toRed(this),B=x.redNeg(),y=this.m.subn(1).iushrn(1),w=this.m.bitLength();for(w=new U(2*w*w).toRed(this);this.pow(w,y).cmp(B)!==0;)w.redIAdd(B);for(var p=this.pow(w,_),f=this.pow(j,_.addn(1).iushrn(1)),c=this.pow(j,_),h=N;c.cmp(x)!==0;){for(var d=c,b=0;d.cmp(x)!==0;b++)d=d.redSqr();G(b=0;N--){for(var p=k.words[N],f=w-1;f>=0;f--){var c=p>>f&1;if(x!==_[0]&&(x=this.sqr(x)),c===0&&B===0){y=0;continue}B<<=1,B|=c,y++,!(y!==g&&(N!==0||f!==0))&&(x=this.mul(x,_[B]),y=0,B=0)}w=26}return x},v.prototype.convertTo=function(j){var k=j.umod(this.m);return k===j?k.clone():k},v.prototype.convertFrom=function(j){var k=j.clone();return k.red=null,k},U.mont=function(j){return new q(j)};function q(j){v.call(this,j),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(q,v),q.prototype.convertTo=function(j){return this.imod(j.ushln(this.shift))},q.prototype.convertFrom=function(j){var k=this.imod(j.mul(this.rinv));return k.red=null,k},q.prototype.imul=function(j,k){if(j.isZero()||k.isZero())return j.words[0]=0,j.length=1,j;var g=j.imul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.mul=function(j,k){if(j.isZero()||k.isZero())return new U(0)._forceRed(this);var g=j.mul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.invm=function(j){var k=this.imod(j._invmp(this.m).mul(this.r2));return k._forceRed(this)}})(typeof Q>"u"||Q,$)}}),NQ=q$({"(disabled):node_modules/crypto-browserify/index.js"(){}}),xQ=q$({"node_modules/brorand/index.js"($,Q){var Y;Q.exports=function(G){return Y||(Y=new Z(null)),Y.generate(G)};function Z(G){this.rand=G}Q.exports.Rand=Z,Z.prototype.generate=function(G){return this._rand(G)},Z.prototype._rand=function(G){var V=new F$(G);return H$.getRandomValues(V),V}}}),BQ=q$({"node_modules/miller-rabin/lib/mr.js"($,Q){var Y=_Q(),Z=xQ();function G(V){this.rand=V||new Z.Rand}Q.exports=G,G.create=function(V){return new G(V)},G.prototype._randbelow=function(V){var U=V.bitLength(),X=Math.ceil(U/8);do var K=new Y(this.rand.generate(X));while(K.cmp(V)>=0);return K},G.prototype._randrange=function(V,U){var X=U.sub(V);return V.add(this._randbelow(X))},G.prototype.test=function(V,U,X){var K=V.bitLength(),I=Y.mont(V),O=new Y(1).toRed(I);U||(U=Math.max(1,K/48|0));for(var J=V.subn(1),F=0;!J.testn(F);F++);for(var A=V.shrn(F),H=J.toRed(I),W=!0;U>0;U--){var E=this._randrange(new Y(2),J);X&&X(E);var T=E.toRed(I).redPow(A);if(!(T.cmp(O)===0||T.cmp(H)===0)){for(var D=1;D0;U--){var H=this._randrange(new Y(2),O),W=V.gcd(H);if(W.cmpn(1)!==0)return W;var E=H.toRed(K).redPow(F);if(!(E.cmp(I)===0||E.cmp(A)===0)){for(var T=1;Tz;)S.ishrn(1);if(S.isEven()&&S.iadd(X),S.testn(1)||S.iadd(K),M.cmp(K)){if(!M.cmp(I))for(;S.mod(F).cmp(A);)S.iadd(E)}else for(;S.mod(G).cmp(W);)S.iadd(E);if(v=S.shrn(1),L(v)&&L(S)&&R(v)&&R(S)&&U.test(v)&&U.test(S))return S}}}}),wQ=q$({"node_modules/diffie-hellman/lib/primes.json"($,Q){Q.exports={modp1:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},modp2:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},modp5:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},modp14:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},modp15:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},modp16:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},modp17:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},modp18:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}}}),pQ=q$({"node_modules/diffie-hellman/lib/dh.js"($,Q){var Y=gQ(),Z=BQ(),G=new Z,V=new Y(24),U=new Y(11),X=new Y(10),K=new Y(3),I=new Y(7),O=yQ(),J=g$();Q.exports=E;function F(D,C){return C=C||"utf8",F$.isBuffer(D)||(D=new F$(D,C)),this._pub=new Y(D),this}function A(D,C){return C=C||"utf8",F$.isBuffer(D)||(D=new F$(D,C)),this._priv=new Y(D),this}var H={};function W(D,C){var L=C.toString("hex"),R=[L,D.toString(16)].join("_");if(R in H)return H[R];var P=0;if(D.isEven()||!O.simpleSieve||!O.fermatTest(D)||!G.test(D))return P+=1,L==="02"||L==="05"?P+=8:P+=4,H[R]=P,P;G.test(D.shrn(1))||(P+=2);var z;switch(L){case"02":D.mod(V).cmp(U)&&(P+=8);break;case"05":z=D.mod(X),z.cmp(K)&&z.cmp(I)&&(P+=8);break;default:P+=4}return H[R]=P,P}function E(D,C,L){this.setGenerator(C),this.__prime=new Y(D),this._prime=Y.mont(this.__prime),this._primeLen=D.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,L?(this.setPublicKey=F,this.setPrivateKey=A):this._primeCode=8}Object.defineProperty(E.prototype,"verifyError",{enumerable:!0,get:function(){return typeof this._primeCode!="number"&&(this._primeCode=W(this.__prime,this.__gen)),this._primeCode}}),E.prototype.generateKeys=function(){return this._priv||(this._priv=new Y(J(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},E.prototype.computeSecret=function(D){D=new Y(D),D=D.toRed(this._prime);var C=D.redPow(this._priv).fromRed(),L=new F$(C.toArray()),R=this.getPrime();if(L.length0?_:N},U.min=function(_,N){return _.cmp(N)<0?_:N},U.prototype._init=function(_,N,x){if(typeof _=="number")return this._initNumber(_,N,x);if(typeof _=="object")return this._initArray(_,N,x);N==="hex"&&(N=16),G(N===(N|0)&&N>=2&&N<=36),_=_.toString().replace(/\s+/g,"");var B=0;_[0]==="-"&&(B++,this.negative=1),B<_.length&&(N===16?this._parseHex(_,B,x):(this._parseBase(_,N,B),x==="le"&&this._initArray(this.toArray(),N,x)))},U.prototype._initNumber=function(_,N,x){_<0&&(this.negative=1,_=-_),_<67108864?(this.words=[_&67108863],this.length=1):_<4503599627370496?(this.words=[_&67108863,_/67108864&67108863],this.length=2):(G(_<9007199254740992),this.words=[_&67108863,_/67108864&67108863,1],this.length=3),x==="le"&&this._initArray(this.toArray(),N,x)},U.prototype._initArray=function(_,N,x){if(G(typeof _.length=="number"),_.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(_.length/3),this.words=new Array(this.length);for(var B=0;B=0;B-=3)w=_[B]|_[B-1]<<8|_[B-2]<<16,this.words[y]|=w<>>26-p&67108863,p+=24,p>=26&&(p-=26,y++);else if(x==="le")for(B=0,y=0;B<_.length;B+=3)w=_[B]|_[B+1]<<8|_[B+2]<<16,this.words[y]|=w<>>26-p&67108863,p+=24,p>=26&&(p-=26,y++);return this._strip()};function K(_,N){var x=_.charCodeAt(N);if(x>=48&&x<=57)return x-48;if(x>=65&&x<=70)return x-55;if(x>=97&&x<=102)return x-87;G(!1,"Invalid character in "+_)}function I(_,N,x){var B=K(_,x);return x-1>=N&&(B|=K(_,x-1)<<4),B}U.prototype._parseHex=function(_,N,x){this.length=Math.ceil((_.length-N)/6),this.words=new Array(this.length);for(var B=0;B=N;B-=2)p=I(_,N,B)<=18?(y-=18,w+=1,this.words[w]|=p>>>26):y+=8;else{var f=_.length-N;for(B=f%2===0?N+1:N;B<_.length;B+=2)p=I(_,N,B)<=18?(y-=18,w+=1,this.words[w]|=p>>>26):y+=8}this._strip()};function O(_,N,x,B){for(var y=0,w=0,p=Math.min(_.length,x),f=N;f=49?w=c-49+10:c>=17?w=c-17+10:w=c,G(c>=0&&w1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{U.prototype[Symbol.for("nodejs.util.inspect.custom")]=F}catch{U.prototype.inspect=F}else U.prototype.inspect=F;function F(){return(this.red?""}var A=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],H=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],W=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(_,N){_=_||10,N=N|0||1;var x;if(_===16||_==="hex"){x="";for(var B=0,y=0,w=0;w>>24-B&16777215,B+=2,B>=26&&(B-=26,w--),y!==0||w!==this.length-1?x=A[6-f.length]+f+x:x=f+x}for(y!==0&&(x=y.toString(16)+x);x.length%N!==0;)x="0"+x;return this.negative!==0&&(x="-"+x),x}if(_===(_|0)&&_>=2&&_<=36){var c=H[_],h=W[_];x="";var d=this.clone();for(d.negative=0;!d.isZero();){var b=d.modrn(h).toString(_);d=d.idivn(h),d.isZero()?x=b+x:x=A[c-b.length]+b+x}for(this.isZero()&&(x="0"+x);x.length%N!==0;)x="0"+x;return this.negative!==0&&(x="-"+x),x}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var _=this.words[0];return this.length===2?_+=this.words[1]*67108864:this.length===3&&this.words[2]===1?_+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-_:_},U.prototype.toJSON=function(){return this.toString(16,2)},X&&(U.prototype.toBuffer=function(_,N){return this.toArrayLike(X,_,N)}),U.prototype.toArray=function(_,N){return this.toArrayLike(Array,_,N)};var E=function(_,N){return _.allocUnsafe?_.allocUnsafe(N):new _(N)};U.prototype.toArrayLike=function(_,N,x){this._strip();var B=this.byteLength(),y=x||Math.max(1,B);G(B<=y,"byte array longer than desired length"),G(y>0,"Requested array length <= 0");var w=E(_,y),p=N==="le"?"LE":"BE";return this["_toArrayLike"+p](w,B),w},U.prototype._toArrayLikeLE=function(_,N){for(var x=0,B=0,y=0,w=0;y>8&255),x<_.length&&(_[x++]=p>>16&255),w===6?(x<_.length&&(_[x++]=p>>24&255),B=0,w=0):(B=p>>>24,w+=2)}if(x<_.length)for(_[x++]=B;x<_.length;)_[x++]=0},U.prototype._toArrayLikeBE=function(_,N){for(var x=_.length-1,B=0,y=0,w=0;y=0&&(_[x--]=p>>8&255),x>=0&&(_[x--]=p>>16&255),w===6?(x>=0&&(_[x--]=p>>24&255),B=0,w=0):(B=p>>>24,w+=2)}if(x>=0)for(_[x--]=B;x>=0;)_[x--]=0},Math.clz32?U.prototype._countBits=function(_){return 32-Math.clz32(_)}:U.prototype._countBits=function(_){var N=_,x=0;return N>=4096&&(x+=13,N>>>=13),N>=64&&(x+=7,N>>>=7),N>=8&&(x+=4,N>>>=4),N>=2&&(x+=2,N>>>=2),x+N},U.prototype._zeroBits=function(_){if(_===0)return 26;var N=_,x=0;return(N&8191)===0&&(x+=13,N>>>=13),(N&127)===0&&(x+=7,N>>>=7),(N&15)===0&&(x+=4,N>>>=4),(N&3)===0&&(x+=2,N>>>=2),(N&1)===0&&x++,x},U.prototype.bitLength=function(){var _=this.words[this.length-1],N=this._countBits(_);return(this.length-1)*26+N};function T(_){for(var N=new Array(_.bitLength()),x=0;x>>y&1}return N}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var _=0,N=0;N_.length?this.clone().ior(_):_.clone().ior(this)},U.prototype.uor=function(_){return this.length>_.length?this.clone().iuor(_):_.clone().iuor(this)},U.prototype.iuand=function(_){var N;this.length>_.length?N=_:N=this;for(var x=0;x_.length?this.clone().iand(_):_.clone().iand(this)},U.prototype.uand=function(_){return this.length>_.length?this.clone().iuand(_):_.clone().iuand(this)},U.prototype.iuxor=function(_){var N,x;this.length>_.length?(N=this,x=_):(N=_,x=this);for(var B=0;B_.length?this.clone().ixor(_):_.clone().ixor(this)},U.prototype.uxor=function(_){return this.length>_.length?this.clone().iuxor(_):_.clone().iuxor(this)},U.prototype.inotn=function(_){G(typeof _=="number"&&_>=0);var N=Math.ceil(_/26)|0,x=_%26;this._expand(N),x>0&&N--;for(var B=0;B0&&(this.words[B]=~this.words[B]&67108863>>26-x),this._strip()},U.prototype.notn=function(_){return this.clone().inotn(_)},U.prototype.setn=function(_,N){G(typeof _=="number"&&_>=0);var x=_/26|0,B=_%26;return this._expand(x+1),N?this.words[x]=this.words[x]|1<_.length?(x=this,B=_):(x=_,B=this);for(var y=0,w=0;w>>26;for(;y!==0&&w>>26;if(this.length=x.length,y!==0)this.words[this.length]=y,this.length++;else if(x!==this)for(;w_.length?this.clone().iadd(_):_.clone().iadd(this)},U.prototype.isub=function(_){if(_.negative!==0){_.negative=0;var N=this.iadd(_);return _.negative=1,N._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(_),this.negative=1,this._normSign();var x=this.cmp(_);if(x===0)return this.negative=0,this.length=1,this.words[0]=0,this;var B,y;x>0?(B=this,y=_):(B=_,y=this);for(var w=0,p=0;p>26,this.words[p]=N&67108863;for(;w!==0&&p>26,this.words[p]=N&67108863;if(w===0&&p>>26,b=c&67108863,l=Math.min(h,N.length-1),o=Math.max(0,h-_.length+1);o<=l;o++){var u=h-o|0;y=_.words[u]|0,w=N.words[o]|0,p=y*w+b,d+=p/67108864|0,b=p&67108863}x.words[h]=b|0,c=d|0}return c!==0?x.words[h]=c|0:x.length--,x._strip()}var C=function(_,N,x){var B=_.words,y=N.words,w=x.words,p=0,f,c,h,d=B[0]|0,b=d&8191,l=d>>>13,o=B[1]|0,u=o&8191,n=o>>>13,s=B[2]|0,t=s&8191,m=s>>>13,a=B[3]|0,e=a&8191,r=a>>>13,i=B[4]|0,$0=i&8191,Q0=i>>>13,Y0=B[5]|0,Z0=Y0&8191,G0=Y0>>>13,V0=B[6]|0,U0=V0&8191,X0=V0>>>13,K0=B[7]|0,I0=K0&8191,O0=K0>>>13,J0=B[8]|0,F0=J0&8191,A0=J0>>>13,H0=B[9]|0,W0=H0&8191,E0=H0>>>13,T0=y[0]|0,D0=T0&8191,C0=T0>>>13,L0=y[1]|0,R0=L0&8191,P0=L0>>>13,z0=y[2]|0,M0=z0&8191,S0=z0>>>13,v0=y[3]|0,q0=v0&8191,j0=v0>>>13,k0=y[4]|0,g0=k0&8191,_0=k0>>>13,N0=y[5]|0,x0=N0&8191,B0=N0>>>13,y0=y[6]|0,w0=y0&8191,p0=y0>>>13,f0=y[7]|0,c0=f0&8191,h0=f0>>>13,d0=y[8]|0,b0=d0&8191,l0=d0>>>13,o0=y[9]|0,u0=o0&8191,n0=o0>>>13;x.negative=_.negative^N.negative,x.length=19,f=Math.imul(b,D0),c=Math.imul(b,C0),c=c+Math.imul(l,D0)|0,h=Math.imul(l,C0);var s0=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(s0>>>26)|0,s0&=67108863,f=Math.imul(u,D0),c=Math.imul(u,C0),c=c+Math.imul(n,D0)|0,h=Math.imul(n,C0),f=f+Math.imul(b,R0)|0,c=c+Math.imul(b,P0)|0,c=c+Math.imul(l,R0)|0,h=h+Math.imul(l,P0)|0;var t0=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(t0>>>26)|0,t0&=67108863,f=Math.imul(t,D0),c=Math.imul(t,C0),c=c+Math.imul(m,D0)|0,h=Math.imul(m,C0),f=f+Math.imul(u,R0)|0,c=c+Math.imul(u,P0)|0,c=c+Math.imul(n,R0)|0,h=h+Math.imul(n,P0)|0,f=f+Math.imul(b,M0)|0,c=c+Math.imul(b,S0)|0,c=c+Math.imul(l,M0)|0,h=h+Math.imul(l,S0)|0;var m0=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(m0>>>26)|0,m0&=67108863,f=Math.imul(e,D0),c=Math.imul(e,C0),c=c+Math.imul(r,D0)|0,h=Math.imul(r,C0),f=f+Math.imul(t,R0)|0,c=c+Math.imul(t,P0)|0,c=c+Math.imul(m,R0)|0,h=h+Math.imul(m,P0)|0,f=f+Math.imul(u,M0)|0,c=c+Math.imul(u,S0)|0,c=c+Math.imul(n,M0)|0,h=h+Math.imul(n,S0)|0,f=f+Math.imul(b,q0)|0,c=c+Math.imul(b,j0)|0,c=c+Math.imul(l,q0)|0,h=h+Math.imul(l,j0)|0;var a0=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(a0>>>26)|0,a0&=67108863,f=Math.imul($0,D0),c=Math.imul($0,C0),c=c+Math.imul(Q0,D0)|0,h=Math.imul(Q0,C0),f=f+Math.imul(e,R0)|0,c=c+Math.imul(e,P0)|0,c=c+Math.imul(r,R0)|0,h=h+Math.imul(r,P0)|0,f=f+Math.imul(t,M0)|0,c=c+Math.imul(t,S0)|0,c=c+Math.imul(m,M0)|0,h=h+Math.imul(m,S0)|0,f=f+Math.imul(u,q0)|0,c=c+Math.imul(u,j0)|0,c=c+Math.imul(n,q0)|0,h=h+Math.imul(n,j0)|0,f=f+Math.imul(b,g0)|0,c=c+Math.imul(b,_0)|0,c=c+Math.imul(l,g0)|0,h=h+Math.imul(l,_0)|0;var e0=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(e0>>>26)|0,e0&=67108863,f=Math.imul(Z0,D0),c=Math.imul(Z0,C0),c=c+Math.imul(G0,D0)|0,h=Math.imul(G0,C0),f=f+Math.imul($0,R0)|0,c=c+Math.imul($0,P0)|0,c=c+Math.imul(Q0,R0)|0,h=h+Math.imul(Q0,P0)|0,f=f+Math.imul(e,M0)|0,c=c+Math.imul(e,S0)|0,c=c+Math.imul(r,M0)|0,h=h+Math.imul(r,S0)|0,f=f+Math.imul(t,q0)|0,c=c+Math.imul(t,j0)|0,c=c+Math.imul(m,q0)|0,h=h+Math.imul(m,j0)|0,f=f+Math.imul(u,g0)|0,c=c+Math.imul(u,_0)|0,c=c+Math.imul(n,g0)|0,h=h+Math.imul(n,_0)|0,f=f+Math.imul(b,x0)|0,c=c+Math.imul(b,B0)|0,c=c+Math.imul(l,x0)|0,h=h+Math.imul(l,B0)|0;var r0=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(r0>>>26)|0,r0&=67108863,f=Math.imul(U0,D0),c=Math.imul(U0,C0),c=c+Math.imul(X0,D0)|0,h=Math.imul(X0,C0),f=f+Math.imul(Z0,R0)|0,c=c+Math.imul(Z0,P0)|0,c=c+Math.imul(G0,R0)|0,h=h+Math.imul(G0,P0)|0,f=f+Math.imul($0,M0)|0,c=c+Math.imul($0,S0)|0,c=c+Math.imul(Q0,M0)|0,h=h+Math.imul(Q0,S0)|0,f=f+Math.imul(e,q0)|0,c=c+Math.imul(e,j0)|0,c=c+Math.imul(r,q0)|0,h=h+Math.imul(r,j0)|0,f=f+Math.imul(t,g0)|0,c=c+Math.imul(t,_0)|0,c=c+Math.imul(m,g0)|0,h=h+Math.imul(m,_0)|0,f=f+Math.imul(u,x0)|0,c=c+Math.imul(u,B0)|0,c=c+Math.imul(n,x0)|0,h=h+Math.imul(n,B0)|0,f=f+Math.imul(b,w0)|0,c=c+Math.imul(b,p0)|0,c=c+Math.imul(l,w0)|0,h=h+Math.imul(l,p0)|0;var i0=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(i0>>>26)|0,i0&=67108863,f=Math.imul(I0,D0),c=Math.imul(I0,C0),c=c+Math.imul(O0,D0)|0,h=Math.imul(O0,C0),f=f+Math.imul(U0,R0)|0,c=c+Math.imul(U0,P0)|0,c=c+Math.imul(X0,R0)|0,h=h+Math.imul(X0,P0)|0,f=f+Math.imul(Z0,M0)|0,c=c+Math.imul(Z0,S0)|0,c=c+Math.imul(G0,M0)|0,h=h+Math.imul(G0,S0)|0,f=f+Math.imul($0,q0)|0,c=c+Math.imul($0,j0)|0,c=c+Math.imul(Q0,q0)|0,h=h+Math.imul(Q0,j0)|0,f=f+Math.imul(e,g0)|0,c=c+Math.imul(e,_0)|0,c=c+Math.imul(r,g0)|0,h=h+Math.imul(r,_0)|0,f=f+Math.imul(t,x0)|0,c=c+Math.imul(t,B0)|0,c=c+Math.imul(m,x0)|0,h=h+Math.imul(m,B0)|0,f=f+Math.imul(u,w0)|0,c=c+Math.imul(u,p0)|0,c=c+Math.imul(n,w0)|0,h=h+Math.imul(n,p0)|0,f=f+Math.imul(b,c0)|0,c=c+Math.imul(b,h0)|0,c=c+Math.imul(l,c0)|0,h=h+Math.imul(l,h0)|0;var $$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+($$>>>26)|0,$$&=67108863,f=Math.imul(F0,D0),c=Math.imul(F0,C0),c=c+Math.imul(A0,D0)|0,h=Math.imul(A0,C0),f=f+Math.imul(I0,R0)|0,c=c+Math.imul(I0,P0)|0,c=c+Math.imul(O0,R0)|0,h=h+Math.imul(O0,P0)|0,f=f+Math.imul(U0,M0)|0,c=c+Math.imul(U0,S0)|0,c=c+Math.imul(X0,M0)|0,h=h+Math.imul(X0,S0)|0,f=f+Math.imul(Z0,q0)|0,c=c+Math.imul(Z0,j0)|0,c=c+Math.imul(G0,q0)|0,h=h+Math.imul(G0,j0)|0,f=f+Math.imul($0,g0)|0,c=c+Math.imul($0,_0)|0,c=c+Math.imul(Q0,g0)|0,h=h+Math.imul(Q0,_0)|0,f=f+Math.imul(e,x0)|0,c=c+Math.imul(e,B0)|0,c=c+Math.imul(r,x0)|0,h=h+Math.imul(r,B0)|0,f=f+Math.imul(t,w0)|0,c=c+Math.imul(t,p0)|0,c=c+Math.imul(m,w0)|0,h=h+Math.imul(m,p0)|0,f=f+Math.imul(u,c0)|0,c=c+Math.imul(u,h0)|0,c=c+Math.imul(n,c0)|0,h=h+Math.imul(n,h0)|0,f=f+Math.imul(b,b0)|0,c=c+Math.imul(b,l0)|0,c=c+Math.imul(l,b0)|0,h=h+Math.imul(l,l0)|0;var Q$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,f=Math.imul(W0,D0),c=Math.imul(W0,C0),c=c+Math.imul(E0,D0)|0,h=Math.imul(E0,C0),f=f+Math.imul(F0,R0)|0,c=c+Math.imul(F0,P0)|0,c=c+Math.imul(A0,R0)|0,h=h+Math.imul(A0,P0)|0,f=f+Math.imul(I0,M0)|0,c=c+Math.imul(I0,S0)|0,c=c+Math.imul(O0,M0)|0,h=h+Math.imul(O0,S0)|0,f=f+Math.imul(U0,q0)|0,c=c+Math.imul(U0,j0)|0,c=c+Math.imul(X0,q0)|0,h=h+Math.imul(X0,j0)|0,f=f+Math.imul(Z0,g0)|0,c=c+Math.imul(Z0,_0)|0,c=c+Math.imul(G0,g0)|0,h=h+Math.imul(G0,_0)|0,f=f+Math.imul($0,x0)|0,c=c+Math.imul($0,B0)|0,c=c+Math.imul(Q0,x0)|0,h=h+Math.imul(Q0,B0)|0,f=f+Math.imul(e,w0)|0,c=c+Math.imul(e,p0)|0,c=c+Math.imul(r,w0)|0,h=h+Math.imul(r,p0)|0,f=f+Math.imul(t,c0)|0,c=c+Math.imul(t,h0)|0,c=c+Math.imul(m,c0)|0,h=h+Math.imul(m,h0)|0,f=f+Math.imul(u,b0)|0,c=c+Math.imul(u,l0)|0,c=c+Math.imul(n,b0)|0,h=h+Math.imul(n,l0)|0,f=f+Math.imul(b,u0)|0,c=c+Math.imul(b,n0)|0,c=c+Math.imul(l,u0)|0,h=h+Math.imul(l,n0)|0;var Y$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,f=Math.imul(W0,R0),c=Math.imul(W0,P0),c=c+Math.imul(E0,R0)|0,h=Math.imul(E0,P0),f=f+Math.imul(F0,M0)|0,c=c+Math.imul(F0,S0)|0,c=c+Math.imul(A0,M0)|0,h=h+Math.imul(A0,S0)|0,f=f+Math.imul(I0,q0)|0,c=c+Math.imul(I0,j0)|0,c=c+Math.imul(O0,q0)|0,h=h+Math.imul(O0,j0)|0,f=f+Math.imul(U0,g0)|0,c=c+Math.imul(U0,_0)|0,c=c+Math.imul(X0,g0)|0,h=h+Math.imul(X0,_0)|0,f=f+Math.imul(Z0,x0)|0,c=c+Math.imul(Z0,B0)|0,c=c+Math.imul(G0,x0)|0,h=h+Math.imul(G0,B0)|0,f=f+Math.imul($0,w0)|0,c=c+Math.imul($0,p0)|0,c=c+Math.imul(Q0,w0)|0,h=h+Math.imul(Q0,p0)|0,f=f+Math.imul(e,c0)|0,c=c+Math.imul(e,h0)|0,c=c+Math.imul(r,c0)|0,h=h+Math.imul(r,h0)|0,f=f+Math.imul(t,b0)|0,c=c+Math.imul(t,l0)|0,c=c+Math.imul(m,b0)|0,h=h+Math.imul(m,l0)|0,f=f+Math.imul(u,u0)|0,c=c+Math.imul(u,n0)|0,c=c+Math.imul(n,u0)|0,h=h+Math.imul(n,n0)|0;var Z$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,f=Math.imul(W0,M0),c=Math.imul(W0,S0),c=c+Math.imul(E0,M0)|0,h=Math.imul(E0,S0),f=f+Math.imul(F0,q0)|0,c=c+Math.imul(F0,j0)|0,c=c+Math.imul(A0,q0)|0,h=h+Math.imul(A0,j0)|0,f=f+Math.imul(I0,g0)|0,c=c+Math.imul(I0,_0)|0,c=c+Math.imul(O0,g0)|0,h=h+Math.imul(O0,_0)|0,f=f+Math.imul(U0,x0)|0,c=c+Math.imul(U0,B0)|0,c=c+Math.imul(X0,x0)|0,h=h+Math.imul(X0,B0)|0,f=f+Math.imul(Z0,w0)|0,c=c+Math.imul(Z0,p0)|0,c=c+Math.imul(G0,w0)|0,h=h+Math.imul(G0,p0)|0,f=f+Math.imul($0,c0)|0,c=c+Math.imul($0,h0)|0,c=c+Math.imul(Q0,c0)|0,h=h+Math.imul(Q0,h0)|0,f=f+Math.imul(e,b0)|0,c=c+Math.imul(e,l0)|0,c=c+Math.imul(r,b0)|0,h=h+Math.imul(r,l0)|0,f=f+Math.imul(t,u0)|0,c=c+Math.imul(t,n0)|0,c=c+Math.imul(m,u0)|0,h=h+Math.imul(m,n0)|0;var G$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(G$>>>26)|0,G$&=67108863,f=Math.imul(W0,q0),c=Math.imul(W0,j0),c=c+Math.imul(E0,q0)|0,h=Math.imul(E0,j0),f=f+Math.imul(F0,g0)|0,c=c+Math.imul(F0,_0)|0,c=c+Math.imul(A0,g0)|0,h=h+Math.imul(A0,_0)|0,f=f+Math.imul(I0,x0)|0,c=c+Math.imul(I0,B0)|0,c=c+Math.imul(O0,x0)|0,h=h+Math.imul(O0,B0)|0,f=f+Math.imul(U0,w0)|0,c=c+Math.imul(U0,p0)|0,c=c+Math.imul(X0,w0)|0,h=h+Math.imul(X0,p0)|0,f=f+Math.imul(Z0,c0)|0,c=c+Math.imul(Z0,h0)|0,c=c+Math.imul(G0,c0)|0,h=h+Math.imul(G0,h0)|0,f=f+Math.imul($0,b0)|0,c=c+Math.imul($0,l0)|0,c=c+Math.imul(Q0,b0)|0,h=h+Math.imul(Q0,l0)|0,f=f+Math.imul(e,u0)|0,c=c+Math.imul(e,n0)|0,c=c+Math.imul(r,u0)|0,h=h+Math.imul(r,n0)|0;var V$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(V$>>>26)|0,V$&=67108863,f=Math.imul(W0,g0),c=Math.imul(W0,_0),c=c+Math.imul(E0,g0)|0,h=Math.imul(E0,_0),f=f+Math.imul(F0,x0)|0,c=c+Math.imul(F0,B0)|0,c=c+Math.imul(A0,x0)|0,h=h+Math.imul(A0,B0)|0,f=f+Math.imul(I0,w0)|0,c=c+Math.imul(I0,p0)|0,c=c+Math.imul(O0,w0)|0,h=h+Math.imul(O0,p0)|0,f=f+Math.imul(U0,c0)|0,c=c+Math.imul(U0,h0)|0,c=c+Math.imul(X0,c0)|0,h=h+Math.imul(X0,h0)|0,f=f+Math.imul(Z0,b0)|0,c=c+Math.imul(Z0,l0)|0,c=c+Math.imul(G0,b0)|0,h=h+Math.imul(G0,l0)|0,f=f+Math.imul($0,u0)|0,c=c+Math.imul($0,n0)|0,c=c+Math.imul(Q0,u0)|0,h=h+Math.imul(Q0,n0)|0;var U$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(U$>>>26)|0,U$&=67108863,f=Math.imul(W0,x0),c=Math.imul(W0,B0),c=c+Math.imul(E0,x0)|0,h=Math.imul(E0,B0),f=f+Math.imul(F0,w0)|0,c=c+Math.imul(F0,p0)|0,c=c+Math.imul(A0,w0)|0,h=h+Math.imul(A0,p0)|0,f=f+Math.imul(I0,c0)|0,c=c+Math.imul(I0,h0)|0,c=c+Math.imul(O0,c0)|0,h=h+Math.imul(O0,h0)|0,f=f+Math.imul(U0,b0)|0,c=c+Math.imul(U0,l0)|0,c=c+Math.imul(X0,b0)|0,h=h+Math.imul(X0,l0)|0,f=f+Math.imul(Z0,u0)|0,c=c+Math.imul(Z0,n0)|0,c=c+Math.imul(G0,u0)|0,h=h+Math.imul(G0,n0)|0;var X$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(X$>>>26)|0,X$&=67108863,f=Math.imul(W0,w0),c=Math.imul(W0,p0),c=c+Math.imul(E0,w0)|0,h=Math.imul(E0,p0),f=f+Math.imul(F0,c0)|0,c=c+Math.imul(F0,h0)|0,c=c+Math.imul(A0,c0)|0,h=h+Math.imul(A0,h0)|0,f=f+Math.imul(I0,b0)|0,c=c+Math.imul(I0,l0)|0,c=c+Math.imul(O0,b0)|0,h=h+Math.imul(O0,l0)|0,f=f+Math.imul(U0,u0)|0,c=c+Math.imul(U0,n0)|0,c=c+Math.imul(X0,u0)|0,h=h+Math.imul(X0,n0)|0;var K$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(K$>>>26)|0,K$&=67108863,f=Math.imul(W0,c0),c=Math.imul(W0,h0),c=c+Math.imul(E0,c0)|0,h=Math.imul(E0,h0),f=f+Math.imul(F0,b0)|0,c=c+Math.imul(F0,l0)|0,c=c+Math.imul(A0,b0)|0,h=h+Math.imul(A0,l0)|0,f=f+Math.imul(I0,u0)|0,c=c+Math.imul(I0,n0)|0,c=c+Math.imul(O0,u0)|0,h=h+Math.imul(O0,n0)|0;var I$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(I$>>>26)|0,I$&=67108863,f=Math.imul(W0,b0),c=Math.imul(W0,l0),c=c+Math.imul(E0,b0)|0,h=Math.imul(E0,l0),f=f+Math.imul(F0,u0)|0,c=c+Math.imul(F0,n0)|0,c=c+Math.imul(A0,u0)|0,h=h+Math.imul(A0,n0)|0;var O$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(O$>>>26)|0,O$&=67108863,f=Math.imul(W0,u0),c=Math.imul(W0,n0),c=c+Math.imul(E0,u0)|0,h=Math.imul(E0,n0);var J$=(p+f|0)+((c&8191)<<13)|0;return p=(h+(c>>>13)|0)+(J$>>>26)|0,J$&=67108863,w[0]=s0,w[1]=t0,w[2]=m0,w[3]=a0,w[4]=e0,w[5]=r0,w[6]=i0,w[7]=$$,w[8]=Q$,w[9]=Y$,w[10]=Z$,w[11]=G$,w[12]=V$,w[13]=U$,w[14]=X$,w[15]=K$,w[16]=I$,w[17]=O$,w[18]=J$,p!==0&&(w[19]=p,x.length++),x};Math.imul||(C=D);function L(_,N,x){x.negative=N.negative^_.negative,x.length=_.length+N.length;for(var B=0,y=0,w=0;w>>26)|0,y+=p>>>26,p&=67108863}x.words[w]=f,B=p,p=y}return B!==0?x.words[w]=B:x.length--,x._strip()}function R(_,N,x){return L(_,N,x)}U.prototype.mulTo=function(_,N){var x,B=this.length+_.length;return this.length===10&&_.length===10?x=C(this,_,N):B<63?x=D(this,_,N):B<1024?x=L(this,_,N):x=R(this,_,N),x};function P(_,N){this.x=_,this.y=N}P.prototype.makeRBT=function(_){for(var N=new Array(_),x=U.prototype._countBits(_)-1,B=0;B<_;B++)N[B]=this.revBin(B,x,_);return N},P.prototype.revBin=function(_,N,x){if(_===0||_===x-1)return _;for(var B=0,y=0;y>=1;return B},P.prototype.permute=function(_,N,x,B,y,w){for(var p=0;p>>1)y++;return 1<>>13,x[2*w+1]=y&8191,y=y>>>13;for(w=2*N;w>=26,x+=y/67108864|0,x+=w>>>26,this.words[B]=w&67108863}return x!==0&&(this.words[B]=x,this.length++),N?this.ineg():this},U.prototype.muln=function(_){return this.clone().imuln(_)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(_){var N=T(_);if(N.length===0)return new U(1);for(var x=this,B=0;B=0);var N=_%26,x=(_-N)/26,B=67108863>>>26-N<<26-N,y;if(N!==0){var w=0;for(y=0;y>>26-N}w&&(this.words[y]=w,this.length++)}if(x!==0){for(y=this.length-1;y>=0;y--)this.words[y+x]=this.words[y];for(y=0;y=0);var B;N?B=(N-N%26)/26:B=0;var y=_%26,w=Math.min((_-y)/26,this.length),p=67108863^67108863>>>y<w)for(this.length-=w,c=0;c=0&&(h!==0||c>=B);c--){var d=this.words[c]|0;this.words[c]=h<<26-y|d>>>y,h=d&p}return f&&h!==0&&(f.words[f.length++]=h),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},U.prototype.ishrn=function(_,N,x){return G(this.negative===0),this.iushrn(_,N,x)},U.prototype.shln=function(_){return this.clone().ishln(_)},U.prototype.ushln=function(_){return this.clone().iushln(_)},U.prototype.shrn=function(_){return this.clone().ishrn(_)},U.prototype.ushrn=function(_){return this.clone().iushrn(_)},U.prototype.testn=function(_){G(typeof _=="number"&&_>=0);var N=_%26,x=(_-N)/26,B=1<=0);var N=_%26,x=(_-N)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=x)return this;if(N!==0&&x++,this.length=Math.min(x,this.length),N!==0){var B=67108863^67108863>>>N<=67108864;N++)this.words[N]-=67108864,N===this.length-1?this.words[N+1]=1:this.words[N+1]++;return this.length=Math.max(this.length,N+1),this},U.prototype.isubn=function(_){if(G(typeof _=="number"),G(_<67108864),_<0)return this.iaddn(-_);if(this.negative!==0)return this.negative=0,this.iaddn(_),this.negative=1,this;if(this.words[0]-=_,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var N=0;N>26)-(f/67108864|0),this.words[y+x]=w&67108863}for(;y>26,this.words[y+x]=w&67108863;if(p===0)return this._strip();for(G(p===-1),p=0,y=0;y>26,this.words[y]=w&67108863;return this.negative=1,this._strip()},U.prototype._wordDiv=function(_,N){var x=this.length-_.length,B=this.clone(),y=_,w=y.words[y.length-1]|0,p=this._countBits(w);x=26-p,x!==0&&(y=y.ushln(x),B.iushln(x),w=y.words[y.length-1]|0);var f=B.length-y.length,c;if(N!=="mod"){c=new U(null),c.length=f+1,c.words=new Array(c.length);for(var h=0;h=0;b--){var l=(B.words[y.length+b]|0)*67108864+(B.words[y.length+b-1]|0);for(l=Math.min(l/w|0,67108863),B._ishlnsubmul(y,l,b);B.negative!==0;)l--,B.negative=0,B._ishlnsubmul(y,1,b),B.isZero()||(B.negative^=1);c&&(c.words[b]=l)}return c&&c._strip(),B._strip(),N!=="div"&&x!==0&&B.iushrn(x),{div:c||null,mod:B}},U.prototype.divmod=function(_,N,x){if(G(!_.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var B,y,w;return this.negative!==0&&_.negative===0?(w=this.neg().divmod(_,N),N!=="mod"&&(B=w.div.neg()),N!=="div"&&(y=w.mod.neg(),x&&y.negative!==0&&y.iadd(_)),{div:B,mod:y}):this.negative===0&&_.negative!==0?(w=this.divmod(_.neg(),N),N!=="mod"&&(B=w.div.neg()),{div:B,mod:w.mod}):(this.negative&_.negative)!==0?(w=this.neg().divmod(_.neg(),N),N!=="div"&&(y=w.mod.neg(),x&&y.negative!==0&&y.isub(_)),{div:w.div,mod:y}):_.length>this.length||this.cmp(_)<0?{div:new U(0),mod:this}:_.length===1?N==="div"?{div:this.divn(_.words[0]),mod:null}:N==="mod"?{div:null,mod:new U(this.modrn(_.words[0]))}:{div:this.divn(_.words[0]),mod:new U(this.modrn(_.words[0]))}:this._wordDiv(_,N)},U.prototype.div=function(_){return this.divmod(_,"div",!1).div},U.prototype.mod=function(_){return this.divmod(_,"mod",!1).mod},U.prototype.umod=function(_){return this.divmod(_,"mod",!0).mod},U.prototype.divRound=function(_){var N=this.divmod(_);if(N.mod.isZero())return N.div;var x=N.div.negative!==0?N.mod.isub(_):N.mod,B=_.ushrn(1),y=_.andln(1),w=x.cmp(B);return w<0||y===1&&w===0?N.div:N.div.negative!==0?N.div.isubn(1):N.div.iaddn(1)},U.prototype.modrn=function(_){var N=_<0;N&&(_=-_),G(_<=67108863);for(var x=(1<<26)%_,B=0,y=this.length-1;y>=0;y--)B=(x*B+(this.words[y]|0))%_;return N?-B:B},U.prototype.modn=function(_){return this.modrn(_)},U.prototype.idivn=function(_){var N=_<0;N&&(_=-_),G(_<=67108863);for(var x=0,B=this.length-1;B>=0;B--){var y=(this.words[B]|0)+x*67108864;this.words[B]=y/_|0,x=y%_}return this._strip(),N?this.ineg():this},U.prototype.divn=function(_){return this.clone().idivn(_)},U.prototype.egcd=function(_){G(_.negative===0),G(!_.isZero());var N=this,x=_.clone();N.negative!==0?N=N.umod(_):N=N.clone();for(var B=new U(1),y=new U(0),w=new U(0),p=new U(1),f=0;N.isEven()&&x.isEven();)N.iushrn(1),x.iushrn(1),++f;for(var c=x.clone(),h=N.clone();!N.isZero();){for(var d=0,b=1;(N.words[0]&b)===0&&d<26;++d,b<<=1);if(d>0)for(N.iushrn(d);d-- >0;)(B.isOdd()||y.isOdd())&&(B.iadd(c),y.isub(h)),B.iushrn(1),y.iushrn(1);for(var l=0,o=1;(x.words[0]&o)===0&&l<26;++l,o<<=1);if(l>0)for(x.iushrn(l);l-- >0;)(w.isOdd()||p.isOdd())&&(w.iadd(c),p.isub(h)),w.iushrn(1),p.iushrn(1);N.cmp(x)>=0?(N.isub(x),B.isub(w),y.isub(p)):(x.isub(N),w.isub(B),p.isub(y))}return{a:w,b:p,gcd:x.iushln(f)}},U.prototype._invmp=function(_){G(_.negative===0),G(!_.isZero());var N=this,x=_.clone();N.negative!==0?N=N.umod(_):N=N.clone();for(var B=new U(1),y=new U(0),w=x.clone();N.cmpn(1)>0&&x.cmpn(1)>0;){for(var p=0,f=1;(N.words[0]&f)===0&&p<26;++p,f<<=1);if(p>0)for(N.iushrn(p);p-- >0;)B.isOdd()&&B.iadd(w),B.iushrn(1);for(var c=0,h=1;(x.words[0]&h)===0&&c<26;++c,h<<=1);if(c>0)for(x.iushrn(c);c-- >0;)y.isOdd()&&y.iadd(w),y.iushrn(1);N.cmp(x)>=0?(N.isub(x),B.isub(y)):(x.isub(N),y.isub(B))}var d;return N.cmpn(1)===0?d=B:d=y,d.cmpn(0)<0&&d.iadd(_),d},U.prototype.gcd=function(_){if(this.isZero())return _.abs();if(_.isZero())return this.abs();var N=this.clone(),x=_.clone();N.negative=0,x.negative=0;for(var B=0;N.isEven()&&x.isEven();B++)N.iushrn(1),x.iushrn(1);do{for(;N.isEven();)N.iushrn(1);for(;x.isEven();)x.iushrn(1);var y=N.cmp(x);if(y<0){var w=N;N=x,x=w}else if(y===0||x.cmpn(1)===0)break;N.isub(x)}while(!0);return x.iushln(B)},U.prototype.invm=function(_){return this.egcd(_).a.umod(_)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(_){return this.words[0]&_},U.prototype.bincn=function(_){G(typeof _=="number");var N=_%26,x=(_-N)/26,B=1<>>26,p&=67108863,this.words[w]=p}return y!==0&&(this.words[w]=y,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(_){var N=_<0;if(this.negative!==0&&!N)return-1;if(this.negative===0&&N)return 1;this._strip();var x;if(this.length>1)x=1;else{N&&(_=-_),G(_<=67108863,"Number is too big");var B=this.words[0]|0;x=B===_?0:B<_?-1:1}return this.negative!==0?-x|0:x},U.prototype.cmp=function(_){if(this.negative!==0&&_.negative===0)return-1;if(this.negative===0&&_.negative!==0)return 1;var N=this.ucmp(_);return this.negative!==0?-N|0:N},U.prototype.ucmp=function(_){if(this.length>_.length)return 1;if(this.length<_.length)return-1;for(var N=0,x=this.length-1;x>=0;x--){var B=this.words[x]|0,y=_.words[x]|0;if(B!==y){By&&(N=1);break}}return N},U.prototype.gtn=function(_){return this.cmpn(_)===1},U.prototype.gt=function(_){return this.cmp(_)===1},U.prototype.gten=function(_){return this.cmpn(_)>=0},U.prototype.gte=function(_){return this.cmp(_)>=0},U.prototype.ltn=function(_){return this.cmpn(_)===-1},U.prototype.lt=function(_){return this.cmp(_)===-1},U.prototype.lten=function(_){return this.cmpn(_)<=0},U.prototype.lte=function(_){return this.cmp(_)<=0},U.prototype.eqn=function(_){return this.cmpn(_)===0},U.prototype.eq=function(_){return this.cmp(_)===0},U.red=function(_){return new k(_)},U.prototype.toRed=function(_){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),_.convertTo(this)._forceRed(_)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(_){return this.red=_,this},U.prototype.forceRed=function(_){return G(!this.red,"Already a number in reduction context"),this._forceRed(_)},U.prototype.redAdd=function(_){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,_)},U.prototype.redIAdd=function(_){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,_)},U.prototype.redSub=function(_){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,_)},U.prototype.redISub=function(_){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,_)},U.prototype.redShl=function(_){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,_)},U.prototype.redMul=function(_){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,_),this.red.mul(this,_)},U.prototype.redIMul=function(_){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,_),this.red.imul(this,_)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(_){return G(this.red&&!_.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,_)};var z={k256:null,p224:null,p192:null,p25519:null};function M(_,N){this.name=_,this.p=new U(N,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}M.prototype._tmp=function(){var _=new U(null);return _.words=new Array(Math.ceil(this.n/13)),_},M.prototype.ireduce=function(_){var N=_,x;do this.split(N,this.tmp),N=this.imulK(N),N=N.iadd(this.tmp),x=N.bitLength();while(x>this.n);var B=x0?N.isub(this.p):N.strip!==void 0?N.strip():N._strip(),N},M.prototype.split=function(_,N){_.iushrn(this.n,0,N)},M.prototype.imulK=function(_){return _.imul(this.k)};function S(){M.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(S,M),S.prototype.split=function(_,N){for(var x=4194303,B=Math.min(_.length,9),y=0;y>>22,w=p}w>>>=22,_.words[y-10]=w,w===0&&_.length>10?_.length-=10:_.length-=9},S.prototype.imulK=function(_){_.words[_.length]=0,_.words[_.length+1]=0,_.length+=2;for(var N=0,x=0;x<_.length;x++){var B=_.words[x]|0;N+=B*977,_.words[x]=N&67108863,N=B*64+(N/67108864|0)}return _.words[_.length-1]===0&&(_.length--,_.words[_.length-1]===0&&_.length--),_};function v(){M.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}V(v,M);function q(){M.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}V(q,M);function j(){M.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}V(j,M),j.prototype.imulK=function(_){for(var N=0,x=0;x<_.length;x++){var B=(_.words[x]|0)*19+N,y=B&67108863;B>>>=26,_.words[x]=y,N=B}return N!==0&&(_.words[_.length++]=N),_},U._prime=function(_){if(z[_])return z[_];var N;if(_==="k256")N=new S;else if(_==="p224")N=new v;else if(_==="p192")N=new q;else if(_==="p25519")N=new j;else throw new Error("Unknown prime "+_);return z[_]=N,N};function k(_){if(typeof _=="string"){var N=U._prime(_);this.m=N.p,this.prime=N}else G(_.gtn(1),"modulus must be greater than 1"),this.m=_,this.prime=null}k.prototype._verify1=function(_){G(_.negative===0,"red works only with positives"),G(_.red,"red works only with red numbers")},k.prototype._verify2=function(_,N){G((_.negative|N.negative)===0,"red works only with positives"),G(_.red&&_.red===N.red,"red works only with red numbers")},k.prototype.imod=function(_){return this.prime?this.prime.ireduce(_)._forceRed(this):(J(_,_.umod(this.m)._forceRed(this)),_)},k.prototype.neg=function(_){return _.isZero()?_.clone():this.m.sub(_)._forceRed(this)},k.prototype.add=function(_,N){this._verify2(_,N);var x=_.add(N);return x.cmp(this.m)>=0&&x.isub(this.m),x._forceRed(this)},k.prototype.iadd=function(_,N){this._verify2(_,N);var x=_.iadd(N);return x.cmp(this.m)>=0&&x.isub(this.m),x},k.prototype.sub=function(_,N){this._verify2(_,N);var x=_.sub(N);return x.cmpn(0)<0&&x.iadd(this.m),x._forceRed(this)},k.prototype.isub=function(_,N){this._verify2(_,N);var x=_.isub(N);return x.cmpn(0)<0&&x.iadd(this.m),x},k.prototype.shl=function(_,N){return this._verify1(_),this.imod(_.ushln(N))},k.prototype.imul=function(_,N){return this._verify2(_,N),this.imod(_.imul(N))},k.prototype.mul=function(_,N){return this._verify2(_,N),this.imod(_.mul(N))},k.prototype.isqr=function(_){return this.imul(_,_.clone())},k.prototype.sqr=function(_){return this.mul(_,_)},k.prototype.sqrt=function(_){if(_.isZero())return _.clone();var N=this.m.andln(3);if(G(N%2===1),N===3){var x=this.m.add(new U(1)).iushrn(2);return this.pow(_,x)}for(var B=this.m.subn(1),y=0;!B.isZero()&&B.andln(1)===0;)y++,B.iushrn(1);G(!B.isZero());var w=new U(1).toRed(this),p=w.redNeg(),f=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new U(2*c*c).toRed(this);this.pow(c,f).cmp(p)!==0;)c.redIAdd(p);for(var h=this.pow(c,B),d=this.pow(_,B.addn(1).iushrn(1)),b=this.pow(_,B),l=y;b.cmp(w)!==0;){for(var o=b,u=0;o.cmp(w)!==0;u++)o=o.redSqr();G(u=0;y--){for(var h=N.words[y],d=c-1;d>=0;d--){var b=h>>d&1;if(w!==B[0]&&(w=this.sqr(w)),b===0&&p===0){f=0;continue}p<<=1,p|=b,f++,!(f!==x&&(y!==0||d!==0))&&(w=this.mul(w,B[p]),f=0,p=0)}c=26}return w},k.prototype.convertTo=function(_){var N=_.umod(this.m);return N===_?N.clone():N},k.prototype.convertFrom=function(_){var N=_.clone();return N.red=null,N},U.mont=function(_){return new g(_)};function g(_){k.call(this,_),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(g,k),g.prototype.convertTo=function(_){return this.imod(_.ushln(this.shift))},g.prototype.convertFrom=function(_){var N=this.imod(_.mul(this.rinv));return N.red=null,N},g.prototype.imul=function(_,N){if(_.isZero()||N.isZero())return _.words[0]=0,_.length=1,_;var x=_.imul(N),B=x.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),y=x.isub(B).iushrn(this.shift),w=y;return y.cmp(this.m)>=0?w=y.isub(this.m):y.cmpn(0)<0&&(w=y.iadd(this.m)),w._forceRed(this)},g.prototype.mul=function(_,N){if(_.isZero()||N.isZero())return new U(0)._forceRed(this);var x=_.mul(N),B=x.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),y=x.isub(B).iushrn(this.shift),w=y;return y.cmp(this.m)>=0?w=y.isub(this.m):y.cmpn(0)<0&&(w=y.iadd(this.m)),w._forceRed(this)},g.prototype.invm=function(_){var N=this.imod(_._invmp(this.m).mul(this.r2));return N._forceRed(this)}})(typeof Q>"u"||Q,$)}}),hQ=q$({"node_modules/browserify-rsa/index.js"($,Q){var Y=cQ(),Z=g$();function G(X){var K=V(X),I=K.toRed(Y.mont(X.modulus)).redPow(new Y(X.publicExponent)).fromRed();return{blinder:I,unblinder:K.invm(X.modulus)}}function V(X){var K=X.modulus.byteLength(),I;do I=new Y(Z(K));while(I.cmp(X.modulus)>=0||!I.umod(X.prime1)||!I.umod(X.prime2));return I}function U(X,K){var I=G(K),O=K.modulus.byteLength(),J=new Y(X).mul(I.blinder).umod(K.modulus),F=J.toRed(Y.mont(K.prime1)),A=J.toRed(Y.mont(K.prime2)),H=K.coefficient,W=K.prime1,E=K.prime2,T=F.redPow(K.exponent1).fromRed(),D=A.redPow(K.exponent2).fromRed(),C=T.isub(D).imul(H).umod(W).imul(E);return D.iadd(C).imul(I.unblinder).umod(K.modulus).toArrayLike(F$,"be",O)}U.getr=V,Q.exports=U}}),dQ=q$({"node_modules/elliptic/package.json"($,Q){Q.exports={name:"elliptic",version:"6.5.4",description:"EC cryptography",main:"lib/elliptic.js",files:["lib"],scripts:{lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},repository:{type:"git",url:"git@github.com:indutny/elliptic"},keywords:["EC","Elliptic","curve","Cryptography"],author:"Fedor Indutny ",license:"MIT",bugs:{url:"https://github.com/indutny/elliptic/issues"},homepage:"https://github.com/indutny/elliptic",devDependencies:{brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},dependencies:{"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"}}}}),bQ=q$({"node_modules/elliptic/node_modules/bn.js/lib/bn.js"($,Q){(function(Y,Z){function G(j,k){if(!j)throw new Error(k||"Assertion failed")}function V(j,k){j.super_=k;var g=function(){};g.prototype=k.prototype,j.prototype=new g,j.prototype.constructor=j}function U(j,k,g){if(U.isBN(j))return j;this.negative=0,this.words=null,this.length=0,this.red=null,j!==null&&((k==="le"||k==="be")&&(g=k,k=10),this._init(j||0,k||10,g||"be"))}typeof Y=="object"?Y.exports=U:Z.BN=U,U.BN=U,U.wordSize=26;var X=F$;U.isBN=function(j){return j instanceof U?!0:j!==null&&typeof j=="object"&&j.constructor.wordSize===U.wordSize&&Array.isArray(j.words)},U.max=function(j,k){return j.cmp(k)>0?j:k},U.min=function(j,k){return j.cmp(k)<0?j:k},U.prototype._init=function(j,k,g){if(typeof j=="number")return this._initNumber(j,k,g);if(typeof j=="object")return this._initArray(j,k,g);k==="hex"&&(k=16),G(k===(k|0)&&k>=2&&k<=36),j=j.toString().replace(/\s+/g,"");var _=0;j[0]==="-"&&(_++,this.negative=1),_=0;_-=3)x=j[_]|j[_-1]<<8|j[_-2]<<16,this.words[N]|=x<>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);else if(g==="le")for(_=0,N=0;_>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);return this.strip()};function K(j,k){var g=j.charCodeAt(k);return g>=65&&g<=70?g-55:g>=97&&g<=102?g-87:g-48&15}function I(j,k,g){var _=K(j,g);return g-1>=k&&(_|=K(j,g-1)<<4),_}U.prototype._parseHex=function(j,k,g){this.length=Math.ceil((j.length-k)/6),this.words=new Array(this.length);for(var _=0;_=k;_-=2)B=I(j,k,_)<=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8;else{var y=j.length-k;for(_=y%2===0?k+1:k;_=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8}this.strip()};function O(j,k,g,_){for(var N=0,x=Math.min(j.length,g),B=k;B=49?N+=y-49+10:y>=17?N+=y-17+10:N+=y}return N}U.prototype._parseBase=function(j,k,g){this.words=[0],this.length=1;for(var _=0,N=1;N<=67108863;N*=k)_++;_--,N=N/k|0;for(var x=j.length-g,B=x%_,y=Math.min(x,x-B)+g,w=0,p=g;p1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},U.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],F=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],A=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(j,k){j=j||10,k=k|0||1;var g;if(j===16||j==="hex"){g="";for(var _=0,N=0,x=0;x>>24-_&16777215,N!==0||x!==this.length-1?g=J[6-y.length]+y+g:g=y+g,_+=2,_>=26&&(_-=26,x--)}for(N!==0&&(g=N.toString(16)+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(j===(j|0)&&j>=2&&j<=36){var w=F[j],p=A[j];g="";var f=this.clone();for(f.negative=0;!f.isZero();){var c=f.modn(p).toString(j);f=f.idivn(p),f.isZero()?g=c+g:g=J[w-c.length]+c+g}for(this.isZero()&&(g="0"+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var j=this.words[0];return this.length===2?j+=this.words[1]*67108864:this.length===3&&this.words[2]===1?j+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-j:j},U.prototype.toJSON=function(){return this.toString(16)},U.prototype.toBuffer=function(j,k){return G(typeof X<"u"),this.toArrayLike(X,j,k)},U.prototype.toArray=function(j,k){return this.toArrayLike(Array,j,k)},U.prototype.toArrayLike=function(j,k,g){var _=this.byteLength(),N=g||Math.max(1,_);G(_<=N,"byte array longer than desired length"),G(N>0,"Requested array length <= 0"),this.strip();var x=k==="le",B=new j(N),y,w,p=this.clone();if(x){for(w=0;!p.isZero();w++)y=p.andln(255),p.iushrn(8),B[w]=y;for(;w=4096&&(g+=13,k>>>=13),k>=64&&(g+=7,k>>>=7),k>=8&&(g+=4,k>>>=4),k>=2&&(g+=2,k>>>=2),g+k},U.prototype._zeroBits=function(j){if(j===0)return 26;var k=j,g=0;return(k&8191)===0&&(g+=13,k>>>=13),(k&127)===0&&(g+=7,k>>>=7),(k&15)===0&&(g+=4,k>>>=4),(k&3)===0&&(g+=2,k>>>=2),(k&1)===0&&g++,g},U.prototype.bitLength=function(){var j=this.words[this.length-1],k=this._countBits(j);return(this.length-1)*26+k};function H(j){for(var k=new Array(j.bitLength()),g=0;g>>N}return k}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var j=0,k=0;kj.length?this.clone().ior(j):j.clone().ior(this)},U.prototype.uor=function(j){return this.length>j.length?this.clone().iuor(j):j.clone().iuor(this)},U.prototype.iuand=function(j){var k;this.length>j.length?k=j:k=this;for(var g=0;gj.length?this.clone().iand(j):j.clone().iand(this)},U.prototype.uand=function(j){return this.length>j.length?this.clone().iuand(j):j.clone().iuand(this)},U.prototype.iuxor=function(j){var k,g;this.length>j.length?(k=this,g=j):(k=j,g=this);for(var _=0;_j.length?this.clone().ixor(j):j.clone().ixor(this)},U.prototype.uxor=function(j){return this.length>j.length?this.clone().iuxor(j):j.clone().iuxor(this)},U.prototype.inotn=function(j){G(typeof j=="number"&&j>=0);var k=Math.ceil(j/26)|0,g=j%26;this._expand(k),g>0&&k--;for(var _=0;_0&&(this.words[_]=~this.words[_]&67108863>>26-g),this.strip()},U.prototype.notn=function(j){return this.clone().inotn(j)},U.prototype.setn=function(j,k){G(typeof j=="number"&&j>=0);var g=j/26|0,_=j%26;return this._expand(g+1),k?this.words[g]=this.words[g]|1<<_:this.words[g]=this.words[g]&~(1<<_),this.strip()},U.prototype.iadd=function(j){var k;if(this.negative!==0&&j.negative===0)return this.negative=0,k=this.isub(j),this.negative^=1,this._normSign();if(this.negative===0&&j.negative!==0)return j.negative=0,k=this.isub(j),j.negative=1,k._normSign();var g,_;this.length>j.length?(g=this,_=j):(g=j,_=this);for(var N=0,x=0;x<_.length;x++)k=(g.words[x]|0)+(_.words[x]|0)+N,this.words[x]=k&67108863,N=k>>>26;for(;N!==0&&x>>26;if(this.length=g.length,N!==0)this.words[this.length]=N,this.length++;else if(g!==this)for(;xj.length?this.clone().iadd(j):j.clone().iadd(this)},U.prototype.isub=function(j){if(j.negative!==0){j.negative=0;var k=this.iadd(j);return j.negative=1,k._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(j),this.negative=1,this._normSign();var g=this.cmp(j);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var _,N;g>0?(_=this,N=j):(_=j,N=this);for(var x=0,B=0;B>26,this.words[B]=k&67108863;for(;x!==0&&B<_.length;B++)k=(_.words[B]|0)+x,x=k>>26,this.words[B]=k&67108863;if(x===0&&B<_.length&&_!==this)for(;B<_.length;B++)this.words[B]=_.words[B];return this.length=Math.max(this.length,B),_!==this&&(this.negative=1),this.strip()},U.prototype.sub=function(j){return this.clone().isub(j)};function W(j,k,g){g.negative=k.negative^j.negative;var _=j.length+k.length|0;g.length=_,_=_-1|0;var N=j.words[0]|0,x=k.words[0]|0,B=N*x,y=B&67108863,w=B/67108864|0;g.words[0]=y;for(var p=1;p<_;p++){for(var f=w>>>26,c=w&67108863,h=Math.min(p,k.length-1),d=Math.max(0,p-j.length+1);d<=h;d++){var b=p-d|0;N=j.words[b]|0,x=k.words[d]|0,B=N*x+c,f+=B/67108864|0,c=B&67108863}g.words[p]=c|0,w=f|0}return w!==0?g.words[p]=w|0:g.length--,g.strip()}var E=function(j,k,g){var _=j.words,N=k.words,x=g.words,B=0,y,w,p,f=_[0]|0,c=f&8191,h=f>>>13,d=_[1]|0,b=d&8191,l=d>>>13,o=_[2]|0,u=o&8191,n=o>>>13,s=_[3]|0,t=s&8191,m=s>>>13,a=_[4]|0,e=a&8191,r=a>>>13,i=_[5]|0,$0=i&8191,Q0=i>>>13,Y0=_[6]|0,Z0=Y0&8191,G0=Y0>>>13,V0=_[7]|0,U0=V0&8191,X0=V0>>>13,K0=_[8]|0,I0=K0&8191,O0=K0>>>13,J0=_[9]|0,F0=J0&8191,A0=J0>>>13,H0=N[0]|0,W0=H0&8191,E0=H0>>>13,T0=N[1]|0,D0=T0&8191,C0=T0>>>13,L0=N[2]|0,R0=L0&8191,P0=L0>>>13,z0=N[3]|0,M0=z0&8191,S0=z0>>>13,v0=N[4]|0,q0=v0&8191,j0=v0>>>13,k0=N[5]|0,g0=k0&8191,_0=k0>>>13,N0=N[6]|0,x0=N0&8191,B0=N0>>>13,y0=N[7]|0,w0=y0&8191,p0=y0>>>13,f0=N[8]|0,c0=f0&8191,h0=f0>>>13,d0=N[9]|0,b0=d0&8191,l0=d0>>>13;g.negative=j.negative^k.negative,g.length=19,y=Math.imul(c,W0),w=Math.imul(c,E0),w=w+Math.imul(h,W0)|0,p=Math.imul(h,E0);var o0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(o0>>>26)|0,o0&=67108863,y=Math.imul(b,W0),w=Math.imul(b,E0),w=w+Math.imul(l,W0)|0,p=Math.imul(l,E0),y=y+Math.imul(c,D0)|0,w=w+Math.imul(c,C0)|0,w=w+Math.imul(h,D0)|0,p=p+Math.imul(h,C0)|0;var u0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(u0>>>26)|0,u0&=67108863,y=Math.imul(u,W0),w=Math.imul(u,E0),w=w+Math.imul(n,W0)|0,p=Math.imul(n,E0),y=y+Math.imul(b,D0)|0,w=w+Math.imul(b,C0)|0,w=w+Math.imul(l,D0)|0,p=p+Math.imul(l,C0)|0,y=y+Math.imul(c,R0)|0,w=w+Math.imul(c,P0)|0,w=w+Math.imul(h,R0)|0,p=p+Math.imul(h,P0)|0;var n0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(n0>>>26)|0,n0&=67108863,y=Math.imul(t,W0),w=Math.imul(t,E0),w=w+Math.imul(m,W0)|0,p=Math.imul(m,E0),y=y+Math.imul(u,D0)|0,w=w+Math.imul(u,C0)|0,w=w+Math.imul(n,D0)|0,p=p+Math.imul(n,C0)|0,y=y+Math.imul(b,R0)|0,w=w+Math.imul(b,P0)|0,w=w+Math.imul(l,R0)|0,p=p+Math.imul(l,P0)|0,y=y+Math.imul(c,M0)|0,w=w+Math.imul(c,S0)|0,w=w+Math.imul(h,M0)|0,p=p+Math.imul(h,S0)|0;var s0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(s0>>>26)|0,s0&=67108863,y=Math.imul(e,W0),w=Math.imul(e,E0),w=w+Math.imul(r,W0)|0,p=Math.imul(r,E0),y=y+Math.imul(t,D0)|0,w=w+Math.imul(t,C0)|0,w=w+Math.imul(m,D0)|0,p=p+Math.imul(m,C0)|0,y=y+Math.imul(u,R0)|0,w=w+Math.imul(u,P0)|0,w=w+Math.imul(n,R0)|0,p=p+Math.imul(n,P0)|0,y=y+Math.imul(b,M0)|0,w=w+Math.imul(b,S0)|0,w=w+Math.imul(l,M0)|0,p=p+Math.imul(l,S0)|0,y=y+Math.imul(c,q0)|0,w=w+Math.imul(c,j0)|0,w=w+Math.imul(h,q0)|0,p=p+Math.imul(h,j0)|0;var t0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(t0>>>26)|0,t0&=67108863,y=Math.imul($0,W0),w=Math.imul($0,E0),w=w+Math.imul(Q0,W0)|0,p=Math.imul(Q0,E0),y=y+Math.imul(e,D0)|0,w=w+Math.imul(e,C0)|0,w=w+Math.imul(r,D0)|0,p=p+Math.imul(r,C0)|0,y=y+Math.imul(t,R0)|0,w=w+Math.imul(t,P0)|0,w=w+Math.imul(m,R0)|0,p=p+Math.imul(m,P0)|0,y=y+Math.imul(u,M0)|0,w=w+Math.imul(u,S0)|0,w=w+Math.imul(n,M0)|0,p=p+Math.imul(n,S0)|0,y=y+Math.imul(b,q0)|0,w=w+Math.imul(b,j0)|0,w=w+Math.imul(l,q0)|0,p=p+Math.imul(l,j0)|0,y=y+Math.imul(c,g0)|0,w=w+Math.imul(c,_0)|0,w=w+Math.imul(h,g0)|0,p=p+Math.imul(h,_0)|0;var m0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(m0>>>26)|0,m0&=67108863,y=Math.imul(Z0,W0),w=Math.imul(Z0,E0),w=w+Math.imul(G0,W0)|0,p=Math.imul(G0,E0),y=y+Math.imul($0,D0)|0,w=w+Math.imul($0,C0)|0,w=w+Math.imul(Q0,D0)|0,p=p+Math.imul(Q0,C0)|0,y=y+Math.imul(e,R0)|0,w=w+Math.imul(e,P0)|0,w=w+Math.imul(r,R0)|0,p=p+Math.imul(r,P0)|0,y=y+Math.imul(t,M0)|0,w=w+Math.imul(t,S0)|0,w=w+Math.imul(m,M0)|0,p=p+Math.imul(m,S0)|0,y=y+Math.imul(u,q0)|0,w=w+Math.imul(u,j0)|0,w=w+Math.imul(n,q0)|0,p=p+Math.imul(n,j0)|0,y=y+Math.imul(b,g0)|0,w=w+Math.imul(b,_0)|0,w=w+Math.imul(l,g0)|0,p=p+Math.imul(l,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,B0)|0,w=w+Math.imul(h,x0)|0,p=p+Math.imul(h,B0)|0;var a0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(a0>>>26)|0,a0&=67108863,y=Math.imul(U0,W0),w=Math.imul(U0,E0),w=w+Math.imul(X0,W0)|0,p=Math.imul(X0,E0),y=y+Math.imul(Z0,D0)|0,w=w+Math.imul(Z0,C0)|0,w=w+Math.imul(G0,D0)|0,p=p+Math.imul(G0,C0)|0,y=y+Math.imul($0,R0)|0,w=w+Math.imul($0,P0)|0,w=w+Math.imul(Q0,R0)|0,p=p+Math.imul(Q0,P0)|0,y=y+Math.imul(e,M0)|0,w=w+Math.imul(e,S0)|0,w=w+Math.imul(r,M0)|0,p=p+Math.imul(r,S0)|0,y=y+Math.imul(t,q0)|0,w=w+Math.imul(t,j0)|0,w=w+Math.imul(m,q0)|0,p=p+Math.imul(m,j0)|0,y=y+Math.imul(u,g0)|0,w=w+Math.imul(u,_0)|0,w=w+Math.imul(n,g0)|0,p=p+Math.imul(n,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,B0)|0,w=w+Math.imul(l,x0)|0,p=p+Math.imul(l,B0)|0,y=y+Math.imul(c,w0)|0,w=w+Math.imul(c,p0)|0,w=w+Math.imul(h,w0)|0,p=p+Math.imul(h,p0)|0;var e0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(e0>>>26)|0,e0&=67108863,y=Math.imul(I0,W0),w=Math.imul(I0,E0),w=w+Math.imul(O0,W0)|0,p=Math.imul(O0,E0),y=y+Math.imul(U0,D0)|0,w=w+Math.imul(U0,C0)|0,w=w+Math.imul(X0,D0)|0,p=p+Math.imul(X0,C0)|0,y=y+Math.imul(Z0,R0)|0,w=w+Math.imul(Z0,P0)|0,w=w+Math.imul(G0,R0)|0,p=p+Math.imul(G0,P0)|0,y=y+Math.imul($0,M0)|0,w=w+Math.imul($0,S0)|0,w=w+Math.imul(Q0,M0)|0,p=p+Math.imul(Q0,S0)|0,y=y+Math.imul(e,q0)|0,w=w+Math.imul(e,j0)|0,w=w+Math.imul(r,q0)|0,p=p+Math.imul(r,j0)|0,y=y+Math.imul(t,g0)|0,w=w+Math.imul(t,_0)|0,w=w+Math.imul(m,g0)|0,p=p+Math.imul(m,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,B0)|0,w=w+Math.imul(n,x0)|0,p=p+Math.imul(n,B0)|0,y=y+Math.imul(b,w0)|0,w=w+Math.imul(b,p0)|0,w=w+Math.imul(l,w0)|0,p=p+Math.imul(l,p0)|0,y=y+Math.imul(c,c0)|0,w=w+Math.imul(c,h0)|0,w=w+Math.imul(h,c0)|0,p=p+Math.imul(h,h0)|0;var r0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(r0>>>26)|0,r0&=67108863,y=Math.imul(F0,W0),w=Math.imul(F0,E0),w=w+Math.imul(A0,W0)|0,p=Math.imul(A0,E0),y=y+Math.imul(I0,D0)|0,w=w+Math.imul(I0,C0)|0,w=w+Math.imul(O0,D0)|0,p=p+Math.imul(O0,C0)|0,y=y+Math.imul(U0,R0)|0,w=w+Math.imul(U0,P0)|0,w=w+Math.imul(X0,R0)|0,p=p+Math.imul(X0,P0)|0,y=y+Math.imul(Z0,M0)|0,w=w+Math.imul(Z0,S0)|0,w=w+Math.imul(G0,M0)|0,p=p+Math.imul(G0,S0)|0,y=y+Math.imul($0,q0)|0,w=w+Math.imul($0,j0)|0,w=w+Math.imul(Q0,q0)|0,p=p+Math.imul(Q0,j0)|0,y=y+Math.imul(e,g0)|0,w=w+Math.imul(e,_0)|0,w=w+Math.imul(r,g0)|0,p=p+Math.imul(r,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,B0)|0,w=w+Math.imul(m,x0)|0,p=p+Math.imul(m,B0)|0,y=y+Math.imul(u,w0)|0,w=w+Math.imul(u,p0)|0,w=w+Math.imul(n,w0)|0,p=p+Math.imul(n,p0)|0,y=y+Math.imul(b,c0)|0,w=w+Math.imul(b,h0)|0,w=w+Math.imul(l,c0)|0,p=p+Math.imul(l,h0)|0,y=y+Math.imul(c,b0)|0,w=w+Math.imul(c,l0)|0,w=w+Math.imul(h,b0)|0,p=p+Math.imul(h,l0)|0;var i0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(i0>>>26)|0,i0&=67108863,y=Math.imul(F0,D0),w=Math.imul(F0,C0),w=w+Math.imul(A0,D0)|0,p=Math.imul(A0,C0),y=y+Math.imul(I0,R0)|0,w=w+Math.imul(I0,P0)|0,w=w+Math.imul(O0,R0)|0,p=p+Math.imul(O0,P0)|0,y=y+Math.imul(U0,M0)|0,w=w+Math.imul(U0,S0)|0,w=w+Math.imul(X0,M0)|0,p=p+Math.imul(X0,S0)|0,y=y+Math.imul(Z0,q0)|0,w=w+Math.imul(Z0,j0)|0,w=w+Math.imul(G0,q0)|0,p=p+Math.imul(G0,j0)|0,y=y+Math.imul($0,g0)|0,w=w+Math.imul($0,_0)|0,w=w+Math.imul(Q0,g0)|0,p=p+Math.imul(Q0,_0)|0,y=y+Math.imul(e,x0)|0,w=w+Math.imul(e,B0)|0,w=w+Math.imul(r,x0)|0,p=p+Math.imul(r,B0)|0,y=y+Math.imul(t,w0)|0,w=w+Math.imul(t,p0)|0,w=w+Math.imul(m,w0)|0,p=p+Math.imul(m,p0)|0,y=y+Math.imul(u,c0)|0,w=w+Math.imul(u,h0)|0,w=w+Math.imul(n,c0)|0,p=p+Math.imul(n,h0)|0,y=y+Math.imul(b,b0)|0,w=w+Math.imul(b,l0)|0,w=w+Math.imul(l,b0)|0,p=p+Math.imul(l,l0)|0;var $$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+($$>>>26)|0,$$&=67108863,y=Math.imul(F0,R0),w=Math.imul(F0,P0),w=w+Math.imul(A0,R0)|0,p=Math.imul(A0,P0),y=y+Math.imul(I0,M0)|0,w=w+Math.imul(I0,S0)|0,w=w+Math.imul(O0,M0)|0,p=p+Math.imul(O0,S0)|0,y=y+Math.imul(U0,q0)|0,w=w+Math.imul(U0,j0)|0,w=w+Math.imul(X0,q0)|0,p=p+Math.imul(X0,j0)|0,y=y+Math.imul(Z0,g0)|0,w=w+Math.imul(Z0,_0)|0,w=w+Math.imul(G0,g0)|0,p=p+Math.imul(G0,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,B0)|0,w=w+Math.imul(Q0,x0)|0,p=p+Math.imul(Q0,B0)|0,y=y+Math.imul(e,w0)|0,w=w+Math.imul(e,p0)|0,w=w+Math.imul(r,w0)|0,p=p+Math.imul(r,p0)|0,y=y+Math.imul(t,c0)|0,w=w+Math.imul(t,h0)|0,w=w+Math.imul(m,c0)|0,p=p+Math.imul(m,h0)|0,y=y+Math.imul(u,b0)|0,w=w+Math.imul(u,l0)|0,w=w+Math.imul(n,b0)|0,p=p+Math.imul(n,l0)|0;var Q$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,y=Math.imul(F0,M0),w=Math.imul(F0,S0),w=w+Math.imul(A0,M0)|0,p=Math.imul(A0,S0),y=y+Math.imul(I0,q0)|0,w=w+Math.imul(I0,j0)|0,w=w+Math.imul(O0,q0)|0,p=p+Math.imul(O0,j0)|0,y=y+Math.imul(U0,g0)|0,w=w+Math.imul(U0,_0)|0,w=w+Math.imul(X0,g0)|0,p=p+Math.imul(X0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,B0)|0,w=w+Math.imul(G0,x0)|0,p=p+Math.imul(G0,B0)|0,y=y+Math.imul($0,w0)|0,w=w+Math.imul($0,p0)|0,w=w+Math.imul(Q0,w0)|0,p=p+Math.imul(Q0,p0)|0,y=y+Math.imul(e,c0)|0,w=w+Math.imul(e,h0)|0,w=w+Math.imul(r,c0)|0,p=p+Math.imul(r,h0)|0,y=y+Math.imul(t,b0)|0,w=w+Math.imul(t,l0)|0,w=w+Math.imul(m,b0)|0,p=p+Math.imul(m,l0)|0;var Y$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,y=Math.imul(F0,q0),w=Math.imul(F0,j0),w=w+Math.imul(A0,q0)|0,p=Math.imul(A0,j0),y=y+Math.imul(I0,g0)|0,w=w+Math.imul(I0,_0)|0,w=w+Math.imul(O0,g0)|0,p=p+Math.imul(O0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,B0)|0,w=w+Math.imul(X0,x0)|0,p=p+Math.imul(X0,B0)|0,y=y+Math.imul(Z0,w0)|0,w=w+Math.imul(Z0,p0)|0,w=w+Math.imul(G0,w0)|0,p=p+Math.imul(G0,p0)|0,y=y+Math.imul($0,c0)|0,w=w+Math.imul($0,h0)|0,w=w+Math.imul(Q0,c0)|0,p=p+Math.imul(Q0,h0)|0,y=y+Math.imul(e,b0)|0,w=w+Math.imul(e,l0)|0,w=w+Math.imul(r,b0)|0,p=p+Math.imul(r,l0)|0;var Z$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,y=Math.imul(F0,g0),w=Math.imul(F0,_0),w=w+Math.imul(A0,g0)|0,p=Math.imul(A0,_0),y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,B0)|0,w=w+Math.imul(O0,x0)|0,p=p+Math.imul(O0,B0)|0,y=y+Math.imul(U0,w0)|0,w=w+Math.imul(U0,p0)|0,w=w+Math.imul(X0,w0)|0,p=p+Math.imul(X0,p0)|0,y=y+Math.imul(Z0,c0)|0,w=w+Math.imul(Z0,h0)|0,w=w+Math.imul(G0,c0)|0,p=p+Math.imul(G0,h0)|0,y=y+Math.imul($0,b0)|0,w=w+Math.imul($0,l0)|0,w=w+Math.imul(Q0,b0)|0,p=p+Math.imul(Q0,l0)|0;var G$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(G$>>>26)|0,G$&=67108863,y=Math.imul(F0,x0),w=Math.imul(F0,B0),w=w+Math.imul(A0,x0)|0,p=Math.imul(A0,B0),y=y+Math.imul(I0,w0)|0,w=w+Math.imul(I0,p0)|0,w=w+Math.imul(O0,w0)|0,p=p+Math.imul(O0,p0)|0,y=y+Math.imul(U0,c0)|0,w=w+Math.imul(U0,h0)|0,w=w+Math.imul(X0,c0)|0,p=p+Math.imul(X0,h0)|0,y=y+Math.imul(Z0,b0)|0,w=w+Math.imul(Z0,l0)|0,w=w+Math.imul(G0,b0)|0,p=p+Math.imul(G0,l0)|0;var V$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(V$>>>26)|0,V$&=67108863,y=Math.imul(F0,w0),w=Math.imul(F0,p0),w=w+Math.imul(A0,w0)|0,p=Math.imul(A0,p0),y=y+Math.imul(I0,c0)|0,w=w+Math.imul(I0,h0)|0,w=w+Math.imul(O0,c0)|0,p=p+Math.imul(O0,h0)|0,y=y+Math.imul(U0,b0)|0,w=w+Math.imul(U0,l0)|0,w=w+Math.imul(X0,b0)|0,p=p+Math.imul(X0,l0)|0;var U$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(U$>>>26)|0,U$&=67108863,y=Math.imul(F0,c0),w=Math.imul(F0,h0),w=w+Math.imul(A0,c0)|0,p=Math.imul(A0,h0),y=y+Math.imul(I0,b0)|0,w=w+Math.imul(I0,l0)|0,w=w+Math.imul(O0,b0)|0,p=p+Math.imul(O0,l0)|0;var X$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(X$>>>26)|0,X$&=67108863,y=Math.imul(F0,b0),w=Math.imul(F0,l0),w=w+Math.imul(A0,b0)|0,p=Math.imul(A0,l0);var K$=(B+y|0)+((w&8191)<<13)|0;return B=(p+(w>>>13)|0)+(K$>>>26)|0,K$&=67108863,x[0]=o0,x[1]=u0,x[2]=n0,x[3]=s0,x[4]=t0,x[5]=m0,x[6]=a0,x[7]=e0,x[8]=r0,x[9]=i0,x[10]=$$,x[11]=Q$,x[12]=Y$,x[13]=Z$,x[14]=G$,x[15]=V$,x[16]=U$,x[17]=X$,x[18]=K$,B!==0&&(x[19]=B,g.length++),g};Math.imul||(E=W);function T(j,k,g){g.negative=k.negative^j.negative,g.length=j.length+k.length;for(var _=0,N=0,x=0;x>>26)|0,N+=B>>>26,B&=67108863}g.words[x]=y,_=B,B=N}return _!==0?g.words[x]=_:g.length--,g.strip()}function D(j,k,g){var _=new C;return _.mulp(j,k,g)}U.prototype.mulTo=function(j,k){var g,_=this.length+j.length;return this.length===10&&j.length===10?g=E(this,j,k):_<63?g=W(this,j,k):_<1024?g=T(this,j,k):g=D(this,j,k),g};function C(j,k){this.x=j,this.y=k}C.prototype.makeRBT=function(j){for(var k=new Array(j),g=U.prototype._countBits(j)-1,_=0;_>=1;return _},C.prototype.permute=function(j,k,g,_,N,x){for(var B=0;B>>1)N++;return 1<>>13,g[2*x+1]=N&8191,N=N>>>13;for(x=2*k;x<_;++x)g[x]=0;G(N===0),G((N&-8192)===0)},C.prototype.stub=function(j){for(var k=new Array(j),g=0;g>=26,k+=_/67108864|0,k+=N>>>26,this.words[g]=N&67108863}return k!==0&&(this.words[g]=k,this.length++),this},U.prototype.muln=function(j){return this.clone().imuln(j)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(j){var k=H(j);if(k.length===0)return new U(1);for(var g=this,_=0;_=0);var k=j%26,g=(j-k)/26,_=67108863>>>26-k<<26-k,N;if(k!==0){var x=0;for(N=0;N>>26-k}x&&(this.words[N]=x,this.length++)}if(g!==0){for(N=this.length-1;N>=0;N--)this.words[N+g]=this.words[N];for(N=0;N=0);var _;k?_=(k-k%26)/26:_=0;var N=j%26,x=Math.min((j-N)/26,this.length),B=67108863^67108863>>>N<x)for(this.length-=x,w=0;w=0&&(p!==0||w>=_);w--){var f=this.words[w]|0;this.words[w]=p<<26-N|f>>>N,p=f&B}return y&&p!==0&&(y.words[y.length++]=p),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},U.prototype.ishrn=function(j,k,g){return G(this.negative===0),this.iushrn(j,k,g)},U.prototype.shln=function(j){return this.clone().ishln(j)},U.prototype.ushln=function(j){return this.clone().iushln(j)},U.prototype.shrn=function(j){return this.clone().ishrn(j)},U.prototype.ushrn=function(j){return this.clone().iushrn(j)},U.prototype.testn=function(j){G(typeof j=="number"&&j>=0);var k=j%26,g=(j-k)/26,_=1<=0);var k=j%26,g=(j-k)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(k!==0&&g++,this.length=Math.min(g,this.length),k!==0){var _=67108863^67108863>>>k<=67108864;k++)this.words[k]-=67108864,k===this.length-1?this.words[k+1]=1:this.words[k+1]++;return this.length=Math.max(this.length,k+1),this},U.prototype.isubn=function(j){if(G(typeof j=="number"),G(j<67108864),j<0)return this.iaddn(-j);if(this.negative!==0)return this.negative=0,this.iaddn(j),this.negative=1,this;if(this.words[0]-=j,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var k=0;k>26)-(y/67108864|0),this.words[N+g]=x&67108863}for(;N>26,this.words[N+g]=x&67108863;if(B===0)return this.strip();for(G(B===-1),B=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},U.prototype._wordDiv=function(j,k){var g=this.length-j.length,_=this.clone(),N=j,x=N.words[N.length-1]|0,B=this._countBits(x);g=26-B,g!==0&&(N=N.ushln(g),_.iushln(g),x=N.words[N.length-1]|0);var y=_.length-N.length,w;if(k!=="mod"){w=new U(null),w.length=y+1,w.words=new Array(w.length);for(var p=0;p=0;c--){var h=(_.words[N.length+c]|0)*67108864+(_.words[N.length+c-1]|0);for(h=Math.min(h/x|0,67108863),_._ishlnsubmul(N,h,c);_.negative!==0;)h--,_.negative=0,_._ishlnsubmul(N,1,c),_.isZero()||(_.negative^=1);w&&(w.words[c]=h)}return w&&w.strip(),_.strip(),k!=="div"&&g!==0&&_.iushrn(g),{div:w||null,mod:_}},U.prototype.divmod=function(j,k,g){if(G(!j.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var _,N,x;return this.negative!==0&&j.negative===0?(x=this.neg().divmod(j,k),k!=="mod"&&(_=x.div.neg()),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.iadd(j)),{div:_,mod:N}):this.negative===0&&j.negative!==0?(x=this.divmod(j.neg(),k),k!=="mod"&&(_=x.div.neg()),{div:_,mod:x.mod}):(this.negative&j.negative)!==0?(x=this.neg().divmod(j.neg(),k),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.isub(j)),{div:x.div,mod:N}):j.length>this.length||this.cmp(j)<0?{div:new U(0),mod:this}:j.length===1?k==="div"?{div:this.divn(j.words[0]),mod:null}:k==="mod"?{div:null,mod:new U(this.modn(j.words[0]))}:{div:this.divn(j.words[0]),mod:new U(this.modn(j.words[0]))}:this._wordDiv(j,k)},U.prototype.div=function(j){return this.divmod(j,"div",!1).div},U.prototype.mod=function(j){return this.divmod(j,"mod",!1).mod},U.prototype.umod=function(j){return this.divmod(j,"mod",!0).mod},U.prototype.divRound=function(j){var k=this.divmod(j);if(k.mod.isZero())return k.div;var g=k.div.negative!==0?k.mod.isub(j):k.mod,_=j.ushrn(1),N=j.andln(1),x=g.cmp(_);return x<0||N===1&&x===0?k.div:k.div.negative!==0?k.div.isubn(1):k.div.iaddn(1)},U.prototype.modn=function(j){G(j<=67108863);for(var k=(1<<26)%j,g=0,_=this.length-1;_>=0;_--)g=(k*g+(this.words[_]|0))%j;return g},U.prototype.idivn=function(j){G(j<=67108863);for(var k=0,g=this.length-1;g>=0;g--){var _=(this.words[g]|0)+k*67108864;this.words[g]=_/j|0,k=_%j}return this.strip()},U.prototype.divn=function(j){return this.clone().idivn(j)},U.prototype.egcd=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=new U(0),B=new U(1),y=0;k.isEven()&&g.isEven();)k.iushrn(1),g.iushrn(1),++y;for(var w=g.clone(),p=k.clone();!k.isZero();){for(var f=0,c=1;(k.words[0]&c)===0&&f<26;++f,c<<=1);if(f>0)for(k.iushrn(f);f-- >0;)(_.isOdd()||N.isOdd())&&(_.iadd(w),N.isub(p)),_.iushrn(1),N.iushrn(1);for(var h=0,d=1;(g.words[0]&d)===0&&h<26;++h,d<<=1);if(h>0)for(g.iushrn(h);h-- >0;)(x.isOdd()||B.isOdd())&&(x.iadd(w),B.isub(p)),x.iushrn(1),B.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(x),N.isub(B)):(g.isub(k),x.isub(_),B.isub(N))}return{a:x,b:B,gcd:g.iushln(y)}},U.prototype._invmp=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=g.clone();k.cmpn(1)>0&&g.cmpn(1)>0;){for(var B=0,y=1;(k.words[0]&y)===0&&B<26;++B,y<<=1);if(B>0)for(k.iushrn(B);B-- >0;)_.isOdd()&&_.iadd(x),_.iushrn(1);for(var w=0,p=1;(g.words[0]&p)===0&&w<26;++w,p<<=1);if(w>0)for(g.iushrn(w);w-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(N)):(g.isub(k),N.isub(_))}var f;return k.cmpn(1)===0?f=_:f=N,f.cmpn(0)<0&&f.iadd(j),f},U.prototype.gcd=function(j){if(this.isZero())return j.abs();if(j.isZero())return this.abs();var k=this.clone(),g=j.clone();k.negative=0,g.negative=0;for(var _=0;k.isEven()&&g.isEven();_++)k.iushrn(1),g.iushrn(1);do{for(;k.isEven();)k.iushrn(1);for(;g.isEven();)g.iushrn(1);var N=k.cmp(g);if(N<0){var x=k;k=g,g=x}else if(N===0||g.cmpn(1)===0)break;k.isub(g)}while(!0);return g.iushln(_)},U.prototype.invm=function(j){return this.egcd(j).a.umod(j)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(j){return this.words[0]&j},U.prototype.bincn=function(j){G(typeof j=="number");var k=j%26,g=(j-k)/26,_=1<>>26,B&=67108863,this.words[x]=B}return N!==0&&(this.words[x]=N,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(j){var k=j<0;if(this.negative!==0&&!k)return-1;if(this.negative===0&&k)return 1;this.strip();var g;if(this.length>1)g=1;else{k&&(j=-j),G(j<=67108863,"Number is too big");var _=this.words[0]|0;g=_===j?0:_j.length)return 1;if(this.length=0;g--){var _=this.words[g]|0,N=j.words[g]|0;if(_!==N){_N&&(k=1);break}}return k},U.prototype.gtn=function(j){return this.cmpn(j)===1},U.prototype.gt=function(j){return this.cmp(j)===1},U.prototype.gten=function(j){return this.cmpn(j)>=0},U.prototype.gte=function(j){return this.cmp(j)>=0},U.prototype.ltn=function(j){return this.cmpn(j)===-1},U.prototype.lt=function(j){return this.cmp(j)===-1},U.prototype.lten=function(j){return this.cmpn(j)<=0},U.prototype.lte=function(j){return this.cmp(j)<=0},U.prototype.eqn=function(j){return this.cmpn(j)===0},U.prototype.eq=function(j){return this.cmp(j)===0},U.red=function(j){return new v(j)},U.prototype.toRed=function(j){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),j.convertTo(this)._forceRed(j)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(j){return this.red=j,this},U.prototype.forceRed=function(j){return G(!this.red,"Already a number in reduction context"),this._forceRed(j)},U.prototype.redAdd=function(j){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,j)},U.prototype.redIAdd=function(j){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,j)},U.prototype.redSub=function(j){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,j)},U.prototype.redISub=function(j){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,j)},U.prototype.redShl=function(j){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,j)},U.prototype.redMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.mul(this,j)},U.prototype.redIMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.imul(this,j)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(j){return G(this.red&&!j.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,j)};var L={k256:null,p224:null,p192:null,p25519:null};function R(j,k){this.name=j,this.p=new U(k,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}R.prototype._tmp=function(){var j=new U(null);return j.words=new Array(Math.ceil(this.n/13)),j},R.prototype.ireduce=function(j){var k=j,g;do this.split(k,this.tmp),k=this.imulK(k),k=k.iadd(this.tmp),g=k.bitLength();while(g>this.n);var _=g0?k.isub(this.p):k.strip!==void 0?k.strip():k._strip(),k},R.prototype.split=function(j,k){j.iushrn(this.n,0,k)},R.prototype.imulK=function(j){return j.imul(this.k)};function P(){R.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(P,R),P.prototype.split=function(j,k){for(var g=4194303,_=Math.min(j.length,9),N=0;N<_;N++)k.words[N]=j.words[N];if(k.length=_,j.length<=9){j.words[0]=0,j.length=1;return}var x=j.words[9];for(k.words[k.length++]=x&g,N=10;N>>22,x=B}x>>>=22,j.words[N-10]=x,x===0&&j.length>10?j.length-=10:j.length-=9},P.prototype.imulK=function(j){j.words[j.length]=0,j.words[j.length+1]=0,j.length+=2;for(var k=0,g=0;g>>=26,j.words[g]=N,k=_}return k!==0&&(j.words[j.length++]=k),j},U._prime=function(j){if(L[j])return L[j];var k;if(j==="k256")k=new P;else if(j==="p224")k=new z;else if(j==="p192")k=new M;else if(j==="p25519")k=new S;else throw new Error("Unknown prime "+j);return L[j]=k,k};function v(j){if(typeof j=="string"){var k=U._prime(j);this.m=k.p,this.prime=k}else G(j.gtn(1),"modulus must be greater than 1"),this.m=j,this.prime=null}v.prototype._verify1=function(j){G(j.negative===0,"red works only with positives"),G(j.red,"red works only with red numbers")},v.prototype._verify2=function(j,k){G((j.negative|k.negative)===0,"red works only with positives"),G(j.red&&j.red===k.red,"red works only with red numbers")},v.prototype.imod=function(j){return this.prime?this.prime.ireduce(j)._forceRed(this):j.umod(this.m)._forceRed(this)},v.prototype.neg=function(j){return j.isZero()?j.clone():this.m.sub(j)._forceRed(this)},v.prototype.add=function(j,k){this._verify2(j,k);var g=j.add(k);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},v.prototype.iadd=function(j,k){this._verify2(j,k);var g=j.iadd(k);return g.cmp(this.m)>=0&&g.isub(this.m),g},v.prototype.sub=function(j,k){this._verify2(j,k);var g=j.sub(k);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},v.prototype.isub=function(j,k){this._verify2(j,k);var g=j.isub(k);return g.cmpn(0)<0&&g.iadd(this.m),g},v.prototype.shl=function(j,k){return this._verify1(j),this.imod(j.ushln(k))},v.prototype.imul=function(j,k){return this._verify2(j,k),this.imod(j.imul(k))},v.prototype.mul=function(j,k){return this._verify2(j,k),this.imod(j.mul(k))},v.prototype.isqr=function(j){return this.imul(j,j.clone())},v.prototype.sqr=function(j){return this.mul(j,j)},v.prototype.sqrt=function(j){if(j.isZero())return j.clone();var k=this.m.andln(3);if(G(k%2===1),k===3){var g=this.m.add(new U(1)).iushrn(2);return this.pow(j,g)}for(var _=this.m.subn(1),N=0;!_.isZero()&&_.andln(1)===0;)N++,_.iushrn(1);G(!_.isZero());var x=new U(1).toRed(this),B=x.redNeg(),y=this.m.subn(1).iushrn(1),w=this.m.bitLength();for(w=new U(2*w*w).toRed(this);this.pow(w,y).cmp(B)!==0;)w.redIAdd(B);for(var p=this.pow(w,_),f=this.pow(j,_.addn(1).iushrn(1)),c=this.pow(j,_),h=N;c.cmp(x)!==0;){for(var d=c,b=0;d.cmp(x)!==0;b++)d=d.redSqr();G(b=0;N--){for(var p=k.words[N],f=w-1;f>=0;f--){var c=p>>f&1;if(x!==_[0]&&(x=this.sqr(x)),c===0&&B===0){y=0;continue}B<<=1,B|=c,y++,!(y!==g&&(N!==0||f!==0))&&(x=this.mul(x,_[B]),y=0,B=0)}w=26}return x},v.prototype.convertTo=function(j){var k=j.umod(this.m);return k===j?k.clone():k},v.prototype.convertFrom=function(j){var k=j.clone();return k.red=null,k},U.mont=function(j){return new q(j)};function q(j){v.call(this,j),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(q,v),q.prototype.convertTo=function(j){return this.imod(j.ushln(this.shift))},q.prototype.convertFrom=function(j){var k=this.imod(j.mul(this.rinv));return k.red=null,k},q.prototype.imul=function(j,k){if(j.isZero()||k.isZero())return j.words[0]=0,j.length=1,j;var g=j.imul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.mul=function(j,k){if(j.isZero()||k.isZero())return new U(0)._forceRed(this);var g=j.mul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.invm=function(j){var k=this.imod(j._invmp(this.m).mul(this.r2));return k._forceRed(this)}})(typeof Q>"u"||Q,$)}}),lQ=q$({"node_modules/minimalistic-crypto-utils/lib/utils.js"($){var Q=$;function Y(V,U){if(Array.isArray(V))return V.slice();if(!V)return[];var X=[];if(typeof V!="string"){for(var K=0;K>8,J=I&255;O?X.push(O,J):X.push(J)}return X}Q.toArray=Y;function Z(V){return V.length===1?"0"+V:V}Q.zero2=Z;function G(V){for(var U="",X=0;X(H>>1)-1?T=(H>>1)-D:T=D,W.isubn(T)):T=0,A[E]=T,W.iushrn(1)}return A}Q.getNAF=V;function U(O,J){var F=[[],[]];O=O.clone(),J=J.clone();for(var A=0,H=0,W;O.cmpn(-A)>0||J.cmpn(-H)>0;){var E=O.andln(3)+A&3,T=J.andln(3)+H&3;E===3&&(E=-1),T===3&&(T=-1);var D;(E&1)===0?D=0:(W=O.andln(7)+A&7,(W===3||W===5)&&T===2?D=-E:D=E),F[0].push(D);var C;(T&1)===0?C=0:(W=J.andln(7)+H&7,(W===3||W===5)&&E===2?C=-T:C=T),F[1].push(C),2*A===D+1&&(A=1-A),2*H===C+1&&(H=1-H),O.iushrn(1),J.iushrn(1)}return F}Q.getJSF=U;function X(O,J,F){var A="_"+J;O.prototype[J]=function(){return this[A]!==void 0?this[A]:this[A]=F.call(this)}}Q.cachedProperty=X;function K(O){return typeof O=="string"?Q.toArray(O,"hex"):O}Q.parseBytes=K;function I(O){return new Y(O,"hex","le")}Q.intFromLE=I}}),uQ=q$({"node_modules/elliptic/lib/elliptic/curve/base.js"($,Q){var Y=bQ(),Z=oQ(),G=Z.getNAF,V=Z.getJSF,U=Z.assert;function X(I,O){this.type=I,this.p=new Y(O.p,16),this.red=O.prime?Y.red(O.prime):Y.mont(this.p),this.zero=new Y(0).toRed(this.red),this.one=new Y(1).toRed(this.red),this.two=new Y(2).toRed(this.red),this.n=O.n&&new Y(O.n,16),this.g=O.g&&this.pointFromJSON(O.g,O.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var J=this.n&&this.p.div(this.n);!J||J.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}Q.exports=X,X.prototype.point=function(){throw new Error("Not implemented")},X.prototype.validate=function(){throw new Error("Not implemented")},X.prototype._fixedNafMul=function(I,O){U(I.precomputed);var J=I._getDoubles(),F=G(O,1,this._bitLength),A=(1<=W;T--)E=(E<<1)+F[T];H.push(E)}for(var D=this.jpoint(null,null,null),C=this.jpoint(null,null,null),L=A;L>0;L--){for(W=0;W=0;E--){for(var T=0;E>=0&&H[E]===0;E--)T++;if(E>=0&&T++,W=W.dblp(T),E<0)break;var D=H[E];U(D!==0),I.type==="affine"?D>0?W=W.mixedAdd(A[D-1>>1]):W=W.mixedAdd(A[-D-1>>1].neg()):D>0?W=W.add(A[D-1>>1]):W=W.add(A[-D-1>>1].neg())}return I.type==="affine"?W.toP():W},X.prototype._wnafMulAdd=function(I,O,J,F,A){var H=this._wnafT1,W=this._wnafT2,E=this._wnafT3,T=0,D,C,L;for(D=0;D=1;D-=2){var P=D-1,z=D;if(H[P]!==1||H[z]!==1){E[P]=G(J[P],H[P],this._bitLength),E[z]=G(J[z],H[z],this._bitLength),T=Math.max(E[P].length,T),T=Math.max(E[z].length,T);continue}var M=[O[P],null,null,O[z]];O[P].y.cmp(O[z].y)===0?(M[1]=O[P].add(O[z]),M[2]=O[P].toJ().mixedAdd(O[z].neg())):O[P].y.cmp(O[z].y.redNeg())===0?(M[1]=O[P].toJ().mixedAdd(O[z]),M[2]=O[P].add(O[z].neg())):(M[1]=O[P].toJ().mixedAdd(O[z]),M[2]=O[P].toJ().mixedAdd(O[z].neg()));var S=[-3,-1,-5,-7,0,7,5,1,3],v=V(J[P],J[z]);for(T=Math.max(v[0].length,T),E[P]=new Array(T),E[z]=new Array(T),C=0;C=0;D--){for(var _=0;D>=0;){var N=!0;for(C=0;C=0&&_++,k=k.dblp(_),D<0)break;for(C=0;C0?L=W[C][x-1>>1]:x<0&&(L=W[C][-x-1>>1].neg()),L.type==="affine"?k=k.mixedAdd(L):k=k.add(L))}}for(D=0;D=Math.ceil((I.bitLength()+1)/O.step):!1},K.prototype._getDoubles=function(I,O){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var J=[this],F=this,A=0;A=0&&(P=D,z=C),L.negative&&(L=L.neg(),R=R.neg()),P.negative&&(P=P.neg(),z=z.neg()),[{a:L,b:R},{a:P,b:z}]},X.prototype._endoSplit=function(O){var J=this.endo.basis,F=J[0],A=J[1],H=A.b.mul(O).divRound(this.n),W=F.b.neg().mul(O).divRound(this.n),E=H.mul(F.a),T=W.mul(A.a),D=H.mul(F.b),C=W.mul(A.b),L=O.sub(E).sub(T),R=D.add(C).neg();return{k1:L,k2:R}},X.prototype.pointFromX=function(O,J){O=new Z(O,16),O.red||(O=O.toRed(this.red));var F=O.redSqr().redMul(O).redIAdd(O.redMul(this.a)).redIAdd(this.b),A=F.redSqrt();if(A.redSqr().redSub(F).cmp(this.zero)!==0)throw new Error("invalid point");var H=A.fromRed().isOdd();return(J&&!H||!J&&H)&&(A=A.redNeg()),this.point(O,A)},X.prototype.validate=function(O){if(O.inf)return!0;var{x:J,y:F}=O,A=this.a.redMul(J),H=J.redSqr().redMul(J).redIAdd(A).redIAdd(this.b);return F.redSqr().redISub(H).cmpn(0)===0},X.prototype._endoWnafMulAdd=function(O,J,F){for(var A=this._endoWnafT1,H=this._endoWnafT2,W=0;W":""},K.prototype.isInfinity=function(){return this.inf},K.prototype.add=function(O){if(this.inf)return O;if(O.inf)return this;if(this.eq(O))return this.dbl();if(this.neg().eq(O))return this.curve.point(null,null);if(this.x.cmp(O.x)===0)return this.curve.point(null,null);var J=this.y.redSub(O.y);J.cmpn(0)!==0&&(J=J.redMul(this.x.redSub(O.x).redInvm()));var F=J.redSqr().redISub(this.x).redISub(O.x),A=J.redMul(this.x.redSub(F)).redISub(this.y);return this.curve.point(F,A)},K.prototype.dbl=function(){if(this.inf)return this;var O=this.y.redAdd(this.y);if(O.cmpn(0)===0)return this.curve.point(null,null);var J=this.curve.a,F=this.x.redSqr(),A=O.redInvm(),H=F.redAdd(F).redIAdd(F).redIAdd(J).redMul(A),W=H.redSqr().redISub(this.x.redAdd(this.x)),E=H.redMul(this.x.redSub(W)).redISub(this.y);return this.curve.point(W,E)},K.prototype.getX=function(){return this.x.fromRed()},K.prototype.getY=function(){return this.y.fromRed()},K.prototype.mul=function(O){return O=new Z(O,16),this.isInfinity()?this:this._hasDoubles(O)?this.curve._fixedNafMul(this,O):this.curve.endo?this.curve._endoWnafMulAdd([this],[O]):this.curve._wnafMul(this,O)},K.prototype.mulAdd=function(O,J,F){var A=[this,J],H=[O,F];return this.curve.endo?this.curve._endoWnafMulAdd(A,H):this.curve._wnafMulAdd(1,A,H,2)},K.prototype.jmulAdd=function(O,J,F){var A=[this,J],H=[O,F];return this.curve.endo?this.curve._endoWnafMulAdd(A,H,!0):this.curve._wnafMulAdd(1,A,H,2,!0)},K.prototype.eq=function(O){return this===O||this.inf===O.inf&&(this.inf||this.x.cmp(O.x)===0&&this.y.cmp(O.y)===0)},K.prototype.neg=function(O){if(this.inf)return this;var J=this.curve.point(this.x,this.y.redNeg());if(O&&this.precomputed){var F=this.precomputed,A=function(H){return H.neg()};J.precomputed={naf:F.naf&&{wnd:F.naf.wnd,points:F.naf.points.map(A)},doubles:F.doubles&&{step:F.doubles.step,points:F.doubles.points.map(A)}}}return J},K.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var O=this.curve.jpoint(this.x,this.y,this.curve.one);return O};function I(O,J,F,A){V.BasePoint.call(this,O,"jacobian"),J===null&&F===null&&A===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new Z(0)):(this.x=new Z(J,16),this.y=new Z(F,16),this.z=new Z(A,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}G(I,V.BasePoint),X.prototype.jpoint=function(O,J,F){return new I(this,O,J,F)},I.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var O=this.z.redInvm(),J=O.redSqr(),F=this.x.redMul(J),A=this.y.redMul(J).redMul(O);return this.curve.point(F,A)},I.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},I.prototype.add=function(O){if(this.isInfinity())return O;if(O.isInfinity())return this;var J=O.z.redSqr(),F=this.z.redSqr(),A=this.x.redMul(J),H=O.x.redMul(F),W=this.y.redMul(J.redMul(O.z)),E=O.y.redMul(F.redMul(this.z)),T=A.redSub(H),D=W.redSub(E);if(T.cmpn(0)===0)return D.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var C=T.redSqr(),L=C.redMul(T),R=A.redMul(C),P=D.redSqr().redIAdd(L).redISub(R).redISub(R),z=D.redMul(R.redISub(P)).redISub(W.redMul(L)),M=this.z.redMul(O.z).redMul(T);return this.curve.jpoint(P,z,M)},I.prototype.mixedAdd=function(O){if(this.isInfinity())return O.toJ();if(O.isInfinity())return this;var J=this.z.redSqr(),F=this.x,A=O.x.redMul(J),H=this.y,W=O.y.redMul(J).redMul(this.z),E=F.redSub(A),T=H.redSub(W);if(E.cmpn(0)===0)return T.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var D=E.redSqr(),C=D.redMul(E),L=F.redMul(D),R=T.redSqr().redIAdd(C).redISub(L).redISub(L),P=T.redMul(L.redISub(R)).redISub(H.redMul(C)),z=this.z.redMul(E);return this.curve.jpoint(R,P,z)},I.prototype.dblp=function(O){if(O===0)return this;if(this.isInfinity())return this;if(!O)return this.dbl();var J;if(this.curve.zeroA||this.curve.threeA){var F=this;for(J=0;J=0)return!1;if(F.redIAdd(H),this.x.cmp(F)===0)return!0}},I.prototype.inspect=function(){return this.isInfinity()?"":""},I.prototype.isInfinity=function(){return this.z.cmpn(0)===0}}}),sQ=q$({"node_modules/elliptic/lib/elliptic/curve/mont.js"($,Q){var Y=bQ(),Z=_$(),G=uQ(),V=oQ();function U(K){G.call(this,"mont",K),this.a=new Y(K.a,16).toRed(this.red),this.b=new Y(K.b,16).toRed(this.red),this.i4=new Y(4).toRed(this.red).redInvm(),this.two=new Y(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}Z(U,G),Q.exports=U,U.prototype.validate=function(K){var I=K.normalize().x,O=I.redSqr(),J=O.redMul(I).redAdd(O.redMul(this.a)).redAdd(I),F=J.redSqrt();return F.redSqr().cmp(J)===0};function X(K,I,O){G.BasePoint.call(this,K,"projective"),I===null&&O===null?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new Y(I,16),this.z=new Y(O,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}Z(X,G.BasePoint),U.prototype.decodePoint=function(K,I){return this.point(V.toArray(K,I),1)},U.prototype.point=function(K,I){return new X(this,K,I)},U.prototype.pointFromJSON=function(K){return X.fromJSON(this,K)},X.prototype.precompute=function(){},X.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},X.fromJSON=function(K,I){return new X(K,I[0],I[1]||K.one)},X.prototype.inspect=function(){return this.isInfinity()?"":""},X.prototype.isInfinity=function(){return this.z.cmpn(0)===0},X.prototype.dbl=function(){var K=this.x.redAdd(this.z),I=K.redSqr(),O=this.x.redSub(this.z),J=O.redSqr(),F=I.redSub(J),A=I.redMul(J),H=F.redMul(J.redAdd(this.curve.a24.redMul(F)));return this.curve.point(A,H)},X.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},X.prototype.diffAdd=function(K,I){var O=this.x.redAdd(this.z),J=this.x.redSub(this.z),F=K.x.redAdd(K.z),A=K.x.redSub(K.z),H=A.redMul(O),W=F.redMul(J),E=I.z.redMul(H.redAdd(W).redSqr()),T=I.x.redMul(H.redISub(W).redSqr());return this.curve.point(E,T)},X.prototype.mul=function(K){for(var I=K.clone(),O=this,J=this.curve.point(null,null),F=this,A=[];I.cmpn(0)!==0;I.iushrn(1))A.push(I.andln(1));for(var H=A.length-1;H>=0;H--)A[H]===0?(O=O.diffAdd(J,F),J=J.dbl()):(J=O.diffAdd(J,F),O=O.dbl());return J},X.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},X.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},X.prototype.eq=function(K){return this.getX().cmp(K.getX())===0},X.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},X.prototype.getX=function(){return this.normalize(),this.x.fromRed()}}}),tQ=q$({"node_modules/elliptic/lib/elliptic/curve/edwards.js"($,Q){var Y=oQ(),Z=bQ(),G=_$(),V=uQ(),U=Y.assert;function X(I){this.twisted=(I.a|0)!==1,this.mOneA=this.twisted&&(I.a|0)===-1,this.extended=this.mOneA,V.call(this,"edwards",I),this.a=new Z(I.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new Z(I.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new Z(I.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),U(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(I.c|0)===1}G(X,V),Q.exports=X,X.prototype._mulA=function(I){return this.mOneA?I.redNeg():this.a.redMul(I)},X.prototype._mulC=function(I){return this.oneC?I:this.c.redMul(I)},X.prototype.jpoint=function(I,O,J,F){return this.point(I,O,J,F)},X.prototype.pointFromX=function(I,O){I=new Z(I,16),I.red||(I=I.toRed(this.red));var J=I.redSqr(),F=this.c2.redSub(this.a.redMul(J)),A=this.one.redSub(this.c2.redMul(this.d).redMul(J)),H=F.redMul(A.redInvm()),W=H.redSqrt();if(W.redSqr().redSub(H).cmp(this.zero)!==0)throw new Error("invalid point");var E=W.fromRed().isOdd();return(O&&!E||!O&&E)&&(W=W.redNeg()),this.point(I,W)},X.prototype.pointFromY=function(I,O){I=new Z(I,16),I.red||(I=I.toRed(this.red));var J=I.redSqr(),F=J.redSub(this.c2),A=J.redMul(this.d).redMul(this.c2).redSub(this.a),H=F.redMul(A.redInvm());if(H.cmp(this.zero)===0){if(O)throw new Error("invalid point");return this.point(this.zero,I)}var W=H.redSqrt();if(W.redSqr().redSub(H).cmp(this.zero)!==0)throw new Error("invalid point");return W.fromRed().isOdd()!==O&&(W=W.redNeg()),this.point(W,I)},X.prototype.validate=function(I){if(I.isInfinity())return!0;I.normalize();var O=I.x.redSqr(),J=I.y.redSqr(),F=O.redMul(this.a).redAdd(J),A=this.c2.redMul(this.one.redAdd(this.d.redMul(O).redMul(J)));return F.cmp(A)===0};function K(I,O,J,F,A){V.BasePoint.call(this,I,"projective"),O===null&&J===null&&F===null?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new Z(O,16),this.y=new Z(J,16),this.z=F?new Z(F,16):this.curve.one,this.t=A&&new Z(A,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}G(K,V.BasePoint),X.prototype.pointFromJSON=function(I){return K.fromJSON(this,I)},X.prototype.point=function(I,O,J,F){return new K(this,I,O,J,F)},K.fromJSON=function(I,O){return new K(I,O[0],O[1],O[2])},K.prototype.inspect=function(){return this.isInfinity()?"":""},K.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)},K.prototype._extDbl=function(){var I=this.x.redSqr(),O=this.y.redSqr(),J=this.z.redSqr();J=J.redIAdd(J);var F=this.curve._mulA(I),A=this.x.redAdd(this.y).redSqr().redISub(I).redISub(O),H=F.redAdd(O),W=H.redSub(J),E=F.redSub(O),T=A.redMul(W),D=H.redMul(E),C=A.redMul(E),L=W.redMul(H);return this.curve.point(T,D,L,C)},K.prototype._projDbl=function(){var I=this.x.redAdd(this.y).redSqr(),O=this.x.redSqr(),J=this.y.redSqr(),F,A,H,W,E,T;if(this.curve.twisted){W=this.curve._mulA(O);var D=W.redAdd(J);this.zOne?(F=I.redSub(O).redSub(J).redMul(D.redSub(this.curve.two)),A=D.redMul(W.redSub(J)),H=D.redSqr().redSub(D).redSub(D)):(E=this.z.redSqr(),T=D.redSub(E).redISub(E),F=I.redSub(O).redISub(J).redMul(T),A=D.redMul(W.redSub(J)),H=D.redMul(T))}else W=O.redAdd(J),E=this.curve._mulC(this.z).redSqr(),T=W.redSub(E).redSub(E),F=this.curve._mulC(I.redISub(W)).redMul(T),A=this.curve._mulC(W).redMul(O.redISub(J)),H=W.redMul(T);return this.curve.point(F,A,H)},K.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},K.prototype._extAdd=function(I){var O=this.y.redSub(this.x).redMul(I.y.redSub(I.x)),J=this.y.redAdd(this.x).redMul(I.y.redAdd(I.x)),F=this.t.redMul(this.curve.dd).redMul(I.t),A=this.z.redMul(I.z.redAdd(I.z)),H=J.redSub(O),W=A.redSub(F),E=A.redAdd(F),T=J.redAdd(O),D=H.redMul(W),C=E.redMul(T),L=H.redMul(T),R=W.redMul(E);return this.curve.point(D,C,R,L)},K.prototype._projAdd=function(I){var O=this.z.redMul(I.z),J=O.redSqr(),F=this.x.redMul(I.x),A=this.y.redMul(I.y),H=this.curve.d.redMul(F).redMul(A),W=J.redSub(H),E=J.redAdd(H),T=this.x.redAdd(this.y).redMul(I.x.redAdd(I.y)).redISub(F).redISub(A),D=O.redMul(W).redMul(T),C,L;return this.curve.twisted?(C=O.redMul(E).redMul(A.redSub(this.curve._mulA(F))),L=W.redMul(E)):(C=O.redMul(E).redMul(A.redSub(F)),L=this.curve._mulC(W).redMul(E)),this.curve.point(D,C,L)},K.prototype.add=function(I){return this.isInfinity()?I:I.isInfinity()?this:this.curve.extended?this._extAdd(I):this._projAdd(I)},K.prototype.mul=function(I){return this._hasDoubles(I)?this.curve._fixedNafMul(this,I):this.curve._wnafMul(this,I)},K.prototype.mulAdd=function(I,O,J){return this.curve._wnafMulAdd(1,[this,O],[I,J],2,!1)},K.prototype.jmulAdd=function(I,O,J){return this.curve._wnafMulAdd(1,[this,O],[I,J],2,!0)},K.prototype.normalize=function(){if(this.zOne)return this;var I=this.z.redInvm();return this.x=this.x.redMul(I),this.y=this.y.redMul(I),this.t&&(this.t=this.t.redMul(I)),this.z=this.curve.one,this.zOne=!0,this},K.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},K.prototype.getX=function(){return this.normalize(),this.x.fromRed()},K.prototype.getY=function(){return this.normalize(),this.y.fromRed()},K.prototype.eq=function(I){return this===I||this.getX().cmp(I.getX())===0&&this.getY().cmp(I.getY())===0},K.prototype.eqXToP=function(I){var O=I.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(O)===0)return!0;for(var J=I.clone(),F=this.curve.redN.redMul(this.z);;){if(J.iadd(this.curve.n),J.cmp(this.curve.p)>=0)return!1;if(O.redIAdd(F),this.x.cmp(O)===0)return!0}},K.prototype.toP=K.prototype.normalize,K.prototype.mixedAdd=K.prototype.add}}),mQ=q$({"node_modules/elliptic/lib/elliptic/curve/index.js"($){var Q=$;Q.base=uQ(),Q.short=nQ(),Q.mont=sQ(),Q.edwards=tQ()}}),aQ=q$({"node_modules/hash.js/lib/hash/utils.js"($){var Q=ZQ(),Y=_$();$.inherits=Y;function Z(k,g){return(k.charCodeAt(g)&64512)!==55296||g<0||g+1>=k.length?!1:(k.charCodeAt(g+1)&64512)===56320}function G(k,g){if(Array.isArray(k))return k.slice();if(!k)return[];var _=[];if(typeof k=="string")if(g){if(g==="hex")for(k=k.replace(/[^a-z0-9]+/gi,""),k.length%2!==0&&(k="0"+k),x=0;x>6|192,_[N++]=B&63|128):Z(k,x)?(B=65536+((B&1023)<<10)+(k.charCodeAt(++x)&1023),_[N++]=B>>18|240,_[N++]=B>>12&63|128,_[N++]=B>>6&63|128,_[N++]=B&63|128):(_[N++]=B>>12|224,_[N++]=B>>6&63|128,_[N++]=B&63|128)}else for(x=0;x>>24|k>>>8&65280|k<<8&16711680|(k&255)<<24;return g>>>0}$.htonl=U;function X(k,g){for(var _="",N=0;N>>0}return B}$.join32=O;function J(k,g){for(var _=new Array(k.length*4),N=0,x=0;N>>24,_[x+1]=B>>>16&255,_[x+2]=B>>>8&255,_[x+3]=B&255):(_[x+3]=B>>>24,_[x+2]=B>>>16&255,_[x+1]=B>>>8&255,_[x]=B&255)}return _}$.split32=J;function F(k,g){return k>>>g|k<<32-g}$.rotr32=F;function A(k,g){return k<>>32-g}$.rotl32=A;function H(k,g){return k+g>>>0}$.sum32=H;function W(k,g,_){return k+g+_>>>0}$.sum32_3=W;function E(k,g,_,N){return k+g+_+N>>>0}$.sum32_4=E;function T(k,g,_,N,x){return k+g+_+N+x>>>0}$.sum32_5=T;function D(k,g,_,N){var x=k[g],B=k[g+1],y=N+B>>>0,w=(y>>0,k[g+1]=y}$.sum64=D;function C(k,g,_,N){var x=g+N>>>0,B=(x>>0}$.sum64_hi=C;function L(k,g,_,N){var x=g+N;return x>>>0}$.sum64_lo=L;function R(k,g,_,N,x,B,y,w){var p=0,f=g;f=f+N>>>0,p+=f>>0,p+=f>>0,p+=f>>0}$.sum64_4_hi=R;function P(k,g,_,N,x,B,y,w){var p=g+N+B+w;return p>>>0}$.sum64_4_lo=P;function z(k,g,_,N,x,B,y,w,p,f){var c=0,h=g;h=h+N>>>0,c+=h>>0,c+=h>>0,c+=h>>0,c+=h>>0}$.sum64_5_hi=z;function M(k,g,_,N,x,B,y,w,p,f){var c=g+N+B+w+f;return c>>>0}$.sum64_5_lo=M;function S(k,g,_){var N=g<<32-_|k>>>_;return N>>>0}$.rotr64_hi=S;function v(k,g,_){var N=k<<32-_|g>>>_;return N>>>0}$.rotr64_lo=v;function q(k,g,_){return k>>>_}$.shr64_hi=q;function j(k,g,_){var N=k<<32-_|g>>>_;return N>>>0}$.shr64_lo=j}}),eQ=q$({"node_modules/hash.js/lib/hash/common.js"($){var Q=aQ(),Y=ZQ();function Z(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}$.BlockHash=Z,Z.prototype.update=function(G,V){if(G=Q.toArray(G,V),this.pending?this.pending=this.pending.concat(G):this.pending=G,this.pendingTotal+=G.length,this.pending.length>=this._delta8){G=this.pending;var U=G.length%this._delta8;this.pending=G.slice(G.length-U,G.length),this.pending.length===0&&(this.pending=null),G=Q.join32(G,0,G.length-U,this.endian);for(var X=0;X>>24&255,X[K++]=G>>>16&255,X[K++]=G>>>8&255,X[K++]=G&255}else for(X[K++]=G&255,X[K++]=G>>>8&255,X[K++]=G>>>16&255,X[K++]=G>>>24&255,X[K++]=0,X[K++]=0,X[K++]=0,X[K++]=0,I=8;I>>3}$.g0_256=I;function O(J){return Y(J,17)^Y(J,19)^J>>>10}$.g1_256=O}}),iQ=q$({"node_modules/hash.js/lib/hash/sha/1.js"($,Q){var Y=aQ(),Z=eQ(),G=rQ(),V=Y.rotl32,U=Y.sum32,X=Y.sum32_5,K=G.ft_1,I=Z.BlockHash,O=[1518500249,1859775393,2400959708,3395469782];function J(){if(!(this instanceof J))return new J;I.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}Y.inherits(J,I),Q.exports=J,J.blockSize=512,J.outSize=160,J.hmacStrength=80,J.padLength=64,J.prototype._update=function(F,A){for(var H=this.W,W=0;W<16;W++)H[W]=F[A+W];for(;Wthis.blockSize&&(V=new this.Hash().update(V).digest()),Z(V.length<=this.blockSize);for(var U=V.length;U=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(X,K,I)}Q.exports=V,V.prototype._init=function(U,X,K){var I=U.concat(X).concat(K);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var O=0;O=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(U.concat(K||[])),this._reseed=1},V.prototype.generate=function(U,X,K,I){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");typeof X!="string"&&(I=K,K=X,X=null),K&&(K=Z.toArray(K,I||"hex"),this._update(K));for(var O=[];O.length"}}}),FY=q$({"node_modules/elliptic/lib/elliptic/ec/signature.js"($,Q){var Y=bQ(),Z=oQ(),G=Z.assert;function V(O,J){if(O instanceof V)return O;this._importDER(O,J)||(G(O.r&&O.s,"Signature without r or s"),this.r=new Y(O.r,16),this.s=new Y(O.s,16),O.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=O.recoveryParam)}Q.exports=V;function U(){this.place=0}function X(O,J){var F=O[J.place++];if(!(F&128))return F;var A=F&15;if(A===0||A>4)return!1;for(var H=0,W=0,E=J.place;W>>=0;return H<=127?!1:(J.place=E,H)}function K(O){for(var J=0,F=O.length-1;!O[J]&&!(O[J+1]&128)&&J>>3);for(O.push(F|128);--F;)O.push(J>>>(F<<3)&255);O.push(J)}V.prototype.toDER=function(O){var J=this.r.toArray(),F=this.s.toArray();for(J[0]&128&&(J=[0].concat(J)),F[0]&128&&(F=[0].concat(F)),J=K(J),F=K(F);!F[0]&&!(F[1]&128);)F=F.slice(1);var A=[2];I(A,J.length),A=A.concat(J),A.push(2),I(A,F.length);var H=A.concat(F),W=[48];return I(W,H.length),W=W.concat(H),Z.encode(W,O)}}}),AY=q$({"node_modules/elliptic/lib/elliptic/ec/index.js"($,Q){var Y=bQ(),Z=OY(),G=oQ(),V=IY(),U=xQ(),X=G.assert,K=JY(),I=FY();function O(J){if(!(this instanceof O))return new O(J);typeof J=="string"&&(X(Object.prototype.hasOwnProperty.call(V,J),"Unknown curve "+J),J=V[J]),J instanceof V.PresetCurve&&(J={curve:J}),this.curve=J.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=J.curve.g,this.g.precompute(J.curve.n.bitLength()+1),this.hash=J.hash||J.curve.hash}Q.exports=O,O.prototype.keyPair=function(J){return new K(this,J)},O.prototype.keyFromPrivate=function(J,F){return K.fromPrivate(this,J,F)},O.prototype.keyFromPublic=function(J,F){return K.fromPublic(this,J,F)},O.prototype.genKeyPair=function(J){J||(J={});for(var F=new Z({hash:this.hash,pers:J.pers,persEnc:J.persEnc||"utf8",entropy:J.entropy||U(this.hash.hmacStrength),entropyEnc:J.entropy&&J.entropyEnc||"utf8",nonce:this.n.toArray()}),A=this.n.byteLength(),H=this.n.sub(new Y(2));;){var W=new Y(F.generate(A));if(!(W.cmp(H)>0))return W.iaddn(1),this.keyFromPrivate(W)}},O.prototype._truncateToN=function(J,F){var A=J.byteLength()*8-this.n.bitLength();return A>0&&(J=J.ushrn(A)),!F&&J.cmp(this.n)>=0?J.sub(this.n):J},O.prototype.sign=function(J,F,A,H){typeof A=="object"&&(H=A,A=null),H||(H={}),F=this.keyFromPrivate(F,A),J=this._truncateToN(new Y(J,16));for(var W=this.n.byteLength(),E=F.getPrivate().toArray("be",W),T=J.toArray("be",W),D=new Z({hash:this.hash,entropy:E,nonce:T,pers:H.pers,persEnc:H.persEnc||"utf8"}),C=this.n.sub(new Y(1)),L=0;;L++){var R=H.k?H.k(L):new Y(D.generate(this.n.byteLength()));if(R=this._truncateToN(R,!0),!(R.cmpn(1)<=0||R.cmp(C)>=0)){var P=this.g.mul(R);if(!P.isInfinity()){var z=P.getX(),M=z.umod(this.n);if(M.cmpn(0)!==0){var S=R.invm(this.n).mul(M.mul(F.getPrivate()).iadd(J));if(S=S.umod(this.n),S.cmpn(0)!==0){var v=(P.getY().isOdd()?1:0)|(z.cmp(M)!==0?2:0);return H.canonical&&S.cmp(this.nh)>0&&(S=this.n.sub(S),v^=1),new I({r:M,s:S,recoveryParam:v})}}}}}},O.prototype.verify=function(J,F,A,H){J=this._truncateToN(new Y(J,16)),A=this.keyFromPublic(A,H),F=new I(F,"hex");var{r:W,s:E}=F;if(W.cmpn(1)<0||W.cmp(this.n)>=0||E.cmpn(1)<0||E.cmp(this.n)>=0)return!1;var T=E.invm(this.n),D=T.mul(J).umod(this.n),C=T.mul(W).umod(this.n),L;return this.curve._maxwellTrick?(L=this.g.jmulAdd(D,A.getPublic(),C),L.isInfinity()?!1:L.eqXToP(W)):(L=this.g.mulAdd(D,A.getPublic(),C),L.isInfinity()?!1:L.getX().umod(this.n).cmp(W)===0)},O.prototype.recoverPubKey=function(J,F,A,H){X((3&A)===A,"The recovery param is more than two bits"),F=new I(F,H);var W=this.n,E=new Y(J),T=F.r,D=F.s,C=A&1,L=A>>1;if(T.cmp(this.curve.p.umod(this.curve.n))>=0&&L)throw new Error("Unable to find sencond key candinate");L?T=this.curve.pointFromX(T.add(this.curve.n),C):T=this.curve.pointFromX(T,C);var R=F.r.invm(W),P=W.sub(E).mul(R).umod(W),z=D.mul(R).umod(W);return this.g.mulAdd(P,T,z)},O.prototype.getKeyRecoveryParam=function(J,F,A,H){if(F=new I(F,H),F.recoveryParam!==null)return F.recoveryParam;for(var W=0;W<4;W++){var E;try{E=this.recoverPubKey(J,F,W)}catch{continue}if(E.eq(A))return W}throw new Error("Unable to find valid recovery factor")}}}),HY=q$({"node_modules/elliptic/lib/elliptic/eddsa/key.js"($,Q){var Y=oQ(),Z=Y.assert,G=Y.parseBytes,V=Y.cachedProperty;function U(X,K){this.eddsa=X,this._secret=G(K.secret),X.isPoint(K.pub)?this._pub=K.pub:this._pubBytes=G(K.pub)}U.fromPublic=function(X,K){return K instanceof U?K:new U(X,{pub:K})},U.fromSecret=function(X,K){return K instanceof U?K:new U(X,{secret:K})},U.prototype.secret=function(){return this._secret},V(U,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())}),V(U,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())}),V(U,"privBytes",function(){var X=this.eddsa,K=this.hash(),I=X.encodingLength-1,O=K.slice(0,X.encodingLength);return O[0]&=248,O[I]&=127,O[I]|=64,O}),V(U,"priv",function(){return this.eddsa.decodeInt(this.privBytes())}),V(U,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()}),V(U,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)}),U.prototype.sign=function(X){return Z(this._secret,"KeyPair can only verify"),this.eddsa.sign(X,this)},U.prototype.verify=function(X,K){return this.eddsa.verify(X,K,this)},U.prototype.getSecret=function(X){return Z(this._secret,"KeyPair is public only"),Y.encode(this.secret(),X)},U.prototype.getPublic=function(X){return Y.encode(this.pubBytes(),X)},Q.exports=U}}),WY=q$({"node_modules/elliptic/lib/elliptic/eddsa/signature.js"($,Q){var Y=bQ(),Z=oQ(),G=Z.assert,V=Z.cachedProperty,U=Z.parseBytes;function X(K,I){this.eddsa=K,typeof I!="object"&&(I=U(I)),Array.isArray(I)&&(I={R:I.slice(0,K.encodingLength),S:I.slice(K.encodingLength)}),G(I.R&&I.S,"Signature without R or S"),K.isPoint(I.R)&&(this._R=I.R),I.S instanceof Y&&(this._S=I.S),this._Rencoded=Array.isArray(I.R)?I.R:I.Rencoded,this._Sencoded=Array.isArray(I.S)?I.S:I.Sencoded}V(X,"S",function(){return this.eddsa.decodeInt(this.Sencoded())}),V(X,"R",function(){return this.eddsa.decodePoint(this.Rencoded())}),V(X,"Rencoded",function(){return this.eddsa.encodePoint(this.R())}),V(X,"Sencoded",function(){return this.eddsa.encodeInt(this.S())}),X.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},X.prototype.toHex=function(){return Z.encode(this.toBytes(),"hex").toUpperCase()},Q.exports=X}}),EY=q$({"node_modules/elliptic/lib/elliptic/eddsa/index.js"($,Q){var Y=XY(),Z=IY(),G=oQ(),V=G.assert,U=G.parseBytes,X=HY(),K=WY();function I(O){if(V(O==="ed25519","only tested with ed25519 so far"),!(this instanceof I))return new I(O);O=Z[O].curve,this.curve=O,this.g=O.g,this.g.precompute(O.n.bitLength()+1),this.pointClass=O.point().constructor,this.encodingLength=Math.ceil(O.n.bitLength()/8),this.hash=Y.sha512}Q.exports=I,I.prototype.sign=function(O,J){O=U(O);var F=this.keyFromSecret(J),A=this.hashInt(F.messagePrefix(),O),H=this.g.mul(A),W=this.encodePoint(H),E=this.hashInt(W,F.pubBytes(),O).mul(F.priv()),T=A.add(E).umod(this.curve.n);return this.makeSignature({R:H,S:T,Rencoded:W})},I.prototype.verify=function(O,J,F){O=U(O),J=this.makeSignature(J);var A=this.keyFromPublic(F),H=this.hashInt(J.Rencoded(),A.pubBytes(),O),W=this.g.mul(J.S()),E=J.R().add(A.pub().mul(H));return E.eq(W)},I.prototype.hashInt=function(){for(var O=this.hash(),J=0;J0?j:k},U.min=function(j,k){return j.cmp(k)<0?j:k},U.prototype._init=function(j,k,g){if(typeof j=="number")return this._initNumber(j,k,g);if(typeof j=="object")return this._initArray(j,k,g);k==="hex"&&(k=16),G(k===(k|0)&&k>=2&&k<=36),j=j.toString().replace(/\s+/g,"");var _=0;j[0]==="-"&&(_++,this.negative=1),_=0;_-=3)x=j[_]|j[_-1]<<8|j[_-2]<<16,this.words[N]|=x<>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);else if(g==="le")for(_=0,N=0;_>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);return this.strip()};function K(j,k){var g=j.charCodeAt(k);return g>=65&&g<=70?g-55:g>=97&&g<=102?g-87:g-48&15}function I(j,k,g){var _=K(j,g);return g-1>=k&&(_|=K(j,g-1)<<4),_}U.prototype._parseHex=function(j,k,g){this.length=Math.ceil((j.length-k)/6),this.words=new Array(this.length);for(var _=0;_=k;_-=2)B=I(j,k,_)<=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8;else{var y=j.length-k;for(_=y%2===0?k+1:k;_=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8}this.strip()};function O(j,k,g,_){for(var N=0,x=Math.min(j.length,g),B=k;B=49?N+=y-49+10:y>=17?N+=y-17+10:N+=y}return N}U.prototype._parseBase=function(j,k,g){this.words=[0],this.length=1;for(var _=0,N=1;N<=67108863;N*=k)_++;_--,N=N/k|0;for(var x=j.length-g,B=x%_,y=Math.min(x,x-B)+g,w=0,p=g;p1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},U.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],F=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],A=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(j,k){j=j||10,k=k|0||1;var g;if(j===16||j==="hex"){g="";for(var _=0,N=0,x=0;x>>24-_&16777215,N!==0||x!==this.length-1?g=J[6-y.length]+y+g:g=y+g,_+=2,_>=26&&(_-=26,x--)}for(N!==0&&(g=N.toString(16)+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(j===(j|0)&&j>=2&&j<=36){var w=F[j],p=A[j];g="";var f=this.clone();for(f.negative=0;!f.isZero();){var c=f.modn(p).toString(j);f=f.idivn(p),f.isZero()?g=c+g:g=J[w-c.length]+c+g}for(this.isZero()&&(g="0"+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var j=this.words[0];return this.length===2?j+=this.words[1]*67108864:this.length===3&&this.words[2]===1?j+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-j:j},U.prototype.toJSON=function(){return this.toString(16)},U.prototype.toBuffer=function(j,k){return G(typeof X<"u"),this.toArrayLike(X,j,k)},U.prototype.toArray=function(j,k){return this.toArrayLike(Array,j,k)},U.prototype.toArrayLike=function(j,k,g){var _=this.byteLength(),N=g||Math.max(1,_);G(_<=N,"byte array longer than desired length"),G(N>0,"Requested array length <= 0"),this.strip();var x=k==="le",B=new j(N),y,w,p=this.clone();if(x){for(w=0;!p.isZero();w++)y=p.andln(255),p.iushrn(8),B[w]=y;for(;w=4096&&(g+=13,k>>>=13),k>=64&&(g+=7,k>>>=7),k>=8&&(g+=4,k>>>=4),k>=2&&(g+=2,k>>>=2),g+k},U.prototype._zeroBits=function(j){if(j===0)return 26;var k=j,g=0;return(k&8191)===0&&(g+=13,k>>>=13),(k&127)===0&&(g+=7,k>>>=7),(k&15)===0&&(g+=4,k>>>=4),(k&3)===0&&(g+=2,k>>>=2),(k&1)===0&&g++,g},U.prototype.bitLength=function(){var j=this.words[this.length-1],k=this._countBits(j);return(this.length-1)*26+k};function H(j){for(var k=new Array(j.bitLength()),g=0;g>>N}return k}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var j=0,k=0;kj.length?this.clone().ior(j):j.clone().ior(this)},U.prototype.uor=function(j){return this.length>j.length?this.clone().iuor(j):j.clone().iuor(this)},U.prototype.iuand=function(j){var k;this.length>j.length?k=j:k=this;for(var g=0;gj.length?this.clone().iand(j):j.clone().iand(this)},U.prototype.uand=function(j){return this.length>j.length?this.clone().iuand(j):j.clone().iuand(this)},U.prototype.iuxor=function(j){var k,g;this.length>j.length?(k=this,g=j):(k=j,g=this);for(var _=0;_j.length?this.clone().ixor(j):j.clone().ixor(this)},U.prototype.uxor=function(j){return this.length>j.length?this.clone().iuxor(j):j.clone().iuxor(this)},U.prototype.inotn=function(j){G(typeof j=="number"&&j>=0);var k=Math.ceil(j/26)|0,g=j%26;this._expand(k),g>0&&k--;for(var _=0;_0&&(this.words[_]=~this.words[_]&67108863>>26-g),this.strip()},U.prototype.notn=function(j){return this.clone().inotn(j)},U.prototype.setn=function(j,k){G(typeof j=="number"&&j>=0);var g=j/26|0,_=j%26;return this._expand(g+1),k?this.words[g]=this.words[g]|1<<_:this.words[g]=this.words[g]&~(1<<_),this.strip()},U.prototype.iadd=function(j){var k;if(this.negative!==0&&j.negative===0)return this.negative=0,k=this.isub(j),this.negative^=1,this._normSign();if(this.negative===0&&j.negative!==0)return j.negative=0,k=this.isub(j),j.negative=1,k._normSign();var g,_;this.length>j.length?(g=this,_=j):(g=j,_=this);for(var N=0,x=0;x<_.length;x++)k=(g.words[x]|0)+(_.words[x]|0)+N,this.words[x]=k&67108863,N=k>>>26;for(;N!==0&&x>>26;if(this.length=g.length,N!==0)this.words[this.length]=N,this.length++;else if(g!==this)for(;xj.length?this.clone().iadd(j):j.clone().iadd(this)},U.prototype.isub=function(j){if(j.negative!==0){j.negative=0;var k=this.iadd(j);return j.negative=1,k._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(j),this.negative=1,this._normSign();var g=this.cmp(j);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var _,N;g>0?(_=this,N=j):(_=j,N=this);for(var x=0,B=0;B>26,this.words[B]=k&67108863;for(;x!==0&&B<_.length;B++)k=(_.words[B]|0)+x,x=k>>26,this.words[B]=k&67108863;if(x===0&&B<_.length&&_!==this)for(;B<_.length;B++)this.words[B]=_.words[B];return this.length=Math.max(this.length,B),_!==this&&(this.negative=1),this.strip()},U.prototype.sub=function(j){return this.clone().isub(j)};function W(j,k,g){g.negative=k.negative^j.negative;var _=j.length+k.length|0;g.length=_,_=_-1|0;var N=j.words[0]|0,x=k.words[0]|0,B=N*x,y=B&67108863,w=B/67108864|0;g.words[0]=y;for(var p=1;p<_;p++){for(var f=w>>>26,c=w&67108863,h=Math.min(p,k.length-1),d=Math.max(0,p-j.length+1);d<=h;d++){var b=p-d|0;N=j.words[b]|0,x=k.words[d]|0,B=N*x+c,f+=B/67108864|0,c=B&67108863}g.words[p]=c|0,w=f|0}return w!==0?g.words[p]=w|0:g.length--,g.strip()}var E=function(j,k,g){var _=j.words,N=k.words,x=g.words,B=0,y,w,p,f=_[0]|0,c=f&8191,h=f>>>13,d=_[1]|0,b=d&8191,l=d>>>13,o=_[2]|0,u=o&8191,n=o>>>13,s=_[3]|0,t=s&8191,m=s>>>13,a=_[4]|0,e=a&8191,r=a>>>13,i=_[5]|0,$0=i&8191,Q0=i>>>13,Y0=_[6]|0,Z0=Y0&8191,G0=Y0>>>13,V0=_[7]|0,U0=V0&8191,X0=V0>>>13,K0=_[8]|0,I0=K0&8191,O0=K0>>>13,J0=_[9]|0,F0=J0&8191,A0=J0>>>13,H0=N[0]|0,W0=H0&8191,E0=H0>>>13,T0=N[1]|0,D0=T0&8191,C0=T0>>>13,L0=N[2]|0,R0=L0&8191,P0=L0>>>13,z0=N[3]|0,M0=z0&8191,S0=z0>>>13,v0=N[4]|0,q0=v0&8191,j0=v0>>>13,k0=N[5]|0,g0=k0&8191,_0=k0>>>13,N0=N[6]|0,x0=N0&8191,B0=N0>>>13,y0=N[7]|0,w0=y0&8191,p0=y0>>>13,f0=N[8]|0,c0=f0&8191,h0=f0>>>13,d0=N[9]|0,b0=d0&8191,l0=d0>>>13;g.negative=j.negative^k.negative,g.length=19,y=Math.imul(c,W0),w=Math.imul(c,E0),w=w+Math.imul(h,W0)|0,p=Math.imul(h,E0);var o0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(o0>>>26)|0,o0&=67108863,y=Math.imul(b,W0),w=Math.imul(b,E0),w=w+Math.imul(l,W0)|0,p=Math.imul(l,E0),y=y+Math.imul(c,D0)|0,w=w+Math.imul(c,C0)|0,w=w+Math.imul(h,D0)|0,p=p+Math.imul(h,C0)|0;var u0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(u0>>>26)|0,u0&=67108863,y=Math.imul(u,W0),w=Math.imul(u,E0),w=w+Math.imul(n,W0)|0,p=Math.imul(n,E0),y=y+Math.imul(b,D0)|0,w=w+Math.imul(b,C0)|0,w=w+Math.imul(l,D0)|0,p=p+Math.imul(l,C0)|0,y=y+Math.imul(c,R0)|0,w=w+Math.imul(c,P0)|0,w=w+Math.imul(h,R0)|0,p=p+Math.imul(h,P0)|0;var n0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(n0>>>26)|0,n0&=67108863,y=Math.imul(t,W0),w=Math.imul(t,E0),w=w+Math.imul(m,W0)|0,p=Math.imul(m,E0),y=y+Math.imul(u,D0)|0,w=w+Math.imul(u,C0)|0,w=w+Math.imul(n,D0)|0,p=p+Math.imul(n,C0)|0,y=y+Math.imul(b,R0)|0,w=w+Math.imul(b,P0)|0,w=w+Math.imul(l,R0)|0,p=p+Math.imul(l,P0)|0,y=y+Math.imul(c,M0)|0,w=w+Math.imul(c,S0)|0,w=w+Math.imul(h,M0)|0,p=p+Math.imul(h,S0)|0;var s0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(s0>>>26)|0,s0&=67108863,y=Math.imul(e,W0),w=Math.imul(e,E0),w=w+Math.imul(r,W0)|0,p=Math.imul(r,E0),y=y+Math.imul(t,D0)|0,w=w+Math.imul(t,C0)|0,w=w+Math.imul(m,D0)|0,p=p+Math.imul(m,C0)|0,y=y+Math.imul(u,R0)|0,w=w+Math.imul(u,P0)|0,w=w+Math.imul(n,R0)|0,p=p+Math.imul(n,P0)|0,y=y+Math.imul(b,M0)|0,w=w+Math.imul(b,S0)|0,w=w+Math.imul(l,M0)|0,p=p+Math.imul(l,S0)|0,y=y+Math.imul(c,q0)|0,w=w+Math.imul(c,j0)|0,w=w+Math.imul(h,q0)|0,p=p+Math.imul(h,j0)|0;var t0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(t0>>>26)|0,t0&=67108863,y=Math.imul($0,W0),w=Math.imul($0,E0),w=w+Math.imul(Q0,W0)|0,p=Math.imul(Q0,E0),y=y+Math.imul(e,D0)|0,w=w+Math.imul(e,C0)|0,w=w+Math.imul(r,D0)|0,p=p+Math.imul(r,C0)|0,y=y+Math.imul(t,R0)|0,w=w+Math.imul(t,P0)|0,w=w+Math.imul(m,R0)|0,p=p+Math.imul(m,P0)|0,y=y+Math.imul(u,M0)|0,w=w+Math.imul(u,S0)|0,w=w+Math.imul(n,M0)|0,p=p+Math.imul(n,S0)|0,y=y+Math.imul(b,q0)|0,w=w+Math.imul(b,j0)|0,w=w+Math.imul(l,q0)|0,p=p+Math.imul(l,j0)|0,y=y+Math.imul(c,g0)|0,w=w+Math.imul(c,_0)|0,w=w+Math.imul(h,g0)|0,p=p+Math.imul(h,_0)|0;var m0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(m0>>>26)|0,m0&=67108863,y=Math.imul(Z0,W0),w=Math.imul(Z0,E0),w=w+Math.imul(G0,W0)|0,p=Math.imul(G0,E0),y=y+Math.imul($0,D0)|0,w=w+Math.imul($0,C0)|0,w=w+Math.imul(Q0,D0)|0,p=p+Math.imul(Q0,C0)|0,y=y+Math.imul(e,R0)|0,w=w+Math.imul(e,P0)|0,w=w+Math.imul(r,R0)|0,p=p+Math.imul(r,P0)|0,y=y+Math.imul(t,M0)|0,w=w+Math.imul(t,S0)|0,w=w+Math.imul(m,M0)|0,p=p+Math.imul(m,S0)|0,y=y+Math.imul(u,q0)|0,w=w+Math.imul(u,j0)|0,w=w+Math.imul(n,q0)|0,p=p+Math.imul(n,j0)|0,y=y+Math.imul(b,g0)|0,w=w+Math.imul(b,_0)|0,w=w+Math.imul(l,g0)|0,p=p+Math.imul(l,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,B0)|0,w=w+Math.imul(h,x0)|0,p=p+Math.imul(h,B0)|0;var a0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(a0>>>26)|0,a0&=67108863,y=Math.imul(U0,W0),w=Math.imul(U0,E0),w=w+Math.imul(X0,W0)|0,p=Math.imul(X0,E0),y=y+Math.imul(Z0,D0)|0,w=w+Math.imul(Z0,C0)|0,w=w+Math.imul(G0,D0)|0,p=p+Math.imul(G0,C0)|0,y=y+Math.imul($0,R0)|0,w=w+Math.imul($0,P0)|0,w=w+Math.imul(Q0,R0)|0,p=p+Math.imul(Q0,P0)|0,y=y+Math.imul(e,M0)|0,w=w+Math.imul(e,S0)|0,w=w+Math.imul(r,M0)|0,p=p+Math.imul(r,S0)|0,y=y+Math.imul(t,q0)|0,w=w+Math.imul(t,j0)|0,w=w+Math.imul(m,q0)|0,p=p+Math.imul(m,j0)|0,y=y+Math.imul(u,g0)|0,w=w+Math.imul(u,_0)|0,w=w+Math.imul(n,g0)|0,p=p+Math.imul(n,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,B0)|0,w=w+Math.imul(l,x0)|0,p=p+Math.imul(l,B0)|0,y=y+Math.imul(c,w0)|0,w=w+Math.imul(c,p0)|0,w=w+Math.imul(h,w0)|0,p=p+Math.imul(h,p0)|0;var e0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(e0>>>26)|0,e0&=67108863,y=Math.imul(I0,W0),w=Math.imul(I0,E0),w=w+Math.imul(O0,W0)|0,p=Math.imul(O0,E0),y=y+Math.imul(U0,D0)|0,w=w+Math.imul(U0,C0)|0,w=w+Math.imul(X0,D0)|0,p=p+Math.imul(X0,C0)|0,y=y+Math.imul(Z0,R0)|0,w=w+Math.imul(Z0,P0)|0,w=w+Math.imul(G0,R0)|0,p=p+Math.imul(G0,P0)|0,y=y+Math.imul($0,M0)|0,w=w+Math.imul($0,S0)|0,w=w+Math.imul(Q0,M0)|0,p=p+Math.imul(Q0,S0)|0,y=y+Math.imul(e,q0)|0,w=w+Math.imul(e,j0)|0,w=w+Math.imul(r,q0)|0,p=p+Math.imul(r,j0)|0,y=y+Math.imul(t,g0)|0,w=w+Math.imul(t,_0)|0,w=w+Math.imul(m,g0)|0,p=p+Math.imul(m,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,B0)|0,w=w+Math.imul(n,x0)|0,p=p+Math.imul(n,B0)|0,y=y+Math.imul(b,w0)|0,w=w+Math.imul(b,p0)|0,w=w+Math.imul(l,w0)|0,p=p+Math.imul(l,p0)|0,y=y+Math.imul(c,c0)|0,w=w+Math.imul(c,h0)|0,w=w+Math.imul(h,c0)|0,p=p+Math.imul(h,h0)|0;var r0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(r0>>>26)|0,r0&=67108863,y=Math.imul(F0,W0),w=Math.imul(F0,E0),w=w+Math.imul(A0,W0)|0,p=Math.imul(A0,E0),y=y+Math.imul(I0,D0)|0,w=w+Math.imul(I0,C0)|0,w=w+Math.imul(O0,D0)|0,p=p+Math.imul(O0,C0)|0,y=y+Math.imul(U0,R0)|0,w=w+Math.imul(U0,P0)|0,w=w+Math.imul(X0,R0)|0,p=p+Math.imul(X0,P0)|0,y=y+Math.imul(Z0,M0)|0,w=w+Math.imul(Z0,S0)|0,w=w+Math.imul(G0,M0)|0,p=p+Math.imul(G0,S0)|0,y=y+Math.imul($0,q0)|0,w=w+Math.imul($0,j0)|0,w=w+Math.imul(Q0,q0)|0,p=p+Math.imul(Q0,j0)|0,y=y+Math.imul(e,g0)|0,w=w+Math.imul(e,_0)|0,w=w+Math.imul(r,g0)|0,p=p+Math.imul(r,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,B0)|0,w=w+Math.imul(m,x0)|0,p=p+Math.imul(m,B0)|0,y=y+Math.imul(u,w0)|0,w=w+Math.imul(u,p0)|0,w=w+Math.imul(n,w0)|0,p=p+Math.imul(n,p0)|0,y=y+Math.imul(b,c0)|0,w=w+Math.imul(b,h0)|0,w=w+Math.imul(l,c0)|0,p=p+Math.imul(l,h0)|0,y=y+Math.imul(c,b0)|0,w=w+Math.imul(c,l0)|0,w=w+Math.imul(h,b0)|0,p=p+Math.imul(h,l0)|0;var i0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(i0>>>26)|0,i0&=67108863,y=Math.imul(F0,D0),w=Math.imul(F0,C0),w=w+Math.imul(A0,D0)|0,p=Math.imul(A0,C0),y=y+Math.imul(I0,R0)|0,w=w+Math.imul(I0,P0)|0,w=w+Math.imul(O0,R0)|0,p=p+Math.imul(O0,P0)|0,y=y+Math.imul(U0,M0)|0,w=w+Math.imul(U0,S0)|0,w=w+Math.imul(X0,M0)|0,p=p+Math.imul(X0,S0)|0,y=y+Math.imul(Z0,q0)|0,w=w+Math.imul(Z0,j0)|0,w=w+Math.imul(G0,q0)|0,p=p+Math.imul(G0,j0)|0,y=y+Math.imul($0,g0)|0,w=w+Math.imul($0,_0)|0,w=w+Math.imul(Q0,g0)|0,p=p+Math.imul(Q0,_0)|0,y=y+Math.imul(e,x0)|0,w=w+Math.imul(e,B0)|0,w=w+Math.imul(r,x0)|0,p=p+Math.imul(r,B0)|0,y=y+Math.imul(t,w0)|0,w=w+Math.imul(t,p0)|0,w=w+Math.imul(m,w0)|0,p=p+Math.imul(m,p0)|0,y=y+Math.imul(u,c0)|0,w=w+Math.imul(u,h0)|0,w=w+Math.imul(n,c0)|0,p=p+Math.imul(n,h0)|0,y=y+Math.imul(b,b0)|0,w=w+Math.imul(b,l0)|0,w=w+Math.imul(l,b0)|0,p=p+Math.imul(l,l0)|0;var $$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+($$>>>26)|0,$$&=67108863,y=Math.imul(F0,R0),w=Math.imul(F0,P0),w=w+Math.imul(A0,R0)|0,p=Math.imul(A0,P0),y=y+Math.imul(I0,M0)|0,w=w+Math.imul(I0,S0)|0,w=w+Math.imul(O0,M0)|0,p=p+Math.imul(O0,S0)|0,y=y+Math.imul(U0,q0)|0,w=w+Math.imul(U0,j0)|0,w=w+Math.imul(X0,q0)|0,p=p+Math.imul(X0,j0)|0,y=y+Math.imul(Z0,g0)|0,w=w+Math.imul(Z0,_0)|0,w=w+Math.imul(G0,g0)|0,p=p+Math.imul(G0,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,B0)|0,w=w+Math.imul(Q0,x0)|0,p=p+Math.imul(Q0,B0)|0,y=y+Math.imul(e,w0)|0,w=w+Math.imul(e,p0)|0,w=w+Math.imul(r,w0)|0,p=p+Math.imul(r,p0)|0,y=y+Math.imul(t,c0)|0,w=w+Math.imul(t,h0)|0,w=w+Math.imul(m,c0)|0,p=p+Math.imul(m,h0)|0,y=y+Math.imul(u,b0)|0,w=w+Math.imul(u,l0)|0,w=w+Math.imul(n,b0)|0,p=p+Math.imul(n,l0)|0;var Q$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,y=Math.imul(F0,M0),w=Math.imul(F0,S0),w=w+Math.imul(A0,M0)|0,p=Math.imul(A0,S0),y=y+Math.imul(I0,q0)|0,w=w+Math.imul(I0,j0)|0,w=w+Math.imul(O0,q0)|0,p=p+Math.imul(O0,j0)|0,y=y+Math.imul(U0,g0)|0,w=w+Math.imul(U0,_0)|0,w=w+Math.imul(X0,g0)|0,p=p+Math.imul(X0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,B0)|0,w=w+Math.imul(G0,x0)|0,p=p+Math.imul(G0,B0)|0,y=y+Math.imul($0,w0)|0,w=w+Math.imul($0,p0)|0,w=w+Math.imul(Q0,w0)|0,p=p+Math.imul(Q0,p0)|0,y=y+Math.imul(e,c0)|0,w=w+Math.imul(e,h0)|0,w=w+Math.imul(r,c0)|0,p=p+Math.imul(r,h0)|0,y=y+Math.imul(t,b0)|0,w=w+Math.imul(t,l0)|0,w=w+Math.imul(m,b0)|0,p=p+Math.imul(m,l0)|0;var Y$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,y=Math.imul(F0,q0),w=Math.imul(F0,j0),w=w+Math.imul(A0,q0)|0,p=Math.imul(A0,j0),y=y+Math.imul(I0,g0)|0,w=w+Math.imul(I0,_0)|0,w=w+Math.imul(O0,g0)|0,p=p+Math.imul(O0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,B0)|0,w=w+Math.imul(X0,x0)|0,p=p+Math.imul(X0,B0)|0,y=y+Math.imul(Z0,w0)|0,w=w+Math.imul(Z0,p0)|0,w=w+Math.imul(G0,w0)|0,p=p+Math.imul(G0,p0)|0,y=y+Math.imul($0,c0)|0,w=w+Math.imul($0,h0)|0,w=w+Math.imul(Q0,c0)|0,p=p+Math.imul(Q0,h0)|0,y=y+Math.imul(e,b0)|0,w=w+Math.imul(e,l0)|0,w=w+Math.imul(r,b0)|0,p=p+Math.imul(r,l0)|0;var Z$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,y=Math.imul(F0,g0),w=Math.imul(F0,_0),w=w+Math.imul(A0,g0)|0,p=Math.imul(A0,_0),y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,B0)|0,w=w+Math.imul(O0,x0)|0,p=p+Math.imul(O0,B0)|0,y=y+Math.imul(U0,w0)|0,w=w+Math.imul(U0,p0)|0,w=w+Math.imul(X0,w0)|0,p=p+Math.imul(X0,p0)|0,y=y+Math.imul(Z0,c0)|0,w=w+Math.imul(Z0,h0)|0,w=w+Math.imul(G0,c0)|0,p=p+Math.imul(G0,h0)|0,y=y+Math.imul($0,b0)|0,w=w+Math.imul($0,l0)|0,w=w+Math.imul(Q0,b0)|0,p=p+Math.imul(Q0,l0)|0;var G$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(G$>>>26)|0,G$&=67108863,y=Math.imul(F0,x0),w=Math.imul(F0,B0),w=w+Math.imul(A0,x0)|0,p=Math.imul(A0,B0),y=y+Math.imul(I0,w0)|0,w=w+Math.imul(I0,p0)|0,w=w+Math.imul(O0,w0)|0,p=p+Math.imul(O0,p0)|0,y=y+Math.imul(U0,c0)|0,w=w+Math.imul(U0,h0)|0,w=w+Math.imul(X0,c0)|0,p=p+Math.imul(X0,h0)|0,y=y+Math.imul(Z0,b0)|0,w=w+Math.imul(Z0,l0)|0,w=w+Math.imul(G0,b0)|0,p=p+Math.imul(G0,l0)|0;var V$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(V$>>>26)|0,V$&=67108863,y=Math.imul(F0,w0),w=Math.imul(F0,p0),w=w+Math.imul(A0,w0)|0,p=Math.imul(A0,p0),y=y+Math.imul(I0,c0)|0,w=w+Math.imul(I0,h0)|0,w=w+Math.imul(O0,c0)|0,p=p+Math.imul(O0,h0)|0,y=y+Math.imul(U0,b0)|0,w=w+Math.imul(U0,l0)|0,w=w+Math.imul(X0,b0)|0,p=p+Math.imul(X0,l0)|0;var U$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(U$>>>26)|0,U$&=67108863,y=Math.imul(F0,c0),w=Math.imul(F0,h0),w=w+Math.imul(A0,c0)|0,p=Math.imul(A0,h0),y=y+Math.imul(I0,b0)|0,w=w+Math.imul(I0,l0)|0,w=w+Math.imul(O0,b0)|0,p=p+Math.imul(O0,l0)|0;var X$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(X$>>>26)|0,X$&=67108863,y=Math.imul(F0,b0),w=Math.imul(F0,l0),w=w+Math.imul(A0,b0)|0,p=Math.imul(A0,l0);var K$=(B+y|0)+((w&8191)<<13)|0;return B=(p+(w>>>13)|0)+(K$>>>26)|0,K$&=67108863,x[0]=o0,x[1]=u0,x[2]=n0,x[3]=s0,x[4]=t0,x[5]=m0,x[6]=a0,x[7]=e0,x[8]=r0,x[9]=i0,x[10]=$$,x[11]=Q$,x[12]=Y$,x[13]=Z$,x[14]=G$,x[15]=V$,x[16]=U$,x[17]=X$,x[18]=K$,B!==0&&(x[19]=B,g.length++),g};Math.imul||(E=W);function T(j,k,g){g.negative=k.negative^j.negative,g.length=j.length+k.length;for(var _=0,N=0,x=0;x>>26)|0,N+=B>>>26,B&=67108863}g.words[x]=y,_=B,B=N}return _!==0?g.words[x]=_:g.length--,g.strip()}function D(j,k,g){var _=new C;return _.mulp(j,k,g)}U.prototype.mulTo=function(j,k){var g,_=this.length+j.length;return this.length===10&&j.length===10?g=E(this,j,k):_<63?g=W(this,j,k):_<1024?g=T(this,j,k):g=D(this,j,k),g};function C(j,k){this.x=j,this.y=k}C.prototype.makeRBT=function(j){for(var k=new Array(j),g=U.prototype._countBits(j)-1,_=0;_>=1;return _},C.prototype.permute=function(j,k,g,_,N,x){for(var B=0;B>>1)N++;return 1<>>13,g[2*x+1]=N&8191,N=N>>>13;for(x=2*k;x<_;++x)g[x]=0;G(N===0),G((N&-8192)===0)},C.prototype.stub=function(j){for(var k=new Array(j),g=0;g>=26,k+=_/67108864|0,k+=N>>>26,this.words[g]=N&67108863}return k!==0&&(this.words[g]=k,this.length++),this},U.prototype.muln=function(j){return this.clone().imuln(j)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(j){var k=H(j);if(k.length===0)return new U(1);for(var g=this,_=0;_=0);var k=j%26,g=(j-k)/26,_=67108863>>>26-k<<26-k,N;if(k!==0){var x=0;for(N=0;N>>26-k}x&&(this.words[N]=x,this.length++)}if(g!==0){for(N=this.length-1;N>=0;N--)this.words[N+g]=this.words[N];for(N=0;N=0);var _;k?_=(k-k%26)/26:_=0;var N=j%26,x=Math.min((j-N)/26,this.length),B=67108863^67108863>>>N<x)for(this.length-=x,w=0;w=0&&(p!==0||w>=_);w--){var f=this.words[w]|0;this.words[w]=p<<26-N|f>>>N,p=f&B}return y&&p!==0&&(y.words[y.length++]=p),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},U.prototype.ishrn=function(j,k,g){return G(this.negative===0),this.iushrn(j,k,g)},U.prototype.shln=function(j){return this.clone().ishln(j)},U.prototype.ushln=function(j){return this.clone().iushln(j)},U.prototype.shrn=function(j){return this.clone().ishrn(j)},U.prototype.ushrn=function(j){return this.clone().iushrn(j)},U.prototype.testn=function(j){G(typeof j=="number"&&j>=0);var k=j%26,g=(j-k)/26,_=1<=0);var k=j%26,g=(j-k)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(k!==0&&g++,this.length=Math.min(g,this.length),k!==0){var _=67108863^67108863>>>k<=67108864;k++)this.words[k]-=67108864,k===this.length-1?this.words[k+1]=1:this.words[k+1]++;return this.length=Math.max(this.length,k+1),this},U.prototype.isubn=function(j){if(G(typeof j=="number"),G(j<67108864),j<0)return this.iaddn(-j);if(this.negative!==0)return this.negative=0,this.iaddn(j),this.negative=1,this;if(this.words[0]-=j,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var k=0;k>26)-(y/67108864|0),this.words[N+g]=x&67108863}for(;N>26,this.words[N+g]=x&67108863;if(B===0)return this.strip();for(G(B===-1),B=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},U.prototype._wordDiv=function(j,k){var g=this.length-j.length,_=this.clone(),N=j,x=N.words[N.length-1]|0,B=this._countBits(x);g=26-B,g!==0&&(N=N.ushln(g),_.iushln(g),x=N.words[N.length-1]|0);var y=_.length-N.length,w;if(k!=="mod"){w=new U(null),w.length=y+1,w.words=new Array(w.length);for(var p=0;p=0;c--){var h=(_.words[N.length+c]|0)*67108864+(_.words[N.length+c-1]|0);for(h=Math.min(h/x|0,67108863),_._ishlnsubmul(N,h,c);_.negative!==0;)h--,_.negative=0,_._ishlnsubmul(N,1,c),_.isZero()||(_.negative^=1);w&&(w.words[c]=h)}return w&&w.strip(),_.strip(),k!=="div"&&g!==0&&_.iushrn(g),{div:w||null,mod:_}},U.prototype.divmod=function(j,k,g){if(G(!j.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var _,N,x;return this.negative!==0&&j.negative===0?(x=this.neg().divmod(j,k),k!=="mod"&&(_=x.div.neg()),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.iadd(j)),{div:_,mod:N}):this.negative===0&&j.negative!==0?(x=this.divmod(j.neg(),k),k!=="mod"&&(_=x.div.neg()),{div:_,mod:x.mod}):(this.negative&j.negative)!==0?(x=this.neg().divmod(j.neg(),k),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.isub(j)),{div:x.div,mod:N}):j.length>this.length||this.cmp(j)<0?{div:new U(0),mod:this}:j.length===1?k==="div"?{div:this.divn(j.words[0]),mod:null}:k==="mod"?{div:null,mod:new U(this.modn(j.words[0]))}:{div:this.divn(j.words[0]),mod:new U(this.modn(j.words[0]))}:this._wordDiv(j,k)},U.prototype.div=function(j){return this.divmod(j,"div",!1).div},U.prototype.mod=function(j){return this.divmod(j,"mod",!1).mod},U.prototype.umod=function(j){return this.divmod(j,"mod",!0).mod},U.prototype.divRound=function(j){var k=this.divmod(j);if(k.mod.isZero())return k.div;var g=k.div.negative!==0?k.mod.isub(j):k.mod,_=j.ushrn(1),N=j.andln(1),x=g.cmp(_);return x<0||N===1&&x===0?k.div:k.div.negative!==0?k.div.isubn(1):k.div.iaddn(1)},U.prototype.modn=function(j){G(j<=67108863);for(var k=(1<<26)%j,g=0,_=this.length-1;_>=0;_--)g=(k*g+(this.words[_]|0))%j;return g},U.prototype.idivn=function(j){G(j<=67108863);for(var k=0,g=this.length-1;g>=0;g--){var _=(this.words[g]|0)+k*67108864;this.words[g]=_/j|0,k=_%j}return this.strip()},U.prototype.divn=function(j){return this.clone().idivn(j)},U.prototype.egcd=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=new U(0),B=new U(1),y=0;k.isEven()&&g.isEven();)k.iushrn(1),g.iushrn(1),++y;for(var w=g.clone(),p=k.clone();!k.isZero();){for(var f=0,c=1;(k.words[0]&c)===0&&f<26;++f,c<<=1);if(f>0)for(k.iushrn(f);f-- >0;)(_.isOdd()||N.isOdd())&&(_.iadd(w),N.isub(p)),_.iushrn(1),N.iushrn(1);for(var h=0,d=1;(g.words[0]&d)===0&&h<26;++h,d<<=1);if(h>0)for(g.iushrn(h);h-- >0;)(x.isOdd()||B.isOdd())&&(x.iadd(w),B.isub(p)),x.iushrn(1),B.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(x),N.isub(B)):(g.isub(k),x.isub(_),B.isub(N))}return{a:x,b:B,gcd:g.iushln(y)}},U.prototype._invmp=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=g.clone();k.cmpn(1)>0&&g.cmpn(1)>0;){for(var B=0,y=1;(k.words[0]&y)===0&&B<26;++B,y<<=1);if(B>0)for(k.iushrn(B);B-- >0;)_.isOdd()&&_.iadd(x),_.iushrn(1);for(var w=0,p=1;(g.words[0]&p)===0&&w<26;++w,p<<=1);if(w>0)for(g.iushrn(w);w-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(N)):(g.isub(k),N.isub(_))}var f;return k.cmpn(1)===0?f=_:f=N,f.cmpn(0)<0&&f.iadd(j),f},U.prototype.gcd=function(j){if(this.isZero())return j.abs();if(j.isZero())return this.abs();var k=this.clone(),g=j.clone();k.negative=0,g.negative=0;for(var _=0;k.isEven()&&g.isEven();_++)k.iushrn(1),g.iushrn(1);do{for(;k.isEven();)k.iushrn(1);for(;g.isEven();)g.iushrn(1);var N=k.cmp(g);if(N<0){var x=k;k=g,g=x}else if(N===0||g.cmpn(1)===0)break;k.isub(g)}while(!0);return g.iushln(_)},U.prototype.invm=function(j){return this.egcd(j).a.umod(j)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(j){return this.words[0]&j},U.prototype.bincn=function(j){G(typeof j=="number");var k=j%26,g=(j-k)/26,_=1<>>26,B&=67108863,this.words[x]=B}return N!==0&&(this.words[x]=N,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(j){var k=j<0;if(this.negative!==0&&!k)return-1;if(this.negative===0&&k)return 1;this.strip();var g;if(this.length>1)g=1;else{k&&(j=-j),G(j<=67108863,"Number is too big");var _=this.words[0]|0;g=_===j?0:_j.length)return 1;if(this.length=0;g--){var _=this.words[g]|0,N=j.words[g]|0;if(_!==N){_N&&(k=1);break}}return k},U.prototype.gtn=function(j){return this.cmpn(j)===1},U.prototype.gt=function(j){return this.cmp(j)===1},U.prototype.gten=function(j){return this.cmpn(j)>=0},U.prototype.gte=function(j){return this.cmp(j)>=0},U.prototype.ltn=function(j){return this.cmpn(j)===-1},U.prototype.lt=function(j){return this.cmp(j)===-1},U.prototype.lten=function(j){return this.cmpn(j)<=0},U.prototype.lte=function(j){return this.cmp(j)<=0},U.prototype.eqn=function(j){return this.cmpn(j)===0},U.prototype.eq=function(j){return this.cmp(j)===0},U.red=function(j){return new v(j)},U.prototype.toRed=function(j){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),j.convertTo(this)._forceRed(j)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(j){return this.red=j,this},U.prototype.forceRed=function(j){return G(!this.red,"Already a number in reduction context"),this._forceRed(j)},U.prototype.redAdd=function(j){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,j)},U.prototype.redIAdd=function(j){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,j)},U.prototype.redSub=function(j){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,j)},U.prototype.redISub=function(j){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,j)},U.prototype.redShl=function(j){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,j)},U.prototype.redMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.mul(this,j)},U.prototype.redIMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.imul(this,j)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(j){return G(this.red&&!j.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,j)};var L={k256:null,p224:null,p192:null,p25519:null};function R(j,k){this.name=j,this.p=new U(k,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}R.prototype._tmp=function(){var j=new U(null);return j.words=new Array(Math.ceil(this.n/13)),j},R.prototype.ireduce=function(j){var k=j,g;do this.split(k,this.tmp),k=this.imulK(k),k=k.iadd(this.tmp),g=k.bitLength();while(g>this.n);var _=g0?k.isub(this.p):k.strip!==void 0?k.strip():k._strip(),k},R.prototype.split=function(j,k){j.iushrn(this.n,0,k)},R.prototype.imulK=function(j){return j.imul(this.k)};function P(){R.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(P,R),P.prototype.split=function(j,k){for(var g=4194303,_=Math.min(j.length,9),N=0;N<_;N++)k.words[N]=j.words[N];if(k.length=_,j.length<=9){j.words[0]=0,j.length=1;return}var x=j.words[9];for(k.words[k.length++]=x&g,N=10;N>>22,x=B}x>>>=22,j.words[N-10]=x,x===0&&j.length>10?j.length-=10:j.length-=9},P.prototype.imulK=function(j){j.words[j.length]=0,j.words[j.length+1]=0,j.length+=2;for(var k=0,g=0;g>>=26,j.words[g]=N,k=_}return k!==0&&(j.words[j.length++]=k),j},U._prime=function(j){if(L[j])return L[j];var k;if(j==="k256")k=new P;else if(j==="p224")k=new z;else if(j==="p192")k=new M;else if(j==="p25519")k=new S;else throw new Error("Unknown prime "+j);return L[j]=k,k};function v(j){if(typeof j=="string"){var k=U._prime(j);this.m=k.p,this.prime=k}else G(j.gtn(1),"modulus must be greater than 1"),this.m=j,this.prime=null}v.prototype._verify1=function(j){G(j.negative===0,"red works only with positives"),G(j.red,"red works only with red numbers")},v.prototype._verify2=function(j,k){G((j.negative|k.negative)===0,"red works only with positives"),G(j.red&&j.red===k.red,"red works only with red numbers")},v.prototype.imod=function(j){return this.prime?this.prime.ireduce(j)._forceRed(this):j.umod(this.m)._forceRed(this)},v.prototype.neg=function(j){return j.isZero()?j.clone():this.m.sub(j)._forceRed(this)},v.prototype.add=function(j,k){this._verify2(j,k);var g=j.add(k);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},v.prototype.iadd=function(j,k){this._verify2(j,k);var g=j.iadd(k);return g.cmp(this.m)>=0&&g.isub(this.m),g},v.prototype.sub=function(j,k){this._verify2(j,k);var g=j.sub(k);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},v.prototype.isub=function(j,k){this._verify2(j,k);var g=j.isub(k);return g.cmpn(0)<0&&g.iadd(this.m),g},v.prototype.shl=function(j,k){return this._verify1(j),this.imod(j.ushln(k))},v.prototype.imul=function(j,k){return this._verify2(j,k),this.imod(j.imul(k))},v.prototype.mul=function(j,k){return this._verify2(j,k),this.imod(j.mul(k))},v.prototype.isqr=function(j){return this.imul(j,j.clone())},v.prototype.sqr=function(j){return this.mul(j,j)},v.prototype.sqrt=function(j){if(j.isZero())return j.clone();var k=this.m.andln(3);if(G(k%2===1),k===3){var g=this.m.add(new U(1)).iushrn(2);return this.pow(j,g)}for(var _=this.m.subn(1),N=0;!_.isZero()&&_.andln(1)===0;)N++,_.iushrn(1);G(!_.isZero());var x=new U(1).toRed(this),B=x.redNeg(),y=this.m.subn(1).iushrn(1),w=this.m.bitLength();for(w=new U(2*w*w).toRed(this);this.pow(w,y).cmp(B)!==0;)w.redIAdd(B);for(var p=this.pow(w,_),f=this.pow(j,_.addn(1).iushrn(1)),c=this.pow(j,_),h=N;c.cmp(x)!==0;){for(var d=c,b=0;d.cmp(x)!==0;b++)d=d.redSqr();G(b=0;N--){for(var p=k.words[N],f=w-1;f>=0;f--){var c=p>>f&1;if(x!==_[0]&&(x=this.sqr(x)),c===0&&B===0){y=0;continue}B<<=1,B|=c,y++,!(y!==g&&(N!==0||f!==0))&&(x=this.mul(x,_[B]),y=0,B=0)}w=26}return x},v.prototype.convertTo=function(j){var k=j.umod(this.m);return k===j?k.clone():k},v.prototype.convertFrom=function(j){var k=j.clone();return k.red=null,k},U.mont=function(j){return new q(j)};function q(j){v.call(this,j),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(q,v),q.prototype.convertTo=function(j){return this.imod(j.ushln(this.shift))},q.prototype.convertFrom=function(j){var k=this.imod(j.mul(this.rinv));return k.red=null,k},q.prototype.imul=function(j,k){if(j.isZero()||k.isZero())return j.words[0]=0,j.length=1,j;var g=j.imul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.mul=function(j,k){if(j.isZero()||k.isZero())return new U(0)._forceRed(this);var g=j.mul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.invm=function(j){var k=this.imod(j._invmp(this.m).mul(this.r2));return k._forceRed(this)}})(typeof Q>"u"||Q,$)}}),CY=q$({"node_modules/safer-buffer/safer.js"($,Q){var Y=M$,Z=F$,G={},V;for(V in Y)!Y.hasOwnProperty(V)||V==="SlowBuffer"||V==="Buffer"||(G[V]=Y[V]);var U=G.Buffer={};for(V in Z)!Z.hasOwnProperty(V)||V==="allocUnsafe"||V==="allocUnsafeSlow"||(U[V]=Z[V]);if(G.Buffer.prototype=Z.prototype,(!U.from||U.from===Uint8Array.from)&&(U.from=function(X,K,I){if(typeof X=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof X);if(X&&typeof X.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof X);return Z(X,K,I)}),U.alloc||(U.alloc=function(X,K,I){if(typeof X!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof X);if(X<0||X>=2*(1<<30))throw new RangeError('The value "'+X+'" is invalid for option "size"');var O=Z(X);return!K||K.length===0?O.fill(0):typeof I=="string"?O.fill(K,I):O.fill(K),O}),!G.kStringMaxLength)try{G.kStringMaxLength=S$}catch{}G.constants||(G.constants={MAX_LENGTH:G.kMaxLength},G.kStringMaxLength&&(G.constants.MAX_STRING_LENGTH=G.kStringMaxLength)),Q.exports=G}}),LY=q$({"node_modules/asn1.js/lib/asn1/base/reporter.js"($){var Q=_$();function Y(G){this._reporterState={obj:null,path:[],options:G||{},errors:[]}}$.Reporter=Y,Y.prototype.isError=function(G){return G instanceof Z},Y.prototype.save=function(){let G=this._reporterState;return{obj:G.obj,pathLen:G.path.length}},Y.prototype.restore=function(G){let V=this._reporterState;V.obj=G.obj,V.path=V.path.slice(0,G.pathLen)},Y.prototype.enterKey=function(G){return this._reporterState.path.push(G)},Y.prototype.exitKey=function(G){let V=this._reporterState;V.path=V.path.slice(0,G-1)},Y.prototype.leaveKey=function(G,V,U){let X=this._reporterState;this.exitKey(G),X.obj!==null&&(X.obj[V]=U)},Y.prototype.path=function(){return this._reporterState.path.join("/")},Y.prototype.enterObject=function(){let G=this._reporterState,V=G.obj;return G.obj={},V},Y.prototype.leaveObject=function(G){let V=this._reporterState,U=V.obj;return V.obj=G,U},Y.prototype.error=function(G){let V,U=this._reporterState,X=G instanceof Z;if(X?V=G:V=new Z(U.path.map(function(K){return"["+JSON.stringify(K)+"]"}).join(""),G.message||G,G.stack),!U.options.partial)throw V;return X||U.errors.push(V),V},Y.prototype.wrapResult=function(G){let V=this._reporterState;return V.options.partial?{result:this.isError(G)?null:G,errors:V.errors}:G};function Z(G,V){this.path=G,this.rethrow(V)}Q(Z,Error),Z.prototype.rethrow=function(G){if(this.message=G+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,Z),!this.stack)try{throw new Error(this.message)}catch(V){this.stack=V.stack}return this}}}),E$=q$({"node_modules/asn1.js/lib/asn1/base/buffer.js"($){var Q=_$(),Y=LY().Reporter,Z=CY().Buffer;function G(U,X){if(Y.call(this,X),!Z.isBuffer(U)){this.error("Input not Buffer");return}this.base=U,this.offset=0,this.length=U.length}Q(G,Y),$.DecoderBuffer=G,G.isDecoderBuffer=function(U){return U instanceof G?!0:typeof U=="object"&&Z.isBuffer(U.base)&&U.constructor.name==="DecoderBuffer"&&typeof U.offset=="number"&&typeof U.length=="number"&&typeof U.save=="function"&&typeof U.restore=="function"&&typeof U.isEmpty=="function"&&typeof U.readUInt8=="function"&&typeof U.skip=="function"&&typeof U.raw=="function"},G.prototype.save=function(){return{offset:this.offset,reporter:Y.prototype.save.call(this)}},G.prototype.restore=function(U){let X=new G(this.base);return X.offset=U.offset,X.length=this.offset,this.offset=U.offset,Y.prototype.restore.call(this,U.reporter),X},G.prototype.isEmpty=function(){return this.offset===this.length},G.prototype.readUInt8=function(U){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(U||"DecoderBuffer overrun")},G.prototype.skip=function(U,X){if(!(this.offset+U<=this.length))return this.error(X||"DecoderBuffer overrun");let K=new G(this.base);return K._reporterState=this._reporterState,K.offset=this.offset,K.length=this.offset+U,this.offset+=U,K},G.prototype.raw=function(U){return this.base.slice(U?U.offset:this.offset,this.length)};function V(U,X){if(Array.isArray(U))this.length=0,this.value=U.map(function(K){return V.isEncoderBuffer(K)||(K=new V(K,X)),this.length+=K.length,K},this);else if(typeof U=="number"){if(!(0<=U&&U<=255))return X.error("non-byte EncoderBuffer value");this.value=U,this.length=1}else if(typeof U=="string")this.value=U,this.length=Z.byteLength(U);else if(Z.isBuffer(U))this.value=U,this.length=U.length;else return X.error("Unsupported type: "+typeof U)}$.EncoderBuffer=V,V.isEncoderBuffer=function(U){return U instanceof V?!0:typeof U=="object"&&U.constructor.name==="EncoderBuffer"&&typeof U.length=="number"&&typeof U.join=="function"},V.prototype.join=function(U,X){return U||(U=Z.alloc(this.length)),X||(X=0),this.length===0||(Array.isArray(this.value)?this.value.forEach(function(K){K.join(U,X),X+=K.length}):(typeof this.value=="number"?U[X]=this.value:typeof this.value=="string"?U.write(this.value,X):Z.isBuffer(this.value)&&this.value.copy(U,X),X+=this.length)),U}}}),RY=q$({"node_modules/asn1.js/lib/asn1/base/node.js"($,Q){var Y=LY().Reporter,Z=E$().EncoderBuffer,G=E$().DecoderBuffer,V=ZQ(),U=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],X=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(U),K=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];function I(J,F,A){let H={};this._baseState=H,H.name=A,H.enc=J,H.parent=F||null,H.children=null,H.tag=null,H.args=null,H.reverseArgs=null,H.choice=null,H.optional=!1,H.any=!1,H.obj=!1,H.use=null,H.useDecoder=null,H.key=null,H.default=null,H.explicit=null,H.implicit=null,H.contains=null,H.parent||(H.children=[],this._wrap())}Q.exports=I;var O=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];I.prototype.clone=function(){let J=this._baseState,F={};O.forEach(function(H){F[H]=J[H]});let A=new this.constructor(F.parent);return A._baseState=F,A},I.prototype._wrap=function(){let J=this._baseState;X.forEach(function(F){this[F]=function(){let A=new this.constructor(this);return J.children.push(A),A[F].apply(A,arguments)}},this)},I.prototype._init=function(J){let F=this._baseState;V(F.parent===null),J.call(this),F.children=F.children.filter(function(A){return A._baseState.parent===this},this),V.equal(F.children.length,1,"Root node can have only one child")},I.prototype._useArgs=function(J){let F=this._baseState,A=J.filter(function(H){return H instanceof this.constructor},this);J=J.filter(function(H){return!(H instanceof this.constructor)},this),A.length!==0&&(V(F.children===null),F.children=A,A.forEach(function(H){H._baseState.parent=this},this)),J.length!==0&&(V(F.args===null),F.args=J,F.reverseArgs=J.map(function(H){if(typeof H!="object"||H.constructor!==Object)return H;let W={};return Object.keys(H).forEach(function(E){E==(E|0)&&(E|=0);let T=H[E];W[T]=E}),W}))},K.forEach(function(J){I.prototype[J]=function(){let F=this._baseState;throw new Error(J+" not implemented for encoding: "+F.enc)}}),U.forEach(function(J){I.prototype[J]=function(){let F=this._baseState,A=Array.prototype.slice.call(arguments);return V(F.tag===null),F.tag=J,this._useArgs(A),this}}),I.prototype.use=function(J){V(J);let F=this._baseState;return V(F.use===null),F.use=J,this},I.prototype.optional=function(){let J=this._baseState;return J.optional=!0,this},I.prototype.def=function(J){let F=this._baseState;return V(F.default===null),F.default=J,F.optional=!0,this},I.prototype.explicit=function(J){let F=this._baseState;return V(F.explicit===null&&F.implicit===null),F.explicit=J,this},I.prototype.implicit=function(J){let F=this._baseState;return V(F.explicit===null&&F.implicit===null),F.implicit=J,this},I.prototype.obj=function(){let J=this._baseState,F=Array.prototype.slice.call(arguments);return J.obj=!0,F.length!==0&&this._useArgs(F),this},I.prototype.key=function(J){let F=this._baseState;return V(F.key===null),F.key=J,this},I.prototype.any=function(){let J=this._baseState;return J.any=!0,this},I.prototype.choice=function(J){let F=this._baseState;return V(F.choice===null),F.choice=J,this._useArgs(Object.keys(J).map(function(A){return J[A]})),this},I.prototype.contains=function(J){let F=this._baseState;return V(F.use===null),F.contains=J,this},I.prototype._decode=function(J,F){let A=this._baseState;if(A.parent===null)return J.wrapResult(A.children[0]._decode(J,F));let H=A.default,W=!0,E=null;if(A.key!==null&&(E=J.enterKey(A.key)),A.optional){let D=null;if(A.explicit!==null?D=A.explicit:A.implicit!==null?D=A.implicit:A.tag!==null&&(D=A.tag),D===null&&!A.any){let C=J.save();try{A.choice===null?this._decodeGeneric(A.tag,J,F):this._decodeChoice(J,F),W=!0}catch{W=!1}J.restore(C)}else if(W=this._peekTag(J,D,A.any),J.isError(W))return W}let T;if(A.obj&&W&&(T=J.enterObject()),W){if(A.explicit!==null){let C=this._decodeTag(J,A.explicit);if(J.isError(C))return C;J=C}let D=J.offset;if(A.use===null&&A.choice===null){let C;A.any&&(C=J.save());let L=this._decodeTag(J,A.implicit!==null?A.implicit:A.tag,A.any);if(J.isError(L))return L;A.any?H=J.raw(C):J=L}if(F&&F.track&&A.tag!==null&&F.track(J.path(),D,J.length,"tagged"),F&&F.track&&A.tag!==null&&F.track(J.path(),J.offset,J.length,"content"),A.any||(A.choice===null?H=this._decodeGeneric(A.tag,J,F):H=this._decodeChoice(J,F)),J.isError(H))return H;if(!A.any&&A.choice===null&&A.children!==null&&A.children.forEach(function(C){C._decode(J,F)}),A.contains&&(A.tag==="octstr"||A.tag==="bitstr")){let C=new G(H);H=this._getUse(A.contains,J._reporterState.obj)._decode(C,F)}}return A.obj&&W&&(H=J.leaveObject(T)),A.key!==null&&(H!==null||W===!0)?J.leaveKey(E,A.key,H):E!==null&&J.exitKey(E),H},I.prototype._decodeGeneric=function(J,F,A){let H=this._baseState;return J==="seq"||J==="set"?null:J==="seqof"||J==="setof"?this._decodeList(F,J,H.args[0],A):/str$/.test(J)?this._decodeStr(F,J,A):J==="objid"&&H.args?this._decodeObjid(F,H.args[0],H.args[1],A):J==="objid"?this._decodeObjid(F,null,null,A):J==="gentime"||J==="utctime"?this._decodeTime(F,J,A):J==="null_"?this._decodeNull(F,A):J==="bool"?this._decodeBool(F,A):J==="objDesc"?this._decodeStr(F,J,A):J==="int"||J==="enum"?this._decodeInt(F,H.args&&H.args[0],A):H.use!==null?this._getUse(H.use,F._reporterState.obj)._decode(F,A):F.error("unknown tag: "+J)},I.prototype._getUse=function(J,F){let A=this._baseState;return A.useDecoder=this._use(J,F),V(A.useDecoder._baseState.parent===null),A.useDecoder=A.useDecoder._baseState.children[0],A.implicit!==A.useDecoder._baseState.implicit&&(A.useDecoder=A.useDecoder.clone(),A.useDecoder._baseState.implicit=A.implicit),A.useDecoder},I.prototype._decodeChoice=function(J,F){let A=this._baseState,H=null,W=!1;return Object.keys(A.choice).some(function(E){let T=J.save(),D=A.choice[E];try{let C=D._decode(J,F);if(J.isError(C))return!1;H={type:E,value:C},W=!0}catch{return J.restore(T),!1}return!0},this),W?H:J.error("Choice not matched")},I.prototype._createEncoderBuffer=function(J){return new Z(J,this.reporter)},I.prototype._encode=function(J,F,A){let H=this._baseState;if(H.default!==null&&H.default===J)return;let W=this._encodeValue(J,F,A);if(W!==void 0&&!this._skipDefault(W,F,A))return W},I.prototype._encodeValue=function(J,F,A){let H=this._baseState;if(H.parent===null)return H.children[0]._encode(J,F||new Y);let W=null;if(this.reporter=F,H.optional&&J===void 0)if(H.default!==null)J=H.default;else return;let E=null,T=!1;if(H.any)W=this._createEncoderBuffer(J);else if(H.choice)W=this._encodeChoice(J,F);else if(H.contains)E=this._getUse(H.contains,A)._encode(J,F),T=!0;else if(H.children)E=H.children.map(function(D){if(D._baseState.tag==="null_")return D._encode(null,F,J);if(D._baseState.key===null)return F.error("Child should have a key");let C=F.enterKey(D._baseState.key);if(typeof J!="object")return F.error("Child expected, but input is not object");let L=D._encode(J[D._baseState.key],F,J);return F.leaveKey(C),L},this).filter(function(D){return D}),E=this._createEncoderBuffer(E);else if(H.tag==="seqof"||H.tag==="setof"){if(!(H.args&&H.args.length===1))return F.error("Too many args for : "+H.tag);if(!Array.isArray(J))return F.error("seqof/setof, but data is not Array");let D=this.clone();D._baseState.implicit=null,E=this._createEncoderBuffer(J.map(function(C){let L=this._baseState;return this._getUse(L.args[0],J)._encode(C,F)},D))}else H.use!==null?W=this._getUse(H.use,A)._encode(J,F):(E=this._encodePrimitive(H.tag,J),T=!0);if(!H.any&&H.choice===null){let D=H.implicit!==null?H.implicit:H.tag,C=H.implicit===null?"universal":"context";D===null?H.use===null&&F.error("Tag could be omitted only for .use()"):H.use===null&&(W=this._encodeComposite(D,T,C,E))}return H.explicit!==null&&(W=this._encodeComposite(H.explicit,!1,"context",W)),W},I.prototype._encodeChoice=function(J,F){let A=this._baseState,H=A.choice[J.type];return H||V(!1,J.type+" not found in "+JSON.stringify(Object.keys(A.choice))),H._encode(J.value,F)},I.prototype._encodePrimitive=function(J,F){let A=this._baseState;if(/str$/.test(J))return this._encodeStr(F,J);if(J==="objid"&&A.args)return this._encodeObjid(F,A.reverseArgs[0],A.args[1]);if(J==="objid")return this._encodeObjid(F,null,null);if(J==="gentime"||J==="utctime")return this._encodeTime(F,J);if(J==="null_")return this._encodeNull();if(J==="int"||J==="enum")return this._encodeInt(F,A.args&&A.reverseArgs[0]);if(J==="bool")return this._encodeBool(F);if(J==="objDesc")return this._encodeStr(F,J);throw new Error("Unsupported tag: "+J)},I.prototype._isNumstr=function(J){return/^[0-9 ]*$/.test(J)},I.prototype._isPrintstr=function(J){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(J)}}}),PY=q$({"node_modules/asn1.js/lib/asn1/constants/der.js"($){function Q(Y){let Z={};return Object.keys(Y).forEach(function(G){(G|0)==G&&(G=G|0);let V=Y[G];Z[V]=G}),Z}$.tagClass={0:"universal",1:"application",2:"context",3:"private"},$.tagClassByName=Q($.tagClass),$.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},$.tagByName=Q($.tag)}}),zY=q$({"node_modules/asn1.js/lib/asn1/encoders/der.js"($,Q){var Y=_$(),Z=CY().Buffer,G=RY(),V=PY();function U(O){this.enc="der",this.name=O.name,this.entity=O,this.tree=new X,this.tree._init(O.body)}Q.exports=U,U.prototype.encode=function(O,J){return this.tree._encode(O,J).join()};function X(O){G.call(this,"der",O)}Y(X,G),X.prototype._encodeComposite=function(O,J,F,A){let H=I(O,J,F,this.reporter);if(A.length<128){let T=Z.alloc(2);return T[0]=H,T[1]=A.length,this._createEncoderBuffer([T,A])}let W=1;for(let T=A.length;T>=256;T>>=8)W++;let E=Z.alloc(2+W);E[0]=H,E[1]=128|W;for(let T=1+W,D=A.length;D>0;T--,D>>=8)E[T]=D&255;return this._createEncoderBuffer([E,A])},X.prototype._encodeStr=function(O,J){if(J==="bitstr")return this._createEncoderBuffer([O.unused|0,O.data]);if(J==="bmpstr"){let F=Z.alloc(O.length*2);for(let A=0;A=40)return this.reporter.error("Second objid identifier OOB");O.splice(0,2,O[0]*40+O[1])}let A=0;for(let E=0;E=128;T>>=7)A++}let H=Z.alloc(A),W=H.length-1;for(let E=O.length-1;E>=0;E--){let T=O[E];for(H[W--]=T&127;(T>>=7)>0;)H[W--]=128|T&127}return this._createEncoderBuffer(H)};function K(O){return O<10?"0"+O:O}X.prototype._encodeTime=function(O,J){let F,A=new Date(O);return J==="gentime"?F=[K(A.getUTCFullYear()),K(A.getUTCMonth()+1),K(A.getUTCDate()),K(A.getUTCHours()),K(A.getUTCMinutes()),K(A.getUTCSeconds()),"Z"].join(""):J==="utctime"?F=[K(A.getUTCFullYear()%100),K(A.getUTCMonth()+1),K(A.getUTCDate()),K(A.getUTCHours()),K(A.getUTCMinutes()),K(A.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+J+" time is not supported yet"),this._encodeStr(F,"octstr")},X.prototype._encodeNull=function(){return this._createEncoderBuffer("")},X.prototype._encodeInt=function(O,J){if(typeof O=="string"){if(!J)return this.reporter.error("String int or enum given, but no values map");if(!J.hasOwnProperty(O))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(O));O=J[O]}if(typeof O!="number"&&!Z.isBuffer(O)){let H=O.toArray();!O.sign&&H[0]&128&&H.unshift(0),O=Z.from(H)}if(Z.isBuffer(O)){let H=O.length;O.length===0&&H++;let W=Z.alloc(H);return O.copy(W),O.length===0&&(W[0]=0),this._createEncoderBuffer(W)}if(O<128)return this._createEncoderBuffer(O);if(O<256)return this._createEncoderBuffer([0,O]);let F=1;for(let H=O;H>=256;H>>=8)F++;let A=new Array(F);for(let H=A.length-1;H>=0;H--)A[H]=O&255,O>>=8;return A[0]&128&&A.unshift(0),this._createEncoderBuffer(Z.from(A))},X.prototype._encodeBool=function(O){return this._createEncoderBuffer(O?255:0)},X.prototype._use=function(O,J){return typeof O=="function"&&(O=O(J)),O._getEncoder("der").tree},X.prototype._skipDefault=function(O,J,F){let A=this._baseState,H;if(A.default===null)return!1;let W=O.join();if(A.defaultBuffer===void 0&&(A.defaultBuffer=this._encodeValue(A.default,J,F).join()),W.length!==A.defaultBuffer.length)return!1;for(H=0;H=31?A.error("Multi-octet tag encoding unsupported"):(J||(H|=32),H|=V.tagClassByName[F||"universal"]<<6,H)}}}),MY=q$({"node_modules/asn1.js/lib/asn1/encoders/pem.js"($,Q){var Y=_$(),Z=zY();function G(V){Z.call(this,V),this.enc="pem"}Y(G,Z),Q.exports=G,G.prototype.encode=function(V,U){let X=Z.prototype.encode.call(this,V).toString("base64"),K=["-----BEGIN "+U.label+"-----"];for(let I=0;I>6],W=(A&32)===0;if((A&31)===31){let T=A;for(A=0;(T&128)===128;){if(T=J.readUInt8(F),J.isError(T))return T;A<<=7,A|=T&127}}else A&=31;let E=U.tag[A];return{cls:H,primitive:W,tag:A,tagStr:E}}function O(J,F,A){let H=J.readUInt8(A);if(J.isError(H))return H;if(!F&&H===128)return null;if((H&128)===0)return H;let W=H&127;if(W>4)return J.error("length octect is too long");H=0;for(let E=0;E0&&L.ishrn(R),L}function W(D,C){D=H(D,C),D=D.mod(C);var L=Y.from(D.toArray());if(L.length=F)throw new Error("invalid sig")}Q.exports=X}}),dY=q$({"node_modules/browserify-sign/browser/index.js"($,Q){var Y=k$().Buffer,Z=o$(),G=_$(),V=cY(),U=hY(),X=t$();Object.keys(X).forEach(function(F){X[F].id=Y.from(X[F].id,"hex"),X[F.toLowerCase()]=X[F]});function K(F){A$.Writable.call(this);var A=X[F];if(!A)throw new Error("Unknown message digest");this._hashType=A.hash,this._hash=Z(A.hash),this._tag=A.id,this._signType=A.sign}G(K,A$.Writable),K.prototype._write=function(F,A,H){this._hash.update(F),H()},K.prototype.update=function(F,A){return typeof F=="string"&&(F=Y.from(F,A)),this._hash.update(F),this},K.prototype.sign=function(F,A){this.end();var H=this._hash.digest(),W=V(H,F,this._hashType,this._signType,this._tag);return A?W.toString(A):W};function I(F){A$.Writable.call(this);var A=X[F];if(!A)throw new Error("Unknown message digest");this._hash=Z(A.hash),this._tag=A.id,this._signType=A.sign}G(I,A$.Writable),I.prototype._write=function(F,A,H){this._hash.update(F),H()},I.prototype.update=function(F,A){return typeof F=="string"&&(F=Y.from(F,A)),this._hash.update(F),this},I.prototype.verify=function(F,A,H){typeof A=="string"&&(A=Y.from(A,H)),this.end();var W=this._hash.digest();return U(A,W,F,this._signType,this._tag)};function O(F){return new K(F)}function J(F){return new I(F)}Q.exports={Sign:O,Verify:J,createSign:O,createVerify:J}}}),bY=q$({"node_modules/create-ecdh/node_modules/bn.js/lib/bn.js"($,Q){(function(Y,Z){function G(j,k){if(!j)throw new Error(k||"Assertion failed")}function V(j,k){j.super_=k;var g=function(){};g.prototype=k.prototype,j.prototype=new g,j.prototype.constructor=j}function U(j,k,g){if(U.isBN(j))return j;this.negative=0,this.words=null,this.length=0,this.red=null,j!==null&&((k==="le"||k==="be")&&(g=k,k=10),this._init(j||0,k||10,g||"be"))}typeof Y=="object"?Y.exports=U:Z.BN=U,U.BN=U,U.wordSize=26;var X=F$;U.isBN=function(j){return j instanceof U?!0:j!==null&&typeof j=="object"&&j.constructor.wordSize===U.wordSize&&Array.isArray(j.words)},U.max=function(j,k){return j.cmp(k)>0?j:k},U.min=function(j,k){return j.cmp(k)<0?j:k},U.prototype._init=function(j,k,g){if(typeof j=="number")return this._initNumber(j,k,g);if(typeof j=="object")return this._initArray(j,k,g);k==="hex"&&(k=16),G(k===(k|0)&&k>=2&&k<=36),j=j.toString().replace(/\s+/g,"");var _=0;j[0]==="-"&&(_++,this.negative=1),_=0;_-=3)x=j[_]|j[_-1]<<8|j[_-2]<<16,this.words[N]|=x<>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);else if(g==="le")for(_=0,N=0;_>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);return this.strip()};function K(j,k){var g=j.charCodeAt(k);return g>=65&&g<=70?g-55:g>=97&&g<=102?g-87:g-48&15}function I(j,k,g){var _=K(j,g);return g-1>=k&&(_|=K(j,g-1)<<4),_}U.prototype._parseHex=function(j,k,g){this.length=Math.ceil((j.length-k)/6),this.words=new Array(this.length);for(var _=0;_=k;_-=2)B=I(j,k,_)<=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8;else{var y=j.length-k;for(_=y%2===0?k+1:k;_=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8}this.strip()};function O(j,k,g,_){for(var N=0,x=Math.min(j.length,g),B=k;B=49?N+=y-49+10:y>=17?N+=y-17+10:N+=y}return N}U.prototype._parseBase=function(j,k,g){this.words=[0],this.length=1;for(var _=0,N=1;N<=67108863;N*=k)_++;_--,N=N/k|0;for(var x=j.length-g,B=x%_,y=Math.min(x,x-B)+g,w=0,p=g;p1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},U.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],F=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],A=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(j,k){j=j||10,k=k|0||1;var g;if(j===16||j==="hex"){g="";for(var _=0,N=0,x=0;x>>24-_&16777215,N!==0||x!==this.length-1?g=J[6-y.length]+y+g:g=y+g,_+=2,_>=26&&(_-=26,x--)}for(N!==0&&(g=N.toString(16)+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(j===(j|0)&&j>=2&&j<=36){var w=F[j],p=A[j];g="";var f=this.clone();for(f.negative=0;!f.isZero();){var c=f.modn(p).toString(j);f=f.idivn(p),f.isZero()?g=c+g:g=J[w-c.length]+c+g}for(this.isZero()&&(g="0"+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var j=this.words[0];return this.length===2?j+=this.words[1]*67108864:this.length===3&&this.words[2]===1?j+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-j:j},U.prototype.toJSON=function(){return this.toString(16)},U.prototype.toBuffer=function(j,k){return G(typeof X<"u"),this.toArrayLike(X,j,k)},U.prototype.toArray=function(j,k){return this.toArrayLike(Array,j,k)},U.prototype.toArrayLike=function(j,k,g){var _=this.byteLength(),N=g||Math.max(1,_);G(_<=N,"byte array longer than desired length"),G(N>0,"Requested array length <= 0"),this.strip();var x=k==="le",B=new j(N),y,w,p=this.clone();if(x){for(w=0;!p.isZero();w++)y=p.andln(255),p.iushrn(8),B[w]=y;for(;w=4096&&(g+=13,k>>>=13),k>=64&&(g+=7,k>>>=7),k>=8&&(g+=4,k>>>=4),k>=2&&(g+=2,k>>>=2),g+k},U.prototype._zeroBits=function(j){if(j===0)return 26;var k=j,g=0;return(k&8191)===0&&(g+=13,k>>>=13),(k&127)===0&&(g+=7,k>>>=7),(k&15)===0&&(g+=4,k>>>=4),(k&3)===0&&(g+=2,k>>>=2),(k&1)===0&&g++,g},U.prototype.bitLength=function(){var j=this.words[this.length-1],k=this._countBits(j);return(this.length-1)*26+k};function H(j){for(var k=new Array(j.bitLength()),g=0;g>>N}return k}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var j=0,k=0;kj.length?this.clone().ior(j):j.clone().ior(this)},U.prototype.uor=function(j){return this.length>j.length?this.clone().iuor(j):j.clone().iuor(this)},U.prototype.iuand=function(j){var k;this.length>j.length?k=j:k=this;for(var g=0;gj.length?this.clone().iand(j):j.clone().iand(this)},U.prototype.uand=function(j){return this.length>j.length?this.clone().iuand(j):j.clone().iuand(this)},U.prototype.iuxor=function(j){var k,g;this.length>j.length?(k=this,g=j):(k=j,g=this);for(var _=0;_j.length?this.clone().ixor(j):j.clone().ixor(this)},U.prototype.uxor=function(j){return this.length>j.length?this.clone().iuxor(j):j.clone().iuxor(this)},U.prototype.inotn=function(j){G(typeof j=="number"&&j>=0);var k=Math.ceil(j/26)|0,g=j%26;this._expand(k),g>0&&k--;for(var _=0;_0&&(this.words[_]=~this.words[_]&67108863>>26-g),this.strip()},U.prototype.notn=function(j){return this.clone().inotn(j)},U.prototype.setn=function(j,k){G(typeof j=="number"&&j>=0);var g=j/26|0,_=j%26;return this._expand(g+1),k?this.words[g]=this.words[g]|1<<_:this.words[g]=this.words[g]&~(1<<_),this.strip()},U.prototype.iadd=function(j){var k;if(this.negative!==0&&j.negative===0)return this.negative=0,k=this.isub(j),this.negative^=1,this._normSign();if(this.negative===0&&j.negative!==0)return j.negative=0,k=this.isub(j),j.negative=1,k._normSign();var g,_;this.length>j.length?(g=this,_=j):(g=j,_=this);for(var N=0,x=0;x<_.length;x++)k=(g.words[x]|0)+(_.words[x]|0)+N,this.words[x]=k&67108863,N=k>>>26;for(;N!==0&&x>>26;if(this.length=g.length,N!==0)this.words[this.length]=N,this.length++;else if(g!==this)for(;xj.length?this.clone().iadd(j):j.clone().iadd(this)},U.prototype.isub=function(j){if(j.negative!==0){j.negative=0;var k=this.iadd(j);return j.negative=1,k._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(j),this.negative=1,this._normSign();var g=this.cmp(j);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var _,N;g>0?(_=this,N=j):(_=j,N=this);for(var x=0,B=0;B>26,this.words[B]=k&67108863;for(;x!==0&&B<_.length;B++)k=(_.words[B]|0)+x,x=k>>26,this.words[B]=k&67108863;if(x===0&&B<_.length&&_!==this)for(;B<_.length;B++)this.words[B]=_.words[B];return this.length=Math.max(this.length,B),_!==this&&(this.negative=1),this.strip()},U.prototype.sub=function(j){return this.clone().isub(j)};function W(j,k,g){g.negative=k.negative^j.negative;var _=j.length+k.length|0;g.length=_,_=_-1|0;var N=j.words[0]|0,x=k.words[0]|0,B=N*x,y=B&67108863,w=B/67108864|0;g.words[0]=y;for(var p=1;p<_;p++){for(var f=w>>>26,c=w&67108863,h=Math.min(p,k.length-1),d=Math.max(0,p-j.length+1);d<=h;d++){var b=p-d|0;N=j.words[b]|0,x=k.words[d]|0,B=N*x+c,f+=B/67108864|0,c=B&67108863}g.words[p]=c|0,w=f|0}return w!==0?g.words[p]=w|0:g.length--,g.strip()}var E=function(j,k,g){var _=j.words,N=k.words,x=g.words,B=0,y,w,p,f=_[0]|0,c=f&8191,h=f>>>13,d=_[1]|0,b=d&8191,l=d>>>13,o=_[2]|0,u=o&8191,n=o>>>13,s=_[3]|0,t=s&8191,m=s>>>13,a=_[4]|0,e=a&8191,r=a>>>13,i=_[5]|0,$0=i&8191,Q0=i>>>13,Y0=_[6]|0,Z0=Y0&8191,G0=Y0>>>13,V0=_[7]|0,U0=V0&8191,X0=V0>>>13,K0=_[8]|0,I0=K0&8191,O0=K0>>>13,J0=_[9]|0,F0=J0&8191,A0=J0>>>13,H0=N[0]|0,W0=H0&8191,E0=H0>>>13,T0=N[1]|0,D0=T0&8191,C0=T0>>>13,L0=N[2]|0,R0=L0&8191,P0=L0>>>13,z0=N[3]|0,M0=z0&8191,S0=z0>>>13,v0=N[4]|0,q0=v0&8191,j0=v0>>>13,k0=N[5]|0,g0=k0&8191,_0=k0>>>13,N0=N[6]|0,x0=N0&8191,B0=N0>>>13,y0=N[7]|0,w0=y0&8191,p0=y0>>>13,f0=N[8]|0,c0=f0&8191,h0=f0>>>13,d0=N[9]|0,b0=d0&8191,l0=d0>>>13;g.negative=j.negative^k.negative,g.length=19,y=Math.imul(c,W0),w=Math.imul(c,E0),w=w+Math.imul(h,W0)|0,p=Math.imul(h,E0);var o0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(o0>>>26)|0,o0&=67108863,y=Math.imul(b,W0),w=Math.imul(b,E0),w=w+Math.imul(l,W0)|0,p=Math.imul(l,E0),y=y+Math.imul(c,D0)|0,w=w+Math.imul(c,C0)|0,w=w+Math.imul(h,D0)|0,p=p+Math.imul(h,C0)|0;var u0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(u0>>>26)|0,u0&=67108863,y=Math.imul(u,W0),w=Math.imul(u,E0),w=w+Math.imul(n,W0)|0,p=Math.imul(n,E0),y=y+Math.imul(b,D0)|0,w=w+Math.imul(b,C0)|0,w=w+Math.imul(l,D0)|0,p=p+Math.imul(l,C0)|0,y=y+Math.imul(c,R0)|0,w=w+Math.imul(c,P0)|0,w=w+Math.imul(h,R0)|0,p=p+Math.imul(h,P0)|0;var n0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(n0>>>26)|0,n0&=67108863,y=Math.imul(t,W0),w=Math.imul(t,E0),w=w+Math.imul(m,W0)|0,p=Math.imul(m,E0),y=y+Math.imul(u,D0)|0,w=w+Math.imul(u,C0)|0,w=w+Math.imul(n,D0)|0,p=p+Math.imul(n,C0)|0,y=y+Math.imul(b,R0)|0,w=w+Math.imul(b,P0)|0,w=w+Math.imul(l,R0)|0,p=p+Math.imul(l,P0)|0,y=y+Math.imul(c,M0)|0,w=w+Math.imul(c,S0)|0,w=w+Math.imul(h,M0)|0,p=p+Math.imul(h,S0)|0;var s0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(s0>>>26)|0,s0&=67108863,y=Math.imul(e,W0),w=Math.imul(e,E0),w=w+Math.imul(r,W0)|0,p=Math.imul(r,E0),y=y+Math.imul(t,D0)|0,w=w+Math.imul(t,C0)|0,w=w+Math.imul(m,D0)|0,p=p+Math.imul(m,C0)|0,y=y+Math.imul(u,R0)|0,w=w+Math.imul(u,P0)|0,w=w+Math.imul(n,R0)|0,p=p+Math.imul(n,P0)|0,y=y+Math.imul(b,M0)|0,w=w+Math.imul(b,S0)|0,w=w+Math.imul(l,M0)|0,p=p+Math.imul(l,S0)|0,y=y+Math.imul(c,q0)|0,w=w+Math.imul(c,j0)|0,w=w+Math.imul(h,q0)|0,p=p+Math.imul(h,j0)|0;var t0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(t0>>>26)|0,t0&=67108863,y=Math.imul($0,W0),w=Math.imul($0,E0),w=w+Math.imul(Q0,W0)|0,p=Math.imul(Q0,E0),y=y+Math.imul(e,D0)|0,w=w+Math.imul(e,C0)|0,w=w+Math.imul(r,D0)|0,p=p+Math.imul(r,C0)|0,y=y+Math.imul(t,R0)|0,w=w+Math.imul(t,P0)|0,w=w+Math.imul(m,R0)|0,p=p+Math.imul(m,P0)|0,y=y+Math.imul(u,M0)|0,w=w+Math.imul(u,S0)|0,w=w+Math.imul(n,M0)|0,p=p+Math.imul(n,S0)|0,y=y+Math.imul(b,q0)|0,w=w+Math.imul(b,j0)|0,w=w+Math.imul(l,q0)|0,p=p+Math.imul(l,j0)|0,y=y+Math.imul(c,g0)|0,w=w+Math.imul(c,_0)|0,w=w+Math.imul(h,g0)|0,p=p+Math.imul(h,_0)|0;var m0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(m0>>>26)|0,m0&=67108863,y=Math.imul(Z0,W0),w=Math.imul(Z0,E0),w=w+Math.imul(G0,W0)|0,p=Math.imul(G0,E0),y=y+Math.imul($0,D0)|0,w=w+Math.imul($0,C0)|0,w=w+Math.imul(Q0,D0)|0,p=p+Math.imul(Q0,C0)|0,y=y+Math.imul(e,R0)|0,w=w+Math.imul(e,P0)|0,w=w+Math.imul(r,R0)|0,p=p+Math.imul(r,P0)|0,y=y+Math.imul(t,M0)|0,w=w+Math.imul(t,S0)|0,w=w+Math.imul(m,M0)|0,p=p+Math.imul(m,S0)|0,y=y+Math.imul(u,q0)|0,w=w+Math.imul(u,j0)|0,w=w+Math.imul(n,q0)|0,p=p+Math.imul(n,j0)|0,y=y+Math.imul(b,g0)|0,w=w+Math.imul(b,_0)|0,w=w+Math.imul(l,g0)|0,p=p+Math.imul(l,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,B0)|0,w=w+Math.imul(h,x0)|0,p=p+Math.imul(h,B0)|0;var a0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(a0>>>26)|0,a0&=67108863,y=Math.imul(U0,W0),w=Math.imul(U0,E0),w=w+Math.imul(X0,W0)|0,p=Math.imul(X0,E0),y=y+Math.imul(Z0,D0)|0,w=w+Math.imul(Z0,C0)|0,w=w+Math.imul(G0,D0)|0,p=p+Math.imul(G0,C0)|0,y=y+Math.imul($0,R0)|0,w=w+Math.imul($0,P0)|0,w=w+Math.imul(Q0,R0)|0,p=p+Math.imul(Q0,P0)|0,y=y+Math.imul(e,M0)|0,w=w+Math.imul(e,S0)|0,w=w+Math.imul(r,M0)|0,p=p+Math.imul(r,S0)|0,y=y+Math.imul(t,q0)|0,w=w+Math.imul(t,j0)|0,w=w+Math.imul(m,q0)|0,p=p+Math.imul(m,j0)|0,y=y+Math.imul(u,g0)|0,w=w+Math.imul(u,_0)|0,w=w+Math.imul(n,g0)|0,p=p+Math.imul(n,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,B0)|0,w=w+Math.imul(l,x0)|0,p=p+Math.imul(l,B0)|0,y=y+Math.imul(c,w0)|0,w=w+Math.imul(c,p0)|0,w=w+Math.imul(h,w0)|0,p=p+Math.imul(h,p0)|0;var e0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(e0>>>26)|0,e0&=67108863,y=Math.imul(I0,W0),w=Math.imul(I0,E0),w=w+Math.imul(O0,W0)|0,p=Math.imul(O0,E0),y=y+Math.imul(U0,D0)|0,w=w+Math.imul(U0,C0)|0,w=w+Math.imul(X0,D0)|0,p=p+Math.imul(X0,C0)|0,y=y+Math.imul(Z0,R0)|0,w=w+Math.imul(Z0,P0)|0,w=w+Math.imul(G0,R0)|0,p=p+Math.imul(G0,P0)|0,y=y+Math.imul($0,M0)|0,w=w+Math.imul($0,S0)|0,w=w+Math.imul(Q0,M0)|0,p=p+Math.imul(Q0,S0)|0,y=y+Math.imul(e,q0)|0,w=w+Math.imul(e,j0)|0,w=w+Math.imul(r,q0)|0,p=p+Math.imul(r,j0)|0,y=y+Math.imul(t,g0)|0,w=w+Math.imul(t,_0)|0,w=w+Math.imul(m,g0)|0,p=p+Math.imul(m,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,B0)|0,w=w+Math.imul(n,x0)|0,p=p+Math.imul(n,B0)|0,y=y+Math.imul(b,w0)|0,w=w+Math.imul(b,p0)|0,w=w+Math.imul(l,w0)|0,p=p+Math.imul(l,p0)|0,y=y+Math.imul(c,c0)|0,w=w+Math.imul(c,h0)|0,w=w+Math.imul(h,c0)|0,p=p+Math.imul(h,h0)|0;var r0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(r0>>>26)|0,r0&=67108863,y=Math.imul(F0,W0),w=Math.imul(F0,E0),w=w+Math.imul(A0,W0)|0,p=Math.imul(A0,E0),y=y+Math.imul(I0,D0)|0,w=w+Math.imul(I0,C0)|0,w=w+Math.imul(O0,D0)|0,p=p+Math.imul(O0,C0)|0,y=y+Math.imul(U0,R0)|0,w=w+Math.imul(U0,P0)|0,w=w+Math.imul(X0,R0)|0,p=p+Math.imul(X0,P0)|0,y=y+Math.imul(Z0,M0)|0,w=w+Math.imul(Z0,S0)|0,w=w+Math.imul(G0,M0)|0,p=p+Math.imul(G0,S0)|0,y=y+Math.imul($0,q0)|0,w=w+Math.imul($0,j0)|0,w=w+Math.imul(Q0,q0)|0,p=p+Math.imul(Q0,j0)|0,y=y+Math.imul(e,g0)|0,w=w+Math.imul(e,_0)|0,w=w+Math.imul(r,g0)|0,p=p+Math.imul(r,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,B0)|0,w=w+Math.imul(m,x0)|0,p=p+Math.imul(m,B0)|0,y=y+Math.imul(u,w0)|0,w=w+Math.imul(u,p0)|0,w=w+Math.imul(n,w0)|0,p=p+Math.imul(n,p0)|0,y=y+Math.imul(b,c0)|0,w=w+Math.imul(b,h0)|0,w=w+Math.imul(l,c0)|0,p=p+Math.imul(l,h0)|0,y=y+Math.imul(c,b0)|0,w=w+Math.imul(c,l0)|0,w=w+Math.imul(h,b0)|0,p=p+Math.imul(h,l0)|0;var i0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(i0>>>26)|0,i0&=67108863,y=Math.imul(F0,D0),w=Math.imul(F0,C0),w=w+Math.imul(A0,D0)|0,p=Math.imul(A0,C0),y=y+Math.imul(I0,R0)|0,w=w+Math.imul(I0,P0)|0,w=w+Math.imul(O0,R0)|0,p=p+Math.imul(O0,P0)|0,y=y+Math.imul(U0,M0)|0,w=w+Math.imul(U0,S0)|0,w=w+Math.imul(X0,M0)|0,p=p+Math.imul(X0,S0)|0,y=y+Math.imul(Z0,q0)|0,w=w+Math.imul(Z0,j0)|0,w=w+Math.imul(G0,q0)|0,p=p+Math.imul(G0,j0)|0,y=y+Math.imul($0,g0)|0,w=w+Math.imul($0,_0)|0,w=w+Math.imul(Q0,g0)|0,p=p+Math.imul(Q0,_0)|0,y=y+Math.imul(e,x0)|0,w=w+Math.imul(e,B0)|0,w=w+Math.imul(r,x0)|0,p=p+Math.imul(r,B0)|0,y=y+Math.imul(t,w0)|0,w=w+Math.imul(t,p0)|0,w=w+Math.imul(m,w0)|0,p=p+Math.imul(m,p0)|0,y=y+Math.imul(u,c0)|0,w=w+Math.imul(u,h0)|0,w=w+Math.imul(n,c0)|0,p=p+Math.imul(n,h0)|0,y=y+Math.imul(b,b0)|0,w=w+Math.imul(b,l0)|0,w=w+Math.imul(l,b0)|0,p=p+Math.imul(l,l0)|0;var $$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+($$>>>26)|0,$$&=67108863,y=Math.imul(F0,R0),w=Math.imul(F0,P0),w=w+Math.imul(A0,R0)|0,p=Math.imul(A0,P0),y=y+Math.imul(I0,M0)|0,w=w+Math.imul(I0,S0)|0,w=w+Math.imul(O0,M0)|0,p=p+Math.imul(O0,S0)|0,y=y+Math.imul(U0,q0)|0,w=w+Math.imul(U0,j0)|0,w=w+Math.imul(X0,q0)|0,p=p+Math.imul(X0,j0)|0,y=y+Math.imul(Z0,g0)|0,w=w+Math.imul(Z0,_0)|0,w=w+Math.imul(G0,g0)|0,p=p+Math.imul(G0,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,B0)|0,w=w+Math.imul(Q0,x0)|0,p=p+Math.imul(Q0,B0)|0,y=y+Math.imul(e,w0)|0,w=w+Math.imul(e,p0)|0,w=w+Math.imul(r,w0)|0,p=p+Math.imul(r,p0)|0,y=y+Math.imul(t,c0)|0,w=w+Math.imul(t,h0)|0,w=w+Math.imul(m,c0)|0,p=p+Math.imul(m,h0)|0,y=y+Math.imul(u,b0)|0,w=w+Math.imul(u,l0)|0,w=w+Math.imul(n,b0)|0,p=p+Math.imul(n,l0)|0;var Q$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,y=Math.imul(F0,M0),w=Math.imul(F0,S0),w=w+Math.imul(A0,M0)|0,p=Math.imul(A0,S0),y=y+Math.imul(I0,q0)|0,w=w+Math.imul(I0,j0)|0,w=w+Math.imul(O0,q0)|0,p=p+Math.imul(O0,j0)|0,y=y+Math.imul(U0,g0)|0,w=w+Math.imul(U0,_0)|0,w=w+Math.imul(X0,g0)|0,p=p+Math.imul(X0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,B0)|0,w=w+Math.imul(G0,x0)|0,p=p+Math.imul(G0,B0)|0,y=y+Math.imul($0,w0)|0,w=w+Math.imul($0,p0)|0,w=w+Math.imul(Q0,w0)|0,p=p+Math.imul(Q0,p0)|0,y=y+Math.imul(e,c0)|0,w=w+Math.imul(e,h0)|0,w=w+Math.imul(r,c0)|0,p=p+Math.imul(r,h0)|0,y=y+Math.imul(t,b0)|0,w=w+Math.imul(t,l0)|0,w=w+Math.imul(m,b0)|0,p=p+Math.imul(m,l0)|0;var Y$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,y=Math.imul(F0,q0),w=Math.imul(F0,j0),w=w+Math.imul(A0,q0)|0,p=Math.imul(A0,j0),y=y+Math.imul(I0,g0)|0,w=w+Math.imul(I0,_0)|0,w=w+Math.imul(O0,g0)|0,p=p+Math.imul(O0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,B0)|0,w=w+Math.imul(X0,x0)|0,p=p+Math.imul(X0,B0)|0,y=y+Math.imul(Z0,w0)|0,w=w+Math.imul(Z0,p0)|0,w=w+Math.imul(G0,w0)|0,p=p+Math.imul(G0,p0)|0,y=y+Math.imul($0,c0)|0,w=w+Math.imul($0,h0)|0,w=w+Math.imul(Q0,c0)|0,p=p+Math.imul(Q0,h0)|0,y=y+Math.imul(e,b0)|0,w=w+Math.imul(e,l0)|0,w=w+Math.imul(r,b0)|0,p=p+Math.imul(r,l0)|0;var Z$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,y=Math.imul(F0,g0),w=Math.imul(F0,_0),w=w+Math.imul(A0,g0)|0,p=Math.imul(A0,_0),y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,B0)|0,w=w+Math.imul(O0,x0)|0,p=p+Math.imul(O0,B0)|0,y=y+Math.imul(U0,w0)|0,w=w+Math.imul(U0,p0)|0,w=w+Math.imul(X0,w0)|0,p=p+Math.imul(X0,p0)|0,y=y+Math.imul(Z0,c0)|0,w=w+Math.imul(Z0,h0)|0,w=w+Math.imul(G0,c0)|0,p=p+Math.imul(G0,h0)|0,y=y+Math.imul($0,b0)|0,w=w+Math.imul($0,l0)|0,w=w+Math.imul(Q0,b0)|0,p=p+Math.imul(Q0,l0)|0;var G$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(G$>>>26)|0,G$&=67108863,y=Math.imul(F0,x0),w=Math.imul(F0,B0),w=w+Math.imul(A0,x0)|0,p=Math.imul(A0,B0),y=y+Math.imul(I0,w0)|0,w=w+Math.imul(I0,p0)|0,w=w+Math.imul(O0,w0)|0,p=p+Math.imul(O0,p0)|0,y=y+Math.imul(U0,c0)|0,w=w+Math.imul(U0,h0)|0,w=w+Math.imul(X0,c0)|0,p=p+Math.imul(X0,h0)|0,y=y+Math.imul(Z0,b0)|0,w=w+Math.imul(Z0,l0)|0,w=w+Math.imul(G0,b0)|0,p=p+Math.imul(G0,l0)|0;var V$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(V$>>>26)|0,V$&=67108863,y=Math.imul(F0,w0),w=Math.imul(F0,p0),w=w+Math.imul(A0,w0)|0,p=Math.imul(A0,p0),y=y+Math.imul(I0,c0)|0,w=w+Math.imul(I0,h0)|0,w=w+Math.imul(O0,c0)|0,p=p+Math.imul(O0,h0)|0,y=y+Math.imul(U0,b0)|0,w=w+Math.imul(U0,l0)|0,w=w+Math.imul(X0,b0)|0,p=p+Math.imul(X0,l0)|0;var U$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(U$>>>26)|0,U$&=67108863,y=Math.imul(F0,c0),w=Math.imul(F0,h0),w=w+Math.imul(A0,c0)|0,p=Math.imul(A0,h0),y=y+Math.imul(I0,b0)|0,w=w+Math.imul(I0,l0)|0,w=w+Math.imul(O0,b0)|0,p=p+Math.imul(O0,l0)|0;var X$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(X$>>>26)|0,X$&=67108863,y=Math.imul(F0,b0),w=Math.imul(F0,l0),w=w+Math.imul(A0,b0)|0,p=Math.imul(A0,l0);var K$=(B+y|0)+((w&8191)<<13)|0;return B=(p+(w>>>13)|0)+(K$>>>26)|0,K$&=67108863,x[0]=o0,x[1]=u0,x[2]=n0,x[3]=s0,x[4]=t0,x[5]=m0,x[6]=a0,x[7]=e0,x[8]=r0,x[9]=i0,x[10]=$$,x[11]=Q$,x[12]=Y$,x[13]=Z$,x[14]=G$,x[15]=V$,x[16]=U$,x[17]=X$,x[18]=K$,B!==0&&(x[19]=B,g.length++),g};Math.imul||(E=W);function T(j,k,g){g.negative=k.negative^j.negative,g.length=j.length+k.length;for(var _=0,N=0,x=0;x>>26)|0,N+=B>>>26,B&=67108863}g.words[x]=y,_=B,B=N}return _!==0?g.words[x]=_:g.length--,g.strip()}function D(j,k,g){var _=new C;return _.mulp(j,k,g)}U.prototype.mulTo=function(j,k){var g,_=this.length+j.length;return this.length===10&&j.length===10?g=E(this,j,k):_<63?g=W(this,j,k):_<1024?g=T(this,j,k):g=D(this,j,k),g};function C(j,k){this.x=j,this.y=k}C.prototype.makeRBT=function(j){for(var k=new Array(j),g=U.prototype._countBits(j)-1,_=0;_>=1;return _},C.prototype.permute=function(j,k,g,_,N,x){for(var B=0;B>>1)N++;return 1<>>13,g[2*x+1]=N&8191,N=N>>>13;for(x=2*k;x<_;++x)g[x]=0;G(N===0),G((N&-8192)===0)},C.prototype.stub=function(j){for(var k=new Array(j),g=0;g>=26,k+=_/67108864|0,k+=N>>>26,this.words[g]=N&67108863}return k!==0&&(this.words[g]=k,this.length++),this},U.prototype.muln=function(j){return this.clone().imuln(j)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(j){var k=H(j);if(k.length===0)return new U(1);for(var g=this,_=0;_=0);var k=j%26,g=(j-k)/26,_=67108863>>>26-k<<26-k,N;if(k!==0){var x=0;for(N=0;N>>26-k}x&&(this.words[N]=x,this.length++)}if(g!==0){for(N=this.length-1;N>=0;N--)this.words[N+g]=this.words[N];for(N=0;N=0);var _;k?_=(k-k%26)/26:_=0;var N=j%26,x=Math.min((j-N)/26,this.length),B=67108863^67108863>>>N<x)for(this.length-=x,w=0;w=0&&(p!==0||w>=_);w--){var f=this.words[w]|0;this.words[w]=p<<26-N|f>>>N,p=f&B}return y&&p!==0&&(y.words[y.length++]=p),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},U.prototype.ishrn=function(j,k,g){return G(this.negative===0),this.iushrn(j,k,g)},U.prototype.shln=function(j){return this.clone().ishln(j)},U.prototype.ushln=function(j){return this.clone().iushln(j)},U.prototype.shrn=function(j){return this.clone().ishrn(j)},U.prototype.ushrn=function(j){return this.clone().iushrn(j)},U.prototype.testn=function(j){G(typeof j=="number"&&j>=0);var k=j%26,g=(j-k)/26,_=1<=0);var k=j%26,g=(j-k)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(k!==0&&g++,this.length=Math.min(g,this.length),k!==0){var _=67108863^67108863>>>k<=67108864;k++)this.words[k]-=67108864,k===this.length-1?this.words[k+1]=1:this.words[k+1]++;return this.length=Math.max(this.length,k+1),this},U.prototype.isubn=function(j){if(G(typeof j=="number"),G(j<67108864),j<0)return this.iaddn(-j);if(this.negative!==0)return this.negative=0,this.iaddn(j),this.negative=1,this;if(this.words[0]-=j,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var k=0;k>26)-(y/67108864|0),this.words[N+g]=x&67108863}for(;N>26,this.words[N+g]=x&67108863;if(B===0)return this.strip();for(G(B===-1),B=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},U.prototype._wordDiv=function(j,k){var g=this.length-j.length,_=this.clone(),N=j,x=N.words[N.length-1]|0,B=this._countBits(x);g=26-B,g!==0&&(N=N.ushln(g),_.iushln(g),x=N.words[N.length-1]|0);var y=_.length-N.length,w;if(k!=="mod"){w=new U(null),w.length=y+1,w.words=new Array(w.length);for(var p=0;p=0;c--){var h=(_.words[N.length+c]|0)*67108864+(_.words[N.length+c-1]|0);for(h=Math.min(h/x|0,67108863),_._ishlnsubmul(N,h,c);_.negative!==0;)h--,_.negative=0,_._ishlnsubmul(N,1,c),_.isZero()||(_.negative^=1);w&&(w.words[c]=h)}return w&&w.strip(),_.strip(),k!=="div"&&g!==0&&_.iushrn(g),{div:w||null,mod:_}},U.prototype.divmod=function(j,k,g){if(G(!j.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var _,N,x;return this.negative!==0&&j.negative===0?(x=this.neg().divmod(j,k),k!=="mod"&&(_=x.div.neg()),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.iadd(j)),{div:_,mod:N}):this.negative===0&&j.negative!==0?(x=this.divmod(j.neg(),k),k!=="mod"&&(_=x.div.neg()),{div:_,mod:x.mod}):(this.negative&j.negative)!==0?(x=this.neg().divmod(j.neg(),k),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.isub(j)),{div:x.div,mod:N}):j.length>this.length||this.cmp(j)<0?{div:new U(0),mod:this}:j.length===1?k==="div"?{div:this.divn(j.words[0]),mod:null}:k==="mod"?{div:null,mod:new U(this.modn(j.words[0]))}:{div:this.divn(j.words[0]),mod:new U(this.modn(j.words[0]))}:this._wordDiv(j,k)},U.prototype.div=function(j){return this.divmod(j,"div",!1).div},U.prototype.mod=function(j){return this.divmod(j,"mod",!1).mod},U.prototype.umod=function(j){return this.divmod(j,"mod",!0).mod},U.prototype.divRound=function(j){var k=this.divmod(j);if(k.mod.isZero())return k.div;var g=k.div.negative!==0?k.mod.isub(j):k.mod,_=j.ushrn(1),N=j.andln(1),x=g.cmp(_);return x<0||N===1&&x===0?k.div:k.div.negative!==0?k.div.isubn(1):k.div.iaddn(1)},U.prototype.modn=function(j){G(j<=67108863);for(var k=(1<<26)%j,g=0,_=this.length-1;_>=0;_--)g=(k*g+(this.words[_]|0))%j;return g},U.prototype.idivn=function(j){G(j<=67108863);for(var k=0,g=this.length-1;g>=0;g--){var _=(this.words[g]|0)+k*67108864;this.words[g]=_/j|0,k=_%j}return this.strip()},U.prototype.divn=function(j){return this.clone().idivn(j)},U.prototype.egcd=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=new U(0),B=new U(1),y=0;k.isEven()&&g.isEven();)k.iushrn(1),g.iushrn(1),++y;for(var w=g.clone(),p=k.clone();!k.isZero();){for(var f=0,c=1;(k.words[0]&c)===0&&f<26;++f,c<<=1);if(f>0)for(k.iushrn(f);f-- >0;)(_.isOdd()||N.isOdd())&&(_.iadd(w),N.isub(p)),_.iushrn(1),N.iushrn(1);for(var h=0,d=1;(g.words[0]&d)===0&&h<26;++h,d<<=1);if(h>0)for(g.iushrn(h);h-- >0;)(x.isOdd()||B.isOdd())&&(x.iadd(w),B.isub(p)),x.iushrn(1),B.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(x),N.isub(B)):(g.isub(k),x.isub(_),B.isub(N))}return{a:x,b:B,gcd:g.iushln(y)}},U.prototype._invmp=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=g.clone();k.cmpn(1)>0&&g.cmpn(1)>0;){for(var B=0,y=1;(k.words[0]&y)===0&&B<26;++B,y<<=1);if(B>0)for(k.iushrn(B);B-- >0;)_.isOdd()&&_.iadd(x),_.iushrn(1);for(var w=0,p=1;(g.words[0]&p)===0&&w<26;++w,p<<=1);if(w>0)for(g.iushrn(w);w-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(N)):(g.isub(k),N.isub(_))}var f;return k.cmpn(1)===0?f=_:f=N,f.cmpn(0)<0&&f.iadd(j),f},U.prototype.gcd=function(j){if(this.isZero())return j.abs();if(j.isZero())return this.abs();var k=this.clone(),g=j.clone();k.negative=0,g.negative=0;for(var _=0;k.isEven()&&g.isEven();_++)k.iushrn(1),g.iushrn(1);do{for(;k.isEven();)k.iushrn(1);for(;g.isEven();)g.iushrn(1);var N=k.cmp(g);if(N<0){var x=k;k=g,g=x}else if(N===0||g.cmpn(1)===0)break;k.isub(g)}while(!0);return g.iushln(_)},U.prototype.invm=function(j){return this.egcd(j).a.umod(j)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(j){return this.words[0]&j},U.prototype.bincn=function(j){G(typeof j=="number");var k=j%26,g=(j-k)/26,_=1<>>26,B&=67108863,this.words[x]=B}return N!==0&&(this.words[x]=N,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(j){var k=j<0;if(this.negative!==0&&!k)return-1;if(this.negative===0&&k)return 1;this.strip();var g;if(this.length>1)g=1;else{k&&(j=-j),G(j<=67108863,"Number is too big");var _=this.words[0]|0;g=_===j?0:_j.length)return 1;if(this.length=0;g--){var _=this.words[g]|0,N=j.words[g]|0;if(_!==N){_N&&(k=1);break}}return k},U.prototype.gtn=function(j){return this.cmpn(j)===1},U.prototype.gt=function(j){return this.cmp(j)===1},U.prototype.gten=function(j){return this.cmpn(j)>=0},U.prototype.gte=function(j){return this.cmp(j)>=0},U.prototype.ltn=function(j){return this.cmpn(j)===-1},U.prototype.lt=function(j){return this.cmp(j)===-1},U.prototype.lten=function(j){return this.cmpn(j)<=0},U.prototype.lte=function(j){return this.cmp(j)<=0},U.prototype.eqn=function(j){return this.cmpn(j)===0},U.prototype.eq=function(j){return this.cmp(j)===0},U.red=function(j){return new v(j)},U.prototype.toRed=function(j){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),j.convertTo(this)._forceRed(j)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(j){return this.red=j,this},U.prototype.forceRed=function(j){return G(!this.red,"Already a number in reduction context"),this._forceRed(j)},U.prototype.redAdd=function(j){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,j)},U.prototype.redIAdd=function(j){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,j)},U.prototype.redSub=function(j){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,j)},U.prototype.redISub=function(j){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,j)},U.prototype.redShl=function(j){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,j)},U.prototype.redMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.mul(this,j)},U.prototype.redIMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.imul(this,j)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(j){return G(this.red&&!j.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,j)};var L={k256:null,p224:null,p192:null,p25519:null};function R(j,k){this.name=j,this.p=new U(k,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}R.prototype._tmp=function(){var j=new U(null);return j.words=new Array(Math.ceil(this.n/13)),j},R.prototype.ireduce=function(j){var k=j,g;do this.split(k,this.tmp),k=this.imulK(k),k=k.iadd(this.tmp),g=k.bitLength();while(g>this.n);var _=g0?k.isub(this.p):k.strip!==void 0?k.strip():k._strip(),k},R.prototype.split=function(j,k){j.iushrn(this.n,0,k)},R.prototype.imulK=function(j){return j.imul(this.k)};function P(){R.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(P,R),P.prototype.split=function(j,k){for(var g=4194303,_=Math.min(j.length,9),N=0;N<_;N++)k.words[N]=j.words[N];if(k.length=_,j.length<=9){j.words[0]=0,j.length=1;return}var x=j.words[9];for(k.words[k.length++]=x&g,N=10;N>>22,x=B}x>>>=22,j.words[N-10]=x,x===0&&j.length>10?j.length-=10:j.length-=9},P.prototype.imulK=function(j){j.words[j.length]=0,j.words[j.length+1]=0,j.length+=2;for(var k=0,g=0;g>>=26,j.words[g]=N,k=_}return k!==0&&(j.words[j.length++]=k),j},U._prime=function(j){if(L[j])return L[j];var k;if(j==="k256")k=new P;else if(j==="p224")k=new z;else if(j==="p192")k=new M;else if(j==="p25519")k=new S;else throw new Error("Unknown prime "+j);return L[j]=k,k};function v(j){if(typeof j=="string"){var k=U._prime(j);this.m=k.p,this.prime=k}else G(j.gtn(1),"modulus must be greater than 1"),this.m=j,this.prime=null}v.prototype._verify1=function(j){G(j.negative===0,"red works only with positives"),G(j.red,"red works only with red numbers")},v.prototype._verify2=function(j,k){G((j.negative|k.negative)===0,"red works only with positives"),G(j.red&&j.red===k.red,"red works only with red numbers")},v.prototype.imod=function(j){return this.prime?this.prime.ireduce(j)._forceRed(this):j.umod(this.m)._forceRed(this)},v.prototype.neg=function(j){return j.isZero()?j.clone():this.m.sub(j)._forceRed(this)},v.prototype.add=function(j,k){this._verify2(j,k);var g=j.add(k);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},v.prototype.iadd=function(j,k){this._verify2(j,k);var g=j.iadd(k);return g.cmp(this.m)>=0&&g.isub(this.m),g},v.prototype.sub=function(j,k){this._verify2(j,k);var g=j.sub(k);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},v.prototype.isub=function(j,k){this._verify2(j,k);var g=j.isub(k);return g.cmpn(0)<0&&g.iadd(this.m),g},v.prototype.shl=function(j,k){return this._verify1(j),this.imod(j.ushln(k))},v.prototype.imul=function(j,k){return this._verify2(j,k),this.imod(j.imul(k))},v.prototype.mul=function(j,k){return this._verify2(j,k),this.imod(j.mul(k))},v.prototype.isqr=function(j){return this.imul(j,j.clone())},v.prototype.sqr=function(j){return this.mul(j,j)},v.prototype.sqrt=function(j){if(j.isZero())return j.clone();var k=this.m.andln(3);if(G(k%2===1),k===3){var g=this.m.add(new U(1)).iushrn(2);return this.pow(j,g)}for(var _=this.m.subn(1),N=0;!_.isZero()&&_.andln(1)===0;)N++,_.iushrn(1);G(!_.isZero());var x=new U(1).toRed(this),B=x.redNeg(),y=this.m.subn(1).iushrn(1),w=this.m.bitLength();for(w=new U(2*w*w).toRed(this);this.pow(w,y).cmp(B)!==0;)w.redIAdd(B);for(var p=this.pow(w,_),f=this.pow(j,_.addn(1).iushrn(1)),c=this.pow(j,_),h=N;c.cmp(x)!==0;){for(var d=c,b=0;d.cmp(x)!==0;b++)d=d.redSqr();G(b=0;N--){for(var p=k.words[N],f=w-1;f>=0;f--){var c=p>>f&1;if(x!==_[0]&&(x=this.sqr(x)),c===0&&B===0){y=0;continue}B<<=1,B|=c,y++,!(y!==g&&(N!==0||f!==0))&&(x=this.mul(x,_[B]),y=0,B=0)}w=26}return x},v.prototype.convertTo=function(j){var k=j.umod(this.m);return k===j?k.clone():k},v.prototype.convertFrom=function(j){var k=j.clone();return k.red=null,k},U.mont=function(j){return new q(j)};function q(j){v.call(this,j),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(q,v),q.prototype.convertTo=function(j){return this.imod(j.ushln(this.shift))},q.prototype.convertFrom=function(j){var k=this.imod(j.mul(this.rinv));return k.red=null,k},q.prototype.imul=function(j,k){if(j.isZero()||k.isZero())return j.words[0]=0,j.length=1,j;var g=j.imul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.mul=function(j,k){if(j.isZero()||k.isZero())return new U(0)._forceRed(this);var g=j.mul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.invm=function(j){var k=this.imod(j._invmp(this.m).mul(this.r2));return k._forceRed(this)}})(typeof Q>"u"||Q,$)}}),lY=q$({"node_modules/create-ecdh/browser.js"($,Q){var Y=TY(),Z=bY();Q.exports=function(X){return new V(X)};var G={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};G.p224=G.secp224r1,G.p256=G.secp256r1=G.prime256v1,G.p192=G.secp192r1=G.prime192v1,G.p384=G.secp384r1,G.p521=G.secp521r1;function V(X){this.curveType=G[X],this.curveType||(this.curveType={name:X}),this.curve=new Y.ec(this.curveType.name),this.keys=void 0}V.prototype.generateKeys=function(X,K){return this.keys=this.curve.genKeyPair(),this.getPublicKey(X,K)},V.prototype.computeSecret=function(X,K,I){K=K||"utf8",F$.isBuffer(X)||(X=new F$(X,K));var O=this.curve.keyFromPublic(X).getPublic(),J=O.mul(this.keys.getPrivate()).getX();return U(J,I,this.curveType.byteLength)},V.prototype.getPublicKey=function(X,K){var I=this.keys.getPublic(K==="compressed",!0);return K==="hybrid"&&(I[I.length-1]%2?I[0]=7:I[0]=6),U(I,X)},V.prototype.getPrivateKey=function(X){return U(this.keys.getPrivate(),X)},V.prototype.setPublicKey=function(X,K){return K=K||"utf8",F$.isBuffer(X)||(X=new F$(X,K)),this.keys._importPublic(X),this},V.prototype.setPrivateKey=function(X,K){K=K||"utf8",F$.isBuffer(X)||(X=new F$(X,K));var I=new Z(X);return I=I.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(I),this};function U(X,K,I){Array.isArray(X)||(X=X.toArray());var O=new F$(X);if(I&&O.length0?j:k},U.min=function(j,k){return j.cmp(k)<0?j:k},U.prototype._init=function(j,k,g){if(typeof j=="number")return this._initNumber(j,k,g);if(typeof j=="object")return this._initArray(j,k,g);k==="hex"&&(k=16),G(k===(k|0)&&k>=2&&k<=36),j=j.toString().replace(/\s+/g,"");var _=0;j[0]==="-"&&(_++,this.negative=1),_=0;_-=3)x=j[_]|j[_-1]<<8|j[_-2]<<16,this.words[N]|=x<>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);else if(g==="le")for(_=0,N=0;_>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);return this.strip()};function K(j,k){var g=j.charCodeAt(k);return g>=65&&g<=70?g-55:g>=97&&g<=102?g-87:g-48&15}function I(j,k,g){var _=K(j,g);return g-1>=k&&(_|=K(j,g-1)<<4),_}U.prototype._parseHex=function(j,k,g){this.length=Math.ceil((j.length-k)/6),this.words=new Array(this.length);for(var _=0;_=k;_-=2)B=I(j,k,_)<=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8;else{var y=j.length-k;for(_=y%2===0?k+1:k;_=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8}this.strip()};function O(j,k,g,_){for(var N=0,x=Math.min(j.length,g),B=k;B=49?N+=y-49+10:y>=17?N+=y-17+10:N+=y}return N}U.prototype._parseBase=function(j,k,g){this.words=[0],this.length=1;for(var _=0,N=1;N<=67108863;N*=k)_++;_--,N=N/k|0;for(var x=j.length-g,B=x%_,y=Math.min(x,x-B)+g,w=0,p=g;p1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},U.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],F=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],A=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(j,k){j=j||10,k=k|0||1;var g;if(j===16||j==="hex"){g="";for(var _=0,N=0,x=0;x>>24-_&16777215,N!==0||x!==this.length-1?g=J[6-y.length]+y+g:g=y+g,_+=2,_>=26&&(_-=26,x--)}for(N!==0&&(g=N.toString(16)+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(j===(j|0)&&j>=2&&j<=36){var w=F[j],p=A[j];g="";var f=this.clone();for(f.negative=0;!f.isZero();){var c=f.modn(p).toString(j);f=f.idivn(p),f.isZero()?g=c+g:g=J[w-c.length]+c+g}for(this.isZero()&&(g="0"+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var j=this.words[0];return this.length===2?j+=this.words[1]*67108864:this.length===3&&this.words[2]===1?j+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-j:j},U.prototype.toJSON=function(){return this.toString(16)},U.prototype.toBuffer=function(j,k){return G(typeof X<"u"),this.toArrayLike(X,j,k)},U.prototype.toArray=function(j,k){return this.toArrayLike(Array,j,k)},U.prototype.toArrayLike=function(j,k,g){var _=this.byteLength(),N=g||Math.max(1,_);G(_<=N,"byte array longer than desired length"),G(N>0,"Requested array length <= 0"),this.strip();var x=k==="le",B=new j(N),y,w,p=this.clone();if(x){for(w=0;!p.isZero();w++)y=p.andln(255),p.iushrn(8),B[w]=y;for(;w=4096&&(g+=13,k>>>=13),k>=64&&(g+=7,k>>>=7),k>=8&&(g+=4,k>>>=4),k>=2&&(g+=2,k>>>=2),g+k},U.prototype._zeroBits=function(j){if(j===0)return 26;var k=j,g=0;return(k&8191)===0&&(g+=13,k>>>=13),(k&127)===0&&(g+=7,k>>>=7),(k&15)===0&&(g+=4,k>>>=4),(k&3)===0&&(g+=2,k>>>=2),(k&1)===0&&g++,g},U.prototype.bitLength=function(){var j=this.words[this.length-1],k=this._countBits(j);return(this.length-1)*26+k};function H(j){for(var k=new Array(j.bitLength()),g=0;g>>N}return k}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var j=0,k=0;kj.length?this.clone().ior(j):j.clone().ior(this)},U.prototype.uor=function(j){return this.length>j.length?this.clone().iuor(j):j.clone().iuor(this)},U.prototype.iuand=function(j){var k;this.length>j.length?k=j:k=this;for(var g=0;gj.length?this.clone().iand(j):j.clone().iand(this)},U.prototype.uand=function(j){return this.length>j.length?this.clone().iuand(j):j.clone().iuand(this)},U.prototype.iuxor=function(j){var k,g;this.length>j.length?(k=this,g=j):(k=j,g=this);for(var _=0;_j.length?this.clone().ixor(j):j.clone().ixor(this)},U.prototype.uxor=function(j){return this.length>j.length?this.clone().iuxor(j):j.clone().iuxor(this)},U.prototype.inotn=function(j){G(typeof j=="number"&&j>=0);var k=Math.ceil(j/26)|0,g=j%26;this._expand(k),g>0&&k--;for(var _=0;_0&&(this.words[_]=~this.words[_]&67108863>>26-g),this.strip()},U.prototype.notn=function(j){return this.clone().inotn(j)},U.prototype.setn=function(j,k){G(typeof j=="number"&&j>=0);var g=j/26|0,_=j%26;return this._expand(g+1),k?this.words[g]=this.words[g]|1<<_:this.words[g]=this.words[g]&~(1<<_),this.strip()},U.prototype.iadd=function(j){var k;if(this.negative!==0&&j.negative===0)return this.negative=0,k=this.isub(j),this.negative^=1,this._normSign();if(this.negative===0&&j.negative!==0)return j.negative=0,k=this.isub(j),j.negative=1,k._normSign();var g,_;this.length>j.length?(g=this,_=j):(g=j,_=this);for(var N=0,x=0;x<_.length;x++)k=(g.words[x]|0)+(_.words[x]|0)+N,this.words[x]=k&67108863,N=k>>>26;for(;N!==0&&x>>26;if(this.length=g.length,N!==0)this.words[this.length]=N,this.length++;else if(g!==this)for(;xj.length?this.clone().iadd(j):j.clone().iadd(this)},U.prototype.isub=function(j){if(j.negative!==0){j.negative=0;var k=this.iadd(j);return j.negative=1,k._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(j),this.negative=1,this._normSign();var g=this.cmp(j);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var _,N;g>0?(_=this,N=j):(_=j,N=this);for(var x=0,B=0;B>26,this.words[B]=k&67108863;for(;x!==0&&B<_.length;B++)k=(_.words[B]|0)+x,x=k>>26,this.words[B]=k&67108863;if(x===0&&B<_.length&&_!==this)for(;B<_.length;B++)this.words[B]=_.words[B];return this.length=Math.max(this.length,B),_!==this&&(this.negative=1),this.strip()},U.prototype.sub=function(j){return this.clone().isub(j)};function W(j,k,g){g.negative=k.negative^j.negative;var _=j.length+k.length|0;g.length=_,_=_-1|0;var N=j.words[0]|0,x=k.words[0]|0,B=N*x,y=B&67108863,w=B/67108864|0;g.words[0]=y;for(var p=1;p<_;p++){for(var f=w>>>26,c=w&67108863,h=Math.min(p,k.length-1),d=Math.max(0,p-j.length+1);d<=h;d++){var b=p-d|0;N=j.words[b]|0,x=k.words[d]|0,B=N*x+c,f+=B/67108864|0,c=B&67108863}g.words[p]=c|0,w=f|0}return w!==0?g.words[p]=w|0:g.length--,g.strip()}var E=function(j,k,g){var _=j.words,N=k.words,x=g.words,B=0,y,w,p,f=_[0]|0,c=f&8191,h=f>>>13,d=_[1]|0,b=d&8191,l=d>>>13,o=_[2]|0,u=o&8191,n=o>>>13,s=_[3]|0,t=s&8191,m=s>>>13,a=_[4]|0,e=a&8191,r=a>>>13,i=_[5]|0,$0=i&8191,Q0=i>>>13,Y0=_[6]|0,Z0=Y0&8191,G0=Y0>>>13,V0=_[7]|0,U0=V0&8191,X0=V0>>>13,K0=_[8]|0,I0=K0&8191,O0=K0>>>13,J0=_[9]|0,F0=J0&8191,A0=J0>>>13,H0=N[0]|0,W0=H0&8191,E0=H0>>>13,T0=N[1]|0,D0=T0&8191,C0=T0>>>13,L0=N[2]|0,R0=L0&8191,P0=L0>>>13,z0=N[3]|0,M0=z0&8191,S0=z0>>>13,v0=N[4]|0,q0=v0&8191,j0=v0>>>13,k0=N[5]|0,g0=k0&8191,_0=k0>>>13,N0=N[6]|0,x0=N0&8191,B0=N0>>>13,y0=N[7]|0,w0=y0&8191,p0=y0>>>13,f0=N[8]|0,c0=f0&8191,h0=f0>>>13,d0=N[9]|0,b0=d0&8191,l0=d0>>>13;g.negative=j.negative^k.negative,g.length=19,y=Math.imul(c,W0),w=Math.imul(c,E0),w=w+Math.imul(h,W0)|0,p=Math.imul(h,E0);var o0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(o0>>>26)|0,o0&=67108863,y=Math.imul(b,W0),w=Math.imul(b,E0),w=w+Math.imul(l,W0)|0,p=Math.imul(l,E0),y=y+Math.imul(c,D0)|0,w=w+Math.imul(c,C0)|0,w=w+Math.imul(h,D0)|0,p=p+Math.imul(h,C0)|0;var u0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(u0>>>26)|0,u0&=67108863,y=Math.imul(u,W0),w=Math.imul(u,E0),w=w+Math.imul(n,W0)|0,p=Math.imul(n,E0),y=y+Math.imul(b,D0)|0,w=w+Math.imul(b,C0)|0,w=w+Math.imul(l,D0)|0,p=p+Math.imul(l,C0)|0,y=y+Math.imul(c,R0)|0,w=w+Math.imul(c,P0)|0,w=w+Math.imul(h,R0)|0,p=p+Math.imul(h,P0)|0;var n0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(n0>>>26)|0,n0&=67108863,y=Math.imul(t,W0),w=Math.imul(t,E0),w=w+Math.imul(m,W0)|0,p=Math.imul(m,E0),y=y+Math.imul(u,D0)|0,w=w+Math.imul(u,C0)|0,w=w+Math.imul(n,D0)|0,p=p+Math.imul(n,C0)|0,y=y+Math.imul(b,R0)|0,w=w+Math.imul(b,P0)|0,w=w+Math.imul(l,R0)|0,p=p+Math.imul(l,P0)|0,y=y+Math.imul(c,M0)|0,w=w+Math.imul(c,S0)|0,w=w+Math.imul(h,M0)|0,p=p+Math.imul(h,S0)|0;var s0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(s0>>>26)|0,s0&=67108863,y=Math.imul(e,W0),w=Math.imul(e,E0),w=w+Math.imul(r,W0)|0,p=Math.imul(r,E0),y=y+Math.imul(t,D0)|0,w=w+Math.imul(t,C0)|0,w=w+Math.imul(m,D0)|0,p=p+Math.imul(m,C0)|0,y=y+Math.imul(u,R0)|0,w=w+Math.imul(u,P0)|0,w=w+Math.imul(n,R0)|0,p=p+Math.imul(n,P0)|0,y=y+Math.imul(b,M0)|0,w=w+Math.imul(b,S0)|0,w=w+Math.imul(l,M0)|0,p=p+Math.imul(l,S0)|0,y=y+Math.imul(c,q0)|0,w=w+Math.imul(c,j0)|0,w=w+Math.imul(h,q0)|0,p=p+Math.imul(h,j0)|0;var t0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(t0>>>26)|0,t0&=67108863,y=Math.imul($0,W0),w=Math.imul($0,E0),w=w+Math.imul(Q0,W0)|0,p=Math.imul(Q0,E0),y=y+Math.imul(e,D0)|0,w=w+Math.imul(e,C0)|0,w=w+Math.imul(r,D0)|0,p=p+Math.imul(r,C0)|0,y=y+Math.imul(t,R0)|0,w=w+Math.imul(t,P0)|0,w=w+Math.imul(m,R0)|0,p=p+Math.imul(m,P0)|0,y=y+Math.imul(u,M0)|0,w=w+Math.imul(u,S0)|0,w=w+Math.imul(n,M0)|0,p=p+Math.imul(n,S0)|0,y=y+Math.imul(b,q0)|0,w=w+Math.imul(b,j0)|0,w=w+Math.imul(l,q0)|0,p=p+Math.imul(l,j0)|0,y=y+Math.imul(c,g0)|0,w=w+Math.imul(c,_0)|0,w=w+Math.imul(h,g0)|0,p=p+Math.imul(h,_0)|0;var m0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(m0>>>26)|0,m0&=67108863,y=Math.imul(Z0,W0),w=Math.imul(Z0,E0),w=w+Math.imul(G0,W0)|0,p=Math.imul(G0,E0),y=y+Math.imul($0,D0)|0,w=w+Math.imul($0,C0)|0,w=w+Math.imul(Q0,D0)|0,p=p+Math.imul(Q0,C0)|0,y=y+Math.imul(e,R0)|0,w=w+Math.imul(e,P0)|0,w=w+Math.imul(r,R0)|0,p=p+Math.imul(r,P0)|0,y=y+Math.imul(t,M0)|0,w=w+Math.imul(t,S0)|0,w=w+Math.imul(m,M0)|0,p=p+Math.imul(m,S0)|0,y=y+Math.imul(u,q0)|0,w=w+Math.imul(u,j0)|0,w=w+Math.imul(n,q0)|0,p=p+Math.imul(n,j0)|0,y=y+Math.imul(b,g0)|0,w=w+Math.imul(b,_0)|0,w=w+Math.imul(l,g0)|0,p=p+Math.imul(l,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,B0)|0,w=w+Math.imul(h,x0)|0,p=p+Math.imul(h,B0)|0;var a0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(a0>>>26)|0,a0&=67108863,y=Math.imul(U0,W0),w=Math.imul(U0,E0),w=w+Math.imul(X0,W0)|0,p=Math.imul(X0,E0),y=y+Math.imul(Z0,D0)|0,w=w+Math.imul(Z0,C0)|0,w=w+Math.imul(G0,D0)|0,p=p+Math.imul(G0,C0)|0,y=y+Math.imul($0,R0)|0,w=w+Math.imul($0,P0)|0,w=w+Math.imul(Q0,R0)|0,p=p+Math.imul(Q0,P0)|0,y=y+Math.imul(e,M0)|0,w=w+Math.imul(e,S0)|0,w=w+Math.imul(r,M0)|0,p=p+Math.imul(r,S0)|0,y=y+Math.imul(t,q0)|0,w=w+Math.imul(t,j0)|0,w=w+Math.imul(m,q0)|0,p=p+Math.imul(m,j0)|0,y=y+Math.imul(u,g0)|0,w=w+Math.imul(u,_0)|0,w=w+Math.imul(n,g0)|0,p=p+Math.imul(n,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,B0)|0,w=w+Math.imul(l,x0)|0,p=p+Math.imul(l,B0)|0,y=y+Math.imul(c,w0)|0,w=w+Math.imul(c,p0)|0,w=w+Math.imul(h,w0)|0,p=p+Math.imul(h,p0)|0;var e0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(e0>>>26)|0,e0&=67108863,y=Math.imul(I0,W0),w=Math.imul(I0,E0),w=w+Math.imul(O0,W0)|0,p=Math.imul(O0,E0),y=y+Math.imul(U0,D0)|0,w=w+Math.imul(U0,C0)|0,w=w+Math.imul(X0,D0)|0,p=p+Math.imul(X0,C0)|0,y=y+Math.imul(Z0,R0)|0,w=w+Math.imul(Z0,P0)|0,w=w+Math.imul(G0,R0)|0,p=p+Math.imul(G0,P0)|0,y=y+Math.imul($0,M0)|0,w=w+Math.imul($0,S0)|0,w=w+Math.imul(Q0,M0)|0,p=p+Math.imul(Q0,S0)|0,y=y+Math.imul(e,q0)|0,w=w+Math.imul(e,j0)|0,w=w+Math.imul(r,q0)|0,p=p+Math.imul(r,j0)|0,y=y+Math.imul(t,g0)|0,w=w+Math.imul(t,_0)|0,w=w+Math.imul(m,g0)|0,p=p+Math.imul(m,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,B0)|0,w=w+Math.imul(n,x0)|0,p=p+Math.imul(n,B0)|0,y=y+Math.imul(b,w0)|0,w=w+Math.imul(b,p0)|0,w=w+Math.imul(l,w0)|0,p=p+Math.imul(l,p0)|0,y=y+Math.imul(c,c0)|0,w=w+Math.imul(c,h0)|0,w=w+Math.imul(h,c0)|0,p=p+Math.imul(h,h0)|0;var r0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(r0>>>26)|0,r0&=67108863,y=Math.imul(F0,W0),w=Math.imul(F0,E0),w=w+Math.imul(A0,W0)|0,p=Math.imul(A0,E0),y=y+Math.imul(I0,D0)|0,w=w+Math.imul(I0,C0)|0,w=w+Math.imul(O0,D0)|0,p=p+Math.imul(O0,C0)|0,y=y+Math.imul(U0,R0)|0,w=w+Math.imul(U0,P0)|0,w=w+Math.imul(X0,R0)|0,p=p+Math.imul(X0,P0)|0,y=y+Math.imul(Z0,M0)|0,w=w+Math.imul(Z0,S0)|0,w=w+Math.imul(G0,M0)|0,p=p+Math.imul(G0,S0)|0,y=y+Math.imul($0,q0)|0,w=w+Math.imul($0,j0)|0,w=w+Math.imul(Q0,q0)|0,p=p+Math.imul(Q0,j0)|0,y=y+Math.imul(e,g0)|0,w=w+Math.imul(e,_0)|0,w=w+Math.imul(r,g0)|0,p=p+Math.imul(r,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,B0)|0,w=w+Math.imul(m,x0)|0,p=p+Math.imul(m,B0)|0,y=y+Math.imul(u,w0)|0,w=w+Math.imul(u,p0)|0,w=w+Math.imul(n,w0)|0,p=p+Math.imul(n,p0)|0,y=y+Math.imul(b,c0)|0,w=w+Math.imul(b,h0)|0,w=w+Math.imul(l,c0)|0,p=p+Math.imul(l,h0)|0,y=y+Math.imul(c,b0)|0,w=w+Math.imul(c,l0)|0,w=w+Math.imul(h,b0)|0,p=p+Math.imul(h,l0)|0;var i0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(i0>>>26)|0,i0&=67108863,y=Math.imul(F0,D0),w=Math.imul(F0,C0),w=w+Math.imul(A0,D0)|0,p=Math.imul(A0,C0),y=y+Math.imul(I0,R0)|0,w=w+Math.imul(I0,P0)|0,w=w+Math.imul(O0,R0)|0,p=p+Math.imul(O0,P0)|0,y=y+Math.imul(U0,M0)|0,w=w+Math.imul(U0,S0)|0,w=w+Math.imul(X0,M0)|0,p=p+Math.imul(X0,S0)|0,y=y+Math.imul(Z0,q0)|0,w=w+Math.imul(Z0,j0)|0,w=w+Math.imul(G0,q0)|0,p=p+Math.imul(G0,j0)|0,y=y+Math.imul($0,g0)|0,w=w+Math.imul($0,_0)|0,w=w+Math.imul(Q0,g0)|0,p=p+Math.imul(Q0,_0)|0,y=y+Math.imul(e,x0)|0,w=w+Math.imul(e,B0)|0,w=w+Math.imul(r,x0)|0,p=p+Math.imul(r,B0)|0,y=y+Math.imul(t,w0)|0,w=w+Math.imul(t,p0)|0,w=w+Math.imul(m,w0)|0,p=p+Math.imul(m,p0)|0,y=y+Math.imul(u,c0)|0,w=w+Math.imul(u,h0)|0,w=w+Math.imul(n,c0)|0,p=p+Math.imul(n,h0)|0,y=y+Math.imul(b,b0)|0,w=w+Math.imul(b,l0)|0,w=w+Math.imul(l,b0)|0,p=p+Math.imul(l,l0)|0;var $$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+($$>>>26)|0,$$&=67108863,y=Math.imul(F0,R0),w=Math.imul(F0,P0),w=w+Math.imul(A0,R0)|0,p=Math.imul(A0,P0),y=y+Math.imul(I0,M0)|0,w=w+Math.imul(I0,S0)|0,w=w+Math.imul(O0,M0)|0,p=p+Math.imul(O0,S0)|0,y=y+Math.imul(U0,q0)|0,w=w+Math.imul(U0,j0)|0,w=w+Math.imul(X0,q0)|0,p=p+Math.imul(X0,j0)|0,y=y+Math.imul(Z0,g0)|0,w=w+Math.imul(Z0,_0)|0,w=w+Math.imul(G0,g0)|0,p=p+Math.imul(G0,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,B0)|0,w=w+Math.imul(Q0,x0)|0,p=p+Math.imul(Q0,B0)|0,y=y+Math.imul(e,w0)|0,w=w+Math.imul(e,p0)|0,w=w+Math.imul(r,w0)|0,p=p+Math.imul(r,p0)|0,y=y+Math.imul(t,c0)|0,w=w+Math.imul(t,h0)|0,w=w+Math.imul(m,c0)|0,p=p+Math.imul(m,h0)|0,y=y+Math.imul(u,b0)|0,w=w+Math.imul(u,l0)|0,w=w+Math.imul(n,b0)|0,p=p+Math.imul(n,l0)|0;var Q$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,y=Math.imul(F0,M0),w=Math.imul(F0,S0),w=w+Math.imul(A0,M0)|0,p=Math.imul(A0,S0),y=y+Math.imul(I0,q0)|0,w=w+Math.imul(I0,j0)|0,w=w+Math.imul(O0,q0)|0,p=p+Math.imul(O0,j0)|0,y=y+Math.imul(U0,g0)|0,w=w+Math.imul(U0,_0)|0,w=w+Math.imul(X0,g0)|0,p=p+Math.imul(X0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,B0)|0,w=w+Math.imul(G0,x0)|0,p=p+Math.imul(G0,B0)|0,y=y+Math.imul($0,w0)|0,w=w+Math.imul($0,p0)|0,w=w+Math.imul(Q0,w0)|0,p=p+Math.imul(Q0,p0)|0,y=y+Math.imul(e,c0)|0,w=w+Math.imul(e,h0)|0,w=w+Math.imul(r,c0)|0,p=p+Math.imul(r,h0)|0,y=y+Math.imul(t,b0)|0,w=w+Math.imul(t,l0)|0,w=w+Math.imul(m,b0)|0,p=p+Math.imul(m,l0)|0;var Y$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,y=Math.imul(F0,q0),w=Math.imul(F0,j0),w=w+Math.imul(A0,q0)|0,p=Math.imul(A0,j0),y=y+Math.imul(I0,g0)|0,w=w+Math.imul(I0,_0)|0,w=w+Math.imul(O0,g0)|0,p=p+Math.imul(O0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,B0)|0,w=w+Math.imul(X0,x0)|0,p=p+Math.imul(X0,B0)|0,y=y+Math.imul(Z0,w0)|0,w=w+Math.imul(Z0,p0)|0,w=w+Math.imul(G0,w0)|0,p=p+Math.imul(G0,p0)|0,y=y+Math.imul($0,c0)|0,w=w+Math.imul($0,h0)|0,w=w+Math.imul(Q0,c0)|0,p=p+Math.imul(Q0,h0)|0,y=y+Math.imul(e,b0)|0,w=w+Math.imul(e,l0)|0,w=w+Math.imul(r,b0)|0,p=p+Math.imul(r,l0)|0;var Z$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,y=Math.imul(F0,g0),w=Math.imul(F0,_0),w=w+Math.imul(A0,g0)|0,p=Math.imul(A0,_0),y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,B0)|0,w=w+Math.imul(O0,x0)|0,p=p+Math.imul(O0,B0)|0,y=y+Math.imul(U0,w0)|0,w=w+Math.imul(U0,p0)|0,w=w+Math.imul(X0,w0)|0,p=p+Math.imul(X0,p0)|0,y=y+Math.imul(Z0,c0)|0,w=w+Math.imul(Z0,h0)|0,w=w+Math.imul(G0,c0)|0,p=p+Math.imul(G0,h0)|0,y=y+Math.imul($0,b0)|0,w=w+Math.imul($0,l0)|0,w=w+Math.imul(Q0,b0)|0,p=p+Math.imul(Q0,l0)|0;var G$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(G$>>>26)|0,G$&=67108863,y=Math.imul(F0,x0),w=Math.imul(F0,B0),w=w+Math.imul(A0,x0)|0,p=Math.imul(A0,B0),y=y+Math.imul(I0,w0)|0,w=w+Math.imul(I0,p0)|0,w=w+Math.imul(O0,w0)|0,p=p+Math.imul(O0,p0)|0,y=y+Math.imul(U0,c0)|0,w=w+Math.imul(U0,h0)|0,w=w+Math.imul(X0,c0)|0,p=p+Math.imul(X0,h0)|0,y=y+Math.imul(Z0,b0)|0,w=w+Math.imul(Z0,l0)|0,w=w+Math.imul(G0,b0)|0,p=p+Math.imul(G0,l0)|0;var V$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(V$>>>26)|0,V$&=67108863,y=Math.imul(F0,w0),w=Math.imul(F0,p0),w=w+Math.imul(A0,w0)|0,p=Math.imul(A0,p0),y=y+Math.imul(I0,c0)|0,w=w+Math.imul(I0,h0)|0,w=w+Math.imul(O0,c0)|0,p=p+Math.imul(O0,h0)|0,y=y+Math.imul(U0,b0)|0,w=w+Math.imul(U0,l0)|0,w=w+Math.imul(X0,b0)|0,p=p+Math.imul(X0,l0)|0;var U$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(U$>>>26)|0,U$&=67108863,y=Math.imul(F0,c0),w=Math.imul(F0,h0),w=w+Math.imul(A0,c0)|0,p=Math.imul(A0,h0),y=y+Math.imul(I0,b0)|0,w=w+Math.imul(I0,l0)|0,w=w+Math.imul(O0,b0)|0,p=p+Math.imul(O0,l0)|0;var X$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(X$>>>26)|0,X$&=67108863,y=Math.imul(F0,b0),w=Math.imul(F0,l0),w=w+Math.imul(A0,b0)|0,p=Math.imul(A0,l0);var K$=(B+y|0)+((w&8191)<<13)|0;return B=(p+(w>>>13)|0)+(K$>>>26)|0,K$&=67108863,x[0]=o0,x[1]=u0,x[2]=n0,x[3]=s0,x[4]=t0,x[5]=m0,x[6]=a0,x[7]=e0,x[8]=r0,x[9]=i0,x[10]=$$,x[11]=Q$,x[12]=Y$,x[13]=Z$,x[14]=G$,x[15]=V$,x[16]=U$,x[17]=X$,x[18]=K$,B!==0&&(x[19]=B,g.length++),g};Math.imul||(E=W);function T(j,k,g){g.negative=k.negative^j.negative,g.length=j.length+k.length;for(var _=0,N=0,x=0;x>>26)|0,N+=B>>>26,B&=67108863}g.words[x]=y,_=B,B=N}return _!==0?g.words[x]=_:g.length--,g.strip()}function D(j,k,g){var _=new C;return _.mulp(j,k,g)}U.prototype.mulTo=function(j,k){var g,_=this.length+j.length;return this.length===10&&j.length===10?g=E(this,j,k):_<63?g=W(this,j,k):_<1024?g=T(this,j,k):g=D(this,j,k),g};function C(j,k){this.x=j,this.y=k}C.prototype.makeRBT=function(j){for(var k=new Array(j),g=U.prototype._countBits(j)-1,_=0;_>=1;return _},C.prototype.permute=function(j,k,g,_,N,x){for(var B=0;B>>1)N++;return 1<>>13,g[2*x+1]=N&8191,N=N>>>13;for(x=2*k;x<_;++x)g[x]=0;G(N===0),G((N&-8192)===0)},C.prototype.stub=function(j){for(var k=new Array(j),g=0;g>=26,k+=_/67108864|0,k+=N>>>26,this.words[g]=N&67108863}return k!==0&&(this.words[g]=k,this.length++),this},U.prototype.muln=function(j){return this.clone().imuln(j)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(j){var k=H(j);if(k.length===0)return new U(1);for(var g=this,_=0;_=0);var k=j%26,g=(j-k)/26,_=67108863>>>26-k<<26-k,N;if(k!==0){var x=0;for(N=0;N>>26-k}x&&(this.words[N]=x,this.length++)}if(g!==0){for(N=this.length-1;N>=0;N--)this.words[N+g]=this.words[N];for(N=0;N=0);var _;k?_=(k-k%26)/26:_=0;var N=j%26,x=Math.min((j-N)/26,this.length),B=67108863^67108863>>>N<x)for(this.length-=x,w=0;w=0&&(p!==0||w>=_);w--){var f=this.words[w]|0;this.words[w]=p<<26-N|f>>>N,p=f&B}return y&&p!==0&&(y.words[y.length++]=p),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},U.prototype.ishrn=function(j,k,g){return G(this.negative===0),this.iushrn(j,k,g)},U.prototype.shln=function(j){return this.clone().ishln(j)},U.prototype.ushln=function(j){return this.clone().iushln(j)},U.prototype.shrn=function(j){return this.clone().ishrn(j)},U.prototype.ushrn=function(j){return this.clone().iushrn(j)},U.prototype.testn=function(j){G(typeof j=="number"&&j>=0);var k=j%26,g=(j-k)/26,_=1<=0);var k=j%26,g=(j-k)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(k!==0&&g++,this.length=Math.min(g,this.length),k!==0){var _=67108863^67108863>>>k<=67108864;k++)this.words[k]-=67108864,k===this.length-1?this.words[k+1]=1:this.words[k+1]++;return this.length=Math.max(this.length,k+1),this},U.prototype.isubn=function(j){if(G(typeof j=="number"),G(j<67108864),j<0)return this.iaddn(-j);if(this.negative!==0)return this.negative=0,this.iaddn(j),this.negative=1,this;if(this.words[0]-=j,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var k=0;k>26)-(y/67108864|0),this.words[N+g]=x&67108863}for(;N>26,this.words[N+g]=x&67108863;if(B===0)return this.strip();for(G(B===-1),B=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},U.prototype._wordDiv=function(j,k){var g=this.length-j.length,_=this.clone(),N=j,x=N.words[N.length-1]|0,B=this._countBits(x);g=26-B,g!==0&&(N=N.ushln(g),_.iushln(g),x=N.words[N.length-1]|0);var y=_.length-N.length,w;if(k!=="mod"){w=new U(null),w.length=y+1,w.words=new Array(w.length);for(var p=0;p=0;c--){var h=(_.words[N.length+c]|0)*67108864+(_.words[N.length+c-1]|0);for(h=Math.min(h/x|0,67108863),_._ishlnsubmul(N,h,c);_.negative!==0;)h--,_.negative=0,_._ishlnsubmul(N,1,c),_.isZero()||(_.negative^=1);w&&(w.words[c]=h)}return w&&w.strip(),_.strip(),k!=="div"&&g!==0&&_.iushrn(g),{div:w||null,mod:_}},U.prototype.divmod=function(j,k,g){if(G(!j.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var _,N,x;return this.negative!==0&&j.negative===0?(x=this.neg().divmod(j,k),k!=="mod"&&(_=x.div.neg()),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.iadd(j)),{div:_,mod:N}):this.negative===0&&j.negative!==0?(x=this.divmod(j.neg(),k),k!=="mod"&&(_=x.div.neg()),{div:_,mod:x.mod}):(this.negative&j.negative)!==0?(x=this.neg().divmod(j.neg(),k),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.isub(j)),{div:x.div,mod:N}):j.length>this.length||this.cmp(j)<0?{div:new U(0),mod:this}:j.length===1?k==="div"?{div:this.divn(j.words[0]),mod:null}:k==="mod"?{div:null,mod:new U(this.modn(j.words[0]))}:{div:this.divn(j.words[0]),mod:new U(this.modn(j.words[0]))}:this._wordDiv(j,k)},U.prototype.div=function(j){return this.divmod(j,"div",!1).div},U.prototype.mod=function(j){return this.divmod(j,"mod",!1).mod},U.prototype.umod=function(j){return this.divmod(j,"mod",!0).mod},U.prototype.divRound=function(j){var k=this.divmod(j);if(k.mod.isZero())return k.div;var g=k.div.negative!==0?k.mod.isub(j):k.mod,_=j.ushrn(1),N=j.andln(1),x=g.cmp(_);return x<0||N===1&&x===0?k.div:k.div.negative!==0?k.div.isubn(1):k.div.iaddn(1)},U.prototype.modn=function(j){G(j<=67108863);for(var k=(1<<26)%j,g=0,_=this.length-1;_>=0;_--)g=(k*g+(this.words[_]|0))%j;return g},U.prototype.idivn=function(j){G(j<=67108863);for(var k=0,g=this.length-1;g>=0;g--){var _=(this.words[g]|0)+k*67108864;this.words[g]=_/j|0,k=_%j}return this.strip()},U.prototype.divn=function(j){return this.clone().idivn(j)},U.prototype.egcd=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=new U(0),B=new U(1),y=0;k.isEven()&&g.isEven();)k.iushrn(1),g.iushrn(1),++y;for(var w=g.clone(),p=k.clone();!k.isZero();){for(var f=0,c=1;(k.words[0]&c)===0&&f<26;++f,c<<=1);if(f>0)for(k.iushrn(f);f-- >0;)(_.isOdd()||N.isOdd())&&(_.iadd(w),N.isub(p)),_.iushrn(1),N.iushrn(1);for(var h=0,d=1;(g.words[0]&d)===0&&h<26;++h,d<<=1);if(h>0)for(g.iushrn(h);h-- >0;)(x.isOdd()||B.isOdd())&&(x.iadd(w),B.isub(p)),x.iushrn(1),B.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(x),N.isub(B)):(g.isub(k),x.isub(_),B.isub(N))}return{a:x,b:B,gcd:g.iushln(y)}},U.prototype._invmp=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=g.clone();k.cmpn(1)>0&&g.cmpn(1)>0;){for(var B=0,y=1;(k.words[0]&y)===0&&B<26;++B,y<<=1);if(B>0)for(k.iushrn(B);B-- >0;)_.isOdd()&&_.iadd(x),_.iushrn(1);for(var w=0,p=1;(g.words[0]&p)===0&&w<26;++w,p<<=1);if(w>0)for(g.iushrn(w);w-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(N)):(g.isub(k),N.isub(_))}var f;return k.cmpn(1)===0?f=_:f=N,f.cmpn(0)<0&&f.iadd(j),f},U.prototype.gcd=function(j){if(this.isZero())return j.abs();if(j.isZero())return this.abs();var k=this.clone(),g=j.clone();k.negative=0,g.negative=0;for(var _=0;k.isEven()&&g.isEven();_++)k.iushrn(1),g.iushrn(1);do{for(;k.isEven();)k.iushrn(1);for(;g.isEven();)g.iushrn(1);var N=k.cmp(g);if(N<0){var x=k;k=g,g=x}else if(N===0||g.cmpn(1)===0)break;k.isub(g)}while(!0);return g.iushln(_)},U.prototype.invm=function(j){return this.egcd(j).a.umod(j)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(j){return this.words[0]&j},U.prototype.bincn=function(j){G(typeof j=="number");var k=j%26,g=(j-k)/26,_=1<>>26,B&=67108863,this.words[x]=B}return N!==0&&(this.words[x]=N,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(j){var k=j<0;if(this.negative!==0&&!k)return-1;if(this.negative===0&&k)return 1;this.strip();var g;if(this.length>1)g=1;else{k&&(j=-j),G(j<=67108863,"Number is too big");var _=this.words[0]|0;g=_===j?0:_j.length)return 1;if(this.length=0;g--){var _=this.words[g]|0,N=j.words[g]|0;if(_!==N){_N&&(k=1);break}}return k},U.prototype.gtn=function(j){return this.cmpn(j)===1},U.prototype.gt=function(j){return this.cmp(j)===1},U.prototype.gten=function(j){return this.cmpn(j)>=0},U.prototype.gte=function(j){return this.cmp(j)>=0},U.prototype.ltn=function(j){return this.cmpn(j)===-1},U.prototype.lt=function(j){return this.cmp(j)===-1},U.prototype.lten=function(j){return this.cmpn(j)<=0},U.prototype.lte=function(j){return this.cmp(j)<=0},U.prototype.eqn=function(j){return this.cmpn(j)===0},U.prototype.eq=function(j){return this.cmp(j)===0},U.red=function(j){return new v(j)},U.prototype.toRed=function(j){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),j.convertTo(this)._forceRed(j)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(j){return this.red=j,this},U.prototype.forceRed=function(j){return G(!this.red,"Already a number in reduction context"),this._forceRed(j)},U.prototype.redAdd=function(j){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,j)},U.prototype.redIAdd=function(j){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,j)},U.prototype.redSub=function(j){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,j)},U.prototype.redISub=function(j){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,j)},U.prototype.redShl=function(j){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,j)},U.prototype.redMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.mul(this,j)},U.prototype.redIMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.imul(this,j)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(j){return G(this.red&&!j.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,j)};var L={k256:null,p224:null,p192:null,p25519:null};function R(j,k){this.name=j,this.p=new U(k,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}R.prototype._tmp=function(){var j=new U(null);return j.words=new Array(Math.ceil(this.n/13)),j},R.prototype.ireduce=function(j){var k=j,g;do this.split(k,this.tmp),k=this.imulK(k),k=k.iadd(this.tmp),g=k.bitLength();while(g>this.n);var _=g0?k.isub(this.p):k.strip!==void 0?k.strip():k._strip(),k},R.prototype.split=function(j,k){j.iushrn(this.n,0,k)},R.prototype.imulK=function(j){return j.imul(this.k)};function P(){R.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(P,R),P.prototype.split=function(j,k){for(var g=4194303,_=Math.min(j.length,9),N=0;N<_;N++)k.words[N]=j.words[N];if(k.length=_,j.length<=9){j.words[0]=0,j.length=1;return}var x=j.words[9];for(k.words[k.length++]=x&g,N=10;N>>22,x=B}x>>>=22,j.words[N-10]=x,x===0&&j.length>10?j.length-=10:j.length-=9},P.prototype.imulK=function(j){j.words[j.length]=0,j.words[j.length+1]=0,j.length+=2;for(var k=0,g=0;g>>=26,j.words[g]=N,k=_}return k!==0&&(j.words[j.length++]=k),j},U._prime=function(j){if(L[j])return L[j];var k;if(j==="k256")k=new P;else if(j==="p224")k=new z;else if(j==="p192")k=new M;else if(j==="p25519")k=new S;else throw new Error("Unknown prime "+j);return L[j]=k,k};function v(j){if(typeof j=="string"){var k=U._prime(j);this.m=k.p,this.prime=k}else G(j.gtn(1),"modulus must be greater than 1"),this.m=j,this.prime=null}v.prototype._verify1=function(j){G(j.negative===0,"red works only with positives"),G(j.red,"red works only with red numbers")},v.prototype._verify2=function(j,k){G((j.negative|k.negative)===0,"red works only with positives"),G(j.red&&j.red===k.red,"red works only with red numbers")},v.prototype.imod=function(j){return this.prime?this.prime.ireduce(j)._forceRed(this):j.umod(this.m)._forceRed(this)},v.prototype.neg=function(j){return j.isZero()?j.clone():this.m.sub(j)._forceRed(this)},v.prototype.add=function(j,k){this._verify2(j,k);var g=j.add(k);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},v.prototype.iadd=function(j,k){this._verify2(j,k);var g=j.iadd(k);return g.cmp(this.m)>=0&&g.isub(this.m),g},v.prototype.sub=function(j,k){this._verify2(j,k);var g=j.sub(k);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},v.prototype.isub=function(j,k){this._verify2(j,k);var g=j.isub(k);return g.cmpn(0)<0&&g.iadd(this.m),g},v.prototype.shl=function(j,k){return this._verify1(j),this.imod(j.ushln(k))},v.prototype.imul=function(j,k){return this._verify2(j,k),this.imod(j.imul(k))},v.prototype.mul=function(j,k){return this._verify2(j,k),this.imod(j.mul(k))},v.prototype.isqr=function(j){return this.imul(j,j.clone())},v.prototype.sqr=function(j){return this.mul(j,j)},v.prototype.sqrt=function(j){if(j.isZero())return j.clone();var k=this.m.andln(3);if(G(k%2===1),k===3){var g=this.m.add(new U(1)).iushrn(2);return this.pow(j,g)}for(var _=this.m.subn(1),N=0;!_.isZero()&&_.andln(1)===0;)N++,_.iushrn(1);G(!_.isZero());var x=new U(1).toRed(this),B=x.redNeg(),y=this.m.subn(1).iushrn(1),w=this.m.bitLength();for(w=new U(2*w*w).toRed(this);this.pow(w,y).cmp(B)!==0;)w.redIAdd(B);for(var p=this.pow(w,_),f=this.pow(j,_.addn(1).iushrn(1)),c=this.pow(j,_),h=N;c.cmp(x)!==0;){for(var d=c,b=0;d.cmp(x)!==0;b++)d=d.redSqr();G(b=0;N--){for(var p=k.words[N],f=w-1;f>=0;f--){var c=p>>f&1;if(x!==_[0]&&(x=this.sqr(x)),c===0&&B===0){y=0;continue}B<<=1,B|=c,y++,!(y!==g&&(N!==0||f!==0))&&(x=this.mul(x,_[B]),y=0,B=0)}w=26}return x},v.prototype.convertTo=function(j){var k=j.umod(this.m);return k===j?k.clone():k},v.prototype.convertFrom=function(j){var k=j.clone();return k.red=null,k},U.mont=function(j){return new q(j)};function q(j){v.call(this,j),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(q,v),q.prototype.convertTo=function(j){return this.imod(j.ushln(this.shift))},q.prototype.convertFrom=function(j){var k=this.imod(j.mul(this.rinv));return k.red=null,k},q.prototype.imul=function(j,k){if(j.isZero()||k.isZero())return j.words[0]=0,j.length=1,j;var g=j.imul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.mul=function(j,k){if(j.isZero()||k.isZero())return new U(0)._forceRed(this);var g=j.mul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.invm=function(j){var k=this.imod(j._invmp(this.m).mul(this.r2));return k._forceRed(this)}})(typeof Q>"u"||Q,$)}}),{CryptoHasher:sY}=globalThis.Bun,tY=q$({"node_modules/public-encrypt/withPublic.js"($,Q){var Y=nY(),Z=k$().Buffer;function G(V,U){return Z.from(V.toRed(Y.mont(U.modulus)).redPow(new Y(U.publicExponent)).fromRed().toArray())}Q.exports=G}}),mY=q$({"node_modules/public-encrypt/publicEncrypt.js"($,Q){var Y=pY(),Z=g$(),G=o$(),V=oY(),U=uY(),X=nY(),K=tY(),I=hQ(),O=k$().Buffer;Q.exports=function(H,W,E){var T;H.padding?T=H.padding:E?T=1:T=4;var D=Y(H),C;if(T===4)C=J(D,W);else if(T===1)C=F(D,W,E);else if(T===3){if(C=new X(W),C.cmp(D.modulus)>=0)throw new Error("data too long for modulus")}else throw new Error("unknown padding");return E?I(C,D):K(C,D)};function J(H,W){var E=H.modulus.byteLength(),T=W.length,D=G("sha1").update(O.alloc(0)).digest(),C=D.length,L=2*C;if(T>E-L-2)throw new Error("message too long");var R=O.alloc(E-T-L-2),P=E-C-1,z=Z(C),M=U(O.concat([D,R,O.alloc(1,1),W],P),V(z,P)),S=U(z,V(M,C));return new X(O.concat([O.alloc(1),S,M],E))}function F(H,W,E){var T=W.length,D=H.modulus.byteLength();if(T>D-11)throw new Error("message too long");var C;return E?C=O.alloc(D-T-3,255):C=A(D-T-3),new X(O.concat([O.from([0,E?1:2]),C,O.alloc(1),W],D))}function A(H){for(var W=O.allocUnsafe(H),E=0,T=Z(H*2),D=0,C;ED||new V(H).cmp(T.modulus)>=0)throw new Error("decryption error");var C;W?C=K(new V(H),T):C=U(H,T);var L=I.alloc(D-C.length);if(C=I.concat([L,C],D),E===4)return O(T,C);if(E===1)return J(T,C,W);if(E===3)return C;throw new Error("unknown padding")};function O(A,H){var W=A.modulus.byteLength(),E=X("sha1").update(I.alloc(0)).digest(),T=E.length;if(H[0]!==0)throw new Error("decryption error");var D=H.slice(1,T+1),C=H.slice(T+1),L=G(D,Z(C,T)),R=G(C,Z(L,W-T-1));if(F(E,R.slice(0,T)))throw new Error("decryption error");for(var P=T;R[P]===0;)P++;if(R[P++]!==1)throw new Error("decryption error");return R.slice(P)}function J(A,H,W){for(var E=H.slice(0,2),T=2,D=0;H[T++]!==0;)if(T>=H.length){D++;break}var C=H.slice(2,T-1);if((E.toString("hex")!=="0002"&&!W||E.toString("hex")!=="0001"&&W)&&D++,C.length<8&&D++,D)throw new Error("decryption error");return H.slice(T)}function F(A,H){A=I.from(A),H=I.from(H);var W=0,E=A.length;A.length!==H.length&&(W++,E=Math.min(A.length,H.length));for(var T=-1;++TV||J<0)throw new TypeError("offset must be a uint32");if(J>G||J>F)throw new RangeError("offset out of range")}function X(J,F,A){if(typeof J!="number"||J!==J)throw new TypeError("size must be a number");if(J>V||J<0)throw new TypeError("size must be a uint32");if(J+F>A||J>G)throw new RangeError("buffer too small")}$.randomFill=K,$.randomFillSync=O;function K(J,F,A,H){if(!Z.isBuffer(J)&&!(J instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if(typeof F=="function")H=F,F=0,A=J.length;else if(typeof A=="function")H=A,A=J.length-F;else if(typeof H!="function")throw new TypeError('"cb" argument must be a function');return U(F,J.length),X(A,F,J.length),I(J,F,A,H)}function I(J,F,A,H){if(H){Y(A,function(E,T){if(E)return H(E);T.copy(J,F),H(null,J)});return}var W=Y(A);return W.copy(J,F),J}function O(J,F,A){if(typeof F>"u"&&(F=0),!Z.isBuffer(J)&&!(J instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return U(F,J.length),A===void 0&&(A=J.length-F),X(A,F,J.length),I(J,F,A)}}}),iY=q$({"node_modules/crypto-browserify/index.js"($){$.randomBytes=$.rng=$.pseudoRandomBytes=$.prng=g$(),$.createHash=o$(),$.Hash=$.createHash.Hash,$.createHmac=$.Hmac=s$();var Q=m$(),Y=Object.keys(Q),Z=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(Y);$.getHashes=function(){return Z};var G=QQ();$.pbkdf2=G.pbkdf2,$.pbkdf2Sync=G.pbkdf2Sync;var V=kQ();$.Cipher=V.Cipher,$.createCipher=V.createCipher,$.Cipheriv=V.Cipheriv,$.createCipheriv=V.createCipheriv,$.Decipher=V.Decipher,$.createDecipher=V.createDecipher,$.Decipheriv=V.Decipheriv,$.createDecipheriv=V.createDecipheriv,$.getCiphers=V.getCiphers,$.listCiphers=V.listCiphers;var U=fQ();$.DiffieHellmanGroup=U.DiffieHellmanGroup,$.createDiffieHellmanGroup=U.createDiffieHellmanGroup,$.getDiffieHellman=U.getDiffieHellman,$.createDiffieHellman=U.createDiffieHellman,$.DiffieHellman=U.DiffieHellman;var X=dY();$.createSign=X.createSign,$.Sign=X.Sign,$.createVerify=X.createVerify,$.Verify=X.Verify,$.createECDH=lY();var K=eY();$.publicEncrypt=K.publicEncrypt,$.privateEncrypt=K.privateEncrypt,$.publicDecrypt=K.publicDecrypt,$.privateDecrypt=K.privateDecrypt,$.getRandomValues=(O)=>H$.getRandomValues(O);var I=rY();$.randomFill=I.randomFill,$.randomFillSync=I.randomFillSync,$.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join(` +`))},$.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}}}),$Z={...iY(),[Symbol.for("CommonJS")]:0},T$="buffer",QZ=($)=>H$.getRandomValues($),YZ=()=>H$.randomUUID(),D$="timingSafeEqual"in H$?($,Q)=>{let{byteLength:Y}=$,{byteLength:Z}=Q;if(typeof Y!="number"||typeof Z!="number")throw new TypeError("Input must be an array buffer view");if(Y!==Z)throw new RangeError("Input buffers must have the same length");return H$.timingSafeEqual($,Q)}:void 0,ZZ="scryptSync"in H$?($,Q,Y,Z)=>{let G=H$.scryptSync($,Q,Y,Z);return T$!=="buffer"?new F$(G).toString(T$):new F$(G)}:void 0,GZ="scryptSync"in H$?function($,Q,Y,Z,G){if(typeof Z=="function"&&(G=Z,Z=void 0),typeof G!="function"){var V=new TypeError("callback must be a function");throw V.code="ERR_INVALID_CALLBACK",V}try{let U=H$.scryptSync($,Q,Y,Z);process.nextTick(G,null,T$!=="buffer"?new F$(U).toString(T$):new F$(U))}catch(U){throw U}}:void 0;D$&&(Object.defineProperty(D$,"name",{value:"::bunternal::"}),Object.defineProperty(GZ,"name",{value:"::bunternal::"}),Object.defineProperty(ZZ,"name",{value:"::bunternal::"}));var C$=H$;j$($Z,{DEFAULT_ENCODING:()=>T$,getRandomValues:()=>QZ,randomUUID:()=>YZ,scrypt:()=>GZ,scryptSync:()=>ZZ,timingSafeEqual:()=>D$,webcrypto:()=>C$,subtle:()=>C$.subtle});var{randomBytes:VZ,rng:UZ,pseudoRandomBytes:XZ,prng:KZ,Hash:IZ,createHash:OZ,createHmac:JZ,Hmac:FZ,getHashes:AZ,pbkdf2:HZ,pbkdf2Sync:WZ,Cipher:EZ,createCipher:TZ,Cipheriv:DZ,createCipheriv:CZ,Decipher:LZ,createDecipher:RZ,Decipheriv:PZ,createDecipheriv:zZ,getCiphers:MZ,listCiphers:SZ,DiffieHellmanGroup:vZ,createDiffieHellmanGroup:qZ,getDiffieHellman:jZ,createDiffieHellman:kZ,DiffieHellman:gZ,createSign:_Z,Sign:NZ,createVerify:xZ,Verify:BZ,createECDH:yZ,publicEncrypt:wZ,privateEncrypt:pZ,publicDecrypt:fZ,privateDecrypt:cZ,randomFill:hZ,randomFillSync:dZ,createCredentials:bZ,constants:lZ}=$Z;var uZ=$Z;/*! safe-buffer. MIT License. Feross Aboukhadijeh */export{C$ as webcrypto,D$ as timingSafeEqual,ZZ as scryptSync,GZ as scrypt,UZ as rng,YZ as randomUUID,dZ as randomFillSync,hZ as randomFill,VZ as randomBytes,wZ as publicEncrypt,fZ as publicDecrypt,XZ as pseudoRandomBytes,KZ as prng,pZ as privateEncrypt,cZ as privateDecrypt,WZ as pbkdf2Sync,HZ as pbkdf2,SZ as listCiphers,QZ as getRandomValues,AZ as getHashes,jZ as getDiffieHellman,MZ as getCiphers,uZ as default,xZ as createVerify,_Z as createSign,JZ as createHmac,OZ as createHash,yZ as createECDH,qZ as createDiffieHellmanGroup,kZ as createDiffieHellman,zZ as createDecipheriv,RZ as createDecipher,bZ as createCredentials,CZ as createCipheriv,TZ as createCipher,lZ as constants,BZ as Verify,NZ as Sign,FZ as Hmac,IZ as Hash,vZ as DiffieHellmanGroup,gZ as DiffieHellman,PZ as Decipheriv,LZ as Decipher,T$ as DEFAULT_ENCODING,DZ as Cipheriv,EZ as Cipher}; diff --git a/src/js/out/modules/node/dns.promises.js b/src/js/out/modules/node/dns.promises.js index f239935d5..cbb58c4b7 100644 --- a/src/js/out/modules/node/dns.promises.js +++ b/src/js/out/modules/node/dns.promises.js @@ -1,4 +1,5 @@ -var { promises } = import.meta.require("node:dns"), { +import {promises} from "node:dns"; +var { lookup, lookupService, resolve, diff --git a/src/js/out/modules/node/events.js b/src/js/out/modules/node/events.js index 5991aba52..cd087f5d1 100644 --- a/src/js/out/modules/node/events.js +++ b/src/js/out/modules/node/events.js @@ -123,7 +123,7 @@ var EventEmitter = function(opts) { }, checkListener = function(listener) { if (typeof listener !== "function") throw new TypeError("The listener must be a function"); -}, { isPromise, Array, Object: Object2 } = import.meta.primordials, SymbolFor = Symbol.for, ObjectDefineProperty = Object2.defineProperty, kCapture = Symbol("kCapture"), kErrorMonitor = SymbolFor("events.errorMonitor"), kMaxEventTargetListeners = Symbol("events.maxEventTargetListeners"), kMaxEventTargetListenersWarned = Symbol("events.maxEventTargetListenersWarned"), kWatermarkData = SymbolFor("nodejs.watermarkData"), kRejection = SymbolFor("nodejs.rejection"), captureRejectionSymbol = SymbolFor("nodejs.rejection"), ArrayPrototypeSlice = Array.prototype.slice, defaultMaxListeners = 10, EventEmitterPrototype = EventEmitter.prototype; +}, { isPromise, Array, Object: Object2 } = globalThis[Symbol.for("Bun.lazy")]("primordials"), SymbolFor = Symbol.for, ObjectDefineProperty = Object2.defineProperty, kCapture = Symbol("kCapture"), kErrorMonitor = SymbolFor("events.errorMonitor"), kMaxEventTargetListeners = Symbol("events.maxEventTargetListeners"), kMaxEventTargetListenersWarned = Symbol("events.maxEventTargetListenersWarned"), kWatermarkData = SymbolFor("nodejs.watermarkData"), kRejection = SymbolFor("nodejs.rejection"), captureRejectionSymbol = SymbolFor("nodejs.rejection"), ArrayPrototypeSlice = Array.prototype.slice, defaultMaxListeners = 10, EventEmitterPrototype = EventEmitter.prototype; EventEmitterPrototype._events = void 0; EventEmitterPrototype._eventsCount = 0; EventEmitterPrototype._maxListeners = void 0; @@ -318,7 +318,6 @@ Object2.defineProperties(EventEmitter, { }); EventEmitter.init = EventEmitter; EventEmitter[Symbol.for("CommonJS")] = 0; -var events_default = EventEmitter; class AbortError extends Error { constructor(message = "The operation was aborted", options = void 0) { @@ -334,8 +333,17 @@ class EventEmitterAsyncResource extends EventEmitter { throwNotImplemented("EventEmitterAsyncResource", 1832); } } -EventEmitter.EventEmitterAsyncResource = EventEmitterAsyncResource; +var usingDomains = !1; +Object2.assign(EventEmitter, { once, on, getEventListeners, setMaxListeners, listenerCount, EventEmitterAsyncResource }); +var events_default = EventEmitter; export { + usingDomains, + setMaxListeners, + once, + on, + listenerCount, + getEventListeners, events_default as default, - EventEmitterAsyncResource + captureRejectionSymbol, + EventEmitter }; diff --git a/src/js/out/modules/node/fs.js b/src/js/out/modules/node/fs.js index cc3763cfc..6c8269d59 100644 --- a/src/js/out/modules/node/fs.js +++ b/src/js/out/modules/node/fs.js @@ -1,4 +1,7 @@ -var {EventEmitter } = import.meta.require("node:stream"); +import {EventEmitter} from "node:events"; +import {default as default2} from "node:fs/promises"; +import promises2 from "node:fs/promises"; +import * as Stream from "node:stream"; var callbackify = function(fsFunction, args) { try { const result = fsFunction.apply(fs, args.slice(0, args.length - 1)), callback = args[args.length - 1]; @@ -16,7 +19,8 @@ function createReadStream(path, options) { function createWriteStream(path, options) { return new WriteStream(path, options); } -var { direct, isPromise, isCallable } = import.meta.primordials, promises = import.meta.require("node:fs/promises"), { Readable, NativeWritable, _getNativeReadableStreamPrototype, eos: eos_ } = import.meta.require("node:stream"), NativeReadable = _getNativeReadableStreamPrototype(2, Readable), fs = Bun.fs(), debug = process.env.DEBUG ? console.log : () => { +import {constants} from "node:fs/promises"; +var ReadStream, WriteStream, { direct, isPromise, isCallable } = globalThis[Symbol.for("Bun.lazy")]("primordials"), fs = Bun.fs(), debug = process.env.DEBUG ? console.log : () => { }; class FSWatcher extends EventEmitter { @@ -131,7 +135,7 @@ var access = function access2(...args) { callbackify(fs.lutimesSync, args); }, accessSync = fs.accessSync.bind(fs), appendFileSync = fs.appendFileSync.bind(fs), closeSync = fs.closeSync.bind(fs), copyFileSync = fs.copyFileSync.bind(fs), existsSync = fs.existsSync.bind(fs), chownSync = fs.chownSync.bind(fs), chmodSync = fs.chmodSync.bind(fs), fchmodSync = fs.fchmodSync.bind(fs), fchownSync = fs.fchownSync.bind(fs), fstatSync = fs.fstatSync.bind(fs), fsyncSync = fs.fsyncSync.bind(fs), ftruncateSync = fs.ftruncateSync.bind(fs), futimesSync = fs.futimesSync.bind(fs), lchmodSync = fs.lchmodSync.bind(fs), lchownSync = fs.lchownSync.bind(fs), linkSync = fs.linkSync.bind(fs), lstatSync = fs.lstatSync.bind(fs), mkdirSync = fs.mkdirSync.bind(fs), mkdtempSync = fs.mkdtempSync.bind(fs), openSync = fs.openSync.bind(fs), readSync = fs.readSync.bind(fs), writeSync = fs.writeSync.bind(fs), readdirSync = fs.readdirSync.bind(fs), readFileSync = fs.readFileSync.bind(fs), writeFileSync = fs.writeFileSync.bind(fs), readlinkSync = fs.readlinkSync.bind(fs), realpathSync = fs.realpathSync.bind(fs), renameSync = fs.renameSync.bind(fs), statSync = fs.statSync.bind(fs), symlinkSync = fs.symlinkSync.bind(fs), truncateSync = fs.truncateSync.bind(fs), unlinkSync = fs.unlinkSync.bind(fs), utimesSync = fs.utimesSync.bind(fs), lutimesSync = fs.lutimesSync.bind(fs), rmSync = fs.rmSync.bind(fs), rmdirSync = fs.rmdirSync.bind(fs), Dirent = fs.Dirent, Stats = fs.Stats, watch = function watch2(path, options, listener) { return new FSWatcher(path, options, listener); -}, promises = import.meta.require("node:fs/promises"), readStreamPathFastPathSymbol = Symbol.for("Bun.Node.readStreamPathFastPath"), readStreamSymbol = Symbol.for("Bun.NodeReadStream"), readStreamPathOrFdSymbol = Symbol.for("Bun.NodeReadStreamPathOrFd"), writeStreamSymbol = Symbol.for("Bun.NodeWriteStream"), writeStreamPathFastPathSymbol = Symbol.for("Bun.NodeWriteStreamFastPath"), writeStreamPathFastPathCallSymbol = Symbol.for("Bun.NodeWriteStreamFastPathCall"), kIoDone = Symbol.for("kIoDone"), defaultReadStreamOptions = { +}, readStreamPathFastPathSymbol = Symbol.for("Bun.Node.readStreamPathFastPath"), readStreamSymbol = Symbol.for("Bun.NodeReadStream"), readStreamPathOrFdSymbol = Symbol.for("Bun.NodeReadStreamPathOrFd"), writeStreamSymbol = Symbol.for("Bun.NodeWriteStream"), writeStreamPathFastPathSymbol = Symbol.for("Bun.NodeWriteStreamFastPath"), writeStreamPathFastPathCallSymbol = Symbol.for("Bun.NodeWriteStreamFastPathCall"), kIoDone = Symbol.for("kIoDone"), defaultReadStreamOptions = { file: void 0, fd: void 0, flags: "r", @@ -158,7 +162,8 @@ var access = function access2(...args) { close }, autoDestroy: !0 -}, ReadStreamClass, ReadStream = function(InternalReadStream) { +}, ReadStreamClass; +ReadStream = function(InternalReadStream) { return ReadStreamClass = InternalReadStream, Object.defineProperty(ReadStreamClass.prototype, Symbol.toStringTag, { value: "ReadStream", enumerable: !1 @@ -169,7 +174,7 @@ var access = function access2(...args) { return instance instanceof InternalReadStream; } }); -}(class ReadStream2 extends NativeReadable { +}(class ReadStream2 extends Stream._getNativeReadableStreamPrototype(2, Stream.Readable) { constructor(pathOrFd, options = defaultReadStreamOptions) { if (typeof options !== "object" || !options) throw new TypeError("Expected options to be an object"); @@ -342,7 +347,8 @@ var access = function access2(...args) { } return this[readStreamPathFastPathSymbol] = !1, super.pipe(dest, pipeOpts); } -}), defaultWriteStreamOptions = { +}); +var defaultWriteStreamOptions = { fd: null, start: void 0, pos: void 0, @@ -355,7 +361,8 @@ var access = function access2(...args) { open, openSync } -}, WriteStreamClass, WriteStream = function(InternalWriteStream) { +}, WriteStreamClass; +WriteStream = function(InternalWriteStream) { return WriteStreamClass = InternalWriteStream, Object.defineProperty(WriteStreamClass.prototype, Symbol.toStringTag, { value: "WritesStream", enumerable: !1 @@ -366,7 +373,7 @@ var access = function access2(...args) { return instance instanceof InternalWriteStream; } }); -}(class WriteStream2 extends NativeWritable { +}(class WriteStream2 extends Stream.NativeWritable { constructor(path, options = defaultWriteStreamOptions) { if (!options) throw new TypeError("Expected options to be an object"); @@ -563,7 +570,7 @@ var fs_default = { chownSync, close, closeSync, - constants: promises.constants, + constants: promises2.constants, copyFile, copyFileSync, createReadStream, @@ -599,7 +606,7 @@ var fs_default = { mkdtempSync, open, openSync, - promises, + promises: promises2, read, readFile, readFileSync, @@ -672,7 +679,7 @@ export { readFileSync, readFile, read, - promises, + default2 as promises, openSync, open, mkdtempSync, @@ -708,6 +715,7 @@ export { createReadStream, copyFileSync, copyFile, + constants, closeSync, close, chownSync, diff --git a/src/js/out/modules/node/http.js b/src/js/out/modules/node/http.js index 02e000138..e5f96de48 100644 --- a/src/js/out/modules/node/http.js +++ b/src/js/out/modules/node/http.js @@ -1,4 +1,9 @@ -var isValidTLSArray = function(obj) { +import {EventEmitter} from "node:events"; +import {Readable, Writable, Duplex} from "node:stream"; +import {isTypedArray} from "node:util/types"; +var isIPv6 = function(input) { + return new RegExp("^((?:(?:[0-9a-fA-F]{1,4}):){7}(?:(?:[0-9a-fA-F]{1,4})|:)|(?:(?:[0-9a-fA-F]{1,4}):){6}(?:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|:(?:[0-9a-fA-F]{1,4})|:)|(?:(?:[0-9a-fA-F]{1,4}):){5}(?::((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,2}|:)|(?:(?:[0-9a-fA-F]{1,4}):){4}(?:(:(?:[0-9a-fA-F]{1,4})){0,1}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,3}|:)|(?:(?:[0-9a-fA-F]{1,4}):){3}(?:(:(?:[0-9a-fA-F]{1,4})){0,2}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,4}|:)|(?:(?:[0-9a-fA-F]{1,4}):){2}(?:(:(?:[0-9a-fA-F]{1,4})){0,3}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,5}|:)|(?:(?:[0-9a-fA-F]{1,4}):){1}(?:(:(?:[0-9a-fA-F]{1,4})){0,4}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,6}|:)|(?::((?::(?:[0-9a-fA-F]{1,4})){0,5}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(?::(?:[0-9a-fA-F]{1,4})){1,7}|:)))(%[0-9a-zA-Z-.:]{1,})?$").test(input); +}, isValidTLSArray = function(obj) { if (typeof obj === "string" || isTypedArray(obj) || obj instanceof ArrayBuffer || obj instanceof Blob) return !0; if (Array.isArray(obj)) { @@ -92,9 +97,8 @@ function get(url, options, cb) { const req = request(url, options, cb); return req.end(), req; } -var { EventEmitter } = import.meta.require("node:events"), { isIPv6 } = import.meta.require("node:net"), { Readable, Writable, Duplex } = import.meta.require("node:stream"), { URL } = import.meta.require("node:url"), { newArrayWithSize, String, Object, Array } = import.meta.primordials, { isTypedArray } = import.meta.require("util/types"), globalReportError = globalThis.reportError, setTimeout = globalThis.setTimeout, fetch = Bun.fetch, nop = () => { -}, __DEBUG__ = process.env.__DEBUG__, debug = __DEBUG__ ? (...args) => console.log("node:http", ...args) : nop, kEmptyObject = Object.freeze(Object.create(null)), kOutHeaders = Symbol.for("kOutHeaders"), kEndCalled = Symbol.for("kEndCalled"), kAbortController = Symbol.for("kAbortController"), kClearTimeout = Symbol("kClearTimeout"), kCorked = Symbol.for("kCorked"), searchParamsSymbol = Symbol.for("query"), StringPrototypeSlice = String.prototype.slice, StringPrototypeStartsWith = String.prototype.startsWith, StringPrototypeToUpperCase = String.prototype.toUpperCase, StringPrototypeIncludes = String.prototype.includes, StringPrototypeCharCodeAt = String.prototype.charCodeAt, StringPrototypeIndexOf = String.prototype.indexOf, ArrayIsArray = Array.isArray, RegExpPrototypeExec = RegExp.prototype.exec, ObjectAssign = Object.assign, ObjectPrototypeHasOwnProperty = Object.prototype.hasOwnProperty, INVALID_PATH_REGEX = /[^\u0021-\u00ff]/; -var _globalAgent, _defaultHTTPSAgent, kInternalRequest = Symbol("kInternalRequest"), kInternalSocketData = Symbol.for("::bunternal::"), kEmptyBuffer = Buffer.alloc(0), FakeSocket = class Socket extends Duplex { +var { URL } = globalThis, { newArrayWithSize, String, Object, Array } = globalThis[Symbol.for("Bun.lazy")]("primordials"), globalReportError = globalThis.reportError, setTimeout = globalThis.setTimeout, fetch = Bun.fetch, nop = () => { +}, __DEBUG__ = process.env.__DEBUG__, debug = __DEBUG__ ? (...args) => console.log("node:http", ...args) : nop, kEmptyObject = Object.freeze(Object.create(null)), kOutHeaders = Symbol.for("kOutHeaders"), kEndCalled = Symbol.for("kEndCalled"), kAbortController = Symbol.for("kAbortController"), kClearTimeout = Symbol("kClearTimeout"), kCorked = Symbol.for("kCorked"), searchParamsSymbol = Symbol.for("query"), StringPrototypeSlice = String.prototype.slice, StringPrototypeStartsWith = String.prototype.startsWith, StringPrototypeToUpperCase = String.prototype.toUpperCase, StringPrototypeIncludes = String.prototype.includes, StringPrototypeCharCodeAt = String.prototype.charCodeAt, StringPrototypeIndexOf = String.prototype.indexOf, ArrayIsArray = Array.isArray, RegExpPrototypeExec = RegExp.prototype.exec, ObjectAssign = Object.assign, ObjectPrototypeHasOwnProperty = Object.prototype.hasOwnProperty, INVALID_PATH_REGEX = /[^\u0021-\u00ff]/, NODE_HTTP_WARNING = "WARN: Agent is mostly unused in Bun's implementation of http. If you see strange behavior, this is probably the cause.", _globalAgent, _defaultHTTPSAgent, kInternalRequest = Symbol("kInternalRequest"), kInternalSocketData = Symbol.for("::bunternal::"), kEmptyBuffer = Buffer.alloc(0), FakeSocket = class Socket extends Duplex { bytesRead = 0; bytesWritten = 0; connecting = !1; @@ -230,7 +234,7 @@ class Agent extends EventEmitter { return this.#totalSocketCount; } createConnection() { - return debug("WARN: Agent is mostly unused in Bun's implementation of http. If you see strange behavior, this is probably the cause.\n", "WARN: Agent.createConnection is a no-op, returns fake socket"), this.#fakeSocket ??= new FakeSocket; + return debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.createConnection is a no-op, returns fake socket"), this.#fakeSocket ??= new FakeSocket; } getName(options = kEmptyObject) { let name = `http:${options.host || "localhost"}:`; @@ -245,22 +249,22 @@ class Agent extends EventEmitter { return name; } addRequest() { - debug("WARN: Agent is mostly unused in Bun's implementation of http. If you see strange behavior, this is probably the cause.\n", "WARN: Agent.addRequest is a no-op"); + debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.addRequest is a no-op"); } createSocket(req, options, cb) { - debug("WARN: Agent is mostly unused in Bun's implementation of http. If you see strange behavior, this is probably the cause.\n", "WARN: Agent.createSocket returns fake socket"), cb(null, this.#fakeSocket ??= new FakeSocket); + debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.createSocket returns fake socket"), cb(null, this.#fakeSocket ??= new FakeSocket); } removeSocket() { - debug("WARN: Agent is mostly unused in Bun's implementation of http. If you see strange behavior, this is probably the cause.\n", "WARN: Agent.removeSocket is a no-op"); + debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.removeSocket is a no-op"); } keepSocketAlive() { - return debug("WARN: Agent is mostly unused in Bun's implementation of http. If you see strange behavior, this is probably the cause.\n", "WARN: Agent.keepSocketAlive is a no-op"), !0; + return debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.keepSocketAlive is a no-op"), !0; } reuseSocket() { - debug("WARN: Agent is mostly unused in Bun's implementation of http. If you see strange behavior, this is probably the cause.\n", "WARN: Agent.reuseSocket is a no-op"); + debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.reuseSocket is a no-op"); } destroy() { - debug("WARN: Agent is mostly unused in Bun's implementation of http. If you see strange behavior, this is probably the cause.\n", "WARN: Agent.destroy is a no-op"); + debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.destroy is a no-op"); } } @@ -968,10 +972,10 @@ class ClientRequest extends OutgoingMessage { this.setTimeout(timeout); } setSocketKeepAlive(enable = !0, initialDelay = 0) { - __DEBUG__ && debug("WARN: Agent is mostly unused in Bun's implementation of http. If you see strange behavior, this is probably the cause.\n", "WARN: ClientRequest.setSocketKeepAlive is a no-op"); + __DEBUG__ && debug(`${NODE_HTTP_WARNING}\n`, "WARN: ClientRequest.setSocketKeepAlive is a no-op"); } setNoDelay(noDelay = !0) { - __DEBUG__ && debug("WARN: Agent is mostly unused in Bun's implementation of http. If you see strange behavior, this is probably the cause.\n", "WARN: ClientRequest.setNoDelay is a no-op"); + __DEBUG__ && debug(`${NODE_HTTP_WARNING}\n`, "WARN: ClientRequest.setNoDelay is a no-op"); } [kClearTimeout]() { if (this.#timeoutTimer) @@ -1086,7 +1090,9 @@ var tokenRegExp = /^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/, METHODS = [ 509: "Bandwidth Limit Exceeded", 510: "Not Extended", 511: "Network Authentication Required" -}, defaultObject = { +}; +_globalAgent ??= new Agent; +var defaultObject = { Agent, Server, METHODS, @@ -1098,10 +1104,10 @@ var tokenRegExp = /^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/, METHODS = [ get, maxHeaderSize: 16384, setMaxIdleHTTPParsers(max) { - debug("WARN: Agent is mostly unused in Bun's implementation of http. If you see strange behavior, this is probably the cause.\n", "setMaxIdleHTTPParsers() is a no-op"); + debug(`${NODE_HTTP_WARNING}\n`, "setMaxIdleHTTPParsers() is a no-op"); }, get globalAgent() { - return _globalAgent ??= new Agent; + return _globalAgent; }, set globalAgent(agent) { }, @@ -1109,6 +1115,7 @@ var tokenRegExp = /^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/, METHODS = [ }, http_default = defaultObject; export { request, + _globalAgent as globalAgent, get, http_default as default, createServer, diff --git a/src/js/out/modules/node/https.js b/src/js/out/modules/node/https.js index 84d68c365..f6a4e25d0 100644 --- a/src/js/out/modules/node/https.js +++ b/src/js/out/modules/node/https.js @@ -1,5 +1,5 @@ export * from "node:http"; -var HTTP = import.meta.require("node:http"), https_default = HTTP; +import {default as default2} from "node:http"; export { - https_default as default + default2 as default }; diff --git a/src/js/out/modules/node/inspector.js b/src/js/out/modules/node/inspector.js index cc9e9c88c..3a5073efc 100644 --- a/src/js/out/modules/node/inspector.js +++ b/src/js/out/modules/node/inspector.js @@ -17,7 +17,7 @@ class NotImplementedError extends Error { } // src/js/node/inspector.ts -var EventEmitter = import.meta.require("node:events"); +import EventEmitter from "node:events"; var open = function() { throwNotImplemented("node:inspector open", 2445); }, close = function() { diff --git a/src/js/out/modules/node/net.js b/src/js/out/modules/node/net.js index 162da7754..164ec6677 100644 --- a/src/js/out/modules/node/net.js +++ b/src/js/out/modules/node/net.js @@ -1,3 +1,5 @@ +import {Duplex} from "node:stream"; +import {EventEmitter} from "node:events"; var isIPv4 = function(s) { return IPv4Reg.test(s); }, isIPv6 = function(s) { @@ -24,9 +26,7 @@ var isIPv4 = function(s) { self.emit("listening"); }, createServer = function(options, connectionListener) { return new Server(options, connectionListener); -}; -var IPv4Reg = new RegExp("^((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$"); -var IPv6Reg = new RegExp("^((?:(?:[0-9a-fA-F]{1,4}):){7}(?:(?:[0-9a-fA-F]{1,4})|:)|(?:(?:[0-9a-fA-F]{1,4}):){6}(?:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|:(?:[0-9a-fA-F]{1,4})|:)|(?:(?:[0-9a-fA-F]{1,4}):){5}(?::((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,2}|:)|(?:(?:[0-9a-fA-F]{1,4}):){4}(?:(:(?:[0-9a-fA-F]{1,4})){0,1}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,3}|:)|(?:(?:[0-9a-fA-F]{1,4}):){3}(?:(:(?:[0-9a-fA-F]{1,4})){0,2}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,4}|:)|(?:(?:[0-9a-fA-F]{1,4}):){2}(?:(:(?:[0-9a-fA-F]{1,4})){0,3}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,5}|:)|(?:(?:[0-9a-fA-F]{1,4}):){1}(?:(:(?:[0-9a-fA-F]{1,4})){0,4}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,6}|:)|(?::((?::(?:[0-9a-fA-F]{1,4})){0,5}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(?::(?:[0-9a-fA-F]{1,4})){1,7}|:)))(%[0-9a-zA-Z-.:]{1,})?$"), { Bun, createFIFO, Object } = import.meta.primordials, { connect: bunConnect } = Bun, { Duplex } = import.meta.require("node:stream"), { EventEmitter } = import.meta.require("node:events"), { setTimeout } = globalThis, bunTlsSymbol = Symbol.for("::buntls::"), bunSocketServerHandlers = Symbol.for("::bunsocket_serverhandlers::"), bunSocketServerConnections = Symbol.for("::bunnetserverconnections::"), bunSocketServerOptions = Symbol.for("::bunnetserveroptions::"), SocketClass, Socket = function(InternalSocket) { +}, v4Seg = "(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])", v4Str = `(${v4Seg}[.]){3}${v4Seg}`, IPv4Reg = new RegExp(`^${v4Str}$`), v6Seg = "(?:[0-9a-fA-F]{1,4})", IPv6Reg = new RegExp("^(" + `(?:${v6Seg}:){7}(?:${v6Seg}|:)|` + `(?:${v6Seg}:){6}(?:${v4Str}|:${v6Seg}|:)|` + `(?:${v6Seg}:){5}(?::${v4Str}|(:${v6Seg}){1,2}|:)|` + `(?:${v6Seg}:){4}(?:(:${v6Seg}){0,1}:${v4Str}|(:${v6Seg}){1,3}|:)|` + `(?:${v6Seg}:){3}(?:(:${v6Seg}){0,2}:${v4Str}|(:${v6Seg}){1,4}|:)|` + `(?:${v6Seg}:){2}(?:(:${v6Seg}){0,3}:${v4Str}|(:${v6Seg}){1,5}|:)|` + `(?:${v6Seg}:){1}(?:(:${v6Seg}){0,4}:${v4Str}|(:${v6Seg}){1,6}|:)|` + `(?::((?::${v6Seg}){0,5}:${v4Str}|(?::${v6Seg}){1,7}|:))` + ")(%[0-9a-zA-Z-.:]{1,})?$"), { Bun, createFIFO, Object } = globalThis[Symbol.for("Bun.lazy")]("primordials"), { connect: bunConnect } = Bun, { setTimeout } = globalThis, bunTlsSymbol = Symbol.for("::buntls::"), bunSocketServerHandlers = Symbol.for("::bunsocket_serverhandlers::"), bunSocketServerConnections = Symbol.for("::bunnetserverconnections::"), bunSocketServerOptions = Symbol.for("::bunnetserveroptions::"), SocketClass, Socket = function(InternalSocket) { return SocketClass = InternalSocket, Object.defineProperty(SocketClass.prototype, Symbol.toStringTag, { value: "Socket", enumerable: !1 diff --git a/src/js/out/modules/node/path.js b/src/js/out/modules/node/path.js index ad6a231a9..f8cc1ec08 100644 --- a/src/js/out/modules/node/path.js +++ b/src/js/out/modules/node/path.js @@ -1 +1 @@ -var z=function(f){var v=y({basename:f.basename.bind(f),dirname:f.dirname.bind(f),extname:f.extname.bind(f),format:f.format.bind(f),isAbsolute:f.isAbsolute.bind(f),join:f.join.bind(f),normalize:f.normalize.bind(f),parse:f.parse.bind(f),relative:f.relative.bind(f),resolve:f.resolve.bind(f),toNamespacedPath:f.toNamespacedPath.bind(f),sep:f.sep,delimiter:f.delimiter});return v.default=v,v},y=(f)=>Object.assign(Object.create(null),f),I=z(Bun._Path()),m=z(Bun._Path(!1)),J=z(Bun._Path(!0));I.win32=J;I.posix=m;var{basename:A,dirname:K,extname:B,format:g,isAbsolute:C,join:D,normalize:E,parse:L,relative:k,resolve:N,toNamespacedPath:F,sep:O,delimiter:G,__esModule:q}=I;I[Symbol.for("CommonJS")]=0;I.__esModule=!0;var H=I;export{J as win32,F as toNamespacedPath,O as sep,N as resolve,k as relative,m as posix,L as parse,E as normalize,D as join,C as isAbsolute,g as format,B as extname,K as dirname,G as delimiter,H as default,y as createModule,A as basename,q as __esModule}; +var g=function(i){var f=m({basename:i.basename.bind(i),dirname:i.dirname.bind(i),extname:i.extname.bind(i),format:i.format.bind(i),isAbsolute:i.isAbsolute.bind(i),join:i.join.bind(i),normalize:i.normalize.bind(i),parse:i.parse.bind(i),relative:i.relative.bind(i),resolve:i.resolve.bind(i),toNamespacedPath:i.toNamespacedPath.bind(i),sep:i.sep,delimiter:i.delimiter});return f.default=f,f},m=(i)=>Object.assign(Object.create(null),i),k=g(Bun._Path()),q=g(Bun._Path(!1)),v=g(Bun._Path(!0));k.win32=v;k.posix=q;var{basename:y,dirname:z,extname:A,format:B,isAbsolute:C,join:D,normalize:E,parse:F,relative:G,resolve:H,toNamespacedPath:I,sep:J,delimiter:K,__esModule:L}=k;k[Symbol.for("CommonJS")]=0;k.__esModule=!0;var O=k;export{v as win32,I as toNamespacedPath,J as sep,H as resolve,G as relative,q as posix,F as parse,E as normalize,D as join,C as isAbsolute,B as format,A as extname,z as dirname,K as delimiter,O as default,m as createModule,y as basename,L as __esModule}; diff --git a/src/js/out/modules/node/path.posix.js b/src/js/out/modules/node/path.posix.js index 8071342a9..64e8a62f5 100644 --- a/src/js/out/modules/node/path.posix.js +++ b/src/js/out/modules/node/path.posix.js @@ -1 +1 @@ -var e=function(l){return{basename:l.basename.bind(l),dirname:l.dirname.bind(l),extname:l.extname.bind(l),format:l.format.bind(l),isAbsolute:l.isAbsolute.bind(l),join:l.join.bind(l),normalize:l.normalize.bind(l),parse:l.parse.bind(l),relative:l.relative.bind(l),resolve:l.resolve.bind(l),toNamespacedPath:l.toNamespacedPath.bind(l),sep:l.sep,delimiter:l.delimiter}},r=e(Bun._Path(!1));r[Symbol.for("CommonJS")]=0;var{basename:g,dirname:s,extname:k,format:m,isAbsolute:q,join:t,normalize:v,parse:w,relative:x,resolve:i,toNamespacedPath:d,sep:c,delimiter:f}=r,z=r;export{d as toNamespacedPath,c as sep,i as resolve,x as relative,w as parse,v as normalize,t as join,q as isAbsolute,m as format,k as extname,s as dirname,f as delimiter,z as default,g as basename}; +var i=function(e){return{basename:e.basename.bind(e),dirname:e.dirname.bind(e),extname:e.extname.bind(e),format:e.format.bind(e),isAbsolute:e.isAbsolute.bind(e),join:e.join.bind(e),normalize:e.normalize.bind(e),parse:e.parse.bind(e),relative:e.relative.bind(e),resolve:e.resolve.bind(e),toNamespacedPath:e.toNamespacedPath.bind(e),sep:e.sep,delimiter:e.delimiter}},r=i(Bun._Path(!1));r[Symbol.for("CommonJS")]=0;var{basename:d,dirname:l,extname:s,format:c,isAbsolute:f,join:g,normalize:k,parse:m,relative:q,resolve:t,toNamespacedPath:v,sep:w,delimiter:x}=r,z=r;export{v as toNamespacedPath,w as sep,t as resolve,q as relative,m as parse,k as normalize,g as join,f as isAbsolute,c as format,s as extname,l as dirname,x as delimiter,z as default,d as basename}; diff --git a/src/js/out/modules/node/readline.js b/src/js/out/modules/node/readline.js index 06a7f3579..6cfac471d 100644 --- a/src/js/out/modules/node/readline.js +++ b/src/js/out/modules/node/readline.js @@ -1,3 +1,6 @@ +import {EventEmitter} from "node:events"; +import {clearTimeout, setTimeout} from "node:timers"; +import {StringDecoder} from "node:string_decoder"; var stripVTControlCharacters = function(str) { return validateString(str, "str"), RegExpPrototypeSymbolReplace.call(ansi, str, ""); }, promisify = function(original) { @@ -594,7 +597,7 @@ var commonPrefix = function(strings) { }, createInterface = function(input, output, completer, terminal) { return new Interface(input, output, completer, terminal); }; -var { Array, RegExp, String, Bun } = import.meta.primordials, EventEmitter = import.meta.require("node:events"), { clearTimeout, setTimeout } = import.meta.require("timers"), { StringDecoder } = import.meta.require("string_decoder"), isWritable, { inspect } = Bun, debug = process.env.BUN_JS_DEBUG ? console.log : () => { +var { Array, RegExp, String, Bun } = globalThis[Symbol.for("Bun.lazy")]("primordials"), isWritable, { inspect } = Bun, debug = process.env.BUN_JS_DEBUG ? console.log : () => { }, SymbolAsyncIterator = Symbol.asyncIterator, SymbolIterator = Symbol.iterator, SymbolFor = Symbol.for, SymbolReplace = Symbol.replace, ArrayFrom = Array.from, ArrayIsArray = Array.isArray, ArrayPrototypeFilter = Array.prototype.filter, ArrayPrototypeSort = Array.prototype.sort, ArrayPrototypeIndexOf = Array.prototype.indexOf, ArrayPrototypeJoin = Array.prototype.join, ArrayPrototypeMap = Array.prototype.map, ArrayPrototypePop = Array.prototype.pop, ArrayPrototypePush = Array.prototype.push, ArrayPrototypeSlice = Array.prototype.slice, ArrayPrototypeSplice = Array.prototype.splice, ArrayPrototypeReverse = Array.prototype.reverse, ArrayPrototypeShift = Array.prototype.shift, ArrayPrototypeUnshift = Array.prototype.unshift, RegExpPrototypeExec = RegExp.prototype.exec, RegExpPrototypeSymbolReplace = RegExp.prototype[SymbolReplace], StringFromCharCode = String.fromCharCode, StringPrototypeCharCodeAt = String.prototype.charCodeAt, StringPrototypeCodePointAt = String.prototype.codePointAt, StringPrototypeSlice = String.prototype.slice, StringPrototypeToLowerCase = String.prototype.toLowerCase, StringPrototypeEndsWith = String.prototype.endsWith, StringPrototypeRepeat = String.prototype.repeat, StringPrototypeStartsWith = String.prototype.startsWith, StringPrototypeTrim = String.prototype.trim, StringPrototypeNormalize = String.prototype.normalize, NumberIsNaN = Number.isNaN, NumberIsFinite = Number.isFinite, NumberIsInteger = Number.isInteger, NumberMAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER, NumberMIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER, MathCeil = Math.ceil, MathFloor = Math.floor, MathMax = Math.max, MathMaxApply = Math.max.apply, DateNow = Date.now, FunctionPrototype = Function.prototype, StringPrototype = String.prototype, StringPrototypeSymbolIterator = StringPrototype[SymbolIterator], StringIteratorPrototypeNext = StringPrototypeSymbolIterator.call("").next, ObjectSetPrototypeOf = Object.setPrototypeOf, ObjectDefineProperty = Object.defineProperty, ObjectDefineProperties = Object.defineProperties, ObjectFreeze = Object.freeze; var { create: ObjectCreate, keys: ObjectKeys } = Object; var createSafeIterator = (factory, next) => { @@ -691,7 +694,6 @@ CSI.kClearToLineBeginning = kClearToLineBeginning = CSI`1K`; CSI.kClearToLineEnd = kClearToLineEnd = CSI`0K`; var KEYPRESS_DECODER = Symbol("keypress-decoder"), ESCAPE_DECODER = Symbol("escape-decoder"), ESCAPE_CODE_TIMEOUT = 500, kEmptyObject = ObjectFreeze(ObjectCreate(null)), kHistorySize = 30, kMaxUndoRedoStackSize = 2048, kMincrlfDelay = 100, lineEnding = /\r?\n|\r(?!\n)/g, kMaxLengthOfKillRing = 32, kLineObjectStream = Symbol("line object stream"), kQuestionCancel = Symbol("kQuestionCancel"), kQuestion = Symbol("kQuestion"), kAddHistory = Symbol("_addHistory"), kBeforeEdit = Symbol("_beforeEdit"), kDecoder = Symbol("_decoder"), kDeleteLeft = Symbol("_deleteLeft"), kDeleteLineLeft = Symbol("_deleteLineLeft"), kDeleteLineRight = Symbol("_deleteLineRight"), kDeleteRight = Symbol("_deleteRight"), kDeleteWordLeft = Symbol("_deleteWordLeft"), kDeleteWordRight = Symbol("_deleteWordRight"), kGetDisplayPos = Symbol("_getDisplayPos"), kHistoryNext = Symbol("_historyNext"), kHistoryPrev = Symbol("_historyPrev"), kInsertString = Symbol("_insertString"), kLine = Symbol("_line"), kLine_buffer = Symbol("_line_buffer"), kKillRing = Symbol("_killRing"), kKillRingCursor = Symbol("_killRingCursor"), kMoveCursor = Symbol("_moveCursor"), kNormalWrite = Symbol("_normalWrite"), kOldPrompt = Symbol("_oldPrompt"), kOnLine = Symbol("_onLine"), kPreviousKey = Symbol("_previousKey"), kPrompt = Symbol("_prompt"), kPushToKillRing = Symbol("_pushToKillRing"), kPushToUndoStack = Symbol("_pushToUndoStack"), kQuestionCallback = Symbol("_questionCallback"), kRedo = Symbol("_redo"), kRedoStack = Symbol("_redoStack"), kRefreshLine = Symbol("_refreshLine"), kSawKeyPress = Symbol("_sawKeyPress"), kSawReturnAt = Symbol("_sawReturnAt"), kSetRawMode = Symbol("_setRawMode"), kTabComplete = Symbol("_tabComplete"), kTabCompleter = Symbol("_tabCompleter"), kTtyWrite = Symbol("_ttyWrite"), kUndo = Symbol("_undo"), kUndoStack = Symbol("_undoStack"), kWordLeft = Symbol("_wordLeft"), kWordRight = Symbol("_wordRight"), kWriteToOutput = Symbol("_writeToOutput"), kYank = Symbol("_yank"), kYanking = Symbol("_yanking"), kYankPop = Symbol("_yankPop"), kFirstEventParam = Symbol("nodejs.kFirstEventParam"), kOnSelfCloseWithTerminal = Symbol("_onSelfCloseWithTerminal"), kOnSelfCloseWithoutTerminal = Symbol("_onSelfCloseWithoutTerminal"), kOnKeyPress = Symbol("_onKeyPress"), kOnError = Symbol("_onError"), kOnData = Symbol("_onData"), kOnEnd = Symbol("_onEnd"), kOnTermEnd = Symbol("_onTermEnd"), kOnResize = Symbol("_onResize"); ObjectSetPrototypeOf(InterfaceConstructor.prototype, EventEmitter.prototype); -ObjectSetPrototypeOf(InterfaceConstructor, EventEmitter); var _Interface = class Interface2 extends InterfaceConstructor { constructor(input, output, completer, terminal) { super(input, output, completer, terminal); diff --git a/src/js/out/modules/node/readline.promises.js b/src/js/out/modules/node/readline.promises.js index bfe5a7855..61a6d256f 100644 --- a/src/js/out/modules/node/readline.promises.js +++ b/src/js/out/modules/node/readline.promises.js @@ -1,11 +1,13 @@ -var { - promises: { Readline, Interface, createInterface } -} = import.meta.require("node:readline"), readline_promises_default = { +import {promises} from "node:readline"; +var { Readline, Interface, createInterface } = promises, readline_promises_default = { Readline, Interface, createInterface, [Symbol.for("CommonJS")]: 0 }; export { - readline_promises_default as default + readline_promises_default as default, + createInterface, + Readline, + Interface }; diff --git a/src/js/out/modules/node/stream.consumers.js b/src/js/out/modules/node/stream.consumers.js index e2cfb9cc1..20bbb7de4 100644 --- a/src/js/out/modules/node/stream.consumers.js +++ b/src/js/out/modules/node/stream.consumers.js @@ -1 +1 @@ -var{Bun:o}=import.meta.primordials,i=o.readableStreamToArrayBuffer,p=o.readableStreamToText,c=(q)=>o.readableStreamToText(q).then(JSON.parse),T=async(q)=>{return new Buffer(await i(q))},h=o.readableStreamToBlob,k={[Symbol.for("CommonJS")]:0,arrayBuffer:i,text:p,json:c,buffer:T,blob:h};export{p as text,c as json,k as default,T as buffer,h as blob,i as arrayBuffer}; +var{Bun:o}=globalThis[Symbol.for("Bun.lazy")]("primordials"),p=o.readableStreamToArrayBuffer,c=o.readableStreamToText,g=(h)=>o.readableStreamToText(h).then(JSON.parse),i=async(h)=>{return new Buffer(await p(h))},k=o.readableStreamToBlob,q={[Symbol.for("CommonJS")]:0,arrayBuffer:p,text:c,json:g,buffer:i,blob:k};export{c as text,g as json,q as default,i as buffer,k as blob,p as arrayBuffer}; diff --git a/src/js/out/modules/node/stream.js b/src/js/out/modules/node/stream.js index 100ca09fa..f96818bd6 100644 --- a/src/js/out/modules/node/stream.js +++ b/src/js/out/modules/node/stream.js @@ -1,2 +1,2 @@ -var Cq=function(q){if(!(this instanceof Cq))return new Cq(q);mq.call(this,q);const Q=q.__id;if(Q)fq(this,"__id",{value:Q,readable:!0,writable:!1,enumerable:!1})},dq=function(q){return typeof q==="object"&&q!==null&&q instanceof ReadableStream},lq=function(q,Q){if(typeof q!=="boolean")throw new nq(Q,"boolean",q)};var nq=function(q,Q,X){return new Error(`The argument '${q}' is invalid. Received '${X}' for type '${Q}'`)},oq=function(q,Q,X){return new Error(`The value '${Q}' is invalid for argument '${q}'. Reason: ${X}`)},FQ=function(q,Q){var[X,J,H,K,Z,Y,B]=globalThis[Symbol.for("Bun.lazy")](q),$=[!1],z=function(F,L,j,N){if(L>0){const P=j.subarray(0,L),E=j.subarray(L);if(P.byteLength>0)F.push(P);if(N)F.push(null);return E.byteLength>0?E:void 0}if(N)F.push(null);return j},V=function(F,L,j,N){if(L.byteLength>0)F.push(L);if(N)F.push(null);return j},U=process.env.BUN_DISABLE_DYNAMIC_CHUNK_SIZE!=="1";const W=new FinalizationRegistry((F)=>F&&Z(F)),G=512;var M=class F extends Q{#q;#Q=1;#X=!1;#J=void 0;#H;#K=!1;#Z=!U;#Y;constructor(L,j={}){super(j);if(typeof j.highWaterMark==="number")this.#H=j.highWaterMark;else this.#H=262144;this.#q=L,this.#X=!1,this.#J=void 0,this.#K=!1,this.#Y={},W.register(this,this.#q,this.#Y)}_read(L){if(Iq&&Eq("NativeReadable._read",this.__id),this.#K){Iq&&Eq("pendingRead is true",this.__id);return}var j=this.#q;if(Iq&&Eq("ptr @ NativeReadable._read",j,this.__id),j===0){this.push(null);return}if(!this.#X)Iq&&Eq("NativeReadable not constructed yet",this.__id),this.#B(j);return this.#V(this.#$(L),j)}#B(L){this.#X=!0;const j=J(L,this.#H);if(Iq&&Eq("NativeReadable internal `start` result",j,this.__id),typeof j==="number"&&j>1)this.#Z=!0,Iq&&Eq("NativeReadable resized",this.__id),this.#H=Math.min(this.#H,j);if(B){const N=B(L);if(Iq&&Eq("NativeReadable drain result",N,this.__id),(N?.byteLength??0)>0)this.push(N)}}#$(L=this.#H){var j=this.#J;if(Iq&&Eq("chunk @ #getRemainingChunk",j,this.__id),j?.byteLength??0G?L:G;this.#J=j=new Buffer(N)}return j}push(L,j){return Iq&&Eq("NativeReadable push -- result, encoding",L,j,this.__id),super.push(...arguments)}#z(L,j,N){if(Iq&&Eq("result, isClosed @ #handleResult",L,N,this.__id),typeof L==="number"){if(L>=this.#H&&!this.#Z&&!N)this.#H*=2,this.#Z=!0;return z(this,L,j,N)}else if(typeof L==="boolean")return this.push(null),j?.byteLength??0>0?j:void 0;else if(ArrayBuffer.isView(L)){if(L.byteLength>=this.#H&&!this.#Z&&!N)this.#H*=2,this.#Z=!0,Iq&&Eq("Resized",this.__id);return V(this,L,j,N)}else throw Iq&&Eq("Unknown result type",L,this.__id),new Error("Invalid result from pull")}#V(L,j){Iq&&Eq("#internalRead()",this.__id),$[0]=!1;var N=X(j,L,$);if(Oq(N))return this.#K=!0,N.then((P)=>{this.#K=!1,Iq&&Eq("pending no longerrrrrrrr (result returned from pull)",this.__id),this.#J=this.#z(P,L,$[0])},(P)=>{Iq&&Eq("error from pull",P,this.__id),errorOrDestroy(this,P)});else this.#J=this.#z(N,L,$[0])}_destroy(L,j){var N=this.#q;if(N===0){j(L);return}if(W.unregister(this.#Y),this.#q=0,Y)Y(N,!1);Iq&&Eq("NativeReadable destroyed",this.__id),H(N,L),j(L)}ref(){var L=this.#q;if(L===0)return;if(this.#Q++===0)Y(L,!0)}unref(){var L=this.#q;if(L===0)return;if(this.#Q--===1)Y(L,!1)}};if(!Y)M.prototype.ref=void 0,M.prototype.unref=void 0;return M},jQ=function(q,Q){return LQ[q]||=FQ(q,Q)},NQ=function(q,Q,X){if(!(Q&&typeof Q==="object"&&Q instanceof ReadableStream))return;const J=Sq(Q);if(!J){Eq("no native readable stream");return}const{stream:H,data:K}=J;return new(jQ(K,q))(H,X)},{isPromise:Oq,isCallable:Rq,direct:Sq,Object:xq}=import.meta.primordials;globalThis.__IDS_TO_TRACK=process.env.DEBUG_TRACK_EE?.length?process.env.DEBUG_TRACK_EE.split(","):process.env.DEBUG_STREAMS?.length?process.env.DEBUG_STREAMS.split(","):null;var gq=!!process.env.DEBUG_TRACK_EE,Iq=!!(process.env.DEBUG||process.env.DEBUG_STREAMS||gq),Eq=Iq?globalThis.__IDS_TO_TRACK?(...q)=>{const Q=q[q.length-1];if(!globalThis.__IDS_TO_TRACK.includes(Q))return;console.log(`ID: ${Q}`,...q.slice(0,-1))}:(...q)=>console.log(...q.slice(0,-1)):()=>{},kq=xq.create,fq=xq.defineProperty,yq=xq.getOwnPropertyDescriptor,hq=xq.getOwnPropertyNames,pq=xq.getPrototypeOf,uq=xq.prototype.hasOwnProperty,bq=xq.setPrototypeOf,_q=(q)=>import.meta.require(q),mq=_q("bun:events_native");bq(Cq.prototype,mq.prototype);bq(Cq,mq);Cq.prototype.emit=function(q,...Q){var X=this.__id;if(X)Eq("emit",q,...Q,X);else Eq("emit",q,...Q);return mq.prototype.emit.call(this,q,...Q)};Cq.prototype.on=function(q,Q){var X=this.__id;if(X)Eq("on",q,"added",X);else Eq("on",q,"added");return mq.prototype.on.call(this,q,Q)};Cq.prototype.addListener=function(q,Q){return this.on(q,Q)};var cq=(q,Q)=>function X(){return Q||(0,q[hq(q)[0]])((Q={exports:{}}).exports,Q),Q.exports};var Aq=process.nextTick;var iq=Array.isArray,Dq=cq({"node_modules/readable-stream/lib/ours/primordials.js"(q,Q){Q.exports={ArrayIsArray(X){return Array.isArray(X)},ArrayPrototypeIncludes(X,J){return X.includes(J)},ArrayPrototypeIndexOf(X,J){return X.indexOf(J)},ArrayPrototypeJoin(X,J){return X.join(J)},ArrayPrototypeMap(X,J){return X.map(J)},ArrayPrototypePop(X,J){return X.pop(J)},ArrayPrototypePush(X,J){return X.push(J)},ArrayPrototypeSlice(X,J,H){return X.slice(J,H)},Error,FunctionPrototypeCall(X,J,...H){return X.call(J,...H)},FunctionPrototypeSymbolHasInstance(X,J){return Function.prototype[Symbol.hasInstance].call(X,J)},MathFloor:Math.floor,Number,NumberIsInteger:Number.isInteger,NumberIsNaN:Number.isNaN,NumberMAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,NumberParseInt:Number.parseInt,ObjectDefineProperties(X,J){return xq.defineProperties(X,J)},ObjectDefineProperty(X,J,H){return xq.defineProperty(X,J,H)},ObjectGetOwnPropertyDescriptor(X,J){return xq.getOwnPropertyDescriptor(X,J)},ObjectKeys(X){return xq.keys(X)},ObjectSetPrototypeOf(X,J){return xq.setPrototypeOf(X,J)},Promise,PromisePrototypeCatch(X,J){return X.catch(J)},PromisePrototypeThen(X,J,H){return X.then(J,H)},PromiseReject(X){return Promise.reject(X)},ReflectApply:Reflect.apply,RegExpPrototypeTest(X,J){return X.test(J)},SafeSet:Set,String,StringPrototypeSlice(X,J,H){return X.slice(J,H)},StringPrototypeToLowerCase(X){return X.toLowerCase()},StringPrototypeToUpperCase(X){return X.toUpperCase()},StringPrototypeTrim(X){return X.trim()},Symbol,SymbolAsyncIterator:Symbol.asyncIterator,SymbolHasInstance:Symbol.hasInstance,SymbolIterator:Symbol.iterator,TypedArrayPrototypeSet(X,J,H){return X.set(J,H)},Uint8Array}}}),wq=cq({"node_modules/readable-stream/lib/ours/util.js"(q,Q){var X=_q("buffer"),J=xq.getPrototypeOf(async function(){}).constructor,H=globalThis.Blob||X.Blob,K=typeof H!=="undefined"?function Y(B){return B instanceof H}:function Y(B){return!1},Z=class extends Error{constructor(Y){if(!Array.isArray(Y))throw new TypeError(`Expected input to be an Array, got ${typeof Y}`);let B="";for(let $=0;${Y=z,B=V}),resolve:Y,reject:B}},promisify(Y){return new Promise((B,$)=>{Y((z,...V)=>{if(z)return $(z);return B(...V)})})},debuglog(){return function(){}},format(Y,...B){return Y.replace(/%([sdifj])/g,function(...[$,z]){const V=B.shift();if(z==="f")return V.toFixed(6);else if(z==="j")return JSON.stringify(V);else if(z==="s"&&typeof V==="object")return`${V.constructor!==xq?V.constructor.name:""} {}`.trim();else return V.toString()})},inspect(Y){switch(typeof Y){case"string":if(Y.includes("'")){if(!Y.includes('"'))return`"${Y}"`;else if(!Y.includes("`")&&!Y.includes("${"))return`\`${Y}\``}return`'${Y}'`;case"number":if(isNaN(Y))return"NaN";else if(xq.is(Y,-0))return String(Y);return Y;case"bigint":return`${String(Y)}n`;case"boolean":case"undefined":return String(Y);case"object":return"{}"}},types:{isAsyncFunction(Y){return Y instanceof J},isArrayBufferView(Y){return ArrayBuffer.isView(Y)}},isBlob:K},Q.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")}}),sq=cq({"node_modules/readable-stream/lib/ours/errors.js"(q,Q){var{format:X,inspect:J,AggregateError:H}=wq(),K=globalThis.AggregateError||H,Z=Symbol("kIsNodeError"),Y=["string","function","number","object","Function","Object","boolean","bigint","symbol"],B=/^([A-Z][a-z0-9]*)+$/,$="__node_internal_",z={};function V(j,N){if(!j)throw new z.ERR_INTERNAL_ASSERTION(N)}function U(j){let N="",P=j.length;const E=j[0]==="-"?1:0;for(;P>=E+4;P-=3)N=`_${j.slice(P-3,P)}${N}`;return`${j.slice(0,P)}${N}`}function W(j,N,P){if(typeof N==="function")return V(N.length<=P.length,`Code: ${j}; The provided arguments length (${P.length}) does not match the required ones (${N.length}).`),N(...P);const E=(N.match(/%[dfijoOs]/g)||[]).length;if(V(E===P.length,`Code: ${j}; The provided arguments length (${P.length}) does not match the required ones (${E}).`),P.length===0)return N;return X(N,...P)}function G(j,N,P){if(!P)P=Error;class E extends P{constructor(...I){super(W(j,N,I))}toString(){return`${this.name} [${j}]: ${this.message}`}}xq.defineProperties(E.prototype,{name:{value:P.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${j}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),E.prototype.code=j,E.prototype[Z]=!0,z[j]=E}function M(j){const N=$+j.name;return xq.defineProperty(j,"name",{value:N}),j}function F(j,N){if(j&&N&&j!==N){if(Array.isArray(N.errors))return N.errors.push(j),N;const P=new K([N,j],N.message);return P.code=N.code,P}return j||N}var L=class extends Error{constructor(j="The operation was aborted",N=void 0){if(N!==void 0&&typeof N!=="object")throw new z.ERR_INVALID_ARG_TYPE("options","Object",N);super(j,N);this.code="ABORT_ERR",this.name="AbortError"}};G("ERR_ASSERTION","%s",Error),G("ERR_INVALID_ARG_TYPE",(j,N,P)=>{if(V(typeof j==="string","'name' must be a string"),!Array.isArray(N))N=[N];let E="The ";if(j.endsWith(" argument"))E+=`${j} `;else E+=`"${j}" ${j.includes(".")?"property":"argument"} `;E+="must be ";const I=[],T=[],A=[];for(let O of N)if(V(typeof O==="string","All expected entries have to be of type string"),Y.includes(O))I.push(O.toLowerCase());else if(B.test(O))T.push(O);else V(O!=="object",'The value "object" should be written as "Object"'),A.push(O);if(T.length>0){const O=I.indexOf("object");if(O!==-1)I.splice(I,O,1),T.push("Object")}if(I.length>0){switch(I.length){case 1:E+=`of type ${I[0]}`;break;case 2:E+=`one of type ${I[0]} or ${I[1]}`;break;default:{const O=I.pop();E+=`one of type ${I.join(", ")}, or ${O}`}}if(T.length>0||A.length>0)E+=" or "}if(T.length>0){switch(T.length){case 1:E+=`an instance of ${T[0]}`;break;case 2:E+=`an instance of ${T[0]} or ${T[1]}`;break;default:{const O=T.pop();E+=`an instance of ${T.join(", ")}, or ${O}`}}if(A.length>0)E+=" or "}switch(A.length){case 0:break;case 1:if(A[0].toLowerCase()!==A[0])E+="an ";E+=`${A[0]}`;break;case 2:E+=`one of ${A[0]} or ${A[1]}`;break;default:{const O=A.pop();E+=`one of ${A.join(", ")}, or ${O}`}}if(P==null)E+=`. Received ${P}`;else if(typeof P==="function"&&P.name)E+=`. Received function ${P.name}`;else if(typeof P==="object"){var x;if((x=P.constructor)!==null&&x!==void 0&&x.name)E+=`. Received an instance of ${P.constructor.name}`;else{const O=J(P,{depth:-1});E+=`. Received ${O}`}}else{let O=J(P,{colors:!1});if(O.length>25)O=`${O.slice(0,25)}...`;E+=`. Received type ${typeof P} (${O})`}return E},TypeError),G("ERR_INVALID_ARG_VALUE",(j,N,P="is invalid")=>{let E=J(N);if(E.length>128)E=E.slice(0,128)+"...";return`The ${j.includes(".")?"property":"argument"} '${j}' ${P}. Received ${E}`},TypeError),G("ERR_INVALID_RETURN_VALUE",(j,N,P)=>{var E;const I=P!==null&&P!==void 0&&(E=P.constructor)!==null&&E!==void 0&&E.name?`instance of ${P.constructor.name}`:`type ${typeof P}`;return`Expected ${j} to be returned from the "${N}" function but got ${I}.`},TypeError),G("ERR_MISSING_ARGS",(...j)=>{V(j.length>0,"At least one arg needs to be specified");let N;const P=j.length;switch(j=(Array.isArray(j)?j:[j]).map((E)=>`"${E}"`).join(" or "),P){case 1:N+=`The ${j[0]} argument`;break;case 2:N+=`The ${j[0]} and ${j[1]} arguments`;break;default:{const E=j.pop();N+=`The ${j.join(", ")}, and ${E} arguments`}break}return`${N} must be specified`},TypeError),G("ERR_OUT_OF_RANGE",(j,N,P)=>{V(N,'Missing "range" argument');let E;if(Number.isInteger(P)&&Math.abs(P)>4294967296)E=U(String(P));else if(typeof P==="bigint"){if(E=String(P),P>2n**32n||P<-(2n**32n))E=U(E);E+="n"}else E=J(P);return`The value of "${j}" is out of range. It must be ${N}. Received ${E}`},RangeError),G("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),G("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),G("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),G("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),G("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),G("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),G("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),G("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),G("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),G("ERR_STREAM_WRITE_AFTER_END","write after end",Error),G("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),Q.exports={AbortError:L,aggregateTwoErrors:M(F),hideStackFrames:M,codes:z}}}),aq=cq({"node_modules/readable-stream/lib/internal/validators.js"(q,Q){var{ArrayIsArray:X,ArrayPrototypeIncludes:J,ArrayPrototypeJoin:H,ArrayPrototypeMap:K,NumberIsInteger:Z,NumberMAX_SAFE_INTEGER:Y,NumberMIN_SAFE_INTEGER:B,NumberParseInt:$,RegExpPrototypeTest:z,String:V,StringPrototypeToUpperCase:U,StringPrototypeTrim:W}=Dq(),{hideStackFrames:G,codes:{ERR_SOCKET_BAD_PORT:M,ERR_INVALID_ARG_TYPE:F,ERR_INVALID_ARG_VALUE:L,ERR_OUT_OF_RANGE:j,ERR_UNKNOWN_SIGNAL:N}}=sq(),{normalizeEncoding:P}=wq(),{isAsyncFunction:E,isArrayBufferView:I}=wq().types,T={};function A(i){return i===(i|0)}function x(i){return i===i>>>0}var O=/^[0-7]+$/,_="must be a 32-bit unsigned integer or an octal string";function C(i,n,o){if(typeof i==="undefined")i=o;if(typeof i==="string"){if(!z(O,i))throw new L(n,i,_);i=$(i,8)}return w(i,n,0,4294967295),i}var D=G((i,n,o=B,s=Y)=>{if(typeof i!=="number")throw new F(n,"number",i);if(!Z(i))throw new j(n,"an integer",i);if(is)throw new j(n,`>= ${o} && <= ${s}`,i)}),w=G((i,n,o=-2147483648,s=2147483647)=>{if(typeof i!=="number")throw new F(n,"number",i);if(!A(i)){if(!Z(i))throw new j(n,"an integer",i);throw new j(n,`>= ${o} && <= ${s}`,i)}if(is)throw new j(n,`>= ${o} && <= ${s}`,i)}),v=G((i,n,o)=>{if(typeof i!=="number")throw new F(n,"number",i);if(!x(i)){if(!Z(i))throw new j(n,"an integer",i);throw new j(n,`>= ${o?1:0} && < 4294967296`,i)}if(o&&i===0)throw new j(n,">= 1 && < 4294967296",i)});function R(i,n){if(typeof i!=="string")throw new F(n,"string",i)}function S(i,n){if(typeof i!=="number")throw new F(n,"number",i)}var g=G((i,n,o)=>{if(!J(o,i)){const a="must be one of: "+H(K(o,(r)=>typeof r==="string"?`'${r}'`:V(r)),", ");throw new L(n,i,a)}});function k(i,n){if(typeof i!=="boolean")throw new F(n,"boolean",i)}var f=G((i,n,o)=>{const s=o==null,a=s?!1:o.allowArray,r=s?!1:o.allowFunction;if(!(s?!1:o.nullable)&&i===null||!a&&X(i)||typeof i!=="object"&&(!r||typeof i!=="function"))throw new F(n,"Object",i)}),y=G((i,n,o=0)=>{if(!X(i))throw new F(n,"Array",i);if(i.length{if(!I(i))throw new F(n,["Buffer","TypedArray","DataView"],i)});function u(i,n){const o=P(n),s=i.length;if(o==="hex"&&s%2!==0)throw new L("encoding",n,`is invalid for data of length ${s}`)}function b(i,n="Port",o=!0){if(typeof i!=="number"&&typeof i!=="string"||typeof i==="string"&&W(i).length===0||+i!==+i>>>0||i>65535||i===0&&!o)throw new M(n,i,o);return i|0}var m=G((i,n)=>{if(i!==void 0&&(i===null||typeof i!=="object"||!("aborted"in i)))throw new F(n,"AbortSignal",i)}),c=G((i,n)=>{if(typeof i!=="function")throw new F(n,"Function",i)}),d=G((i,n)=>{if(typeof i!=="function"||E(i))throw new F(n,"Function",i)}),l=G((i,n)=>{if(i!==void 0)throw new F(n,"undefined",i)});Q.exports={isInt32:A,isUint32:x,parseFileMode:C,validateArray:y,validateBoolean:k,validateBuffer:p,validateEncoding:u,validateFunction:c,validateInt32:w,validateInteger:D,validateNumber:S,validateObject:f,validateOneOf:g,validatePlainFunction:d,validatePort:b,validateSignalName:h,validateString:R,validateUint32:v,validateUndefined:l,validateAbortSignal:m}}}),rq=cq({"node_modules/readable-stream/lib/internal/streams/utils.js"(q,Q){var{Symbol:X,SymbolAsyncIterator:J,SymbolIterator:H}=Dq(),K=X("kDestroyed"),Z=X("kIsErrored"),Y=X("kIsReadable"),B=X("kIsDisturbed");function $(v,R=!1){var S;return!!(v&&typeof v.pipe==="function"&&typeof v.on==="function"&&(!R||typeof v.pause==="function"&&typeof v.resume==="function")&&(!v._writableState||((S=v._readableState)===null||S===void 0?void 0:S.readable)!==!1)&&(!v._writableState||v._readableState))}function z(v){var R;return!!(v&&typeof v.write==="function"&&typeof v.on==="function"&&(!v._readableState||((R=v._writableState)===null||R===void 0?void 0:R.writable)!==!1))}function V(v){return!!(v&&typeof v.pipe==="function"&&v._readableState&&typeof v.on==="function"&&typeof v.write==="function")}function U(v){return v&&(v._readableState||v._writableState||typeof v.write==="function"&&typeof v.on==="function"||typeof v.pipe==="function"&&typeof v.on==="function")}function W(v,R){if(v==null)return!1;if(R===!0)return typeof v[J]==="function";if(R===!1)return typeof v[H]==="function";return typeof v[J]==="function"||typeof v[H]==="function"}function G(v){if(!U(v))return null;const{_writableState:R,_readableState:S}=v,g=R||S;return!!(v.destroyed||v[K]||g!==null&&g!==void 0&&g.destroyed)}function M(v){if(!z(v))return null;if(v.writableEnded===!0)return!0;const R=v._writableState;if(R!==null&&R!==void 0&&R.errored)return!1;if(typeof(R===null||R===void 0?void 0:R.ended)!=="boolean")return null;return R.ended}function F(v,R){if(!z(v))return null;if(v.writableFinished===!0)return!0;const S=v._writableState;if(S!==null&&S!==void 0&&S.errored)return!1;if(typeof(S===null||S===void 0?void 0:S.finished)!=="boolean")return null;return!!(S.finished||R===!1&&S.ended===!0&&S.length===0)}function L(v){if(!$(v))return null;if(v.readableEnded===!0)return!0;const R=v._readableState;if(!R||R.errored)return!1;if(typeof(R===null||R===void 0?void 0:R.ended)!=="boolean")return null;return R.ended}function j(v,R){if(!$(v))return null;const S=v._readableState;if(S!==null&&S!==void 0&&S.errored)return!1;if(typeof(S===null||S===void 0?void 0:S.endEmitted)!=="boolean")return null;return!!(S.endEmitted||R===!1&&S.ended===!0&&S.length===0)}function N(v){if(v&&v[Y]!=null)return v[Y];if(typeof(v===null||v===void 0?void 0:v.readable)!=="boolean")return null;if(G(v))return!1;return $(v)&&v.readable&&!j(v)}function P(v){if(typeof(v===null||v===void 0?void 0:v.writable)!=="boolean")return null;if(G(v))return!1;return z(v)&&v.writable&&!M(v)}function E(v,R){if(!U(v))return null;if(G(v))return!0;if((R===null||R===void 0?void 0:R.readable)!==!1&&N(v))return!1;if((R===null||R===void 0?void 0:R.writable)!==!1&&P(v))return!1;return!0}function I(v){var R,S;if(!U(v))return null;if(v.writableErrored)return v.writableErrored;return(R=(S=v._writableState)===null||S===void 0?void 0:S.errored)!==null&&R!==void 0?R:null}function T(v){var R,S;if(!U(v))return null;if(v.readableErrored)return v.readableErrored;return(R=(S=v._readableState)===null||S===void 0?void 0:S.errored)!==null&&R!==void 0?R:null}function A(v){if(!U(v))return null;if(typeof v.closed==="boolean")return v.closed;const{_writableState:R,_readableState:S}=v;if(typeof(R===null||R===void 0?void 0:R.closed)==="boolean"||typeof(S===null||S===void 0?void 0:S.closed)==="boolean")return(R===null||R===void 0?void 0:R.closed)||(S===null||S===void 0?void 0:S.closed);if(typeof v._closed==="boolean"&&x(v))return v._closed;return null}function x(v){return typeof v._closed==="boolean"&&typeof v._defaultKeepAlive==="boolean"&&typeof v._removedConnection==="boolean"&&typeof v._removedContLen==="boolean"}function O(v){return typeof v._sent100==="boolean"&&x(v)}function _(v){var R;return typeof v._consuming==="boolean"&&typeof v._dumped==="boolean"&&((R=v.req)===null||R===void 0?void 0:R.upgradeOrConnect)===void 0}function C(v){if(!U(v))return null;const{_writableState:R,_readableState:S}=v,g=R||S;return!g&&O(v)||!!(g&&g.autoDestroy&&g.emitClose&&g.closed===!1)}function D(v){var R;return!!(v&&((R=v[B])!==null&&R!==void 0?R:v.readableDidRead||v.readableAborted))}function w(v){var R,S,g,k,f,y,h,p,u,b;return!!(v&&((R=(S=(g=(k=(f=(y=v[Z])!==null&&y!==void 0?y:v.readableErrored)!==null&&f!==void 0?f:v.writableErrored)!==null&&k!==void 0?k:(h=v._readableState)===null||h===void 0?void 0:h.errorEmitted)!==null&&g!==void 0?g:(p=v._writableState)===null||p===void 0?void 0:p.errorEmitted)!==null&&S!==void 0?S:(u=v._readableState)===null||u===void 0?void 0:u.errored)!==null&&R!==void 0?R:(b=v._writableState)===null||b===void 0?void 0:b.errored))}Q.exports={kDestroyed:K,isDisturbed:D,kIsDisturbed:B,isErrored:w,kIsErrored:Z,isReadable:N,kIsReadable:Y,isClosed:A,isDestroyed:G,isDuplexNodeStream:V,isFinished:E,isIterable:W,isReadableNodeStream:$,isReadableEnded:L,isReadableFinished:j,isReadableErrored:T,isNodeStream:U,isWritable:P,isWritableNodeStream:z,isWritableEnded:M,isWritableFinished:F,isWritableErrored:I,isServerRequest:_,isServerResponse:O,willEmitClose:C}}}),tq=cq({"node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(q,Q){var{AbortError:X,codes:J}=sq(),{ERR_INVALID_ARG_TYPE:H,ERR_STREAM_PREMATURE_CLOSE:K}=J,{once:Z}=wq(),{validateAbortSignal:Y,validateFunction:B,validateObject:$}=aq(),{Promise:z}=Dq(),{isClosed:V,isReadable:U,isReadableNodeStream:W,isReadableFinished:G,isReadableErrored:M,isWritable:F,isWritableNodeStream:L,isWritableFinished:j,isWritableErrored:N,isNodeStream:P,willEmitClose:E}=rq();function I(O){return O.setHeader&&typeof O.abort==="function"}var T=()=>{};function A(O,_,C){var D,w;if(arguments.length===2)C=_,_={};else if(_==null)_={};else $(_,"options");B(C,"callback"),Y(_.signal,"options.signal"),C=Z(C);const v=(D=_.readable)!==null&&D!==void 0?D:W(O),R=(w=_.writable)!==null&&w!==void 0?w:L(O);if(!P(O))throw new H("stream","Stream",O);const{_writableState:S,_readableState:g}=O,k=()=>{if(!O.writable)h()};let f=E(O)&&W(O)===v&&L(O)===R,y=j(O,!1);const h=()=>{if(y=!0,O.destroyed)f=!1;if(f&&(!O.readable||v))return;if(!v||p)C.call(O)};let p=G(O,!1);const u=()=>{if(p=!0,O.destroyed)f=!1;if(f&&(!O.writable||R))return;if(!R||y)C.call(O)},b=(i)=>{C.call(O,i)};let m=V(O);const c=()=>{m=!0;const i=N(O)||M(O);if(i&&typeof i!=="boolean")return C.call(O,i);if(v&&!p&&W(O,!0)){if(!G(O,!1))return C.call(O,new K)}if(R&&!y){if(!j(O,!1))return C.call(O,new K)}C.call(O)},d=()=>{O.req.on("finish",h)};if(I(O)){if(O.on("complete",h),!f)O.on("abort",c);if(O.req)d();else O.on("request",d)}else if(R&&!S)O.on("end",k),O.on("close",k);if(!f&&typeof O.aborted==="boolean")O.on("aborted",c);if(O.on("end",u),O.on("finish",h),_.error!==!1)O.on("error",b);if(O.on("close",c),m)Aq(c);else if(S!==null&&S!==void 0&&S.errorEmitted||g!==null&&g!==void 0&&g.errorEmitted){if(!f)Aq(c)}else if(!v&&(!f||U(O))&&(y||F(O)===!1))Aq(c);else if(!R&&(!f||F(O))&&(p||U(O)===!1))Aq(c);else if(g&&O.req&&O.aborted)Aq(c);const l=()=>{if(C=T,O.removeListener("aborted",c),O.removeListener("complete",h),O.removeListener("abort",c),O.removeListener("request",d),O.req)O.req.removeListener("finish",h);O.removeListener("end",k),O.removeListener("close",k),O.removeListener("finish",h),O.removeListener("end",u),O.removeListener("error",b),O.removeListener("close",c)};if(_.signal&&!m){const i=()=>{const n=C;l(),n.call(O,new X(void 0,{cause:_.signal.reason}))};if(_.signal.aborted)Aq(i);else{const n=C;C=Z((...o)=>{_.signal.removeEventListener("abort",i),n.apply(O,o)}),_.signal.addEventListener("abort",i)}}return l}function x(O,_){return new z((C,D)=>{A(O,_,(w)=>{if(w)D(w);else C()})})}Q.exports=A,Q.exports.finished=x}}),eq=cq({"node_modules/readable-stream/lib/internal/streams/operators.js"(q,Q){var X=globalThis.AbortController||_q("abort-controller").AbortController,{codes:{ERR_INVALID_ARG_TYPE:J,ERR_MISSING_ARGS:H,ERR_OUT_OF_RANGE:K},AbortError:Z}=sq(),{validateAbortSignal:Y,validateInteger:B,validateObject:$}=aq(),z=Dq().Symbol("kWeak"),{finished:V}=tq(),{ArrayPrototypePush:U,MathFloor:W,Number:G,NumberIsNaN:M,Promise:F,PromiseReject:L,PromisePrototypeCatch:j,Symbol:N}=Dq(),P=N("kEmpty"),E=N("kEof");function I(f,y){if(typeof f!=="function")throw new J("fn",["Function","AsyncFunction"],f);if(y!=null)$(y,"options");if((y===null||y===void 0?void 0:y.signal)!=null)Y(y.signal,"options.signal");let h=1;if((y===null||y===void 0?void 0:y.concurrency)!=null)h=W(y.concurrency);return B(h,"concurrency",1),async function*p(){var u,b;const m=new X,c=this,d=[],l=m.signal,i={signal:l},n=()=>m.abort();if(y!==null&&y!==void 0&&(u=y.signal)!==null&&u!==void 0&&u.aborted)n();y===null||y===void 0||(b=y.signal)===null||b===void 0||b.addEventListener("abort",n);let o,s,a=!1;function r(){a=!0}async function t(){try{for await(let Qq of c){var e;if(a)return;if(l.aborted)throw new Z;try{Qq=f(Qq,i)}catch(Xq){Qq=L(Xq)}if(Qq===P)continue;if(typeof((e=Qq)===null||e===void 0?void 0:e.catch)==="function")Qq.catch(r);if(d.push(Qq),o)o(),o=null;if(!a&&d.length&&d.length>=h)await new F((Xq)=>{s=Xq})}d.push(E)}catch(Qq){const Xq=L(Qq);j(Xq,r),d.push(Xq)}finally{var qq;if(a=!0,o)o(),o=null;y===null||y===void 0||(qq=y.signal)===null||qq===void 0||qq.removeEventListener("abort",n)}}t();try{while(!0){while(d.length>0){const e=await d[0];if(e===E)return;if(l.aborted)throw new Z;if(e!==P)yield e;if(d.shift(),s)s(),s=null}await new F((e)=>{o=e})}}finally{if(m.abort(),a=!0,s)s(),s=null}}.call(this)}function T(f=void 0){if(f!=null)$(f,"options");if((f===null||f===void 0?void 0:f.signal)!=null)Y(f.signal,"options.signal");return async function*y(){let h=0;for await(let u of this){var p;if(f!==null&&f!==void 0&&(p=f.signal)!==null&&p!==void 0&&p.aborted)throw new Z({cause:f.signal.reason});yield[h++,u]}}.call(this)}async function A(f,y=void 0){for await(let h of C.call(this,f,y))return!0;return!1}async function x(f,y=void 0){if(typeof f!=="function")throw new J("fn",["Function","AsyncFunction"],f);return!await A.call(this,async(...h)=>{return!await f(...h)},y)}async function O(f,y){for await(let h of C.call(this,f,y))return h;return}async function _(f,y){if(typeof f!=="function")throw new J("fn",["Function","AsyncFunction"],f);async function h(p,u){return await f(p,u),P}for await(let p of I.call(this,h,y));}function C(f,y){if(typeof f!=="function")throw new J("fn",["Function","AsyncFunction"],f);async function h(p,u){if(await f(p,u))return p;return P}return I.call(this,h,y)}var D=class extends H{constructor(){super("reduce");this.message="Reduce of an empty stream requires an initial value"}};async function w(f,y,h){var p;if(typeof f!=="function")throw new J("reducer",["Function","AsyncFunction"],f);if(h!=null)$(h,"options");if((h===null||h===void 0?void 0:h.signal)!=null)Y(h.signal,"options.signal");let u=arguments.length>1;if(h!==null&&h!==void 0&&(p=h.signal)!==null&&p!==void 0&&p.aborted){const l=new Z(void 0,{cause:h.signal.reason});throw this.once("error",()=>{}),await V(this.destroy(l)),l}const b=new X,m=b.signal;if(h!==null&&h!==void 0&&h.signal){const l={once:!0,[z]:this};h.signal.addEventListener("abort",()=>b.abort(),l)}let c=!1;try{for await(let l of this){var d;if(c=!0,h!==null&&h!==void 0&&(d=h.signal)!==null&&d!==void 0&&d.aborted)throw new Z;if(!u)y=l,u=!0;else y=await f(y,l,{signal:m})}if(!c&&!u)throw new D}finally{b.abort()}return y}async function v(f){if(f!=null)$(f,"options");if((f===null||f===void 0?void 0:f.signal)!=null)Y(f.signal,"options.signal");const y=[];for await(let p of this){var h;if(f!==null&&f!==void 0&&(h=f.signal)!==null&&h!==void 0&&h.aborted)throw new Z(void 0,{cause:f.signal.reason});U(y,p)}return y}function R(f,y){const h=I.call(this,f,y);return async function*p(){for await(let u of h)yield*u}.call(this)}function S(f){if(f=G(f),M(f))return 0;if(f<0)throw new K("number",">= 0",f);return f}function g(f,y=void 0){if(y!=null)$(y,"options");if((y===null||y===void 0?void 0:y.signal)!=null)Y(y.signal,"options.signal");return f=S(f),async function*h(){var p;if(y!==null&&y!==void 0&&(p=y.signal)!==null&&p!==void 0&&p.aborted)throw new Z;for await(let b of this){var u;if(y!==null&&y!==void 0&&(u=y.signal)!==null&&u!==void 0&&u.aborted)throw new Z;if(f--<=0)yield b}}.call(this)}function k(f,y=void 0){if(y!=null)$(y,"options");if((y===null||y===void 0?void 0:y.signal)!=null)Y(y.signal,"options.signal");return f=S(f),async function*h(){var p;if(y!==null&&y!==void 0&&(p=y.signal)!==null&&p!==void 0&&p.aborted)throw new Z;for await(let b of this){var u;if(y!==null&&y!==void 0&&(u=y.signal)!==null&&u!==void 0&&u.aborted)throw new Z;if(f-- >0)yield b;else return}}.call(this)}Q.exports.streamReturningOperators={asIndexedPairs:T,drop:g,filter:C,flatMap:R,map:I,take:k},Q.exports.promiseReturningOperators={every:x,forEach:_,reduce:w,toArray:v,some:A,find:O}}}),qQ=cq({"node_modules/readable-stream/lib/internal/streams/destroy.js"(q,Q){var{aggregateTwoErrors:X,codes:{ERR_MULTIPLE_CALLBACK:J},AbortError:H}=sq(),{Symbol:K}=Dq(),{kDestroyed:Z,isDestroyed:Y,isFinished:B,isServerRequest:$}=rq(),z="#kDestroy",V="#kConstruct";function U(_,C,D){if(_){if(_.stack,C&&!C.errored)C.errored=_;if(D&&!D.errored)D.errored=_}}function W(_,C){const D=this._readableState,w=this._writableState,v=w||D;if(w&&w.destroyed||D&&D.destroyed){if(typeof C==="function")C();return this}if(U(_,w,D),w)w.destroyed=!0;if(D)D.destroyed=!0;if(!v.constructed)this.once(z,(R)=>{G(this,X(R,_),C)});else G(this,_,C);return this}function G(_,C,D){let w=!1;function v(R){if(w)return;w=!0;const{_readableState:S,_writableState:g}=_;if(U(R,g,S),g)g.closed=!0;if(S)S.closed=!0;if(typeof D==="function")D(R);if(R)Aq(M,_,R);else Aq(F,_)}try{_._destroy(C||null,v)}catch(R){v(R)}}function M(_,C){L(_,C),F(_)}function F(_){const{_readableState:C,_writableState:D}=_;if(D)D.closeEmitted=!0;if(C)C.closeEmitted=!0;if(D&&D.emitClose||C&&C.emitClose)_.emit("close")}function L(_,C){const D=_?._readableState,w=_?._writableState;if(w?.errorEmitted||D?.errorEmitted)return;if(w)w.errorEmitted=!0;if(D)D.errorEmitted=!0;_?.emit?.("error",C)}function j(){const _=this._readableState,C=this._writableState;if(_)_.constructed=!0,_.closed=!1,_.closeEmitted=!1,_.destroyed=!1,_.errored=null,_.errorEmitted=!1,_.reading=!1,_.ended=_.readable===!1,_.endEmitted=_.readable===!1;if(C)C.constructed=!0,C.destroyed=!1,C.closed=!1,C.closeEmitted=!1,C.errored=null,C.errorEmitted=!1,C.finalCalled=!1,C.prefinished=!1,C.ended=C.writable===!1,C.ending=C.writable===!1,C.finished=C.writable===!1}function N(_,C,D){const w=_?._readableState,v=_?._writableState;if(v&&v.destroyed||w&&w.destroyed)return this;if(w&&w.autoDestroy||v&&v.autoDestroy)_.destroy(C);else if(C){if(Error.captureStackTrace(C),v&&!v.errored)v.errored=C;if(w&&!w.errored)w.errored=C;if(D)Aq(L,_,C);else L(_,C)}}function P(_,C){if(typeof _._construct!=="function")return;const{_readableState:D,_writableState:w}=_;if(D)D.constructed=!1;if(w)w.constructed=!1;if(_.once(V,C),_.listenerCount(V)>1)return;Aq(E,_)}function E(_){let C=!1;function D(w){if(C){N(_,w!==null&&w!==void 0?w:new J);return}C=!0;const{_readableState:v,_writableState:R}=_,S=R||v;if(v)v.constructed=!0;if(R)R.constructed=!0;if(S.destroyed)_.emit(z,w);else if(w)N(_,w,!0);else Aq(I,_)}try{_._construct(D)}catch(w){D(w)}}function I(_){_.emit(V)}function T(_){return _&&_.setHeader&&typeof _.abort==="function"}function A(_){_.emit("close")}function x(_,C){_.emit("error",C),Aq(A,_)}function O(_,C){if(!_||Y(_))return;if(!C&&!B(_))C=new H;if($(_))_.socket=null,_.destroy(C);else if(T(_))_.abort();else if(T(_.req))_.req.abort();else if(typeof _.destroy==="function")_.destroy(C);else if(typeof _.close==="function")_.close();else if(C)Aq(x,_);else Aq(A,_);if(!_.destroyed)_[Z]=!0}Q.exports={construct:P,destroyer:O,destroy:W,undestroy:j,errorOrDestroy:N}}}),QQ=cq({"node_modules/readable-stream/lib/internal/streams/legacy.js"(q,Q){var{ArrayIsArray:X,ObjectSetPrototypeOf:J}=Dq(),{EventEmitter:H}=_q("bun:events_native"),K;if(gq)K=Cq;else K=H;function Z(B){if(!(this instanceof Z))return new Z(B);K.call(this,B)}J(Z.prototype,K.prototype),J(Z,K),Z.prototype.pipe=function(B,$){const z=this;function V(j){if(B.writable&&B.write(j)===!1&&z.pause)z.pause()}z.on("data",V);function U(){if(z.readable&&z.resume)z.resume()}if(B.on("drain",U),!B._isStdio&&(!$||$.end!==!1))z.on("end",G),z.on("close",M);let W=!1;function G(){if(W)return;W=!0,B.end()}function M(){if(W)return;if(W=!0,typeof B.destroy==="function")B.destroy()}function F(j){if(L(),K.listenerCount(this,"error")===0)this.emit("error",j)}Y(z,"error",F),Y(B,"error",F);function L(){z.removeListener("data",V),B.removeListener("drain",U),z.removeListener("end",G),z.removeListener("close",M),z.removeListener("error",F),B.removeListener("error",F),z.removeListener("end",L),z.removeListener("close",L),B.removeListener("close",L)}return z.on("end",L),z.on("close",L),B.on("close",L),B.emit("pipe",z),B};function Y(B,$,z){if(typeof B.prependListener==="function")return B.prependListener($,z);if(!B._events||!B._events[$])B.on($,z);else if(X(B._events[$]))B._events[$].unshift(z);else B._events[$]=[z,B._events[$]]}Q.exports={Stream:Z,prependListener:Y}}}),XQ=cq({"node_modules/readable-stream/lib/internal/streams/add-abort-signal.js"(q,Q){var{AbortError:X,codes:J}=sq(),H=tq(),{ERR_INVALID_ARG_TYPE:K}=J,Z=(B,$)=>{if(typeof B!=="object"||!("aborted"in B))throw new K($,"AbortSignal",B)};function Y(B){return!!(B&&typeof B.pipe==="function")}Q.exports.addAbortSignal=function B($,z){if(Z($,"signal"),!Y(z))throw new K("stream","stream.Stream",z);return Q.exports.addAbortSignalNoValidate($,z)},Q.exports.addAbortSignalNoValidate=function(B,$){if(typeof B!=="object"||!("aborted"in B))return $;const z=()=>{$.destroy(new X(void 0,{cause:B.reason}))};if(B.aborted)z();else B.addEventListener("abort",z),H($,()=>B.removeEventListener("abort",z));return $}}}),JQ=cq({"node_modules/readable-stream/lib/internal/streams/state.js"(q,Q){var{MathFloor:X,NumberIsInteger:J}=Dq(),{ERR_INVALID_ARG_VALUE:H}=sq().codes;function K(B,$,z){return B.highWaterMark!=null?B.highWaterMark:$?B[z]:null}function Z(B){return B?16:16384}function Y(B,$,z,V){const U=K($,V,z);if(U!=null){if(!J(U)||U<0){const W=V?`options.${z}`:"options.highWaterMark";throw new H(W,U)}return X(U)}return Z(B.objectMode)}Q.exports={getHighWaterMark:Y,getDefaultHighWaterMark:Z}}}),HQ=cq({"node_modules/readable-stream/lib/internal/streams/from.js"(q,Q){var{PromisePrototypeThen:X,SymbolAsyncIterator:J,SymbolIterator:H}=Dq(),{ERR_INVALID_ARG_TYPE:K,ERR_STREAM_NULL_VALUES:Z}=sq().codes;function Y(B,$,z){let V;if(typeof $==="string"||$ instanceof Buffer)return new B({objectMode:!0,...z,read(){this.push($),this.push(null)}});let U;if($&&$[J])U=!0,V=$[J]();else if($&&$[H])U=!1,V=$[H]();else throw new K("iterable",["Iterable"],$);const W=new B({objectMode:!0,highWaterMark:1,...z});let G=!1;W._read=function(){if(!G)G=!0,F()},W._destroy=function(L,j){X(M(L),()=>Aq(j,L),(N)=>Aq(j,N||L))};async function M(L){const j=L!==void 0&&L!==null,N=typeof V.throw==="function";if(j&&N){const{value:P,done:E}=await V.throw(L);if(await P,E)return}if(typeof V.return==="function"){const{value:P}=await V.return();await P}}async function F(){for(;;){try{const{value:L,done:j}=U?await V.next():V.next();if(j)W.push(null);else{const N=L&&typeof L.then==="function"?await L:L;if(N===null)throw G=!1,new Z;else if(W.push(N))continue;else G=!1}}catch(L){W.destroy(L)}break}}return W}Q.exports=Y}}),KQ,ZQ=cq({"node_modules/readable-stream/lib/internal/streams/readable.js"(q,Q){var{ArrayPrototypeIndexOf:X,NumberIsInteger:J,NumberIsNaN:H,NumberParseInt:K,ObjectDefineProperties:Z,ObjectKeys:Y,ObjectSetPrototypeOf:B,Promise:$,SafeSet:z,SymbolAsyncIterator:V,Symbol:U}=Dq(),W=globalThis[Symbol.for("Bun.lazy")]("bun:stream").ReadableState,{EventEmitter:G}=_q("bun:events_native"),{Stream:M,prependListener:F}=QQ();function L(Xq){if(!(this instanceof L))return new L(Xq);const Jq=this instanceof vq();if(this._readableState=new W(Xq,this,Jq),Xq){const{read:Hq,destroy:Kq,construct:Zq,signal:Yq}=Xq;if(typeof Hq==="function")this._read=Hq;if(typeof Kq==="function")this._destroy=Kq;if(typeof Zq==="function")this._construct=Zq;if(Yq&&!Jq)P(Yq,this)}M.call(this,Xq),C.construct(this,()=>{if(this._readableState.needReadable)O(this,this._readableState)})}B(L.prototype,M.prototype),B(L,M),L.prototype.on=function(Xq,Jq){const Hq=M.prototype.on.call(this,Xq,Jq),Kq=this._readableState;if(Xq==="data")if(Kq.readableListening=this.listenerCount("readable")>0,Kq.flowing!==!1)Iq&&Eq("in flowing mode!",this.__id),this.resume();else Iq&&Eq("in readable mode!",this.__id);else if(Xq==="readable"){if(Iq&&Eq("readable listener added!",this.__id),!Kq.endEmitted&&!Kq.readableListening){if(Kq.readableListening=Kq.needReadable=!0,Kq.flowing=!1,Kq.emittedReadable=!1,Iq&&Eq("on readable - state.length, reading, emittedReadable",Kq.length,Kq.reading,Kq.emittedReadable,this.__id),Kq.length)_(this,Kq);else if(!Kq.reading)Aq(n,this)}else if(Kq.endEmitted)Iq&&Eq("end already emitted...",this.__id)}return Hq};class j extends L{#q;#Q;#X;#J;constructor(Xq,Jq){const{objectMode:Hq,highWaterMark:Kq,encoding:Zq,signal:Yq}=Xq;super({objectMode:Hq,highWaterMark:Kq,encoding:Zq,signal:Yq});this.#X=[],this.#q=void 0,this.#J=Jq,this.#Q=!1}#H(){var Xq=this.#X,Jq=0,Hq=Xq.length;for(;Jq0)this.#X=[];return!1}#K(Xq){Xq.releaseLock(),this.#q=void 0,this.#Q=!0,this.push(null);return}async _read(){Iq&&Eq("ReadableFromWeb _read()",this.__id);var Xq=this.#J,Jq=this.#q;if(Xq)Jq=this.#q=Xq.getReader(),this.#J=void 0;else if(this.#H())return;var Hq;try{do{var Kq=!1,Zq;const Yq=Jq.readMany();if(Oq(Yq)){if({done:Kq,value:Zq}=await Yq,this.#Q){this.#X.push(...Zq);return}}else({done:Kq,value:Zq}=Yq);if(Kq){this.#K(Jq);return}if(!this.push(Zq[0])){this.#X=Zq.slice(1);return}for(let Bq=1,$q=Zq.length;Bq<$q;Bq++)if(!this.push(Zq[Bq])){this.#X=Zq.slice(Bq+1);return}}while(!this.#Q)}catch(Yq){Hq=Yq}finally{if(Hq)throw Hq}}_destroy(Xq,Jq){if(!this.#Q){var Hq=this.#q;if(Hq)this.#q=void 0,Hq.cancel(Xq).finally(()=>{this.#Q=!0,Jq(Xq)});return}try{Jq(Xq)}catch(Kq){globalThis.reportError(Kq)}}}function N(Xq,Jq={}){if(!dq(Xq))throw new w("readableStream","ReadableStream",Xq);k(Jq,"options");const{highWaterMark:Hq,encoding:Kq,objectMode:Zq=!1,signal:Yq}=Jq;if(Kq!==void 0&&!Buffer.isEncoding(Kq))throw new oq(Kq,"options.encoding");return lq(Zq,"options.objectMode"),NQ(L,Xq,Jq)||new j({highWaterMark:Hq,encoding:Kq,objectMode:Zq,signal:Yq},Xq)}Q.exports=L,KQ=j;var{addAbortSignal:P}=XQ(),E=tq();const{maybeReadMore:I,resume:T,emitReadable:A,onEofChunk:x}=globalThis[Symbol.for("Bun.lazy")]("bun:stream");function O(Xq,Jq){process.nextTick(I,Xq,Jq)}function _(Xq,Jq){Iq&&Eq("NativeReadable - emitReadable",Xq.__id),A(Xq,Jq)}var C=qQ(),{aggregateTwoErrors:D,codes:{ERR_INVALID_ARG_TYPE:w,ERR_METHOD_NOT_IMPLEMENTED:v,ERR_OUT_OF_RANGE:R,ERR_STREAM_PUSH_AFTER_EOF:S,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:g}}=sq(),{validateObject:k}=aq(),{StringDecoder:f}=_q("string_decoder"),y=HQ(),h=()=>{},{errorOrDestroy:p}=C;L.prototype.destroy=C.destroy,L.prototype._undestroy=C.undestroy,L.prototype._destroy=function(Xq,Jq){Jq(Xq)},L.prototype[G.captureRejectionSymbol]=function(Xq){this.destroy(Xq)},L.prototype.push=function(Xq,Jq){return u(this,Xq,Jq,!1)},L.prototype.unshift=function(Xq,Jq){return u(this,Xq,Jq,!0)};function u(Xq,Jq,Hq,Kq){Iq&&Eq("readableAddChunk",Jq,Xq.__id);const Zq=Xq._readableState;let Yq;if(!Zq.objectMode){if(typeof Jq==="string"){if(Hq=Hq||Zq.defaultEncoding,Zq.encoding!==Hq)if(Kq&&Zq.encoding)Jq=Buffer.from(Jq,Hq).toString(Zq.encoding);else Jq=Buffer.from(Jq,Hq),Hq=""}else if(Jq instanceof Buffer)Hq="";else if(M._isUint8Array(Jq)){if(Kq||!Zq.decoder)Jq=M._uint8ArrayToBuffer(Jq);Hq=""}else if(Jq!=null)Yq=new w("chunk",["string","Buffer","Uint8Array"],Jq)}if(Yq)p(Xq,Yq);else if(Jq===null)Zq.reading=!1,x(Xq,Zq);else if(Zq.objectMode||Jq&&Jq.length>0)if(Kq)if(Zq.endEmitted)p(Xq,new g);else if(Zq.destroyed||Zq.errored)return!1;else b(Xq,Zq,Jq,!0);else if(Zq.ended)p(Xq,new S);else if(Zq.destroyed||Zq.errored)return!1;else if(Zq.reading=!1,Zq.decoder&&!Hq)if(Jq=Zq.decoder.write(Jq),Zq.objectMode||Jq.length!==0)b(Xq,Zq,Jq,!1);else O(Xq,Zq);else b(Xq,Zq,Jq,!1);else if(!Kq)Zq.reading=!1,O(Xq,Zq);return!Zq.ended&&(Zq.length0){if(Jq.multiAwaitDrain)Jq.awaitDrainWriters.clear();else Jq.awaitDrainWriters=null;Jq.dataEmitted=!0,Xq.emit("data",Hq)}else{if(Jq.length+=Jq.objectMode?1:Hq.length,Kq)Jq.buffer.unshift(Hq);else Jq.buffer.push(Hq);if(Iq&&Eq("needReadable @ addChunk",Jq.needReadable,Xq.__id),Jq.needReadable)_(Xq,Jq)}O(Xq,Jq)}L.prototype.isPaused=function(){const Xq=this._readableState;return Xq.paused===!0||Xq.flowing===!1},L.prototype.setEncoding=function(Xq){const Jq=new f(Xq);this._readableState.decoder=Jq,this._readableState.encoding=this._readableState.decoder.encoding;const Hq=this._readableState.buffer;let Kq="";for(let Zq=Hq.length;Zq>0;Zq--)Kq+=Jq.write(Hq.shift());if(Kq!=="")Hq.push(Kq);return this._readableState.length=Kq.length,this};var m=1073741824;function c(Xq){if(Xq>m)throw new R("size","<= 1GiB",Xq);else Xq--,Xq|=Xq>>>1,Xq|=Xq>>>2,Xq|=Xq>>>4,Xq|=Xq>>>8,Xq|=Xq>>>16,Xq++;return Xq}function d(Xq,Jq){if(Xq<=0||Jq.length===0&&Jq.ended)return 0;if(Jq.objectMode)return 1;if(H(Xq)){if(Jq.flowing&&Jq.length)return Jq.buffer.first().length;return Jq.length}if(Xq<=Jq.length)return Xq;return Jq.ended?Jq.length:0}L.prototype.read=function(Xq){if(Iq&&Eq("read - n =",Xq,this.__id),!J(Xq))Xq=K(Xq,10);const Jq=this._readableState,Hq=Xq;if(Xq>Jq.highWaterMark)Jq.highWaterMark=c(Xq);if(Xq!==0)Jq.emittedReadable=!1;if(Xq===0&&Jq.needReadable&&((Jq.highWaterMark!==0?Jq.length>=Jq.highWaterMark:Jq.length>0)||Jq.ended)){if(Iq&&Eq("read: emitReadable or endReadable",Jq.length,Jq.ended,this.__id),Jq.length===0&&Jq.ended)r(this);else _(this,Jq);return null}if(Xq=d(Xq,Jq),Xq===0&&Jq.ended){if(Iq&&Eq("read: calling endReadable if length 0 -- length, state.ended",Jq.length,Jq.ended,this.__id),Jq.length===0)r(this);return null}let Kq=Jq.needReadable;if(Iq&&Eq("need readable",Kq,this.__id),Jq.length===0||Jq.length-Xq0)Yq=a(Xq,Jq);else Yq=null;if(Iq&&Eq("ret @ read",Yq,this.__id),Yq===null)Jq.needReadable=Jq.length<=Jq.highWaterMark,Iq&&Eq("state.length while ret = null",Jq.length,this.__id),Xq=0;else if(Jq.length-=Xq,Jq.multiAwaitDrain)Jq.awaitDrainWriters.clear();else Jq.awaitDrainWriters=null;if(Jq.length===0){if(!Jq.ended)Jq.needReadable=!0;if(Hq!==Xq&&Jq.ended)r(this)}if(Yq!==null&&!Jq.errorEmitted&&!Jq.closeEmitted)Jq.dataEmitted=!0,this.emit("data",Yq);return Yq},L.prototype._read=function(Xq){throw new v("_read()")},L.prototype.pipe=function(Xq,Jq){const Hq=this,Kq=this._readableState;if(Kq.pipes.length===1){if(!Kq.multiAwaitDrain)Kq.multiAwaitDrain=!0,Kq.awaitDrainWriters=new z(Kq.awaitDrainWriters?[Kq.awaitDrainWriters]:[])}Kq.pipes.push(Xq),Iq&&Eq("pipe count=%d opts=%j",Kq.pipes.length,Jq,Hq.__id);const Yq=(!Jq||Jq.end!==!1)&&Xq!==process.stdout&&Xq!==process.stderr?$q:jq;if(Kq.endEmitted)Aq(Yq);else Hq.once("end",Yq);Xq.on("unpipe",Bq);function Bq(Nq,Pq){if(Iq&&Eq("onunpipe",Hq.__id),Nq===Hq){if(Pq&&Pq.hasUnpiped===!1)Pq.hasUnpiped=!0,Uq()}}function $q(){Iq&&Eq("onend",Hq.__id),Xq.end()}let zq,Vq=!1;function Uq(){if(Iq&&Eq("cleanup",Hq.__id),Xq.removeListener("close",Fq),Xq.removeListener("finish",Lq),zq)Xq.removeListener("drain",zq);if(Xq.removeListener("error",Mq),Xq.removeListener("unpipe",Bq),Hq.removeListener("end",$q),Hq.removeListener("end",jq),Hq.removeListener("data",Gq),Vq=!0,zq&&Kq.awaitDrainWriters&&(!Xq._writableState||Xq._writableState.needDrain))zq()}function Wq(){if(!Vq){if(Kq.pipes.length===1&&Kq.pipes[0]===Xq)Iq&&Eq("false write response, pause",0,Hq.__id),Kq.awaitDrainWriters=Xq,Kq.multiAwaitDrain=!1;else if(Kq.pipes.length>1&&Kq.pipes.includes(Xq))Iq&&Eq("false write response, pause",Kq.awaitDrainWriters.size,Hq.__id),Kq.awaitDrainWriters.add(Xq);Hq.pause()}if(!zq)zq=l(Hq,Xq),Xq.on("drain",zq)}Hq.on("data",Gq);function Gq(Nq){Iq&&Eq("ondata",Hq.__id);const Pq=Xq.write(Nq);if(Iq&&Eq("dest.write",Pq,Hq.__id),Pq===!1)Wq()}function Mq(Nq){if(Eq("onerror",Nq),jq(),Xq.removeListener("error",Mq),Xq.listenerCount("error")===0){const Pq=Xq._writableState||Xq._readableState;if(Pq&&!Pq.errorEmitted)p(Xq,Nq);else Xq.emit("error",Nq)}}F(Xq,"error",Mq);function Fq(){Xq.removeListener("finish",Lq),jq()}Xq.once("close",Fq);function Lq(){Eq("onfinish"),Xq.removeListener("close",Fq),jq()}Xq.once("finish",Lq);function jq(){Eq("unpipe"),Hq.unpipe(Xq)}if(Xq.emit("pipe",Hq),Xq.writableNeedDrain===!0){if(Kq.flowing)Wq()}else if(!Kq.flowing)Eq("pipe resume"),Hq.resume();return Xq};function l(Xq,Jq){return function Hq(){const Kq=Xq._readableState;if(Kq.awaitDrainWriters===Jq)Eq("pipeOnDrain",1),Kq.awaitDrainWriters=null;else if(Kq.multiAwaitDrain)Eq("pipeOnDrain",Kq.awaitDrainWriters.size),Kq.awaitDrainWriters.delete(Jq);if((!Kq.awaitDrainWriters||Kq.awaitDrainWriters.size===0)&&Xq.listenerCount("data"))Xq.resume()}}L.prototype.unpipe=function(Xq){const Jq=this._readableState,Hq={hasUnpiped:!1};if(Jq.pipes.length===0)return this;if(!Xq){const Zq=Jq.pipes;Jq.pipes=[],this.pause();for(let Yq=0;Yq0,Jq.resumeScheduled&&Jq.paused===!1)Jq.flowing=!0;else if(Xq.listenerCount("data")>0)Xq.resume();else if(!Jq.readableListening)Jq.flowing=null}function n(Xq){Iq&&Eq("on readable nextTick, calling read(0)",Xq.__id),Xq.read(0)}L.prototype.resume=function(){const Xq=this._readableState;if(!Xq.flowing)Iq&&Eq("resume",this.__id),Xq.flowing=!Xq.readableListening,T(this,Xq);return Xq.paused=!1,this},L.prototype.pause=function(){if(Iq&&Eq("call pause flowing=%j",this._readableState.flowing,this.__id),this._readableState.flowing!==!1)Iq&&Eq("pause",this.__id),this._readableState.flowing=!1,this.emit("pause");return this._readableState.paused=!0,this},L.prototype.wrap=function(Xq){let Jq=!1;Xq.on("data",(Kq)=>{if(!this.push(Kq)&&Xq.pause)Jq=!0,Xq.pause()}),Xq.on("end",()=>{this.push(null)}),Xq.on("error",(Kq)=>{p(this,Kq)}),Xq.on("close",()=>{this.destroy()}),Xq.on("destroy",()=>{this.destroy()}),this._read=()=>{if(Jq&&Xq.resume)Jq=!1,Xq.resume()};const Hq=Y(Xq);for(let Kq=1;Kq{Zq=Bq?D(Zq,Bq):null,Hq(),Hq=h});try{while(!0){const Bq=Xq.destroyed?null:Xq.read();if(Bq!==null)yield Bq;else if(Zq)throw Zq;else if(Zq===null)return;else await new $(Kq)}}catch(Bq){throw Zq=D(Zq,Bq),Zq}finally{if((Zq||(Jq===null||Jq===void 0?void 0:Jq.destroyOnReturn)!==!1)&&(Zq===void 0||Xq._readableState.autoDestroy))C.destroyer(Xq,null);else Xq.off("readable",Kq),Yq()}}Z(L.prototype,{readable:{get(){const Xq=this._readableState;return!!Xq&&Xq.readable!==!1&&!Xq.destroyed&&!Xq.errorEmitted&&!Xq.endEmitted},set(Xq){if(this._readableState)this._readableState.readable=!!Xq}},readableDidRead:{enumerable:!1,get:function(){return this._readableState.dataEmitted}},readableAborted:{enumerable:!1,get:function(){return!!(this._readableState.readable!==!1&&(this._readableState.destroyed||this._readableState.errored)&&!this._readableState.endEmitted)}},readableHighWaterMark:{enumerable:!1,get:function(){return this._readableState.highWaterMark}},readableBuffer:{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}},readableFlowing:{enumerable:!1,get:function(){return this._readableState.flowing},set:function(Xq){if(this._readableState)this._readableState.flowing=Xq}},readableLength:{enumerable:!1,get(){return this._readableState.length}},readableObjectMode:{enumerable:!1,get(){return this._readableState?this._readableState.objectMode:!1}},readableEncoding:{enumerable:!1,get(){return this._readableState?this._readableState.encoding:null}},errored:{enumerable:!1,get(){return this._readableState?this._readableState.errored:null}},closed:{get(){return this._readableState?this._readableState.closed:!1}},destroyed:{enumerable:!1,get(){return this._readableState?this._readableState.destroyed:!1},set(Xq){if(!this._readableState)return;this._readableState.destroyed=Xq}},readableEnded:{enumerable:!1,get(){return this._readableState?this._readableState.endEmitted:!1}}}),L._fromList=a;function a(Xq,Jq){if(Jq.length===0)return null;let Hq;if(Jq.objectMode)Hq=Jq.buffer.shift();else if(!Xq||Xq>=Jq.length){if(Jq.decoder)Hq=Jq.buffer.join("");else if(Jq.buffer.length===1)Hq=Jq.buffer.first();else Hq=Jq.buffer.concat(Jq.length);Jq.buffer.clear()}else Hq=Jq.buffer.consume(Xq,Jq.decoder);return Hq}function r(Xq){const Jq=Xq._readableState;if(Iq&&Eq("endEmitted @ endReadable",Jq.endEmitted,Xq.__id),!Jq.endEmitted)Jq.ended=!0,Aq(t,Jq,Xq)}function t(Xq,Jq){if(Iq&&Eq("endReadableNT -- endEmitted, state.length",Xq.endEmitted,Xq.length,Jq.__id),!Xq.errored&&!Xq.closeEmitted&&!Xq.endEmitted&&Xq.length===0){if(Xq.endEmitted=!0,Jq.emit("end"),Iq&&Eq("end emitted @ endReadableNT",Jq.__id),Jq.writable&&Jq.allowHalfOpen===!1)Aq(e,Jq);else if(Xq.autoDestroy){const Hq=Jq._writableState;if(!Hq||Hq.autoDestroy&&(Hq.finished||Hq.writable===!1))Jq.destroy()}}}function e(Xq){if(Xq.writable&&!Xq.writableEnded&&!Xq.destroyed)Xq.end()}L.from=function(Xq,Jq){return y(L,Xq,Jq)};var qq={newStreamReadableFromReadableStream:N};function Qq(){if(qq===void 0)qq={};return qq}L.fromWeb=function(Xq,Jq){return Qq().newStreamReadableFromReadableStream(Xq,Jq)},L.toWeb=function(Xq){return Qq().newReadableStreamFromStreamReadable(Xq)},L.wrap=function(Xq,Jq){var Hq,Kq;return new L({objectMode:(Hq=(Kq=Xq.readableObjectMode)!==null&&Kq!==void 0?Kq:Xq.objectMode)!==null&&Hq!==void 0?Hq:!0,...Jq,destroy(Zq,Yq){C.destroyer(Xq,Zq),Yq(Zq)}}).wrap(Xq)}}}),YQ=cq({"node_modules/readable-stream/lib/internal/streams/writable.js"(q,Q){var{ArrayPrototypeSlice:X,Error:J,FunctionPrototypeSymbolHasInstance:H,ObjectDefineProperty:K,ObjectDefineProperties:Z,ObjectSetPrototypeOf:Y,StringPrototypeToLowerCase:B,Symbol:$,SymbolHasInstance:z}=Dq(),{EventEmitter:V}=_q("bun:events_native"),U=QQ().Stream,W=qQ(),{addAbortSignal:G}=XQ(),{getHighWaterMark:M,getDefaultHighWaterMark:F}=JQ(),{ERR_INVALID_ARG_TYPE:L,ERR_METHOD_NOT_IMPLEMENTED:j,ERR_MULTIPLE_CALLBACK:N,ERR_STREAM_CANNOT_PIPE:P,ERR_STREAM_DESTROYED:E,ERR_STREAM_ALREADY_FINISHED:I,ERR_STREAM_NULL_VALUES:T,ERR_STREAM_WRITE_AFTER_END:A,ERR_UNKNOWN_ENCODING:x}=sq().codes,{errorOrDestroy:O}=W;function _(s={}){const a=this instanceof vq();if(!a&&!H(_,this))return new _(s);if(this._writableState=new w(s,this,a),s){if(typeof s.write==="function")this._write=s.write;if(typeof s.writev==="function")this._writev=s.writev;if(typeof s.destroy==="function")this._destroy=s.destroy;if(typeof s.final==="function")this._final=s.final;if(typeof s.construct==="function")this._construct=s.construct;if(s.signal)G(s.signal,this)}U.call(this,s),W.construct(this,()=>{const r=this._writableState;if(!r.writing)u(this,r);d(this,r)})}Y(_.prototype,U.prototype),Y(_,U),Q.exports=_;function C(){}var D=$("kOnFinished");function w(s,a,r){if(typeof r!=="boolean")r=a instanceof vq();if(this.objectMode=!!(s&&s.objectMode),r)this.objectMode=this.objectMode||!!(s&&s.writableObjectMode);this.highWaterMark=s?M(this,s,"writableHighWaterMark",r):F(!1),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;const t=!!(s&&s.decodeStrings===!1);this.decodeStrings=!t,this.defaultEncoding=s&&s.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=f.bind(void 0,a),this.writecb=null,this.writelen=0,this.afterWriteTickInfo=null,v(this),this.pendingcb=0,this.constructed=!0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!s||s.emitClose!==!1,this.autoDestroy=!s||s.autoDestroy!==!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this[D]=[]}function v(s){s.buffered=[],s.bufferedIndex=0,s.allBuffers=!0,s.allNoop=!0}w.prototype.getBuffer=function s(){return X(this.buffered,this.bufferedIndex)},K(w.prototype,"bufferedRequestCount",{get(){return this.buffered.length-this.bufferedIndex}}),K(_,z,{value:function(s){if(H(this,s))return!0;if(this!==_)return!1;return s&&s._writableState instanceof w}}),_.prototype.pipe=function(){O(this,new P)};function R(s,a,r,t){const e=s._writableState;if(typeof r==="function")t=r,r=e.defaultEncoding;else{if(!r)r=e.defaultEncoding;else if(r!=="buffer"&&!Buffer.isEncoding(r))throw new x(r);if(typeof t!=="function")t=C}if(a===null)throw new T;else if(!e.objectMode)if(typeof a==="string"){if(e.decodeStrings!==!1)a=Buffer.from(a,r),r="buffer"}else if(a instanceof Buffer)r="buffer";else if(U._isUint8Array(a))a=U._uint8ArrayToBuffer(a),r="buffer";else throw new L("chunk",["string","Buffer","Uint8Array"],a);let qq;if(e.ending)qq=new A;else if(e.destroyed)qq=new E("write");if(qq)return Aq(t,qq),O(s,qq,!0),qq;return e.pendingcb++,S(s,e,a,r,t)}_.prototype.write=function(s,a,r){return R(this,s,a,r)===!0},_.prototype.cork=function(){this._writableState.corked++},_.prototype.uncork=function(){const s=this._writableState;if(s.corked){if(s.corked--,!s.writing)u(this,s)}},_.prototype.setDefaultEncoding=function s(a){if(typeof a==="string")a=B(a);if(!Buffer.isEncoding(a))throw new x(a);return this._writableState.defaultEncoding=a,this};function S(s,a,r,t,e){const qq=a.objectMode?1:r.length;a.length+=qq;const Qq=a.lengthr.bufferedIndex)u(s,r);if(t)if(r.afterWriteTickInfo!==null&&r.afterWriteTickInfo.cb===e)r.afterWriteTickInfo.count++;else r.afterWriteTickInfo={count:1,cb:e,stream:s,state:r},Aq(y,r.afterWriteTickInfo);else h(s,r,1,e)}}function y({stream:s,state:a,count:r,cb:t}){return a.afterWriteTickInfo=null,h(s,a,r,t)}function h(s,a,r,t){if(!a.ending&&!s.destroyed&&a.length===0&&a.needDrain)a.needDrain=!1,s.emit("drain");while(r-- >0)a.pendingcb--,t();if(a.destroyed)p(a);d(s,a)}function p(s){if(s.writing)return;for(let e=s.bufferedIndex;e1&&s._writev){a.pendingcb-=qq-1;const Xq=a.allNoop?C:(Hq)=>{for(let Kq=Qq;Kq256)r.splice(0,Qq),a.bufferedIndex=0;else a.bufferedIndex=Qq}a.bufferProcessing=!1}_.prototype._write=function(s,a,r){if(this._writev)this._writev([{chunk:s,encoding:a}],r);else throw new j("_write()")},_.prototype._writev=null,_.prototype.end=function(s,a,r,t=!1){const e=this._writableState;if(Iq&&Eq("end",e,this.__id),typeof s==="function")r=s,s=null,a=null;else if(typeof a==="function")r=a,a=null;let qq;if(s!==null&&s!==void 0){let Qq;if(!t)Qq=R(this,s,a);else Qq=this.write(s,a);if(Qq instanceof J)qq=Qq}if(e.corked)e.corked=1,this.uncork();if(qq)this.emit("error",qq);else if(!e.errored&&!e.ending)e.ending=!0,d(this,e,!0),e.ended=!0;else if(e.finished)qq=new I("end");else if(e.destroyed)qq=new E("end");if(typeof r==="function")if(qq||e.finished)Aq(r,qq);else e[D].push(r);return this};function b(s,a){var r=s.ending&&!s.destroyed&&s.constructed&&s.length===0&&!s.errored&&s.buffered.length===0&&!s.finished&&!s.writing&&!s.errorEmitted&&!s.closeEmitted;return Eq("needFinish",r,a),r}function m(s,a){let r=!1;function t(e){if(r){O(s,e!==null&&e!==void 0?e:N());return}if(r=!0,a.pendingcb--,e){const qq=a[D].splice(0);for(let Qq=0;Qq{if(b(e))l(t,e);else e.pendingcb--},s,a);else if(b(a))a.pendingcb++,l(s,a)}}function l(s,a){a.pendingcb--,a.finished=!0;const r=a[D].splice(0);for(let t=0;t{if(y!=null)throw new W("nully","body",y)},(y)=>{G(k,y)});return k=new T({objectMode:!0,readable:!1,write:v,final(y){R(async()=>{try{await f,Aq(y,null)}catch(h){Aq(y,h)}})},destroy:S})}throw new W("Iterable, AsyncIterable or AsyncFunction",C,w)}if(P(_))return O(_.arrayBuffer());if(K(_))return j(T,_,{objectMode:!0,writable:!1});if(typeof(_===null||_===void 0?void 0:_.writable)==="object"||typeof(_===null||_===void 0?void 0:_.readable)==="object"){const w=_!==null&&_!==void 0&&_.readable?Y(_===null||_===void 0?void 0:_.readable)?_===null||_===void 0?void 0:_.readable:O(_.readable):void 0,v=_!==null&&_!==void 0&&_.writable?B(_===null||_===void 0?void 0:_.writable)?_===null||_===void 0?void 0:_.writable:O(_.writable):void 0;return x({readable:w,writable:v})}const D=_===null||_===void 0?void 0:_.then;if(typeof D==="function"){let w;return I(D,_,(v)=>{if(v!=null)w.push(v);w.push(null)},(v)=>{G(w,v)}),w=new T({objectMode:!0,writable:!1,read(){}})}throw new U(C,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],_)};function A(O){let{promise:_,resolve:C}=L();const D=new E,w=D.signal;return{value:O(async function*(){while(!0){const R=_;_=null;const{chunk:S,done:g,cb:k}=await R;if(Aq(k),g)return;if(w.aborted)throw new V(void 0,{cause:w.reason});({promise:_,resolve:C}=L()),yield S}}(),{signal:w}),write(R,S,g){const k=C;C=null,k({chunk:R,done:!1,cb:g})},final(R){const S=C;C=null,S({done:!0,cb:R})},destroy(R,S){D.abort(),S(R)}}}function x(O){const _=O.readable&&typeof O.readable.read!=="function"?F.wrap(O.readable):O.readable,C=O.writable;let D=!!J(_),w=!!H(C),v,R,S,g,k;function f(y){const h=g;if(g=null,h)h(y);else if(y)k.destroy(y);else if(!D&&!w)k.destroy()}if(k=new T({readableObjectMode:!!(_!==null&&_!==void 0&&_.readableObjectMode),writableObjectMode:!!(C!==null&&C!==void 0&&C.writableObjectMode),readable:D,writable:w}),w)z(C,(y)=>{if(w=!1,y)G(_,y);f(y)}),k._write=function(y,h,p){if(C.write(y,h))p();else v=p},k._final=function(y){C.end(),R=y},C.on("drain",function(){if(v){const y=v;v=null,y()}}),C.on("finish",function(){if(R){const y=R;R=null,y()}});if(D)z(_,(y)=>{if(D=!1,y)G(_,y);f(y)}),_.on("readable",function(){if(S){const y=S;S=null,y()}}),_.on("end",function(){k.push(null)}),k._read=function(){while(!0){const y=_.read();if(y===null){S=k._read;return}if(!k.push(y))return}};return k._destroy=function(y,h){if(!y&&g!==null)y=new V;if(S=null,v=null,R=null,g===null)h(y);else g=h,G(C,y),G(_,y)},k}}}),vq=cq({"node_modules/readable-stream/lib/internal/streams/duplex.js"(q,Q){var{ObjectDefineProperties:X,ObjectGetOwnPropertyDescriptor:J,ObjectKeys:H,ObjectSetPrototypeOf:K}=Dq(),Z=ZQ();function Y(U){if(!(this instanceof Y))return new Y(U);if(Z.call(this,U),Tq.call(this,U),U){if(this.allowHalfOpen=U.allowHalfOpen!==!1,U.readable===!1)this._readableState.readable=!1,this._readableState.ended=!0,this._readableState.endEmitted=!0;if(U.writable===!1)this._writableState.writable=!1,this._writableState.ending=!0,this._writableState.ended=!0,this._writableState.finished=!0}else this.allowHalfOpen=!0}Q.exports=Y,K(Y.prototype,Z.prototype),K(Y,Z);for(var B in Tq.prototype)if(!Y.prototype[B])Y.prototype[B]=Tq.prototype[B];X(Y.prototype,{writable:J(Tq.prototype,"writable"),writableHighWaterMark:J(Tq.prototype,"writableHighWaterMark"),writableObjectMode:J(Tq.prototype,"writableObjectMode"),writableBuffer:J(Tq.prototype,"writableBuffer"),writableLength:J(Tq.prototype,"writableLength"),writableFinished:J(Tq.prototype,"writableFinished"),writableCorked:J(Tq.prototype,"writableCorked"),writableEnded:J(Tq.prototype,"writableEnded"),writableNeedDrain:J(Tq.prototype,"writableNeedDrain"),destroyed:{get(){if(this._readableState===void 0||this._writableState===void 0)return!1;return this._readableState.destroyed&&this._writableState.destroyed},set(U){if(this._readableState&&this._writableState)this._readableState.destroyed=U,this._writableState.destroyed=U}}});var $;function z(){if($===void 0)$={};return $}Y.fromWeb=function(U,W){return z().newStreamDuplexFromReadableWritablePair(U,W)},Y.toWeb=function(U){return z().newReadableWritablePairFromDuplex(U)};var V;Y.from=function(U){if(!V)V=BQ();return V(U,"body")}}}),$Q=cq({"node_modules/readable-stream/lib/internal/streams/transform.js"(q,Q){var{ObjectSetPrototypeOf:X,Symbol:J}=Dq(),{ERR_METHOD_NOT_IMPLEMENTED:H}=sq().codes,K=vq();function Z(z){if(!(this instanceof Z))return new Z(z);if(K.call(this,z),this._readableState.sync=!1,this[Y]=null,z){if(typeof z.transform==="function")this._transform=z.transform;if(typeof z.flush==="function")this._flush=z.flush}this.on("prefinish",$.bind(this))}X(Z.prototype,K.prototype),X(Z,K),Q.exports=Z;var Y=J("kCallback");function B(z){if(typeof this._flush==="function"&&!this.destroyed)this._flush((V,U)=>{if(V){if(z)z(V);else this.destroy(V);return}if(U!=null)this.push(U);if(this.push(null),z)z()});else if(this.push(null),z)z()}function $(){if(this._final!==B)B.call(this)}Z.prototype._final=B,Z.prototype._transform=function(z,V,U){throw new H("_transform()")},Z.prototype._write=function(z,V,U){const W=this._readableState,G=this._writableState,M=W.length;this._transform(z,V,(F,L)=>{if(F){U(F);return}if(L!=null)this.push(L);if(G.ended||M===W.length||W.length{k=!0});const f=K(R,{readable:S,writable:g},(y)=>{k=!y});return{destroy:(y)=>{if(k)return;k=!0,Y.destroyer(R,y||new W("pipe"))},cleanup:f}}function x(R){return M(R[R.length-1],"streams[stream.length - 1]"),R.pop()}function O(R){if(L(R))return R;else if(N(R))return _(R);throw new z("val",["Readable","Iterable","AsyncIterable"],R)}async function*_(R){if(!T)T=ZQ();yield*T.prototype[H].call(R)}async function C(R,S,g,{end:k}){let f,y=null;const h=(b)=>{if(b)f=b;if(y){const m=y;y=null,m()}},p=()=>new J((b,m)=>{if(f)m(f);else y=()=>{if(f)m(f);else b()}});S.on("drain",h);const u=K(S,{readable:!1},h);try{if(S.writableNeedDrain)await p();for await(let b of R)if(!S.write(b))await p();if(k)S.end();await p(),g()}catch(b){g(f!==b?$(f,b):b)}finally{u(),S.off("drain",h)}}function D(...R){return w(R,Z(x(R)))}function w(R,S,g){if(R.length===1&&X(R[0]))R=R[0];if(R.length<2)throw new U("streams");const k=new E,f=k.signal,y=g===null||g===void 0?void 0:g.signal,h=[];F(y,"options.signal");function p(){l(new G)}y===null||y===void 0||y.addEventListener("abort",p);let u,b;const m=[];let c=0;function d(o){l(o,--c===0)}function l(o,s){if(o&&(!u||u.code==="ERR_STREAM_PREMATURE_CLOSE"))u=o;if(!u&&!s)return;while(m.length)m.shift()(u);if(y===null||y===void 0||y.removeEventListener("abort",p),k.abort(),s){if(!u)h.forEach((a)=>a());Aq(S,u,b)}}let i;for(let o=0;o0,t=a||(g===null||g===void 0?void 0:g.end)!==!1,e=o===R.length-1;if(P(s)){let qq=function(Qq){if(Qq&&Qq.name!=="AbortError"&&Qq.code!=="ERR_STREAM_PREMATURE_CLOSE")d(Qq)};if(t){const{destroy:Qq,cleanup:Xq}=A(s,a,r);if(m.push(Qq),j(s)&&e)h.push(Xq)}if(s.on("error",qq),j(s)&&e)h.push(()=>{s.removeListener("error",qq)})}if(o===0)if(typeof s==="function"){if(i=s({signal:f}),!L(i))throw new V("Iterable, AsyncIterable or Stream","source",i)}else if(L(s)||N(s))i=s;else i=B.from(s);else if(typeof s==="function")if(i=O(i),i=s(i,{signal:f}),a){if(!L(i,!0))throw new V("AsyncIterable",`transform[${o-1}]`,i)}else{var n;if(!I)I=zQ();const qq=new I({objectMode:!0}),Qq=(n=i)===null||n===void 0?void 0:n.then;if(typeof Qq==="function")c++,Qq.call(i,(Hq)=>{if(b=Hq,Hq!=null)qq.write(Hq);if(t)qq.end();Aq(d)},(Hq)=>{qq.destroy(Hq),Aq(d,Hq)});else if(L(i,!0))c++,C(i,qq,d,{end:t});else throw new V("AsyncIterable or Promise","destination",i);i=qq;const{destroy:Xq,cleanup:Jq}=A(i,!1,!0);if(m.push(Xq),e)h.push(Jq)}else if(P(s)){if(N(i)){c+=2;const qq=v(i,s,d,{end:t});if(j(s)&&e)h.push(qq)}else if(L(i))c++,C(i,s,d,{end:t});else throw new z("val",["Readable","Iterable","AsyncIterable"],i);i=s}else i=B.from(s)}if(f!==null&&f!==void 0&&f.aborted||y!==null&&y!==void 0&&y.aborted)Aq(p);return i}function v(R,S,g,{end:k}){if(R.pipe(S,{end:k}),k)R.once("end",()=>S.end());else g();return K(R,{readable:!0,writable:!1},(f)=>{const y=R._readableState;if(f&&f.code==="ERR_STREAM_PREMATURE_CLOSE"&&y&&y.ended&&!y.errored&&!y.errorEmitted)R.once("end",g).once("error",g);else g(f)}),K(S,{readable:!1,writable:!0},g)}Q.exports={pipelineImpl:w,pipeline:D}}}),UQ=cq({"node_modules/readable-stream/lib/internal/streams/compose.js"(q,Q){var{pipeline:X}=VQ(),J=vq(),{destroyer:H}=qQ(),{isNodeStream:K,isReadable:Z,isWritable:Y}=rq(),{AbortError:B,codes:{ERR_INVALID_ARG_VALUE:$,ERR_MISSING_ARGS:z}}=sq();Q.exports=function V(...U){if(U.length===0)throw new z("streams");if(U.length===1)return J.from(U[0]);const W=[...U];if(typeof U[0]==="function")U[0]=J.from(U[0]);if(typeof U[U.length-1]==="function"){const A=U.length-1;U[A]=J.from(U[A])}for(let A=0;A0&&!Y(U[A]))throw new $(`streams[${A}]`,W[A],"must be writable")}let G,M,F,L,j;function N(A){const x=L;if(L=null,x)x(A);else if(A)j.destroy(A);else if(!T&&!I)j.destroy()}const P=U[0],E=X(U,N),I=!!Y(P),T=!!Z(E);if(j=new J({writableObjectMode:!!(P!==null&&P!==void 0&&P.writableObjectMode),readableObjectMode:!!(E!==null&&E!==void 0&&E.writableObjectMode),writable:I,readable:T}),I)j._write=function(A,x,O){if(P.write(A,x))O();else G=O},j._final=function(A){P.end(),M=A},P.on("drain",function(){if(G){const A=G;G=null,A()}}),E.on("finish",function(){if(M){const A=M;M=null,A()}});if(T)E.on("readable",function(){if(F){const A=F;F=null,A()}}),E.on("end",function(){j.push(null)}),j._read=function(){while(!0){const A=E.read();if(A===null){F=j._read;return}if(!j.push(A))return}};return j._destroy=function(A,x){if(!A&&L!==null)A=new B;if(F=null,G=null,M=null,L===null)x(A);else L=x,H(E,A)},j}}}),WQ=cq({"node_modules/readable-stream/lib/stream/promises.js"(q,Q){var{ArrayPrototypePop:X,Promise:J}=Dq(),{isIterable:H,isNodeStream:K}=rq(),{pipelineImpl:Z}=VQ(),{finished:Y}=tq();function B(...$){return new J((z,V)=>{let U,W;const G=$[$.length-1];if(G&&typeof G==="object"&&!K(G)&&!H(G)){const M=X($);U=M.signal,W=M.end}Z($,(M,F)=>{if(M)V(M);else z(F)},{signal:U,end:W})})}Q.exports={finished:Y,pipeline:B}}}),GQ=cq({"node_modules/readable-stream/lib/stream.js"(q,Q){var{ObjectDefineProperty:X,ObjectKeys:J,ReflectApply:H}=Dq(),{promisify:{custom:K}}=wq(),{streamReturningOperators:Z,promiseReturningOperators:Y}=eq(),{codes:{ERR_ILLEGAL_CONSTRUCTOR:B}}=sq(),$=UQ(),{pipeline:z}=VQ(),{destroyer:V}=qQ(),U=tq(),W=WQ(),G=rq(),M=Q.exports=QQ().Stream;M.isDisturbed=G.isDisturbed,M.isErrored=G.isErrored,M.isWritable=G.isWritable,M.isReadable=G.isReadable,M.Readable=ZQ();for(let L of J(Z)){let j=function(...P){if(new.target)throw B();return M.Readable.from(H(N,this,P))};const N=Z[L];X(j,"name",{value:N.name}),X(j,"length",{value:N.length}),X(M.Readable.prototype,L,{value:j,enumerable:!1,configurable:!0,writable:!0})}for(let L of J(Y)){let j=function(...P){if(new.target)throw B();return H(N,this,P)};const N=Y[L];X(j,"name",{value:N.name}),X(j,"length",{value:N.length}),X(M.Readable.prototype,L,{value:j,enumerable:!1,configurable:!0,writable:!0})}M.Writable=YQ(),M.Duplex=vq(),M.Transform=$Q(),M.PassThrough=zQ(),M.pipeline=z;var{addAbortSignal:F}=XQ();M.addAbortSignal=F,M.finished=U,M.destroy=V,M.compose=$,X(M,"promises",{configurable:!0,enumerable:!0,get(){return W}}),X(z,K,{enumerable:!0,get(){return W.pipeline}}),X(U,K,{enumerable:!0,get(){return W.finished}}),M.Stream=M,M._isUint8Array=function L(j){return j instanceof Uint8Array},M._uint8ArrayToBuffer=function L(j){return new Buffer(j.buffer,j.byteOffset,j.byteLength)}}}),MQ=cq({"node_modules/readable-stream/lib/ours/index.js"(q,Q){const X=GQ(),J=WQ(),H=X.Readable.destroy;Q.exports=X,Q.exports._uint8ArrayToBuffer=X._uint8ArrayToBuffer,Q.exports._isUint8Array=X._isUint8Array,Q.exports.isDisturbed=X.isDisturbed,Q.exports.isErrored=X.isErrored,Q.exports.isWritable=X.isWritable,Q.exports.isReadable=X.isReadable,Q.exports.Readable=X.Readable,Q.exports.Writable=X.Writable,Q.exports.Duplex=X.Duplex,Q.exports.Transform=X.Transform,Q.exports.PassThrough=X.PassThrough,Q.exports.addAbortSignal=X.addAbortSignal,Q.exports.finished=X.finished,Q.exports.destroy=X.destroy,Q.exports.destroy=H,Q.exports.pipeline=X.pipeline,Q.exports.compose=X.compose,Q.exports._getNativeReadableStreamPrototype=jQ,Q.exports.NativeWritable=pQ,xq.defineProperty(X,"promises",{configurable:!0,enumerable:!0,get(){return J}}),Q.exports.Stream=X.Stream,Q.exports.default=Q.exports}}),LQ={0:void 0,1:void 0,2:void 0,3:void 0,4:void 0,5:void 0},Tq=YQ(),pQ=class q extends Tq{#q;#Q;#X=!0;_construct;_destroy;_final;constructor(Q,X={}){super(X);this._construct=this.#J,this._destroy=this.#K,this._final=this.#Z,this.#q=Q}#J(Q){this._writableState.constructed=!0,this.constructed=!0,Q()}#H(){if(typeof this.#q==="object")if(typeof this.#q.write==="function")this.#Q=this.#q;else throw new Error("Invalid FileSink");else this.#Q=Bun.file(this.#q).writer()}write(Q,X,J,H=this.#X){if(!H)return this.#X=!1,super.write(Q,X,J);if(!this.#Q)this.#H();var K=this.#Q,Z=K.write(Q);if(Oq(Z))return Z.then(()=>{this.emit("drain"),K.flush(!0)}),!1;if(K.flush(!0),J)J(null,Q.byteLength);return!0}end(Q,X,J,H=this.#X){return super.end(Q,X,J,H)}#K(Q,X){if(this._writableState.destroyed=!0,X)X(Q)}#Z(Q){if(this.#Q)this.#Q.end();if(Q)Q()}ref(){if(!this.#Q)this.#H();this.#Q.ref()}unref(){if(!this.#Q)return;this.#Q.unref()}},PQ=MQ();PQ[Symbol.for("CommonJS")]=0;PQ[Symbol.for("::bunternal::")]={_ReadableFromWeb:KQ};var lQ=PQ,EQ=PQ._uint8ArrayToBuffer,IQ=PQ._isUint8Array,TQ=PQ.isDisturbed,AQ=PQ.isErrored,xQ=PQ.isWritable,OQ=PQ.isReadable,_Q=PQ.Readable,Tq=PQ.Writable,CQ=PQ.Duplex,DQ=PQ.Transform,wQ=PQ.PassThrough,vQ=PQ.addAbortSignal,RQ=PQ.finished,SQ=PQ.destroy,gQ=PQ.pipeline,kQ=PQ.compose,fQ=PQ.Stream,yQ=PQ["eos"]=tq,hQ=PQ._getNativeReadableStreamPrototype,pQ=PQ.NativeWritable,uQ=fQ.promise;export{uQ as promises,gQ as pipeline,xQ as isWritable,OQ as isReadable,AQ as isErrored,TQ as isDisturbed,RQ as finished,yQ as eos,SQ as destroy,lQ as default,kQ as compose,vQ as addAbortSignal,EQ as _uint8ArrayToBuffer,IQ as _isUint8Array,hQ as _getNativeReadableStreamPrototype,Tq as Writable,DQ as Transform,fQ as Stream,_Q as Readable,wQ as PassThrough,pQ as NativeWritable,CQ as Duplex}; +import{EventEmitter as Pq} from"bun:events_native";import{StringDecoder as Sq} from"node:string_decoder";var cq=function(q){return typeof q==="object"&&q!==null&&q instanceof ReadableStream},dq=function(q,Q){if(typeof q!=="boolean")throw new iq(Q,"boolean",q)};var iq=function(q,Q,X){return new Error(`The argument '${q}' is invalid. Received '${X}' for type '${Q}'`)},nq=function(q,Q,X){return new Error(`The value '${Q}' is invalid for argument '${q}'. Reason: ${X}`)},FQ=function(q,Q){var[X,J,H,K,Z,B,Y]=globalThis[Symbol.for("Bun.lazy")](q),$=[!1],z=function(F,L,j,N){if(L>0){const A=j.subarray(0,L),E=j.subarray(L);if(A.byteLength>0)F.push(A);if(N)F.push(null);return E.byteLength>0?E:void 0}if(N)F.push(null);return j},V=function(F,L,j,N){if(L.byteLength>0)F.push(L);if(N)F.push(null);return j},U=process.env.BUN_DISABLE_DYNAMIC_CHUNK_SIZE!=="1";const W=new FinalizationRegistry((F)=>F&&Z(F)),G=512;var M=class F extends Q{#q;#Q=1;#X=!1;#J=void 0;#H;#K=!1;#Z=!U;#B;constructor(L,j={}){super(j);if(typeof j.highWaterMark==="number")this.#H=j.highWaterMark;else this.#H=262144;this.#q=L,this.#X=!1,this.#J=void 0,this.#K=!1,this.#B={},W.register(this,this.#q,this.#B)}_read(L){if(Aq&&Nq("NativeReadable._read",this.__id),this.#K){Aq&&Nq("pendingRead is true",this.__id);return}var j=this.#q;if(Aq&&Nq("ptr @ NativeReadable._read",j,this.__id),j===0){this.push(null);return}if(!this.#X)Aq&&Nq("NativeReadable not constructed yet",this.__id),this.#Y(j);return this.#V(this.#$(L),j)}#Y(L){this.#X=!0;const j=J(L,this.#H);if(Aq&&Nq("NativeReadable internal `start` result",j,this.__id),typeof j==="number"&&j>1)this.#Z=!0,Aq&&Nq("NativeReadable resized",this.__id),this.#H=Math.min(this.#H,j);if(Y){const N=Y(L);if(Aq&&Nq("NativeReadable drain result",N,this.__id),(N?.byteLength??0)>0)this.push(N)}}#$(L=this.#H){var j=this.#J;if(Aq&&Nq("chunk @ #getRemainingChunk",j,this.__id),j?.byteLength??0G?L:G;this.#J=j=new Buffer(N)}return j}push(L,j){return Aq&&Nq("NativeReadable push -- result, encoding",L,j,this.__id),super.push(...arguments)}#z(L,j,N){if(Aq&&Nq("result, isClosed @ #handleResult",L,N,this.__id),typeof L==="number"){if(L>=this.#H&&!this.#Z&&!N)this.#H*=2,this.#Z=!0;return z(this,L,j,N)}else if(typeof L==="boolean")return this.push(null),j?.byteLength??0>0?j:void 0;else if(ArrayBuffer.isView(L)){if(L.byteLength>=this.#H&&!this.#Z&&!N)this.#H*=2,this.#Z=!0,Aq&&Nq("Resized",this.__id);return V(this,L,j,N)}else throw Aq&&Nq("Unknown result type",L,this.__id),new Error("Invalid result from pull")}#V(L,j){Aq&&Nq("#internalRead()",this.__id),$[0]=!1;var N=X(j,L,$);if(xq(N))return this.#K=!0,N.then((A)=>{this.#K=!1,Aq&&Nq("pending no longerrrrrrrr (result returned from pull)",this.__id),this.#J=this.#z(A,L,$[0])},(A)=>{Aq&&Nq("error from pull",A,this.__id),errorOrDestroy(this,A)});else this.#J=this.#z(N,L,$[0])}_destroy(L,j){var N=this.#q;if(N===0){j(L);return}if(W.unregister(this.#B),this.#q=0,B)B(N,!1);Aq&&Nq("NativeReadable destroyed",this.__id),H(N,L),j(L)}ref(){var L=this.#q;if(L===0)return;if(this.#Q++===0)B(L,!0)}unref(){var L=this.#q;if(L===0)return;if(this.#Q--===1)B(L,!1)}};if(!B)M.prototype.ref=void 0,M.prototype.unref=void 0;return M},jQ=function(q,Q){return LQ[q]||=FQ(q,Q)},NQ=function(q,Q,X){if(!(Q&&typeof Q==="object"&&Q instanceof ReadableStream))return;const J=wq(Q);if(!J){Nq("no native readable stream");return}const{stream:H,data:K}=J;return new(jQ(K,q))(H,X)},{isPromise:xq,isCallable:Dq,direct:wq,Object:Tq}=globalThis[Symbol.for("Bun.lazy")]("primordials");globalThis.__IDS_TO_TRACK=process.env.DEBUG_TRACK_EE?.length?process.env.DEBUG_TRACK_EE.split(","):process.env.DEBUG_STREAMS?.length?process.env.DEBUG_STREAMS.split(","):null;var gq=!!process.env.DEBUG_TRACK_EE,Aq=!!(process.env.DEBUG||process.env.DEBUG_STREAMS||gq),Nq=Aq?globalThis.__IDS_TO_TRACK?(...q)=>{const Q=q[q.length-1];if(!globalThis.__IDS_TO_TRACK.includes(Q))return;console.log(`ID: ${Q}`,...q.slice(0,-1))}:(...q)=>console.log(...q.slice(0,-1)):()=>{},fq=Tq.create,kq=Tq.defineProperty,yq=Tq.getOwnPropertyDescriptor,hq=Tq.getOwnPropertyNames,pq=Tq.getPrototypeOf,uq=Tq.prototype.hasOwnProperty,bq=Tq.setPrototypeOf,mq=(q,Q)=>function X(){return Q||(0,q[hq(q)[0]])((Q={exports:{}}).exports,Q),Q.exports};var Iq=process.nextTick;var lq=Array.isArray,Oq=mq({"node_modules/readable-stream/lib/ours/primordials.js"(q,Q){Q.exports={ArrayIsArray(X){return Array.isArray(X)},ArrayPrototypeIncludes(X,J){return X.includes(J)},ArrayPrototypeIndexOf(X,J){return X.indexOf(J)},ArrayPrototypeJoin(X,J){return X.join(J)},ArrayPrototypeMap(X,J){return X.map(J)},ArrayPrototypePop(X,J){return X.pop(J)},ArrayPrototypePush(X,J){return X.push(J)},ArrayPrototypeSlice(X,J,H){return X.slice(J,H)},Error,FunctionPrototypeCall(X,J,...H){return X.call(J,...H)},FunctionPrototypeSymbolHasInstance(X,J){return Function.prototype[Symbol.hasInstance].call(X,J)},MathFloor:Math.floor,Number,NumberIsInteger:Number.isInteger,NumberIsNaN:Number.isNaN,NumberMAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,NumberParseInt:Number.parseInt,ObjectDefineProperties(X,J){return Tq.defineProperties(X,J)},ObjectDefineProperty(X,J,H){return Tq.defineProperty(X,J,H)},ObjectGetOwnPropertyDescriptor(X,J){return Tq.getOwnPropertyDescriptor(X,J)},ObjectKeys(X){return Tq.keys(X)},ObjectSetPrototypeOf(X,J){return Tq.setPrototypeOf(X,J)},Promise,PromisePrototypeCatch(X,J){return X.catch(J)},PromisePrototypeThen(X,J,H){return X.then(J,H)},PromiseReject(X){return Promise.reject(X)},ReflectApply:Reflect.apply,RegExpPrototypeTest(X,J){return X.test(J)},SafeSet:Set,String,StringPrototypeSlice(X,J,H){return X.slice(J,H)},StringPrototypeToLowerCase(X){return X.toLowerCase()},StringPrototypeToUpperCase(X){return X.toUpperCase()},StringPrototypeTrim(X){return X.trim()},Symbol,SymbolAsyncIterator:Symbol.asyncIterator,SymbolHasInstance:Symbol.hasInstance,SymbolIterator:Symbol.iterator,TypedArrayPrototypeSet(X,J,H){return X.set(J,H)},Uint8Array}}}),_q=mq({"node_modules/readable-stream/lib/ours/util.js"(q,Q){var X=Tq.getPrototypeOf(async function(){}).constructor,J=typeof Blob!=="undefined"?function K(Z){return Z instanceof Blob}:function K(Z){return!1},H=class extends Error{constructor(K){if(!Array.isArray(K))throw new TypeError(`Expected input to be an Array, got ${typeof K}`);let Z="";for(let B=0;B{K=Y,Z=$}),resolve:K,reject:Z}},promisify(K){return new Promise((Z,B)=>{K((Y,...$)=>{if(Y)return B(Y);return Z(...$)})})},debuglog(){return function(){}},format(K,...Z){return K.replace(/%([sdifj])/g,function(...[B,Y]){const $=Z.shift();if(Y==="f")return $.toFixed(6);else if(Y==="j")return JSON.stringify($);else if(Y==="s"&&typeof $==="object")return`${$.constructor!==Tq?$.constructor.name:""} {}`.trim();else return $.toString()})},inspect(K){switch(typeof K){case"string":if(K.includes("'")){if(!K.includes('"'))return`"${K}"`;else if(!K.includes("`")&&!K.includes("${"))return`\`${K}\``}return`'${K}'`;case"number":if(isNaN(K))return"NaN";else if(Tq.is(K,-0))return String(K);return K;case"bigint":return`${String(K)}n`;case"boolean":case"undefined":return String(K);case"object":return"{}"}},types:{isAsyncFunction(K){return K instanceof X},isArrayBufferView(K){return ArrayBuffer.isView(K)}},isBlob:J},Q.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")}}),oq=mq({"node_modules/readable-stream/lib/ours/errors.js"(q,Q){var{format:X,inspect:J,AggregateError:H}=_q(),K=globalThis.AggregateError||H,Z=Symbol("kIsNodeError"),B=["string","function","number","object","Function","Object","boolean","bigint","symbol"],Y=/^([A-Z][a-z0-9]*)+$/,$="__node_internal_",z={};function V(j,N){if(!j)throw new z.ERR_INTERNAL_ASSERTION(N)}function U(j){let N="",A=j.length;const E=j[0]==="-"?1:0;for(;A>=E+4;A-=3)N=`_${j.slice(A-3,A)}${N}`;return`${j.slice(0,A)}${N}`}function W(j,N,A){if(typeof N==="function")return V(N.length<=A.length,`Code: ${j}; The provided arguments length (${A.length}) does not match the required ones (${N.length}).`),N(...A);const E=(N.match(/%[dfijoOs]/g)||[]).length;if(V(E===A.length,`Code: ${j}; The provided arguments length (${A.length}) does not match the required ones (${E}).`),A.length===0)return N;return X(N,...A)}function G(j,N,A){if(!A)A=Error;class E extends A{constructor(...I){super(W(j,N,I))}toString(){return`${this.name} [${j}]: ${this.message}`}}Tq.defineProperties(E.prototype,{name:{value:A.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${j}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),E.prototype.code=j,E.prototype[Z]=!0,z[j]=E}function M(j){const N=$+j.name;return Tq.defineProperty(j,"name",{value:N}),j}function F(j,N){if(j&&N&&j!==N){if(Array.isArray(N.errors))return N.errors.push(j),N;const A=new K([N,j],N.message);return A.code=N.code,A}return j||N}var L=class extends Error{constructor(j="The operation was aborted",N=void 0){if(N!==void 0&&typeof N!=="object")throw new z.ERR_INVALID_ARG_TYPE("options","Object",N);super(j,N);this.code="ABORT_ERR",this.name="AbortError"}};G("ERR_ASSERTION","%s",Error),G("ERR_INVALID_ARG_TYPE",(j,N,A)=>{if(V(typeof j==="string","'name' must be a string"),!Array.isArray(N))N=[N];let E="The ";if(j.endsWith(" argument"))E+=`${j} `;else E+=`"${j}" ${j.includes(".")?"property":"argument"} `;E+="must be ";const I=[],T=[],P=[];for(let O of N)if(V(typeof O==="string","All expected entries have to be of type string"),B.includes(O))I.push(O.toLowerCase());else if(Y.test(O))T.push(O);else V(O!=="object",'The value "object" should be written as "Object"'),P.push(O);if(T.length>0){const O=I.indexOf("object");if(O!==-1)I.splice(I,O,1),T.push("Object")}if(I.length>0){switch(I.length){case 1:E+=`of type ${I[0]}`;break;case 2:E+=`one of type ${I[0]} or ${I[1]}`;break;default:{const O=I.pop();E+=`one of type ${I.join(", ")}, or ${O}`}}if(T.length>0||P.length>0)E+=" or "}if(T.length>0){switch(T.length){case 1:E+=`an instance of ${T[0]}`;break;case 2:E+=`an instance of ${T[0]} or ${T[1]}`;break;default:{const O=T.pop();E+=`an instance of ${T.join(", ")}, or ${O}`}}if(P.length>0)E+=" or "}switch(P.length){case 0:break;case 1:if(P[0].toLowerCase()!==P[0])E+="an ";E+=`${P[0]}`;break;case 2:E+=`one of ${P[0]} or ${P[1]}`;break;default:{const O=P.pop();E+=`one of ${P.join(", ")}, or ${O}`}}if(A==null)E+=`. Received ${A}`;else if(typeof A==="function"&&A.name)E+=`. Received function ${A.name}`;else if(typeof A==="object"){var x;if((x=A.constructor)!==null&&x!==void 0&&x.name)E+=`. Received an instance of ${A.constructor.name}`;else{const O=J(A,{depth:-1});E+=`. Received ${O}`}}else{let O=J(A,{colors:!1});if(O.length>25)O=`${O.slice(0,25)}...`;E+=`. Received type ${typeof A} (${O})`}return E},TypeError),G("ERR_INVALID_ARG_VALUE",(j,N,A="is invalid")=>{let E=J(N);if(E.length>128)E=E.slice(0,128)+"...";return`The ${j.includes(".")?"property":"argument"} '${j}' ${A}. Received ${E}`},TypeError),G("ERR_INVALID_RETURN_VALUE",(j,N,A)=>{var E;const I=A!==null&&A!==void 0&&(E=A.constructor)!==null&&E!==void 0&&E.name?`instance of ${A.constructor.name}`:`type ${typeof A}`;return`Expected ${j} to be returned from the "${N}" function but got ${I}.`},TypeError),G("ERR_MISSING_ARGS",(...j)=>{V(j.length>0,"At least one arg needs to be specified");let N;const A=j.length;switch(j=(Array.isArray(j)?j:[j]).map((E)=>`"${E}"`).join(" or "),A){case 1:N+=`The ${j[0]} argument`;break;case 2:N+=`The ${j[0]} and ${j[1]} arguments`;break;default:{const E=j.pop();N+=`The ${j.join(", ")}, and ${E} arguments`}break}return`${N} must be specified`},TypeError),G("ERR_OUT_OF_RANGE",(j,N,A)=>{V(N,'Missing "range" argument');let E;if(Number.isInteger(A)&&Math.abs(A)>4294967296)E=U(String(A));else if(typeof A==="bigint"){if(E=String(A),A>2n**32n||A<-(2n**32n))E=U(E);E+="n"}else E=J(A);return`The value of "${j}" is out of range. It must be ${N}. Received ${E}`},RangeError),G("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),G("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),G("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),G("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),G("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),G("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),G("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),G("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),G("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),G("ERR_STREAM_WRITE_AFTER_END","write after end",Error),G("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),Q.exports={AbortError:L,aggregateTwoErrors:M(F),hideStackFrames:M,codes:z}}}),sq=mq({"node_modules/readable-stream/lib/internal/validators.js"(q,Q){var{ArrayIsArray:X,ArrayPrototypeIncludes:J,ArrayPrototypeJoin:H,ArrayPrototypeMap:K,NumberIsInteger:Z,NumberMAX_SAFE_INTEGER:B,NumberMIN_SAFE_INTEGER:Y,NumberParseInt:$,RegExpPrototypeTest:z,String:V,StringPrototypeToUpperCase:U,StringPrototypeTrim:W}=Oq(),{hideStackFrames:G,codes:{ERR_SOCKET_BAD_PORT:M,ERR_INVALID_ARG_TYPE:F,ERR_INVALID_ARG_VALUE:L,ERR_OUT_OF_RANGE:j,ERR_UNKNOWN_SIGNAL:N}}=oq(),{normalizeEncoding:A}=_q(),{isAsyncFunction:E,isArrayBufferView:I}=_q().types,T={};function P(i){return i===(i|0)}function x(i){return i===i>>>0}var O=/^[0-7]+$/,_="must be a 32-bit unsigned integer or an octal string";function C(i,n,o){if(typeof i==="undefined")i=o;if(typeof i==="string"){if(!z(O,i))throw new L(n,i,_);i=$(i,8)}return w(i,n,0,4294967295),i}var D=G((i,n,o=Y,s=B)=>{if(typeof i!=="number")throw new F(n,"number",i);if(!Z(i))throw new j(n,"an integer",i);if(is)throw new j(n,`>= ${o} && <= ${s}`,i)}),w=G((i,n,o=-2147483648,s=2147483647)=>{if(typeof i!=="number")throw new F(n,"number",i);if(!P(i)){if(!Z(i))throw new j(n,"an integer",i);throw new j(n,`>= ${o} && <= ${s}`,i)}if(is)throw new j(n,`>= ${o} && <= ${s}`,i)}),v=G((i,n,o)=>{if(typeof i!=="number")throw new F(n,"number",i);if(!x(i)){if(!Z(i))throw new j(n,"an integer",i);throw new j(n,`>= ${o?1:0} && < 4294967296`,i)}if(o&&i===0)throw new j(n,">= 1 && < 4294967296",i)});function R(i,n){if(typeof i!=="string")throw new F(n,"string",i)}function S(i,n){if(typeof i!=="number")throw new F(n,"number",i)}var g=G((i,n,o)=>{if(!J(o,i)){const a="must be one of: "+H(K(o,(r)=>typeof r==="string"?`'${r}'`:V(r)),", ");throw new L(n,i,a)}});function f(i,n){if(typeof i!=="boolean")throw new F(n,"boolean",i)}var k=G((i,n,o)=>{const s=o==null,a=s?!1:o.allowArray,r=s?!1:o.allowFunction;if(!(s?!1:o.nullable)&&i===null||!a&&X(i)||typeof i!=="object"&&(!r||typeof i!=="function"))throw new F(n,"Object",i)}),y=G((i,n,o=0)=>{if(!X(i))throw new F(n,"Array",i);if(i.length{if(!I(i))throw new F(n,["Buffer","TypedArray","DataView"],i)});function u(i,n){const o=A(n),s=i.length;if(o==="hex"&&s%2!==0)throw new L("encoding",n,`is invalid for data of length ${s}`)}function b(i,n="Port",o=!0){if(typeof i!=="number"&&typeof i!=="string"||typeof i==="string"&&W(i).length===0||+i!==+i>>>0||i>65535||i===0&&!o)throw new M(n,i,o);return i|0}var m=G((i,n)=>{if(i!==void 0&&(i===null||typeof i!=="object"||!("aborted"in i)))throw new F(n,"AbortSignal",i)}),c=G((i,n)=>{if(typeof i!=="function")throw new F(n,"Function",i)}),d=G((i,n)=>{if(typeof i!=="function"||E(i))throw new F(n,"Function",i)}),l=G((i,n)=>{if(i!==void 0)throw new F(n,"undefined",i)});Q.exports={isInt32:P,isUint32:x,parseFileMode:C,validateArray:y,validateBoolean:f,validateBuffer:p,validateEncoding:u,validateFunction:c,validateInt32:w,validateInteger:D,validateNumber:S,validateObject:k,validateOneOf:g,validatePlainFunction:d,validatePort:b,validateSignalName:h,validateString:R,validateUint32:v,validateUndefined:l,validateAbortSignal:m}}}),aq=mq({"node_modules/readable-stream/lib/internal/streams/utils.js"(q,Q){var{Symbol:X,SymbolAsyncIterator:J,SymbolIterator:H}=Oq(),K=X("kDestroyed"),Z=X("kIsErrored"),B=X("kIsReadable"),Y=X("kIsDisturbed");function $(v,R=!1){var S;return!!(v&&typeof v.pipe==="function"&&typeof v.on==="function"&&(!R||typeof v.pause==="function"&&typeof v.resume==="function")&&(!v._writableState||((S=v._readableState)===null||S===void 0?void 0:S.readable)!==!1)&&(!v._writableState||v._readableState))}function z(v){var R;return!!(v&&typeof v.write==="function"&&typeof v.on==="function"&&(!v._readableState||((R=v._writableState)===null||R===void 0?void 0:R.writable)!==!1))}function V(v){return!!(v&&typeof v.pipe==="function"&&v._readableState&&typeof v.on==="function"&&typeof v.write==="function")}function U(v){return v&&(v._readableState||v._writableState||typeof v.write==="function"&&typeof v.on==="function"||typeof v.pipe==="function"&&typeof v.on==="function")}function W(v,R){if(v==null)return!1;if(R===!0)return typeof v[J]==="function";if(R===!1)return typeof v[H]==="function";return typeof v[J]==="function"||typeof v[H]==="function"}function G(v){if(!U(v))return null;const{_writableState:R,_readableState:S}=v,g=R||S;return!!(v.destroyed||v[K]||g!==null&&g!==void 0&&g.destroyed)}function M(v){if(!z(v))return null;if(v.writableEnded===!0)return!0;const R=v._writableState;if(R!==null&&R!==void 0&&R.errored)return!1;if(typeof(R===null||R===void 0?void 0:R.ended)!=="boolean")return null;return R.ended}function F(v,R){if(!z(v))return null;if(v.writableFinished===!0)return!0;const S=v._writableState;if(S!==null&&S!==void 0&&S.errored)return!1;if(typeof(S===null||S===void 0?void 0:S.finished)!=="boolean")return null;return!!(S.finished||R===!1&&S.ended===!0&&S.length===0)}function L(v){if(!$(v))return null;if(v.readableEnded===!0)return!0;const R=v._readableState;if(!R||R.errored)return!1;if(typeof(R===null||R===void 0?void 0:R.ended)!=="boolean")return null;return R.ended}function j(v,R){if(!$(v))return null;const S=v._readableState;if(S!==null&&S!==void 0&&S.errored)return!1;if(typeof(S===null||S===void 0?void 0:S.endEmitted)!=="boolean")return null;return!!(S.endEmitted||R===!1&&S.ended===!0&&S.length===0)}function N(v){if(v&&v[B]!=null)return v[B];if(typeof(v===null||v===void 0?void 0:v.readable)!=="boolean")return null;if(G(v))return!1;return $(v)&&v.readable&&!j(v)}function A(v){if(typeof(v===null||v===void 0?void 0:v.writable)!=="boolean")return null;if(G(v))return!1;return z(v)&&v.writable&&!M(v)}function E(v,R){if(!U(v))return null;if(G(v))return!0;if((R===null||R===void 0?void 0:R.readable)!==!1&&N(v))return!1;if((R===null||R===void 0?void 0:R.writable)!==!1&&A(v))return!1;return!0}function I(v){var R,S;if(!U(v))return null;if(v.writableErrored)return v.writableErrored;return(R=(S=v._writableState)===null||S===void 0?void 0:S.errored)!==null&&R!==void 0?R:null}function T(v){var R,S;if(!U(v))return null;if(v.readableErrored)return v.readableErrored;return(R=(S=v._readableState)===null||S===void 0?void 0:S.errored)!==null&&R!==void 0?R:null}function P(v){if(!U(v))return null;if(typeof v.closed==="boolean")return v.closed;const{_writableState:R,_readableState:S}=v;if(typeof(R===null||R===void 0?void 0:R.closed)==="boolean"||typeof(S===null||S===void 0?void 0:S.closed)==="boolean")return(R===null||R===void 0?void 0:R.closed)||(S===null||S===void 0?void 0:S.closed);if(typeof v._closed==="boolean"&&x(v))return v._closed;return null}function x(v){return typeof v._closed==="boolean"&&typeof v._defaultKeepAlive==="boolean"&&typeof v._removedConnection==="boolean"&&typeof v._removedContLen==="boolean"}function O(v){return typeof v._sent100==="boolean"&&x(v)}function _(v){var R;return typeof v._consuming==="boolean"&&typeof v._dumped==="boolean"&&((R=v.req)===null||R===void 0?void 0:R.upgradeOrConnect)===void 0}function C(v){if(!U(v))return null;const{_writableState:R,_readableState:S}=v,g=R||S;return!g&&O(v)||!!(g&&g.autoDestroy&&g.emitClose&&g.closed===!1)}function D(v){var R;return!!(v&&((R=v[Y])!==null&&R!==void 0?R:v.readableDidRead||v.readableAborted))}function w(v){var R,S,g,f,k,y,h,p,u,b;return!!(v&&((R=(S=(g=(f=(k=(y=v[Z])!==null&&y!==void 0?y:v.readableErrored)!==null&&k!==void 0?k:v.writableErrored)!==null&&f!==void 0?f:(h=v._readableState)===null||h===void 0?void 0:h.errorEmitted)!==null&&g!==void 0?g:(p=v._writableState)===null||p===void 0?void 0:p.errorEmitted)!==null&&S!==void 0?S:(u=v._readableState)===null||u===void 0?void 0:u.errored)!==null&&R!==void 0?R:(b=v._writableState)===null||b===void 0?void 0:b.errored))}Q.exports={kDestroyed:K,isDisturbed:D,kIsDisturbed:Y,isErrored:w,kIsErrored:Z,isReadable:N,kIsReadable:B,isClosed:P,isDestroyed:G,isDuplexNodeStream:V,isFinished:E,isIterable:W,isReadableNodeStream:$,isReadableEnded:L,isReadableFinished:j,isReadableErrored:T,isNodeStream:U,isWritable:A,isWritableNodeStream:z,isWritableEnded:M,isWritableFinished:F,isWritableErrored:I,isServerRequest:_,isServerResponse:O,willEmitClose:C}}}),rq=mq({"node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(q,Q){var{AbortError:X,codes:J}=oq(),{ERR_INVALID_ARG_TYPE:H,ERR_STREAM_PREMATURE_CLOSE:K}=J,{once:Z}=_q(),{validateAbortSignal:B,validateFunction:Y,validateObject:$}=sq(),{Promise:z}=Oq(),{isClosed:V,isReadable:U,isReadableNodeStream:W,isReadableFinished:G,isReadableErrored:M,isWritable:F,isWritableNodeStream:L,isWritableFinished:j,isWritableErrored:N,isNodeStream:A,willEmitClose:E}=aq();function I(O){return O.setHeader&&typeof O.abort==="function"}var T=()=>{};function P(O,_,C){var D,w;if(arguments.length===2)C=_,_={};else if(_==null)_={};else $(_,"options");Y(C,"callback"),B(_.signal,"options.signal"),C=Z(C);const v=(D=_.readable)!==null&&D!==void 0?D:W(O),R=(w=_.writable)!==null&&w!==void 0?w:L(O);if(!A(O))throw new H("stream","Stream",O);const{_writableState:S,_readableState:g}=O,f=()=>{if(!O.writable)h()};let k=E(O)&&W(O)===v&&L(O)===R,y=j(O,!1);const h=()=>{if(y=!0,O.destroyed)k=!1;if(k&&(!O.readable||v))return;if(!v||p)C.call(O)};let p=G(O,!1);const u=()=>{if(p=!0,O.destroyed)k=!1;if(k&&(!O.writable||R))return;if(!R||y)C.call(O)},b=(i)=>{C.call(O,i)};let m=V(O);const c=()=>{m=!0;const i=N(O)||M(O);if(i&&typeof i!=="boolean")return C.call(O,i);if(v&&!p&&W(O,!0)){if(!G(O,!1))return C.call(O,new K)}if(R&&!y){if(!j(O,!1))return C.call(O,new K)}C.call(O)},d=()=>{O.req.on("finish",h)};if(I(O)){if(O.on("complete",h),!k)O.on("abort",c);if(O.req)d();else O.on("request",d)}else if(R&&!S)O.on("end",f),O.on("close",f);if(!k&&typeof O.aborted==="boolean")O.on("aborted",c);if(O.on("end",u),O.on("finish",h),_.error!==!1)O.on("error",b);if(O.on("close",c),m)Iq(c);else if(S!==null&&S!==void 0&&S.errorEmitted||g!==null&&g!==void 0&&g.errorEmitted){if(!k)Iq(c)}else if(!v&&(!k||U(O))&&(y||F(O)===!1))Iq(c);else if(!R&&(!k||F(O))&&(p||U(O)===!1))Iq(c);else if(g&&O.req&&O.aborted)Iq(c);const l=()=>{if(C=T,O.removeListener("aborted",c),O.removeListener("complete",h),O.removeListener("abort",c),O.removeListener("request",d),O.req)O.req.removeListener("finish",h);O.removeListener("end",f),O.removeListener("close",f),O.removeListener("finish",h),O.removeListener("end",u),O.removeListener("error",b),O.removeListener("close",c)};if(_.signal&&!m){const i=()=>{const n=C;l(),n.call(O,new X(void 0,{cause:_.signal.reason}))};if(_.signal.aborted)Iq(i);else{const n=C;C=Z((...o)=>{_.signal.removeEventListener("abort",i),n.apply(O,o)}),_.signal.addEventListener("abort",i)}}return l}function x(O,_){return new z((C,D)=>{P(O,_,(w)=>{if(w)D(w);else C()})})}Q.exports=P,Q.exports.finished=x}}),tq=mq({"node_modules/readable-stream/lib/internal/streams/operators.js"(q,Q){var{codes:{ERR_INVALID_ARG_TYPE:X,ERR_MISSING_ARGS:J,ERR_OUT_OF_RANGE:H},AbortError:K}=oq(),{validateAbortSignal:Z,validateInteger:B,validateObject:Y}=sq(),$=Oq().Symbol("kWeak"),{finished:z}=rq(),{ArrayPrototypePush:V,MathFloor:U,Number:W,NumberIsNaN:G,Promise:M,PromiseReject:F,PromisePrototypeCatch:L,Symbol:j}=Oq(),N=j("kEmpty"),A=j("kEof");function E(f,k){if(typeof f!=="function")throw new X("fn",["Function","AsyncFunction"],f);if(k!=null)Y(k,"options");if((k===null||k===void 0?void 0:k.signal)!=null)Z(k.signal,"options.signal");let y=1;if((k===null||k===void 0?void 0:k.concurrency)!=null)y=U(k.concurrency);return B(y,"concurrency",1),async function*h(){var p,u;const b=new AbortController,m=this,c=[],d=b.signal,l={signal:d},i=()=>b.abort();if(k!==null&&k!==void 0&&(p=k.signal)!==null&&p!==void 0&&p.aborted)i();k===null||k===void 0||(u=k.signal)===null||u===void 0||u.addEventListener("abort",i);let n,o,s=!1;function a(){s=!0}async function r(){try{for await(let qq of m){var t;if(s)return;if(d.aborted)throw new K;try{qq=f(qq,l)}catch(Qq){qq=F(Qq)}if(qq===N)continue;if(typeof((t=qq)===null||t===void 0?void 0:t.catch)==="function")qq.catch(a);if(c.push(qq),n)n(),n=null;if(!s&&c.length&&c.length>=y)await new M((Qq)=>{o=Qq})}c.push(A)}catch(qq){const Qq=F(qq);L(Qq,a),c.push(Qq)}finally{var e;if(s=!0,n)n(),n=null;k===null||k===void 0||(e=k.signal)===null||e===void 0||e.removeEventListener("abort",i)}}r();try{while(!0){while(c.length>0){const t=await c[0];if(t===A)return;if(d.aborted)throw new K;if(t!==N)yield t;if(c.shift(),o)o(),o=null}await new M((t)=>{n=t})}}finally{if(b.abort(),s=!0,o)o(),o=null}}.call(this)}function I(f=void 0){if(f!=null)Y(f,"options");if((f===null||f===void 0?void 0:f.signal)!=null)Z(f.signal,"options.signal");return async function*k(){let y=0;for await(let p of this){var h;if(f!==null&&f!==void 0&&(h=f.signal)!==null&&h!==void 0&&h.aborted)throw new K({cause:f.signal.reason});yield[y++,p]}}.call(this)}async function T(f,k=void 0){for await(let y of _.call(this,f,k))return!0;return!1}async function P(f,k=void 0){if(typeof f!=="function")throw new X("fn",["Function","AsyncFunction"],f);return!await T.call(this,async(...y)=>{return!await f(...y)},k)}async function x(f,k){for await(let y of _.call(this,f,k))return y;return}async function O(f,k){if(typeof f!=="function")throw new X("fn",["Function","AsyncFunction"],f);async function y(h,p){return await f(h,p),N}for await(let h of E.call(this,y,k));}function _(f,k){if(typeof f!=="function")throw new X("fn",["Function","AsyncFunction"],f);async function y(h,p){if(await f(h,p))return h;return N}return E.call(this,y,k)}var C=class extends J{constructor(){super("reduce");this.message="Reduce of an empty stream requires an initial value"}};async function D(f,k,y){var h;if(typeof f!=="function")throw new X("reducer",["Function","AsyncFunction"],f);if(y!=null)Y(y,"options");if((y===null||y===void 0?void 0:y.signal)!=null)Z(y.signal,"options.signal");let p=arguments.length>1;if(y!==null&&y!==void 0&&(h=y.signal)!==null&&h!==void 0&&h.aborted){const d=new K(void 0,{cause:y.signal.reason});throw this.once("error",()=>{}),await z(this.destroy(d)),d}const u=new AbortController,b=u.signal;if(y!==null&&y!==void 0&&y.signal){const d={once:!0,[$]:this};y.signal.addEventListener("abort",()=>u.abort(),d)}let m=!1;try{for await(let d of this){var c;if(m=!0,y!==null&&y!==void 0&&(c=y.signal)!==null&&c!==void 0&&c.aborted)throw new K;if(!p)k=d,p=!0;else k=await f(k,d,{signal:b})}if(!m&&!p)throw new C}finally{u.abort()}return k}async function w(f){if(f!=null)Y(f,"options");if((f===null||f===void 0?void 0:f.signal)!=null)Z(f.signal,"options.signal");const k=[];for await(let h of this){var y;if(f!==null&&f!==void 0&&(y=f.signal)!==null&&y!==void 0&&y.aborted)throw new K(void 0,{cause:f.signal.reason});V(k,h)}return k}function v(f,k){const y=E.call(this,f,k);return async function*h(){for await(let p of y)yield*p}.call(this)}function R(f){if(f=W(f),G(f))return 0;if(f<0)throw new H("number",">= 0",f);return f}function S(f,k=void 0){if(k!=null)Y(k,"options");if((k===null||k===void 0?void 0:k.signal)!=null)Z(k.signal,"options.signal");return f=R(f),async function*y(){var h;if(k!==null&&k!==void 0&&(h=k.signal)!==null&&h!==void 0&&h.aborted)throw new K;for await(let u of this){var p;if(k!==null&&k!==void 0&&(p=k.signal)!==null&&p!==void 0&&p.aborted)throw new K;if(f--<=0)yield u}}.call(this)}function g(f,k=void 0){if(k!=null)Y(k,"options");if((k===null||k===void 0?void 0:k.signal)!=null)Z(k.signal,"options.signal");return f=R(f),async function*y(){var h;if(k!==null&&k!==void 0&&(h=k.signal)!==null&&h!==void 0&&h.aborted)throw new K;for await(let u of this){var p;if(k!==null&&k!==void 0&&(p=k.signal)!==null&&p!==void 0&&p.aborted)throw new K;if(f-- >0)yield u;else return}}.call(this)}Q.exports.streamReturningOperators={asIndexedPairs:I,drop:S,filter:_,flatMap:v,map:E,take:g},Q.exports.promiseReturningOperators={every:P,forEach:O,reduce:D,toArray:w,some:T,find:x}}}),eq=mq({"node_modules/readable-stream/lib/internal/streams/destroy.js"(q,Q){var{aggregateTwoErrors:X,codes:{ERR_MULTIPLE_CALLBACK:J},AbortError:H}=oq(),{Symbol:K}=Oq(),{kDestroyed:Z,isDestroyed:B,isFinished:Y,isServerRequest:$}=aq(),z="#kDestroy",V="#kConstruct";function U(_,C,D){if(_){if(_.stack,C&&!C.errored)C.errored=_;if(D&&!D.errored)D.errored=_}}function W(_,C){const D=this._readableState,w=this._writableState,v=w||D;if(w&&w.destroyed||D&&D.destroyed){if(typeof C==="function")C();return this}if(U(_,w,D),w)w.destroyed=!0;if(D)D.destroyed=!0;if(!v.constructed)this.once(z,(R)=>{G(this,X(R,_),C)});else G(this,_,C);return this}function G(_,C,D){let w=!1;function v(R){if(w)return;w=!0;const{_readableState:S,_writableState:g}=_;if(U(R,g,S),g)g.closed=!0;if(S)S.closed=!0;if(typeof D==="function")D(R);if(R)Iq(M,_,R);else Iq(F,_)}try{_._destroy(C||null,v)}catch(R){v(R)}}function M(_,C){L(_,C),F(_)}function F(_){const{_readableState:C,_writableState:D}=_;if(D)D.closeEmitted=!0;if(C)C.closeEmitted=!0;if(D&&D.emitClose||C&&C.emitClose)_.emit("close")}function L(_,C){const D=_?._readableState,w=_?._writableState;if(w?.errorEmitted||D?.errorEmitted)return;if(w)w.errorEmitted=!0;if(D)D.errorEmitted=!0;_?.emit?.("error",C)}function j(){const _=this._readableState,C=this._writableState;if(_)_.constructed=!0,_.closed=!1,_.closeEmitted=!1,_.destroyed=!1,_.errored=null,_.errorEmitted=!1,_.reading=!1,_.ended=_.readable===!1,_.endEmitted=_.readable===!1;if(C)C.constructed=!0,C.destroyed=!1,C.closed=!1,C.closeEmitted=!1,C.errored=null,C.errorEmitted=!1,C.finalCalled=!1,C.prefinished=!1,C.ended=C.writable===!1,C.ending=C.writable===!1,C.finished=C.writable===!1}function N(_,C,D){const w=_?._readableState,v=_?._writableState;if(v&&v.destroyed||w&&w.destroyed)return this;if(w&&w.autoDestroy||v&&v.autoDestroy)_.destroy(C);else if(C){if(Error.captureStackTrace(C),v&&!v.errored)v.errored=C;if(w&&!w.errored)w.errored=C;if(D)Iq(L,_,C);else L(_,C)}}function A(_,C){if(typeof _._construct!=="function")return;const{_readableState:D,_writableState:w}=_;if(D)D.constructed=!1;if(w)w.constructed=!1;if(_.once(V,C),_.listenerCount(V)>1)return;Iq(E,_)}function E(_){let C=!1;function D(w){if(C){N(_,w!==null&&w!==void 0?w:new J);return}C=!0;const{_readableState:v,_writableState:R}=_,S=R||v;if(v)v.constructed=!0;if(R)R.constructed=!0;if(S.destroyed)_.emit(z,w);else if(w)N(_,w,!0);else Iq(I,_)}try{_._construct(D)}catch(w){D(w)}}function I(_){_.emit(V)}function T(_){return _&&_.setHeader&&typeof _.abort==="function"}function P(_){_.emit("close")}function x(_,C){_.emit("error",C),Iq(P,_)}function O(_,C){if(!_||B(_))return;if(!C&&!Y(_))C=new H;if($(_))_.socket=null,_.destroy(C);else if(T(_))_.abort();else if(T(_.req))_.req.abort();else if(typeof _.destroy==="function")_.destroy(C);else if(typeof _.close==="function")_.close();else if(C)Iq(x,_);else Iq(P,_);if(!_.destroyed)_[Z]=!0}Q.exports={construct:A,destroyer:O,destroy:W,undestroy:j,errorOrDestroy:N}}}),qQ=mq({"node_modules/readable-stream/lib/internal/streams/legacy.js"(q,Q){var{ArrayIsArray:X,ObjectSetPrototypeOf:J}=Oq();function H(Z){if(!(this instanceof H))return new H(Z);Pq.call(this,Z)}J(H.prototype,Pq.prototype),J(H,Pq),H.prototype.pipe=function(Z,B){const Y=this;function $(F){if(Z.writable&&Z.write(F)===!1&&Y.pause)Y.pause()}Y.on("data",$);function z(){if(Y.readable&&Y.resume)Y.resume()}if(Z.on("drain",z),!Z._isStdio&&(!B||B.end!==!1))Y.on("end",U),Y.on("close",W);let V=!1;function U(){if(V)return;V=!0,Z.end()}function W(){if(V)return;if(V=!0,typeof Z.destroy==="function")Z.destroy()}function G(F){if(M(),Pq.listenerCount(this,"error")===0)this.emit("error",F)}K(Y,"error",G),K(Z,"error",G);function M(){Y.removeListener("data",$),Z.removeListener("drain",z),Y.removeListener("end",U),Y.removeListener("close",W),Y.removeListener("error",G),Z.removeListener("error",G),Y.removeListener("end",M),Y.removeListener("close",M),Z.removeListener("close",M)}return Y.on("end",M),Y.on("close",M),Z.on("close",M),Z.emit("pipe",Y),Z};function K(Z,B,Y){if(typeof Z.prependListener==="function")return Z.prependListener(B,Y);if(!Z._events||!Z._events[B])Z.on(B,Y);else if(X(Z._events[B]))Z._events[B].unshift(Y);else Z._events[B]=[Y,Z._events[B]]}Q.exports={Stream:H,prependListener:K}}}),QQ=mq({"node_modules/readable-stream/lib/internal/streams/add-abort-signal.js"(q,Q){var{AbortError:X,codes:J}=oq(),H=rq(),{ERR_INVALID_ARG_TYPE:K}=J,Z=(Y,$)=>{if(typeof Y!=="object"||!("aborted"in Y))throw new K($,"AbortSignal",Y)};function B(Y){return!!(Y&&typeof Y.pipe==="function")}Q.exports.addAbortSignal=function Y($,z){if(Z($,"signal"),!B(z))throw new K("stream","stream.Stream",z);return Q.exports.addAbortSignalNoValidate($,z)},Q.exports.addAbortSignalNoValidate=function(Y,$){if(typeof Y!=="object"||!("aborted"in Y))return $;const z=()=>{$.destroy(new X(void 0,{cause:Y.reason}))};if(Y.aborted)z();else Y.addEventListener("abort",z),H($,()=>Y.removeEventListener("abort",z));return $}}}),XQ=mq({"node_modules/readable-stream/lib/internal/streams/state.js"(q,Q){var{MathFloor:X,NumberIsInteger:J}=Oq(),{ERR_INVALID_ARG_VALUE:H}=oq().codes;function K(Y,$,z){return Y.highWaterMark!=null?Y.highWaterMark:$?Y[z]:null}function Z(Y){return Y?16:16384}function B(Y,$,z,V){const U=K($,V,z);if(U!=null){if(!J(U)||U<0){const W=V?`options.${z}`:"options.highWaterMark";throw new H(W,U)}return X(U)}return Z(Y.objectMode)}Q.exports={getHighWaterMark:B,getDefaultHighWaterMark:Z}}}),JQ=mq({"node_modules/readable-stream/lib/internal/streams/from.js"(q,Q){var{PromisePrototypeThen:X,SymbolAsyncIterator:J,SymbolIterator:H}=Oq(),{ERR_INVALID_ARG_TYPE:K,ERR_STREAM_NULL_VALUES:Z}=oq().codes;function B(Y,$,z){let V;if(typeof $==="string"||$ instanceof Buffer)return new Y({objectMode:!0,...z,read(){this.push($),this.push(null)}});let U;if($&&$[J])U=!0,V=$[J]();else if($&&$[H])U=!1,V=$[H]();else throw new K("iterable",["Iterable"],$);const W=new Y({objectMode:!0,highWaterMark:1,...z});let G=!1;W._read=function(){if(!G)G=!0,F()},W._destroy=function(L,j){X(M(L),()=>Iq(j,L),(N)=>Iq(j,N||L))};async function M(L){const j=L!==void 0&&L!==null,N=typeof V.throw==="function";if(j&&N){const{value:A,done:E}=await V.throw(L);if(await A,E)return}if(typeof V.return==="function"){const{value:A}=await V.return();await A}}async function F(){for(;;){try{const{value:L,done:j}=U?await V.next():V.next();if(j)W.push(null);else{const N=L&&typeof L.then==="function"?await L:L;if(N===null)throw G=!1,new Z;else if(W.push(N))continue;else G=!1}}catch(L){W.destroy(L)}break}}return W}Q.exports=B}}),HQ,KQ,ZQ=mq({"node_modules/readable-stream/lib/internal/streams/readable.js"(q,Q){var{ArrayPrototypeIndexOf:X,NumberIsInteger:J,NumberIsNaN:H,NumberParseInt:K,ObjectDefineProperties:Z,ObjectKeys:B,ObjectSetPrototypeOf:Y,Promise:$,SafeSet:z,SymbolAsyncIterator:V,Symbol:U}=Oq(),W=globalThis[Symbol.for("Bun.lazy")]("bun:stream").ReadableState,{Stream:G,prependListener:M}=qQ();function F(qq){if(!(this instanceof F))return new F(qq);const Qq=this instanceof Cq();if(this._readableState=new W(qq,this,Qq),qq){const{read:Xq,destroy:Jq,construct:Hq,signal:Kq}=qq;if(typeof Xq==="function")this._read=Xq;if(typeof Jq==="function")this._destroy=Jq;if(typeof Hq==="function")this._construct=Hq;if(Kq&&!Qq)N(Kq,this)}G.call(this,qq),_.construct(this,()=>{if(this._readableState.needReadable)x(this,this._readableState)})}Y(F.prototype,G.prototype),Y(F,G),F.prototype.on=function(qq,Qq){const Xq=G.prototype.on.call(this,qq,Qq),Jq=this._readableState;if(qq==="data")if(Jq.readableListening=this.listenerCount("readable")>0,Jq.flowing!==!1)Aq&&Nq("in flowing mode!",this.__id),this.resume();else Aq&&Nq("in readable mode!",this.__id);else if(qq==="readable"){if(Aq&&Nq("readable listener added!",this.__id),!Jq.endEmitted&&!Jq.readableListening){if(Jq.readableListening=Jq.needReadable=!0,Jq.flowing=!1,Jq.emittedReadable=!1,Aq&&Nq("on readable - state.length, reading, emittedReadable",Jq.length,Jq.reading,Jq.emittedReadable,this.__id),Jq.length)O(this,Jq);else if(!Jq.reading)Iq(l,this)}else if(Jq.endEmitted)Aq&&Nq("end already emitted...",this.__id)}return Xq};class L extends F{#q;#Q;#X;#J;constructor(qq,Qq){const{objectMode:Xq,highWaterMark:Jq,encoding:Hq,signal:Kq}=qq;super({objectMode:Xq,highWaterMark:Jq,encoding:Hq,signal:Kq});this.#X=[],this.#q=void 0,this.#J=Qq,this.#Q=!1}#H(){var qq=this.#X,Qq=0,Xq=qq.length;for(;Qq0)this.#X=[];return!1}#K(qq){qq.releaseLock(),this.#q=void 0,this.#Q=!0,this.push(null);return}async _read(){Aq&&Nq("ReadableFromWeb _read()",this.__id);var qq=this.#J,Qq=this.#q;if(qq)Qq=this.#q=qq.getReader(),this.#J=void 0;else if(this.#H())return;var Xq;try{do{var Jq=!1,Hq;const Kq=Qq.readMany();if(xq(Kq)){if({done:Jq,value:Hq}=await Kq,this.#Q){this.#X.push(...Hq);return}}else({done:Jq,value:Hq}=Kq);if(Jq){this.#K(Qq);return}if(!this.push(Hq[0])){this.#X=Hq.slice(1);return}for(let Zq=1,Bq=Hq.length;Zq{this.#Q=!0,Qq(qq)});return}try{Qq(qq)}catch(Jq){globalThis.reportError(Jq)}}}KQ=L;function j(qq,Qq={}){if(!cq(qq))throw new D("readableStream","ReadableStream",qq);g(Qq,"options");const{highWaterMark:Xq,encoding:Jq,objectMode:Hq=!1,signal:Kq}=Qq;if(Jq!==void 0&&!Buffer.isEncoding(Jq))throw new nq(Jq,"options.encoding");return dq(Hq,"options.objectMode"),NQ(F,qq,Qq)||new L({highWaterMark:Xq,encoding:Jq,objectMode:Hq,signal:Kq},qq)}Q.exports=F,HQ=j;var{addAbortSignal:N}=QQ(),A=rq();const{maybeReadMore:E,resume:I,emitReadable:T,onEofChunk:P}=globalThis[Symbol.for("Bun.lazy")]("bun:stream");function x(qq,Qq){process.nextTick(E,qq,Qq)}function O(qq,Qq){Aq&&Nq("NativeReadable - emitReadable",qq.__id),T(qq,Qq)}var _=eq(),{aggregateTwoErrors:C,codes:{ERR_INVALID_ARG_TYPE:D,ERR_METHOD_NOT_IMPLEMENTED:w,ERR_OUT_OF_RANGE:v,ERR_STREAM_PUSH_AFTER_EOF:R,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:S}}=oq(),{validateObject:g}=sq(),f=JQ(),k=()=>{},{errorOrDestroy:y}=_;F.prototype.destroy=_.destroy,F.prototype._undestroy=_.undestroy,F.prototype._destroy=function(qq,Qq){Qq(qq)},F.prototype[Pq.captureRejectionSymbol]=function(qq){this.destroy(qq)},F.prototype.push=function(qq,Qq){return h(this,qq,Qq,!1)},F.prototype.unshift=function(qq,Qq){return h(this,qq,Qq,!0)};function h(qq,Qq,Xq,Jq){Aq&&Nq("readableAddChunk",Qq,qq.__id);const Hq=qq._readableState;let Kq;if(!Hq.objectMode){if(typeof Qq==="string"){if(Xq=Xq||Hq.defaultEncoding,Hq.encoding!==Xq)if(Jq&&Hq.encoding)Qq=Buffer.from(Qq,Xq).toString(Hq.encoding);else Qq=Buffer.from(Qq,Xq),Xq=""}else if(Qq instanceof Buffer)Xq="";else if(G._isUint8Array(Qq)){if(Jq||!Hq.decoder)Qq=G._uint8ArrayToBuffer(Qq);Xq=""}else if(Qq!=null)Kq=new D("chunk",["string","Buffer","Uint8Array"],Qq)}if(Kq)y(qq,Kq);else if(Qq===null)Hq.reading=!1,P(qq,Hq);else if(Hq.objectMode||Qq&&Qq.length>0)if(Jq)if(Hq.endEmitted)y(qq,new S);else if(Hq.destroyed||Hq.errored)return!1;else p(qq,Hq,Qq,!0);else if(Hq.ended)y(qq,new R);else if(Hq.destroyed||Hq.errored)return!1;else if(Hq.reading=!1,Hq.decoder&&!Xq)if(Qq=Hq.decoder.write(Qq),Hq.objectMode||Qq.length!==0)p(qq,Hq,Qq,!1);else x(qq,Hq);else p(qq,Hq,Qq,!1);else if(!Jq)Hq.reading=!1,x(qq,Hq);return!Hq.ended&&(Hq.length0){if(Qq.multiAwaitDrain)Qq.awaitDrainWriters.clear();else Qq.awaitDrainWriters=null;Qq.dataEmitted=!0,qq.emit("data",Xq)}else{if(Qq.length+=Qq.objectMode?1:Xq.length,Jq)Qq.buffer.unshift(Xq);else Qq.buffer.push(Xq);if(Aq&&Nq("needReadable @ addChunk",Qq.needReadable,qq.__id),Qq.needReadable)O(qq,Qq)}x(qq,Qq)}F.prototype.isPaused=function(){const qq=this._readableState;return qq.paused===!0||qq.flowing===!1},F.prototype.setEncoding=function(qq){const Qq=new Sq(qq);this._readableState.decoder=Qq,this._readableState.encoding=this._readableState.decoder.encoding;const Xq=this._readableState.buffer;let Jq="";for(let Hq=Xq.length;Hq>0;Hq--)Jq+=Qq.write(Xq.shift());if(Jq!=="")Xq.push(Jq);return this._readableState.length=Jq.length,this};var u=1073741824;function b(qq){if(qq>u)throw new v("size","<= 1GiB",qq);else qq--,qq|=qq>>>1,qq|=qq>>>2,qq|=qq>>>4,qq|=qq>>>8,qq|=qq>>>16,qq++;return qq}function m(qq,Qq){if(qq<=0||Qq.length===0&&Qq.ended)return 0;if(Qq.objectMode)return 1;if(H(qq)){if(Qq.flowing&&Qq.length)return Qq.buffer.first().length;return Qq.length}if(qq<=Qq.length)return qq;return Qq.ended?Qq.length:0}F.prototype.read=function(qq){if(Aq&&Nq("read - n =",qq,this.__id),!J(qq))qq=K(qq,10);const Qq=this._readableState,Xq=qq;if(qq>Qq.highWaterMark)Qq.highWaterMark=b(qq);if(qq!==0)Qq.emittedReadable=!1;if(qq===0&&Qq.needReadable&&((Qq.highWaterMark!==0?Qq.length>=Qq.highWaterMark:Qq.length>0)||Qq.ended)){if(Aq&&Nq("read: emitReadable or endReadable",Qq.length,Qq.ended,this.__id),Qq.length===0&&Qq.ended)s(this);else O(this,Qq);return null}if(qq=m(qq,Qq),qq===0&&Qq.ended){if(Aq&&Nq("read: calling endReadable if length 0 -- length, state.ended",Qq.length,Qq.ended,this.__id),Qq.length===0)s(this);return null}let Jq=Qq.needReadable;if(Aq&&Nq("need readable",Jq,this.__id),Qq.length===0||Qq.length-qq0)Kq=o(qq,Qq);else Kq=null;if(Aq&&Nq("ret @ read",Kq,this.__id),Kq===null)Qq.needReadable=Qq.length<=Qq.highWaterMark,Aq&&Nq("state.length while ret = null",Qq.length,this.__id),qq=0;else if(Qq.length-=qq,Qq.multiAwaitDrain)Qq.awaitDrainWriters.clear();else Qq.awaitDrainWriters=null;if(Qq.length===0){if(!Qq.ended)Qq.needReadable=!0;if(Xq!==qq&&Qq.ended)s(this)}if(Kq!==null&&!Qq.errorEmitted&&!Qq.closeEmitted)Qq.dataEmitted=!0,this.emit("data",Kq);return Kq},F.prototype._read=function(qq){throw new w("_read()")},F.prototype.pipe=function(qq,Qq){const Xq=this,Jq=this._readableState;if(Jq.pipes.length===1){if(!Jq.multiAwaitDrain)Jq.multiAwaitDrain=!0,Jq.awaitDrainWriters=new z(Jq.awaitDrainWriters?[Jq.awaitDrainWriters]:[])}Jq.pipes.push(qq),Aq&&Nq("pipe count=%d opts=%j",Jq.pipes.length,Qq,Xq.__id);const Kq=(!Qq||Qq.end!==!1)&&qq!==process.stdout&&qq!==process.stderr?Bq:Fq;if(Jq.endEmitted)Iq(Kq);else Xq.once("end",Kq);qq.on("unpipe",Zq);function Zq(Lq,jq){if(Aq&&Nq("onunpipe",Xq.__id),Lq===Xq){if(jq&&jq.hasUnpiped===!1)jq.hasUnpiped=!0,zq()}}function Bq(){Aq&&Nq("onend",Xq.__id),qq.end()}let Yq,$q=!1;function zq(){if(Aq&&Nq("cleanup",Xq.__id),qq.removeListener("close",Gq),qq.removeListener("finish",Mq),Yq)qq.removeListener("drain",Yq);if(qq.removeListener("error",Wq),qq.removeListener("unpipe",Zq),Xq.removeListener("end",Bq),Xq.removeListener("end",Fq),Xq.removeListener("data",Uq),$q=!0,Yq&&Jq.awaitDrainWriters&&(!qq._writableState||qq._writableState.needDrain))Yq()}function Vq(){if(!$q){if(Jq.pipes.length===1&&Jq.pipes[0]===qq)Aq&&Nq("false write response, pause",0,Xq.__id),Jq.awaitDrainWriters=qq,Jq.multiAwaitDrain=!1;else if(Jq.pipes.length>1&&Jq.pipes.includes(qq))Aq&&Nq("false write response, pause",Jq.awaitDrainWriters.size,Xq.__id),Jq.awaitDrainWriters.add(qq);Xq.pause()}if(!Yq)Yq=c(Xq,qq),qq.on("drain",Yq)}Xq.on("data",Uq);function Uq(Lq){Aq&&Nq("ondata",Xq.__id);const jq=qq.write(Lq);if(Aq&&Nq("dest.write",jq,Xq.__id),jq===!1)Vq()}function Wq(Lq){if(Nq("onerror",Lq),Fq(),qq.removeListener("error",Wq),qq.listenerCount("error")===0){const jq=qq._writableState||qq._readableState;if(jq&&!jq.errorEmitted)y(qq,Lq);else qq.emit("error",Lq)}}M(qq,"error",Wq);function Gq(){qq.removeListener("finish",Mq),Fq()}qq.once("close",Gq);function Mq(){Nq("onfinish"),qq.removeListener("close",Gq),Fq()}qq.once("finish",Mq);function Fq(){Nq("unpipe"),Xq.unpipe(qq)}if(qq.emit("pipe",Xq),qq.writableNeedDrain===!0){if(Jq.flowing)Vq()}else if(!Jq.flowing)Nq("pipe resume"),Xq.resume();return qq};function c(qq,Qq){return function Xq(){const Jq=qq._readableState;if(Jq.awaitDrainWriters===Qq)Nq("pipeOnDrain",1),Jq.awaitDrainWriters=null;else if(Jq.multiAwaitDrain)Nq("pipeOnDrain",Jq.awaitDrainWriters.size),Jq.awaitDrainWriters.delete(Qq);if((!Jq.awaitDrainWriters||Jq.awaitDrainWriters.size===0)&&qq.listenerCount("data"))qq.resume()}}F.prototype.unpipe=function(qq){const Qq=this._readableState,Xq={hasUnpiped:!1};if(Qq.pipes.length===0)return this;if(!qq){const Hq=Qq.pipes;Qq.pipes=[],this.pause();for(let Kq=0;Kq0,Qq.resumeScheduled&&Qq.paused===!1)Qq.flowing=!0;else if(qq.listenerCount("data")>0)qq.resume();else if(!Qq.readableListening)Qq.flowing=null}function l(qq){Aq&&Nq("on readable nextTick, calling read(0)",qq.__id),qq.read(0)}F.prototype.resume=function(){const qq=this._readableState;if(!qq.flowing)Aq&&Nq("resume",this.__id),qq.flowing=!qq.readableListening,I(this,qq);return qq.paused=!1,this},F.prototype.pause=function(){if(Aq&&Nq("call pause flowing=%j",this._readableState.flowing,this.__id),this._readableState.flowing!==!1)Aq&&Nq("pause",this.__id),this._readableState.flowing=!1,this.emit("pause");return this._readableState.paused=!0,this},F.prototype.wrap=function(qq){let Qq=!1;qq.on("data",(Jq)=>{if(!this.push(Jq)&&qq.pause)Qq=!0,qq.pause()}),qq.on("end",()=>{this.push(null)}),qq.on("error",(Jq)=>{y(this,Jq)}),qq.on("close",()=>{this.destroy()}),qq.on("destroy",()=>{this.destroy()}),this._read=()=>{if(Qq&&qq.resume)Qq=!1,qq.resume()};const Xq=B(qq);for(let Jq=1;Jq{Hq=Zq?C(Hq,Zq):null,Xq(),Xq=k});try{while(!0){const Zq=qq.destroyed?null:qq.read();if(Zq!==null)yield Zq;else if(Hq)throw Hq;else if(Hq===null)return;else await new $(Jq)}}catch(Zq){throw Hq=C(Hq,Zq),Hq}finally{if((Hq||(Qq===null||Qq===void 0?void 0:Qq.destroyOnReturn)!==!1)&&(Hq===void 0||qq._readableState.autoDestroy))_.destroyer(qq,null);else qq.off("readable",Jq),Kq()}}Z(F.prototype,{readable:{get(){const qq=this._readableState;return!!qq&&qq.readable!==!1&&!qq.destroyed&&!qq.errorEmitted&&!qq.endEmitted},set(qq){if(this._readableState)this._readableState.readable=!!qq}},readableDidRead:{enumerable:!1,get:function(){return this._readableState.dataEmitted}},readableAborted:{enumerable:!1,get:function(){return!!(this._readableState.readable!==!1&&(this._readableState.destroyed||this._readableState.errored)&&!this._readableState.endEmitted)}},readableHighWaterMark:{enumerable:!1,get:function(){return this._readableState.highWaterMark}},readableBuffer:{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}},readableFlowing:{enumerable:!1,get:function(){return this._readableState.flowing},set:function(qq){if(this._readableState)this._readableState.flowing=qq}},readableLength:{enumerable:!1,get(){return this._readableState.length}},readableObjectMode:{enumerable:!1,get(){return this._readableState?this._readableState.objectMode:!1}},readableEncoding:{enumerable:!1,get(){return this._readableState?this._readableState.encoding:null}},errored:{enumerable:!1,get(){return this._readableState?this._readableState.errored:null}},closed:{get(){return this._readableState?this._readableState.closed:!1}},destroyed:{enumerable:!1,get(){return this._readableState?this._readableState.destroyed:!1},set(qq){if(!this._readableState)return;this._readableState.destroyed=qq}},readableEnded:{enumerable:!1,get(){return this._readableState?this._readableState.endEmitted:!1}}}),F._fromList=o;function o(qq,Qq){if(Qq.length===0)return null;let Xq;if(Qq.objectMode)Xq=Qq.buffer.shift();else if(!qq||qq>=Qq.length){if(Qq.decoder)Xq=Qq.buffer.join("");else if(Qq.buffer.length===1)Xq=Qq.buffer.first();else Xq=Qq.buffer.concat(Qq.length);Qq.buffer.clear()}else Xq=Qq.buffer.consume(qq,Qq.decoder);return Xq}function s(qq){const Qq=qq._readableState;if(Aq&&Nq("endEmitted @ endReadable",Qq.endEmitted,qq.__id),!Qq.endEmitted)Qq.ended=!0,Iq(a,Qq,qq)}function a(qq,Qq){if(Aq&&Nq("endReadableNT -- endEmitted, state.length",qq.endEmitted,qq.length,Qq.__id),!qq.errored&&!qq.closeEmitted&&!qq.endEmitted&&qq.length===0){if(qq.endEmitted=!0,Qq.emit("end"),Aq&&Nq("end emitted @ endReadableNT",Qq.__id),Qq.writable&&Qq.allowHalfOpen===!1)Iq(r,Qq);else if(qq.autoDestroy){const Xq=Qq._writableState;if(!Xq||Xq.autoDestroy&&(Xq.finished||Xq.writable===!1))Qq.destroy()}}}function r(qq){if(qq.writable&&!qq.writableEnded&&!qq.destroyed)qq.end()}F.from=function(qq,Qq){return f(F,qq,Qq)};var t={newStreamReadableFromReadableStream:j};function e(){if(t===void 0)t={};return t}F.fromWeb=function(qq,Qq){return e().newStreamReadableFromReadableStream(qq,Qq)},F.toWeb=function(qq){return e().newReadableStreamFromStreamReadable(qq)},F.wrap=function(qq,Qq){var Xq,Jq;return new F({objectMode:(Xq=(Jq=qq.readableObjectMode)!==null&&Jq!==void 0?Jq:qq.objectMode)!==null&&Xq!==void 0?Xq:!0,...Qq,destroy(Hq,Kq){_.destroyer(qq,Hq),Kq(Hq)}}).wrap(qq)}}}),BQ=mq({"node_modules/readable-stream/lib/internal/streams/writable.js"(q,Q){var{ArrayPrototypeSlice:X,Error:J,FunctionPrototypeSymbolHasInstance:H,ObjectDefineProperty:K,ObjectDefineProperties:Z,ObjectSetPrototypeOf:B,StringPrototypeToLowerCase:Y,Symbol:$,SymbolHasInstance:z}=Oq(),V=qQ().Stream,U=eq(),{addAbortSignal:W}=QQ(),{getHighWaterMark:G,getDefaultHighWaterMark:M}=XQ(),{ERR_INVALID_ARG_TYPE:F,ERR_METHOD_NOT_IMPLEMENTED:L,ERR_MULTIPLE_CALLBACK:j,ERR_STREAM_CANNOT_PIPE:N,ERR_STREAM_DESTROYED:A,ERR_STREAM_ALREADY_FINISHED:E,ERR_STREAM_NULL_VALUES:I,ERR_STREAM_WRITE_AFTER_END:T,ERR_UNKNOWN_ENCODING:P}=oq().codes,{errorOrDestroy:x}=U;function O(o={}){const s=this instanceof Cq();if(!s&&!H(O,this))return new O(o);if(this._writableState=new D(o,this,s),o){if(typeof o.write==="function")this._write=o.write;if(typeof o.writev==="function")this._writev=o.writev;if(typeof o.destroy==="function")this._destroy=o.destroy;if(typeof o.final==="function")this._final=o.final;if(typeof o.construct==="function")this._construct=o.construct;if(o.signal)W(o.signal,this)}V.call(this,o),U.construct(this,()=>{const a=this._writableState;if(!a.writing)p(this,a);c(this,a)})}B(O.prototype,V.prototype),B(O,V),Q.exports=O;function _(){}var C=$("kOnFinished");function D(o,s,a){if(typeof a!=="boolean")a=s instanceof Cq();if(this.objectMode=!!(o&&o.objectMode),a)this.objectMode=this.objectMode||!!(o&&o.writableObjectMode);this.highWaterMark=o?G(this,o,"writableHighWaterMark",a):M(!1),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;const r=!!(o&&o.decodeStrings===!1);this.decodeStrings=!r,this.defaultEncoding=o&&o.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=f.bind(void 0,s),this.writecb=null,this.writelen=0,this.afterWriteTickInfo=null,w(this),this.pendingcb=0,this.constructed=!0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!o||o.emitClose!==!1,this.autoDestroy=!o||o.autoDestroy!==!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this[C]=[]}function w(o){o.buffered=[],o.bufferedIndex=0,o.allBuffers=!0,o.allNoop=!0}D.prototype.getBuffer=function o(){return X(this.buffered,this.bufferedIndex)},K(D.prototype,"bufferedRequestCount",{get(){return this.buffered.length-this.bufferedIndex}}),K(O,z,{value:function(o){if(H(this,o))return!0;if(this!==O)return!1;return o&&o._writableState instanceof D}}),O.prototype.pipe=function(){x(this,new N)};function v(o,s,a,r){const t=o._writableState;if(typeof a==="function")r=a,a=t.defaultEncoding;else{if(!a)a=t.defaultEncoding;else if(a!=="buffer"&&!Buffer.isEncoding(a))throw new P(a);if(typeof r!=="function")r=_}if(s===null)throw new I;else if(!t.objectMode)if(typeof s==="string"){if(t.decodeStrings!==!1)s=Buffer.from(s,a),a="buffer"}else if(s instanceof Buffer)a="buffer";else if(V._isUint8Array(s))s=V._uint8ArrayToBuffer(s),a="buffer";else throw new F("chunk",["string","Buffer","Uint8Array"],s);let e;if(t.ending)e=new T;else if(t.destroyed)e=new A("write");if(e)return Iq(r,e),x(o,e,!0),e;return t.pendingcb++,R(o,t,s,a,r)}O.prototype.write=function(o,s,a){return v(this,o,s,a)===!0},O.prototype.cork=function(){this._writableState.corked++},O.prototype.uncork=function(){const o=this._writableState;if(o.corked){if(o.corked--,!o.writing)p(this,o)}},O.prototype.setDefaultEncoding=function o(s){if(typeof s==="string")s=Y(s);if(!Buffer.isEncoding(s))throw new P(s);return this._writableState.defaultEncoding=s,this};function R(o,s,a,r,t){const e=s.objectMode?1:a.length;s.length+=e;const qq=s.lengtha.bufferedIndex)p(o,a);if(r)if(a.afterWriteTickInfo!==null&&a.afterWriteTickInfo.cb===t)a.afterWriteTickInfo.count++;else a.afterWriteTickInfo={count:1,cb:t,stream:o,state:a},Iq(k,a.afterWriteTickInfo);else y(o,a,1,t)}}function k({stream:o,state:s,count:a,cb:r}){return s.afterWriteTickInfo=null,y(o,s,a,r)}function y(o,s,a,r){if(!s.ending&&!o.destroyed&&s.length===0&&s.needDrain)s.needDrain=!1,o.emit("drain");while(a-- >0)s.pendingcb--,r();if(s.destroyed)h(s);c(o,s)}function h(o){if(o.writing)return;for(let t=o.bufferedIndex;t1&&o._writev){s.pendingcb-=e-1;const Qq=s.allNoop?_:(Jq)=>{for(let Hq=qq;Hq256)a.splice(0,qq),s.bufferedIndex=0;else s.bufferedIndex=qq}s.bufferProcessing=!1}O.prototype._write=function(o,s,a){if(this._writev)this._writev([{chunk:o,encoding:s}],a);else throw new L("_write()")},O.prototype._writev=null,O.prototype.end=function(o,s,a,r=!1){const t=this._writableState;if(Aq&&Nq("end",t,this.__id),typeof o==="function")a=o,o=null,s=null;else if(typeof s==="function")a=s,s=null;let e;if(o!==null&&o!==void 0){let qq;if(!r)qq=v(this,o,s);else qq=this.write(o,s);if(qq instanceof J)e=qq}if(t.corked)t.corked=1,this.uncork();if(e)this.emit("error",e);else if(!t.errored&&!t.ending)t.ending=!0,c(this,t,!0),t.ended=!0;else if(t.finished)e=new E("end");else if(t.destroyed)e=new A("end");if(typeof a==="function")if(e||t.finished)Iq(a,e);else t[C].push(a);return this};function u(o,s){var a=o.ending&&!o.destroyed&&o.constructed&&o.length===0&&!o.errored&&o.buffered.length===0&&!o.finished&&!o.writing&&!o.errorEmitted&&!o.closeEmitted;return Nq("needFinish",a,s),a}function b(o,s){let a=!1;function r(t){if(a){x(o,t!==null&&t!==void 0?t:j());return}if(a=!0,s.pendingcb--,t){const e=s[C].splice(0);for(let qq=0;qq{if(u(t))d(r,t);else t.pendingcb--},o,s);else if(u(s))s.pendingcb++,d(o,s)}}function d(o,s){s.pendingcb--,s.finished=!0;const a=s[C].splice(0);for(let r=0;r{if(g!=null)throw new U("nully","body",g)},(g)=>{W(R,g)});return R=new A({objectMode:!0,readable:!1,write:C,final(g){D(async()=>{try{await S,Iq(g,null)}catch(f){Iq(g,f)}})},destroy:w})}throw new U("Iterable, AsyncIterable or AsyncFunction",x,_)}if(j(P))return T(P.arrayBuffer());if(H(P))return L(A,P,{objectMode:!0,writable:!1});if(typeof(P===null||P===void 0?void 0:P.writable)==="object"||typeof(P===null||P===void 0?void 0:P.readable)==="object"){const _=P!==null&&P!==void 0&&P.readable?Z(P===null||P===void 0?void 0:P.readable)?P===null||P===void 0?void 0:P.readable:T(P.readable):void 0,C=P!==null&&P!==void 0&&P.writable?B(P===null||P===void 0?void 0:P.writable)?P===null||P===void 0?void 0:P.writable:T(P.writable):void 0;return I({readable:_,writable:C})}const O=P===null||P===void 0?void 0:P.then;if(typeof O==="function"){let _;return N(O,P,(C)=>{if(C!=null)_.push(C);_.push(null)},(C)=>{W(_,C)}),_=new A({objectMode:!0,writable:!1,read(){}})}throw new V(x,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],P)};function E(T){let{promise:P,resolve:x}=F();const O=new AbortController,_=O.signal;return{value:T(async function*(){while(!0){const D=P;P=null;const{chunk:w,done:v,cb:R}=await D;if(Iq(R),v)return;if(_.aborted)throw new z(void 0,{cause:_.reason});({promise:P,resolve:x}=F()),yield w}}(),{signal:_}),write(D,w,v){const R=x;x=null,R({chunk:D,done:!1,cb:v})},final(D){const w=x;x=null,w({done:!0,cb:D})},destroy(D,w){O.abort(),w(D)}}}function I(T){const P=T.readable&&typeof T.readable.read!=="function"?M.wrap(T.readable):T.readable,x=T.writable;let O=!!X(P),_=!!J(x),C,D,w,v,R;function S(g){const f=v;if(v=null,f)f(g);else if(g)R.destroy(g);else if(!O&&!_)R.destroy()}if(R=new A({readableObjectMode:!!(P!==null&&P!==void 0&&P.readableObjectMode),writableObjectMode:!!(x!==null&&x!==void 0&&x.writableObjectMode),readable:O,writable:_}),_)$(x,(g)=>{if(_=!1,g)W(P,g);S(g)}),R._write=function(g,f,k){if(x.write(g,f))k();else C=k},R._final=function(g){x.end(),D=g},x.on("drain",function(){if(C){const g=C;C=null,g()}}),x.on("finish",function(){if(D){const g=D;D=null,g()}});if(O)$(P,(g)=>{if(O=!1,g)W(P,g);S(g)}),P.on("readable",function(){if(w){const g=w;w=null,g()}}),P.on("end",function(){R.push(null)}),R._read=function(){while(!0){const g=P.read();if(g===null){w=R._read;return}if(!R.push(g))return}};return R._destroy=function(g,f){if(!g&&v!==null)g=new z;if(w=null,C=null,D=null,v===null)f(g);else v=f,W(x,g),W(P,g)},R}}}),Cq=mq({"node_modules/readable-stream/lib/internal/streams/duplex.js"(q,Q){var{ObjectDefineProperties:X,ObjectGetOwnPropertyDescriptor:J,ObjectKeys:H,ObjectSetPrototypeOf:K}=Oq(),Z=ZQ();function B(U){if(!(this instanceof B))return new B(U);if(Z.call(this,U),Eq.call(this,U),U){if(this.allowHalfOpen=U.allowHalfOpen!==!1,U.readable===!1)this._readableState.readable=!1,this._readableState.ended=!0,this._readableState.endEmitted=!0;if(U.writable===!1)this._writableState.writable=!1,this._writableState.ending=!0,this._writableState.ended=!0,this._writableState.finished=!0}else this.allowHalfOpen=!0}Q.exports=B,K(B.prototype,Z.prototype),K(B,Z);for(var Y in Eq.prototype)if(!B.prototype[Y])B.prototype[Y]=Eq.prototype[Y];X(B.prototype,{writable:J(Eq.prototype,"writable"),writableHighWaterMark:J(Eq.prototype,"writableHighWaterMark"),writableObjectMode:J(Eq.prototype,"writableObjectMode"),writableBuffer:J(Eq.prototype,"writableBuffer"),writableLength:J(Eq.prototype,"writableLength"),writableFinished:J(Eq.prototype,"writableFinished"),writableCorked:J(Eq.prototype,"writableCorked"),writableEnded:J(Eq.prototype,"writableEnded"),writableNeedDrain:J(Eq.prototype,"writableNeedDrain"),destroyed:{get(){if(this._readableState===void 0||this._writableState===void 0)return!1;return this._readableState.destroyed&&this._writableState.destroyed},set(U){if(this._readableState&&this._writableState)this._readableState.destroyed=U,this._writableState.destroyed=U}}});var $;function z(){if($===void 0)$={};return $}B.fromWeb=function(U,W){return z().newStreamDuplexFromReadableWritablePair(U,W)},B.toWeb=function(U){return z().newReadableWritablePairFromDuplex(U)};var V;B.from=function(U){if(!V)V=YQ();return V(U,"body")}}}),$Q=mq({"node_modules/readable-stream/lib/internal/streams/transform.js"(q,Q){var{ObjectSetPrototypeOf:X,Symbol:J}=Oq(),{ERR_METHOD_NOT_IMPLEMENTED:H}=oq().codes,K=Cq();function Z(z){if(!(this instanceof Z))return new Z(z);if(K.call(this,z),this._readableState.sync=!1,this[B]=null,z){if(typeof z.transform==="function")this._transform=z.transform;if(typeof z.flush==="function")this._flush=z.flush}this.on("prefinish",$.bind(this))}X(Z.prototype,K.prototype),X(Z,K),Q.exports=Z;var B=J("kCallback");function Y(z){if(typeof this._flush==="function"&&!this.destroyed)this._flush((V,U)=>{if(V){if(z)z(V);else this.destroy(V);return}if(U!=null)this.push(U);if(this.push(null),z)z()});else if(this.push(null),z)z()}function $(){if(this._final!==Y)Y.call(this)}Z.prototype._final=Y,Z.prototype._transform=function(z,V,U){throw new H("_transform()")},Z.prototype._write=function(z,V,U){const W=this._readableState,G=this._writableState,M=W.length;this._transform(z,V,(F,L)=>{if(F){U(F);return}if(L!=null)this.push(L);if(G.ended||M===W.length||W.length{g=!0});const f=K(v,{readable:R,writable:S},(k)=>{g=!k});return{destroy:(k)=>{if(g)return;g=!0,B.destroyer(v,k||new W("pipe"))},cleanup:f}}function P(v){return M(v[v.length-1],"streams[stream.length - 1]"),v.pop()}function x(v){if(L(v))return v;else if(N(v))return O(v);throw new z("val",["Readable","Iterable","AsyncIterable"],v)}async function*O(v){if(!I)I=ZQ();yield*I.prototype[H].call(v)}async function _(v,R,S,{end:g}){let f,k=null;const y=(u)=>{if(u)f=u;if(k){const b=k;k=null,b()}},h=()=>new J((u,b)=>{if(f)b(f);else k=()=>{if(f)b(f);else u()}});R.on("drain",y);const p=K(R,{readable:!1},y);try{if(R.writableNeedDrain)await h();for await(let u of v)if(!R.write(u))await h();if(g)R.end();await h(),S()}catch(u){S(f!==u?$(f,u):u)}finally{p(),R.off("drain",y)}}function C(...v){return D(v,Z(P(v)))}function D(v,R,S){if(v.length===1&&X(v[0]))v=v[0];if(v.length<2)throw new U("streams");const g=new AbortController,f=g.signal,k=S===null||S===void 0?void 0:S.signal,y=[];F(k,"options.signal");function h(){d(new G)}k===null||k===void 0||k.addEventListener("abort",h);let p,u;const b=[];let m=0;function c(n){d(n,--m===0)}function d(n,o){if(n&&(!p||p.code==="ERR_STREAM_PREMATURE_CLOSE"))p=n;if(!p&&!o)return;while(b.length)b.shift()(p);if(k===null||k===void 0||k.removeEventListener("abort",h),g.abort(),o){if(!p)y.forEach((s)=>s());Iq(R,p,u)}}let l;for(let n=0;n0,r=s||(S===null||S===void 0?void 0:S.end)!==!1,t=n===v.length-1;if(A(o)){let e=function(qq){if(qq&&qq.name!=="AbortError"&&qq.code!=="ERR_STREAM_PREMATURE_CLOSE")c(qq)};if(r){const{destroy:qq,cleanup:Qq}=T(o,s,a);if(b.push(qq),j(o)&&t)y.push(Qq)}if(o.on("error",e),j(o)&&t)y.push(()=>{o.removeListener("error",e)})}if(n===0)if(typeof o==="function"){if(l=o({signal:f}),!L(l))throw new V("Iterable, AsyncIterable or Stream","source",l)}else if(L(o)||N(o))l=o;else l=Y.from(o);else if(typeof o==="function")if(l=x(l),l=o(l,{signal:f}),s){if(!L(l,!0))throw new V("AsyncIterable",`transform[${n-1}]`,l)}else{var i;if(!E)E=zQ();const e=new E({objectMode:!0}),qq=(i=l)===null||i===void 0?void 0:i.then;if(typeof qq==="function")m++,qq.call(l,(Jq)=>{if(u=Jq,Jq!=null)e.write(Jq);if(r)e.end();Iq(c)},(Jq)=>{e.destroy(Jq),Iq(c,Jq)});else if(L(l,!0))m++,_(l,e,c,{end:r});else throw new V("AsyncIterable or Promise","destination",l);l=e;const{destroy:Qq,cleanup:Xq}=T(l,!1,!0);if(b.push(Qq),t)y.push(Xq)}else if(A(o)){if(N(l)){m+=2;const e=w(l,o,c,{end:r});if(j(o)&&t)y.push(e)}else if(L(l))m++,_(l,o,c,{end:r});else throw new z("val",["Readable","Iterable","AsyncIterable"],l);l=o}else l=Y.from(o)}if(f!==null&&f!==void 0&&f.aborted||k!==null&&k!==void 0&&k.aborted)Iq(h);return l}function w(v,R,S,{end:g}){if(v.pipe(R,{end:g}),g)v.once("end",()=>R.end());else S();return K(v,{readable:!0,writable:!1},(f)=>{const k=v._readableState;if(f&&f.code==="ERR_STREAM_PREMATURE_CLOSE"&&k&&k.ended&&!k.errored&&!k.errorEmitted)v.once("end",S).once("error",S);else S(f)}),K(R,{readable:!1,writable:!0},S)}Q.exports={pipelineImpl:D,pipeline:C}}}),UQ=mq({"node_modules/readable-stream/lib/internal/streams/compose.js"(q,Q){var{pipeline:X}=VQ(),J=Cq(),{destroyer:H}=eq(),{isNodeStream:K,isReadable:Z,isWritable:B}=aq(),{AbortError:Y,codes:{ERR_INVALID_ARG_VALUE:$,ERR_MISSING_ARGS:z}}=oq();Q.exports=function V(...U){if(U.length===0)throw new z("streams");if(U.length===1)return J.from(U[0]);const W=[...U];if(typeof U[0]==="function")U[0]=J.from(U[0]);if(typeof U[U.length-1]==="function"){const P=U.length-1;U[P]=J.from(U[P])}for(let P=0;P0&&!B(U[P]))throw new $(`streams[${P}]`,W[P],"must be writable")}let G,M,F,L,j;function N(P){const x=L;if(L=null,x)x(P);else if(P)j.destroy(P);else if(!T&&!I)j.destroy()}const A=U[0],E=X(U,N),I=!!B(A),T=!!Z(E);if(j=new J({writableObjectMode:!!(A!==null&&A!==void 0&&A.writableObjectMode),readableObjectMode:!!(E!==null&&E!==void 0&&E.writableObjectMode),writable:I,readable:T}),I)j._write=function(P,x,O){if(A.write(P,x))O();else G=O},j._final=function(P){A.end(),M=P},A.on("drain",function(){if(G){const P=G;G=null,P()}}),E.on("finish",function(){if(M){const P=M;M=null,P()}});if(T)E.on("readable",function(){if(F){const P=F;F=null,P()}}),E.on("end",function(){j.push(null)}),j._read=function(){while(!0){const P=E.read();if(P===null){F=j._read;return}if(!j.push(P))return}};return j._destroy=function(P,x){if(!P&&L!==null)P=new Y;if(F=null,G=null,M=null,L===null)x(P);else L=x,H(E,P)},j}}}),WQ=mq({"node_modules/readable-stream/lib/stream/promises.js"(q,Q){var{ArrayPrototypePop:X,Promise:J}=Oq(),{isIterable:H,isNodeStream:K}=aq(),{pipelineImpl:Z}=VQ(),{finished:B}=rq();function Y(...$){return new J((z,V)=>{let U,W;const G=$[$.length-1];if(G&&typeof G==="object"&&!K(G)&&!H(G)){const M=X($);U=M.signal,W=M.end}Z($,(M,F)=>{if(M)V(M);else z(F)},{signal:U,end:W})})}Q.exports={finished:B,pipeline:Y}}}),GQ=mq({"node_modules/readable-stream/lib/stream.js"(q,Q){var{ObjectDefineProperty:X,ObjectKeys:J,ReflectApply:H}=Oq(),{promisify:{custom:K}}=_q(),{streamReturningOperators:Z,promiseReturningOperators:B}=tq(),{codes:{ERR_ILLEGAL_CONSTRUCTOR:Y}}=oq(),$=UQ(),{pipeline:z}=VQ(),{destroyer:V}=eq(),U=rq(),W=WQ(),G=aq(),M=Q.exports=qQ().Stream;M.isDisturbed=G.isDisturbed,M.isErrored=G.isErrored,M.isWritable=G.isWritable,M.isReadable=G.isReadable,M.Readable=ZQ();for(let L of J(Z)){let j=function(...A){if(new.target)throw Y();return M.Readable.from(H(N,this,A))};const N=Z[L];X(j,"name",{value:N.name}),X(j,"length",{value:N.length}),X(M.Readable.prototype,L,{value:j,enumerable:!1,configurable:!0,writable:!0})}for(let L of J(B)){let j=function(...A){if(new.target)throw Y();return H(N,this,A)};const N=B[L];X(j,"name",{value:N.name}),X(j,"length",{value:N.length}),X(M.Readable.prototype,L,{value:j,enumerable:!1,configurable:!0,writable:!0})}M.Writable=BQ(),M.Duplex=Cq(),M.Transform=$Q(),M.PassThrough=zQ(),M.pipeline=z;var{addAbortSignal:F}=QQ();M.addAbortSignal=F,M.finished=U,M.destroy=V,M.compose=$,X(M,"promises",{configurable:!0,enumerable:!0,get(){return W}}),X(z,K,{enumerable:!0,get(){return W.pipeline}}),X(U,K,{enumerable:!0,get(){return W.finished}}),M.Stream=M,M._isUint8Array=function L(j){return j instanceof Uint8Array},M._uint8ArrayToBuffer=function L(j){return new Buffer(j.buffer,j.byteOffset,j.byteLength)}}}),MQ=mq({"node_modules/readable-stream/lib/ours/index.js"(q,Q){const X=GQ(),J=WQ(),H=X.Readable.destroy;Q.exports=X,Q.exports._uint8ArrayToBuffer=X._uint8ArrayToBuffer,Q.exports._isUint8Array=X._isUint8Array,Q.exports.isDisturbed=X.isDisturbed,Q.exports.isErrored=X.isErrored,Q.exports.isWritable=X.isWritable,Q.exports.isReadable=X.isReadable,Q.exports.Readable=X.Readable,Q.exports.Writable=X.Writable,Q.exports.Duplex=X.Duplex,Q.exports.Transform=X.Transform,Q.exports.PassThrough=X.PassThrough,Q.exports.addAbortSignal=X.addAbortSignal,Q.exports.finished=X.finished,Q.exports.destroy=X.destroy,Q.exports.destroy=H,Q.exports.pipeline=X.pipeline,Q.exports.compose=X.compose,Q.exports._getNativeReadableStreamPrototype=jQ,Q.exports.NativeWritable=pQ,Tq.defineProperty(X,"promises",{configurable:!0,enumerable:!0,get(){return J}}),Q.exports.Stream=X.Stream,Q.exports.default=Q.exports}}),LQ={0:void 0,1:void 0,2:void 0,3:void 0,4:void 0,5:void 0},Eq=BQ(),pQ=class q extends Eq{#q;#Q;#X=!0;_construct;_destroy;_final;constructor(Q,X={}){super(X);this._construct=this.#J,this._destroy=this.#K,this._final=this.#Z,this.#q=Q}#J(Q){this._writableState.constructed=!0,this.constructed=!0,Q()}#H(){if(typeof this.#q==="object")if(typeof this.#q.write==="function")this.#Q=this.#q;else throw new Error("Invalid FileSink");else this.#Q=Bun.file(this.#q).writer()}write(Q,X,J,H=this.#X){if(!H)return this.#X=!1,super.write(Q,X,J);if(!this.#Q)this.#H();var K=this.#Q,Z=K.write(Q);if(xq(Z))return Z.then(()=>{this.emit("drain"),K.flush(!0)}),!1;if(K.flush(!0),J)J(null,Q.byteLength);return!0}end(Q,X,J,H=this.#X){return super.end(Q,X,J,H)}#K(Q,X){if(this._writableState.destroyed=!0,X)X(Q)}#Z(Q){if(this.#Q)this.#Q.end();if(Q)Q()}ref(){if(!this.#Q)this.#H();this.#Q.ref()}unref(){if(!this.#Q)return;this.#Q.unref()}},AQ=MQ();AQ[Symbol.for("CommonJS")]=0;AQ[Symbol.for("::bunternal::")]={_ReadableFromWeb:HQ,_ReadableFromWebForUndici:KQ};var lQ=AQ,EQ=AQ._uint8ArrayToBuffer,IQ=AQ._isUint8Array,TQ=AQ.isDisturbed,PQ=AQ.isErrored,xQ=AQ.isWritable,OQ=AQ.isReadable,_Q=AQ.Readable,Eq=AQ.Writable,CQ=AQ.Duplex,DQ=AQ.Transform,wQ=AQ.PassThrough,vQ=AQ.addAbortSignal,RQ=AQ.finished,SQ=AQ.destroy,gQ=AQ.pipeline,fQ=AQ.compose,kQ=AQ.Stream,yQ=AQ["eos"]=rq,hQ=AQ._getNativeReadableStreamPrototype,pQ=AQ.NativeWritable,uQ=kQ.promises;export{uQ as promises,gQ as pipeline,xQ as isWritable,OQ as isReadable,PQ as isErrored,TQ as isDisturbed,RQ as finished,yQ as eos,SQ as destroy,lQ as default,fQ as compose,vQ as addAbortSignal,EQ as _uint8ArrayToBuffer,IQ as _isUint8Array,hQ as _getNativeReadableStreamPrototype,Eq as Writable,DQ as Transform,kQ as Stream,_Q as Readable,wQ as PassThrough,pQ as NativeWritable,CQ as Duplex}; diff --git a/src/js/out/modules/node/stream.promises.js b/src/js/out/modules/node/stream.promises.js index b25dc7b50..f095ac718 100644 --- a/src/js/out/modules/node/stream.promises.js +++ b/src/js/out/modules/node/stream.promises.js @@ -1 +1 @@ -var{promises:o}=import.meta.require("node:stream"),{pipeline:m,finished:C}=o,J={pipeline:m,finished:C,[Symbol.for("CommonJS")]:0};export{m as pipeline,C as finished,J as default}; +import{promises as S} from"node:stream";var{pipeline:b,finished:c}=S,g={pipeline:b,finished:c,[Symbol.for("CommonJS")]:0};export{b as pipeline,c as finished,g as default}; diff --git a/src/js/out/modules/node/timers.promises.js b/src/js/out/modules/node/timers.promises.js index ff4640cf2..d76e46f3c 100644 --- a/src/js/out/modules/node/timers.promises.js +++ b/src/js/out/modules/node/timers.promises.js @@ -173,8 +173,10 @@ class AbortError extends Error { this.code = "ABORT_ERR"; } } +var timers_promises_default = { setTimeout: setTimeoutPromise, setImmediate: setImmediatePromise, setInterval: setIntervalPromise }; export { setTimeoutPromise as setTimeout, setIntervalPromise as setInterval, - setImmediatePromise as setImmediate + setImmediatePromise as setImmediate, + timers_promises_default as default }; diff --git a/src/js/out/modules/node/tls.js b/src/js/out/modules/node/tls.js index 1e436a85f..4cceadc7f 100644 --- a/src/js/out/modules/node/tls.js +++ b/src/js/out/modules/node/tls.js @@ -1,4 +1,5 @@ -var {isTypedArray } = import.meta.require("node:util/types"); +import {isTypedArray} from "node:util/types"; +import net, {Server as NetServer} from "node:net"; var parseCertString = function() { throwNotImplemented("Not implemented"); }, isValidTLSArray = function(obj) { @@ -16,7 +17,12 @@ var parseCertString = function() { return new SecureContext(options); }, createServer = function(options, connectionListener) { return new Server(options, connectionListener); -}, InternalSecureContext = class SecureContext2 { +}, getCiphers = function() { + return DEFAULT_CIPHERS.split(":"); +}, getCurves = function() { + return; +}, convertALPNProtocols = function(protocols, out) { +}, InternalTCPSocket = net[Symbol.for("::bunternal::")], InternalSecureContext = class SecureContext2 { context; constructor(options) { const context = {}; @@ -54,7 +60,7 @@ var parseCertString = function() { } this.context = context; } -}, { [Symbol.for("::bunternal::")]: InternalTCPSocket, Server: NetServer } = import.meta.require("net"), buntls = Symbol.for("::buntls::"), SocketClass, TLSSocket = function(InternalTLSSocket) { +}, buntls = Symbol.for("::buntls::"), SocketClass, TLSSocket = function(InternalTLSSocket) { return SocketClass = InternalTLSSocket, Object.defineProperty(SocketClass.prototype, Symbol.toStringTag, { value: "TLSSocket", enumerable: !1 @@ -209,37 +215,37 @@ var CLIENT_RENEG_LIMIT = 3, CLIENT_RENEG_WINDOW = 600, DEFAULT_ECDH_CURVE = "aut return new TLSSocket(port).connect(port, host, connectListener); return new TLSSocket().connect(port, host, connectListener); }, connect = createConnection, exports = { - createSecureContext, - parseCertString, - getCiphers() { - return DEFAULT_CIPHERS.split(":"); - }, - getCurves() { - return; - }, - convertALPNProtocols(protocols, out) { - }, - TLSSocket, - SecureContext, + [Symbol.for("CommonJS")]: 0, CLIENT_RENEG_LIMIT, CLIENT_RENEG_WINDOW, - DEFAULT_ECDH_CURVE, - DEFAULT_CIPHERS, - DEFAULT_MIN_VERSION, - DEFAULT_MAX_VERSION, - [Symbol.for("CommonJS")]: 0, connect, + convertALPNProtocols, createConnection, + createSecureContext, + createServer, + DEFAULT_CIPHERS, + DEFAULT_ECDH_CURVE, + DEFAULT_MAX_VERSION, + DEFAULT_MIN_VERSION, + getCiphers, + getCurves, + parseCertString, + SecureContext, Server, - createServer -}, tls_default = exports; + TLSSocket +}; export { parseCertString, - tls_default as default, + getCurves, + getCiphers, + exports as default, + createServer, createSecureContext, createConnection, + convertALPNProtocols, connect, TLSSocket, + Server, SecureContext, DEFAULT_MIN_VERSION, DEFAULT_MAX_VERSION, diff --git a/src/js/out/modules/node/url.js b/src/js/out/modules/node/url.js index cfc70e725..25172c68f 100644 --- a/src/js/out/modules/node/url.js +++ b/src/js/out/modules/node/url.js @@ -1,36 +1,44 @@ -var it = function(s) { - return typeof s == "string"; -}, D = function(s) { - return typeof s == "object" && s !== null; -}, I = function(s) { - return s === null; -}, E = function(s) { - return s == null; -}; -var m = function() { +var Url = function() { this.protocol = null, this.slashes = null, this.auth = null, this.host = null, this.port = null, this.hostname = null, this.hash = null, this.search = null, this.query = null, this.pathname = null, this.path = null, this.href = null; -}, A = function(s, r, t) { - if (s && D(s) && s instanceof m) - return s; - var o = new m; - return o.parse(s, r, t), o; -}, V = function(s) { - return it(s) && (s = A(s)), s instanceof m ? s.format() : m.prototype.format.call(s); -}, W = function(s, r) { - return A(s, !1, !0).resolve(r); -}, X = function(s, r) { - return s ? A(s, !1, !0).resolveObject(r) : r; -}, { URL: F, URLSearchParams: M, [Symbol.for("Bun.lazy")]: S } = globalThis, tt = /^([a-z0-9.+-]+:)/i, st = /:[0-9]*$/, ht = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/, et = [ - "<", - ">", - '"', - "`", - " ", - "\r", - ` -`, - " " -], rt = ["{", "}", "|", "\\", "^", "`"].concat(et), B = ["'"].concat(rt), G = ["%", "/", "?", ";", "#"].concat(B), J = ["/", "?", "#"], ot = 255, K = /^[+a-z0-9A-Z_-]{0,63}$/, at = /^([+a-z0-9A-Z_-]{0,63})(.*)$/, nt = { javascript: !0, "javascript:": !0 }, N = { javascript: !0, "javascript:": !0 }, R = { +}, urlParse = function(url, parseQueryString, slashesDenoteHost) { + if (url && typeof url === "object" && url instanceof Url) + return url; + var u = new Url; + return u.parse(url, parseQueryString, slashesDenoteHost), u; +}, urlFormat = function(obj) { + if (typeof obj === "string") + obj = urlParse(obj); + if (!(obj instanceof Url)) + return Url.prototype.format.call(obj); + return obj.format(); +}, urlResolve = function(source, relative) { + return urlParse(source, !1, !0).resolve(relative); +}, urlResolveObject = function(source, relative) { + if (!source) + return relative; + return urlParse(source, !1, !0).resolveObject(relative); +}, urlToHttpOptions = function(url) { + const options = { + protocol: url.protocol, + hostname: typeof url.hostname === "string" && url.hostname.startsWith("[") ? url.hostname.slice(1, -1) : url.hostname, + hash: url.hash, + search: url.search, + pathname: url.pathname, + path: `${url.pathname || ""}${url.search || ""}`, + href: url.href + }; + if (url.port !== "") + options.port = Number(url.port); + if (url.username || url.password) + options.auth = `${decodeURIComponent(url.username)}:${decodeURIComponent(url.password)}`; + return options; +}, { URL, URLSearchParams } = globalThis, protocolPattern = /^([a-z0-9.+-]+:)/i, portPattern = /:[0-9]*$/, simplePathPattern = /^(\/\/?(?!\/)[^?\s]*)(\?[^\s]*)?$/, delims = ["<", ">", '"', "`", " ", "\r", "\n", "\t"], unwise = ["{", "}", "|", "\\", "^", "`"].concat(delims), autoEscape = ["'"].concat(unwise), nonHostChars = ["%", "/", "?", ";", "#"].concat(autoEscape), hostEndingChars = ["/", "?", "#"], hostnameMaxLen = 255, hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/, hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/, unsafeProtocol = { + javascript: !0, + "javascript:": !0 +}, hostlessProtocol = { + javascript: !0, + "javascript:": !0 +}, slashedProtocol = { http: !0, https: !0, ftp: !0, @@ -41,196 +49,318 @@ var m = function() { "ftp:": !0, "gopher:": !0, "file:": !0 -}, Z = { - parse(s) { - var r = decodeURIComponent; - return (s + "").replace(/\+/g, " ").split("&").filter(Boolean).reduce(function(t, o, a) { - var l = o.split("="), f = r(l[0] || ""), h = r(l[1] || ""), g = t[f]; - return t[f] = g === void 0 ? h : [].concat(g, h), t; - }, {}); - }, - stringify(s) { - var r = encodeURIComponent; - return Object.keys(s || {}).reduce(function(t, o) { - return [].concat(s[o]).forEach(function(a) { - t.push(r(o) + "=" + r(a)); - }), t; - }, []).join("&").replace(/\s/g, "+"); - } }; -m.prototype.parse = function(s, r, t) { - if (!it(s)) - throw new TypeError("Parameter 'url' must be a string, not " + typeof s); - var o = s.indexOf("?"), a = o !== -1 && o < s.indexOf("#") ? "?" : "#", l = s.split(a), f = /\\/g; - l[0] = l[0].replace(f, "/"), s = l.join(a); - var h = s; - if (h = h.trim(), !t && s.split("#").length === 1) { - var g = ht.exec(h); - if (g) - return this.path = h, this.href = h, this.pathname = g[1], g[2] ? (this.search = g[2], r ? this.query = Z.parse(this.search.substr(1)) : this.query = this.search.substr(1)) : r && (this.search = "", this.query = {}), this; +Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) { + if (typeof url !== "string") + throw new TypeError("Parameter 'url' must be a string, not " + typeof url); + var queryIndex = url.indexOf("?"), splitter = queryIndex !== -1 && queryIndex < url.indexOf("#") ? "?" : "#", uSplit = url.split(splitter), slashRegex = /\\/g; + uSplit[0] = uSplit[0].replace(slashRegex, "/"), url = uSplit.join(splitter); + var rest = url; + if (rest = rest.trim(), !slashesDenoteHost && url.split("#").length === 1) { + var simplePath = simplePathPattern.exec(rest); + if (simplePath) { + if (this.path = rest, this.href = rest, this.pathname = simplePath[1], simplePath[2]) + if (this.search = simplePath[2], parseQueryString) + this.query = new URLSearchParams(this.search.substr(1)).toJSON(); + else + this.query = this.search.substr(1); + else if (parseQueryString) + this.search = "", this.query = {}; + return this; + } } - var c = tt.exec(h); - if (c) { - c = c[0]; - var v = c.toLowerCase(); - this.protocol = v, h = h.substr(c.length); + var proto = protocolPattern.exec(rest); + if (proto) { + proto = proto[0]; + var lowerProto = proto.toLowerCase(); + this.protocol = lowerProto, rest = rest.substr(proto.length); } - if (t || c || h.match(/^\/\/[^@\/]+@[^@\/]+/)) { - var j = h.substr(0, 2) === "//"; - j && !(c && N[c]) && (h = h.substr(2), this.slashes = !0); + if (slashesDenoteHost || proto || rest.match(/^\/\/[^@/]+@[^@/]+/)) { + var slashes = rest.substr(0, 2) === "//"; + if (slashes && !(proto && hostlessProtocol[proto])) + rest = rest.substr(2), this.slashes = !0; } - if (!N[c] && (j || c && !R[c])) { - for (var u = -1, n = 0;n < J.length; n++) { - var b = h.indexOf(J[n]); - b !== -1 && (u === -1 || b < u) && (u = b); + if (!hostlessProtocol[proto] && (slashes || proto && !slashedProtocol[proto])) { + var hostEnd = -1; + for (var i = 0;i < hostEndingChars.length; i++) { + var hec = rest.indexOf(hostEndingChars[i]); + if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) + hostEnd = hec; } - var P, p; - u === -1 ? p = h.lastIndexOf("@") : p = h.lastIndexOf("@", u), p !== -1 && (P = h.slice(0, p), h = h.slice(p + 1), this.auth = decodeURIComponent(P)), u = -1; - for (var n = 0;n < G.length; n++) { - var b = h.indexOf(G[n]); - b !== -1 && (u === -1 || b < u) && (u = b); + var auth, atSign; + if (hostEnd === -1) + atSign = rest.lastIndexOf("@"); + else + atSign = rest.lastIndexOf("@", hostEnd); + if (atSign !== -1) + auth = rest.slice(0, atSign), rest = rest.slice(atSign + 1), this.auth = decodeURIComponent(auth); + hostEnd = -1; + for (var i = 0;i < nonHostChars.length; i++) { + var hec = rest.indexOf(nonHostChars[i]); + if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) + hostEnd = hec; } - u === -1 && (u = h.length), this.host = h.slice(0, u), h = h.slice(u), this.parseHost(), this.hostname = this.hostname || ""; - var C = this.hostname[0] === "[" && this.hostname[this.hostname.length - 1] === "]"; - if (!C) - for (var e = this.hostname.split(/\./), n = 0, i = e.length;n < i; n++) { - var d = e[n]; - if (!!d && !d.match(K)) { - for (var y = "", x = 0, _ = d.length;x < _; x++) - d.charCodeAt(x) > 127 ? y += "x" : y += d[x]; - if (!y.match(K)) { - var q = e.slice(0, n), O = e.slice(n + 1), U = d.match(at); - U && (q.push(U[1]), O.unshift(U[2])), O.length && (h = "/" + O.join(".") + h), this.hostname = q.join("."); + if (hostEnd === -1) + hostEnd = rest.length; + this.host = rest.slice(0, hostEnd), rest = rest.slice(hostEnd), this.parseHost(), this.hostname = this.hostname || ""; + var ipv6Hostname = this.hostname[0] === "[" && this.hostname[this.hostname.length - 1] === "]"; + if (!ipv6Hostname) { + var hostparts = this.hostname.split(/\./); + for (var i = 0, l = hostparts.length;i < l; i++) { + var part = hostparts[i]; + if (!part) + continue; + if (!part.match(hostnamePartPattern)) { + var newpart = ""; + for (var j = 0, k = part.length;j < k; j++) + if (part.charCodeAt(j) > 127) + newpart += "x"; + else + newpart += part[j]; + if (!newpart.match(hostnamePartPattern)) { + var validParts = hostparts.slice(0, i), notHost = hostparts.slice(i + 1), bit = part.match(hostnamePartStart); + if (bit) + validParts.push(bit[1]), notHost.unshift(bit[2]); + if (notHost.length) + rest = "/" + notHost.join(".") + rest; + this.hostname = validParts.join("."); break; } } } - this.hostname.length > ot ? this.hostname = "" : this.hostname = this.hostname.toLowerCase(), C || (this.hostname = new F(`https://${this.hostname}`).hostname); - var w = this.port ? ":" + this.port : "", H = this.hostname || ""; - this.host = H + w, this.href += this.host, C && (this.hostname = this.hostname.substr(1, this.hostname.length - 2), h[0] !== "/" && (h = "/" + h)); + } + if (this.hostname.length > hostnameMaxLen) + this.hostname = ""; + else + this.hostname = this.hostname.toLowerCase(); + if (!ipv6Hostname) + this.hostname = new URL("http://" + this.hostname).hostname; + var p = this.port ? ":" + this.port : "", h = this.hostname || ""; + if (this.host = h + p, this.href += this.host, ipv6Hostname) { + if (this.hostname = this.hostname.substr(1, this.hostname.length - 2), rest[0] !== "/") + rest = "/" + rest; + } } - if (!nt[v]) - for (var n = 0, i = B.length;n < i; n++) { - var L = B[n]; - if (h.indexOf(L) !== -1) { - var z = encodeURIComponent(L); - z === L && (z = escape(L)), h = h.split(L).join(z); - } + if (!unsafeProtocol[lowerProto]) + for (var i = 0, l = autoEscape.length;i < l; i++) { + var ae = autoEscape[i]; + if (rest.indexOf(ae) === -1) + continue; + var esc = encodeURIComponent(ae); + if (esc === ae) + esc = escape(ae); + rest = rest.split(ae).join(esc); } - var $ = h.indexOf("#"); - $ !== -1 && (this.hash = h.substr($), h = h.slice(0, $)); - var T = h.indexOf("?"); - if (T !== -1 ? (this.search = h.substr(T), this.query = h.substr(T + 1), r && (this.query = Z.parse(this.query)), h = h.slice(0, T)) : r && (this.search = "", this.query = {}), h && (this.pathname = h), R[v] && this.hostname && !this.pathname && (this.pathname = "/"), this.pathname || this.search) { - var w = this.pathname || "", Q = this.search || ""; - this.path = w + Q; + var hash = rest.indexOf("#"); + if (hash !== -1) + this.hash = rest.substr(hash), rest = rest.slice(0, hash); + var qm = rest.indexOf("?"); + if (qm !== -1) { + if (this.search = rest.substr(qm), this.query = rest.substr(qm + 1), parseQueryString) + this.query = new URLSearchParams(this.query); + rest = rest.slice(0, qm); + } else if (parseQueryString) + this.search = "", this.query = {}; + if (rest) + this.pathname = rest; + if (slashedProtocol[lowerProto] && this.hostname && !this.pathname) + this.pathname = "/"; + if (this.pathname || this.search) { + var p = this.pathname || "", s = this.search || ""; + this.path = p + s; } return this.href = this.format(), this; }; -m.prototype.format = function() { - var s = this.auth || ""; - s && (s = encodeURIComponent(s), s = s.replace(/%3A/i, ":"), s += "@"); - var r = this.protocol || "", t = this.pathname || "", o = this.hash || "", a = !1, l = ""; - this.host ? a = s + this.host : this.hostname && (a = s + (this.hostname.indexOf(":") === -1 ? this.hostname : "[" + this.hostname + "]"), this.port && (a += ":" + this.port)), this.query && D(this.query) && Object.keys(this.query).length && (l = Z.stringify(this.query)); - var f = this.search || l && "?" + l || ""; - return r && r.substr(-1) !== ":" && (r += ":"), this.slashes || (!r || R[r]) && a !== !1 ? (a = "//" + (a || ""), t && t.charAt(0) !== "/" && (t = "/" + t)) : a || (a = ""), o && o.charAt(0) !== "#" && (o = "#" + o), f && f.charAt(0) !== "?" && (f = "?" + f), t = t.replace(/[?#]/g, function(h) { - return encodeURIComponent(h); - }), f = f.replace("#", "%23"), r + a + t + f + o; +Url.prototype.format = function() { + var auth = this.auth || ""; + if (auth) + auth = encodeURIComponent(auth), auth = auth.replace(/%3A/i, ":"), auth += "@"; + var protocol = this.protocol || "", pathname = this.pathname || "", hash = this.hash || "", host = !1, query = ""; + if (this.host) + host = auth + this.host; + else if (this.hostname) { + if (host = auth + (this.hostname.indexOf(":") === -1 ? this.hostname : "[" + this.hostname + "]"), this.port) + host += ":" + this.port; + } + if (this.query && typeof this.query === "object" && Object.keys(this.query).length) + query = new URLSearchParams(this.query).toString(); + var search = this.search || query && "?" + query || ""; + if (protocol && protocol.substr(-1) !== ":") + protocol += ":"; + if (this.slashes || (!protocol || slashedProtocol[protocol]) && host !== !1) { + if (host = "//" + (host || ""), pathname && pathname.charAt(0) !== "/") + pathname = "/" + pathname; + } else if (!host) + host = ""; + if (hash && hash.charAt(0) !== "#") + hash = "#" + hash; + if (search && search.charAt(0) !== "?") + search = "?" + search; + return pathname = pathname.replace(/[?#]/g, function(match) { + return encodeURIComponent(match); + }), search = search.replace("#", "%23"), protocol + host + pathname + search + hash; }; -m.prototype.resolve = function(s) { - return this.resolveObject(A(s, !1, !0)).format(); +Url.prototype.resolve = function(relative) { + return this.resolveObject(urlParse(relative, !1, !0)).format(); }; -m.prototype.resolveObject = function(s) { - if (it(s)) { - var r = new m; - r.parse(s, !1, !0), s = r; +Url.prototype.resolveObject = function(relative) { + if (typeof relative === "string") { + var rel = new Url; + rel.parse(relative, !1, !0), relative = rel; } - for (var t = new m, o = Object.keys(this), a = 0;a < o.length; a++) { - var l = o[a]; - t[l] = this[l]; + var result = new Url, tkeys = Object.keys(this); + for (var tk = 0;tk < tkeys.length; tk++) { + var tkey = tkeys[tk]; + result[tkey] = this[tkey]; } - if (t.hash = s.hash, s.href === "") - return t.href = t.format(), t; - if (s.slashes && !s.protocol) { - for (var f = Object.keys(s), h = 0;h < f.length; h++) { - var g = f[h]; - g !== "protocol" && (t[g] = s[g]); + if (result.hash = relative.hash, relative.href === "") + return result.href = result.format(), result; + if (relative.slashes && !relative.protocol) { + var rkeys = Object.keys(relative); + for (var rk = 0;rk < rkeys.length; rk++) { + var rkey = rkeys[rk]; + if (rkey !== "protocol") + result[rkey] = relative[rkey]; } - return R[t.protocol] && t.hostname && !t.pathname && (t.path = t.pathname = "/"), t.href = t.format(), t; + if (slashedProtocol[result.protocol] && result.hostname && !result.pathname) + result.pathname = "/", result.path = result.pathname; + return result.href = result.format(), result; } - if (s.protocol && s.protocol !== t.protocol) { - if (!R[s.protocol]) { - for (var c = Object.keys(s), v = 0;v < c.length; v++) { - var j = c[v]; - t[j] = s[j]; + if (relative.protocol && relative.protocol !== result.protocol) { + if (!slashedProtocol[relative.protocol]) { + var keys = Object.keys(relative); + for (var v = 0;v < keys.length; v++) { + var k = keys[v]; + result[k] = relative[k]; } - return t.href = t.format(), t; + return result.href = result.format(), result; } - if (t.protocol = s.protocol, !s.host && !N[s.protocol]) { - for (var i = (s.pathname || "").split("/");i.length && !(s.host = i.shift()); ) + if (result.protocol = relative.protocol, !relative.host && !hostlessProtocol[relative.protocol]) { + var relPath = (relative.pathname || "").split("/"); + while (relPath.length && !(relative.host = relPath.shift())) ; - s.host || (s.host = ""), s.hostname || (s.hostname = ""), i[0] !== "" && i.unshift(""), i.length < 2 && i.unshift(""), t.pathname = i.join("/"); + if (!relative.host) + relative.host = ""; + if (!relative.hostname) + relative.hostname = ""; + if (relPath[0] !== "") + relPath.unshift(""); + if (relPath.length < 2) + relPath.unshift(""); + result.pathname = relPath.join("/"); } else - t.pathname = s.pathname; - if (t.search = s.search, t.query = s.query, t.host = s.host || "", t.auth = s.auth, t.hostname = s.hostname || s.host, t.port = s.port, t.pathname || t.search) { - var u = t.pathname || "", n = t.search || ""; - t.path = u + n; + result.pathname = relative.pathname; + if (result.search = relative.search, result.query = relative.query, result.host = relative.host || "", result.auth = relative.auth, result.hostname = relative.hostname || relative.host, result.port = relative.port, result.pathname || result.search) { + var p = result.pathname || "", s = result.search || ""; + result.path = p + s; + } + return result.slashes = result.slashes || relative.slashes, result.href = result.format(), result; + } + var isSourceAbs = result.pathname && result.pathname.charAt(0) === "/", isRelAbs = relative.host || relative.pathname && relative.pathname.charAt(0) === "/", mustEndAbs = isRelAbs || isSourceAbs || result.host && relative.pathname, removeAllDots = mustEndAbs, srcPath = result.pathname && result.pathname.split("/") || [], relPath = relative.pathname && relative.pathname.split("/") || [], psychotic = result.protocol && !slashedProtocol[result.protocol]; + if (psychotic) { + if (result.hostname = "", result.port = null, result.host) + if (srcPath[0] === "") + srcPath[0] = result.host; + else + srcPath.unshift(result.host); + if (result.host = "", relative.protocol) { + if (relative.hostname = null, relative.port = null, relative.host) + if (relPath[0] === "") + relPath[0] = relative.host; + else + relPath.unshift(relative.host); + relative.host = null; } - return t.slashes = t.slashes || s.slashes, t.href = t.format(), t; + mustEndAbs = mustEndAbs && (relPath[0] === "" || srcPath[0] === ""); } - var b = t.pathname && t.pathname.charAt(0) === "/", P = s.host || s.pathname && s.pathname.charAt(0) === "/", p = P || b || t.host && s.pathname, C = p, e = t.pathname && t.pathname.split("/") || [], i = s.pathname && s.pathname.split("/") || [], d = t.protocol && !R[t.protocol]; - if (d && (t.hostname = "", t.port = null, t.host && (e[0] === "" ? e[0] = t.host : e.unshift(t.host)), t.host = "", s.protocol && (s.hostname = null, s.port = null, s.host && (i[0] === "" ? i[0] = s.host : i.unshift(s.host)), s.host = null), p = p && (i[0] === "" || e[0] === "")), P) - t.host = s.host || s.host === "" ? s.host : t.host, t.hostname = s.hostname || s.hostname === "" ? s.hostname : t.hostname, t.search = s.search, t.query = s.query, e = i; - else if (i.length) - e || (e = []), e.pop(), e = e.concat(i), t.search = s.search, t.query = s.query; - else if (!E(s.search)) { - if (d) { - t.hostname = t.host = e.shift(); - var y = t.host && t.host.indexOf("@") > 0 ? t.host.split("@") : !1; - y && (t.auth = y.shift(), t.host = t.hostname = y.shift()); + if (isRelAbs) + result.host = relative.host || relative.host === "" ? relative.host : result.host, result.hostname = relative.hostname || relative.hostname === "" ? relative.hostname : result.hostname, result.search = relative.search, result.query = relative.query, srcPath = relPath; + else if (relPath.length) { + if (!srcPath) + srcPath = []; + srcPath.pop(), srcPath = srcPath.concat(relPath), result.search = relative.search, result.query = relative.query; + } else if (relative.search != null) { + if (psychotic) { + result.host = srcPath.shift(), result.hostname = result.host; + var authInHost = result.host && result.host.indexOf("@") > 0 ? result.host.split("@") : !1; + if (authInHost) + result.auth = authInHost.shift(), result.hostname = authInHost.shift(), result.host = result.hostname; } - return t.search = s.search, t.query = s.query, (!I(t.pathname) || !I(t.search)) && (t.path = (t.pathname ? t.pathname : "") + (t.search ? t.search : "")), t.href = t.format(), t; + if (result.search = relative.search, result.query = relative.query, result.pathname !== null || result.search !== null) + result.path = (result.pathname ? result.pathname : "") + (result.search ? result.search : ""); + return result.href = result.format(), result; } - if (!e.length) - return t.pathname = null, t.search ? t.path = "/" + t.search : t.path = null, t.href = t.format(), t; - for (var x = e.slice(-1)[0], _ = (t.host || s.host || e.length > 1) && (x === "." || x === "..") || x === "", q = 0, O = e.length;O >= 0; O--) - x = e[O], x === "." ? e.splice(O, 1) : x === ".." ? (e.splice(O, 1), q++) : q && (e.splice(O, 1), q--); - if (!p && !C) - for (;q--; q) - e.unshift(".."); - p && e[0] !== "" && (!e[0] || e[0].charAt(0) !== "/") && e.unshift(""), _ && e.join("/").substr(-1) !== "/" && e.push(""); - var U = e[0] === "" || e[0] && e[0].charAt(0) === "/"; - if (d) { - t.hostname = t.host = U ? "" : e.length ? e.shift() : ""; - var y = t.host && t.host.indexOf("@") > 0 ? t.host.split("@") : !1; - y && (t.auth = y.shift(), t.host = t.hostname = y.shift()); + if (!srcPath.length) { + if (result.pathname = null, result.search) + result.path = "/" + result.search; + else + result.path = null; + return result.href = result.format(), result; + } + var last = srcPath.slice(-1)[0], hasTrailingSlash = (result.host || relative.host || srcPath.length > 1) && (last === "." || last === "..") || last === "", up = 0; + for (var i = srcPath.length;i >= 0; i--) + if (last = srcPath[i], last === ".") + srcPath.splice(i, 1); + else if (last === "..") + srcPath.splice(i, 1), up++; + else if (up) + srcPath.splice(i, 1), up--; + if (!mustEndAbs && !removeAllDots) + for (;up--; up) + srcPath.unshift(".."); + if (mustEndAbs && srcPath[0] !== "" && (!srcPath[0] || srcPath[0].charAt(0) !== "/")) + srcPath.unshift(""); + if (hasTrailingSlash && srcPath.join("/").substr(-1) !== "/") + srcPath.push(""); + var isAbsolute = srcPath[0] === "" || srcPath[0] && srcPath[0].charAt(0) === "/"; + if (psychotic) { + result.hostname = isAbsolute ? "" : srcPath.length ? srcPath.shift() : "", result.host = result.hostname; + var authInHost = result.host && result.host.indexOf("@") > 0 ? result.host.split("@") : !1; + if (authInHost) + result.auth = authInHost.shift(), result.hostname = authInHost.shift(), result.host = result.hostname; + } + if (mustEndAbs = mustEndAbs || result.host && srcPath.length, mustEndAbs && !isAbsolute) + srcPath.unshift(""); + if (srcPath.length > 0) + result.pathname = srcPath.join("/"); + else + result.pathname = null, result.path = null; + if (result.pathname !== null || result.search !== null) + result.path = (result.pathname ? result.pathname : "") + (result.search ? result.search : ""); + return result.auth = relative.auth || result.auth, result.slashes = result.slashes || relative.slashes, result.href = result.format(), result; +}; +Url.prototype.parseHost = function() { + var host = this.host, port = portPattern.exec(host); + if (port) { + if (port = port[0], port !== ":") + this.port = port.substr(1); + host = host.substr(0, host.length - port.length); } - return p = p || t.host && e.length, p && !U && e.unshift(""), e.length ? t.pathname = e.join("/") : (t.pathname = null, t.path = null), (!I(t.pathname) || !I(t.search)) && (t.path = (t.pathname ? t.pathname : "") + (t.search ? t.search : "")), t.auth = s.auth || t.auth, t.slashes = t.slashes || s.slashes, t.href = t.format(), t; -}, m.prototype.parseHost = function() { - var s = this.host, r = st.exec(s); - r && (r = r[0], r !== ":" && (this.port = r.substr(1)), s = s.substr(0, s.length - r.length)), s && (this.hostname = s); + if (host) + this.hostname = host; }; -var Y, k; -S && (Y = S("pathToFileURL"), k = S("fileURLToPath")); -var ut = { - parse: A, - resolve: W, - resolveObject: X, - format: V, - Url: m, - pathToFileURL: Y, - fileURLToPath: k, - URL: F, - URLSearchParams: M +var lazy = globalThis[Symbol.for("Bun.lazy")], pathToFileURL = lazy("pathToFileURL"), fileURLToPath = lazy("fileURLToPath"), defaultObject = { + parse: urlParse, + resolve: urlResolve, + resolveObject: urlResolveObject, + format: urlFormat, + Url, + URLSearchParams, + URL, + pathToFileURL, + fileURLToPath, + urlToHttpOptions }; export { - X as resolveObject, - W as resolve, - Y as pathToFileURL, - A as parse, - V as format, - k as fileURLToPath, - ut as default, - m as Url, - M as URLSearchParams, - F as URL + urlToHttpOptions, + urlResolveObject as resolveObject, + urlResolve as resolve, + pathToFileURL, + urlParse as parse, + urlFormat as format, + fileURLToPath, + defaultObject as default, + Url, + URLSearchParams, + URL }; diff --git a/src/js/out/modules/node/util.js b/src/js/out/modules/node/util.js index bb439a3fa..b0881147c 100644 --- a/src/js/out/modules/node/util.js +++ b/src/js/out/modules/node/util.js @@ -1,10 +1,14 @@ +import * as types from "node:util/types"; +import {default as default2} from "node:util/types"; var isBufferInterface = function({ copy, fill, readUint8 }) { return typeof copy === "function" && typeof fill === "function" && typeof readUint8 === "function"; }; function isBuffer(value) { return Buffer.isBuffer(value) || typeof value === "object" && isBufferInterface(value || {}); } -var format = function(f) { +var isFunction = function(value) { + return typeof value === "function"; +}, format = function(f) { if (!isString(f)) { var objects = []; for (var i = 0;i < arguments.length; i++) @@ -37,33 +41,30 @@ var format = function(f) { else str += " " + inspect(x); return str; -}, deprecate = function(fn, msg) { - if (typeof process !== "undefined" && process.noDeprecation === !0) +}, deprecate = function(fn, msg, code) { + if (process.noDeprecation === !0) return fn; - if (typeof process === "undefined") - return function() { - return exports.deprecate(fn, msg).apply(this, arguments); - }; - var warned = !1; - function deprecated() { - if (!warned) { - if (process.throwDeprecation) - throw new Error(msg); - else if (process.traceDeprecation) - console.trace(msg); - else - console.error(msg); - warned = !0; - } - return fn.apply(this, arguments); - } - return deprecated; + var realFn = fn, wrapper = () => { + return fnToWrap.apply(this, arguments); + }, deprecater = () => { + if (process.throwDeprecation) { + var err = new Error(msg); + if (code) + err.code = code; + throw err; + } else if (process.traceDeprecation) + console.trace(msg); + else + console.error(msg); + return fnToWrap = realFn, realFn.apply(this, arguments); + }, fnToWrap = deprecater; + return wrapper; }, debuglog = function(set) { if (set = set.toUpperCase(), !debugs[set]) if (debugEnvRegex.test(set)) { var pid = process.pid; debugs[set] = function() { - var msg = exports.format.apply(exports, arguments); + var msg = format.apply(cjs_exports, arguments); console.error("%s %d: %s", set, pid, msg); }; } else @@ -82,7 +83,7 @@ var format = function(f) { if (isBoolean(opts)) ctx.showHidden = opts; else if (opts) - exports._extend(ctx, opts); + _extend(ctx, opts); if (isUndefined(ctx.showHidden)) ctx.showHidden = !1; if (isUndefined(ctx.depth)) @@ -108,7 +109,7 @@ var format = function(f) { hash[val] = !0; }), hash; }, formatValue = function(ctx, value, recurseTimes) { - if (ctx.customInspect && value && isFunction(value.inspect) && value.inspect !== exports.inspect && !(value.constructor && value.constructor.prototype === value)) { + if (ctx.customInspect && value && isFunction(value.inspect) && value.inspect !== inspect && !(value.constructor && value.constructor.prototype === value)) { var ret = value.inspect(recurseTimes, ctx); if (!isString(ret)) ret = formatValue(ctx, ret, recurseTimes); @@ -127,9 +128,9 @@ var format = function(f) { var name = value.name ? ": " + value.name : ""; return ctx.stylize("[Function" + name + "]", "special"); } - if (isRegExp(value)) + if (isRegExp2(value)) return ctx.stylize(RegExp.prototype.toString.call(value), "regexp"); - if (isDate(value)) + if (isDate2(value)) return ctx.stylize(Date.prototype.toString.call(value), "date"); if (isError(value)) return formatError(value); @@ -141,16 +142,16 @@ var format = function(f) { var n = value.name ? ": " + value.name : ""; base = " [Function" + n + "]"; } - if (isRegExp(value)) + if (isRegExp2(value)) base = " " + RegExp.prototype.toString.call(value); - if (isDate(value)) + if (isDate2(value)) base = " " + Date.prototype.toUTCString.call(value); if (isError(value)) base = " " + formatError(value); if (keys.length === 0 && (!array || value.length == 0)) return braces[0] + base + braces[1]; if (recurseTimes < 0) - if (isRegExp(value)) + if (isRegExp2(value)) return ctx.stylize(RegExp.prototype.toString.call(value), "regexp"); else return ctx.stylize("[Object]", "special"); @@ -255,8 +256,6 @@ var format = function(f) { return arg === void 0; }, isObject = function(arg) { return typeof arg === "object" && arg !== null; -}, isFunction = function(arg) { - return typeof arg === "function"; }, isPrimitive = function(arg) { return arg === null || typeof arg === "boolean" || typeof arg === "number" || typeof arg === "string" || typeof arg === "symbol" || typeof arg === "undefined"; }, pad = function(n) { @@ -289,7 +288,7 @@ var format = function(f) { }); } return Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original)), Object.defineProperties(callbackified, getOwnPropertyDescriptors(original)), callbackified; -}, __getOwnPropNames = Object.getOwnPropertyNames, __commonJS = (cb, mod) => function __require() { +}, cjs_exports = {}, util_default = cjs_exports, __getOwnPropNames = Object.getOwnPropertyNames, __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }, require_inherits_browser = __commonJS({ "node_modules/inherits/inherits_browser.js"(exports, module2) { @@ -304,17 +303,10 @@ var format = function(f) { }); }; } -}), deepEquals = Bun.deepEquals, isDeepStrictEqual = (a, b) => deepEquals(a, b, !0), exports = { - isDeepStrictEqual -}, getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors, formatRegExp = /%[sdj%]/g; -exports.format = format; -exports.deprecate = deprecate; -var debugs = {}, debugEnvRegex = /^$/; +}), deepEquals = Bun.deepEquals, isDeepStrictEqual = (a, b) => deepEquals(a, b, !0), getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors, formatRegExp = /%[sdj%]/g, debugs = {}, debugEnvRegex = /^$/; if (process.env.NODE_DEBUG) debugEnv = process.env.NODE_DEBUG, debugEnv = debugEnv.replace(/[|\\{}()[\]^$+?.]/g, "\\$&").replace(/\*/g, ".*").replace(/,/g, "$|^").toUpperCase(), debugEnvRegex = new RegExp("^" + debugEnv + "$", "i"); var debugEnv; -exports.debuglog = debuglog; -exports.inspect = inspect; inspect.colors = { bold: [1, 22], italic: [3, 23], @@ -340,31 +332,16 @@ inspect.styles = { date: "magenta", regexp: "red" }; -var types = import.meta.require("node:util/types"); -exports.types = types; -exports.isArray = isArray; -exports.isBoolean = isBoolean; -exports.isNull = isNull; -exports.isNullOrUndefined = isNullOrUndefined; -exports.isNumber = isNumber; -exports.isString = isString; -exports.isSymbol = isSymbol; -exports.isUndefined = isUndefined; -var isRegExp = exports.isRegExp = exports.types.isRegExp; -exports.isObject = isObject; -var isDate = exports.isDate = exports.types.isDate, isError = exports.isError = exports.types.isNativeError, isFunction = exports.isFunction = isFunction; -exports.isPrimitive = isPrimitive; -exports.isBuffer = isBuffer; -var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], log = exports.log = function() { - console.log("%s - %s", timestamp(), exports.format.apply(exports, arguments)); -}, inherits = exports.inherits = require_inherits_browser(), _extend = exports._extend = function(origin, add) { +var isRegExp2 = types.isRegExp, isDate2 = types.isDate, isError = types.isNativeError, months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], log = function log2() { + console.log("%s - %s", timestamp(), format.apply(cjs_exports, arguments)); +}, inherits = inherits = require_inherits_browser(), _extend = function(origin, add) { if (!add || !isObject(add)) return origin; var keys = Object.keys(add), i = keys.length; while (i--) origin[keys[i]] = add[keys[i]]; return origin; -}, kCustomPromisifiedSymbol = Symbol.for("util.promisify.custom"), promisify = exports.promisify = function promisify2(original) { +}, kCustomPromisifiedSymbol = Symbol.for("util.promisify.custom"), promisify = function promisify2(original) { if (typeof original !== "function") throw new TypeError('The "original" argument must be of type Function'); if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) { @@ -406,18 +383,47 @@ var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oc }); return Object.defineProperties(fn, getOwnPropertyDescriptors(original)); }; -exports.promisify.custom = kCustomPromisifiedSymbol; -exports.callbackify = callbackify; -var TextDecoder = exports.TextDecoder = globalThis.TextDecoder, TextEncoder = exports.TextEncoder = globalThis.TextEncoder; -exports[Symbol.for("CommonJS")] = 0; -var util_default = exports; +promisify.custom = kCustomPromisifiedSymbol; +var { TextDecoder, TextEncoder } = globalThis; +Object.assign(cjs_exports, { + format, + deprecate, + debuglog, + _extend, + inspect, + types, + isArray, + isBoolean, + isNull, + isNullOrUndefined, + isNumber, + isString, + isSymbol, + isUndefined, + isRegExp: isRegExp2, + isObject, + isDate: isDate2, + isFunction, + isError, + isPrimitive, + isBuffer, + log, + inherits, + promisify, + callbackify, + isDeepStrictEqual, + TextDecoder, + TextEncoder, + [Symbol.for("CommonJS")]: 0 +}); export { + default2 as types, promisify, log, isUndefined, isSymbol, isString, - isRegExp, + isRegExp2 as isRegExp, isPrimitive, isObject, isNumber, @@ -426,7 +432,7 @@ export { isFunction, isError, isDeepStrictEqual, - isDate, + isDate2 as isDate, isBuffer, isBoolean, isArray, diff --git a/src/js/out/modules/node/zlib.js b/src/js/out/modules/node/zlib.js index afc7652e5..ff9ab3f3b 100644 --- a/src/js/out/modules/node/zlib.js +++ b/src/js/out/modules/node/zlib.js @@ -1,8 +1,14 @@ +import {default as assert} from "node:assert"; +import * as AssertModule from "node:assert"; +import * as BufferModule from "node:buffer"; +import * as StreamModule from "node:stream"; +import * as Util from "node:util"; +var Deflate, Inflate, Gzip, Gunzip, DeflateRaw, InflateRaw, Unzip, createDeflate, createInflate, createDeflateRaw, createInflateRaw, createGzip, createGunzip, createUnzip, deflate, deflateSync, gzip, gzipSync, deflateRaw, deflateRawSync, unzip, unzipSync, inflate, inflateSync, gunzip, gunzipSync, inflateRaw, inflateRawSync, constants; var __getOwnPropNames = Object.getOwnPropertyNames; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; -var require2 = (id) => import.meta.require(id), require_zstream = __commonJS({ +var require_zstream = __commonJS({ "node_modules/pako/lib/zlib/zstream.js"(exports, module2) { function ZStream() { this.input = null, this.next_in = 0, this.avail_in = 0, this.total_in = 0, this.output = null, this.next_out = 0, this.avail_out = 0, this.total_out = 0, this.msg = "", this.state = null, this.data_type = 2, this.adler = 0; @@ -816,7 +822,7 @@ var require2 = (id) => import.meta.require(id), require_zstream = __commonJS({ function deflateInit(strm, level) { return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY); } - function deflate(strm, flush) { + function deflate2(strm, flush) { var old_flush, s, beg, val; if (!strm || !strm.state || flush > Z_BLOCK || flush < 0) return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR; @@ -995,7 +1001,7 @@ var require2 = (id) => import.meta.require(id), require_zstream = __commonJS({ } return s.strstart += s.lookahead, s.block_start = s.strstart, s.insert = s.lookahead, s.lookahead = 0, s.match_length = s.prev_length = MIN_MATCH - 1, s.match_available = 0, strm.next_in = next, strm.input = input, strm.avail_in = avail, s.wrap = wrap, Z_OK; } - exports.deflateInit = deflateInit, exports.deflateInit2 = deflateInit2, exports.deflateReset = deflateReset, exports.deflateResetKeep = deflateResetKeep, exports.deflateSetHeader = deflateSetHeader, exports.deflate = deflate, exports.deflateEnd = deflateEnd, exports.deflateSetDictionary = deflateSetDictionary, exports.deflateInfo = "pako deflate (from Nodeca project)"; + exports.deflateInit = deflateInit, exports.deflateInit2 = deflateInit2, exports.deflateReset = deflateReset, exports.deflateResetKeep = deflateResetKeep, exports.deflateSetHeader = deflateSetHeader, exports.deflate = deflate2, exports.deflateEnd = deflateEnd, exports.deflateSetDictionary = deflateSetDictionary, exports.deflateInfo = "pako deflate (from Nodeca project)"; } }), require_inffast = __commonJS({ "node_modules/pako/lib/zlib/inffast.js"(exports, module2) { @@ -1416,7 +1422,7 @@ var require2 = (id) => import.meta.require(id), require_zstream = __commonJS({ } return 0; } - function inflate(strm, flush) { + function inflate2(strm, flush) { var state, input, output, next, put, have, left, hold, bits, _in, _out, copy, from, from_source, here = 0, here_bits, here_op, here_val, last_bits, last_op, last_val, len, ret, hbuf = new utils.Buf8(4), opts, n, order = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]; if (!strm || !strm.state || !strm.output || !strm.input && strm.avail_in !== 0) return Z_STREAM_ERROR; @@ -1948,7 +1954,7 @@ var require2 = (id) => import.meta.require(id), require_zstream = __commonJS({ return state.mode = MEM, Z_MEM_ERROR; return state.havedict = 1, Z_OK; } - exports.inflateReset = inflateReset, exports.inflateReset2 = inflateReset2, exports.inflateResetKeep = inflateResetKeep, exports.inflateInit = inflateInit, exports.inflateInit2 = inflateInit2, exports.inflate = inflate, exports.inflateEnd = inflateEnd, exports.inflateGetHeader = inflateGetHeader, exports.inflateSetDictionary = inflateSetDictionary, exports.inflateInfo = "pako inflate (from Nodeca project)"; + exports.inflateReset = inflateReset, exports.inflateReset2 = inflateReset2, exports.inflateResetKeep = inflateResetKeep, exports.inflateInit = inflateInit, exports.inflateInit2 = inflateInit2, exports.inflate = inflate2, exports.inflateEnd = inflateEnd, exports.inflateGetHeader = inflateGetHeader, exports.inflateSetDictionary = inflateSetDictionary, exports.inflateInfo = "pako inflate (from Nodeca project)"; } }), require_constants = __commonJS({ "node_modules/pako/lib/zlib/constants.js"(exports, module2) { @@ -1984,9 +1990,9 @@ var require2 = (id) => import.meta.require(id), require_zstream = __commonJS({ } }), require_binding = __commonJS({ "node_modules/browserify-zlib/lib/binding.js"(exports) { - var assert = require2("assert"), Zstream = require_zstream(), zlib_deflate = require_deflate(), zlib_inflate = require_inflate(), constants = require_constants(); - for (key in constants) - exports[key] = constants[key]; + var Zstream = require_zstream(), zlib_deflate = require_deflate(), zlib_inflate = require_inflate(), constants2 = require_constants(); + for (key in constants2) + exports[key] = constants2[key]; var key; exports.NONE = 0, exports.DEFLATE = 1, exports.INFLATE = 2, exports.GZIP = 3, exports.GUNZIP = 4, exports.DEFLATERAW = 5, exports.INFLATERAW = 6, exports.UNZIP = 7; var GZIP_HEADER_ID1 = 31, GZIP_HEADER_ID2 = 139; @@ -2169,7 +2175,7 @@ var require2 = (id) => import.meta.require(id), require_zstream = __commonJS({ } }), require_lib = __commonJS({ "node_modules/browserify-zlib/lib/index.js"(exports) { - var Buffer2 = require2("buffer").Buffer, Transform = require2("stream").Transform, binding = require_binding(), util = require2("util"), assert = require2("assert").ok, kMaxLength = require2("buffer").kMaxLength, kRangeErrorMessage = "Cannot create final Buffer. It would be larger than 0x" + kMaxLength.toString(16) + " bytes"; + var Buffer22 = BufferModule.Buffer, Transform2 = StreamModule.Transform, binding = require_binding(), util = Util, assert2 = AssertModule.ok, kMaxLength2 = BufferModule.kMaxLength, kRangeErrorMessage = "Cannot create final Buffer. It would be larger than 0x" + kMaxLength2.toString(16) + " bytes"; binding.Z_MIN_WINDOWBITS = 8, binding.Z_MAX_WINDOWBITS = 15, binding.Z_DEFAULT_WINDOWBITS = 15, binding.Z_MIN_CHUNK = 64, binding.Z_MAX_CHUNK = Infinity, binding.Z_DEFAULT_CHUNK = 16384, binding.Z_MIN_MEMLEVEL = 1, binding.Z_MAX_MEMLEVEL = 9, binding.Z_DEFAULT_MEMLEVEL = 8, binding.Z_MIN_LEVEL = -1, binding.Z_MAX_LEVEL = 9, binding.Z_DEFAULT_LEVEL = binding.Z_DEFAULT_COMPRESSION; var bkeys = Object.keys(binding); for (bk = 0;bk < bkeys.length; bk++) @@ -2197,62 +2203,62 @@ var require2 = (id) => import.meta.require(id), require_zstream = __commonJS({ enumerable: !0, value: Object.freeze(codes), writable: !1 - }), exports.constants = require_constants(), exports.Deflate = Deflate, exports.Inflate = Inflate, exports.Gzip = Gzip, exports.Gunzip = Gunzip, exports.DeflateRaw = DeflateRaw, exports.InflateRaw = InflateRaw, exports.Unzip = Unzip, exports.createDeflate = function(o) { - return new Deflate(o); + }), exports.constants = require_constants(), exports.Deflate = Deflate2, exports.Inflate = Inflate2, exports.Gzip = Gzip2, exports.Gunzip = Gunzip2, exports.DeflateRaw = DeflateRaw2, exports.InflateRaw = InflateRaw2, exports.Unzip = Unzip2, exports.createDeflate = function(o) { + return new Deflate2(o); }, exports.createInflate = function(o) { - return new Inflate(o); + return new Inflate2(o); }, exports.createDeflateRaw = function(o) { - return new DeflateRaw(o); + return new DeflateRaw2(o); }, exports.createInflateRaw = function(o) { - return new InflateRaw(o); + return new InflateRaw2(o); }, exports.createGzip = function(o) { - return new Gzip(o); + return new Gzip2(o); }, exports.createGunzip = function(o) { - return new Gunzip(o); + return new Gunzip2(o); }, exports.createUnzip = function(o) { - return new Unzip(o); + return new Unzip2(o); }, exports.deflate = function(buffer, opts, callback) { if (typeof opts === "function") callback = opts, opts = {}; - return zlibBuffer(new Deflate(opts), buffer, callback); + return zlibBuffer(new Deflate2(opts), buffer, callback); }, exports.deflateSync = function(buffer, opts) { - return zlibBufferSync(new Deflate(opts), buffer); + return zlibBufferSync(new Deflate2(opts), buffer); }, exports.gzip = function(buffer, opts, callback) { if (typeof opts === "function") callback = opts, opts = {}; - return zlibBuffer(new Gzip(opts), buffer, callback); + return zlibBuffer(new Gzip2(opts), buffer, callback); }, exports.gzipSync = function(buffer, opts) { - return zlibBufferSync(new Gzip(opts), buffer); + return zlibBufferSync(new Gzip2(opts), buffer); }, exports.deflateRaw = function(buffer, opts, callback) { if (typeof opts === "function") callback = opts, opts = {}; - return zlibBuffer(new DeflateRaw(opts), buffer, callback); + return zlibBuffer(new DeflateRaw2(opts), buffer, callback); }, exports.deflateRawSync = function(buffer, opts) { - return zlibBufferSync(new DeflateRaw(opts), buffer); + return zlibBufferSync(new DeflateRaw2(opts), buffer); }, exports.unzip = function(buffer, opts, callback) { if (typeof opts === "function") callback = opts, opts = {}; - return zlibBuffer(new Unzip(opts), buffer, callback); + return zlibBuffer(new Unzip2(opts), buffer, callback); }, exports.unzipSync = function(buffer, opts) { - return zlibBufferSync(new Unzip(opts), buffer); + return zlibBufferSync(new Unzip2(opts), buffer); }, exports.inflate = function(buffer, opts, callback) { if (typeof opts === "function") callback = opts, opts = {}; - return zlibBuffer(new Inflate(opts), buffer, callback); + return zlibBuffer(new Inflate2(opts), buffer, callback); }, exports.inflateSync = function(buffer, opts) { - return zlibBufferSync(new Inflate(opts), buffer); + return zlibBufferSync(new Inflate2(opts), buffer); }, exports.gunzip = function(buffer, opts, callback) { if (typeof opts === "function") callback = opts, opts = {}; - return zlibBuffer(new Gunzip(opts), buffer, callback); + return zlibBuffer(new Gunzip2(opts), buffer, callback); }, exports.gunzipSync = function(buffer, opts) { - return zlibBufferSync(new Gunzip(opts), buffer); + return zlibBufferSync(new Gunzip2(opts), buffer); }, exports.inflateRaw = function(buffer, opts, callback) { if (typeof opts === "function") callback = opts, opts = {}; - return zlibBuffer(new InflateRaw(opts), buffer, callback); + return zlibBuffer(new InflateRaw2(opts), buffer, callback); }, exports.inflateRawSync = function(buffer, opts) { - return zlibBufferSync(new InflateRaw(opts), buffer); + return zlibBufferSync(new InflateRaw2(opts), buffer); }; function zlibBuffer(engine, buffer, callback) { var buffers = [], nread = 0; @@ -2268,54 +2274,54 @@ var require2 = (id) => import.meta.require(id), require_zstream = __commonJS({ } function onEnd() { var buf, err = null; - if (nread >= kMaxLength) + if (nread >= kMaxLength2) err = new RangeError(kRangeErrorMessage); else - buf = Buffer2.concat(buffers, nread); + buf = Buffer22.concat(buffers, nread); buffers = [], engine.close(), callback(err, buf); } } function zlibBufferSync(engine, buffer) { if (typeof buffer === "string") - buffer = Buffer2.from(buffer); - if (!Buffer2.isBuffer(buffer)) + buffer = Buffer22.from(buffer); + if (!Buffer22.isBuffer(buffer)) throw new TypeError("Not a string or buffer"); var flushFlag = engine._finishFlushFlag; return engine._processChunk(buffer, flushFlag); } - function Deflate(opts) { - if (!(this instanceof Deflate)) - return new Deflate(opts); + function Deflate2(opts) { + if (!(this instanceof Deflate2)) + return new Deflate2(opts); Zlib.call(this, opts, binding.DEFLATE); } - function Inflate(opts) { - if (!(this instanceof Inflate)) - return new Inflate(opts); + function Inflate2(opts) { + if (!(this instanceof Inflate2)) + return new Inflate2(opts); Zlib.call(this, opts, binding.INFLATE); } - function Gzip(opts) { - if (!(this instanceof Gzip)) - return new Gzip(opts); + function Gzip2(opts) { + if (!(this instanceof Gzip2)) + return new Gzip2(opts); Zlib.call(this, opts, binding.GZIP); } - function Gunzip(opts) { - if (!(this instanceof Gunzip)) - return new Gunzip(opts); + function Gunzip2(opts) { + if (!(this instanceof Gunzip2)) + return new Gunzip2(opts); Zlib.call(this, opts, binding.GUNZIP); } - function DeflateRaw(opts) { - if (!(this instanceof DeflateRaw)) - return new DeflateRaw(opts); + function DeflateRaw2(opts) { + if (!(this instanceof DeflateRaw2)) + return new DeflateRaw2(opts); Zlib.call(this, opts, binding.DEFLATERAW); } - function InflateRaw(opts) { - if (!(this instanceof InflateRaw)) - return new InflateRaw(opts); + function InflateRaw2(opts) { + if (!(this instanceof InflateRaw2)) + return new InflateRaw2(opts); Zlib.call(this, opts, binding.INFLATERAW); } - function Unzip(opts) { - if (!(this instanceof Unzip)) - return new Unzip(opts); + function Unzip2(opts) { + if (!(this instanceof Unzip2)) + return new Unzip2(opts); Zlib.call(this, opts, binding.UNZIP); } function isValidFlushFlag(flag) { @@ -2323,7 +2329,7 @@ var require2 = (id) => import.meta.require(id), require_zstream = __commonJS({ } function Zlib(opts, mode) { var _this = this; - if (this._opts = opts = opts || {}, this._chunkSize = opts.chunkSize || exports.Z_DEFAULT_CHUNK, Transform.call(this, opts), opts.flush && !isValidFlushFlag(opts.flush)) + if (this._opts = opts = opts || {}, this._chunkSize = opts.chunkSize || exports.Z_DEFAULT_CHUNK, Transform2.call(this, opts), opts.flush && !isValidFlushFlag(opts.flush)) throw new Error("Invalid flush flag: " + opts.flush); if (opts.finishFlush && !isValidFlushFlag(opts.finishFlush)) throw new Error("Invalid flush flag: " + opts.finishFlush); @@ -2348,7 +2354,7 @@ var require2 = (id) => import.meta.require(id), require_zstream = __commonJS({ throw new Error("Invalid strategy: " + opts.strategy); } if (opts.dictionary) { - if (!Buffer2.isBuffer(opts.dictionary)) + if (!Buffer22.isBuffer(opts.dictionary)) throw new Error("Invalid dictionary: it should be a Buffer instance"); } this._handle = new binding.Zlib(mode); @@ -2364,7 +2370,7 @@ var require2 = (id) => import.meta.require(id), require_zstream = __commonJS({ var strategy = exports.Z_DEFAULT_STRATEGY; if (typeof opts.strategy === "number") strategy = opts.strategy; - this._handle.init(opts.windowBits || exports.Z_DEFAULT_WINDOWBITS, level, opts.memLevel || exports.Z_DEFAULT_MEMLEVEL, strategy, opts.dictionary), this._buffer = Buffer2.allocUnsafe(this._chunkSize), this._offset = 0, this._level = level, this._strategy = strategy, this.once("end", this.close), Object.defineProperty(this, "_closed", { + this._handle.init(opts.windowBits || exports.Z_DEFAULT_WINDOWBITS, level, opts.memLevel || exports.Z_DEFAULT_MEMLEVEL, strategy, opts.dictionary), this._buffer = Buffer22.allocUnsafe(this._chunkSize), this._offset = 0, this._level = level, this._strategy = strategy, this.once("end", this.close), Object.defineProperty(this, "_closed", { get: function() { return !_this._handle; }, @@ -2372,7 +2378,7 @@ var require2 = (id) => import.meta.require(id), require_zstream = __commonJS({ enumerable: !0 }); } - util.inherits(Zlib, Transform), Zlib.prototype.params = function(level, strategy, callback) { + util.inherits(Zlib, Transform2), Zlib.prototype.params = function(level, strategy, callback) { if (level < exports.Z_MIN_LEVEL || level > exports.Z_MAX_LEVEL) throw new RangeError("Invalid compression level: " + level); if (strategy != exports.Z_FILTERED && strategy != exports.Z_HUFFMAN_ONLY && strategy != exports.Z_RLE && strategy != exports.Z_FIXED && strategy != exports.Z_DEFAULT_STRATEGY) @@ -2380,7 +2386,7 @@ var require2 = (id) => import.meta.require(id), require_zstream = __commonJS({ if (this._level !== level || this._strategy !== strategy) { var self = this; this.flush(binding.Z_SYNC_FLUSH, function() { - if (assert(self._handle, "zlib binding closed"), self._handle.params(level, strategy), !self._hadError) { + if (assert2(self._handle, "zlib binding closed"), self._handle.params(level, strategy), !self._hadError) { if (self._level = level, self._strategy = strategy, callback) callback(); } @@ -2388,9 +2394,9 @@ var require2 = (id) => import.meta.require(id), require_zstream = __commonJS({ } else process.nextTick(callback); }, Zlib.prototype.reset = function() { - return assert(this._handle, "zlib binding closed"), this._handle.reset(); + return assert2(this._handle, "zlib binding closed"), this._handle.reset(); }, Zlib.prototype._flush = function(callback) { - this._transform(Buffer2.alloc(0), "", callback); + this._transform(Buffer22.alloc(0), "", callback); }, Zlib.prototype.flush = function(kind, callback) { var _this2 = this, ws = this._writableState; if (typeof kind === "function" || kind === void 0 && !callback) @@ -2407,7 +2413,7 @@ var require2 = (id) => import.meta.require(id), require_zstream = __commonJS({ return _this2.flush(kind, callback); }); } else - this._flushFlag = kind, this.write(Buffer2.alloc(0), "", callback); + this._flushFlag = kind, this.write(Buffer22.alloc(0), "", callback); }, Zlib.prototype.close = function(callback) { _close(this, callback), process.nextTick(emitCloseNT, this); }; @@ -2423,7 +2429,7 @@ var require2 = (id) => import.meta.require(id), require_zstream = __commonJS({ } Zlib.prototype._transform = function(chunk, encoding, cb) { var flushFlag, ws = this._writableState, ending = ws.ending || ws.ended, last = ending && (!chunk || ws.length === chunk.length); - if (chunk !== null && !Buffer2.isBuffer(chunk)) + if (chunk !== null && !Buffer22.isBuffer(chunk)) return cb(new Error("invalid input")); if (!this._handle) return cb(new Error("zlib binding closed")); @@ -2438,18 +2444,18 @@ var require2 = (id) => import.meta.require(id), require_zstream = __commonJS({ var buffers = [], nread = 0, error; this.on("error", function(er) { error = er; - }), assert(this._handle, "zlib binding closed"); + }), assert2(this._handle, "zlib binding closed"); do var res = this._handle.writeSync(flushFlag, chunk, inOff, availInBefore, this._buffer, this._offset, availOutBefore); while (!this._hadError && callback(res[0], res[1])); if (this._hadError) throw error; - if (nread >= kMaxLength) + if (nread >= kMaxLength2) throw _close(this), new RangeError(kRangeErrorMessage); - var buf = Buffer2.concat(buffers, nread); + var buf = Buffer22.concat(buffers, nread); return _close(this), buf; } - assert(this._handle, "zlib binding closed"); + assert2(this._handle, "zlib binding closed"); var req = this._handle.write(flushFlag, chunk, inOff, availInBefore, this._buffer, this._offset, availOutBefore); req.buffer = chunk, req.callback = callback; function callback(availInAfter, availOutAfter) { @@ -2458,7 +2464,7 @@ var require2 = (id) => import.meta.require(id), require_zstream = __commonJS({ if (self._hadError) return; var have = availOutBefore - availOutAfter; - if (assert(have >= 0, "have should not go down"), have > 0) { + if (assert2(have >= 0, "have should not go down"), have > 0) { var out = self._buffer.slice(self._offset, self._offset + have); if (self._offset += have, async) self.push(out); @@ -2466,7 +2472,7 @@ var require2 = (id) => import.meta.require(id), require_zstream = __commonJS({ buffers.push(out), nread += out.length; } if (availOutAfter === 0 || self._offset >= self._chunkSize) - availOutBefore = self._chunkSize, self._offset = 0, self._buffer = Buffer2.allocUnsafe(self._chunkSize); + availOutBefore = self._chunkSize, self._offset = 0, self._buffer = Buffer22.allocUnsafe(self._chunkSize); if (availOutAfter === 0) { if (inOff += availInBefore - availInAfter, availInBefore = availInAfter, !async) return !0; @@ -2478,41 +2484,40 @@ var require2 = (id) => import.meta.require(id), require_zstream = __commonJS({ return !1; cb(); } - }, util.inherits(Deflate, Zlib), util.inherits(Inflate, Zlib), util.inherits(Gzip, Zlib), util.inherits(Gunzip, Zlib), util.inherits(DeflateRaw, Zlib), util.inherits(InflateRaw, Zlib), util.inherits(Unzip, Zlib); + }, util.inherits(Deflate2, Zlib), util.inherits(Inflate2, Zlib), util.inherits(Gzip2, Zlib), util.inherits(Gunzip2, Zlib), util.inherits(DeflateRaw2, Zlib), util.inherits(InflateRaw2, Zlib), util.inherits(Unzip2, Zlib); } }), zlib_exports = require_lib(); zlib_exports[Symbol.for("CommonJS")] = 0; -var zlib_default = zlib_exports, { - Deflate, - Inflate, - Gzip, - Gunzip, - DeflateRaw, - InflateRaw, - Unzip, - createDeflate, - createInflate, - createDeflateRaw, - createInflateRaw, - createGzip, - createGunzip, - createUnzip, - deflate, - deflateSync, - gzip, - gzipSync, - deflateRaw, - deflateRawSync, - unzip, - unzipSync, - inflate, - inflateSync, - gunzip, - gunzipSync, - inflateRaw, - inflateRawSync, - constants -} = zlib_exports; +var zlib_default = zlib_exports; +Deflate = zlib_exports.Deflate; +Inflate = zlib_exports.Inflate; +Gzip = zlib_exports.Gzip; +Gunzip = zlib_exports.Gunzip; +DeflateRaw = zlib_exports.DeflateRaw; +InflateRaw = zlib_exports.InflateRaw; +Unzip = zlib_exports.Unzip; +createDeflate = zlib_exports.createDeflate; +createInflate = zlib_exports.createInflate; +createDeflateRaw = zlib_exports.createDeflateRaw; +createInflateRaw = zlib_exports.createInflateRaw; +createGzip = zlib_exports.createGzip; +createGunzip = zlib_exports.createGunzip; +createUnzip = zlib_exports.createUnzip; +deflate = zlib_exports.deflate; +deflateSync = zlib_exports.deflateSync; +gzip = zlib_exports.gzip; +gzipSync = zlib_exports.gzipSync; +deflateRaw = zlib_exports.deflateRaw; +deflateRawSync = zlib_exports.deflateRawSync; +unzip = zlib_exports.unzip; +unzipSync = zlib_exports.unzipSync; +inflate = zlib_exports.inflate; +inflateSync = zlib_exports.inflateSync; +gunzip = zlib_exports.gunzip; +gunzipSync = zlib_exports.gunzipSync; +inflateRaw = zlib_exports.inflateRaw; +inflateRawSync = zlib_exports.inflateRawSync; +constants = zlib_exports.constants; export { unzipSync, unzip, diff --git a/src/js/out/modules/thirdparty/depd.js b/src/js/out/modules/thirdparty/depd.js index 09f125e7c..6118e8cf1 100644 --- a/src/js/out/modules/thirdparty/depd.js +++ b/src/js/out/modules/thirdparty/depd.js @@ -1,51 +1,23 @@ -var depd = function(...args) { - return args.length ? bundle_default(...args) : bundle_default; -}; -/*! - * depd - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ -var { create: __create, defineProperty: __defProp, getOwnPropertyDescriptor: __getOwnPropDesc, getOwnPropertyNames: __getOwnPropNames, getPrototypeOf: __getProtoOf } = Object, __hasOwnProp = Object.prototype.hasOwnProperty, __commonJS = (cb, mod) => function __require() { - return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; -}, __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { - get: () => from[key], - enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable - }); - } - return to; -}, __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target, mod)), require_browser = __commonJS({ - "node_modules/depd/lib/browser/index.js"(exports, module) { - module.exports = depd2; - function depd2(namespace) { - if (!namespace) - throw new TypeError("argument namespace is required"); - function deprecate(message) { - } - return deprecate._file = void 0, deprecate._ignored = !0, deprecate._namespace = namespace, deprecate._traced = !1, deprecate._warned = Object.create(null), deprecate.function = wrapfunction, deprecate.property = wrapproperty, deprecate; - } - function wrapfunction(fn, message) { - if (typeof fn !== "function") - throw new TypeError("argument fn must be a function"); - return fn; - } - function wrapproperty(obj, prop, message) { - if (!obj || typeof obj !== "object" && typeof obj !== "function") - throw new TypeError("argument obj must be object"); - var descriptor = Object.getOwnPropertyDescriptor(obj, prop); - if (!descriptor) - throw new TypeError("must call property on owner object"); - if (!descriptor.configurable) - throw new TypeError("property must be configurable"); - } +var depd2 = function(namespace) { + if (!namespace) + throw new TypeError("argument namespace is required"); + function deprecate(message) { } -}), import_depd = __toESM(require_browser()), bundle_default = import_depd.default; -depd[Symbol.for("CommonJS")] = !0; -var depd_default = depd; + return deprecate._file = void 0, deprecate._ignored = !0, deprecate._namespace = namespace, deprecate._traced = !1, deprecate._warned = Object.create(null), deprecate.function = wrapfunction, deprecate.property = wrapproperty, deprecate; +}, wrapfunction = function(fn, message) { + if (typeof fn !== "function") + throw new TypeError("argument fn must be a function"); + return fn; +}, wrapproperty = function(obj, prop, message) { + if (!obj || typeof obj !== "object" && typeof obj !== "function") + throw new TypeError("argument obj must be object"); + var descriptor = Object.getOwnPropertyDescriptor(obj, prop); + if (!descriptor) + throw new TypeError("must call property on owner object"); + if (!descriptor.configurable) + throw new TypeError("property must be configurable"); +}, depd_default = depd2; +depd2[Symbol.for("CommonJS")] = 0; export { depd_default as default }; diff --git a/src/js/out/modules/thirdparty/undici.js b/src/js/out/modules/thirdparty/undici.js index 01f19a64e..20dec6158 100644 --- a/src/js/out/modules/thirdparty/undici.js +++ b/src/js/out/modules/thirdparty/undici.js @@ -1,3 +1,6 @@ +import {EventEmitter} from "node:events"; +import NodeStreamModule from "node:stream"; +import {Readable} from "node:stream"; var notImplemented = function() { throw new Error("Not implemented in bun"); }; @@ -66,28 +69,21 @@ async function request(url, options = { const body = resp.body ? new BodyReadable(resp) : null; return { statusCode, headers: headers.toJSON(), body, trailers, opaque: kEmptyObject, context: kEmptyObject }; } -function stream() { +var stream = function() { throw new Error("Not implemented in bun"); -} -function pipeline() { +}, pipeline = function() { throw new Error("Not implemented in bun"); -} -function connect() { +}, connect = function() { throw new Error("Not implemented in bun"); -} -function upgrade() { +}, upgrade = function() { throw new Error("Not implemented in bun"); -} -function mockErrors() { +}, mockErrors = function() { throw new Error("Not implemented in bun"); -} +}; function Undici() { throw new Error("Not implemented in bun"); } -var { EventEmitter } = import.meta.require("events"), { - Readable, - [Symbol.for("::bunternal::")]: { _ReadableFromWeb } -} = import.meta.require("node:stream"), ObjectCreate = Object.create, kEmptyObject = ObjectCreate(null), fetch = Bun.fetch, Response = globalThis.Response, Headers = globalThis.Headers, Request = globalThis.Request, URLSearchParams = globalThis.URLSearchParams, URL = globalThis.URL; +var { Object } = globalThis[Symbol.for("Bun.lazy")]("primordials"), { _ReadableFromWebForUndici: ReadableFromWeb } = NodeStreamModule[Symbol.for("::bunternal::")], ObjectCreate = Object.create, kEmptyObject = ObjectCreate(null), fetch = Bun.fetch, Response = globalThis.Response, Headers = globalThis.Headers, Request = globalThis.Request, URLSearchParams = globalThis.URLSearchParams, URL = globalThis.URL; class File extends Blob { } @@ -99,7 +95,7 @@ class FileReader extends EventTarget { } var FormData = globalThis.FormData; -class BodyReadable extends _ReadableFromWeb { +class BodyReadable extends ReadableFromWeb { #response; #bodyUsed; constructor(response, options = {}) { @@ -220,11 +216,16 @@ export { URL, Response, Request, + Pool, MockPool, MockClient, MockAgent, Headers, FormData, FileReader, - File + File, + Dispatcher, + Client, + BalancedPool, + Agent }; diff --git a/src/js/out/modules/thirdparty/ws.js b/src/js/out/modules/thirdparty/ws.js index dd616d86a..7a48da4c1 100644 --- a/src/js/out/modules/thirdparty/ws.js +++ b/src/js/out/modules/thirdparty/ws.js @@ -1,5 +1,5 @@ -var EventEmitter = import.meta.require("node:events"); -var http = import.meta.require("node:http"); +import {EventEmitter} from "node:events"; +import http from "node:http"; var emitWarning = function(type, message) { if (emittedWarnings.has(type)) return; diff --git a/src/js/thirdparty/depd.js b/src/js/thirdparty/depd.js index f69f4312e..2da8901bc 100644 --- a/src/js/thirdparty/depd.js +++ b/src/js/thirdparty/depd.js @@ -1,89 +1,35 @@ -// Hardcoded module "depd" -// TODO: remove this module from being bundled into bun -// This is a temporary workaround for a CommonJS <> ESM interop issue. - -/*! - * depd - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __commonJS = (cb, mod) => - function __require() { - return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; - }; -var __copyProps = (to, from, except, desc) => { - if ((from && typeof from === "object") || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { - get: () => from[key], - enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable, - }); +function depd2(namespace) { + if (!namespace) { + throw new TypeError("argument namespace is required"); + } + function deprecate(message) {} + deprecate._file = void 0; + deprecate._ignored = true; + deprecate._namespace = namespace; + deprecate._traced = false; + deprecate._warned = /* @__PURE__ */ Object.create(null); + deprecate.function = wrapfunction; + deprecate.property = wrapproperty; + return deprecate; +} +function wrapfunction(fn, message) { + if (typeof fn !== "function") { + throw new TypeError("argument fn must be a function"); + } + return fn; +} +function wrapproperty(obj, prop, message) { + if (!obj || (typeof obj !== "object" && typeof obj !== "function")) { + throw new TypeError("argument obj must be object"); + } + var descriptor = Object.getOwnPropertyDescriptor(obj, prop); + if (!descriptor) { + throw new TypeError("must call property on owner object"); + } + if (!descriptor.configurable) { + throw new TypeError("property must be configurable"); } - return to; -}; -var __toESM = (mod, isNodeMode, target) => ( - (target = mod != null ? __create(__getProtoOf(mod)) : {}), - __copyProps( - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod, - ) -); - -// node_modules/depd/lib/browser/index.js -var require_browser = __commonJS({ - "node_modules/depd/lib/browser/index.js"(exports, module) { - "use strict"; - module.exports = depd2; - function depd2(namespace) { - if (!namespace) { - throw new TypeError("argument namespace is required"); - } - function deprecate(message) {} - deprecate._file = void 0; - deprecate._ignored = true; - deprecate._namespace = namespace; - deprecate._traced = false; - deprecate._warned = /* @__PURE__ */ Object.create(null); - deprecate.function = wrapfunction; - deprecate.property = wrapproperty; - return deprecate; - } - function wrapfunction(fn, message) { - if (typeof fn !== "function") { - throw new TypeError("argument fn must be a function"); - } - return fn; - } - function wrapproperty(obj, prop, message) { - if (!obj || (typeof obj !== "object" && typeof obj !== "function")) { - throw new TypeError("argument obj must be object"); - } - var descriptor = Object.getOwnPropertyDescriptor(obj, prop); - if (!descriptor) { - throw new TypeError("must call property on owner object"); - } - if (!descriptor.configurable) { - throw new TypeError("property must be configurable"); - } - } - }, -}); - -// bundle.js -var import_depd = __toESM(require_browser()); -var bundle_default = import_depd.default; - -function depd(...args) { - return args.length ? bundle_default(...args) : bundle_default; } -depd[Symbol.for("CommonJS")] = true; // TODO: this requires hacky default export -export default depd; +export default depd2; +depd2[Symbol.for("CommonJS")] = 0; diff --git a/src/js/thirdparty/undici.js b/src/js/thirdparty/undici.js index cf3968b58..579e33d1d 100644 --- a/src/js/thirdparty/undici.js +++ b/src/js/thirdparty/undici.js @@ -1,27 +1,27 @@ -// const { Object } = import.meta.primordials; -const { EventEmitter } = import.meta.require("events"); -const { - Readable, - [Symbol.for("::bunternal::")]: { _ReadableFromWeb }, -} = import.meta.require("node:stream"); +const { Object } = globalThis[Symbol.for("Bun.lazy")]("primordials"); +import { EventEmitter } from "events"; +import NodeStreamModule from "node:stream"; +import { Readable } from "node:stream"; + +const { _ReadableFromWebForUndici: ReadableFromWeb } = NodeStreamModule[Symbol.for("::bunternal::")]; const ObjectCreate = Object.create; const kEmptyObject = ObjectCreate(null); -export var fetch = Bun.fetch; -export var Response = globalThis.Response; -export var Headers = globalThis.Headers; -export var Request = globalThis.Request; -export var URLSearchParams = globalThis.URLSearchParams; -export var URL = globalThis.URL; -export class File extends Blob {} -export class FileReader extends EventTarget { +var fetch = Bun.fetch; +var Response = globalThis.Response; +var Headers = globalThis.Headers; +var Request = globalThis.Request; +var URLSearchParams = globalThis.URLSearchParams; +var URL = globalThis.URL; +class File extends Blob {} +class FileReader extends EventTarget { constructor() { throw new Error("Not implemented yet!"); } } -export var FormData = globalThis.FormData; +var FormData = globalThis.FormData; function notImplemented() { throw new Error("Not implemented in bun"); } @@ -45,7 +45,7 @@ function notImplemented() { * @typedef {import('events').EventEmitter} EventEmitter */ -class BodyReadable extends _ReadableFromWeb { +class BodyReadable extends ReadableFromWeb { #response; #bodyUsed; @@ -127,7 +127,7 @@ class BodyReadable extends _ReadableFromWeb { * context: Object; * }} */ -export async function request( +async function request( url, options = { method: "GET", @@ -228,36 +228,36 @@ export async function request( return { statusCode, headers: headers.toJSON(), body, trailers, opaque: kEmptyObject, context: kEmptyObject }; } -export function stream() { +function stream() { throw new Error("Not implemented in bun"); } -export function pipeline() { +function pipeline() { throw new Error("Not implemented in bun"); } -export function connect() { +function connect() { throw new Error("Not implemented in bun"); } -export function upgrade() { +function upgrade() { throw new Error("Not implemented in bun"); } -export class MockClient { +class MockClient { constructor() { throw new Error("Not implemented in bun"); } } -export class MockPool { +class MockPool { constructor() { throw new Error("Not implemented in bun"); } } -export class MockAgent { +class MockAgent { constructor() { throw new Error("Not implemented in bun"); } } -export function mockErrors() { +function mockErrors() { throw new Error("Not implemented in bun"); } @@ -329,3 +329,29 @@ export default { Undici, [Symbol.for("CommonJS")]: 0, }; + +export { + fetch, + Response, + Headers, + Request, + URLSearchParams, + URL, + File, + FileReader, + FormData, + request, + stream, + pipeline, + connect, + upgrade, + MockClient, + MockPool, + MockAgent, + mockErrors, + Dispatcher, + Pool, + BalancedPool, + Client, + Agent, +}; diff --git a/src/js/thirdparty/ws.js b/src/js/thirdparty/ws.js index 3af650764..5b27c5b50 100644 --- a/src/js/thirdparty/ws.js +++ b/src/js/thirdparty/ws.js @@ -3,7 +3,7 @@ // this just wraps WebSocket to look like an EventEmitter // without actually using an EventEmitter polyfill -import EventEmitter from "events"; +import { EventEmitter } from "events"; import http from "http"; const kBunInternals = Symbol.for("::bunternal::"); diff --git a/src/js_parser.zig b/src/js_parser.zig index 28bd4aa0b..16560d525 100644 --- a/src/js_parser.zig +++ b/src/js_parser.zig @@ -21217,7 +21217,7 @@ fn NewParser_( logger.Loc.Empty, ); const cjsGlobal = p.newSymbol(.unbound, "$_BunCommonJSModule_$") catch unreachable; - var call_args = allocator.alloc(Expr, 6) catch unreachable; + var all_call_args = allocator.alloc(Expr, 7) catch unreachable; const this_module = p.newExpr( E.Dot{ .name = "module", @@ -21226,14 +21226,72 @@ fn NewParser_( }, logger.Loc.Empty, ); + var call_args = all_call_args[1..]; + var bind_args = all_call_args[0..1]; + bind_args[0] = this_module; + const get_require = p.newExpr( + E.Dot{ + .name = "require", + .target = this_module, + .name_loc = logger.Loc.Empty, + }, + logger.Loc.Empty, + ); + + const create_binding = p.newExpr( + E.Call{ + .target = p.newExpr(E.Dot{ + .name = "bind", + .name_loc = logger.Loc.Empty, + .target = get_require, + }, logger.Loc.Empty), + .args = bun.BabyList(Expr).init(bind_args), + }, + logger.Loc.Empty, + ); + + const module_id = p.newExpr(E.Dot{ + .name = "id", + .target = this_module, + .name_loc = logger.Loc.Empty, + }, logger.Loc.Empty); + + const require_path = p.newExpr( + E.Dot{ + .name = "path", + .target = get_require, + .name_loc = logger.Loc.Empty, + }, + logger.Loc.Empty, + ); + const assign_binding = p.newExpr( + E.Binary{ + .left = get_require, + .right = create_binding, + .op = .bin_assign, + }, + logger.Loc.Empty, + ); + + const assign_id = p.newExpr(E.Binary{ + .left = require_path, + .right = module_id, + .op = .bin_assign, + }, logger.Loc.Empty); + + var create_require = [3]Expr{ + assign_binding, + assign_id, + get_require, + }; // - // (function(module, exports, require, __dirname, __filename) {}).call(this.exports, this.module, this.exports, this.require, __dirname, __filename) + // (function(module, exports, require, __dirname, __filename) {}).call(this.exports, this.module, this.exports, this.module.require = this.module.require.bind(module), (this.module.require.id = this.module.id, this.module.require), __dirname, __filename) call_args[0..6].* = .{ p.newExpr( E.Dot{ .name = "exports", - .target = p.newExpr(E.Identifier{ .ref = cjsGlobal }, logger.Loc.Empty), + .target = this_module, .name_loc = logger.Loc.Empty, }, logger.Loc.Empty, @@ -21242,33 +21300,12 @@ fn NewParser_( p.newExpr( E.Dot{ .name = "exports", - .target = p.newExpr(E.Identifier{ .ref = cjsGlobal }, logger.Loc.Empty), + .target = this_module, .name_loc = logger.Loc.Empty, }, logger.Loc.Empty, ), - p.newExpr( - E.Binary{ - .left = p.newExpr( - E.Dot{ - .name = "require", - .target = this_module, - .name_loc = logger.Loc.Empty, - }, - logger.Loc.Empty, - ), - .op = .bin_assign, - .right = p.newExpr( - E.Dot{ - .name = "require", - .target = p.newExpr(E.Identifier{ .ref = cjsGlobal }, logger.Loc.Empty), - .name_loc = logger.Loc.Empty, - }, - logger.Loc.Empty, - ), - }, - logger.Loc.Empty, - ), + Expr.joinAllWithComma(&create_require, p.allocator), p.newExpr( E.Dot{ .name = "__dirname", diff --git a/src/js_printer.zig b/src/js_printer.zig index bd771d7b8..a47cc1a23 100644 --- a/src/js_printer.zig +++ b/src/js_printer.zig @@ -4379,10 +4379,10 @@ fn NewPrinter( p.printGlobalBunImportStatement(s.*); return; }, - .hardcoded => { - p.printHardcodedImportStatement(s.*); - return; - }, + // .hardcoded => { + // p.printHardcodedImportStatement(s.*); + // return; + // }, else => {}, } } @@ -4392,71 +4392,6 @@ fn NewPrinter( const module_id = record.module_id; - if (comptime is_bun_platform) { - if (!record.path.is_disabled) { - if (record.contains_import_star) { - p.print("var "); - p.printSymbol(s.namespace_ref); - p.@"print = "(); - p.print("import.meta.require("); - p.printImportRecordPath(record); - p.print(")"); - p.printSemicolonAfterStatement(); - } - - if (s.items.len > 0 or s.default_name != null) { - p.printIndent(); - p.printSpaceBeforeIdentifier(); - p.printWhitespacer(ws("var {")); - - if (s.default_name) |default_name| { - p.printSpace(); - p.print("default:"); - p.printSpace(); - p.printSymbol(default_name.ref.?); - - if (s.items.len > 0) { - p.printSpace(); - p.print(","); - p.printSpace(); - for (s.items, 0..) |item, i| { - p.printClauseItemAs(item, .@"var"); - - if (i < s.items.len - 1) { - p.print(","); - p.printSpace(); - } - } - } - } else { - for (s.items, 0..) |item, i| { - p.printClauseItemAs(item, .@"var"); - - if (i < s.items.len - 1) { - p.print(","); - p.printSpace(); - } - } - } - - p.print("}"); - p.@"print = "(); - - if (record.contains_import_star) { - p.printSymbol(s.namespace_ref); - p.printSemicolonAfterStatement(); - } else { - p.print("import.meta.require("); - p.printImportRecordPath(record); - p.print(")"); - p.printSemicolonAfterStatement(); - } - } - - return; - } - } - if (!record.path.is_disabled and std.mem.indexOfScalar(u32, p.imported_module_ids.items, module_id) == null) { p.printWhitespacer(ws("import * as")); p.print(" "); diff --git a/src/string.zig b/src/string.zig index 2c75dcc33..54af2ba68 100644 --- a/src/string.zig +++ b/src/string.zig @@ -164,8 +164,13 @@ pub const WTFStringImplStruct = extern struct { return std.mem.Allocator{ .ptr = self, .vtable = StringImplAllocator.VTablePtr }; } + pub fn hasPrefix(self: WTFStringImpl, text: []const u8) bool { + return Bun__WTFStringImpl__hasPrefix(self, text.ptr, text.len); + } + extern fn Bun__WTFStringImpl__deref(self: WTFStringImpl) void; extern fn Bun__WTFStringImpl__ref(self: WTFStringImpl) void; + extern fn Bun__WTFStringImpl__hasPrefix(self: *const WTFStringImplStruct, offset: [*]const u8, length: usize) bool; }; pub const StringImplAllocator = struct { @@ -616,6 +621,10 @@ pub const String = extern struct { } pub fn hasPrefixComptime(this: String, comptime value: []const u8) bool { + if (this.tag == .WTFStringImpl) { + return this.value.WTFStringImpl.hasPrefix(value); + } + return this.toZigString().substring(0, value.len).eqlComptime(value); } diff --git a/src/string_immutable.zig b/src/string_immutable.zig index 0e98f3f5f..d075b38f5 100644 --- a/src/string_immutable.zig +++ b/src/string_immutable.zig @@ -1484,7 +1484,8 @@ pub fn convertUTF16ToUTF8(list_: std.ArrayList(u8), comptime Type: type, utf16: pub fn toUTF8AllocWithType(allocator: std.mem.Allocator, comptime Type: type, utf16: Type) ![]u8 { if (bun.FeatureFlags.use_simdutf and comptime Type == []const u16) { const length = bun.simdutf.length.utf8.from.utf16.le(utf16); - var list = try std.ArrayList(u8).initCapacity(allocator, length); + // add 4 bytes of padding for SIMDUTF + var list = try std.ArrayList(u8).initCapacity(allocator, length + 4); list = try convertUTF16ToUTF8(list, Type, utf16); return list.items; } diff --git a/test/bun.lockb b/test/bun.lockb index a26f2fdfe..528415ddd 100755 Binary files a/test/bun.lockb and b/test/bun.lockb differ diff --git a/test/bundler/esbuild/default.test.ts b/test/bundler/esbuild/default.test.ts index 0d1775606..4c4cf87be 100644 --- a/test/bundler/esbuild/default.test.ts +++ b/test/bundler/esbuild/default.test.ts @@ -1,8 +1,8 @@ import assert from "assert"; import dedent from "dedent"; + import { ESBUILD_PATH, RUN_UNCHECKED_TESTS, itBundled, testForFile } from "../expectBundled"; var { describe, test, expect } = testForFile(import.meta.path); - // Tests ported from: // https://github.com/evanw/esbuild/blob/main/internal/bundler_tests/bundler_default_test.go @@ -375,7 +375,10 @@ describe("bundler", () => { // assert bundles weird as of writing "/test.js": /* js */ ` - globalThis.assert = import.meta.require('assert'); + globalThis.assert = require('assert'); + if (typeof assert.deepEqual !== 'function') { + throw new Error('assert.deepEqual is not a function'); + } require('./out.js'); `, }, @@ -1335,8 +1338,8 @@ describe("bundler", () => { import fs from "fs"; import assert from "assert"; import * as module from './out.js'; - assert(module.fs === fs, 'export * as fs from "fs"; works') - assert(module.readFileSync === fs.readFileSync, 'export {readFileSync} from "fs"; works') + assert(module.fs.default === fs, 'export * as fs from "fs"; works') + assert(module.fs.default.readFileSync === fs.readFileSync, 'export {readFileSync} from "fs"; works') `, }, target: "node", @@ -1356,10 +1359,10 @@ describe("bundler", () => { `, "/test.js": /* js */ ` - import fs from "fs"; + import * as fs from "fs"; import assert from "assert"; import * as module from './out.js'; - assert(module.f === fs, 'export {fs as f} works') + assert(module.f.default === fs.default, 'export {fs as f} works') assert(module.rfs === fs.readFileSync, 'export {rfs} works') `, }, @@ -1379,7 +1382,7 @@ describe("bundler", () => { `, "/test.js": /* js */ ` - import fs from "fs"; + import * as fs from "fs"; import assert from "assert"; import * as mod from './out.js'; assert(mod.fs === fs, 'exports.fs') diff --git a/test/cli/run/require-cache-fixture-b.cjs b/test/cli/run/require-cache-fixture-b.cjs index 8f8e40ff0..c3f2c8a26 100644 --- a/test/cli/run/require-cache-fixture-b.cjs +++ b/test/cli/run/require-cache-fixture-b.cjs @@ -1,3 +1,8 @@ exports.foo = 123; exports.bar = 456; exports.baz = 789; + +if (require.main === module) { + console.error(__filename, module.id); + throw new Error("require.main === module"); +} diff --git a/test/cli/run/require-cache-fixture.cjs b/test/cli/run/require-cache-fixture.cjs index b04e751ac..ce02b86d7 100644 --- a/test/cli/run/require-cache-fixture.cjs +++ b/test/cli/run/require-cache-fixture.cjs @@ -3,6 +3,11 @@ const Bun = (globalThis.Bun ??= { gc() {} }); const { resolve } = require("path"); +if (require.main !== module) { + console.error(__filename, module.id); + throw new Error("require.main !== module"); +} + if (__filename !== resolve(module.filename)) { console.error(__filename, module.id); throw new Error("__filename !== module.id"); diff --git a/test/js/bun/eventsource/eventsource.test.ts b/test/js/bun/eventsource/eventsource.test.ts index 2f5b7d755..d4da99aa3 100644 --- a/test/js/bun/eventsource/eventsource.test.ts +++ b/test/js/bun/eventsource/eventsource.test.ts @@ -1,153 +1,153 @@ -function sse(req: Request) { - const signal = req.signal; - return new Response( - new ReadableStream({ - type: "direct", - async pull(controller) { - while (!signal.aborted) { - await controller.write(`data:Hello, World!\n\n`); - await controller.write(`event: bun\ndata: Hello, World!\n\n`); - await controller.write(`event: lines\ndata: Line 1!\ndata: Line 2!\n\n`); - await controller.write(`event: id_test\nid:1\n\n`); - await controller.flush(); - await Bun.sleep(100); - } - controller.close(); - }, - }), - { status: 200, headers: { "Content-Type": "text/event-stream" } }, - ); -} +// function sse(req: Request) { +// const signal = req.signal; +// return new Response( +// new ReadableStream({ +// type: "direct", +// async pull(controller) { +// while (!signal.aborted) { +// await controller.write(`data:Hello, World!\n\n`); +// await controller.write(`event: bun\ndata: Hello, World!\n\n`); +// await controller.write(`event: lines\ndata: Line 1!\ndata: Line 2!\n\n`); +// await controller.write(`event: id_test\nid:1\n\n`); +// await controller.flush(); +// await Bun.sleep(100); +// } +// controller.close(); +// }, +// }), +// { status: 200, headers: { "Content-Type": "text/event-stream" } }, +// ); +// } -function sse_unstable(req: Request) { - const signal = req.signal; - let id = parseInt(req.headers.get("last-event-id") || "0", 10); +// function sse_unstable(req: Request) { +// const signal = req.signal; +// let id = parseInt(req.headers.get("last-event-id") || "0", 10); - return new Response( - new ReadableStream({ - type: "direct", - async pull(controller) { - if (!signal.aborted) { - await controller.write(`id:${++id}\ndata: Hello, World!\nretry:100\n\n`); - await controller.flush(); - } - controller.close(); - }, - }), - { status: 200, headers: { "Content-Type": "text/event-stream" } }, - ); -} +// return new Response( +// new ReadableStream({ +// type: "direct", +// async pull(controller) { +// if (!signal.aborted) { +// await controller.write(`id:${++id}\ndata: Hello, World!\nretry:100\n\n`); +// await controller.flush(); +// } +// controller.close(); +// }, +// }), +// { status: 200, headers: { "Content-Type": "text/event-stream" } }, +// ); +// } -function sseServer( - done: (err?: unknown) => void, - pathname: string, - callback: (evtSource: EventSource, done: (err?: unknown) => void) => void, -) { - const server = Bun.serve({ - port: 0, - fetch(req) { - if (new URL(req.url).pathname === "/stream") { - return sse(req); - } - if (new URL(req.url).pathname === "/unstable") { - return sse_unstable(req); - } - return new Response("Hello, World!"); - }, - }); - let evtSource: EventSource | undefined; - try { - evtSource = new EventSource(`http://localhost:${server.port}${pathname}`); - callback(evtSource, err => { - try { - done(err); - evtSource?.close(); - } catch (err) { - done(err); - } finally { - server.stop(true); - } - }); - } catch (err) { - evtSource?.close(); - server.stop(true); - done(err); - } -} +// function sseServer( +// done: (err?: unknown) => void, +// pathname: string, +// callback: (evtSource: EventSource, done: (err?: unknown) => void) => void, +// ) { +// const server = Bun.serve({ +// port: 0, +// fetch(req) { +// if (new URL(req.url).pathname === "/stream") { +// return sse(req); +// } +// if (new URL(req.url).pathname === "/unstable") { +// return sse_unstable(req); +// } +// return new Response("Hello, World!"); +// }, +// }); +// let evtSource: EventSource | undefined; +// try { +// evtSource = new EventSource(`http://localhost:${server.port}${pathname}`); +// callback(evtSource, err => { +// try { +// done(err); +// evtSource?.close(); +// } catch (err) { +// done(err); +// } finally { +// server.stop(true); +// } +// }); +// } catch (err) { +// evtSource?.close(); +// server.stop(true); +// done(err); +// } +// } -import { describe, expect, it } from "bun:test"; +// import { describe, expect, it } from "bun:test"; -describe("events", () => { - it("should call open", done => { - sseServer(done, "/stream", (evtSource, done) => { - evtSource.onopen = () => { - done(); - }; - evtSource.onerror = err => { - done(err); - }; - }); - }); +// describe("events", () => { +// it("should call open", done => { +// sseServer(done, "/stream", (evtSource, done) => { +// evtSource.onopen = () => { +// done(); +// }; +// evtSource.onerror = err => { +// done(err); +// }; +// }); +// }); - it("should call message", done => { - sseServer(done, "/stream", (evtSource, done) => { - evtSource.onmessage = e => { - expect(e.data).toBe("Hello, World!"); - done(); - }; - }); - }); +// it("should call message", done => { +// sseServer(done, "/stream", (evtSource, done) => { +// evtSource.onmessage = e => { +// expect(e.data).toBe("Hello, World!"); +// done(); +// }; +// }); +// }); - it("should call custom event", done => { - sseServer(done, "/stream", (evtSource, done) => { - evtSource.addEventListener("bun", e => { - expect(e.data).toBe("Hello, World!"); - done(); - }); - }); - }); +// it("should call custom event", done => { +// sseServer(done, "/stream", (evtSource, done) => { +// evtSource.addEventListener("bun", e => { +// expect(e.data).toBe("Hello, World!"); +// done(); +// }); +// }); +// }); - it("should call event with multiple lines", done => { - sseServer(done, "/stream", (evtSource, done) => { - evtSource.addEventListener("lines", e => { - expect(e.data).toBe("Line 1!\nLine 2!"); - done(); - }); - }); - }); +// it("should call event with multiple lines", done => { +// sseServer(done, "/stream", (evtSource, done) => { +// evtSource.addEventListener("lines", e => { +// expect(e.data).toBe("Line 1!\nLine 2!"); +// done(); +// }); +// }); +// }); - it("should receive id", done => { - sseServer(done, "/stream", (evtSource, done) => { - evtSource.addEventListener("id_test", e => { - expect(e.lastEventId).toBe("1"); - done(); - }); - }); - }); +// it("should receive id", done => { +// sseServer(done, "/stream", (evtSource, done) => { +// evtSource.addEventListener("id_test", e => { +// expect(e.lastEventId).toBe("1"); +// done(); +// }); +// }); +// }); - it("should reconnect with id", done => { - sseServer(done, "/unstable", (evtSource, done) => { - const ids: string[] = []; - evtSource.onmessage = e => { - ids.push(e.lastEventId); - if (ids.length === 2) { - for (let i = 0; i < 2; i++) { - expect(ids[i]).toBe((i + 1).toString()); - } - done(); - } - }; - }); - }); +// it("should reconnect with id", done => { +// sseServer(done, "/unstable", (evtSource, done) => { +// const ids: string[] = []; +// evtSource.onmessage = e => { +// ids.push(e.lastEventId); +// if (ids.length === 2) { +// for (let i = 0; i < 2; i++) { +// expect(ids[i]).toBe((i + 1).toString()); +// } +// done(); +// } +// }; +// }); +// }); - it("should call error", done => { - sseServer(done, "/", (evtSource, done) => { - evtSource.onerror = e => { - expect(e.error.message).toBe( - `EventSource's response has a MIME type that is not "text/event-stream". Aborting the connection.`, - ); - done(); - }; - }); - }); -}); +// it("should call error", done => { +// sseServer(done, "/", (evtSource, done) => { +// evtSource.onerror = e => { +// expect(e.error.message).toBe( +// `EventSource's response has a MIME type that is not "text/event-stream". Aborting the connection.`, +// ); +// done(); +// }; +// }); +// }); +// }); diff --git a/test/js/bun/resolve/import-meta.test.js b/test/js/bun/resolve/import-meta.test.js index 5771aeb30..7d385148b 100644 --- a/test/js/bun/resolve/import-meta.test.js +++ b/test/js/bun/resolve/import-meta.test.js @@ -9,7 +9,7 @@ import sync from "./require-json.json"; const { path, dir } = import.meta; it("primordials are not here!", () => { - expect(import.meta.primordials === undefined).toBe(true); + expect(globalThis[Symbol.for("Bun.lazy")]("primordials") === undefined).toBe(true); }); it("import.meta.main", () => { diff --git a/test/js/node/assert/assert-test.test.ts b/test/js/node/assert/assert-test.test.ts deleted file mode 100644 index 1723b7d47..000000000 --- a/test/js/node/assert/assert-test.test.ts +++ /dev/null @@ -1,11 +0,0 @@ -import assert from "assert"; -import { expect, test } from "bun:test"; - -// https://github.com/oven-sh/bun/issues/941 -test("assert as a function does not throw", () => assert(true)); -test("assert as a function does throw", () => { - try { - assert(false); - expect(false).toBe(true); - } catch (e) {} -}); diff --git a/test/js/node/assert/assert.test.cjs b/test/js/node/assert/assert.test.cjs new file mode 100644 index 000000000..e9d472412 --- /dev/null +++ b/test/js/node/assert/assert.test.cjs @@ -0,0 +1,9 @@ +const assert = require("assert"); + +test("assert from require as a function does not throw", () => assert(true)); +test("assert from require as a function does throw", () => { + try { + assert(false); + expect(false).toBe(true); + } catch (e) {} +}); diff --git a/test/js/node/assert/assert.test.ts b/test/js/node/assert/assert.test.ts new file mode 100644 index 000000000..1723b7d47 --- /dev/null +++ b/test/js/node/assert/assert.test.ts @@ -0,0 +1,11 @@ +import assert from "assert"; +import { expect, test } from "bun:test"; + +// https://github.com/oven-sh/bun/issues/941 +test("assert as a function does not throw", () => assert(true)); +test("assert as a function does throw", () => { + try { + assert(false); + expect(false).toBe(true); + } catch (e) {} +}); diff --git a/test/js/node/disabled-module.test.cjs b/test/js/node/disabled-module.test.cjs new file mode 100644 index 000000000..bc4817b8d --- /dev/null +++ b/test/js/node/disabled-module.test.cjs @@ -0,0 +1,6 @@ +test("not implemented yet module masquerades as undefined in cjs and throws an error", () => { + const worker_threads = require("worker_threads"); + + expect(typeof worker_threads).toBe("undefined"); + expect(typeof worker_threads.getEnvironmentData).toBe("undefined"); +}); diff --git a/test/js/node/disabled-module.test.js b/test/js/node/disabled-module.test.js index d02a6b6df..bb707a122 100644 --- a/test/js/node/disabled-module.test.js +++ b/test/js/node/disabled-module.test.js @@ -1,15 +1,16 @@ import { expect, test } from "bun:test"; +import { AsyncResource, AsyncLocalStorage } from "async_hooks"; +import * as worker_threads from "worker_threads"; +import worker_threads_default from "worker_threads"; test("not implemented yet module masquerades as undefined and throws an error", () => { - const worker_threads = import.meta.require("worker_threads"); - - expect(typeof worker_threads).toBe("undefined"); + expect(typeof worker_threads.default).toBe("undefined"); + expect(typeof worker_threads_default).toBe("undefined"); expect(typeof worker_threads.getEnvironmentData).toBe("undefined"); + expect(typeof worker_threads_default.getEnvironmentData).toBe("undefined"); }); test("AsyncLocalStorage polyfill", () => { - const { AsyncLocalStorage } = import.meta.require("async_hooks"); - const store = new AsyncLocalStorage(); var called = false; expect(store.getStore()).toBe(null); @@ -22,8 +23,6 @@ test("AsyncLocalStorage polyfill", () => { }); test("AsyncResource polyfill", () => { - const { AsyncResource } = import.meta.require("async_hooks"); - const resource = new AsyncResource("prisma-client-request"); var called = false; resource.runInAsyncScope( @@ -36,3 +35,9 @@ test("AsyncResource polyfill", () => { ); expect(called).toBe(true); }); + +test("esbuild functions with worker_threads stub", async () => { + const esbuild = await import("esbuild"); + const result = await esbuild.transform('console . log( "hello world" )', { minify: true }); + expect(result.code).toBe('console.log("hello world");\n'); +}); diff --git a/test/js/node/events/event-emitter.test.ts b/test/js/node/events/event-emitter.test.ts index cef309d48..5a1385383 100644 --- a/test/js/node/events/event-emitter.test.ts +++ b/test/js/node/events/event-emitter.test.ts @@ -1,5 +1,6 @@ import { test, describe, expect } from "bun:test"; import { sleep } from "bun"; +import { createRequire } from "module"; // this is also testing that imports with default and named imports in the same statement work // our transpiler transform changes this to a var with import.meta.require @@ -534,4 +535,10 @@ describe("EventEmitter constructors", () => { expect(called).toBe(true); }); } + + test("with createRequire, events is callable", () => { + const req = createRequire(import.meta.path); + const events = req("events"); + new events(); + }); }); diff --git a/test/js/node/events/events-cjs.test.js b/test/js/node/events/events-cjs.test.js new file mode 100644 index 000000000..5bee9979f --- /dev/null +++ b/test/js/node/events/events-cjs.test.js @@ -0,0 +1,4 @@ +test("in cjs, events is callable", () => { + const events = require("events"); + new events(); +}); diff --git a/test/js/node/path/path.test.js b/test/js/node/path/path.test.js index 94b0568f6..8f5a76da7 100644 --- a/test/js/node/path/path.test.js +++ b/test/js/node/path/path.test.js @@ -1,7 +1,7 @@ const { file } = import.meta; import { describe, it, expect } from "bun:test"; -import * as path from "node:path"; +import path from "node:path"; import assert from "assert"; import { hideFromStackTrace } from "harness"; diff --git a/test/js/node/process/print-process-args.js b/test/js/node/process/print-process-args.js index 0ab238122..e9d2295c8 100644 --- a/test/js/node/process/print-process-args.js +++ b/test/js/node/process/print-process-args.js @@ -1,3 +1,11 @@ +import assert from "assert"; + +// ensure process.argv and Bun.argv are the same +assert.deepStrictEqual(process.argv, Bun.argv, "process.argv does not equal Bun.argv"); +assert(process.argv === process.argv, "process.argv isn't cached"); +// assert(Bun.argv === Bun.argv, 'Bun.argv isn\'t cached'); +// assert(Bun.argv === process.argv, 'Bun.argv doesnt share same ref as process.argv'); + var writer = Bun.stdout.writer(); writer.write(JSON.stringify(process.argv)); await writer.flush(true); diff --git a/test/js/node/process/process.test.js b/test/js/node/process/process.test.js index ee181e70c..61ac3839c 100644 --- a/test/js/node/process/process.test.js +++ b/test/js/node/process/process.test.js @@ -226,10 +226,9 @@ it("process.binding", () => { expect(() => process.binding("buffer")).toThrow(); }); -it("process.argv", () => { +it("process.argv in testing", () => { expect(process.argv).toBeInstanceOf(Array); expect(process.argv[0]).toBe(bunExe()); - expect(process.argv).toEqual(Bun.argv); // assert we aren't creating a new process.argv each call expect(process.argv).toBe(process.argv); diff --git a/test/js/node/stubs.test.js b/test/js/node/stubs.test.js index e6bce8aee..1025907ab 100644 --- a/test/js/node/stubs.test.js +++ b/test/js/node/stubs.test.js @@ -99,6 +99,9 @@ for (let specifier of specifiers) { } } } + } else { + // TODO: uncomment this after node:module can be default imported + // throw new Error(`Module ${specifier} has no default export`); } }); } diff --git a/test/js/node/util/test-util-types.test.js b/test/js/node/util/test-util-types.test.js index f33ab4b1a..a75b9eac0 100644 --- a/test/js/node/util/test-util-types.test.js +++ b/test/js/node/util/test-util-types.test.js @@ -1,6 +1,9 @@ -const assert = require("assert"); -import { test, expect } from "bun:test"; -const types = require("util/types"); +import assert from "assert"; +import { describe, test, expect } from "bun:test"; +import def from "util/types"; +import * as ns from "util/types"; +const req = require("util/types"); +const types = def; function inspect(val) { return Bun.inspect(val); @@ -52,15 +55,21 @@ for (const [value, _method] of [ assert(method in types, `Missing ${method} for ${inspect(value)}`); assert(types[method](value), `Want ${inspect(value)} to match ${method}`); - for (const key of Object.keys(types)) { - if ( - ((types.isArrayBufferView(value) || types.isAnyArrayBuffer(value)) && key.includes("Array")) || - key === "isBoxedPrimitive" - ) { - continue; - } + for (const [types, label] of [ + [def, "default import"], + [ns, "ns import"], + [req, "require esm"], + ]) { + for (const key of Object.keys(types).filter(x => x !== "default")) { + if ( + ((types.isArrayBufferView(value) || types.isAnyArrayBuffer(value)) && key.includes("Array")) || + key === "isBoxedPrimitive" + ) { + continue; + } - expect(types[key](value)).toBe(key === method); + expect(types[key](value)).toBe(key === method); + } } }); } @@ -238,3 +247,4 @@ test("isBoxedPrimitive", () => { }); } } +// */ diff --git a/test/package.json b/test/package.json index 480305013..b9aa55ae2 100644 --- a/test/package.json +++ b/test/package.json @@ -11,7 +11,7 @@ "bktree-fast": "^0.0.7", "body-parser": "^1.20.2", "dedent": "^0.7.0", - "esbuild": "^0.17.16", + "esbuild": "^0.18.6", "express": "^4.18.2", "iconv-lite": "^0.6.3", "jest-extended": "^4.0.0", -- cgit v1.2.3 From 30798c7078a080e9779551d073e7362046ccd5d1 Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Sun, 25 Jun 2023 03:01:01 -0700 Subject: Make timeout longer --- test/js/bun/websocket/websocket-server.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test/js') diff --git a/test/js/bun/websocket/websocket-server.test.ts b/test/js/bun/websocket/websocket-server.test.ts index 7d43c7e65..2c2352f91 100644 --- a/test/js/bun/websocket/websocket-server.test.ts +++ b/test/js/bun/websocket/websocket-server.test.ts @@ -1037,7 +1037,7 @@ describe("websocket server", () => { }); expect(serverCounter).toBe(sendQueue.length); server.stop(true); - }, 10_000); + }, 30_000); it("can close with reason and code #2631", done => { let timeout: any; let server = Bun.serve({ -- cgit v1.2.3 From fcf9f0a7eeb3d462d5c6c2110ecdf5a4460c1736 Mon Sep 17 00:00:00 2001 From: Ai Hoshino Date: Mon, 26 Jun 2023 07:15:56 +0800 Subject: Fix the parameters of WriteStream constructor. (#3402) * Fix the parameters of the `WriteStream` constructor. Close: https://github.com/oven-sh/bun/issues/3395 * test append mode in `createWriteStream` * fix lint * wait first stream finished --- src/js/node/fs.js | 4 ++-- test/js/node/fs/fs.test.ts | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 2 deletions(-) (limited to 'test/js') diff --git a/src/js/node/fs.js b/src/js/node/fs.js index 2bd752d19..8d9f0d235 100644 --- a/src/js/node/fs.js +++ b/src/js/node/fs.js @@ -642,8 +642,8 @@ WriteStream = (function (InternalWriteStream) { }); return Object.defineProperty( - function WriteStream(options) { - return new InternalWriteStream(options); + function WriteStream(path, options) { + return new InternalWriteStream(path, options); }, Symbol.hasInstance, { diff --git a/test/js/node/fs/fs.test.ts b/test/js/node/fs/fs.test.ts index 37c3253a4..0353968fe 100644 --- a/test/js/node/fs/fs.test.ts +++ b/test/js/node/fs/fs.test.ts @@ -1068,6 +1068,44 @@ describe("createWriteStream", () => { expect(exception.code).toBe("ERR_INVALID_ARG_TYPE"); } }); + + it("writing in append mode should not truncate the file", async () => { + const path = `${tmpdir()}/fs.test.js/${Date.now()}.createWriteStreamAppend.txt`; + const stream = createWriteStream(path, { + // @ts-ignore-next-line + flags: "a", + }); + stream.write("first line\n"); + stream.end(); + + await new Promise((resolve, reject) => { + stream.on("error", e => { + reject(e); + }); + + stream.on("finish", () => { + resolve(true); + }); + }); + + const stream2 = createWriteStream(path, { + // @ts-ignore-next-line + flags: "a", + }); + stream2.write("second line\n"); + stream2.end(); + + return await new Promise((resolve, reject) => { + stream2.on("error", e => { + reject(e); + }); + + stream2.on("finish", () => { + expect(readFileSync(path, "utf8")).toBe("first line\nsecond line\n"); + resolve(true); + }); + }); + }); }); describe("fs/promises", () => { -- cgit v1.2.3 From 3ed28f2828a29129a1791b7a4f6935d842d6493c Mon Sep 17 00:00:00 2001 From: Ciro Spaciari Date: Sun, 25 Jun 2023 20:16:25 -0300 Subject: [fs.watch] fix reference/deinit (#3396) * fix js reference * fix close oops * refactor + hasPendingActivity * fmt * fix race conditions * fixup * add test calling close on error event * fix close inside close + test * cleanup --- src/bun.js/WebKit | 2 +- src/bun.js/bindings/JSSink.cpp | 2 +- src/bun.js/bindings/JSSink.h | 2 +- src/bun.js/bindings/ZigGeneratedClasses.cpp | 10 + src/bun.js/bindings/ZigGeneratedClasses.h | 27 ++ src/bun.js/bindings/generated_classes.zig | 1 + src/bun.js/bindings/generated_classes_list.zig | 2 +- src/bun.js/node/node.classes.ts | 1 + src/bun.js/node/node_fs_watcher.zig | 500 +++++++++++++------------ src/watcher.zig | 20 +- test/js/node/watch/fs.watch.test.js | 45 ++- 11 files changed, 352 insertions(+), 260 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/WebKit b/src/bun.js/WebKit index 4c8ab8fdf..b2f1006a0 160000 --- a/src/bun.js/WebKit +++ b/src/bun.js/WebKit @@ -1 +1 @@ -Subproject commit 4c8ab8fdfb102522fdd8e55d4eea53e8ce2755c2 +Subproject commit b2f1006a06f81bc860c89dd4c7cec3e7117c4c4c diff --git a/src/bun.js/bindings/JSSink.cpp b/src/bun.js/bindings/JSSink.cpp index 4acf01ff7..19bf05599 100644 --- a/src/bun.js/bindings/JSSink.cpp +++ b/src/bun.js/bindings/JSSink.cpp @@ -1,6 +1,6 @@ // AUTO-GENERATED FILE. DO NOT EDIT. -// Generated by 'make generate-sink' at 2023-06-14T21:38:04.394Z +// Generated by 'make generate-sink' at 2023-06-25T17:34:54.187Z // To regenerate this file, run: // // make generate-sink diff --git a/src/bun.js/bindings/JSSink.h b/src/bun.js/bindings/JSSink.h index 37c458e9b..9bf5554c4 100644 --- a/src/bun.js/bindings/JSSink.h +++ b/src/bun.js/bindings/JSSink.h @@ -1,6 +1,6 @@ // AUTO-GENERATED FILE. DO NOT EDIT. -// Generated by 'make generate-sink' at 2023-06-14T21:38:04.394Z +// Generated by 'make generate-sink' at 2023-06-25T17:34:54.186Z // #pragma once diff --git a/src/bun.js/bindings/ZigGeneratedClasses.cpp b/src/bun.js/bindings/ZigGeneratedClasses.cpp index e0a3f33d6..387580d54 100644 --- a/src/bun.js/bindings/ZigGeneratedClasses.cpp +++ b/src/bun.js/bindings/ZigGeneratedClasses.cpp @@ -5565,6 +5565,12 @@ void JSFSWatcherPrototype::finishCreation(JSC::VM& vm, JSC::JSGlobalObject* glob JSC_TO_STRING_TAG_WITHOUT_TRANSITION(); } +extern "C" bool FSWatcher__hasPendingActivity(void* ptr); +bool JSFSWatcher::hasPendingActivity(void* ctx) +{ + return FSWatcher__hasPendingActivity(ctx); +} + JSFSWatcher::~JSFSWatcher() { if (m_ctx) { @@ -5649,6 +5655,8 @@ void JSFSWatcher::visitChildrenImpl(JSCell* cell, Visitor& visitor) ASSERT_GC_OBJECT_INHERITS(thisObject, info()); Base::visitChildren(thisObject, visitor); visitor.append(thisObject->m_listener); + + visitor.addOpaqueRoot(thisObject->wrapped()); } DEFINE_VISIT_CHILDREN(JSFSWatcher); @@ -5659,6 +5667,8 @@ void JSFSWatcher::visitAdditionalChildren(Visitor& visitor) JSFSWatcher* thisObject = this; ASSERT_GC_OBJECT_INHERITS(thisObject, info()); visitor.append(thisObject->m_listener); + + visitor.addOpaqueRoot(this->wrapped()); } DEFINE_VISIT_ADDITIONAL_CHILDREN(JSFSWatcher); diff --git a/src/bun.js/bindings/ZigGeneratedClasses.h b/src/bun.js/bindings/ZigGeneratedClasses.h index 3fa0e26d2..1631f960e 100644 --- a/src/bun.js/bindings/ZigGeneratedClasses.h +++ b/src/bun.js/bindings/ZigGeneratedClasses.h @@ -623,10 +623,37 @@ public: : Base(vm, structure) { m_ctx = sinkPtr; + m_weakThis = JSC::Weak(this, getOwner()); } void finishCreation(JSC::VM&); + JSC::Weak m_weakThis; + + static bool hasPendingActivity(void* ctx); + + class Owner final : public JSC::WeakHandleOwner { + public: + bool isReachableFromOpaqueRoots(JSC::Handle handle, void* context, JSC::AbstractSlotVisitor& visitor, const char** reason) final + { + auto* controller = JSC::jsCast(handle.slot()->asCell()); + if (JSFSWatcher::hasPendingActivity(controller->wrapped())) { + if (UNLIKELY(reason)) + *reason = "has pending activity"; + return true; + } + + return visitor.containsOpaqueRoot(context); + } + void finalize(JSC::Handle, void* context) final {} + }; + + static JSC::WeakHandleOwner* getOwner() + { + static NeverDestroyed m_owner; + return &m_owner.get(); + } + DECLARE_VISIT_CHILDREN; template void visitAdditionalChildren(Visitor&); DECLARE_VISIT_OUTPUT_CONSTRAINTS; diff --git a/src/bun.js/bindings/generated_classes.zig b/src/bun.js/bindings/generated_classes.zig index 74e30cd83..bdde69c1a 100644 --- a/src/bun.js/bindings/generated_classes.zig +++ b/src/bun.js/bindings/generated_classes.zig @@ -1492,6 +1492,7 @@ pub const JSFSWatcher = struct { @export(FSWatcher.doRef, .{ .name = "FSWatcherPrototype__doRef" }); @export(FSWatcher.doUnref, .{ .name = "FSWatcherPrototype__doUnref" }); @export(FSWatcher.finalize, .{ .name = "FSWatcherClass__finalize" }); + @export(FSWatcher.hasPendingActivity, .{ .name = "FSWatcher__hasPendingActivity" }); @export(FSWatcher.hasRef, .{ .name = "FSWatcherPrototype__hasRef" }); } } diff --git a/src/bun.js/bindings/generated_classes_list.zig b/src/bun.js/bindings/generated_classes_list.zig index d90267337..543d492b5 100644 --- a/src/bun.js/bindings/generated_classes_list.zig +++ b/src/bun.js/bindings/generated_classes_list.zig @@ -37,5 +37,5 @@ pub const Classes = struct { pub const BuildArtifact = JSC.API.BuildArtifact; pub const BuildMessage = JSC.BuildMessage; pub const ResolveMessage = JSC.ResolveMessage; - pub const FSWatcher = JSC.Node.FSWatcher.JSObject; + pub const FSWatcher = JSC.Node.FSWatcher; }; diff --git a/src/bun.js/node/node.classes.ts b/src/bun.js/node/node.classes.ts index ce35c940a..2efad5245 100644 --- a/src/bun.js/node/node.classes.ts +++ b/src/bun.js/node/node.classes.ts @@ -7,6 +7,7 @@ export default [ noConstructor: true, finalize: true, configurable: false, + hasPendingActivity: true, klass: {}, JSType: "0b11101110", proto: { diff --git a/src/bun.js/node/node_fs_watcher.zig b/src/bun.js/node/node_fs_watcher.zig index 397d51916..b1f4ec8a9 100644 --- a/src/bun.js/node/node_fs_watcher.zig +++ b/src/bun.js/node/node_fs_watcher.zig @@ -4,6 +4,7 @@ const bun = @import("root").bun; const Fs = @import("../../fs.zig"); const Path = @import("../../resolver/resolve_path.zig"); const Encoder = JSC.WebCore.Encoder; +const Mutex = @import("../../lock.zig").Lock; const FSEvents = @import("./fs_events.zig"); @@ -30,17 +31,28 @@ pub const FSWatcher = struct { onAccept: std.ArrayHashMapUnmanaged(FSWatcher.Watcher.HashType, bun.BabyList(OnAcceptCallback), bun.ArrayIdentityContext, false) = .{}, ctx: *VirtualMachine, - js_watcher: ?*JSObject = null, - watcher_instance: ?*FSWatcher.Watcher = null, verbose: bool = false, file_paths: bun.BabyList(string) = .{}, entry_path: ?string = null, entry_dir: string = "", last_change_event: ChangeEvent = .{}, - pub fn toJS(this: *FSWatcher) JSC.JSValue { - return if (this.js_watcher) |js| js.js_this else JSC.JSValue.jsUndefined(); - } + // JSObject + mutex: Mutex, + signal: ?*JSC.AbortSignal, + persistent: bool, + default_watcher: ?*FSWatcher.Watcher, + fsevents_watcher: ?*FSEvents.FSEventsWatcher, + poll_ref: JSC.PollRef = .{}, + globalThis: *JSC.JSGlobalObject, + js_this: JSC.JSValue, + encoding: JSC.Node.Encoding, + // user can call close and pre-detach so we need to track this + closed: bool, + // counts pending tasks so we only deinit after all tasks are done + task_count: u32, + has_pending_activity: std.atomic.Atomic(bool), + pub usingnamespace JSC.Codegen.JSFSWatcher; pub fn eventLoop(this: FSWatcher) *EventLoop { return this.ctx.eventLoop(); @@ -51,6 +63,9 @@ pub const FSWatcher = struct { } pub fn deinit(this: *FSWatcher) void { + // stop all managers and signals + this.detach(); + while (this.file_paths.popOrNull()) |file_path| { bun.default_allocator.destroy(file_path); } @@ -107,41 +122,47 @@ pub const FSWatcher = struct { } pub fn run(this: *FSWatchTask) void { - // this runs on JS Context - if (this.ctx.js_watcher) |js_watcher| { - for (this.entries[0..this.count]) |entry| { - switch (entry.event_type) { - .rename => { - js_watcher.emit(entry.file_path, "rename"); - }, - .change => { - js_watcher.emit(entry.file_path, "change"); - }, - .@"error" => { - // file_path is the error message in this case - js_watcher.emitError(entry.file_path); - }, - .abort => { - js_watcher.emitIfAborted(); - }, - } + // this runs on JS Context Thread + + for (this.entries[0..this.count]) |entry| { + switch (entry.event_type) { + .rename => { + this.ctx.emit(entry.file_path, "rename"); + }, + .change => { + this.ctx.emit(entry.file_path, "change"); + }, + .@"error" => { + // file_path is the error message in this case + this.ctx.emitError(entry.file_path); + }, + .abort => { + this.ctx.emitIfAborted(); + }, } } + + this.ctx.unrefTask(); } pub fn enqueue(this: *FSWatchTask) void { if (this.count == 0) return; - var that = bun.default_allocator.create(FSWatchTask) catch unreachable; + // if false is closed or detached (can still contain valid refs but will not create a new one) + if (this.ctx.refTask()) { + var that = bun.default_allocator.create(FSWatchTask) catch unreachable; - that.* = this.*; - this.count = 0; - that.concurrent_task.task = JSC.Task.init(that); - this.ctx.enqueueTaskConcurrent(&that.concurrent_task); + that.* = this.*; + this.count = 0; + that.concurrent_task.task = JSC.Task.init(that); + this.ctx.enqueueTaskConcurrent(&that.concurrent_task); + return; + } + // closed or detached so just cleanEntries + this.cleanEntries(); } - - pub fn deinit(this: *FSWatchTask) void { + pub fn cleanEntries(this: *FSWatchTask) void { while (this.count > 0) { this.count -= 1; switch (this.entries[this.count].free_type) { @@ -150,6 +171,10 @@ pub const FSWatcher = struct { else => {}, } } + } + + pub fn deinit(this: *FSWatchTask) void { + this.cleanEntries(); bun.default_allocator.destroy(this); } }; @@ -275,7 +300,7 @@ pub const FSWatcher = struct { const kinds = slice.items(.kind); var _on_file_update_path_buf: [bun.MAX_PATH_BYTES]u8 = undefined; - var ctx = this.watcher_instance.?; + var ctx = this.default_watcher.?; defer ctx.flushEvictions(); defer Output.flush(); @@ -540,241 +565,225 @@ pub const FSWatcher = struct { pub fn createFSWatcher(this: Arguments) !JSC.JSValue { const obj = try FSWatcher.init(this); - return obj.toJS(); + if (obj.js_this != .zero) { + return obj.js_this; + } + return JSC.JSValue.jsUndefined(); } }; - pub const JSObject = struct { - signal: ?*JSC.AbortSignal, - persistent: bool, - manager: ?*FSWatcher.Watcher, - fsevents_watcher: ?*FSEvents.FSEventsWatcher, - poll_ref: JSC.PollRef = .{}, - globalThis: ?*JSC.JSGlobalObject, - js_this: JSC.JSValue, - encoding: JSC.Node.Encoding, - closed: bool, - - pub usingnamespace JSC.Codegen.JSFSWatcher; - - pub fn getFSWatcher(this: *JSObject) *FSWatcher { - if (this.manager) |manager| return manager.ctx; - if (this.fsevents_watcher) |manager| return bun.cast(*FSWatcher, manager.ctx.?); - - @panic("No context attached to JSFSWatcher"); + pub fn initJS(this: *FSWatcher, listener: JSC.JSValue) void { + if (this.persistent) { + this.poll_ref.ref(this.ctx); } - pub fn init(globalThis: *JSC.JSGlobalObject, manager: ?*FSWatcher.Watcher, fsevents_watcher: ?*FSEvents.FSEventsWatcher, signal: ?*JSC.AbortSignal, listener: JSC.JSValue, persistent: bool, encoding: JSC.Node.Encoding) !*JSObject { - var obj = try globalThis.allocator().create(JSObject); - obj.* = .{ - .signal = null, - .persistent = persistent, - .manager = manager, - .fsevents_watcher = fsevents_watcher, - .globalThis = globalThis, - .js_this = .zero, - .encoding = encoding, - .closed = false, - }; - const instance = obj.getFSWatcher(); - - if (persistent) { - obj.poll_ref.ref(instance.ctx); - } - - var js_this = JSObject.toJS(obj, globalThis); - JSObject.listenerSetCached(js_this, globalThis, listener); - obj.js_this = js_this; - obj.js_this.protect(); - - if (signal) |s| { - - // already aborted? - if (s.aborted()) { - obj.signal = s.ref(); - // abort next tick - var current_task: FSWatchTask = .{ - .ctx = instance, - }; - current_task.append("", .abort, .none); - current_task.enqueue(); - } else { - // watch for abortion - obj.signal = s.ref().listen(JSObject, obj, JSObject.emitAbort); - } + const js_this = FSWatcher.toJS(this, this.globalThis); + js_this.ensureStillAlive(); + this.js_this = js_this; + FSWatcher.listenerSetCached(js_this, this.globalThis, listener); + + if (this.signal) |s| { + // already aborted? + if (s.aborted()) { + // safely abort next tick + var current_task: FSWatchTask = .{ + .ctx = this, + }; + current_task.append("", .abort, .none); + current_task.enqueue(); + } else { + // watch for abortion + this.signal = s.listen(FSWatcher, this, FSWatcher.emitAbort); } - return obj; } + } - pub fn emitIfAborted(this: *JSObject) void { - if (this.signal) |s| { - if (s.aborted()) { - const err = s.abortReason(); - this.emitAbort(err); - } + pub fn emitIfAborted(this: *FSWatcher) void { + if (this.signal) |s| { + if (s.aborted()) { + const err = s.abortReason(); + this.emitAbort(err); } } + } - pub fn emitAbort(this: *JSObject, err: JSC.JSValue) void { - if (this.closed) return; - defer this.close(true); - - err.ensureStillAlive(); - - if (this.globalThis) |globalThis| { - if (this.js_this != .zero) { - if (JSObject.listenerGetCached(this.js_this)) |listener| { - var args = [_]JSC.JSValue{ - JSC.ZigString.static("error").toValue(globalThis), - if (err.isEmptyOrUndefinedOrNull()) JSC.WebCore.AbortSignal.createAbortError(JSC.ZigString.static("The user aborted a request"), &JSC.ZigString.Empty, globalThis) else err, - }; - _ = listener.callWithGlobalThis( - globalThis, - &args, - ); - } - } + pub fn emitAbort(this: *FSWatcher, err: JSC.JSValue) void { + if (this.closed) return; + defer this.close(); + + err.ensureStillAlive(); + if (this.js_this != .zero) { + const js_this = this.js_this; + js_this.ensureStillAlive(); + if (FSWatcher.listenerGetCached(js_this)) |listener| { + listener.ensureStillAlive(); + var args = [_]JSC.JSValue{ + JSC.ZigString.static("error").toValue(this.globalThis), + if (err.isEmptyOrUndefinedOrNull()) JSC.WebCore.AbortSignal.createAbortError(JSC.ZigString.static("The user aborted a request"), &JSC.ZigString.Empty, this.globalThis) else err, + }; + _ = listener.callWithGlobalThis( + this.globalThis, + &args, + ); } } - pub fn emitError(this: *JSObject, err: string) void { - if (this.closed) return; - defer this.close(true); - - if (this.globalThis) |globalThis| { - if (this.js_this != .zero) { - if (JSObject.listenerGetCached(this.js_this)) |listener| { - var args = [_]JSC.JSValue{ - JSC.ZigString.static("error").toValue(globalThis), - JSC.ZigString.fromUTF8(err).toErrorInstance(globalThis), - }; - _ = listener.callWithGlobalThis( - globalThis, - &args, - ); - } - } + } + pub fn emitError(this: *FSWatcher, err: string) void { + if (this.closed) return; + defer this.close(); + + if (this.js_this != .zero) { + const js_this = this.js_this; + js_this.ensureStillAlive(); + if (FSWatcher.listenerGetCached(js_this)) |listener| { + listener.ensureStillAlive(); + var args = [_]JSC.JSValue{ + JSC.ZigString.static("error").toValue(this.globalThis), + JSC.ZigString.fromUTF8(err).toErrorInstance(this.globalThis), + }; + _ = listener.callWithGlobalThis( + this.globalThis, + &args, + ); } } + } - pub fn emit(this: *JSObject, file_name: string, comptime eventType: string) void { - if (this.globalThis) |globalThis| { - if (this.js_this != .zero) { - if (JSObject.listenerGetCached(this.js_this)) |listener| { - var filename: JSC.JSValue = JSC.JSValue.jsUndefined(); - if (file_name.len > 0) { - if (this.encoding == .buffer) - filename = JSC.ArrayBuffer.createBuffer(globalThis, file_name) - else if (this.encoding == .utf8) { - filename = JSC.ZigString.fromUTF8(file_name).toValueGC(globalThis); - } else { - // convert to desired encoding - filename = Encoder.toStringAtRuntime(file_name.ptr, file_name.len, globalThis, this.encoding); - } - } - var args = [_]JSC.JSValue{ - JSC.ZigString.static(eventType).toValue(globalThis), - filename, - }; - _ = listener.callWithGlobalThis( - globalThis, - &args, - ); + pub fn emit(this: *FSWatcher, file_name: string, comptime eventType: string) void { + if (this.js_this != .zero) { + const js_this = this.js_this; + js_this.ensureStillAlive(); + if (FSWatcher.listenerGetCached(js_this)) |listener| { + listener.ensureStillAlive(); + var filename: JSC.JSValue = JSC.JSValue.jsUndefined(); + if (file_name.len > 0) { + if (this.encoding == .buffer) + filename = JSC.ArrayBuffer.createBuffer(this.globalThis, file_name) + else if (this.encoding == .utf8) { + filename = JSC.ZigString.fromUTF8(file_name).toValueGC(this.globalThis); + } else { + // convert to desired encoding + filename = Encoder.toStringAtRuntime(file_name.ptr, file_name.len, this.globalThis, this.encoding); } } + var args = [_]JSC.JSValue{ + JSC.ZigString.static(eventType).toValue(this.globalThis), + filename, + }; + _ = listener.callWithGlobalThis( + this.globalThis, + &args, + ); } } + } - pub fn ref(this: *JSObject) void { - if (this.closed) return; - - if (!this.persistent) { - this.persistent = true; - this.poll_ref.ref(this.getFSWatcher().ctx); - } - } - - pub fn doRef(this: *JSObject, _: *JSC.JSGlobalObject, _: *JSC.CallFrame) callconv(.C) JSC.JSValue { - this.ref(); - return JSC.JSValue.jsUndefined(); + pub fn doRef(this: *FSWatcher, _: *JSC.JSGlobalObject, _: *JSC.CallFrame) callconv(.C) JSC.JSValue { + if (!this.closed and !this.persistent) { + this.persistent = true; + this.poll_ref.ref(this.ctx); } + return JSC.JSValue.jsUndefined(); + } - pub fn unref(this: *JSObject) void { - if (this.persistent) { - this.persistent = false; - this.poll_ref.unref(this.getFSWatcher().ctx); - } + pub fn doUnref(this: *FSWatcher, _: *JSC.JSGlobalObject, _: *JSC.CallFrame) callconv(.C) JSC.JSValue { + if (this.persistent) { + this.persistent = false; + this.poll_ref.unref(this.ctx); } + return JSC.JSValue.jsUndefined(); + } - pub fn doUnref(this: *JSObject, _: *JSC.JSGlobalObject, _: *JSC.CallFrame) callconv(.C) JSC.JSValue { - this.unref(); - return JSC.JSValue.jsUndefined(); - } + pub fn hasRef(this: *FSWatcher, _: *JSC.JSGlobalObject, _: *JSC.CallFrame) callconv(.C) JSC.JSValue { + return JSC.JSValue.jsBoolean(this.persistent); + } - pub fn hasRef(this: *JSObject, _: *JSC.JSGlobalObject, _: *JSC.CallFrame) callconv(.C) JSC.JSValue { - return JSC.JSValue.jsBoolean(this.persistent); - } + // this can be called from Watcher Thread or JS Context Thread + pub fn refTask(this: *FSWatcher) bool { + this.mutex.lock(); + defer this.mutex.unlock(); + // stop new references + if (this.closed) return false; + this.task_count += 1; + return true; + } - pub fn close( - this: *JSObject, - emitEvent: bool, - ) void { - if (!this.closed) { - if (this.signal) |signal| { - this.signal = null; - signal.detach(this); - } - this.closed = true; - if (emitEvent) { - this.emit("", "close"); - } + pub fn hasPendingActivity(this: *FSWatcher) callconv(.C) bool { + @fence(.Acquire); + return this.has_pending_activity.load(.Acquire); + } + // only called from Main Thread + pub fn updateHasPendingActivity(this: *FSWatcher) void { + @fence(.Release); + this.has_pending_activity.store(false, .Release); + } - this.detach(); - } + // unref is always called on main JS Context Thread + pub fn unrefTask(this: *FSWatcher) void { + this.mutex.lock(); + defer this.mutex.unlock(); + this.task_count -= 1; + if (this.closed and this.task_count == 0) { + this.updateHasPendingActivity(); } + } - pub fn detach(this: *JSObject) void { - this.unref(); + pub fn close( + this: *FSWatcher, + ) void { + this.mutex.lock(); + if (!this.closed) { + this.closed = true; - if (this.js_this != .zero) { - this.js_this.unprotect(); - this.js_this = .zero; - } + // emit should only be called unlocked + this.mutex.unlock(); - this.globalThis = null; + this.emit("", "close"); + // we immediately detach here + this.detach(); - if (this.signal) |signal| { - this.signal = null; - signal.detach(this); - } - if (this.manager) |manager| { - var ctx = manager.ctx; - this.manager = null; - ctx.js_watcher = null; - ctx.deinit(); - manager.deinit(true); + // no need to lock again, because ref checks closed and unref is only called on main thread + if (this.task_count == 0) { + this.updateHasPendingActivity(); } + } else { + this.mutex.unlock(); + } + } - if (this.fsevents_watcher) |manager| { - var ctx = bun.cast(*FSWatcher, manager.ctx.?); - ctx.js_watcher = null; - ctx.deinit(); - manager.deinit(); - } + // this can be called multiple times + pub fn detach(this: *FSWatcher) void { + if (this.persistent) { + this.persistent = false; + this.poll_ref.unref(this.ctx); } - pub fn doClose(this: *JSObject, _: *JSC.JSGlobalObject, _: *JSC.CallFrame) callconv(.C) JSC.JSValue { - this.close(true); - return JSC.JSValue.jsUndefined(); + if (this.signal) |signal| { + this.signal = null; + signal.detach(this); } - pub fn finalize(this: *JSObject) callconv(.C) void { - if (!this.closed) { - this.detach(); - } + if (this.default_watcher) |default_watcher| { + this.default_watcher = null; + default_watcher.deinit(true); + } - bun.default_allocator.destroy(this); + if (this.fsevents_watcher) |fsevents_watcher| { + this.fsevents_watcher = null; + fsevents_watcher.deinit(); } - }; + + this.js_this = .zero; + } + + pub fn doClose(this: *FSWatcher, _: *JSC.JSGlobalObject, _: *JSC.CallFrame) callconv(.C) JSC.JSValue { + this.close(); + return JSC.JSValue.jsUndefined(); + } + + pub fn finalize(this: *FSWatcher) callconv(.C) void { + this.deinit(); + } const PathResult = struct { fd: StoredFileDescriptorType = 0, @@ -837,6 +846,17 @@ pub const FSWatcher = struct { const vm = args.global_this.bunVM(); ctx.* = .{ .ctx = vm, + .mutex = Mutex.init(), + .signal = if (args.signal) |s| s.ref() else null, + .persistent = args.persistent, + .default_watcher = null, + .fsevents_watcher = null, + .globalThis = args.global_this, + .js_this = .zero, + .encoding = args.encoding, + .closed = false, + .task_count = 0, + .has_pending_activity = std.atomic.Atomic(bool).init(true), .verbose = args.verbose, .file_paths = bun.BabyList(string).initCapacity(bun.default_allocator, 1) catch |err| { ctx.deinit(); @@ -850,22 +870,17 @@ pub const FSWatcher = struct { ctx.entry_path = dir_path_clone; ctx.entry_dir = dir_path_clone; - var fsevents_watcher = FSEvents.watch(dir_path_clone, args.recursive, onFSEventUpdate, bun.cast(*anyopaque, ctx)) catch |err| { + ctx.fsevents_watcher = FSEvents.watch(dir_path_clone, args.recursive, onFSEventUpdate, bun.cast(*anyopaque, ctx)) catch |err| { ctx.deinit(); return err; }; - ctx.js_watcher = JSObject.init(args.global_this, null, fsevents_watcher, args.signal, args.listener, args.persistent, args.encoding) catch |err| { - ctx.deinit(); - fsevents_watcher.deinit(); - return err; - }; - + ctx.initJS(args.listener); return ctx; } } - var fs_watcher = FSWatcher.Watcher.init( + var default_watcher = FSWatcher.Watcher.init( ctx, vm.bundler.fs, bun.default_allocator, @@ -874,7 +889,7 @@ pub const FSWatcher = struct { return err; }; - ctx.watcher_instance = fs_watcher; + ctx.default_watcher = default_watcher; if (fs_type.is_file) { var file_path_clone = bun.default_allocator.dupeZ(u8, file_path) catch unreachable; @@ -882,32 +897,23 @@ pub const FSWatcher = struct { ctx.entry_path = file_path_clone; ctx.entry_dir = std.fs.path.dirname(file_path_clone) orelse file_path_clone; - fs_watcher.addFile(fs_type.fd, file_path_clone, FSWatcher.Watcher.getHash(file_path), options.Loader.file, 0, null, false) catch |err| { + default_watcher.addFile(fs_type.fd, file_path_clone, FSWatcher.Watcher.getHash(file_path), options.Loader.file, 0, null, false) catch |err| { ctx.deinit(); - fs_watcher.deinit(true); return err; }; } else { - addDirectory(ctx, fs_watcher, fs_type.fd, file_path, args.recursive, &buf, true) catch |err| { + addDirectory(ctx, default_watcher, fs_type.fd, file_path, args.recursive, &buf, true) catch |err| { ctx.deinit(); - fs_watcher.deinit(true); return err; }; } - fs_watcher.start() catch |err| { + default_watcher.start() catch |err| { ctx.deinit(); - - fs_watcher.deinit(true); - return err; - }; - - ctx.js_watcher = JSObject.init(args.global_this, fs_watcher, null, args.signal, args.listener, args.persistent, args.encoding) catch |err| { - ctx.deinit(); - fs_watcher.deinit(true); return err; }; + ctx.initJS(args.listener); return ctx; } }; diff --git a/src/watcher.zig b/src/watcher.zig index 044770dc4..e3b3600ad 100644 --- a/src/watcher.zig +++ b/src/watcher.zig @@ -519,7 +519,7 @@ pub fn NewWatcher(comptime ContextType: type) type { var changelist_array: [128]KEvent = std.mem.zeroes([128]KEvent); var changelist = &changelist_array; - while (this.running) { + while (true) { defer Output.flush(); var count_ = std.os.system.kevent( @@ -576,10 +576,12 @@ pub fn NewWatcher(comptime ContextType: type) type { defer this.mutex.unlock(); if (this.running) { this.ctx.onFileUpdate(watchevents, this.changed_filepaths[0..watchevents.len], this.watchlist); + } else { + break; } } } else if (Environment.isLinux) { - restart: while (this.running) { + restart: while (true) { defer Output.flush(); var events = try INotify.read(); @@ -588,14 +590,14 @@ pub fn NewWatcher(comptime ContextType: type) type { // TODO: is this thread safe? var remaining_events = events.len; - var name_off: u8 = 0; - var temp_name_list: [128]?[:0]u8 = undefined; - var temp_name_off: u8 = 0; - const eventlist_index = this.watchlist.items(.eventlist_index); while (remaining_events > 0) { - const slice = events[0..@min(remaining_events, this.watch_events.len)]; + var name_off: u8 = 0; + var temp_name_list: [128]?[:0]u8 = undefined; + var temp_name_off: u8 = 0; + + const slice = events[0..@min(128, remaining_events, this.watch_events.len)]; var watchevents = this.watch_events[0..slice.len]; var watch_event_id: u32 = 0; for (slice) |event| { @@ -647,8 +649,10 @@ pub fn NewWatcher(comptime ContextType: type) type { defer this.mutex.unlock(); if (this.running) { this.ctx.onFileUpdate(all_events[0 .. last_event_index + 1], this.changed_filepaths[0 .. name_off + 1], this.watchlist); - remaining_events -= slice.len; + } else { + break; } + remaining_events -= slice.len; } } } diff --git a/test/js/node/watch/fs.watch.test.js b/test/js/node/watch/fs.watch.test.js index 56e1798f1..33d05df29 100644 --- a/test/js/node/watch/fs.watch.test.js +++ b/test/js/node/watch/fs.watch.test.js @@ -17,6 +17,8 @@ const testDir = tempDirWithFiles("watch", { "relative.txt": "hello", "abort.txt": "hello", "url.txt": "hello", + "close.txt": "hello", + "close-close.txt": "hello", [encodingFileName]: "hello", }); @@ -105,6 +107,7 @@ describe("fs.watch", () => { let err = undefined; watcher.on("change", (event, filename) => { const basename = path.basename(filename); + if (basename === "subfolder") return; count++; try { @@ -274,6 +277,46 @@ describe("fs.watch", () => { } }); + test("calling close from error event should not throw", done => { + const filepath = path.join(testDir, "close.txt"); + try { + const ac = new AbortController(); + const watcher = fs.watch(pathToFileURL(filepath), { signal: ac.signal }); + watcher.once("error", () => { + try { + watcher.close(); + done(); + } catch (e) { + done("Should not error when calling close from error event"); + } + }); + ac.abort(); + } catch (e) { + done(e); + } + }); + + test("calling close from close event should not throw", done => { + const filepath = path.join(testDir, "close-close.txt"); + try { + const ac = new AbortController(); + const watcher = fs.watch(pathToFileURL(filepath), { signal: ac.signal }); + + watcher.once("close", () => { + try { + watcher.close(); + done(); + } catch (e) { + done("Should not error when calling close from close event"); + } + }); + + ac.abort(); + } catch (e) { + done(e); + } + }); + test("Signal aborted after creating the watcher", async () => { const filepath = path.join(testDir, "abort.txt"); @@ -300,7 +343,7 @@ describe("fs.watch", () => { }); }); -describe("fs.promises.watchFile", () => { +describe("fs.promises.watch", () => { test("add file/folder to folder", async () => { let count = 0; const root = path.join(testDir, "add-promise-directory"); -- cgit v1.2.3 From 662335d81aa39dc53b83f2759312ff0ff3a93af2 Mon Sep 17 00:00:00 2001 From: Brúnó Salomon <35275408+bru02@users.noreply.github.com> Date: Mon, 26 Jun 2023 01:48:03 +0200 Subject: chore: update lol-html version (#3356) * chore: update lol-html version * add tests --------- Co-authored-by: Jarred Sumner --- src/bun.js/api/html_rewriter.zig | 7 +++++++ src/deps/lol-html | 2 +- src/deps/lol-html.zig | 8 ++++++-- src/generated_versions_list.zig | 2 +- test/js/workerd/html-rewriter.test.js | 15 +++++++++++++++ 5 files changed, 30 insertions(+), 4 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/api/html_rewriter.zig b/src/bun.js/api/html_rewriter.zig index 93a41b095..d09c14e42 100644 --- a/src/bun.js/api/html_rewriter.zig +++ b/src/bun.js/api/html_rewriter.zig @@ -1016,6 +1016,9 @@ pub const TextChunk = struct { .removed = .{ .get = getterWrap(TextChunk, "removed"), }, + .lastInTextNode = .{ + .get = getterWrap(TextChunk, "lastInTextNode"), + }, .text = .{ .get = getterWrap(TextChunk, "getText"), }, @@ -1084,6 +1087,10 @@ pub const TextChunk = struct { return JSC.JSValue.jsBoolean(this.text_chunk.?.isRemoved()); } + pub fn lastInTextNode(this: *TextChunk, _: *JSGlobalObject) JSValue { + return JSC.JSValue.jsBoolean(this.text_chunk.?.isLastInTextNode()); + } + pub fn finalize(this: *TextChunk) void { this.text_chunk = null; bun.default_allocator.destroy(this); diff --git a/src/deps/lol-html b/src/deps/lol-html index 2eed349dc..2681dcf0b 160000 --- a/src/deps/lol-html +++ b/src/deps/lol-html @@ -1 +1 @@ -Subproject commit 2eed349dcdfa4ff5c19fe7c6e501cfd687601033 +Subproject commit 2681dcf0b3e6907111565199df8c43cc9aab7fe8 diff --git a/src/deps/lol-html.zig b/src/deps/lol-html.zig index 1d71e6aa6..9c5345046 100644 --- a/src/deps/lol-html.zig +++ b/src/deps/lol-html.zig @@ -393,7 +393,8 @@ pub const Element = opaque { extern fn lol_html_element_is_removed(element: *const Element) bool; extern fn lol_html_element_user_data_set(element: *const Element, user_data: ?*anyopaque) void; extern fn lol_html_element_user_data_get(element: *const Element) ?*anyopaque; - extern fn lol_html_element_on_end_tag(element: *Element, end_tag_handler: lol_html_end_tag_handler_t, user_data: ?*anyopaque) c_int; + extern fn lol_html_element_add_end_tag_handler(element: *Element, end_tag_handler: lol_html_end_tag_handler_t, user_data: ?*anyopaque) c_int; + extern fn lol_html_element_clear_end_tag_handlers(element: *Element) void; pub fn getAttribute(element: *const Element, name: []const u8) HTMLString { auto_disable(); @@ -502,7 +503,10 @@ pub const Element = opaque { } pub fn onEndTag(element: *Element, end_tag_handler: lol_html_end_tag_handler_t, user_data: ?*anyopaque) Error!void { auto_disable(); - return switch (lol_html_element_on_end_tag(element, end_tag_handler, user_data)) { + + lol_html_element_clear_end_tag_handlers(element); + + return switch (lol_html_element_add_end_tag_handler(element, end_tag_handler, user_data)) { 0 => {}, -1 => error.Fail, else => unreachable, diff --git a/src/generated_versions_list.zig b/src/generated_versions_list.zig index 90bee0b8c..c27f47c83 100644 --- a/src/generated_versions_list.zig +++ b/src/generated_versions_list.zig @@ -9,6 +9,6 @@ pub const webkit = "60d11703a533fd694cd1d6ddda04813eecb5d69f"; pub const zig = @import("std").fmt.comptimePrint("{}", .{@import("builtin").zig_version}); pub const zlib = "885674026394870b7e7a05b7bf1ec5eb7bd8a9c0"; pub const tinycc = "2d3ad9e0d32194ad7fd867b66ebe218dcc8cb5cd"; -pub const lolhtml = "2eed349dcdfa4ff5c19fe7c6e501cfd687601033"; +pub const lolhtml = "2681dcf0b3e6907111565199df8c43cc9aab7fe8"; pub const c_ares = "0e7a5dee0fbb04080750cf6eabbe89d8bae87faa"; pub const usockets = "fafc241e8664243fc0c51d69684d5d02b9805134"; diff --git a/test/js/workerd/html-rewriter.test.js b/test/js/workerd/html-rewriter.test.js index 1ca92a567..b6131a09f 100644 --- a/test/js/workerd/html-rewriter.test.js +++ b/test/js/workerd/html-rewriter.test.js @@ -300,4 +300,19 @@ describe("HTMLRewriter", () => { .text(), ).toEqual("
"); }); + + it("it supports lastInTextNode", async () => { + let lastInTextNode; + + await new HTMLRewriter() + .on("p", { + text(text) { + lastInTextNode ??= text.lastInTextNode; + }, + }) + .transform(new Response("

Lorem ipsum!

")) + .text(); + + expect(lastInTextNode).toBeBoolean(); + }); }); -- cgit v1.2.3 From 116bcf424564a5f38ddf5f99f34453c175526fdc Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Sun, 25 Jun 2023 18:49:16 -0700 Subject: Fixes #3334 (#3401) Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> --- src/bun.js/api/html_rewriter.zig | 97 +++++++++++++++++++++++------------ test/js/workerd/html-rewriter.test.js | 21 ++++++++ 2 files changed, 84 insertions(+), 34 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/api/html_rewriter.zig b/src/bun.js/api/html_rewriter.zig index d09c14e42..5e14d5503 100644 --- a/src/bun.js/api/html_rewriter.zig +++ b/src/bun.js/api/html_rewriter.zig @@ -106,7 +106,7 @@ pub const HTMLRewriter = struct { var selector = LOLHTML.HTMLSelector.parse(selector_slice) catch return throwLOLHTMLError(global); - var handler_ = ElementHandler.init(global, listener, exception); + var handler_ = ElementHandler.init(global, listener, exception) catch return .zero; if (exception.* != null) { selector.deinit(); return JSValue.fromRef(exception.*); @@ -154,7 +154,7 @@ pub const HTMLRewriter = struct { thisObject: JSC.C.JSObjectRef, exception: JSC.C.ExceptionRef, ) JSValue { - var handler_ = DocumentHandler.init(global, listener, exception); + var handler_ = DocumentHandler.init(global, listener, exception) catch return .zero; if (exception.* != null) { return JSValue.fromRef(exception.*); } @@ -446,10 +446,14 @@ pub const HTMLRewriter = struct { }, }; - result.body.init.headers = original.body.init.headers; result.body.init.method = original.body.init.method; result.body.init.status_code = original.body.init.status_code; + // https://github.com/oven-sh/bun/issues/3334 + if (original.body.init.headers) |headers| { + result.body.init.headers = headers.cloneThis(global); + } + result.url = bun.default_allocator.dupe(u8, original.url) catch unreachable; result.status_text = bun.default_allocator.dupe(u8, original.status_text) catch unreachable; @@ -723,29 +727,44 @@ const DocumentHandler = struct { "onEndCallback", ); - pub fn init(global: *JSGlobalObject, thisObject: JSValue, exception: JSC.C.ExceptionRef) DocumentHandler { + pub fn init(global: *JSGlobalObject, thisObject: JSValue, exception: JSC.C.ExceptionRef) !DocumentHandler { var handler = DocumentHandler{ .thisObject = thisObject, .global = global, }; - switch (thisObject.jsType()) { - .Object, .ProxyObject, .Cell, .FinalObject => {}, - else => |kind| { - JSC.throwInvalidArguments( - "Expected object but received {s}", - .{@as(string, @tagName(kind))}, - global, - exception, - ); - return undefined; - }, + if (!thisObject.isObject()) { + JSC.throwInvalidArguments( + "Expected object", + .{}, + global, + exception, + ); + return error.InvalidArguments; + } + + errdefer { + if (handler.onDocTypeCallback) |cb| { + cb.unprotect(); + } + + if (handler.onCommentCallback) |cb| { + cb.unprotect(); + } + + if (handler.onTextCallback) |cb| { + cb.unprotect(); + } + + if (handler.onEndCallback) |cb| { + cb.unprotect(); + } } if (thisObject.get(global, "doctype")) |val| { if (val.isUndefinedOrNull() or !val.isCell() or !val.isCallable(global.vm())) { JSC.throwInvalidArguments("doctype must be a function", .{}, global, exception); - return undefined; + return error.InvalidArguments; } JSC.C.JSValueProtect(global, val.asObjectRef()); handler.onDocTypeCallback = val; @@ -754,7 +773,7 @@ const DocumentHandler = struct { if (thisObject.get(global, "comments")) |val| { if (val.isUndefinedOrNull() or !val.isCell() or !val.isCallable(global.vm())) { JSC.throwInvalidArguments("comments must be a function", .{}, global, exception); - return undefined; + return error.InvalidArguments; } JSC.C.JSValueProtect(global, val.asObjectRef()); handler.onCommentCallback = val; @@ -763,7 +782,7 @@ const DocumentHandler = struct { if (thisObject.get(global, "text")) |val| { if (val.isUndefinedOrNull() or !val.isCell() or !val.isCallable(global.vm())) { JSC.throwInvalidArguments("text must be a function", .{}, global, exception); - return undefined; + return error.InvalidArguments; } JSC.C.JSValueProtect(global, val.asObjectRef()); handler.onTextCallback = val; @@ -772,7 +791,7 @@ const DocumentHandler = struct { if (thisObject.get(global, "end")) |val| { if (val.isUndefinedOrNull() or !val.isCell() or !val.isCallable(global.vm())) { JSC.throwInvalidArguments("end must be a function", .{}, global, exception); - return undefined; + return error.InvalidArguments; } JSC.C.JSValueProtect(global, val.asObjectRef()); handler.onEndCallback = val; @@ -863,29 +882,39 @@ const ElementHandler = struct { global: *JSGlobalObject, ctx: ?*HTMLRewriter.BufferOutputSink = null, - pub fn init(global: *JSGlobalObject, thisObject: JSValue, exception: JSC.C.ExceptionRef) ElementHandler { + pub fn init(global: *JSGlobalObject, thisObject: JSValue, exception: JSC.C.ExceptionRef) !ElementHandler { var handler = ElementHandler{ .thisObject = thisObject, .global = global, }; + errdefer { + if (handler.onCommentCallback) |cb| { + cb.unprotect(); + } - switch (thisObject.jsType()) { - .Object, .ProxyObject, .Cell, .FinalObject => {}, - else => |kind| { - JSC.throwInvalidArguments( - "Expected object but received {s}", - .{@as(string, @tagName(kind))}, - global, - exception, - ); - return undefined; - }, + if (handler.onElementCallback) |cb| { + cb.unprotect(); + } + + if (handler.onTextCallback) |cb| { + cb.unprotect(); + } + } + + if (!thisObject.isObject()) { + JSC.throwInvalidArguments( + "Expected object", + .{}, + global, + exception, + ); + return error.InvalidArguments; } if (thisObject.get(global, "element")) |val| { if (val.isUndefinedOrNull() or !val.isCell() or !val.isCallable(global.vm())) { JSC.throwInvalidArguments("element must be a function", .{}, global, exception); - return undefined; + return error.InvalidArguments; } JSC.C.JSValueProtect(global, val.asObjectRef()); handler.onElementCallback = val; @@ -894,7 +923,7 @@ const ElementHandler = struct { if (thisObject.get(global, "comments")) |val| { if (val.isUndefinedOrNull() or !val.isCell() or !val.isCallable(global.vm())) { JSC.throwInvalidArguments("comments must be a function", .{}, global, exception); - return undefined; + return error.InvalidArguments; } JSC.C.JSValueProtect(global, val.asObjectRef()); handler.onCommentCallback = val; @@ -903,7 +932,7 @@ const ElementHandler = struct { if (thisObject.get(global, "text")) |val| { if (val.isUndefinedOrNull() or !val.isCell() or !val.isCallable(global.vm())) { JSC.throwInvalidArguments("text must be a function", .{}, global, exception); - return undefined; + return error.InvalidArguments; } JSC.C.JSValueProtect(global, val.asObjectRef()); handler.onTextCallback = val; diff --git a/test/js/workerd/html-rewriter.test.js b/test/js/workerd/html-rewriter.test.js index b6131a09f..3f7b7493d 100644 --- a/test/js/workerd/html-rewriter.test.js +++ b/test/js/workerd/html-rewriter.test.js @@ -316,3 +316,24 @@ describe("HTMLRewriter", () => { expect(lastInTextNode).toBeBoolean(); }); }); + +// By not segfaulting, this test passes +it("#3334 regression", async () => { + for (let i = 0; i < 10; i++) { + const headers = new Headers({ + "content-type": "text/html", + }); + const response = new Response("
content
", { headers }); + + const result = await new HTMLRewriter() + .on("div", { + element(elem) { + elem.setInnerContent("new"); + }, + }) + .transform(response) + .text(); + expect(result).toEqual("
new
"); + } + Bun.gc(true); +}); -- cgit v1.2.3 From 76626ac54b83a5a9a24abee1bc35f13a2196504d Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Sun, 25 Jun 2023 19:48:56 -0700 Subject: Fix test failures in import.meta (#3403) * Fix test failures in import.meta * regenerate * Use bound functions for `import.meta.require` and `import.meta.require.resolve` and `Module.createRequire` --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> --- src/bun.js/bindings/ImportMetaObject.cpp | 193 ++++++++++++++-------- src/bun.js/bindings/ImportMetaObject.h | 4 +- src/bun.js/bindings/ZigGlobalObject.cpp | 17 +- src/bun.js/bindings/ZigGlobalObject.h | 6 +- src/bun.js/modules/NodeModuleModule.cpp | 23 +-- src/js/builtins/ImportMetaObject.ts | 11 +- src/js/builtins/Module.ts | 4 +- src/js/out/WebCoreJSBuiltins.cpp | 238 ++++++++++++++-------------- src/js/out/modules/node/assert.js | 84 +++++----- src/js/out/modules/node/crypto.js | 8 +- src/js/out/modules/node/path.js | 2 +- src/js/out/modules/node/path.posix.js | 2 +- src/js/out/modules/node/stream.consumers.js | 2 +- src/js/out/modules/node/stream.js | 4 +- src/js/out/modules/node/util.js | 32 ++-- test/js/bun/resolve/import-meta.test.js | 11 +- 16 files changed, 350 insertions(+), 291 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/bindings/ImportMetaObject.cpp b/src/bun.js/bindings/ImportMetaObject.cpp index d201dafca..037305c81 100644 --- a/src/bun.js/bindings/ImportMetaObject.cpp +++ b/src/bun.js/bindings/ImportMetaObject.cpp @@ -59,6 +59,7 @@ static EncodedJSValue functionRequireResolve(JSC::JSGlobalObject* globalObject, return JSC::JSValue::encode(JSC::JSValue {}); } default: { + JSValue thisValue = callFrame->thisValue(); JSC::JSValue moduleName = callFrame->argument(0); auto doIt = [&](const WTF::String& fromStr) -> JSC::EncodedJSValue { @@ -130,7 +131,14 @@ Zig::ImportMetaObject* Zig::ImportMetaObject::create(JSC::JSGlobalObject* global JSC_DECLARE_HOST_FUNCTION(jsFunctionRequireResolve); JSC_DEFINE_HOST_FUNCTION(jsFunctionRequireResolve, (JSC::JSGlobalObject * globalObject, JSC::CallFrame* callFrame)) { - return functionRequireResolve(globalObject, callFrame, callFrame->thisValue().toWTFString(globalObject)); + JSValue thisValue = callFrame->thisValue(); + WTF::String fromStr; + + if (thisValue.isString()) { + fromStr = thisValue.toWTFString(globalObject); + } + + return functionRequireResolve(globalObject, callFrame, fromStr); } JSC_DEFINE_CUSTOM_GETTER(jsRequireCacheGetter, (JSC::JSGlobalObject * globalObject, JSC::EncodedJSValue thisValue, JSC::PropertyName)) @@ -224,32 +232,49 @@ public: } }; -Structure* Zig::ImportMetaObject::createRequireFunctionStructure(VM& vm, JSGlobalObject* globalObject) +JSObject* Zig::ImportMetaObject::createRequireResolveFunctionUnbound(VM& vm, JSGlobalObject* globalObject) { - - return nullptr; + return ResolveFunction::create(globalObject); } -JSObject* Zig::ImportMetaObject::createRequireFunction(VM& vm, JSGlobalObject* lexicalGlobalObject, const WTF::String& pathString) +JSObject* Zig::ImportMetaObject::createRequireFunctionUnbound(VM& vm, JSGlobalObject* globalObject) { - auto* globalObject = lexicalGlobalObject; - JSFunction* requireFunction = JSFunction::create(vm, importMetaObjectRequireCodeGenerator(vm), lexicalGlobalObject); + auto& builtinNames = WebCore::builtinNames(vm); JSC::JSFunction* requireDotMainFunction = JSFunction::create( vm, moduleMainCodeGenerator(vm), globalObject->globalScope()); - requireFunction->putDirect( + auto* prototype = JSC::constructEmptyObject(globalObject, globalObject->functionPrototype()); + prototype->putDirect( vm, JSC::Identifier::fromString(vm, "main"_s), JSC::GetterSetter::create(vm, globalObject, requireDotMainFunction, JSValue()), PropertyAttribute::Builtin | PropertyAttribute::Accessor | PropertyAttribute::ReadOnly | 0); + prototype->putDirect(vm, JSC::Identifier::fromString(vm, "extensions"_s), constructEmptyObject(globalObject), 0); + prototype->putDirectCustomAccessor(vm, JSC::Identifier::fromString(vm, "cache"_s), JSC::CustomGetterSetter::create(vm, Zig::jsRequireCacheGetter, Zig::jsRequireCacheSetter), 0); + return JSFunction::create(vm, importMetaObjectRequireCodeGenerator(vm), globalObject, JSFunction::createStructure(vm, globalObject, prototype)); +} + +JSObject* Zig::ImportMetaObject::createRequireFunction(VM& vm, JSGlobalObject* lexicalGlobalObject, const WTF::String& pathString) +{ + auto* globalObject = jsCast(lexicalGlobalObject); + auto& builtinNames = WebCore::builtinNames(vm); + + JSFunction* resolveFunctionUnbound = jsCast(globalObject->importMetaRequireResolveFunctionUnbound()); + JSFunction* requireFunctionUnbound = jsCast(globalObject->importMetaRequireFunctionUnbound()); + auto str = jsString(vm, pathString); + + JSFunction* requireFunction = JSC::JSBoundFunction::create(vm, + globalObject, requireFunctionUnbound, + str, ArgList(), 1, jsString(vm, String("require"_s))); - requireFunction->putDirect(vm, JSC::Identifier::fromString(vm, "extensions"_s), JSC::constructEmptyObject(globalObject), 0); - requireFunction->putDirectCustomAccessor(vm, JSC::Identifier::fromString(vm, "cache"_s), JSC::CustomGetterSetter::create(vm, Zig::jsRequireCacheGetter, Zig::jsRequireCacheSetter), 0); - requireFunction->putDirect(vm, JSC::Identifier::fromString(vm, "resolve"_s), ResolveFunction::create(globalObject), JSC::PropertyAttribute::Function | 0); - requireFunction->putDirect(vm, JSC::Identifier::fromString(vm, "path"_s), jsString(vm, pathString)); + JSFunction* resolveFunction = JSC::JSBoundFunction::create(vm, + globalObject, resolveFunctionUnbound, + str, ArgList(), 2, jsString(vm, String("resolve"_s))); + + requireFunction->putDirect(vm, builtinNames.resolvePublicName(), resolveFunction, PropertyAttribute::Function | 0); return requireFunction; } @@ -262,84 +287,107 @@ extern "C" EncodedJSValue functionImportMeta__resolveSync(JSC::JSGlobalObject* g JSC::VM& vm = globalObject->vm(); auto scope = DECLARE_THROW_SCOPE(globalObject->vm()); - switch (callFrame->argumentCount()) { - case 0: { + JSValue thisValue = callFrame->thisValue(); + JSC::JSValue moduleName = callFrame->argument(0); + JSC::JSValue fromValue = callFrame->argument(1); - // not "requires" because "require" could be confusing - JSC::throwTypeError(globalObject, scope, "needs 1 argument (a string)"_s); + if (moduleName.isUndefinedOrNull()) { + JSC::throwTypeError(globalObject, scope, "expects a string"_s); scope.release(); return JSC::JSValue::encode(JSC::JSValue {}); } - default: { - JSC::JSValue moduleName = callFrame->argument(0); - if (moduleName.isUndefinedOrNull()) { - JSC::throwTypeError(globalObject, scope, "expects a string"_s); - scope.release(); - return JSC::JSValue::encode(JSC::JSValue {}); - } + JSC__JSValue from; + bool isESM = true; - JSC__JSValue from; - bool isESM = true; + if (callFrame->argumentCount() > 1) { - if (callFrame->argumentCount() > 1) { - JSC::JSValue fromValue = callFrame->argument(1); - - if (callFrame->argumentCount() > 2) { - JSC::JSValue isESMValue = callFrame->argument(2); - if (isESMValue.isBoolean()) { - isESM = isESMValue.toBoolean(globalObject); - RETURN_IF_EXCEPTION(scope, JSC::JSValue::encode(JSC::JSValue {})); - } + if (callFrame->argumentCount() > 2) { + JSC::JSValue isESMValue = callFrame->argument(2); + if (isESMValue.isBoolean()) { + isESM = isESMValue.toBoolean(globalObject); + RETURN_IF_EXCEPTION(scope, JSC::JSValue::encode(JSC::JSValue {})); } + } - if (!fromValue.isUndefinedOrNull() && fromValue.isObject()) { + if (!fromValue.isUndefinedOrNull() && fromValue.isObject()) { - if (auto pathsObject = fromValue.getObject()->getIfPropertyExists(globalObject, JSC::Identifier::fromString(vm, "paths"_s))) { - if (pathsObject.isCell() && pathsObject.asCell()->type() == JSC::JSType::ArrayType) { - auto pathsArray = JSC::jsCast(pathsObject); - if (pathsArray->length() > 0) { - fromValue = pathsArray->getIndex(globalObject, 0); - RETURN_IF_EXCEPTION(scope, JSC::JSValue::encode(JSC::JSValue {})); - } + if (auto pathsObject = fromValue.getObject()->getIfPropertyExists(globalObject, JSC::Identifier::fromString(vm, "paths"_s))) { + if (pathsObject.isCell() && pathsObject.asCell()->type() == JSC::JSType::ArrayType) { + auto pathsArray = JSC::jsCast(pathsObject); + if (pathsArray->length() > 0) { + fromValue = pathsArray->getIndex(globalObject, 0); + RETURN_IF_EXCEPTION(scope, JSC::JSValue::encode(JSC::JSValue {})); } } - - } else if (fromValue.isBoolean()) { - isESM = fromValue.toBoolean(globalObject); - RETURN_IF_EXCEPTION(scope, JSC::JSValue::encode(JSC::JSValue {})); - } - - if (fromValue.isString()) { - from = JSC::JSValue::encode(fromValue); } - } else { - JSC::JSObject* thisObject = JSC::jsDynamicCast(callFrame->thisValue()); - if (UNLIKELY(!thisObject)) { - auto scope = DECLARE_THROW_SCOPE(globalObject->vm()); - JSC::throwTypeError(globalObject, scope, "import.meta.resolveSync must be bound to an import.meta object"_s); - return JSC::JSValue::encode(JSC::JSValue {}); - } - - auto clientData = WebCore::clientData(vm); - JSValue pathProperty = thisObject->getIfPropertyExists(globalObject, clientData->builtinNames().pathPublicName()); - - if (pathProperty && pathProperty.isString()) - from = JSC::JSValue::encode(pathProperty); + } else if (fromValue.isBoolean()) { + isESM = fromValue.toBoolean(globalObject); + RETURN_IF_EXCEPTION(scope, JSC::JSValue::encode(JSC::JSValue {})); + fromValue = JSC::jsUndefined(); } - auto result = Bun__resolveSync(globalObject, JSC::JSValue::encode(moduleName), from, isESM); + if (fromValue.isString()) { + from = JSC::JSValue::encode(fromValue); + } else if (thisValue.isString()) { + from = JSC::JSValue::encode(thisValue); + } - if (!JSC::JSValue::decode(result).isString()) { - JSC::throwException(globalObject, scope, JSC::JSValue::decode(result)); + } else if (thisValue.isString()) { + from = JSC::JSValue::encode(thisValue); + } else { + JSC::JSObject* thisObject = JSC::jsDynamicCast(thisValue); + if (UNLIKELY(!thisObject)) { + auto scope = DECLARE_THROW_SCOPE(globalObject->vm()); + JSC::throwTypeError(globalObject, scope, "import.meta.resolveSync must be bound to an import.meta object"_s); return JSC::JSValue::encode(JSC::JSValue {}); } + auto clientData = WebCore::clientData(vm); + JSValue pathProperty = thisObject->getIfPropertyExists(globalObject, clientData->builtinNames().pathPublicName()); + + if (pathProperty && pathProperty.isString()) + from = JSC::JSValue::encode(pathProperty); + } + + auto result = Bun__resolveSync(globalObject, JSC::JSValue::encode(moduleName), from, isESM); + + if (!JSC::JSValue::decode(result).isString()) { + JSC::throwException(globalObject, scope, JSC::JSValue::decode(result)); + return JSC::JSValue::encode(JSC::JSValue {}); + } + + scope.release(); + return result; +} + +extern "C" EncodedJSValue functionImportMeta__resolveSyncPrivate(JSC::JSGlobalObject* globalObject, JSC::CallFrame* callFrame) +{ + JSC::VM& vm = globalObject->vm(); + auto scope = DECLARE_THROW_SCOPE(globalObject->vm()); + + JSC::JSValue moduleName = callFrame->argument(0); + JSValue from = callFrame->argument(1); + bool isESM = callFrame->argument(2).asBoolean(); + + if (moduleName.isUndefinedOrNull()) { + JSC::throwTypeError(globalObject, scope, "expected module name as a string"_s); scope.release(); - return result; + return JSC::JSValue::encode(JSC::JSValue {}); } + + RETURN_IF_EXCEPTION(scope, JSC::JSValue::encode(JSC::JSValue {})); + + auto result = Bun__resolveSync(globalObject, JSC::JSValue::encode(moduleName), JSValue::encode(from), isESM); + + if (!JSC::JSValue::decode(result).isString()) { + JSC::throwException(globalObject, scope, JSC::JSValue::decode(result)); + return JSC::JSValue::encode(JSC::JSValue {}); } + + scope.release(); + return result; } JSC_DECLARE_HOST_FUNCTION(functionImportMeta__resolve); @@ -536,7 +584,16 @@ void ImportMetaObject::finishCreation(VM& vm) this->requireProperty.initLater([](const JSC::LazyProperty::Initializer& init) { ImportMetaObject* meta = jsCast(init.owner); - JSFunction* value = jsCast(ImportMetaObject::createRequireFunction(init.vm, meta->globalObject(), meta->url)); + + WTF::URL url = meta->url.startsWith('/') ? WTF::URL::fileURLWithFileSystemPath(meta->url) : WTF::URL(meta->url); + WTF::StringView path; + if (url.protocolIs("file"_s)) { + path = url.fileSystemPath(); + } else { + path = url.path(); + } + + JSFunction* value = jsCast(ImportMetaObject::createRequireFunction(init.vm, meta->globalObject(), path.toString())); init.set(value); }); this->urlProperty.initLater([](const JSC::LazyProperty::Initializer& init) { diff --git a/src/bun.js/bindings/ImportMetaObject.h b/src/bun.js/bindings/ImportMetaObject.h index 2794ddbb6..6b5661039 100644 --- a/src/bun.js/bindings/ImportMetaObject.h +++ b/src/bun.js/bindings/ImportMetaObject.h @@ -9,6 +9,7 @@ #include "JSDOMWrapperCache.h" extern "C" JSC_DECLARE_HOST_FUNCTION(functionImportMeta__resolveSync); +extern "C" JSC_DECLARE_HOST_FUNCTION(functionImportMeta__resolveSyncPrivate); extern "C" JSC::EncodedJSValue Bun__resolve(JSC::JSGlobalObject* global, JSC::EncodedJSValue specifier, JSC::EncodedJSValue from, bool is_esm); extern "C" JSC::EncodedJSValue Bun__resolveSync(JSC::JSGlobalObject* global, JSC::EncodedJSValue specifier, JSC::EncodedJSValue from, bool is_esm); extern "C" JSC::EncodedJSValue Bun__resolveSyncWithSource(JSC::JSGlobalObject* global, JSC::EncodedJSValue specifier, BunString* from, bool is_esm); @@ -27,7 +28,8 @@ public: static ImportMetaObject* create(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::Structure* structure, const WTF::String& url); - static JSC::Structure* createRequireFunctionStructure(JSC::VM& vm, JSGlobalObject* globalObject); + static JSC::JSObject* createRequireFunctionUnbound(JSC::VM& vm, JSGlobalObject* globalObject); + static JSC::JSObject* createRequireResolveFunctionUnbound(JSC::VM& vm, JSGlobalObject* globalObject); static JSObject* createRequireFunction(VM& vm, JSGlobalObject* lexicalGlobalObject, const WTF::String& pathString); static ImportMetaObject* create(JSC::JSGlobalObject* globalObject, JSC::JSString* keyString); diff --git a/src/bun.js/bindings/ZigGlobalObject.cpp b/src/bun.js/bindings/ZigGlobalObject.cpp index 401485f51..38d5fb1d6 100644 --- a/src/bun.js/bindings/ZigGlobalObject.cpp +++ b/src/bun.js/bindings/ZigGlobalObject.cpp @@ -2975,9 +2975,15 @@ void GlobalObject::finishCreation(VM& vm) init.set(structure); }); - m_importMetaRequireStructure.initLater( - [](const JSC::LazyProperty::Initializer& init) { - init.set(Zig::ImportMetaObject::createRequireFunctionStructure(init.vm, jsCast(init.owner))); + m_importMetaRequireFunctionUnbound.initLater( + [](const JSC::LazyProperty::Initializer& init) { + init.set( + Zig::ImportMetaObject::createRequireFunctionUnbound(init.vm, init.owner)); + }); + m_importMetaRequireResolveFunctionUnbound.initLater( + [](const JSC::LazyProperty::Initializer& init) { + init.set( + Zig::ImportMetaObject::createRequireResolveFunctionUnbound(init.vm, init.owner)); }); m_importMetaObjectStructure.initLater( @@ -3559,7 +3565,7 @@ void GlobalObject::addBuiltinGlobals(JSC::VM& vm) putDirectBuiltinFunction(vm, this, builtinNames.loadCJS2ESMPrivateName(), importMetaObjectLoadCJS2ESMCodeGenerator(vm), PropertyAttribute::Builtin | PropertyAttribute::DontDelete | PropertyAttribute::ReadOnly); putDirectBuiltinFunction(vm, this, builtinNames.internalRequirePrivateName(), importMetaObjectInternalRequireCodeGenerator(vm), PropertyAttribute::Builtin | PropertyAttribute::DontDelete | PropertyAttribute::ReadOnly); putDirectNativeFunction(vm, this, builtinNames.createUninitializedArrayBufferPrivateName(), 1, functionCreateUninitializedArrayBuffer, ImplementationVisibility::Public, NoIntrinsic, PropertyAttribute::DontDelete | PropertyAttribute::ReadOnly | PropertyAttribute::Function); - putDirectNativeFunction(vm, this, builtinNames.resolveSyncPrivateName(), 1, functionImportMeta__resolveSync, ImplementationVisibility::Public, NoIntrinsic, PropertyAttribute::DontDelete | PropertyAttribute::ReadOnly | PropertyAttribute::Function); + putDirectNativeFunction(vm, this, builtinNames.resolveSyncPrivateName(), 1, functionImportMeta__resolveSyncPrivate, ImplementationVisibility::Public, NoIntrinsic, PropertyAttribute::DontDelete | PropertyAttribute::ReadOnly | PropertyAttribute::Function); putDirectCustomAccessor(vm, JSC::Identifier::fromString(vm, "process"_s), JSC::CustomGetterSetter::create(vm, property_lazyProcessGetter, property_lazyProcessSetter), JSC::PropertyAttribute::CustomAccessor | 0); @@ -4033,7 +4039,8 @@ void GlobalObject::visitChildrenImpl(JSCell* cell, Visitor& visitor) thisObject->m_emitReadableNextTickFunction.visit(visitor); thisObject->m_JSBufferSubclassStructure.visit(visitor); - thisObject->m_importMetaRequireStructure.visit(visitor); + thisObject->m_importMetaRequireFunctionUnbound.visit(visitor); + thisObject->m_importMetaRequireResolveFunctionUnbound.visit(visitor); thisObject->m_importMetaObjectStructure.visit(visitor); thisObject->m_dnsObject.visit(visitor); diff --git a/src/bun.js/bindings/ZigGlobalObject.h b/src/bun.js/bindings/ZigGlobalObject.h index daf0abc5b..a5b802ced 100644 --- a/src/bun.js/bindings/ZigGlobalObject.h +++ b/src/bun.js/bindings/ZigGlobalObject.h @@ -248,7 +248,8 @@ public: JSC::JSFunction* emitReadableNextTickFunction() { return m_emitReadableNextTickFunction.getInitializedOnMainThread(this); } - Structure* importMetaRequireStructure() { return m_importMetaRequireStructure.getInitializedOnMainThread(this); } + JSObject* importMetaRequireFunctionUnbound() { return m_importMetaRequireFunctionUnbound.getInitializedOnMainThread(this); } + JSObject* importMetaRequireResolveFunctionUnbound() { return m_importMetaRequireResolveFunctionUnbound.getInitializedOnMainThread(this); } JSObject* lazyRequireCacheObject() { return m_lazyRequireCacheObject.getInitializedOnMainThread(this); } @@ -494,7 +495,8 @@ private: LazyProperty m_commonJSModuleObjectStructure; LazyProperty m_commonJSFunctionArgumentsStructure; - LazyProperty m_importMetaRequireStructure; + LazyProperty m_importMetaRequireFunctionUnbound; + LazyProperty m_importMetaRequireResolveFunctionUnbound; LazyProperty m_importMetaObjectStructure; DOMGuardedObjectSet m_guardedObjects WTF_GUARDED_BY_LOCK(m_gcLock); diff --git a/src/bun.js/modules/NodeModuleModule.cpp b/src/bun.js/modules/NodeModuleModule.cpp index f11277709..8b278ddd8 100644 --- a/src/bun.js/modules/NodeModuleModule.cpp +++ b/src/bun.js/modules/NodeModuleModule.cpp @@ -19,24 +19,12 @@ JSC_DEFINE_HOST_FUNCTION(jsFunctionNodeModuleCreateRequire, return JSC::JSValue::encode(JSC::jsUndefined()); } - auto str = callFrame->uncheckedArgument(0).toStringOrNull(globalObject); + auto val = callFrame->uncheckedArgument(0).toWTFString(globalObject); RETURN_IF_EXCEPTION(scope, JSC::JSValue::encode(JSC::jsUndefined())); - WTF::String val = str->value(globalObject); - auto *meta = Zig::ImportMetaObject::create(globalObject, str); auto clientData = WebCore::clientData(vm); - auto requireFunction = - Zig::ImportMetaObject::createRequireFunction(vm, globalObject, val); - auto nameStr = jsCast(requireFunction)->name(vm); - JSC::JSBoundFunction *boundRequireFunction = - JSC::JSBoundFunction::create(vm, globalObject, requireFunction, meta, - ArgList(), 0, jsString(vm, nameStr)); - boundRequireFunction->putDirect( - vm, clientData->builtinNames().resolvePublicName(), - requireFunction->getDirect( - vm, clientData->builtinNames().resolvePublicName()), - 0); - - RELEASE_AND_RETURN(scope, JSValue::encode(boundRequireFunction)); + RELEASE_AND_RETURN( + scope, JSValue::encode(Zig::ImportMetaObject::createRequireFunction( + vm, globalObject, val))); } JSC_DEFINE_HOST_FUNCTION(jsFunctionNodeModulePaths, (JSC::JSGlobalObject * globalObject, @@ -158,7 +146,8 @@ void generateNodeModuleModule(JSC::JSGlobalObject *globalObject, jsFunctionNodeModulePaths, ImplementationVisibility::Public)); exportNames.append(JSC::Identifier::fromString(vm, "_cache"_s)); - exportValues.append(JSC::constructEmptyObject(globalObject)); + exportValues.append( + jsCast(globalObject)->lazyRequireCacheObject()); exportNames.append(JSC::Identifier::fromString(vm, "builtinModules"_s)); diff --git a/src/js/builtins/ImportMetaObject.ts b/src/js/builtins/ImportMetaObject.ts index 23b795735..934a37881 100644 --- a/src/js/builtins/ImportMetaObject.ts +++ b/src/js/builtins/ImportMetaObject.ts @@ -212,15 +212,8 @@ export function createRequireCache() { }); } -$sloppy; -export function require(this: ImportMetaObject, name) { - var from = this?.path ?? arguments.callee?.path; - - if (typeof name !== "string") { - throw new TypeError("require(name) must be a string"); - } - - return $internalRequire($resolveSync(name, from)); +export function require(this: string, name) { + return $internalRequire($resolveSync(name, $toString(this), false)); } $getter; diff --git a/src/js/builtins/Module.ts b/src/js/builtins/Module.ts index ebfc1c477..7ef108258 100644 --- a/src/js/builtins/Module.ts +++ b/src/js/builtins/Module.ts @@ -40,7 +40,7 @@ export function require(this: Module, id: string) { } let esm = Loader.registry.$get(id); - if (esm?.evaluated) { + if (esm?.evaluated && (esm.state ?? 0) >= $ModuleReady) { const mod = esm.module; const namespace = Loader.getModuleNamespaceObject(mod); const exports = @@ -75,7 +75,7 @@ export function require(this: Module, id: string) { esm = Loader.registry.$get(id); // If we can pull out a ModuleNamespaceObject, let's do it. - if (esm?.evaluated) { + if (esm?.evaluated && (esm.state ?? 0) >= $ModuleReady) { const namespace = Loader.getModuleNamespaceObject(esm!.module); return (mod.exports = // if they choose a module diff --git a/src/js/out/WebCoreJSBuiltins.cpp b/src/js/out/WebCoreJSBuiltins.cpp index f494e6635..d1250f0b9 100644 --- a/src/js/out/WebCoreJSBuiltins.cpp +++ b/src/js/out/WebCoreJSBuiltins.cpp @@ -108,7 +108,7 @@ const JSC::ConstructorKind s_writableStreamInternalsCreateWritableStreamCodeCons const JSC::ImplementationVisibility s_writableStreamInternalsCreateWritableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsCreateWritableStreamCodeLength = 278; static const JSC::Intrinsic s_writableStreamInternalsCreateWritableStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsCreateWritableStreamCode = "(function (u,d,p,N,_,f){\"use strict\";@assert(typeof _===\"number\"&&!@isNaN(_)&&_>=0);const j={};@initializeWritableStreamSlots(j,{});const q=new @WritableStreamDefaultController;return @setUpWritableStreamDefaultController(j,q,u,d,p,N,_,f),@createWritableStreamFromInternal(j)})\n"; +const char* const s_writableStreamInternalsCreateWritableStreamCode = "(function (u,p,d,N,_,f){\"use strict\";@assert(typeof _===\"number\"&&!@isNaN(_)&&_>=0);const j={};@initializeWritableStreamSlots(j,{});const q=new @WritableStreamDefaultController;return @setUpWritableStreamDefaultController(j,q,u,p,d,N,_,f),@createWritableStreamFromInternal(j)})\n"; // createInternalWritableStreamFromUnderlyingSink const JSC::ConstructAbility s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -116,7 +116,7 @@ const JSC::ConstructorKind s_writableStreamInternalsCreateInternalWritableStream const JSC::ImplementationVisibility s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeLength = 956; static const JSC::Intrinsic s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCode = "(function (f,o){\"use strict\";const C={};if(f===@undefined)f={};if(o===@undefined)o={};if(!@isObject(f))@throwTypeError(\"WritableStream constructor takes an object as first argument\");if(\"type\"in f)@throwRangeError(\"Invalid type is specified\");const w=@extractSizeAlgorithm(o),E=@extractHighWaterMark(o,1),_={};if(\"start\"in f){if(_[\"start\"]=f[\"start\"],typeof _[\"start\"]!==\"function\")@throwTypeError(\"underlyingSink.start should be a function\")}if(\"write\"in f){if(_[\"write\"]=f[\"write\"],typeof _[\"write\"]!==\"function\")@throwTypeError(\"underlyingSink.write should be a function\")}if(\"close\"in f){if(_[\"close\"]=f[\"close\"],typeof _[\"close\"]!==\"function\")@throwTypeError(\"underlyingSink.close should be a function\")}if(\"abort\"in f){if(_[\"abort\"]=f[\"abort\"],typeof _[\"abort\"]!==\"function\")@throwTypeError(\"underlyingSink.abort should be a function\")}return @initializeWritableStreamSlots(C,f),@setUpWritableStreamDefaultControllerFromUnderlyingSink(C,f,_,E,w),C})\n"; +const char* const s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCode = "(function (f,w){\"use strict\";const o={};if(f===@undefined)f={};if(w===@undefined)w={};if(!@isObject(f))@throwTypeError(\"WritableStream constructor takes an object as first argument\");if(\"type\"in f)@throwRangeError(\"Invalid type is specified\");const C=@extractSizeAlgorithm(w),E=@extractHighWaterMark(w,1),_={};if(\"start\"in f){if(_[\"start\"]=f[\"start\"],typeof _[\"start\"]!==\"function\")@throwTypeError(\"underlyingSink.start should be a function\")}if(\"write\"in f){if(_[\"write\"]=f[\"write\"],typeof _[\"write\"]!==\"function\")@throwTypeError(\"underlyingSink.write should be a function\")}if(\"close\"in f){if(_[\"close\"]=f[\"close\"],typeof _[\"close\"]!==\"function\")@throwTypeError(\"underlyingSink.close should be a function\")}if(\"abort\"in f){if(_[\"abort\"]=f[\"abort\"],typeof _[\"abort\"]!==\"function\")@throwTypeError(\"underlyingSink.abort should be a function\")}return @initializeWritableStreamSlots(o,f),@setUpWritableStreamDefaultControllerFromUnderlyingSink(o,f,_,E,C),o})\n"; // initializeWritableStreamSlots const JSC::ConstructAbility s_writableStreamInternalsInitializeWritableStreamSlotsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -156,7 +156,7 @@ const JSC::ConstructorKind s_writableStreamInternalsSetUpWritableStreamDefaultWr const JSC::ImplementationVisibility s_writableStreamInternalsSetUpWritableStreamDefaultWriterCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsSetUpWritableStreamDefaultWriterCodeLength = 887; static const JSC::Intrinsic s_writableStreamInternalsSetUpWritableStreamDefaultWriterCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsSetUpWritableStreamDefaultWriterCode = "(function (n,g){\"use strict\";if(@isWritableStreamLocked(g))@throwTypeError(\"WritableStream is locked\");@putByIdDirectPrivate(n,\"stream\",g),@putByIdDirectPrivate(g,\"writer\",n);const v=@newPromiseCapability(@Promise),h=@newPromiseCapability(@Promise);@putByIdDirectPrivate(n,\"readyPromise\",v),@putByIdDirectPrivate(n,\"closedPromise\",h);const B=@getByIdDirectPrivate(g,\"state\");if(B===\"writable\"){if(@writableStreamCloseQueuedOrInFlight(g)||!@getByIdDirectPrivate(g,\"backpressure\"))v.@resolve.@call()}else if(B===\"erroring\")v.@reject.@call(@undefined,@getByIdDirectPrivate(g,\"storedError\")),@markPromiseAsHandled(v.@promise);else if(B===\"closed\")v.@resolve.@call(),h.@resolve.@call();else{@assert(B===\"errored\");const _=@getByIdDirectPrivate(g,\"storedError\");v.@reject.@call(@undefined,_),@markPromiseAsHandled(v.@promise),h.@reject.@call(@undefined,_),@markPromiseAsHandled(h.@promise)}})\n"; +const char* const s_writableStreamInternalsSetUpWritableStreamDefaultWriterCode = "(function (n,h){\"use strict\";if(@isWritableStreamLocked(h))@throwTypeError(\"WritableStream is locked\");@putByIdDirectPrivate(n,\"stream\",h),@putByIdDirectPrivate(h,\"writer\",n);const v=@newPromiseCapability(@Promise),B=@newPromiseCapability(@Promise);@putByIdDirectPrivate(n,\"readyPromise\",v),@putByIdDirectPrivate(n,\"closedPromise\",B);const _=@getByIdDirectPrivate(h,\"state\");if(_===\"writable\"){if(@writableStreamCloseQueuedOrInFlight(h)||!@getByIdDirectPrivate(h,\"backpressure\"))v.@resolve.@call()}else if(_===\"erroring\")v.@reject.@call(@undefined,@getByIdDirectPrivate(h,\"storedError\")),@markPromiseAsHandled(v.@promise);else if(_===\"closed\")v.@resolve.@call(),B.@resolve.@call();else{@assert(_===\"errored\");const g=@getByIdDirectPrivate(h,\"storedError\");v.@reject.@call(@undefined,g),@markPromiseAsHandled(v.@promise),B.@reject.@call(@undefined,g),@markPromiseAsHandled(B.@promise)}})\n"; // writableStreamAbort const JSC::ConstructAbility s_writableStreamInternalsWritableStreamAbortCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -164,7 +164,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamAbortCodeConst const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamAbortCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamAbortCodeLength = 501; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamAbortCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamAbortCode = "(function (h,B){\"use strict\";const _=@getByIdDirectPrivate(h,\"state\");if(_===\"closed\"||_===\"errored\")return @Promise.@resolve();const f=@getByIdDirectPrivate(h,\"pendingAbortRequest\");if(f!==@undefined)return f.promise.@promise;@assert(_===\"writable\"||_===\"erroring\");let j=!1;if(_===\"erroring\")j=!0,B=@undefined;const c=@newPromiseCapability(@Promise);if(@putByIdDirectPrivate(h,\"pendingAbortRequest\",{promise:c,reason:B,wasAlreadyErroring:j}),!j)@writableStreamStartErroring(h,B);return c.@promise})\n"; +const char* const s_writableStreamInternalsWritableStreamAbortCode = "(function (c,h){\"use strict\";const f=@getByIdDirectPrivate(c,\"state\");if(f===\"closed\"||f===\"errored\")return @Promise.@resolve();const B=@getByIdDirectPrivate(c,\"pendingAbortRequest\");if(B!==@undefined)return B.promise.@promise;@assert(f===\"writable\"||f===\"erroring\");let j=!1;if(f===\"erroring\")j=!0,h=@undefined;const _=@newPromiseCapability(@Promise);if(@putByIdDirectPrivate(c,\"pendingAbortRequest\",{promise:_,reason:h,wasAlreadyErroring:j}),!j)@writableStreamStartErroring(c,h);return _.@promise})\n"; // writableStreamClose const JSC::ConstructAbility s_writableStreamInternalsWritableStreamCloseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -172,7 +172,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamCloseCodeConst const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamCloseCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamCloseCodeLength = 642; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamCloseCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamCloseCode = "(function (_){\"use strict\";const d=@getByIdDirectPrivate(_,\"state\");if(d===\"closed\"||d===\"errored\")return @Promise.@reject(@makeTypeError(\"Cannot close a writable stream that is closed or errored\"));@assert(d===\"writable\"||d===\"erroring\"),@assert(!@writableStreamCloseQueuedOrInFlight(_));const n=@newPromiseCapability(@Promise);@putByIdDirectPrivate(_,\"closeRequest\",n);const u=@getByIdDirectPrivate(_,\"writer\");if(u!==@undefined&&@getByIdDirectPrivate(_,\"backpressure\")&&d===\"writable\")@getByIdDirectPrivate(u,\"readyPromise\").@resolve.@call();return @writableStreamDefaultControllerClose(@getByIdDirectPrivate(_,\"controller\")),n.@promise})\n"; +const char* const s_writableStreamInternalsWritableStreamCloseCode = "(function (n){\"use strict\";const _=@getByIdDirectPrivate(n,\"state\");if(_===\"closed\"||_===\"errored\")return @Promise.@reject(@makeTypeError(\"Cannot close a writable stream that is closed or errored\"));@assert(_===\"writable\"||_===\"erroring\"),@assert(!@writableStreamCloseQueuedOrInFlight(n));const u=@newPromiseCapability(@Promise);@putByIdDirectPrivate(n,\"closeRequest\",u);const d=@getByIdDirectPrivate(n,\"writer\");if(d!==@undefined&&@getByIdDirectPrivate(n,\"backpressure\")&&_===\"writable\")@getByIdDirectPrivate(d,\"readyPromise\").@resolve.@call();return @writableStreamDefaultControllerClose(@getByIdDirectPrivate(n,\"controller\")),u.@promise})\n"; // writableStreamAddWriteRequest const JSC::ConstructAbility s_writableStreamInternalsWritableStreamAddWriteRequestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -204,7 +204,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamFinishErroring const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamFinishErroringCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamFinishErroringCodeLength = 1058; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamFinishErroringCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamFinishErroringCode = "(function (i){\"use strict\";@assert(@getByIdDirectPrivate(i,\"state\")===\"erroring\"),@assert(!@writableStreamHasOperationMarkedInFlight(i)),@putByIdDirectPrivate(i,\"state\",\"errored\");const _=@getByIdDirectPrivate(i,\"controller\");@getByIdDirectPrivate(_,\"errorSteps\").@call();const p=@getByIdDirectPrivate(i,\"storedError\"),h=@getByIdDirectPrivate(i,\"writeRequests\");for(var A=h.shift();A;A=h.shift())A.@reject.@call(@undefined,p);@putByIdDirectPrivate(i,\"writeRequests\",@createFIFO());const B=@getByIdDirectPrivate(i,\"pendingAbortRequest\");if(B===@undefined){@writableStreamRejectCloseAndClosedPromiseIfNeeded(i);return}if(@putByIdDirectPrivate(i,\"pendingAbortRequest\",@undefined),B.wasAlreadyErroring){B.promise.@reject.@call(@undefined,p),@writableStreamRejectCloseAndClosedPromiseIfNeeded(i);return}@getByIdDirectPrivate(_,\"abortSteps\").@call(@undefined,B.reason).@then(()=>{B.promise.@resolve.@call(),@writableStreamRejectCloseAndClosedPromiseIfNeeded(i)},(I)=>{B.promise.@reject.@call(@undefined,I),@writableStreamRejectCloseAndClosedPromiseIfNeeded(i)})})\n"; +const char* const s_writableStreamInternalsWritableStreamFinishErroringCode = "(function (_){\"use strict\";@assert(@getByIdDirectPrivate(_,\"state\")===\"erroring\"),@assert(!@writableStreamHasOperationMarkedInFlight(_)),@putByIdDirectPrivate(_,\"state\",\"errored\");const p=@getByIdDirectPrivate(_,\"controller\");@getByIdDirectPrivate(p,\"errorSteps\").@call();const h=@getByIdDirectPrivate(_,\"storedError\"),i=@getByIdDirectPrivate(_,\"writeRequests\");for(var A=i.shift();A;A=i.shift())A.@reject.@call(@undefined,h);@putByIdDirectPrivate(_,\"writeRequests\",@createFIFO());const B=@getByIdDirectPrivate(_,\"pendingAbortRequest\");if(B===@undefined){@writableStreamRejectCloseAndClosedPromiseIfNeeded(_);return}if(@putByIdDirectPrivate(_,\"pendingAbortRequest\",@undefined),B.wasAlreadyErroring){B.promise.@reject.@call(@undefined,h),@writableStreamRejectCloseAndClosedPromiseIfNeeded(_);return}@getByIdDirectPrivate(p,\"abortSteps\").@call(@undefined,B.reason).@then(()=>{B.promise.@resolve.@call(),@writableStreamRejectCloseAndClosedPromiseIfNeeded(_)},(I)=>{B.promise.@reject.@call(@undefined,I),@writableStreamRejectCloseAndClosedPromiseIfNeeded(_)})})\n"; // writableStreamFinishInFlightClose const JSC::ConstructAbility s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -212,7 +212,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamFinishInFlight const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeLength = 751; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamFinishInFlightCloseCode = "(function (d){\"use strict\";@getByIdDirectPrivate(d,\"inFlightCloseRequest\").@resolve.@call(),@putByIdDirectPrivate(d,\"inFlightCloseRequest\",@undefined);const n=@getByIdDirectPrivate(d,\"state\");if(@assert(n===\"writable\"||n===\"erroring\"),n===\"erroring\"){@putByIdDirectPrivate(d,\"storedError\",@undefined);const c=@getByIdDirectPrivate(d,\"pendingAbortRequest\");if(c!==@undefined)c.promise.@resolve.@call(),@putByIdDirectPrivate(d,\"pendingAbortRequest\",@undefined)}@putByIdDirectPrivate(d,\"state\",\"closed\");const _=@getByIdDirectPrivate(d,\"writer\");if(_!==@undefined)@getByIdDirectPrivate(_,\"closedPromise\").@resolve.@call();@assert(@getByIdDirectPrivate(d,\"pendingAbortRequest\")===@undefined),@assert(@getByIdDirectPrivate(d,\"storedError\")===@undefined)})\n"; +const char* const s_writableStreamInternalsWritableStreamFinishInFlightCloseCode = "(function (d){\"use strict\";@getByIdDirectPrivate(d,\"inFlightCloseRequest\").@resolve.@call(),@putByIdDirectPrivate(d,\"inFlightCloseRequest\",@undefined);const n=@getByIdDirectPrivate(d,\"state\");if(@assert(n===\"writable\"||n===\"erroring\"),n===\"erroring\"){@putByIdDirectPrivate(d,\"storedError\",@undefined);const _=@getByIdDirectPrivate(d,\"pendingAbortRequest\");if(_!==@undefined)_.promise.@resolve.@call(),@putByIdDirectPrivate(d,\"pendingAbortRequest\",@undefined)}@putByIdDirectPrivate(d,\"state\",\"closed\");const c=@getByIdDirectPrivate(d,\"writer\");if(c!==@undefined)@getByIdDirectPrivate(c,\"closedPromise\").@resolve.@call();@assert(@getByIdDirectPrivate(d,\"pendingAbortRequest\")===@undefined),@assert(@getByIdDirectPrivate(d,\"storedError\")===@undefined)})\n"; // writableStreamFinishInFlightCloseWithError const JSC::ConstructAbility s_writableStreamInternalsWritableStreamFinishInFlightCloseWithErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -220,7 +220,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamFinishInFlight const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamFinishInFlightCloseWithErrorCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamFinishInFlightCloseWithErrorCodeLength = 488; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamFinishInFlightCloseWithErrorCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamFinishInFlightCloseWithErrorCode = "(function (_,c){\"use strict\";const d=@getByIdDirectPrivate(_,\"inFlightCloseRequest\");@assert(d!==@undefined),d.@reject.@call(@undefined,c),@putByIdDirectPrivate(_,\"inFlightCloseRequest\",@undefined);const n=@getByIdDirectPrivate(_,\"state\");@assert(n===\"writable\"||n===\"erroring\");const p=@getByIdDirectPrivate(_,\"pendingAbortRequest\");if(p!==@undefined)p.promise.@reject.@call(@undefined,c),@putByIdDirectPrivate(_,\"pendingAbortRequest\",@undefined);@writableStreamDealWithRejection(_,c)})\n"; +const char* const s_writableStreamInternalsWritableStreamFinishInFlightCloseWithErrorCode = "(function (_,c){\"use strict\";const n=@getByIdDirectPrivate(_,\"inFlightCloseRequest\");@assert(n!==@undefined),n.@reject.@call(@undefined,c),@putByIdDirectPrivate(_,\"inFlightCloseRequest\",@undefined);const d=@getByIdDirectPrivate(_,\"state\");@assert(d===\"writable\"||d===\"erroring\");const p=@getByIdDirectPrivate(_,\"pendingAbortRequest\");if(p!==@undefined)p.promise.@reject.@call(@undefined,c),@putByIdDirectPrivate(_,\"pendingAbortRequest\",@undefined);@writableStreamDealWithRejection(_,c)})\n"; // writableStreamFinishInFlightWrite const JSC::ConstructAbility s_writableStreamInternalsWritableStreamFinishInFlightWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -260,7 +260,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamMarkFirstWrite const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamMarkFirstWriteRequestInFlightCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamMarkFirstWriteRequestInFlightCodeLength = 240; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamMarkFirstWriteRequestInFlightCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamMarkFirstWriteRequestInFlightCode = "(function (c){\"use strict\";const d=@getByIdDirectPrivate(c,\"writeRequests\");@assert(@getByIdDirectPrivate(c,\"inFlightWriteRequest\")===@undefined),@assert(d.isNotEmpty());const h=d.shift();@putByIdDirectPrivate(c,\"inFlightWriteRequest\",h)})\n"; +const char* const s_writableStreamInternalsWritableStreamMarkFirstWriteRequestInFlightCode = "(function (d){\"use strict\";const c=@getByIdDirectPrivate(d,\"writeRequests\");@assert(@getByIdDirectPrivate(d,\"inFlightWriteRequest\")===@undefined),@assert(c.isNotEmpty());const h=c.shift();@putByIdDirectPrivate(d,\"inFlightWriteRequest\",h)})\n"; // writableStreamRejectCloseAndClosedPromiseIfNeeded const JSC::ConstructAbility s_writableStreamInternalsWritableStreamRejectCloseAndClosedPromiseIfNeededCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -268,7 +268,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamRejectCloseAnd const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamRejectCloseAndClosedPromiseIfNeededCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamRejectCloseAndClosedPromiseIfNeededCodeLength = 516; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamRejectCloseAndClosedPromiseIfNeededCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamRejectCloseAndClosedPromiseIfNeededCode = "(function (i){\"use strict\";@assert(@getByIdDirectPrivate(i,\"state\")===\"errored\");const h=@getByIdDirectPrivate(i,\"storedError\"),n=@getByIdDirectPrivate(i,\"closeRequest\");if(n!==@undefined)@assert(@getByIdDirectPrivate(i,\"inFlightCloseRequest\")===@undefined),n.@reject.@call(@undefined,h),@putByIdDirectPrivate(i,\"closeRequest\",@undefined);const B=@getByIdDirectPrivate(i,\"writer\");if(B!==@undefined){const b=@getByIdDirectPrivate(B,\"closedPromise\");b.@reject.@call(@undefined,h),@markPromiseAsHandled(b.@promise)}})\n"; +const char* const s_writableStreamInternalsWritableStreamRejectCloseAndClosedPromiseIfNeededCode = "(function (h){\"use strict\";@assert(@getByIdDirectPrivate(h,\"state\")===\"errored\");const i=@getByIdDirectPrivate(h,\"storedError\"),n=@getByIdDirectPrivate(h,\"closeRequest\");if(n!==@undefined)@assert(@getByIdDirectPrivate(h,\"inFlightCloseRequest\")===@undefined),n.@reject.@call(@undefined,i),@putByIdDirectPrivate(h,\"closeRequest\",@undefined);const B=@getByIdDirectPrivate(h,\"writer\");if(B!==@undefined){const b=@getByIdDirectPrivate(B,\"closedPromise\");b.@reject.@call(@undefined,i),@markPromiseAsHandled(b.@promise)}})\n"; // writableStreamStartErroring const JSC::ConstructAbility s_writableStreamInternalsWritableStreamStartErroringCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -276,7 +276,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamStartErroringC const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamStartErroringCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamStartErroringCodeLength = 544; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamStartErroringCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamStartErroringCode = "(function (i,_){\"use strict\";@assert(@getByIdDirectPrivate(i,\"storedError\")===@undefined),@assert(@getByIdDirectPrivate(i,\"state\")===\"writable\");const d=@getByIdDirectPrivate(i,\"controller\");@assert(d!==@undefined),@putByIdDirectPrivate(i,\"state\",\"erroring\"),@putByIdDirectPrivate(i,\"storedError\",_);const h=@getByIdDirectPrivate(i,\"writer\");if(h!==@undefined)@writableStreamDefaultWriterEnsureReadyPromiseRejected(h,_);if(!@writableStreamHasOperationMarkedInFlight(i)&&@getByIdDirectPrivate(d,\"started\")===1)@writableStreamFinishErroring(i)})\n"; +const char* const s_writableStreamInternalsWritableStreamStartErroringCode = "(function (i,_){\"use strict\";@assert(@getByIdDirectPrivate(i,\"storedError\")===@undefined),@assert(@getByIdDirectPrivate(i,\"state\")===\"writable\");const h=@getByIdDirectPrivate(i,\"controller\");@assert(h!==@undefined),@putByIdDirectPrivate(i,\"state\",\"erroring\"),@putByIdDirectPrivate(i,\"storedError\",_);const d=@getByIdDirectPrivate(i,\"writer\");if(d!==@undefined)@writableStreamDefaultWriterEnsureReadyPromiseRejected(d,_);if(!@writableStreamHasOperationMarkedInFlight(i)&&@getByIdDirectPrivate(h,\"started\")===1)@writableStreamFinishErroring(i)})\n"; // writableStreamUpdateBackpressure const JSC::ConstructAbility s_writableStreamInternalsWritableStreamUpdateBackpressureCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -324,7 +324,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterE const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCodeLength = 327; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCode = "(function (c,g){\"use strict\";let h=@getByIdDirectPrivate(c,\"readyPromise\"),n=h.@promise;if((@getPromiseInternalField(n,@promiseFieldFlags)&@promiseStateMask)!==@promiseStatePending)h=@newPromiseCapability(@Promise),n=h.@promise,@putByIdDirectPrivate(c,\"readyPromise\",h);h.@reject.@call(@undefined,g),@markPromiseAsHandled(n)})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCode = "(function (c,n){\"use strict\";let g=@getByIdDirectPrivate(c,\"readyPromise\"),h=g.@promise;if((@getPromiseInternalField(h,@promiseFieldFlags)&@promiseStateMask)!==@promiseStatePending)g=@newPromiseCapability(@Promise),h=g.@promise,@putByIdDirectPrivate(c,\"readyPromise\",g);g.@reject.@call(@undefined,n),@markPromiseAsHandled(h)})\n"; // writableStreamDefaultWriterGetDesiredSize const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterGetDesiredSizeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -348,7 +348,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterW const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeLength = 919; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultWriterWriteCode = "(function (d,P){\"use strict\";const W=@getByIdDirectPrivate(d,\"stream\");@assert(W!==@undefined);const _=@getByIdDirectPrivate(W,\"controller\");@assert(_!==@undefined);const b=@writableStreamDefaultControllerGetChunkSize(_,P);if(W!==@getByIdDirectPrivate(d,\"stream\"))return @Promise.@reject(@makeTypeError(\"writer is not stream's writer\"));const f=@getByIdDirectPrivate(W,\"state\");if(f===\"errored\")return @Promise.@reject(@getByIdDirectPrivate(W,\"storedError\"));if(@writableStreamCloseQueuedOrInFlight(W)||f===\"closed\")return @Promise.@reject(@makeTypeError(\"stream is closing or closed\"));if(@writableStreamCloseQueuedOrInFlight(W)||f===\"closed\")return @Promise.@reject(@makeTypeError(\"stream is closing or closed\"));if(f===\"erroring\")return @Promise.@reject(@getByIdDirectPrivate(W,\"storedError\"));@assert(f===\"writable\");const g=@writableStreamAddWriteRequest(W);return @writableStreamDefaultControllerWrite(_,P,b),g})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultWriterWriteCode = "(function (d,g){\"use strict\";const P=@getByIdDirectPrivate(d,\"stream\");@assert(P!==@undefined);const _=@getByIdDirectPrivate(P,\"controller\");@assert(_!==@undefined);const b=@writableStreamDefaultControllerGetChunkSize(_,g);if(P!==@getByIdDirectPrivate(d,\"stream\"))return @Promise.@reject(@makeTypeError(\"writer is not stream's writer\"));const W=@getByIdDirectPrivate(P,\"state\");if(W===\"errored\")return @Promise.@reject(@getByIdDirectPrivate(P,\"storedError\"));if(@writableStreamCloseQueuedOrInFlight(P)||W===\"closed\")return @Promise.@reject(@makeTypeError(\"stream is closing or closed\"));if(@writableStreamCloseQueuedOrInFlight(P)||W===\"closed\")return @Promise.@reject(@makeTypeError(\"stream is closing or closed\"));if(W===\"erroring\")return @Promise.@reject(@getByIdDirectPrivate(P,\"storedError\"));@assert(W===\"writable\");const f=@writableStreamAddWriteRequest(P);return @writableStreamDefaultControllerWrite(_,g,b),f})\n"; // setUpWritableStreamDefaultController const JSC::ConstructAbility s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -356,7 +356,7 @@ const JSC::ConstructorKind s_writableStreamInternalsSetUpWritableStreamDefaultCo const JSC::ImplementationVisibility s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeLength = 700; static const JSC::Intrinsic s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsSetUpWritableStreamDefaultControllerCode = "(function (B,f,j,v,P,q,_,U){\"use strict\";@assert(@isWritableStream(B)),@assert(@getByIdDirectPrivate(B,\"controller\")===@undefined),@putByIdDirectPrivate(f,\"stream\",B),@putByIdDirectPrivate(B,\"controller\",f),@resetQueue(@getByIdDirectPrivate(f,\"queue\")),@putByIdDirectPrivate(f,\"started\",-1),@putByIdDirectPrivate(f,\"startAlgorithm\",j),@putByIdDirectPrivate(f,\"strategySizeAlgorithm\",U),@putByIdDirectPrivate(f,\"strategyHWM\",_),@putByIdDirectPrivate(f,\"writeAlgorithm\",v),@putByIdDirectPrivate(f,\"closeAlgorithm\",P),@putByIdDirectPrivate(f,\"abortAlgorithm\",q);const d=@writableStreamDefaultControllerGetBackpressure(f);@writableStreamUpdateBackpressure(B,d),@writableStreamDefaultControllerStart(f)})\n"; +const char* const s_writableStreamInternalsSetUpWritableStreamDefaultControllerCode = "(function (_,U,d,f,B,j,v,q){\"use strict\";@assert(@isWritableStream(_)),@assert(@getByIdDirectPrivate(_,\"controller\")===@undefined),@putByIdDirectPrivate(U,\"stream\",_),@putByIdDirectPrivate(_,\"controller\",U),@resetQueue(@getByIdDirectPrivate(U,\"queue\")),@putByIdDirectPrivate(U,\"started\",-1),@putByIdDirectPrivate(U,\"startAlgorithm\",d),@putByIdDirectPrivate(U,\"strategySizeAlgorithm\",q),@putByIdDirectPrivate(U,\"strategyHWM\",v),@putByIdDirectPrivate(U,\"writeAlgorithm\",f),@putByIdDirectPrivate(U,\"closeAlgorithm\",B),@putByIdDirectPrivate(U,\"abortAlgorithm\",j);const P=@writableStreamDefaultControllerGetBackpressure(U);@writableStreamUpdateBackpressure(_,P),@writableStreamDefaultControllerStart(U)})\n"; // writableStreamDefaultControllerStart const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerStartCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -364,7 +364,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControl const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerStartCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultControllerStartCodeLength = 647; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerStartCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultControllerStartCode = "(function (i){\"use strict\";if(@getByIdDirectPrivate(i,\"started\")!==-1)return;@putByIdDirectPrivate(i,\"started\",0);const _=@getByIdDirectPrivate(i,\"startAlgorithm\");@putByIdDirectPrivate(i,\"startAlgorithm\",@undefined);const d=@getByIdDirectPrivate(i,\"stream\");return @Promise.@resolve(_.@call()).@then(()=>{const u=@getByIdDirectPrivate(d,\"state\");@assert(u===\"writable\"||u===\"erroring\"),@putByIdDirectPrivate(i,\"started\",1),@writableStreamDefaultControllerAdvanceQueueIfNeeded(i)},(u)=>{const p=@getByIdDirectPrivate(d,\"state\");@assert(p===\"writable\"||p===\"erroring\"),@putByIdDirectPrivate(i,\"started\",1),@writableStreamDealWithRejection(d,u)})})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultControllerStartCode = "(function (p){\"use strict\";if(@getByIdDirectPrivate(p,\"started\")!==-1)return;@putByIdDirectPrivate(p,\"started\",0);const i=@getByIdDirectPrivate(p,\"startAlgorithm\");@putByIdDirectPrivate(p,\"startAlgorithm\",@undefined);const d=@getByIdDirectPrivate(p,\"stream\");return @Promise.@resolve(i.@call()).@then(()=>{const _=@getByIdDirectPrivate(d,\"state\");@assert(_===\"writable\"||_===\"erroring\"),@putByIdDirectPrivate(p,\"started\",1),@writableStreamDefaultControllerAdvanceQueueIfNeeded(p)},(_)=>{const u=@getByIdDirectPrivate(d,\"state\");@assert(u===\"writable\"||u===\"erroring\"),@putByIdDirectPrivate(p,\"started\",1),@writableStreamDealWithRejection(d,_)})})\n"; // setUpWritableStreamDefaultControllerFromUnderlyingSink const JSC::ConstructAbility s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -372,7 +372,7 @@ const JSC::ConstructorKind s_writableStreamInternalsSetUpWritableStreamDefaultCo const JSC::ImplementationVisibility s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCodeLength = 573; static const JSC::Intrinsic s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCode = "(function (v,q,P,_,j){\"use strict\";const p=new @WritableStreamDefaultController;let x=()=>{},B=()=>{return @Promise.@resolve()},C=()=>{return @Promise.@resolve()},f=()=>{return @Promise.@resolve()};if(\"start\"in P){const E=P[\"start\"];x=()=>@promiseInvokeOrNoopMethodNoCatch(q,E,[p])}if(\"write\"in P){const E=P[\"write\"];B=(F)=>@promiseInvokeOrNoopMethod(q,E,[F,p])}if(\"close\"in P){const E=P[\"close\"];C=()=>@promiseInvokeOrNoopMethod(q,E,[])}if(\"abort\"in P){const E=P[\"abort\"];f=(F)=>@promiseInvokeOrNoopMethod(q,E,[F])}@setUpWritableStreamDefaultController(v,p,x,B,C,f,_,j)})\n"; +const char* const s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCode = "(function (P,j,B,v,f){\"use strict\";const _=new @WritableStreamDefaultController;let C=()=>{},p=()=>{return @Promise.@resolve()},E=()=>{return @Promise.@resolve()},q=()=>{return @Promise.@resolve()};if(\"start\"in B){const F=B[\"start\"];C=()=>@promiseInvokeOrNoopMethodNoCatch(j,F,[_])}if(\"write\"in B){const F=B[\"write\"];p=(x)=>@promiseInvokeOrNoopMethod(j,F,[x,_])}if(\"close\"in B){const F=B[\"close\"];E=()=>@promiseInvokeOrNoopMethod(j,F,[])}if(\"abort\"in B){const F=B[\"abort\"];q=(x)=>@promiseInvokeOrNoopMethod(j,F,[x])}@setUpWritableStreamDefaultController(P,_,C,p,E,q,v,f)})\n"; // writableStreamDefaultControllerAdvanceQueueIfNeeded const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerAdvanceQueueIfNeededCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -380,7 +380,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControl const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerAdvanceQueueIfNeededCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultControllerAdvanceQueueIfNeededCodeLength = 582; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerAdvanceQueueIfNeededCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultControllerAdvanceQueueIfNeededCode = "(function (_){\"use strict\";const d=@getByIdDirectPrivate(_,\"stream\");if(@getByIdDirectPrivate(_,\"started\")!==1)return;if(@assert(d!==@undefined),@getByIdDirectPrivate(d,\"inFlightWriteRequest\")!==@undefined)return;const f=@getByIdDirectPrivate(d,\"state\");if(@assert(f!==\"closed\"||f!==\"errored\"),f===\"erroring\"){@writableStreamFinishErroring(d);return}const h=@getByIdDirectPrivate(_,\"queue\");if(h.content\?.isEmpty()\?\?!1)return;const i=@peekQueueValue(h);if(i===@isCloseSentinel)@writableStreamDefaultControllerProcessClose(_);else @writableStreamDefaultControllerProcessWrite(_,i)})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultControllerAdvanceQueueIfNeededCode = "(function (_){\"use strict\";const i=@getByIdDirectPrivate(_,\"stream\");if(@getByIdDirectPrivate(_,\"started\")!==1)return;if(@assert(i!==@undefined),@getByIdDirectPrivate(i,\"inFlightWriteRequest\")!==@undefined)return;const d=@getByIdDirectPrivate(i,\"state\");if(@assert(d!==\"closed\"||d!==\"errored\"),d===\"erroring\"){@writableStreamFinishErroring(i);return}const f=@getByIdDirectPrivate(_,\"queue\");if(f.content\?.isEmpty()\?\?!1)return;const h=@peekQueueValue(f);if(h===@isCloseSentinel)@writableStreamDefaultControllerProcessClose(_);else @writableStreamDefaultControllerProcessWrite(_,h)})\n"; // isCloseSentinel const JSC::ConstructAbility s_writableStreamInternalsIsCloseSentinelCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -436,7 +436,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControl const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerGetChunkSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultControllerGetChunkSizeCodeLength = 181; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerGetChunkSizeCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultControllerGetChunkSizeCode = "(function (a,i){\"use strict\";try{return @getByIdDirectPrivate(a,\"strategySizeAlgorithm\").@call(@undefined,i)}catch(d){return @writableStreamDefaultControllerErrorIfNeeded(a,d),1}})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultControllerGetChunkSizeCode = "(function (a,d){\"use strict\";try{return @getByIdDirectPrivate(a,\"strategySizeAlgorithm\").@call(@undefined,d)}catch(i){return @writableStreamDefaultControllerErrorIfNeeded(a,i),1}})\n"; // writableStreamDefaultControllerGetDesiredSize const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerGetDesiredSizeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -460,7 +460,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControl const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCodeLength = 734; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCode = "(function (d,_){\"use strict\";const q=@getByIdDirectPrivate(d,\"stream\");@writableStreamMarkFirstWriteRequestInFlight(q),@getByIdDirectPrivate(d,\"writeAlgorithm\").@call(@undefined,_).@then(()=>{@writableStreamFinishInFlightWrite(q);const M=@getByIdDirectPrivate(q,\"state\");if(@assert(M===\"writable\"||M===\"erroring\"),@dequeueValue(@getByIdDirectPrivate(d,\"queue\")),!@writableStreamCloseQueuedOrInFlight(q)&&M===\"writable\"){const i=@writableStreamDefaultControllerGetBackpressure(d);@writableStreamUpdateBackpressure(q,i)}@writableStreamDefaultControllerAdvanceQueueIfNeeded(d)},(M)=>{if(@getByIdDirectPrivate(q,\"state\")===\"writable\")@writableStreamDefaultControllerClearAlgorithms(d);@writableStreamFinishInFlightWriteWithError(q,M)})})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCode = "(function (i,q){\"use strict\";const d=@getByIdDirectPrivate(i,\"stream\");@writableStreamMarkFirstWriteRequestInFlight(d),@getByIdDirectPrivate(i,\"writeAlgorithm\").@call(@undefined,q).@then(()=>{@writableStreamFinishInFlightWrite(d);const M=@getByIdDirectPrivate(d,\"state\");if(@assert(M===\"writable\"||M===\"erroring\"),@dequeueValue(@getByIdDirectPrivate(i,\"queue\")),!@writableStreamCloseQueuedOrInFlight(d)&&M===\"writable\"){const _=@writableStreamDefaultControllerGetBackpressure(i);@writableStreamUpdateBackpressure(d,_)}@writableStreamDefaultControllerAdvanceQueueIfNeeded(i)},(M)=>{if(@getByIdDirectPrivate(d,\"state\")===\"writable\")@writableStreamDefaultControllerClearAlgorithms(i);@writableStreamFinishInFlightWriteWithError(d,M)})})\n"; // writableStreamDefaultControllerWrite const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -468,7 +468,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControl const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeLength = 450; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultControllerWriteCode = "(function (d,y,B){\"use strict\";try{@enqueueValueWithSize(@getByIdDirectPrivate(d,\"queue\"),y,B);const D=@getByIdDirectPrivate(d,\"stream\"),I=@getByIdDirectPrivate(D,\"state\");if(!@writableStreamCloseQueuedOrInFlight(D)&&I===\"writable\"){const _=@writableStreamDefaultControllerGetBackpressure(d);@writableStreamUpdateBackpressure(D,_)}@writableStreamDefaultControllerAdvanceQueueIfNeeded(d)}catch(D){@writableStreamDefaultControllerErrorIfNeeded(d,D)}})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultControllerWriteCode = "(function (d,D,y){\"use strict\";try{@enqueueValueWithSize(@getByIdDirectPrivate(d,\"queue\"),D,y);const B=@getByIdDirectPrivate(d,\"stream\"),_=@getByIdDirectPrivate(B,\"state\");if(!@writableStreamCloseQueuedOrInFlight(B)&&_===\"writable\"){const I=@writableStreamDefaultControllerGetBackpressure(d);@writableStreamUpdateBackpressure(B,I)}@writableStreamDefaultControllerAdvanceQueueIfNeeded(d)}catch(B){@writableStreamDefaultControllerErrorIfNeeded(d,B)}})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ @@ -502,7 +502,7 @@ const JSC::ConstructorKind s_transformStreamInternalsCreateTransformStreamCodeCo const JSC::ImplementationVisibility s_transformStreamInternalsCreateTransformStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsCreateTransformStreamCodeLength = 513; static const JSC::Intrinsic s_transformStreamInternalsCreateTransformStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsCreateTransformStreamCode = "(function (q,x,D,E,_,F,j){\"use strict\";if(E===@undefined)E=1;if(_===@undefined)_=()=>1;if(F===@undefined)F=0;if(j===@undefined)j=()=>1;@assert(E>=0),@assert(F>=0);const G={};@putByIdDirectPrivate(G,\"TransformStream\",!0);const I=new @TransformStream(G),v=@newPromiseCapability(@Promise);@initializeTransformStream(I,v.@promise,E,_,F,j);const B=new @TransformStreamDefaultController;return @setUpTransformStreamDefaultController(I,B,x,D),q().@then(()=>{v.@resolve.@call()},(c)=>{v.@reject.@call(@undefined,c)}),I})\n"; +const char* const s_transformStreamInternalsCreateTransformStreamCode = "(function (I,G,v,_,E,B,D){\"use strict\";if(_===@undefined)_=1;if(E===@undefined)E=()=>1;if(B===@undefined)B=0;if(D===@undefined)D=()=>1;@assert(_>=0),@assert(B>=0);const q={};@putByIdDirectPrivate(q,\"TransformStream\",!0);const F=new @TransformStream(q),j=@newPromiseCapability(@Promise);@initializeTransformStream(F,j.@promise,_,E,B,D);const x=new @TransformStreamDefaultController;return @setUpTransformStreamDefaultController(F,x,G,v),I().@then(()=>{j.@resolve.@call()},(c)=>{j.@reject.@call(@undefined,c)}),F})\n"; // initializeTransformStream const JSC::ConstructAbility s_transformStreamInternalsInitializeTransformStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -510,7 +510,7 @@ const JSC::ConstructorKind s_transformStreamInternalsInitializeTransformStreamCo const JSC::ImplementationVisibility s_transformStreamInternalsInitializeTransformStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsInitializeTransformStreamCodeLength = 1015; static const JSC::Intrinsic s_transformStreamInternalsInitializeTransformStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsInitializeTransformStreamCode = "(function (f,K,B,T,j,J){\"use strict\";const q=()=>{return K},L=(G)=>{return @transformStreamDefaultSinkWriteAlgorithm(f,G)},v=(G)=>{return @transformStreamDefaultSinkAbortAlgorithm(f,G)},x=()=>{return @transformStreamDefaultSinkCloseAlgorithm(f)},C=@createWritableStream(q,L,x,v,B,T),N=()=>{return @transformStreamDefaultSourcePullAlgorithm(f)},D=(G)=>{return @transformStreamErrorWritableAndUnblockWrite(f,G),@Promise.@resolve()},I={};@putByIdDirectPrivate(I,\"start\",q),@putByIdDirectPrivate(I,\"pull\",N),@putByIdDirectPrivate(I,\"cancel\",D);const E={};@putByIdDirectPrivate(E,\"size\",J),@putByIdDirectPrivate(E,\"highWaterMark\",j);const F=new @ReadableStream(I,E);@putByIdDirectPrivate(f,\"writable\",C),@putByIdDirectPrivate(f,\"internalWritable\",@getInternalWritableStream(C)),@putByIdDirectPrivate(f,\"readable\",F),@putByIdDirectPrivate(f,\"backpressure\",@undefined),@putByIdDirectPrivate(f,\"backpressureChangePromise\",@undefined),@transformStreamSetBackpressure(f,!0),@putByIdDirectPrivate(f,\"controller\",@undefined)})\n"; +const char* const s_transformStreamInternalsInitializeTransformStreamCode = "(function (B,T,E,j,F,f){\"use strict\";const G=()=>{return T},q=(N)=>{return @transformStreamDefaultSinkWriteAlgorithm(B,N)},I=(N)=>{return @transformStreamDefaultSinkAbortAlgorithm(B,N)},v=()=>{return @transformStreamDefaultSinkCloseAlgorithm(B)},J=@createWritableStream(G,q,v,I,E,j),x=()=>{return @transformStreamDefaultSourcePullAlgorithm(B)},K=(N)=>{return @transformStreamErrorWritableAndUnblockWrite(B,N),@Promise.@resolve()},C={};@putByIdDirectPrivate(C,\"start\",G),@putByIdDirectPrivate(C,\"pull\",x),@putByIdDirectPrivate(C,\"cancel\",K);const L={};@putByIdDirectPrivate(L,\"size\",f),@putByIdDirectPrivate(L,\"highWaterMark\",F);const D=new @ReadableStream(C,L);@putByIdDirectPrivate(B,\"writable\",J),@putByIdDirectPrivate(B,\"internalWritable\",@getInternalWritableStream(J)),@putByIdDirectPrivate(B,\"readable\",D),@putByIdDirectPrivate(B,\"backpressure\",@undefined),@putByIdDirectPrivate(B,\"backpressureChangePromise\",@undefined),@transformStreamSetBackpressure(B,!0),@putByIdDirectPrivate(B,\"controller\",@undefined)})\n"; // transformStreamError const JSC::ConstructAbility s_transformStreamInternalsTransformStreamErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -518,7 +518,7 @@ const JSC::ConstructorKind s_transformStreamInternalsTransformStreamErrorCodeCon const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamErrorCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsTransformStreamErrorCodeLength = 222; static const JSC::Intrinsic s_transformStreamInternalsTransformStreamErrorCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsTransformStreamErrorCode = "(function (f,i){\"use strict\";const n=@getByIdDirectPrivate(f,\"readable\"),_=@getByIdDirectPrivate(n,\"readableStreamController\");@readableStreamDefaultControllerError(_,i),@transformStreamErrorWritableAndUnblockWrite(f,i)})\n"; +const char* const s_transformStreamInternalsTransformStreamErrorCode = "(function (_,i){\"use strict\";const n=@getByIdDirectPrivate(_,\"readable\"),f=@getByIdDirectPrivate(n,\"readableStreamController\");@readableStreamDefaultControllerError(f,i),@transformStreamErrorWritableAndUnblockWrite(_,i)})\n"; // transformStreamErrorWritableAndUnblockWrite const JSC::ConstructAbility s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -526,7 +526,7 @@ const JSC::ConstructorKind s_transformStreamInternalsTransformStreamErrorWritabl const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCodeLength = 339; static const JSC::Intrinsic s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCode = "(function (_,n){\"use strict\";@transformStreamDefaultControllerClearAlgorithms(@getByIdDirectPrivate(_,\"controller\"));const o=@getByIdDirectPrivate(_,\"internalWritable\");if(@writableStreamDefaultControllerErrorIfNeeded(@getByIdDirectPrivate(o,\"controller\"),n),@getByIdDirectPrivate(_,\"backpressure\"))@transformStreamSetBackpressure(_,!1)})\n"; +const char* const s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCode = "(function (n,_){\"use strict\";@transformStreamDefaultControllerClearAlgorithms(@getByIdDirectPrivate(n,\"controller\"));const o=@getByIdDirectPrivate(n,\"internalWritable\");if(@writableStreamDefaultControllerErrorIfNeeded(@getByIdDirectPrivate(o,\"controller\"),_),@getByIdDirectPrivate(n,\"backpressure\"))@transformStreamSetBackpressure(n,!1)})\n"; // transformStreamSetBackpressure const JSC::ConstructAbility s_transformStreamInternalsTransformStreamSetBackpressureCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -542,7 +542,7 @@ const JSC::ConstructorKind s_transformStreamInternalsSetUpTransformStreamDefault const JSC::ImplementationVisibility s_transformStreamInternalsSetUpTransformStreamDefaultControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsSetUpTransformStreamDefaultControllerCodeLength = 294; static const JSC::Intrinsic s_transformStreamInternalsSetUpTransformStreamDefaultControllerCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsSetUpTransformStreamDefaultControllerCode = "(function (d,_,b,P){\"use strict\";@assert(@isTransformStream(d)),@assert(@getByIdDirectPrivate(d,\"controller\")===@undefined),@putByIdDirectPrivate(_,\"stream\",d),@putByIdDirectPrivate(d,\"controller\",_),@putByIdDirectPrivate(_,\"transformAlgorithm\",b),@putByIdDirectPrivate(_,\"flushAlgorithm\",P)})\n"; +const char* const s_transformStreamInternalsSetUpTransformStreamDefaultControllerCode = "(function (d,b,_,P){\"use strict\";@assert(@isTransformStream(d)),@assert(@getByIdDirectPrivate(d,\"controller\")===@undefined),@putByIdDirectPrivate(b,\"stream\",d),@putByIdDirectPrivate(d,\"controller\",b),@putByIdDirectPrivate(b,\"transformAlgorithm\",_),@putByIdDirectPrivate(b,\"flushAlgorithm\",P)})\n"; // setUpTransformStreamDefaultControllerFromTransformer const JSC::ConstructAbility s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -550,7 +550,7 @@ const JSC::ConstructorKind s_transformStreamInternalsSetUpTransformStreamDefault const JSC::ImplementationVisibility s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCodeLength = 449; static const JSC::Intrinsic s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCode = "(function (_,d,p){\"use strict\";const v=new @TransformStreamDefaultController;let b=(q)=>{try{@transformStreamDefaultControllerEnqueue(v,q)}catch(w){return @Promise.@reject(w)}return @Promise.@resolve()},j=()=>{return @Promise.@resolve()};if(\"transform\"in p)b=(q)=>{return @promiseInvokeOrNoopMethod(d,p[\"transform\"],[q,v])};if(\"flush\"in p)j=()=>{return @promiseInvokeOrNoopMethod(d,p[\"flush\"],[v])};@setUpTransformStreamDefaultController(_,v,b,j)})\n"; +const char* const s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCode = "(function (_,j,d){\"use strict\";const q=new @TransformStreamDefaultController;let p=(b)=>{try{@transformStreamDefaultControllerEnqueue(q,b)}catch(w){return @Promise.@reject(w)}return @Promise.@resolve()},v=()=>{return @Promise.@resolve()};if(\"transform\"in d)p=(b)=>{return @promiseInvokeOrNoopMethod(j,d[\"transform\"],[b,q])};if(\"flush\"in d)v=()=>{return @promiseInvokeOrNoopMethod(j,d[\"flush\"],[q])};@setUpTransformStreamDefaultController(_,q,p,v)})\n"; // transformStreamDefaultControllerClearAlgorithms const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultControllerClearAlgorithmsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -566,7 +566,7 @@ const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultContr const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCodeLength = 622; static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCode = "(function (_,S){\"use strict\";const f=@getByIdDirectPrivate(_,\"stream\"),g=@getByIdDirectPrivate(f,\"readable\"),i=@getByIdDirectPrivate(g,\"readableStreamController\");if(@assert(i!==@undefined),!@readableStreamDefaultControllerCanCloseOrEnqueue(i))@throwTypeError(\"TransformStream.readable cannot close or enqueue\");try{@readableStreamDefaultControllerEnqueue(i,S)}catch(j){throw @transformStreamErrorWritableAndUnblockWrite(f,j),@getByIdDirectPrivate(g,\"storedError\")}const W=!@readableStreamDefaultControllerShouldCallPull(i);if(W!==@getByIdDirectPrivate(f,\"backpressure\"))@assert(W),@transformStreamSetBackpressure(f,!0)})\n"; +const char* const s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCode = "(function (W,i){\"use strict\";const f=@getByIdDirectPrivate(W,\"stream\"),_=@getByIdDirectPrivate(f,\"readable\"),j=@getByIdDirectPrivate(_,\"readableStreamController\");if(@assert(j!==@undefined),!@readableStreamDefaultControllerCanCloseOrEnqueue(j))@throwTypeError(\"TransformStream.readable cannot close or enqueue\");try{@readableStreamDefaultControllerEnqueue(j,i)}catch(S){throw @transformStreamErrorWritableAndUnblockWrite(f,S),@getByIdDirectPrivate(_,\"storedError\")}const g=!@readableStreamDefaultControllerShouldCallPull(j);if(g!==@getByIdDirectPrivate(f,\"backpressure\"))@assert(g),@transformStreamSetBackpressure(f,!0)})\n"; // transformStreamDefaultControllerError const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultControllerErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -582,7 +582,7 @@ const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultContr const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultControllerPerformTransformCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsTransformStreamDefaultControllerPerformTransformCodeLength = 277; static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultControllerPerformTransformCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsTransformStreamDefaultControllerPerformTransformCode = "(function (_,d){\"use strict\";const f=@newPromiseCapability(@Promise);return @getByIdDirectPrivate(_,\"transformAlgorithm\").@call(@undefined,d).@then(()=>{f.@resolve()},(j)=>{@transformStreamError(@getByIdDirectPrivate(_,\"stream\"),j),f.@reject.@call(@undefined,j)}),f.@promise})\n"; +const char* const s_transformStreamInternalsTransformStreamDefaultControllerPerformTransformCode = "(function (_,g){\"use strict\";const d=@newPromiseCapability(@Promise);return @getByIdDirectPrivate(_,\"transformAlgorithm\").@call(@undefined,g).@then(()=>{d.@resolve()},(j)=>{@transformStreamError(@getByIdDirectPrivate(_,\"stream\"),j),d.@reject.@call(@undefined,j)}),d.@promise})\n"; // transformStreamDefaultControllerTerminate const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultControllerTerminateCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -590,7 +590,7 @@ const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultContr const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultControllerTerminateCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsTransformStreamDefaultControllerTerminateCodeLength = 367; static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultControllerTerminateCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsTransformStreamDefaultControllerTerminateCode = "(function (i){\"use strict\";const _=@getByIdDirectPrivate(i,\"stream\"),f=@getByIdDirectPrivate(_,\"readable\"),k=@getByIdDirectPrivate(f,\"readableStreamController\");if(@readableStreamDefaultControllerCanCloseOrEnqueue(k))@readableStreamDefaultControllerClose(k);const u=@makeTypeError(\"the stream has been terminated\");@transformStreamErrorWritableAndUnblockWrite(_,u)})\n"; +const char* const s_transformStreamInternalsTransformStreamDefaultControllerTerminateCode = "(function (i){\"use strict\";const f=@getByIdDirectPrivate(i,\"stream\"),k=@getByIdDirectPrivate(f,\"readable\"),u=@getByIdDirectPrivate(k,\"readableStreamController\");if(@readableStreamDefaultControllerCanCloseOrEnqueue(u))@readableStreamDefaultControllerClose(u);const _=@makeTypeError(\"the stream has been terminated\");@transformStreamErrorWritableAndUnblockWrite(f,_)})\n"; // transformStreamDefaultSinkWriteAlgorithm const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -614,7 +614,7 @@ const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultSinkC const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCodeLength = 789; static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCode = "(function (_){\"use strict\";const q=@getByIdDirectPrivate(_,\"readable\"),I=@getByIdDirectPrivate(_,\"controller\"),f=@getByIdDirectPrivate(q,\"readableStreamController\"),j=@getByIdDirectPrivate(I,\"flushAlgorithm\");@assert(j!==@undefined);const k=@getByIdDirectPrivate(I,\"flushAlgorithm\").@call();@transformStreamDefaultControllerClearAlgorithms(I);const u=@newPromiseCapability(@Promise);return k.@then(()=>{if(@getByIdDirectPrivate(q,\"state\")===@streamErrored){u.@reject.@call(@undefined,@getByIdDirectPrivate(q,\"storedError\"));return}if(@readableStreamDefaultControllerCanCloseOrEnqueue(f))@readableStreamDefaultControllerClose(f);u.@resolve()},(v)=>{@transformStreamError(@getByIdDirectPrivate(I,\"stream\"),v),u.@reject.@call(@undefined,@getByIdDirectPrivate(q,\"storedError\"))}),u.@promise})\n"; +const char* const s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCode = "(function (u){\"use strict\";const j=@getByIdDirectPrivate(u,\"readable\"),f=@getByIdDirectPrivate(u,\"controller\"),I=@getByIdDirectPrivate(j,\"readableStreamController\"),q=@getByIdDirectPrivate(f,\"flushAlgorithm\");@assert(q!==@undefined);const _=@getByIdDirectPrivate(f,\"flushAlgorithm\").@call();@transformStreamDefaultControllerClearAlgorithms(f);const k=@newPromiseCapability(@Promise);return _.@then(()=>{if(@getByIdDirectPrivate(j,\"state\")===@streamErrored){k.@reject.@call(@undefined,@getByIdDirectPrivate(j,\"storedError\"));return}if(@readableStreamDefaultControllerCanCloseOrEnqueue(I))@readableStreamDefaultControllerClose(I);k.@resolve()},(v)=>{@transformStreamError(@getByIdDirectPrivate(f,\"stream\"),v),k.@reject.@call(@undefined,@getByIdDirectPrivate(j,\"storedError\"))}),k.@promise})\n"; // transformStreamDefaultSourcePullAlgorithm const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultSourcePullAlgorithmCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -640,7 +640,7 @@ const JSC::ConstructorKind s_processObjectInternalsBindingCodeConstructorKind = const JSC::ImplementationVisibility s_processObjectInternalsBindingCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_processObjectInternalsBindingCodeLength = 473; static const JSC::Intrinsic s_processObjectInternalsBindingCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_processObjectInternalsBindingCode = "(function (l){\"use strict\";if(l!==\"constants\")@throwTypeError(\"process.binding() is not supported in Bun. If that breaks something, please file an issue and include a reproducible code sample.\");var r=globalThis.Symbol.for(\"process.bindings.constants\"),I=globalThis[r];if(!I){const{constants:d}=globalThis[globalThis.Symbol.for(\"Bun.lazy\")](\"createImportMeta\",\"node:process\").require(\"node:fs\");I={fs:d,zlib:{},crypto:{},os:@Bun._Os().constants},globalThis[r]=I}return I})\n"; +const char* const s_processObjectInternalsBindingCode = "(function (I){\"use strict\";if(I!==\"constants\")@throwTypeError(\"process.binding() is not supported in Bun. If that breaks something, please file an issue and include a reproducible code sample.\");var d=globalThis.Symbol.for(\"process.bindings.constants\"),r=globalThis[d];if(!r){const{constants:l}=globalThis[globalThis.Symbol.for(\"Bun.lazy\")](\"createImportMeta\",\"node:process\").require(\"node:fs\");r={fs:l,zlib:{},crypto:{},os:@Bun._Os().constants},globalThis[d]=r}return r})\n"; // getStdioWriteStream const JSC::ConstructAbility s_processObjectInternalsGetStdioWriteStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -648,7 +648,7 @@ const JSC::ConstructorKind s_processObjectInternalsGetStdioWriteStreamCodeConstr const JSC::ImplementationVisibility s_processObjectInternalsGetStdioWriteStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_processObjectInternalsGetStdioWriteStreamCodeLength = 4250; static const JSC::Intrinsic s_processObjectInternalsGetStdioWriteStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_processObjectInternalsGetStdioWriteStreamCode = "(function (j,H){\"use strict\";var J={path:\"node:process\",require:H},G=(N)=>J.require(N);function K(N){var{Duplex:O,eos:Q,destroy:U}=G(\"node:stream\"),V=class X extends O{#$;#B;#j=!0;#z=!0;#G;#H;#J;#K;#L;#M;get isTTY(){return this.#M\?\?=G(\"node:tty\").isatty(N)}get fd(){return N}constructor(Z){super({readable:!0,writable:!0});this.#G=`/dev/fd/${Z}`}#N(Z){const Y=this.#H;if(this.#H=null,Y)Y(Z);else if(Z)this.destroy(Z);else if(!this.#j&&!this.#z)this.destroy()}_destroy(Z,Y){if(!Z&&this.#H!==null){var P=class A extends Error{code;name;constructor(T=\"The operation was aborted\",x=void 0){if(x!==void 0&&typeof x!==\"object\")throw new Error(`Invalid AbortError options:\\n\\n${JSON.stringify(x,null,2)}`);super(T,x);this.code=\"ABORT_ERR\",this.name=\"AbortError\"}};Z=new P}if(this.#J=null,this.#K=null,this.#H===null)Y(Z);else{if(this.#H=Y,this.#$)U(this.#$,Z);if(this.#B)U(this.#B,Z)}}_write(Z,Y,P){if(!this.#$){var{createWriteStream:A}=G(\"node:fs\"),T=this.#$=A(this.#G);T.on(\"finish\",()=>{if(this.#K){const x=this.#K;this.#K=null,x()}}),T.on(\"drain\",()=>{if(this.#J){const x=this.#J;this.#J=null,x()}}),Q(T,(x)=>{if(this.#z=!1,x)U(T,x);this.#N(x)})}if(T.write(Z,Y))P();else this.#J=P}_final(Z){this.#$&&this.#$.end(),this.#K=Z}#O(){var{createReadStream:Z}=G(\"node:fs\"),Y=this.#B=Z(this.#G);return Y.on(\"readable\",()=>{if(this.#L){const P=this.#L;this.#L=null,P()}else this.read()}),Y.on(\"end\",()=>{this.push(null)}),Q(Y,(P)=>{if(this.#j=!1,P)U(Y,P);this.#N(P)}),Y}_read(){var Z=this.#B;if(!Z)Z=this.#O();while(!0){const Y=Z.read();if(Y===null||!this.push(Y))return}}};return new V(N)}var{EventEmitter:z}=G(\"node:events\");function L(N){if(!N)return!0;var O=N.toLowerCase();return O===\"utf8\"||O===\"utf-8\"||O===\"buffer\"||O===\"binary\"}var M,B=class N extends z{#$;#B;#j;#z;bytesWritten=0;setDefaultEncoding(O){if(this.#B||!L(O))return this.#J(),this.#B.setDefaultEncoding(O)}#G(){switch(this.#$){case 1:{var O=@Bun.stdout.writer({highWaterMark:0});return O.unref(),O}case 2:{var O=@Bun.stderr.writer({highWaterMark:0});return O.unref(),O}default:throw new Error(\"Unsupported writer\")}}#H(){return this.#j\?\?=this.#G()}constructor(O){super();this.#$=O}get fd(){return this.#$}get isTTY(){return this.#z\?\?=G(\"node:tty\").isatty(this.#$)}cursorTo(O,Q,U){return(M\?\?=G(\"readline\")).cursorTo(this,O,Q,U)}moveCursor(O,Q,U){return(M\?\?=G(\"readline\")).moveCursor(this,O,Q,U)}clearLine(O,Q){return(M\?\?=G(\"readline\")).clearLine(this,O,Q)}clearScreenDown(O){return(M\?\?=G(\"readline\")).clearScreenDown(this,O)}ref(){this.#H().ref()}unref(){this.#H().unref()}on(O,Q){if(O===\"close\"||O===\"finish\")return this.#J(),this.#B.on(O,Q);if(O===\"drain\")return super.on(\"drain\",Q);if(O===\"error\")return super.on(\"error\",Q);return super.on(O,Q)}get _writableState(){return this.#J(),this.#B._writableState}get _readableState(){return this.#J(),this.#B._readableState}pipe(O){return this.#J(),this.#B.pipe(O)}unpipe(O){return this.#J(),this.#B.unpipe(O)}#J(){if(this.#B)return;this.#B=K(this.#$);const O=this.eventNames();for(let Q of O)this.#B.on(Q,(...U)=>{this.emit(Q,...U)})}#K(O){var Q=this.#H();const U=Q.write(O);this.bytesWritten+=U;const V=Q.flush(!1);return!!(U||V)}#L(O,Q){if(!L(Q))return this.#J(),this.#B.write(O,Q);return this.#K(O)}#M(O,Q){if(Q)this.emit(\"error\",Q);try{O(Q\?Q:null)}catch(U){this.emit(\"error\",U)}}#N(O,Q,U){if(!L(Q))return this.#J(),this.#B.write(O,Q,U);var V=this.#H();const X=V.write(O),Z=V.flush(!0);if(Z\?.then)return Z.then(()=>{this.#M(U),this.emit(\"drain\")},(Y)=>this.#M(U,Y)),!1;return queueMicrotask(()=>{this.#M(U)}),!!(X||Z)}write(O,Q,U){const V=this._write(O,Q,U);if(V)this.emit(\"drain\");return V}get hasColors(){return @Bun.tty[this.#$].hasColors}_write(O,Q,U){var V=this.#B;if(V)return V.write(O,Q,U);switch(arguments.length){case 0:{var X=new Error(\"Invalid arguments\");throw X.code=\"ERR_INVALID_ARG_TYPE\",X}case 1:return this.#K(O);case 2:if(typeof Q===\"function\")return this.#N(O,\"\",Q);else if(typeof Q===\"string\")return this.#L(O,Q);default:{if(typeof Q!==\"undefined\"&&typeof Q!==\"string\"||typeof U!==\"undefined\"&&typeof U!==\"function\"){var X=new Error(\"Invalid arguments\");throw X.code=\"ERR_INVALID_ARG_TYPE\",X}if(typeof U===\"undefined\")return this.#L(O,Q);return this.#N(O,Q,U)}}}destroy(){return this}end(){return this}};return new B(j)})\n"; +const char* const s_processObjectInternalsGetStdioWriteStreamCode = "(function (U,G){\"use strict\";var H={path:\"node:process\",require:G},J=(L)=>H.require(L);function K(L){var{Duplex:Q,eos:M,destroy:j}=J(\"node:stream\"),N=class Y extends Q{#$;#B;#j=!0;#z=!0;#G;#H;#J;#K;#L;#M;get isTTY(){return this.#M\?\?=J(\"node:tty\").isatty(L)}get fd(){return L}constructor(O){super({readable:!0,writable:!0});this.#G=`/dev/fd/${O}`}#N(O){const z=this.#H;if(this.#H=null,z)z(O);else if(O)this.destroy(O);else if(!this.#j&&!this.#z)this.destroy()}_destroy(O,z){if(!O&&this.#H!==null){var P=class A extends Error{code;name;constructor(T=\"The operation was aborted\",x=void 0){if(x!==void 0&&typeof x!==\"object\")throw new Error(`Invalid AbortError options:\\n\\n${JSON.stringify(x,null,2)}`);super(T,x);this.code=\"ABORT_ERR\",this.name=\"AbortError\"}};O=new P}if(this.#J=null,this.#K=null,this.#H===null)z(O);else{if(this.#H=z,this.#$)j(this.#$,O);if(this.#B)j(this.#B,O)}}_write(O,z,P){if(!this.#$){var{createWriteStream:A}=J(\"node:fs\"),T=this.#$=A(this.#G);T.on(\"finish\",()=>{if(this.#K){const x=this.#K;this.#K=null,x()}}),T.on(\"drain\",()=>{if(this.#J){const x=this.#J;this.#J=null,x()}}),M(T,(x)=>{if(this.#z=!1,x)j(T,x);this.#N(x)})}if(T.write(O,z))P();else this.#J=P}_final(O){this.#$&&this.#$.end(),this.#K=O}#O(){var{createReadStream:O}=J(\"node:fs\"),z=this.#B=O(this.#G);return z.on(\"readable\",()=>{if(this.#L){const P=this.#L;this.#L=null,P()}else this.read()}),z.on(\"end\",()=>{this.push(null)}),M(z,(P)=>{if(this.#j=!1,P)j(z,P);this.#N(P)}),z}_read(){var O=this.#B;if(!O)O=this.#O();while(!0){const z=O.read();if(z===null||!this.push(z))return}}};return new N(L)}var{EventEmitter:V}=J(\"node:events\");function X(L){if(!L)return!0;var Q=L.toLowerCase();return Q===\"utf8\"||Q===\"utf-8\"||Q===\"buffer\"||Q===\"binary\"}var Z,B=class L extends V{#$;#B;#j;#z;bytesWritten=0;setDefaultEncoding(Q){if(this.#B||!X(Q))return this.#J(),this.#B.setDefaultEncoding(Q)}#G(){switch(this.#$){case 1:{var Q=@Bun.stdout.writer({highWaterMark:0});return Q.unref(),Q}case 2:{var Q=@Bun.stderr.writer({highWaterMark:0});return Q.unref(),Q}default:throw new Error(\"Unsupported writer\")}}#H(){return this.#j\?\?=this.#G()}constructor(Q){super();this.#$=Q}get fd(){return this.#$}get isTTY(){return this.#z\?\?=J(\"node:tty\").isatty(this.#$)}cursorTo(Q,M,j){return(Z\?\?=J(\"readline\")).cursorTo(this,Q,M,j)}moveCursor(Q,M,j){return(Z\?\?=J(\"readline\")).moveCursor(this,Q,M,j)}clearLine(Q,M){return(Z\?\?=J(\"readline\")).clearLine(this,Q,M)}clearScreenDown(Q){return(Z\?\?=J(\"readline\")).clearScreenDown(this,Q)}ref(){this.#H().ref()}unref(){this.#H().unref()}on(Q,M){if(Q===\"close\"||Q===\"finish\")return this.#J(),this.#B.on(Q,M);if(Q===\"drain\")return super.on(\"drain\",M);if(Q===\"error\")return super.on(\"error\",M);return super.on(Q,M)}get _writableState(){return this.#J(),this.#B._writableState}get _readableState(){return this.#J(),this.#B._readableState}pipe(Q){return this.#J(),this.#B.pipe(Q)}unpipe(Q){return this.#J(),this.#B.unpipe(Q)}#J(){if(this.#B)return;this.#B=K(this.#$);const Q=this.eventNames();for(let M of Q)this.#B.on(M,(...j)=>{this.emit(M,...j)})}#K(Q){var M=this.#H();const j=M.write(Q);this.bytesWritten+=j;const N=M.flush(!1);return!!(j||N)}#L(Q,M){if(!X(M))return this.#J(),this.#B.write(Q,M);return this.#K(Q)}#M(Q,M){if(M)this.emit(\"error\",M);try{Q(M\?M:null)}catch(j){this.emit(\"error\",j)}}#N(Q,M,j){if(!X(M))return this.#J(),this.#B.write(Q,M,j);var N=this.#H();const Y=N.write(Q),O=N.flush(!0);if(O\?.then)return O.then(()=>{this.#M(j),this.emit(\"drain\")},(z)=>this.#M(j,z)),!1;return queueMicrotask(()=>{this.#M(j)}),!!(Y||O)}write(Q,M,j){const N=this._write(Q,M,j);if(N)this.emit(\"drain\");return N}get hasColors(){return @Bun.tty[this.#$].hasColors}_write(Q,M,j){var N=this.#B;if(N)return N.write(Q,M,j);switch(arguments.length){case 0:{var Y=new Error(\"Invalid arguments\");throw Y.code=\"ERR_INVALID_ARG_TYPE\",Y}case 1:return this.#K(Q);case 2:if(typeof M===\"function\")return this.#N(Q,\"\",M);else if(typeof M===\"string\")return this.#L(Q,M);default:{if(typeof M!==\"undefined\"&&typeof M!==\"string\"||typeof j!==\"undefined\"&&typeof j!==\"function\"){var Y=new Error(\"Invalid arguments\");throw Y.code=\"ERR_INVALID_ARG_TYPE\",Y}if(typeof j===\"undefined\")return this.#L(Q,M);return this.#N(Q,M,j)}}}destroy(){return this}end(){return this}};return new B(U)})\n"; // getStdinStream const JSC::ConstructAbility s_processObjectInternalsGetStdinStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -656,7 +656,7 @@ const JSC::ConstructorKind s_processObjectInternalsGetStdinStreamCodeConstructor const JSC::ImplementationVisibility s_processObjectInternalsGetStdinStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_processObjectInternalsGetStdinStreamCodeLength = 1799; static const JSC::Intrinsic s_processObjectInternalsGetStdinStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_processObjectInternalsGetStdinStreamCode = "(function (Y,j,z){\"use strict\";var L={path:\"node:process\",require:j},G=(U)=>L.require(U),{Duplex:N,eos:H,destroy:Q}=G(\"node:stream\"),T=class U extends N{#Y;#$;#j;#z=!0;#G=!1;#H=!0;#I;#J;#K;get isTTY(){return G(\"tty\").isatty(Y)}get fd(){return Y}constructor(){super({readable:!0,writable:!0})}#L(P){const V=this.#J;if(this.#J=null,V)V(P);else if(P)this.destroy(P);else if(!this.#z&&!this.#H)this.destroy()}_destroy(P,V){if(!P&&this.#J!==null){var I=class J extends Error{constructor(K=\"The operation was aborted\",M=void 0){if(M!==void 0&&typeof M!==\"object\")throw new Error(`Invalid AbortError options:\\n\\n${JSON.stringify(M,null,2)}`);super(K,M);this.code=\"ABORT_ERR\",this.name=\"AbortError\"}};P=new I}if(this.#J===null)V(P);else if(this.#J=V,this.#j)Q(this.#j,P)}setRawMode(P){}on(P,V){if(P===\"readable\")this.ref(),this.#G=!0;return super.on(P,V)}pause(){return this.unref(),super.pause()}resume(){return this.ref(),super.resume()}ref(){this.#Y\?\?=z.stdin.stream().getReader(),this.#$\?\?=setInterval(()=>{},1<<30)}unref(){if(this.#$)clearInterval(this.#$),this.#$=null}async#M(){try{var P,V;const I=this.#Y.readMany();if(!I\?.then)({done:P,value:V}=I);else({done:P,value:V}=await I);if(!P){this.push(V[0]);const J=V.length;for(let K=1;K{if(this.#I){const I=this.#I;this.#I=null,I()}}),V.on(\"drain\",()=>{if(this.#K){const I=this.#K;this.#K=null,I()}}),H(V,(I)=>{if(this.#H=!1,I)Q(V,I);this.#L(I)}),V}_write(P,V,I){var J=this.#j;if(!J)J=this.#N();if(J.write(P,V))I();else this.#K=I}_final(P){this.#j.end(),this.#I=(...V)=>P(...V)}};return new T})\n"; +const char* const s_processObjectInternalsGetStdinStreamCode = "(function (Y,j,H){\"use strict\";var I={path:\"node:process\",require:j},J=(N)=>I.require(N),{Duplex:K,eos:z,destroy:L}=J(\"node:stream\"),M=class N extends K{#Y;#$;#j;#z=!0;#G=!1;#H=!0;#I;#J;#K;get isTTY(){return J(\"tty\").isatty(Y)}get fd(){return Y}constructor(){super({readable:!0,writable:!0})}#L(P){const Q=this.#J;if(this.#J=null,Q)Q(P);else if(P)this.destroy(P);else if(!this.#z&&!this.#H)this.destroy()}_destroy(P,Q){if(!P&&this.#J!==null){var G=class T extends Error{constructor(U=\"The operation was aborted\",V=void 0){if(V!==void 0&&typeof V!==\"object\")throw new Error(`Invalid AbortError options:\\n\\n${JSON.stringify(V,null,2)}`);super(U,V);this.code=\"ABORT_ERR\",this.name=\"AbortError\"}};P=new G}if(this.#J===null)Q(P);else if(this.#J=Q,this.#j)L(this.#j,P)}setRawMode(P){}on(P,Q){if(P===\"readable\")this.ref(),this.#G=!0;return super.on(P,Q)}pause(){return this.unref(),super.pause()}resume(){return this.ref(),super.resume()}ref(){this.#Y\?\?=H.stdin.stream().getReader(),this.#$\?\?=setInterval(()=>{},1<<30)}unref(){if(this.#$)clearInterval(this.#$),this.#$=null}async#M(){try{var P,Q;const G=this.#Y.readMany();if(!G\?.then)({done:P,value:Q}=G);else({done:P,value:Q}=await G);if(!P){this.push(Q[0]);const T=Q.length;for(let U=1;U{if(this.#I){const G=this.#I;this.#I=null,G()}}),Q.on(\"drain\",()=>{if(this.#K){const G=this.#K;this.#K=null,G()}}),z(Q,(G)=>{if(this.#H=!1,G)L(Q,G);this.#L(G)}),Q}_write(P,Q,G){var T=this.#j;if(!T)T=this.#N();if(T.write(P,Q))G();else this.#K=G}_final(P){this.#j.end(),this.#I=(...Q)=>P(...Q)}};return new M})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ @@ -674,7 +674,7 @@ const JSC::ConstructorKind s_transformStreamInitializeTransformStreamCodeConstru const JSC::ImplementationVisibility s_transformStreamInitializeTransformStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInitializeTransformStreamCodeLength = 1334; static const JSC::Intrinsic s_transformStreamInitializeTransformStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInitializeTransformStreamCode = "(function (){\"use strict\";let u=arguments[0];if(@isObject(u)&&@getByIdDirectPrivate(u,\"TransformStream\"))return this;let j=arguments[1],q=arguments[2];if(u===@undefined)u=null;if(q===@undefined)q={};if(j===@undefined)j={};let F={};if(u!==null){if(\"start\"in u){if(F[\"start\"]=u[\"start\"],typeof F[\"start\"]!==\"function\")@throwTypeError(\"transformer.start should be a function\")}if(\"transform\"in u){if(F[\"transform\"]=u[\"transform\"],typeof F[\"transform\"]!==\"function\")@throwTypeError(\"transformer.transform should be a function\")}if(\"flush\"in u){if(F[\"flush\"]=u[\"flush\"],typeof F[\"flush\"]!==\"function\")@throwTypeError(\"transformer.flush should be a function\")}if(\"readableType\"in u)@throwRangeError(\"TransformStream transformer has a readableType\");if(\"writableType\"in u)@throwRangeError(\"TransformStream transformer has a writableType\")}const v=@extractHighWaterMark(q,0),G=@extractSizeAlgorithm(q),x=@extractHighWaterMark(j,1),I=@extractSizeAlgorithm(j),B=@newPromiseCapability(@Promise);if(@initializeTransformStream(this,B.@promise,x,I,v,G),@setUpTransformStreamDefaultControllerFromTransformer(this,u,F),(\"start\"in F)){const J=@getByIdDirectPrivate(this,\"controller\");(()=>@promiseInvokeOrNoopMethodNoCatch(u,F[\"start\"],[J]))().@then(()=>{B.@resolve.@call()},(_)=>{B.@reject.@call(@undefined,_)})}else B.@resolve.@call();return this})\n"; +const char* const s_transformStreamInitializeTransformStreamCode = "(function (){\"use strict\";let _=arguments[0];if(@isObject(_)&&@getByIdDirectPrivate(_,\"TransformStream\"))return this;let x=arguments[1],u=arguments[2];if(_===@undefined)_=null;if(u===@undefined)u={};if(x===@undefined)x={};let B={};if(_!==null){if(\"start\"in _){if(B[\"start\"]=_[\"start\"],typeof B[\"start\"]!==\"function\")@throwTypeError(\"transformer.start should be a function\")}if(\"transform\"in _){if(B[\"transform\"]=_[\"transform\"],typeof B[\"transform\"]!==\"function\")@throwTypeError(\"transformer.transform should be a function\")}if(\"flush\"in _){if(B[\"flush\"]=_[\"flush\"],typeof B[\"flush\"]!==\"function\")@throwTypeError(\"transformer.flush should be a function\")}if(\"readableType\"in _)@throwRangeError(\"TransformStream transformer has a readableType\");if(\"writableType\"in _)@throwRangeError(\"TransformStream transformer has a writableType\")}const F=@extractHighWaterMark(u,0),j=@extractSizeAlgorithm(u),I=@extractHighWaterMark(x,1),q=@extractSizeAlgorithm(x),E=@newPromiseCapability(@Promise);if(@initializeTransformStream(this,E.@promise,I,q,F,j),@setUpTransformStreamDefaultControllerFromTransformer(this,_,B),(\"start\"in B)){const G=@getByIdDirectPrivate(this,\"controller\");(()=>@promiseInvokeOrNoopMethodNoCatch(_,B[\"start\"],[G]))().@then(()=>{E.@resolve.@call()},(v)=>{E.@reject.@call(@undefined,v)})}else E.@resolve.@call();return this})\n"; // readable const JSC::ConstructAbility s_transformStreamReadableCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -714,9 +714,9 @@ const char* const s_moduleMainCode = "(function (){\"use strict\";return @requir const JSC::ConstructAbility s_moduleRequireCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; const JSC::ConstructorKind s_moduleRequireCodeConstructorKind = JSC::ConstructorKind::None; const JSC::ImplementationVisibility s_moduleRequireCodeImplementationVisibility = JSC::ImplementationVisibility::Public; -const int s_moduleRequireCodeLength = 871; +const int s_moduleRequireCodeLength = 927; static const JSC::Intrinsic s_moduleRequireCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_moduleRequireCode = "(function (_){\"use strict\";const y=@requireMap.@get(_)||@requireMap.@get(_=@resolveSync(_,this.path,!1));if(y)return @evaluateCommonJSModule(y),y.exports;if(_.endsWith(\".json\")||_.endsWith(\".toml\")||_.endsWith(\".node\"))return @internalRequire(_);let M=@Loader.registry.@get(_);if(M\?.evaluated){const h=M.module,l=@Loader.getModuleNamespaceObject(h),r=l\?.[@commonJSSymbol]===0||l\?.default\?.[@commonJSSymbol]===0\?l.default:l;return @requireMap.@set(_,@createCommonJSModule(_,r,!0)),r}const b=@createCommonJSModule(_,{},!1);@requireMap.@set(_,b);var f=this.@require(_,b);if(f===-1){try{f=@requireESM(_)}catch(h){throw @requireMap.@delete(_),h}if(M=@Loader.registry.@get(_),M\?.evaluated){const h=@Loader.getModuleNamespaceObject(M.module);return b.exports=h\?.[@commonJSSymbol]===0||h\?.default\?.[@commonJSSymbol]===0\?h.default:h}}return @evaluateCommonJSModule(b),b.exports})\n"; +const char* const s_moduleRequireCode = "(function (l){\"use strict\";const M=@requireMap.@get(l)||@requireMap.@get(l=@resolveSync(l,this.path,!1));if(M)return @evaluateCommonJSModule(M),M.exports;if(l.endsWith(\".json\")||l.endsWith(\".toml\")||l.endsWith(\".node\"))return @internalRequire(l);let y=@Loader.registry.@get(l);if(y\?.evaluated&&(y.state\?\?0)>=@ModuleReady){const _=y.module,S=@Loader.getModuleNamespaceObject(_),t=S\?.[@commonJSSymbol]===0||S\?.default\?.[@commonJSSymbol]===0\?S.default:S;return @requireMap.@set(l,@createCommonJSModule(l,t,!0)),t}const h=@createCommonJSModule(l,{},!1);@requireMap.@set(l,h);var L=this.@require(l,h);if(L===-1){try{L=@requireESM(l)}catch(_){throw @requireMap.@delete(l),_}if(y=@Loader.registry.@get(l),y\?.evaluated&&(y.state\?\?0)>=@ModuleReady){const _=@Loader.getModuleNamespaceObject(y.module);return h.exports=_\?.[@commonJSSymbol]===0||_\?.default\?.[@commonJSSymbol]===0\?_.default:_}}return @evaluateCommonJSModule(h),h.exports})\n"; // requireResolve const JSC::ConstructAbility s_moduleRequireResolveCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -830,7 +830,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeReadIntLECodeConstructorKind = JSC const JSC::ImplementationVisibility s_jsBufferPrototypeReadIntLECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeReadIntLECodeLength = 528; static const JSC::Intrinsic s_jsBufferPrototypeReadIntLECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeReadIntLECode = "(function (d,r){\"use strict\";const _=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(r){case 1:return _.getInt8(d);case 2:return _.getInt16(d,!0);case 3:{const u=_.getUint16(d,!0)+_.getUint8(d+2)*65536;return u|(u&8388608)*510}case 4:return _.getInt32(d,!0);case 5:{const u=_.getUint8(d+4);return(u|(u&128)*33554430)*4294967296+_.getUint32(d,!0)}case 6:{const u=_.getUint16(d+4,!0);return(u|(u&32768)*131070)*4294967296+_.getUint32(d,!0)}}@throwRangeError(\"byteLength must be >= 1 and <= 6\")})\n"; +const char* const s_jsBufferPrototypeReadIntLECode = "(function (d,r){\"use strict\";const u=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(r){case 1:return u.getInt8(d);case 2:return u.getInt16(d,!0);case 3:{const _=u.getUint16(d,!0)+u.getUint8(d+2)*65536;return _|(_&8388608)*510}case 4:return u.getInt32(d,!0);case 5:{const _=u.getUint8(d+4);return(_|(_&128)*33554430)*4294967296+u.getUint32(d,!0)}case 6:{const _=u.getUint16(d+4,!0);return(_|(_&32768)*131070)*4294967296+u.getUint32(d,!0)}}@throwRangeError(\"byteLength must be >= 1 and <= 6\")})\n"; // readIntBE const JSC::ConstructAbility s_jsBufferPrototypeReadIntBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -982,7 +982,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteInt32BECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteInt32BECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteInt32BECodeLength = 135; static const JSC::Intrinsic s_jsBufferPrototypeWriteInt32BECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteInt32BECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt32(c,d,!1),c+4})\n"; +const char* const s_jsBufferPrototypeWriteInt32BECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt32(d,c,!1),d+4})\n"; // writeUInt32LE const JSC::ConstructAbility s_jsBufferPrototypeWriteUInt32LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1006,7 +1006,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteIntLECodeConstructorKind = JS const JSC::ImplementationVisibility s_jsBufferPrototypeWriteIntLECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteIntLECodeLength = 573; static const JSC::Intrinsic s_jsBufferPrototypeWriteIntLECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteIntLECode = "(function (d,r,c){\"use strict\";const j=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(c){case 1:{j.setInt8(r,d);break}case 2:{j.setInt16(r,d,!0);break}case 3:{j.setUint16(r,d&65535,!0),j.setInt8(r+2,Math.floor(d*0.0000152587890625));break}case 4:{j.setInt32(r,d,!0);break}case 5:{j.setUint32(r,d|0,!0),j.setInt8(r+4,Math.floor(d*0.00000000023283064365386964));break}case 6:{j.setUint32(r,d|0,!0),j.setInt16(r+4,Math.floor(d*0.00000000023283064365386964),!0);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return r+c})\n"; +const char* const s_jsBufferPrototypeWriteIntLECode = "(function (d,j,r){\"use strict\";const c=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(r){case 1:{c.setInt8(j,d);break}case 2:{c.setInt16(j,d,!0);break}case 3:{c.setUint16(j,d&65535,!0),c.setInt8(j+2,Math.floor(d*0.0000152587890625));break}case 4:{c.setInt32(j,d,!0);break}case 5:{c.setUint32(j,d|0,!0),c.setInt8(j+4,Math.floor(d*0.00000000023283064365386964));break}case 6:{c.setUint32(j,d|0,!0),c.setInt16(j+4,Math.floor(d*0.00000000023283064365386964),!0);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return j+r})\n"; // writeIntBE const JSC::ConstructAbility s_jsBufferPrototypeWriteIntBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1030,7 +1030,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteUIntBECodeConstructorKind = J const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUIntBECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteUIntBECodeLength = 579; static const JSC::Intrinsic s_jsBufferPrototypeWriteUIntBECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteUIntBECode = "(function (d,r,p){\"use strict\";const _=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(p){case 1:{_.setUint8(r,d);break}case 2:{_.setUint16(r,d,!1);break}case 3:{_.setUint16(r+1,d&65535,!1),_.setUint8(r,Math.floor(d*0.0000152587890625));break}case 4:{_.setUint32(r,d,!1);break}case 5:{_.setUint32(r+1,d|0,!1),_.setUint8(r,Math.floor(d*0.00000000023283064365386964));break}case 6:{_.setUint32(r+2,d|0,!1),_.setUint16(r,Math.floor(d*0.00000000023283064365386964),!1);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return r+p})\n"; +const char* const s_jsBufferPrototypeWriteUIntBECode = "(function (r,p,_){\"use strict\";const d=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(_){case 1:{d.setUint8(p,r);break}case 2:{d.setUint16(p,r,!1);break}case 3:{d.setUint16(p+1,r&65535,!1),d.setUint8(p,Math.floor(r*0.0000152587890625));break}case 4:{d.setUint32(p,r,!1);break}case 5:{d.setUint32(p+1,r|0,!1),d.setUint8(p,Math.floor(r*0.00000000023283064365386964));break}case 6:{d.setUint32(p+2,r|0,!1),d.setUint16(p,Math.floor(r*0.00000000023283064365386964),!1);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return p+_})\n"; // writeFloatLE const JSC::ConstructAbility s_jsBufferPrototypeWriteFloatLECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1126,7 +1126,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeLatin1WriteCodeConstructorKind = J const JSC::ImplementationVisibility s_jsBufferPrototypeLatin1WriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeLatin1WriteCodeLength = 67; static const JSC::Intrinsic s_jsBufferPrototypeLatin1WriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeLatin1WriteCode = "(function (a,d,r){\"use strict\";return this.write(a,d,r,\"latin1\")})\n"; +const char* const s_jsBufferPrototypeLatin1WriteCode = "(function (a,r,d){\"use strict\";return this.write(a,r,d,\"latin1\")})\n"; // asciiWrite const JSC::ConstructAbility s_jsBufferPrototypeAsciiWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1150,7 +1150,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeBase64urlWriteCodeConstructorKind const JSC::ImplementationVisibility s_jsBufferPrototypeBase64urlWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeBase64urlWriteCodeLength = 70; static const JSC::Intrinsic s_jsBufferPrototypeBase64urlWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeBase64urlWriteCode = "(function (a,d,r){\"use strict\";return this.write(a,d,r,\"base64url\")})\n"; +const char* const s_jsBufferPrototypeBase64urlWriteCode = "(function (a,r,d){\"use strict\";return this.write(a,r,d,\"base64url\")})\n"; // hexWrite const JSC::ConstructAbility s_jsBufferPrototypeHexWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1198,7 +1198,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeAsciiSliceCodeConstructorKind = JS const JSC::ImplementationVisibility s_jsBufferPrototypeAsciiSliceCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeAsciiSliceCodeLength = 65; static const JSC::Intrinsic s_jsBufferPrototypeAsciiSliceCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeAsciiSliceCode = "(function (r,d){\"use strict\";return this.toString(r,d,\"ascii\")})\n"; +const char* const s_jsBufferPrototypeAsciiSliceCode = "(function (d,r){\"use strict\";return this.toString(d,r,\"ascii\")})\n"; // base64Slice const JSC::ConstructAbility s_jsBufferPrototypeBase64SliceCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1238,7 +1238,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeSliceCodeConstructorKind = JSC::Co const JSC::ImplementationVisibility s_jsBufferPrototypeSliceCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeSliceCodeLength = 260; static const JSC::Intrinsic s_jsBufferPrototypeSliceCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeSliceCode = "(function (i,m){\"use strict\";var{buffer:q,byteOffset:v,byteLength:c}=this;function w(z,k){if(z=@trunc(z),z===0||@isNaN(z))return 0;else if(z<0)return z+=k,z>0\?z:0;else return zp\?x-p:0)})\n"; +const char* const s_jsBufferPrototypeSliceCode = "(function (c,w){\"use strict\";var{buffer:m,byteOffset:x,byteLength:z}=this;function p(k,v){if(k=@trunc(k),k===0||@isNaN(k))return 0;else if(k<0)return k+=v,k>0\?k:0;else return ki\?q-i:0)})\n"; // parent const JSC::ConstructAbility s_jsBufferPrototypeParentCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1280,7 +1280,7 @@ const JSC::ConstructorKind s_readableByteStreamControllerInitializeReadableByteS const JSC::ImplementationVisibility s_readableByteStreamControllerInitializeReadableByteStreamControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamControllerInitializeReadableByteStreamControllerCodeLength = 253; static const JSC::Intrinsic s_readableByteStreamControllerInitializeReadableByteStreamControllerCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamControllerInitializeReadableByteStreamControllerCode = "(function (f,l,p){\"use strict\";if(arguments.length!==4&&arguments[3]!==@isReadableStream)@throwTypeError(\"ReadableByteStreamController constructor should not be called directly\");return @privateInitializeReadableByteStreamController.@call(this,f,l,p)})\n"; +const char* const s_readableByteStreamControllerInitializeReadableByteStreamControllerCode = "(function (f,p,l){\"use strict\";if(arguments.length!==4&&arguments[3]!==@isReadableStream)@throwTypeError(\"ReadableByteStreamController constructor should not be called directly\");return @privateInitializeReadableByteStreamController.@call(this,f,p,l)})\n"; // enqueue const JSC::ConstructAbility s_readableByteStreamControllerEnqueueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1312,7 +1312,7 @@ const JSC::ConstructorKind s_readableByteStreamControllerByobRequestCodeConstruc const JSC::ImplementationVisibility s_readableByteStreamControllerByobRequestCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamControllerByobRequestCodeLength = 523; static const JSC::Intrinsic s_readableByteStreamControllerByobRequestCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamControllerByobRequestCode = "(function (){\"use strict\";if(!@isReadableByteStreamController(this))throw @makeGetterTypeError(\"ReadableByteStreamController\",\"byobRequest\");var _=@getByIdDirectPrivate(this,\"byobRequest\");if(_===@undefined){var m=@getByIdDirectPrivate(this,\"pendingPullIntos\");const a=m.peek();if(a){const l=new @Uint8Array(a.buffer,a.byteOffset+a.bytesFilled,a.byteLength-a.bytesFilled);@putByIdDirectPrivate(this,\"byobRequest\",new @ReadableStreamBYOBRequest(this,l,@isReadableStream))}}return @getByIdDirectPrivate(this,\"byobRequest\")})\n"; +const char* const s_readableByteStreamControllerByobRequestCode = "(function (){\"use strict\";if(!@isReadableByteStreamController(this))throw @makeGetterTypeError(\"ReadableByteStreamController\",\"byobRequest\");var _=@getByIdDirectPrivate(this,\"byobRequest\");if(_===@undefined){var a=@getByIdDirectPrivate(this,\"pendingPullIntos\");const l=a.peek();if(l){const m=new @Uint8Array(l.buffer,l.byteOffset+l.bytesFilled,l.byteLength-l.bytesFilled);@putByIdDirectPrivate(this,\"byobRequest\",new @ReadableStreamBYOBRequest(this,m,@isReadableStream))}}return @getByIdDirectPrivate(this,\"byobRequest\")})\n"; // desiredSize const JSC::ConstructAbility s_readableByteStreamControllerDesiredSizeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1338,7 +1338,7 @@ const JSC::ConstructorKind s_consoleObjectAsyncIteratorCodeConstructorKind = JSC const JSC::ImplementationVisibility s_consoleObjectAsyncIteratorCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_consoleObjectAsyncIteratorCodeLength = 577; static const JSC::Intrinsic s_consoleObjectAsyncIteratorCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_consoleObjectAsyncIteratorCode = "(function (){\"use strict\";const w=async function*_(){var A=@Bun.stdin.stream().getReader(),F=new globalThis.TextDecoder(\"utf-8\",{fatal:!1}),H,J=@Bun.indexOfLine;try{while(!0){var K,m,L;const D=A.readMany();if(@isPromise(D))({done:K,value:m}=await D);else({done:K,value:m}=D);if(K){if(L)yield F.decode(L);return}var M;for(let z of m){if(M=z,L)M=@Buffer.concat([L,z]),L=null;var q=0,B=J(M,q);while(B!==-1)yield F.decode(M.subarray(q,B)),q=B+1,B=J(M,q);L=M.subarray(q)}}}catch(D){H=D}finally{if(A.releaseLock(),H)throw H}},G=globalThis.Symbol.asyncIterator;return this[G]=w,w()})\n"; +const char* const s_consoleObjectAsyncIteratorCode = "(function (){\"use strict\";const j=async function*A(){var m=@Bun.stdin.stream().getReader(),D=new globalThis.TextDecoder(\"utf-8\",{fatal:!1}),F,G=@Bun.indexOfLine;try{while(!0){var q,H,J;const K=m.readMany();if(@isPromise(K))({done:q,value:H}=await K);else({done:q,value:H}=K);if(q){if(J)yield D.decode(J);return}var w;for(let _ of H){if(w=_,J)w=@Buffer.concat([J,_]),J=null;var L=0,M=G(w,L);while(M!==-1)yield D.decode(w.subarray(L,M)),L=M+1,M=G(w,L);J=w.subarray(L)}}}catch(K){F=K}finally{if(m.releaseLock(),F)throw F}},z=globalThis.Symbol.asyncIterator;return this[z]=j,j()})\n"; // write const JSC::ConstructAbility s_consoleObjectWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1346,7 +1346,7 @@ const JSC::ConstructorKind s_consoleObjectWriteCodeConstructorKind = JSC::Constr const JSC::ImplementationVisibility s_consoleObjectWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_consoleObjectWriteCodeLength = 310; static const JSC::Intrinsic s_consoleObjectWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_consoleObjectWriteCode = "(function (d){\"use strict\";var _=@getByIdDirectPrivate(this,\"writer\");if(!_){var b=@toLength(d\?.length\?\?0);_=@Bun.stdout.writer({highWaterMark:b>65536\?b:65536}),@putByIdDirectPrivate(this,\"writer\",_)}var c=_.write(d);const f=@argumentCount();for(var a=1;a65536\?_:65536}),@putByIdDirectPrivate(this,\"writer\",d)}var b=d.write(a);const f=@argumentCount();for(var c=1;c{},(S)=>{g.error(S)});function y(){@readableStreamDefaultReaderRead(h).@then(function(S){if(S.done){g.close();return}try{g.enqueue(S.value)}catch(_){g.error(\"ReadableStream chunk enqueueing in the sink failed\");return}y()},function(S){g.error(S)})}y()})\n"; +const char* const s_readableStreamInternalsReadableStreamPipeToCode = "(function (_,y){\"use strict\";@assert(@isReadableStream(_));const c=new @ReadableStreamDefaultReader(_);@getByIdDirectPrivate(c,\"closedPromiseCapability\").@promise.@then(()=>{},(g)=>{y.error(g)});function h(){@readableStreamDefaultReaderRead(c).@then(function(g){if(g.done){y.close();return}try{y.enqueue(g.value)}catch(S){y.error(\"ReadableStream chunk enqueueing in the sink failed\");return}h()},function(g){y.error(g)})}h()})\n"; // acquireReadableStreamDefaultReader const JSC::ConstructAbility s_readableStreamInternalsAcquireReadableStreamDefaultReaderCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1404,7 +1404,7 @@ const JSC::ConstructorKind s_readableStreamInternalsSetupReadableStreamDefaultCo const JSC::ImplementationVisibility s_readableStreamInternalsSetupReadableStreamDefaultControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsSetupReadableStreamDefaultControllerCodeLength = 523; static const JSC::Intrinsic s_readableStreamInternalsSetupReadableStreamDefaultControllerCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsSetupReadableStreamDefaultControllerCode = "(function (b,j,v,w,_,x,f){\"use strict\";const B=new @ReadableStreamDefaultController(b,j,v,w,@isReadableStream),C=()=>@promiseInvokeOrNoopMethod(j,x,[B]),D=(q)=>@promiseInvokeOrNoopMethod(j,f,[q]);@putByIdDirectPrivate(B,\"pullAlgorithm\",C),@putByIdDirectPrivate(B,\"cancelAlgorithm\",D),@putByIdDirectPrivate(B,\"pull\",@readableStreamDefaultControllerPull),@putByIdDirectPrivate(B,\"cancel\",@readableStreamDefaultControllerCancel),@putByIdDirectPrivate(b,\"readableStreamController\",B),@readableStreamDefaultControllerStart(B)})\n"; +const char* const s_readableStreamInternalsSetupReadableStreamDefaultControllerCode = "(function (f,b,j,q,v,w,x){\"use strict\";const B=new @ReadableStreamDefaultController(f,b,j,q,@isReadableStream),C=()=>@promiseInvokeOrNoopMethod(b,w,[B]),D=(_)=>@promiseInvokeOrNoopMethod(b,x,[_]);@putByIdDirectPrivate(B,\"pullAlgorithm\",C),@putByIdDirectPrivate(B,\"cancelAlgorithm\",D),@putByIdDirectPrivate(B,\"pull\",@readableStreamDefaultControllerPull),@putByIdDirectPrivate(B,\"cancel\",@readableStreamDefaultControllerCancel),@putByIdDirectPrivate(f,\"readableStreamController\",B),@readableStreamDefaultControllerStart(B)})\n"; // createReadableStreamController const JSC::ConstructAbility s_readableStreamInternalsCreateReadableStreamControllerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1412,7 +1412,7 @@ const JSC::ConstructorKind s_readableStreamInternalsCreateReadableStreamControll const JSC::ImplementationVisibility s_readableStreamInternalsCreateReadableStreamControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsCreateReadableStreamControllerCodeLength = 671; static const JSC::Intrinsic s_readableStreamInternalsCreateReadableStreamControllerCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsCreateReadableStreamControllerCode = "(function (v,w,A){\"use strict\";const C=w.type,b=@toString(C);if(b===\"bytes\"){if(A.highWaterMark===@undefined)A.highWaterMark=0;if(A.size!==@undefined)@throwRangeError(\"Strategy for a ReadableByteStreamController cannot have a size\");@putByIdDirectPrivate(v,\"readableStreamController\",new @ReadableByteStreamController(v,w,A.highWaterMark,@isReadableStream))}else if(b===\"direct\"){var f=A\?.highWaterMark;@initializeArrayBufferStream.@call(v,w,f)}else if(C===@undefined){if(A.highWaterMark===@undefined)A.highWaterMark=1;@setupReadableStreamDefaultController(v,w,A.size,A.highWaterMark,w.start,w.pull,w.cancel)}else @throwRangeError(\"Invalid type for underlying source\")})\n"; +const char* const s_readableStreamInternalsCreateReadableStreamControllerCode = "(function (f,v,w){\"use strict\";const C=v.type,b=@toString(C);if(b===\"bytes\"){if(w.highWaterMark===@undefined)w.highWaterMark=0;if(w.size!==@undefined)@throwRangeError(\"Strategy for a ReadableByteStreamController cannot have a size\");@putByIdDirectPrivate(f,\"readableStreamController\",new @ReadableByteStreamController(f,v,w.highWaterMark,@isReadableStream))}else if(b===\"direct\"){var A=w\?.highWaterMark;@initializeArrayBufferStream.@call(f,v,A)}else if(C===@undefined){if(w.highWaterMark===@undefined)w.highWaterMark=1;@setupReadableStreamDefaultController(f,v,w.size,w.highWaterMark,v.start,v.pull,v.cancel)}else @throwRangeError(\"Invalid type for underlying source\")})\n"; // readableStreamDefaultControllerStart const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerStartCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1420,7 +1420,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControl const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerStartCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamDefaultControllerStartCodeLength = 465; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultControllerStartCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamDefaultControllerStartCode = "(function (m){\"use strict\";if(@getByIdDirectPrivate(m,\"started\")!==-1)return;const B=@getByIdDirectPrivate(m,\"underlyingSource\"),p=B.start;@putByIdDirectPrivate(m,\"started\",0),@promiseInvokeOrNoopMethodNoCatch(B,p,[m]).@then(()=>{@putByIdDirectPrivate(m,\"started\",1),@assert(!@getByIdDirectPrivate(m,\"pulling\")),@assert(!@getByIdDirectPrivate(m,\"pullAgain\")),@readableStreamDefaultControllerCallPullIfNeeded(m)},(a)=>{@readableStreamDefaultControllerError(m,a)})})\n"; +const char* const s_readableStreamInternalsReadableStreamDefaultControllerStartCode = "(function (m){\"use strict\";if(@getByIdDirectPrivate(m,\"started\")!==-1)return;const B=@getByIdDirectPrivate(m,\"underlyingSource\"),a=B.start;@putByIdDirectPrivate(m,\"started\",0),@promiseInvokeOrNoopMethodNoCatch(B,a,[m]).@then(()=>{@putByIdDirectPrivate(m,\"started\",1),@assert(!@getByIdDirectPrivate(m,\"pulling\")),@assert(!@getByIdDirectPrivate(m,\"pullAgain\")),@readableStreamDefaultControllerCallPullIfNeeded(m)},(p)=>{@readableStreamDefaultControllerError(m,p)})})\n"; // readableStreamPipeToWritableStream const JSC::ConstructAbility s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1428,7 +1428,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamPipeToWritable const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeLength = 1631; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamPipeToWritableStreamCode = "(function (_,z,k,f,q,B){\"use strict\";if(@assert(@isReadableStream(_)),@assert(@isWritableStream(z)),@assert(!@isReadableStreamLocked(_)),@assert(!@isWritableStreamLocked(z)),@assert(B===@undefined||@isAbortSignal(B)),@getByIdDirectPrivate(_,\"underlyingByteSource\")!==@undefined)return @Promise.@reject(\"Piping to a readable bytestream is not supported\");let H={source:_,destination:z,preventAbort:f,preventCancel:q,preventClose:k,signal:B};if(H.reader=@acquireReadableStreamDefaultReader(_),H.writer=@acquireWritableStreamDefaultWriter(z),@putByIdDirectPrivate(_,\"disturbed\",!0),H.finalized=!1,H.shuttingDown=!1,H.promiseCapability=@newPromiseCapability(@Promise),H.pendingReadPromiseCapability=@newPromiseCapability(@Promise),H.pendingReadPromiseCapability.@resolve.@call(),H.pendingWritePromise=@Promise.@resolve(),B!==@undefined){const I=(J)=>{if(H.finalized)return;@pipeToShutdownWithAction(H,()=>{const K=!H.preventAbort&&@getByIdDirectPrivate(H.destination,\"state\")===\"writable\"\?@writableStreamAbort(H.destination,J):@Promise.@resolve(),E=!H.preventCancel&&@getByIdDirectPrivate(H.source,\"state\")===@streamReadable\?@readableStreamCancel(H.source,J):@Promise.@resolve();let w=@newPromiseCapability(@Promise),x=!0,T=()=>{if(x){x=!1;return}w.@resolve.@call()},F=(G)=>{w.@reject.@call(@undefined,G)};return K.@then(T,F),E.@then(T,F),w.@promise},J)};if(@whenSignalAborted(B,I))return H.promiseCapability.@promise}return @pipeToErrorsMustBePropagatedForward(H),@pipeToErrorsMustBePropagatedBackward(H),@pipeToClosingMustBePropagatedForward(H),@pipeToClosingMustBePropagatedBackward(H),@pipeToLoop(H),H.promiseCapability.@promise})\n"; +const char* const s_readableStreamInternalsReadableStreamPipeToWritableStreamCode = "(function (D,I,E,T,k,J){\"use strict\";if(@assert(@isReadableStream(D)),@assert(@isWritableStream(I)),@assert(!@isReadableStreamLocked(D)),@assert(!@isWritableStreamLocked(I)),@assert(J===@undefined||@isAbortSignal(J)),@getByIdDirectPrivate(D,\"underlyingByteSource\")!==@undefined)return @Promise.@reject(\"Piping to a readable bytestream is not supported\");let _={source:D,destination:I,preventAbort:T,preventCancel:k,preventClose:E,signal:J};if(_.reader=@acquireReadableStreamDefaultReader(D),_.writer=@acquireWritableStreamDefaultWriter(I),@putByIdDirectPrivate(D,\"disturbed\",!0),_.finalized=!1,_.shuttingDown=!1,_.promiseCapability=@newPromiseCapability(@Promise),_.pendingReadPromiseCapability=@newPromiseCapability(@Promise),_.pendingReadPromiseCapability.@resolve.@call(),_.pendingWritePromise=@Promise.@resolve(),J!==@undefined){const q=(w)=>{if(_.finalized)return;@pipeToShutdownWithAction(_,()=>{const z=!_.preventAbort&&@getByIdDirectPrivate(_.destination,\"state\")===\"writable\"\?@writableStreamAbort(_.destination,w):@Promise.@resolve(),F=!_.preventCancel&&@getByIdDirectPrivate(_.source,\"state\")===@streamReadable\?@readableStreamCancel(_.source,w):@Promise.@resolve();let G=@newPromiseCapability(@Promise),H=!0,K=()=>{if(H){H=!1;return}G.@resolve.@call()},f=(L)=>{G.@reject.@call(@undefined,L)};return z.@then(K,f),F.@then(K,f),G.@promise},w)};if(@whenSignalAborted(J,q))return _.promiseCapability.@promise}return @pipeToErrorsMustBePropagatedForward(_),@pipeToErrorsMustBePropagatedBackward(_),@pipeToClosingMustBePropagatedForward(_),@pipeToClosingMustBePropagatedBackward(_),@pipeToLoop(_),_.promiseCapability.@promise})\n"; // pipeToLoop const JSC::ConstructAbility s_readableStreamInternalsPipeToLoopCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1444,7 +1444,7 @@ const JSC::ConstructorKind s_readableStreamInternalsPipeToDoReadWriteCodeConstru const JSC::ImplementationVisibility s_readableStreamInternalsPipeToDoReadWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsPipeToDoReadWriteCodeLength = 731; static const JSC::Intrinsic s_readableStreamInternalsPipeToDoReadWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsPipeToDoReadWriteCode = "(function (m){\"use strict\";return @assert(!m.shuttingDown),m.pendingReadPromiseCapability=@newPromiseCapability(@Promise),@getByIdDirectPrivate(m.writer,\"readyPromise\").@promise.@then(()=>{if(m.shuttingDown){m.pendingReadPromiseCapability.@resolve.@call(@undefined,!1);return}@readableStreamDefaultReaderRead(m.reader).@then((_)=>{const d=!_.done&&@getByIdDirectPrivate(m.writer,\"stream\")!==@undefined;if(m.pendingReadPromiseCapability.@resolve.@call(@undefined,d),!d)return;m.pendingWritePromise=@writableStreamDefaultWriterWrite(m.writer,_.value)},(_)=>{m.pendingReadPromiseCapability.@resolve.@call(@undefined,!1)})},(_)=>{m.pendingReadPromiseCapability.@resolve.@call(@undefined,!1)}),m.pendingReadPromiseCapability.@promise})\n"; +const char* const s_readableStreamInternalsPipeToDoReadWriteCode = "(function (_){\"use strict\";return @assert(!_.shuttingDown),_.pendingReadPromiseCapability=@newPromiseCapability(@Promise),@getByIdDirectPrivate(_.writer,\"readyPromise\").@promise.@then(()=>{if(_.shuttingDown){_.pendingReadPromiseCapability.@resolve.@call(@undefined,!1);return}@readableStreamDefaultReaderRead(_.reader).@then((m)=>{const d=!m.done&&@getByIdDirectPrivate(_.writer,\"stream\")!==@undefined;if(_.pendingReadPromiseCapability.@resolve.@call(@undefined,d),!d)return;_.pendingWritePromise=@writableStreamDefaultWriterWrite(_.writer,m.value)},(m)=>{_.pendingReadPromiseCapability.@resolve.@call(@undefined,!1)})},(m)=>{_.pendingReadPromiseCapability.@resolve.@call(@undefined,!1)}),_.pendingReadPromiseCapability.@promise})\n"; // pipeToErrorsMustBePropagatedForward const JSC::ConstructAbility s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1452,7 +1452,7 @@ const JSC::ConstructorKind s_readableStreamInternalsPipeToErrorsMustBePropagated const JSC::ImplementationVisibility s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCodeLength = 438; static const JSC::Intrinsic s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCode = "(function (d){\"use strict\";const _=()=>{d.pendingReadPromiseCapability.@resolve.@call(@undefined,!1);const b=@getByIdDirectPrivate(d.source,\"storedError\");if(!d.preventAbort){@pipeToShutdownWithAction(d,()=>@writableStreamAbort(d.destination,b),b);return}@pipeToShutdown(d,b)};if(@getByIdDirectPrivate(d.source,\"state\")===@streamErrored){_();return}@getByIdDirectPrivate(d.reader,\"closedPromiseCapability\").@promise.@then(@undefined,_)})\n"; +const char* const s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCode = "(function (_){\"use strict\";const d=()=>{_.pendingReadPromiseCapability.@resolve.@call(@undefined,!1);const b=@getByIdDirectPrivate(_.source,\"storedError\");if(!_.preventAbort){@pipeToShutdownWithAction(_,()=>@writableStreamAbort(_.destination,b),b);return}@pipeToShutdown(_,b)};if(@getByIdDirectPrivate(_.source,\"state\")===@streamErrored){d();return}@getByIdDirectPrivate(_.reader,\"closedPromiseCapability\").@promise.@then(@undefined,d)})\n"; // pipeToErrorsMustBePropagatedBackward const JSC::ConstructAbility s_readableStreamInternalsPipeToErrorsMustBePropagatedBackwardCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1484,7 +1484,7 @@ const JSC::ConstructorKind s_readableStreamInternalsPipeToShutdownWithActionCode const JSC::ImplementationVisibility s_readableStreamInternalsPipeToShutdownWithActionCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsPipeToShutdownWithActionCodeLength = 458; static const JSC::Intrinsic s_readableStreamInternalsPipeToShutdownWithActionCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsPipeToShutdownWithActionCode = "(function (_,m){\"use strict\";if(_.shuttingDown)return;_.shuttingDown=!0;const b=arguments.length>2,d=arguments[2],g=()=>{m().@then(()=>{if(b)@pipeToFinalize(_,d);else @pipeToFinalize(_)},(j)=>{@pipeToFinalize(_,j)})};if(@getByIdDirectPrivate(_.destination,\"state\")===\"writable\"&&!@writableStreamCloseQueuedOrInFlight(_.destination)){_.pendingReadPromiseCapability.@promise.@then(()=>{_.pendingWritePromise.@then(g,g)},(h)=>@pipeToFinalize(_,h));return}g()})\n"; +const char* const s_readableStreamInternalsPipeToShutdownWithActionCode = "(function (_,g){\"use strict\";if(_.shuttingDown)return;_.shuttingDown=!0;const b=arguments.length>2,d=arguments[2],m=()=>{g().@then(()=>{if(b)@pipeToFinalize(_,d);else @pipeToFinalize(_)},(j)=>{@pipeToFinalize(_,j)})};if(@getByIdDirectPrivate(_.destination,\"state\")===\"writable\"&&!@writableStreamCloseQueuedOrInFlight(_.destination)){_.pendingReadPromiseCapability.@promise.@then(()=>{_.pendingWritePromise.@then(m,m)},(h)=>@pipeToFinalize(_,h));return}m()})\n"; // pipeToShutdown const JSC::ConstructAbility s_readableStreamInternalsPipeToShutdownCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1508,7 +1508,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamTeeCodeConstru const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamTeeCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamTeeCodeLength = 1104; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamTeeCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamTeeCode = "(function (f,k){\"use strict\";@assert(@isReadableStream(f)),@assert(typeof k===\"boolean\");var i=@getByIdDirectPrivate(f,\"start\");if(i)@putByIdDirectPrivate(f,\"start\",@undefined),i();const q=new @ReadableStreamDefaultReader(f),_={closedOrErrored:!1,canceled1:!1,canceled2:!1,reason1:@undefined,reason2:@undefined};_.cancelPromiseCapability=@newPromiseCapability(@Promise);const v=@readableStreamTeePullFunction(_,q,k),g={};@putByIdDirectPrivate(g,\"pull\",v),@putByIdDirectPrivate(g,\"cancel\",@readableStreamTeeBranch1CancelFunction(_,f));const w={};@putByIdDirectPrivate(w,\"pull\",v),@putByIdDirectPrivate(w,\"cancel\",@readableStreamTeeBranch2CancelFunction(_,f));const x=new @ReadableStream(g),j=new @ReadableStream(w);return @getByIdDirectPrivate(q,\"closedPromiseCapability\").@promise.@then(@undefined,function(y){if(_.closedOrErrored)return;if(@readableStreamDefaultControllerError(x.@readableStreamController,y),@readableStreamDefaultControllerError(j.@readableStreamController,y),_.closedOrErrored=!0,!_.canceled1||!_.canceled2)_.cancelPromiseCapability.@resolve.@call()}),_.branch1=x,_.branch2=j,[x,j]})\n"; +const char* const s_readableStreamInternalsReadableStreamTeeCode = "(function (i,q){\"use strict\";@assert(@isReadableStream(i)),@assert(typeof q===\"boolean\");var k=@getByIdDirectPrivate(i,\"start\");if(k)@putByIdDirectPrivate(i,\"start\",@undefined),k();const _=new @ReadableStreamDefaultReader(i),v={closedOrErrored:!1,canceled1:!1,canceled2:!1,reason1:@undefined,reason2:@undefined};v.cancelPromiseCapability=@newPromiseCapability(@Promise);const w=@readableStreamTeePullFunction(v,_,q),f={};@putByIdDirectPrivate(f,\"pull\",w),@putByIdDirectPrivate(f,\"cancel\",@readableStreamTeeBranch1CancelFunction(v,i));const j={};@putByIdDirectPrivate(j,\"pull\",w),@putByIdDirectPrivate(j,\"cancel\",@readableStreamTeeBranch2CancelFunction(v,i));const g=new @ReadableStream(f),x=new @ReadableStream(j);return @getByIdDirectPrivate(_,\"closedPromiseCapability\").@promise.@then(@undefined,function(y){if(v.closedOrErrored)return;if(@readableStreamDefaultControllerError(g.@readableStreamController,y),@readableStreamDefaultControllerError(x.@readableStreamController,y),v.closedOrErrored=!0,!v.canceled1||!v.canceled2)v.cancelPromiseCapability.@resolve.@call()}),v.branch1=g,v.branch2=x,[g,x]})\n"; // readableStreamTeePullFunction const JSC::ConstructAbility s_readableStreamInternalsReadableStreamTeePullFunctionCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1516,7 +1516,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamTeePullFunctio const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamTeePullFunctionCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamTeePullFunctionCodeLength = 764; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamTeePullFunctionCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamTeePullFunctionCode = "(function (i,f,m){\"use strict\";return function(){@Promise.prototype.@then.@call(@readableStreamDefaultReaderRead(f),function(_){if(@assert(@isObject(_)),@assert(typeof _.done===\"boolean\"),_.done&&!i.closedOrErrored){if(!i.canceled1)@readableStreamDefaultControllerClose(i.branch1.@readableStreamController);if(!i.canceled2)@readableStreamDefaultControllerClose(i.branch2.@readableStreamController);if(i.closedOrErrored=!0,!i.canceled1||!i.canceled2)i.cancelPromiseCapability.@resolve.@call()}if(i.closedOrErrored)return;if(!i.canceled1)@readableStreamDefaultControllerEnqueue(i.branch1.@readableStreamController,_.value);if(!i.canceled2)@readableStreamDefaultControllerEnqueue(i.branch2.@readableStreamController,m\?@structuredCloneForStream(_.value):_.value)})}})\n"; +const char* const s_readableStreamInternalsReadableStreamTeePullFunctionCode = "(function (m,_,f){\"use strict\";return function(){@Promise.prototype.@then.@call(@readableStreamDefaultReaderRead(_),function(i){if(@assert(@isObject(i)),@assert(typeof i.done===\"boolean\"),i.done&&!m.closedOrErrored){if(!m.canceled1)@readableStreamDefaultControllerClose(m.branch1.@readableStreamController);if(!m.canceled2)@readableStreamDefaultControllerClose(m.branch2.@readableStreamController);if(m.closedOrErrored=!0,!m.canceled1||!m.canceled2)m.cancelPromiseCapability.@resolve.@call()}if(m.closedOrErrored)return;if(!m.canceled1)@readableStreamDefaultControllerEnqueue(m.branch1.@readableStreamController,i.value);if(!m.canceled2)@readableStreamDefaultControllerEnqueue(m.branch2.@readableStreamController,f\?@structuredCloneForStream(i.value):i.value)})}})\n"; // readableStreamTeeBranch1CancelFunction const JSC::ConstructAbility s_readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1564,7 +1564,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadDirectStreamCodeConstruc const JSC::ImplementationVisibility s_readableStreamInternalsReadDirectStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadDirectStreamCodeLength = 900; static const JSC::Intrinsic s_readableStreamInternalsReadDirectStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadDirectStreamCode = "(function (_,f,j){\"use strict\";@putByIdDirectPrivate(_,\"underlyingSource\",@undefined),@putByIdDirectPrivate(_,\"start\",@undefined);function q(x,z){if(z&&j\?.cancel){try{var A=j.cancel(z);@markPromiseAsHandled(A)}catch(B){}j=@undefined}if(x){if(@putByIdDirectPrivate(x,\"readableStreamController\",@undefined),@putByIdDirectPrivate(x,\"reader\",@undefined),z)@putByIdDirectPrivate(x,\"state\",@streamErrored),@putByIdDirectPrivate(x,\"storedError\",z);else @putByIdDirectPrivate(x,\"state\",@streamClosed);x=@undefined}}if(!j.pull){q();return}if(!@isCallable(j.pull)){q(),@throwTypeError(\"pull is not a function\");return}@putByIdDirectPrivate(_,\"readableStreamController\",f);const v=@getByIdDirectPrivate(_,\"highWaterMark\");f.start({highWaterMark:!v||v<64\?64:v}),@startDirectStream.@call(f,_,j.pull,q),@putByIdDirectPrivate(_,\"reader\",{});var w=j.pull(f);if(f=@undefined,w&&@isPromise(w))return w.@then(()=>{})})\n"; +const char* const s_readableStreamInternalsReadDirectStreamCode = "(function (j,v,w){\"use strict\";@putByIdDirectPrivate(j,\"underlyingSource\",@undefined),@putByIdDirectPrivate(j,\"start\",@undefined);function x(f,A){if(A&&w\?.cancel){try{var B=w.cancel(A);@markPromiseAsHandled(B)}catch(q){}w=@undefined}if(f){if(@putByIdDirectPrivate(f,\"readableStreamController\",@undefined),@putByIdDirectPrivate(f,\"reader\",@undefined),A)@putByIdDirectPrivate(f,\"state\",@streamErrored),@putByIdDirectPrivate(f,\"storedError\",A);else @putByIdDirectPrivate(f,\"state\",@streamClosed);f=@undefined}}if(!w.pull){x();return}if(!@isCallable(w.pull)){x(),@throwTypeError(\"pull is not a function\");return}@putByIdDirectPrivate(j,\"readableStreamController\",v);const _=@getByIdDirectPrivate(j,\"highWaterMark\");v.start({highWaterMark:!_||_<64\?64:_}),@startDirectStream.@call(v,j,w.pull,x),@putByIdDirectPrivate(j,\"reader\",{});var z=w.pull(v);if(v=@undefined,z&&@isPromise(z))return z.@then(()=>{})})\n"; // assignToStream const JSC::ConstructAbility s_readableStreamInternalsAssignToStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1580,7 +1580,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadStreamIntoSinkCodeConstr const JSC::ImplementationVisibility s_readableStreamInternalsReadStreamIntoSinkCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadStreamIntoSinkCodeLength = 1395; static const JSC::Intrinsic s_readableStreamInternalsReadStreamIntoSinkCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadStreamIntoSinkCode = "(async function (_,D,q){\"use strict\";var c=!1,x=!1;try{var E=_.getReader(),F=E.readMany();if(F&&@isPromise(F))F=await F;if(F.done)return c=!0,D.end();var G=F.value.length;const P=@getByIdDirectPrivate(_,\"highWaterMark\");if(q)@startDirectStream.@call(D,_,@undefined,()=>!x&&@markPromiseAsHandled(_.cancel()));D.start({highWaterMark:P||0});for(var H=0,f=F.value,J=F.value.length;H!B&&@markPromiseAsHandled(c.cancel()));q.start({highWaterMark:_||0});for(var I=0,H=F.value,P=F.value.length;I{var j=@createFulfilledPromise({value:b,done:!1});return b=@undefined,@readableStreamClose(v),v=@undefined,j}}else if(this._pendingRead){var y=this._pendingRead;this._pendingRead=@undefined,@putByIdDirectPrivate(this,\"pull\",@noopDoneFunction),@fulfillPromise(y,{value:@undefined,done:!0})}@readableStreamClose(v)})\n"; +const char* const s_readableStreamInternalsOnCloseDirectStreamCode = "(function (c){\"use strict\";var v=this.@controlledReadableStream;if(!v||@getByIdDirectPrivate(v,\"state\")!==@streamReadable)return;if(this._deferClose!==0){this._deferClose=1,this._deferCloseReason=c;return}if(@putByIdDirectPrivate(v,\"state\",@streamClosing),typeof this.@underlyingSource.close===\"function\")try{this.@underlyingSource.close.@call(this.@underlyingSource,c)}catch(B){}var C;try{C=this.@sink.end(),@putByIdDirectPrivate(this,\"sink\",@undefined)}catch(B){if(this._pendingRead){var S=this._pendingRead;this._pendingRead=@undefined,@rejectPromise(S,B)}@readableStreamError(v,B);return}this.error=this.flush=this.write=this.close=this.end=@onReadableStreamDirectControllerClosed;var b=@getByIdDirectPrivate(v,\"reader\");if(b&&@isReadableStreamDefaultReader(b)){var j=this._pendingRead;if(j&&@isPromise(j)&&C\?.byteLength){this._pendingRead=@undefined,@fulfillPromise(j,{value:C,done:!1}),@readableStreamClose(v);return}}if(C\?.byteLength){var y=@getByIdDirectPrivate(b,\"readRequests\");if(y\?.isNotEmpty()){@readableStreamFulfillReadRequest(v,C,!1),@readableStreamClose(v);return}@putByIdDirectPrivate(v,\"state\",@streamReadable),this.@pull=()=>{var B=@createFulfilledPromise({value:C,done:!1});return C=@undefined,@readableStreamClose(v),v=@undefined,B}}else if(this._pendingRead){var S=this._pendingRead;this._pendingRead=@undefined,@putByIdDirectPrivate(this,\"pull\",@noopDoneFunction),@fulfillPromise(S,{value:@undefined,done:!0})}@readableStreamClose(v)})\n"; // onFlushDirectStream const JSC::ConstructAbility s_readableStreamInternalsOnFlushDirectStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1636,7 +1636,7 @@ const JSC::ConstructorKind s_readableStreamInternalsOnFlushDirectStreamCodeConst const JSC::ImplementationVisibility s_readableStreamInternalsOnFlushDirectStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsOnFlushDirectStreamCodeLength = 591; static const JSC::Intrinsic s_readableStreamInternalsOnFlushDirectStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsOnFlushDirectStreamCode = "(function (){\"use strict\";var c=this.@controlledReadableStream,B=@getByIdDirectPrivate(c,\"reader\");if(!B||!@isReadableStreamDefaultReader(B))return;var b=this._pendingRead;if(this._pendingRead=@undefined,b&&@isPromise(b)){var i=this.@sink.flush();if(i\?.byteLength)this._pendingRead=@getByIdDirectPrivate(c,\"readRequests\")\?.shift(),@fulfillPromise(b,{value:i,done:!1});else this._pendingRead=b}else if(@getByIdDirectPrivate(c,\"readRequests\")\?.isNotEmpty()){var i=this.@sink.flush();if(i\?.byteLength)@readableStreamFulfillReadRequest(c,i,!1)}else if(this._deferFlush===-1)this._deferFlush=1})\n"; +const char* const s_readableStreamInternalsOnFlushDirectStreamCode = "(function (){\"use strict\";var c=this.@controlledReadableStream,b=@getByIdDirectPrivate(c,\"reader\");if(!b||!@isReadableStreamDefaultReader(b))return;var i=this._pendingRead;if(this._pendingRead=@undefined,i&&@isPromise(i)){var j=this.@sink.flush();if(j\?.byteLength)this._pendingRead=@getByIdDirectPrivate(c,\"readRequests\")\?.shift(),@fulfillPromise(i,{value:j,done:!1});else this._pendingRead=i}else if(@getByIdDirectPrivate(c,\"readRequests\")\?.isNotEmpty()){var j=this.@sink.flush();if(j\?.byteLength)@readableStreamFulfillReadRequest(c,j,!1)}else if(this._deferFlush===-1)this._deferFlush=1})\n"; // createTextStream const JSC::ConstructAbility s_readableStreamInternalsCreateTextStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1644,7 +1644,7 @@ const JSC::ConstructorKind s_readableStreamInternalsCreateTextStreamCodeConstruc const JSC::ImplementationVisibility s_readableStreamInternalsCreateTextStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsCreateTextStreamCodeLength = 984; static const JSC::Intrinsic s_readableStreamInternalsCreateTextStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsCreateTextStreamCode = "(function (_){\"use strict\";var z,j=[],q=!1,w=!1,x=\"\",A=@toLength(0),C=@newPromiseCapability(@Promise),E=!1;return z={start(){},write(v){if(typeof v===\"string\"){var F=@toLength(v.length);if(F>0)x+=v,q=!0,A+=F;return F}if(!v||!(@ArrayBuffer.@isView(v)||v instanceof @ArrayBuffer))@throwTypeError(\"Expected text, ArrayBuffer or ArrayBufferView\");const G=@toLength(v.byteLength);if(G>0)if(w=!0,x.length>0)@arrayPush(j,x,v),x=\"\";else @arrayPush(j,v);return A+=G,G},flush(){return 0},end(){if(E)return\"\";return z.fulfill()},fulfill(){E=!0;const v=z.finishInternal();return @fulfillPromise(C.@promise,v),v},finishInternal(){if(!q&&!w)return\"\";if(q&&!w)return x;if(w&&!q)return new globalThis.TextDecoder().decode(@Bun.concatArrayBuffers(j));var v=new @Bun.ArrayBufferSink;v.start({highWaterMark:A,asUint8Array:!0});for(let F of j)v.write(F);if(j.length=0,x.length>0)v.write(x),x=\"\";return new globalThis.TextDecoder().decode(v.end())},close(){try{if(!E)E=!0,z.fulfill()}catch(v){}}},[z,C]})\n"; +const char* const s_readableStreamInternalsCreateTextStreamCode = "(function (q){\"use strict\";var j,v=[],w=!1,x=!1,z=\"\",A=@toLength(0),C=@newPromiseCapability(@Promise),E=!1;return j={start(){},write(F){if(typeof F===\"string\"){var G=@toLength(F.length);if(G>0)z+=F,w=!0,A+=G;return G}if(!F||!(@ArrayBuffer.@isView(F)||F instanceof @ArrayBuffer))@throwTypeError(\"Expected text, ArrayBuffer or ArrayBufferView\");const _=@toLength(F.byteLength);if(_>0)if(x=!0,z.length>0)@arrayPush(v,z,F),z=\"\";else @arrayPush(v,F);return A+=_,_},flush(){return 0},end(){if(E)return\"\";return j.fulfill()},fulfill(){E=!0;const F=j.finishInternal();return @fulfillPromise(C.@promise,F),F},finishInternal(){if(!w&&!x)return\"\";if(w&&!x)return z;if(x&&!w)return new globalThis.TextDecoder().decode(@Bun.concatArrayBuffers(v));var F=new @Bun.ArrayBufferSink;F.start({highWaterMark:A,asUint8Array:!0});for(let G of v)F.write(G);if(v.length=0,z.length>0)F.write(z),z=\"\";return new globalThis.TextDecoder().decode(F.end())},close(){try{if(!E)E=!0,j.fulfill()}catch(F){}}},[j,C]})\n"; // initializeTextStream const JSC::ConstructAbility s_readableStreamInternalsInitializeTextStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1652,7 +1652,7 @@ const JSC::ConstructorKind s_readableStreamInternalsInitializeTextStreamCodeCons const JSC::ImplementationVisibility s_readableStreamInternalsInitializeTextStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsInitializeTextStreamCodeLength = 578; static const JSC::Intrinsic s_readableStreamInternalsInitializeTextStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsInitializeTextStreamCode = "(function (_,m){\"use strict\";var[p,b]=@createTextStream(m),f={@underlyingSource:_,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:p,close:@onCloseDirectStream,write:p.write,error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};return @putByIdDirectPrivate(this,\"readableStreamController\",f),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined),b})\n"; +const char* const s_readableStreamInternalsInitializeTextStreamCode = "(function (_,m){\"use strict\";var[b,p]=@createTextStream(m),f={@underlyingSource:_,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:b,close:@onCloseDirectStream,write:b.write,error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};return @putByIdDirectPrivate(this,\"readableStreamController\",f),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined),p})\n"; // initializeArrayStream const JSC::ConstructAbility s_readableStreamInternalsInitializeArrayStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1660,7 +1660,7 @@ const JSC::ConstructorKind s_readableStreamInternalsInitializeArrayStreamCodeCon const JSC::ImplementationVisibility s_readableStreamInternalsInitializeArrayStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsInitializeArrayStreamCodeLength = 797; static const JSC::Intrinsic s_readableStreamInternalsInitializeArrayStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsInitializeArrayStreamCode = "(function (_,t){\"use strict\";var p=[],b=@newPromiseCapability(@Promise),d=!1;function j(){return d=!0,b.@resolve.@call(@undefined,p),p}var m={start(){},write(v){return @arrayPush(p,v),v.byteLength||v.length},flush(){return 0},end(){if(d)return[];return j()},close(){if(!d)j()}},q={@underlyingSource:_,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:m,close:@onCloseDirectStream,write:m.write,error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};return @putByIdDirectPrivate(this,\"readableStreamController\",q),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined),b})\n"; +const char* const s_readableStreamInternalsInitializeArrayStreamCode = "(function (_,d){\"use strict\";var j=[],m=@newPromiseCapability(@Promise),t=!1;function b(){return t=!0,m.@resolve.@call(@undefined,j),j}var q={start(){},write(p){return @arrayPush(j,p),p.byteLength||p.length},flush(){return 0},end(){if(t)return[];return b()},close(){if(!t)b()}},v={@underlyingSource:_,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:q,close:@onCloseDirectStream,write:q.write,error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};return @putByIdDirectPrivate(this,\"readableStreamController\",v),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined),m})\n"; // initializeArrayBufferStream const JSC::ConstructAbility s_readableStreamInternalsInitializeArrayBufferStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1668,7 +1668,7 @@ const JSC::ConstructorKind s_readableStreamInternalsInitializeArrayBufferStreamC const JSC::ImplementationVisibility s_readableStreamInternalsInitializeArrayBufferStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsInitializeArrayBufferStreamCodeLength = 690; static const JSC::Intrinsic s_readableStreamInternalsInitializeArrayBufferStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsInitializeArrayBufferStreamCode = "(function (_,m){\"use strict\";var w=m&&typeof m===\"number\"\?{highWaterMark:m,stream:!0,asUint8Array:!0}:{stream:!0,asUint8Array:!0},D=new @Bun.ArrayBufferSink;D.start(w);var b={@underlyingSource:_,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:D,close:@onCloseDirectStream,write:D.write.bind(D),error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};@putByIdDirectPrivate(this,\"readableStreamController\",b),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined)})\n"; +const char* const s_readableStreamInternalsInitializeArrayBufferStreamCode = "(function (_,m){\"use strict\";var w=m&&typeof m===\"number\"\?{highWaterMark:m,stream:!0,asUint8Array:!0}:{stream:!0,asUint8Array:!0},b=new @Bun.ArrayBufferSink;b.start(w);var D={@underlyingSource:_,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:b,close:@onCloseDirectStream,write:b.write.bind(b),error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};@putByIdDirectPrivate(this,\"readableStreamController\",D),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined)})\n"; // readableStreamError const JSC::ConstructAbility s_readableStreamInternalsReadableStreamErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1676,7 +1676,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamErrorCodeConst const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamErrorCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamErrorCodeLength = 840; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamErrorCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamErrorCode = "(function (i,c){\"use strict\";@assert(@isReadableStream(i)),@assert(@getByIdDirectPrivate(i,\"state\")===@streamReadable),@putByIdDirectPrivate(i,\"state\",@streamErrored),@putByIdDirectPrivate(i,\"storedError\",c);const n=@getByIdDirectPrivate(i,\"reader\");if(!n)return;if(@isReadableStreamDefaultReader(n)){const _=@getByIdDirectPrivate(n,\"readRequests\");@putByIdDirectPrivate(n,\"readRequests\",@createFIFO());for(var f=_.shift();f;f=_.shift())@rejectPromise(f,c)}else{@assert(@isReadableStreamBYOBReader(n));const _=@getByIdDirectPrivate(n,\"readIntoRequests\");@putByIdDirectPrivate(n,\"readIntoRequests\",@createFIFO());for(var f=_.shift();f;f=_.shift())@rejectPromise(f,c)}@getByIdDirectPrivate(n,\"closedPromiseCapability\").@reject.@call(@undefined,c);const h=@getByIdDirectPrivate(n,\"closedPromiseCapability\").@promise;@markPromiseAsHandled(h)})\n"; +const char* const s_readableStreamInternalsReadableStreamErrorCode = "(function (i,_){\"use strict\";@assert(@isReadableStream(i)),@assert(@getByIdDirectPrivate(i,\"state\")===@streamReadable),@putByIdDirectPrivate(i,\"state\",@streamErrored),@putByIdDirectPrivate(i,\"storedError\",_);const c=@getByIdDirectPrivate(i,\"reader\");if(!c)return;if(@isReadableStreamDefaultReader(c)){const h=@getByIdDirectPrivate(c,\"readRequests\");@putByIdDirectPrivate(c,\"readRequests\",@createFIFO());for(var n=h.shift();n;n=h.shift())@rejectPromise(n,_)}else{@assert(@isReadableStreamBYOBReader(c));const h=@getByIdDirectPrivate(c,\"readIntoRequests\");@putByIdDirectPrivate(c,\"readIntoRequests\",@createFIFO());for(var n=h.shift();n;n=h.shift())@rejectPromise(n,_)}@getByIdDirectPrivate(c,\"closedPromiseCapability\").@reject.@call(@undefined,_);const f=@getByIdDirectPrivate(c,\"closedPromiseCapability\").@promise;@markPromiseAsHandled(f)})\n"; // readableStreamDefaultControllerShouldCallPull const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerShouldCallPullCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1684,7 +1684,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControl const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerShouldCallPullCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamDefaultControllerShouldCallPullCodeLength = 477; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultControllerShouldCallPullCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamDefaultControllerShouldCallPullCode = "(function (h){\"use strict\";const i=@getByIdDirectPrivate(h,\"controlledReadableStream\");if(!@readableStreamDefaultControllerCanCloseOrEnqueue(h))return!1;if(@getByIdDirectPrivate(h,\"started\")!==1)return!1;if((!@isReadableStreamLocked(i)||!@getByIdDirectPrivate(@getByIdDirectPrivate(i,\"reader\"),\"readRequests\")\?.isNotEmpty())&&@readableStreamDefaultControllerGetDesiredSize(h)<=0)return!1;const v=@readableStreamDefaultControllerGetDesiredSize(h);return @assert(v!==null),v>0})\n"; +const char* const s_readableStreamInternalsReadableStreamDefaultControllerShouldCallPullCode = "(function (h){\"use strict\";const v=@getByIdDirectPrivate(h,\"controlledReadableStream\");if(!@readableStreamDefaultControllerCanCloseOrEnqueue(h))return!1;if(@getByIdDirectPrivate(h,\"started\")!==1)return!1;if((!@isReadableStreamLocked(v)||!@getByIdDirectPrivate(@getByIdDirectPrivate(v,\"reader\"),\"readRequests\")\?.isNotEmpty())&&@readableStreamDefaultControllerGetDesiredSize(h)<=0)return!1;const i=@readableStreamDefaultControllerGetDesiredSize(h);return @assert(i!==null),i>0})\n"; // readableStreamDefaultControllerCallPullIfNeeded const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerCallPullIfNeededCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1708,7 +1708,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControl const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCodeLength = 283; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCode = "(function (i){\"use strict\";const d=@getByIdDirectPrivate(i,\"controlledReadableStream\"),g=@getByIdDirectPrivate(d,\"state\");if(g===@streamErrored)return null;if(g===@streamClosed)return 0;return @getByIdDirectPrivate(i,\"strategy\").highWaterMark-@getByIdDirectPrivate(i,\"queue\").size})\n"; +const char* const s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCode = "(function (i){\"use strict\";const g=@getByIdDirectPrivate(i,\"controlledReadableStream\"),d=@getByIdDirectPrivate(g,\"state\");if(d===@streamErrored)return null;if(d===@streamClosed)return 0;return @getByIdDirectPrivate(i,\"strategy\").highWaterMark-@getByIdDirectPrivate(i,\"queue\").size})\n"; // readableStreamReaderGenericCancel const JSC::ConstructAbility s_readableStreamInternalsReadableStreamReaderGenericCancelCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1716,7 +1716,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamReaderGenericC const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamReaderGenericCancelCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamReaderGenericCancelCodeLength = 133; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamReaderGenericCancelCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamReaderGenericCancelCode = "(function (c,h){\"use strict\";const i=@getByIdDirectPrivate(c,\"ownerReadableStream\");return @assert(!!i),@readableStreamCancel(i,h)})\n"; +const char* const s_readableStreamInternalsReadableStreamReaderGenericCancelCode = "(function (c,i){\"use strict\";const h=@getByIdDirectPrivate(c,\"ownerReadableStream\");return @assert(!!h),@readableStreamCancel(h,i)})\n"; // readableStreamCancel const JSC::ConstructAbility s_readableStreamInternalsReadableStreamCancelCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1724,7 +1724,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamCancelCodeCons const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamCancelCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamCancelCodeLength = 509; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamCancelCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamCancelCode = "(function (_,d){\"use strict\";@putByIdDirectPrivate(_,\"disturbed\",!0);const h=@getByIdDirectPrivate(_,\"state\");if(h===@streamClosed)return @Promise.@resolve();if(h===@streamErrored)return @Promise.@reject(@getByIdDirectPrivate(_,\"storedError\"));@readableStreamClose(_);var p=@getByIdDirectPrivate(_,\"readableStreamController\"),u=p.@cancel;if(u)return u(p,d).@then(function(){});var i=p.close;if(i)return @Promise.@resolve(p.close(d));@throwTypeError(\"ReadableStreamController has no cancel or close method\")})\n"; +const char* const s_readableStreamInternalsReadableStreamCancelCode = "(function (d,h){\"use strict\";@putByIdDirectPrivate(d,\"disturbed\",!0);const p=@getByIdDirectPrivate(d,\"state\");if(p===@streamClosed)return @Promise.@resolve();if(p===@streamErrored)return @Promise.@reject(@getByIdDirectPrivate(d,\"storedError\"));@readableStreamClose(d);var u=@getByIdDirectPrivate(d,\"readableStreamController\"),_=u.@cancel;if(_)return _(u,h).@then(function(){});var i=u.close;if(i)return @Promise.@resolve(u.close(h));@throwTypeError(\"ReadableStreamController has no cancel or close method\")})\n"; // readableStreamDefaultControllerCancel const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerCancelCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1732,7 +1732,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControl const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerCancelCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamDefaultControllerCancelCodeLength = 146; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultControllerCancelCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamDefaultControllerCancelCode = "(function (d,_){\"use strict\";return @putByIdDirectPrivate(d,\"queue\",@newQueue()),@getByIdDirectPrivate(d,\"cancelAlgorithm\").@call(@undefined,_)})\n"; +const char* const s_readableStreamInternalsReadableStreamDefaultControllerCancelCode = "(function (_,d){\"use strict\";return @putByIdDirectPrivate(_,\"queue\",@newQueue()),@getByIdDirectPrivate(_,\"cancelAlgorithm\").@call(@undefined,d)})\n"; // readableStreamDefaultControllerPull const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerPullCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1740,7 +1740,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControl const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerPullCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamDefaultControllerPullCodeLength = 519; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultControllerPullCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamDefaultControllerPullCode = "(function (a){\"use strict\";var _=@getByIdDirectPrivate(a,\"queue\");if(_.content.isNotEmpty()){const f=@dequeueValue(_);if(@getByIdDirectPrivate(a,\"closeRequested\")&&_.content.isEmpty())@readableStreamClose(@getByIdDirectPrivate(a,\"controlledReadableStream\"));else @readableStreamDefaultControllerCallPullIfNeeded(a);return @createFulfilledPromise({value:f,done:!1})}const d=@readableStreamAddReadRequest(@getByIdDirectPrivate(a,\"controlledReadableStream\"));return @readableStreamDefaultControllerCallPullIfNeeded(a),d})\n"; +const char* const s_readableStreamInternalsReadableStreamDefaultControllerPullCode = "(function (f){\"use strict\";var a=@getByIdDirectPrivate(f,\"queue\");if(a.content.isNotEmpty()){const _=@dequeueValue(a);if(@getByIdDirectPrivate(f,\"closeRequested\")&&a.content.isEmpty())@readableStreamClose(@getByIdDirectPrivate(f,\"controlledReadableStream\"));else @readableStreamDefaultControllerCallPullIfNeeded(f);return @createFulfilledPromise({value:_,done:!1})}const d=@readableStreamAddReadRequest(@getByIdDirectPrivate(f,\"controlledReadableStream\"));return @readableStreamDefaultControllerCallPullIfNeeded(f),d})\n"; // readableStreamDefaultControllerClose const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerCloseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1756,7 +1756,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamCloseCodeConst const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamCloseCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamCloseCodeLength = 617; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamCloseCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamCloseCode = "(function (_){\"use strict\";if(@assert(@getByIdDirectPrivate(_,\"state\")===@streamReadable),@putByIdDirectPrivate(_,\"state\",@streamClosed),!@getByIdDirectPrivate(_,\"reader\"))return;if(@isReadableStreamDefaultReader(@getByIdDirectPrivate(_,\"reader\"))){const i=@getByIdDirectPrivate(@getByIdDirectPrivate(_,\"reader\"),\"readRequests\");if(i.isNotEmpty()){@putByIdDirectPrivate(@getByIdDirectPrivate(_,\"reader\"),\"readRequests\",@createFIFO());for(var d=i.shift();d;d=i.shift())@fulfillPromise(d,{value:@undefined,done:!0})}}@getByIdDirectPrivate(@getByIdDirectPrivate(_,\"reader\"),\"closedPromiseCapability\").@resolve.@call()})\n"; +const char* const s_readableStreamInternalsReadableStreamCloseCode = "(function (_){\"use strict\";if(@assert(@getByIdDirectPrivate(_,\"state\")===@streamReadable),@putByIdDirectPrivate(_,\"state\",@streamClosed),!@getByIdDirectPrivate(_,\"reader\"))return;if(@isReadableStreamDefaultReader(@getByIdDirectPrivate(_,\"reader\"))){const d=@getByIdDirectPrivate(@getByIdDirectPrivate(_,\"reader\"),\"readRequests\");if(d.isNotEmpty()){@putByIdDirectPrivate(@getByIdDirectPrivate(_,\"reader\"),\"readRequests\",@createFIFO());for(var i=d.shift();i;i=d.shift())@fulfillPromise(i,{value:@undefined,done:!0})}}@getByIdDirectPrivate(@getByIdDirectPrivate(_,\"reader\"),\"closedPromiseCapability\").@resolve.@call()})\n"; // readableStreamFulfillReadRequest const JSC::ConstructAbility s_readableStreamInternalsReadableStreamFulfillReadRequestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1764,7 +1764,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamFulfillReadReq const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamFulfillReadRequestCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamFulfillReadRequestCodeLength = 157; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamFulfillReadRequestCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamFulfillReadRequestCode = "(function (i,p,y){\"use strict\";const _=@getByIdDirectPrivate(@getByIdDirectPrivate(i,\"reader\"),\"readRequests\").shift();@fulfillPromise(_,{value:p,done:y})})\n"; +const char* const s_readableStreamInternalsReadableStreamFulfillReadRequestCode = "(function (p,y,i){\"use strict\";const _=@getByIdDirectPrivate(@getByIdDirectPrivate(p,\"reader\"),\"readRequests\").shift();@fulfillPromise(_,{value:y,done:i})})\n"; // readableStreamDefaultControllerEnqueue const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1772,7 +1772,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControl const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeLength = 659; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCode = "(function (_,d){\"use strict\";const D=@getByIdDirectPrivate(_,\"controlledReadableStream\");if(@assert(@readableStreamDefaultControllerCanCloseOrEnqueue(_)),@isReadableStreamLocked(D)&&@getByIdDirectPrivate(@getByIdDirectPrivate(D,\"reader\"),\"readRequests\")\?.isNotEmpty()){@readableStreamFulfillReadRequest(D,d,!1),@readableStreamDefaultControllerCallPullIfNeeded(_);return}try{let E=1;if(@getByIdDirectPrivate(_,\"strategy\").size!==@undefined)E=@getByIdDirectPrivate(_,\"strategy\").size(d);@enqueueValueWithSize(@getByIdDirectPrivate(_,\"queue\"),d,E)}catch(E){throw @readableStreamDefaultControllerError(_,E),E}@readableStreamDefaultControllerCallPullIfNeeded(_)})\n"; +const char* const s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCode = "(function (_,d){\"use strict\";const E=@getByIdDirectPrivate(_,\"controlledReadableStream\");if(@assert(@readableStreamDefaultControllerCanCloseOrEnqueue(_)),@isReadableStreamLocked(E)&&@getByIdDirectPrivate(@getByIdDirectPrivate(E,\"reader\"),\"readRequests\")\?.isNotEmpty()){@readableStreamFulfillReadRequest(E,d,!1),@readableStreamDefaultControllerCallPullIfNeeded(_);return}try{let D=1;if(@getByIdDirectPrivate(_,\"strategy\").size!==@undefined)D=@getByIdDirectPrivate(_,\"strategy\").size(d);@enqueueValueWithSize(@getByIdDirectPrivate(_,\"queue\"),d,D)}catch(D){throw @readableStreamDefaultControllerError(_,D),D}@readableStreamDefaultControllerCallPullIfNeeded(_)})\n"; // readableStreamDefaultReaderRead const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultReaderReadCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1788,7 +1788,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamAddReadRequest const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamAddReadRequestCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamAddReadRequestCodeLength = 274; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamAddReadRequestCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamAddReadRequestCode = "(function (i){\"use strict\";@assert(@isReadableStreamDefaultReader(@getByIdDirectPrivate(i,\"reader\"))),@assert(@getByIdDirectPrivate(i,\"state\")==@streamReadable);const h=@newPromise();return @getByIdDirectPrivate(@getByIdDirectPrivate(i,\"reader\"),\"readRequests\").push(h),h})\n"; +const char* const s_readableStreamInternalsReadableStreamAddReadRequestCode = "(function (h){\"use strict\";@assert(@isReadableStreamDefaultReader(@getByIdDirectPrivate(h,\"reader\"))),@assert(@getByIdDirectPrivate(h,\"state\")==@streamReadable);const i=@newPromise();return @getByIdDirectPrivate(@getByIdDirectPrivate(h,\"reader\"),\"readRequests\").push(i),i})\n"; // isReadableStreamDisturbed const JSC::ConstructAbility s_readableStreamInternalsIsReadableStreamDisturbedCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1820,7 +1820,7 @@ const JSC::ConstructorKind s_readableStreamInternalsLazyLoadStreamCodeConstructo const JSC::ImplementationVisibility s_readableStreamInternalsLazyLoadStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsLazyLoadStreamCodeLength = 1589; static const JSC::Intrinsic s_readableStreamInternalsLazyLoadStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsLazyLoadStreamCode = "(function (E,m){\"use strict\";var y=@getByIdDirectPrivate(E,\"bunNativeType\"),q=@getByIdDirectPrivate(E,\"bunNativePtr\"),x=@lazyStreamPrototypeMap.@get(y);if(x===@undefined){let U=function(Y){var{c:Z,v:_}=this;this.c=@undefined,this.v=@undefined,K(Y,Z,_)},W=function(Y){try{Y.close()}catch(Z){globalThis.reportError(Z)}},X=function(Y,Z,_,p){p[0]=!1;var z;try{z=F(Y,_,p)}catch(A){return Z.error(A)}return K(z,Z,_)};var P=U,Q=W,O=X,[F,G,H,b,B,D,I]=@lazyLoad(y),J=[!1],K;K=function Y(Z,_,p){if(Z&&@isPromise(Z))return Z.then(U.bind({c:_,v:p}),(z)=>_.error(z));else if(typeof Z===\"number\")if(p&&p.byteLength===Z&&p.buffer===_.byobRequest\?.view\?.buffer)_.byobRequest.respondWithNewView(p);else _.byobRequest.respond(Z);else if(Z.constructor===@Uint8Array)_.enqueue(Z);if(J[0]||Z===!1)@enqueueJob(W,_),J[0]=!1};const j=B\?new FinalizationRegistry(B):null;x=class Y{constructor(Z,_,p){if(this.#f=Z,this.#b={},this.pull=this.#j.bind(this),this.cancel=this.#m.bind(this),this.autoAllocateChunkSize=_,p!==@undefined)this.start=(z)=>{z.enqueue(p)};if(j)j.register(this,Z,this.#b)}#b;pull;cancel;start;#f;type=\"bytes\";autoAllocateChunkSize=0;static startSync=G;#j(Z){var _=this.#f;if(!_){Z.close();return}X(_,Z,Z.byobRequest.view,J)}#m(Z){var _=this.#f;j&&j.unregister(this.#b),D&&D(_,!1),H(_,Z)}static deinit=B;static drain=I},@lazyStreamPrototypeMap.@set(y,x)}const L=x.startSync(q,m);var M;const{drain:f,deinit:N}=x;if(f)M=f(q);if(L===0){if(B&&q&&@enqueueJob(B,q),(M\?.byteLength\?\?0)>0)return{start(U){U.enqueue(M),U.close()},type:\"bytes\"};return{start(U){U.close()},type:\"bytes\"}}return new x(q,L,M)})\n"; +const char* const s_readableStreamInternalsLazyLoadStreamCode = "(function (f,b){\"use strict\";var D=@getByIdDirectPrivate(f,\"bunNativeType\"),E=@getByIdDirectPrivate(f,\"bunNativePtr\"),y=@lazyStreamPrototypeMap.@get(D);if(y===@undefined){let p=function(U){var{c:z,v:A}=this;this.c=@undefined,this.v=@undefined,J(U,z,A)},X=function(U){try{U.close()}catch(z){globalThis.reportError(z)}},P=function(U,z,A,Y){Y[0]=!1;var Q;try{Q=j(U,A,Y)}catch(Z){return z.error(Z)}return J(Q,z,A)};var O=p,W=X,N=P,[j,F,_,G,B,m,H]=@lazyLoad(D),I=[!1],J;J=function U(z,A,Y){if(z&&@isPromise(z))return z.then(p.bind({c:A,v:Y}),(Q)=>A.error(Q));else if(typeof z===\"number\")if(Y&&Y.byteLength===z&&Y.buffer===A.byobRequest\?.view\?.buffer)A.byobRequest.respondWithNewView(Y);else A.byobRequest.respond(z);else if(z.constructor===@Uint8Array)A.enqueue(z);if(I[0]||z===!1)@enqueueJob(X,A),I[0]=!1};const x=B\?new FinalizationRegistry(B):null;y=class U{constructor(z,A,Y){if(this.#f=z,this.#b={},this.pull=this.#j.bind(this),this.cancel=this.#m.bind(this),this.autoAllocateChunkSize=A,Y!==@undefined)this.start=(Q)=>{Q.enqueue(Y)};if(x)x.register(this,z,this.#b)}#b;pull;cancel;start;#f;type=\"bytes\";autoAllocateChunkSize=0;static startSync=F;#j(z){var A=this.#f;if(!A){z.close();return}P(A,z,z.byobRequest.view,I)}#m(z){var A=this.#f;x&&x.unregister(this.#b),m&&m(A,!1),_(A,z)}static deinit=B;static drain=H},@lazyStreamPrototypeMap.@set(D,y)}const K=y.startSync(E,b);var q;const{drain:L,deinit:M}=y;if(L)q=L(E);if(K===0){if(B&&E&&@enqueueJob(B,E),(q\?.byteLength\?\?0)>0)return{start(p){p.enqueue(q),p.close()},type:\"bytes\"};return{start(p){p.close()},type:\"bytes\"}}return new y(E,K,q)})\n"; // readableStreamIntoArray const JSC::ConstructAbility s_readableStreamInternalsReadableStreamIntoArrayCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1828,7 +1828,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamIntoArrayCodeC const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamIntoArrayCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamIntoArrayCodeLength = 247; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamIntoArrayCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamIntoArrayCode = "(function (_){\"use strict\";var b=_.getReader(),g=b.readMany();async function j(p){if(p.done)return[];var f=p.value||[];while(!0){var q=await b.read();if(q.done)break;f=f.concat(q.value)}return f}if(g&&@isPromise(g))return g.@then(j);return j(g)})\n"; +const char* const s_readableStreamInternalsReadableStreamIntoArrayCode = "(function (f){\"use strict\";var _=f.getReader(),b=_.readMany();async function g(j){if(j.done)return[];var p=j.value||[];while(!0){var q=await _.read();if(q.done)break;p=p.concat(q.value)}return p}if(b&&@isPromise(b))return b.@then(g);return g(b)})\n"; // readableStreamIntoText const JSC::ConstructAbility s_readableStreamInternalsReadableStreamIntoTextCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1836,7 +1836,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamIntoTextCodeCo const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamIntoTextCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamIntoTextCodeLength = 214; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamIntoTextCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamIntoTextCode = "(function (i){\"use strict\";const[_,d]=@createTextStream(@getByIdDirectPrivate(i,\"highWaterMark\")),h=@readStreamIntoSink(i,_,!1);if(h&&@isPromise(h))return @Promise.@resolve(h).@then(d.@promise);return d.@promise})\n"; +const char* const s_readableStreamInternalsReadableStreamIntoTextCode = "(function (_){\"use strict\";const[i,d]=@createTextStream(@getByIdDirectPrivate(_,\"highWaterMark\")),h=@readStreamIntoSink(_,i,!1);if(h&&@isPromise(h))return @Promise.@resolve(h).@then(d.@promise);return d.@promise})\n"; // readableStreamToArrayBufferDirect const JSC::ConstructAbility s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1844,7 +1844,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamToArrayBufferD const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeLength = 727; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamToArrayBufferDirectCode = "(function (O,_){\"use strict\";var q=new @Bun.ArrayBufferSink;@putByIdDirectPrivate(O,\"underlyingSource\",@undefined);var z=@getByIdDirectPrivate(O,\"highWaterMark\");q.start(z\?{highWaterMark:z}:{});var v=@newPromiseCapability(@Promise),A=!1,x=_.pull,B=_.close,C={start(){},close(F){if(!A){if(A=!0,B)B();@fulfillPromise(v.@promise,q.end())}},end(){if(!A){if(A=!0,B)B();@fulfillPromise(v.@promise,q.end())}},flush(){return 0},write:q.write.bind(q)},D=!1;try{const F=x(C);if(F&&@isObject(F)&&@isPromise(F))return async function(G,j,w){while(!A)await w(G);return await j}(C,promise,x);return v.@promise}catch(F){return D=!0,@readableStreamError(O,F),@Promise.@reject(F)}finally{if(!D&&O)@readableStreamClose(O);C=B=q=x=O=@undefined}})\n"; +const char* const s_readableStreamInternalsReadableStreamToArrayBufferDirectCode = "(function (q,v){\"use strict\";var w=new @Bun.ArrayBufferSink;@putByIdDirectPrivate(q,\"underlyingSource\",@undefined);var D=@getByIdDirectPrivate(q,\"highWaterMark\");w.start(D\?{highWaterMark:D}:{});var x=@newPromiseCapability(@Promise),F=!1,z=v.pull,A=v.close,B={start(){},close(C){if(!F){if(F=!0,A)A();@fulfillPromise(x.@promise,w.end())}},end(){if(!F){if(F=!0,A)A();@fulfillPromise(x.@promise,w.end())}},flush(){return 0},write:w.write.bind(w)},G=!1;try{const C=z(B);if(C&&@isObject(C)&&@isPromise(C))return async function(O,j,_){while(!F)await _(O);return await j}(B,promise,z);return x.@promise}catch(C){return G=!0,@readableStreamError(q,C),@Promise.@reject(C)}finally{if(!G&&q)@readableStreamClose(q);B=A=w=z=q=@undefined}})\n"; // readableStreamToTextDirect const JSC::ConstructAbility s_readableStreamInternalsReadableStreamToTextDirectCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1852,7 +1852,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamToTextDirectCo const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamToTextDirectCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamToTextDirectCodeLength = 278; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamToTextDirectCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamToTextDirectCode = "(async function (_,f){\"use strict\";const h=@initializeTextStream.@call(_,f,@undefined);var j=_.getReader();while(@getByIdDirectPrivate(_,\"state\")===@streamReadable){var k=await j.read();if(k.done)break}try{j.releaseLock()}catch(p){}return j=@undefined,_=@undefined,h.@promise})\n"; +const char* const s_readableStreamInternalsReadableStreamToTextDirectCode = "(async function (f,h){\"use strict\";const j=@initializeTextStream.@call(f,h,@undefined);var _=f.getReader();while(@getByIdDirectPrivate(f,\"state\")===@streamReadable){var k=await _.read();if(k.done)break}try{_.releaseLock()}catch(p){}return _=@undefined,f=@undefined,j.@promise})\n"; // readableStreamToArrayDirect const JSC::ConstructAbility s_readableStreamInternalsReadableStreamToArrayDirectCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1860,7 +1860,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamToArrayDirectC const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamToArrayDirectCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamToArrayDirectCodeLength = 354; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamToArrayDirectCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamToArrayDirectCode = "(async function (f,_){\"use strict\";const j=@initializeArrayStream.@call(f,_,@undefined);_=@undefined;var k=f.getReader();try{while(@getByIdDirectPrivate(f,\"state\")===@streamReadable){var p=await k.read();if(p.done)break}try{k.releaseLock()}catch(q){}return k=@undefined,@Promise.@resolve(j.@promise)}catch(q){throw q}finally{f=@undefined,k=@undefined}})\n"; +const char* const s_readableStreamInternalsReadableStreamToArrayDirectCode = "(async function (_,f){\"use strict\";const k=@initializeArrayStream.@call(_,f,@undefined);f=@undefined;var q=_.getReader();try{while(@getByIdDirectPrivate(_,\"state\")===@streamReadable){var j=await q.read();if(j.done)break}try{q.releaseLock()}catch(p){}return q=@undefined,@Promise.@resolve(k.@promise)}catch(p){throw p}finally{_=@undefined,q=@undefined}})\n"; // readableStreamDefineLazyIterators const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1868,7 +1868,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefineLazyIter const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeLength = 516; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamDefineLazyIteratorsCode = "(function (k){\"use strict\";var B=globalThis.Symbol.asyncIterator,g=async function*z(D,F){var G=D.getReader(),j;try{while(!0){var x,h;const q=G.readMany();if(@isPromise(q))({done:x,value:h}=await q);else({done:x,value:h}=q);if(x)return;yield*h}}catch(q){j=q}finally{if(G.releaseLock(),!F)D.cancel(j);if(j)throw j}},i=function z(){return g(this,!1)},w=function z({preventCancel:D=!1}={preventCancel:!1}){return g(this,D)};return @Object.@defineProperty(k,B,{value:i}),@Object.@defineProperty(k,\"values\",{value:w}),k})\n"; +const char* const s_readableStreamInternalsReadableStreamDefineLazyIteratorsCode = "(function (F){\"use strict\";var i=globalThis.Symbol.asyncIterator,z=async function*q(D,w){var j=D.getReader(),x;try{while(!0){var k,g;const G=j.readMany();if(@isPromise(G))({done:k,value:g}=await G);else({done:k,value:g}=G);if(k)return;yield*g}}catch(G){x=G}finally{if(j.releaseLock(),!w)D.cancel(x);if(x)throw x}},h=function q(){return z(this,!1)},B=function q({preventCancel:D=!1}={preventCancel:!1}){return z(this,D)};return @Object.@defineProperty(F,i,{value:h}),@Object.@defineProperty(F,\"values\",{value:B}),F})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ @@ -1894,7 +1894,7 @@ const JSC::ConstructorKind s_transformStreamDefaultControllerDesiredSizeCodeCons const JSC::ImplementationVisibility s_transformStreamDefaultControllerDesiredSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamDefaultControllerDesiredSizeCodeLength = 339; static const JSC::Intrinsic s_transformStreamDefaultControllerDesiredSizeCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamDefaultControllerDesiredSizeCode = "(function (){\"use strict\";if(!@isTransformStreamDefaultController(this))throw @makeThisTypeError(\"TransformStreamDefaultController\",\"enqueue\");const _=@getByIdDirectPrivate(this,\"stream\"),i=@getByIdDirectPrivate(_,\"readable\"),u=@getByIdDirectPrivate(i,\"readableStreamController\");return @readableStreamDefaultControllerGetDesiredSize(u)})\n"; +const char* const s_transformStreamDefaultControllerDesiredSizeCode = "(function (){\"use strict\";if(!@isTransformStreamDefaultController(this))throw @makeThisTypeError(\"TransformStreamDefaultController\",\"enqueue\");const _=@getByIdDirectPrivate(this,\"stream\"),u=@getByIdDirectPrivate(_,\"readable\"),i=@getByIdDirectPrivate(u,\"readableStreamController\");return @readableStreamDefaultControllerGetDesiredSize(i)})\n"; // enqueue const JSC::ConstructAbility s_transformStreamDefaultControllerEnqueueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2020,7 +2020,7 @@ const JSC::ConstructorKind s_readableStreamDefaultReaderReadManyCodeConstructorK const JSC::ImplementationVisibility s_readableStreamDefaultReaderReadManyCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamDefaultReaderReadManyCodeLength = 2598; static const JSC::Intrinsic s_readableStreamDefaultReaderReadManyCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamDefaultReaderReadManyCode = "(function (){\"use strict\";if(!@isReadableStreamDefaultReader(this))@throwTypeError(\"ReadableStreamDefaultReader.readMany() should not be called directly\");const _=@getByIdDirectPrivate(this,\"ownerReadableStream\");if(!_)@throwTypeError(\"readMany() called on a reader owned by no readable stream\");const x=@getByIdDirectPrivate(_,\"state\");if(@putByIdDirectPrivate(_,\"disturbed\",!0),x===@streamClosed)return{value:[],size:0,done:!0};else if(x===@streamErrored)throw @getByIdDirectPrivate(_,\"storedError\");var F=@getByIdDirectPrivate(_,\"readableStreamController\"),G=@getByIdDirectPrivate(F,\"queue\");if(!G)return F.@pull(F).@then(function({done:w,value:C}){return w\?{done:!0,value:[],size:0}:{value:[C],size:1,done:!1}});const H=G.content;var I=G.size,E=H.toArray(!1),J=E.length;if(J>0){var K=@newArrayWithSize(J);if(@isReadableByteStreamController(F)){{const w=E[0];if(!(@ArrayBuffer.@isView(w)||w instanceof @ArrayBuffer))@putByValDirect(K,0,new @Uint8Array(w.buffer,w.byteOffset,w.byteLength));else @putByValDirect(K,0,w)}for(var d=1;d{if(w.done)return{value:[],size:0,done:!0};var C=@getByIdDirectPrivate(_,\"readableStreamController\"),N=@getByIdDirectPrivate(C,\"queue\"),Q=[w.value].concat(N.content.toArray(!1)),S=Q.length;if(@isReadableByteStreamController(C))for(var T=0;T0){var B=@newArrayWithSize(J);if(@isReadableByteStreamController(H)){{const w=W[0];if(!(@ArrayBuffer.@isView(w)||w instanceof @ArrayBuffer))@putByValDirect(B,0,new @Uint8Array(w.buffer,w.byteOffset,w.byteLength));else @putByValDirect(B,0,w)}for(var C=1;C{if(w.done)return{value:[],size:0,done:!0};var k=@getByIdDirectPrivate(_,\"readableStreamController\"),N=@getByIdDirectPrivate(k,\"queue\"),K=[w.value].concat(N.content.toArray(!1)),A=K.length;if(@isReadableByteStreamController(k))for(var G=0;G0}shift(){var{_head:z,_tail:v,_list:g,_capacityMask:w}=this;if(z===v)return @undefined;var A=g[z];if(@putByValDirect(g,z,@undefined),z=this._head=z+1&w,z<2&&v>1e4&&v<=g.length>>>2)this._shrinkArray();return A}peek(){if(this._head===this._tail)return @undefined;return this._list[this._head]}push(z){var v=this._tail;if(@putByValDirect(this._list,v,z),this._tail=v+1&this._capacityMask,this._tail===this._head)this._growArray()}toArray(z){var v=this._list,g=@toLength(v.length);if(z||this._head>this._tail){var w=@toLength(this._head),A=@toLength(this._tail),B=@toLength(g-w+A),E=@newArrayWithSize(B),x=0;for(var F=w;F>>=1,this._capacityMask>>>=1}}return new k})\n"; +const char* const s_streamInternalsCreateFIFOCode = "(function (){\"use strict\";var v=@Array.prototype.slice;class E{constructor(){this._head=0,this._tail=0,this._capacityMask=3,this._list=@newArrayWithSize(4)}_head;_tail;_capacityMask;_list;size(){if(this._head===this._tail)return 0;if(this._head0}shift(){var{_head:F,_tail:x,_list:g,_capacityMask:A}=this;if(F===x)return @undefined;var B=g[F];if(@putByValDirect(g,F,@undefined),F=this._head=F+1&A,F<2&&x>1e4&&x<=g.length>>>2)this._shrinkArray();return B}peek(){if(this._head===this._tail)return @undefined;return this._list[this._head]}push(F){var x=this._tail;if(@putByValDirect(this._list,x,F),this._tail=x+1&this._capacityMask,this._tail===this._head)this._growArray()}toArray(F){var x=this._list,g=@toLength(x.length);if(F||this._head>this._tail){var A=@toLength(this._head),B=@toLength(this._tail),k=@toLength(g-A+B),z=@newArrayWithSize(k),G=0;for(var w=A;w>>=1,this._capacityMask>>>=1}}return new E})\n"; // newQueue const JSC::ConstructAbility s_streamInternalsNewQueueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2150,7 +2150,7 @@ const JSC::ConstructorKind s_streamInternalsEnqueueValueWithSizeCodeConstructorK const JSC::ImplementationVisibility s_streamInternalsEnqueueValueWithSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_streamInternalsEnqueueValueWithSizeCodeLength = 161; static const JSC::Intrinsic s_streamInternalsEnqueueValueWithSizeCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_streamInternalsEnqueueValueWithSizeCode = "(function (n,o,d){\"use strict\";if(d=@toNumber(d),!@isFinite(d)||d<0)@throwRangeError(\"size has an incorrect value\");n.content.push({value:o,size:d}),n.size+=d})\n"; +const char* const s_streamInternalsEnqueueValueWithSizeCode = "(function (n,d,o){\"use strict\";if(o=@toNumber(o),!@isFinite(o)||o<0)@throwRangeError(\"size has an incorrect value\");n.content.push({value:d,size:o}),n.size+=o})\n"; // peekQueueValue const JSC::ConstructAbility s_streamInternalsPeekQueueValueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2174,7 +2174,7 @@ const JSC::ConstructorKind s_streamInternalsExtractSizeAlgorithmCodeConstructorK const JSC::ImplementationVisibility s_streamInternalsExtractSizeAlgorithmCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_streamInternalsExtractSizeAlgorithmCodeLength = 176; static const JSC::Intrinsic s_streamInternalsExtractSizeAlgorithmCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_streamInternalsExtractSizeAlgorithmCode = "(function (d){\"use strict\";const p=d.size;if(p===@undefined)return()=>1;if(typeof p!==\"function\")@throwTypeError(\"strategy.size must be a function\");return(w)=>{return p(w)}})\n"; +const char* const s_streamInternalsExtractSizeAlgorithmCode = "(function (d){\"use strict\";const w=d.size;if(w===@undefined)return()=>1;if(typeof w!==\"function\")@throwTypeError(\"strategy.size must be a function\");return(p)=>{return w(p)}})\n"; // extractHighWaterMark const JSC::ConstructAbility s_streamInternalsExtractHighWaterMarkCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2206,7 +2206,7 @@ const JSC::ConstructorKind s_streamInternalsToDictionaryCodeConstructorKind = JS const JSC::ImplementationVisibility s_streamInternalsToDictionaryCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_streamInternalsToDictionaryCodeLength = 115; static const JSC::Intrinsic s_streamInternalsToDictionaryCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_streamInternalsToDictionaryCode = "(function (c,p,n){\"use strict\";if(c===@undefined||c===null)return p;if(!@isObject(c))@throwTypeError(n);return c})\n"; +const char* const s_streamInternalsToDictionaryCode = "(function (c,n,p){\"use strict\";if(c===@undefined||c===null)return n;if(!@isObject(c))@throwTypeError(p);return c})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ @@ -2224,7 +2224,7 @@ const JSC::ConstructorKind s_importMetaObjectLoadCJS2ESMCodeConstructorKind = JS const JSC::ImplementationVisibility s_importMetaObjectLoadCJS2ESMCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_importMetaObjectLoadCJS2ESMCodeLength = 1387; static const JSC::Intrinsic s_importMetaObjectLoadCJS2ESMCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_importMetaObjectLoadCJS2ESMCode = "(function (_){\"use strict\";var x=@Loader,z=@createFIFO(),w=_;while(w){var G=x.registry.@get(w);if((G\?.state\?\?0)<=@ModuleFetch)@fulfillModuleSync(w),G=x.registry.@get(w);var D=@getPromiseInternalField(G.fetch,@promiseFieldReactionsOrResult),H=x.parseModule(w,D),I=G.module;if(H&&@isPromise(H)){var J=@getPromiseInternalField(H,@promiseFieldReactionsOrResult),B=@getPromiseInternalField(H,@promiseFieldFlags),F=B&@promiseStateMask;if(F===@promiseStatePending||J&&@isPromise(J))@throwTypeError(`require() async module \"${w}\" is unsupported. use \"await import()\" instead.`);else if(F===@promiseStateRejected){if(!J\?.message)@throwTypeError(`${J+\"\"\?J:\"An error occurred\"} occurred while parsing module \\\"${w}\\\"`);throw J}G.module=I=J}else if(H&&!I)G.module=I=H;@setStateToMax(G,@ModuleLink);var L=I.dependenciesMap,Q=x.requestedModules(I),T=@newArrayWithSize(Q.length);for(var U=0,V=Q.length;U=@ModuleLink)w=z.shift()}var Z=x.linkAndEvaluateModule(_,@undefined);if(Z&&@isPromise(Z))@throwTypeError(`require() async module \\\"${_}\\\" is unsupported. use \"await import()\" instead.`);return x.registry.@get(_)})\n"; +const char* const s_importMetaObjectLoadCJS2ESMCode = "(function (D){\"use strict\";var J=@Loader,z=@createFIFO(),B=D;while(B){var F=J.registry.@get(B);if((F\?.state\?\?0)<=@ModuleFetch)@fulfillModuleSync(B),F=J.registry.@get(B);var G=@getPromiseInternalField(F.fetch,@promiseFieldReactionsOrResult),H=J.parseModule(B,G),I=F.module;if(H&&@isPromise(H)){var L=@getPromiseInternalField(H,@promiseFieldReactionsOrResult),_=@getPromiseInternalField(H,@promiseFieldFlags),w=_&@promiseStateMask;if(w===@promiseStatePending||L&&@isPromise(L))@throwTypeError(`require() async module \"${B}\" is unsupported. use \"await import()\" instead.`);else if(w===@promiseStateRejected){if(!L\?.message)@throwTypeError(`${L+\"\"\?L:\"An error occurred\"} occurred while parsing module \\\"${B}\\\"`);throw L}F.module=I=L}else if(H&&!I)F.module=I=H;@setStateToMax(F,@ModuleLink);var Q=I.dependenciesMap,x=J.requestedModules(I),T=@newArrayWithSize(x.length);for(var U=0,V=x.length;U=@ModuleLink)B=z.shift()}var Z=J.linkAndEvaluateModule(D,@undefined);if(Z&&@isPromise(Z))@throwTypeError(`require() async module \\\"${D}\\\" is unsupported. use \"await import()\" instead.`);return J.registry.@get(D)})\n"; // requireESM const JSC::ConstructAbility s_importMetaObjectRequireESMCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2232,7 +2232,7 @@ const JSC::ConstructorKind s_importMetaObjectRequireESMCodeConstructorKind = JSC const JSC::ImplementationVisibility s_importMetaObjectRequireESMCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_importMetaObjectRequireESMCodeLength = 325; static const JSC::Intrinsic s_importMetaObjectRequireESMCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_importMetaObjectRequireESMCode = "(function (a){\"use strict\";var c=@Loader.registry.@get(a);if(!c||!c.evaluated)c=@loadCJS2ESM(a);if(!c||!c.evaluated||!c.module)@throwTypeError(`require() failed to evaluate module \"${a}\". This is an internal consistentency error.`);var _=@Loader.getModuleNamespaceObject(c.module);if(_[@commonJSSymbol]===0)return;return _})\n"; +const char* const s_importMetaObjectRequireESMCode = "(function (a){\"use strict\";var _=@Loader.registry.@get(a);if(!_||!_.evaluated)_=@loadCJS2ESM(a);if(!_||!_.evaluated||!_.module)@throwTypeError(`require() failed to evaluate module \"${a}\". This is an internal consistentency error.`);var c=@Loader.getModuleNamespaceObject(_.module);if(c[@commonJSSymbol]===0)return;return c})\n"; // internalRequire const JSC::ConstructAbility s_importMetaObjectInternalRequireCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2240,7 +2240,7 @@ const JSC::ConstructorKind s_importMetaObjectInternalRequireCodeConstructorKind const JSC::ImplementationVisibility s_importMetaObjectInternalRequireCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_importMetaObjectInternalRequireCodeLength = 747; static const JSC::Intrinsic s_importMetaObjectInternalRequireCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_importMetaObjectInternalRequireCode = "(function (b){\"use strict\";var g=@requireMap.@get(b);const j=b.substring(b.length-5);if(g)return g.exports;if(j===\".json\"){var k=globalThis[Symbol.for(\"_fs\")]||=@Bun.fs(),q=JSON.parse(k.readFileSync(b,\"utf8\"));return @requireMap.@set(b,@createCommonJSModule(b,q,!0)),q}else if(j===\".node\"){const v=@createCommonJSModule(b,{},!0);return process.dlopen(v,b),@requireMap.@set(b,v),v.exports}else if(j===\".toml\"){var k=globalThis[Symbol.for(\"_fs\")]||=@Bun.fs(),q=@Bun.TOML.parse(k.readFileSync(b,\"utf8\"));return @requireMap.@set(b,@createCommonJSModule(b,q,!0)),q}else{var q=@requireESM(b);const n=@requireMap.@get(b);if(n)return n.exports;var _=q\?.default;if(_\?.[@commonJSSymbol]===0)q=_;return @requireMap.@set(b,@createCommonJSModule(b,q,!0)),q}})\n"; +const char* const s_importMetaObjectInternalRequireCode = "(function (k){\"use strict\";var n=@requireMap.@get(k);const j=k.substring(k.length-5);if(n)return n.exports;if(j===\".json\"){var _=globalThis[Symbol.for(\"_fs\")]||=@Bun.fs(),q=JSON.parse(_.readFileSync(k,\"utf8\"));return @requireMap.@set(k,@createCommonJSModule(k,q,!0)),q}else if(j===\".node\"){const v=@createCommonJSModule(k,{},!0);return process.dlopen(v,k),@requireMap.@set(k,v),v.exports}else if(j===\".toml\"){var _=globalThis[Symbol.for(\"_fs\")]||=@Bun.fs(),q=@Bun.TOML.parse(_.readFileSync(k,\"utf8\"));return @requireMap.@set(k,@createCommonJSModule(k,q,!0)),q}else{var q=@requireESM(k);const g=@requireMap.@get(k);if(g)return g.exports;var b=q\?.default;if(b\?.[@commonJSSymbol]===0)q=b;return @requireMap.@set(k,@createCommonJSModule(k,q,!0)),q}})\n"; // createRequireCache const JSC::ConstructAbility s_importMetaObjectCreateRequireCacheCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2248,15 +2248,15 @@ const JSC::ConstructorKind s_importMetaObjectCreateRequireCacheCodeConstructorKi const JSC::ImplementationVisibility s_importMetaObjectCreateRequireCacheCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_importMetaObjectCreateRequireCacheCodeLength = 854; static const JSC::Intrinsic s_importMetaObjectCreateRequireCacheCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_importMetaObjectCreateRequireCacheCode = "(function (){\"use strict\";var _=new Map,u={};return new Proxy(u,{get(h,f){const t=@requireMap.@get(f);if(t)return t;const L=@Loader.registry.@get(f);if(L\?.evaluated){const b=@Loader.getModuleNamespaceObject(L.module),c=b[@commonJSSymbol]===0||b.default\?.[@commonJSSymbol]\?b.default:b,g=@createCommonJSModule(f,c,!0);return @requireMap.@set(f,g),g}return u[f]},set(h,f,t){return @requireMap.@set(f,t),!0},has(h,f){return @requireMap.@has(f)||@Loader.registry.@has(f)},deleteProperty(h,f){return _.@delete(f),@requireMap.@delete(f),@Loader.registry.@delete(f),!0},ownKeys(h){var f=[...@requireMap.@keys()];const t=[...@Loader.registry.@keys()];for(let L of t)if(!f.includes(L))@arrayPush(f,L);return f},getPrototypeOf(h){return null},getOwnPropertyDescriptor(h,f){if(@requireMap.@has(f)||@Loader.registry.@has(f))return{configurable:!0,enumerable:!0}}})})\n"; +const char* const s_importMetaObjectCreateRequireCacheCode = "(function (){\"use strict\";var _=new Map,f={};return new Proxy(f,{get(h,t){const u=@requireMap.@get(t);if(u)return u;const L=@Loader.registry.@get(t);if(L\?.evaluated){const b=@Loader.getModuleNamespaceObject(L.module),c=b[@commonJSSymbol]===0||b.default\?.[@commonJSSymbol]\?b.default:b,g=@createCommonJSModule(t,c,!0);return @requireMap.@set(t,g),g}return f[t]},set(h,t,u){return @requireMap.@set(t,u),!0},has(h,t){return @requireMap.@has(t)||@Loader.registry.@has(t)},deleteProperty(h,t){return _.@delete(t),@requireMap.@delete(t),@Loader.registry.@delete(t),!0},ownKeys(h){var t=[...@requireMap.@keys()];const u=[...@Loader.registry.@keys()];for(let L of u)if(!t.includes(L))@arrayPush(t,L);return t},getPrototypeOf(h){return null},getOwnPropertyDescriptor(h,t){if(@requireMap.@has(t)||@Loader.registry.@has(t))return{configurable:!0,enumerable:!0}}})})\n"; // require const JSC::ConstructAbility s_importMetaObjectRequireCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; const JSC::ConstructorKind s_importMetaObjectRequireCodeConstructorKind = JSC::ConstructorKind::None; const JSC::ImplementationVisibility s_importMetaObjectRequireCodeImplementationVisibility = JSC::ImplementationVisibility::Public; -const int s_importMetaObjectRequireCodeLength = 173; +const int s_importMetaObjectRequireCodeLength = 89; static const JSC::Intrinsic s_importMetaObjectRequireCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_importMetaObjectRequireCode = "(function (c){var l=this\?.path\?\?arguments.callee\?.path;if(typeof c!==\"string\")@throwTypeError(\"require(name) must be a string\");return @internalRequire(@resolveSync(c,l))})\n"; +const char* const s_importMetaObjectRequireCode = "(function (l){\"use strict\";return @internalRequire(@resolveSync(l,@toString(this),!1))})\n"; // main const JSC::ConstructAbility s_importMetaObjectMainCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2432,7 +2432,7 @@ const JSC::ConstructorKind s_readableStreamInitializeReadableStreamCodeConstruct const JSC::ImplementationVisibility s_readableStreamInitializeReadableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInitializeReadableStreamCodeLength = 2065; static const JSC::Intrinsic s_readableStreamInitializeReadableStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInitializeReadableStreamCode = "(function (f,m){\"use strict\";if(f===@undefined)f={@bunNativeType:0,@bunNativePtr:0,@lazy:!1};if(m===@undefined)m={};if(!@isObject(f))@throwTypeError(\"ReadableStream constructor takes an object as first argument\");if(m!==@undefined&&!@isObject(m))@throwTypeError(\"ReadableStream constructor takes an object as second argument, if any\");@putByIdDirectPrivate(this,\"state\",@streamReadable),@putByIdDirectPrivate(this,\"reader\",@undefined),@putByIdDirectPrivate(this,\"storedError\",@undefined),@putByIdDirectPrivate(this,\"disturbed\",!1),@putByIdDirectPrivate(this,\"readableStreamController\",null),@putByIdDirectPrivate(this,\"bunNativeType\",@getByIdDirectPrivate(f,\"bunNativeType\")\?\?0),@putByIdDirectPrivate(this,\"bunNativePtr\",@getByIdDirectPrivate(f,\"bunNativePtr\")\?\?0);const v=f.type===\"direct\",B=!!f.@lazy,I=v||B;if(@getByIdDirectPrivate(f,\"pull\")!==@undefined&&!I){const _=@getByIdDirectPrivate(m,\"size\"),b=@getByIdDirectPrivate(m,\"highWaterMark\");return @putByIdDirectPrivate(this,\"highWaterMark\",b),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@setupReadableStreamDefaultController(this,f,_,b!==@undefined\?b:1,@getByIdDirectPrivate(f,\"start\"),@getByIdDirectPrivate(f,\"pull\"),@getByIdDirectPrivate(f,\"cancel\")),this}if(v)@putByIdDirectPrivate(this,\"underlyingSource\",f),@putByIdDirectPrivate(this,\"highWaterMark\",@getByIdDirectPrivate(m,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",()=>@createReadableStreamController(this,f,m));else if(I){const _=f.autoAllocateChunkSize;@putByIdDirectPrivate(this,\"highWaterMark\",@undefined),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"highWaterMark\",_||@getByIdDirectPrivate(m,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",()=>{const b=@lazyLoadStream(this,_);if(b)@createReadableStreamController(this,b,m)})}else @putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"highWaterMark\",@getByIdDirectPrivate(m,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",@undefined),@createReadableStreamController(this,f,m);return this})\n"; +const char* const s_readableStreamInitializeReadableStreamCode = "(function (_,f){\"use strict\";if(_===@undefined)_={@bunNativeType:0,@bunNativePtr:0,@lazy:!1};if(f===@undefined)f={};if(!@isObject(_))@throwTypeError(\"ReadableStream constructor takes an object as first argument\");if(f!==@undefined&&!@isObject(f))@throwTypeError(\"ReadableStream constructor takes an object as second argument, if any\");@putByIdDirectPrivate(this,\"state\",@streamReadable),@putByIdDirectPrivate(this,\"reader\",@undefined),@putByIdDirectPrivate(this,\"storedError\",@undefined),@putByIdDirectPrivate(this,\"disturbed\",!1),@putByIdDirectPrivate(this,\"readableStreamController\",null),@putByIdDirectPrivate(this,\"bunNativeType\",@getByIdDirectPrivate(_,\"bunNativeType\")\?\?0),@putByIdDirectPrivate(this,\"bunNativePtr\",@getByIdDirectPrivate(_,\"bunNativePtr\")\?\?0);const m=_.type===\"direct\",v=!!_.@lazy,B=m||v;if(@getByIdDirectPrivate(_,\"pull\")!==@undefined&&!B){const I=@getByIdDirectPrivate(f,\"size\"),b=@getByIdDirectPrivate(f,\"highWaterMark\");return @putByIdDirectPrivate(this,\"highWaterMark\",b),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@setupReadableStreamDefaultController(this,_,I,b!==@undefined\?b:1,@getByIdDirectPrivate(_,\"start\"),@getByIdDirectPrivate(_,\"pull\"),@getByIdDirectPrivate(_,\"cancel\")),this}if(m)@putByIdDirectPrivate(this,\"underlyingSource\",_),@putByIdDirectPrivate(this,\"highWaterMark\",@getByIdDirectPrivate(f,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",()=>@createReadableStreamController(this,_,f));else if(B){const I=_.autoAllocateChunkSize;@putByIdDirectPrivate(this,\"highWaterMark\",@undefined),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"highWaterMark\",I||@getByIdDirectPrivate(f,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",()=>{const b=@lazyLoadStream(this,I);if(b)@createReadableStreamController(this,b,f)})}else @putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"highWaterMark\",@getByIdDirectPrivate(f,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",@undefined),@createReadableStreamController(this,_,f);return this})\n"; // readableStreamToArray const JSC::ConstructAbility s_readableStreamReadableStreamToArrayCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2440,7 +2440,7 @@ const JSC::ConstructorKind s_readableStreamReadableStreamToArrayCodeConstructorK const JSC::ImplementationVisibility s_readableStreamReadableStreamToArrayCodeImplementationVisibility = JSC::ImplementationVisibility::Private; const int s_readableStreamReadableStreamToArrayCodeLength = 173; static const JSC::Intrinsic s_readableStreamReadableStreamToArrayCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamReadableStreamToArrayCode = "(function (b){\"use strict\";var _=@getByIdDirectPrivate(b,\"underlyingSource\");if(_!==@undefined)return @readableStreamToArrayDirect(b,_);return @readableStreamIntoArray(b)})\n"; +const char* const s_readableStreamReadableStreamToArrayCode = "(function (_){\"use strict\";var b=@getByIdDirectPrivate(_,\"underlyingSource\");if(b!==@undefined)return @readableStreamToArrayDirect(_,b);return @readableStreamIntoArray(_)})\n"; // readableStreamToText const JSC::ConstructAbility s_readableStreamReadableStreamToTextCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2456,7 +2456,7 @@ const JSC::ConstructorKind s_readableStreamReadableStreamToArrayBufferCodeConstr const JSC::ImplementationVisibility s_readableStreamReadableStreamToArrayBufferCodeImplementationVisibility = JSC::ImplementationVisibility::Private; const int s_readableStreamReadableStreamToArrayBufferCodeLength = 270; static const JSC::Intrinsic s_readableStreamReadableStreamToArrayBufferCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamReadableStreamToArrayBufferCode = "(function (_){\"use strict\";var b=@getByIdDirectPrivate(_,\"underlyingSource\");if(b!==@undefined)return @readableStreamToArrayBufferDirect(_,b);var p=@Bun.readableStreamToArray(_);if(@isPromise(p))return p.then(@Bun.concatArrayBuffers);return @Bun.concatArrayBuffers(p)})\n"; +const char* const s_readableStreamReadableStreamToArrayBufferCode = "(function (_){\"use strict\";var p=@getByIdDirectPrivate(_,\"underlyingSource\");if(p!==@undefined)return @readableStreamToArrayBufferDirect(_,p);var b=@Bun.readableStreamToArray(_);if(@isPromise(b))return b.then(@Bun.concatArrayBuffers);return @Bun.concatArrayBuffers(b)})\n"; // readableStreamToJSON const JSC::ConstructAbility s_readableStreamReadableStreamToJSONCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2480,7 +2480,7 @@ const JSC::ConstructorKind s_readableStreamConsumeReadableStreamCodeConstructorK const JSC::ImplementationVisibility s_readableStreamConsumeReadableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Private; const int s_readableStreamConsumeReadableStreamCodeLength = 1603; static const JSC::Intrinsic s_readableStreamConsumeReadableStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamConsumeReadableStreamCode = "(function (F,q,w){\"use strict\";const x=globalThis.Symbol.for(\"Bun.consumeReadableStreamPrototype\");var A=globalThis[x];if(!A)A=globalThis[x]=[];var B=A[q];if(B===@undefined){var[D,_,k,G,j,H]=globalThis[globalThis.Symbol.for(\"Bun.lazy\")](q);B=class J{handleError;handleClosed;processResult;constructor(K,L){this.#_=L,this.#F=K,this.#$=!1,this.handleError=this._handleError.bind(this),this.handleClosed=this._handleClosed.bind(this),this.processResult=this._processResult.bind(this),K.closed.then(this.handleClosed,this.handleError)}_handleClosed(){if(this.#$)return;this.#$=!0;var K=this.#_;this.#_=0,G(K),H(K)}_handleError(K){if(this.#$)return;this.#$=!0;var L=this.#_;this.#_=0,_(L,K),H(L)}#_;#$=!1;#F;_handleReadMany({value:K,done:L,size:N}){if(L){this.handleClosed();return}if(this.#$)return;k(this.#_,K,L,N)}read(){if(!this.#_)return @throwTypeError(\"ReadableStreamSink is already closed\");return this.processResult(this.#F.read())}_processResult(K){if(K&&@isPromise(K)){if(@getPromiseInternalField(K,@promiseFieldFlags)&@promiseStateFulfilled){const N=@getPromiseInternalField(K,@promiseFieldReactionsOrResult);if(N)K=N}}if(K&&@isPromise(K))return K.then(this.processResult,this.handleError),null;if(K.done)return this.handleClosed(),0;else if(K.value)return K.value;else return-1}readMany(){if(!this.#_)return @throwTypeError(\"ReadableStreamSink is already closed\");return this.processResult(this.#F.readMany())}};const I=q+1;if(A.length{@putByIdDirectPrivate(_,\"started\",1),@assert(!@getByIdDirectPrivate(_,\"pulling\")),@assert(!@getByIdDirectPrivate(_,\"pullAgain\")),@readableByteStreamControllerCallPullIfNeeded(_)},(d)=>{if(@getByIdDirectPrivate(v,\"state\")===@streamReadable)@readableByteStreamControllerError(_,d)}),@putByIdDirectPrivate(this,\"cancel\",@readableByteStreamControllerCancel),@putByIdDirectPrivate(this,\"pull\",@readableByteStreamControllerPull),this})\n"; +const char* const s_readableByteStreamInternalsPrivateInitializeReadableByteStreamControllerCode = "(function (_,f,v){\"use strict\";if(!@isReadableStream(_))@throwTypeError(\"ReadableByteStreamController needs a ReadableStream\");if(@getByIdDirectPrivate(_,\"readableStreamController\")!==null)@throwTypeError(\"ReadableStream already has a controller\");@putByIdDirectPrivate(this,\"controlledReadableStream\",_),@putByIdDirectPrivate(this,\"underlyingByteSource\",f),@putByIdDirectPrivate(this,\"pullAgain\",!1),@putByIdDirectPrivate(this,\"pulling\",!1),@readableByteStreamControllerClearPendingPullIntos(this),@putByIdDirectPrivate(this,\"queue\",@newQueue()),@putByIdDirectPrivate(this,\"started\",0),@putByIdDirectPrivate(this,\"closeRequested\",!1);let b=@toNumber(v);if(@isNaN(b)||b<0)@throwRangeError(\"highWaterMark value is negative or not a number\");@putByIdDirectPrivate(this,\"strategyHWM\",b);let p=f.autoAllocateChunkSize;if(p!==@undefined){if(p=@toNumber(p),p<=0||p===@Infinity||p===-@Infinity)@throwRangeError(\"autoAllocateChunkSize value is negative or equal to positive or negative infinity\")}@putByIdDirectPrivate(this,\"autoAllocateChunkSize\",p),@putByIdDirectPrivate(this,\"pendingPullIntos\",@createFIFO());const R=this;return @promiseInvokeOrNoopNoCatch(@getByIdDirectPrivate(R,\"underlyingByteSource\"),\"start\",[R]).@then(()=>{@putByIdDirectPrivate(R,\"started\",1),@assert(!@getByIdDirectPrivate(R,\"pulling\")),@assert(!@getByIdDirectPrivate(R,\"pullAgain\")),@readableByteStreamControllerCallPullIfNeeded(R)},(d)=>{if(@getByIdDirectPrivate(_,\"state\")===@streamReadable)@readableByteStreamControllerError(R,d)}),@putByIdDirectPrivate(this,\"cancel\",@readableByteStreamControllerCancel),@putByIdDirectPrivate(this,\"pull\",@readableByteStreamControllerPull),this})\n"; // readableStreamByteStreamControllerStart const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamByteStreamControllerStartCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2676,7 +2676,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeLength = 248; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerCancelCode = "(function (a,p){\"use strict\";var u=@getByIdDirectPrivate(a,\"pendingPullIntos\"),_=u.peek();if(_)_.bytesFilled=0;return @putByIdDirectPrivate(a,\"queue\",@newQueue()),@promiseInvokeOrNoop(@getByIdDirectPrivate(a,\"underlyingByteSource\"),\"cancel\",[p])})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerCancelCode = "(function (a,u){\"use strict\";var p=@getByIdDirectPrivate(a,\"pendingPullIntos\"),_=p.peek();if(_)_.bytesFilled=0;return @putByIdDirectPrivate(a,\"queue\",@newQueue()),@promiseInvokeOrNoop(@getByIdDirectPrivate(a,\"underlyingByteSource\"),\"cancel\",[u])})\n"; // readableByteStreamControllerError const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2708,7 +2708,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCodeLength = 272; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCode = "(function (u){\"use strict\";const _=@getByIdDirectPrivate(u,\"controlledReadableStream\"),d=@getByIdDirectPrivate(_,\"state\");if(d===@streamErrored)return null;if(d===@streamClosed)return 0;return @getByIdDirectPrivate(u,\"strategyHWM\")-@getByIdDirectPrivate(u,\"queue\").size})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCode = "(function (_){\"use strict\";const d=@getByIdDirectPrivate(_,\"controlledReadableStream\"),u=@getByIdDirectPrivate(d,\"state\");if(u===@streamErrored)return null;if(u===@streamClosed)return 0;return @getByIdDirectPrivate(_,\"strategyHWM\")-@getByIdDirectPrivate(_,\"queue\").size})\n"; // readableStreamHasBYOBReader const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamHasBYOBReaderCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2740,7 +2740,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerPullCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerPullCodeLength = 1005; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerPullCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerPullCode = "(function (_){\"use strict\";const F=@getByIdDirectPrivate(_,\"controlledReadableStream\");if(@assert(@readableStreamHasDefaultReader(F)),@getByIdDirectPrivate(_,\"queue\").content\?.isNotEmpty()){const P=@getByIdDirectPrivate(_,\"queue\").content.shift();@getByIdDirectPrivate(_,\"queue\").size-=P.byteLength,@readableByteStreamControllerHandleQueueDrain(_);let h;try{h=new @Uint8Array(P.buffer,P.byteOffset,P.byteLength)}catch(R){return @Promise.@reject(R)}return @createFulfilledPromise({value:h,done:!1})}if(@getByIdDirectPrivate(_,\"autoAllocateChunkSize\")!==@undefined){let P;try{P=@createUninitializedArrayBuffer(@getByIdDirectPrivate(_,\"autoAllocateChunkSize\"))}catch(R){return @Promise.@reject(R)}const h={buffer:P,byteOffset:0,byteLength:@getByIdDirectPrivate(_,\"autoAllocateChunkSize\"),bytesFilled:0,elementSize:1,ctor:@Uint8Array,readerType:\"default\"};@getByIdDirectPrivate(_,\"pendingPullIntos\").push(h)}const d=@readableStreamAddReadRequest(F);return @readableByteStreamControllerCallPullIfNeeded(_),d})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerPullCode = "(function (h){\"use strict\";const R=@getByIdDirectPrivate(h,\"controlledReadableStream\");if(@assert(@readableStreamHasDefaultReader(R)),@getByIdDirectPrivate(h,\"queue\").content\?.isNotEmpty()){const d=@getByIdDirectPrivate(h,\"queue\").content.shift();@getByIdDirectPrivate(h,\"queue\").size-=d.byteLength,@readableByteStreamControllerHandleQueueDrain(h);let _;try{_=new @Uint8Array(d.buffer,d.byteOffset,d.byteLength)}catch(P){return @Promise.@reject(P)}return @createFulfilledPromise({value:_,done:!1})}if(@getByIdDirectPrivate(h,\"autoAllocateChunkSize\")!==@undefined){let d;try{d=@createUninitializedArrayBuffer(@getByIdDirectPrivate(h,\"autoAllocateChunkSize\"))}catch(P){return @Promise.@reject(P)}const _={buffer:d,byteOffset:0,byteLength:@getByIdDirectPrivate(h,\"autoAllocateChunkSize\"),bytesFilled:0,elementSize:1,ctor:@Uint8Array,readerType:\"default\"};@getByIdDirectPrivate(h,\"pendingPullIntos\").push(_)}const F=@readableStreamAddReadRequest(R);return @readableByteStreamControllerCallPullIfNeeded(h),F})\n"; // readableByteStreamControllerShouldCallPull const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerShouldCallPullCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2748,7 +2748,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerShouldCallPullCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerShouldCallPullCodeLength = 619; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerShouldCallPullCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerShouldCallPullCode = "(function (u){\"use strict\";const P=@getByIdDirectPrivate(u,\"controlledReadableStream\");if(@getByIdDirectPrivate(P,\"state\")!==@streamReadable)return!1;if(@getByIdDirectPrivate(u,\"closeRequested\"))return!1;if(!(@getByIdDirectPrivate(u,\"started\")>0))return!1;const b=@getByIdDirectPrivate(P,\"reader\");if(b&&(@getByIdDirectPrivate(b,\"readRequests\")\?.isNotEmpty()||!!@getByIdDirectPrivate(b,\"bunNativePtr\")))return!0;if(@readableStreamHasBYOBReader(P)&&@getByIdDirectPrivate(@getByIdDirectPrivate(P,\"reader\"),\"readIntoRequests\")\?.isNotEmpty())return!0;if(@readableByteStreamControllerGetDesiredSize(u)>0)return!0;return!1})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerShouldCallPullCode = "(function (u){\"use strict\";const b=@getByIdDirectPrivate(u,\"controlledReadableStream\");if(@getByIdDirectPrivate(b,\"state\")!==@streamReadable)return!1;if(@getByIdDirectPrivate(u,\"closeRequested\"))return!1;if(!(@getByIdDirectPrivate(u,\"started\")>0))return!1;const P=@getByIdDirectPrivate(b,\"reader\");if(P&&(@getByIdDirectPrivate(P,\"readRequests\")\?.isNotEmpty()||!!@getByIdDirectPrivate(P,\"bunNativePtr\")))return!0;if(@readableStreamHasBYOBReader(b)&&@getByIdDirectPrivate(@getByIdDirectPrivate(b,\"reader\"),\"readIntoRequests\")\?.isNotEmpty())return!0;if(@readableByteStreamControllerGetDesiredSize(u)>0)return!0;return!1})\n"; // readableByteStreamControllerCallPullIfNeeded const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerCallPullIfNeededCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2812,7 +2812,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCodeLength = 464; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCode = "(function (d,u){\"use strict\";let _=@getByIdDirectPrivate(d,\"pendingPullIntos\").peek(),k=@getByIdDirectPrivate(d,\"controlledReadableStream\");if(@getByIdDirectPrivate(k,\"state\")===@streamClosed){if(u!==0)@throwTypeError(\"bytesWritten is different from 0 even though stream is closed\");@readableByteStreamControllerRespondInClosedState(d,_)}else @assert(@getByIdDirectPrivate(k,\"state\")===@streamReadable),@readableByteStreamControllerRespondInReadableState(d,u,_)})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCode = "(function (d,_){\"use strict\";let u=@getByIdDirectPrivate(d,\"pendingPullIntos\").peek(),k=@getByIdDirectPrivate(d,\"controlledReadableStream\");if(@getByIdDirectPrivate(k,\"state\")===@streamClosed){if(_!==0)@throwTypeError(\"bytesWritten is different from 0 even though stream is closed\");@readableByteStreamControllerRespondInClosedState(d,u)}else @assert(@getByIdDirectPrivate(k,\"state\")===@streamReadable),@readableByteStreamControllerRespondInReadableState(d,_,u)})\n"; // readableByteStreamControllerRespondInReadableState const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2844,7 +2844,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeLength = 970; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCode = "(function (j,w){\"use strict\";const _=w.bytesFilled-w.bytesFilled%w.elementSize,z=@getByIdDirectPrivate(j,\"queue\").size_)k=E-w.bytesFilled,G=!0;while(k>0){let H=@getByIdDirectPrivate(j,\"queue\").content.peek();const v=k0),@assert(w.bytesFilledv)q=H-k.bytesFilled,J=!0;while(q>0){let j=@getByIdDirectPrivate(_,\"queue\").content.peek();const z=q0),@assert(k.bytesFilled0){if(@readableByteStreamControllerFillDescriptorFromQueue(_,A)){const b=@readableByteStreamControllerConvertDescriptor(A);return @readableByteStreamControllerHandleQueueDrain(_),@createFulfilledPromise({value:b,done:!1})}if(@getByIdDirectPrivate(_,\"closeRequested\")){const b=@makeTypeError(\"Closing stream has been requested\");return @readableByteStreamControllerError(_,b),@Promise.@reject(b)}}A.buffer=@transferBufferToCurrentRealm(A.buffer),@getByIdDirectPrivate(_,\"pendingPullIntos\").push(A);const E=@readableStreamAddReadIntoRequest(L);return @readableByteStreamControllerCallPullIfNeeded(_),E})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCode = "(function (_,E){\"use strict\";const b=@getByIdDirectPrivate(_,\"controlledReadableStream\");let L=1;if(E.BYTES_PER_ELEMENT!==@undefined)L=E.BYTES_PER_ELEMENT;const d=E.constructor,A={buffer:E.buffer,byteOffset:E.byteOffset,byteLength:E.byteLength,bytesFilled:0,elementSize:L,ctor:d,readerType:\"byob\"};var N=@getByIdDirectPrivate(_,\"pendingPullIntos\");if(N\?.isNotEmpty())return A.buffer=@transferBufferToCurrentRealm(A.buffer),N.push(A),@readableStreamAddReadIntoRequest(b);if(@getByIdDirectPrivate(b,\"state\")===@streamClosed){const k=new d(A.buffer,A.byteOffset,0);return @createFulfilledPromise({value:k,done:!0})}if(@getByIdDirectPrivate(_,\"queue\").size>0){if(@readableByteStreamControllerFillDescriptorFromQueue(_,A)){const k=@readableByteStreamControllerConvertDescriptor(A);return @readableByteStreamControllerHandleQueueDrain(_),@createFulfilledPromise({value:k,done:!1})}if(@getByIdDirectPrivate(_,\"closeRequested\")){const k=@makeTypeError(\"Closing stream has been requested\");return @readableByteStreamControllerError(_,k),@Promise.@reject(k)}}A.buffer=@transferBufferToCurrentRealm(A.buffer),@getByIdDirectPrivate(_,\"pendingPullIntos\").push(A);const R=@readableStreamAddReadIntoRequest(b);return @readableByteStreamControllerCallPullIfNeeded(_),R})\n"; // readableStreamAddReadIntoRequest const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamAddReadIntoRequestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2952,7 +2952,7 @@ const JSC::ConstructorKind s_eventSourceGetEventSourceCodeConstructorKind = JSC: const JSC::ImplementationVisibility s_eventSourceGetEventSourceCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_eventSourceGetEventSourceCodeLength = 5477; static const JSC::Intrinsic s_eventSourceGetEventSourceCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_eventSourceGetEventSourceCode = "(function (){\"use strict\";class j extends EventTarget{#$;#j;#w;#A;#B;#F=!1;#G=null;#J=\"\";#K=\"\";#L=\"\";#M=!0;#O=0;#Q=0;#U=0;#V=null;static#W(w){w.#H()}static#X(w,A){const B=w.data,F=B.#L\?`Last-Event-ID: ${B.#L}\\r\\n`:\"\",G=`GET ${A.pathname}${A.search} HTTP/1.1\\r\\nHost: bun\\r\\nContent-type: text/event-stream\\r\\nContent-length: 0\\r\\n${F}\\r\\n`,J=w.write(G);if(J!==G.length)B.#K=G.substring(J)}static#Y(w,A,B){for(;;){if(B>=A.length)return;let F=-1,G=A.indexOf(\"\\r\\n\",B);const J=G+2;if(G>0)if(w.#O===0){const Q=parseInt(A.substring(B,G),16);if(Q===0){w.#j=2,w.#G\?.end();return}F=J+Q}else F=A.length;else{if(w.#J.length===0){w.#J+=A.substring(B);return}F=A.length}let K=A.substring(J,F);B=F+2;let L=0,M=K.indexOf(\"\\n\\n\");if(M==-1){w.#J+=A.substring(J);return}if(w.#J.length)w.#J+=K,K=w.#J,w.#J=\"\";let O=!0;while(O){const Q=K.substring(L,M);let U,V=\"\",W,X=0,Y=-1;for(;;){let z=Q.indexOf(\"\\n\",X);if(z===-1){if(X>=Q.length)break;z=Q.length}const H=Q.substring(X,z);if(H.startsWith(\"data:\"))if(V.length)V+=`\\n${H.substring(5).trim()}`;else V=H.substring(5).trim();else if(H.startsWith(\"event:\"))U=H.substring(6).trim();else if(H.startsWith(\"id:\"))W=H.substring(3).trim();else if(H.startsWith(\"retry:\")){if(Y=parseInt(H.substring(6).trim(),10),@isNaN(Y))Y=-1}X=z+1}if(w.#L=W||\"\",Y>=0)w.#U=Y;if(V||W||U)w.dispatchEvent(new MessageEvent(U||\"message\",{data:V||\"\",origin:w.#$.origin,source:w,lastEventId:W}));if(K.length===M+2){O=!1;break}const Z=K.indexOf(\"\\n\\n\",M+1);if(Z===-1)break;L=M,M=Z}}}static#Z={open(w){const A=w.data;if(A.#G=w,!A.#F)j.#X(w,A.#$)},handshake(w,A,B){const F=w.data;if(A)j.#X(w,F.#$);else F.#j=2,F.dispatchEvent(new ErrorEvent(\"error\",{error:B})),w.end()},data(w,A){const B=w.data;switch(B.#j){case 0:{let F=A.toString();const G=F.indexOf(\"\\r\\n\\r\\n\");if(G===-1){B.#J+=F;return}if(B.#J.length)B.#J+=F,F=B.#J,B.#J=\"\";const J=F.substring(0,G),K=J.indexOf(\"\\r\\n\");if(K===-1){B.#j=2,B.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Invalid HTTP request\")})),w.end();return}const L=J.substring(0,K);if(L!==\"HTTP/1.1 200 OK\"){B.#j=2,B.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(L)})),w.end();return}let M=K+1,O=!1,Q=-1;for(;;){let V=J.indexOf(\"\\r\\n\",M);if(V===-1){if(M>=J.length){if(!O)B.#j=2,B.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's response has no MIME type and \"text/event-stream\" is required. Aborting the connection.`)})),w.end();return}V=J.length}const W=J.substring(M+1,V),X=W.indexOf(\":\"),Y=W.substring(0,X),Z=Y.localeCompare(\"content-type\",@undefined,{sensitivity:\"accent\"})===0;if(M=V+1,Z)if(W.endsWith(\" text/event-stream\"))O=!0;else{B.#j=2,B.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's response has a MIME type that is not \"text/event-stream\". Aborting the connection.`)})),w.end();return}else if(Y.localeCompare(\"content-length\",@undefined,{sensitivity:\"accent\"})===0){if(Q=parseInt(W.substring(X+1).trim(),10),@isNaN(Q)||Q<=0){B.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's Content-Length is invalid. Aborting the connection.`)})),w.end();return}if(O)break}else if(Y.localeCompare(\"transfer-encoding\",@undefined,{sensitivity:\"accent\"})===0){if(W.substring(X+1).trim()!==\"chunked\"){B.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's Transfer-Encoding is invalid. Aborting the connection.`)})),w.end();return}if(Q=0,O)break}}B.#O=Q,B.#j=1,B.dispatchEvent(new Event(\"open\"));const U=F.substring(G+4);if(j.#Y(B,U,0),B.#O>0){if(B.#Q+=U.length,B.#Q>=B.#O)B.#j=2,w.end()}return}case 1:if(j.#Y(B,A.toString(),2),B.#O>0){if(B.#Q+=A.byteLength,B.#Q>=B.#O)B.#j=2,w.end()}return;default:break}},drain(w){const A=w.data;if(A.#j===0){const B=A.#J;if(B.length){const F=w.write(B);if(F!==B.length)w.data.#K=B.substring(F);else w.data.#K=\"\"}}},close:j.#z,end(w){j.#z(w).dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Connection closed by server\")}))},timeout(w){j.#z(w).dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Timeout\")}))},binaryType:\"buffer\"};static#z(w){const A=w.data;if(A.#G=null,A.#Q=0,A.#j=2,A.#M){if(A.#V)clearTimeout(A.#V);A.#V=setTimeout(j.#W,A.#U,A)}return A}constructor(w,A=@undefined){super();const B=new URL(w);this.#F=B.protocol===\"https:\",this.#$=B,this.#j=2,process.nextTick(j.#W,this)}ref(){this.#V\?.ref(),this.#G\?.ref()}unref(){this.#V\?.unref(),this.#G\?.unref()}#H(){if(this.#j!==2)return;const w=this.#$,A=this.#F;this.#j=0,@Bun.connect({data:this,socket:j.#Z,hostname:w.hostname,port:parseInt(w.port||(A\?\"443\":\"80\"),10),tls:A\?{requestCert:!0,rejectUnauthorized:!1}:!1}).catch((B)=>{if(super.dispatchEvent(new ErrorEvent(\"error\",{error:B})),this.#M){if(this.#V)this.#V.unref\?.();this.#V=setTimeout(j.#W,1000,this)}})}get url(){return this.#$.href}get readyState(){return this.#j}close(){this.#M=!1,this.#j=2,this.#G\?.unref(),this.#G\?.end()}get onopen(){return this.#B}get onerror(){return this.#w}get onmessage(){return this.#A}set onopen(w){if(this.#B)super.removeEventListener(\"close\",this.#B);super.addEventListener(\"open\",w),this.#B=w}set onerror(w){if(this.#w)super.removeEventListener(\"error\",this.#w);super.addEventListener(\"error\",w),this.#w=w}set onmessage(w){if(this.#A)super.removeEventListener(\"message\",this.#A);super.addEventListener(\"message\",w),this.#A=w}}return Object.defineProperty(j.prototype,\"CONNECTING\",{enumerable:!0,value:0}),Object.defineProperty(j.prototype,\"OPEN\",{enumerable:!0,value:1}),Object.defineProperty(j.prototype,\"CLOSED\",{enumerable:!0,value:2}),j[Symbol.for(\"CommonJS\")]=0,j})\n"; +const char* const s_eventSourceGetEventSourceCode = "(function (){\"use strict\";class A extends EventTarget{#Z;#K;#W;#L;#M;#j=!1;#$=null;#O=\"\";#B=\"\";#z=\"\";#Q=!0;#X=0;#F=0;#H=0;#U=null;static#G(U){U.#Y()}static#J(U,B){const V=U.data,F=V.#z\?`Last-Event-ID: ${V.#z}\\r\\n`:\"\",j=`GET ${B.pathname}${B.search} HTTP/1.1\\r\\nHost: bun\\r\\nContent-type: text/event-stream\\r\\nContent-length: 0\\r\\n${F}\\r\\n`,G=U.write(j);if(G!==j.length)V.#B=j.substring(G)}static#V(U,B,V){for(;;){if(V>=B.length)return;let F=-1,j=B.indexOf(\"\\r\\n\",V);const G=j+2;if(j>0)if(U.#X===0){const Y=parseInt(B.substring(V,j),16);if(Y===0){U.#K=2,U.#$\?.end();return}F=G+Y}else F=B.length;else{if(U.#O.length===0){U.#O+=B.substring(V);return}F=B.length}let W=B.substring(G,F);V=F+2;let J=0,X=W.indexOf(\"\\n\\n\");if(X==-1){U.#O+=B.substring(G);return}if(U.#O.length)U.#O+=W,W=U.#O,U.#O=\"\";let K=!0;while(K){const Y=W.substring(J,X);let L,Z=\"\",M,w=0,O=-1;for(;;){let Q=Y.indexOf(\"\\n\",w);if(Q===-1){if(w>=Y.length)break;Q=Y.length}const H=Y.substring(w,Q);if(H.startsWith(\"data:\"))if(Z.length)Z+=`\\n${H.substring(5).trim()}`;else Z=H.substring(5).trim();else if(H.startsWith(\"event:\"))L=H.substring(6).trim();else if(H.startsWith(\"id:\"))M=H.substring(3).trim();else if(H.startsWith(\"retry:\")){if(O=parseInt(H.substring(6).trim(),10),@isNaN(O))O=-1}w=Q+1}if(U.#z=M||\"\",O>=0)U.#H=O;if(Z||M||L)U.dispatchEvent(new MessageEvent(L||\"message\",{data:Z||\"\",origin:U.#Z.origin,source:U,lastEventId:M}));if(W.length===X+2){K=!1;break}const z=W.indexOf(\"\\n\\n\",X+1);if(z===-1)break;J=X,X=z}}}static#A={open(U){const B=U.data;if(B.#$=U,!B.#j)A.#J(U,B.#Z)},handshake(U,B,V){const F=U.data;if(B)A.#J(U,F.#Z);else F.#K=2,F.dispatchEvent(new ErrorEvent(\"error\",{error:V})),U.end()},data(U,B){const V=U.data;switch(V.#K){case 0:{let F=B.toString();const j=F.indexOf(\"\\r\\n\\r\\n\");if(j===-1){V.#O+=F;return}if(V.#O.length)V.#O+=F,F=V.#O,V.#O=\"\";const G=F.substring(0,j),W=G.indexOf(\"\\r\\n\");if(W===-1){V.#K=2,V.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Invalid HTTP request\")})),U.end();return}const J=G.substring(0,W);if(J!==\"HTTP/1.1 200 OK\"){V.#K=2,V.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(J)})),U.end();return}let X=W+1,K=!1,Y=-1;for(;;){let Z=G.indexOf(\"\\r\\n\",X);if(Z===-1){if(X>=G.length){if(!K)V.#K=2,V.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's response has no MIME type and \"text/event-stream\" is required. Aborting the connection.`)})),U.end();return}Z=G.length}const M=G.substring(X+1,Z),w=M.indexOf(\":\"),O=M.substring(0,w),z=O.localeCompare(\"content-type\",@undefined,{sensitivity:\"accent\"})===0;if(X=Z+1,z)if(M.endsWith(\" text/event-stream\"))K=!0;else{V.#K=2,V.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's response has a MIME type that is not \"text/event-stream\". Aborting the connection.`)})),U.end();return}else if(O.localeCompare(\"content-length\",@undefined,{sensitivity:\"accent\"})===0){if(Y=parseInt(M.substring(w+1).trim(),10),@isNaN(Y)||Y<=0){V.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's Content-Length is invalid. Aborting the connection.`)})),U.end();return}if(K)break}else if(O.localeCompare(\"transfer-encoding\",@undefined,{sensitivity:\"accent\"})===0){if(M.substring(w+1).trim()!==\"chunked\"){V.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's Transfer-Encoding is invalid. Aborting the connection.`)})),U.end();return}if(Y=0,K)break}}V.#X=Y,V.#K=1,V.dispatchEvent(new Event(\"open\"));const L=F.substring(j+4);if(A.#V(V,L,0),V.#X>0){if(V.#F+=L.length,V.#F>=V.#X)V.#K=2,U.end()}return}case 1:if(A.#V(V,B.toString(),2),V.#X>0){if(V.#F+=B.byteLength,V.#F>=V.#X)V.#K=2,U.end()}return;default:break}},drain(U){const B=U.data;if(B.#K===0){const V=B.#O;if(V.length){const F=U.write(V);if(F!==V.length)U.data.#B=V.substring(F);else U.data.#B=\"\"}}},close:A.#w,end(U){A.#w(U).dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Connection closed by server\")}))},timeout(U){A.#w(U).dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Timeout\")}))},binaryType:\"buffer\"};static#w(U){const B=U.data;if(B.#$=null,B.#F=0,B.#K=2,B.#Q){if(B.#U)clearTimeout(B.#U);B.#U=setTimeout(A.#G,B.#H,B)}return B}constructor(U,B=@undefined){super();const V=new URL(U);this.#j=V.protocol===\"https:\",this.#Z=V,this.#K=2,process.nextTick(A.#G,this)}ref(){this.#U\?.ref(),this.#$\?.ref()}unref(){this.#U\?.unref(),this.#$\?.unref()}#Y(){if(this.#K!==2)return;const U=this.#Z,B=this.#j;this.#K=0,@Bun.connect({data:this,socket:A.#A,hostname:U.hostname,port:parseInt(U.port||(B\?\"443\":\"80\"),10),tls:B\?{requestCert:!0,rejectUnauthorized:!1}:!1}).catch((V)=>{if(super.dispatchEvent(new ErrorEvent(\"error\",{error:V})),this.#Q){if(this.#U)this.#U.unref\?.();this.#U=setTimeout(A.#G,1000,this)}})}get url(){return this.#Z.href}get readyState(){return this.#K}close(){this.#Q=!1,this.#K=2,this.#$\?.unref(),this.#$\?.end()}get onopen(){return this.#M}get onerror(){return this.#W}get onmessage(){return this.#L}set onopen(U){if(this.#M)super.removeEventListener(\"close\",this.#M);super.addEventListener(\"open\",U),this.#M=U}set onerror(U){if(this.#W)super.removeEventListener(\"error\",this.#W);super.addEventListener(\"error\",U),this.#W=U}set onmessage(U){if(this.#L)super.removeEventListener(\"message\",this.#L);super.addEventListener(\"message\",U),this.#L=U}}return Object.defineProperty(A.prototype,\"CONNECTING\",{enumerable:!0,value:0}),Object.defineProperty(A.prototype,\"OPEN\",{enumerable:!0,value:1}),Object.defineProperty(A.prototype,\"CLOSED\",{enumerable:!0,value:2}),A[Symbol.for(\"CommonJS\")]=0,A})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ diff --git a/src/js/out/modules/node/assert.js b/src/js/out/modules/node/assert.js index 4086ef8d5..bdaa04547 100644 --- a/src/js/out/modules/node/assert.js +++ b/src/js/out/modules/node/assert.js @@ -1,53 +1,53 @@ -import X1 from"node:util";var D1=function(){throw new Error("CallTracker is not supported yet")},{Bun:$1}=globalThis[Symbol.for("Bun.lazy")]("primordials"),z1=$1.deepEquals,W1=(H,Q)=>function(){return Q||(0,H[Object.keys(H)[0]])((Q={exports:{}}).exports,Q),Q.exports},Y1=W1({"assert/build/internal/errors.js"(H,Q){function Z(G){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Z=function(T){return typeof T}:Z=function(T){return T&&typeof Symbol=="function"&&T.constructor===Symbol&&T!==Symbol.prototype?"symbol":typeof T},Z(G)}function J(G,T){if(!(G instanceof T))throw new TypeError("Cannot call a class as a function")}function z(G,T){return T&&(Z(T)==="object"||typeof T=="function")?T:X(G)}function X(G){if(G===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return G}function U(G){return U=Object.setPrototypeOf?Object.getPrototypeOf:function(T){return T.__proto__||Object.getPrototypeOf(T)},U(G)}function $(G,T){if(typeof T!="function"&&T!==null)throw new TypeError("Super expression must either be null or a function");G.prototype=Object.create(T&&T.prototype,{constructor:{value:G,writable:!0,configurable:!0}}),T&&K(G,T)}function K(G,T){return K=Object.setPrototypeOf||function(w,O){return w.__proto__=O,w},K(G,T)}var W={},Y,B;function V(G,T,w){w||(w=Error);function O(N,I,P){return typeof T=="string"?T:T(N,I,P)}var F=function(N){$(I,N);function I(P,A,S){var j;return J(this,I),j=z(this,U(I).call(this,O(P,A,S))),j.code=G,j}return I}(w);W[G]=F}function D(G,T){if(Array.isArray(G)){var w=G.length;return G=G.map(function(O){return String(O)}),w>2?"one of ".concat(T," ").concat(G.slice(0,w-1).join(", "),", or ")+G[w-1]:w===2?"one of ".concat(T," ").concat(G[0]," or ").concat(G[1]):"of ".concat(T," ").concat(G[0])}else return"of ".concat(T," ").concat(String(G))}function M(G,T,w){return G.substr(!w||w<0?0:+w,T.length)===T}function q(G,T,w){return(w===void 0||w>G.length)&&(w=G.length),G.substring(w-T.length,w)===T}function v(G,T,w){return typeof w!="number"&&(w=0),w+T.length>G.length?!1:G.indexOf(T,w)!==-1}V("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),V("ERR_INVALID_ARG_TYPE",function(G,T,w){Y===void 0&&(Y=U1()),Y(typeof G=="string","'name' must be a string");var O;typeof T=="string"&&M(T,"not ")?(O="must not be",T=T.replace(/^not /,"")):O="must be";var F;if(q(G," argument"))F="The ".concat(G," ").concat(O," ").concat(D(T,"type"));else{var N=v(G,".")?"property":"argument";F='The "'.concat(G,'" ').concat(N," ").concat(O," ").concat(D(T,"type"))}return F+=". Received type ".concat(Z(w)),F},TypeError),V("ERR_INVALID_ARG_VALUE",function(G,T){var w=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"is invalid",O=B.inspect(T);return O.length>128&&(O="".concat(O.slice(0,128),"...")),"The argument '".concat(G,"' ").concat(w,". Received ").concat(O)},TypeError,RangeError),V("ERR_INVALID_RETURN_VALUE",function(G,T,w){var O;return w&&w.constructor&&w.constructor.name?O="instance of ".concat(w.constructor.name):O="type ".concat(Z(w)),"Expected ".concat(G,' to be returned from the "').concat(T,'"')+" function but got ".concat(O,".")},TypeError),V("ERR_MISSING_ARGS",function(){for(var G=arguments.length,T=new Array(G),w=0;w0,"At least one arg needs to be specified");var O="The ",F=T.length;switch(T=T.map(function(N){return'"'.concat(N,'"')}),F){case 1:O+="".concat(T[0]," argument");break;case 2:O+="".concat(T[0]," and ").concat(T[1]," arguments");break;default:O+=T.slice(0,F-1).join(", "),O+=", and ".concat(T[F-1]," arguments");break}return"".concat(O," must be specified")},TypeError),Q.exports.codes=W}}),B1=W1({"assert/build/internal/assert/assertion_error.js"(H,Q){function Z(L){for(var b=1;bL.length)&&(h=L.length),L.substring(h-b.length,h)===b}function F(L,b){if(b=Math.floor(b),L.length==0||b==0)return"";var h=L.length*b;for(b=Math.floor(Math.log(b)/Math.log(2));b;)L+=L,b--;return L+=L.substring(0,h-L.length),L}var N="",I="",P="",A="",S={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"},j=10;function R(L){var b=Object.keys(L),h=Object.create(Object.getPrototypeOf(L));return b.forEach(function(k){h[k]=L[k]}),Object.defineProperty(h,"message",{value:L.message}),h}function f(L){return G(L,{compact:!1,customInspect:!1,depth:1000,maxArrayLength:Infinity,showHidden:!1,breakLength:Infinity,showProxy:!1,sorted:!0,getters:!0})}function C(L,b,h){var k="",m="",x=0,y="",g=!1,d=f(L),_=d.split(` -`),u=f(b).split(` -`),n=0,i="";if(h==="strictEqual"&&v(L)==="object"&&v(b)==="object"&&L!==null&&b!==null&&(h="strictEqualObject"),_.length===1&&u.length===1&&_[0]!==u[0]){var p=_[0].length+u[0].length;if(p<=j){if((v(L)!=="object"||L===null)&&(v(b)!=="object"||b===null)&&(L!==0||b!==0))return"".concat(S[h],` +import U1 from"node:util";var w1=function(){throw new Error("CallTracker is not supported yet")},{Bun:K1}=globalThis[Symbol.for("Bun.lazy")]("primordials"),X1=K1.deepEquals,Y1=(b1,Z)=>function(){return Z||(0,b1[Object.keys(b1)[0]])((Z={exports:{}}).exports,Z),Z.exports},B1=Y1({"assert/build/internal/errors.js"(b1,Z){function J(T){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?J=function(w){return typeof w}:J=function(w){return w&&typeof Symbol=="function"&&w.constructor===Symbol&&w!==Symbol.prototype?"symbol":typeof w},J(T)}function z(T,w){if(!(T instanceof w))throw new TypeError("Cannot call a class as a function")}function X(T,w){return w&&(J(w)==="object"||typeof w=="function")?w:U(T)}function U(T){if(T===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return T}function $(T){return $=Object.setPrototypeOf?Object.getPrototypeOf:function(w){return w.__proto__||Object.getPrototypeOf(w)},$(T)}function K(T,w){if(typeof w!="function"&&w!==null)throw new TypeError("Super expression must either be null or a function");T.prototype=Object.create(w&&w.prototype,{constructor:{value:T,writable:!0,configurable:!0}}),w&&W(T,w)}function W(T,w){return W=Object.setPrototypeOf||function(O,F){return O.__proto__=F,O},W(T,w)}var Y={},B,V;function D(T,w,O){O||(O=Error);function F(I,P,A){return typeof w=="string"?w:w(I,P,A)}var N=function(I){K(P,I);function P(A,S,j){var R;return z(this,P),R=X(this,$(P).call(this,F(A,S,j))),R.code=T,R}return P}(O);Y[T]=N}function M(T,w){if(Array.isArray(T)){var O=T.length;return T=T.map(function(F){return String(F)}),O>2?"one of ".concat(w," ").concat(T.slice(0,O-1).join(", "),", or ")+T[O-1]:O===2?"one of ".concat(w," ").concat(T[0]," or ").concat(T[1]):"of ".concat(w," ").concat(T[0])}else return"of ".concat(w," ").concat(String(T))}function q(T,w,O){return T.substr(!O||O<0?0:+O,w.length)===w}function v(T,w,O){return(O===void 0||O>T.length)&&(O=T.length),T.substring(O-w.length,O)===w}function G(T,w,O){return typeof O!="number"&&(O=0),O+w.length>T.length?!1:T.indexOf(w,O)!==-1}D("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),D("ERR_INVALID_ARG_TYPE",function(T,w,O){B===void 0&&(B=$1()),B(typeof T=="string","'name' must be a string");var F;typeof w=="string"&&q(w,"not ")?(F="must not be",w=w.replace(/^not /,"")):F="must be";var N;if(v(T," argument"))N="The ".concat(T," ").concat(F," ").concat(M(w,"type"));else{var I=G(T,".")?"property":"argument";N='The "'.concat(T,'" ').concat(I," ").concat(F," ").concat(M(w,"type"))}return N+=". Received type ".concat(J(O)),N},TypeError),D("ERR_INVALID_ARG_VALUE",function(T,w){var O=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"is invalid",F=V.inspect(w);return F.length>128&&(F="".concat(F.slice(0,128),"...")),"The argument '".concat(T,"' ").concat(O,". Received ").concat(F)},TypeError,RangeError),D("ERR_INVALID_RETURN_VALUE",function(T,w,O){var F;return O&&O.constructor&&O.constructor.name?F="instance of ".concat(O.constructor.name):F="type ".concat(J(O)),"Expected ".concat(T,' to be returned from the "').concat(w,'"')+" function but got ".concat(F,".")},TypeError),D("ERR_MISSING_ARGS",function(){for(var T=arguments.length,w=new Array(T),O=0;O0,"At least one arg needs to be specified");var F="The ",N=w.length;switch(w=w.map(function(I){return'"'.concat(I,'"')}),N){case 1:F+="".concat(w[0]," argument");break;case 2:F+="".concat(w[0]," and ").concat(w[1]," arguments");break;default:F+=w.slice(0,N-1).join(", "),F+=", and ".concat(w[N-1]," arguments");break}return"".concat(F," must be specified")},TypeError),Z.exports.codes=Y}}),G1=Y1({"assert/build/internal/assert/assertion_error.js"(b1,Z){function J(b){for(var h=1;hb.length)&&(k=b.length),b.substring(k-h.length,k)===h}function N(b,h){if(h=Math.floor(h),b.length==0||h==0)return"";var k=b.length*h;for(h=Math.floor(Math.log(h)/Math.log(2));h;)b+=b,h--;return b+=b.substring(0,k-b.length),b}var I="",P="",A="",S="",j={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"},R=10;function f(b){var h=Object.keys(b),k=Object.create(Object.getPrototypeOf(b));return h.forEach(function(m){k[m]=b[m]}),Object.defineProperty(k,"message",{value:b.message}),k}function C(b){return T(b,{compact:!1,customInspect:!1,depth:1000,maxArrayLength:Infinity,showHidden:!1,breakLength:Infinity,showProxy:!1,sorted:!0,getters:!0})}function E(b,h,k){var m="",x="",y=0,g="",d=!1,_=C(b),u=_.split(` +`),n=C(h).split(` +`),i=0,p="";if(k==="strictEqual"&&G(b)==="object"&&G(h)==="object"&&b!==null&&h!==null&&(k="strictEqualObject"),u.length===1&&n.length===1&&u[0]!==n[0]){var l=u[0].length+n[0].length;if(l<=R){if((G(b)!=="object"||b===null)&&(G(h)!=="object"||h===null)&&(b!==0||h!==0))return"".concat(j[k],` -`)+"".concat(_[0]," !== ").concat(u[0],` -`)}else if(h!=="strictEqualObject"){var l=process.stderr&&process.stderr.isTTY?process.stderr.columns:80;if(p2&&(i=` - `.concat(F(" ",n),"^"),n=0)}}}for(var c=_[_.length-1],o=u[u.length-1];c===o&&(n++<2?y=` - `.concat(c).concat(y):k=c,_.pop(),u.pop(),!(_.length===0||u.length===0));)c=_[_.length-1],o=u[u.length-1];var a=Math.max(_.length,u.length);if(a===0){var t=d.split(` -`);if(t.length>30)for(t[26]="".concat(N,"...").concat(A);t.length>27;)t.pop();return"".concat(S.notIdentical,` +`)+"".concat(u[0]," !== ").concat(n[0],` +`)}else if(k!=="strictEqualObject"){var c=process.stderr&&process.stderr.isTTY?process.stderr.columns:80;if(l2&&(p=` + `.concat(N(" ",i),"^"),i=0)}}}for(var o=u[u.length-1],a=n[n.length-1];o===a&&(i++<2?g=` + `.concat(o).concat(g):m=o,u.pop(),n.pop(),!(u.length===0||n.length===0));)o=u[u.length-1],a=n[n.length-1];var t=Math.max(u.length,n.length);if(t===0){var r=_.split(` +`);if(r.length>30)for(r[26]="".concat(I,"...").concat(S);r.length>27;)r.pop();return"".concat(j.notIdentical,` -`).concat(t.join(` +`).concat(r.join(` `),` -`)}n>3&&(y=` -`.concat(N,"...").concat(A).concat(y),g=!0),k!==""&&(y=` - `.concat(k).concat(y),k="");var r=0,s=S[h]+` -`.concat(I,"+ actual").concat(A," ").concat(P,"- expected").concat(A),e=" ".concat(N,"...").concat(A," Lines skipped");for(n=0;n1&&n>2&&(H1>4?(m+=` -`.concat(N,"...").concat(A),g=!0):H1>3&&(m+=` - `.concat(u[n-2]),r++),m+=` - `.concat(u[n-1]),r++),x=n,k+=` -`.concat(P,"-").concat(A," ").concat(u[n]),r++;else if(u.length1&&n>2&&(H1>4?(m+=` -`.concat(N,"...").concat(A),g=!0):H1>3&&(m+=` - `.concat(_[n-2]),r++),m+=` - `.concat(_[n-1]),r++),x=n,m+=` -`.concat(I,"+").concat(A," ").concat(_[n]),r++;else{var Q1=u[n],Z1=_[n],J1=Z1!==Q1&&(!O(Z1,",")||Z1.slice(0,-1)!==Q1);J1&&O(Q1,",")&&Q1.slice(0,-1)===Z1&&(J1=!1,Z1+=","),J1?(H1>1&&n>2&&(H1>4?(m+=` -`.concat(N,"...").concat(A),g=!0):H1>3&&(m+=` - `.concat(_[n-2]),r++),m+=` - `.concat(_[n-1]),r++),x=n,m+=` -`.concat(I,"+").concat(A," ").concat(Z1),k+=` -`.concat(P,"-").concat(A," ").concat(Q1),r+=2):(m+=k,k="",(H1===1||n===0)&&(m+=` - `.concat(Z1),r++))}if(r>20&&n30)for(n[26]="".concat(N,"...").concat(A);n.length>27;)n.pop();n.length===1?k=$(this,q(b).call(this,"".concat(u," ").concat(n[0]))):k=$(this,q(b).call(this,"".concat(u,` +`)}i>3&&(g=` +`.concat(I,"...").concat(S).concat(g),d=!0),m!==""&&(g=` + `.concat(m).concat(g),m="");var s=0,e=j[k]+` +`.concat(P,"+ actual").concat(S," ").concat(A,"- expected").concat(S),H1=" ".concat(I,"...").concat(S," Lines skipped");for(i=0;i1&&i>2&&(Q1>4?(x+=` +`.concat(I,"...").concat(S),d=!0):Q1>3&&(x+=` + `.concat(n[i-2]),s++),x+=` + `.concat(n[i-1]),s++),y=i,m+=` +`.concat(A,"-").concat(S," ").concat(n[i]),s++;else if(n.length1&&i>2&&(Q1>4?(x+=` +`.concat(I,"...").concat(S),d=!0):Q1>3&&(x+=` + `.concat(u[i-2]),s++),x+=` + `.concat(u[i-1]),s++),y=i,x+=` +`.concat(P,"+").concat(S," ").concat(u[i]),s++;else{var Z1=n[i],J1=u[i],z1=J1!==Z1&&(!F(J1,",")||J1.slice(0,-1)!==Z1);z1&&F(Z1,",")&&Z1.slice(0,-1)===J1&&(z1=!1,J1+=","),z1?(Q1>1&&i>2&&(Q1>4?(x+=` +`.concat(I,"...").concat(S),d=!0):Q1>3&&(x+=` + `.concat(u[i-2]),s++),x+=` + `.concat(u[i-1]),s++),y=i,x+=` +`.concat(P,"+").concat(S," ").concat(J1),m+=` +`.concat(A,"-").concat(S," ").concat(Z1),s+=2):(x+=m,m="",(Q1===1||i===0)&&(x+=` + `.concat(J1),s++))}if(s>20&&i30)for(i[26]="".concat(I,"...").concat(S);i.length>27;)i.pop();i.length===1?m=K(this,v(h).call(this,"".concat(n," ").concat(i[0]))):m=K(this,v(h).call(this,"".concat(n,` -`).concat(n.join(` +`).concat(i.join(` `),` -`)))}else{var i=f(g),p="",l=S[x];x==="notDeepEqual"||x==="notEqual"?(i="".concat(S[x],` +`)))}else{var p=C(d),l="",c=j[y];y==="notDeepEqual"||y==="notEqual"?(p="".concat(j[y],` -`).concat(i),i.length>1024&&(i="".concat(i.slice(0,1021),"..."))):(p="".concat(f(d)),i.length>512&&(i="".concat(i.slice(0,509),"...")),p.length>512&&(p="".concat(p.slice(0,509),"...")),x==="deepEqual"||x==="equal"?i="".concat(l,` +`).concat(p),p.length>1024&&(p="".concat(p.slice(0,1021),"..."))):(l="".concat(C(_)),p.length>512&&(p="".concat(p.slice(0,509),"...")),l.length>512&&(l="".concat(l.slice(0,509),"...")),y==="deepEqual"||y==="equal"?p="".concat(c,` -`).concat(i,` +`).concat(p,` should equal -`):p=" ".concat(x," ").concat(p)),k=$(this,q(b).call(this,"".concat(i).concat(p)))}return Error.stackTraceLimit=_,k.generatedMessage=!m,Object.defineProperty(K(k),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),k.code="ERR_ASSERTION",k.actual=g,k.expected=d,k.operator=x,Error.captureStackTrace&&Error.captureStackTrace(K(k),y),k.stack,k.name="AssertionError",$(k)}return U(b,[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:G.custom,value:function(h,k){return G(this,Z({},k,{customInspect:!1,depth:0}))}}]),b}(Y(Error));Q.exports=E}}),U1=W1({"assert/build/assert.js"(H,Q){function Z(x){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Z=function(y){return typeof y}:Z=function(y){return y&&typeof Symbol=="function"&&y.constructor===Symbol&&y!==Symbol.prototype?"symbol":typeof y},Z(x)}function J(x,y){if(!(x instanceof y))throw new TypeError("Cannot call a class as a function")}var z=Y1(),X=z.codes,U=X.ERR_AMBIGUOUS_ARGUMENT,$=X.ERR_INVALID_ARG_TYPE,K=X.ERR_INVALID_ARG_VALUE,W=X.ERR_INVALID_RETURN_VALUE,Y=X.ERR_MISSING_ARGS,B=B1(),V=X1,D=V.inspect,M=X1.types,q=M.isPromise,v=M.isRegExp,G=Object.assign,T=Object.is,w=new Map,O=!1,F=Q.exports=S,N={};function I(x){throw x.message instanceof Error?x.message:new B(x)}function P(x,y,g,d,_){var u=arguments.length,n;if(u===0)n="Failed";else if(u===1)g=x,x=void 0;else{if(O===!1){O=!0;var i=process.emitWarning?process.emitWarning:console.warn.bind(console);i("assert.fail() with more than one argument is deprecated. Please use assert.strictEqual() instead or only pass a message.","DeprecationWarning","DEP0094")}u===2&&(d="!=")}if(g instanceof Error)throw g;var p={actual:x,expected:y,operator:d===void 0?"fail":d,stackStartFn:_||P};g!==void 0&&(p.message=g);var l=new B(p);throw n&&(l.message=n,l.generatedMessage=!0),l}F.fail=P,F.AssertionError=B;function A(x,y,g,d){if(!g){var _=!1;if(y===0)_=!0,d="No value argument passed to `assert.ok()`";else if(d instanceof Error)throw d;var u=new B({actual:g,expected:!0,message:d,operator:"==",stackStartFn:x});throw u.generatedMessage=_,u}}function S(){for(var x=arguments.length,y=new Array(x),g=0;g1?g-1:0),_=1;_1?g-1:0),_=1;_1?g-1:0),_=1;_1?g-1:0),_=1;_1?d-1:0),u=1;u1?d-1:0),u=1;u1?d-1:0),u=1;u1?d-1:0),u=1;ufunction(){return Q||(0,$[R$($)[0]])((Q={exports:{}}).exports,Q),Q.exports},j$=($,Q)=>{for(var Y in Q)L$($,Y,{get:Q[Y],enumerable:!0})};var k$=q$({"node_modules/safe-buffer/index.js"($,Q){var Y=M$,Z=Y.Buffer;function G(U,X){for(var K in U)X[K]=U[K]}Z.from&&Z.alloc&&Z.allocUnsafe&&Z.allocUnsafeSlow?Q.exports=Y:(G(Y,$),$.Buffer=V);function V(U,X,K){return Z(U,X,K)}V.prototype=Object.create(Z.prototype),G(Z,V),V.from=function(U,X,K){if(typeof U=="number")throw new TypeError("Argument must not be a number");return Z(U,X,K)},V.alloc=function(U,X,K){if(typeof U!="number")throw new TypeError("Argument must be a number");var I=Z(U);return X!==void 0?typeof K=="string"?I.fill(X,K):I.fill(X):I.fill(0),I},V.allocUnsafe=function(U){if(typeof U!="number")throw new TypeError("Argument must be a number");return Z(U)},V.allocUnsafeSlow=function(U){if(typeof U!="number")throw new TypeError("Argument must be a number");return Y.SlowBuffer(U)}}}),g$=q$({"node_modules/randombytes/browser.js"($,Q){var Y=65536,Z=4294967295;function G(){throw new Error(`Secure random number generation is not supported by this browser. -Use Chrome, Firefox or Internet Explorer 11`)}var V=k$().Buffer,U=v$;U&&U.getRandomValues?Q.exports=X:Q.exports=G;function X(K,I){if(K>Z)throw new RangeError("requested too many random bytes");var O=V.allocUnsafe(K);if(K>0)if(K>Y)for(var J=0;J=this._blockSize;){for(var O=this._blockOffset;O0;++J)this._length[J]+=F,F=this._length[J]/4294967296|0,F>0&&(this._length[J]-=4294967296*F);return this},V.prototype._update=function(){throw new Error("_update is not implemented")},V.prototype.digest=function(U){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var X=this._digest();U!==void 0&&(X=X.toString(U)),this._block.fill(0),this._blockOffset=0;for(var K=0;K<4;++K)this._length[K]=0;return X},V.prototype._digest=function(){throw new Error("_digest is not implemented")},Q.exports=V}}),x$=q$({"node_modules/md5.js/index.js"($,Q){var Y=_$(),Z=N$(),G=k$().Buffer,V=new Array(16);function U(){Z.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}Y(U,Z),U.prototype._update=function(){for(var F=V,A=0;A<16;++A)F[A]=this._block.readInt32LE(A*4);var H=this._a,W=this._b,E=this._c,T=this._d;H=K(H,W,E,T,F[0],3614090360,7),T=K(T,H,W,E,F[1],3905402710,12),E=K(E,T,H,W,F[2],606105819,17),W=K(W,E,T,H,F[3],3250441966,22),H=K(H,W,E,T,F[4],4118548399,7),T=K(T,H,W,E,F[5],1200080426,12),E=K(E,T,H,W,F[6],2821735955,17),W=K(W,E,T,H,F[7],4249261313,22),H=K(H,W,E,T,F[8],1770035416,7),T=K(T,H,W,E,F[9],2336552879,12),E=K(E,T,H,W,F[10],4294925233,17),W=K(W,E,T,H,F[11],2304563134,22),H=K(H,W,E,T,F[12],1804603682,7),T=K(T,H,W,E,F[13],4254626195,12),E=K(E,T,H,W,F[14],2792965006,17),W=K(W,E,T,H,F[15],1236535329,22),H=I(H,W,E,T,F[1],4129170786,5),T=I(T,H,W,E,F[6],3225465664,9),E=I(E,T,H,W,F[11],643717713,14),W=I(W,E,T,H,F[0],3921069994,20),H=I(H,W,E,T,F[5],3593408605,5),T=I(T,H,W,E,F[10],38016083,9),E=I(E,T,H,W,F[15],3634488961,14),W=I(W,E,T,H,F[4],3889429448,20),H=I(H,W,E,T,F[9],568446438,5),T=I(T,H,W,E,F[14],3275163606,9),E=I(E,T,H,W,F[3],4107603335,14),W=I(W,E,T,H,F[8],1163531501,20),H=I(H,W,E,T,F[13],2850285829,5),T=I(T,H,W,E,F[2],4243563512,9),E=I(E,T,H,W,F[7],1735328473,14),W=I(W,E,T,H,F[12],2368359562,20),H=O(H,W,E,T,F[5],4294588738,4),T=O(T,H,W,E,F[8],2272392833,11),E=O(E,T,H,W,F[11],1839030562,16),W=O(W,E,T,H,F[14],4259657740,23),H=O(H,W,E,T,F[1],2763975236,4),T=O(T,H,W,E,F[4],1272893353,11),E=O(E,T,H,W,F[7],4139469664,16),W=O(W,E,T,H,F[10],3200236656,23),H=O(H,W,E,T,F[13],681279174,4),T=O(T,H,W,E,F[0],3936430074,11),E=O(E,T,H,W,F[3],3572445317,16),W=O(W,E,T,H,F[6],76029189,23),H=O(H,W,E,T,F[9],3654602809,4),T=O(T,H,W,E,F[12],3873151461,11),E=O(E,T,H,W,F[15],530742520,16),W=O(W,E,T,H,F[2],3299628645,23),H=J(H,W,E,T,F[0],4096336452,6),T=J(T,H,W,E,F[7],1126891415,10),E=J(E,T,H,W,F[14],2878612391,15),W=J(W,E,T,H,F[5],4237533241,21),H=J(H,W,E,T,F[12],1700485571,6),T=J(T,H,W,E,F[3],2399980690,10),E=J(E,T,H,W,F[10],4293915773,15),W=J(W,E,T,H,F[1],2240044497,21),H=J(H,W,E,T,F[8],1873313359,6),T=J(T,H,W,E,F[15],4264355552,10),E=J(E,T,H,W,F[6],2734768916,15),W=J(W,E,T,H,F[13],1309151649,21),H=J(H,W,E,T,F[4],4149444226,6),T=J(T,H,W,E,F[11],3174756917,10),E=J(E,T,H,W,F[2],718787259,15),W=J(W,E,T,H,F[9],3951481745,21),this._a=this._a+H|0,this._b=this._b+W|0,this._c=this._c+E|0,this._d=this._d+T|0},U.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var F=G.allocUnsafe(16);return F.writeInt32LE(this._a,0),F.writeInt32LE(this._b,4),F.writeInt32LE(this._c,8),F.writeInt32LE(this._d,12),F};function X(F,A){return F<>>32-A}function K(F,A,H,W,E,T,D){return X(F+(A&H|~A&W)+E+T|0,D)+A|0}function I(F,A,H,W,E,T,D){return X(F+(A&W|H&~W)+E+T|0,D)+A|0}function O(F,A,H,W,E,T,D){return X(F+(A^H^W)+E+T|0,D)+A|0}function J(F,A,H,W,E,T,D){return X(F+(H^(A|~W))+E+T|0,D)+A|0}Q.exports=U}}),B$=q$({"node_modules/ripemd160/index.js"($,Q){var Y=F$,Z=_$(),G=N$(),V=new Array(16),U=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],X=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],K=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],I=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],O=[0,1518500249,1859775393,2400959708,2840853838],J=[1352829926,1548603684,1836072691,2053994217,0];function F(){G.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}Z(F,G),F.prototype._update=function(){for(var C=V,L=0;L<16;++L)C[L]=this._block.readInt32LE(L*4);for(var R=this._a|0,P=this._b|0,z=this._c|0,M=this._d|0,S=this._e|0,v=this._a|0,q=this._b|0,j=this._c|0,k=this._d|0,g=this._e|0,_=0;_<80;_+=1){var N,x;_<16?(N=H(R,P,z,M,S,C[U[_]],O[0],K[_]),x=D(v,q,j,k,g,C[X[_]],J[0],I[_])):_<32?(N=W(R,P,z,M,S,C[U[_]],O[1],K[_]),x=T(v,q,j,k,g,C[X[_]],J[1],I[_])):_<48?(N=E(R,P,z,M,S,C[U[_]],O[2],K[_]),x=E(v,q,j,k,g,C[X[_]],J[2],I[_])):_<64?(N=T(R,P,z,M,S,C[U[_]],O[3],K[_]),x=W(v,q,j,k,g,C[X[_]],J[3],I[_])):(N=D(R,P,z,M,S,C[U[_]],O[4],K[_]),x=H(v,q,j,k,g,C[X[_]],J[4],I[_])),R=S,S=M,M=A(z,10),z=P,P=N,v=g,g=k,k=A(j,10),j=q,q=x}var B=this._b+z+k|0;this._b=this._c+M+g|0,this._c=this._d+S+v|0,this._d=this._e+R+q|0,this._e=this._a+P+j|0,this._a=B},F.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var C=Y.alloc?Y.alloc(20):new Y(20);return C.writeInt32LE(this._a,0),C.writeInt32LE(this._b,4),C.writeInt32LE(this._c,8),C.writeInt32LE(this._d,12),C.writeInt32LE(this._e,16),C};function A(C,L){return C<>>32-L}function H(C,L,R,P,z,M,S,v){return A(C+(L^R^P)+M+S|0,v)+z|0}function W(C,L,R,P,z,M,S,v){return A(C+(L&R|~L&P)+M+S|0,v)+z|0}function E(C,L,R,P,z,M,S,v){return A(C+((L|~R)^P)+M+S|0,v)+z|0}function T(C,L,R,P,z,M,S,v){return A(C+(L&P|R&~P)+M+S|0,v)+z|0}function D(C,L,R,P,z,M,S,v){return A(C+(L^(R|~P))+M+S|0,v)+z|0}Q.exports=F}}),y$=q$({"node_modules/sha.js/hash.js"($,Q){var Y=k$().Buffer;function Z(G,V){this._block=Y.alloc(G),this._finalSize=V,this._blockSize=G,this._len=0}Z.prototype.update=function(G,V){typeof G=="string"&&(V=V||"utf8",G=Y.from(G,V));for(var U=this._block,X=this._blockSize,K=G.length,I=this._len,O=0;O=this._finalSize&&(this._update(this._block),this._block.fill(0));var U=this._len*8;if(U<=4294967295)this._block.writeUInt32BE(U,this._blockSize-4);else{var X=(U&4294967295)>>>0,K=(U-X)/4294967296;this._block.writeUInt32BE(K,this._blockSize-8),this._block.writeUInt32BE(X,this._blockSize-4)}this._update(this._block);var I=this._hash();return G?I.toString(G):I},Z.prototype._update=function(){throw new Error("_update must be implemented by subclass")},Q.exports=Z}}),w$=q$({"node_modules/sha.js/sha.js"($,Q){var Y=_$(),Z=y$(),G=k$().Buffer,V=[1518500249,1859775393,-1894007588,-899497514],U=new Array(80);function X(){this.init(),this._w=U,Z.call(this,64,56)}Y(X,Z),X.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function K(J){return J<<5|J>>>27}function I(J){return J<<30|J>>>2}function O(J,F,A,H){return J===0?F&A|~F&H:J===2?F&A|F&H|A&H:F^A^H}X.prototype._update=function(J){for(var F=this._w,A=this._a|0,H=this._b|0,W=this._c|0,E=this._d|0,T=this._e|0,D=0;D<16;++D)F[D]=J.readInt32BE(D*4);for(;D<80;++D)F[D]=F[D-3]^F[D-8]^F[D-14]^F[D-16];for(var C=0;C<80;++C){var L=~~(C/20),R=K(A)+O(L,H,W,E)+T+F[C]+V[L]|0;T=E,E=W,W=I(H),H=A,A=R}this._a=A+this._a|0,this._b=H+this._b|0,this._c=W+this._c|0,this._d=E+this._d|0,this._e=T+this._e|0},X.prototype._hash=function(){var J=G.allocUnsafe(20);return J.writeInt32BE(this._a|0,0),J.writeInt32BE(this._b|0,4),J.writeInt32BE(this._c|0,8),J.writeInt32BE(this._d|0,12),J.writeInt32BE(this._e|0,16),J},Q.exports=X}}),p$=q$({"node_modules/sha.js/sha1.js"($,Q){var Y=_$(),Z=y$(),G=k$().Buffer,V=[1518500249,1859775393,-1894007588,-899497514],U=new Array(80);function X(){this.init(),this._w=U,Z.call(this,64,56)}Y(X,Z),X.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function K(F){return F<<1|F>>>31}function I(F){return F<<5|F>>>27}function O(F){return F<<30|F>>>2}function J(F,A,H,W){return F===0?A&H|~A&W:F===2?A&H|A&W|H&W:A^H^W}X.prototype._update=function(F){for(var A=this._w,H=this._a|0,W=this._b|0,E=this._c|0,T=this._d|0,D=this._e|0,C=0;C<16;++C)A[C]=F.readInt32BE(C*4);for(;C<80;++C)A[C]=K(A[C-3]^A[C-8]^A[C-14]^A[C-16]);for(var L=0;L<80;++L){var R=~~(L/20),P=I(H)+J(R,W,E,T)+D+A[L]+V[R]|0;D=T,T=E,E=O(W),W=H,H=P}this._a=H+this._a|0,this._b=W+this._b|0,this._c=E+this._c|0,this._d=T+this._d|0,this._e=D+this._e|0},X.prototype._hash=function(){var F=G.allocUnsafe(20);return F.writeInt32BE(this._a|0,0),F.writeInt32BE(this._b|0,4),F.writeInt32BE(this._c|0,8),F.writeInt32BE(this._d|0,12),F.writeInt32BE(this._e|0,16),F},Q.exports=X}}),f$=q$({"node_modules/sha.js/sha256.js"($,Q){var Y=_$(),Z=y$(),G=k$().Buffer,V=[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],U=new Array(64);function X(){this.init(),this._w=U,Z.call(this,64,56)}Y(X,Z),X.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function K(H,W,E){return E^H&(W^E)}function I(H,W,E){return H&W|E&(H|W)}function O(H){return(H>>>2|H<<30)^(H>>>13|H<<19)^(H>>>22|H<<10)}function J(H){return(H>>>6|H<<26)^(H>>>11|H<<21)^(H>>>25|H<<7)}function F(H){return(H>>>7|H<<25)^(H>>>18|H<<14)^H>>>3}function A(H){return(H>>>17|H<<15)^(H>>>19|H<<13)^H>>>10}X.prototype._update=function(H){for(var W=this._w,E=this._a|0,T=this._b|0,D=this._c|0,C=this._d|0,L=this._e|0,R=this._f|0,P=this._g|0,z=this._h|0,M=0;M<16;++M)W[M]=H.readInt32BE(M*4);for(;M<64;++M)W[M]=A(W[M-2])+W[M-7]+F(W[M-15])+W[M-16]|0;for(var S=0;S<64;++S){var v=z+J(L)+K(L,R,P)+V[S]+W[S]|0,q=O(E)+I(E,T,D)|0;z=P,P=R,R=L,L=C+v|0,C=D,D=T,T=E,E=v+q|0}this._a=E+this._a|0,this._b=T+this._b|0,this._c=D+this._c|0,this._d=C+this._d|0,this._e=L+this._e|0,this._f=R+this._f|0,this._g=P+this._g|0,this._h=z+this._h|0},X.prototype._hash=function(){var H=G.allocUnsafe(32);return H.writeInt32BE(this._a,0),H.writeInt32BE(this._b,4),H.writeInt32BE(this._c,8),H.writeInt32BE(this._d,12),H.writeInt32BE(this._e,16),H.writeInt32BE(this._f,20),H.writeInt32BE(this._g,24),H.writeInt32BE(this._h,28),H},Q.exports=X}}),c$=q$({"node_modules/sha.js/sha224.js"($,Q){var Y=_$(),Z=f$(),G=y$(),V=k$().Buffer,U=new Array(64);function X(){this.init(),this._w=U,G.call(this,64,56)}Y(X,Z),X.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},X.prototype._hash=function(){var K=V.allocUnsafe(28);return K.writeInt32BE(this._a,0),K.writeInt32BE(this._b,4),K.writeInt32BE(this._c,8),K.writeInt32BE(this._d,12),K.writeInt32BE(this._e,16),K.writeInt32BE(this._f,20),K.writeInt32BE(this._g,24),K},Q.exports=X}}),h$=q$({"node_modules/sha.js/sha512.js"($,Q){var Y=_$(),Z=y$(),G=k$().Buffer,V=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],U=new Array(160);function X(){this.init(),this._w=U,Z.call(this,128,112)}Y(X,Z),X.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function K(T,D,C){return C^T&(D^C)}function I(T,D,C){return T&D|C&(T|D)}function O(T,D){return(T>>>28|D<<4)^(D>>>2|T<<30)^(D>>>7|T<<25)}function J(T,D){return(T>>>14|D<<18)^(T>>>18|D<<14)^(D>>>9|T<<23)}function F(T,D){return(T>>>1|D<<31)^(T>>>8|D<<24)^T>>>7}function A(T,D){return(T>>>1|D<<31)^(T>>>8|D<<24)^(T>>>7|D<<25)}function H(T,D){return(T>>>19|D<<13)^(D>>>29|T<<3)^T>>>6}function W(T,D){return(T>>>19|D<<13)^(D>>>29|T<<3)^(T>>>6|D<<26)}function E(T,D){return T>>>0>>0?1:0}X.prototype._update=function(T){for(var D=this._w,C=this._ah|0,L=this._bh|0,R=this._ch|0,P=this._dh|0,z=this._eh|0,M=this._fh|0,S=this._gh|0,v=this._hh|0,q=this._al|0,j=this._bl|0,k=this._cl|0,g=this._dl|0,_=this._el|0,N=this._fl|0,x=this._gl|0,B=this._hl|0,y=0;y<32;y+=2)D[y]=T.readInt32BE(y*4),D[y+1]=T.readInt32BE(y*4+4);for(;y<160;y+=2){var w=D[y-30],p=D[y-30+1],f=F(w,p),c=A(p,w);w=D[y-4],p=D[y-4+1];var h=H(w,p),d=W(p,w),b=D[y-14],l=D[y-14+1],o=D[y-32],u=D[y-32+1],n=c+l|0,s=f+b+E(n,c)|0;n=n+d|0,s=s+h+E(n,d)|0,n=n+u|0,s=s+o+E(n,u)|0,D[y]=s,D[y+1]=n}for(var t=0;t<160;t+=2){s=D[t],n=D[t+1];var m=I(C,L,R),a=I(q,j,k),e=O(C,q),r=O(q,C),i=J(z,_),$0=J(_,z),Q0=V[t],Y0=V[t+1],Z0=K(z,M,S),G0=K(_,N,x),V0=B+$0|0,U0=v+i+E(V0,B)|0;V0=V0+G0|0,U0=U0+Z0+E(V0,G0)|0,V0=V0+Y0|0,U0=U0+Q0+E(V0,Y0)|0,V0=V0+n|0,U0=U0+s+E(V0,n)|0;var X0=r+a|0,K0=e+m+E(X0,r)|0;v=S,B=x,S=M,x=N,M=z,N=_,_=g+V0|0,z=P+U0+E(_,g)|0,P=R,g=k,R=L,k=j,L=C,j=q,q=V0+X0|0,C=U0+K0+E(q,V0)|0}this._al=this._al+q|0,this._bl=this._bl+j|0,this._cl=this._cl+k|0,this._dl=this._dl+g|0,this._el=this._el+_|0,this._fl=this._fl+N|0,this._gl=this._gl+x|0,this._hl=this._hl+B|0,this._ah=this._ah+C+E(this._al,q)|0,this._bh=this._bh+L+E(this._bl,j)|0,this._ch=this._ch+R+E(this._cl,k)|0,this._dh=this._dh+P+E(this._dl,g)|0,this._eh=this._eh+z+E(this._el,_)|0,this._fh=this._fh+M+E(this._fl,N)|0,this._gh=this._gh+S+E(this._gl,x)|0,this._hh=this._hh+v+E(this._hl,B)|0},X.prototype._hash=function(){var T=G.allocUnsafe(64);function D(C,L,R){T.writeInt32BE(C,R),T.writeInt32BE(L,R+4)}return D(this._ah,this._al,0),D(this._bh,this._bl,8),D(this._ch,this._cl,16),D(this._dh,this._dl,24),D(this._eh,this._el,32),D(this._fh,this._fl,40),D(this._gh,this._gl,48),D(this._hh,this._hl,56),T},Q.exports=X}}),d$=q$({"node_modules/sha.js/sha384.js"($,Q){var Y=_$(),Z=h$(),G=y$(),V=k$().Buffer,U=new Array(160);function X(){this.init(),this._w=U,G.call(this,128,112)}Y(X,Z),X.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},X.prototype._hash=function(){var K=V.allocUnsafe(48);function I(O,J,F){K.writeInt32BE(O,F),K.writeInt32BE(J,F+4)}return I(this._ah,this._al,0),I(this._bh,this._bl,8),I(this._ch,this._cl,16),I(this._dh,this._dl,24),I(this._eh,this._el,32),I(this._fh,this._fl,40),K},Q.exports=X}}),b$=q$({"node_modules/sha.js/index.js"(Y,Q){var Y=Q.exports=function(Z){Z=Z.toLowerCase();var G=Y[Z];if(!G)throw new Error(Z+" is not supported (we accept pull requests)");return new G};Y.sha=w$(),Y.sha1=p$(),Y.sha224=c$(),Y.sha256=f$(),Y.sha384=d$(),Y.sha512=h$()}}),l$=q$({"node_modules/cipher-base/index.js"($,Q){var Y=k$().Buffer,Z=_$();function G(V){A$.Transform.call(this),this.hashMode=typeof V=="string",this.hashMode?this[V]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}Z(G,A$.Transform),G.prototype.update=function(V,U,X){typeof V=="string"&&(V=Y.from(V,U));var K=this._update(V);return this.hashMode?this:(X&&(K=this._toString(K,X)),K)},G.prototype.setAutoPadding=function(){},G.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},G.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},G.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},G.prototype._transform=function(V,U,X){var K;try{this.hashMode?this._update(V):this.push(this._update(V))}catch(I){K=I}finally{X(K)}},G.prototype._flush=function(V){var U;try{this.push(this.__final())}catch(X){U=X}V(U)},G.prototype._finalOrDigest=function(V){var U=this.__final()||Y.alloc(0);return V&&(U=this._toString(U,V,!0)),U},G.prototype._toString=function(V,U,X){if(this._decoder||(this._decoder=new z$(U),this._encoding=U),this._encoding!==U)throw new Error("can't switch encodings");var K=this._decoder.write(V);return X&&(K+=this._decoder.end()),K},Q.exports=G}}),o$=q$({"node_modules/create-hash/browser.js"($,Q){const Y=function V(U,X){this._options=X,this._hasher=new sY(U,X),this._finalized=!1};Y.prototype=Object.create(A$.Transform.prototype),Y.prototype.update=function V(U,X){return this._checkFinalized(),this._hasher.update(U,X),this},Y.prototype.digest=function V(U,X){return this._checkFinalized(),this._finalized=!0,this._hasher.digest(U,X)},Y.prototype._checkFinalized=function V(){if(this._finalized){var U=new Error("Digest already called");throw U.code="ERR_CRYPTO_HASH_FINALIZED",U}},Y.prototype.copy=function V(){const U=Object.create(Y.prototype);return U._options=this._options,U._hasher=this._hasher.copy(),U._finalized=this._finalized,U};const Z={__proto__:A$.Transform.prototype,...Y.prototype,_transform(V,U,X){this.update(V,U),X&&X()},_flush(V){this.push(this.digest()),V()}},G=["_events","_eventsCount","_final","_maxListeners","_maxListeners","_read","_undestroy","_writableState","_write","_writev","addListener","asIndexedPairs","closed","compose","constructor","cork","destroy","destroyed","drop","emit","end","errored","eventNames","every","filter","find","flatMap","forEach","getMaxListeners","hasOwnProperty","isPaused","isPrototypeOf","iterator","listenerCount","listeners","map","off","on","once","pause","pipe","prependListener","prependOnceListener","propertyIsEnumerable","push","rawListeners","read","readable","readableAborted","readableBuffer","readableDidRead","readableEncoding","readableEnded","readableFlowing","readableHighWaterMark","readableLength","readableObjectMode","reduce","removeAllListeners","removeListener","resume","setDefaultEncoding","setEncoding","setMaxListeners","some","take","toArray","toLocaleString","toString","uncork","unpipe","unshift","valueOf","wrap","writable","writableBuffer","writableCorked","writableEnded","writableFinished","writableHighWaterMark","writableLength","writableNeedDrain","writableObjectMode","write"];for(let V of G)Object.defineProperty(Y.prototype,V,{get(){return Object.setPrototypeOf(this,Z),A$.Transform.call(this,this._options),this[V]},enumerable:!1,configurable:!0});Q.exports=function V(U){return new Y(U)},Q.exports.createHash=Q.exports,Q.exports.Hash=Y}}),u$=q$({"node_modules/create-hmac/legacy.js"($,Q){var Y=_$(),Z=k$().Buffer,G=l$(),V=Z.alloc(128),U=64;function X(K,I){G.call(this,"digest"),typeof I=="string"&&(I=Z.from(I)),this._alg=K,this._key=I,I.length>U?I=K(I):I.lengthA){var H=J==="rmd160"?new X:K(J);F=H.update(F).digest()}else F.lengthY||G!==G)throw new TypeError("Bad key length")}}}),e$=q$({"node_modules/pbkdf2/lib/default-encoding.js"($,Q){var Y;global.process&&global.process.browser?Y="utf-8":global.process&&global.process.version?(Z=parseInt(process.version.split(".")[0].slice(1),10),Y=Z>=6?"utf-8":"binary"):Y="utf-8";var Z;Q.exports=Y}}),r$=q$({"node_modules/pbkdf2/lib/to-buffer.js"($,Q){var Y=k$().Buffer;Q.exports=function(Z,G,V){if(Y.isBuffer(Z))return Z;if(typeof Z=="string")return Y.from(Z,G);if(ArrayBuffer.isView(Z))return Y.from(Z.buffer);throw new TypeError(V+" must be a string, a Buffer, a typed array or a DataView")}}}),i$=q$({"node_modules/pbkdf2/lib/sync-browser.js"($,Q){var Y=n$(),Z=B$(),G=b$(),V=k$().Buffer,U=a$(),X=e$(),K=r$(),I=V.alloc(128),O={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function J(H,W,E){var T=F(H),D=H==="sha512"||H==="sha384"?128:64;W.length>D?W=T(W):W.length>>0},$.writeUInt32BE=function(G,V,U){G[0+U]=V>>>24,G[1+U]=V>>>16&255,G[2+U]=V>>>8&255,G[3+U]=V&255},$.ip=function(G,V,U,X){for(var K=0,I=0,O=6;O>=0;O-=2){for(var J=0;J<=24;J+=8)K<<=1,K|=V>>>J+O&1;for(var J=0;J<=24;J+=8)K<<=1,K|=G>>>J+O&1}for(var O=6;O>=0;O-=2){for(var J=1;J<=25;J+=8)I<<=1,I|=V>>>J+O&1;for(var J=1;J<=25;J+=8)I<<=1,I|=G>>>J+O&1}U[X+0]=K>>>0,U[X+1]=I>>>0},$.rip=function(G,V,U,X){for(var K=0,I=0,O=0;O<4;O++)for(var J=24;J>=0;J-=8)K<<=1,K|=V>>>J+O&1,K<<=1,K|=G>>>J+O&1;for(var O=4;O<8;O++)for(var J=24;J>=0;J-=8)I<<=1,I|=V>>>J+O&1,I<<=1,I|=G>>>J+O&1;U[X+0]=K>>>0,U[X+1]=I>>>0},$.pc1=function(G,V,U,X){for(var K=0,I=0,O=7;O>=5;O--){for(var J=0;J<=24;J+=8)K<<=1,K|=V>>J+O&1;for(var J=0;J<=24;J+=8)K<<=1,K|=G>>J+O&1}for(var J=0;J<=24;J+=8)K<<=1,K|=V>>J+O&1;for(var O=1;O<=3;O++){for(var J=0;J<=24;J+=8)I<<=1,I|=V>>J+O&1;for(var J=0;J<=24;J+=8)I<<=1,I|=G>>J+O&1}for(var J=0;J<=24;J+=8)I<<=1,I|=G>>J+O&1;U[X+0]=K>>>0,U[X+1]=I>>>0},$.r28shl=function(G,V){return G<>>28-V};var Q=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];$.pc2=function(G,V,U,X){for(var K=0,I=0,O=Q.length>>>1,J=0;J>>Q[J]&1;for(var J=O;J>>Q[J]&1;U[X+0]=K>>>0,U[X+1]=I>>>0},$.expand=function(G,V,U){var X=0,K=0;X=(G&1)<<5|G>>>27;for(var I=23;I>=15;I-=4)X<<=6,X|=G>>>I&63;for(var I=11;I>=3;I-=4)K|=G>>>I&63,K<<=6;K|=(G&31)<<1|G>>>31,V[U+0]=X>>>0,V[U+1]=K>>>0};var Y=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];$.substitute=function(G,V){for(var U=0,X=0;X<4;X++){var K=G>>>18-X*6&63,I=Y[X*64+K];U<<=4,U|=I}for(var X=0;X<4;X++){var K=V>>>18-X*6&63,I=Y[256+X*64+K];U<<=4,U|=I}return U>>>0};var Z=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];$.permute=function(G){for(var V=0,U=0;U>>Z[U]&1;return V>>>0},$.padSplit=function(G,V,U){for(var X=G.toString(2);X.length0;X--)V+=this._buffer(G,V),U+=this._flushBuffer(K,U);return V+=this._buffer(G,V),K},Z.prototype.final=function(G){var V;G&&(V=this.update(G));var U;return this.type==="encrypt"?U=this._finalEncrypt():U=this._finalDecrypt(),V?V.concat(U):U},Z.prototype._pad=function(G,V){if(V===0)return!1;for(;V>>1];J=G.r28shl(J,H),F=G.r28shl(F,H),G.pc2(J,F,I.keys,A)}},X.prototype._update=function(I,O,J,F){var A=this._desState,H=G.readUInt32BE(I,O),W=G.readUInt32BE(I,O+4);G.ip(H,W,A.tmp,0),H=A.tmp[0],W=A.tmp[1],this.type==="encrypt"?this._encrypt(A,H,W,A.tmp,0):this._decrypt(A,H,W,A.tmp,0),H=A.tmp[0],W=A.tmp[1],G.writeUInt32BE(J,H,F),G.writeUInt32BE(J,W,F+4)},X.prototype._pad=function(I,O){for(var J=I.length-O,F=O;F>>0,H=R}G.rip(W,H,F,A)},X.prototype._decrypt=function(I,O,J,F,A){for(var H=J,W=O,E=I.keys.length-2;E>=0;E-=2){var T=I.keys[E],D=I.keys[E+1];G.expand(H,I.tmp,0),T^=I.tmp[0],D^=I.tmp[1];var C=G.substitute(T,D),L=G.permute(C),R=H;H=(W^L)>>>0,W=R}G.rip(H,W,F,A)}}}),UQ=q$({"node_modules/des.js/lib/des/cbc.js"($){var Q=ZQ(),Y=_$(),Z={};function G(U){Q.equal(U.length,8,"Invalid IV length"),this.iv=new Array(8);for(var X=0;X>K%8,G._prev=Z(G._prev,U?J:F);return O}function Z(G,V){var U=G.length,X=-1,K=Q.allocUnsafe(G.length);for(G=Q.concat([G,Q.from([V])]);++X>7;return K}$.encrypt=function(G,V,U){for(var X=V.length,K=Q.allocUnsafe(X),I=-1;++I>>24]^W[C>>>16&255]^E[L>>>8&255]^T[R&255]^O[v++],z=H[C>>>24]^W[L>>>16&255]^E[R>>>8&255]^T[D&255]^O[v++],M=H[L>>>24]^W[R>>>16&255]^E[D>>>8&255]^T[C&255]^O[v++],S=H[R>>>24]^W[D>>>16&255]^E[C>>>8&255]^T[L&255]^O[v++],D=P,C=z,L=M,R=S;return P=(F[D>>>24]<<24|F[C>>>16&255]<<16|F[L>>>8&255]<<8|F[R&255])^O[v++],z=(F[C>>>24]<<24|F[L>>>16&255]<<16|F[R>>>8&255]<<8|F[D&255])^O[v++],M=(F[L>>>24]<<24|F[R>>>16&255]<<16|F[D>>>8&255]<<8|F[C&255])^O[v++],S=(F[R>>>24]<<24|F[D>>>16&255]<<16|F[C>>>8&255]<<8|F[L&255])^O[v++],P=P>>>0,z=z>>>0,M=M>>>0,S=S>>>0,[P,z,M,S]}var U=[0,1,2,4,8,16,32,64,128,27,54],X=function(){for(var I=new Array(256),O=0;O<256;O++)O<128?I[O]=O<<1:I[O]=O<<1^283;for(var J=[],F=[],A=[[],[],[],[]],H=[[],[],[],[]],W=0,E=0,T=0;T<256;++T){var D=E^E<<1^E<<2^E<<3^E<<4;D=D>>>8^D&255^99,J[W]=D,F[D]=W;var C=I[W],L=I[C],R=I[L],P=I[D]*257^D*16843008;A[0][W]=P<<24|P>>>8,A[1][W]=P<<16|P>>>16,A[2][W]=P<<8|P>>>24,A[3][W]=P,P=R*16843009^L*65537^C*257^W*16843008,H[0][D]=P<<24|P>>>8,H[1][D]=P<<16|P>>>16,H[2][D]=P<<8|P>>>24,H[3][D]=P,W===0?W=E=1:(W=C^I[I[I[R^C]]],E^=I[I[E]])}return{SBOX:J,INV_SBOX:F,SUB_MIX:A,INV_SUB_MIX:H}}();function K(I){this._key=Z(I),this._reset()}K.blockSize=16,K.keySize=32,K.prototype.blockSize=K.blockSize,K.prototype.keySize=K.keySize,K.prototype._reset=function(){for(var I=this._key,O=I.length,J=O+6,F=(J+1)*4,A=[],H=0;H>>24,W=X.SBOX[W>>>24]<<24|X.SBOX[W>>>16&255]<<16|X.SBOX[W>>>8&255]<<8|X.SBOX[W&255],W^=U[H/O|0]<<24):O>6&&H%O===4&&(W=X.SBOX[W>>>24]<<24|X.SBOX[W>>>16&255]<<16|X.SBOX[W>>>8&255]<<8|X.SBOX[W&255]),A[H]=A[H-O]^W}for(var E=[],T=0;T>>24]]^X.INV_SUB_MIX[1][X.SBOX[C>>>16&255]]^X.INV_SUB_MIX[2][X.SBOX[C>>>8&255]]^X.INV_SUB_MIX[3][X.SBOX[C&255]]}this._nRounds=J,this._keySchedule=A,this._invKeySchedule=E},K.prototype.encryptBlockRaw=function(I){return I=Z(I),V(I,this._keySchedule,X.SUB_MIX,X.SBOX,this._nRounds)},K.prototype.encryptBlock=function(I){var O=this.encryptBlockRaw(I),J=Y.allocUnsafe(16);return J.writeUInt32BE(O[0],0),J.writeUInt32BE(O[1],4),J.writeUInt32BE(O[2],8),J.writeUInt32BE(O[3],12),J},K.prototype.decryptBlock=function(I){I=Z(I);var O=I[1];I[1]=I[3],I[3]=O;var J=V(I,this._invKeySchedule,X.INV_SUB_MIX,X.INV_SBOX,this._nRounds),F=Y.allocUnsafe(16);return F.writeUInt32BE(J[0],0),F.writeUInt32BE(J[3],4),F.writeUInt32BE(J[2],8),F.writeUInt32BE(J[1],12),F},K.prototype.scrub=function(){G(this._keySchedule),G(this._invKeySchedule),G(this._key)},Q.exports.AES=K}}),RQ=q$({"node_modules/browserify-aes/ghash.js"($,Q){var Y=k$().Buffer,Z=Y.alloc(16,0);function G(X){return[X.readUInt32BE(0),X.readUInt32BE(4),X.readUInt32BE(8),X.readUInt32BE(12)]}function V(X){var K=Y.allocUnsafe(16);return K.writeUInt32BE(X[0]>>>0,0),K.writeUInt32BE(X[1]>>>0,4),K.writeUInt32BE(X[2]>>>0,8),K.writeUInt32BE(X[3]>>>0,12),K}function U(X){this.h=X,this.state=Y.alloc(16,0),this.cache=Y.allocUnsafe(0)}U.prototype.ghash=function(X){for(var K=-1;++K0;I--)X[I]=X[I]>>>1|(X[I-1]&1)<<31;X[0]=X[0]>>>1,J&&(X[0]=X[0]^225<<24)}this.state=V(K)},U.prototype.update=function(X){this.cache=Y.concat([this.cache,X]);for(var K;this.cache.length>=16;)K=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(K)},U.prototype.final=function(X,K){return this.cache.length&&this.ghash(Y.concat([this.cache,Z],16)),this.ghash(V([0,X,0,K])),this.state},Q.exports=U}}),PQ=q$({"node_modules/browserify-aes/authCipher.js"($,Q){var Y=LQ(),Z=k$().Buffer,G=l$(),V=_$(),U=RQ(),X=JQ(),K=TQ();function I(F,A){var H=0;F.length!==A.length&&H++;for(var W=Math.min(F.length,A.length),E=0;E0||K>0;){var A=new Z;A.update(F),A.update(V),U&&A.update(U),F=A.digest();var H=0;if(I>0){var W=O.length-I;H=Math.min(I,F.length),F.copy(O,W,0,H),I-=H}if(H0){var E=J.length-K,T=Math.min(K,F.length-H);F.copy(J,E,H,H+T),K-=T}}return F.fill(0),{key:O,iv:J}}Q.exports=G}}),SQ=q$({"node_modules/browserify-aes/encrypter.js"($){var Q=CQ(),Y=PQ(),Z=k$().Buffer,G=zQ(),V=l$(),U=LQ(),X=MQ(),K=_$();function I(H,W,E){V.call(this),this._cache=new J,this._cipher=new U.AES(W),this._prev=Z.from(E),this._mode=H,this._autopadding=!0}K(I,V),I.prototype._update=function(H){this._cache.add(H);for(var W,E,T=[];W=this._cache.get();)E=this._mode.encrypt(this,W),T.push(E);return Z.concat(T)};var O=Z.alloc(16,16);I.prototype._final=function(){var H=this._cache.flush();if(this._autopadding)return H=this._mode.encrypt(this,H),this._cipher.scrub(),H;if(!H.equals(O))throw this._cipher.scrub(),new Error("data not multiple of block length")},I.prototype.setAutoPadding=function(H){return this._autopadding=!!H,this};function J(){this.cache=Z.allocUnsafe(0)}J.prototype.add=function(H){this.cache=Z.concat([this.cache,H])},J.prototype.get=function(){if(this.cache.length>15){var H=this.cache.slice(0,16);return this.cache=this.cache.slice(16),H}return null},J.prototype.flush=function(){for(var H=16-this.cache.length,W=Z.allocUnsafe(H),E=-1;++E16)return W=this.cache.slice(0,16),this.cache=this.cache.slice(16),W}else if(this.cache.length>=16)return W=this.cache.slice(0,16),this.cache=this.cache.slice(16),W;return null},O.prototype.flush=function(){if(this.cache.length)return this.cache};function J(H){var W=H[15];if(W<1||W>16)throw new Error("unable to decrypt data");for(var E=-1;++E0?j:k},U.min=function(j,k){return j.cmp(k)<0?j:k},U.prototype._init=function(j,k,g){if(typeof j=="number")return this._initNumber(j,k,g);if(typeof j=="object")return this._initArray(j,k,g);k==="hex"&&(k=16),G(k===(k|0)&&k>=2&&k<=36),j=j.toString().replace(/\s+/g,"");var _=0;j[0]==="-"&&(_++,this.negative=1),_=0;_-=3)x=j[_]|j[_-1]<<8|j[_-2]<<16,this.words[N]|=x<>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);else if(g==="le")for(_=0,N=0;_>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);return this.strip()};function K(j,k){var g=j.charCodeAt(k);return g>=65&&g<=70?g-55:g>=97&&g<=102?g-87:g-48&15}function I(j,k,g){var _=K(j,g);return g-1>=k&&(_|=K(j,g-1)<<4),_}U.prototype._parseHex=function(j,k,g){this.length=Math.ceil((j.length-k)/6),this.words=new Array(this.length);for(var _=0;_=k;_-=2)B=I(j,k,_)<=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8;else{var y=j.length-k;for(_=y%2===0?k+1:k;_=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8}this.strip()};function O(j,k,g,_){for(var N=0,x=Math.min(j.length,g),B=k;B=49?N+=y-49+10:y>=17?N+=y-17+10:N+=y}return N}U.prototype._parseBase=function(j,k,g){this.words=[0],this.length=1;for(var _=0,N=1;N<=67108863;N*=k)_++;_--,N=N/k|0;for(var x=j.length-g,B=x%_,y=Math.min(x,x-B)+g,w=0,p=g;p1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},U.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],F=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],A=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(j,k){j=j||10,k=k|0||1;var g;if(j===16||j==="hex"){g="";for(var _=0,N=0,x=0;x>>24-_&16777215,N!==0||x!==this.length-1?g=J[6-y.length]+y+g:g=y+g,_+=2,_>=26&&(_-=26,x--)}for(N!==0&&(g=N.toString(16)+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(j===(j|0)&&j>=2&&j<=36){var w=F[j],p=A[j];g="";var f=this.clone();for(f.negative=0;!f.isZero();){var c=f.modn(p).toString(j);f=f.idivn(p),f.isZero()?g=c+g:g=J[w-c.length]+c+g}for(this.isZero()&&(g="0"+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var j=this.words[0];return this.length===2?j+=this.words[1]*67108864:this.length===3&&this.words[2]===1?j+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-j:j},U.prototype.toJSON=function(){return this.toString(16)},U.prototype.toBuffer=function(j,k){return G(typeof X<"u"),this.toArrayLike(X,j,k)},U.prototype.toArray=function(j,k){return this.toArrayLike(Array,j,k)},U.prototype.toArrayLike=function(j,k,g){var _=this.byteLength(),N=g||Math.max(1,_);G(_<=N,"byte array longer than desired length"),G(N>0,"Requested array length <= 0"),this.strip();var x=k==="le",B=new j(N),y,w,p=this.clone();if(x){for(w=0;!p.isZero();w++)y=p.andln(255),p.iushrn(8),B[w]=y;for(;w=4096&&(g+=13,k>>>=13),k>=64&&(g+=7,k>>>=7),k>=8&&(g+=4,k>>>=4),k>=2&&(g+=2,k>>>=2),g+k},U.prototype._zeroBits=function(j){if(j===0)return 26;var k=j,g=0;return(k&8191)===0&&(g+=13,k>>>=13),(k&127)===0&&(g+=7,k>>>=7),(k&15)===0&&(g+=4,k>>>=4),(k&3)===0&&(g+=2,k>>>=2),(k&1)===0&&g++,g},U.prototype.bitLength=function(){var j=this.words[this.length-1],k=this._countBits(j);return(this.length-1)*26+k};function H(j){for(var k=new Array(j.bitLength()),g=0;g>>N}return k}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var j=0,k=0;kj.length?this.clone().ior(j):j.clone().ior(this)},U.prototype.uor=function(j){return this.length>j.length?this.clone().iuor(j):j.clone().iuor(this)},U.prototype.iuand=function(j){var k;this.length>j.length?k=j:k=this;for(var g=0;gj.length?this.clone().iand(j):j.clone().iand(this)},U.prototype.uand=function(j){return this.length>j.length?this.clone().iuand(j):j.clone().iuand(this)},U.prototype.iuxor=function(j){var k,g;this.length>j.length?(k=this,g=j):(k=j,g=this);for(var _=0;_j.length?this.clone().ixor(j):j.clone().ixor(this)},U.prototype.uxor=function(j){return this.length>j.length?this.clone().iuxor(j):j.clone().iuxor(this)},U.prototype.inotn=function(j){G(typeof j=="number"&&j>=0);var k=Math.ceil(j/26)|0,g=j%26;this._expand(k),g>0&&k--;for(var _=0;_0&&(this.words[_]=~this.words[_]&67108863>>26-g),this.strip()},U.prototype.notn=function(j){return this.clone().inotn(j)},U.prototype.setn=function(j,k){G(typeof j=="number"&&j>=0);var g=j/26|0,_=j%26;return this._expand(g+1),k?this.words[g]=this.words[g]|1<<_:this.words[g]=this.words[g]&~(1<<_),this.strip()},U.prototype.iadd=function(j){var k;if(this.negative!==0&&j.negative===0)return this.negative=0,k=this.isub(j),this.negative^=1,this._normSign();if(this.negative===0&&j.negative!==0)return j.negative=0,k=this.isub(j),j.negative=1,k._normSign();var g,_;this.length>j.length?(g=this,_=j):(g=j,_=this);for(var N=0,x=0;x<_.length;x++)k=(g.words[x]|0)+(_.words[x]|0)+N,this.words[x]=k&67108863,N=k>>>26;for(;N!==0&&x>>26;if(this.length=g.length,N!==0)this.words[this.length]=N,this.length++;else if(g!==this)for(;xj.length?this.clone().iadd(j):j.clone().iadd(this)},U.prototype.isub=function(j){if(j.negative!==0){j.negative=0;var k=this.iadd(j);return j.negative=1,k._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(j),this.negative=1,this._normSign();var g=this.cmp(j);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var _,N;g>0?(_=this,N=j):(_=j,N=this);for(var x=0,B=0;B>26,this.words[B]=k&67108863;for(;x!==0&&B<_.length;B++)k=(_.words[B]|0)+x,x=k>>26,this.words[B]=k&67108863;if(x===0&&B<_.length&&_!==this)for(;B<_.length;B++)this.words[B]=_.words[B];return this.length=Math.max(this.length,B),_!==this&&(this.negative=1),this.strip()},U.prototype.sub=function(j){return this.clone().isub(j)};function W(j,k,g){g.negative=k.negative^j.negative;var _=j.length+k.length|0;g.length=_,_=_-1|0;var N=j.words[0]|0,x=k.words[0]|0,B=N*x,y=B&67108863,w=B/67108864|0;g.words[0]=y;for(var p=1;p<_;p++){for(var f=w>>>26,c=w&67108863,h=Math.min(p,k.length-1),d=Math.max(0,p-j.length+1);d<=h;d++){var b=p-d|0;N=j.words[b]|0,x=k.words[d]|0,B=N*x+c,f+=B/67108864|0,c=B&67108863}g.words[p]=c|0,w=f|0}return w!==0?g.words[p]=w|0:g.length--,g.strip()}var E=function(j,k,g){var _=j.words,N=k.words,x=g.words,B=0,y,w,p,f=_[0]|0,c=f&8191,h=f>>>13,d=_[1]|0,b=d&8191,l=d>>>13,o=_[2]|0,u=o&8191,n=o>>>13,s=_[3]|0,t=s&8191,m=s>>>13,a=_[4]|0,e=a&8191,r=a>>>13,i=_[5]|0,$0=i&8191,Q0=i>>>13,Y0=_[6]|0,Z0=Y0&8191,G0=Y0>>>13,V0=_[7]|0,U0=V0&8191,X0=V0>>>13,K0=_[8]|0,I0=K0&8191,O0=K0>>>13,J0=_[9]|0,F0=J0&8191,A0=J0>>>13,H0=N[0]|0,W0=H0&8191,E0=H0>>>13,T0=N[1]|0,D0=T0&8191,C0=T0>>>13,L0=N[2]|0,R0=L0&8191,P0=L0>>>13,z0=N[3]|0,M0=z0&8191,S0=z0>>>13,v0=N[4]|0,q0=v0&8191,j0=v0>>>13,k0=N[5]|0,g0=k0&8191,_0=k0>>>13,N0=N[6]|0,x0=N0&8191,B0=N0>>>13,y0=N[7]|0,w0=y0&8191,p0=y0>>>13,f0=N[8]|0,c0=f0&8191,h0=f0>>>13,d0=N[9]|0,b0=d0&8191,l0=d0>>>13;g.negative=j.negative^k.negative,g.length=19,y=Math.imul(c,W0),w=Math.imul(c,E0),w=w+Math.imul(h,W0)|0,p=Math.imul(h,E0);var o0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(o0>>>26)|0,o0&=67108863,y=Math.imul(b,W0),w=Math.imul(b,E0),w=w+Math.imul(l,W0)|0,p=Math.imul(l,E0),y=y+Math.imul(c,D0)|0,w=w+Math.imul(c,C0)|0,w=w+Math.imul(h,D0)|0,p=p+Math.imul(h,C0)|0;var u0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(u0>>>26)|0,u0&=67108863,y=Math.imul(u,W0),w=Math.imul(u,E0),w=w+Math.imul(n,W0)|0,p=Math.imul(n,E0),y=y+Math.imul(b,D0)|0,w=w+Math.imul(b,C0)|0,w=w+Math.imul(l,D0)|0,p=p+Math.imul(l,C0)|0,y=y+Math.imul(c,R0)|0,w=w+Math.imul(c,P0)|0,w=w+Math.imul(h,R0)|0,p=p+Math.imul(h,P0)|0;var n0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(n0>>>26)|0,n0&=67108863,y=Math.imul(t,W0),w=Math.imul(t,E0),w=w+Math.imul(m,W0)|0,p=Math.imul(m,E0),y=y+Math.imul(u,D0)|0,w=w+Math.imul(u,C0)|0,w=w+Math.imul(n,D0)|0,p=p+Math.imul(n,C0)|0,y=y+Math.imul(b,R0)|0,w=w+Math.imul(b,P0)|0,w=w+Math.imul(l,R0)|0,p=p+Math.imul(l,P0)|0,y=y+Math.imul(c,M0)|0,w=w+Math.imul(c,S0)|0,w=w+Math.imul(h,M0)|0,p=p+Math.imul(h,S0)|0;var s0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(s0>>>26)|0,s0&=67108863,y=Math.imul(e,W0),w=Math.imul(e,E0),w=w+Math.imul(r,W0)|0,p=Math.imul(r,E0),y=y+Math.imul(t,D0)|0,w=w+Math.imul(t,C0)|0,w=w+Math.imul(m,D0)|0,p=p+Math.imul(m,C0)|0,y=y+Math.imul(u,R0)|0,w=w+Math.imul(u,P0)|0,w=w+Math.imul(n,R0)|0,p=p+Math.imul(n,P0)|0,y=y+Math.imul(b,M0)|0,w=w+Math.imul(b,S0)|0,w=w+Math.imul(l,M0)|0,p=p+Math.imul(l,S0)|0,y=y+Math.imul(c,q0)|0,w=w+Math.imul(c,j0)|0,w=w+Math.imul(h,q0)|0,p=p+Math.imul(h,j0)|0;var t0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(t0>>>26)|0,t0&=67108863,y=Math.imul($0,W0),w=Math.imul($0,E0),w=w+Math.imul(Q0,W0)|0,p=Math.imul(Q0,E0),y=y+Math.imul(e,D0)|0,w=w+Math.imul(e,C0)|0,w=w+Math.imul(r,D0)|0,p=p+Math.imul(r,C0)|0,y=y+Math.imul(t,R0)|0,w=w+Math.imul(t,P0)|0,w=w+Math.imul(m,R0)|0,p=p+Math.imul(m,P0)|0,y=y+Math.imul(u,M0)|0,w=w+Math.imul(u,S0)|0,w=w+Math.imul(n,M0)|0,p=p+Math.imul(n,S0)|0,y=y+Math.imul(b,q0)|0,w=w+Math.imul(b,j0)|0,w=w+Math.imul(l,q0)|0,p=p+Math.imul(l,j0)|0,y=y+Math.imul(c,g0)|0,w=w+Math.imul(c,_0)|0,w=w+Math.imul(h,g0)|0,p=p+Math.imul(h,_0)|0;var m0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(m0>>>26)|0,m0&=67108863,y=Math.imul(Z0,W0),w=Math.imul(Z0,E0),w=w+Math.imul(G0,W0)|0,p=Math.imul(G0,E0),y=y+Math.imul($0,D0)|0,w=w+Math.imul($0,C0)|0,w=w+Math.imul(Q0,D0)|0,p=p+Math.imul(Q0,C0)|0,y=y+Math.imul(e,R0)|0,w=w+Math.imul(e,P0)|0,w=w+Math.imul(r,R0)|0,p=p+Math.imul(r,P0)|0,y=y+Math.imul(t,M0)|0,w=w+Math.imul(t,S0)|0,w=w+Math.imul(m,M0)|0,p=p+Math.imul(m,S0)|0,y=y+Math.imul(u,q0)|0,w=w+Math.imul(u,j0)|0,w=w+Math.imul(n,q0)|0,p=p+Math.imul(n,j0)|0,y=y+Math.imul(b,g0)|0,w=w+Math.imul(b,_0)|0,w=w+Math.imul(l,g0)|0,p=p+Math.imul(l,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,B0)|0,w=w+Math.imul(h,x0)|0,p=p+Math.imul(h,B0)|0;var a0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(a0>>>26)|0,a0&=67108863,y=Math.imul(U0,W0),w=Math.imul(U0,E0),w=w+Math.imul(X0,W0)|0,p=Math.imul(X0,E0),y=y+Math.imul(Z0,D0)|0,w=w+Math.imul(Z0,C0)|0,w=w+Math.imul(G0,D0)|0,p=p+Math.imul(G0,C0)|0,y=y+Math.imul($0,R0)|0,w=w+Math.imul($0,P0)|0,w=w+Math.imul(Q0,R0)|0,p=p+Math.imul(Q0,P0)|0,y=y+Math.imul(e,M0)|0,w=w+Math.imul(e,S0)|0,w=w+Math.imul(r,M0)|0,p=p+Math.imul(r,S0)|0,y=y+Math.imul(t,q0)|0,w=w+Math.imul(t,j0)|0,w=w+Math.imul(m,q0)|0,p=p+Math.imul(m,j0)|0,y=y+Math.imul(u,g0)|0,w=w+Math.imul(u,_0)|0,w=w+Math.imul(n,g0)|0,p=p+Math.imul(n,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,B0)|0,w=w+Math.imul(l,x0)|0,p=p+Math.imul(l,B0)|0,y=y+Math.imul(c,w0)|0,w=w+Math.imul(c,p0)|0,w=w+Math.imul(h,w0)|0,p=p+Math.imul(h,p0)|0;var e0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(e0>>>26)|0,e0&=67108863,y=Math.imul(I0,W0),w=Math.imul(I0,E0),w=w+Math.imul(O0,W0)|0,p=Math.imul(O0,E0),y=y+Math.imul(U0,D0)|0,w=w+Math.imul(U0,C0)|0,w=w+Math.imul(X0,D0)|0,p=p+Math.imul(X0,C0)|0,y=y+Math.imul(Z0,R0)|0,w=w+Math.imul(Z0,P0)|0,w=w+Math.imul(G0,R0)|0,p=p+Math.imul(G0,P0)|0,y=y+Math.imul($0,M0)|0,w=w+Math.imul($0,S0)|0,w=w+Math.imul(Q0,M0)|0,p=p+Math.imul(Q0,S0)|0,y=y+Math.imul(e,q0)|0,w=w+Math.imul(e,j0)|0,w=w+Math.imul(r,q0)|0,p=p+Math.imul(r,j0)|0,y=y+Math.imul(t,g0)|0,w=w+Math.imul(t,_0)|0,w=w+Math.imul(m,g0)|0,p=p+Math.imul(m,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,B0)|0,w=w+Math.imul(n,x0)|0,p=p+Math.imul(n,B0)|0,y=y+Math.imul(b,w0)|0,w=w+Math.imul(b,p0)|0,w=w+Math.imul(l,w0)|0,p=p+Math.imul(l,p0)|0,y=y+Math.imul(c,c0)|0,w=w+Math.imul(c,h0)|0,w=w+Math.imul(h,c0)|0,p=p+Math.imul(h,h0)|0;var r0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(r0>>>26)|0,r0&=67108863,y=Math.imul(F0,W0),w=Math.imul(F0,E0),w=w+Math.imul(A0,W0)|0,p=Math.imul(A0,E0),y=y+Math.imul(I0,D0)|0,w=w+Math.imul(I0,C0)|0,w=w+Math.imul(O0,D0)|0,p=p+Math.imul(O0,C0)|0,y=y+Math.imul(U0,R0)|0,w=w+Math.imul(U0,P0)|0,w=w+Math.imul(X0,R0)|0,p=p+Math.imul(X0,P0)|0,y=y+Math.imul(Z0,M0)|0,w=w+Math.imul(Z0,S0)|0,w=w+Math.imul(G0,M0)|0,p=p+Math.imul(G0,S0)|0,y=y+Math.imul($0,q0)|0,w=w+Math.imul($0,j0)|0,w=w+Math.imul(Q0,q0)|0,p=p+Math.imul(Q0,j0)|0,y=y+Math.imul(e,g0)|0,w=w+Math.imul(e,_0)|0,w=w+Math.imul(r,g0)|0,p=p+Math.imul(r,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,B0)|0,w=w+Math.imul(m,x0)|0,p=p+Math.imul(m,B0)|0,y=y+Math.imul(u,w0)|0,w=w+Math.imul(u,p0)|0,w=w+Math.imul(n,w0)|0,p=p+Math.imul(n,p0)|0,y=y+Math.imul(b,c0)|0,w=w+Math.imul(b,h0)|0,w=w+Math.imul(l,c0)|0,p=p+Math.imul(l,h0)|0,y=y+Math.imul(c,b0)|0,w=w+Math.imul(c,l0)|0,w=w+Math.imul(h,b0)|0,p=p+Math.imul(h,l0)|0;var i0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(i0>>>26)|0,i0&=67108863,y=Math.imul(F0,D0),w=Math.imul(F0,C0),w=w+Math.imul(A0,D0)|0,p=Math.imul(A0,C0),y=y+Math.imul(I0,R0)|0,w=w+Math.imul(I0,P0)|0,w=w+Math.imul(O0,R0)|0,p=p+Math.imul(O0,P0)|0,y=y+Math.imul(U0,M0)|0,w=w+Math.imul(U0,S0)|0,w=w+Math.imul(X0,M0)|0,p=p+Math.imul(X0,S0)|0,y=y+Math.imul(Z0,q0)|0,w=w+Math.imul(Z0,j0)|0,w=w+Math.imul(G0,q0)|0,p=p+Math.imul(G0,j0)|0,y=y+Math.imul($0,g0)|0,w=w+Math.imul($0,_0)|0,w=w+Math.imul(Q0,g0)|0,p=p+Math.imul(Q0,_0)|0,y=y+Math.imul(e,x0)|0,w=w+Math.imul(e,B0)|0,w=w+Math.imul(r,x0)|0,p=p+Math.imul(r,B0)|0,y=y+Math.imul(t,w0)|0,w=w+Math.imul(t,p0)|0,w=w+Math.imul(m,w0)|0,p=p+Math.imul(m,p0)|0,y=y+Math.imul(u,c0)|0,w=w+Math.imul(u,h0)|0,w=w+Math.imul(n,c0)|0,p=p+Math.imul(n,h0)|0,y=y+Math.imul(b,b0)|0,w=w+Math.imul(b,l0)|0,w=w+Math.imul(l,b0)|0,p=p+Math.imul(l,l0)|0;var $$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+($$>>>26)|0,$$&=67108863,y=Math.imul(F0,R0),w=Math.imul(F0,P0),w=w+Math.imul(A0,R0)|0,p=Math.imul(A0,P0),y=y+Math.imul(I0,M0)|0,w=w+Math.imul(I0,S0)|0,w=w+Math.imul(O0,M0)|0,p=p+Math.imul(O0,S0)|0,y=y+Math.imul(U0,q0)|0,w=w+Math.imul(U0,j0)|0,w=w+Math.imul(X0,q0)|0,p=p+Math.imul(X0,j0)|0,y=y+Math.imul(Z0,g0)|0,w=w+Math.imul(Z0,_0)|0,w=w+Math.imul(G0,g0)|0,p=p+Math.imul(G0,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,B0)|0,w=w+Math.imul(Q0,x0)|0,p=p+Math.imul(Q0,B0)|0,y=y+Math.imul(e,w0)|0,w=w+Math.imul(e,p0)|0,w=w+Math.imul(r,w0)|0,p=p+Math.imul(r,p0)|0,y=y+Math.imul(t,c0)|0,w=w+Math.imul(t,h0)|0,w=w+Math.imul(m,c0)|0,p=p+Math.imul(m,h0)|0,y=y+Math.imul(u,b0)|0,w=w+Math.imul(u,l0)|0,w=w+Math.imul(n,b0)|0,p=p+Math.imul(n,l0)|0;var Q$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,y=Math.imul(F0,M0),w=Math.imul(F0,S0),w=w+Math.imul(A0,M0)|0,p=Math.imul(A0,S0),y=y+Math.imul(I0,q0)|0,w=w+Math.imul(I0,j0)|0,w=w+Math.imul(O0,q0)|0,p=p+Math.imul(O0,j0)|0,y=y+Math.imul(U0,g0)|0,w=w+Math.imul(U0,_0)|0,w=w+Math.imul(X0,g0)|0,p=p+Math.imul(X0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,B0)|0,w=w+Math.imul(G0,x0)|0,p=p+Math.imul(G0,B0)|0,y=y+Math.imul($0,w0)|0,w=w+Math.imul($0,p0)|0,w=w+Math.imul(Q0,w0)|0,p=p+Math.imul(Q0,p0)|0,y=y+Math.imul(e,c0)|0,w=w+Math.imul(e,h0)|0,w=w+Math.imul(r,c0)|0,p=p+Math.imul(r,h0)|0,y=y+Math.imul(t,b0)|0,w=w+Math.imul(t,l0)|0,w=w+Math.imul(m,b0)|0,p=p+Math.imul(m,l0)|0;var Y$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,y=Math.imul(F0,q0),w=Math.imul(F0,j0),w=w+Math.imul(A0,q0)|0,p=Math.imul(A0,j0),y=y+Math.imul(I0,g0)|0,w=w+Math.imul(I0,_0)|0,w=w+Math.imul(O0,g0)|0,p=p+Math.imul(O0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,B0)|0,w=w+Math.imul(X0,x0)|0,p=p+Math.imul(X0,B0)|0,y=y+Math.imul(Z0,w0)|0,w=w+Math.imul(Z0,p0)|0,w=w+Math.imul(G0,w0)|0,p=p+Math.imul(G0,p0)|0,y=y+Math.imul($0,c0)|0,w=w+Math.imul($0,h0)|0,w=w+Math.imul(Q0,c0)|0,p=p+Math.imul(Q0,h0)|0,y=y+Math.imul(e,b0)|0,w=w+Math.imul(e,l0)|0,w=w+Math.imul(r,b0)|0,p=p+Math.imul(r,l0)|0;var Z$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,y=Math.imul(F0,g0),w=Math.imul(F0,_0),w=w+Math.imul(A0,g0)|0,p=Math.imul(A0,_0),y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,B0)|0,w=w+Math.imul(O0,x0)|0,p=p+Math.imul(O0,B0)|0,y=y+Math.imul(U0,w0)|0,w=w+Math.imul(U0,p0)|0,w=w+Math.imul(X0,w0)|0,p=p+Math.imul(X0,p0)|0,y=y+Math.imul(Z0,c0)|0,w=w+Math.imul(Z0,h0)|0,w=w+Math.imul(G0,c0)|0,p=p+Math.imul(G0,h0)|0,y=y+Math.imul($0,b0)|0,w=w+Math.imul($0,l0)|0,w=w+Math.imul(Q0,b0)|0,p=p+Math.imul(Q0,l0)|0;var G$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(G$>>>26)|0,G$&=67108863,y=Math.imul(F0,x0),w=Math.imul(F0,B0),w=w+Math.imul(A0,x0)|0,p=Math.imul(A0,B0),y=y+Math.imul(I0,w0)|0,w=w+Math.imul(I0,p0)|0,w=w+Math.imul(O0,w0)|0,p=p+Math.imul(O0,p0)|0,y=y+Math.imul(U0,c0)|0,w=w+Math.imul(U0,h0)|0,w=w+Math.imul(X0,c0)|0,p=p+Math.imul(X0,h0)|0,y=y+Math.imul(Z0,b0)|0,w=w+Math.imul(Z0,l0)|0,w=w+Math.imul(G0,b0)|0,p=p+Math.imul(G0,l0)|0;var V$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(V$>>>26)|0,V$&=67108863,y=Math.imul(F0,w0),w=Math.imul(F0,p0),w=w+Math.imul(A0,w0)|0,p=Math.imul(A0,p0),y=y+Math.imul(I0,c0)|0,w=w+Math.imul(I0,h0)|0,w=w+Math.imul(O0,c0)|0,p=p+Math.imul(O0,h0)|0,y=y+Math.imul(U0,b0)|0,w=w+Math.imul(U0,l0)|0,w=w+Math.imul(X0,b0)|0,p=p+Math.imul(X0,l0)|0;var U$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(U$>>>26)|0,U$&=67108863,y=Math.imul(F0,c0),w=Math.imul(F0,h0),w=w+Math.imul(A0,c0)|0,p=Math.imul(A0,h0),y=y+Math.imul(I0,b0)|0,w=w+Math.imul(I0,l0)|0,w=w+Math.imul(O0,b0)|0,p=p+Math.imul(O0,l0)|0;var X$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(X$>>>26)|0,X$&=67108863,y=Math.imul(F0,b0),w=Math.imul(F0,l0),w=w+Math.imul(A0,b0)|0,p=Math.imul(A0,l0);var K$=(B+y|0)+((w&8191)<<13)|0;return B=(p+(w>>>13)|0)+(K$>>>26)|0,K$&=67108863,x[0]=o0,x[1]=u0,x[2]=n0,x[3]=s0,x[4]=t0,x[5]=m0,x[6]=a0,x[7]=e0,x[8]=r0,x[9]=i0,x[10]=$$,x[11]=Q$,x[12]=Y$,x[13]=Z$,x[14]=G$,x[15]=V$,x[16]=U$,x[17]=X$,x[18]=K$,B!==0&&(x[19]=B,g.length++),g};Math.imul||(E=W);function T(j,k,g){g.negative=k.negative^j.negative,g.length=j.length+k.length;for(var _=0,N=0,x=0;x>>26)|0,N+=B>>>26,B&=67108863}g.words[x]=y,_=B,B=N}return _!==0?g.words[x]=_:g.length--,g.strip()}function D(j,k,g){var _=new C;return _.mulp(j,k,g)}U.prototype.mulTo=function(j,k){var g,_=this.length+j.length;return this.length===10&&j.length===10?g=E(this,j,k):_<63?g=W(this,j,k):_<1024?g=T(this,j,k):g=D(this,j,k),g};function C(j,k){this.x=j,this.y=k}C.prototype.makeRBT=function(j){for(var k=new Array(j),g=U.prototype._countBits(j)-1,_=0;_>=1;return _},C.prototype.permute=function(j,k,g,_,N,x){for(var B=0;B>>1)N++;return 1<>>13,g[2*x+1]=N&8191,N=N>>>13;for(x=2*k;x<_;++x)g[x]=0;G(N===0),G((N&-8192)===0)},C.prototype.stub=function(j){for(var k=new Array(j),g=0;g>=26,k+=_/67108864|0,k+=N>>>26,this.words[g]=N&67108863}return k!==0&&(this.words[g]=k,this.length++),this},U.prototype.muln=function(j){return this.clone().imuln(j)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(j){var k=H(j);if(k.length===0)return new U(1);for(var g=this,_=0;_=0);var k=j%26,g=(j-k)/26,_=67108863>>>26-k<<26-k,N;if(k!==0){var x=0;for(N=0;N>>26-k}x&&(this.words[N]=x,this.length++)}if(g!==0){for(N=this.length-1;N>=0;N--)this.words[N+g]=this.words[N];for(N=0;N=0);var _;k?_=(k-k%26)/26:_=0;var N=j%26,x=Math.min((j-N)/26,this.length),B=67108863^67108863>>>N<x)for(this.length-=x,w=0;w=0&&(p!==0||w>=_);w--){var f=this.words[w]|0;this.words[w]=p<<26-N|f>>>N,p=f&B}return y&&p!==0&&(y.words[y.length++]=p),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},U.prototype.ishrn=function(j,k,g){return G(this.negative===0),this.iushrn(j,k,g)},U.prototype.shln=function(j){return this.clone().ishln(j)},U.prototype.ushln=function(j){return this.clone().iushln(j)},U.prototype.shrn=function(j){return this.clone().ishrn(j)},U.prototype.ushrn=function(j){return this.clone().iushrn(j)},U.prototype.testn=function(j){G(typeof j=="number"&&j>=0);var k=j%26,g=(j-k)/26,_=1<=0);var k=j%26,g=(j-k)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(k!==0&&g++,this.length=Math.min(g,this.length),k!==0){var _=67108863^67108863>>>k<=67108864;k++)this.words[k]-=67108864,k===this.length-1?this.words[k+1]=1:this.words[k+1]++;return this.length=Math.max(this.length,k+1),this},U.prototype.isubn=function(j){if(G(typeof j=="number"),G(j<67108864),j<0)return this.iaddn(-j);if(this.negative!==0)return this.negative=0,this.iaddn(j),this.negative=1,this;if(this.words[0]-=j,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var k=0;k>26)-(y/67108864|0),this.words[N+g]=x&67108863}for(;N>26,this.words[N+g]=x&67108863;if(B===0)return this.strip();for(G(B===-1),B=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},U.prototype._wordDiv=function(j,k){var g=this.length-j.length,_=this.clone(),N=j,x=N.words[N.length-1]|0,B=this._countBits(x);g=26-B,g!==0&&(N=N.ushln(g),_.iushln(g),x=N.words[N.length-1]|0);var y=_.length-N.length,w;if(k!=="mod"){w=new U(null),w.length=y+1,w.words=new Array(w.length);for(var p=0;p=0;c--){var h=(_.words[N.length+c]|0)*67108864+(_.words[N.length+c-1]|0);for(h=Math.min(h/x|0,67108863),_._ishlnsubmul(N,h,c);_.negative!==0;)h--,_.negative=0,_._ishlnsubmul(N,1,c),_.isZero()||(_.negative^=1);w&&(w.words[c]=h)}return w&&w.strip(),_.strip(),k!=="div"&&g!==0&&_.iushrn(g),{div:w||null,mod:_}},U.prototype.divmod=function(j,k,g){if(G(!j.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var _,N,x;return this.negative!==0&&j.negative===0?(x=this.neg().divmod(j,k),k!=="mod"&&(_=x.div.neg()),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.iadd(j)),{div:_,mod:N}):this.negative===0&&j.negative!==0?(x=this.divmod(j.neg(),k),k!=="mod"&&(_=x.div.neg()),{div:_,mod:x.mod}):(this.negative&j.negative)!==0?(x=this.neg().divmod(j.neg(),k),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.isub(j)),{div:x.div,mod:N}):j.length>this.length||this.cmp(j)<0?{div:new U(0),mod:this}:j.length===1?k==="div"?{div:this.divn(j.words[0]),mod:null}:k==="mod"?{div:null,mod:new U(this.modn(j.words[0]))}:{div:this.divn(j.words[0]),mod:new U(this.modn(j.words[0]))}:this._wordDiv(j,k)},U.prototype.div=function(j){return this.divmod(j,"div",!1).div},U.prototype.mod=function(j){return this.divmod(j,"mod",!1).mod},U.prototype.umod=function(j){return this.divmod(j,"mod",!0).mod},U.prototype.divRound=function(j){var k=this.divmod(j);if(k.mod.isZero())return k.div;var g=k.div.negative!==0?k.mod.isub(j):k.mod,_=j.ushrn(1),N=j.andln(1),x=g.cmp(_);return x<0||N===1&&x===0?k.div:k.div.negative!==0?k.div.isubn(1):k.div.iaddn(1)},U.prototype.modn=function(j){G(j<=67108863);for(var k=(1<<26)%j,g=0,_=this.length-1;_>=0;_--)g=(k*g+(this.words[_]|0))%j;return g},U.prototype.idivn=function(j){G(j<=67108863);for(var k=0,g=this.length-1;g>=0;g--){var _=(this.words[g]|0)+k*67108864;this.words[g]=_/j|0,k=_%j}return this.strip()},U.prototype.divn=function(j){return this.clone().idivn(j)},U.prototype.egcd=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=new U(0),B=new U(1),y=0;k.isEven()&&g.isEven();)k.iushrn(1),g.iushrn(1),++y;for(var w=g.clone(),p=k.clone();!k.isZero();){for(var f=0,c=1;(k.words[0]&c)===0&&f<26;++f,c<<=1);if(f>0)for(k.iushrn(f);f-- >0;)(_.isOdd()||N.isOdd())&&(_.iadd(w),N.isub(p)),_.iushrn(1),N.iushrn(1);for(var h=0,d=1;(g.words[0]&d)===0&&h<26;++h,d<<=1);if(h>0)for(g.iushrn(h);h-- >0;)(x.isOdd()||B.isOdd())&&(x.iadd(w),B.isub(p)),x.iushrn(1),B.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(x),N.isub(B)):(g.isub(k),x.isub(_),B.isub(N))}return{a:x,b:B,gcd:g.iushln(y)}},U.prototype._invmp=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=g.clone();k.cmpn(1)>0&&g.cmpn(1)>0;){for(var B=0,y=1;(k.words[0]&y)===0&&B<26;++B,y<<=1);if(B>0)for(k.iushrn(B);B-- >0;)_.isOdd()&&_.iadd(x),_.iushrn(1);for(var w=0,p=1;(g.words[0]&p)===0&&w<26;++w,p<<=1);if(w>0)for(g.iushrn(w);w-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(N)):(g.isub(k),N.isub(_))}var f;return k.cmpn(1)===0?f=_:f=N,f.cmpn(0)<0&&f.iadd(j),f},U.prototype.gcd=function(j){if(this.isZero())return j.abs();if(j.isZero())return this.abs();var k=this.clone(),g=j.clone();k.negative=0,g.negative=0;for(var _=0;k.isEven()&&g.isEven();_++)k.iushrn(1),g.iushrn(1);do{for(;k.isEven();)k.iushrn(1);for(;g.isEven();)g.iushrn(1);var N=k.cmp(g);if(N<0){var x=k;k=g,g=x}else if(N===0||g.cmpn(1)===0)break;k.isub(g)}while(!0);return g.iushln(_)},U.prototype.invm=function(j){return this.egcd(j).a.umod(j)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(j){return this.words[0]&j},U.prototype.bincn=function(j){G(typeof j=="number");var k=j%26,g=(j-k)/26,_=1<>>26,B&=67108863,this.words[x]=B}return N!==0&&(this.words[x]=N,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(j){var k=j<0;if(this.negative!==0&&!k)return-1;if(this.negative===0&&k)return 1;this.strip();var g;if(this.length>1)g=1;else{k&&(j=-j),G(j<=67108863,"Number is too big");var _=this.words[0]|0;g=_===j?0:_j.length)return 1;if(this.length=0;g--){var _=this.words[g]|0,N=j.words[g]|0;if(_!==N){_N&&(k=1);break}}return k},U.prototype.gtn=function(j){return this.cmpn(j)===1},U.prototype.gt=function(j){return this.cmp(j)===1},U.prototype.gten=function(j){return this.cmpn(j)>=0},U.prototype.gte=function(j){return this.cmp(j)>=0},U.prototype.ltn=function(j){return this.cmpn(j)===-1},U.prototype.lt=function(j){return this.cmp(j)===-1},U.prototype.lten=function(j){return this.cmpn(j)<=0},U.prototype.lte=function(j){return this.cmp(j)<=0},U.prototype.eqn=function(j){return this.cmpn(j)===0},U.prototype.eq=function(j){return this.cmp(j)===0},U.red=function(j){return new v(j)},U.prototype.toRed=function(j){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),j.convertTo(this)._forceRed(j)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(j){return this.red=j,this},U.prototype.forceRed=function(j){return G(!this.red,"Already a number in reduction context"),this._forceRed(j)},U.prototype.redAdd=function(j){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,j)},U.prototype.redIAdd=function(j){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,j)},U.prototype.redSub=function(j){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,j)},U.prototype.redISub=function(j){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,j)},U.prototype.redShl=function(j){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,j)},U.prototype.redMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.mul(this,j)},U.prototype.redIMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.imul(this,j)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(j){return G(this.red&&!j.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,j)};var L={k256:null,p224:null,p192:null,p25519:null};function R(j,k){this.name=j,this.p=new U(k,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}R.prototype._tmp=function(){var j=new U(null);return j.words=new Array(Math.ceil(this.n/13)),j},R.prototype.ireduce=function(j){var k=j,g;do this.split(k,this.tmp),k=this.imulK(k),k=k.iadd(this.tmp),g=k.bitLength();while(g>this.n);var _=g0?k.isub(this.p):k.strip!==void 0?k.strip():k._strip(),k},R.prototype.split=function(j,k){j.iushrn(this.n,0,k)},R.prototype.imulK=function(j){return j.imul(this.k)};function P(){R.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(P,R),P.prototype.split=function(j,k){for(var g=4194303,_=Math.min(j.length,9),N=0;N<_;N++)k.words[N]=j.words[N];if(k.length=_,j.length<=9){j.words[0]=0,j.length=1;return}var x=j.words[9];for(k.words[k.length++]=x&g,N=10;N>>22,x=B}x>>>=22,j.words[N-10]=x,x===0&&j.length>10?j.length-=10:j.length-=9},P.prototype.imulK=function(j){j.words[j.length]=0,j.words[j.length+1]=0,j.length+=2;for(var k=0,g=0;g>>=26,j.words[g]=N,k=_}return k!==0&&(j.words[j.length++]=k),j},U._prime=function(j){if(L[j])return L[j];var k;if(j==="k256")k=new P;else if(j==="p224")k=new z;else if(j==="p192")k=new M;else if(j==="p25519")k=new S;else throw new Error("Unknown prime "+j);return L[j]=k,k};function v(j){if(typeof j=="string"){var k=U._prime(j);this.m=k.p,this.prime=k}else G(j.gtn(1),"modulus must be greater than 1"),this.m=j,this.prime=null}v.prototype._verify1=function(j){G(j.negative===0,"red works only with positives"),G(j.red,"red works only with red numbers")},v.prototype._verify2=function(j,k){G((j.negative|k.negative)===0,"red works only with positives"),G(j.red&&j.red===k.red,"red works only with red numbers")},v.prototype.imod=function(j){return this.prime?this.prime.ireduce(j)._forceRed(this):j.umod(this.m)._forceRed(this)},v.prototype.neg=function(j){return j.isZero()?j.clone():this.m.sub(j)._forceRed(this)},v.prototype.add=function(j,k){this._verify2(j,k);var g=j.add(k);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},v.prototype.iadd=function(j,k){this._verify2(j,k);var g=j.iadd(k);return g.cmp(this.m)>=0&&g.isub(this.m),g},v.prototype.sub=function(j,k){this._verify2(j,k);var g=j.sub(k);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},v.prototype.isub=function(j,k){this._verify2(j,k);var g=j.isub(k);return g.cmpn(0)<0&&g.iadd(this.m),g},v.prototype.shl=function(j,k){return this._verify1(j),this.imod(j.ushln(k))},v.prototype.imul=function(j,k){return this._verify2(j,k),this.imod(j.imul(k))},v.prototype.mul=function(j,k){return this._verify2(j,k),this.imod(j.mul(k))},v.prototype.isqr=function(j){return this.imul(j,j.clone())},v.prototype.sqr=function(j){return this.mul(j,j)},v.prototype.sqrt=function(j){if(j.isZero())return j.clone();var k=this.m.andln(3);if(G(k%2===1),k===3){var g=this.m.add(new U(1)).iushrn(2);return this.pow(j,g)}for(var _=this.m.subn(1),N=0;!_.isZero()&&_.andln(1)===0;)N++,_.iushrn(1);G(!_.isZero());var x=new U(1).toRed(this),B=x.redNeg(),y=this.m.subn(1).iushrn(1),w=this.m.bitLength();for(w=new U(2*w*w).toRed(this);this.pow(w,y).cmp(B)!==0;)w.redIAdd(B);for(var p=this.pow(w,_),f=this.pow(j,_.addn(1).iushrn(1)),c=this.pow(j,_),h=N;c.cmp(x)!==0;){for(var d=c,b=0;d.cmp(x)!==0;b++)d=d.redSqr();G(b=0;N--){for(var p=k.words[N],f=w-1;f>=0;f--){var c=p>>f&1;if(x!==_[0]&&(x=this.sqr(x)),c===0&&B===0){y=0;continue}B<<=1,B|=c,y++,!(y!==g&&(N!==0||f!==0))&&(x=this.mul(x,_[B]),y=0,B=0)}w=26}return x},v.prototype.convertTo=function(j){var k=j.umod(this.m);return k===j?k.clone():k},v.prototype.convertFrom=function(j){var k=j.clone();return k.red=null,k},U.mont=function(j){return new q(j)};function q(j){v.call(this,j),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(q,v),q.prototype.convertTo=function(j){return this.imod(j.ushln(this.shift))},q.prototype.convertFrom=function(j){var k=this.imod(j.mul(this.rinv));return k.red=null,k},q.prototype.imul=function(j,k){if(j.isZero()||k.isZero())return j.words[0]=0,j.length=1,j;var g=j.imul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.mul=function(j,k){if(j.isZero()||k.isZero())return new U(0)._forceRed(this);var g=j.mul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.invm=function(j){var k=this.imod(j._invmp(this.m).mul(this.r2));return k._forceRed(this)}})(typeof Q>"u"||Q,$)}}),_Q=q$({"node_modules/miller-rabin/node_modules/bn.js/lib/bn.js"($,Q){(function(Y,Z){function G(j,k){if(!j)throw new Error(k||"Assertion failed")}function V(j,k){j.super_=k;var g=function(){};g.prototype=k.prototype,j.prototype=new g,j.prototype.constructor=j}function U(j,k,g){if(U.isBN(j))return j;this.negative=0,this.words=null,this.length=0,this.red=null,j!==null&&((k==="le"||k==="be")&&(g=k,k=10),this._init(j||0,k||10,g||"be"))}typeof Y=="object"?Y.exports=U:Z.BN=U,U.BN=U,U.wordSize=26;var X=F$;U.isBN=function(j){return j instanceof U?!0:j!==null&&typeof j=="object"&&j.constructor.wordSize===U.wordSize&&Array.isArray(j.words)},U.max=function(j,k){return j.cmp(k)>0?j:k},U.min=function(j,k){return j.cmp(k)<0?j:k},U.prototype._init=function(j,k,g){if(typeof j=="number")return this._initNumber(j,k,g);if(typeof j=="object")return this._initArray(j,k,g);k==="hex"&&(k=16),G(k===(k|0)&&k>=2&&k<=36),j=j.toString().replace(/\s+/g,"");var _=0;j[0]==="-"&&(_++,this.negative=1),_=0;_-=3)x=j[_]|j[_-1]<<8|j[_-2]<<16,this.words[N]|=x<>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);else if(g==="le")for(_=0,N=0;_>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);return this.strip()};function K(j,k){var g=j.charCodeAt(k);return g>=65&&g<=70?g-55:g>=97&&g<=102?g-87:g-48&15}function I(j,k,g){var _=K(j,g);return g-1>=k&&(_|=K(j,g-1)<<4),_}U.prototype._parseHex=function(j,k,g){this.length=Math.ceil((j.length-k)/6),this.words=new Array(this.length);for(var _=0;_=k;_-=2)B=I(j,k,_)<=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8;else{var y=j.length-k;for(_=y%2===0?k+1:k;_=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8}this.strip()};function O(j,k,g,_){for(var N=0,x=Math.min(j.length,g),B=k;B=49?N+=y-49+10:y>=17?N+=y-17+10:N+=y}return N}U.prototype._parseBase=function(j,k,g){this.words=[0],this.length=1;for(var _=0,N=1;N<=67108863;N*=k)_++;_--,N=N/k|0;for(var x=j.length-g,B=x%_,y=Math.min(x,x-B)+g,w=0,p=g;p1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},U.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],F=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],A=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(j,k){j=j||10,k=k|0||1;var g;if(j===16||j==="hex"){g="";for(var _=0,N=0,x=0;x>>24-_&16777215,N!==0||x!==this.length-1?g=J[6-y.length]+y+g:g=y+g,_+=2,_>=26&&(_-=26,x--)}for(N!==0&&(g=N.toString(16)+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(j===(j|0)&&j>=2&&j<=36){var w=F[j],p=A[j];g="";var f=this.clone();for(f.negative=0;!f.isZero();){var c=f.modn(p).toString(j);f=f.idivn(p),f.isZero()?g=c+g:g=J[w-c.length]+c+g}for(this.isZero()&&(g="0"+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var j=this.words[0];return this.length===2?j+=this.words[1]*67108864:this.length===3&&this.words[2]===1?j+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-j:j},U.prototype.toJSON=function(){return this.toString(16)},U.prototype.toBuffer=function(j,k){return G(typeof X<"u"),this.toArrayLike(X,j,k)},U.prototype.toArray=function(j,k){return this.toArrayLike(Array,j,k)},U.prototype.toArrayLike=function(j,k,g){var _=this.byteLength(),N=g||Math.max(1,_);G(_<=N,"byte array longer than desired length"),G(N>0,"Requested array length <= 0"),this.strip();var x=k==="le",B=new j(N),y,w,p=this.clone();if(x){for(w=0;!p.isZero();w++)y=p.andln(255),p.iushrn(8),B[w]=y;for(;w=4096&&(g+=13,k>>>=13),k>=64&&(g+=7,k>>>=7),k>=8&&(g+=4,k>>>=4),k>=2&&(g+=2,k>>>=2),g+k},U.prototype._zeroBits=function(j){if(j===0)return 26;var k=j,g=0;return(k&8191)===0&&(g+=13,k>>>=13),(k&127)===0&&(g+=7,k>>>=7),(k&15)===0&&(g+=4,k>>>=4),(k&3)===0&&(g+=2,k>>>=2),(k&1)===0&&g++,g},U.prototype.bitLength=function(){var j=this.words[this.length-1],k=this._countBits(j);return(this.length-1)*26+k};function H(j){for(var k=new Array(j.bitLength()),g=0;g>>N}return k}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var j=0,k=0;kj.length?this.clone().ior(j):j.clone().ior(this)},U.prototype.uor=function(j){return this.length>j.length?this.clone().iuor(j):j.clone().iuor(this)},U.prototype.iuand=function(j){var k;this.length>j.length?k=j:k=this;for(var g=0;gj.length?this.clone().iand(j):j.clone().iand(this)},U.prototype.uand=function(j){return this.length>j.length?this.clone().iuand(j):j.clone().iuand(this)},U.prototype.iuxor=function(j){var k,g;this.length>j.length?(k=this,g=j):(k=j,g=this);for(var _=0;_j.length?this.clone().ixor(j):j.clone().ixor(this)},U.prototype.uxor=function(j){return this.length>j.length?this.clone().iuxor(j):j.clone().iuxor(this)},U.prototype.inotn=function(j){G(typeof j=="number"&&j>=0);var k=Math.ceil(j/26)|0,g=j%26;this._expand(k),g>0&&k--;for(var _=0;_0&&(this.words[_]=~this.words[_]&67108863>>26-g),this.strip()},U.prototype.notn=function(j){return this.clone().inotn(j)},U.prototype.setn=function(j,k){G(typeof j=="number"&&j>=0);var g=j/26|0,_=j%26;return this._expand(g+1),k?this.words[g]=this.words[g]|1<<_:this.words[g]=this.words[g]&~(1<<_),this.strip()},U.prototype.iadd=function(j){var k;if(this.negative!==0&&j.negative===0)return this.negative=0,k=this.isub(j),this.negative^=1,this._normSign();if(this.negative===0&&j.negative!==0)return j.negative=0,k=this.isub(j),j.negative=1,k._normSign();var g,_;this.length>j.length?(g=this,_=j):(g=j,_=this);for(var N=0,x=0;x<_.length;x++)k=(g.words[x]|0)+(_.words[x]|0)+N,this.words[x]=k&67108863,N=k>>>26;for(;N!==0&&x>>26;if(this.length=g.length,N!==0)this.words[this.length]=N,this.length++;else if(g!==this)for(;xj.length?this.clone().iadd(j):j.clone().iadd(this)},U.prototype.isub=function(j){if(j.negative!==0){j.negative=0;var k=this.iadd(j);return j.negative=1,k._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(j),this.negative=1,this._normSign();var g=this.cmp(j);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var _,N;g>0?(_=this,N=j):(_=j,N=this);for(var x=0,B=0;B>26,this.words[B]=k&67108863;for(;x!==0&&B<_.length;B++)k=(_.words[B]|0)+x,x=k>>26,this.words[B]=k&67108863;if(x===0&&B<_.length&&_!==this)for(;B<_.length;B++)this.words[B]=_.words[B];return this.length=Math.max(this.length,B),_!==this&&(this.negative=1),this.strip()},U.prototype.sub=function(j){return this.clone().isub(j)};function W(j,k,g){g.negative=k.negative^j.negative;var _=j.length+k.length|0;g.length=_,_=_-1|0;var N=j.words[0]|0,x=k.words[0]|0,B=N*x,y=B&67108863,w=B/67108864|0;g.words[0]=y;for(var p=1;p<_;p++){for(var f=w>>>26,c=w&67108863,h=Math.min(p,k.length-1),d=Math.max(0,p-j.length+1);d<=h;d++){var b=p-d|0;N=j.words[b]|0,x=k.words[d]|0,B=N*x+c,f+=B/67108864|0,c=B&67108863}g.words[p]=c|0,w=f|0}return w!==0?g.words[p]=w|0:g.length--,g.strip()}var E=function(j,k,g){var _=j.words,N=k.words,x=g.words,B=0,y,w,p,f=_[0]|0,c=f&8191,h=f>>>13,d=_[1]|0,b=d&8191,l=d>>>13,o=_[2]|0,u=o&8191,n=o>>>13,s=_[3]|0,t=s&8191,m=s>>>13,a=_[4]|0,e=a&8191,r=a>>>13,i=_[5]|0,$0=i&8191,Q0=i>>>13,Y0=_[6]|0,Z0=Y0&8191,G0=Y0>>>13,V0=_[7]|0,U0=V0&8191,X0=V0>>>13,K0=_[8]|0,I0=K0&8191,O0=K0>>>13,J0=_[9]|0,F0=J0&8191,A0=J0>>>13,H0=N[0]|0,W0=H0&8191,E0=H0>>>13,T0=N[1]|0,D0=T0&8191,C0=T0>>>13,L0=N[2]|0,R0=L0&8191,P0=L0>>>13,z0=N[3]|0,M0=z0&8191,S0=z0>>>13,v0=N[4]|0,q0=v0&8191,j0=v0>>>13,k0=N[5]|0,g0=k0&8191,_0=k0>>>13,N0=N[6]|0,x0=N0&8191,B0=N0>>>13,y0=N[7]|0,w0=y0&8191,p0=y0>>>13,f0=N[8]|0,c0=f0&8191,h0=f0>>>13,d0=N[9]|0,b0=d0&8191,l0=d0>>>13;g.negative=j.negative^k.negative,g.length=19,y=Math.imul(c,W0),w=Math.imul(c,E0),w=w+Math.imul(h,W0)|0,p=Math.imul(h,E0);var o0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(o0>>>26)|0,o0&=67108863,y=Math.imul(b,W0),w=Math.imul(b,E0),w=w+Math.imul(l,W0)|0,p=Math.imul(l,E0),y=y+Math.imul(c,D0)|0,w=w+Math.imul(c,C0)|0,w=w+Math.imul(h,D0)|0,p=p+Math.imul(h,C0)|0;var u0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(u0>>>26)|0,u0&=67108863,y=Math.imul(u,W0),w=Math.imul(u,E0),w=w+Math.imul(n,W0)|0,p=Math.imul(n,E0),y=y+Math.imul(b,D0)|0,w=w+Math.imul(b,C0)|0,w=w+Math.imul(l,D0)|0,p=p+Math.imul(l,C0)|0,y=y+Math.imul(c,R0)|0,w=w+Math.imul(c,P0)|0,w=w+Math.imul(h,R0)|0,p=p+Math.imul(h,P0)|0;var n0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(n0>>>26)|0,n0&=67108863,y=Math.imul(t,W0),w=Math.imul(t,E0),w=w+Math.imul(m,W0)|0,p=Math.imul(m,E0),y=y+Math.imul(u,D0)|0,w=w+Math.imul(u,C0)|0,w=w+Math.imul(n,D0)|0,p=p+Math.imul(n,C0)|0,y=y+Math.imul(b,R0)|0,w=w+Math.imul(b,P0)|0,w=w+Math.imul(l,R0)|0,p=p+Math.imul(l,P0)|0,y=y+Math.imul(c,M0)|0,w=w+Math.imul(c,S0)|0,w=w+Math.imul(h,M0)|0,p=p+Math.imul(h,S0)|0;var s0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(s0>>>26)|0,s0&=67108863,y=Math.imul(e,W0),w=Math.imul(e,E0),w=w+Math.imul(r,W0)|0,p=Math.imul(r,E0),y=y+Math.imul(t,D0)|0,w=w+Math.imul(t,C0)|0,w=w+Math.imul(m,D0)|0,p=p+Math.imul(m,C0)|0,y=y+Math.imul(u,R0)|0,w=w+Math.imul(u,P0)|0,w=w+Math.imul(n,R0)|0,p=p+Math.imul(n,P0)|0,y=y+Math.imul(b,M0)|0,w=w+Math.imul(b,S0)|0,w=w+Math.imul(l,M0)|0,p=p+Math.imul(l,S0)|0,y=y+Math.imul(c,q0)|0,w=w+Math.imul(c,j0)|0,w=w+Math.imul(h,q0)|0,p=p+Math.imul(h,j0)|0;var t0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(t0>>>26)|0,t0&=67108863,y=Math.imul($0,W0),w=Math.imul($0,E0),w=w+Math.imul(Q0,W0)|0,p=Math.imul(Q0,E0),y=y+Math.imul(e,D0)|0,w=w+Math.imul(e,C0)|0,w=w+Math.imul(r,D0)|0,p=p+Math.imul(r,C0)|0,y=y+Math.imul(t,R0)|0,w=w+Math.imul(t,P0)|0,w=w+Math.imul(m,R0)|0,p=p+Math.imul(m,P0)|0,y=y+Math.imul(u,M0)|0,w=w+Math.imul(u,S0)|0,w=w+Math.imul(n,M0)|0,p=p+Math.imul(n,S0)|0,y=y+Math.imul(b,q0)|0,w=w+Math.imul(b,j0)|0,w=w+Math.imul(l,q0)|0,p=p+Math.imul(l,j0)|0,y=y+Math.imul(c,g0)|0,w=w+Math.imul(c,_0)|0,w=w+Math.imul(h,g0)|0,p=p+Math.imul(h,_0)|0;var m0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(m0>>>26)|0,m0&=67108863,y=Math.imul(Z0,W0),w=Math.imul(Z0,E0),w=w+Math.imul(G0,W0)|0,p=Math.imul(G0,E0),y=y+Math.imul($0,D0)|0,w=w+Math.imul($0,C0)|0,w=w+Math.imul(Q0,D0)|0,p=p+Math.imul(Q0,C0)|0,y=y+Math.imul(e,R0)|0,w=w+Math.imul(e,P0)|0,w=w+Math.imul(r,R0)|0,p=p+Math.imul(r,P0)|0,y=y+Math.imul(t,M0)|0,w=w+Math.imul(t,S0)|0,w=w+Math.imul(m,M0)|0,p=p+Math.imul(m,S0)|0,y=y+Math.imul(u,q0)|0,w=w+Math.imul(u,j0)|0,w=w+Math.imul(n,q0)|0,p=p+Math.imul(n,j0)|0,y=y+Math.imul(b,g0)|0,w=w+Math.imul(b,_0)|0,w=w+Math.imul(l,g0)|0,p=p+Math.imul(l,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,B0)|0,w=w+Math.imul(h,x0)|0,p=p+Math.imul(h,B0)|0;var a0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(a0>>>26)|0,a0&=67108863,y=Math.imul(U0,W0),w=Math.imul(U0,E0),w=w+Math.imul(X0,W0)|0,p=Math.imul(X0,E0),y=y+Math.imul(Z0,D0)|0,w=w+Math.imul(Z0,C0)|0,w=w+Math.imul(G0,D0)|0,p=p+Math.imul(G0,C0)|0,y=y+Math.imul($0,R0)|0,w=w+Math.imul($0,P0)|0,w=w+Math.imul(Q0,R0)|0,p=p+Math.imul(Q0,P0)|0,y=y+Math.imul(e,M0)|0,w=w+Math.imul(e,S0)|0,w=w+Math.imul(r,M0)|0,p=p+Math.imul(r,S0)|0,y=y+Math.imul(t,q0)|0,w=w+Math.imul(t,j0)|0,w=w+Math.imul(m,q0)|0,p=p+Math.imul(m,j0)|0,y=y+Math.imul(u,g0)|0,w=w+Math.imul(u,_0)|0,w=w+Math.imul(n,g0)|0,p=p+Math.imul(n,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,B0)|0,w=w+Math.imul(l,x0)|0,p=p+Math.imul(l,B0)|0,y=y+Math.imul(c,w0)|0,w=w+Math.imul(c,p0)|0,w=w+Math.imul(h,w0)|0,p=p+Math.imul(h,p0)|0;var e0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(e0>>>26)|0,e0&=67108863,y=Math.imul(I0,W0),w=Math.imul(I0,E0),w=w+Math.imul(O0,W0)|0,p=Math.imul(O0,E0),y=y+Math.imul(U0,D0)|0,w=w+Math.imul(U0,C0)|0,w=w+Math.imul(X0,D0)|0,p=p+Math.imul(X0,C0)|0,y=y+Math.imul(Z0,R0)|0,w=w+Math.imul(Z0,P0)|0,w=w+Math.imul(G0,R0)|0,p=p+Math.imul(G0,P0)|0,y=y+Math.imul($0,M0)|0,w=w+Math.imul($0,S0)|0,w=w+Math.imul(Q0,M0)|0,p=p+Math.imul(Q0,S0)|0,y=y+Math.imul(e,q0)|0,w=w+Math.imul(e,j0)|0,w=w+Math.imul(r,q0)|0,p=p+Math.imul(r,j0)|0,y=y+Math.imul(t,g0)|0,w=w+Math.imul(t,_0)|0,w=w+Math.imul(m,g0)|0,p=p+Math.imul(m,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,B0)|0,w=w+Math.imul(n,x0)|0,p=p+Math.imul(n,B0)|0,y=y+Math.imul(b,w0)|0,w=w+Math.imul(b,p0)|0,w=w+Math.imul(l,w0)|0,p=p+Math.imul(l,p0)|0,y=y+Math.imul(c,c0)|0,w=w+Math.imul(c,h0)|0,w=w+Math.imul(h,c0)|0,p=p+Math.imul(h,h0)|0;var r0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(r0>>>26)|0,r0&=67108863,y=Math.imul(F0,W0),w=Math.imul(F0,E0),w=w+Math.imul(A0,W0)|0,p=Math.imul(A0,E0),y=y+Math.imul(I0,D0)|0,w=w+Math.imul(I0,C0)|0,w=w+Math.imul(O0,D0)|0,p=p+Math.imul(O0,C0)|0,y=y+Math.imul(U0,R0)|0,w=w+Math.imul(U0,P0)|0,w=w+Math.imul(X0,R0)|0,p=p+Math.imul(X0,P0)|0,y=y+Math.imul(Z0,M0)|0,w=w+Math.imul(Z0,S0)|0,w=w+Math.imul(G0,M0)|0,p=p+Math.imul(G0,S0)|0,y=y+Math.imul($0,q0)|0,w=w+Math.imul($0,j0)|0,w=w+Math.imul(Q0,q0)|0,p=p+Math.imul(Q0,j0)|0,y=y+Math.imul(e,g0)|0,w=w+Math.imul(e,_0)|0,w=w+Math.imul(r,g0)|0,p=p+Math.imul(r,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,B0)|0,w=w+Math.imul(m,x0)|0,p=p+Math.imul(m,B0)|0,y=y+Math.imul(u,w0)|0,w=w+Math.imul(u,p0)|0,w=w+Math.imul(n,w0)|0,p=p+Math.imul(n,p0)|0,y=y+Math.imul(b,c0)|0,w=w+Math.imul(b,h0)|0,w=w+Math.imul(l,c0)|0,p=p+Math.imul(l,h0)|0,y=y+Math.imul(c,b0)|0,w=w+Math.imul(c,l0)|0,w=w+Math.imul(h,b0)|0,p=p+Math.imul(h,l0)|0;var i0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(i0>>>26)|0,i0&=67108863,y=Math.imul(F0,D0),w=Math.imul(F0,C0),w=w+Math.imul(A0,D0)|0,p=Math.imul(A0,C0),y=y+Math.imul(I0,R0)|0,w=w+Math.imul(I0,P0)|0,w=w+Math.imul(O0,R0)|0,p=p+Math.imul(O0,P0)|0,y=y+Math.imul(U0,M0)|0,w=w+Math.imul(U0,S0)|0,w=w+Math.imul(X0,M0)|0,p=p+Math.imul(X0,S0)|0,y=y+Math.imul(Z0,q0)|0,w=w+Math.imul(Z0,j0)|0,w=w+Math.imul(G0,q0)|0,p=p+Math.imul(G0,j0)|0,y=y+Math.imul($0,g0)|0,w=w+Math.imul($0,_0)|0,w=w+Math.imul(Q0,g0)|0,p=p+Math.imul(Q0,_0)|0,y=y+Math.imul(e,x0)|0,w=w+Math.imul(e,B0)|0,w=w+Math.imul(r,x0)|0,p=p+Math.imul(r,B0)|0,y=y+Math.imul(t,w0)|0,w=w+Math.imul(t,p0)|0,w=w+Math.imul(m,w0)|0,p=p+Math.imul(m,p0)|0,y=y+Math.imul(u,c0)|0,w=w+Math.imul(u,h0)|0,w=w+Math.imul(n,c0)|0,p=p+Math.imul(n,h0)|0,y=y+Math.imul(b,b0)|0,w=w+Math.imul(b,l0)|0,w=w+Math.imul(l,b0)|0,p=p+Math.imul(l,l0)|0;var $$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+($$>>>26)|0,$$&=67108863,y=Math.imul(F0,R0),w=Math.imul(F0,P0),w=w+Math.imul(A0,R0)|0,p=Math.imul(A0,P0),y=y+Math.imul(I0,M0)|0,w=w+Math.imul(I0,S0)|0,w=w+Math.imul(O0,M0)|0,p=p+Math.imul(O0,S0)|0,y=y+Math.imul(U0,q0)|0,w=w+Math.imul(U0,j0)|0,w=w+Math.imul(X0,q0)|0,p=p+Math.imul(X0,j0)|0,y=y+Math.imul(Z0,g0)|0,w=w+Math.imul(Z0,_0)|0,w=w+Math.imul(G0,g0)|0,p=p+Math.imul(G0,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,B0)|0,w=w+Math.imul(Q0,x0)|0,p=p+Math.imul(Q0,B0)|0,y=y+Math.imul(e,w0)|0,w=w+Math.imul(e,p0)|0,w=w+Math.imul(r,w0)|0,p=p+Math.imul(r,p0)|0,y=y+Math.imul(t,c0)|0,w=w+Math.imul(t,h0)|0,w=w+Math.imul(m,c0)|0,p=p+Math.imul(m,h0)|0,y=y+Math.imul(u,b0)|0,w=w+Math.imul(u,l0)|0,w=w+Math.imul(n,b0)|0,p=p+Math.imul(n,l0)|0;var Q$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,y=Math.imul(F0,M0),w=Math.imul(F0,S0),w=w+Math.imul(A0,M0)|0,p=Math.imul(A0,S0),y=y+Math.imul(I0,q0)|0,w=w+Math.imul(I0,j0)|0,w=w+Math.imul(O0,q0)|0,p=p+Math.imul(O0,j0)|0,y=y+Math.imul(U0,g0)|0,w=w+Math.imul(U0,_0)|0,w=w+Math.imul(X0,g0)|0,p=p+Math.imul(X0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,B0)|0,w=w+Math.imul(G0,x0)|0,p=p+Math.imul(G0,B0)|0,y=y+Math.imul($0,w0)|0,w=w+Math.imul($0,p0)|0,w=w+Math.imul(Q0,w0)|0,p=p+Math.imul(Q0,p0)|0,y=y+Math.imul(e,c0)|0,w=w+Math.imul(e,h0)|0,w=w+Math.imul(r,c0)|0,p=p+Math.imul(r,h0)|0,y=y+Math.imul(t,b0)|0,w=w+Math.imul(t,l0)|0,w=w+Math.imul(m,b0)|0,p=p+Math.imul(m,l0)|0;var Y$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,y=Math.imul(F0,q0),w=Math.imul(F0,j0),w=w+Math.imul(A0,q0)|0,p=Math.imul(A0,j0),y=y+Math.imul(I0,g0)|0,w=w+Math.imul(I0,_0)|0,w=w+Math.imul(O0,g0)|0,p=p+Math.imul(O0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,B0)|0,w=w+Math.imul(X0,x0)|0,p=p+Math.imul(X0,B0)|0,y=y+Math.imul(Z0,w0)|0,w=w+Math.imul(Z0,p0)|0,w=w+Math.imul(G0,w0)|0,p=p+Math.imul(G0,p0)|0,y=y+Math.imul($0,c0)|0,w=w+Math.imul($0,h0)|0,w=w+Math.imul(Q0,c0)|0,p=p+Math.imul(Q0,h0)|0,y=y+Math.imul(e,b0)|0,w=w+Math.imul(e,l0)|0,w=w+Math.imul(r,b0)|0,p=p+Math.imul(r,l0)|0;var Z$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,y=Math.imul(F0,g0),w=Math.imul(F0,_0),w=w+Math.imul(A0,g0)|0,p=Math.imul(A0,_0),y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,B0)|0,w=w+Math.imul(O0,x0)|0,p=p+Math.imul(O0,B0)|0,y=y+Math.imul(U0,w0)|0,w=w+Math.imul(U0,p0)|0,w=w+Math.imul(X0,w0)|0,p=p+Math.imul(X0,p0)|0,y=y+Math.imul(Z0,c0)|0,w=w+Math.imul(Z0,h0)|0,w=w+Math.imul(G0,c0)|0,p=p+Math.imul(G0,h0)|0,y=y+Math.imul($0,b0)|0,w=w+Math.imul($0,l0)|0,w=w+Math.imul(Q0,b0)|0,p=p+Math.imul(Q0,l0)|0;var G$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(G$>>>26)|0,G$&=67108863,y=Math.imul(F0,x0),w=Math.imul(F0,B0),w=w+Math.imul(A0,x0)|0,p=Math.imul(A0,B0),y=y+Math.imul(I0,w0)|0,w=w+Math.imul(I0,p0)|0,w=w+Math.imul(O0,w0)|0,p=p+Math.imul(O0,p0)|0,y=y+Math.imul(U0,c0)|0,w=w+Math.imul(U0,h0)|0,w=w+Math.imul(X0,c0)|0,p=p+Math.imul(X0,h0)|0,y=y+Math.imul(Z0,b0)|0,w=w+Math.imul(Z0,l0)|0,w=w+Math.imul(G0,b0)|0,p=p+Math.imul(G0,l0)|0;var V$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(V$>>>26)|0,V$&=67108863,y=Math.imul(F0,w0),w=Math.imul(F0,p0),w=w+Math.imul(A0,w0)|0,p=Math.imul(A0,p0),y=y+Math.imul(I0,c0)|0,w=w+Math.imul(I0,h0)|0,w=w+Math.imul(O0,c0)|0,p=p+Math.imul(O0,h0)|0,y=y+Math.imul(U0,b0)|0,w=w+Math.imul(U0,l0)|0,w=w+Math.imul(X0,b0)|0,p=p+Math.imul(X0,l0)|0;var U$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(U$>>>26)|0,U$&=67108863,y=Math.imul(F0,c0),w=Math.imul(F0,h0),w=w+Math.imul(A0,c0)|0,p=Math.imul(A0,h0),y=y+Math.imul(I0,b0)|0,w=w+Math.imul(I0,l0)|0,w=w+Math.imul(O0,b0)|0,p=p+Math.imul(O0,l0)|0;var X$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(X$>>>26)|0,X$&=67108863,y=Math.imul(F0,b0),w=Math.imul(F0,l0),w=w+Math.imul(A0,b0)|0,p=Math.imul(A0,l0);var K$=(B+y|0)+((w&8191)<<13)|0;return B=(p+(w>>>13)|0)+(K$>>>26)|0,K$&=67108863,x[0]=o0,x[1]=u0,x[2]=n0,x[3]=s0,x[4]=t0,x[5]=m0,x[6]=a0,x[7]=e0,x[8]=r0,x[9]=i0,x[10]=$$,x[11]=Q$,x[12]=Y$,x[13]=Z$,x[14]=G$,x[15]=V$,x[16]=U$,x[17]=X$,x[18]=K$,B!==0&&(x[19]=B,g.length++),g};Math.imul||(E=W);function T(j,k,g){g.negative=k.negative^j.negative,g.length=j.length+k.length;for(var _=0,N=0,x=0;x>>26)|0,N+=B>>>26,B&=67108863}g.words[x]=y,_=B,B=N}return _!==0?g.words[x]=_:g.length--,g.strip()}function D(j,k,g){var _=new C;return _.mulp(j,k,g)}U.prototype.mulTo=function(j,k){var g,_=this.length+j.length;return this.length===10&&j.length===10?g=E(this,j,k):_<63?g=W(this,j,k):_<1024?g=T(this,j,k):g=D(this,j,k),g};function C(j,k){this.x=j,this.y=k}C.prototype.makeRBT=function(j){for(var k=new Array(j),g=U.prototype._countBits(j)-1,_=0;_>=1;return _},C.prototype.permute=function(j,k,g,_,N,x){for(var B=0;B>>1)N++;return 1<>>13,g[2*x+1]=N&8191,N=N>>>13;for(x=2*k;x<_;++x)g[x]=0;G(N===0),G((N&-8192)===0)},C.prototype.stub=function(j){for(var k=new Array(j),g=0;g>=26,k+=_/67108864|0,k+=N>>>26,this.words[g]=N&67108863}return k!==0&&(this.words[g]=k,this.length++),this},U.prototype.muln=function(j){return this.clone().imuln(j)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(j){var k=H(j);if(k.length===0)return new U(1);for(var g=this,_=0;_=0);var k=j%26,g=(j-k)/26,_=67108863>>>26-k<<26-k,N;if(k!==0){var x=0;for(N=0;N>>26-k}x&&(this.words[N]=x,this.length++)}if(g!==0){for(N=this.length-1;N>=0;N--)this.words[N+g]=this.words[N];for(N=0;N=0);var _;k?_=(k-k%26)/26:_=0;var N=j%26,x=Math.min((j-N)/26,this.length),B=67108863^67108863>>>N<x)for(this.length-=x,w=0;w=0&&(p!==0||w>=_);w--){var f=this.words[w]|0;this.words[w]=p<<26-N|f>>>N,p=f&B}return y&&p!==0&&(y.words[y.length++]=p),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},U.prototype.ishrn=function(j,k,g){return G(this.negative===0),this.iushrn(j,k,g)},U.prototype.shln=function(j){return this.clone().ishln(j)},U.prototype.ushln=function(j){return this.clone().iushln(j)},U.prototype.shrn=function(j){return this.clone().ishrn(j)},U.prototype.ushrn=function(j){return this.clone().iushrn(j)},U.prototype.testn=function(j){G(typeof j=="number"&&j>=0);var k=j%26,g=(j-k)/26,_=1<=0);var k=j%26,g=(j-k)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(k!==0&&g++,this.length=Math.min(g,this.length),k!==0){var _=67108863^67108863>>>k<=67108864;k++)this.words[k]-=67108864,k===this.length-1?this.words[k+1]=1:this.words[k+1]++;return this.length=Math.max(this.length,k+1),this},U.prototype.isubn=function(j){if(G(typeof j=="number"),G(j<67108864),j<0)return this.iaddn(-j);if(this.negative!==0)return this.negative=0,this.iaddn(j),this.negative=1,this;if(this.words[0]-=j,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var k=0;k>26)-(y/67108864|0),this.words[N+g]=x&67108863}for(;N>26,this.words[N+g]=x&67108863;if(B===0)return this.strip();for(G(B===-1),B=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},U.prototype._wordDiv=function(j,k){var g=this.length-j.length,_=this.clone(),N=j,x=N.words[N.length-1]|0,B=this._countBits(x);g=26-B,g!==0&&(N=N.ushln(g),_.iushln(g),x=N.words[N.length-1]|0);var y=_.length-N.length,w;if(k!=="mod"){w=new U(null),w.length=y+1,w.words=new Array(w.length);for(var p=0;p=0;c--){var h=(_.words[N.length+c]|0)*67108864+(_.words[N.length+c-1]|0);for(h=Math.min(h/x|0,67108863),_._ishlnsubmul(N,h,c);_.negative!==0;)h--,_.negative=0,_._ishlnsubmul(N,1,c),_.isZero()||(_.negative^=1);w&&(w.words[c]=h)}return w&&w.strip(),_.strip(),k!=="div"&&g!==0&&_.iushrn(g),{div:w||null,mod:_}},U.prototype.divmod=function(j,k,g){if(G(!j.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var _,N,x;return this.negative!==0&&j.negative===0?(x=this.neg().divmod(j,k),k!=="mod"&&(_=x.div.neg()),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.iadd(j)),{div:_,mod:N}):this.negative===0&&j.negative!==0?(x=this.divmod(j.neg(),k),k!=="mod"&&(_=x.div.neg()),{div:_,mod:x.mod}):(this.negative&j.negative)!==0?(x=this.neg().divmod(j.neg(),k),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.isub(j)),{div:x.div,mod:N}):j.length>this.length||this.cmp(j)<0?{div:new U(0),mod:this}:j.length===1?k==="div"?{div:this.divn(j.words[0]),mod:null}:k==="mod"?{div:null,mod:new U(this.modn(j.words[0]))}:{div:this.divn(j.words[0]),mod:new U(this.modn(j.words[0]))}:this._wordDiv(j,k)},U.prototype.div=function(j){return this.divmod(j,"div",!1).div},U.prototype.mod=function(j){return this.divmod(j,"mod",!1).mod},U.prototype.umod=function(j){return this.divmod(j,"mod",!0).mod},U.prototype.divRound=function(j){var k=this.divmod(j);if(k.mod.isZero())return k.div;var g=k.div.negative!==0?k.mod.isub(j):k.mod,_=j.ushrn(1),N=j.andln(1),x=g.cmp(_);return x<0||N===1&&x===0?k.div:k.div.negative!==0?k.div.isubn(1):k.div.iaddn(1)},U.prototype.modn=function(j){G(j<=67108863);for(var k=(1<<26)%j,g=0,_=this.length-1;_>=0;_--)g=(k*g+(this.words[_]|0))%j;return g},U.prototype.idivn=function(j){G(j<=67108863);for(var k=0,g=this.length-1;g>=0;g--){var _=(this.words[g]|0)+k*67108864;this.words[g]=_/j|0,k=_%j}return this.strip()},U.prototype.divn=function(j){return this.clone().idivn(j)},U.prototype.egcd=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=new U(0),B=new U(1),y=0;k.isEven()&&g.isEven();)k.iushrn(1),g.iushrn(1),++y;for(var w=g.clone(),p=k.clone();!k.isZero();){for(var f=0,c=1;(k.words[0]&c)===0&&f<26;++f,c<<=1);if(f>0)for(k.iushrn(f);f-- >0;)(_.isOdd()||N.isOdd())&&(_.iadd(w),N.isub(p)),_.iushrn(1),N.iushrn(1);for(var h=0,d=1;(g.words[0]&d)===0&&h<26;++h,d<<=1);if(h>0)for(g.iushrn(h);h-- >0;)(x.isOdd()||B.isOdd())&&(x.iadd(w),B.isub(p)),x.iushrn(1),B.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(x),N.isub(B)):(g.isub(k),x.isub(_),B.isub(N))}return{a:x,b:B,gcd:g.iushln(y)}},U.prototype._invmp=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=g.clone();k.cmpn(1)>0&&g.cmpn(1)>0;){for(var B=0,y=1;(k.words[0]&y)===0&&B<26;++B,y<<=1);if(B>0)for(k.iushrn(B);B-- >0;)_.isOdd()&&_.iadd(x),_.iushrn(1);for(var w=0,p=1;(g.words[0]&p)===0&&w<26;++w,p<<=1);if(w>0)for(g.iushrn(w);w-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(N)):(g.isub(k),N.isub(_))}var f;return k.cmpn(1)===0?f=_:f=N,f.cmpn(0)<0&&f.iadd(j),f},U.prototype.gcd=function(j){if(this.isZero())return j.abs();if(j.isZero())return this.abs();var k=this.clone(),g=j.clone();k.negative=0,g.negative=0;for(var _=0;k.isEven()&&g.isEven();_++)k.iushrn(1),g.iushrn(1);do{for(;k.isEven();)k.iushrn(1);for(;g.isEven();)g.iushrn(1);var N=k.cmp(g);if(N<0){var x=k;k=g,g=x}else if(N===0||g.cmpn(1)===0)break;k.isub(g)}while(!0);return g.iushln(_)},U.prototype.invm=function(j){return this.egcd(j).a.umod(j)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(j){return this.words[0]&j},U.prototype.bincn=function(j){G(typeof j=="number");var k=j%26,g=(j-k)/26,_=1<>>26,B&=67108863,this.words[x]=B}return N!==0&&(this.words[x]=N,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(j){var k=j<0;if(this.negative!==0&&!k)return-1;if(this.negative===0&&k)return 1;this.strip();var g;if(this.length>1)g=1;else{k&&(j=-j),G(j<=67108863,"Number is too big");var _=this.words[0]|0;g=_===j?0:_j.length)return 1;if(this.length=0;g--){var _=this.words[g]|0,N=j.words[g]|0;if(_!==N){_N&&(k=1);break}}return k},U.prototype.gtn=function(j){return this.cmpn(j)===1},U.prototype.gt=function(j){return this.cmp(j)===1},U.prototype.gten=function(j){return this.cmpn(j)>=0},U.prototype.gte=function(j){return this.cmp(j)>=0},U.prototype.ltn=function(j){return this.cmpn(j)===-1},U.prototype.lt=function(j){return this.cmp(j)===-1},U.prototype.lten=function(j){return this.cmpn(j)<=0},U.prototype.lte=function(j){return this.cmp(j)<=0},U.prototype.eqn=function(j){return this.cmpn(j)===0},U.prototype.eq=function(j){return this.cmp(j)===0},U.red=function(j){return new v(j)},U.prototype.toRed=function(j){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),j.convertTo(this)._forceRed(j)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(j){return this.red=j,this},U.prototype.forceRed=function(j){return G(!this.red,"Already a number in reduction context"),this._forceRed(j)},U.prototype.redAdd=function(j){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,j)},U.prototype.redIAdd=function(j){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,j)},U.prototype.redSub=function(j){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,j)},U.prototype.redISub=function(j){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,j)},U.prototype.redShl=function(j){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,j)},U.prototype.redMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.mul(this,j)},U.prototype.redIMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.imul(this,j)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(j){return G(this.red&&!j.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,j)};var L={k256:null,p224:null,p192:null,p25519:null};function R(j,k){this.name=j,this.p=new U(k,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}R.prototype._tmp=function(){var j=new U(null);return j.words=new Array(Math.ceil(this.n/13)),j},R.prototype.ireduce=function(j){var k=j,g;do this.split(k,this.tmp),k=this.imulK(k),k=k.iadd(this.tmp),g=k.bitLength();while(g>this.n);var _=g0?k.isub(this.p):k.strip!==void 0?k.strip():k._strip(),k},R.prototype.split=function(j,k){j.iushrn(this.n,0,k)},R.prototype.imulK=function(j){return j.imul(this.k)};function P(){R.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(P,R),P.prototype.split=function(j,k){for(var g=4194303,_=Math.min(j.length,9),N=0;N<_;N++)k.words[N]=j.words[N];if(k.length=_,j.length<=9){j.words[0]=0,j.length=1;return}var x=j.words[9];for(k.words[k.length++]=x&g,N=10;N>>22,x=B}x>>>=22,j.words[N-10]=x,x===0&&j.length>10?j.length-=10:j.length-=9},P.prototype.imulK=function(j){j.words[j.length]=0,j.words[j.length+1]=0,j.length+=2;for(var k=0,g=0;g>>=26,j.words[g]=N,k=_}return k!==0&&(j.words[j.length++]=k),j},U._prime=function(j){if(L[j])return L[j];var k;if(j==="k256")k=new P;else if(j==="p224")k=new z;else if(j==="p192")k=new M;else if(j==="p25519")k=new S;else throw new Error("Unknown prime "+j);return L[j]=k,k};function v(j){if(typeof j=="string"){var k=U._prime(j);this.m=k.p,this.prime=k}else G(j.gtn(1),"modulus must be greater than 1"),this.m=j,this.prime=null}v.prototype._verify1=function(j){G(j.negative===0,"red works only with positives"),G(j.red,"red works only with red numbers")},v.prototype._verify2=function(j,k){G((j.negative|k.negative)===0,"red works only with positives"),G(j.red&&j.red===k.red,"red works only with red numbers")},v.prototype.imod=function(j){return this.prime?this.prime.ireduce(j)._forceRed(this):j.umod(this.m)._forceRed(this)},v.prototype.neg=function(j){return j.isZero()?j.clone():this.m.sub(j)._forceRed(this)},v.prototype.add=function(j,k){this._verify2(j,k);var g=j.add(k);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},v.prototype.iadd=function(j,k){this._verify2(j,k);var g=j.iadd(k);return g.cmp(this.m)>=0&&g.isub(this.m),g},v.prototype.sub=function(j,k){this._verify2(j,k);var g=j.sub(k);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},v.prototype.isub=function(j,k){this._verify2(j,k);var g=j.isub(k);return g.cmpn(0)<0&&g.iadd(this.m),g},v.prototype.shl=function(j,k){return this._verify1(j),this.imod(j.ushln(k))},v.prototype.imul=function(j,k){return this._verify2(j,k),this.imod(j.imul(k))},v.prototype.mul=function(j,k){return this._verify2(j,k),this.imod(j.mul(k))},v.prototype.isqr=function(j){return this.imul(j,j.clone())},v.prototype.sqr=function(j){return this.mul(j,j)},v.prototype.sqrt=function(j){if(j.isZero())return j.clone();var k=this.m.andln(3);if(G(k%2===1),k===3){var g=this.m.add(new U(1)).iushrn(2);return this.pow(j,g)}for(var _=this.m.subn(1),N=0;!_.isZero()&&_.andln(1)===0;)N++,_.iushrn(1);G(!_.isZero());var x=new U(1).toRed(this),B=x.redNeg(),y=this.m.subn(1).iushrn(1),w=this.m.bitLength();for(w=new U(2*w*w).toRed(this);this.pow(w,y).cmp(B)!==0;)w.redIAdd(B);for(var p=this.pow(w,_),f=this.pow(j,_.addn(1).iushrn(1)),c=this.pow(j,_),h=N;c.cmp(x)!==0;){for(var d=c,b=0;d.cmp(x)!==0;b++)d=d.redSqr();G(b=0;N--){for(var p=k.words[N],f=w-1;f>=0;f--){var c=p>>f&1;if(x!==_[0]&&(x=this.sqr(x)),c===0&&B===0){y=0;continue}B<<=1,B|=c,y++,!(y!==g&&(N!==0||f!==0))&&(x=this.mul(x,_[B]),y=0,B=0)}w=26}return x},v.prototype.convertTo=function(j){var k=j.umod(this.m);return k===j?k.clone():k},v.prototype.convertFrom=function(j){var k=j.clone();return k.red=null,k},U.mont=function(j){return new q(j)};function q(j){v.call(this,j),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(q,v),q.prototype.convertTo=function(j){return this.imod(j.ushln(this.shift))},q.prototype.convertFrom=function(j){var k=this.imod(j.mul(this.rinv));return k.red=null,k},q.prototype.imul=function(j,k){if(j.isZero()||k.isZero())return j.words[0]=0,j.length=1,j;var g=j.imul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.mul=function(j,k){if(j.isZero()||k.isZero())return new U(0)._forceRed(this);var g=j.mul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.invm=function(j){var k=this.imod(j._invmp(this.m).mul(this.r2));return k._forceRed(this)}})(typeof Q>"u"||Q,$)}}),NQ=q$({"(disabled):node_modules/crypto-browserify/index.js"(){}}),xQ=q$({"node_modules/brorand/index.js"($,Q){var Y;Q.exports=function(G){return Y||(Y=new Z(null)),Y.generate(G)};function Z(G){this.rand=G}Q.exports.Rand=Z,Z.prototype.generate=function(G){return this._rand(G)},Z.prototype._rand=function(G){var V=new F$(G);return H$.getRandomValues(V),V}}}),BQ=q$({"node_modules/miller-rabin/lib/mr.js"($,Q){var Y=_Q(),Z=xQ();function G(V){this.rand=V||new Z.Rand}Q.exports=G,G.create=function(V){return new G(V)},G.prototype._randbelow=function(V){var U=V.bitLength(),X=Math.ceil(U/8);do var K=new Y(this.rand.generate(X));while(K.cmp(V)>=0);return K},G.prototype._randrange=function(V,U){var X=U.sub(V);return V.add(this._randbelow(X))},G.prototype.test=function(V,U,X){var K=V.bitLength(),I=Y.mont(V),O=new Y(1).toRed(I);U||(U=Math.max(1,K/48|0));for(var J=V.subn(1),F=0;!J.testn(F);F++);for(var A=V.shrn(F),H=J.toRed(I),W=!0;U>0;U--){var E=this._randrange(new Y(2),J);X&&X(E);var T=E.toRed(I).redPow(A);if(!(T.cmp(O)===0||T.cmp(H)===0)){for(var D=1;D0;U--){var H=this._randrange(new Y(2),O),W=V.gcd(H);if(W.cmpn(1)!==0)return W;var E=H.toRed(K).redPow(F);if(!(E.cmp(I)===0||E.cmp(A)===0)){for(var T=1;Tz;)S.ishrn(1);if(S.isEven()&&S.iadd(X),S.testn(1)||S.iadd(K),M.cmp(K)){if(!M.cmp(I))for(;S.mod(F).cmp(A);)S.iadd(E)}else for(;S.mod(G).cmp(W);)S.iadd(E);if(v=S.shrn(1),L(v)&&L(S)&&R(v)&&R(S)&&U.test(v)&&U.test(S))return S}}}}),wQ=q$({"node_modules/diffie-hellman/lib/primes.json"($,Q){Q.exports={modp1:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},modp2:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},modp5:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},modp14:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},modp15:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},modp16:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},modp17:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},modp18:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}}}),pQ=q$({"node_modules/diffie-hellman/lib/dh.js"($,Q){var Y=gQ(),Z=BQ(),G=new Z,V=new Y(24),U=new Y(11),X=new Y(10),K=new Y(3),I=new Y(7),O=yQ(),J=g$();Q.exports=E;function F(D,C){return C=C||"utf8",F$.isBuffer(D)||(D=new F$(D,C)),this._pub=new Y(D),this}function A(D,C){return C=C||"utf8",F$.isBuffer(D)||(D=new F$(D,C)),this._priv=new Y(D),this}var H={};function W(D,C){var L=C.toString("hex"),R=[L,D.toString(16)].join("_");if(R in H)return H[R];var P=0;if(D.isEven()||!O.simpleSieve||!O.fermatTest(D)||!G.test(D))return P+=1,L==="02"||L==="05"?P+=8:P+=4,H[R]=P,P;G.test(D.shrn(1))||(P+=2);var z;switch(L){case"02":D.mod(V).cmp(U)&&(P+=8);break;case"05":z=D.mod(X),z.cmp(K)&&z.cmp(I)&&(P+=8);break;default:P+=4}return H[R]=P,P}function E(D,C,L){this.setGenerator(C),this.__prime=new Y(D),this._prime=Y.mont(this.__prime),this._primeLen=D.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,L?(this.setPublicKey=F,this.setPrivateKey=A):this._primeCode=8}Object.defineProperty(E.prototype,"verifyError",{enumerable:!0,get:function(){return typeof this._primeCode!="number"&&(this._primeCode=W(this.__prime,this.__gen)),this._primeCode}}),E.prototype.generateKeys=function(){return this._priv||(this._priv=new Y(J(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},E.prototype.computeSecret=function(D){D=new Y(D),D=D.toRed(this._prime);var C=D.redPow(this._priv).fromRed(),L=new F$(C.toArray()),R=this.getPrime();if(L.length0?_:N},U.min=function(_,N){return _.cmp(N)<0?_:N},U.prototype._init=function(_,N,x){if(typeof _=="number")return this._initNumber(_,N,x);if(typeof _=="object")return this._initArray(_,N,x);N==="hex"&&(N=16),G(N===(N|0)&&N>=2&&N<=36),_=_.toString().replace(/\s+/g,"");var B=0;_[0]==="-"&&(B++,this.negative=1),B<_.length&&(N===16?this._parseHex(_,B,x):(this._parseBase(_,N,B),x==="le"&&this._initArray(this.toArray(),N,x)))},U.prototype._initNumber=function(_,N,x){_<0&&(this.negative=1,_=-_),_<67108864?(this.words=[_&67108863],this.length=1):_<4503599627370496?(this.words=[_&67108863,_/67108864&67108863],this.length=2):(G(_<9007199254740992),this.words=[_&67108863,_/67108864&67108863,1],this.length=3),x==="le"&&this._initArray(this.toArray(),N,x)},U.prototype._initArray=function(_,N,x){if(G(typeof _.length=="number"),_.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(_.length/3),this.words=new Array(this.length);for(var B=0;B=0;B-=3)w=_[B]|_[B-1]<<8|_[B-2]<<16,this.words[y]|=w<>>26-p&67108863,p+=24,p>=26&&(p-=26,y++);else if(x==="le")for(B=0,y=0;B<_.length;B+=3)w=_[B]|_[B+1]<<8|_[B+2]<<16,this.words[y]|=w<>>26-p&67108863,p+=24,p>=26&&(p-=26,y++);return this._strip()};function K(_,N){var x=_.charCodeAt(N);if(x>=48&&x<=57)return x-48;if(x>=65&&x<=70)return x-55;if(x>=97&&x<=102)return x-87;G(!1,"Invalid character in "+_)}function I(_,N,x){var B=K(_,x);return x-1>=N&&(B|=K(_,x-1)<<4),B}U.prototype._parseHex=function(_,N,x){this.length=Math.ceil((_.length-N)/6),this.words=new Array(this.length);for(var B=0;B=N;B-=2)p=I(_,N,B)<=18?(y-=18,w+=1,this.words[w]|=p>>>26):y+=8;else{var f=_.length-N;for(B=f%2===0?N+1:N;B<_.length;B+=2)p=I(_,N,B)<=18?(y-=18,w+=1,this.words[w]|=p>>>26):y+=8}this._strip()};function O(_,N,x,B){for(var y=0,w=0,p=Math.min(_.length,x),f=N;f=49?w=c-49+10:c>=17?w=c-17+10:w=c,G(c>=0&&w1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{U.prototype[Symbol.for("nodejs.util.inspect.custom")]=F}catch{U.prototype.inspect=F}else U.prototype.inspect=F;function F(){return(this.red?""}var A=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],H=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],W=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(_,N){_=_||10,N=N|0||1;var x;if(_===16||_==="hex"){x="";for(var B=0,y=0,w=0;w>>24-B&16777215,B+=2,B>=26&&(B-=26,w--),y!==0||w!==this.length-1?x=A[6-f.length]+f+x:x=f+x}for(y!==0&&(x=y.toString(16)+x);x.length%N!==0;)x="0"+x;return this.negative!==0&&(x="-"+x),x}if(_===(_|0)&&_>=2&&_<=36){var c=H[_],h=W[_];x="";var d=this.clone();for(d.negative=0;!d.isZero();){var b=d.modrn(h).toString(_);d=d.idivn(h),d.isZero()?x=b+x:x=A[c-b.length]+b+x}for(this.isZero()&&(x="0"+x);x.length%N!==0;)x="0"+x;return this.negative!==0&&(x="-"+x),x}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var _=this.words[0];return this.length===2?_+=this.words[1]*67108864:this.length===3&&this.words[2]===1?_+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-_:_},U.prototype.toJSON=function(){return this.toString(16,2)},X&&(U.prototype.toBuffer=function(_,N){return this.toArrayLike(X,_,N)}),U.prototype.toArray=function(_,N){return this.toArrayLike(Array,_,N)};var E=function(_,N){return _.allocUnsafe?_.allocUnsafe(N):new _(N)};U.prototype.toArrayLike=function(_,N,x){this._strip();var B=this.byteLength(),y=x||Math.max(1,B);G(B<=y,"byte array longer than desired length"),G(y>0,"Requested array length <= 0");var w=E(_,y),p=N==="le"?"LE":"BE";return this["_toArrayLike"+p](w,B),w},U.prototype._toArrayLikeLE=function(_,N){for(var x=0,B=0,y=0,w=0;y>8&255),x<_.length&&(_[x++]=p>>16&255),w===6?(x<_.length&&(_[x++]=p>>24&255),B=0,w=0):(B=p>>>24,w+=2)}if(x<_.length)for(_[x++]=B;x<_.length;)_[x++]=0},U.prototype._toArrayLikeBE=function(_,N){for(var x=_.length-1,B=0,y=0,w=0;y=0&&(_[x--]=p>>8&255),x>=0&&(_[x--]=p>>16&255),w===6?(x>=0&&(_[x--]=p>>24&255),B=0,w=0):(B=p>>>24,w+=2)}if(x>=0)for(_[x--]=B;x>=0;)_[x--]=0},Math.clz32?U.prototype._countBits=function(_){return 32-Math.clz32(_)}:U.prototype._countBits=function(_){var N=_,x=0;return N>=4096&&(x+=13,N>>>=13),N>=64&&(x+=7,N>>>=7),N>=8&&(x+=4,N>>>=4),N>=2&&(x+=2,N>>>=2),x+N},U.prototype._zeroBits=function(_){if(_===0)return 26;var N=_,x=0;return(N&8191)===0&&(x+=13,N>>>=13),(N&127)===0&&(x+=7,N>>>=7),(N&15)===0&&(x+=4,N>>>=4),(N&3)===0&&(x+=2,N>>>=2),(N&1)===0&&x++,x},U.prototype.bitLength=function(){var _=this.words[this.length-1],N=this._countBits(_);return(this.length-1)*26+N};function T(_){for(var N=new Array(_.bitLength()),x=0;x>>y&1}return N}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var _=0,N=0;N_.length?this.clone().ior(_):_.clone().ior(this)},U.prototype.uor=function(_){return this.length>_.length?this.clone().iuor(_):_.clone().iuor(this)},U.prototype.iuand=function(_){var N;this.length>_.length?N=_:N=this;for(var x=0;x_.length?this.clone().iand(_):_.clone().iand(this)},U.prototype.uand=function(_){return this.length>_.length?this.clone().iuand(_):_.clone().iuand(this)},U.prototype.iuxor=function(_){var N,x;this.length>_.length?(N=this,x=_):(N=_,x=this);for(var B=0;B_.length?this.clone().ixor(_):_.clone().ixor(this)},U.prototype.uxor=function(_){return this.length>_.length?this.clone().iuxor(_):_.clone().iuxor(this)},U.prototype.inotn=function(_){G(typeof _=="number"&&_>=0);var N=Math.ceil(_/26)|0,x=_%26;this._expand(N),x>0&&N--;for(var B=0;B0&&(this.words[B]=~this.words[B]&67108863>>26-x),this._strip()},U.prototype.notn=function(_){return this.clone().inotn(_)},U.prototype.setn=function(_,N){G(typeof _=="number"&&_>=0);var x=_/26|0,B=_%26;return this._expand(x+1),N?this.words[x]=this.words[x]|1<_.length?(x=this,B=_):(x=_,B=this);for(var y=0,w=0;w>>26;for(;y!==0&&w>>26;if(this.length=x.length,y!==0)this.words[this.length]=y,this.length++;else if(x!==this)for(;w_.length?this.clone().iadd(_):_.clone().iadd(this)},U.prototype.isub=function(_){if(_.negative!==0){_.negative=0;var N=this.iadd(_);return _.negative=1,N._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(_),this.negative=1,this._normSign();var x=this.cmp(_);if(x===0)return this.negative=0,this.length=1,this.words[0]=0,this;var B,y;x>0?(B=this,y=_):(B=_,y=this);for(var w=0,p=0;p>26,this.words[p]=N&67108863;for(;w!==0&&p>26,this.words[p]=N&67108863;if(w===0&&p>>26,b=c&67108863,l=Math.min(h,N.length-1),o=Math.max(0,h-_.length+1);o<=l;o++){var u=h-o|0;y=_.words[u]|0,w=N.words[o]|0,p=y*w+b,d+=p/67108864|0,b=p&67108863}x.words[h]=b|0,c=d|0}return c!==0?x.words[h]=c|0:x.length--,x._strip()}var C=function(_,N,x){var B=_.words,y=N.words,w=x.words,p=0,f,c,h,d=B[0]|0,b=d&8191,l=d>>>13,o=B[1]|0,u=o&8191,n=o>>>13,s=B[2]|0,t=s&8191,m=s>>>13,a=B[3]|0,e=a&8191,r=a>>>13,i=B[4]|0,$0=i&8191,Q0=i>>>13,Y0=B[5]|0,Z0=Y0&8191,G0=Y0>>>13,V0=B[6]|0,U0=V0&8191,X0=V0>>>13,K0=B[7]|0,I0=K0&8191,O0=K0>>>13,J0=B[8]|0,F0=J0&8191,A0=J0>>>13,H0=B[9]|0,W0=H0&8191,E0=H0>>>13,T0=y[0]|0,D0=T0&8191,C0=T0>>>13,L0=y[1]|0,R0=L0&8191,P0=L0>>>13,z0=y[2]|0,M0=z0&8191,S0=z0>>>13,v0=y[3]|0,q0=v0&8191,j0=v0>>>13,k0=y[4]|0,g0=k0&8191,_0=k0>>>13,N0=y[5]|0,x0=N0&8191,B0=N0>>>13,y0=y[6]|0,w0=y0&8191,p0=y0>>>13,f0=y[7]|0,c0=f0&8191,h0=f0>>>13,d0=y[8]|0,b0=d0&8191,l0=d0>>>13,o0=y[9]|0,u0=o0&8191,n0=o0>>>13;x.negative=_.negative^N.negative,x.length=19,f=Math.imul(b,D0),c=Math.imul(b,C0),c=c+Math.imul(l,D0)|0,h=Math.imul(l,C0);var s0=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(s0>>>26)|0,s0&=67108863,f=Math.imul(u,D0),c=Math.imul(u,C0),c=c+Math.imul(n,D0)|0,h=Math.imul(n,C0),f=f+Math.imul(b,R0)|0,c=c+Math.imul(b,P0)|0,c=c+Math.imul(l,R0)|0,h=h+Math.imul(l,P0)|0;var t0=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(t0>>>26)|0,t0&=67108863,f=Math.imul(t,D0),c=Math.imul(t,C0),c=c+Math.imul(m,D0)|0,h=Math.imul(m,C0),f=f+Math.imul(u,R0)|0,c=c+Math.imul(u,P0)|0,c=c+Math.imul(n,R0)|0,h=h+Math.imul(n,P0)|0,f=f+Math.imul(b,M0)|0,c=c+Math.imul(b,S0)|0,c=c+Math.imul(l,M0)|0,h=h+Math.imul(l,S0)|0;var m0=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(m0>>>26)|0,m0&=67108863,f=Math.imul(e,D0),c=Math.imul(e,C0),c=c+Math.imul(r,D0)|0,h=Math.imul(r,C0),f=f+Math.imul(t,R0)|0,c=c+Math.imul(t,P0)|0,c=c+Math.imul(m,R0)|0,h=h+Math.imul(m,P0)|0,f=f+Math.imul(u,M0)|0,c=c+Math.imul(u,S0)|0,c=c+Math.imul(n,M0)|0,h=h+Math.imul(n,S0)|0,f=f+Math.imul(b,q0)|0,c=c+Math.imul(b,j0)|0,c=c+Math.imul(l,q0)|0,h=h+Math.imul(l,j0)|0;var a0=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(a0>>>26)|0,a0&=67108863,f=Math.imul($0,D0),c=Math.imul($0,C0),c=c+Math.imul(Q0,D0)|0,h=Math.imul(Q0,C0),f=f+Math.imul(e,R0)|0,c=c+Math.imul(e,P0)|0,c=c+Math.imul(r,R0)|0,h=h+Math.imul(r,P0)|0,f=f+Math.imul(t,M0)|0,c=c+Math.imul(t,S0)|0,c=c+Math.imul(m,M0)|0,h=h+Math.imul(m,S0)|0,f=f+Math.imul(u,q0)|0,c=c+Math.imul(u,j0)|0,c=c+Math.imul(n,q0)|0,h=h+Math.imul(n,j0)|0,f=f+Math.imul(b,g0)|0,c=c+Math.imul(b,_0)|0,c=c+Math.imul(l,g0)|0,h=h+Math.imul(l,_0)|0;var e0=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(e0>>>26)|0,e0&=67108863,f=Math.imul(Z0,D0),c=Math.imul(Z0,C0),c=c+Math.imul(G0,D0)|0,h=Math.imul(G0,C0),f=f+Math.imul($0,R0)|0,c=c+Math.imul($0,P0)|0,c=c+Math.imul(Q0,R0)|0,h=h+Math.imul(Q0,P0)|0,f=f+Math.imul(e,M0)|0,c=c+Math.imul(e,S0)|0,c=c+Math.imul(r,M0)|0,h=h+Math.imul(r,S0)|0,f=f+Math.imul(t,q0)|0,c=c+Math.imul(t,j0)|0,c=c+Math.imul(m,q0)|0,h=h+Math.imul(m,j0)|0,f=f+Math.imul(u,g0)|0,c=c+Math.imul(u,_0)|0,c=c+Math.imul(n,g0)|0,h=h+Math.imul(n,_0)|0,f=f+Math.imul(b,x0)|0,c=c+Math.imul(b,B0)|0,c=c+Math.imul(l,x0)|0,h=h+Math.imul(l,B0)|0;var r0=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(r0>>>26)|0,r0&=67108863,f=Math.imul(U0,D0),c=Math.imul(U0,C0),c=c+Math.imul(X0,D0)|0,h=Math.imul(X0,C0),f=f+Math.imul(Z0,R0)|0,c=c+Math.imul(Z0,P0)|0,c=c+Math.imul(G0,R0)|0,h=h+Math.imul(G0,P0)|0,f=f+Math.imul($0,M0)|0,c=c+Math.imul($0,S0)|0,c=c+Math.imul(Q0,M0)|0,h=h+Math.imul(Q0,S0)|0,f=f+Math.imul(e,q0)|0,c=c+Math.imul(e,j0)|0,c=c+Math.imul(r,q0)|0,h=h+Math.imul(r,j0)|0,f=f+Math.imul(t,g0)|0,c=c+Math.imul(t,_0)|0,c=c+Math.imul(m,g0)|0,h=h+Math.imul(m,_0)|0,f=f+Math.imul(u,x0)|0,c=c+Math.imul(u,B0)|0,c=c+Math.imul(n,x0)|0,h=h+Math.imul(n,B0)|0,f=f+Math.imul(b,w0)|0,c=c+Math.imul(b,p0)|0,c=c+Math.imul(l,w0)|0,h=h+Math.imul(l,p0)|0;var i0=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(i0>>>26)|0,i0&=67108863,f=Math.imul(I0,D0),c=Math.imul(I0,C0),c=c+Math.imul(O0,D0)|0,h=Math.imul(O0,C0),f=f+Math.imul(U0,R0)|0,c=c+Math.imul(U0,P0)|0,c=c+Math.imul(X0,R0)|0,h=h+Math.imul(X0,P0)|0,f=f+Math.imul(Z0,M0)|0,c=c+Math.imul(Z0,S0)|0,c=c+Math.imul(G0,M0)|0,h=h+Math.imul(G0,S0)|0,f=f+Math.imul($0,q0)|0,c=c+Math.imul($0,j0)|0,c=c+Math.imul(Q0,q0)|0,h=h+Math.imul(Q0,j0)|0,f=f+Math.imul(e,g0)|0,c=c+Math.imul(e,_0)|0,c=c+Math.imul(r,g0)|0,h=h+Math.imul(r,_0)|0,f=f+Math.imul(t,x0)|0,c=c+Math.imul(t,B0)|0,c=c+Math.imul(m,x0)|0,h=h+Math.imul(m,B0)|0,f=f+Math.imul(u,w0)|0,c=c+Math.imul(u,p0)|0,c=c+Math.imul(n,w0)|0,h=h+Math.imul(n,p0)|0,f=f+Math.imul(b,c0)|0,c=c+Math.imul(b,h0)|0,c=c+Math.imul(l,c0)|0,h=h+Math.imul(l,h0)|0;var $$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+($$>>>26)|0,$$&=67108863,f=Math.imul(F0,D0),c=Math.imul(F0,C0),c=c+Math.imul(A0,D0)|0,h=Math.imul(A0,C0),f=f+Math.imul(I0,R0)|0,c=c+Math.imul(I0,P0)|0,c=c+Math.imul(O0,R0)|0,h=h+Math.imul(O0,P0)|0,f=f+Math.imul(U0,M0)|0,c=c+Math.imul(U0,S0)|0,c=c+Math.imul(X0,M0)|0,h=h+Math.imul(X0,S0)|0,f=f+Math.imul(Z0,q0)|0,c=c+Math.imul(Z0,j0)|0,c=c+Math.imul(G0,q0)|0,h=h+Math.imul(G0,j0)|0,f=f+Math.imul($0,g0)|0,c=c+Math.imul($0,_0)|0,c=c+Math.imul(Q0,g0)|0,h=h+Math.imul(Q0,_0)|0,f=f+Math.imul(e,x0)|0,c=c+Math.imul(e,B0)|0,c=c+Math.imul(r,x0)|0,h=h+Math.imul(r,B0)|0,f=f+Math.imul(t,w0)|0,c=c+Math.imul(t,p0)|0,c=c+Math.imul(m,w0)|0,h=h+Math.imul(m,p0)|0,f=f+Math.imul(u,c0)|0,c=c+Math.imul(u,h0)|0,c=c+Math.imul(n,c0)|0,h=h+Math.imul(n,h0)|0,f=f+Math.imul(b,b0)|0,c=c+Math.imul(b,l0)|0,c=c+Math.imul(l,b0)|0,h=h+Math.imul(l,l0)|0;var Q$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,f=Math.imul(W0,D0),c=Math.imul(W0,C0),c=c+Math.imul(E0,D0)|0,h=Math.imul(E0,C0),f=f+Math.imul(F0,R0)|0,c=c+Math.imul(F0,P0)|0,c=c+Math.imul(A0,R0)|0,h=h+Math.imul(A0,P0)|0,f=f+Math.imul(I0,M0)|0,c=c+Math.imul(I0,S0)|0,c=c+Math.imul(O0,M0)|0,h=h+Math.imul(O0,S0)|0,f=f+Math.imul(U0,q0)|0,c=c+Math.imul(U0,j0)|0,c=c+Math.imul(X0,q0)|0,h=h+Math.imul(X0,j0)|0,f=f+Math.imul(Z0,g0)|0,c=c+Math.imul(Z0,_0)|0,c=c+Math.imul(G0,g0)|0,h=h+Math.imul(G0,_0)|0,f=f+Math.imul($0,x0)|0,c=c+Math.imul($0,B0)|0,c=c+Math.imul(Q0,x0)|0,h=h+Math.imul(Q0,B0)|0,f=f+Math.imul(e,w0)|0,c=c+Math.imul(e,p0)|0,c=c+Math.imul(r,w0)|0,h=h+Math.imul(r,p0)|0,f=f+Math.imul(t,c0)|0,c=c+Math.imul(t,h0)|0,c=c+Math.imul(m,c0)|0,h=h+Math.imul(m,h0)|0,f=f+Math.imul(u,b0)|0,c=c+Math.imul(u,l0)|0,c=c+Math.imul(n,b0)|0,h=h+Math.imul(n,l0)|0,f=f+Math.imul(b,u0)|0,c=c+Math.imul(b,n0)|0,c=c+Math.imul(l,u0)|0,h=h+Math.imul(l,n0)|0;var Y$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,f=Math.imul(W0,R0),c=Math.imul(W0,P0),c=c+Math.imul(E0,R0)|0,h=Math.imul(E0,P0),f=f+Math.imul(F0,M0)|0,c=c+Math.imul(F0,S0)|0,c=c+Math.imul(A0,M0)|0,h=h+Math.imul(A0,S0)|0,f=f+Math.imul(I0,q0)|0,c=c+Math.imul(I0,j0)|0,c=c+Math.imul(O0,q0)|0,h=h+Math.imul(O0,j0)|0,f=f+Math.imul(U0,g0)|0,c=c+Math.imul(U0,_0)|0,c=c+Math.imul(X0,g0)|0,h=h+Math.imul(X0,_0)|0,f=f+Math.imul(Z0,x0)|0,c=c+Math.imul(Z0,B0)|0,c=c+Math.imul(G0,x0)|0,h=h+Math.imul(G0,B0)|0,f=f+Math.imul($0,w0)|0,c=c+Math.imul($0,p0)|0,c=c+Math.imul(Q0,w0)|0,h=h+Math.imul(Q0,p0)|0,f=f+Math.imul(e,c0)|0,c=c+Math.imul(e,h0)|0,c=c+Math.imul(r,c0)|0,h=h+Math.imul(r,h0)|0,f=f+Math.imul(t,b0)|0,c=c+Math.imul(t,l0)|0,c=c+Math.imul(m,b0)|0,h=h+Math.imul(m,l0)|0,f=f+Math.imul(u,u0)|0,c=c+Math.imul(u,n0)|0,c=c+Math.imul(n,u0)|0,h=h+Math.imul(n,n0)|0;var Z$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,f=Math.imul(W0,M0),c=Math.imul(W0,S0),c=c+Math.imul(E0,M0)|0,h=Math.imul(E0,S0),f=f+Math.imul(F0,q0)|0,c=c+Math.imul(F0,j0)|0,c=c+Math.imul(A0,q0)|0,h=h+Math.imul(A0,j0)|0,f=f+Math.imul(I0,g0)|0,c=c+Math.imul(I0,_0)|0,c=c+Math.imul(O0,g0)|0,h=h+Math.imul(O0,_0)|0,f=f+Math.imul(U0,x0)|0,c=c+Math.imul(U0,B0)|0,c=c+Math.imul(X0,x0)|0,h=h+Math.imul(X0,B0)|0,f=f+Math.imul(Z0,w0)|0,c=c+Math.imul(Z0,p0)|0,c=c+Math.imul(G0,w0)|0,h=h+Math.imul(G0,p0)|0,f=f+Math.imul($0,c0)|0,c=c+Math.imul($0,h0)|0,c=c+Math.imul(Q0,c0)|0,h=h+Math.imul(Q0,h0)|0,f=f+Math.imul(e,b0)|0,c=c+Math.imul(e,l0)|0,c=c+Math.imul(r,b0)|0,h=h+Math.imul(r,l0)|0,f=f+Math.imul(t,u0)|0,c=c+Math.imul(t,n0)|0,c=c+Math.imul(m,u0)|0,h=h+Math.imul(m,n0)|0;var G$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(G$>>>26)|0,G$&=67108863,f=Math.imul(W0,q0),c=Math.imul(W0,j0),c=c+Math.imul(E0,q0)|0,h=Math.imul(E0,j0),f=f+Math.imul(F0,g0)|0,c=c+Math.imul(F0,_0)|0,c=c+Math.imul(A0,g0)|0,h=h+Math.imul(A0,_0)|0,f=f+Math.imul(I0,x0)|0,c=c+Math.imul(I0,B0)|0,c=c+Math.imul(O0,x0)|0,h=h+Math.imul(O0,B0)|0,f=f+Math.imul(U0,w0)|0,c=c+Math.imul(U0,p0)|0,c=c+Math.imul(X0,w0)|0,h=h+Math.imul(X0,p0)|0,f=f+Math.imul(Z0,c0)|0,c=c+Math.imul(Z0,h0)|0,c=c+Math.imul(G0,c0)|0,h=h+Math.imul(G0,h0)|0,f=f+Math.imul($0,b0)|0,c=c+Math.imul($0,l0)|0,c=c+Math.imul(Q0,b0)|0,h=h+Math.imul(Q0,l0)|0,f=f+Math.imul(e,u0)|0,c=c+Math.imul(e,n0)|0,c=c+Math.imul(r,u0)|0,h=h+Math.imul(r,n0)|0;var V$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(V$>>>26)|0,V$&=67108863,f=Math.imul(W0,g0),c=Math.imul(W0,_0),c=c+Math.imul(E0,g0)|0,h=Math.imul(E0,_0),f=f+Math.imul(F0,x0)|0,c=c+Math.imul(F0,B0)|0,c=c+Math.imul(A0,x0)|0,h=h+Math.imul(A0,B0)|0,f=f+Math.imul(I0,w0)|0,c=c+Math.imul(I0,p0)|0,c=c+Math.imul(O0,w0)|0,h=h+Math.imul(O0,p0)|0,f=f+Math.imul(U0,c0)|0,c=c+Math.imul(U0,h0)|0,c=c+Math.imul(X0,c0)|0,h=h+Math.imul(X0,h0)|0,f=f+Math.imul(Z0,b0)|0,c=c+Math.imul(Z0,l0)|0,c=c+Math.imul(G0,b0)|0,h=h+Math.imul(G0,l0)|0,f=f+Math.imul($0,u0)|0,c=c+Math.imul($0,n0)|0,c=c+Math.imul(Q0,u0)|0,h=h+Math.imul(Q0,n0)|0;var U$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(U$>>>26)|0,U$&=67108863,f=Math.imul(W0,x0),c=Math.imul(W0,B0),c=c+Math.imul(E0,x0)|0,h=Math.imul(E0,B0),f=f+Math.imul(F0,w0)|0,c=c+Math.imul(F0,p0)|0,c=c+Math.imul(A0,w0)|0,h=h+Math.imul(A0,p0)|0,f=f+Math.imul(I0,c0)|0,c=c+Math.imul(I0,h0)|0,c=c+Math.imul(O0,c0)|0,h=h+Math.imul(O0,h0)|0,f=f+Math.imul(U0,b0)|0,c=c+Math.imul(U0,l0)|0,c=c+Math.imul(X0,b0)|0,h=h+Math.imul(X0,l0)|0,f=f+Math.imul(Z0,u0)|0,c=c+Math.imul(Z0,n0)|0,c=c+Math.imul(G0,u0)|0,h=h+Math.imul(G0,n0)|0;var X$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(X$>>>26)|0,X$&=67108863,f=Math.imul(W0,w0),c=Math.imul(W0,p0),c=c+Math.imul(E0,w0)|0,h=Math.imul(E0,p0),f=f+Math.imul(F0,c0)|0,c=c+Math.imul(F0,h0)|0,c=c+Math.imul(A0,c0)|0,h=h+Math.imul(A0,h0)|0,f=f+Math.imul(I0,b0)|0,c=c+Math.imul(I0,l0)|0,c=c+Math.imul(O0,b0)|0,h=h+Math.imul(O0,l0)|0,f=f+Math.imul(U0,u0)|0,c=c+Math.imul(U0,n0)|0,c=c+Math.imul(X0,u0)|0,h=h+Math.imul(X0,n0)|0;var K$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(K$>>>26)|0,K$&=67108863,f=Math.imul(W0,c0),c=Math.imul(W0,h0),c=c+Math.imul(E0,c0)|0,h=Math.imul(E0,h0),f=f+Math.imul(F0,b0)|0,c=c+Math.imul(F0,l0)|0,c=c+Math.imul(A0,b0)|0,h=h+Math.imul(A0,l0)|0,f=f+Math.imul(I0,u0)|0,c=c+Math.imul(I0,n0)|0,c=c+Math.imul(O0,u0)|0,h=h+Math.imul(O0,n0)|0;var I$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(I$>>>26)|0,I$&=67108863,f=Math.imul(W0,b0),c=Math.imul(W0,l0),c=c+Math.imul(E0,b0)|0,h=Math.imul(E0,l0),f=f+Math.imul(F0,u0)|0,c=c+Math.imul(F0,n0)|0,c=c+Math.imul(A0,u0)|0,h=h+Math.imul(A0,n0)|0;var O$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(O$>>>26)|0,O$&=67108863,f=Math.imul(W0,u0),c=Math.imul(W0,n0),c=c+Math.imul(E0,u0)|0,h=Math.imul(E0,n0);var J$=(p+f|0)+((c&8191)<<13)|0;return p=(h+(c>>>13)|0)+(J$>>>26)|0,J$&=67108863,w[0]=s0,w[1]=t0,w[2]=m0,w[3]=a0,w[4]=e0,w[5]=r0,w[6]=i0,w[7]=$$,w[8]=Q$,w[9]=Y$,w[10]=Z$,w[11]=G$,w[12]=V$,w[13]=U$,w[14]=X$,w[15]=K$,w[16]=I$,w[17]=O$,w[18]=J$,p!==0&&(w[19]=p,x.length++),x};Math.imul||(C=D);function L(_,N,x){x.negative=N.negative^_.negative,x.length=_.length+N.length;for(var B=0,y=0,w=0;w>>26)|0,y+=p>>>26,p&=67108863}x.words[w]=f,B=p,p=y}return B!==0?x.words[w]=B:x.length--,x._strip()}function R(_,N,x){return L(_,N,x)}U.prototype.mulTo=function(_,N){var x,B=this.length+_.length;return this.length===10&&_.length===10?x=C(this,_,N):B<63?x=D(this,_,N):B<1024?x=L(this,_,N):x=R(this,_,N),x};function P(_,N){this.x=_,this.y=N}P.prototype.makeRBT=function(_){for(var N=new Array(_),x=U.prototype._countBits(_)-1,B=0;B<_;B++)N[B]=this.revBin(B,x,_);return N},P.prototype.revBin=function(_,N,x){if(_===0||_===x-1)return _;for(var B=0,y=0;y>=1;return B},P.prototype.permute=function(_,N,x,B,y,w){for(var p=0;p>>1)y++;return 1<>>13,x[2*w+1]=y&8191,y=y>>>13;for(w=2*N;w>=26,x+=y/67108864|0,x+=w>>>26,this.words[B]=w&67108863}return x!==0&&(this.words[B]=x,this.length++),N?this.ineg():this},U.prototype.muln=function(_){return this.clone().imuln(_)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(_){var N=T(_);if(N.length===0)return new U(1);for(var x=this,B=0;B=0);var N=_%26,x=(_-N)/26,B=67108863>>>26-N<<26-N,y;if(N!==0){var w=0;for(y=0;y>>26-N}w&&(this.words[y]=w,this.length++)}if(x!==0){for(y=this.length-1;y>=0;y--)this.words[y+x]=this.words[y];for(y=0;y=0);var B;N?B=(N-N%26)/26:B=0;var y=_%26,w=Math.min((_-y)/26,this.length),p=67108863^67108863>>>y<w)for(this.length-=w,c=0;c=0&&(h!==0||c>=B);c--){var d=this.words[c]|0;this.words[c]=h<<26-y|d>>>y,h=d&p}return f&&h!==0&&(f.words[f.length++]=h),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},U.prototype.ishrn=function(_,N,x){return G(this.negative===0),this.iushrn(_,N,x)},U.prototype.shln=function(_){return this.clone().ishln(_)},U.prototype.ushln=function(_){return this.clone().iushln(_)},U.prototype.shrn=function(_){return this.clone().ishrn(_)},U.prototype.ushrn=function(_){return this.clone().iushrn(_)},U.prototype.testn=function(_){G(typeof _=="number"&&_>=0);var N=_%26,x=(_-N)/26,B=1<=0);var N=_%26,x=(_-N)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=x)return this;if(N!==0&&x++,this.length=Math.min(x,this.length),N!==0){var B=67108863^67108863>>>N<=67108864;N++)this.words[N]-=67108864,N===this.length-1?this.words[N+1]=1:this.words[N+1]++;return this.length=Math.max(this.length,N+1),this},U.prototype.isubn=function(_){if(G(typeof _=="number"),G(_<67108864),_<0)return this.iaddn(-_);if(this.negative!==0)return this.negative=0,this.iaddn(_),this.negative=1,this;if(this.words[0]-=_,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var N=0;N>26)-(f/67108864|0),this.words[y+x]=w&67108863}for(;y>26,this.words[y+x]=w&67108863;if(p===0)return this._strip();for(G(p===-1),p=0,y=0;y>26,this.words[y]=w&67108863;return this.negative=1,this._strip()},U.prototype._wordDiv=function(_,N){var x=this.length-_.length,B=this.clone(),y=_,w=y.words[y.length-1]|0,p=this._countBits(w);x=26-p,x!==0&&(y=y.ushln(x),B.iushln(x),w=y.words[y.length-1]|0);var f=B.length-y.length,c;if(N!=="mod"){c=new U(null),c.length=f+1,c.words=new Array(c.length);for(var h=0;h=0;b--){var l=(B.words[y.length+b]|0)*67108864+(B.words[y.length+b-1]|0);for(l=Math.min(l/w|0,67108863),B._ishlnsubmul(y,l,b);B.negative!==0;)l--,B.negative=0,B._ishlnsubmul(y,1,b),B.isZero()||(B.negative^=1);c&&(c.words[b]=l)}return c&&c._strip(),B._strip(),N!=="div"&&x!==0&&B.iushrn(x),{div:c||null,mod:B}},U.prototype.divmod=function(_,N,x){if(G(!_.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var B,y,w;return this.negative!==0&&_.negative===0?(w=this.neg().divmod(_,N),N!=="mod"&&(B=w.div.neg()),N!=="div"&&(y=w.mod.neg(),x&&y.negative!==0&&y.iadd(_)),{div:B,mod:y}):this.negative===0&&_.negative!==0?(w=this.divmod(_.neg(),N),N!=="mod"&&(B=w.div.neg()),{div:B,mod:w.mod}):(this.negative&_.negative)!==0?(w=this.neg().divmod(_.neg(),N),N!=="div"&&(y=w.mod.neg(),x&&y.negative!==0&&y.isub(_)),{div:w.div,mod:y}):_.length>this.length||this.cmp(_)<0?{div:new U(0),mod:this}:_.length===1?N==="div"?{div:this.divn(_.words[0]),mod:null}:N==="mod"?{div:null,mod:new U(this.modrn(_.words[0]))}:{div:this.divn(_.words[0]),mod:new U(this.modrn(_.words[0]))}:this._wordDiv(_,N)},U.prototype.div=function(_){return this.divmod(_,"div",!1).div},U.prototype.mod=function(_){return this.divmod(_,"mod",!1).mod},U.prototype.umod=function(_){return this.divmod(_,"mod",!0).mod},U.prototype.divRound=function(_){var N=this.divmod(_);if(N.mod.isZero())return N.div;var x=N.div.negative!==0?N.mod.isub(_):N.mod,B=_.ushrn(1),y=_.andln(1),w=x.cmp(B);return w<0||y===1&&w===0?N.div:N.div.negative!==0?N.div.isubn(1):N.div.iaddn(1)},U.prototype.modrn=function(_){var N=_<0;N&&(_=-_),G(_<=67108863);for(var x=(1<<26)%_,B=0,y=this.length-1;y>=0;y--)B=(x*B+(this.words[y]|0))%_;return N?-B:B},U.prototype.modn=function(_){return this.modrn(_)},U.prototype.idivn=function(_){var N=_<0;N&&(_=-_),G(_<=67108863);for(var x=0,B=this.length-1;B>=0;B--){var y=(this.words[B]|0)+x*67108864;this.words[B]=y/_|0,x=y%_}return this._strip(),N?this.ineg():this},U.prototype.divn=function(_){return this.clone().idivn(_)},U.prototype.egcd=function(_){G(_.negative===0),G(!_.isZero());var N=this,x=_.clone();N.negative!==0?N=N.umod(_):N=N.clone();for(var B=new U(1),y=new U(0),w=new U(0),p=new U(1),f=0;N.isEven()&&x.isEven();)N.iushrn(1),x.iushrn(1),++f;for(var c=x.clone(),h=N.clone();!N.isZero();){for(var d=0,b=1;(N.words[0]&b)===0&&d<26;++d,b<<=1);if(d>0)for(N.iushrn(d);d-- >0;)(B.isOdd()||y.isOdd())&&(B.iadd(c),y.isub(h)),B.iushrn(1),y.iushrn(1);for(var l=0,o=1;(x.words[0]&o)===0&&l<26;++l,o<<=1);if(l>0)for(x.iushrn(l);l-- >0;)(w.isOdd()||p.isOdd())&&(w.iadd(c),p.isub(h)),w.iushrn(1),p.iushrn(1);N.cmp(x)>=0?(N.isub(x),B.isub(w),y.isub(p)):(x.isub(N),w.isub(B),p.isub(y))}return{a:w,b:p,gcd:x.iushln(f)}},U.prototype._invmp=function(_){G(_.negative===0),G(!_.isZero());var N=this,x=_.clone();N.negative!==0?N=N.umod(_):N=N.clone();for(var B=new U(1),y=new U(0),w=x.clone();N.cmpn(1)>0&&x.cmpn(1)>0;){for(var p=0,f=1;(N.words[0]&f)===0&&p<26;++p,f<<=1);if(p>0)for(N.iushrn(p);p-- >0;)B.isOdd()&&B.iadd(w),B.iushrn(1);for(var c=0,h=1;(x.words[0]&h)===0&&c<26;++c,h<<=1);if(c>0)for(x.iushrn(c);c-- >0;)y.isOdd()&&y.iadd(w),y.iushrn(1);N.cmp(x)>=0?(N.isub(x),B.isub(y)):(x.isub(N),y.isub(B))}var d;return N.cmpn(1)===0?d=B:d=y,d.cmpn(0)<0&&d.iadd(_),d},U.prototype.gcd=function(_){if(this.isZero())return _.abs();if(_.isZero())return this.abs();var N=this.clone(),x=_.clone();N.negative=0,x.negative=0;for(var B=0;N.isEven()&&x.isEven();B++)N.iushrn(1),x.iushrn(1);do{for(;N.isEven();)N.iushrn(1);for(;x.isEven();)x.iushrn(1);var y=N.cmp(x);if(y<0){var w=N;N=x,x=w}else if(y===0||x.cmpn(1)===0)break;N.isub(x)}while(!0);return x.iushln(B)},U.prototype.invm=function(_){return this.egcd(_).a.umod(_)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(_){return this.words[0]&_},U.prototype.bincn=function(_){G(typeof _=="number");var N=_%26,x=(_-N)/26,B=1<>>26,p&=67108863,this.words[w]=p}return y!==0&&(this.words[w]=y,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(_){var N=_<0;if(this.negative!==0&&!N)return-1;if(this.negative===0&&N)return 1;this._strip();var x;if(this.length>1)x=1;else{N&&(_=-_),G(_<=67108863,"Number is too big");var B=this.words[0]|0;x=B===_?0:B<_?-1:1}return this.negative!==0?-x|0:x},U.prototype.cmp=function(_){if(this.negative!==0&&_.negative===0)return-1;if(this.negative===0&&_.negative!==0)return 1;var N=this.ucmp(_);return this.negative!==0?-N|0:N},U.prototype.ucmp=function(_){if(this.length>_.length)return 1;if(this.length<_.length)return-1;for(var N=0,x=this.length-1;x>=0;x--){var B=this.words[x]|0,y=_.words[x]|0;if(B!==y){By&&(N=1);break}}return N},U.prototype.gtn=function(_){return this.cmpn(_)===1},U.prototype.gt=function(_){return this.cmp(_)===1},U.prototype.gten=function(_){return this.cmpn(_)>=0},U.prototype.gte=function(_){return this.cmp(_)>=0},U.prototype.ltn=function(_){return this.cmpn(_)===-1},U.prototype.lt=function(_){return this.cmp(_)===-1},U.prototype.lten=function(_){return this.cmpn(_)<=0},U.prototype.lte=function(_){return this.cmp(_)<=0},U.prototype.eqn=function(_){return this.cmpn(_)===0},U.prototype.eq=function(_){return this.cmp(_)===0},U.red=function(_){return new k(_)},U.prototype.toRed=function(_){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),_.convertTo(this)._forceRed(_)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(_){return this.red=_,this},U.prototype.forceRed=function(_){return G(!this.red,"Already a number in reduction context"),this._forceRed(_)},U.prototype.redAdd=function(_){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,_)},U.prototype.redIAdd=function(_){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,_)},U.prototype.redSub=function(_){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,_)},U.prototype.redISub=function(_){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,_)},U.prototype.redShl=function(_){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,_)},U.prototype.redMul=function(_){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,_),this.red.mul(this,_)},U.prototype.redIMul=function(_){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,_),this.red.imul(this,_)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(_){return G(this.red&&!_.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,_)};var z={k256:null,p224:null,p192:null,p25519:null};function M(_,N){this.name=_,this.p=new U(N,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}M.prototype._tmp=function(){var _=new U(null);return _.words=new Array(Math.ceil(this.n/13)),_},M.prototype.ireduce=function(_){var N=_,x;do this.split(N,this.tmp),N=this.imulK(N),N=N.iadd(this.tmp),x=N.bitLength();while(x>this.n);var B=x0?N.isub(this.p):N.strip!==void 0?N.strip():N._strip(),N},M.prototype.split=function(_,N){_.iushrn(this.n,0,N)},M.prototype.imulK=function(_){return _.imul(this.k)};function S(){M.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(S,M),S.prototype.split=function(_,N){for(var x=4194303,B=Math.min(_.length,9),y=0;y>>22,w=p}w>>>=22,_.words[y-10]=w,w===0&&_.length>10?_.length-=10:_.length-=9},S.prototype.imulK=function(_){_.words[_.length]=0,_.words[_.length+1]=0,_.length+=2;for(var N=0,x=0;x<_.length;x++){var B=_.words[x]|0;N+=B*977,_.words[x]=N&67108863,N=B*64+(N/67108864|0)}return _.words[_.length-1]===0&&(_.length--,_.words[_.length-1]===0&&_.length--),_};function v(){M.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}V(v,M);function q(){M.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}V(q,M);function j(){M.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}V(j,M),j.prototype.imulK=function(_){for(var N=0,x=0;x<_.length;x++){var B=(_.words[x]|0)*19+N,y=B&67108863;B>>>=26,_.words[x]=y,N=B}return N!==0&&(_.words[_.length++]=N),_},U._prime=function(_){if(z[_])return z[_];var N;if(_==="k256")N=new S;else if(_==="p224")N=new v;else if(_==="p192")N=new q;else if(_==="p25519")N=new j;else throw new Error("Unknown prime "+_);return z[_]=N,N};function k(_){if(typeof _=="string"){var N=U._prime(_);this.m=N.p,this.prime=N}else G(_.gtn(1),"modulus must be greater than 1"),this.m=_,this.prime=null}k.prototype._verify1=function(_){G(_.negative===0,"red works only with positives"),G(_.red,"red works only with red numbers")},k.prototype._verify2=function(_,N){G((_.negative|N.negative)===0,"red works only with positives"),G(_.red&&_.red===N.red,"red works only with red numbers")},k.prototype.imod=function(_){return this.prime?this.prime.ireduce(_)._forceRed(this):(J(_,_.umod(this.m)._forceRed(this)),_)},k.prototype.neg=function(_){return _.isZero()?_.clone():this.m.sub(_)._forceRed(this)},k.prototype.add=function(_,N){this._verify2(_,N);var x=_.add(N);return x.cmp(this.m)>=0&&x.isub(this.m),x._forceRed(this)},k.prototype.iadd=function(_,N){this._verify2(_,N);var x=_.iadd(N);return x.cmp(this.m)>=0&&x.isub(this.m),x},k.prototype.sub=function(_,N){this._verify2(_,N);var x=_.sub(N);return x.cmpn(0)<0&&x.iadd(this.m),x._forceRed(this)},k.prototype.isub=function(_,N){this._verify2(_,N);var x=_.isub(N);return x.cmpn(0)<0&&x.iadd(this.m),x},k.prototype.shl=function(_,N){return this._verify1(_),this.imod(_.ushln(N))},k.prototype.imul=function(_,N){return this._verify2(_,N),this.imod(_.imul(N))},k.prototype.mul=function(_,N){return this._verify2(_,N),this.imod(_.mul(N))},k.prototype.isqr=function(_){return this.imul(_,_.clone())},k.prototype.sqr=function(_){return this.mul(_,_)},k.prototype.sqrt=function(_){if(_.isZero())return _.clone();var N=this.m.andln(3);if(G(N%2===1),N===3){var x=this.m.add(new U(1)).iushrn(2);return this.pow(_,x)}for(var B=this.m.subn(1),y=0;!B.isZero()&&B.andln(1)===0;)y++,B.iushrn(1);G(!B.isZero());var w=new U(1).toRed(this),p=w.redNeg(),f=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new U(2*c*c).toRed(this);this.pow(c,f).cmp(p)!==0;)c.redIAdd(p);for(var h=this.pow(c,B),d=this.pow(_,B.addn(1).iushrn(1)),b=this.pow(_,B),l=y;b.cmp(w)!==0;){for(var o=b,u=0;o.cmp(w)!==0;u++)o=o.redSqr();G(u=0;y--){for(var h=N.words[y],d=c-1;d>=0;d--){var b=h>>d&1;if(w!==B[0]&&(w=this.sqr(w)),b===0&&p===0){f=0;continue}p<<=1,p|=b,f++,!(f!==x&&(y!==0||d!==0))&&(w=this.mul(w,B[p]),f=0,p=0)}c=26}return w},k.prototype.convertTo=function(_){var N=_.umod(this.m);return N===_?N.clone():N},k.prototype.convertFrom=function(_){var N=_.clone();return N.red=null,N},U.mont=function(_){return new g(_)};function g(_){k.call(this,_),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(g,k),g.prototype.convertTo=function(_){return this.imod(_.ushln(this.shift))},g.prototype.convertFrom=function(_){var N=this.imod(_.mul(this.rinv));return N.red=null,N},g.prototype.imul=function(_,N){if(_.isZero()||N.isZero())return _.words[0]=0,_.length=1,_;var x=_.imul(N),B=x.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),y=x.isub(B).iushrn(this.shift),w=y;return y.cmp(this.m)>=0?w=y.isub(this.m):y.cmpn(0)<0&&(w=y.iadd(this.m)),w._forceRed(this)},g.prototype.mul=function(_,N){if(_.isZero()||N.isZero())return new U(0)._forceRed(this);var x=_.mul(N),B=x.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),y=x.isub(B).iushrn(this.shift),w=y;return y.cmp(this.m)>=0?w=y.isub(this.m):y.cmpn(0)<0&&(w=y.iadd(this.m)),w._forceRed(this)},g.prototype.invm=function(_){var N=this.imod(_._invmp(this.m).mul(this.r2));return N._forceRed(this)}})(typeof Q>"u"||Q,$)}}),hQ=q$({"node_modules/browserify-rsa/index.js"($,Q){var Y=cQ(),Z=g$();function G(X){var K=V(X),I=K.toRed(Y.mont(X.modulus)).redPow(new Y(X.publicExponent)).fromRed();return{blinder:I,unblinder:K.invm(X.modulus)}}function V(X){var K=X.modulus.byteLength(),I;do I=new Y(Z(K));while(I.cmp(X.modulus)>=0||!I.umod(X.prime1)||!I.umod(X.prime2));return I}function U(X,K){var I=G(K),O=K.modulus.byteLength(),J=new Y(X).mul(I.blinder).umod(K.modulus),F=J.toRed(Y.mont(K.prime1)),A=J.toRed(Y.mont(K.prime2)),H=K.coefficient,W=K.prime1,E=K.prime2,T=F.redPow(K.exponent1).fromRed(),D=A.redPow(K.exponent2).fromRed(),C=T.isub(D).imul(H).umod(W).imul(E);return D.iadd(C).imul(I.unblinder).umod(K.modulus).toArrayLike(F$,"be",O)}U.getr=V,Q.exports=U}}),dQ=q$({"node_modules/elliptic/package.json"($,Q){Q.exports={name:"elliptic",version:"6.5.4",description:"EC cryptography",main:"lib/elliptic.js",files:["lib"],scripts:{lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},repository:{type:"git",url:"git@github.com:indutny/elliptic"},keywords:["EC","Elliptic","curve","Cryptography"],author:"Fedor Indutny ",license:"MIT",bugs:{url:"https://github.com/indutny/elliptic/issues"},homepage:"https://github.com/indutny/elliptic",devDependencies:{brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},dependencies:{"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"}}}}),bQ=q$({"node_modules/elliptic/node_modules/bn.js/lib/bn.js"($,Q){(function(Y,Z){function G(j,k){if(!j)throw new Error(k||"Assertion failed")}function V(j,k){j.super_=k;var g=function(){};g.prototype=k.prototype,j.prototype=new g,j.prototype.constructor=j}function U(j,k,g){if(U.isBN(j))return j;this.negative=0,this.words=null,this.length=0,this.red=null,j!==null&&((k==="le"||k==="be")&&(g=k,k=10),this._init(j||0,k||10,g||"be"))}typeof Y=="object"?Y.exports=U:Z.BN=U,U.BN=U,U.wordSize=26;var X=F$;U.isBN=function(j){return j instanceof U?!0:j!==null&&typeof j=="object"&&j.constructor.wordSize===U.wordSize&&Array.isArray(j.words)},U.max=function(j,k){return j.cmp(k)>0?j:k},U.min=function(j,k){return j.cmp(k)<0?j:k},U.prototype._init=function(j,k,g){if(typeof j=="number")return this._initNumber(j,k,g);if(typeof j=="object")return this._initArray(j,k,g);k==="hex"&&(k=16),G(k===(k|0)&&k>=2&&k<=36),j=j.toString().replace(/\s+/g,"");var _=0;j[0]==="-"&&(_++,this.negative=1),_=0;_-=3)x=j[_]|j[_-1]<<8|j[_-2]<<16,this.words[N]|=x<>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);else if(g==="le")for(_=0,N=0;_>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);return this.strip()};function K(j,k){var g=j.charCodeAt(k);return g>=65&&g<=70?g-55:g>=97&&g<=102?g-87:g-48&15}function I(j,k,g){var _=K(j,g);return g-1>=k&&(_|=K(j,g-1)<<4),_}U.prototype._parseHex=function(j,k,g){this.length=Math.ceil((j.length-k)/6),this.words=new Array(this.length);for(var _=0;_=k;_-=2)B=I(j,k,_)<=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8;else{var y=j.length-k;for(_=y%2===0?k+1:k;_=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8}this.strip()};function O(j,k,g,_){for(var N=0,x=Math.min(j.length,g),B=k;B=49?N+=y-49+10:y>=17?N+=y-17+10:N+=y}return N}U.prototype._parseBase=function(j,k,g){this.words=[0],this.length=1;for(var _=0,N=1;N<=67108863;N*=k)_++;_--,N=N/k|0;for(var x=j.length-g,B=x%_,y=Math.min(x,x-B)+g,w=0,p=g;p1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},U.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],F=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],A=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(j,k){j=j||10,k=k|0||1;var g;if(j===16||j==="hex"){g="";for(var _=0,N=0,x=0;x>>24-_&16777215,N!==0||x!==this.length-1?g=J[6-y.length]+y+g:g=y+g,_+=2,_>=26&&(_-=26,x--)}for(N!==0&&(g=N.toString(16)+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(j===(j|0)&&j>=2&&j<=36){var w=F[j],p=A[j];g="";var f=this.clone();for(f.negative=0;!f.isZero();){var c=f.modn(p).toString(j);f=f.idivn(p),f.isZero()?g=c+g:g=J[w-c.length]+c+g}for(this.isZero()&&(g="0"+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var j=this.words[0];return this.length===2?j+=this.words[1]*67108864:this.length===3&&this.words[2]===1?j+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-j:j},U.prototype.toJSON=function(){return this.toString(16)},U.prototype.toBuffer=function(j,k){return G(typeof X<"u"),this.toArrayLike(X,j,k)},U.prototype.toArray=function(j,k){return this.toArrayLike(Array,j,k)},U.prototype.toArrayLike=function(j,k,g){var _=this.byteLength(),N=g||Math.max(1,_);G(_<=N,"byte array longer than desired length"),G(N>0,"Requested array length <= 0"),this.strip();var x=k==="le",B=new j(N),y,w,p=this.clone();if(x){for(w=0;!p.isZero();w++)y=p.andln(255),p.iushrn(8),B[w]=y;for(;w=4096&&(g+=13,k>>>=13),k>=64&&(g+=7,k>>>=7),k>=8&&(g+=4,k>>>=4),k>=2&&(g+=2,k>>>=2),g+k},U.prototype._zeroBits=function(j){if(j===0)return 26;var k=j,g=0;return(k&8191)===0&&(g+=13,k>>>=13),(k&127)===0&&(g+=7,k>>>=7),(k&15)===0&&(g+=4,k>>>=4),(k&3)===0&&(g+=2,k>>>=2),(k&1)===0&&g++,g},U.prototype.bitLength=function(){var j=this.words[this.length-1],k=this._countBits(j);return(this.length-1)*26+k};function H(j){for(var k=new Array(j.bitLength()),g=0;g>>N}return k}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var j=0,k=0;kj.length?this.clone().ior(j):j.clone().ior(this)},U.prototype.uor=function(j){return this.length>j.length?this.clone().iuor(j):j.clone().iuor(this)},U.prototype.iuand=function(j){var k;this.length>j.length?k=j:k=this;for(var g=0;gj.length?this.clone().iand(j):j.clone().iand(this)},U.prototype.uand=function(j){return this.length>j.length?this.clone().iuand(j):j.clone().iuand(this)},U.prototype.iuxor=function(j){var k,g;this.length>j.length?(k=this,g=j):(k=j,g=this);for(var _=0;_j.length?this.clone().ixor(j):j.clone().ixor(this)},U.prototype.uxor=function(j){return this.length>j.length?this.clone().iuxor(j):j.clone().iuxor(this)},U.prototype.inotn=function(j){G(typeof j=="number"&&j>=0);var k=Math.ceil(j/26)|0,g=j%26;this._expand(k),g>0&&k--;for(var _=0;_0&&(this.words[_]=~this.words[_]&67108863>>26-g),this.strip()},U.prototype.notn=function(j){return this.clone().inotn(j)},U.prototype.setn=function(j,k){G(typeof j=="number"&&j>=0);var g=j/26|0,_=j%26;return this._expand(g+1),k?this.words[g]=this.words[g]|1<<_:this.words[g]=this.words[g]&~(1<<_),this.strip()},U.prototype.iadd=function(j){var k;if(this.negative!==0&&j.negative===0)return this.negative=0,k=this.isub(j),this.negative^=1,this._normSign();if(this.negative===0&&j.negative!==0)return j.negative=0,k=this.isub(j),j.negative=1,k._normSign();var g,_;this.length>j.length?(g=this,_=j):(g=j,_=this);for(var N=0,x=0;x<_.length;x++)k=(g.words[x]|0)+(_.words[x]|0)+N,this.words[x]=k&67108863,N=k>>>26;for(;N!==0&&x>>26;if(this.length=g.length,N!==0)this.words[this.length]=N,this.length++;else if(g!==this)for(;xj.length?this.clone().iadd(j):j.clone().iadd(this)},U.prototype.isub=function(j){if(j.negative!==0){j.negative=0;var k=this.iadd(j);return j.negative=1,k._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(j),this.negative=1,this._normSign();var g=this.cmp(j);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var _,N;g>0?(_=this,N=j):(_=j,N=this);for(var x=0,B=0;B>26,this.words[B]=k&67108863;for(;x!==0&&B<_.length;B++)k=(_.words[B]|0)+x,x=k>>26,this.words[B]=k&67108863;if(x===0&&B<_.length&&_!==this)for(;B<_.length;B++)this.words[B]=_.words[B];return this.length=Math.max(this.length,B),_!==this&&(this.negative=1),this.strip()},U.prototype.sub=function(j){return this.clone().isub(j)};function W(j,k,g){g.negative=k.negative^j.negative;var _=j.length+k.length|0;g.length=_,_=_-1|0;var N=j.words[0]|0,x=k.words[0]|0,B=N*x,y=B&67108863,w=B/67108864|0;g.words[0]=y;for(var p=1;p<_;p++){for(var f=w>>>26,c=w&67108863,h=Math.min(p,k.length-1),d=Math.max(0,p-j.length+1);d<=h;d++){var b=p-d|0;N=j.words[b]|0,x=k.words[d]|0,B=N*x+c,f+=B/67108864|0,c=B&67108863}g.words[p]=c|0,w=f|0}return w!==0?g.words[p]=w|0:g.length--,g.strip()}var E=function(j,k,g){var _=j.words,N=k.words,x=g.words,B=0,y,w,p,f=_[0]|0,c=f&8191,h=f>>>13,d=_[1]|0,b=d&8191,l=d>>>13,o=_[2]|0,u=o&8191,n=o>>>13,s=_[3]|0,t=s&8191,m=s>>>13,a=_[4]|0,e=a&8191,r=a>>>13,i=_[5]|0,$0=i&8191,Q0=i>>>13,Y0=_[6]|0,Z0=Y0&8191,G0=Y0>>>13,V0=_[7]|0,U0=V0&8191,X0=V0>>>13,K0=_[8]|0,I0=K0&8191,O0=K0>>>13,J0=_[9]|0,F0=J0&8191,A0=J0>>>13,H0=N[0]|0,W0=H0&8191,E0=H0>>>13,T0=N[1]|0,D0=T0&8191,C0=T0>>>13,L0=N[2]|0,R0=L0&8191,P0=L0>>>13,z0=N[3]|0,M0=z0&8191,S0=z0>>>13,v0=N[4]|0,q0=v0&8191,j0=v0>>>13,k0=N[5]|0,g0=k0&8191,_0=k0>>>13,N0=N[6]|0,x0=N0&8191,B0=N0>>>13,y0=N[7]|0,w0=y0&8191,p0=y0>>>13,f0=N[8]|0,c0=f0&8191,h0=f0>>>13,d0=N[9]|0,b0=d0&8191,l0=d0>>>13;g.negative=j.negative^k.negative,g.length=19,y=Math.imul(c,W0),w=Math.imul(c,E0),w=w+Math.imul(h,W0)|0,p=Math.imul(h,E0);var o0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(o0>>>26)|0,o0&=67108863,y=Math.imul(b,W0),w=Math.imul(b,E0),w=w+Math.imul(l,W0)|0,p=Math.imul(l,E0),y=y+Math.imul(c,D0)|0,w=w+Math.imul(c,C0)|0,w=w+Math.imul(h,D0)|0,p=p+Math.imul(h,C0)|0;var u0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(u0>>>26)|0,u0&=67108863,y=Math.imul(u,W0),w=Math.imul(u,E0),w=w+Math.imul(n,W0)|0,p=Math.imul(n,E0),y=y+Math.imul(b,D0)|0,w=w+Math.imul(b,C0)|0,w=w+Math.imul(l,D0)|0,p=p+Math.imul(l,C0)|0,y=y+Math.imul(c,R0)|0,w=w+Math.imul(c,P0)|0,w=w+Math.imul(h,R0)|0,p=p+Math.imul(h,P0)|0;var n0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(n0>>>26)|0,n0&=67108863,y=Math.imul(t,W0),w=Math.imul(t,E0),w=w+Math.imul(m,W0)|0,p=Math.imul(m,E0),y=y+Math.imul(u,D0)|0,w=w+Math.imul(u,C0)|0,w=w+Math.imul(n,D0)|0,p=p+Math.imul(n,C0)|0,y=y+Math.imul(b,R0)|0,w=w+Math.imul(b,P0)|0,w=w+Math.imul(l,R0)|0,p=p+Math.imul(l,P0)|0,y=y+Math.imul(c,M0)|0,w=w+Math.imul(c,S0)|0,w=w+Math.imul(h,M0)|0,p=p+Math.imul(h,S0)|0;var s0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(s0>>>26)|0,s0&=67108863,y=Math.imul(e,W0),w=Math.imul(e,E0),w=w+Math.imul(r,W0)|0,p=Math.imul(r,E0),y=y+Math.imul(t,D0)|0,w=w+Math.imul(t,C0)|0,w=w+Math.imul(m,D0)|0,p=p+Math.imul(m,C0)|0,y=y+Math.imul(u,R0)|0,w=w+Math.imul(u,P0)|0,w=w+Math.imul(n,R0)|0,p=p+Math.imul(n,P0)|0,y=y+Math.imul(b,M0)|0,w=w+Math.imul(b,S0)|0,w=w+Math.imul(l,M0)|0,p=p+Math.imul(l,S0)|0,y=y+Math.imul(c,q0)|0,w=w+Math.imul(c,j0)|0,w=w+Math.imul(h,q0)|0,p=p+Math.imul(h,j0)|0;var t0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(t0>>>26)|0,t0&=67108863,y=Math.imul($0,W0),w=Math.imul($0,E0),w=w+Math.imul(Q0,W0)|0,p=Math.imul(Q0,E0),y=y+Math.imul(e,D0)|0,w=w+Math.imul(e,C0)|0,w=w+Math.imul(r,D0)|0,p=p+Math.imul(r,C0)|0,y=y+Math.imul(t,R0)|0,w=w+Math.imul(t,P0)|0,w=w+Math.imul(m,R0)|0,p=p+Math.imul(m,P0)|0,y=y+Math.imul(u,M0)|0,w=w+Math.imul(u,S0)|0,w=w+Math.imul(n,M0)|0,p=p+Math.imul(n,S0)|0,y=y+Math.imul(b,q0)|0,w=w+Math.imul(b,j0)|0,w=w+Math.imul(l,q0)|0,p=p+Math.imul(l,j0)|0,y=y+Math.imul(c,g0)|0,w=w+Math.imul(c,_0)|0,w=w+Math.imul(h,g0)|0,p=p+Math.imul(h,_0)|0;var m0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(m0>>>26)|0,m0&=67108863,y=Math.imul(Z0,W0),w=Math.imul(Z0,E0),w=w+Math.imul(G0,W0)|0,p=Math.imul(G0,E0),y=y+Math.imul($0,D0)|0,w=w+Math.imul($0,C0)|0,w=w+Math.imul(Q0,D0)|0,p=p+Math.imul(Q0,C0)|0,y=y+Math.imul(e,R0)|0,w=w+Math.imul(e,P0)|0,w=w+Math.imul(r,R0)|0,p=p+Math.imul(r,P0)|0,y=y+Math.imul(t,M0)|0,w=w+Math.imul(t,S0)|0,w=w+Math.imul(m,M0)|0,p=p+Math.imul(m,S0)|0,y=y+Math.imul(u,q0)|0,w=w+Math.imul(u,j0)|0,w=w+Math.imul(n,q0)|0,p=p+Math.imul(n,j0)|0,y=y+Math.imul(b,g0)|0,w=w+Math.imul(b,_0)|0,w=w+Math.imul(l,g0)|0,p=p+Math.imul(l,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,B0)|0,w=w+Math.imul(h,x0)|0,p=p+Math.imul(h,B0)|0;var a0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(a0>>>26)|0,a0&=67108863,y=Math.imul(U0,W0),w=Math.imul(U0,E0),w=w+Math.imul(X0,W0)|0,p=Math.imul(X0,E0),y=y+Math.imul(Z0,D0)|0,w=w+Math.imul(Z0,C0)|0,w=w+Math.imul(G0,D0)|0,p=p+Math.imul(G0,C0)|0,y=y+Math.imul($0,R0)|0,w=w+Math.imul($0,P0)|0,w=w+Math.imul(Q0,R0)|0,p=p+Math.imul(Q0,P0)|0,y=y+Math.imul(e,M0)|0,w=w+Math.imul(e,S0)|0,w=w+Math.imul(r,M0)|0,p=p+Math.imul(r,S0)|0,y=y+Math.imul(t,q0)|0,w=w+Math.imul(t,j0)|0,w=w+Math.imul(m,q0)|0,p=p+Math.imul(m,j0)|0,y=y+Math.imul(u,g0)|0,w=w+Math.imul(u,_0)|0,w=w+Math.imul(n,g0)|0,p=p+Math.imul(n,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,B0)|0,w=w+Math.imul(l,x0)|0,p=p+Math.imul(l,B0)|0,y=y+Math.imul(c,w0)|0,w=w+Math.imul(c,p0)|0,w=w+Math.imul(h,w0)|0,p=p+Math.imul(h,p0)|0;var e0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(e0>>>26)|0,e0&=67108863,y=Math.imul(I0,W0),w=Math.imul(I0,E0),w=w+Math.imul(O0,W0)|0,p=Math.imul(O0,E0),y=y+Math.imul(U0,D0)|0,w=w+Math.imul(U0,C0)|0,w=w+Math.imul(X0,D0)|0,p=p+Math.imul(X0,C0)|0,y=y+Math.imul(Z0,R0)|0,w=w+Math.imul(Z0,P0)|0,w=w+Math.imul(G0,R0)|0,p=p+Math.imul(G0,P0)|0,y=y+Math.imul($0,M0)|0,w=w+Math.imul($0,S0)|0,w=w+Math.imul(Q0,M0)|0,p=p+Math.imul(Q0,S0)|0,y=y+Math.imul(e,q0)|0,w=w+Math.imul(e,j0)|0,w=w+Math.imul(r,q0)|0,p=p+Math.imul(r,j0)|0,y=y+Math.imul(t,g0)|0,w=w+Math.imul(t,_0)|0,w=w+Math.imul(m,g0)|0,p=p+Math.imul(m,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,B0)|0,w=w+Math.imul(n,x0)|0,p=p+Math.imul(n,B0)|0,y=y+Math.imul(b,w0)|0,w=w+Math.imul(b,p0)|0,w=w+Math.imul(l,w0)|0,p=p+Math.imul(l,p0)|0,y=y+Math.imul(c,c0)|0,w=w+Math.imul(c,h0)|0,w=w+Math.imul(h,c0)|0,p=p+Math.imul(h,h0)|0;var r0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(r0>>>26)|0,r0&=67108863,y=Math.imul(F0,W0),w=Math.imul(F0,E0),w=w+Math.imul(A0,W0)|0,p=Math.imul(A0,E0),y=y+Math.imul(I0,D0)|0,w=w+Math.imul(I0,C0)|0,w=w+Math.imul(O0,D0)|0,p=p+Math.imul(O0,C0)|0,y=y+Math.imul(U0,R0)|0,w=w+Math.imul(U0,P0)|0,w=w+Math.imul(X0,R0)|0,p=p+Math.imul(X0,P0)|0,y=y+Math.imul(Z0,M0)|0,w=w+Math.imul(Z0,S0)|0,w=w+Math.imul(G0,M0)|0,p=p+Math.imul(G0,S0)|0,y=y+Math.imul($0,q0)|0,w=w+Math.imul($0,j0)|0,w=w+Math.imul(Q0,q0)|0,p=p+Math.imul(Q0,j0)|0,y=y+Math.imul(e,g0)|0,w=w+Math.imul(e,_0)|0,w=w+Math.imul(r,g0)|0,p=p+Math.imul(r,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,B0)|0,w=w+Math.imul(m,x0)|0,p=p+Math.imul(m,B0)|0,y=y+Math.imul(u,w0)|0,w=w+Math.imul(u,p0)|0,w=w+Math.imul(n,w0)|0,p=p+Math.imul(n,p0)|0,y=y+Math.imul(b,c0)|0,w=w+Math.imul(b,h0)|0,w=w+Math.imul(l,c0)|0,p=p+Math.imul(l,h0)|0,y=y+Math.imul(c,b0)|0,w=w+Math.imul(c,l0)|0,w=w+Math.imul(h,b0)|0,p=p+Math.imul(h,l0)|0;var i0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(i0>>>26)|0,i0&=67108863,y=Math.imul(F0,D0),w=Math.imul(F0,C0),w=w+Math.imul(A0,D0)|0,p=Math.imul(A0,C0),y=y+Math.imul(I0,R0)|0,w=w+Math.imul(I0,P0)|0,w=w+Math.imul(O0,R0)|0,p=p+Math.imul(O0,P0)|0,y=y+Math.imul(U0,M0)|0,w=w+Math.imul(U0,S0)|0,w=w+Math.imul(X0,M0)|0,p=p+Math.imul(X0,S0)|0,y=y+Math.imul(Z0,q0)|0,w=w+Math.imul(Z0,j0)|0,w=w+Math.imul(G0,q0)|0,p=p+Math.imul(G0,j0)|0,y=y+Math.imul($0,g0)|0,w=w+Math.imul($0,_0)|0,w=w+Math.imul(Q0,g0)|0,p=p+Math.imul(Q0,_0)|0,y=y+Math.imul(e,x0)|0,w=w+Math.imul(e,B0)|0,w=w+Math.imul(r,x0)|0,p=p+Math.imul(r,B0)|0,y=y+Math.imul(t,w0)|0,w=w+Math.imul(t,p0)|0,w=w+Math.imul(m,w0)|0,p=p+Math.imul(m,p0)|0,y=y+Math.imul(u,c0)|0,w=w+Math.imul(u,h0)|0,w=w+Math.imul(n,c0)|0,p=p+Math.imul(n,h0)|0,y=y+Math.imul(b,b0)|0,w=w+Math.imul(b,l0)|0,w=w+Math.imul(l,b0)|0,p=p+Math.imul(l,l0)|0;var $$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+($$>>>26)|0,$$&=67108863,y=Math.imul(F0,R0),w=Math.imul(F0,P0),w=w+Math.imul(A0,R0)|0,p=Math.imul(A0,P0),y=y+Math.imul(I0,M0)|0,w=w+Math.imul(I0,S0)|0,w=w+Math.imul(O0,M0)|0,p=p+Math.imul(O0,S0)|0,y=y+Math.imul(U0,q0)|0,w=w+Math.imul(U0,j0)|0,w=w+Math.imul(X0,q0)|0,p=p+Math.imul(X0,j0)|0,y=y+Math.imul(Z0,g0)|0,w=w+Math.imul(Z0,_0)|0,w=w+Math.imul(G0,g0)|0,p=p+Math.imul(G0,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,B0)|0,w=w+Math.imul(Q0,x0)|0,p=p+Math.imul(Q0,B0)|0,y=y+Math.imul(e,w0)|0,w=w+Math.imul(e,p0)|0,w=w+Math.imul(r,w0)|0,p=p+Math.imul(r,p0)|0,y=y+Math.imul(t,c0)|0,w=w+Math.imul(t,h0)|0,w=w+Math.imul(m,c0)|0,p=p+Math.imul(m,h0)|0,y=y+Math.imul(u,b0)|0,w=w+Math.imul(u,l0)|0,w=w+Math.imul(n,b0)|0,p=p+Math.imul(n,l0)|0;var Q$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,y=Math.imul(F0,M0),w=Math.imul(F0,S0),w=w+Math.imul(A0,M0)|0,p=Math.imul(A0,S0),y=y+Math.imul(I0,q0)|0,w=w+Math.imul(I0,j0)|0,w=w+Math.imul(O0,q0)|0,p=p+Math.imul(O0,j0)|0,y=y+Math.imul(U0,g0)|0,w=w+Math.imul(U0,_0)|0,w=w+Math.imul(X0,g0)|0,p=p+Math.imul(X0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,B0)|0,w=w+Math.imul(G0,x0)|0,p=p+Math.imul(G0,B0)|0,y=y+Math.imul($0,w0)|0,w=w+Math.imul($0,p0)|0,w=w+Math.imul(Q0,w0)|0,p=p+Math.imul(Q0,p0)|0,y=y+Math.imul(e,c0)|0,w=w+Math.imul(e,h0)|0,w=w+Math.imul(r,c0)|0,p=p+Math.imul(r,h0)|0,y=y+Math.imul(t,b0)|0,w=w+Math.imul(t,l0)|0,w=w+Math.imul(m,b0)|0,p=p+Math.imul(m,l0)|0;var Y$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,y=Math.imul(F0,q0),w=Math.imul(F0,j0),w=w+Math.imul(A0,q0)|0,p=Math.imul(A0,j0),y=y+Math.imul(I0,g0)|0,w=w+Math.imul(I0,_0)|0,w=w+Math.imul(O0,g0)|0,p=p+Math.imul(O0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,B0)|0,w=w+Math.imul(X0,x0)|0,p=p+Math.imul(X0,B0)|0,y=y+Math.imul(Z0,w0)|0,w=w+Math.imul(Z0,p0)|0,w=w+Math.imul(G0,w0)|0,p=p+Math.imul(G0,p0)|0,y=y+Math.imul($0,c0)|0,w=w+Math.imul($0,h0)|0,w=w+Math.imul(Q0,c0)|0,p=p+Math.imul(Q0,h0)|0,y=y+Math.imul(e,b0)|0,w=w+Math.imul(e,l0)|0,w=w+Math.imul(r,b0)|0,p=p+Math.imul(r,l0)|0;var Z$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,y=Math.imul(F0,g0),w=Math.imul(F0,_0),w=w+Math.imul(A0,g0)|0,p=Math.imul(A0,_0),y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,B0)|0,w=w+Math.imul(O0,x0)|0,p=p+Math.imul(O0,B0)|0,y=y+Math.imul(U0,w0)|0,w=w+Math.imul(U0,p0)|0,w=w+Math.imul(X0,w0)|0,p=p+Math.imul(X0,p0)|0,y=y+Math.imul(Z0,c0)|0,w=w+Math.imul(Z0,h0)|0,w=w+Math.imul(G0,c0)|0,p=p+Math.imul(G0,h0)|0,y=y+Math.imul($0,b0)|0,w=w+Math.imul($0,l0)|0,w=w+Math.imul(Q0,b0)|0,p=p+Math.imul(Q0,l0)|0;var G$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(G$>>>26)|0,G$&=67108863,y=Math.imul(F0,x0),w=Math.imul(F0,B0),w=w+Math.imul(A0,x0)|0,p=Math.imul(A0,B0),y=y+Math.imul(I0,w0)|0,w=w+Math.imul(I0,p0)|0,w=w+Math.imul(O0,w0)|0,p=p+Math.imul(O0,p0)|0,y=y+Math.imul(U0,c0)|0,w=w+Math.imul(U0,h0)|0,w=w+Math.imul(X0,c0)|0,p=p+Math.imul(X0,h0)|0,y=y+Math.imul(Z0,b0)|0,w=w+Math.imul(Z0,l0)|0,w=w+Math.imul(G0,b0)|0,p=p+Math.imul(G0,l0)|0;var V$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(V$>>>26)|0,V$&=67108863,y=Math.imul(F0,w0),w=Math.imul(F0,p0),w=w+Math.imul(A0,w0)|0,p=Math.imul(A0,p0),y=y+Math.imul(I0,c0)|0,w=w+Math.imul(I0,h0)|0,w=w+Math.imul(O0,c0)|0,p=p+Math.imul(O0,h0)|0,y=y+Math.imul(U0,b0)|0,w=w+Math.imul(U0,l0)|0,w=w+Math.imul(X0,b0)|0,p=p+Math.imul(X0,l0)|0;var U$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(U$>>>26)|0,U$&=67108863,y=Math.imul(F0,c0),w=Math.imul(F0,h0),w=w+Math.imul(A0,c0)|0,p=Math.imul(A0,h0),y=y+Math.imul(I0,b0)|0,w=w+Math.imul(I0,l0)|0,w=w+Math.imul(O0,b0)|0,p=p+Math.imul(O0,l0)|0;var X$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(X$>>>26)|0,X$&=67108863,y=Math.imul(F0,b0),w=Math.imul(F0,l0),w=w+Math.imul(A0,b0)|0,p=Math.imul(A0,l0);var K$=(B+y|0)+((w&8191)<<13)|0;return B=(p+(w>>>13)|0)+(K$>>>26)|0,K$&=67108863,x[0]=o0,x[1]=u0,x[2]=n0,x[3]=s0,x[4]=t0,x[5]=m0,x[6]=a0,x[7]=e0,x[8]=r0,x[9]=i0,x[10]=$$,x[11]=Q$,x[12]=Y$,x[13]=Z$,x[14]=G$,x[15]=V$,x[16]=U$,x[17]=X$,x[18]=K$,B!==0&&(x[19]=B,g.length++),g};Math.imul||(E=W);function T(j,k,g){g.negative=k.negative^j.negative,g.length=j.length+k.length;for(var _=0,N=0,x=0;x>>26)|0,N+=B>>>26,B&=67108863}g.words[x]=y,_=B,B=N}return _!==0?g.words[x]=_:g.length--,g.strip()}function D(j,k,g){var _=new C;return _.mulp(j,k,g)}U.prototype.mulTo=function(j,k){var g,_=this.length+j.length;return this.length===10&&j.length===10?g=E(this,j,k):_<63?g=W(this,j,k):_<1024?g=T(this,j,k):g=D(this,j,k),g};function C(j,k){this.x=j,this.y=k}C.prototype.makeRBT=function(j){for(var k=new Array(j),g=U.prototype._countBits(j)-1,_=0;_>=1;return _},C.prototype.permute=function(j,k,g,_,N,x){for(var B=0;B>>1)N++;return 1<>>13,g[2*x+1]=N&8191,N=N>>>13;for(x=2*k;x<_;++x)g[x]=0;G(N===0),G((N&-8192)===0)},C.prototype.stub=function(j){for(var k=new Array(j),g=0;g>=26,k+=_/67108864|0,k+=N>>>26,this.words[g]=N&67108863}return k!==0&&(this.words[g]=k,this.length++),this},U.prototype.muln=function(j){return this.clone().imuln(j)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(j){var k=H(j);if(k.length===0)return new U(1);for(var g=this,_=0;_=0);var k=j%26,g=(j-k)/26,_=67108863>>>26-k<<26-k,N;if(k!==0){var x=0;for(N=0;N>>26-k}x&&(this.words[N]=x,this.length++)}if(g!==0){for(N=this.length-1;N>=0;N--)this.words[N+g]=this.words[N];for(N=0;N=0);var _;k?_=(k-k%26)/26:_=0;var N=j%26,x=Math.min((j-N)/26,this.length),B=67108863^67108863>>>N<x)for(this.length-=x,w=0;w=0&&(p!==0||w>=_);w--){var f=this.words[w]|0;this.words[w]=p<<26-N|f>>>N,p=f&B}return y&&p!==0&&(y.words[y.length++]=p),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},U.prototype.ishrn=function(j,k,g){return G(this.negative===0),this.iushrn(j,k,g)},U.prototype.shln=function(j){return this.clone().ishln(j)},U.prototype.ushln=function(j){return this.clone().iushln(j)},U.prototype.shrn=function(j){return this.clone().ishrn(j)},U.prototype.ushrn=function(j){return this.clone().iushrn(j)},U.prototype.testn=function(j){G(typeof j=="number"&&j>=0);var k=j%26,g=(j-k)/26,_=1<=0);var k=j%26,g=(j-k)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(k!==0&&g++,this.length=Math.min(g,this.length),k!==0){var _=67108863^67108863>>>k<=67108864;k++)this.words[k]-=67108864,k===this.length-1?this.words[k+1]=1:this.words[k+1]++;return this.length=Math.max(this.length,k+1),this},U.prototype.isubn=function(j){if(G(typeof j=="number"),G(j<67108864),j<0)return this.iaddn(-j);if(this.negative!==0)return this.negative=0,this.iaddn(j),this.negative=1,this;if(this.words[0]-=j,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var k=0;k>26)-(y/67108864|0),this.words[N+g]=x&67108863}for(;N>26,this.words[N+g]=x&67108863;if(B===0)return this.strip();for(G(B===-1),B=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},U.prototype._wordDiv=function(j,k){var g=this.length-j.length,_=this.clone(),N=j,x=N.words[N.length-1]|0,B=this._countBits(x);g=26-B,g!==0&&(N=N.ushln(g),_.iushln(g),x=N.words[N.length-1]|0);var y=_.length-N.length,w;if(k!=="mod"){w=new U(null),w.length=y+1,w.words=new Array(w.length);for(var p=0;p=0;c--){var h=(_.words[N.length+c]|0)*67108864+(_.words[N.length+c-1]|0);for(h=Math.min(h/x|0,67108863),_._ishlnsubmul(N,h,c);_.negative!==0;)h--,_.negative=0,_._ishlnsubmul(N,1,c),_.isZero()||(_.negative^=1);w&&(w.words[c]=h)}return w&&w.strip(),_.strip(),k!=="div"&&g!==0&&_.iushrn(g),{div:w||null,mod:_}},U.prototype.divmod=function(j,k,g){if(G(!j.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var _,N,x;return this.negative!==0&&j.negative===0?(x=this.neg().divmod(j,k),k!=="mod"&&(_=x.div.neg()),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.iadd(j)),{div:_,mod:N}):this.negative===0&&j.negative!==0?(x=this.divmod(j.neg(),k),k!=="mod"&&(_=x.div.neg()),{div:_,mod:x.mod}):(this.negative&j.negative)!==0?(x=this.neg().divmod(j.neg(),k),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.isub(j)),{div:x.div,mod:N}):j.length>this.length||this.cmp(j)<0?{div:new U(0),mod:this}:j.length===1?k==="div"?{div:this.divn(j.words[0]),mod:null}:k==="mod"?{div:null,mod:new U(this.modn(j.words[0]))}:{div:this.divn(j.words[0]),mod:new U(this.modn(j.words[0]))}:this._wordDiv(j,k)},U.prototype.div=function(j){return this.divmod(j,"div",!1).div},U.prototype.mod=function(j){return this.divmod(j,"mod",!1).mod},U.prototype.umod=function(j){return this.divmod(j,"mod",!0).mod},U.prototype.divRound=function(j){var k=this.divmod(j);if(k.mod.isZero())return k.div;var g=k.div.negative!==0?k.mod.isub(j):k.mod,_=j.ushrn(1),N=j.andln(1),x=g.cmp(_);return x<0||N===1&&x===0?k.div:k.div.negative!==0?k.div.isubn(1):k.div.iaddn(1)},U.prototype.modn=function(j){G(j<=67108863);for(var k=(1<<26)%j,g=0,_=this.length-1;_>=0;_--)g=(k*g+(this.words[_]|0))%j;return g},U.prototype.idivn=function(j){G(j<=67108863);for(var k=0,g=this.length-1;g>=0;g--){var _=(this.words[g]|0)+k*67108864;this.words[g]=_/j|0,k=_%j}return this.strip()},U.prototype.divn=function(j){return this.clone().idivn(j)},U.prototype.egcd=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=new U(0),B=new U(1),y=0;k.isEven()&&g.isEven();)k.iushrn(1),g.iushrn(1),++y;for(var w=g.clone(),p=k.clone();!k.isZero();){for(var f=0,c=1;(k.words[0]&c)===0&&f<26;++f,c<<=1);if(f>0)for(k.iushrn(f);f-- >0;)(_.isOdd()||N.isOdd())&&(_.iadd(w),N.isub(p)),_.iushrn(1),N.iushrn(1);for(var h=0,d=1;(g.words[0]&d)===0&&h<26;++h,d<<=1);if(h>0)for(g.iushrn(h);h-- >0;)(x.isOdd()||B.isOdd())&&(x.iadd(w),B.isub(p)),x.iushrn(1),B.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(x),N.isub(B)):(g.isub(k),x.isub(_),B.isub(N))}return{a:x,b:B,gcd:g.iushln(y)}},U.prototype._invmp=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=g.clone();k.cmpn(1)>0&&g.cmpn(1)>0;){for(var B=0,y=1;(k.words[0]&y)===0&&B<26;++B,y<<=1);if(B>0)for(k.iushrn(B);B-- >0;)_.isOdd()&&_.iadd(x),_.iushrn(1);for(var w=0,p=1;(g.words[0]&p)===0&&w<26;++w,p<<=1);if(w>0)for(g.iushrn(w);w-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(N)):(g.isub(k),N.isub(_))}var f;return k.cmpn(1)===0?f=_:f=N,f.cmpn(0)<0&&f.iadd(j),f},U.prototype.gcd=function(j){if(this.isZero())return j.abs();if(j.isZero())return this.abs();var k=this.clone(),g=j.clone();k.negative=0,g.negative=0;for(var _=0;k.isEven()&&g.isEven();_++)k.iushrn(1),g.iushrn(1);do{for(;k.isEven();)k.iushrn(1);for(;g.isEven();)g.iushrn(1);var N=k.cmp(g);if(N<0){var x=k;k=g,g=x}else if(N===0||g.cmpn(1)===0)break;k.isub(g)}while(!0);return g.iushln(_)},U.prototype.invm=function(j){return this.egcd(j).a.umod(j)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(j){return this.words[0]&j},U.prototype.bincn=function(j){G(typeof j=="number");var k=j%26,g=(j-k)/26,_=1<>>26,B&=67108863,this.words[x]=B}return N!==0&&(this.words[x]=N,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(j){var k=j<0;if(this.negative!==0&&!k)return-1;if(this.negative===0&&k)return 1;this.strip();var g;if(this.length>1)g=1;else{k&&(j=-j),G(j<=67108863,"Number is too big");var _=this.words[0]|0;g=_===j?0:_j.length)return 1;if(this.length=0;g--){var _=this.words[g]|0,N=j.words[g]|0;if(_!==N){_N&&(k=1);break}}return k},U.prototype.gtn=function(j){return this.cmpn(j)===1},U.prototype.gt=function(j){return this.cmp(j)===1},U.prototype.gten=function(j){return this.cmpn(j)>=0},U.prototype.gte=function(j){return this.cmp(j)>=0},U.prototype.ltn=function(j){return this.cmpn(j)===-1},U.prototype.lt=function(j){return this.cmp(j)===-1},U.prototype.lten=function(j){return this.cmpn(j)<=0},U.prototype.lte=function(j){return this.cmp(j)<=0},U.prototype.eqn=function(j){return this.cmpn(j)===0},U.prototype.eq=function(j){return this.cmp(j)===0},U.red=function(j){return new v(j)},U.prototype.toRed=function(j){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),j.convertTo(this)._forceRed(j)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(j){return this.red=j,this},U.prototype.forceRed=function(j){return G(!this.red,"Already a number in reduction context"),this._forceRed(j)},U.prototype.redAdd=function(j){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,j)},U.prototype.redIAdd=function(j){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,j)},U.prototype.redSub=function(j){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,j)},U.prototype.redISub=function(j){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,j)},U.prototype.redShl=function(j){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,j)},U.prototype.redMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.mul(this,j)},U.prototype.redIMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.imul(this,j)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(j){return G(this.red&&!j.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,j)};var L={k256:null,p224:null,p192:null,p25519:null};function R(j,k){this.name=j,this.p=new U(k,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}R.prototype._tmp=function(){var j=new U(null);return j.words=new Array(Math.ceil(this.n/13)),j},R.prototype.ireduce=function(j){var k=j,g;do this.split(k,this.tmp),k=this.imulK(k),k=k.iadd(this.tmp),g=k.bitLength();while(g>this.n);var _=g0?k.isub(this.p):k.strip!==void 0?k.strip():k._strip(),k},R.prototype.split=function(j,k){j.iushrn(this.n,0,k)},R.prototype.imulK=function(j){return j.imul(this.k)};function P(){R.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(P,R),P.prototype.split=function(j,k){for(var g=4194303,_=Math.min(j.length,9),N=0;N<_;N++)k.words[N]=j.words[N];if(k.length=_,j.length<=9){j.words[0]=0,j.length=1;return}var x=j.words[9];for(k.words[k.length++]=x&g,N=10;N>>22,x=B}x>>>=22,j.words[N-10]=x,x===0&&j.length>10?j.length-=10:j.length-=9},P.prototype.imulK=function(j){j.words[j.length]=0,j.words[j.length+1]=0,j.length+=2;for(var k=0,g=0;g>>=26,j.words[g]=N,k=_}return k!==0&&(j.words[j.length++]=k),j},U._prime=function(j){if(L[j])return L[j];var k;if(j==="k256")k=new P;else if(j==="p224")k=new z;else if(j==="p192")k=new M;else if(j==="p25519")k=new S;else throw new Error("Unknown prime "+j);return L[j]=k,k};function v(j){if(typeof j=="string"){var k=U._prime(j);this.m=k.p,this.prime=k}else G(j.gtn(1),"modulus must be greater than 1"),this.m=j,this.prime=null}v.prototype._verify1=function(j){G(j.negative===0,"red works only with positives"),G(j.red,"red works only with red numbers")},v.prototype._verify2=function(j,k){G((j.negative|k.negative)===0,"red works only with positives"),G(j.red&&j.red===k.red,"red works only with red numbers")},v.prototype.imod=function(j){return this.prime?this.prime.ireduce(j)._forceRed(this):j.umod(this.m)._forceRed(this)},v.prototype.neg=function(j){return j.isZero()?j.clone():this.m.sub(j)._forceRed(this)},v.prototype.add=function(j,k){this._verify2(j,k);var g=j.add(k);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},v.prototype.iadd=function(j,k){this._verify2(j,k);var g=j.iadd(k);return g.cmp(this.m)>=0&&g.isub(this.m),g},v.prototype.sub=function(j,k){this._verify2(j,k);var g=j.sub(k);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},v.prototype.isub=function(j,k){this._verify2(j,k);var g=j.isub(k);return g.cmpn(0)<0&&g.iadd(this.m),g},v.prototype.shl=function(j,k){return this._verify1(j),this.imod(j.ushln(k))},v.prototype.imul=function(j,k){return this._verify2(j,k),this.imod(j.imul(k))},v.prototype.mul=function(j,k){return this._verify2(j,k),this.imod(j.mul(k))},v.prototype.isqr=function(j){return this.imul(j,j.clone())},v.prototype.sqr=function(j){return this.mul(j,j)},v.prototype.sqrt=function(j){if(j.isZero())return j.clone();var k=this.m.andln(3);if(G(k%2===1),k===3){var g=this.m.add(new U(1)).iushrn(2);return this.pow(j,g)}for(var _=this.m.subn(1),N=0;!_.isZero()&&_.andln(1)===0;)N++,_.iushrn(1);G(!_.isZero());var x=new U(1).toRed(this),B=x.redNeg(),y=this.m.subn(1).iushrn(1),w=this.m.bitLength();for(w=new U(2*w*w).toRed(this);this.pow(w,y).cmp(B)!==0;)w.redIAdd(B);for(var p=this.pow(w,_),f=this.pow(j,_.addn(1).iushrn(1)),c=this.pow(j,_),h=N;c.cmp(x)!==0;){for(var d=c,b=0;d.cmp(x)!==0;b++)d=d.redSqr();G(b=0;N--){for(var p=k.words[N],f=w-1;f>=0;f--){var c=p>>f&1;if(x!==_[0]&&(x=this.sqr(x)),c===0&&B===0){y=0;continue}B<<=1,B|=c,y++,!(y!==g&&(N!==0||f!==0))&&(x=this.mul(x,_[B]),y=0,B=0)}w=26}return x},v.prototype.convertTo=function(j){var k=j.umod(this.m);return k===j?k.clone():k},v.prototype.convertFrom=function(j){var k=j.clone();return k.red=null,k},U.mont=function(j){return new q(j)};function q(j){v.call(this,j),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(q,v),q.prototype.convertTo=function(j){return this.imod(j.ushln(this.shift))},q.prototype.convertFrom=function(j){var k=this.imod(j.mul(this.rinv));return k.red=null,k},q.prototype.imul=function(j,k){if(j.isZero()||k.isZero())return j.words[0]=0,j.length=1,j;var g=j.imul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.mul=function(j,k){if(j.isZero()||k.isZero())return new U(0)._forceRed(this);var g=j.mul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.invm=function(j){var k=this.imod(j._invmp(this.m).mul(this.r2));return k._forceRed(this)}})(typeof Q>"u"||Q,$)}}),lQ=q$({"node_modules/minimalistic-crypto-utils/lib/utils.js"($){var Q=$;function Y(V,U){if(Array.isArray(V))return V.slice();if(!V)return[];var X=[];if(typeof V!="string"){for(var K=0;K>8,J=I&255;O?X.push(O,J):X.push(J)}return X}Q.toArray=Y;function Z(V){return V.length===1?"0"+V:V}Q.zero2=Z;function G(V){for(var U="",X=0;X(H>>1)-1?T=(H>>1)-D:T=D,W.isubn(T)):T=0,A[E]=T,W.iushrn(1)}return A}Q.getNAF=V;function U(O,J){var F=[[],[]];O=O.clone(),J=J.clone();for(var A=0,H=0,W;O.cmpn(-A)>0||J.cmpn(-H)>0;){var E=O.andln(3)+A&3,T=J.andln(3)+H&3;E===3&&(E=-1),T===3&&(T=-1);var D;(E&1)===0?D=0:(W=O.andln(7)+A&7,(W===3||W===5)&&T===2?D=-E:D=E),F[0].push(D);var C;(T&1)===0?C=0:(W=J.andln(7)+H&7,(W===3||W===5)&&E===2?C=-T:C=T),F[1].push(C),2*A===D+1&&(A=1-A),2*H===C+1&&(H=1-H),O.iushrn(1),J.iushrn(1)}return F}Q.getJSF=U;function X(O,J,F){var A="_"+J;O.prototype[J]=function(){return this[A]!==void 0?this[A]:this[A]=F.call(this)}}Q.cachedProperty=X;function K(O){return typeof O=="string"?Q.toArray(O,"hex"):O}Q.parseBytes=K;function I(O){return new Y(O,"hex","le")}Q.intFromLE=I}}),uQ=q$({"node_modules/elliptic/lib/elliptic/curve/base.js"($,Q){var Y=bQ(),Z=oQ(),G=Z.getNAF,V=Z.getJSF,U=Z.assert;function X(I,O){this.type=I,this.p=new Y(O.p,16),this.red=O.prime?Y.red(O.prime):Y.mont(this.p),this.zero=new Y(0).toRed(this.red),this.one=new Y(1).toRed(this.red),this.two=new Y(2).toRed(this.red),this.n=O.n&&new Y(O.n,16),this.g=O.g&&this.pointFromJSON(O.g,O.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var J=this.n&&this.p.div(this.n);!J||J.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}Q.exports=X,X.prototype.point=function(){throw new Error("Not implemented")},X.prototype.validate=function(){throw new Error("Not implemented")},X.prototype._fixedNafMul=function(I,O){U(I.precomputed);var J=I._getDoubles(),F=G(O,1,this._bitLength),A=(1<=W;T--)E=(E<<1)+F[T];H.push(E)}for(var D=this.jpoint(null,null,null),C=this.jpoint(null,null,null),L=A;L>0;L--){for(W=0;W=0;E--){for(var T=0;E>=0&&H[E]===0;E--)T++;if(E>=0&&T++,W=W.dblp(T),E<0)break;var D=H[E];U(D!==0),I.type==="affine"?D>0?W=W.mixedAdd(A[D-1>>1]):W=W.mixedAdd(A[-D-1>>1].neg()):D>0?W=W.add(A[D-1>>1]):W=W.add(A[-D-1>>1].neg())}return I.type==="affine"?W.toP():W},X.prototype._wnafMulAdd=function(I,O,J,F,A){var H=this._wnafT1,W=this._wnafT2,E=this._wnafT3,T=0,D,C,L;for(D=0;D=1;D-=2){var P=D-1,z=D;if(H[P]!==1||H[z]!==1){E[P]=G(J[P],H[P],this._bitLength),E[z]=G(J[z],H[z],this._bitLength),T=Math.max(E[P].length,T),T=Math.max(E[z].length,T);continue}var M=[O[P],null,null,O[z]];O[P].y.cmp(O[z].y)===0?(M[1]=O[P].add(O[z]),M[2]=O[P].toJ().mixedAdd(O[z].neg())):O[P].y.cmp(O[z].y.redNeg())===0?(M[1]=O[P].toJ().mixedAdd(O[z]),M[2]=O[P].add(O[z].neg())):(M[1]=O[P].toJ().mixedAdd(O[z]),M[2]=O[P].toJ().mixedAdd(O[z].neg()));var S=[-3,-1,-5,-7,0,7,5,1,3],v=V(J[P],J[z]);for(T=Math.max(v[0].length,T),E[P]=new Array(T),E[z]=new Array(T),C=0;C=0;D--){for(var _=0;D>=0;){var N=!0;for(C=0;C=0&&_++,k=k.dblp(_),D<0)break;for(C=0;C0?L=W[C][x-1>>1]:x<0&&(L=W[C][-x-1>>1].neg()),L.type==="affine"?k=k.mixedAdd(L):k=k.add(L))}}for(D=0;D=Math.ceil((I.bitLength()+1)/O.step):!1},K.prototype._getDoubles=function(I,O){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var J=[this],F=this,A=0;A=0&&(P=D,z=C),L.negative&&(L=L.neg(),R=R.neg()),P.negative&&(P=P.neg(),z=z.neg()),[{a:L,b:R},{a:P,b:z}]},X.prototype._endoSplit=function(O){var J=this.endo.basis,F=J[0],A=J[1],H=A.b.mul(O).divRound(this.n),W=F.b.neg().mul(O).divRound(this.n),E=H.mul(F.a),T=W.mul(A.a),D=H.mul(F.b),C=W.mul(A.b),L=O.sub(E).sub(T),R=D.add(C).neg();return{k1:L,k2:R}},X.prototype.pointFromX=function(O,J){O=new Z(O,16),O.red||(O=O.toRed(this.red));var F=O.redSqr().redMul(O).redIAdd(O.redMul(this.a)).redIAdd(this.b),A=F.redSqrt();if(A.redSqr().redSub(F).cmp(this.zero)!==0)throw new Error("invalid point");var H=A.fromRed().isOdd();return(J&&!H||!J&&H)&&(A=A.redNeg()),this.point(O,A)},X.prototype.validate=function(O){if(O.inf)return!0;var{x:J,y:F}=O,A=this.a.redMul(J),H=J.redSqr().redMul(J).redIAdd(A).redIAdd(this.b);return F.redSqr().redISub(H).cmpn(0)===0},X.prototype._endoWnafMulAdd=function(O,J,F){for(var A=this._endoWnafT1,H=this._endoWnafT2,W=0;W":""},K.prototype.isInfinity=function(){return this.inf},K.prototype.add=function(O){if(this.inf)return O;if(O.inf)return this;if(this.eq(O))return this.dbl();if(this.neg().eq(O))return this.curve.point(null,null);if(this.x.cmp(O.x)===0)return this.curve.point(null,null);var J=this.y.redSub(O.y);J.cmpn(0)!==0&&(J=J.redMul(this.x.redSub(O.x).redInvm()));var F=J.redSqr().redISub(this.x).redISub(O.x),A=J.redMul(this.x.redSub(F)).redISub(this.y);return this.curve.point(F,A)},K.prototype.dbl=function(){if(this.inf)return this;var O=this.y.redAdd(this.y);if(O.cmpn(0)===0)return this.curve.point(null,null);var J=this.curve.a,F=this.x.redSqr(),A=O.redInvm(),H=F.redAdd(F).redIAdd(F).redIAdd(J).redMul(A),W=H.redSqr().redISub(this.x.redAdd(this.x)),E=H.redMul(this.x.redSub(W)).redISub(this.y);return this.curve.point(W,E)},K.prototype.getX=function(){return this.x.fromRed()},K.prototype.getY=function(){return this.y.fromRed()},K.prototype.mul=function(O){return O=new Z(O,16),this.isInfinity()?this:this._hasDoubles(O)?this.curve._fixedNafMul(this,O):this.curve.endo?this.curve._endoWnafMulAdd([this],[O]):this.curve._wnafMul(this,O)},K.prototype.mulAdd=function(O,J,F){var A=[this,J],H=[O,F];return this.curve.endo?this.curve._endoWnafMulAdd(A,H):this.curve._wnafMulAdd(1,A,H,2)},K.prototype.jmulAdd=function(O,J,F){var A=[this,J],H=[O,F];return this.curve.endo?this.curve._endoWnafMulAdd(A,H,!0):this.curve._wnafMulAdd(1,A,H,2,!0)},K.prototype.eq=function(O){return this===O||this.inf===O.inf&&(this.inf||this.x.cmp(O.x)===0&&this.y.cmp(O.y)===0)},K.prototype.neg=function(O){if(this.inf)return this;var J=this.curve.point(this.x,this.y.redNeg());if(O&&this.precomputed){var F=this.precomputed,A=function(H){return H.neg()};J.precomputed={naf:F.naf&&{wnd:F.naf.wnd,points:F.naf.points.map(A)},doubles:F.doubles&&{step:F.doubles.step,points:F.doubles.points.map(A)}}}return J},K.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var O=this.curve.jpoint(this.x,this.y,this.curve.one);return O};function I(O,J,F,A){V.BasePoint.call(this,O,"jacobian"),J===null&&F===null&&A===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new Z(0)):(this.x=new Z(J,16),this.y=new Z(F,16),this.z=new Z(A,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}G(I,V.BasePoint),X.prototype.jpoint=function(O,J,F){return new I(this,O,J,F)},I.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var O=this.z.redInvm(),J=O.redSqr(),F=this.x.redMul(J),A=this.y.redMul(J).redMul(O);return this.curve.point(F,A)},I.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},I.prototype.add=function(O){if(this.isInfinity())return O;if(O.isInfinity())return this;var J=O.z.redSqr(),F=this.z.redSqr(),A=this.x.redMul(J),H=O.x.redMul(F),W=this.y.redMul(J.redMul(O.z)),E=O.y.redMul(F.redMul(this.z)),T=A.redSub(H),D=W.redSub(E);if(T.cmpn(0)===0)return D.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var C=T.redSqr(),L=C.redMul(T),R=A.redMul(C),P=D.redSqr().redIAdd(L).redISub(R).redISub(R),z=D.redMul(R.redISub(P)).redISub(W.redMul(L)),M=this.z.redMul(O.z).redMul(T);return this.curve.jpoint(P,z,M)},I.prototype.mixedAdd=function(O){if(this.isInfinity())return O.toJ();if(O.isInfinity())return this;var J=this.z.redSqr(),F=this.x,A=O.x.redMul(J),H=this.y,W=O.y.redMul(J).redMul(this.z),E=F.redSub(A),T=H.redSub(W);if(E.cmpn(0)===0)return T.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var D=E.redSqr(),C=D.redMul(E),L=F.redMul(D),R=T.redSqr().redIAdd(C).redISub(L).redISub(L),P=T.redMul(L.redISub(R)).redISub(H.redMul(C)),z=this.z.redMul(E);return this.curve.jpoint(R,P,z)},I.prototype.dblp=function(O){if(O===0)return this;if(this.isInfinity())return this;if(!O)return this.dbl();var J;if(this.curve.zeroA||this.curve.threeA){var F=this;for(J=0;J=0)return!1;if(F.redIAdd(H),this.x.cmp(F)===0)return!0}},I.prototype.inspect=function(){return this.isInfinity()?"":""},I.prototype.isInfinity=function(){return this.z.cmpn(0)===0}}}),sQ=q$({"node_modules/elliptic/lib/elliptic/curve/mont.js"($,Q){var Y=bQ(),Z=_$(),G=uQ(),V=oQ();function U(K){G.call(this,"mont",K),this.a=new Y(K.a,16).toRed(this.red),this.b=new Y(K.b,16).toRed(this.red),this.i4=new Y(4).toRed(this.red).redInvm(),this.two=new Y(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}Z(U,G),Q.exports=U,U.prototype.validate=function(K){var I=K.normalize().x,O=I.redSqr(),J=O.redMul(I).redAdd(O.redMul(this.a)).redAdd(I),F=J.redSqrt();return F.redSqr().cmp(J)===0};function X(K,I,O){G.BasePoint.call(this,K,"projective"),I===null&&O===null?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new Y(I,16),this.z=new Y(O,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}Z(X,G.BasePoint),U.prototype.decodePoint=function(K,I){return this.point(V.toArray(K,I),1)},U.prototype.point=function(K,I){return new X(this,K,I)},U.prototype.pointFromJSON=function(K){return X.fromJSON(this,K)},X.prototype.precompute=function(){},X.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},X.fromJSON=function(K,I){return new X(K,I[0],I[1]||K.one)},X.prototype.inspect=function(){return this.isInfinity()?"":""},X.prototype.isInfinity=function(){return this.z.cmpn(0)===0},X.prototype.dbl=function(){var K=this.x.redAdd(this.z),I=K.redSqr(),O=this.x.redSub(this.z),J=O.redSqr(),F=I.redSub(J),A=I.redMul(J),H=F.redMul(J.redAdd(this.curve.a24.redMul(F)));return this.curve.point(A,H)},X.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},X.prototype.diffAdd=function(K,I){var O=this.x.redAdd(this.z),J=this.x.redSub(this.z),F=K.x.redAdd(K.z),A=K.x.redSub(K.z),H=A.redMul(O),W=F.redMul(J),E=I.z.redMul(H.redAdd(W).redSqr()),T=I.x.redMul(H.redISub(W).redSqr());return this.curve.point(E,T)},X.prototype.mul=function(K){for(var I=K.clone(),O=this,J=this.curve.point(null,null),F=this,A=[];I.cmpn(0)!==0;I.iushrn(1))A.push(I.andln(1));for(var H=A.length-1;H>=0;H--)A[H]===0?(O=O.diffAdd(J,F),J=J.dbl()):(J=O.diffAdd(J,F),O=O.dbl());return J},X.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},X.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},X.prototype.eq=function(K){return this.getX().cmp(K.getX())===0},X.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},X.prototype.getX=function(){return this.normalize(),this.x.fromRed()}}}),tQ=q$({"node_modules/elliptic/lib/elliptic/curve/edwards.js"($,Q){var Y=oQ(),Z=bQ(),G=_$(),V=uQ(),U=Y.assert;function X(I){this.twisted=(I.a|0)!==1,this.mOneA=this.twisted&&(I.a|0)===-1,this.extended=this.mOneA,V.call(this,"edwards",I),this.a=new Z(I.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new Z(I.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new Z(I.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),U(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(I.c|0)===1}G(X,V),Q.exports=X,X.prototype._mulA=function(I){return this.mOneA?I.redNeg():this.a.redMul(I)},X.prototype._mulC=function(I){return this.oneC?I:this.c.redMul(I)},X.prototype.jpoint=function(I,O,J,F){return this.point(I,O,J,F)},X.prototype.pointFromX=function(I,O){I=new Z(I,16),I.red||(I=I.toRed(this.red));var J=I.redSqr(),F=this.c2.redSub(this.a.redMul(J)),A=this.one.redSub(this.c2.redMul(this.d).redMul(J)),H=F.redMul(A.redInvm()),W=H.redSqrt();if(W.redSqr().redSub(H).cmp(this.zero)!==0)throw new Error("invalid point");var E=W.fromRed().isOdd();return(O&&!E||!O&&E)&&(W=W.redNeg()),this.point(I,W)},X.prototype.pointFromY=function(I,O){I=new Z(I,16),I.red||(I=I.toRed(this.red));var J=I.redSqr(),F=J.redSub(this.c2),A=J.redMul(this.d).redMul(this.c2).redSub(this.a),H=F.redMul(A.redInvm());if(H.cmp(this.zero)===0){if(O)throw new Error("invalid point");return this.point(this.zero,I)}var W=H.redSqrt();if(W.redSqr().redSub(H).cmp(this.zero)!==0)throw new Error("invalid point");return W.fromRed().isOdd()!==O&&(W=W.redNeg()),this.point(W,I)},X.prototype.validate=function(I){if(I.isInfinity())return!0;I.normalize();var O=I.x.redSqr(),J=I.y.redSqr(),F=O.redMul(this.a).redAdd(J),A=this.c2.redMul(this.one.redAdd(this.d.redMul(O).redMul(J)));return F.cmp(A)===0};function K(I,O,J,F,A){V.BasePoint.call(this,I,"projective"),O===null&&J===null&&F===null?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new Z(O,16),this.y=new Z(J,16),this.z=F?new Z(F,16):this.curve.one,this.t=A&&new Z(A,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}G(K,V.BasePoint),X.prototype.pointFromJSON=function(I){return K.fromJSON(this,I)},X.prototype.point=function(I,O,J,F){return new K(this,I,O,J,F)},K.fromJSON=function(I,O){return new K(I,O[0],O[1],O[2])},K.prototype.inspect=function(){return this.isInfinity()?"":""},K.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)},K.prototype._extDbl=function(){var I=this.x.redSqr(),O=this.y.redSqr(),J=this.z.redSqr();J=J.redIAdd(J);var F=this.curve._mulA(I),A=this.x.redAdd(this.y).redSqr().redISub(I).redISub(O),H=F.redAdd(O),W=H.redSub(J),E=F.redSub(O),T=A.redMul(W),D=H.redMul(E),C=A.redMul(E),L=W.redMul(H);return this.curve.point(T,D,L,C)},K.prototype._projDbl=function(){var I=this.x.redAdd(this.y).redSqr(),O=this.x.redSqr(),J=this.y.redSqr(),F,A,H,W,E,T;if(this.curve.twisted){W=this.curve._mulA(O);var D=W.redAdd(J);this.zOne?(F=I.redSub(O).redSub(J).redMul(D.redSub(this.curve.two)),A=D.redMul(W.redSub(J)),H=D.redSqr().redSub(D).redSub(D)):(E=this.z.redSqr(),T=D.redSub(E).redISub(E),F=I.redSub(O).redISub(J).redMul(T),A=D.redMul(W.redSub(J)),H=D.redMul(T))}else W=O.redAdd(J),E=this.curve._mulC(this.z).redSqr(),T=W.redSub(E).redSub(E),F=this.curve._mulC(I.redISub(W)).redMul(T),A=this.curve._mulC(W).redMul(O.redISub(J)),H=W.redMul(T);return this.curve.point(F,A,H)},K.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},K.prototype._extAdd=function(I){var O=this.y.redSub(this.x).redMul(I.y.redSub(I.x)),J=this.y.redAdd(this.x).redMul(I.y.redAdd(I.x)),F=this.t.redMul(this.curve.dd).redMul(I.t),A=this.z.redMul(I.z.redAdd(I.z)),H=J.redSub(O),W=A.redSub(F),E=A.redAdd(F),T=J.redAdd(O),D=H.redMul(W),C=E.redMul(T),L=H.redMul(T),R=W.redMul(E);return this.curve.point(D,C,R,L)},K.prototype._projAdd=function(I){var O=this.z.redMul(I.z),J=O.redSqr(),F=this.x.redMul(I.x),A=this.y.redMul(I.y),H=this.curve.d.redMul(F).redMul(A),W=J.redSub(H),E=J.redAdd(H),T=this.x.redAdd(this.y).redMul(I.x.redAdd(I.y)).redISub(F).redISub(A),D=O.redMul(W).redMul(T),C,L;return this.curve.twisted?(C=O.redMul(E).redMul(A.redSub(this.curve._mulA(F))),L=W.redMul(E)):(C=O.redMul(E).redMul(A.redSub(F)),L=this.curve._mulC(W).redMul(E)),this.curve.point(D,C,L)},K.prototype.add=function(I){return this.isInfinity()?I:I.isInfinity()?this:this.curve.extended?this._extAdd(I):this._projAdd(I)},K.prototype.mul=function(I){return this._hasDoubles(I)?this.curve._fixedNafMul(this,I):this.curve._wnafMul(this,I)},K.prototype.mulAdd=function(I,O,J){return this.curve._wnafMulAdd(1,[this,O],[I,J],2,!1)},K.prototype.jmulAdd=function(I,O,J){return this.curve._wnafMulAdd(1,[this,O],[I,J],2,!0)},K.prototype.normalize=function(){if(this.zOne)return this;var I=this.z.redInvm();return this.x=this.x.redMul(I),this.y=this.y.redMul(I),this.t&&(this.t=this.t.redMul(I)),this.z=this.curve.one,this.zOne=!0,this},K.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},K.prototype.getX=function(){return this.normalize(),this.x.fromRed()},K.prototype.getY=function(){return this.normalize(),this.y.fromRed()},K.prototype.eq=function(I){return this===I||this.getX().cmp(I.getX())===0&&this.getY().cmp(I.getY())===0},K.prototype.eqXToP=function(I){var O=I.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(O)===0)return!0;for(var J=I.clone(),F=this.curve.redN.redMul(this.z);;){if(J.iadd(this.curve.n),J.cmp(this.curve.p)>=0)return!1;if(O.redIAdd(F),this.x.cmp(O)===0)return!0}},K.prototype.toP=K.prototype.normalize,K.prototype.mixedAdd=K.prototype.add}}),mQ=q$({"node_modules/elliptic/lib/elliptic/curve/index.js"($){var Q=$;Q.base=uQ(),Q.short=nQ(),Q.mont=sQ(),Q.edwards=tQ()}}),aQ=q$({"node_modules/hash.js/lib/hash/utils.js"($){var Q=ZQ(),Y=_$();$.inherits=Y;function Z(k,g){return(k.charCodeAt(g)&64512)!==55296||g<0||g+1>=k.length?!1:(k.charCodeAt(g+1)&64512)===56320}function G(k,g){if(Array.isArray(k))return k.slice();if(!k)return[];var _=[];if(typeof k=="string")if(g){if(g==="hex")for(k=k.replace(/[^a-z0-9]+/gi,""),k.length%2!==0&&(k="0"+k),x=0;x>6|192,_[N++]=B&63|128):Z(k,x)?(B=65536+((B&1023)<<10)+(k.charCodeAt(++x)&1023),_[N++]=B>>18|240,_[N++]=B>>12&63|128,_[N++]=B>>6&63|128,_[N++]=B&63|128):(_[N++]=B>>12|224,_[N++]=B>>6&63|128,_[N++]=B&63|128)}else for(x=0;x>>24|k>>>8&65280|k<<8&16711680|(k&255)<<24;return g>>>0}$.htonl=U;function X(k,g){for(var _="",N=0;N>>0}return B}$.join32=O;function J(k,g){for(var _=new Array(k.length*4),N=0,x=0;N>>24,_[x+1]=B>>>16&255,_[x+2]=B>>>8&255,_[x+3]=B&255):(_[x+3]=B>>>24,_[x+2]=B>>>16&255,_[x+1]=B>>>8&255,_[x]=B&255)}return _}$.split32=J;function F(k,g){return k>>>g|k<<32-g}$.rotr32=F;function A(k,g){return k<>>32-g}$.rotl32=A;function H(k,g){return k+g>>>0}$.sum32=H;function W(k,g,_){return k+g+_>>>0}$.sum32_3=W;function E(k,g,_,N){return k+g+_+N>>>0}$.sum32_4=E;function T(k,g,_,N,x){return k+g+_+N+x>>>0}$.sum32_5=T;function D(k,g,_,N){var x=k[g],B=k[g+1],y=N+B>>>0,w=(y>>0,k[g+1]=y}$.sum64=D;function C(k,g,_,N){var x=g+N>>>0,B=(x>>0}$.sum64_hi=C;function L(k,g,_,N){var x=g+N;return x>>>0}$.sum64_lo=L;function R(k,g,_,N,x,B,y,w){var p=0,f=g;f=f+N>>>0,p+=f>>0,p+=f>>0,p+=f>>0}$.sum64_4_hi=R;function P(k,g,_,N,x,B,y,w){var p=g+N+B+w;return p>>>0}$.sum64_4_lo=P;function z(k,g,_,N,x,B,y,w,p,f){var c=0,h=g;h=h+N>>>0,c+=h>>0,c+=h>>0,c+=h>>0,c+=h>>0}$.sum64_5_hi=z;function M(k,g,_,N,x,B,y,w,p,f){var c=g+N+B+w+f;return c>>>0}$.sum64_5_lo=M;function S(k,g,_){var N=g<<32-_|k>>>_;return N>>>0}$.rotr64_hi=S;function v(k,g,_){var N=k<<32-_|g>>>_;return N>>>0}$.rotr64_lo=v;function q(k,g,_){return k>>>_}$.shr64_hi=q;function j(k,g,_){var N=k<<32-_|g>>>_;return N>>>0}$.shr64_lo=j}}),eQ=q$({"node_modules/hash.js/lib/hash/common.js"($){var Q=aQ(),Y=ZQ();function Z(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}$.BlockHash=Z,Z.prototype.update=function(G,V){if(G=Q.toArray(G,V),this.pending?this.pending=this.pending.concat(G):this.pending=G,this.pendingTotal+=G.length,this.pending.length>=this._delta8){G=this.pending;var U=G.length%this._delta8;this.pending=G.slice(G.length-U,G.length),this.pending.length===0&&(this.pending=null),G=Q.join32(G,0,G.length-U,this.endian);for(var X=0;X>>24&255,X[K++]=G>>>16&255,X[K++]=G>>>8&255,X[K++]=G&255}else for(X[K++]=G&255,X[K++]=G>>>8&255,X[K++]=G>>>16&255,X[K++]=G>>>24&255,X[K++]=0,X[K++]=0,X[K++]=0,X[K++]=0,I=8;I>>3}$.g0_256=I;function O(J){return Y(J,17)^Y(J,19)^J>>>10}$.g1_256=O}}),iQ=q$({"node_modules/hash.js/lib/hash/sha/1.js"($,Q){var Y=aQ(),Z=eQ(),G=rQ(),V=Y.rotl32,U=Y.sum32,X=Y.sum32_5,K=G.ft_1,I=Z.BlockHash,O=[1518500249,1859775393,2400959708,3395469782];function J(){if(!(this instanceof J))return new J;I.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}Y.inherits(J,I),Q.exports=J,J.blockSize=512,J.outSize=160,J.hmacStrength=80,J.padLength=64,J.prototype._update=function(F,A){for(var H=this.W,W=0;W<16;W++)H[W]=F[A+W];for(;Wthis.blockSize&&(V=new this.Hash().update(V).digest()),Z(V.length<=this.blockSize);for(var U=V.length;U=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(X,K,I)}Q.exports=V,V.prototype._init=function(U,X,K){var I=U.concat(X).concat(K);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var O=0;O=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(U.concat(K||[])),this._reseed=1},V.prototype.generate=function(U,X,K,I){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");typeof X!="string"&&(I=K,K=X,X=null),K&&(K=Z.toArray(K,I||"hex"),this._update(K));for(var O=[];O.length"}}}),FY=q$({"node_modules/elliptic/lib/elliptic/ec/signature.js"($,Q){var Y=bQ(),Z=oQ(),G=Z.assert;function V(O,J){if(O instanceof V)return O;this._importDER(O,J)||(G(O.r&&O.s,"Signature without r or s"),this.r=new Y(O.r,16),this.s=new Y(O.s,16),O.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=O.recoveryParam)}Q.exports=V;function U(){this.place=0}function X(O,J){var F=O[J.place++];if(!(F&128))return F;var A=F&15;if(A===0||A>4)return!1;for(var H=0,W=0,E=J.place;W>>=0;return H<=127?!1:(J.place=E,H)}function K(O){for(var J=0,F=O.length-1;!O[J]&&!(O[J+1]&128)&&J>>3);for(O.push(F|128);--F;)O.push(J>>>(F<<3)&255);O.push(J)}V.prototype.toDER=function(O){var J=this.r.toArray(),F=this.s.toArray();for(J[0]&128&&(J=[0].concat(J)),F[0]&128&&(F=[0].concat(F)),J=K(J),F=K(F);!F[0]&&!(F[1]&128);)F=F.slice(1);var A=[2];I(A,J.length),A=A.concat(J),A.push(2),I(A,F.length);var H=A.concat(F),W=[48];return I(W,H.length),W=W.concat(H),Z.encode(W,O)}}}),AY=q$({"node_modules/elliptic/lib/elliptic/ec/index.js"($,Q){var Y=bQ(),Z=OY(),G=oQ(),V=IY(),U=xQ(),X=G.assert,K=JY(),I=FY();function O(J){if(!(this instanceof O))return new O(J);typeof J=="string"&&(X(Object.prototype.hasOwnProperty.call(V,J),"Unknown curve "+J),J=V[J]),J instanceof V.PresetCurve&&(J={curve:J}),this.curve=J.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=J.curve.g,this.g.precompute(J.curve.n.bitLength()+1),this.hash=J.hash||J.curve.hash}Q.exports=O,O.prototype.keyPair=function(J){return new K(this,J)},O.prototype.keyFromPrivate=function(J,F){return K.fromPrivate(this,J,F)},O.prototype.keyFromPublic=function(J,F){return K.fromPublic(this,J,F)},O.prototype.genKeyPair=function(J){J||(J={});for(var F=new Z({hash:this.hash,pers:J.pers,persEnc:J.persEnc||"utf8",entropy:J.entropy||U(this.hash.hmacStrength),entropyEnc:J.entropy&&J.entropyEnc||"utf8",nonce:this.n.toArray()}),A=this.n.byteLength(),H=this.n.sub(new Y(2));;){var W=new Y(F.generate(A));if(!(W.cmp(H)>0))return W.iaddn(1),this.keyFromPrivate(W)}},O.prototype._truncateToN=function(J,F){var A=J.byteLength()*8-this.n.bitLength();return A>0&&(J=J.ushrn(A)),!F&&J.cmp(this.n)>=0?J.sub(this.n):J},O.prototype.sign=function(J,F,A,H){typeof A=="object"&&(H=A,A=null),H||(H={}),F=this.keyFromPrivate(F,A),J=this._truncateToN(new Y(J,16));for(var W=this.n.byteLength(),E=F.getPrivate().toArray("be",W),T=J.toArray("be",W),D=new Z({hash:this.hash,entropy:E,nonce:T,pers:H.pers,persEnc:H.persEnc||"utf8"}),C=this.n.sub(new Y(1)),L=0;;L++){var R=H.k?H.k(L):new Y(D.generate(this.n.byteLength()));if(R=this._truncateToN(R,!0),!(R.cmpn(1)<=0||R.cmp(C)>=0)){var P=this.g.mul(R);if(!P.isInfinity()){var z=P.getX(),M=z.umod(this.n);if(M.cmpn(0)!==0){var S=R.invm(this.n).mul(M.mul(F.getPrivate()).iadd(J));if(S=S.umod(this.n),S.cmpn(0)!==0){var v=(P.getY().isOdd()?1:0)|(z.cmp(M)!==0?2:0);return H.canonical&&S.cmp(this.nh)>0&&(S=this.n.sub(S),v^=1),new I({r:M,s:S,recoveryParam:v})}}}}}},O.prototype.verify=function(J,F,A,H){J=this._truncateToN(new Y(J,16)),A=this.keyFromPublic(A,H),F=new I(F,"hex");var{r:W,s:E}=F;if(W.cmpn(1)<0||W.cmp(this.n)>=0||E.cmpn(1)<0||E.cmp(this.n)>=0)return!1;var T=E.invm(this.n),D=T.mul(J).umod(this.n),C=T.mul(W).umod(this.n),L;return this.curve._maxwellTrick?(L=this.g.jmulAdd(D,A.getPublic(),C),L.isInfinity()?!1:L.eqXToP(W)):(L=this.g.mulAdd(D,A.getPublic(),C),L.isInfinity()?!1:L.getX().umod(this.n).cmp(W)===0)},O.prototype.recoverPubKey=function(J,F,A,H){X((3&A)===A,"The recovery param is more than two bits"),F=new I(F,H);var W=this.n,E=new Y(J),T=F.r,D=F.s,C=A&1,L=A>>1;if(T.cmp(this.curve.p.umod(this.curve.n))>=0&&L)throw new Error("Unable to find sencond key candinate");L?T=this.curve.pointFromX(T.add(this.curve.n),C):T=this.curve.pointFromX(T,C);var R=F.r.invm(W),P=W.sub(E).mul(R).umod(W),z=D.mul(R).umod(W);return this.g.mulAdd(P,T,z)},O.prototype.getKeyRecoveryParam=function(J,F,A,H){if(F=new I(F,H),F.recoveryParam!==null)return F.recoveryParam;for(var W=0;W<4;W++){var E;try{E=this.recoverPubKey(J,F,W)}catch{continue}if(E.eq(A))return W}throw new Error("Unable to find valid recovery factor")}}}),HY=q$({"node_modules/elliptic/lib/elliptic/eddsa/key.js"($,Q){var Y=oQ(),Z=Y.assert,G=Y.parseBytes,V=Y.cachedProperty;function U(X,K){this.eddsa=X,this._secret=G(K.secret),X.isPoint(K.pub)?this._pub=K.pub:this._pubBytes=G(K.pub)}U.fromPublic=function(X,K){return K instanceof U?K:new U(X,{pub:K})},U.fromSecret=function(X,K){return K instanceof U?K:new U(X,{secret:K})},U.prototype.secret=function(){return this._secret},V(U,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())}),V(U,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())}),V(U,"privBytes",function(){var X=this.eddsa,K=this.hash(),I=X.encodingLength-1,O=K.slice(0,X.encodingLength);return O[0]&=248,O[I]&=127,O[I]|=64,O}),V(U,"priv",function(){return this.eddsa.decodeInt(this.privBytes())}),V(U,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()}),V(U,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)}),U.prototype.sign=function(X){return Z(this._secret,"KeyPair can only verify"),this.eddsa.sign(X,this)},U.prototype.verify=function(X,K){return this.eddsa.verify(X,K,this)},U.prototype.getSecret=function(X){return Z(this._secret,"KeyPair is public only"),Y.encode(this.secret(),X)},U.prototype.getPublic=function(X){return Y.encode(this.pubBytes(),X)},Q.exports=U}}),WY=q$({"node_modules/elliptic/lib/elliptic/eddsa/signature.js"($,Q){var Y=bQ(),Z=oQ(),G=Z.assert,V=Z.cachedProperty,U=Z.parseBytes;function X(K,I){this.eddsa=K,typeof I!="object"&&(I=U(I)),Array.isArray(I)&&(I={R:I.slice(0,K.encodingLength),S:I.slice(K.encodingLength)}),G(I.R&&I.S,"Signature without R or S"),K.isPoint(I.R)&&(this._R=I.R),I.S instanceof Y&&(this._S=I.S),this._Rencoded=Array.isArray(I.R)?I.R:I.Rencoded,this._Sencoded=Array.isArray(I.S)?I.S:I.Sencoded}V(X,"S",function(){return this.eddsa.decodeInt(this.Sencoded())}),V(X,"R",function(){return this.eddsa.decodePoint(this.Rencoded())}),V(X,"Rencoded",function(){return this.eddsa.encodePoint(this.R())}),V(X,"Sencoded",function(){return this.eddsa.encodeInt(this.S())}),X.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},X.prototype.toHex=function(){return Z.encode(this.toBytes(),"hex").toUpperCase()},Q.exports=X}}),EY=q$({"node_modules/elliptic/lib/elliptic/eddsa/index.js"($,Q){var Y=XY(),Z=IY(),G=oQ(),V=G.assert,U=G.parseBytes,X=HY(),K=WY();function I(O){if(V(O==="ed25519","only tested with ed25519 so far"),!(this instanceof I))return new I(O);O=Z[O].curve,this.curve=O,this.g=O.g,this.g.precompute(O.n.bitLength()+1),this.pointClass=O.point().constructor,this.encodingLength=Math.ceil(O.n.bitLength()/8),this.hash=Y.sha512}Q.exports=I,I.prototype.sign=function(O,J){O=U(O);var F=this.keyFromSecret(J),A=this.hashInt(F.messagePrefix(),O),H=this.g.mul(A),W=this.encodePoint(H),E=this.hashInt(W,F.pubBytes(),O).mul(F.priv()),T=A.add(E).umod(this.curve.n);return this.makeSignature({R:H,S:T,Rencoded:W})},I.prototype.verify=function(O,J,F){O=U(O),J=this.makeSignature(J);var A=this.keyFromPublic(F),H=this.hashInt(J.Rencoded(),A.pubBytes(),O),W=this.g.mul(J.S()),E=J.R().add(A.pub().mul(H));return E.eq(W)},I.prototype.hashInt=function(){for(var O=this.hash(),J=0;J0?j:k},U.min=function(j,k){return j.cmp(k)<0?j:k},U.prototype._init=function(j,k,g){if(typeof j=="number")return this._initNumber(j,k,g);if(typeof j=="object")return this._initArray(j,k,g);k==="hex"&&(k=16),G(k===(k|0)&&k>=2&&k<=36),j=j.toString().replace(/\s+/g,"");var _=0;j[0]==="-"&&(_++,this.negative=1),_=0;_-=3)x=j[_]|j[_-1]<<8|j[_-2]<<16,this.words[N]|=x<>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);else if(g==="le")for(_=0,N=0;_>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);return this.strip()};function K(j,k){var g=j.charCodeAt(k);return g>=65&&g<=70?g-55:g>=97&&g<=102?g-87:g-48&15}function I(j,k,g){var _=K(j,g);return g-1>=k&&(_|=K(j,g-1)<<4),_}U.prototype._parseHex=function(j,k,g){this.length=Math.ceil((j.length-k)/6),this.words=new Array(this.length);for(var _=0;_=k;_-=2)B=I(j,k,_)<=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8;else{var y=j.length-k;for(_=y%2===0?k+1:k;_=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8}this.strip()};function O(j,k,g,_){for(var N=0,x=Math.min(j.length,g),B=k;B=49?N+=y-49+10:y>=17?N+=y-17+10:N+=y}return N}U.prototype._parseBase=function(j,k,g){this.words=[0],this.length=1;for(var _=0,N=1;N<=67108863;N*=k)_++;_--,N=N/k|0;for(var x=j.length-g,B=x%_,y=Math.min(x,x-B)+g,w=0,p=g;p1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},U.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],F=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],A=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(j,k){j=j||10,k=k|0||1;var g;if(j===16||j==="hex"){g="";for(var _=0,N=0,x=0;x>>24-_&16777215,N!==0||x!==this.length-1?g=J[6-y.length]+y+g:g=y+g,_+=2,_>=26&&(_-=26,x--)}for(N!==0&&(g=N.toString(16)+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(j===(j|0)&&j>=2&&j<=36){var w=F[j],p=A[j];g="";var f=this.clone();for(f.negative=0;!f.isZero();){var c=f.modn(p).toString(j);f=f.idivn(p),f.isZero()?g=c+g:g=J[w-c.length]+c+g}for(this.isZero()&&(g="0"+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var j=this.words[0];return this.length===2?j+=this.words[1]*67108864:this.length===3&&this.words[2]===1?j+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-j:j},U.prototype.toJSON=function(){return this.toString(16)},U.prototype.toBuffer=function(j,k){return G(typeof X<"u"),this.toArrayLike(X,j,k)},U.prototype.toArray=function(j,k){return this.toArrayLike(Array,j,k)},U.prototype.toArrayLike=function(j,k,g){var _=this.byteLength(),N=g||Math.max(1,_);G(_<=N,"byte array longer than desired length"),G(N>0,"Requested array length <= 0"),this.strip();var x=k==="le",B=new j(N),y,w,p=this.clone();if(x){for(w=0;!p.isZero();w++)y=p.andln(255),p.iushrn(8),B[w]=y;for(;w=4096&&(g+=13,k>>>=13),k>=64&&(g+=7,k>>>=7),k>=8&&(g+=4,k>>>=4),k>=2&&(g+=2,k>>>=2),g+k},U.prototype._zeroBits=function(j){if(j===0)return 26;var k=j,g=0;return(k&8191)===0&&(g+=13,k>>>=13),(k&127)===0&&(g+=7,k>>>=7),(k&15)===0&&(g+=4,k>>>=4),(k&3)===0&&(g+=2,k>>>=2),(k&1)===0&&g++,g},U.prototype.bitLength=function(){var j=this.words[this.length-1],k=this._countBits(j);return(this.length-1)*26+k};function H(j){for(var k=new Array(j.bitLength()),g=0;g>>N}return k}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var j=0,k=0;kj.length?this.clone().ior(j):j.clone().ior(this)},U.prototype.uor=function(j){return this.length>j.length?this.clone().iuor(j):j.clone().iuor(this)},U.prototype.iuand=function(j){var k;this.length>j.length?k=j:k=this;for(var g=0;gj.length?this.clone().iand(j):j.clone().iand(this)},U.prototype.uand=function(j){return this.length>j.length?this.clone().iuand(j):j.clone().iuand(this)},U.prototype.iuxor=function(j){var k,g;this.length>j.length?(k=this,g=j):(k=j,g=this);for(var _=0;_j.length?this.clone().ixor(j):j.clone().ixor(this)},U.prototype.uxor=function(j){return this.length>j.length?this.clone().iuxor(j):j.clone().iuxor(this)},U.prototype.inotn=function(j){G(typeof j=="number"&&j>=0);var k=Math.ceil(j/26)|0,g=j%26;this._expand(k),g>0&&k--;for(var _=0;_0&&(this.words[_]=~this.words[_]&67108863>>26-g),this.strip()},U.prototype.notn=function(j){return this.clone().inotn(j)},U.prototype.setn=function(j,k){G(typeof j=="number"&&j>=0);var g=j/26|0,_=j%26;return this._expand(g+1),k?this.words[g]=this.words[g]|1<<_:this.words[g]=this.words[g]&~(1<<_),this.strip()},U.prototype.iadd=function(j){var k;if(this.negative!==0&&j.negative===0)return this.negative=0,k=this.isub(j),this.negative^=1,this._normSign();if(this.negative===0&&j.negative!==0)return j.negative=0,k=this.isub(j),j.negative=1,k._normSign();var g,_;this.length>j.length?(g=this,_=j):(g=j,_=this);for(var N=0,x=0;x<_.length;x++)k=(g.words[x]|0)+(_.words[x]|0)+N,this.words[x]=k&67108863,N=k>>>26;for(;N!==0&&x>>26;if(this.length=g.length,N!==0)this.words[this.length]=N,this.length++;else if(g!==this)for(;xj.length?this.clone().iadd(j):j.clone().iadd(this)},U.prototype.isub=function(j){if(j.negative!==0){j.negative=0;var k=this.iadd(j);return j.negative=1,k._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(j),this.negative=1,this._normSign();var g=this.cmp(j);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var _,N;g>0?(_=this,N=j):(_=j,N=this);for(var x=0,B=0;B>26,this.words[B]=k&67108863;for(;x!==0&&B<_.length;B++)k=(_.words[B]|0)+x,x=k>>26,this.words[B]=k&67108863;if(x===0&&B<_.length&&_!==this)for(;B<_.length;B++)this.words[B]=_.words[B];return this.length=Math.max(this.length,B),_!==this&&(this.negative=1),this.strip()},U.prototype.sub=function(j){return this.clone().isub(j)};function W(j,k,g){g.negative=k.negative^j.negative;var _=j.length+k.length|0;g.length=_,_=_-1|0;var N=j.words[0]|0,x=k.words[0]|0,B=N*x,y=B&67108863,w=B/67108864|0;g.words[0]=y;for(var p=1;p<_;p++){for(var f=w>>>26,c=w&67108863,h=Math.min(p,k.length-1),d=Math.max(0,p-j.length+1);d<=h;d++){var b=p-d|0;N=j.words[b]|0,x=k.words[d]|0,B=N*x+c,f+=B/67108864|0,c=B&67108863}g.words[p]=c|0,w=f|0}return w!==0?g.words[p]=w|0:g.length--,g.strip()}var E=function(j,k,g){var _=j.words,N=k.words,x=g.words,B=0,y,w,p,f=_[0]|0,c=f&8191,h=f>>>13,d=_[1]|0,b=d&8191,l=d>>>13,o=_[2]|0,u=o&8191,n=o>>>13,s=_[3]|0,t=s&8191,m=s>>>13,a=_[4]|0,e=a&8191,r=a>>>13,i=_[5]|0,$0=i&8191,Q0=i>>>13,Y0=_[6]|0,Z0=Y0&8191,G0=Y0>>>13,V0=_[7]|0,U0=V0&8191,X0=V0>>>13,K0=_[8]|0,I0=K0&8191,O0=K0>>>13,J0=_[9]|0,F0=J0&8191,A0=J0>>>13,H0=N[0]|0,W0=H0&8191,E0=H0>>>13,T0=N[1]|0,D0=T0&8191,C0=T0>>>13,L0=N[2]|0,R0=L0&8191,P0=L0>>>13,z0=N[3]|0,M0=z0&8191,S0=z0>>>13,v0=N[4]|0,q0=v0&8191,j0=v0>>>13,k0=N[5]|0,g0=k0&8191,_0=k0>>>13,N0=N[6]|0,x0=N0&8191,B0=N0>>>13,y0=N[7]|0,w0=y0&8191,p0=y0>>>13,f0=N[8]|0,c0=f0&8191,h0=f0>>>13,d0=N[9]|0,b0=d0&8191,l0=d0>>>13;g.negative=j.negative^k.negative,g.length=19,y=Math.imul(c,W0),w=Math.imul(c,E0),w=w+Math.imul(h,W0)|0,p=Math.imul(h,E0);var o0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(o0>>>26)|0,o0&=67108863,y=Math.imul(b,W0),w=Math.imul(b,E0),w=w+Math.imul(l,W0)|0,p=Math.imul(l,E0),y=y+Math.imul(c,D0)|0,w=w+Math.imul(c,C0)|0,w=w+Math.imul(h,D0)|0,p=p+Math.imul(h,C0)|0;var u0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(u0>>>26)|0,u0&=67108863,y=Math.imul(u,W0),w=Math.imul(u,E0),w=w+Math.imul(n,W0)|0,p=Math.imul(n,E0),y=y+Math.imul(b,D0)|0,w=w+Math.imul(b,C0)|0,w=w+Math.imul(l,D0)|0,p=p+Math.imul(l,C0)|0,y=y+Math.imul(c,R0)|0,w=w+Math.imul(c,P0)|0,w=w+Math.imul(h,R0)|0,p=p+Math.imul(h,P0)|0;var n0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(n0>>>26)|0,n0&=67108863,y=Math.imul(t,W0),w=Math.imul(t,E0),w=w+Math.imul(m,W0)|0,p=Math.imul(m,E0),y=y+Math.imul(u,D0)|0,w=w+Math.imul(u,C0)|0,w=w+Math.imul(n,D0)|0,p=p+Math.imul(n,C0)|0,y=y+Math.imul(b,R0)|0,w=w+Math.imul(b,P0)|0,w=w+Math.imul(l,R0)|0,p=p+Math.imul(l,P0)|0,y=y+Math.imul(c,M0)|0,w=w+Math.imul(c,S0)|0,w=w+Math.imul(h,M0)|0,p=p+Math.imul(h,S0)|0;var s0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(s0>>>26)|0,s0&=67108863,y=Math.imul(e,W0),w=Math.imul(e,E0),w=w+Math.imul(r,W0)|0,p=Math.imul(r,E0),y=y+Math.imul(t,D0)|0,w=w+Math.imul(t,C0)|0,w=w+Math.imul(m,D0)|0,p=p+Math.imul(m,C0)|0,y=y+Math.imul(u,R0)|0,w=w+Math.imul(u,P0)|0,w=w+Math.imul(n,R0)|0,p=p+Math.imul(n,P0)|0,y=y+Math.imul(b,M0)|0,w=w+Math.imul(b,S0)|0,w=w+Math.imul(l,M0)|0,p=p+Math.imul(l,S0)|0,y=y+Math.imul(c,q0)|0,w=w+Math.imul(c,j0)|0,w=w+Math.imul(h,q0)|0,p=p+Math.imul(h,j0)|0;var t0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(t0>>>26)|0,t0&=67108863,y=Math.imul($0,W0),w=Math.imul($0,E0),w=w+Math.imul(Q0,W0)|0,p=Math.imul(Q0,E0),y=y+Math.imul(e,D0)|0,w=w+Math.imul(e,C0)|0,w=w+Math.imul(r,D0)|0,p=p+Math.imul(r,C0)|0,y=y+Math.imul(t,R0)|0,w=w+Math.imul(t,P0)|0,w=w+Math.imul(m,R0)|0,p=p+Math.imul(m,P0)|0,y=y+Math.imul(u,M0)|0,w=w+Math.imul(u,S0)|0,w=w+Math.imul(n,M0)|0,p=p+Math.imul(n,S0)|0,y=y+Math.imul(b,q0)|0,w=w+Math.imul(b,j0)|0,w=w+Math.imul(l,q0)|0,p=p+Math.imul(l,j0)|0,y=y+Math.imul(c,g0)|0,w=w+Math.imul(c,_0)|0,w=w+Math.imul(h,g0)|0,p=p+Math.imul(h,_0)|0;var m0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(m0>>>26)|0,m0&=67108863,y=Math.imul(Z0,W0),w=Math.imul(Z0,E0),w=w+Math.imul(G0,W0)|0,p=Math.imul(G0,E0),y=y+Math.imul($0,D0)|0,w=w+Math.imul($0,C0)|0,w=w+Math.imul(Q0,D0)|0,p=p+Math.imul(Q0,C0)|0,y=y+Math.imul(e,R0)|0,w=w+Math.imul(e,P0)|0,w=w+Math.imul(r,R0)|0,p=p+Math.imul(r,P0)|0,y=y+Math.imul(t,M0)|0,w=w+Math.imul(t,S0)|0,w=w+Math.imul(m,M0)|0,p=p+Math.imul(m,S0)|0,y=y+Math.imul(u,q0)|0,w=w+Math.imul(u,j0)|0,w=w+Math.imul(n,q0)|0,p=p+Math.imul(n,j0)|0,y=y+Math.imul(b,g0)|0,w=w+Math.imul(b,_0)|0,w=w+Math.imul(l,g0)|0,p=p+Math.imul(l,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,B0)|0,w=w+Math.imul(h,x0)|0,p=p+Math.imul(h,B0)|0;var a0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(a0>>>26)|0,a0&=67108863,y=Math.imul(U0,W0),w=Math.imul(U0,E0),w=w+Math.imul(X0,W0)|0,p=Math.imul(X0,E0),y=y+Math.imul(Z0,D0)|0,w=w+Math.imul(Z0,C0)|0,w=w+Math.imul(G0,D0)|0,p=p+Math.imul(G0,C0)|0,y=y+Math.imul($0,R0)|0,w=w+Math.imul($0,P0)|0,w=w+Math.imul(Q0,R0)|0,p=p+Math.imul(Q0,P0)|0,y=y+Math.imul(e,M0)|0,w=w+Math.imul(e,S0)|0,w=w+Math.imul(r,M0)|0,p=p+Math.imul(r,S0)|0,y=y+Math.imul(t,q0)|0,w=w+Math.imul(t,j0)|0,w=w+Math.imul(m,q0)|0,p=p+Math.imul(m,j0)|0,y=y+Math.imul(u,g0)|0,w=w+Math.imul(u,_0)|0,w=w+Math.imul(n,g0)|0,p=p+Math.imul(n,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,B0)|0,w=w+Math.imul(l,x0)|0,p=p+Math.imul(l,B0)|0,y=y+Math.imul(c,w0)|0,w=w+Math.imul(c,p0)|0,w=w+Math.imul(h,w0)|0,p=p+Math.imul(h,p0)|0;var e0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(e0>>>26)|0,e0&=67108863,y=Math.imul(I0,W0),w=Math.imul(I0,E0),w=w+Math.imul(O0,W0)|0,p=Math.imul(O0,E0),y=y+Math.imul(U0,D0)|0,w=w+Math.imul(U0,C0)|0,w=w+Math.imul(X0,D0)|0,p=p+Math.imul(X0,C0)|0,y=y+Math.imul(Z0,R0)|0,w=w+Math.imul(Z0,P0)|0,w=w+Math.imul(G0,R0)|0,p=p+Math.imul(G0,P0)|0,y=y+Math.imul($0,M0)|0,w=w+Math.imul($0,S0)|0,w=w+Math.imul(Q0,M0)|0,p=p+Math.imul(Q0,S0)|0,y=y+Math.imul(e,q0)|0,w=w+Math.imul(e,j0)|0,w=w+Math.imul(r,q0)|0,p=p+Math.imul(r,j0)|0,y=y+Math.imul(t,g0)|0,w=w+Math.imul(t,_0)|0,w=w+Math.imul(m,g0)|0,p=p+Math.imul(m,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,B0)|0,w=w+Math.imul(n,x0)|0,p=p+Math.imul(n,B0)|0,y=y+Math.imul(b,w0)|0,w=w+Math.imul(b,p0)|0,w=w+Math.imul(l,w0)|0,p=p+Math.imul(l,p0)|0,y=y+Math.imul(c,c0)|0,w=w+Math.imul(c,h0)|0,w=w+Math.imul(h,c0)|0,p=p+Math.imul(h,h0)|0;var r0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(r0>>>26)|0,r0&=67108863,y=Math.imul(F0,W0),w=Math.imul(F0,E0),w=w+Math.imul(A0,W0)|0,p=Math.imul(A0,E0),y=y+Math.imul(I0,D0)|0,w=w+Math.imul(I0,C0)|0,w=w+Math.imul(O0,D0)|0,p=p+Math.imul(O0,C0)|0,y=y+Math.imul(U0,R0)|0,w=w+Math.imul(U0,P0)|0,w=w+Math.imul(X0,R0)|0,p=p+Math.imul(X0,P0)|0,y=y+Math.imul(Z0,M0)|0,w=w+Math.imul(Z0,S0)|0,w=w+Math.imul(G0,M0)|0,p=p+Math.imul(G0,S0)|0,y=y+Math.imul($0,q0)|0,w=w+Math.imul($0,j0)|0,w=w+Math.imul(Q0,q0)|0,p=p+Math.imul(Q0,j0)|0,y=y+Math.imul(e,g0)|0,w=w+Math.imul(e,_0)|0,w=w+Math.imul(r,g0)|0,p=p+Math.imul(r,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,B0)|0,w=w+Math.imul(m,x0)|0,p=p+Math.imul(m,B0)|0,y=y+Math.imul(u,w0)|0,w=w+Math.imul(u,p0)|0,w=w+Math.imul(n,w0)|0,p=p+Math.imul(n,p0)|0,y=y+Math.imul(b,c0)|0,w=w+Math.imul(b,h0)|0,w=w+Math.imul(l,c0)|0,p=p+Math.imul(l,h0)|0,y=y+Math.imul(c,b0)|0,w=w+Math.imul(c,l0)|0,w=w+Math.imul(h,b0)|0,p=p+Math.imul(h,l0)|0;var i0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(i0>>>26)|0,i0&=67108863,y=Math.imul(F0,D0),w=Math.imul(F0,C0),w=w+Math.imul(A0,D0)|0,p=Math.imul(A0,C0),y=y+Math.imul(I0,R0)|0,w=w+Math.imul(I0,P0)|0,w=w+Math.imul(O0,R0)|0,p=p+Math.imul(O0,P0)|0,y=y+Math.imul(U0,M0)|0,w=w+Math.imul(U0,S0)|0,w=w+Math.imul(X0,M0)|0,p=p+Math.imul(X0,S0)|0,y=y+Math.imul(Z0,q0)|0,w=w+Math.imul(Z0,j0)|0,w=w+Math.imul(G0,q0)|0,p=p+Math.imul(G0,j0)|0,y=y+Math.imul($0,g0)|0,w=w+Math.imul($0,_0)|0,w=w+Math.imul(Q0,g0)|0,p=p+Math.imul(Q0,_0)|0,y=y+Math.imul(e,x0)|0,w=w+Math.imul(e,B0)|0,w=w+Math.imul(r,x0)|0,p=p+Math.imul(r,B0)|0,y=y+Math.imul(t,w0)|0,w=w+Math.imul(t,p0)|0,w=w+Math.imul(m,w0)|0,p=p+Math.imul(m,p0)|0,y=y+Math.imul(u,c0)|0,w=w+Math.imul(u,h0)|0,w=w+Math.imul(n,c0)|0,p=p+Math.imul(n,h0)|0,y=y+Math.imul(b,b0)|0,w=w+Math.imul(b,l0)|0,w=w+Math.imul(l,b0)|0,p=p+Math.imul(l,l0)|0;var $$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+($$>>>26)|0,$$&=67108863,y=Math.imul(F0,R0),w=Math.imul(F0,P0),w=w+Math.imul(A0,R0)|0,p=Math.imul(A0,P0),y=y+Math.imul(I0,M0)|0,w=w+Math.imul(I0,S0)|0,w=w+Math.imul(O0,M0)|0,p=p+Math.imul(O0,S0)|0,y=y+Math.imul(U0,q0)|0,w=w+Math.imul(U0,j0)|0,w=w+Math.imul(X0,q0)|0,p=p+Math.imul(X0,j0)|0,y=y+Math.imul(Z0,g0)|0,w=w+Math.imul(Z0,_0)|0,w=w+Math.imul(G0,g0)|0,p=p+Math.imul(G0,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,B0)|0,w=w+Math.imul(Q0,x0)|0,p=p+Math.imul(Q0,B0)|0,y=y+Math.imul(e,w0)|0,w=w+Math.imul(e,p0)|0,w=w+Math.imul(r,w0)|0,p=p+Math.imul(r,p0)|0,y=y+Math.imul(t,c0)|0,w=w+Math.imul(t,h0)|0,w=w+Math.imul(m,c0)|0,p=p+Math.imul(m,h0)|0,y=y+Math.imul(u,b0)|0,w=w+Math.imul(u,l0)|0,w=w+Math.imul(n,b0)|0,p=p+Math.imul(n,l0)|0;var Q$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,y=Math.imul(F0,M0),w=Math.imul(F0,S0),w=w+Math.imul(A0,M0)|0,p=Math.imul(A0,S0),y=y+Math.imul(I0,q0)|0,w=w+Math.imul(I0,j0)|0,w=w+Math.imul(O0,q0)|0,p=p+Math.imul(O0,j0)|0,y=y+Math.imul(U0,g0)|0,w=w+Math.imul(U0,_0)|0,w=w+Math.imul(X0,g0)|0,p=p+Math.imul(X0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,B0)|0,w=w+Math.imul(G0,x0)|0,p=p+Math.imul(G0,B0)|0,y=y+Math.imul($0,w0)|0,w=w+Math.imul($0,p0)|0,w=w+Math.imul(Q0,w0)|0,p=p+Math.imul(Q0,p0)|0,y=y+Math.imul(e,c0)|0,w=w+Math.imul(e,h0)|0,w=w+Math.imul(r,c0)|0,p=p+Math.imul(r,h0)|0,y=y+Math.imul(t,b0)|0,w=w+Math.imul(t,l0)|0,w=w+Math.imul(m,b0)|0,p=p+Math.imul(m,l0)|0;var Y$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,y=Math.imul(F0,q0),w=Math.imul(F0,j0),w=w+Math.imul(A0,q0)|0,p=Math.imul(A0,j0),y=y+Math.imul(I0,g0)|0,w=w+Math.imul(I0,_0)|0,w=w+Math.imul(O0,g0)|0,p=p+Math.imul(O0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,B0)|0,w=w+Math.imul(X0,x0)|0,p=p+Math.imul(X0,B0)|0,y=y+Math.imul(Z0,w0)|0,w=w+Math.imul(Z0,p0)|0,w=w+Math.imul(G0,w0)|0,p=p+Math.imul(G0,p0)|0,y=y+Math.imul($0,c0)|0,w=w+Math.imul($0,h0)|0,w=w+Math.imul(Q0,c0)|0,p=p+Math.imul(Q0,h0)|0,y=y+Math.imul(e,b0)|0,w=w+Math.imul(e,l0)|0,w=w+Math.imul(r,b0)|0,p=p+Math.imul(r,l0)|0;var Z$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,y=Math.imul(F0,g0),w=Math.imul(F0,_0),w=w+Math.imul(A0,g0)|0,p=Math.imul(A0,_0),y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,B0)|0,w=w+Math.imul(O0,x0)|0,p=p+Math.imul(O0,B0)|0,y=y+Math.imul(U0,w0)|0,w=w+Math.imul(U0,p0)|0,w=w+Math.imul(X0,w0)|0,p=p+Math.imul(X0,p0)|0,y=y+Math.imul(Z0,c0)|0,w=w+Math.imul(Z0,h0)|0,w=w+Math.imul(G0,c0)|0,p=p+Math.imul(G0,h0)|0,y=y+Math.imul($0,b0)|0,w=w+Math.imul($0,l0)|0,w=w+Math.imul(Q0,b0)|0,p=p+Math.imul(Q0,l0)|0;var G$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(G$>>>26)|0,G$&=67108863,y=Math.imul(F0,x0),w=Math.imul(F0,B0),w=w+Math.imul(A0,x0)|0,p=Math.imul(A0,B0),y=y+Math.imul(I0,w0)|0,w=w+Math.imul(I0,p0)|0,w=w+Math.imul(O0,w0)|0,p=p+Math.imul(O0,p0)|0,y=y+Math.imul(U0,c0)|0,w=w+Math.imul(U0,h0)|0,w=w+Math.imul(X0,c0)|0,p=p+Math.imul(X0,h0)|0,y=y+Math.imul(Z0,b0)|0,w=w+Math.imul(Z0,l0)|0,w=w+Math.imul(G0,b0)|0,p=p+Math.imul(G0,l0)|0;var V$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(V$>>>26)|0,V$&=67108863,y=Math.imul(F0,w0),w=Math.imul(F0,p0),w=w+Math.imul(A0,w0)|0,p=Math.imul(A0,p0),y=y+Math.imul(I0,c0)|0,w=w+Math.imul(I0,h0)|0,w=w+Math.imul(O0,c0)|0,p=p+Math.imul(O0,h0)|0,y=y+Math.imul(U0,b0)|0,w=w+Math.imul(U0,l0)|0,w=w+Math.imul(X0,b0)|0,p=p+Math.imul(X0,l0)|0;var U$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(U$>>>26)|0,U$&=67108863,y=Math.imul(F0,c0),w=Math.imul(F0,h0),w=w+Math.imul(A0,c0)|0,p=Math.imul(A0,h0),y=y+Math.imul(I0,b0)|0,w=w+Math.imul(I0,l0)|0,w=w+Math.imul(O0,b0)|0,p=p+Math.imul(O0,l0)|0;var X$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(X$>>>26)|0,X$&=67108863,y=Math.imul(F0,b0),w=Math.imul(F0,l0),w=w+Math.imul(A0,b0)|0,p=Math.imul(A0,l0);var K$=(B+y|0)+((w&8191)<<13)|0;return B=(p+(w>>>13)|0)+(K$>>>26)|0,K$&=67108863,x[0]=o0,x[1]=u0,x[2]=n0,x[3]=s0,x[4]=t0,x[5]=m0,x[6]=a0,x[7]=e0,x[8]=r0,x[9]=i0,x[10]=$$,x[11]=Q$,x[12]=Y$,x[13]=Z$,x[14]=G$,x[15]=V$,x[16]=U$,x[17]=X$,x[18]=K$,B!==0&&(x[19]=B,g.length++),g};Math.imul||(E=W);function T(j,k,g){g.negative=k.negative^j.negative,g.length=j.length+k.length;for(var _=0,N=0,x=0;x>>26)|0,N+=B>>>26,B&=67108863}g.words[x]=y,_=B,B=N}return _!==0?g.words[x]=_:g.length--,g.strip()}function D(j,k,g){var _=new C;return _.mulp(j,k,g)}U.prototype.mulTo=function(j,k){var g,_=this.length+j.length;return this.length===10&&j.length===10?g=E(this,j,k):_<63?g=W(this,j,k):_<1024?g=T(this,j,k):g=D(this,j,k),g};function C(j,k){this.x=j,this.y=k}C.prototype.makeRBT=function(j){for(var k=new Array(j),g=U.prototype._countBits(j)-1,_=0;_>=1;return _},C.prototype.permute=function(j,k,g,_,N,x){for(var B=0;B>>1)N++;return 1<>>13,g[2*x+1]=N&8191,N=N>>>13;for(x=2*k;x<_;++x)g[x]=0;G(N===0),G((N&-8192)===0)},C.prototype.stub=function(j){for(var k=new Array(j),g=0;g>=26,k+=_/67108864|0,k+=N>>>26,this.words[g]=N&67108863}return k!==0&&(this.words[g]=k,this.length++),this},U.prototype.muln=function(j){return this.clone().imuln(j)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(j){var k=H(j);if(k.length===0)return new U(1);for(var g=this,_=0;_=0);var k=j%26,g=(j-k)/26,_=67108863>>>26-k<<26-k,N;if(k!==0){var x=0;for(N=0;N>>26-k}x&&(this.words[N]=x,this.length++)}if(g!==0){for(N=this.length-1;N>=0;N--)this.words[N+g]=this.words[N];for(N=0;N=0);var _;k?_=(k-k%26)/26:_=0;var N=j%26,x=Math.min((j-N)/26,this.length),B=67108863^67108863>>>N<x)for(this.length-=x,w=0;w=0&&(p!==0||w>=_);w--){var f=this.words[w]|0;this.words[w]=p<<26-N|f>>>N,p=f&B}return y&&p!==0&&(y.words[y.length++]=p),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},U.prototype.ishrn=function(j,k,g){return G(this.negative===0),this.iushrn(j,k,g)},U.prototype.shln=function(j){return this.clone().ishln(j)},U.prototype.ushln=function(j){return this.clone().iushln(j)},U.prototype.shrn=function(j){return this.clone().ishrn(j)},U.prototype.ushrn=function(j){return this.clone().iushrn(j)},U.prototype.testn=function(j){G(typeof j=="number"&&j>=0);var k=j%26,g=(j-k)/26,_=1<=0);var k=j%26,g=(j-k)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(k!==0&&g++,this.length=Math.min(g,this.length),k!==0){var _=67108863^67108863>>>k<=67108864;k++)this.words[k]-=67108864,k===this.length-1?this.words[k+1]=1:this.words[k+1]++;return this.length=Math.max(this.length,k+1),this},U.prototype.isubn=function(j){if(G(typeof j=="number"),G(j<67108864),j<0)return this.iaddn(-j);if(this.negative!==0)return this.negative=0,this.iaddn(j),this.negative=1,this;if(this.words[0]-=j,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var k=0;k>26)-(y/67108864|0),this.words[N+g]=x&67108863}for(;N>26,this.words[N+g]=x&67108863;if(B===0)return this.strip();for(G(B===-1),B=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},U.prototype._wordDiv=function(j,k){var g=this.length-j.length,_=this.clone(),N=j,x=N.words[N.length-1]|0,B=this._countBits(x);g=26-B,g!==0&&(N=N.ushln(g),_.iushln(g),x=N.words[N.length-1]|0);var y=_.length-N.length,w;if(k!=="mod"){w=new U(null),w.length=y+1,w.words=new Array(w.length);for(var p=0;p=0;c--){var h=(_.words[N.length+c]|0)*67108864+(_.words[N.length+c-1]|0);for(h=Math.min(h/x|0,67108863),_._ishlnsubmul(N,h,c);_.negative!==0;)h--,_.negative=0,_._ishlnsubmul(N,1,c),_.isZero()||(_.negative^=1);w&&(w.words[c]=h)}return w&&w.strip(),_.strip(),k!=="div"&&g!==0&&_.iushrn(g),{div:w||null,mod:_}},U.prototype.divmod=function(j,k,g){if(G(!j.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var _,N,x;return this.negative!==0&&j.negative===0?(x=this.neg().divmod(j,k),k!=="mod"&&(_=x.div.neg()),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.iadd(j)),{div:_,mod:N}):this.negative===0&&j.negative!==0?(x=this.divmod(j.neg(),k),k!=="mod"&&(_=x.div.neg()),{div:_,mod:x.mod}):(this.negative&j.negative)!==0?(x=this.neg().divmod(j.neg(),k),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.isub(j)),{div:x.div,mod:N}):j.length>this.length||this.cmp(j)<0?{div:new U(0),mod:this}:j.length===1?k==="div"?{div:this.divn(j.words[0]),mod:null}:k==="mod"?{div:null,mod:new U(this.modn(j.words[0]))}:{div:this.divn(j.words[0]),mod:new U(this.modn(j.words[0]))}:this._wordDiv(j,k)},U.prototype.div=function(j){return this.divmod(j,"div",!1).div},U.prototype.mod=function(j){return this.divmod(j,"mod",!1).mod},U.prototype.umod=function(j){return this.divmod(j,"mod",!0).mod},U.prototype.divRound=function(j){var k=this.divmod(j);if(k.mod.isZero())return k.div;var g=k.div.negative!==0?k.mod.isub(j):k.mod,_=j.ushrn(1),N=j.andln(1),x=g.cmp(_);return x<0||N===1&&x===0?k.div:k.div.negative!==0?k.div.isubn(1):k.div.iaddn(1)},U.prototype.modn=function(j){G(j<=67108863);for(var k=(1<<26)%j,g=0,_=this.length-1;_>=0;_--)g=(k*g+(this.words[_]|0))%j;return g},U.prototype.idivn=function(j){G(j<=67108863);for(var k=0,g=this.length-1;g>=0;g--){var _=(this.words[g]|0)+k*67108864;this.words[g]=_/j|0,k=_%j}return this.strip()},U.prototype.divn=function(j){return this.clone().idivn(j)},U.prototype.egcd=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=new U(0),B=new U(1),y=0;k.isEven()&&g.isEven();)k.iushrn(1),g.iushrn(1),++y;for(var w=g.clone(),p=k.clone();!k.isZero();){for(var f=0,c=1;(k.words[0]&c)===0&&f<26;++f,c<<=1);if(f>0)for(k.iushrn(f);f-- >0;)(_.isOdd()||N.isOdd())&&(_.iadd(w),N.isub(p)),_.iushrn(1),N.iushrn(1);for(var h=0,d=1;(g.words[0]&d)===0&&h<26;++h,d<<=1);if(h>0)for(g.iushrn(h);h-- >0;)(x.isOdd()||B.isOdd())&&(x.iadd(w),B.isub(p)),x.iushrn(1),B.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(x),N.isub(B)):(g.isub(k),x.isub(_),B.isub(N))}return{a:x,b:B,gcd:g.iushln(y)}},U.prototype._invmp=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=g.clone();k.cmpn(1)>0&&g.cmpn(1)>0;){for(var B=0,y=1;(k.words[0]&y)===0&&B<26;++B,y<<=1);if(B>0)for(k.iushrn(B);B-- >0;)_.isOdd()&&_.iadd(x),_.iushrn(1);for(var w=0,p=1;(g.words[0]&p)===0&&w<26;++w,p<<=1);if(w>0)for(g.iushrn(w);w-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(N)):(g.isub(k),N.isub(_))}var f;return k.cmpn(1)===0?f=_:f=N,f.cmpn(0)<0&&f.iadd(j),f},U.prototype.gcd=function(j){if(this.isZero())return j.abs();if(j.isZero())return this.abs();var k=this.clone(),g=j.clone();k.negative=0,g.negative=0;for(var _=0;k.isEven()&&g.isEven();_++)k.iushrn(1),g.iushrn(1);do{for(;k.isEven();)k.iushrn(1);for(;g.isEven();)g.iushrn(1);var N=k.cmp(g);if(N<0){var x=k;k=g,g=x}else if(N===0||g.cmpn(1)===0)break;k.isub(g)}while(!0);return g.iushln(_)},U.prototype.invm=function(j){return this.egcd(j).a.umod(j)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(j){return this.words[0]&j},U.prototype.bincn=function(j){G(typeof j=="number");var k=j%26,g=(j-k)/26,_=1<>>26,B&=67108863,this.words[x]=B}return N!==0&&(this.words[x]=N,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(j){var k=j<0;if(this.negative!==0&&!k)return-1;if(this.negative===0&&k)return 1;this.strip();var g;if(this.length>1)g=1;else{k&&(j=-j),G(j<=67108863,"Number is too big");var _=this.words[0]|0;g=_===j?0:_j.length)return 1;if(this.length=0;g--){var _=this.words[g]|0,N=j.words[g]|0;if(_!==N){_N&&(k=1);break}}return k},U.prototype.gtn=function(j){return this.cmpn(j)===1},U.prototype.gt=function(j){return this.cmp(j)===1},U.prototype.gten=function(j){return this.cmpn(j)>=0},U.prototype.gte=function(j){return this.cmp(j)>=0},U.prototype.ltn=function(j){return this.cmpn(j)===-1},U.prototype.lt=function(j){return this.cmp(j)===-1},U.prototype.lten=function(j){return this.cmpn(j)<=0},U.prototype.lte=function(j){return this.cmp(j)<=0},U.prototype.eqn=function(j){return this.cmpn(j)===0},U.prototype.eq=function(j){return this.cmp(j)===0},U.red=function(j){return new v(j)},U.prototype.toRed=function(j){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),j.convertTo(this)._forceRed(j)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(j){return this.red=j,this},U.prototype.forceRed=function(j){return G(!this.red,"Already a number in reduction context"),this._forceRed(j)},U.prototype.redAdd=function(j){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,j)},U.prototype.redIAdd=function(j){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,j)},U.prototype.redSub=function(j){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,j)},U.prototype.redISub=function(j){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,j)},U.prototype.redShl=function(j){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,j)},U.prototype.redMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.mul(this,j)},U.prototype.redIMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.imul(this,j)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(j){return G(this.red&&!j.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,j)};var L={k256:null,p224:null,p192:null,p25519:null};function R(j,k){this.name=j,this.p=new U(k,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}R.prototype._tmp=function(){var j=new U(null);return j.words=new Array(Math.ceil(this.n/13)),j},R.prototype.ireduce=function(j){var k=j,g;do this.split(k,this.tmp),k=this.imulK(k),k=k.iadd(this.tmp),g=k.bitLength();while(g>this.n);var _=g0?k.isub(this.p):k.strip!==void 0?k.strip():k._strip(),k},R.prototype.split=function(j,k){j.iushrn(this.n,0,k)},R.prototype.imulK=function(j){return j.imul(this.k)};function P(){R.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(P,R),P.prototype.split=function(j,k){for(var g=4194303,_=Math.min(j.length,9),N=0;N<_;N++)k.words[N]=j.words[N];if(k.length=_,j.length<=9){j.words[0]=0,j.length=1;return}var x=j.words[9];for(k.words[k.length++]=x&g,N=10;N>>22,x=B}x>>>=22,j.words[N-10]=x,x===0&&j.length>10?j.length-=10:j.length-=9},P.prototype.imulK=function(j){j.words[j.length]=0,j.words[j.length+1]=0,j.length+=2;for(var k=0,g=0;g>>=26,j.words[g]=N,k=_}return k!==0&&(j.words[j.length++]=k),j},U._prime=function(j){if(L[j])return L[j];var k;if(j==="k256")k=new P;else if(j==="p224")k=new z;else if(j==="p192")k=new M;else if(j==="p25519")k=new S;else throw new Error("Unknown prime "+j);return L[j]=k,k};function v(j){if(typeof j=="string"){var k=U._prime(j);this.m=k.p,this.prime=k}else G(j.gtn(1),"modulus must be greater than 1"),this.m=j,this.prime=null}v.prototype._verify1=function(j){G(j.negative===0,"red works only with positives"),G(j.red,"red works only with red numbers")},v.prototype._verify2=function(j,k){G((j.negative|k.negative)===0,"red works only with positives"),G(j.red&&j.red===k.red,"red works only with red numbers")},v.prototype.imod=function(j){return this.prime?this.prime.ireduce(j)._forceRed(this):j.umod(this.m)._forceRed(this)},v.prototype.neg=function(j){return j.isZero()?j.clone():this.m.sub(j)._forceRed(this)},v.prototype.add=function(j,k){this._verify2(j,k);var g=j.add(k);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},v.prototype.iadd=function(j,k){this._verify2(j,k);var g=j.iadd(k);return g.cmp(this.m)>=0&&g.isub(this.m),g},v.prototype.sub=function(j,k){this._verify2(j,k);var g=j.sub(k);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},v.prototype.isub=function(j,k){this._verify2(j,k);var g=j.isub(k);return g.cmpn(0)<0&&g.iadd(this.m),g},v.prototype.shl=function(j,k){return this._verify1(j),this.imod(j.ushln(k))},v.prototype.imul=function(j,k){return this._verify2(j,k),this.imod(j.imul(k))},v.prototype.mul=function(j,k){return this._verify2(j,k),this.imod(j.mul(k))},v.prototype.isqr=function(j){return this.imul(j,j.clone())},v.prototype.sqr=function(j){return this.mul(j,j)},v.prototype.sqrt=function(j){if(j.isZero())return j.clone();var k=this.m.andln(3);if(G(k%2===1),k===3){var g=this.m.add(new U(1)).iushrn(2);return this.pow(j,g)}for(var _=this.m.subn(1),N=0;!_.isZero()&&_.andln(1)===0;)N++,_.iushrn(1);G(!_.isZero());var x=new U(1).toRed(this),B=x.redNeg(),y=this.m.subn(1).iushrn(1),w=this.m.bitLength();for(w=new U(2*w*w).toRed(this);this.pow(w,y).cmp(B)!==0;)w.redIAdd(B);for(var p=this.pow(w,_),f=this.pow(j,_.addn(1).iushrn(1)),c=this.pow(j,_),h=N;c.cmp(x)!==0;){for(var d=c,b=0;d.cmp(x)!==0;b++)d=d.redSqr();G(b=0;N--){for(var p=k.words[N],f=w-1;f>=0;f--){var c=p>>f&1;if(x!==_[0]&&(x=this.sqr(x)),c===0&&B===0){y=0;continue}B<<=1,B|=c,y++,!(y!==g&&(N!==0||f!==0))&&(x=this.mul(x,_[B]),y=0,B=0)}w=26}return x},v.prototype.convertTo=function(j){var k=j.umod(this.m);return k===j?k.clone():k},v.prototype.convertFrom=function(j){var k=j.clone();return k.red=null,k},U.mont=function(j){return new q(j)};function q(j){v.call(this,j),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(q,v),q.prototype.convertTo=function(j){return this.imod(j.ushln(this.shift))},q.prototype.convertFrom=function(j){var k=this.imod(j.mul(this.rinv));return k.red=null,k},q.prototype.imul=function(j,k){if(j.isZero()||k.isZero())return j.words[0]=0,j.length=1,j;var g=j.imul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.mul=function(j,k){if(j.isZero()||k.isZero())return new U(0)._forceRed(this);var g=j.mul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.invm=function(j){var k=this.imod(j._invmp(this.m).mul(this.r2));return k._forceRed(this)}})(typeof Q>"u"||Q,$)}}),CY=q$({"node_modules/safer-buffer/safer.js"($,Q){var Y=M$,Z=F$,G={},V;for(V in Y)!Y.hasOwnProperty(V)||V==="SlowBuffer"||V==="Buffer"||(G[V]=Y[V]);var U=G.Buffer={};for(V in Z)!Z.hasOwnProperty(V)||V==="allocUnsafe"||V==="allocUnsafeSlow"||(U[V]=Z[V]);if(G.Buffer.prototype=Z.prototype,(!U.from||U.from===Uint8Array.from)&&(U.from=function(X,K,I){if(typeof X=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof X);if(X&&typeof X.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof X);return Z(X,K,I)}),U.alloc||(U.alloc=function(X,K,I){if(typeof X!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof X);if(X<0||X>=2*(1<<30))throw new RangeError('The value "'+X+'" is invalid for option "size"');var O=Z(X);return!K||K.length===0?O.fill(0):typeof I=="string"?O.fill(K,I):O.fill(K),O}),!G.kStringMaxLength)try{G.kStringMaxLength=S$}catch{}G.constants||(G.constants={MAX_LENGTH:G.kMaxLength},G.kStringMaxLength&&(G.constants.MAX_STRING_LENGTH=G.kStringMaxLength)),Q.exports=G}}),LY=q$({"node_modules/asn1.js/lib/asn1/base/reporter.js"($){var Q=_$();function Y(G){this._reporterState={obj:null,path:[],options:G||{},errors:[]}}$.Reporter=Y,Y.prototype.isError=function(G){return G instanceof Z},Y.prototype.save=function(){let G=this._reporterState;return{obj:G.obj,pathLen:G.path.length}},Y.prototype.restore=function(G){let V=this._reporterState;V.obj=G.obj,V.path=V.path.slice(0,G.pathLen)},Y.prototype.enterKey=function(G){return this._reporterState.path.push(G)},Y.prototype.exitKey=function(G){let V=this._reporterState;V.path=V.path.slice(0,G-1)},Y.prototype.leaveKey=function(G,V,U){let X=this._reporterState;this.exitKey(G),X.obj!==null&&(X.obj[V]=U)},Y.prototype.path=function(){return this._reporterState.path.join("/")},Y.prototype.enterObject=function(){let G=this._reporterState,V=G.obj;return G.obj={},V},Y.prototype.leaveObject=function(G){let V=this._reporterState,U=V.obj;return V.obj=G,U},Y.prototype.error=function(G){let V,U=this._reporterState,X=G instanceof Z;if(X?V=G:V=new Z(U.path.map(function(K){return"["+JSON.stringify(K)+"]"}).join(""),G.message||G,G.stack),!U.options.partial)throw V;return X||U.errors.push(V),V},Y.prototype.wrapResult=function(G){let V=this._reporterState;return V.options.partial?{result:this.isError(G)?null:G,errors:V.errors}:G};function Z(G,V){this.path=G,this.rethrow(V)}Q(Z,Error),Z.prototype.rethrow=function(G){if(this.message=G+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,Z),!this.stack)try{throw new Error(this.message)}catch(V){this.stack=V.stack}return this}}}),E$=q$({"node_modules/asn1.js/lib/asn1/base/buffer.js"($){var Q=_$(),Y=LY().Reporter,Z=CY().Buffer;function G(U,X){if(Y.call(this,X),!Z.isBuffer(U)){this.error("Input not Buffer");return}this.base=U,this.offset=0,this.length=U.length}Q(G,Y),$.DecoderBuffer=G,G.isDecoderBuffer=function(U){return U instanceof G?!0:typeof U=="object"&&Z.isBuffer(U.base)&&U.constructor.name==="DecoderBuffer"&&typeof U.offset=="number"&&typeof U.length=="number"&&typeof U.save=="function"&&typeof U.restore=="function"&&typeof U.isEmpty=="function"&&typeof U.readUInt8=="function"&&typeof U.skip=="function"&&typeof U.raw=="function"},G.prototype.save=function(){return{offset:this.offset,reporter:Y.prototype.save.call(this)}},G.prototype.restore=function(U){let X=new G(this.base);return X.offset=U.offset,X.length=this.offset,this.offset=U.offset,Y.prototype.restore.call(this,U.reporter),X},G.prototype.isEmpty=function(){return this.offset===this.length},G.prototype.readUInt8=function(U){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(U||"DecoderBuffer overrun")},G.prototype.skip=function(U,X){if(!(this.offset+U<=this.length))return this.error(X||"DecoderBuffer overrun");let K=new G(this.base);return K._reporterState=this._reporterState,K.offset=this.offset,K.length=this.offset+U,this.offset+=U,K},G.prototype.raw=function(U){return this.base.slice(U?U.offset:this.offset,this.length)};function V(U,X){if(Array.isArray(U))this.length=0,this.value=U.map(function(K){return V.isEncoderBuffer(K)||(K=new V(K,X)),this.length+=K.length,K},this);else if(typeof U=="number"){if(!(0<=U&&U<=255))return X.error("non-byte EncoderBuffer value");this.value=U,this.length=1}else if(typeof U=="string")this.value=U,this.length=Z.byteLength(U);else if(Z.isBuffer(U))this.value=U,this.length=U.length;else return X.error("Unsupported type: "+typeof U)}$.EncoderBuffer=V,V.isEncoderBuffer=function(U){return U instanceof V?!0:typeof U=="object"&&U.constructor.name==="EncoderBuffer"&&typeof U.length=="number"&&typeof U.join=="function"},V.prototype.join=function(U,X){return U||(U=Z.alloc(this.length)),X||(X=0),this.length===0||(Array.isArray(this.value)?this.value.forEach(function(K){K.join(U,X),X+=K.length}):(typeof this.value=="number"?U[X]=this.value:typeof this.value=="string"?U.write(this.value,X):Z.isBuffer(this.value)&&this.value.copy(U,X),X+=this.length)),U}}}),RY=q$({"node_modules/asn1.js/lib/asn1/base/node.js"($,Q){var Y=LY().Reporter,Z=E$().EncoderBuffer,G=E$().DecoderBuffer,V=ZQ(),U=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],X=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(U),K=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];function I(J,F,A){let H={};this._baseState=H,H.name=A,H.enc=J,H.parent=F||null,H.children=null,H.tag=null,H.args=null,H.reverseArgs=null,H.choice=null,H.optional=!1,H.any=!1,H.obj=!1,H.use=null,H.useDecoder=null,H.key=null,H.default=null,H.explicit=null,H.implicit=null,H.contains=null,H.parent||(H.children=[],this._wrap())}Q.exports=I;var O=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];I.prototype.clone=function(){let J=this._baseState,F={};O.forEach(function(H){F[H]=J[H]});let A=new this.constructor(F.parent);return A._baseState=F,A},I.prototype._wrap=function(){let J=this._baseState;X.forEach(function(F){this[F]=function(){let A=new this.constructor(this);return J.children.push(A),A[F].apply(A,arguments)}},this)},I.prototype._init=function(J){let F=this._baseState;V(F.parent===null),J.call(this),F.children=F.children.filter(function(A){return A._baseState.parent===this},this),V.equal(F.children.length,1,"Root node can have only one child")},I.prototype._useArgs=function(J){let F=this._baseState,A=J.filter(function(H){return H instanceof this.constructor},this);J=J.filter(function(H){return!(H instanceof this.constructor)},this),A.length!==0&&(V(F.children===null),F.children=A,A.forEach(function(H){H._baseState.parent=this},this)),J.length!==0&&(V(F.args===null),F.args=J,F.reverseArgs=J.map(function(H){if(typeof H!="object"||H.constructor!==Object)return H;let W={};return Object.keys(H).forEach(function(E){E==(E|0)&&(E|=0);let T=H[E];W[T]=E}),W}))},K.forEach(function(J){I.prototype[J]=function(){let F=this._baseState;throw new Error(J+" not implemented for encoding: "+F.enc)}}),U.forEach(function(J){I.prototype[J]=function(){let F=this._baseState,A=Array.prototype.slice.call(arguments);return V(F.tag===null),F.tag=J,this._useArgs(A),this}}),I.prototype.use=function(J){V(J);let F=this._baseState;return V(F.use===null),F.use=J,this},I.prototype.optional=function(){let J=this._baseState;return J.optional=!0,this},I.prototype.def=function(J){let F=this._baseState;return V(F.default===null),F.default=J,F.optional=!0,this},I.prototype.explicit=function(J){let F=this._baseState;return V(F.explicit===null&&F.implicit===null),F.explicit=J,this},I.prototype.implicit=function(J){let F=this._baseState;return V(F.explicit===null&&F.implicit===null),F.implicit=J,this},I.prototype.obj=function(){let J=this._baseState,F=Array.prototype.slice.call(arguments);return J.obj=!0,F.length!==0&&this._useArgs(F),this},I.prototype.key=function(J){let F=this._baseState;return V(F.key===null),F.key=J,this},I.prototype.any=function(){let J=this._baseState;return J.any=!0,this},I.prototype.choice=function(J){let F=this._baseState;return V(F.choice===null),F.choice=J,this._useArgs(Object.keys(J).map(function(A){return J[A]})),this},I.prototype.contains=function(J){let F=this._baseState;return V(F.use===null),F.contains=J,this},I.prototype._decode=function(J,F){let A=this._baseState;if(A.parent===null)return J.wrapResult(A.children[0]._decode(J,F));let H=A.default,W=!0,E=null;if(A.key!==null&&(E=J.enterKey(A.key)),A.optional){let D=null;if(A.explicit!==null?D=A.explicit:A.implicit!==null?D=A.implicit:A.tag!==null&&(D=A.tag),D===null&&!A.any){let C=J.save();try{A.choice===null?this._decodeGeneric(A.tag,J,F):this._decodeChoice(J,F),W=!0}catch{W=!1}J.restore(C)}else if(W=this._peekTag(J,D,A.any),J.isError(W))return W}let T;if(A.obj&&W&&(T=J.enterObject()),W){if(A.explicit!==null){let C=this._decodeTag(J,A.explicit);if(J.isError(C))return C;J=C}let D=J.offset;if(A.use===null&&A.choice===null){let C;A.any&&(C=J.save());let L=this._decodeTag(J,A.implicit!==null?A.implicit:A.tag,A.any);if(J.isError(L))return L;A.any?H=J.raw(C):J=L}if(F&&F.track&&A.tag!==null&&F.track(J.path(),D,J.length,"tagged"),F&&F.track&&A.tag!==null&&F.track(J.path(),J.offset,J.length,"content"),A.any||(A.choice===null?H=this._decodeGeneric(A.tag,J,F):H=this._decodeChoice(J,F)),J.isError(H))return H;if(!A.any&&A.choice===null&&A.children!==null&&A.children.forEach(function(C){C._decode(J,F)}),A.contains&&(A.tag==="octstr"||A.tag==="bitstr")){let C=new G(H);H=this._getUse(A.contains,J._reporterState.obj)._decode(C,F)}}return A.obj&&W&&(H=J.leaveObject(T)),A.key!==null&&(H!==null||W===!0)?J.leaveKey(E,A.key,H):E!==null&&J.exitKey(E),H},I.prototype._decodeGeneric=function(J,F,A){let H=this._baseState;return J==="seq"||J==="set"?null:J==="seqof"||J==="setof"?this._decodeList(F,J,H.args[0],A):/str$/.test(J)?this._decodeStr(F,J,A):J==="objid"&&H.args?this._decodeObjid(F,H.args[0],H.args[1],A):J==="objid"?this._decodeObjid(F,null,null,A):J==="gentime"||J==="utctime"?this._decodeTime(F,J,A):J==="null_"?this._decodeNull(F,A):J==="bool"?this._decodeBool(F,A):J==="objDesc"?this._decodeStr(F,J,A):J==="int"||J==="enum"?this._decodeInt(F,H.args&&H.args[0],A):H.use!==null?this._getUse(H.use,F._reporterState.obj)._decode(F,A):F.error("unknown tag: "+J)},I.prototype._getUse=function(J,F){let A=this._baseState;return A.useDecoder=this._use(J,F),V(A.useDecoder._baseState.parent===null),A.useDecoder=A.useDecoder._baseState.children[0],A.implicit!==A.useDecoder._baseState.implicit&&(A.useDecoder=A.useDecoder.clone(),A.useDecoder._baseState.implicit=A.implicit),A.useDecoder},I.prototype._decodeChoice=function(J,F){let A=this._baseState,H=null,W=!1;return Object.keys(A.choice).some(function(E){let T=J.save(),D=A.choice[E];try{let C=D._decode(J,F);if(J.isError(C))return!1;H={type:E,value:C},W=!0}catch{return J.restore(T),!1}return!0},this),W?H:J.error("Choice not matched")},I.prototype._createEncoderBuffer=function(J){return new Z(J,this.reporter)},I.prototype._encode=function(J,F,A){let H=this._baseState;if(H.default!==null&&H.default===J)return;let W=this._encodeValue(J,F,A);if(W!==void 0&&!this._skipDefault(W,F,A))return W},I.prototype._encodeValue=function(J,F,A){let H=this._baseState;if(H.parent===null)return H.children[0]._encode(J,F||new Y);let W=null;if(this.reporter=F,H.optional&&J===void 0)if(H.default!==null)J=H.default;else return;let E=null,T=!1;if(H.any)W=this._createEncoderBuffer(J);else if(H.choice)W=this._encodeChoice(J,F);else if(H.contains)E=this._getUse(H.contains,A)._encode(J,F),T=!0;else if(H.children)E=H.children.map(function(D){if(D._baseState.tag==="null_")return D._encode(null,F,J);if(D._baseState.key===null)return F.error("Child should have a key");let C=F.enterKey(D._baseState.key);if(typeof J!="object")return F.error("Child expected, but input is not object");let L=D._encode(J[D._baseState.key],F,J);return F.leaveKey(C),L},this).filter(function(D){return D}),E=this._createEncoderBuffer(E);else if(H.tag==="seqof"||H.tag==="setof"){if(!(H.args&&H.args.length===1))return F.error("Too many args for : "+H.tag);if(!Array.isArray(J))return F.error("seqof/setof, but data is not Array");let D=this.clone();D._baseState.implicit=null,E=this._createEncoderBuffer(J.map(function(C){let L=this._baseState;return this._getUse(L.args[0],J)._encode(C,F)},D))}else H.use!==null?W=this._getUse(H.use,A)._encode(J,F):(E=this._encodePrimitive(H.tag,J),T=!0);if(!H.any&&H.choice===null){let D=H.implicit!==null?H.implicit:H.tag,C=H.implicit===null?"universal":"context";D===null?H.use===null&&F.error("Tag could be omitted only for .use()"):H.use===null&&(W=this._encodeComposite(D,T,C,E))}return H.explicit!==null&&(W=this._encodeComposite(H.explicit,!1,"context",W)),W},I.prototype._encodeChoice=function(J,F){let A=this._baseState,H=A.choice[J.type];return H||V(!1,J.type+" not found in "+JSON.stringify(Object.keys(A.choice))),H._encode(J.value,F)},I.prototype._encodePrimitive=function(J,F){let A=this._baseState;if(/str$/.test(J))return this._encodeStr(F,J);if(J==="objid"&&A.args)return this._encodeObjid(F,A.reverseArgs[0],A.args[1]);if(J==="objid")return this._encodeObjid(F,null,null);if(J==="gentime"||J==="utctime")return this._encodeTime(F,J);if(J==="null_")return this._encodeNull();if(J==="int"||J==="enum")return this._encodeInt(F,A.args&&A.reverseArgs[0]);if(J==="bool")return this._encodeBool(F);if(J==="objDesc")return this._encodeStr(F,J);throw new Error("Unsupported tag: "+J)},I.prototype._isNumstr=function(J){return/^[0-9 ]*$/.test(J)},I.prototype._isPrintstr=function(J){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(J)}}}),PY=q$({"node_modules/asn1.js/lib/asn1/constants/der.js"($){function Q(Y){let Z={};return Object.keys(Y).forEach(function(G){(G|0)==G&&(G=G|0);let V=Y[G];Z[V]=G}),Z}$.tagClass={0:"universal",1:"application",2:"context",3:"private"},$.tagClassByName=Q($.tagClass),$.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},$.tagByName=Q($.tag)}}),zY=q$({"node_modules/asn1.js/lib/asn1/encoders/der.js"($,Q){var Y=_$(),Z=CY().Buffer,G=RY(),V=PY();function U(O){this.enc="der",this.name=O.name,this.entity=O,this.tree=new X,this.tree._init(O.body)}Q.exports=U,U.prototype.encode=function(O,J){return this.tree._encode(O,J).join()};function X(O){G.call(this,"der",O)}Y(X,G),X.prototype._encodeComposite=function(O,J,F,A){let H=I(O,J,F,this.reporter);if(A.length<128){let T=Z.alloc(2);return T[0]=H,T[1]=A.length,this._createEncoderBuffer([T,A])}let W=1;for(let T=A.length;T>=256;T>>=8)W++;let E=Z.alloc(2+W);E[0]=H,E[1]=128|W;for(let T=1+W,D=A.length;D>0;T--,D>>=8)E[T]=D&255;return this._createEncoderBuffer([E,A])},X.prototype._encodeStr=function(O,J){if(J==="bitstr")return this._createEncoderBuffer([O.unused|0,O.data]);if(J==="bmpstr"){let F=Z.alloc(O.length*2);for(let A=0;A=40)return this.reporter.error("Second objid identifier OOB");O.splice(0,2,O[0]*40+O[1])}let A=0;for(let E=0;E=128;T>>=7)A++}let H=Z.alloc(A),W=H.length-1;for(let E=O.length-1;E>=0;E--){let T=O[E];for(H[W--]=T&127;(T>>=7)>0;)H[W--]=128|T&127}return this._createEncoderBuffer(H)};function K(O){return O<10?"0"+O:O}X.prototype._encodeTime=function(O,J){let F,A=new Date(O);return J==="gentime"?F=[K(A.getUTCFullYear()),K(A.getUTCMonth()+1),K(A.getUTCDate()),K(A.getUTCHours()),K(A.getUTCMinutes()),K(A.getUTCSeconds()),"Z"].join(""):J==="utctime"?F=[K(A.getUTCFullYear()%100),K(A.getUTCMonth()+1),K(A.getUTCDate()),K(A.getUTCHours()),K(A.getUTCMinutes()),K(A.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+J+" time is not supported yet"),this._encodeStr(F,"octstr")},X.prototype._encodeNull=function(){return this._createEncoderBuffer("")},X.prototype._encodeInt=function(O,J){if(typeof O=="string"){if(!J)return this.reporter.error("String int or enum given, but no values map");if(!J.hasOwnProperty(O))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(O));O=J[O]}if(typeof O!="number"&&!Z.isBuffer(O)){let H=O.toArray();!O.sign&&H[0]&128&&H.unshift(0),O=Z.from(H)}if(Z.isBuffer(O)){let H=O.length;O.length===0&&H++;let W=Z.alloc(H);return O.copy(W),O.length===0&&(W[0]=0),this._createEncoderBuffer(W)}if(O<128)return this._createEncoderBuffer(O);if(O<256)return this._createEncoderBuffer([0,O]);let F=1;for(let H=O;H>=256;H>>=8)F++;let A=new Array(F);for(let H=A.length-1;H>=0;H--)A[H]=O&255,O>>=8;return A[0]&128&&A.unshift(0),this._createEncoderBuffer(Z.from(A))},X.prototype._encodeBool=function(O){return this._createEncoderBuffer(O?255:0)},X.prototype._use=function(O,J){return typeof O=="function"&&(O=O(J)),O._getEncoder("der").tree},X.prototype._skipDefault=function(O,J,F){let A=this._baseState,H;if(A.default===null)return!1;let W=O.join();if(A.defaultBuffer===void 0&&(A.defaultBuffer=this._encodeValue(A.default,J,F).join()),W.length!==A.defaultBuffer.length)return!1;for(H=0;H=31?A.error("Multi-octet tag encoding unsupported"):(J||(H|=32),H|=V.tagClassByName[F||"universal"]<<6,H)}}}),MY=q$({"node_modules/asn1.js/lib/asn1/encoders/pem.js"($,Q){var Y=_$(),Z=zY();function G(V){Z.call(this,V),this.enc="pem"}Y(G,Z),Q.exports=G,G.prototype.encode=function(V,U){let X=Z.prototype.encode.call(this,V).toString("base64"),K=["-----BEGIN "+U.label+"-----"];for(let I=0;I>6],W=(A&32)===0;if((A&31)===31){let T=A;for(A=0;(T&128)===128;){if(T=J.readUInt8(F),J.isError(T))return T;A<<=7,A|=T&127}}else A&=31;let E=U.tag[A];return{cls:H,primitive:W,tag:A,tagStr:E}}function O(J,F,A){let H=J.readUInt8(A);if(J.isError(H))return H;if(!F&&H===128)return null;if((H&128)===0)return H;let W=H&127;if(W>4)return J.error("length octect is too long");H=0;for(let E=0;E0&&L.ishrn(R),L}function W(D,C){D=H(D,C),D=D.mod(C);var L=Y.from(D.toArray());if(L.length=F)throw new Error("invalid sig")}Q.exports=X}}),dY=q$({"node_modules/browserify-sign/browser/index.js"($,Q){var Y=k$().Buffer,Z=o$(),G=_$(),V=cY(),U=hY(),X=t$();Object.keys(X).forEach(function(F){X[F].id=Y.from(X[F].id,"hex"),X[F.toLowerCase()]=X[F]});function K(F){A$.Writable.call(this);var A=X[F];if(!A)throw new Error("Unknown message digest");this._hashType=A.hash,this._hash=Z(A.hash),this._tag=A.id,this._signType=A.sign}G(K,A$.Writable),K.prototype._write=function(F,A,H){this._hash.update(F),H()},K.prototype.update=function(F,A){return typeof F=="string"&&(F=Y.from(F,A)),this._hash.update(F),this},K.prototype.sign=function(F,A){this.end();var H=this._hash.digest(),W=V(H,F,this._hashType,this._signType,this._tag);return A?W.toString(A):W};function I(F){A$.Writable.call(this);var A=X[F];if(!A)throw new Error("Unknown message digest");this._hash=Z(A.hash),this._tag=A.id,this._signType=A.sign}G(I,A$.Writable),I.prototype._write=function(F,A,H){this._hash.update(F),H()},I.prototype.update=function(F,A){return typeof F=="string"&&(F=Y.from(F,A)),this._hash.update(F),this},I.prototype.verify=function(F,A,H){typeof A=="string"&&(A=Y.from(A,H)),this.end();var W=this._hash.digest();return U(A,W,F,this._signType,this._tag)};function O(F){return new K(F)}function J(F){return new I(F)}Q.exports={Sign:O,Verify:J,createSign:O,createVerify:J}}}),bY=q$({"node_modules/create-ecdh/node_modules/bn.js/lib/bn.js"($,Q){(function(Y,Z){function G(j,k){if(!j)throw new Error(k||"Assertion failed")}function V(j,k){j.super_=k;var g=function(){};g.prototype=k.prototype,j.prototype=new g,j.prototype.constructor=j}function U(j,k,g){if(U.isBN(j))return j;this.negative=0,this.words=null,this.length=0,this.red=null,j!==null&&((k==="le"||k==="be")&&(g=k,k=10),this._init(j||0,k||10,g||"be"))}typeof Y=="object"?Y.exports=U:Z.BN=U,U.BN=U,U.wordSize=26;var X=F$;U.isBN=function(j){return j instanceof U?!0:j!==null&&typeof j=="object"&&j.constructor.wordSize===U.wordSize&&Array.isArray(j.words)},U.max=function(j,k){return j.cmp(k)>0?j:k},U.min=function(j,k){return j.cmp(k)<0?j:k},U.prototype._init=function(j,k,g){if(typeof j=="number")return this._initNumber(j,k,g);if(typeof j=="object")return this._initArray(j,k,g);k==="hex"&&(k=16),G(k===(k|0)&&k>=2&&k<=36),j=j.toString().replace(/\s+/g,"");var _=0;j[0]==="-"&&(_++,this.negative=1),_=0;_-=3)x=j[_]|j[_-1]<<8|j[_-2]<<16,this.words[N]|=x<>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);else if(g==="le")for(_=0,N=0;_>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);return this.strip()};function K(j,k){var g=j.charCodeAt(k);return g>=65&&g<=70?g-55:g>=97&&g<=102?g-87:g-48&15}function I(j,k,g){var _=K(j,g);return g-1>=k&&(_|=K(j,g-1)<<4),_}U.prototype._parseHex=function(j,k,g){this.length=Math.ceil((j.length-k)/6),this.words=new Array(this.length);for(var _=0;_=k;_-=2)B=I(j,k,_)<=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8;else{var y=j.length-k;for(_=y%2===0?k+1:k;_=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8}this.strip()};function O(j,k,g,_){for(var N=0,x=Math.min(j.length,g),B=k;B=49?N+=y-49+10:y>=17?N+=y-17+10:N+=y}return N}U.prototype._parseBase=function(j,k,g){this.words=[0],this.length=1;for(var _=0,N=1;N<=67108863;N*=k)_++;_--,N=N/k|0;for(var x=j.length-g,B=x%_,y=Math.min(x,x-B)+g,w=0,p=g;p1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},U.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],F=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],A=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(j,k){j=j||10,k=k|0||1;var g;if(j===16||j==="hex"){g="";for(var _=0,N=0,x=0;x>>24-_&16777215,N!==0||x!==this.length-1?g=J[6-y.length]+y+g:g=y+g,_+=2,_>=26&&(_-=26,x--)}for(N!==0&&(g=N.toString(16)+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(j===(j|0)&&j>=2&&j<=36){var w=F[j],p=A[j];g="";var f=this.clone();for(f.negative=0;!f.isZero();){var c=f.modn(p).toString(j);f=f.idivn(p),f.isZero()?g=c+g:g=J[w-c.length]+c+g}for(this.isZero()&&(g="0"+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var j=this.words[0];return this.length===2?j+=this.words[1]*67108864:this.length===3&&this.words[2]===1?j+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-j:j},U.prototype.toJSON=function(){return this.toString(16)},U.prototype.toBuffer=function(j,k){return G(typeof X<"u"),this.toArrayLike(X,j,k)},U.prototype.toArray=function(j,k){return this.toArrayLike(Array,j,k)},U.prototype.toArrayLike=function(j,k,g){var _=this.byteLength(),N=g||Math.max(1,_);G(_<=N,"byte array longer than desired length"),G(N>0,"Requested array length <= 0"),this.strip();var x=k==="le",B=new j(N),y,w,p=this.clone();if(x){for(w=0;!p.isZero();w++)y=p.andln(255),p.iushrn(8),B[w]=y;for(;w=4096&&(g+=13,k>>>=13),k>=64&&(g+=7,k>>>=7),k>=8&&(g+=4,k>>>=4),k>=2&&(g+=2,k>>>=2),g+k},U.prototype._zeroBits=function(j){if(j===0)return 26;var k=j,g=0;return(k&8191)===0&&(g+=13,k>>>=13),(k&127)===0&&(g+=7,k>>>=7),(k&15)===0&&(g+=4,k>>>=4),(k&3)===0&&(g+=2,k>>>=2),(k&1)===0&&g++,g},U.prototype.bitLength=function(){var j=this.words[this.length-1],k=this._countBits(j);return(this.length-1)*26+k};function H(j){for(var k=new Array(j.bitLength()),g=0;g>>N}return k}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var j=0,k=0;kj.length?this.clone().ior(j):j.clone().ior(this)},U.prototype.uor=function(j){return this.length>j.length?this.clone().iuor(j):j.clone().iuor(this)},U.prototype.iuand=function(j){var k;this.length>j.length?k=j:k=this;for(var g=0;gj.length?this.clone().iand(j):j.clone().iand(this)},U.prototype.uand=function(j){return this.length>j.length?this.clone().iuand(j):j.clone().iuand(this)},U.prototype.iuxor=function(j){var k,g;this.length>j.length?(k=this,g=j):(k=j,g=this);for(var _=0;_j.length?this.clone().ixor(j):j.clone().ixor(this)},U.prototype.uxor=function(j){return this.length>j.length?this.clone().iuxor(j):j.clone().iuxor(this)},U.prototype.inotn=function(j){G(typeof j=="number"&&j>=0);var k=Math.ceil(j/26)|0,g=j%26;this._expand(k),g>0&&k--;for(var _=0;_0&&(this.words[_]=~this.words[_]&67108863>>26-g),this.strip()},U.prototype.notn=function(j){return this.clone().inotn(j)},U.prototype.setn=function(j,k){G(typeof j=="number"&&j>=0);var g=j/26|0,_=j%26;return this._expand(g+1),k?this.words[g]=this.words[g]|1<<_:this.words[g]=this.words[g]&~(1<<_),this.strip()},U.prototype.iadd=function(j){var k;if(this.negative!==0&&j.negative===0)return this.negative=0,k=this.isub(j),this.negative^=1,this._normSign();if(this.negative===0&&j.negative!==0)return j.negative=0,k=this.isub(j),j.negative=1,k._normSign();var g,_;this.length>j.length?(g=this,_=j):(g=j,_=this);for(var N=0,x=0;x<_.length;x++)k=(g.words[x]|0)+(_.words[x]|0)+N,this.words[x]=k&67108863,N=k>>>26;for(;N!==0&&x>>26;if(this.length=g.length,N!==0)this.words[this.length]=N,this.length++;else if(g!==this)for(;xj.length?this.clone().iadd(j):j.clone().iadd(this)},U.prototype.isub=function(j){if(j.negative!==0){j.negative=0;var k=this.iadd(j);return j.negative=1,k._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(j),this.negative=1,this._normSign();var g=this.cmp(j);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var _,N;g>0?(_=this,N=j):(_=j,N=this);for(var x=0,B=0;B>26,this.words[B]=k&67108863;for(;x!==0&&B<_.length;B++)k=(_.words[B]|0)+x,x=k>>26,this.words[B]=k&67108863;if(x===0&&B<_.length&&_!==this)for(;B<_.length;B++)this.words[B]=_.words[B];return this.length=Math.max(this.length,B),_!==this&&(this.negative=1),this.strip()},U.prototype.sub=function(j){return this.clone().isub(j)};function W(j,k,g){g.negative=k.negative^j.negative;var _=j.length+k.length|0;g.length=_,_=_-1|0;var N=j.words[0]|0,x=k.words[0]|0,B=N*x,y=B&67108863,w=B/67108864|0;g.words[0]=y;for(var p=1;p<_;p++){for(var f=w>>>26,c=w&67108863,h=Math.min(p,k.length-1),d=Math.max(0,p-j.length+1);d<=h;d++){var b=p-d|0;N=j.words[b]|0,x=k.words[d]|0,B=N*x+c,f+=B/67108864|0,c=B&67108863}g.words[p]=c|0,w=f|0}return w!==0?g.words[p]=w|0:g.length--,g.strip()}var E=function(j,k,g){var _=j.words,N=k.words,x=g.words,B=0,y,w,p,f=_[0]|0,c=f&8191,h=f>>>13,d=_[1]|0,b=d&8191,l=d>>>13,o=_[2]|0,u=o&8191,n=o>>>13,s=_[3]|0,t=s&8191,m=s>>>13,a=_[4]|0,e=a&8191,r=a>>>13,i=_[5]|0,$0=i&8191,Q0=i>>>13,Y0=_[6]|0,Z0=Y0&8191,G0=Y0>>>13,V0=_[7]|0,U0=V0&8191,X0=V0>>>13,K0=_[8]|0,I0=K0&8191,O0=K0>>>13,J0=_[9]|0,F0=J0&8191,A0=J0>>>13,H0=N[0]|0,W0=H0&8191,E0=H0>>>13,T0=N[1]|0,D0=T0&8191,C0=T0>>>13,L0=N[2]|0,R0=L0&8191,P0=L0>>>13,z0=N[3]|0,M0=z0&8191,S0=z0>>>13,v0=N[4]|0,q0=v0&8191,j0=v0>>>13,k0=N[5]|0,g0=k0&8191,_0=k0>>>13,N0=N[6]|0,x0=N0&8191,B0=N0>>>13,y0=N[7]|0,w0=y0&8191,p0=y0>>>13,f0=N[8]|0,c0=f0&8191,h0=f0>>>13,d0=N[9]|0,b0=d0&8191,l0=d0>>>13;g.negative=j.negative^k.negative,g.length=19,y=Math.imul(c,W0),w=Math.imul(c,E0),w=w+Math.imul(h,W0)|0,p=Math.imul(h,E0);var o0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(o0>>>26)|0,o0&=67108863,y=Math.imul(b,W0),w=Math.imul(b,E0),w=w+Math.imul(l,W0)|0,p=Math.imul(l,E0),y=y+Math.imul(c,D0)|0,w=w+Math.imul(c,C0)|0,w=w+Math.imul(h,D0)|0,p=p+Math.imul(h,C0)|0;var u0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(u0>>>26)|0,u0&=67108863,y=Math.imul(u,W0),w=Math.imul(u,E0),w=w+Math.imul(n,W0)|0,p=Math.imul(n,E0),y=y+Math.imul(b,D0)|0,w=w+Math.imul(b,C0)|0,w=w+Math.imul(l,D0)|0,p=p+Math.imul(l,C0)|0,y=y+Math.imul(c,R0)|0,w=w+Math.imul(c,P0)|0,w=w+Math.imul(h,R0)|0,p=p+Math.imul(h,P0)|0;var n0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(n0>>>26)|0,n0&=67108863,y=Math.imul(t,W0),w=Math.imul(t,E0),w=w+Math.imul(m,W0)|0,p=Math.imul(m,E0),y=y+Math.imul(u,D0)|0,w=w+Math.imul(u,C0)|0,w=w+Math.imul(n,D0)|0,p=p+Math.imul(n,C0)|0,y=y+Math.imul(b,R0)|0,w=w+Math.imul(b,P0)|0,w=w+Math.imul(l,R0)|0,p=p+Math.imul(l,P0)|0,y=y+Math.imul(c,M0)|0,w=w+Math.imul(c,S0)|0,w=w+Math.imul(h,M0)|0,p=p+Math.imul(h,S0)|0;var s0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(s0>>>26)|0,s0&=67108863,y=Math.imul(e,W0),w=Math.imul(e,E0),w=w+Math.imul(r,W0)|0,p=Math.imul(r,E0),y=y+Math.imul(t,D0)|0,w=w+Math.imul(t,C0)|0,w=w+Math.imul(m,D0)|0,p=p+Math.imul(m,C0)|0,y=y+Math.imul(u,R0)|0,w=w+Math.imul(u,P0)|0,w=w+Math.imul(n,R0)|0,p=p+Math.imul(n,P0)|0,y=y+Math.imul(b,M0)|0,w=w+Math.imul(b,S0)|0,w=w+Math.imul(l,M0)|0,p=p+Math.imul(l,S0)|0,y=y+Math.imul(c,q0)|0,w=w+Math.imul(c,j0)|0,w=w+Math.imul(h,q0)|0,p=p+Math.imul(h,j0)|0;var t0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(t0>>>26)|0,t0&=67108863,y=Math.imul($0,W0),w=Math.imul($0,E0),w=w+Math.imul(Q0,W0)|0,p=Math.imul(Q0,E0),y=y+Math.imul(e,D0)|0,w=w+Math.imul(e,C0)|0,w=w+Math.imul(r,D0)|0,p=p+Math.imul(r,C0)|0,y=y+Math.imul(t,R0)|0,w=w+Math.imul(t,P0)|0,w=w+Math.imul(m,R0)|0,p=p+Math.imul(m,P0)|0,y=y+Math.imul(u,M0)|0,w=w+Math.imul(u,S0)|0,w=w+Math.imul(n,M0)|0,p=p+Math.imul(n,S0)|0,y=y+Math.imul(b,q0)|0,w=w+Math.imul(b,j0)|0,w=w+Math.imul(l,q0)|0,p=p+Math.imul(l,j0)|0,y=y+Math.imul(c,g0)|0,w=w+Math.imul(c,_0)|0,w=w+Math.imul(h,g0)|0,p=p+Math.imul(h,_0)|0;var m0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(m0>>>26)|0,m0&=67108863,y=Math.imul(Z0,W0),w=Math.imul(Z0,E0),w=w+Math.imul(G0,W0)|0,p=Math.imul(G0,E0),y=y+Math.imul($0,D0)|0,w=w+Math.imul($0,C0)|0,w=w+Math.imul(Q0,D0)|0,p=p+Math.imul(Q0,C0)|0,y=y+Math.imul(e,R0)|0,w=w+Math.imul(e,P0)|0,w=w+Math.imul(r,R0)|0,p=p+Math.imul(r,P0)|0,y=y+Math.imul(t,M0)|0,w=w+Math.imul(t,S0)|0,w=w+Math.imul(m,M0)|0,p=p+Math.imul(m,S0)|0,y=y+Math.imul(u,q0)|0,w=w+Math.imul(u,j0)|0,w=w+Math.imul(n,q0)|0,p=p+Math.imul(n,j0)|0,y=y+Math.imul(b,g0)|0,w=w+Math.imul(b,_0)|0,w=w+Math.imul(l,g0)|0,p=p+Math.imul(l,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,B0)|0,w=w+Math.imul(h,x0)|0,p=p+Math.imul(h,B0)|0;var a0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(a0>>>26)|0,a0&=67108863,y=Math.imul(U0,W0),w=Math.imul(U0,E0),w=w+Math.imul(X0,W0)|0,p=Math.imul(X0,E0),y=y+Math.imul(Z0,D0)|0,w=w+Math.imul(Z0,C0)|0,w=w+Math.imul(G0,D0)|0,p=p+Math.imul(G0,C0)|0,y=y+Math.imul($0,R0)|0,w=w+Math.imul($0,P0)|0,w=w+Math.imul(Q0,R0)|0,p=p+Math.imul(Q0,P0)|0,y=y+Math.imul(e,M0)|0,w=w+Math.imul(e,S0)|0,w=w+Math.imul(r,M0)|0,p=p+Math.imul(r,S0)|0,y=y+Math.imul(t,q0)|0,w=w+Math.imul(t,j0)|0,w=w+Math.imul(m,q0)|0,p=p+Math.imul(m,j0)|0,y=y+Math.imul(u,g0)|0,w=w+Math.imul(u,_0)|0,w=w+Math.imul(n,g0)|0,p=p+Math.imul(n,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,B0)|0,w=w+Math.imul(l,x0)|0,p=p+Math.imul(l,B0)|0,y=y+Math.imul(c,w0)|0,w=w+Math.imul(c,p0)|0,w=w+Math.imul(h,w0)|0,p=p+Math.imul(h,p0)|0;var e0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(e0>>>26)|0,e0&=67108863,y=Math.imul(I0,W0),w=Math.imul(I0,E0),w=w+Math.imul(O0,W0)|0,p=Math.imul(O0,E0),y=y+Math.imul(U0,D0)|0,w=w+Math.imul(U0,C0)|0,w=w+Math.imul(X0,D0)|0,p=p+Math.imul(X0,C0)|0,y=y+Math.imul(Z0,R0)|0,w=w+Math.imul(Z0,P0)|0,w=w+Math.imul(G0,R0)|0,p=p+Math.imul(G0,P0)|0,y=y+Math.imul($0,M0)|0,w=w+Math.imul($0,S0)|0,w=w+Math.imul(Q0,M0)|0,p=p+Math.imul(Q0,S0)|0,y=y+Math.imul(e,q0)|0,w=w+Math.imul(e,j0)|0,w=w+Math.imul(r,q0)|0,p=p+Math.imul(r,j0)|0,y=y+Math.imul(t,g0)|0,w=w+Math.imul(t,_0)|0,w=w+Math.imul(m,g0)|0,p=p+Math.imul(m,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,B0)|0,w=w+Math.imul(n,x0)|0,p=p+Math.imul(n,B0)|0,y=y+Math.imul(b,w0)|0,w=w+Math.imul(b,p0)|0,w=w+Math.imul(l,w0)|0,p=p+Math.imul(l,p0)|0,y=y+Math.imul(c,c0)|0,w=w+Math.imul(c,h0)|0,w=w+Math.imul(h,c0)|0,p=p+Math.imul(h,h0)|0;var r0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(r0>>>26)|0,r0&=67108863,y=Math.imul(F0,W0),w=Math.imul(F0,E0),w=w+Math.imul(A0,W0)|0,p=Math.imul(A0,E0),y=y+Math.imul(I0,D0)|0,w=w+Math.imul(I0,C0)|0,w=w+Math.imul(O0,D0)|0,p=p+Math.imul(O0,C0)|0,y=y+Math.imul(U0,R0)|0,w=w+Math.imul(U0,P0)|0,w=w+Math.imul(X0,R0)|0,p=p+Math.imul(X0,P0)|0,y=y+Math.imul(Z0,M0)|0,w=w+Math.imul(Z0,S0)|0,w=w+Math.imul(G0,M0)|0,p=p+Math.imul(G0,S0)|0,y=y+Math.imul($0,q0)|0,w=w+Math.imul($0,j0)|0,w=w+Math.imul(Q0,q0)|0,p=p+Math.imul(Q0,j0)|0,y=y+Math.imul(e,g0)|0,w=w+Math.imul(e,_0)|0,w=w+Math.imul(r,g0)|0,p=p+Math.imul(r,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,B0)|0,w=w+Math.imul(m,x0)|0,p=p+Math.imul(m,B0)|0,y=y+Math.imul(u,w0)|0,w=w+Math.imul(u,p0)|0,w=w+Math.imul(n,w0)|0,p=p+Math.imul(n,p0)|0,y=y+Math.imul(b,c0)|0,w=w+Math.imul(b,h0)|0,w=w+Math.imul(l,c0)|0,p=p+Math.imul(l,h0)|0,y=y+Math.imul(c,b0)|0,w=w+Math.imul(c,l0)|0,w=w+Math.imul(h,b0)|0,p=p+Math.imul(h,l0)|0;var i0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(i0>>>26)|0,i0&=67108863,y=Math.imul(F0,D0),w=Math.imul(F0,C0),w=w+Math.imul(A0,D0)|0,p=Math.imul(A0,C0),y=y+Math.imul(I0,R0)|0,w=w+Math.imul(I0,P0)|0,w=w+Math.imul(O0,R0)|0,p=p+Math.imul(O0,P0)|0,y=y+Math.imul(U0,M0)|0,w=w+Math.imul(U0,S0)|0,w=w+Math.imul(X0,M0)|0,p=p+Math.imul(X0,S0)|0,y=y+Math.imul(Z0,q0)|0,w=w+Math.imul(Z0,j0)|0,w=w+Math.imul(G0,q0)|0,p=p+Math.imul(G0,j0)|0,y=y+Math.imul($0,g0)|0,w=w+Math.imul($0,_0)|0,w=w+Math.imul(Q0,g0)|0,p=p+Math.imul(Q0,_0)|0,y=y+Math.imul(e,x0)|0,w=w+Math.imul(e,B0)|0,w=w+Math.imul(r,x0)|0,p=p+Math.imul(r,B0)|0,y=y+Math.imul(t,w0)|0,w=w+Math.imul(t,p0)|0,w=w+Math.imul(m,w0)|0,p=p+Math.imul(m,p0)|0,y=y+Math.imul(u,c0)|0,w=w+Math.imul(u,h0)|0,w=w+Math.imul(n,c0)|0,p=p+Math.imul(n,h0)|0,y=y+Math.imul(b,b0)|0,w=w+Math.imul(b,l0)|0,w=w+Math.imul(l,b0)|0,p=p+Math.imul(l,l0)|0;var $$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+($$>>>26)|0,$$&=67108863,y=Math.imul(F0,R0),w=Math.imul(F0,P0),w=w+Math.imul(A0,R0)|0,p=Math.imul(A0,P0),y=y+Math.imul(I0,M0)|0,w=w+Math.imul(I0,S0)|0,w=w+Math.imul(O0,M0)|0,p=p+Math.imul(O0,S0)|0,y=y+Math.imul(U0,q0)|0,w=w+Math.imul(U0,j0)|0,w=w+Math.imul(X0,q0)|0,p=p+Math.imul(X0,j0)|0,y=y+Math.imul(Z0,g0)|0,w=w+Math.imul(Z0,_0)|0,w=w+Math.imul(G0,g0)|0,p=p+Math.imul(G0,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,B0)|0,w=w+Math.imul(Q0,x0)|0,p=p+Math.imul(Q0,B0)|0,y=y+Math.imul(e,w0)|0,w=w+Math.imul(e,p0)|0,w=w+Math.imul(r,w0)|0,p=p+Math.imul(r,p0)|0,y=y+Math.imul(t,c0)|0,w=w+Math.imul(t,h0)|0,w=w+Math.imul(m,c0)|0,p=p+Math.imul(m,h0)|0,y=y+Math.imul(u,b0)|0,w=w+Math.imul(u,l0)|0,w=w+Math.imul(n,b0)|0,p=p+Math.imul(n,l0)|0;var Q$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,y=Math.imul(F0,M0),w=Math.imul(F0,S0),w=w+Math.imul(A0,M0)|0,p=Math.imul(A0,S0),y=y+Math.imul(I0,q0)|0,w=w+Math.imul(I0,j0)|0,w=w+Math.imul(O0,q0)|0,p=p+Math.imul(O0,j0)|0,y=y+Math.imul(U0,g0)|0,w=w+Math.imul(U0,_0)|0,w=w+Math.imul(X0,g0)|0,p=p+Math.imul(X0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,B0)|0,w=w+Math.imul(G0,x0)|0,p=p+Math.imul(G0,B0)|0,y=y+Math.imul($0,w0)|0,w=w+Math.imul($0,p0)|0,w=w+Math.imul(Q0,w0)|0,p=p+Math.imul(Q0,p0)|0,y=y+Math.imul(e,c0)|0,w=w+Math.imul(e,h0)|0,w=w+Math.imul(r,c0)|0,p=p+Math.imul(r,h0)|0,y=y+Math.imul(t,b0)|0,w=w+Math.imul(t,l0)|0,w=w+Math.imul(m,b0)|0,p=p+Math.imul(m,l0)|0;var Y$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,y=Math.imul(F0,q0),w=Math.imul(F0,j0),w=w+Math.imul(A0,q0)|0,p=Math.imul(A0,j0),y=y+Math.imul(I0,g0)|0,w=w+Math.imul(I0,_0)|0,w=w+Math.imul(O0,g0)|0,p=p+Math.imul(O0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,B0)|0,w=w+Math.imul(X0,x0)|0,p=p+Math.imul(X0,B0)|0,y=y+Math.imul(Z0,w0)|0,w=w+Math.imul(Z0,p0)|0,w=w+Math.imul(G0,w0)|0,p=p+Math.imul(G0,p0)|0,y=y+Math.imul($0,c0)|0,w=w+Math.imul($0,h0)|0,w=w+Math.imul(Q0,c0)|0,p=p+Math.imul(Q0,h0)|0,y=y+Math.imul(e,b0)|0,w=w+Math.imul(e,l0)|0,w=w+Math.imul(r,b0)|0,p=p+Math.imul(r,l0)|0;var Z$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,y=Math.imul(F0,g0),w=Math.imul(F0,_0),w=w+Math.imul(A0,g0)|0,p=Math.imul(A0,_0),y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,B0)|0,w=w+Math.imul(O0,x0)|0,p=p+Math.imul(O0,B0)|0,y=y+Math.imul(U0,w0)|0,w=w+Math.imul(U0,p0)|0,w=w+Math.imul(X0,w0)|0,p=p+Math.imul(X0,p0)|0,y=y+Math.imul(Z0,c0)|0,w=w+Math.imul(Z0,h0)|0,w=w+Math.imul(G0,c0)|0,p=p+Math.imul(G0,h0)|0,y=y+Math.imul($0,b0)|0,w=w+Math.imul($0,l0)|0,w=w+Math.imul(Q0,b0)|0,p=p+Math.imul(Q0,l0)|0;var G$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(G$>>>26)|0,G$&=67108863,y=Math.imul(F0,x0),w=Math.imul(F0,B0),w=w+Math.imul(A0,x0)|0,p=Math.imul(A0,B0),y=y+Math.imul(I0,w0)|0,w=w+Math.imul(I0,p0)|0,w=w+Math.imul(O0,w0)|0,p=p+Math.imul(O0,p0)|0,y=y+Math.imul(U0,c0)|0,w=w+Math.imul(U0,h0)|0,w=w+Math.imul(X0,c0)|0,p=p+Math.imul(X0,h0)|0,y=y+Math.imul(Z0,b0)|0,w=w+Math.imul(Z0,l0)|0,w=w+Math.imul(G0,b0)|0,p=p+Math.imul(G0,l0)|0;var V$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(V$>>>26)|0,V$&=67108863,y=Math.imul(F0,w0),w=Math.imul(F0,p0),w=w+Math.imul(A0,w0)|0,p=Math.imul(A0,p0),y=y+Math.imul(I0,c0)|0,w=w+Math.imul(I0,h0)|0,w=w+Math.imul(O0,c0)|0,p=p+Math.imul(O0,h0)|0,y=y+Math.imul(U0,b0)|0,w=w+Math.imul(U0,l0)|0,w=w+Math.imul(X0,b0)|0,p=p+Math.imul(X0,l0)|0;var U$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(U$>>>26)|0,U$&=67108863,y=Math.imul(F0,c0),w=Math.imul(F0,h0),w=w+Math.imul(A0,c0)|0,p=Math.imul(A0,h0),y=y+Math.imul(I0,b0)|0,w=w+Math.imul(I0,l0)|0,w=w+Math.imul(O0,b0)|0,p=p+Math.imul(O0,l0)|0;var X$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(X$>>>26)|0,X$&=67108863,y=Math.imul(F0,b0),w=Math.imul(F0,l0),w=w+Math.imul(A0,b0)|0,p=Math.imul(A0,l0);var K$=(B+y|0)+((w&8191)<<13)|0;return B=(p+(w>>>13)|0)+(K$>>>26)|0,K$&=67108863,x[0]=o0,x[1]=u0,x[2]=n0,x[3]=s0,x[4]=t0,x[5]=m0,x[6]=a0,x[7]=e0,x[8]=r0,x[9]=i0,x[10]=$$,x[11]=Q$,x[12]=Y$,x[13]=Z$,x[14]=G$,x[15]=V$,x[16]=U$,x[17]=X$,x[18]=K$,B!==0&&(x[19]=B,g.length++),g};Math.imul||(E=W);function T(j,k,g){g.negative=k.negative^j.negative,g.length=j.length+k.length;for(var _=0,N=0,x=0;x>>26)|0,N+=B>>>26,B&=67108863}g.words[x]=y,_=B,B=N}return _!==0?g.words[x]=_:g.length--,g.strip()}function D(j,k,g){var _=new C;return _.mulp(j,k,g)}U.prototype.mulTo=function(j,k){var g,_=this.length+j.length;return this.length===10&&j.length===10?g=E(this,j,k):_<63?g=W(this,j,k):_<1024?g=T(this,j,k):g=D(this,j,k),g};function C(j,k){this.x=j,this.y=k}C.prototype.makeRBT=function(j){for(var k=new Array(j),g=U.prototype._countBits(j)-1,_=0;_>=1;return _},C.prototype.permute=function(j,k,g,_,N,x){for(var B=0;B>>1)N++;return 1<>>13,g[2*x+1]=N&8191,N=N>>>13;for(x=2*k;x<_;++x)g[x]=0;G(N===0),G((N&-8192)===0)},C.prototype.stub=function(j){for(var k=new Array(j),g=0;g>=26,k+=_/67108864|0,k+=N>>>26,this.words[g]=N&67108863}return k!==0&&(this.words[g]=k,this.length++),this},U.prototype.muln=function(j){return this.clone().imuln(j)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(j){var k=H(j);if(k.length===0)return new U(1);for(var g=this,_=0;_=0);var k=j%26,g=(j-k)/26,_=67108863>>>26-k<<26-k,N;if(k!==0){var x=0;for(N=0;N>>26-k}x&&(this.words[N]=x,this.length++)}if(g!==0){for(N=this.length-1;N>=0;N--)this.words[N+g]=this.words[N];for(N=0;N=0);var _;k?_=(k-k%26)/26:_=0;var N=j%26,x=Math.min((j-N)/26,this.length),B=67108863^67108863>>>N<x)for(this.length-=x,w=0;w=0&&(p!==0||w>=_);w--){var f=this.words[w]|0;this.words[w]=p<<26-N|f>>>N,p=f&B}return y&&p!==0&&(y.words[y.length++]=p),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},U.prototype.ishrn=function(j,k,g){return G(this.negative===0),this.iushrn(j,k,g)},U.prototype.shln=function(j){return this.clone().ishln(j)},U.prototype.ushln=function(j){return this.clone().iushln(j)},U.prototype.shrn=function(j){return this.clone().ishrn(j)},U.prototype.ushrn=function(j){return this.clone().iushrn(j)},U.prototype.testn=function(j){G(typeof j=="number"&&j>=0);var k=j%26,g=(j-k)/26,_=1<=0);var k=j%26,g=(j-k)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(k!==0&&g++,this.length=Math.min(g,this.length),k!==0){var _=67108863^67108863>>>k<=67108864;k++)this.words[k]-=67108864,k===this.length-1?this.words[k+1]=1:this.words[k+1]++;return this.length=Math.max(this.length,k+1),this},U.prototype.isubn=function(j){if(G(typeof j=="number"),G(j<67108864),j<0)return this.iaddn(-j);if(this.negative!==0)return this.negative=0,this.iaddn(j),this.negative=1,this;if(this.words[0]-=j,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var k=0;k>26)-(y/67108864|0),this.words[N+g]=x&67108863}for(;N>26,this.words[N+g]=x&67108863;if(B===0)return this.strip();for(G(B===-1),B=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},U.prototype._wordDiv=function(j,k){var g=this.length-j.length,_=this.clone(),N=j,x=N.words[N.length-1]|0,B=this._countBits(x);g=26-B,g!==0&&(N=N.ushln(g),_.iushln(g),x=N.words[N.length-1]|0);var y=_.length-N.length,w;if(k!=="mod"){w=new U(null),w.length=y+1,w.words=new Array(w.length);for(var p=0;p=0;c--){var h=(_.words[N.length+c]|0)*67108864+(_.words[N.length+c-1]|0);for(h=Math.min(h/x|0,67108863),_._ishlnsubmul(N,h,c);_.negative!==0;)h--,_.negative=0,_._ishlnsubmul(N,1,c),_.isZero()||(_.negative^=1);w&&(w.words[c]=h)}return w&&w.strip(),_.strip(),k!=="div"&&g!==0&&_.iushrn(g),{div:w||null,mod:_}},U.prototype.divmod=function(j,k,g){if(G(!j.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var _,N,x;return this.negative!==0&&j.negative===0?(x=this.neg().divmod(j,k),k!=="mod"&&(_=x.div.neg()),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.iadd(j)),{div:_,mod:N}):this.negative===0&&j.negative!==0?(x=this.divmod(j.neg(),k),k!=="mod"&&(_=x.div.neg()),{div:_,mod:x.mod}):(this.negative&j.negative)!==0?(x=this.neg().divmod(j.neg(),k),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.isub(j)),{div:x.div,mod:N}):j.length>this.length||this.cmp(j)<0?{div:new U(0),mod:this}:j.length===1?k==="div"?{div:this.divn(j.words[0]),mod:null}:k==="mod"?{div:null,mod:new U(this.modn(j.words[0]))}:{div:this.divn(j.words[0]),mod:new U(this.modn(j.words[0]))}:this._wordDiv(j,k)},U.prototype.div=function(j){return this.divmod(j,"div",!1).div},U.prototype.mod=function(j){return this.divmod(j,"mod",!1).mod},U.prototype.umod=function(j){return this.divmod(j,"mod",!0).mod},U.prototype.divRound=function(j){var k=this.divmod(j);if(k.mod.isZero())return k.div;var g=k.div.negative!==0?k.mod.isub(j):k.mod,_=j.ushrn(1),N=j.andln(1),x=g.cmp(_);return x<0||N===1&&x===0?k.div:k.div.negative!==0?k.div.isubn(1):k.div.iaddn(1)},U.prototype.modn=function(j){G(j<=67108863);for(var k=(1<<26)%j,g=0,_=this.length-1;_>=0;_--)g=(k*g+(this.words[_]|0))%j;return g},U.prototype.idivn=function(j){G(j<=67108863);for(var k=0,g=this.length-1;g>=0;g--){var _=(this.words[g]|0)+k*67108864;this.words[g]=_/j|0,k=_%j}return this.strip()},U.prototype.divn=function(j){return this.clone().idivn(j)},U.prototype.egcd=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=new U(0),B=new U(1),y=0;k.isEven()&&g.isEven();)k.iushrn(1),g.iushrn(1),++y;for(var w=g.clone(),p=k.clone();!k.isZero();){for(var f=0,c=1;(k.words[0]&c)===0&&f<26;++f,c<<=1);if(f>0)for(k.iushrn(f);f-- >0;)(_.isOdd()||N.isOdd())&&(_.iadd(w),N.isub(p)),_.iushrn(1),N.iushrn(1);for(var h=0,d=1;(g.words[0]&d)===0&&h<26;++h,d<<=1);if(h>0)for(g.iushrn(h);h-- >0;)(x.isOdd()||B.isOdd())&&(x.iadd(w),B.isub(p)),x.iushrn(1),B.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(x),N.isub(B)):(g.isub(k),x.isub(_),B.isub(N))}return{a:x,b:B,gcd:g.iushln(y)}},U.prototype._invmp=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=g.clone();k.cmpn(1)>0&&g.cmpn(1)>0;){for(var B=0,y=1;(k.words[0]&y)===0&&B<26;++B,y<<=1);if(B>0)for(k.iushrn(B);B-- >0;)_.isOdd()&&_.iadd(x),_.iushrn(1);for(var w=0,p=1;(g.words[0]&p)===0&&w<26;++w,p<<=1);if(w>0)for(g.iushrn(w);w-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(N)):(g.isub(k),N.isub(_))}var f;return k.cmpn(1)===0?f=_:f=N,f.cmpn(0)<0&&f.iadd(j),f},U.prototype.gcd=function(j){if(this.isZero())return j.abs();if(j.isZero())return this.abs();var k=this.clone(),g=j.clone();k.negative=0,g.negative=0;for(var _=0;k.isEven()&&g.isEven();_++)k.iushrn(1),g.iushrn(1);do{for(;k.isEven();)k.iushrn(1);for(;g.isEven();)g.iushrn(1);var N=k.cmp(g);if(N<0){var x=k;k=g,g=x}else if(N===0||g.cmpn(1)===0)break;k.isub(g)}while(!0);return g.iushln(_)},U.prototype.invm=function(j){return this.egcd(j).a.umod(j)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(j){return this.words[0]&j},U.prototype.bincn=function(j){G(typeof j=="number");var k=j%26,g=(j-k)/26,_=1<>>26,B&=67108863,this.words[x]=B}return N!==0&&(this.words[x]=N,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(j){var k=j<0;if(this.negative!==0&&!k)return-1;if(this.negative===0&&k)return 1;this.strip();var g;if(this.length>1)g=1;else{k&&(j=-j),G(j<=67108863,"Number is too big");var _=this.words[0]|0;g=_===j?0:_j.length)return 1;if(this.length=0;g--){var _=this.words[g]|0,N=j.words[g]|0;if(_!==N){_N&&(k=1);break}}return k},U.prototype.gtn=function(j){return this.cmpn(j)===1},U.prototype.gt=function(j){return this.cmp(j)===1},U.prototype.gten=function(j){return this.cmpn(j)>=0},U.prototype.gte=function(j){return this.cmp(j)>=0},U.prototype.ltn=function(j){return this.cmpn(j)===-1},U.prototype.lt=function(j){return this.cmp(j)===-1},U.prototype.lten=function(j){return this.cmpn(j)<=0},U.prototype.lte=function(j){return this.cmp(j)<=0},U.prototype.eqn=function(j){return this.cmpn(j)===0},U.prototype.eq=function(j){return this.cmp(j)===0},U.red=function(j){return new v(j)},U.prototype.toRed=function(j){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),j.convertTo(this)._forceRed(j)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(j){return this.red=j,this},U.prototype.forceRed=function(j){return G(!this.red,"Already a number in reduction context"),this._forceRed(j)},U.prototype.redAdd=function(j){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,j)},U.prototype.redIAdd=function(j){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,j)},U.prototype.redSub=function(j){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,j)},U.prototype.redISub=function(j){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,j)},U.prototype.redShl=function(j){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,j)},U.prototype.redMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.mul(this,j)},U.prototype.redIMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.imul(this,j)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(j){return G(this.red&&!j.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,j)};var L={k256:null,p224:null,p192:null,p25519:null};function R(j,k){this.name=j,this.p=new U(k,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}R.prototype._tmp=function(){var j=new U(null);return j.words=new Array(Math.ceil(this.n/13)),j},R.prototype.ireduce=function(j){var k=j,g;do this.split(k,this.tmp),k=this.imulK(k),k=k.iadd(this.tmp),g=k.bitLength();while(g>this.n);var _=g0?k.isub(this.p):k.strip!==void 0?k.strip():k._strip(),k},R.prototype.split=function(j,k){j.iushrn(this.n,0,k)},R.prototype.imulK=function(j){return j.imul(this.k)};function P(){R.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(P,R),P.prototype.split=function(j,k){for(var g=4194303,_=Math.min(j.length,9),N=0;N<_;N++)k.words[N]=j.words[N];if(k.length=_,j.length<=9){j.words[0]=0,j.length=1;return}var x=j.words[9];for(k.words[k.length++]=x&g,N=10;N>>22,x=B}x>>>=22,j.words[N-10]=x,x===0&&j.length>10?j.length-=10:j.length-=9},P.prototype.imulK=function(j){j.words[j.length]=0,j.words[j.length+1]=0,j.length+=2;for(var k=0,g=0;g>>=26,j.words[g]=N,k=_}return k!==0&&(j.words[j.length++]=k),j},U._prime=function(j){if(L[j])return L[j];var k;if(j==="k256")k=new P;else if(j==="p224")k=new z;else if(j==="p192")k=new M;else if(j==="p25519")k=new S;else throw new Error("Unknown prime "+j);return L[j]=k,k};function v(j){if(typeof j=="string"){var k=U._prime(j);this.m=k.p,this.prime=k}else G(j.gtn(1),"modulus must be greater than 1"),this.m=j,this.prime=null}v.prototype._verify1=function(j){G(j.negative===0,"red works only with positives"),G(j.red,"red works only with red numbers")},v.prototype._verify2=function(j,k){G((j.negative|k.negative)===0,"red works only with positives"),G(j.red&&j.red===k.red,"red works only with red numbers")},v.prototype.imod=function(j){return this.prime?this.prime.ireduce(j)._forceRed(this):j.umod(this.m)._forceRed(this)},v.prototype.neg=function(j){return j.isZero()?j.clone():this.m.sub(j)._forceRed(this)},v.prototype.add=function(j,k){this._verify2(j,k);var g=j.add(k);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},v.prototype.iadd=function(j,k){this._verify2(j,k);var g=j.iadd(k);return g.cmp(this.m)>=0&&g.isub(this.m),g},v.prototype.sub=function(j,k){this._verify2(j,k);var g=j.sub(k);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},v.prototype.isub=function(j,k){this._verify2(j,k);var g=j.isub(k);return g.cmpn(0)<0&&g.iadd(this.m),g},v.prototype.shl=function(j,k){return this._verify1(j),this.imod(j.ushln(k))},v.prototype.imul=function(j,k){return this._verify2(j,k),this.imod(j.imul(k))},v.prototype.mul=function(j,k){return this._verify2(j,k),this.imod(j.mul(k))},v.prototype.isqr=function(j){return this.imul(j,j.clone())},v.prototype.sqr=function(j){return this.mul(j,j)},v.prototype.sqrt=function(j){if(j.isZero())return j.clone();var k=this.m.andln(3);if(G(k%2===1),k===3){var g=this.m.add(new U(1)).iushrn(2);return this.pow(j,g)}for(var _=this.m.subn(1),N=0;!_.isZero()&&_.andln(1)===0;)N++,_.iushrn(1);G(!_.isZero());var x=new U(1).toRed(this),B=x.redNeg(),y=this.m.subn(1).iushrn(1),w=this.m.bitLength();for(w=new U(2*w*w).toRed(this);this.pow(w,y).cmp(B)!==0;)w.redIAdd(B);for(var p=this.pow(w,_),f=this.pow(j,_.addn(1).iushrn(1)),c=this.pow(j,_),h=N;c.cmp(x)!==0;){for(var d=c,b=0;d.cmp(x)!==0;b++)d=d.redSqr();G(b=0;N--){for(var p=k.words[N],f=w-1;f>=0;f--){var c=p>>f&1;if(x!==_[0]&&(x=this.sqr(x)),c===0&&B===0){y=0;continue}B<<=1,B|=c,y++,!(y!==g&&(N!==0||f!==0))&&(x=this.mul(x,_[B]),y=0,B=0)}w=26}return x},v.prototype.convertTo=function(j){var k=j.umod(this.m);return k===j?k.clone():k},v.prototype.convertFrom=function(j){var k=j.clone();return k.red=null,k},U.mont=function(j){return new q(j)};function q(j){v.call(this,j),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(q,v),q.prototype.convertTo=function(j){return this.imod(j.ushln(this.shift))},q.prototype.convertFrom=function(j){var k=this.imod(j.mul(this.rinv));return k.red=null,k},q.prototype.imul=function(j,k){if(j.isZero()||k.isZero())return j.words[0]=0,j.length=1,j;var g=j.imul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.mul=function(j,k){if(j.isZero()||k.isZero())return new U(0)._forceRed(this);var g=j.mul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.invm=function(j){var k=this.imod(j._invmp(this.m).mul(this.r2));return k._forceRed(this)}})(typeof Q>"u"||Q,$)}}),lY=q$({"node_modules/create-ecdh/browser.js"($,Q){var Y=TY(),Z=bY();Q.exports=function(X){return new V(X)};var G={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};G.p224=G.secp224r1,G.p256=G.secp256r1=G.prime256v1,G.p192=G.secp192r1=G.prime192v1,G.p384=G.secp384r1,G.p521=G.secp521r1;function V(X){this.curveType=G[X],this.curveType||(this.curveType={name:X}),this.curve=new Y.ec(this.curveType.name),this.keys=void 0}V.prototype.generateKeys=function(X,K){return this.keys=this.curve.genKeyPair(),this.getPublicKey(X,K)},V.prototype.computeSecret=function(X,K,I){K=K||"utf8",F$.isBuffer(X)||(X=new F$(X,K));var O=this.curve.keyFromPublic(X).getPublic(),J=O.mul(this.keys.getPrivate()).getX();return U(J,I,this.curveType.byteLength)},V.prototype.getPublicKey=function(X,K){var I=this.keys.getPublic(K==="compressed",!0);return K==="hybrid"&&(I[I.length-1]%2?I[0]=7:I[0]=6),U(I,X)},V.prototype.getPrivateKey=function(X){return U(this.keys.getPrivate(),X)},V.prototype.setPublicKey=function(X,K){return K=K||"utf8",F$.isBuffer(X)||(X=new F$(X,K)),this.keys._importPublic(X),this},V.prototype.setPrivateKey=function(X,K){K=K||"utf8",F$.isBuffer(X)||(X=new F$(X,K));var I=new Z(X);return I=I.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(I),this};function U(X,K,I){Array.isArray(X)||(X=X.toArray());var O=new F$(X);if(I&&O.length0?j:k},U.min=function(j,k){return j.cmp(k)<0?j:k},U.prototype._init=function(j,k,g){if(typeof j=="number")return this._initNumber(j,k,g);if(typeof j=="object")return this._initArray(j,k,g);k==="hex"&&(k=16),G(k===(k|0)&&k>=2&&k<=36),j=j.toString().replace(/\s+/g,"");var _=0;j[0]==="-"&&(_++,this.negative=1),_=0;_-=3)x=j[_]|j[_-1]<<8|j[_-2]<<16,this.words[N]|=x<>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);else if(g==="le")for(_=0,N=0;_>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);return this.strip()};function K(j,k){var g=j.charCodeAt(k);return g>=65&&g<=70?g-55:g>=97&&g<=102?g-87:g-48&15}function I(j,k,g){var _=K(j,g);return g-1>=k&&(_|=K(j,g-1)<<4),_}U.prototype._parseHex=function(j,k,g){this.length=Math.ceil((j.length-k)/6),this.words=new Array(this.length);for(var _=0;_=k;_-=2)B=I(j,k,_)<=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8;else{var y=j.length-k;for(_=y%2===0?k+1:k;_=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8}this.strip()};function O(j,k,g,_){for(var N=0,x=Math.min(j.length,g),B=k;B=49?N+=y-49+10:y>=17?N+=y-17+10:N+=y}return N}U.prototype._parseBase=function(j,k,g){this.words=[0],this.length=1;for(var _=0,N=1;N<=67108863;N*=k)_++;_--,N=N/k|0;for(var x=j.length-g,B=x%_,y=Math.min(x,x-B)+g,w=0,p=g;p1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},U.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],F=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],A=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(j,k){j=j||10,k=k|0||1;var g;if(j===16||j==="hex"){g="";for(var _=0,N=0,x=0;x>>24-_&16777215,N!==0||x!==this.length-1?g=J[6-y.length]+y+g:g=y+g,_+=2,_>=26&&(_-=26,x--)}for(N!==0&&(g=N.toString(16)+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(j===(j|0)&&j>=2&&j<=36){var w=F[j],p=A[j];g="";var f=this.clone();for(f.negative=0;!f.isZero();){var c=f.modn(p).toString(j);f=f.idivn(p),f.isZero()?g=c+g:g=J[w-c.length]+c+g}for(this.isZero()&&(g="0"+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var j=this.words[0];return this.length===2?j+=this.words[1]*67108864:this.length===3&&this.words[2]===1?j+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-j:j},U.prototype.toJSON=function(){return this.toString(16)},U.prototype.toBuffer=function(j,k){return G(typeof X<"u"),this.toArrayLike(X,j,k)},U.prototype.toArray=function(j,k){return this.toArrayLike(Array,j,k)},U.prototype.toArrayLike=function(j,k,g){var _=this.byteLength(),N=g||Math.max(1,_);G(_<=N,"byte array longer than desired length"),G(N>0,"Requested array length <= 0"),this.strip();var x=k==="le",B=new j(N),y,w,p=this.clone();if(x){for(w=0;!p.isZero();w++)y=p.andln(255),p.iushrn(8),B[w]=y;for(;w=4096&&(g+=13,k>>>=13),k>=64&&(g+=7,k>>>=7),k>=8&&(g+=4,k>>>=4),k>=2&&(g+=2,k>>>=2),g+k},U.prototype._zeroBits=function(j){if(j===0)return 26;var k=j,g=0;return(k&8191)===0&&(g+=13,k>>>=13),(k&127)===0&&(g+=7,k>>>=7),(k&15)===0&&(g+=4,k>>>=4),(k&3)===0&&(g+=2,k>>>=2),(k&1)===0&&g++,g},U.prototype.bitLength=function(){var j=this.words[this.length-1],k=this._countBits(j);return(this.length-1)*26+k};function H(j){for(var k=new Array(j.bitLength()),g=0;g>>N}return k}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var j=0,k=0;kj.length?this.clone().ior(j):j.clone().ior(this)},U.prototype.uor=function(j){return this.length>j.length?this.clone().iuor(j):j.clone().iuor(this)},U.prototype.iuand=function(j){var k;this.length>j.length?k=j:k=this;for(var g=0;gj.length?this.clone().iand(j):j.clone().iand(this)},U.prototype.uand=function(j){return this.length>j.length?this.clone().iuand(j):j.clone().iuand(this)},U.prototype.iuxor=function(j){var k,g;this.length>j.length?(k=this,g=j):(k=j,g=this);for(var _=0;_j.length?this.clone().ixor(j):j.clone().ixor(this)},U.prototype.uxor=function(j){return this.length>j.length?this.clone().iuxor(j):j.clone().iuxor(this)},U.prototype.inotn=function(j){G(typeof j=="number"&&j>=0);var k=Math.ceil(j/26)|0,g=j%26;this._expand(k),g>0&&k--;for(var _=0;_0&&(this.words[_]=~this.words[_]&67108863>>26-g),this.strip()},U.prototype.notn=function(j){return this.clone().inotn(j)},U.prototype.setn=function(j,k){G(typeof j=="number"&&j>=0);var g=j/26|0,_=j%26;return this._expand(g+1),k?this.words[g]=this.words[g]|1<<_:this.words[g]=this.words[g]&~(1<<_),this.strip()},U.prototype.iadd=function(j){var k;if(this.negative!==0&&j.negative===0)return this.negative=0,k=this.isub(j),this.negative^=1,this._normSign();if(this.negative===0&&j.negative!==0)return j.negative=0,k=this.isub(j),j.negative=1,k._normSign();var g,_;this.length>j.length?(g=this,_=j):(g=j,_=this);for(var N=0,x=0;x<_.length;x++)k=(g.words[x]|0)+(_.words[x]|0)+N,this.words[x]=k&67108863,N=k>>>26;for(;N!==0&&x>>26;if(this.length=g.length,N!==0)this.words[this.length]=N,this.length++;else if(g!==this)for(;xj.length?this.clone().iadd(j):j.clone().iadd(this)},U.prototype.isub=function(j){if(j.negative!==0){j.negative=0;var k=this.iadd(j);return j.negative=1,k._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(j),this.negative=1,this._normSign();var g=this.cmp(j);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var _,N;g>0?(_=this,N=j):(_=j,N=this);for(var x=0,B=0;B>26,this.words[B]=k&67108863;for(;x!==0&&B<_.length;B++)k=(_.words[B]|0)+x,x=k>>26,this.words[B]=k&67108863;if(x===0&&B<_.length&&_!==this)for(;B<_.length;B++)this.words[B]=_.words[B];return this.length=Math.max(this.length,B),_!==this&&(this.negative=1),this.strip()},U.prototype.sub=function(j){return this.clone().isub(j)};function W(j,k,g){g.negative=k.negative^j.negative;var _=j.length+k.length|0;g.length=_,_=_-1|0;var N=j.words[0]|0,x=k.words[0]|0,B=N*x,y=B&67108863,w=B/67108864|0;g.words[0]=y;for(var p=1;p<_;p++){for(var f=w>>>26,c=w&67108863,h=Math.min(p,k.length-1),d=Math.max(0,p-j.length+1);d<=h;d++){var b=p-d|0;N=j.words[b]|0,x=k.words[d]|0,B=N*x+c,f+=B/67108864|0,c=B&67108863}g.words[p]=c|0,w=f|0}return w!==0?g.words[p]=w|0:g.length--,g.strip()}var E=function(j,k,g){var _=j.words,N=k.words,x=g.words,B=0,y,w,p,f=_[0]|0,c=f&8191,h=f>>>13,d=_[1]|0,b=d&8191,l=d>>>13,o=_[2]|0,u=o&8191,n=o>>>13,s=_[3]|0,t=s&8191,m=s>>>13,a=_[4]|0,e=a&8191,r=a>>>13,i=_[5]|0,$0=i&8191,Q0=i>>>13,Y0=_[6]|0,Z0=Y0&8191,G0=Y0>>>13,V0=_[7]|0,U0=V0&8191,X0=V0>>>13,K0=_[8]|0,I0=K0&8191,O0=K0>>>13,J0=_[9]|0,F0=J0&8191,A0=J0>>>13,H0=N[0]|0,W0=H0&8191,E0=H0>>>13,T0=N[1]|0,D0=T0&8191,C0=T0>>>13,L0=N[2]|0,R0=L0&8191,P0=L0>>>13,z0=N[3]|0,M0=z0&8191,S0=z0>>>13,v0=N[4]|0,q0=v0&8191,j0=v0>>>13,k0=N[5]|0,g0=k0&8191,_0=k0>>>13,N0=N[6]|0,x0=N0&8191,B0=N0>>>13,y0=N[7]|0,w0=y0&8191,p0=y0>>>13,f0=N[8]|0,c0=f0&8191,h0=f0>>>13,d0=N[9]|0,b0=d0&8191,l0=d0>>>13;g.negative=j.negative^k.negative,g.length=19,y=Math.imul(c,W0),w=Math.imul(c,E0),w=w+Math.imul(h,W0)|0,p=Math.imul(h,E0);var o0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(o0>>>26)|0,o0&=67108863,y=Math.imul(b,W0),w=Math.imul(b,E0),w=w+Math.imul(l,W0)|0,p=Math.imul(l,E0),y=y+Math.imul(c,D0)|0,w=w+Math.imul(c,C0)|0,w=w+Math.imul(h,D0)|0,p=p+Math.imul(h,C0)|0;var u0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(u0>>>26)|0,u0&=67108863,y=Math.imul(u,W0),w=Math.imul(u,E0),w=w+Math.imul(n,W0)|0,p=Math.imul(n,E0),y=y+Math.imul(b,D0)|0,w=w+Math.imul(b,C0)|0,w=w+Math.imul(l,D0)|0,p=p+Math.imul(l,C0)|0,y=y+Math.imul(c,R0)|0,w=w+Math.imul(c,P0)|0,w=w+Math.imul(h,R0)|0,p=p+Math.imul(h,P0)|0;var n0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(n0>>>26)|0,n0&=67108863,y=Math.imul(t,W0),w=Math.imul(t,E0),w=w+Math.imul(m,W0)|0,p=Math.imul(m,E0),y=y+Math.imul(u,D0)|0,w=w+Math.imul(u,C0)|0,w=w+Math.imul(n,D0)|0,p=p+Math.imul(n,C0)|0,y=y+Math.imul(b,R0)|0,w=w+Math.imul(b,P0)|0,w=w+Math.imul(l,R0)|0,p=p+Math.imul(l,P0)|0,y=y+Math.imul(c,M0)|0,w=w+Math.imul(c,S0)|0,w=w+Math.imul(h,M0)|0,p=p+Math.imul(h,S0)|0;var s0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(s0>>>26)|0,s0&=67108863,y=Math.imul(e,W0),w=Math.imul(e,E0),w=w+Math.imul(r,W0)|0,p=Math.imul(r,E0),y=y+Math.imul(t,D0)|0,w=w+Math.imul(t,C0)|0,w=w+Math.imul(m,D0)|0,p=p+Math.imul(m,C0)|0,y=y+Math.imul(u,R0)|0,w=w+Math.imul(u,P0)|0,w=w+Math.imul(n,R0)|0,p=p+Math.imul(n,P0)|0,y=y+Math.imul(b,M0)|0,w=w+Math.imul(b,S0)|0,w=w+Math.imul(l,M0)|0,p=p+Math.imul(l,S0)|0,y=y+Math.imul(c,q0)|0,w=w+Math.imul(c,j0)|0,w=w+Math.imul(h,q0)|0,p=p+Math.imul(h,j0)|0;var t0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(t0>>>26)|0,t0&=67108863,y=Math.imul($0,W0),w=Math.imul($0,E0),w=w+Math.imul(Q0,W0)|0,p=Math.imul(Q0,E0),y=y+Math.imul(e,D0)|0,w=w+Math.imul(e,C0)|0,w=w+Math.imul(r,D0)|0,p=p+Math.imul(r,C0)|0,y=y+Math.imul(t,R0)|0,w=w+Math.imul(t,P0)|0,w=w+Math.imul(m,R0)|0,p=p+Math.imul(m,P0)|0,y=y+Math.imul(u,M0)|0,w=w+Math.imul(u,S0)|0,w=w+Math.imul(n,M0)|0,p=p+Math.imul(n,S0)|0,y=y+Math.imul(b,q0)|0,w=w+Math.imul(b,j0)|0,w=w+Math.imul(l,q0)|0,p=p+Math.imul(l,j0)|0,y=y+Math.imul(c,g0)|0,w=w+Math.imul(c,_0)|0,w=w+Math.imul(h,g0)|0,p=p+Math.imul(h,_0)|0;var m0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(m0>>>26)|0,m0&=67108863,y=Math.imul(Z0,W0),w=Math.imul(Z0,E0),w=w+Math.imul(G0,W0)|0,p=Math.imul(G0,E0),y=y+Math.imul($0,D0)|0,w=w+Math.imul($0,C0)|0,w=w+Math.imul(Q0,D0)|0,p=p+Math.imul(Q0,C0)|0,y=y+Math.imul(e,R0)|0,w=w+Math.imul(e,P0)|0,w=w+Math.imul(r,R0)|0,p=p+Math.imul(r,P0)|0,y=y+Math.imul(t,M0)|0,w=w+Math.imul(t,S0)|0,w=w+Math.imul(m,M0)|0,p=p+Math.imul(m,S0)|0,y=y+Math.imul(u,q0)|0,w=w+Math.imul(u,j0)|0,w=w+Math.imul(n,q0)|0,p=p+Math.imul(n,j0)|0,y=y+Math.imul(b,g0)|0,w=w+Math.imul(b,_0)|0,w=w+Math.imul(l,g0)|0,p=p+Math.imul(l,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,B0)|0,w=w+Math.imul(h,x0)|0,p=p+Math.imul(h,B0)|0;var a0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(a0>>>26)|0,a0&=67108863,y=Math.imul(U0,W0),w=Math.imul(U0,E0),w=w+Math.imul(X0,W0)|0,p=Math.imul(X0,E0),y=y+Math.imul(Z0,D0)|0,w=w+Math.imul(Z0,C0)|0,w=w+Math.imul(G0,D0)|0,p=p+Math.imul(G0,C0)|0,y=y+Math.imul($0,R0)|0,w=w+Math.imul($0,P0)|0,w=w+Math.imul(Q0,R0)|0,p=p+Math.imul(Q0,P0)|0,y=y+Math.imul(e,M0)|0,w=w+Math.imul(e,S0)|0,w=w+Math.imul(r,M0)|0,p=p+Math.imul(r,S0)|0,y=y+Math.imul(t,q0)|0,w=w+Math.imul(t,j0)|0,w=w+Math.imul(m,q0)|0,p=p+Math.imul(m,j0)|0,y=y+Math.imul(u,g0)|0,w=w+Math.imul(u,_0)|0,w=w+Math.imul(n,g0)|0,p=p+Math.imul(n,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,B0)|0,w=w+Math.imul(l,x0)|0,p=p+Math.imul(l,B0)|0,y=y+Math.imul(c,w0)|0,w=w+Math.imul(c,p0)|0,w=w+Math.imul(h,w0)|0,p=p+Math.imul(h,p0)|0;var e0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(e0>>>26)|0,e0&=67108863,y=Math.imul(I0,W0),w=Math.imul(I0,E0),w=w+Math.imul(O0,W0)|0,p=Math.imul(O0,E0),y=y+Math.imul(U0,D0)|0,w=w+Math.imul(U0,C0)|0,w=w+Math.imul(X0,D0)|0,p=p+Math.imul(X0,C0)|0,y=y+Math.imul(Z0,R0)|0,w=w+Math.imul(Z0,P0)|0,w=w+Math.imul(G0,R0)|0,p=p+Math.imul(G0,P0)|0,y=y+Math.imul($0,M0)|0,w=w+Math.imul($0,S0)|0,w=w+Math.imul(Q0,M0)|0,p=p+Math.imul(Q0,S0)|0,y=y+Math.imul(e,q0)|0,w=w+Math.imul(e,j0)|0,w=w+Math.imul(r,q0)|0,p=p+Math.imul(r,j0)|0,y=y+Math.imul(t,g0)|0,w=w+Math.imul(t,_0)|0,w=w+Math.imul(m,g0)|0,p=p+Math.imul(m,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,B0)|0,w=w+Math.imul(n,x0)|0,p=p+Math.imul(n,B0)|0,y=y+Math.imul(b,w0)|0,w=w+Math.imul(b,p0)|0,w=w+Math.imul(l,w0)|0,p=p+Math.imul(l,p0)|0,y=y+Math.imul(c,c0)|0,w=w+Math.imul(c,h0)|0,w=w+Math.imul(h,c0)|0,p=p+Math.imul(h,h0)|0;var r0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(r0>>>26)|0,r0&=67108863,y=Math.imul(F0,W0),w=Math.imul(F0,E0),w=w+Math.imul(A0,W0)|0,p=Math.imul(A0,E0),y=y+Math.imul(I0,D0)|0,w=w+Math.imul(I0,C0)|0,w=w+Math.imul(O0,D0)|0,p=p+Math.imul(O0,C0)|0,y=y+Math.imul(U0,R0)|0,w=w+Math.imul(U0,P0)|0,w=w+Math.imul(X0,R0)|0,p=p+Math.imul(X0,P0)|0,y=y+Math.imul(Z0,M0)|0,w=w+Math.imul(Z0,S0)|0,w=w+Math.imul(G0,M0)|0,p=p+Math.imul(G0,S0)|0,y=y+Math.imul($0,q0)|0,w=w+Math.imul($0,j0)|0,w=w+Math.imul(Q0,q0)|0,p=p+Math.imul(Q0,j0)|0,y=y+Math.imul(e,g0)|0,w=w+Math.imul(e,_0)|0,w=w+Math.imul(r,g0)|0,p=p+Math.imul(r,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,B0)|0,w=w+Math.imul(m,x0)|0,p=p+Math.imul(m,B0)|0,y=y+Math.imul(u,w0)|0,w=w+Math.imul(u,p0)|0,w=w+Math.imul(n,w0)|0,p=p+Math.imul(n,p0)|0,y=y+Math.imul(b,c0)|0,w=w+Math.imul(b,h0)|0,w=w+Math.imul(l,c0)|0,p=p+Math.imul(l,h0)|0,y=y+Math.imul(c,b0)|0,w=w+Math.imul(c,l0)|0,w=w+Math.imul(h,b0)|0,p=p+Math.imul(h,l0)|0;var i0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(i0>>>26)|0,i0&=67108863,y=Math.imul(F0,D0),w=Math.imul(F0,C0),w=w+Math.imul(A0,D0)|0,p=Math.imul(A0,C0),y=y+Math.imul(I0,R0)|0,w=w+Math.imul(I0,P0)|0,w=w+Math.imul(O0,R0)|0,p=p+Math.imul(O0,P0)|0,y=y+Math.imul(U0,M0)|0,w=w+Math.imul(U0,S0)|0,w=w+Math.imul(X0,M0)|0,p=p+Math.imul(X0,S0)|0,y=y+Math.imul(Z0,q0)|0,w=w+Math.imul(Z0,j0)|0,w=w+Math.imul(G0,q0)|0,p=p+Math.imul(G0,j0)|0,y=y+Math.imul($0,g0)|0,w=w+Math.imul($0,_0)|0,w=w+Math.imul(Q0,g0)|0,p=p+Math.imul(Q0,_0)|0,y=y+Math.imul(e,x0)|0,w=w+Math.imul(e,B0)|0,w=w+Math.imul(r,x0)|0,p=p+Math.imul(r,B0)|0,y=y+Math.imul(t,w0)|0,w=w+Math.imul(t,p0)|0,w=w+Math.imul(m,w0)|0,p=p+Math.imul(m,p0)|0,y=y+Math.imul(u,c0)|0,w=w+Math.imul(u,h0)|0,w=w+Math.imul(n,c0)|0,p=p+Math.imul(n,h0)|0,y=y+Math.imul(b,b0)|0,w=w+Math.imul(b,l0)|0,w=w+Math.imul(l,b0)|0,p=p+Math.imul(l,l0)|0;var $$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+($$>>>26)|0,$$&=67108863,y=Math.imul(F0,R0),w=Math.imul(F0,P0),w=w+Math.imul(A0,R0)|0,p=Math.imul(A0,P0),y=y+Math.imul(I0,M0)|0,w=w+Math.imul(I0,S0)|0,w=w+Math.imul(O0,M0)|0,p=p+Math.imul(O0,S0)|0,y=y+Math.imul(U0,q0)|0,w=w+Math.imul(U0,j0)|0,w=w+Math.imul(X0,q0)|0,p=p+Math.imul(X0,j0)|0,y=y+Math.imul(Z0,g0)|0,w=w+Math.imul(Z0,_0)|0,w=w+Math.imul(G0,g0)|0,p=p+Math.imul(G0,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,B0)|0,w=w+Math.imul(Q0,x0)|0,p=p+Math.imul(Q0,B0)|0,y=y+Math.imul(e,w0)|0,w=w+Math.imul(e,p0)|0,w=w+Math.imul(r,w0)|0,p=p+Math.imul(r,p0)|0,y=y+Math.imul(t,c0)|0,w=w+Math.imul(t,h0)|0,w=w+Math.imul(m,c0)|0,p=p+Math.imul(m,h0)|0,y=y+Math.imul(u,b0)|0,w=w+Math.imul(u,l0)|0,w=w+Math.imul(n,b0)|0,p=p+Math.imul(n,l0)|0;var Q$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,y=Math.imul(F0,M0),w=Math.imul(F0,S0),w=w+Math.imul(A0,M0)|0,p=Math.imul(A0,S0),y=y+Math.imul(I0,q0)|0,w=w+Math.imul(I0,j0)|0,w=w+Math.imul(O0,q0)|0,p=p+Math.imul(O0,j0)|0,y=y+Math.imul(U0,g0)|0,w=w+Math.imul(U0,_0)|0,w=w+Math.imul(X0,g0)|0,p=p+Math.imul(X0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,B0)|0,w=w+Math.imul(G0,x0)|0,p=p+Math.imul(G0,B0)|0,y=y+Math.imul($0,w0)|0,w=w+Math.imul($0,p0)|0,w=w+Math.imul(Q0,w0)|0,p=p+Math.imul(Q0,p0)|0,y=y+Math.imul(e,c0)|0,w=w+Math.imul(e,h0)|0,w=w+Math.imul(r,c0)|0,p=p+Math.imul(r,h0)|0,y=y+Math.imul(t,b0)|0,w=w+Math.imul(t,l0)|0,w=w+Math.imul(m,b0)|0,p=p+Math.imul(m,l0)|0;var Y$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,y=Math.imul(F0,q0),w=Math.imul(F0,j0),w=w+Math.imul(A0,q0)|0,p=Math.imul(A0,j0),y=y+Math.imul(I0,g0)|0,w=w+Math.imul(I0,_0)|0,w=w+Math.imul(O0,g0)|0,p=p+Math.imul(O0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,B0)|0,w=w+Math.imul(X0,x0)|0,p=p+Math.imul(X0,B0)|0,y=y+Math.imul(Z0,w0)|0,w=w+Math.imul(Z0,p0)|0,w=w+Math.imul(G0,w0)|0,p=p+Math.imul(G0,p0)|0,y=y+Math.imul($0,c0)|0,w=w+Math.imul($0,h0)|0,w=w+Math.imul(Q0,c0)|0,p=p+Math.imul(Q0,h0)|0,y=y+Math.imul(e,b0)|0,w=w+Math.imul(e,l0)|0,w=w+Math.imul(r,b0)|0,p=p+Math.imul(r,l0)|0;var Z$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,y=Math.imul(F0,g0),w=Math.imul(F0,_0),w=w+Math.imul(A0,g0)|0,p=Math.imul(A0,_0),y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,B0)|0,w=w+Math.imul(O0,x0)|0,p=p+Math.imul(O0,B0)|0,y=y+Math.imul(U0,w0)|0,w=w+Math.imul(U0,p0)|0,w=w+Math.imul(X0,w0)|0,p=p+Math.imul(X0,p0)|0,y=y+Math.imul(Z0,c0)|0,w=w+Math.imul(Z0,h0)|0,w=w+Math.imul(G0,c0)|0,p=p+Math.imul(G0,h0)|0,y=y+Math.imul($0,b0)|0,w=w+Math.imul($0,l0)|0,w=w+Math.imul(Q0,b0)|0,p=p+Math.imul(Q0,l0)|0;var G$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(G$>>>26)|0,G$&=67108863,y=Math.imul(F0,x0),w=Math.imul(F0,B0),w=w+Math.imul(A0,x0)|0,p=Math.imul(A0,B0),y=y+Math.imul(I0,w0)|0,w=w+Math.imul(I0,p0)|0,w=w+Math.imul(O0,w0)|0,p=p+Math.imul(O0,p0)|0,y=y+Math.imul(U0,c0)|0,w=w+Math.imul(U0,h0)|0,w=w+Math.imul(X0,c0)|0,p=p+Math.imul(X0,h0)|0,y=y+Math.imul(Z0,b0)|0,w=w+Math.imul(Z0,l0)|0,w=w+Math.imul(G0,b0)|0,p=p+Math.imul(G0,l0)|0;var V$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(V$>>>26)|0,V$&=67108863,y=Math.imul(F0,w0),w=Math.imul(F0,p0),w=w+Math.imul(A0,w0)|0,p=Math.imul(A0,p0),y=y+Math.imul(I0,c0)|0,w=w+Math.imul(I0,h0)|0,w=w+Math.imul(O0,c0)|0,p=p+Math.imul(O0,h0)|0,y=y+Math.imul(U0,b0)|0,w=w+Math.imul(U0,l0)|0,w=w+Math.imul(X0,b0)|0,p=p+Math.imul(X0,l0)|0;var U$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(U$>>>26)|0,U$&=67108863,y=Math.imul(F0,c0),w=Math.imul(F0,h0),w=w+Math.imul(A0,c0)|0,p=Math.imul(A0,h0),y=y+Math.imul(I0,b0)|0,w=w+Math.imul(I0,l0)|0,w=w+Math.imul(O0,b0)|0,p=p+Math.imul(O0,l0)|0;var X$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(X$>>>26)|0,X$&=67108863,y=Math.imul(F0,b0),w=Math.imul(F0,l0),w=w+Math.imul(A0,b0)|0,p=Math.imul(A0,l0);var K$=(B+y|0)+((w&8191)<<13)|0;return B=(p+(w>>>13)|0)+(K$>>>26)|0,K$&=67108863,x[0]=o0,x[1]=u0,x[2]=n0,x[3]=s0,x[4]=t0,x[5]=m0,x[6]=a0,x[7]=e0,x[8]=r0,x[9]=i0,x[10]=$$,x[11]=Q$,x[12]=Y$,x[13]=Z$,x[14]=G$,x[15]=V$,x[16]=U$,x[17]=X$,x[18]=K$,B!==0&&(x[19]=B,g.length++),g};Math.imul||(E=W);function T(j,k,g){g.negative=k.negative^j.negative,g.length=j.length+k.length;for(var _=0,N=0,x=0;x>>26)|0,N+=B>>>26,B&=67108863}g.words[x]=y,_=B,B=N}return _!==0?g.words[x]=_:g.length--,g.strip()}function D(j,k,g){var _=new C;return _.mulp(j,k,g)}U.prototype.mulTo=function(j,k){var g,_=this.length+j.length;return this.length===10&&j.length===10?g=E(this,j,k):_<63?g=W(this,j,k):_<1024?g=T(this,j,k):g=D(this,j,k),g};function C(j,k){this.x=j,this.y=k}C.prototype.makeRBT=function(j){for(var k=new Array(j),g=U.prototype._countBits(j)-1,_=0;_>=1;return _},C.prototype.permute=function(j,k,g,_,N,x){for(var B=0;B>>1)N++;return 1<>>13,g[2*x+1]=N&8191,N=N>>>13;for(x=2*k;x<_;++x)g[x]=0;G(N===0),G((N&-8192)===0)},C.prototype.stub=function(j){for(var k=new Array(j),g=0;g>=26,k+=_/67108864|0,k+=N>>>26,this.words[g]=N&67108863}return k!==0&&(this.words[g]=k,this.length++),this},U.prototype.muln=function(j){return this.clone().imuln(j)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(j){var k=H(j);if(k.length===0)return new U(1);for(var g=this,_=0;_=0);var k=j%26,g=(j-k)/26,_=67108863>>>26-k<<26-k,N;if(k!==0){var x=0;for(N=0;N>>26-k}x&&(this.words[N]=x,this.length++)}if(g!==0){for(N=this.length-1;N>=0;N--)this.words[N+g]=this.words[N];for(N=0;N=0);var _;k?_=(k-k%26)/26:_=0;var N=j%26,x=Math.min((j-N)/26,this.length),B=67108863^67108863>>>N<x)for(this.length-=x,w=0;w=0&&(p!==0||w>=_);w--){var f=this.words[w]|0;this.words[w]=p<<26-N|f>>>N,p=f&B}return y&&p!==0&&(y.words[y.length++]=p),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},U.prototype.ishrn=function(j,k,g){return G(this.negative===0),this.iushrn(j,k,g)},U.prototype.shln=function(j){return this.clone().ishln(j)},U.prototype.ushln=function(j){return this.clone().iushln(j)},U.prototype.shrn=function(j){return this.clone().ishrn(j)},U.prototype.ushrn=function(j){return this.clone().iushrn(j)},U.prototype.testn=function(j){G(typeof j=="number"&&j>=0);var k=j%26,g=(j-k)/26,_=1<=0);var k=j%26,g=(j-k)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(k!==0&&g++,this.length=Math.min(g,this.length),k!==0){var _=67108863^67108863>>>k<=67108864;k++)this.words[k]-=67108864,k===this.length-1?this.words[k+1]=1:this.words[k+1]++;return this.length=Math.max(this.length,k+1),this},U.prototype.isubn=function(j){if(G(typeof j=="number"),G(j<67108864),j<0)return this.iaddn(-j);if(this.negative!==0)return this.negative=0,this.iaddn(j),this.negative=1,this;if(this.words[0]-=j,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var k=0;k>26)-(y/67108864|0),this.words[N+g]=x&67108863}for(;N>26,this.words[N+g]=x&67108863;if(B===0)return this.strip();for(G(B===-1),B=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},U.prototype._wordDiv=function(j,k){var g=this.length-j.length,_=this.clone(),N=j,x=N.words[N.length-1]|0,B=this._countBits(x);g=26-B,g!==0&&(N=N.ushln(g),_.iushln(g),x=N.words[N.length-1]|0);var y=_.length-N.length,w;if(k!=="mod"){w=new U(null),w.length=y+1,w.words=new Array(w.length);for(var p=0;p=0;c--){var h=(_.words[N.length+c]|0)*67108864+(_.words[N.length+c-1]|0);for(h=Math.min(h/x|0,67108863),_._ishlnsubmul(N,h,c);_.negative!==0;)h--,_.negative=0,_._ishlnsubmul(N,1,c),_.isZero()||(_.negative^=1);w&&(w.words[c]=h)}return w&&w.strip(),_.strip(),k!=="div"&&g!==0&&_.iushrn(g),{div:w||null,mod:_}},U.prototype.divmod=function(j,k,g){if(G(!j.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var _,N,x;return this.negative!==0&&j.negative===0?(x=this.neg().divmod(j,k),k!=="mod"&&(_=x.div.neg()),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.iadd(j)),{div:_,mod:N}):this.negative===0&&j.negative!==0?(x=this.divmod(j.neg(),k),k!=="mod"&&(_=x.div.neg()),{div:_,mod:x.mod}):(this.negative&j.negative)!==0?(x=this.neg().divmod(j.neg(),k),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.isub(j)),{div:x.div,mod:N}):j.length>this.length||this.cmp(j)<0?{div:new U(0),mod:this}:j.length===1?k==="div"?{div:this.divn(j.words[0]),mod:null}:k==="mod"?{div:null,mod:new U(this.modn(j.words[0]))}:{div:this.divn(j.words[0]),mod:new U(this.modn(j.words[0]))}:this._wordDiv(j,k)},U.prototype.div=function(j){return this.divmod(j,"div",!1).div},U.prototype.mod=function(j){return this.divmod(j,"mod",!1).mod},U.prototype.umod=function(j){return this.divmod(j,"mod",!0).mod},U.prototype.divRound=function(j){var k=this.divmod(j);if(k.mod.isZero())return k.div;var g=k.div.negative!==0?k.mod.isub(j):k.mod,_=j.ushrn(1),N=j.andln(1),x=g.cmp(_);return x<0||N===1&&x===0?k.div:k.div.negative!==0?k.div.isubn(1):k.div.iaddn(1)},U.prototype.modn=function(j){G(j<=67108863);for(var k=(1<<26)%j,g=0,_=this.length-1;_>=0;_--)g=(k*g+(this.words[_]|0))%j;return g},U.prototype.idivn=function(j){G(j<=67108863);for(var k=0,g=this.length-1;g>=0;g--){var _=(this.words[g]|0)+k*67108864;this.words[g]=_/j|0,k=_%j}return this.strip()},U.prototype.divn=function(j){return this.clone().idivn(j)},U.prototype.egcd=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=new U(0),B=new U(1),y=0;k.isEven()&&g.isEven();)k.iushrn(1),g.iushrn(1),++y;for(var w=g.clone(),p=k.clone();!k.isZero();){for(var f=0,c=1;(k.words[0]&c)===0&&f<26;++f,c<<=1);if(f>0)for(k.iushrn(f);f-- >0;)(_.isOdd()||N.isOdd())&&(_.iadd(w),N.isub(p)),_.iushrn(1),N.iushrn(1);for(var h=0,d=1;(g.words[0]&d)===0&&h<26;++h,d<<=1);if(h>0)for(g.iushrn(h);h-- >0;)(x.isOdd()||B.isOdd())&&(x.iadd(w),B.isub(p)),x.iushrn(1),B.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(x),N.isub(B)):(g.isub(k),x.isub(_),B.isub(N))}return{a:x,b:B,gcd:g.iushln(y)}},U.prototype._invmp=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=g.clone();k.cmpn(1)>0&&g.cmpn(1)>0;){for(var B=0,y=1;(k.words[0]&y)===0&&B<26;++B,y<<=1);if(B>0)for(k.iushrn(B);B-- >0;)_.isOdd()&&_.iadd(x),_.iushrn(1);for(var w=0,p=1;(g.words[0]&p)===0&&w<26;++w,p<<=1);if(w>0)for(g.iushrn(w);w-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(N)):(g.isub(k),N.isub(_))}var f;return k.cmpn(1)===0?f=_:f=N,f.cmpn(0)<0&&f.iadd(j),f},U.prototype.gcd=function(j){if(this.isZero())return j.abs();if(j.isZero())return this.abs();var k=this.clone(),g=j.clone();k.negative=0,g.negative=0;for(var _=0;k.isEven()&&g.isEven();_++)k.iushrn(1),g.iushrn(1);do{for(;k.isEven();)k.iushrn(1);for(;g.isEven();)g.iushrn(1);var N=k.cmp(g);if(N<0){var x=k;k=g,g=x}else if(N===0||g.cmpn(1)===0)break;k.isub(g)}while(!0);return g.iushln(_)},U.prototype.invm=function(j){return this.egcd(j).a.umod(j)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(j){return this.words[0]&j},U.prototype.bincn=function(j){G(typeof j=="number");var k=j%26,g=(j-k)/26,_=1<>>26,B&=67108863,this.words[x]=B}return N!==0&&(this.words[x]=N,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(j){var k=j<0;if(this.negative!==0&&!k)return-1;if(this.negative===0&&k)return 1;this.strip();var g;if(this.length>1)g=1;else{k&&(j=-j),G(j<=67108863,"Number is too big");var _=this.words[0]|0;g=_===j?0:_j.length)return 1;if(this.length=0;g--){var _=this.words[g]|0,N=j.words[g]|0;if(_!==N){_N&&(k=1);break}}return k},U.prototype.gtn=function(j){return this.cmpn(j)===1},U.prototype.gt=function(j){return this.cmp(j)===1},U.prototype.gten=function(j){return this.cmpn(j)>=0},U.prototype.gte=function(j){return this.cmp(j)>=0},U.prototype.ltn=function(j){return this.cmpn(j)===-1},U.prototype.lt=function(j){return this.cmp(j)===-1},U.prototype.lten=function(j){return this.cmpn(j)<=0},U.prototype.lte=function(j){return this.cmp(j)<=0},U.prototype.eqn=function(j){return this.cmpn(j)===0},U.prototype.eq=function(j){return this.cmp(j)===0},U.red=function(j){return new v(j)},U.prototype.toRed=function(j){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),j.convertTo(this)._forceRed(j)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(j){return this.red=j,this},U.prototype.forceRed=function(j){return G(!this.red,"Already a number in reduction context"),this._forceRed(j)},U.prototype.redAdd=function(j){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,j)},U.prototype.redIAdd=function(j){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,j)},U.prototype.redSub=function(j){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,j)},U.prototype.redISub=function(j){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,j)},U.prototype.redShl=function(j){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,j)},U.prototype.redMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.mul(this,j)},U.prototype.redIMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.imul(this,j)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(j){return G(this.red&&!j.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,j)};var L={k256:null,p224:null,p192:null,p25519:null};function R(j,k){this.name=j,this.p=new U(k,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}R.prototype._tmp=function(){var j=new U(null);return j.words=new Array(Math.ceil(this.n/13)),j},R.prototype.ireduce=function(j){var k=j,g;do this.split(k,this.tmp),k=this.imulK(k),k=k.iadd(this.tmp),g=k.bitLength();while(g>this.n);var _=g0?k.isub(this.p):k.strip!==void 0?k.strip():k._strip(),k},R.prototype.split=function(j,k){j.iushrn(this.n,0,k)},R.prototype.imulK=function(j){return j.imul(this.k)};function P(){R.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(P,R),P.prototype.split=function(j,k){for(var g=4194303,_=Math.min(j.length,9),N=0;N<_;N++)k.words[N]=j.words[N];if(k.length=_,j.length<=9){j.words[0]=0,j.length=1;return}var x=j.words[9];for(k.words[k.length++]=x&g,N=10;N>>22,x=B}x>>>=22,j.words[N-10]=x,x===0&&j.length>10?j.length-=10:j.length-=9},P.prototype.imulK=function(j){j.words[j.length]=0,j.words[j.length+1]=0,j.length+=2;for(var k=0,g=0;g>>=26,j.words[g]=N,k=_}return k!==0&&(j.words[j.length++]=k),j},U._prime=function(j){if(L[j])return L[j];var k;if(j==="k256")k=new P;else if(j==="p224")k=new z;else if(j==="p192")k=new M;else if(j==="p25519")k=new S;else throw new Error("Unknown prime "+j);return L[j]=k,k};function v(j){if(typeof j=="string"){var k=U._prime(j);this.m=k.p,this.prime=k}else G(j.gtn(1),"modulus must be greater than 1"),this.m=j,this.prime=null}v.prototype._verify1=function(j){G(j.negative===0,"red works only with positives"),G(j.red,"red works only with red numbers")},v.prototype._verify2=function(j,k){G((j.negative|k.negative)===0,"red works only with positives"),G(j.red&&j.red===k.red,"red works only with red numbers")},v.prototype.imod=function(j){return this.prime?this.prime.ireduce(j)._forceRed(this):j.umod(this.m)._forceRed(this)},v.prototype.neg=function(j){return j.isZero()?j.clone():this.m.sub(j)._forceRed(this)},v.prototype.add=function(j,k){this._verify2(j,k);var g=j.add(k);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},v.prototype.iadd=function(j,k){this._verify2(j,k);var g=j.iadd(k);return g.cmp(this.m)>=0&&g.isub(this.m),g},v.prototype.sub=function(j,k){this._verify2(j,k);var g=j.sub(k);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},v.prototype.isub=function(j,k){this._verify2(j,k);var g=j.isub(k);return g.cmpn(0)<0&&g.iadd(this.m),g},v.prototype.shl=function(j,k){return this._verify1(j),this.imod(j.ushln(k))},v.prototype.imul=function(j,k){return this._verify2(j,k),this.imod(j.imul(k))},v.prototype.mul=function(j,k){return this._verify2(j,k),this.imod(j.mul(k))},v.prototype.isqr=function(j){return this.imul(j,j.clone())},v.prototype.sqr=function(j){return this.mul(j,j)},v.prototype.sqrt=function(j){if(j.isZero())return j.clone();var k=this.m.andln(3);if(G(k%2===1),k===3){var g=this.m.add(new U(1)).iushrn(2);return this.pow(j,g)}for(var _=this.m.subn(1),N=0;!_.isZero()&&_.andln(1)===0;)N++,_.iushrn(1);G(!_.isZero());var x=new U(1).toRed(this),B=x.redNeg(),y=this.m.subn(1).iushrn(1),w=this.m.bitLength();for(w=new U(2*w*w).toRed(this);this.pow(w,y).cmp(B)!==0;)w.redIAdd(B);for(var p=this.pow(w,_),f=this.pow(j,_.addn(1).iushrn(1)),c=this.pow(j,_),h=N;c.cmp(x)!==0;){for(var d=c,b=0;d.cmp(x)!==0;b++)d=d.redSqr();G(b=0;N--){for(var p=k.words[N],f=w-1;f>=0;f--){var c=p>>f&1;if(x!==_[0]&&(x=this.sqr(x)),c===0&&B===0){y=0;continue}B<<=1,B|=c,y++,!(y!==g&&(N!==0||f!==0))&&(x=this.mul(x,_[B]),y=0,B=0)}w=26}return x},v.prototype.convertTo=function(j){var k=j.umod(this.m);return k===j?k.clone():k},v.prototype.convertFrom=function(j){var k=j.clone();return k.red=null,k},U.mont=function(j){return new q(j)};function q(j){v.call(this,j),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(q,v),q.prototype.convertTo=function(j){return this.imod(j.ushln(this.shift))},q.prototype.convertFrom=function(j){var k=this.imod(j.mul(this.rinv));return k.red=null,k},q.prototype.imul=function(j,k){if(j.isZero()||k.isZero())return j.words[0]=0,j.length=1,j;var g=j.imul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.mul=function(j,k){if(j.isZero()||k.isZero())return new U(0)._forceRed(this);var g=j.mul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.invm=function(j){var k=this.imod(j._invmp(this.m).mul(this.r2));return k._forceRed(this)}})(typeof Q>"u"||Q,$)}}),{CryptoHasher:sY}=globalThis.Bun,tY=q$({"node_modules/public-encrypt/withPublic.js"($,Q){var Y=nY(),Z=k$().Buffer;function G(V,U){return Z.from(V.toRed(Y.mont(U.modulus)).redPow(new Y(U.publicExponent)).fromRed().toArray())}Q.exports=G}}),mY=q$({"node_modules/public-encrypt/publicEncrypt.js"($,Q){var Y=pY(),Z=g$(),G=o$(),V=oY(),U=uY(),X=nY(),K=tY(),I=hQ(),O=k$().Buffer;Q.exports=function(H,W,E){var T;H.padding?T=H.padding:E?T=1:T=4;var D=Y(H),C;if(T===4)C=J(D,W);else if(T===1)C=F(D,W,E);else if(T===3){if(C=new X(W),C.cmp(D.modulus)>=0)throw new Error("data too long for modulus")}else throw new Error("unknown padding");return E?I(C,D):K(C,D)};function J(H,W){var E=H.modulus.byteLength(),T=W.length,D=G("sha1").update(O.alloc(0)).digest(),C=D.length,L=2*C;if(T>E-L-2)throw new Error("message too long");var R=O.alloc(E-T-L-2),P=E-C-1,z=Z(C),M=U(O.concat([D,R,O.alloc(1,1),W],P),V(z,P)),S=U(z,V(M,C));return new X(O.concat([O.alloc(1),S,M],E))}function F(H,W,E){var T=W.length,D=H.modulus.byteLength();if(T>D-11)throw new Error("message too long");var C;return E?C=O.alloc(D-T-3,255):C=A(D-T-3),new X(O.concat([O.from([0,E?1:2]),C,O.alloc(1),W],D))}function A(H){for(var W=O.allocUnsafe(H),E=0,T=Z(H*2),D=0,C;ED||new V(H).cmp(T.modulus)>=0)throw new Error("decryption error");var C;W?C=K(new V(H),T):C=U(H,T);var L=I.alloc(D-C.length);if(C=I.concat([L,C],D),E===4)return O(T,C);if(E===1)return J(T,C,W);if(E===3)return C;throw new Error("unknown padding")};function O(A,H){var W=A.modulus.byteLength(),E=X("sha1").update(I.alloc(0)).digest(),T=E.length;if(H[0]!==0)throw new Error("decryption error");var D=H.slice(1,T+1),C=H.slice(T+1),L=G(D,Z(C,T)),R=G(C,Z(L,W-T-1));if(F(E,R.slice(0,T)))throw new Error("decryption error");for(var P=T;R[P]===0;)P++;if(R[P++]!==1)throw new Error("decryption error");return R.slice(P)}function J(A,H,W){for(var E=H.slice(0,2),T=2,D=0;H[T++]!==0;)if(T>=H.length){D++;break}var C=H.slice(2,T-1);if((E.toString("hex")!=="0002"&&!W||E.toString("hex")!=="0001"&&W)&&D++,C.length<8&&D++,D)throw new Error("decryption error");return H.slice(T)}function F(A,H){A=I.from(A),H=I.from(H);var W=0,E=A.length;A.length!==H.length&&(W++,E=Math.min(A.length,H.length));for(var T=-1;++TV||J<0)throw new TypeError("offset must be a uint32");if(J>G||J>F)throw new RangeError("offset out of range")}function X(J,F,A){if(typeof J!="number"||J!==J)throw new TypeError("size must be a number");if(J>V||J<0)throw new TypeError("size must be a uint32");if(J+F>A||J>G)throw new RangeError("buffer too small")}$.randomFill=K,$.randomFillSync=O;function K(J,F,A,H){if(!Z.isBuffer(J)&&!(J instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if(typeof F=="function")H=F,F=0,A=J.length;else if(typeof A=="function")H=A,A=J.length-F;else if(typeof H!="function")throw new TypeError('"cb" argument must be a function');return U(F,J.length),X(A,F,J.length),I(J,F,A,H)}function I(J,F,A,H){if(H){Y(A,function(E,T){if(E)return H(E);T.copy(J,F),H(null,J)});return}var W=Y(A);return W.copy(J,F),J}function O(J,F,A){if(typeof F>"u"&&(F=0),!Z.isBuffer(J)&&!(J instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return U(F,J.length),A===void 0&&(A=J.length-F),X(A,F,J.length),I(J,F,A)}}}),iY=q$({"node_modules/crypto-browserify/index.js"($){$.randomBytes=$.rng=$.pseudoRandomBytes=$.prng=g$(),$.createHash=o$(),$.Hash=$.createHash.Hash,$.createHmac=$.Hmac=s$();var Q=m$(),Y=Object.keys(Q),Z=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(Y);$.getHashes=function(){return Z};var G=QQ();$.pbkdf2=G.pbkdf2,$.pbkdf2Sync=G.pbkdf2Sync;var V=kQ();$.Cipher=V.Cipher,$.createCipher=V.createCipher,$.Cipheriv=V.Cipheriv,$.createCipheriv=V.createCipheriv,$.Decipher=V.Decipher,$.createDecipher=V.createDecipher,$.Decipheriv=V.Decipheriv,$.createDecipheriv=V.createDecipheriv,$.getCiphers=V.getCiphers,$.listCiphers=V.listCiphers;var U=fQ();$.DiffieHellmanGroup=U.DiffieHellmanGroup,$.createDiffieHellmanGroup=U.createDiffieHellmanGroup,$.getDiffieHellman=U.getDiffieHellman,$.createDiffieHellman=U.createDiffieHellman,$.DiffieHellman=U.DiffieHellman;var X=dY();$.createSign=X.createSign,$.Sign=X.Sign,$.createVerify=X.createVerify,$.Verify=X.Verify,$.createECDH=lY();var K=eY();$.publicEncrypt=K.publicEncrypt,$.privateEncrypt=K.privateEncrypt,$.publicDecrypt=K.publicDecrypt,$.privateDecrypt=K.privateDecrypt,$.getRandomValues=(O)=>H$.getRandomValues(O);var I=rY();$.randomFill=I.randomFill,$.randomFillSync=I.randomFillSync,$.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join(` -`))},$.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}}}),$Z={...iY(),[Symbol.for("CommonJS")]:0},T$="buffer",QZ=($)=>H$.getRandomValues($),YZ=()=>H$.randomUUID(),D$="timingSafeEqual"in H$?($,Q)=>{let{byteLength:Y}=$,{byteLength:Z}=Q;if(typeof Y!="number"||typeof Z!="number")throw new TypeError("Input must be an array buffer view");if(Y!==Z)throw new RangeError("Input buffers must have the same length");return H$.timingSafeEqual($,Q)}:void 0,ZZ="scryptSync"in H$?($,Q,Y,Z)=>{let G=H$.scryptSync($,Q,Y,Z);return T$!=="buffer"?new F$(G).toString(T$):new F$(G)}:void 0,GZ="scryptSync"in H$?function($,Q,Y,Z,G){if(typeof Z=="function"&&(G=Z,Z=void 0),typeof G!="function"){var V=new TypeError("callback must be a function");throw V.code="ERR_INVALID_CALLBACK",V}try{let U=H$.scryptSync($,Q,Y,Z);process.nextTick(G,null,T$!=="buffer"?new F$(U).toString(T$):new F$(U))}catch(U){throw U}}:void 0;D$&&(Object.defineProperty(D$,"name",{value:"::bunternal::"}),Object.defineProperty(GZ,"name",{value:"::bunternal::"}),Object.defineProperty(ZZ,"name",{value:"::bunternal::"}));var C$=H$;j$($Z,{DEFAULT_ENCODING:()=>T$,getRandomValues:()=>QZ,randomUUID:()=>YZ,scrypt:()=>GZ,scryptSync:()=>ZZ,timingSafeEqual:()=>D$,webcrypto:()=>C$,subtle:()=>C$.subtle});var{randomBytes:VZ,rng:UZ,pseudoRandomBytes:XZ,prng:KZ,Hash:IZ,createHash:OZ,createHmac:JZ,Hmac:FZ,getHashes:AZ,pbkdf2:HZ,pbkdf2Sync:WZ,Cipher:EZ,createCipher:TZ,Cipheriv:DZ,createCipheriv:CZ,Decipher:LZ,createDecipher:RZ,Decipheriv:PZ,createDecipheriv:zZ,getCiphers:MZ,listCiphers:SZ,DiffieHellmanGroup:vZ,createDiffieHellmanGroup:qZ,getDiffieHellman:jZ,createDiffieHellman:kZ,DiffieHellman:gZ,createSign:_Z,Sign:NZ,createVerify:xZ,Verify:BZ,createECDH:yZ,publicEncrypt:wZ,privateEncrypt:pZ,publicDecrypt:fZ,privateDecrypt:cZ,randomFill:hZ,randomFillSync:dZ,createCredentials:bZ,constants:lZ}=$Z;var uZ=$Z;/*! safe-buffer. MIT License. Feross Aboukhadijeh */export{C$ as webcrypto,D$ as timingSafeEqual,ZZ as scryptSync,GZ as scrypt,UZ as rng,YZ as randomUUID,dZ as randomFillSync,hZ as randomFill,VZ as randomBytes,wZ as publicEncrypt,fZ as publicDecrypt,XZ as pseudoRandomBytes,KZ as prng,pZ as privateEncrypt,cZ as privateDecrypt,WZ as pbkdf2Sync,HZ as pbkdf2,SZ as listCiphers,QZ as getRandomValues,AZ as getHashes,jZ as getDiffieHellman,MZ as getCiphers,uZ as default,xZ as createVerify,_Z as createSign,JZ as createHmac,OZ as createHash,yZ as createECDH,qZ as createDiffieHellmanGroup,kZ as createDiffieHellman,zZ as createDecipheriv,RZ as createDecipher,bZ as createCredentials,CZ as createCipheriv,TZ as createCipher,lZ as constants,BZ as Verify,NZ as Sign,FZ as Hmac,IZ as Hash,vZ as DiffieHellmanGroup,gZ as DiffieHellman,PZ as Decipheriv,LZ as Decipher,T$ as DEFAULT_ENCODING,DZ as Cipheriv,EZ as Cipher}; +import{StringDecoder as a$} from"node:string_decoder";import*as e$ from"node:buffer";import*as h$ from"node:stream";var s$=Object.defineProperty;var t$=Object.getOwnPropertyNames;var r$=536870888,c$=globalThis.Buffer,d$=globalThis.crypto,i$=d$;var $Q=(X,K)=>function(){return K||(0,X[t$(X)[0]])((K={exports:{}}).exports,K),K.exports},QQ=(X,K)=>{for(var x0 in K)s$(X,x0,{get:K[x0],enumerable:!0})};var YQ=$Q({"node_modules/safe-buffer/index.js"(X,K){var x0=e$,G=x0.Buffer;function Y(Z,Q){for(var U in Z)Q[U]=Z[U]}G.from&&G.alloc&&G.allocUnsafe&&G.allocUnsafeSlow?K.exports=x0:(Y(x0,X),X.Buffer=$);function $(Z,Q,U){return G(Z,Q,U)}$.prototype=Object.create(G.prototype),Y(G,$),$.from=function(Z,Q,U){if(typeof Z=="number")throw new TypeError("Argument must not be a number");return G(Z,Q,U)},$.alloc=function(Z,Q,U){if(typeof Z!="number")throw new TypeError("Argument must be a number");var V=G(Z);return Q!==void 0?typeof U=="string"?V.fill(Q,U):V.fill(Q):V.fill(0),V},$.allocUnsafe=function(Z){if(typeof Z!="number")throw new TypeError("Argument must be a number");return G(Z)},$.allocUnsafeSlow=function(Z){if(typeof Z!="number")throw new TypeError("Argument must be a number");return x0.SlowBuffer(Z)}}}),ZQ=$Q({"node_modules/randombytes/browser.js"(X,K){var x0=65536,G=4294967295;function Y(){throw new Error(`Secure random number generation is not supported by this browser. +Use Chrome, Firefox or Internet Explorer 11`)}var $=YQ().Buffer,Z=i$;Z&&Z.getRandomValues?K.exports=Q:K.exports=Y;function Q(U,V){if(U>G)throw new RangeError("requested too many random bytes");var B0=$.allocUnsafe(U);if(U>0)if(U>x0)for(var H=0;H=this._blockSize;){for(var B0=this._blockOffset;B00;++H)this._length[H]+=y0,y0=this._length[H]/4294967296|0,y0>0&&(this._length[H]-=4294967296*y0);return this},$.prototype._update=function(){throw new Error("_update is not implemented")},$.prototype.digest=function(Z){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var Q=this._digest();Z!==void 0&&(Q=Q.toString(Z)),this._block.fill(0),this._blockOffset=0;for(var U=0;U<4;++U)this._length[U]=0;return Q},$.prototype._digest=function(){throw new Error("_digest is not implemented")},K.exports=$}}),I0=$Q({"node_modules/md5.js/index.js"(X,K){var x0=X0(),G=K0(),Y=YQ().Buffer,$=new Array(16);function Z(){G.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}x0(Z,G),Z.prototype._update=function(){for(var y0=$,W=0;W<16;++W)y0[W]=this._block.readInt32LE(W*4);var w0=this._a,E=this._b,p0=this._c,T=this._d;w0=U(w0,E,p0,T,y0[0],3614090360,7),T=U(T,w0,E,p0,y0[1],3905402710,12),p0=U(p0,T,w0,E,y0[2],606105819,17),E=U(E,p0,T,w0,y0[3],3250441966,22),w0=U(w0,E,p0,T,y0[4],4118548399,7),T=U(T,w0,E,p0,y0[5],1200080426,12),p0=U(p0,T,w0,E,y0[6],2821735955,17),E=U(E,p0,T,w0,y0[7],4249261313,22),w0=U(w0,E,p0,T,y0[8],1770035416,7),T=U(T,w0,E,p0,y0[9],2336552879,12),p0=U(p0,T,w0,E,y0[10],4294925233,17),E=U(E,p0,T,w0,y0[11],2304563134,22),w0=U(w0,E,p0,T,y0[12],1804603682,7),T=U(T,w0,E,p0,y0[13],4254626195,12),p0=U(p0,T,w0,E,y0[14],2792965006,17),E=U(E,p0,T,w0,y0[15],1236535329,22),w0=V(w0,E,p0,T,y0[1],4129170786,5),T=V(T,w0,E,p0,y0[6],3225465664,9),p0=V(p0,T,w0,E,y0[11],643717713,14),E=V(E,p0,T,w0,y0[0],3921069994,20),w0=V(w0,E,p0,T,y0[5],3593408605,5),T=V(T,w0,E,p0,y0[10],38016083,9),p0=V(p0,T,w0,E,y0[15],3634488961,14),E=V(E,p0,T,w0,y0[4],3889429448,20),w0=V(w0,E,p0,T,y0[9],568446438,5),T=V(T,w0,E,p0,y0[14],3275163606,9),p0=V(p0,T,w0,E,y0[3],4107603335,14),E=V(E,p0,T,w0,y0[8],1163531501,20),w0=V(w0,E,p0,T,y0[13],2850285829,5),T=V(T,w0,E,p0,y0[2],4243563512,9),p0=V(p0,T,w0,E,y0[7],1735328473,14),E=V(E,p0,T,w0,y0[12],2368359562,20),w0=B0(w0,E,p0,T,y0[5],4294588738,4),T=B0(T,w0,E,p0,y0[8],2272392833,11),p0=B0(p0,T,w0,E,y0[11],1839030562,16),E=B0(E,p0,T,w0,y0[14],4259657740,23),w0=B0(w0,E,p0,T,y0[1],2763975236,4),T=B0(T,w0,E,p0,y0[4],1272893353,11),p0=B0(p0,T,w0,E,y0[7],4139469664,16),E=B0(E,p0,T,w0,y0[10],3200236656,23),w0=B0(w0,E,p0,T,y0[13],681279174,4),T=B0(T,w0,E,p0,y0[0],3936430074,11),p0=B0(p0,T,w0,E,y0[3],3572445317,16),E=B0(E,p0,T,w0,y0[6],76029189,23),w0=B0(w0,E,p0,T,y0[9],3654602809,4),T=B0(T,w0,E,p0,y0[12],3873151461,11),p0=B0(p0,T,w0,E,y0[15],530742520,16),E=B0(E,p0,T,w0,y0[2],3299628645,23),w0=H(w0,E,p0,T,y0[0],4096336452,6),T=H(T,w0,E,p0,y0[7],1126891415,10),p0=H(p0,T,w0,E,y0[14],2878612391,15),E=H(E,p0,T,w0,y0[5],4237533241,21),w0=H(w0,E,p0,T,y0[12],1700485571,6),T=H(T,w0,E,p0,y0[3],2399980690,10),p0=H(p0,T,w0,E,y0[10],4293915773,15),E=H(E,p0,T,w0,y0[1],2240044497,21),w0=H(w0,E,p0,T,y0[8],1873313359,6),T=H(T,w0,E,p0,y0[15],4264355552,10),p0=H(p0,T,w0,E,y0[6],2734768916,15),E=H(E,p0,T,w0,y0[13],1309151649,21),w0=H(w0,E,p0,T,y0[4],4149444226,6),T=H(T,w0,E,p0,y0[11],3174756917,10),p0=H(p0,T,w0,E,y0[2],718787259,15),E=H(E,p0,T,w0,y0[9],3951481745,21),this._a=this._a+w0|0,this._b=this._b+E|0,this._c=this._c+p0|0,this._d=this._d+T|0},Z.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var y0=Y.allocUnsafe(16);return y0.writeInt32LE(this._a,0),y0.writeInt32LE(this._b,4),y0.writeInt32LE(this._c,8),y0.writeInt32LE(this._d,12),y0};function Q(y0,W){return y0<>>32-W}function U(y0,W,w0,E,p0,T,f0){return Q(y0+(W&w0|~W&E)+p0+T|0,f0)+W|0}function V(y0,W,w0,E,p0,T,f0){return Q(y0+(W&E|w0&~E)+p0+T|0,f0)+W|0}function B0(y0,W,w0,E,p0,T,f0){return Q(y0+(W^w0^E)+p0+T|0,f0)+W|0}function H(y0,W,w0,E,p0,T,f0){return Q(y0+(w0^(W|~E))+p0+T|0,f0)+W|0}K.exports=Z}}),O0=$Q({"node_modules/ripemd160/index.js"(X,K){var x0=c$,G=X0(),Y=K0(),$=new Array(16),Z=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],Q=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],U=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],V=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],B0=[0,1518500249,1859775393,2400959708,2840853838],H=[1352829926,1548603684,1836072691,2053994217,0];function y0(){Y.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}G(y0,Y),y0.prototype._update=function(){for(var D=$,c0=0;c0<16;++c0)D[c0]=this._block.readInt32LE(c0*4);for(var C=this._a|0,h0=this._b|0,L=this._c|0,d0=this._d|0,R=this._e|0,b0=this._a|0,P=this._b|0,l0=this._c|0,z=this._d|0,o0=this._e|0,M=0;M<80;M+=1){var u0,S;M<16?(u0=w0(C,h0,L,d0,R,D[Z[M]],B0[0],U[M]),S=f0(b0,P,l0,z,o0,D[Q[M]],H[0],V[M])):M<32?(u0=E(C,h0,L,d0,R,D[Z[M]],B0[1],U[M]),S=T(b0,P,l0,z,o0,D[Q[M]],H[1],V[M])):M<48?(u0=p0(C,h0,L,d0,R,D[Z[M]],B0[2],U[M]),S=p0(b0,P,l0,z,o0,D[Q[M]],H[2],V[M])):M<64?(u0=T(C,h0,L,d0,R,D[Z[M]],B0[3],U[M]),S=E(b0,P,l0,z,o0,D[Q[M]],H[3],V[M])):(u0=f0(C,h0,L,d0,R,D[Z[M]],B0[4],U[M]),S=w0(b0,P,l0,z,o0,D[Q[M]],H[4],V[M])),C=R,R=d0,d0=W(L,10),L=h0,h0=u0,b0=o0,o0=z,z=W(l0,10),l0=P,P=S}var n0=this._b+L+z|0;this._b=this._c+d0+o0|0,this._c=this._d+R+b0|0,this._d=this._e+C+P|0,this._e=this._a+h0+l0|0,this._a=n0},y0.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var D=x0.alloc?x0.alloc(20):new x0(20);return D.writeInt32LE(this._a,0),D.writeInt32LE(this._b,4),D.writeInt32LE(this._c,8),D.writeInt32LE(this._d,12),D.writeInt32LE(this._e,16),D};function W(D,c0){return D<>>32-c0}function w0(D,c0,C,h0,L,d0,R,b0){return W(D+(c0^C^h0)+d0+R|0,b0)+L|0}function E(D,c0,C,h0,L,d0,R,b0){return W(D+(c0&C|~c0&h0)+d0+R|0,b0)+L|0}function p0(D,c0,C,h0,L,d0,R,b0){return W(D+((c0|~C)^h0)+d0+R|0,b0)+L|0}function T(D,c0,C,h0,L,d0,R,b0){return W(D+(c0&h0|C&~h0)+d0+R|0,b0)+L|0}function f0(D,c0,C,h0,L,d0,R,b0){return W(D+(c0^(C|~h0))+d0+R|0,b0)+L|0}K.exports=y0}}),J0=$Q({"node_modules/sha.js/hash.js"(X,K){var x0=YQ().Buffer;function G(Y,$){this._block=x0.alloc(Y),this._finalSize=$,this._blockSize=Y,this._len=0}G.prototype.update=function(Y,$){typeof Y=="string"&&($=$||"utf8",Y=x0.from(Y,$));for(var Z=this._block,Q=this._blockSize,U=Y.length,V=this._len,B0=0;B0=this._finalSize&&(this._update(this._block),this._block.fill(0));var Z=this._len*8;if(Z<=4294967295)this._block.writeUInt32BE(Z,this._blockSize-4);else{var Q=(Z&4294967295)>>>0,U=(Z-Q)/4294967296;this._block.writeUInt32BE(U,this._blockSize-8),this._block.writeUInt32BE(Q,this._blockSize-4)}this._update(this._block);var V=this._hash();return Y?V.toString(Y):V},G.prototype._update=function(){throw new Error("_update must be implemented by subclass")},K.exports=G}}),F0=$Q({"node_modules/sha.js/sha.js"(X,K){var x0=X0(),G=J0(),Y=YQ().Buffer,$=[1518500249,1859775393,-1894007588,-899497514],Z=new Array(80);function Q(){this.init(),this._w=Z,G.call(this,64,56)}x0(Q,G),Q.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function U(H){return H<<5|H>>>27}function V(H){return H<<30|H>>>2}function B0(H,y0,W,w0){return H===0?y0&W|~y0&w0:H===2?y0&W|y0&w0|W&w0:y0^W^w0}Q.prototype._update=function(H){for(var y0=this._w,W=this._a|0,w0=this._b|0,E=this._c|0,p0=this._d|0,T=this._e|0,f0=0;f0<16;++f0)y0[f0]=H.readInt32BE(f0*4);for(;f0<80;++f0)y0[f0]=y0[f0-3]^y0[f0-8]^y0[f0-14]^y0[f0-16];for(var D=0;D<80;++D){var c0=~~(D/20),C=U(W)+B0(c0,w0,E,p0)+T+y0[D]+$[c0]|0;T=p0,p0=E,E=V(w0),w0=W,W=C}this._a=W+this._a|0,this._b=w0+this._b|0,this._c=E+this._c|0,this._d=p0+this._d|0,this._e=T+this._e|0},Q.prototype._hash=function(){var H=Y.allocUnsafe(20);return H.writeInt32BE(this._a|0,0),H.writeInt32BE(this._b|0,4),H.writeInt32BE(this._c|0,8),H.writeInt32BE(this._d|0,12),H.writeInt32BE(this._e|0,16),H},K.exports=Q}}),A0=$Q({"node_modules/sha.js/sha1.js"(X,K){var x0=X0(),G=J0(),Y=YQ().Buffer,$=[1518500249,1859775393,-1894007588,-899497514],Z=new Array(80);function Q(){this.init(),this._w=Z,G.call(this,64,56)}x0(Q,G),Q.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function U(y0){return y0<<1|y0>>>31}function V(y0){return y0<<5|y0>>>27}function B0(y0){return y0<<30|y0>>>2}function H(y0,W,w0,E){return y0===0?W&w0|~W&E:y0===2?W&w0|W&E|w0&E:W^w0^E}Q.prototype._update=function(y0){for(var W=this._w,w0=this._a|0,E=this._b|0,p0=this._c|0,T=this._d|0,f0=this._e|0,D=0;D<16;++D)W[D]=y0.readInt32BE(D*4);for(;D<80;++D)W[D]=U(W[D-3]^W[D-8]^W[D-14]^W[D-16]);for(var c0=0;c0<80;++c0){var C=~~(c0/20),h0=V(w0)+H(C,E,p0,T)+f0+W[c0]+$[C]|0;f0=T,T=p0,p0=B0(E),E=w0,w0=h0}this._a=w0+this._a|0,this._b=E+this._b|0,this._c=p0+this._c|0,this._d=T+this._d|0,this._e=f0+this._e|0},Q.prototype._hash=function(){var y0=Y.allocUnsafe(20);return y0.writeInt32BE(this._a|0,0),y0.writeInt32BE(this._b|0,4),y0.writeInt32BE(this._c|0,8),y0.writeInt32BE(this._d|0,12),y0.writeInt32BE(this._e|0,16),y0},K.exports=Q}}),H0=$Q({"node_modules/sha.js/sha256.js"(X,K){var x0=X0(),G=J0(),Y=YQ().Buffer,$=[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],Z=new Array(64);function Q(){this.init(),this._w=Z,G.call(this,64,56)}x0(Q,G),Q.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function U(w0,E,p0){return p0^w0&(E^p0)}function V(w0,E,p0){return w0&E|p0&(w0|E)}function B0(w0){return(w0>>>2|w0<<30)^(w0>>>13|w0<<19)^(w0>>>22|w0<<10)}function H(w0){return(w0>>>6|w0<<26)^(w0>>>11|w0<<21)^(w0>>>25|w0<<7)}function y0(w0){return(w0>>>7|w0<<25)^(w0>>>18|w0<<14)^w0>>>3}function W(w0){return(w0>>>17|w0<<15)^(w0>>>19|w0<<13)^w0>>>10}Q.prototype._update=function(w0){for(var E=this._w,p0=this._a|0,T=this._b|0,f0=this._c|0,D=this._d|0,c0=this._e|0,C=this._f|0,h0=this._g|0,L=this._h|0,d0=0;d0<16;++d0)E[d0]=w0.readInt32BE(d0*4);for(;d0<64;++d0)E[d0]=W(E[d0-2])+E[d0-7]+y0(E[d0-15])+E[d0-16]|0;for(var R=0;R<64;++R){var b0=L+H(c0)+U(c0,C,h0)+$[R]+E[R]|0,P=B0(p0)+V(p0,T,f0)|0;L=h0,h0=C,C=c0,c0=D+b0|0,D=f0,f0=T,T=p0,p0=b0+P|0}this._a=p0+this._a|0,this._b=T+this._b|0,this._c=f0+this._c|0,this._d=D+this._d|0,this._e=c0+this._e|0,this._f=C+this._f|0,this._g=h0+this._g|0,this._h=L+this._h|0},Q.prototype._hash=function(){var w0=Y.allocUnsafe(32);return w0.writeInt32BE(this._a,0),w0.writeInt32BE(this._b,4),w0.writeInt32BE(this._c,8),w0.writeInt32BE(this._d,12),w0.writeInt32BE(this._e,16),w0.writeInt32BE(this._f,20),w0.writeInt32BE(this._g,24),w0.writeInt32BE(this._h,28),w0},K.exports=Q}}),W0=$Q({"node_modules/sha.js/sha224.js"(X,K){var x0=X0(),G=H0(),Y=J0(),$=YQ().Buffer,Z=new Array(64);function Q(){this.init(),this._w=Z,Y.call(this,64,56)}x0(Q,G),Q.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},Q.prototype._hash=function(){var U=$.allocUnsafe(28);return U.writeInt32BE(this._a,0),U.writeInt32BE(this._b,4),U.writeInt32BE(this._c,8),U.writeInt32BE(this._d,12),U.writeInt32BE(this._e,16),U.writeInt32BE(this._f,20),U.writeInt32BE(this._g,24),U},K.exports=Q}}),E0=$Q({"node_modules/sha.js/sha512.js"(X,K){var x0=X0(),G=J0(),Y=YQ().Buffer,$=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],Z=new Array(160);function Q(){this.init(),this._w=Z,G.call(this,128,112)}x0(Q,G),Q.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function U(T,f0,D){return D^T&(f0^D)}function V(T,f0,D){return T&f0|D&(T|f0)}function B0(T,f0){return(T>>>28|f0<<4)^(f0>>>2|T<<30)^(f0>>>7|T<<25)}function H(T,f0){return(T>>>14|f0<<18)^(T>>>18|f0<<14)^(f0>>>9|T<<23)}function y0(T,f0){return(T>>>1|f0<<31)^(T>>>8|f0<<24)^T>>>7}function W(T,f0){return(T>>>1|f0<<31)^(T>>>8|f0<<24)^(T>>>7|f0<<25)}function w0(T,f0){return(T>>>19|f0<<13)^(f0>>>29|T<<3)^T>>>6}function E(T,f0){return(T>>>19|f0<<13)^(f0>>>29|T<<3)^(T>>>6|f0<<26)}function p0(T,f0){return T>>>0>>0?1:0}Q.prototype._update=function(T){for(var f0=this._w,D=this._ah|0,c0=this._bh|0,C=this._ch|0,h0=this._dh|0,L=this._eh|0,d0=this._fh|0,R=this._gh|0,b0=this._hh|0,P=this._al|0,l0=this._bl|0,z=this._cl|0,o0=this._dl|0,M=this._el|0,u0=this._fl|0,S=this._gl|0,n0=this._hl|0,v=0;v<32;v+=2)f0[v]=T.readInt32BE(v*4),f0[v+1]=T.readInt32BE(v*4+4);for(;v<160;v+=2){var s0=f0[v-30],I=f0[v-30+1],t0=y0(s0,I),m0=W(I,s0);s0=f0[v-4],I=f0[v-4+1];var a0=w0(s0,I),q=E(I,s0),e0=f0[v-14],r0=f0[v-14+1],i0=f0[v-32],j=f0[v-32+1],$$=m0+r0|0,k=t0+e0+p0($$,m0)|0;$$=$$+q|0,k=k+a0+p0($$,q)|0,$$=$$+j|0,k=k+i0+p0($$,j)|0,f0[v]=k,f0[v+1]=$$}for(var Q$=0;Q$<160;Q$+=2){k=f0[Q$],$$=f0[Q$+1];var g=V(D,c0,C),Y$=V(P,l0,z),_=B0(D,P),Z$=B0(P,D),N=H(L,M),G$=H(M,L),x=$[Q$],V$=$[Q$+1],B=U(L,d0,R),U$=U(M,u0,S),y=n0+G$|0,X$=b0+N+p0(y,n0)|0;y=y+U$|0,X$=X$+B+p0(y,U$)|0,y=y+V$|0,X$=X$+x+p0(y,V$)|0,y=y+$$|0,X$=X$+k+p0(y,$$)|0;var w=Z$+Y$|0,K$=_+g+p0(w,Z$)|0;b0=R,n0=S,R=d0,S=u0,d0=L,u0=M,M=o0+y|0,L=h0+X$+p0(M,o0)|0,h0=C,o0=z,C=c0,z=l0,c0=D,l0=P,P=y+w|0,D=X$+K$+p0(P,y)|0}this._al=this._al+P|0,this._bl=this._bl+l0|0,this._cl=this._cl+z|0,this._dl=this._dl+o0|0,this._el=this._el+M|0,this._fl=this._fl+u0|0,this._gl=this._gl+S|0,this._hl=this._hl+n0|0,this._ah=this._ah+D+p0(this._al,P)|0,this._bh=this._bh+c0+p0(this._bl,l0)|0,this._ch=this._ch+C+p0(this._cl,z)|0,this._dh=this._dh+h0+p0(this._dl,o0)|0,this._eh=this._eh+L+p0(this._el,M)|0,this._fh=this._fh+d0+p0(this._fl,u0)|0,this._gh=this._gh+R+p0(this._gl,S)|0,this._hh=this._hh+b0+p0(this._hl,n0)|0},Q.prototype._hash=function(){var T=Y.allocUnsafe(64);function f0(D,c0,C){T.writeInt32BE(D,C),T.writeInt32BE(c0,C+4)}return f0(this._ah,this._al,0),f0(this._bh,this._bl,8),f0(this._ch,this._cl,16),f0(this._dh,this._dl,24),f0(this._eh,this._el,32),f0(this._fh,this._fl,40),f0(this._gh,this._gl,48),f0(this._hh,this._hl,56),T},K.exports=Q}}),T0=$Q({"node_modules/sha.js/sha384.js"(X,K){var x0=X0(),G=E0(),Y=J0(),$=YQ().Buffer,Z=new Array(160);function Q(){this.init(),this._w=Z,Y.call(this,128,112)}x0(Q,G),Q.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},Q.prototype._hash=function(){var U=$.allocUnsafe(48);function V(B0,H,y0){U.writeInt32BE(B0,y0),U.writeInt32BE(H,y0+4)}return V(this._ah,this._al,0),V(this._bh,this._bl,8),V(this._ch,this._cl,16),V(this._dh,this._dl,24),V(this._eh,this._el,32),V(this._fh,this._fl,40),U},K.exports=Q}}),D0=$Q({"node_modules/sha.js/index.js"(x0,K){var x0=K.exports=function(G){G=G.toLowerCase();var Y=x0[G];if(!Y)throw new Error(G+" is not supported (we accept pull requests)");return new Y};x0.sha=F0(),x0.sha1=A0(),x0.sha224=W0(),x0.sha256=H0(),x0.sha384=T0(),x0.sha512=E0()}}),C0=$Q({"node_modules/cipher-base/index.js"(X,K){var x0=YQ().Buffer,G=X0();function Y($){h$.Transform.call(this),this.hashMode=typeof $=="string",this.hashMode?this[$]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}G(Y,h$.Transform),Y.prototype.update=function($,Z,Q){typeof $=="string"&&($=x0.from($,Z));var U=this._update($);return this.hashMode?this:(Q&&(U=this._toString(U,Q)),U)},Y.prototype.setAutoPadding=function(){},Y.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},Y.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},Y.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},Y.prototype._transform=function($,Z,Q){var U;try{this.hashMode?this._update($):this.push(this._update($))}catch(V){U=V}finally{Q(U)}},Y.prototype._flush=function($){var Z;try{this.push(this.__final())}catch(Q){Z=Q}$(Z)},Y.prototype._finalOrDigest=function($){var Z=this.__final()||x0.alloc(0);return $&&(Z=this._toString(Z,$,!0)),Z},Y.prototype._toString=function($,Z,Q){if(this._decoder||(this._decoder=new a$(Z),this._encoding=Z),this._encoding!==Z)throw new Error("can't switch encodings");var U=this._decoder.write($);return Q&&(U+=this._decoder.end()),U},K.exports=Y}}),L0=$Q({"node_modules/create-hash/browser.js"(X,K){const x0=function $(Z,Q){this._options=Q,this._hasher=new sY(Z,Q),this._finalized=!1};x0.prototype=Object.create(h$.Transform.prototype),x0.prototype.update=function $(Z,Q){return this._checkFinalized(),this._hasher.update(Z,Q),this},x0.prototype.digest=function $(Z,Q){return this._checkFinalized(),this._finalized=!0,this._hasher.digest(Z,Q)},x0.prototype._checkFinalized=function $(){if(this._finalized){var Z=new Error("Digest already called");throw Z.code="ERR_CRYPTO_HASH_FINALIZED",Z}},x0.prototype.copy=function $(){const Z=Object.create(x0.prototype);return Z._options=this._options,Z._hasher=this._hasher.copy(),Z._finalized=this._finalized,Z};const G={__proto__:h$.Transform.prototype,...x0.prototype,_transform($,Z,Q){this.update($,Z),Q&&Q()},_flush($){this.push(this.digest()),$()}},Y=["_events","_eventsCount","_final","_maxListeners","_maxListeners","_read","_undestroy","_writableState","_write","_writev","addListener","asIndexedPairs","closed","compose","constructor","cork","destroy","destroyed","drop","emit","end","errored","eventNames","every","filter","find","flatMap","forEach","getMaxListeners","hasOwnProperty","isPaused","isPrototypeOf","iterator","listenerCount","listeners","map","off","on","once","pause","pipe","prependListener","prependOnceListener","propertyIsEnumerable","push","rawListeners","read","readable","readableAborted","readableBuffer","readableDidRead","readableEncoding","readableEnded","readableFlowing","readableHighWaterMark","readableLength","readableObjectMode","reduce","removeAllListeners","removeListener","resume","setDefaultEncoding","setEncoding","setMaxListeners","some","take","toArray","toLocaleString","toString","uncork","unpipe","unshift","valueOf","wrap","writable","writableBuffer","writableCorked","writableEnded","writableFinished","writableHighWaterMark","writableLength","writableNeedDrain","writableObjectMode","write"];for(let $ of Y)Object.defineProperty(x0.prototype,$,{get(){return Object.setPrototypeOf(this,G),h$.Transform.call(this,this._options),this[$]},enumerable:!1,configurable:!0});K.exports=function $(Z){return new x0(Z)},K.exports.createHash=K.exports,K.exports.Hash=x0}}),R0=$Q({"node_modules/create-hmac/legacy.js"(X,K){var x0=X0(),G=YQ().Buffer,Y=C0(),$=G.alloc(128),Z=64;function Q(U,V){Y.call(this,"digest"),typeof V=="string"&&(V=G.from(V)),this._alg=U,this._key=V,V.length>Z?V=U(V):V.lengthW){var w0=H==="rmd160"?new Q:U(H);y0=w0.update(y0).digest()}else y0.lengthx0||Y!==Y)throw new TypeError("Bad key length")}}}),q0=$Q({"node_modules/pbkdf2/lib/default-encoding.js"(X,K){var x0;global.process&&global.process.browser?x0="utf-8":global.process&&global.process.version?(G=parseInt(process.version.split(".")[0].slice(1),10),x0=G>=6?"utf-8":"binary"):x0="utf-8";var G;K.exports=x0}}),j0=$Q({"node_modules/pbkdf2/lib/to-buffer.js"(X,K){var x0=YQ().Buffer;K.exports=function(G,Y,$){if(x0.isBuffer(G))return G;if(typeof G=="string")return x0.from(G,Y);if(ArrayBuffer.isView(G))return x0.from(G.buffer);throw new TypeError($+" must be a string, a Buffer, a typed array or a DataView")}}}),k0=$Q({"node_modules/pbkdf2/lib/sync-browser.js"(X,K){var x0=P0(),G=O0(),Y=D0(),$=YQ().Buffer,Z=v0(),Q=q0(),U=j0(),V=$.alloc(128),B0={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function H(w0,E,p0){var T=y0(w0),f0=w0==="sha512"||w0==="sha384"?128:64;E.length>f0?E=T(E):E.length>>0},X.writeUInt32BE=function(Y,$,Z){Y[0+Z]=$>>>24,Y[1+Z]=$>>>16&255,Y[2+Z]=$>>>8&255,Y[3+Z]=$&255},X.ip=function(Y,$,Z,Q){for(var U=0,V=0,B0=6;B0>=0;B0-=2){for(var H=0;H<=24;H+=8)U<<=1,U|=$>>>H+B0&1;for(var H=0;H<=24;H+=8)U<<=1,U|=Y>>>H+B0&1}for(var B0=6;B0>=0;B0-=2){for(var H=1;H<=25;H+=8)V<<=1,V|=$>>>H+B0&1;for(var H=1;H<=25;H+=8)V<<=1,V|=Y>>>H+B0&1}Z[Q+0]=U>>>0,Z[Q+1]=V>>>0},X.rip=function(Y,$,Z,Q){for(var U=0,V=0,B0=0;B0<4;B0++)for(var H=24;H>=0;H-=8)U<<=1,U|=$>>>H+B0&1,U<<=1,U|=Y>>>H+B0&1;for(var B0=4;B0<8;B0++)for(var H=24;H>=0;H-=8)V<<=1,V|=$>>>H+B0&1,V<<=1,V|=Y>>>H+B0&1;Z[Q+0]=U>>>0,Z[Q+1]=V>>>0},X.pc1=function(Y,$,Z,Q){for(var U=0,V=0,B0=7;B0>=5;B0--){for(var H=0;H<=24;H+=8)U<<=1,U|=$>>H+B0&1;for(var H=0;H<=24;H+=8)U<<=1,U|=Y>>H+B0&1}for(var H=0;H<=24;H+=8)U<<=1,U|=$>>H+B0&1;for(var B0=1;B0<=3;B0++){for(var H=0;H<=24;H+=8)V<<=1,V|=$>>H+B0&1;for(var H=0;H<=24;H+=8)V<<=1,V|=Y>>H+B0&1}for(var H=0;H<=24;H+=8)V<<=1,V|=Y>>H+B0&1;Z[Q+0]=U>>>0,Z[Q+1]=V>>>0},X.r28shl=function(Y,$){return Y<<$&268435455|Y>>>28-$};var K=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];X.pc2=function(Y,$,Z,Q){for(var U=0,V=0,B0=K.length>>>1,H=0;H>>K[H]&1;for(var H=B0;H>>K[H]&1;Z[Q+0]=U>>>0,Z[Q+1]=V>>>0},X.expand=function(Y,$,Z){var Q=0,U=0;Q=(Y&1)<<5|Y>>>27;for(var V=23;V>=15;V-=4)Q<<=6,Q|=Y>>>V&63;for(var V=11;V>=3;V-=4)U|=Y>>>V&63,U<<=6;U|=(Y&31)<<1|Y>>>31,$[Z+0]=Q>>>0,$[Z+1]=U>>>0};var x0=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];X.substitute=function(Y,$){for(var Z=0,Q=0;Q<4;Q++){var U=Y>>>18-Q*6&63,V=x0[Q*64+U];Z<<=4,Z|=V}for(var Q=0;Q<4;Q++){var U=$>>>18-Q*6&63,V=x0[256+Q*64+U];Z<<=4,Z|=V}return Z>>>0};var G=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];X.permute=function(Y){for(var $=0,Z=0;Z>>G[Z]&1;return $>>>0},X.padSplit=function(Y,$,Z){for(var Q=Y.toString(2);Q.length<$;)Q="0"+Q;for(var U=[],V=0;V<$;V+=Z)U.push(Q.slice(V,V+Z));return U.join(" ")}}}),N0=$Q({"node_modules/minimalistic-assert/index.js"(X,K){K.exports=x0;function x0(G,Y){if(!G)throw new Error(Y||"Assertion failed")}x0.equal=function(G,Y,$){if(G!=Y)throw new Error($||"Assertion failed: "+G+" != "+Y)}}}),VQ=$Q({"node_modules/des.js/lib/des/cipher.js"(X,K){var x0=N0();function G(Y){this.options=Y,this.type=this.options.type,this.blockSize=8,this._init(),this.buffer=new Array(this.blockSize),this.bufferOff=0}K.exports=G,G.prototype._init=function(){},G.prototype.update=function(Y){return Y.length===0?[]:this.type==="decrypt"?this._updateDecrypt(Y):this._updateEncrypt(Y)},G.prototype._buffer=function(Y,$){for(var Z=Math.min(this.buffer.length-this.bufferOff,Y.length-$),Q=0;Q0;Q--)$+=this._buffer(Y,$),Z+=this._flushBuffer(U,Z);return $+=this._buffer(Y,$),U},G.prototype.final=function(Y){var $;Y&&($=this.update(Y));var Z;return this.type==="encrypt"?Z=this._finalEncrypt():Z=this._finalDecrypt(),$?$.concat(Z):Z},G.prototype._pad=function(Y,$){if($===0)return!1;for(;$>>1];H=Y.r28shl(H,w0),y0=Y.r28shl(y0,w0),Y.pc2(H,y0,V.keys,W)}},Q.prototype._update=function(V,B0,H,y0){var W=this._desState,w0=Y.readUInt32BE(V,B0),E=Y.readUInt32BE(V,B0+4);Y.ip(w0,E,W.tmp,0),w0=W.tmp[0],E=W.tmp[1],this.type==="encrypt"?this._encrypt(W,w0,E,W.tmp,0):this._decrypt(W,w0,E,W.tmp,0),w0=W.tmp[0],E=W.tmp[1],Y.writeUInt32BE(H,w0,y0),Y.writeUInt32BE(H,E,y0+4)},Q.prototype._pad=function(V,B0){for(var H=V.length-B0,y0=B0;y0>>0,w0=C}Y.rip(E,w0,y0,W)},Q.prototype._decrypt=function(V,B0,H,y0,W){for(var w0=H,E=B0,p0=V.keys.length-2;p0>=0;p0-=2){var T=V.keys[p0],f0=V.keys[p0+1];Y.expand(w0,V.tmp,0),T^=V.tmp[0],f0^=V.tmp[1];var D=Y.substitute(T,f0),c0=Y.permute(D),C=w0;w0=(E^c0)>>>0,E=C}Y.rip(w0,E,y0,W)}}}),XQ=$Q({"node_modules/des.js/lib/des/cbc.js"(X){var K=N0(),x0=X0(),G={};function Y(Z){K.equal(Z.length,8,"Invalid IV length"),this.iv=new Array(8);for(var Q=0;Q>U%8,Y._prev=G(Y._prev,Z?H:y0);return B0}function G(Y,$){var Z=Y.length,Q=-1,U=K.allocUnsafe(Y.length);for(Y=K.concat([Y,K.from([$])]);++Q>7;return U}X.encrypt=function(Y,$,Z){for(var Q=$.length,U=K.allocUnsafe(Q),V=-1;++V>>24]^E[D>>>16&255]^p0[c0>>>8&255]^T[C&255]^B0[b0++],L=w0[D>>>24]^E[c0>>>16&255]^p0[C>>>8&255]^T[f0&255]^B0[b0++],d0=w0[c0>>>24]^E[C>>>16&255]^p0[f0>>>8&255]^T[D&255]^B0[b0++],R=w0[C>>>24]^E[f0>>>16&255]^p0[D>>>8&255]^T[c0&255]^B0[b0++],f0=h0,D=L,c0=d0,C=R;return h0=(y0[f0>>>24]<<24|y0[D>>>16&255]<<16|y0[c0>>>8&255]<<8|y0[C&255])^B0[b0++],L=(y0[D>>>24]<<24|y0[c0>>>16&255]<<16|y0[C>>>8&255]<<8|y0[f0&255])^B0[b0++],d0=(y0[c0>>>24]<<24|y0[C>>>16&255]<<16|y0[f0>>>8&255]<<8|y0[D&255])^B0[b0++],R=(y0[C>>>24]<<24|y0[f0>>>16&255]<<16|y0[D>>>8&255]<<8|y0[c0&255])^B0[b0++],h0=h0>>>0,L=L>>>0,d0=d0>>>0,R=R>>>0,[h0,L,d0,R]}var Z=[0,1,2,4,8,16,32,64,128,27,54],Q=function(){for(var V=new Array(256),B0=0;B0<256;B0++)B0<128?V[B0]=B0<<1:V[B0]=B0<<1^283;for(var H=[],y0=[],W=[[],[],[],[]],w0=[[],[],[],[]],E=0,p0=0,T=0;T<256;++T){var f0=p0^p0<<1^p0<<2^p0<<3^p0<<4;f0=f0>>>8^f0&255^99,H[E]=f0,y0[f0]=E;var D=V[E],c0=V[D],C=V[c0],h0=V[f0]*257^f0*16843008;W[0][E]=h0<<24|h0>>>8,W[1][E]=h0<<16|h0>>>16,W[2][E]=h0<<8|h0>>>24,W[3][E]=h0,h0=C*16843009^c0*65537^D*257^E*16843008,w0[0][f0]=h0<<24|h0>>>8,w0[1][f0]=h0<<16|h0>>>16,w0[2][f0]=h0<<8|h0>>>24,w0[3][f0]=h0,E===0?E=p0=1:(E=D^V[V[V[C^D]]],p0^=V[V[p0]])}return{SBOX:H,INV_SBOX:y0,SUB_MIX:W,INV_SUB_MIX:w0}}();function U(V){this._key=G(V),this._reset()}U.blockSize=16,U.keySize=32,U.prototype.blockSize=U.blockSize,U.prototype.keySize=U.keySize,U.prototype._reset=function(){for(var V=this._key,B0=V.length,H=B0+6,y0=(H+1)*4,W=[],w0=0;w0>>24,E=Q.SBOX[E>>>24]<<24|Q.SBOX[E>>>16&255]<<16|Q.SBOX[E>>>8&255]<<8|Q.SBOX[E&255],E^=Z[w0/B0|0]<<24):B0>6&&w0%B0===4&&(E=Q.SBOX[E>>>24]<<24|Q.SBOX[E>>>16&255]<<16|Q.SBOX[E>>>8&255]<<8|Q.SBOX[E&255]),W[w0]=W[w0-B0]^E}for(var p0=[],T=0;T>>24]]^Q.INV_SUB_MIX[1][Q.SBOX[D>>>16&255]]^Q.INV_SUB_MIX[2][Q.SBOX[D>>>8&255]]^Q.INV_SUB_MIX[3][Q.SBOX[D&255]]}this._nRounds=H,this._keySchedule=W,this._invKeySchedule=p0},U.prototype.encryptBlockRaw=function(V){return V=G(V),$(V,this._keySchedule,Q.SUB_MIX,Q.SBOX,this._nRounds)},U.prototype.encryptBlock=function(V){var B0=this.encryptBlockRaw(V),H=x0.allocUnsafe(16);return H.writeUInt32BE(B0[0],0),H.writeUInt32BE(B0[1],4),H.writeUInt32BE(B0[2],8),H.writeUInt32BE(B0[3],12),H},U.prototype.decryptBlock=function(V){V=G(V);var B0=V[1];V[1]=V[3],V[3]=B0;var H=$(V,this._invKeySchedule,Q.INV_SUB_MIX,Q.INV_SBOX,this._nRounds),y0=x0.allocUnsafe(16);return y0.writeUInt32BE(H[0],0),y0.writeUInt32BE(H[3],4),y0.writeUInt32BE(H[2],8),y0.writeUInt32BE(H[1],12),y0},U.prototype.scrub=function(){Y(this._keySchedule),Y(this._invKeySchedule),Y(this._key)},K.exports.AES=U}}),PQ=$Q({"node_modules/browserify-aes/ghash.js"(X,K){var x0=YQ().Buffer,G=x0.alloc(16,0);function Y(Q){return[Q.readUInt32BE(0),Q.readUInt32BE(4),Q.readUInt32BE(8),Q.readUInt32BE(12)]}function $(Q){var U=x0.allocUnsafe(16);return U.writeUInt32BE(Q[0]>>>0,0),U.writeUInt32BE(Q[1]>>>0,4),U.writeUInt32BE(Q[2]>>>0,8),U.writeUInt32BE(Q[3]>>>0,12),U}function Z(Q){this.h=Q,this.state=x0.alloc(16,0),this.cache=x0.allocUnsafe(0)}Z.prototype.ghash=function(Q){for(var U=-1;++U0;V--)Q[V]=Q[V]>>>1|(Q[V-1]&1)<<31;Q[0]=Q[0]>>>1,H&&(Q[0]=Q[0]^225<<24)}this.state=$(U)},Z.prototype.update=function(Q){this.cache=x0.concat([this.cache,Q]);for(var U;this.cache.length>=16;)U=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(U)},Z.prototype.final=function(Q,U){return this.cache.length&&this.ghash(x0.concat([this.cache,G],16)),this.ghash($([0,Q,0,U])),this.state},K.exports=Z}}),zQ=$Q({"node_modules/browserify-aes/authCipher.js"(X,K){var x0=RQ(),G=YQ().Buffer,Y=C0(),$=X0(),Z=PQ(),Q=FQ(),U=DQ();function V(y0,W){var w0=0;y0.length!==W.length&&w0++;for(var E=Math.min(y0.length,W.length),p0=0;p00||U>0;){var W=new G;W.update(y0),W.update($),Z&&W.update(Z),y0=W.digest();var w0=0;if(V>0){var E=B0.length-V;w0=Math.min(V,y0.length),y0.copy(B0,E,0,w0),V-=w0}if(w00){var p0=H.length-U,T=Math.min(U,y0.length-w0);y0.copy(H,p0,w0,w0+T),U-=T}}return y0.fill(0),{key:B0,iv:H}}K.exports=Y}}),vQ=$Q({"node_modules/browserify-aes/encrypter.js"(X){var K=LQ(),x0=zQ(),G=YQ().Buffer,Y=MQ(),$=C0(),Z=RQ(),Q=SQ(),U=X0();function V(w0,E,p0){$.call(this),this._cache=new H,this._cipher=new Z.AES(E),this._prev=G.from(p0),this._mode=w0,this._autopadding=!0}U(V,$),V.prototype._update=function(w0){this._cache.add(w0);for(var E,p0,T=[];E=this._cache.get();)p0=this._mode.encrypt(this,E),T.push(p0);return G.concat(T)};var B0=G.alloc(16,16);V.prototype._final=function(){var w0=this._cache.flush();if(this._autopadding)return w0=this._mode.encrypt(this,w0),this._cipher.scrub(),w0;if(!w0.equals(B0))throw this._cipher.scrub(),new Error("data not multiple of block length")},V.prototype.setAutoPadding=function(w0){return this._autopadding=!!w0,this};function H(){this.cache=G.allocUnsafe(0)}H.prototype.add=function(w0){this.cache=G.concat([this.cache,w0])},H.prototype.get=function(){if(this.cache.length>15){var w0=this.cache.slice(0,16);return this.cache=this.cache.slice(16),w0}return null},H.prototype.flush=function(){for(var w0=16-this.cache.length,E=G.allocUnsafe(w0),p0=-1;++p016)return E=this.cache.slice(0,16),this.cache=this.cache.slice(16),E}else if(this.cache.length>=16)return E=this.cache.slice(0,16),this.cache=this.cache.slice(16),E;return null},B0.prototype.flush=function(){if(this.cache.length)return this.cache};function H(w0){var E=w0[15];if(E<1||E>16)throw new Error("unable to decrypt data");for(var p0=-1;++p00?l0:z},Z.min=function(l0,z){return l0.cmp(z)<0?l0:z},Z.prototype._init=function(l0,z,o0){if(typeof l0=="number")return this._initNumber(l0,z,o0);if(typeof l0=="object")return this._initArray(l0,z,o0);z==="hex"&&(z=16),Y(z===(z|0)&&z>=2&&z<=36),l0=l0.toString().replace(/\s+/g,"");var M=0;l0[0]==="-"&&(M++,this.negative=1),M=0;M-=3)S=l0[M]|l0[M-1]<<8|l0[M-2]<<16,this.words[u0]|=S<>>26-n0&67108863,n0+=24,n0>=26&&(n0-=26,u0++);else if(o0==="le")for(M=0,u0=0;M>>26-n0&67108863,n0+=24,n0>=26&&(n0-=26,u0++);return this.strip()};function U(l0,z){var o0=l0.charCodeAt(z);return o0>=65&&o0<=70?o0-55:o0>=97&&o0<=102?o0-87:o0-48&15}function V(l0,z,o0){var M=U(l0,o0);return o0-1>=z&&(M|=U(l0,o0-1)<<4),M}Z.prototype._parseHex=function(l0,z,o0){this.length=Math.ceil((l0.length-z)/6),this.words=new Array(this.length);for(var M=0;M=z;M-=2)n0=V(l0,z,M)<=18?(u0-=18,S+=1,this.words[S]|=n0>>>26):u0+=8;else{var v=l0.length-z;for(M=v%2===0?z+1:z;M=18?(u0-=18,S+=1,this.words[S]|=n0>>>26):u0+=8}this.strip()};function B0(l0,z,o0,M){for(var u0=0,S=Math.min(l0.length,o0),n0=z;n0=49?u0+=v-49+10:v>=17?u0+=v-17+10:u0+=v}return u0}Z.prototype._parseBase=function(l0,z,o0){this.words=[0],this.length=1;for(var M=0,u0=1;u0<=67108863;u0*=z)M++;M--,u0=u0/z|0;for(var S=l0.length-o0,n0=S%M,v=Math.min(S,S-n0)+o0,s0=0,I=o0;I1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},Z.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},Z.prototype.inspect=function(){return(this.red?""};var H=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y0=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],W=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];Z.prototype.toString=function(l0,z){l0=l0||10,z=z|0||1;var o0;if(l0===16||l0==="hex"){o0="";for(var M=0,u0=0,S=0;S>>24-M&16777215,u0!==0||S!==this.length-1?o0=H[6-v.length]+v+o0:o0=v+o0,M+=2,M>=26&&(M-=26,S--)}for(u0!==0&&(o0=u0.toString(16)+o0);o0.length%z!==0;)o0="0"+o0;return this.negative!==0&&(o0="-"+o0),o0}if(l0===(l0|0)&&l0>=2&&l0<=36){var s0=y0[l0],I=W[l0];o0="";var t0=this.clone();for(t0.negative=0;!t0.isZero();){var m0=t0.modn(I).toString(l0);t0=t0.idivn(I),t0.isZero()?o0=m0+o0:o0=H[s0-m0.length]+m0+o0}for(this.isZero()&&(o0="0"+o0);o0.length%z!==0;)o0="0"+o0;return this.negative!==0&&(o0="-"+o0),o0}Y(!1,"Base should be between 2 and 36")},Z.prototype.toNumber=function(){var l0=this.words[0];return this.length===2?l0+=this.words[1]*67108864:this.length===3&&this.words[2]===1?l0+=4503599627370496+this.words[1]*67108864:this.length>2&&Y(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-l0:l0},Z.prototype.toJSON=function(){return this.toString(16)},Z.prototype.toBuffer=function(l0,z){return Y(typeof Q<"u"),this.toArrayLike(Q,l0,z)},Z.prototype.toArray=function(l0,z){return this.toArrayLike(Array,l0,z)},Z.prototype.toArrayLike=function(l0,z,o0){var M=this.byteLength(),u0=o0||Math.max(1,M);Y(M<=u0,"byte array longer than desired length"),Y(u0>0,"Requested array length <= 0"),this.strip();var S=z==="le",n0=new l0(u0),v,s0,I=this.clone();if(S){for(s0=0;!I.isZero();s0++)v=I.andln(255),I.iushrn(8),n0[s0]=v;for(;s0=4096&&(o0+=13,z>>>=13),z>=64&&(o0+=7,z>>>=7),z>=8&&(o0+=4,z>>>=4),z>=2&&(o0+=2,z>>>=2),o0+z},Z.prototype._zeroBits=function(l0){if(l0===0)return 26;var z=l0,o0=0;return(z&8191)===0&&(o0+=13,z>>>=13),(z&127)===0&&(o0+=7,z>>>=7),(z&15)===0&&(o0+=4,z>>>=4),(z&3)===0&&(o0+=2,z>>>=2),(z&1)===0&&o0++,o0},Z.prototype.bitLength=function(){var l0=this.words[this.length-1],z=this._countBits(l0);return(this.length-1)*26+z};function w0(l0){for(var z=new Array(l0.bitLength()),o0=0;o0>>u0}return z}Z.prototype.zeroBits=function(){if(this.isZero())return 0;for(var l0=0,z=0;zl0.length?this.clone().ior(l0):l0.clone().ior(this)},Z.prototype.uor=function(l0){return this.length>l0.length?this.clone().iuor(l0):l0.clone().iuor(this)},Z.prototype.iuand=function(l0){var z;this.length>l0.length?z=l0:z=this;for(var o0=0;o0l0.length?this.clone().iand(l0):l0.clone().iand(this)},Z.prototype.uand=function(l0){return this.length>l0.length?this.clone().iuand(l0):l0.clone().iuand(this)},Z.prototype.iuxor=function(l0){var z,o0;this.length>l0.length?(z=this,o0=l0):(z=l0,o0=this);for(var M=0;Ml0.length?this.clone().ixor(l0):l0.clone().ixor(this)},Z.prototype.uxor=function(l0){return this.length>l0.length?this.clone().iuxor(l0):l0.clone().iuxor(this)},Z.prototype.inotn=function(l0){Y(typeof l0=="number"&&l0>=0);var z=Math.ceil(l0/26)|0,o0=l0%26;this._expand(z),o0>0&&z--;for(var M=0;M0&&(this.words[M]=~this.words[M]&67108863>>26-o0),this.strip()},Z.prototype.notn=function(l0){return this.clone().inotn(l0)},Z.prototype.setn=function(l0,z){Y(typeof l0=="number"&&l0>=0);var o0=l0/26|0,M=l0%26;return this._expand(o0+1),z?this.words[o0]=this.words[o0]|1<l0.length?(o0=this,M=l0):(o0=l0,M=this);for(var u0=0,S=0;S>>26;for(;u0!==0&&S>>26;if(this.length=o0.length,u0!==0)this.words[this.length]=u0,this.length++;else if(o0!==this)for(;Sl0.length?this.clone().iadd(l0):l0.clone().iadd(this)},Z.prototype.isub=function(l0){if(l0.negative!==0){l0.negative=0;var z=this.iadd(l0);return l0.negative=1,z._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(l0),this.negative=1,this._normSign();var o0=this.cmp(l0);if(o0===0)return this.negative=0,this.length=1,this.words[0]=0,this;var M,u0;o0>0?(M=this,u0=l0):(M=l0,u0=this);for(var S=0,n0=0;n0>26,this.words[n0]=z&67108863;for(;S!==0&&n0>26,this.words[n0]=z&67108863;if(S===0&&n0>>26,m0=s0&67108863,a0=Math.min(I,z.length-1),q=Math.max(0,I-l0.length+1);q<=a0;q++){var e0=I-q|0;u0=l0.words[e0]|0,S=z.words[q]|0,n0=u0*S+m0,t0+=n0/67108864|0,m0=n0&67108863}o0.words[I]=m0|0,s0=t0|0}return s0!==0?o0.words[I]=s0|0:o0.length--,o0.strip()}var p0=function(l0,z,o0){var M=l0.words,u0=z.words,S=o0.words,n0=0,v,s0,I,t0=M[0]|0,m0=t0&8191,a0=t0>>>13,q=M[1]|0,e0=q&8191,r0=q>>>13,i0=M[2]|0,j=i0&8191,$$=i0>>>13,k=M[3]|0,Q$=k&8191,g=k>>>13,Y$=M[4]|0,_=Y$&8191,Z$=Y$>>>13,N=M[5]|0,G$=N&8191,x=N>>>13,V$=M[6]|0,B=V$&8191,U$=V$>>>13,y=M[7]|0,X$=y&8191,w=y>>>13,K$=M[8]|0,p=K$&8191,I$=K$>>>13,f=M[9]|0,O$=f&8191,c=f>>>13,J$=u0[0]|0,h=J$&8191,F$=J$>>>13,d=u0[1]|0,A$=d&8191,b=d>>>13,H$=u0[2]|0,l=H$&8191,W$=H$>>>13,o=u0[3]|0,E$=o&8191,u=o>>>13,T$=u0[4]|0,n=T$&8191,D$=T$>>>13,s=u0[5]|0,C$=s&8191,t=s>>>13,L$=u0[6]|0,m=L$&8191,R$=L$>>>13,a=u0[7]|0,P$=a&8191,O=a>>>13,z$=u0[8]|0,e=z$&8191,M$=z$>>>13,J=u0[9]|0,S$=J&8191,F=J>>>13;o0.negative=l0.negative^z.negative,o0.length=19,v=Math.imul(m0,h),s0=Math.imul(m0,F$),s0=s0+Math.imul(a0,h)|0,I=Math.imul(a0,F$);var v$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(v$>>>26)|0,v$&=67108863,v=Math.imul(e0,h),s0=Math.imul(e0,F$),s0=s0+Math.imul(r0,h)|0,I=Math.imul(r0,F$),v=v+Math.imul(m0,A$)|0,s0=s0+Math.imul(m0,b)|0,s0=s0+Math.imul(a0,A$)|0,I=I+Math.imul(a0,b)|0;var r=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(r>>>26)|0,r&=67108863,v=Math.imul(j,h),s0=Math.imul(j,F$),s0=s0+Math.imul($$,h)|0,I=Math.imul($$,F$),v=v+Math.imul(e0,A$)|0,s0=s0+Math.imul(e0,b)|0,s0=s0+Math.imul(r0,A$)|0,I=I+Math.imul(r0,b)|0,v=v+Math.imul(m0,l)|0,s0=s0+Math.imul(m0,W$)|0,s0=s0+Math.imul(a0,l)|0,I=I+Math.imul(a0,W$)|0;var q$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(q$>>>26)|0,q$&=67108863,v=Math.imul(Q$,h),s0=Math.imul(Q$,F$),s0=s0+Math.imul(g,h)|0,I=Math.imul(g,F$),v=v+Math.imul(j,A$)|0,s0=s0+Math.imul(j,b)|0,s0=s0+Math.imul($$,A$)|0,I=I+Math.imul($$,b)|0,v=v+Math.imul(e0,l)|0,s0=s0+Math.imul(e0,W$)|0,s0=s0+Math.imul(r0,l)|0,I=I+Math.imul(r0,W$)|0,v=v+Math.imul(m0,E$)|0,s0=s0+Math.imul(m0,u)|0,s0=s0+Math.imul(a0,E$)|0,I=I+Math.imul(a0,u)|0;var i=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(i>>>26)|0,i&=67108863,v=Math.imul(_,h),s0=Math.imul(_,F$),s0=s0+Math.imul(Z$,h)|0,I=Math.imul(Z$,F$),v=v+Math.imul(Q$,A$)|0,s0=s0+Math.imul(Q$,b)|0,s0=s0+Math.imul(g,A$)|0,I=I+Math.imul(g,b)|0,v=v+Math.imul(j,l)|0,s0=s0+Math.imul(j,W$)|0,s0=s0+Math.imul($$,l)|0,I=I+Math.imul($$,W$)|0,v=v+Math.imul(e0,E$)|0,s0=s0+Math.imul(e0,u)|0,s0=s0+Math.imul(r0,E$)|0,I=I+Math.imul(r0,u)|0,v=v+Math.imul(m0,n)|0,s0=s0+Math.imul(m0,D$)|0,s0=s0+Math.imul(a0,n)|0,I=I+Math.imul(a0,D$)|0;var j$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(j$>>>26)|0,j$&=67108863,v=Math.imul(G$,h),s0=Math.imul(G$,F$),s0=s0+Math.imul(x,h)|0,I=Math.imul(x,F$),v=v+Math.imul(_,A$)|0,s0=s0+Math.imul(_,b)|0,s0=s0+Math.imul(Z$,A$)|0,I=I+Math.imul(Z$,b)|0,v=v+Math.imul(Q$,l)|0,s0=s0+Math.imul(Q$,W$)|0,s0=s0+Math.imul(g,l)|0,I=I+Math.imul(g,W$)|0,v=v+Math.imul(j,E$)|0,s0=s0+Math.imul(j,u)|0,s0=s0+Math.imul($$,E$)|0,I=I+Math.imul($$,u)|0,v=v+Math.imul(e0,n)|0,s0=s0+Math.imul(e0,D$)|0,s0=s0+Math.imul(r0,n)|0,I=I+Math.imul(r0,D$)|0,v=v+Math.imul(m0,C$)|0,s0=s0+Math.imul(m0,t)|0,s0=s0+Math.imul(a0,C$)|0,I=I+Math.imul(a0,t)|0;var k$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(k$>>>26)|0,k$&=67108863,v=Math.imul(B,h),s0=Math.imul(B,F$),s0=s0+Math.imul(U$,h)|0,I=Math.imul(U$,F$),v=v+Math.imul(G$,A$)|0,s0=s0+Math.imul(G$,b)|0,s0=s0+Math.imul(x,A$)|0,I=I+Math.imul(x,b)|0,v=v+Math.imul(_,l)|0,s0=s0+Math.imul(_,W$)|0,s0=s0+Math.imul(Z$,l)|0,I=I+Math.imul(Z$,W$)|0,v=v+Math.imul(Q$,E$)|0,s0=s0+Math.imul(Q$,u)|0,s0=s0+Math.imul(g,E$)|0,I=I+Math.imul(g,u)|0,v=v+Math.imul(j,n)|0,s0=s0+Math.imul(j,D$)|0,s0=s0+Math.imul($$,n)|0,I=I+Math.imul($$,D$)|0,v=v+Math.imul(e0,C$)|0,s0=s0+Math.imul(e0,t)|0,s0=s0+Math.imul(r0,C$)|0,I=I+Math.imul(r0,t)|0,v=v+Math.imul(m0,m)|0,s0=s0+Math.imul(m0,R$)|0,s0=s0+Math.imul(a0,m)|0,I=I+Math.imul(a0,R$)|0;var g$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(g$>>>26)|0,g$&=67108863,v=Math.imul(X$,h),s0=Math.imul(X$,F$),s0=s0+Math.imul(w,h)|0,I=Math.imul(w,F$),v=v+Math.imul(B,A$)|0,s0=s0+Math.imul(B,b)|0,s0=s0+Math.imul(U$,A$)|0,I=I+Math.imul(U$,b)|0,v=v+Math.imul(G$,l)|0,s0=s0+Math.imul(G$,W$)|0,s0=s0+Math.imul(x,l)|0,I=I+Math.imul(x,W$)|0,v=v+Math.imul(_,E$)|0,s0=s0+Math.imul(_,u)|0,s0=s0+Math.imul(Z$,E$)|0,I=I+Math.imul(Z$,u)|0,v=v+Math.imul(Q$,n)|0,s0=s0+Math.imul(Q$,D$)|0,s0=s0+Math.imul(g,n)|0,I=I+Math.imul(g,D$)|0,v=v+Math.imul(j,C$)|0,s0=s0+Math.imul(j,t)|0,s0=s0+Math.imul($$,C$)|0,I=I+Math.imul($$,t)|0,v=v+Math.imul(e0,m)|0,s0=s0+Math.imul(e0,R$)|0,s0=s0+Math.imul(r0,m)|0,I=I+Math.imul(r0,R$)|0,v=v+Math.imul(m0,P$)|0,s0=s0+Math.imul(m0,O)|0,s0=s0+Math.imul(a0,P$)|0,I=I+Math.imul(a0,O)|0;var _$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(_$>>>26)|0,_$&=67108863,v=Math.imul(p,h),s0=Math.imul(p,F$),s0=s0+Math.imul(I$,h)|0,I=Math.imul(I$,F$),v=v+Math.imul(X$,A$)|0,s0=s0+Math.imul(X$,b)|0,s0=s0+Math.imul(w,A$)|0,I=I+Math.imul(w,b)|0,v=v+Math.imul(B,l)|0,s0=s0+Math.imul(B,W$)|0,s0=s0+Math.imul(U$,l)|0,I=I+Math.imul(U$,W$)|0,v=v+Math.imul(G$,E$)|0,s0=s0+Math.imul(G$,u)|0,s0=s0+Math.imul(x,E$)|0,I=I+Math.imul(x,u)|0,v=v+Math.imul(_,n)|0,s0=s0+Math.imul(_,D$)|0,s0=s0+Math.imul(Z$,n)|0,I=I+Math.imul(Z$,D$)|0,v=v+Math.imul(Q$,C$)|0,s0=s0+Math.imul(Q$,t)|0,s0=s0+Math.imul(g,C$)|0,I=I+Math.imul(g,t)|0,v=v+Math.imul(j,m)|0,s0=s0+Math.imul(j,R$)|0,s0=s0+Math.imul($$,m)|0,I=I+Math.imul($$,R$)|0,v=v+Math.imul(e0,P$)|0,s0=s0+Math.imul(e0,O)|0,s0=s0+Math.imul(r0,P$)|0,I=I+Math.imul(r0,O)|0,v=v+Math.imul(m0,e)|0,s0=s0+Math.imul(m0,M$)|0,s0=s0+Math.imul(a0,e)|0,I=I+Math.imul(a0,M$)|0;var N$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(N$>>>26)|0,N$&=67108863,v=Math.imul(O$,h),s0=Math.imul(O$,F$),s0=s0+Math.imul(c,h)|0,I=Math.imul(c,F$),v=v+Math.imul(p,A$)|0,s0=s0+Math.imul(p,b)|0,s0=s0+Math.imul(I$,A$)|0,I=I+Math.imul(I$,b)|0,v=v+Math.imul(X$,l)|0,s0=s0+Math.imul(X$,W$)|0,s0=s0+Math.imul(w,l)|0,I=I+Math.imul(w,W$)|0,v=v+Math.imul(B,E$)|0,s0=s0+Math.imul(B,u)|0,s0=s0+Math.imul(U$,E$)|0,I=I+Math.imul(U$,u)|0,v=v+Math.imul(G$,n)|0,s0=s0+Math.imul(G$,D$)|0,s0=s0+Math.imul(x,n)|0,I=I+Math.imul(x,D$)|0,v=v+Math.imul(_,C$)|0,s0=s0+Math.imul(_,t)|0,s0=s0+Math.imul(Z$,C$)|0,I=I+Math.imul(Z$,t)|0,v=v+Math.imul(Q$,m)|0,s0=s0+Math.imul(Q$,R$)|0,s0=s0+Math.imul(g,m)|0,I=I+Math.imul(g,R$)|0,v=v+Math.imul(j,P$)|0,s0=s0+Math.imul(j,O)|0,s0=s0+Math.imul($$,P$)|0,I=I+Math.imul($$,O)|0,v=v+Math.imul(e0,e)|0,s0=s0+Math.imul(e0,M$)|0,s0=s0+Math.imul(r0,e)|0,I=I+Math.imul(r0,M$)|0,v=v+Math.imul(m0,S$)|0,s0=s0+Math.imul(m0,F)|0,s0=s0+Math.imul(a0,S$)|0,I=I+Math.imul(a0,F)|0;var $0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+($0>>>26)|0,$0&=67108863,v=Math.imul(O$,A$),s0=Math.imul(O$,b),s0=s0+Math.imul(c,A$)|0,I=Math.imul(c,b),v=v+Math.imul(p,l)|0,s0=s0+Math.imul(p,W$)|0,s0=s0+Math.imul(I$,l)|0,I=I+Math.imul(I$,W$)|0,v=v+Math.imul(X$,E$)|0,s0=s0+Math.imul(X$,u)|0,s0=s0+Math.imul(w,E$)|0,I=I+Math.imul(w,u)|0,v=v+Math.imul(B,n)|0,s0=s0+Math.imul(B,D$)|0,s0=s0+Math.imul(U$,n)|0,I=I+Math.imul(U$,D$)|0,v=v+Math.imul(G$,C$)|0,s0=s0+Math.imul(G$,t)|0,s0=s0+Math.imul(x,C$)|0,I=I+Math.imul(x,t)|0,v=v+Math.imul(_,m)|0,s0=s0+Math.imul(_,R$)|0,s0=s0+Math.imul(Z$,m)|0,I=I+Math.imul(Z$,R$)|0,v=v+Math.imul(Q$,P$)|0,s0=s0+Math.imul(Q$,O)|0,s0=s0+Math.imul(g,P$)|0,I=I+Math.imul(g,O)|0,v=v+Math.imul(j,e)|0,s0=s0+Math.imul(j,M$)|0,s0=s0+Math.imul($$,e)|0,I=I+Math.imul($$,M$)|0,v=v+Math.imul(e0,S$)|0,s0=s0+Math.imul(e0,F)|0,s0=s0+Math.imul(r0,S$)|0,I=I+Math.imul(r0,F)|0;var x$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(x$>>>26)|0,x$&=67108863,v=Math.imul(O$,l),s0=Math.imul(O$,W$),s0=s0+Math.imul(c,l)|0,I=Math.imul(c,W$),v=v+Math.imul(p,E$)|0,s0=s0+Math.imul(p,u)|0,s0=s0+Math.imul(I$,E$)|0,I=I+Math.imul(I$,u)|0,v=v+Math.imul(X$,n)|0,s0=s0+Math.imul(X$,D$)|0,s0=s0+Math.imul(w,n)|0,I=I+Math.imul(w,D$)|0,v=v+Math.imul(B,C$)|0,s0=s0+Math.imul(B,t)|0,s0=s0+Math.imul(U$,C$)|0,I=I+Math.imul(U$,t)|0,v=v+Math.imul(G$,m)|0,s0=s0+Math.imul(G$,R$)|0,s0=s0+Math.imul(x,m)|0,I=I+Math.imul(x,R$)|0,v=v+Math.imul(_,P$)|0,s0=s0+Math.imul(_,O)|0,s0=s0+Math.imul(Z$,P$)|0,I=I+Math.imul(Z$,O)|0,v=v+Math.imul(Q$,e)|0,s0=s0+Math.imul(Q$,M$)|0,s0=s0+Math.imul(g,e)|0,I=I+Math.imul(g,M$)|0,v=v+Math.imul(j,S$)|0,s0=s0+Math.imul(j,F)|0,s0=s0+Math.imul($$,S$)|0,I=I+Math.imul($$,F)|0;var Q0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Q0>>>26)|0,Q0&=67108863,v=Math.imul(O$,E$),s0=Math.imul(O$,u),s0=s0+Math.imul(c,E$)|0,I=Math.imul(c,u),v=v+Math.imul(p,n)|0,s0=s0+Math.imul(p,D$)|0,s0=s0+Math.imul(I$,n)|0,I=I+Math.imul(I$,D$)|0,v=v+Math.imul(X$,C$)|0,s0=s0+Math.imul(X$,t)|0,s0=s0+Math.imul(w,C$)|0,I=I+Math.imul(w,t)|0,v=v+Math.imul(B,m)|0,s0=s0+Math.imul(B,R$)|0,s0=s0+Math.imul(U$,m)|0,I=I+Math.imul(U$,R$)|0,v=v+Math.imul(G$,P$)|0,s0=s0+Math.imul(G$,O)|0,s0=s0+Math.imul(x,P$)|0,I=I+Math.imul(x,O)|0,v=v+Math.imul(_,e)|0,s0=s0+Math.imul(_,M$)|0,s0=s0+Math.imul(Z$,e)|0,I=I+Math.imul(Z$,M$)|0,v=v+Math.imul(Q$,S$)|0,s0=s0+Math.imul(Q$,F)|0,s0=s0+Math.imul(g,S$)|0,I=I+Math.imul(g,F)|0;var B$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(B$>>>26)|0,B$&=67108863,v=Math.imul(O$,n),s0=Math.imul(O$,D$),s0=s0+Math.imul(c,n)|0,I=Math.imul(c,D$),v=v+Math.imul(p,C$)|0,s0=s0+Math.imul(p,t)|0,s0=s0+Math.imul(I$,C$)|0,I=I+Math.imul(I$,t)|0,v=v+Math.imul(X$,m)|0,s0=s0+Math.imul(X$,R$)|0,s0=s0+Math.imul(w,m)|0,I=I+Math.imul(w,R$)|0,v=v+Math.imul(B,P$)|0,s0=s0+Math.imul(B,O)|0,s0=s0+Math.imul(U$,P$)|0,I=I+Math.imul(U$,O)|0,v=v+Math.imul(G$,e)|0,s0=s0+Math.imul(G$,M$)|0,s0=s0+Math.imul(x,e)|0,I=I+Math.imul(x,M$)|0,v=v+Math.imul(_,S$)|0,s0=s0+Math.imul(_,F)|0,s0=s0+Math.imul(Z$,S$)|0,I=I+Math.imul(Z$,F)|0;var Y0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Y0>>>26)|0,Y0&=67108863,v=Math.imul(O$,C$),s0=Math.imul(O$,t),s0=s0+Math.imul(c,C$)|0,I=Math.imul(c,t),v=v+Math.imul(p,m)|0,s0=s0+Math.imul(p,R$)|0,s0=s0+Math.imul(I$,m)|0,I=I+Math.imul(I$,R$)|0,v=v+Math.imul(X$,P$)|0,s0=s0+Math.imul(X$,O)|0,s0=s0+Math.imul(w,P$)|0,I=I+Math.imul(w,O)|0,v=v+Math.imul(B,e)|0,s0=s0+Math.imul(B,M$)|0,s0=s0+Math.imul(U$,e)|0,I=I+Math.imul(U$,M$)|0,v=v+Math.imul(G$,S$)|0,s0=s0+Math.imul(G$,F)|0,s0=s0+Math.imul(x,S$)|0,I=I+Math.imul(x,F)|0;var y$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(y$>>>26)|0,y$&=67108863,v=Math.imul(O$,m),s0=Math.imul(O$,R$),s0=s0+Math.imul(c,m)|0,I=Math.imul(c,R$),v=v+Math.imul(p,P$)|0,s0=s0+Math.imul(p,O)|0,s0=s0+Math.imul(I$,P$)|0,I=I+Math.imul(I$,O)|0,v=v+Math.imul(X$,e)|0,s0=s0+Math.imul(X$,M$)|0,s0=s0+Math.imul(w,e)|0,I=I+Math.imul(w,M$)|0,v=v+Math.imul(B,S$)|0,s0=s0+Math.imul(B,F)|0,s0=s0+Math.imul(U$,S$)|0,I=I+Math.imul(U$,F)|0;var Z0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Z0>>>26)|0,Z0&=67108863,v=Math.imul(O$,P$),s0=Math.imul(O$,O),s0=s0+Math.imul(c,P$)|0,I=Math.imul(c,O),v=v+Math.imul(p,e)|0,s0=s0+Math.imul(p,M$)|0,s0=s0+Math.imul(I$,e)|0,I=I+Math.imul(I$,M$)|0,v=v+Math.imul(X$,S$)|0,s0=s0+Math.imul(X$,F)|0,s0=s0+Math.imul(w,S$)|0,I=I+Math.imul(w,F)|0;var w$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(w$>>>26)|0,w$&=67108863,v=Math.imul(O$,e),s0=Math.imul(O$,M$),s0=s0+Math.imul(c,e)|0,I=Math.imul(c,M$),v=v+Math.imul(p,S$)|0,s0=s0+Math.imul(p,F)|0,s0=s0+Math.imul(I$,S$)|0,I=I+Math.imul(I$,F)|0;var G0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(G0>>>26)|0,G0&=67108863,v=Math.imul(O$,S$),s0=Math.imul(O$,F),s0=s0+Math.imul(c,S$)|0,I=Math.imul(c,F);var p$=(n0+v|0)+((s0&8191)<<13)|0;return n0=(I+(s0>>>13)|0)+(p$>>>26)|0,p$&=67108863,S[0]=v$,S[1]=r,S[2]=q$,S[3]=i,S[4]=j$,S[5]=k$,S[6]=g$,S[7]=_$,S[8]=N$,S[9]=$0,S[10]=x$,S[11]=Q0,S[12]=B$,S[13]=Y0,S[14]=y$,S[15]=Z0,S[16]=w$,S[17]=G0,S[18]=p$,n0!==0&&(S[19]=n0,o0.length++),o0};Math.imul||(p0=E);function T(l0,z,o0){o0.negative=z.negative^l0.negative,o0.length=l0.length+z.length;for(var M=0,u0=0,S=0;S>>26)|0,u0+=n0>>>26,n0&=67108863}o0.words[S]=v,M=n0,n0=u0}return M!==0?o0.words[S]=M:o0.length--,o0.strip()}function f0(l0,z,o0){var M=new D;return M.mulp(l0,z,o0)}Z.prototype.mulTo=function(l0,z){var o0,M=this.length+l0.length;return this.length===10&&l0.length===10?o0=p0(this,l0,z):M<63?o0=E(this,l0,z):M<1024?o0=T(this,l0,z):o0=f0(this,l0,z),o0};function D(l0,z){this.x=l0,this.y=z}D.prototype.makeRBT=function(l0){for(var z=new Array(l0),o0=Z.prototype._countBits(l0)-1,M=0;M>=1;return M},D.prototype.permute=function(l0,z,o0,M,u0,S){for(var n0=0;n0>>1)u0++;return 1<>>13,o0[2*S+1]=u0&8191,u0=u0>>>13;for(S=2*z;S>=26,z+=M/67108864|0,z+=u0>>>26,this.words[o0]=u0&67108863}return z!==0&&(this.words[o0]=z,this.length++),this},Z.prototype.muln=function(l0){return this.clone().imuln(l0)},Z.prototype.sqr=function(){return this.mul(this)},Z.prototype.isqr=function(){return this.imul(this.clone())},Z.prototype.pow=function(l0){var z=w0(l0);if(z.length===0)return new Z(1);for(var o0=this,M=0;M=0);var z=l0%26,o0=(l0-z)/26,M=67108863>>>26-z<<26-z,u0;if(z!==0){var S=0;for(u0=0;u0>>26-z}S&&(this.words[u0]=S,this.length++)}if(o0!==0){for(u0=this.length-1;u0>=0;u0--)this.words[u0+o0]=this.words[u0];for(u0=0;u0=0);var M;z?M=(z-z%26)/26:M=0;var u0=l0%26,S=Math.min((l0-u0)/26,this.length),n0=67108863^67108863>>>u0<S)for(this.length-=S,s0=0;s0=0&&(I!==0||s0>=M);s0--){var t0=this.words[s0]|0;this.words[s0]=I<<26-u0|t0>>>u0,I=t0&n0}return v&&I!==0&&(v.words[v.length++]=I),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},Z.prototype.ishrn=function(l0,z,o0){return Y(this.negative===0),this.iushrn(l0,z,o0)},Z.prototype.shln=function(l0){return this.clone().ishln(l0)},Z.prototype.ushln=function(l0){return this.clone().iushln(l0)},Z.prototype.shrn=function(l0){return this.clone().ishrn(l0)},Z.prototype.ushrn=function(l0){return this.clone().iushrn(l0)},Z.prototype.testn=function(l0){Y(typeof l0=="number"&&l0>=0);var z=l0%26,o0=(l0-z)/26,M=1<=0);var z=l0%26,o0=(l0-z)/26;if(Y(this.negative===0,"imaskn works only with positive numbers"),this.length<=o0)return this;if(z!==0&&o0++,this.length=Math.min(o0,this.length),z!==0){var M=67108863^67108863>>>z<=67108864;z++)this.words[z]-=67108864,z===this.length-1?this.words[z+1]=1:this.words[z+1]++;return this.length=Math.max(this.length,z+1),this},Z.prototype.isubn=function(l0){if(Y(typeof l0=="number"),Y(l0<67108864),l0<0)return this.iaddn(-l0);if(this.negative!==0)return this.negative=0,this.iaddn(l0),this.negative=1,this;if(this.words[0]-=l0,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var z=0;z>26)-(v/67108864|0),this.words[u0+o0]=S&67108863}for(;u0>26,this.words[u0+o0]=S&67108863;if(n0===0)return this.strip();for(Y(n0===-1),n0=0,u0=0;u0>26,this.words[u0]=S&67108863;return this.negative=1,this.strip()},Z.prototype._wordDiv=function(l0,z){var o0=this.length-l0.length,M=this.clone(),u0=l0,S=u0.words[u0.length-1]|0,n0=this._countBits(S);o0=26-n0,o0!==0&&(u0=u0.ushln(o0),M.iushln(o0),S=u0.words[u0.length-1]|0);var v=M.length-u0.length,s0;if(z!=="mod"){s0=new Z(null),s0.length=v+1,s0.words=new Array(s0.length);for(var I=0;I=0;m0--){var a0=(M.words[u0.length+m0]|0)*67108864+(M.words[u0.length+m0-1]|0);for(a0=Math.min(a0/S|0,67108863),M._ishlnsubmul(u0,a0,m0);M.negative!==0;)a0--,M.negative=0,M._ishlnsubmul(u0,1,m0),M.isZero()||(M.negative^=1);s0&&(s0.words[m0]=a0)}return s0&&s0.strip(),M.strip(),z!=="div"&&o0!==0&&M.iushrn(o0),{div:s0||null,mod:M}},Z.prototype.divmod=function(l0,z,o0){if(Y(!l0.isZero()),this.isZero())return{div:new Z(0),mod:new Z(0)};var M,u0,S;return this.negative!==0&&l0.negative===0?(S=this.neg().divmod(l0,z),z!=="mod"&&(M=S.div.neg()),z!=="div"&&(u0=S.mod.neg(),o0&&u0.negative!==0&&u0.iadd(l0)),{div:M,mod:u0}):this.negative===0&&l0.negative!==0?(S=this.divmod(l0.neg(),z),z!=="mod"&&(M=S.div.neg()),{div:M,mod:S.mod}):(this.negative&l0.negative)!==0?(S=this.neg().divmod(l0.neg(),z),z!=="div"&&(u0=S.mod.neg(),o0&&u0.negative!==0&&u0.isub(l0)),{div:S.div,mod:u0}):l0.length>this.length||this.cmp(l0)<0?{div:new Z(0),mod:this}:l0.length===1?z==="div"?{div:this.divn(l0.words[0]),mod:null}:z==="mod"?{div:null,mod:new Z(this.modn(l0.words[0]))}:{div:this.divn(l0.words[0]),mod:new Z(this.modn(l0.words[0]))}:this._wordDiv(l0,z)},Z.prototype.div=function(l0){return this.divmod(l0,"div",!1).div},Z.prototype.mod=function(l0){return this.divmod(l0,"mod",!1).mod},Z.prototype.umod=function(l0){return this.divmod(l0,"mod",!0).mod},Z.prototype.divRound=function(l0){var z=this.divmod(l0);if(z.mod.isZero())return z.div;var o0=z.div.negative!==0?z.mod.isub(l0):z.mod,M=l0.ushrn(1),u0=l0.andln(1),S=o0.cmp(M);return S<0||u0===1&&S===0?z.div:z.div.negative!==0?z.div.isubn(1):z.div.iaddn(1)},Z.prototype.modn=function(l0){Y(l0<=67108863);for(var z=(1<<26)%l0,o0=0,M=this.length-1;M>=0;M--)o0=(z*o0+(this.words[M]|0))%l0;return o0},Z.prototype.idivn=function(l0){Y(l0<=67108863);for(var z=0,o0=this.length-1;o0>=0;o0--){var M=(this.words[o0]|0)+z*67108864;this.words[o0]=M/l0|0,z=M%l0}return this.strip()},Z.prototype.divn=function(l0){return this.clone().idivn(l0)},Z.prototype.egcd=function(l0){Y(l0.negative===0),Y(!l0.isZero());var z=this,o0=l0.clone();z.negative!==0?z=z.umod(l0):z=z.clone();for(var M=new Z(1),u0=new Z(0),S=new Z(0),n0=new Z(1),v=0;z.isEven()&&o0.isEven();)z.iushrn(1),o0.iushrn(1),++v;for(var s0=o0.clone(),I=z.clone();!z.isZero();){for(var t0=0,m0=1;(z.words[0]&m0)===0&&t0<26;++t0,m0<<=1);if(t0>0)for(z.iushrn(t0);t0-- >0;)(M.isOdd()||u0.isOdd())&&(M.iadd(s0),u0.isub(I)),M.iushrn(1),u0.iushrn(1);for(var a0=0,q=1;(o0.words[0]&q)===0&&a0<26;++a0,q<<=1);if(a0>0)for(o0.iushrn(a0);a0-- >0;)(S.isOdd()||n0.isOdd())&&(S.iadd(s0),n0.isub(I)),S.iushrn(1),n0.iushrn(1);z.cmp(o0)>=0?(z.isub(o0),M.isub(S),u0.isub(n0)):(o0.isub(z),S.isub(M),n0.isub(u0))}return{a:S,b:n0,gcd:o0.iushln(v)}},Z.prototype._invmp=function(l0){Y(l0.negative===0),Y(!l0.isZero());var z=this,o0=l0.clone();z.negative!==0?z=z.umod(l0):z=z.clone();for(var M=new Z(1),u0=new Z(0),S=o0.clone();z.cmpn(1)>0&&o0.cmpn(1)>0;){for(var n0=0,v=1;(z.words[0]&v)===0&&n0<26;++n0,v<<=1);if(n0>0)for(z.iushrn(n0);n0-- >0;)M.isOdd()&&M.iadd(S),M.iushrn(1);for(var s0=0,I=1;(o0.words[0]&I)===0&&s0<26;++s0,I<<=1);if(s0>0)for(o0.iushrn(s0);s0-- >0;)u0.isOdd()&&u0.iadd(S),u0.iushrn(1);z.cmp(o0)>=0?(z.isub(o0),M.isub(u0)):(o0.isub(z),u0.isub(M))}var t0;return z.cmpn(1)===0?t0=M:t0=u0,t0.cmpn(0)<0&&t0.iadd(l0),t0},Z.prototype.gcd=function(l0){if(this.isZero())return l0.abs();if(l0.isZero())return this.abs();var z=this.clone(),o0=l0.clone();z.negative=0,o0.negative=0;for(var M=0;z.isEven()&&o0.isEven();M++)z.iushrn(1),o0.iushrn(1);do{for(;z.isEven();)z.iushrn(1);for(;o0.isEven();)o0.iushrn(1);var u0=z.cmp(o0);if(u0<0){var S=z;z=o0,o0=S}else if(u0===0||o0.cmpn(1)===0)break;z.isub(o0)}while(!0);return o0.iushln(M)},Z.prototype.invm=function(l0){return this.egcd(l0).a.umod(l0)},Z.prototype.isEven=function(){return(this.words[0]&1)===0},Z.prototype.isOdd=function(){return(this.words[0]&1)===1},Z.prototype.andln=function(l0){return this.words[0]&l0},Z.prototype.bincn=function(l0){Y(typeof l0=="number");var z=l0%26,o0=(l0-z)/26,M=1<>>26,n0&=67108863,this.words[S]=n0}return u0!==0&&(this.words[S]=u0,this.length++),this},Z.prototype.isZero=function(){return this.length===1&&this.words[0]===0},Z.prototype.cmpn=function(l0){var z=l0<0;if(this.negative!==0&&!z)return-1;if(this.negative===0&&z)return 1;this.strip();var o0;if(this.length>1)o0=1;else{z&&(l0=-l0),Y(l0<=67108863,"Number is too big");var M=this.words[0]|0;o0=M===l0?0:Ml0.length)return 1;if(this.length=0;o0--){var M=this.words[o0]|0,u0=l0.words[o0]|0;if(M!==u0){Mu0&&(z=1);break}}return z},Z.prototype.gtn=function(l0){return this.cmpn(l0)===1},Z.prototype.gt=function(l0){return this.cmp(l0)===1},Z.prototype.gten=function(l0){return this.cmpn(l0)>=0},Z.prototype.gte=function(l0){return this.cmp(l0)>=0},Z.prototype.ltn=function(l0){return this.cmpn(l0)===-1},Z.prototype.lt=function(l0){return this.cmp(l0)===-1},Z.prototype.lten=function(l0){return this.cmpn(l0)<=0},Z.prototype.lte=function(l0){return this.cmp(l0)<=0},Z.prototype.eqn=function(l0){return this.cmpn(l0)===0},Z.prototype.eq=function(l0){return this.cmp(l0)===0},Z.red=function(l0){return new b0(l0)},Z.prototype.toRed=function(l0){return Y(!this.red,"Already a number in reduction context"),Y(this.negative===0,"red works only with positives"),l0.convertTo(this)._forceRed(l0)},Z.prototype.fromRed=function(){return Y(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},Z.prototype._forceRed=function(l0){return this.red=l0,this},Z.prototype.forceRed=function(l0){return Y(!this.red,"Already a number in reduction context"),this._forceRed(l0)},Z.prototype.redAdd=function(l0){return Y(this.red,"redAdd works only with red numbers"),this.red.add(this,l0)},Z.prototype.redIAdd=function(l0){return Y(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,l0)},Z.prototype.redSub=function(l0){return Y(this.red,"redSub works only with red numbers"),this.red.sub(this,l0)},Z.prototype.redISub=function(l0){return Y(this.red,"redISub works only with red numbers"),this.red.isub(this,l0)},Z.prototype.redShl=function(l0){return Y(this.red,"redShl works only with red numbers"),this.red.shl(this,l0)},Z.prototype.redMul=function(l0){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,l0),this.red.mul(this,l0)},Z.prototype.redIMul=function(l0){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,l0),this.red.imul(this,l0)},Z.prototype.redSqr=function(){return Y(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},Z.prototype.redISqr=function(){return Y(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},Z.prototype.redSqrt=function(){return Y(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},Z.prototype.redInvm=function(){return Y(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},Z.prototype.redNeg=function(){return Y(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},Z.prototype.redPow=function(l0){return Y(this.red&&!l0.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,l0)};var c0={k256:null,p224:null,p192:null,p25519:null};function C(l0,z){this.name=l0,this.p=new Z(z,16),this.n=this.p.bitLength(),this.k=new Z(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}C.prototype._tmp=function(){var l0=new Z(null);return l0.words=new Array(Math.ceil(this.n/13)),l0},C.prototype.ireduce=function(l0){var z=l0,o0;do this.split(z,this.tmp),z=this.imulK(z),z=z.iadd(this.tmp),o0=z.bitLength();while(o0>this.n);var M=o00?z.isub(this.p):z.strip!==void 0?z.strip():z._strip(),z},C.prototype.split=function(l0,z){l0.iushrn(this.n,0,z)},C.prototype.imulK=function(l0){return l0.imul(this.k)};function h0(){C.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}$(h0,C),h0.prototype.split=function(l0,z){for(var o0=4194303,M=Math.min(l0.length,9),u0=0;u0>>22,S=n0}S>>>=22,l0.words[u0-10]=S,S===0&&l0.length>10?l0.length-=10:l0.length-=9},h0.prototype.imulK=function(l0){l0.words[l0.length]=0,l0.words[l0.length+1]=0,l0.length+=2;for(var z=0,o0=0;o0>>=26,l0.words[o0]=u0,z=M}return z!==0&&(l0.words[l0.length++]=z),l0},Z._prime=function(l0){if(c0[l0])return c0[l0];var z;if(l0==="k256")z=new h0;else if(l0==="p224")z=new L;else if(l0==="p192")z=new d0;else if(l0==="p25519")z=new R;else throw new Error("Unknown prime "+l0);return c0[l0]=z,z};function b0(l0){if(typeof l0=="string"){var z=Z._prime(l0);this.m=z.p,this.prime=z}else Y(l0.gtn(1),"modulus must be greater than 1"),this.m=l0,this.prime=null}b0.prototype._verify1=function(l0){Y(l0.negative===0,"red works only with positives"),Y(l0.red,"red works only with red numbers")},b0.prototype._verify2=function(l0,z){Y((l0.negative|z.negative)===0,"red works only with positives"),Y(l0.red&&l0.red===z.red,"red works only with red numbers")},b0.prototype.imod=function(l0){return this.prime?this.prime.ireduce(l0)._forceRed(this):l0.umod(this.m)._forceRed(this)},b0.prototype.neg=function(l0){return l0.isZero()?l0.clone():this.m.sub(l0)._forceRed(this)},b0.prototype.add=function(l0,z){this._verify2(l0,z);var o0=l0.add(z);return o0.cmp(this.m)>=0&&o0.isub(this.m),o0._forceRed(this)},b0.prototype.iadd=function(l0,z){this._verify2(l0,z);var o0=l0.iadd(z);return o0.cmp(this.m)>=0&&o0.isub(this.m),o0},b0.prototype.sub=function(l0,z){this._verify2(l0,z);var o0=l0.sub(z);return o0.cmpn(0)<0&&o0.iadd(this.m),o0._forceRed(this)},b0.prototype.isub=function(l0,z){this._verify2(l0,z);var o0=l0.isub(z);return o0.cmpn(0)<0&&o0.iadd(this.m),o0},b0.prototype.shl=function(l0,z){return this._verify1(l0),this.imod(l0.ushln(z))},b0.prototype.imul=function(l0,z){return this._verify2(l0,z),this.imod(l0.imul(z))},b0.prototype.mul=function(l0,z){return this._verify2(l0,z),this.imod(l0.mul(z))},b0.prototype.isqr=function(l0){return this.imul(l0,l0.clone())},b0.prototype.sqr=function(l0){return this.mul(l0,l0)},b0.prototype.sqrt=function(l0){if(l0.isZero())return l0.clone();var z=this.m.andln(3);if(Y(z%2===1),z===3){var o0=this.m.add(new Z(1)).iushrn(2);return this.pow(l0,o0)}for(var M=this.m.subn(1),u0=0;!M.isZero()&&M.andln(1)===0;)u0++,M.iushrn(1);Y(!M.isZero());var S=new Z(1).toRed(this),n0=S.redNeg(),v=this.m.subn(1).iushrn(1),s0=this.m.bitLength();for(s0=new Z(2*s0*s0).toRed(this);this.pow(s0,v).cmp(n0)!==0;)s0.redIAdd(n0);for(var I=this.pow(s0,M),t0=this.pow(l0,M.addn(1).iushrn(1)),m0=this.pow(l0,M),a0=u0;m0.cmp(S)!==0;){for(var q=m0,e0=0;q.cmp(S)!==0;e0++)q=q.redSqr();Y(e0=0;u0--){for(var I=z.words[u0],t0=s0-1;t0>=0;t0--){var m0=I>>t0&1;if(S!==M[0]&&(S=this.sqr(S)),m0===0&&n0===0){v=0;continue}n0<<=1,n0|=m0,v++,!(v!==o0&&(u0!==0||t0!==0))&&(S=this.mul(S,M[n0]),v=0,n0=0)}s0=26}return S},b0.prototype.convertTo=function(l0){var z=l0.umod(this.m);return z===l0?z.clone():z},b0.prototype.convertFrom=function(l0){var z=l0.clone();return z.red=null,z},Z.mont=function(l0){return new P(l0)};function P(l0){b0.call(this,l0),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new Z(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}$(P,b0),P.prototype.convertTo=function(l0){return this.imod(l0.ushln(this.shift))},P.prototype.convertFrom=function(l0){var z=this.imod(l0.mul(this.rinv));return z.red=null,z},P.prototype.imul=function(l0,z){if(l0.isZero()||z.isZero())return l0.words[0]=0,l0.length=1,l0;var o0=l0.imul(z),M=o0.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u0=o0.isub(M).iushrn(this.shift),S=u0;return u0.cmp(this.m)>=0?S=u0.isub(this.m):u0.cmpn(0)<0&&(S=u0.iadd(this.m)),S._forceRed(this)},P.prototype.mul=function(l0,z){if(l0.isZero()||z.isZero())return new Z(0)._forceRed(this);var o0=l0.mul(z),M=o0.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u0=o0.isub(M).iushrn(this.shift),S=u0;return u0.cmp(this.m)>=0?S=u0.isub(this.m):u0.cmpn(0)<0&&(S=u0.iadd(this.m)),S._forceRed(this)},P.prototype.invm=function(l0){var z=this.imod(l0._invmp(this.m).mul(this.r2));return z._forceRed(this)}})(typeof K>"u"||K,X)}}),_Q=$Q({"node_modules/miller-rabin/node_modules/bn.js/lib/bn.js"(X,K){(function(x0,G){function Y(l0,z){if(!l0)throw new Error(z||"Assertion failed")}function $(l0,z){l0.super_=z;var o0=function(){};o0.prototype=z.prototype,l0.prototype=new o0,l0.prototype.constructor=l0}function Z(l0,z,o0){if(Z.isBN(l0))return l0;this.negative=0,this.words=null,this.length=0,this.red=null,l0!==null&&((z==="le"||z==="be")&&(o0=z,z=10),this._init(l0||0,z||10,o0||"be"))}typeof x0=="object"?x0.exports=Z:G.BN=Z,Z.BN=Z,Z.wordSize=26;var Q=c$;Z.isBN=function(l0){return l0 instanceof Z?!0:l0!==null&&typeof l0=="object"&&l0.constructor.wordSize===Z.wordSize&&Array.isArray(l0.words)},Z.max=function(l0,z){return l0.cmp(z)>0?l0:z},Z.min=function(l0,z){return l0.cmp(z)<0?l0:z},Z.prototype._init=function(l0,z,o0){if(typeof l0=="number")return this._initNumber(l0,z,o0);if(typeof l0=="object")return this._initArray(l0,z,o0);z==="hex"&&(z=16),Y(z===(z|0)&&z>=2&&z<=36),l0=l0.toString().replace(/\s+/g,"");var M=0;l0[0]==="-"&&(M++,this.negative=1),M=0;M-=3)S=l0[M]|l0[M-1]<<8|l0[M-2]<<16,this.words[u0]|=S<>>26-n0&67108863,n0+=24,n0>=26&&(n0-=26,u0++);else if(o0==="le")for(M=0,u0=0;M>>26-n0&67108863,n0+=24,n0>=26&&(n0-=26,u0++);return this.strip()};function U(l0,z){var o0=l0.charCodeAt(z);return o0>=65&&o0<=70?o0-55:o0>=97&&o0<=102?o0-87:o0-48&15}function V(l0,z,o0){var M=U(l0,o0);return o0-1>=z&&(M|=U(l0,o0-1)<<4),M}Z.prototype._parseHex=function(l0,z,o0){this.length=Math.ceil((l0.length-z)/6),this.words=new Array(this.length);for(var M=0;M=z;M-=2)n0=V(l0,z,M)<=18?(u0-=18,S+=1,this.words[S]|=n0>>>26):u0+=8;else{var v=l0.length-z;for(M=v%2===0?z+1:z;M=18?(u0-=18,S+=1,this.words[S]|=n0>>>26):u0+=8}this.strip()};function B0(l0,z,o0,M){for(var u0=0,S=Math.min(l0.length,o0),n0=z;n0=49?u0+=v-49+10:v>=17?u0+=v-17+10:u0+=v}return u0}Z.prototype._parseBase=function(l0,z,o0){this.words=[0],this.length=1;for(var M=0,u0=1;u0<=67108863;u0*=z)M++;M--,u0=u0/z|0;for(var S=l0.length-o0,n0=S%M,v=Math.min(S,S-n0)+o0,s0=0,I=o0;I1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},Z.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},Z.prototype.inspect=function(){return(this.red?""};var H=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y0=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],W=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];Z.prototype.toString=function(l0,z){l0=l0||10,z=z|0||1;var o0;if(l0===16||l0==="hex"){o0="";for(var M=0,u0=0,S=0;S>>24-M&16777215,u0!==0||S!==this.length-1?o0=H[6-v.length]+v+o0:o0=v+o0,M+=2,M>=26&&(M-=26,S--)}for(u0!==0&&(o0=u0.toString(16)+o0);o0.length%z!==0;)o0="0"+o0;return this.negative!==0&&(o0="-"+o0),o0}if(l0===(l0|0)&&l0>=2&&l0<=36){var s0=y0[l0],I=W[l0];o0="";var t0=this.clone();for(t0.negative=0;!t0.isZero();){var m0=t0.modn(I).toString(l0);t0=t0.idivn(I),t0.isZero()?o0=m0+o0:o0=H[s0-m0.length]+m0+o0}for(this.isZero()&&(o0="0"+o0);o0.length%z!==0;)o0="0"+o0;return this.negative!==0&&(o0="-"+o0),o0}Y(!1,"Base should be between 2 and 36")},Z.prototype.toNumber=function(){var l0=this.words[0];return this.length===2?l0+=this.words[1]*67108864:this.length===3&&this.words[2]===1?l0+=4503599627370496+this.words[1]*67108864:this.length>2&&Y(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-l0:l0},Z.prototype.toJSON=function(){return this.toString(16)},Z.prototype.toBuffer=function(l0,z){return Y(typeof Q<"u"),this.toArrayLike(Q,l0,z)},Z.prototype.toArray=function(l0,z){return this.toArrayLike(Array,l0,z)},Z.prototype.toArrayLike=function(l0,z,o0){var M=this.byteLength(),u0=o0||Math.max(1,M);Y(M<=u0,"byte array longer than desired length"),Y(u0>0,"Requested array length <= 0"),this.strip();var S=z==="le",n0=new l0(u0),v,s0,I=this.clone();if(S){for(s0=0;!I.isZero();s0++)v=I.andln(255),I.iushrn(8),n0[s0]=v;for(;s0=4096&&(o0+=13,z>>>=13),z>=64&&(o0+=7,z>>>=7),z>=8&&(o0+=4,z>>>=4),z>=2&&(o0+=2,z>>>=2),o0+z},Z.prototype._zeroBits=function(l0){if(l0===0)return 26;var z=l0,o0=0;return(z&8191)===0&&(o0+=13,z>>>=13),(z&127)===0&&(o0+=7,z>>>=7),(z&15)===0&&(o0+=4,z>>>=4),(z&3)===0&&(o0+=2,z>>>=2),(z&1)===0&&o0++,o0},Z.prototype.bitLength=function(){var l0=this.words[this.length-1],z=this._countBits(l0);return(this.length-1)*26+z};function w0(l0){for(var z=new Array(l0.bitLength()),o0=0;o0>>u0}return z}Z.prototype.zeroBits=function(){if(this.isZero())return 0;for(var l0=0,z=0;zl0.length?this.clone().ior(l0):l0.clone().ior(this)},Z.prototype.uor=function(l0){return this.length>l0.length?this.clone().iuor(l0):l0.clone().iuor(this)},Z.prototype.iuand=function(l0){var z;this.length>l0.length?z=l0:z=this;for(var o0=0;o0l0.length?this.clone().iand(l0):l0.clone().iand(this)},Z.prototype.uand=function(l0){return this.length>l0.length?this.clone().iuand(l0):l0.clone().iuand(this)},Z.prototype.iuxor=function(l0){var z,o0;this.length>l0.length?(z=this,o0=l0):(z=l0,o0=this);for(var M=0;Ml0.length?this.clone().ixor(l0):l0.clone().ixor(this)},Z.prototype.uxor=function(l0){return this.length>l0.length?this.clone().iuxor(l0):l0.clone().iuxor(this)},Z.prototype.inotn=function(l0){Y(typeof l0=="number"&&l0>=0);var z=Math.ceil(l0/26)|0,o0=l0%26;this._expand(z),o0>0&&z--;for(var M=0;M0&&(this.words[M]=~this.words[M]&67108863>>26-o0),this.strip()},Z.prototype.notn=function(l0){return this.clone().inotn(l0)},Z.prototype.setn=function(l0,z){Y(typeof l0=="number"&&l0>=0);var o0=l0/26|0,M=l0%26;return this._expand(o0+1),z?this.words[o0]=this.words[o0]|1<l0.length?(o0=this,M=l0):(o0=l0,M=this);for(var u0=0,S=0;S>>26;for(;u0!==0&&S>>26;if(this.length=o0.length,u0!==0)this.words[this.length]=u0,this.length++;else if(o0!==this)for(;Sl0.length?this.clone().iadd(l0):l0.clone().iadd(this)},Z.prototype.isub=function(l0){if(l0.negative!==0){l0.negative=0;var z=this.iadd(l0);return l0.negative=1,z._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(l0),this.negative=1,this._normSign();var o0=this.cmp(l0);if(o0===0)return this.negative=0,this.length=1,this.words[0]=0,this;var M,u0;o0>0?(M=this,u0=l0):(M=l0,u0=this);for(var S=0,n0=0;n0>26,this.words[n0]=z&67108863;for(;S!==0&&n0>26,this.words[n0]=z&67108863;if(S===0&&n0>>26,m0=s0&67108863,a0=Math.min(I,z.length-1),q=Math.max(0,I-l0.length+1);q<=a0;q++){var e0=I-q|0;u0=l0.words[e0]|0,S=z.words[q]|0,n0=u0*S+m0,t0+=n0/67108864|0,m0=n0&67108863}o0.words[I]=m0|0,s0=t0|0}return s0!==0?o0.words[I]=s0|0:o0.length--,o0.strip()}var p0=function(l0,z,o0){var M=l0.words,u0=z.words,S=o0.words,n0=0,v,s0,I,t0=M[0]|0,m0=t0&8191,a0=t0>>>13,q=M[1]|0,e0=q&8191,r0=q>>>13,i0=M[2]|0,j=i0&8191,$$=i0>>>13,k=M[3]|0,Q$=k&8191,g=k>>>13,Y$=M[4]|0,_=Y$&8191,Z$=Y$>>>13,N=M[5]|0,G$=N&8191,x=N>>>13,V$=M[6]|0,B=V$&8191,U$=V$>>>13,y=M[7]|0,X$=y&8191,w=y>>>13,K$=M[8]|0,p=K$&8191,I$=K$>>>13,f=M[9]|0,O$=f&8191,c=f>>>13,J$=u0[0]|0,h=J$&8191,F$=J$>>>13,d=u0[1]|0,A$=d&8191,b=d>>>13,H$=u0[2]|0,l=H$&8191,W$=H$>>>13,o=u0[3]|0,E$=o&8191,u=o>>>13,T$=u0[4]|0,n=T$&8191,D$=T$>>>13,s=u0[5]|0,C$=s&8191,t=s>>>13,L$=u0[6]|0,m=L$&8191,R$=L$>>>13,a=u0[7]|0,P$=a&8191,O=a>>>13,z$=u0[8]|0,e=z$&8191,M$=z$>>>13,J=u0[9]|0,S$=J&8191,F=J>>>13;o0.negative=l0.negative^z.negative,o0.length=19,v=Math.imul(m0,h),s0=Math.imul(m0,F$),s0=s0+Math.imul(a0,h)|0,I=Math.imul(a0,F$);var v$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(v$>>>26)|0,v$&=67108863,v=Math.imul(e0,h),s0=Math.imul(e0,F$),s0=s0+Math.imul(r0,h)|0,I=Math.imul(r0,F$),v=v+Math.imul(m0,A$)|0,s0=s0+Math.imul(m0,b)|0,s0=s0+Math.imul(a0,A$)|0,I=I+Math.imul(a0,b)|0;var r=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(r>>>26)|0,r&=67108863,v=Math.imul(j,h),s0=Math.imul(j,F$),s0=s0+Math.imul($$,h)|0,I=Math.imul($$,F$),v=v+Math.imul(e0,A$)|0,s0=s0+Math.imul(e0,b)|0,s0=s0+Math.imul(r0,A$)|0,I=I+Math.imul(r0,b)|0,v=v+Math.imul(m0,l)|0,s0=s0+Math.imul(m0,W$)|0,s0=s0+Math.imul(a0,l)|0,I=I+Math.imul(a0,W$)|0;var q$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(q$>>>26)|0,q$&=67108863,v=Math.imul(Q$,h),s0=Math.imul(Q$,F$),s0=s0+Math.imul(g,h)|0,I=Math.imul(g,F$),v=v+Math.imul(j,A$)|0,s0=s0+Math.imul(j,b)|0,s0=s0+Math.imul($$,A$)|0,I=I+Math.imul($$,b)|0,v=v+Math.imul(e0,l)|0,s0=s0+Math.imul(e0,W$)|0,s0=s0+Math.imul(r0,l)|0,I=I+Math.imul(r0,W$)|0,v=v+Math.imul(m0,E$)|0,s0=s0+Math.imul(m0,u)|0,s0=s0+Math.imul(a0,E$)|0,I=I+Math.imul(a0,u)|0;var i=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(i>>>26)|0,i&=67108863,v=Math.imul(_,h),s0=Math.imul(_,F$),s0=s0+Math.imul(Z$,h)|0,I=Math.imul(Z$,F$),v=v+Math.imul(Q$,A$)|0,s0=s0+Math.imul(Q$,b)|0,s0=s0+Math.imul(g,A$)|0,I=I+Math.imul(g,b)|0,v=v+Math.imul(j,l)|0,s0=s0+Math.imul(j,W$)|0,s0=s0+Math.imul($$,l)|0,I=I+Math.imul($$,W$)|0,v=v+Math.imul(e0,E$)|0,s0=s0+Math.imul(e0,u)|0,s0=s0+Math.imul(r0,E$)|0,I=I+Math.imul(r0,u)|0,v=v+Math.imul(m0,n)|0,s0=s0+Math.imul(m0,D$)|0,s0=s0+Math.imul(a0,n)|0,I=I+Math.imul(a0,D$)|0;var j$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(j$>>>26)|0,j$&=67108863,v=Math.imul(G$,h),s0=Math.imul(G$,F$),s0=s0+Math.imul(x,h)|0,I=Math.imul(x,F$),v=v+Math.imul(_,A$)|0,s0=s0+Math.imul(_,b)|0,s0=s0+Math.imul(Z$,A$)|0,I=I+Math.imul(Z$,b)|0,v=v+Math.imul(Q$,l)|0,s0=s0+Math.imul(Q$,W$)|0,s0=s0+Math.imul(g,l)|0,I=I+Math.imul(g,W$)|0,v=v+Math.imul(j,E$)|0,s0=s0+Math.imul(j,u)|0,s0=s0+Math.imul($$,E$)|0,I=I+Math.imul($$,u)|0,v=v+Math.imul(e0,n)|0,s0=s0+Math.imul(e0,D$)|0,s0=s0+Math.imul(r0,n)|0,I=I+Math.imul(r0,D$)|0,v=v+Math.imul(m0,C$)|0,s0=s0+Math.imul(m0,t)|0,s0=s0+Math.imul(a0,C$)|0,I=I+Math.imul(a0,t)|0;var k$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(k$>>>26)|0,k$&=67108863,v=Math.imul(B,h),s0=Math.imul(B,F$),s0=s0+Math.imul(U$,h)|0,I=Math.imul(U$,F$),v=v+Math.imul(G$,A$)|0,s0=s0+Math.imul(G$,b)|0,s0=s0+Math.imul(x,A$)|0,I=I+Math.imul(x,b)|0,v=v+Math.imul(_,l)|0,s0=s0+Math.imul(_,W$)|0,s0=s0+Math.imul(Z$,l)|0,I=I+Math.imul(Z$,W$)|0,v=v+Math.imul(Q$,E$)|0,s0=s0+Math.imul(Q$,u)|0,s0=s0+Math.imul(g,E$)|0,I=I+Math.imul(g,u)|0,v=v+Math.imul(j,n)|0,s0=s0+Math.imul(j,D$)|0,s0=s0+Math.imul($$,n)|0,I=I+Math.imul($$,D$)|0,v=v+Math.imul(e0,C$)|0,s0=s0+Math.imul(e0,t)|0,s0=s0+Math.imul(r0,C$)|0,I=I+Math.imul(r0,t)|0,v=v+Math.imul(m0,m)|0,s0=s0+Math.imul(m0,R$)|0,s0=s0+Math.imul(a0,m)|0,I=I+Math.imul(a0,R$)|0;var g$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(g$>>>26)|0,g$&=67108863,v=Math.imul(X$,h),s0=Math.imul(X$,F$),s0=s0+Math.imul(w,h)|0,I=Math.imul(w,F$),v=v+Math.imul(B,A$)|0,s0=s0+Math.imul(B,b)|0,s0=s0+Math.imul(U$,A$)|0,I=I+Math.imul(U$,b)|0,v=v+Math.imul(G$,l)|0,s0=s0+Math.imul(G$,W$)|0,s0=s0+Math.imul(x,l)|0,I=I+Math.imul(x,W$)|0,v=v+Math.imul(_,E$)|0,s0=s0+Math.imul(_,u)|0,s0=s0+Math.imul(Z$,E$)|0,I=I+Math.imul(Z$,u)|0,v=v+Math.imul(Q$,n)|0,s0=s0+Math.imul(Q$,D$)|0,s0=s0+Math.imul(g,n)|0,I=I+Math.imul(g,D$)|0,v=v+Math.imul(j,C$)|0,s0=s0+Math.imul(j,t)|0,s0=s0+Math.imul($$,C$)|0,I=I+Math.imul($$,t)|0,v=v+Math.imul(e0,m)|0,s0=s0+Math.imul(e0,R$)|0,s0=s0+Math.imul(r0,m)|0,I=I+Math.imul(r0,R$)|0,v=v+Math.imul(m0,P$)|0,s0=s0+Math.imul(m0,O)|0,s0=s0+Math.imul(a0,P$)|0,I=I+Math.imul(a0,O)|0;var _$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(_$>>>26)|0,_$&=67108863,v=Math.imul(p,h),s0=Math.imul(p,F$),s0=s0+Math.imul(I$,h)|0,I=Math.imul(I$,F$),v=v+Math.imul(X$,A$)|0,s0=s0+Math.imul(X$,b)|0,s0=s0+Math.imul(w,A$)|0,I=I+Math.imul(w,b)|0,v=v+Math.imul(B,l)|0,s0=s0+Math.imul(B,W$)|0,s0=s0+Math.imul(U$,l)|0,I=I+Math.imul(U$,W$)|0,v=v+Math.imul(G$,E$)|0,s0=s0+Math.imul(G$,u)|0,s0=s0+Math.imul(x,E$)|0,I=I+Math.imul(x,u)|0,v=v+Math.imul(_,n)|0,s0=s0+Math.imul(_,D$)|0,s0=s0+Math.imul(Z$,n)|0,I=I+Math.imul(Z$,D$)|0,v=v+Math.imul(Q$,C$)|0,s0=s0+Math.imul(Q$,t)|0,s0=s0+Math.imul(g,C$)|0,I=I+Math.imul(g,t)|0,v=v+Math.imul(j,m)|0,s0=s0+Math.imul(j,R$)|0,s0=s0+Math.imul($$,m)|0,I=I+Math.imul($$,R$)|0,v=v+Math.imul(e0,P$)|0,s0=s0+Math.imul(e0,O)|0,s0=s0+Math.imul(r0,P$)|0,I=I+Math.imul(r0,O)|0,v=v+Math.imul(m0,e)|0,s0=s0+Math.imul(m0,M$)|0,s0=s0+Math.imul(a0,e)|0,I=I+Math.imul(a0,M$)|0;var N$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(N$>>>26)|0,N$&=67108863,v=Math.imul(O$,h),s0=Math.imul(O$,F$),s0=s0+Math.imul(c,h)|0,I=Math.imul(c,F$),v=v+Math.imul(p,A$)|0,s0=s0+Math.imul(p,b)|0,s0=s0+Math.imul(I$,A$)|0,I=I+Math.imul(I$,b)|0,v=v+Math.imul(X$,l)|0,s0=s0+Math.imul(X$,W$)|0,s0=s0+Math.imul(w,l)|0,I=I+Math.imul(w,W$)|0,v=v+Math.imul(B,E$)|0,s0=s0+Math.imul(B,u)|0,s0=s0+Math.imul(U$,E$)|0,I=I+Math.imul(U$,u)|0,v=v+Math.imul(G$,n)|0,s0=s0+Math.imul(G$,D$)|0,s0=s0+Math.imul(x,n)|0,I=I+Math.imul(x,D$)|0,v=v+Math.imul(_,C$)|0,s0=s0+Math.imul(_,t)|0,s0=s0+Math.imul(Z$,C$)|0,I=I+Math.imul(Z$,t)|0,v=v+Math.imul(Q$,m)|0,s0=s0+Math.imul(Q$,R$)|0,s0=s0+Math.imul(g,m)|0,I=I+Math.imul(g,R$)|0,v=v+Math.imul(j,P$)|0,s0=s0+Math.imul(j,O)|0,s0=s0+Math.imul($$,P$)|0,I=I+Math.imul($$,O)|0,v=v+Math.imul(e0,e)|0,s0=s0+Math.imul(e0,M$)|0,s0=s0+Math.imul(r0,e)|0,I=I+Math.imul(r0,M$)|0,v=v+Math.imul(m0,S$)|0,s0=s0+Math.imul(m0,F)|0,s0=s0+Math.imul(a0,S$)|0,I=I+Math.imul(a0,F)|0;var $0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+($0>>>26)|0,$0&=67108863,v=Math.imul(O$,A$),s0=Math.imul(O$,b),s0=s0+Math.imul(c,A$)|0,I=Math.imul(c,b),v=v+Math.imul(p,l)|0,s0=s0+Math.imul(p,W$)|0,s0=s0+Math.imul(I$,l)|0,I=I+Math.imul(I$,W$)|0,v=v+Math.imul(X$,E$)|0,s0=s0+Math.imul(X$,u)|0,s0=s0+Math.imul(w,E$)|0,I=I+Math.imul(w,u)|0,v=v+Math.imul(B,n)|0,s0=s0+Math.imul(B,D$)|0,s0=s0+Math.imul(U$,n)|0,I=I+Math.imul(U$,D$)|0,v=v+Math.imul(G$,C$)|0,s0=s0+Math.imul(G$,t)|0,s0=s0+Math.imul(x,C$)|0,I=I+Math.imul(x,t)|0,v=v+Math.imul(_,m)|0,s0=s0+Math.imul(_,R$)|0,s0=s0+Math.imul(Z$,m)|0,I=I+Math.imul(Z$,R$)|0,v=v+Math.imul(Q$,P$)|0,s0=s0+Math.imul(Q$,O)|0,s0=s0+Math.imul(g,P$)|0,I=I+Math.imul(g,O)|0,v=v+Math.imul(j,e)|0,s0=s0+Math.imul(j,M$)|0,s0=s0+Math.imul($$,e)|0,I=I+Math.imul($$,M$)|0,v=v+Math.imul(e0,S$)|0,s0=s0+Math.imul(e0,F)|0,s0=s0+Math.imul(r0,S$)|0,I=I+Math.imul(r0,F)|0;var x$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(x$>>>26)|0,x$&=67108863,v=Math.imul(O$,l),s0=Math.imul(O$,W$),s0=s0+Math.imul(c,l)|0,I=Math.imul(c,W$),v=v+Math.imul(p,E$)|0,s0=s0+Math.imul(p,u)|0,s0=s0+Math.imul(I$,E$)|0,I=I+Math.imul(I$,u)|0,v=v+Math.imul(X$,n)|0,s0=s0+Math.imul(X$,D$)|0,s0=s0+Math.imul(w,n)|0,I=I+Math.imul(w,D$)|0,v=v+Math.imul(B,C$)|0,s0=s0+Math.imul(B,t)|0,s0=s0+Math.imul(U$,C$)|0,I=I+Math.imul(U$,t)|0,v=v+Math.imul(G$,m)|0,s0=s0+Math.imul(G$,R$)|0,s0=s0+Math.imul(x,m)|0,I=I+Math.imul(x,R$)|0,v=v+Math.imul(_,P$)|0,s0=s0+Math.imul(_,O)|0,s0=s0+Math.imul(Z$,P$)|0,I=I+Math.imul(Z$,O)|0,v=v+Math.imul(Q$,e)|0,s0=s0+Math.imul(Q$,M$)|0,s0=s0+Math.imul(g,e)|0,I=I+Math.imul(g,M$)|0,v=v+Math.imul(j,S$)|0,s0=s0+Math.imul(j,F)|0,s0=s0+Math.imul($$,S$)|0,I=I+Math.imul($$,F)|0;var Q0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Q0>>>26)|0,Q0&=67108863,v=Math.imul(O$,E$),s0=Math.imul(O$,u),s0=s0+Math.imul(c,E$)|0,I=Math.imul(c,u),v=v+Math.imul(p,n)|0,s0=s0+Math.imul(p,D$)|0,s0=s0+Math.imul(I$,n)|0,I=I+Math.imul(I$,D$)|0,v=v+Math.imul(X$,C$)|0,s0=s0+Math.imul(X$,t)|0,s0=s0+Math.imul(w,C$)|0,I=I+Math.imul(w,t)|0,v=v+Math.imul(B,m)|0,s0=s0+Math.imul(B,R$)|0,s0=s0+Math.imul(U$,m)|0,I=I+Math.imul(U$,R$)|0,v=v+Math.imul(G$,P$)|0,s0=s0+Math.imul(G$,O)|0,s0=s0+Math.imul(x,P$)|0,I=I+Math.imul(x,O)|0,v=v+Math.imul(_,e)|0,s0=s0+Math.imul(_,M$)|0,s0=s0+Math.imul(Z$,e)|0,I=I+Math.imul(Z$,M$)|0,v=v+Math.imul(Q$,S$)|0,s0=s0+Math.imul(Q$,F)|0,s0=s0+Math.imul(g,S$)|0,I=I+Math.imul(g,F)|0;var B$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(B$>>>26)|0,B$&=67108863,v=Math.imul(O$,n),s0=Math.imul(O$,D$),s0=s0+Math.imul(c,n)|0,I=Math.imul(c,D$),v=v+Math.imul(p,C$)|0,s0=s0+Math.imul(p,t)|0,s0=s0+Math.imul(I$,C$)|0,I=I+Math.imul(I$,t)|0,v=v+Math.imul(X$,m)|0,s0=s0+Math.imul(X$,R$)|0,s0=s0+Math.imul(w,m)|0,I=I+Math.imul(w,R$)|0,v=v+Math.imul(B,P$)|0,s0=s0+Math.imul(B,O)|0,s0=s0+Math.imul(U$,P$)|0,I=I+Math.imul(U$,O)|0,v=v+Math.imul(G$,e)|0,s0=s0+Math.imul(G$,M$)|0,s0=s0+Math.imul(x,e)|0,I=I+Math.imul(x,M$)|0,v=v+Math.imul(_,S$)|0,s0=s0+Math.imul(_,F)|0,s0=s0+Math.imul(Z$,S$)|0,I=I+Math.imul(Z$,F)|0;var Y0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Y0>>>26)|0,Y0&=67108863,v=Math.imul(O$,C$),s0=Math.imul(O$,t),s0=s0+Math.imul(c,C$)|0,I=Math.imul(c,t),v=v+Math.imul(p,m)|0,s0=s0+Math.imul(p,R$)|0,s0=s0+Math.imul(I$,m)|0,I=I+Math.imul(I$,R$)|0,v=v+Math.imul(X$,P$)|0,s0=s0+Math.imul(X$,O)|0,s0=s0+Math.imul(w,P$)|0,I=I+Math.imul(w,O)|0,v=v+Math.imul(B,e)|0,s0=s0+Math.imul(B,M$)|0,s0=s0+Math.imul(U$,e)|0,I=I+Math.imul(U$,M$)|0,v=v+Math.imul(G$,S$)|0,s0=s0+Math.imul(G$,F)|0,s0=s0+Math.imul(x,S$)|0,I=I+Math.imul(x,F)|0;var y$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(y$>>>26)|0,y$&=67108863,v=Math.imul(O$,m),s0=Math.imul(O$,R$),s0=s0+Math.imul(c,m)|0,I=Math.imul(c,R$),v=v+Math.imul(p,P$)|0,s0=s0+Math.imul(p,O)|0,s0=s0+Math.imul(I$,P$)|0,I=I+Math.imul(I$,O)|0,v=v+Math.imul(X$,e)|0,s0=s0+Math.imul(X$,M$)|0,s0=s0+Math.imul(w,e)|0,I=I+Math.imul(w,M$)|0,v=v+Math.imul(B,S$)|0,s0=s0+Math.imul(B,F)|0,s0=s0+Math.imul(U$,S$)|0,I=I+Math.imul(U$,F)|0;var Z0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Z0>>>26)|0,Z0&=67108863,v=Math.imul(O$,P$),s0=Math.imul(O$,O),s0=s0+Math.imul(c,P$)|0,I=Math.imul(c,O),v=v+Math.imul(p,e)|0,s0=s0+Math.imul(p,M$)|0,s0=s0+Math.imul(I$,e)|0,I=I+Math.imul(I$,M$)|0,v=v+Math.imul(X$,S$)|0,s0=s0+Math.imul(X$,F)|0,s0=s0+Math.imul(w,S$)|0,I=I+Math.imul(w,F)|0;var w$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(w$>>>26)|0,w$&=67108863,v=Math.imul(O$,e),s0=Math.imul(O$,M$),s0=s0+Math.imul(c,e)|0,I=Math.imul(c,M$),v=v+Math.imul(p,S$)|0,s0=s0+Math.imul(p,F)|0,s0=s0+Math.imul(I$,S$)|0,I=I+Math.imul(I$,F)|0;var G0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(G0>>>26)|0,G0&=67108863,v=Math.imul(O$,S$),s0=Math.imul(O$,F),s0=s0+Math.imul(c,S$)|0,I=Math.imul(c,F);var p$=(n0+v|0)+((s0&8191)<<13)|0;return n0=(I+(s0>>>13)|0)+(p$>>>26)|0,p$&=67108863,S[0]=v$,S[1]=r,S[2]=q$,S[3]=i,S[4]=j$,S[5]=k$,S[6]=g$,S[7]=_$,S[8]=N$,S[9]=$0,S[10]=x$,S[11]=Q0,S[12]=B$,S[13]=Y0,S[14]=y$,S[15]=Z0,S[16]=w$,S[17]=G0,S[18]=p$,n0!==0&&(S[19]=n0,o0.length++),o0};Math.imul||(p0=E);function T(l0,z,o0){o0.negative=z.negative^l0.negative,o0.length=l0.length+z.length;for(var M=0,u0=0,S=0;S>>26)|0,u0+=n0>>>26,n0&=67108863}o0.words[S]=v,M=n0,n0=u0}return M!==0?o0.words[S]=M:o0.length--,o0.strip()}function f0(l0,z,o0){var M=new D;return M.mulp(l0,z,o0)}Z.prototype.mulTo=function(l0,z){var o0,M=this.length+l0.length;return this.length===10&&l0.length===10?o0=p0(this,l0,z):M<63?o0=E(this,l0,z):M<1024?o0=T(this,l0,z):o0=f0(this,l0,z),o0};function D(l0,z){this.x=l0,this.y=z}D.prototype.makeRBT=function(l0){for(var z=new Array(l0),o0=Z.prototype._countBits(l0)-1,M=0;M>=1;return M},D.prototype.permute=function(l0,z,o0,M,u0,S){for(var n0=0;n0>>1)u0++;return 1<>>13,o0[2*S+1]=u0&8191,u0=u0>>>13;for(S=2*z;S>=26,z+=M/67108864|0,z+=u0>>>26,this.words[o0]=u0&67108863}return z!==0&&(this.words[o0]=z,this.length++),this},Z.prototype.muln=function(l0){return this.clone().imuln(l0)},Z.prototype.sqr=function(){return this.mul(this)},Z.prototype.isqr=function(){return this.imul(this.clone())},Z.prototype.pow=function(l0){var z=w0(l0);if(z.length===0)return new Z(1);for(var o0=this,M=0;M=0);var z=l0%26,o0=(l0-z)/26,M=67108863>>>26-z<<26-z,u0;if(z!==0){var S=0;for(u0=0;u0>>26-z}S&&(this.words[u0]=S,this.length++)}if(o0!==0){for(u0=this.length-1;u0>=0;u0--)this.words[u0+o0]=this.words[u0];for(u0=0;u0=0);var M;z?M=(z-z%26)/26:M=0;var u0=l0%26,S=Math.min((l0-u0)/26,this.length),n0=67108863^67108863>>>u0<S)for(this.length-=S,s0=0;s0=0&&(I!==0||s0>=M);s0--){var t0=this.words[s0]|0;this.words[s0]=I<<26-u0|t0>>>u0,I=t0&n0}return v&&I!==0&&(v.words[v.length++]=I),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},Z.prototype.ishrn=function(l0,z,o0){return Y(this.negative===0),this.iushrn(l0,z,o0)},Z.prototype.shln=function(l0){return this.clone().ishln(l0)},Z.prototype.ushln=function(l0){return this.clone().iushln(l0)},Z.prototype.shrn=function(l0){return this.clone().ishrn(l0)},Z.prototype.ushrn=function(l0){return this.clone().iushrn(l0)},Z.prototype.testn=function(l0){Y(typeof l0=="number"&&l0>=0);var z=l0%26,o0=(l0-z)/26,M=1<=0);var z=l0%26,o0=(l0-z)/26;if(Y(this.negative===0,"imaskn works only with positive numbers"),this.length<=o0)return this;if(z!==0&&o0++,this.length=Math.min(o0,this.length),z!==0){var M=67108863^67108863>>>z<=67108864;z++)this.words[z]-=67108864,z===this.length-1?this.words[z+1]=1:this.words[z+1]++;return this.length=Math.max(this.length,z+1),this},Z.prototype.isubn=function(l0){if(Y(typeof l0=="number"),Y(l0<67108864),l0<0)return this.iaddn(-l0);if(this.negative!==0)return this.negative=0,this.iaddn(l0),this.negative=1,this;if(this.words[0]-=l0,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var z=0;z>26)-(v/67108864|0),this.words[u0+o0]=S&67108863}for(;u0>26,this.words[u0+o0]=S&67108863;if(n0===0)return this.strip();for(Y(n0===-1),n0=0,u0=0;u0>26,this.words[u0]=S&67108863;return this.negative=1,this.strip()},Z.prototype._wordDiv=function(l0,z){var o0=this.length-l0.length,M=this.clone(),u0=l0,S=u0.words[u0.length-1]|0,n0=this._countBits(S);o0=26-n0,o0!==0&&(u0=u0.ushln(o0),M.iushln(o0),S=u0.words[u0.length-1]|0);var v=M.length-u0.length,s0;if(z!=="mod"){s0=new Z(null),s0.length=v+1,s0.words=new Array(s0.length);for(var I=0;I=0;m0--){var a0=(M.words[u0.length+m0]|0)*67108864+(M.words[u0.length+m0-1]|0);for(a0=Math.min(a0/S|0,67108863),M._ishlnsubmul(u0,a0,m0);M.negative!==0;)a0--,M.negative=0,M._ishlnsubmul(u0,1,m0),M.isZero()||(M.negative^=1);s0&&(s0.words[m0]=a0)}return s0&&s0.strip(),M.strip(),z!=="div"&&o0!==0&&M.iushrn(o0),{div:s0||null,mod:M}},Z.prototype.divmod=function(l0,z,o0){if(Y(!l0.isZero()),this.isZero())return{div:new Z(0),mod:new Z(0)};var M,u0,S;return this.negative!==0&&l0.negative===0?(S=this.neg().divmod(l0,z),z!=="mod"&&(M=S.div.neg()),z!=="div"&&(u0=S.mod.neg(),o0&&u0.negative!==0&&u0.iadd(l0)),{div:M,mod:u0}):this.negative===0&&l0.negative!==0?(S=this.divmod(l0.neg(),z),z!=="mod"&&(M=S.div.neg()),{div:M,mod:S.mod}):(this.negative&l0.negative)!==0?(S=this.neg().divmod(l0.neg(),z),z!=="div"&&(u0=S.mod.neg(),o0&&u0.negative!==0&&u0.isub(l0)),{div:S.div,mod:u0}):l0.length>this.length||this.cmp(l0)<0?{div:new Z(0),mod:this}:l0.length===1?z==="div"?{div:this.divn(l0.words[0]),mod:null}:z==="mod"?{div:null,mod:new Z(this.modn(l0.words[0]))}:{div:this.divn(l0.words[0]),mod:new Z(this.modn(l0.words[0]))}:this._wordDiv(l0,z)},Z.prototype.div=function(l0){return this.divmod(l0,"div",!1).div},Z.prototype.mod=function(l0){return this.divmod(l0,"mod",!1).mod},Z.prototype.umod=function(l0){return this.divmod(l0,"mod",!0).mod},Z.prototype.divRound=function(l0){var z=this.divmod(l0);if(z.mod.isZero())return z.div;var o0=z.div.negative!==0?z.mod.isub(l0):z.mod,M=l0.ushrn(1),u0=l0.andln(1),S=o0.cmp(M);return S<0||u0===1&&S===0?z.div:z.div.negative!==0?z.div.isubn(1):z.div.iaddn(1)},Z.prototype.modn=function(l0){Y(l0<=67108863);for(var z=(1<<26)%l0,o0=0,M=this.length-1;M>=0;M--)o0=(z*o0+(this.words[M]|0))%l0;return o0},Z.prototype.idivn=function(l0){Y(l0<=67108863);for(var z=0,o0=this.length-1;o0>=0;o0--){var M=(this.words[o0]|0)+z*67108864;this.words[o0]=M/l0|0,z=M%l0}return this.strip()},Z.prototype.divn=function(l0){return this.clone().idivn(l0)},Z.prototype.egcd=function(l0){Y(l0.negative===0),Y(!l0.isZero());var z=this,o0=l0.clone();z.negative!==0?z=z.umod(l0):z=z.clone();for(var M=new Z(1),u0=new Z(0),S=new Z(0),n0=new Z(1),v=0;z.isEven()&&o0.isEven();)z.iushrn(1),o0.iushrn(1),++v;for(var s0=o0.clone(),I=z.clone();!z.isZero();){for(var t0=0,m0=1;(z.words[0]&m0)===0&&t0<26;++t0,m0<<=1);if(t0>0)for(z.iushrn(t0);t0-- >0;)(M.isOdd()||u0.isOdd())&&(M.iadd(s0),u0.isub(I)),M.iushrn(1),u0.iushrn(1);for(var a0=0,q=1;(o0.words[0]&q)===0&&a0<26;++a0,q<<=1);if(a0>0)for(o0.iushrn(a0);a0-- >0;)(S.isOdd()||n0.isOdd())&&(S.iadd(s0),n0.isub(I)),S.iushrn(1),n0.iushrn(1);z.cmp(o0)>=0?(z.isub(o0),M.isub(S),u0.isub(n0)):(o0.isub(z),S.isub(M),n0.isub(u0))}return{a:S,b:n0,gcd:o0.iushln(v)}},Z.prototype._invmp=function(l0){Y(l0.negative===0),Y(!l0.isZero());var z=this,o0=l0.clone();z.negative!==0?z=z.umod(l0):z=z.clone();for(var M=new Z(1),u0=new Z(0),S=o0.clone();z.cmpn(1)>0&&o0.cmpn(1)>0;){for(var n0=0,v=1;(z.words[0]&v)===0&&n0<26;++n0,v<<=1);if(n0>0)for(z.iushrn(n0);n0-- >0;)M.isOdd()&&M.iadd(S),M.iushrn(1);for(var s0=0,I=1;(o0.words[0]&I)===0&&s0<26;++s0,I<<=1);if(s0>0)for(o0.iushrn(s0);s0-- >0;)u0.isOdd()&&u0.iadd(S),u0.iushrn(1);z.cmp(o0)>=0?(z.isub(o0),M.isub(u0)):(o0.isub(z),u0.isub(M))}var t0;return z.cmpn(1)===0?t0=M:t0=u0,t0.cmpn(0)<0&&t0.iadd(l0),t0},Z.prototype.gcd=function(l0){if(this.isZero())return l0.abs();if(l0.isZero())return this.abs();var z=this.clone(),o0=l0.clone();z.negative=0,o0.negative=0;for(var M=0;z.isEven()&&o0.isEven();M++)z.iushrn(1),o0.iushrn(1);do{for(;z.isEven();)z.iushrn(1);for(;o0.isEven();)o0.iushrn(1);var u0=z.cmp(o0);if(u0<0){var S=z;z=o0,o0=S}else if(u0===0||o0.cmpn(1)===0)break;z.isub(o0)}while(!0);return o0.iushln(M)},Z.prototype.invm=function(l0){return this.egcd(l0).a.umod(l0)},Z.prototype.isEven=function(){return(this.words[0]&1)===0},Z.prototype.isOdd=function(){return(this.words[0]&1)===1},Z.prototype.andln=function(l0){return this.words[0]&l0},Z.prototype.bincn=function(l0){Y(typeof l0=="number");var z=l0%26,o0=(l0-z)/26,M=1<>>26,n0&=67108863,this.words[S]=n0}return u0!==0&&(this.words[S]=u0,this.length++),this},Z.prototype.isZero=function(){return this.length===1&&this.words[0]===0},Z.prototype.cmpn=function(l0){var z=l0<0;if(this.negative!==0&&!z)return-1;if(this.negative===0&&z)return 1;this.strip();var o0;if(this.length>1)o0=1;else{z&&(l0=-l0),Y(l0<=67108863,"Number is too big");var M=this.words[0]|0;o0=M===l0?0:Ml0.length)return 1;if(this.length=0;o0--){var M=this.words[o0]|0,u0=l0.words[o0]|0;if(M!==u0){Mu0&&(z=1);break}}return z},Z.prototype.gtn=function(l0){return this.cmpn(l0)===1},Z.prototype.gt=function(l0){return this.cmp(l0)===1},Z.prototype.gten=function(l0){return this.cmpn(l0)>=0},Z.prototype.gte=function(l0){return this.cmp(l0)>=0},Z.prototype.ltn=function(l0){return this.cmpn(l0)===-1},Z.prototype.lt=function(l0){return this.cmp(l0)===-1},Z.prototype.lten=function(l0){return this.cmpn(l0)<=0},Z.prototype.lte=function(l0){return this.cmp(l0)<=0},Z.prototype.eqn=function(l0){return this.cmpn(l0)===0},Z.prototype.eq=function(l0){return this.cmp(l0)===0},Z.red=function(l0){return new b0(l0)},Z.prototype.toRed=function(l0){return Y(!this.red,"Already a number in reduction context"),Y(this.negative===0,"red works only with positives"),l0.convertTo(this)._forceRed(l0)},Z.prototype.fromRed=function(){return Y(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},Z.prototype._forceRed=function(l0){return this.red=l0,this},Z.prototype.forceRed=function(l0){return Y(!this.red,"Already a number in reduction context"),this._forceRed(l0)},Z.prototype.redAdd=function(l0){return Y(this.red,"redAdd works only with red numbers"),this.red.add(this,l0)},Z.prototype.redIAdd=function(l0){return Y(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,l0)},Z.prototype.redSub=function(l0){return Y(this.red,"redSub works only with red numbers"),this.red.sub(this,l0)},Z.prototype.redISub=function(l0){return Y(this.red,"redISub works only with red numbers"),this.red.isub(this,l0)},Z.prototype.redShl=function(l0){return Y(this.red,"redShl works only with red numbers"),this.red.shl(this,l0)},Z.prototype.redMul=function(l0){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,l0),this.red.mul(this,l0)},Z.prototype.redIMul=function(l0){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,l0),this.red.imul(this,l0)},Z.prototype.redSqr=function(){return Y(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},Z.prototype.redISqr=function(){return Y(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},Z.prototype.redSqrt=function(){return Y(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},Z.prototype.redInvm=function(){return Y(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},Z.prototype.redNeg=function(){return Y(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},Z.prototype.redPow=function(l0){return Y(this.red&&!l0.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,l0)};var c0={k256:null,p224:null,p192:null,p25519:null};function C(l0,z){this.name=l0,this.p=new Z(z,16),this.n=this.p.bitLength(),this.k=new Z(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}C.prototype._tmp=function(){var l0=new Z(null);return l0.words=new Array(Math.ceil(this.n/13)),l0},C.prototype.ireduce=function(l0){var z=l0,o0;do this.split(z,this.tmp),z=this.imulK(z),z=z.iadd(this.tmp),o0=z.bitLength();while(o0>this.n);var M=o00?z.isub(this.p):z.strip!==void 0?z.strip():z._strip(),z},C.prototype.split=function(l0,z){l0.iushrn(this.n,0,z)},C.prototype.imulK=function(l0){return l0.imul(this.k)};function h0(){C.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}$(h0,C),h0.prototype.split=function(l0,z){for(var o0=4194303,M=Math.min(l0.length,9),u0=0;u0>>22,S=n0}S>>>=22,l0.words[u0-10]=S,S===0&&l0.length>10?l0.length-=10:l0.length-=9},h0.prototype.imulK=function(l0){l0.words[l0.length]=0,l0.words[l0.length+1]=0,l0.length+=2;for(var z=0,o0=0;o0>>=26,l0.words[o0]=u0,z=M}return z!==0&&(l0.words[l0.length++]=z),l0},Z._prime=function(l0){if(c0[l0])return c0[l0];var z;if(l0==="k256")z=new h0;else if(l0==="p224")z=new L;else if(l0==="p192")z=new d0;else if(l0==="p25519")z=new R;else throw new Error("Unknown prime "+l0);return c0[l0]=z,z};function b0(l0){if(typeof l0=="string"){var z=Z._prime(l0);this.m=z.p,this.prime=z}else Y(l0.gtn(1),"modulus must be greater than 1"),this.m=l0,this.prime=null}b0.prototype._verify1=function(l0){Y(l0.negative===0,"red works only with positives"),Y(l0.red,"red works only with red numbers")},b0.prototype._verify2=function(l0,z){Y((l0.negative|z.negative)===0,"red works only with positives"),Y(l0.red&&l0.red===z.red,"red works only with red numbers")},b0.prototype.imod=function(l0){return this.prime?this.prime.ireduce(l0)._forceRed(this):l0.umod(this.m)._forceRed(this)},b0.prototype.neg=function(l0){return l0.isZero()?l0.clone():this.m.sub(l0)._forceRed(this)},b0.prototype.add=function(l0,z){this._verify2(l0,z);var o0=l0.add(z);return o0.cmp(this.m)>=0&&o0.isub(this.m),o0._forceRed(this)},b0.prototype.iadd=function(l0,z){this._verify2(l0,z);var o0=l0.iadd(z);return o0.cmp(this.m)>=0&&o0.isub(this.m),o0},b0.prototype.sub=function(l0,z){this._verify2(l0,z);var o0=l0.sub(z);return o0.cmpn(0)<0&&o0.iadd(this.m),o0._forceRed(this)},b0.prototype.isub=function(l0,z){this._verify2(l0,z);var o0=l0.isub(z);return o0.cmpn(0)<0&&o0.iadd(this.m),o0},b0.prototype.shl=function(l0,z){return this._verify1(l0),this.imod(l0.ushln(z))},b0.prototype.imul=function(l0,z){return this._verify2(l0,z),this.imod(l0.imul(z))},b0.prototype.mul=function(l0,z){return this._verify2(l0,z),this.imod(l0.mul(z))},b0.prototype.isqr=function(l0){return this.imul(l0,l0.clone())},b0.prototype.sqr=function(l0){return this.mul(l0,l0)},b0.prototype.sqrt=function(l0){if(l0.isZero())return l0.clone();var z=this.m.andln(3);if(Y(z%2===1),z===3){var o0=this.m.add(new Z(1)).iushrn(2);return this.pow(l0,o0)}for(var M=this.m.subn(1),u0=0;!M.isZero()&&M.andln(1)===0;)u0++,M.iushrn(1);Y(!M.isZero());var S=new Z(1).toRed(this),n0=S.redNeg(),v=this.m.subn(1).iushrn(1),s0=this.m.bitLength();for(s0=new Z(2*s0*s0).toRed(this);this.pow(s0,v).cmp(n0)!==0;)s0.redIAdd(n0);for(var I=this.pow(s0,M),t0=this.pow(l0,M.addn(1).iushrn(1)),m0=this.pow(l0,M),a0=u0;m0.cmp(S)!==0;){for(var q=m0,e0=0;q.cmp(S)!==0;e0++)q=q.redSqr();Y(e0=0;u0--){for(var I=z.words[u0],t0=s0-1;t0>=0;t0--){var m0=I>>t0&1;if(S!==M[0]&&(S=this.sqr(S)),m0===0&&n0===0){v=0;continue}n0<<=1,n0|=m0,v++,!(v!==o0&&(u0!==0||t0!==0))&&(S=this.mul(S,M[n0]),v=0,n0=0)}s0=26}return S},b0.prototype.convertTo=function(l0){var z=l0.umod(this.m);return z===l0?z.clone():z},b0.prototype.convertFrom=function(l0){var z=l0.clone();return z.red=null,z},Z.mont=function(l0){return new P(l0)};function P(l0){b0.call(this,l0),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new Z(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}$(P,b0),P.prototype.convertTo=function(l0){return this.imod(l0.ushln(this.shift))},P.prototype.convertFrom=function(l0){var z=this.imod(l0.mul(this.rinv));return z.red=null,z},P.prototype.imul=function(l0,z){if(l0.isZero()||z.isZero())return l0.words[0]=0,l0.length=1,l0;var o0=l0.imul(z),M=o0.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u0=o0.isub(M).iushrn(this.shift),S=u0;return u0.cmp(this.m)>=0?S=u0.isub(this.m):u0.cmpn(0)<0&&(S=u0.iadd(this.m)),S._forceRed(this)},P.prototype.mul=function(l0,z){if(l0.isZero()||z.isZero())return new Z(0)._forceRed(this);var o0=l0.mul(z),M=o0.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u0=o0.isub(M).iushrn(this.shift),S=u0;return u0.cmp(this.m)>=0?S=u0.isub(this.m):u0.cmpn(0)<0&&(S=u0.iadd(this.m)),S._forceRed(this)},P.prototype.invm=function(l0){var z=this.imod(l0._invmp(this.m).mul(this.r2));return z._forceRed(this)}})(typeof K>"u"||K,X)}}),NQ=$Q({"(disabled):node_modules/crypto-browserify/index.js"(){}}),xQ=$Q({"node_modules/brorand/index.js"(X,K){var x0;K.exports=function(Y){return x0||(x0=new G(null)),x0.generate(Y)};function G(Y){this.rand=Y}K.exports.Rand=G,G.prototype.generate=function(Y){return this._rand(Y)},G.prototype._rand=function(Y){var $=new c$(Y);return d$.getRandomValues($),$}}}),BQ=$Q({"node_modules/miller-rabin/lib/mr.js"(X,K){var x0=_Q(),G=xQ();function Y($){this.rand=$||new G.Rand}K.exports=Y,Y.create=function($){return new Y($)},Y.prototype._randbelow=function($){var Z=$.bitLength(),Q=Math.ceil(Z/8);do var U=new x0(this.rand.generate(Q));while(U.cmp($)>=0);return U},Y.prototype._randrange=function($,Z){var Q=Z.sub($);return $.add(this._randbelow(Q))},Y.prototype.test=function($,Z,Q){var U=$.bitLength(),V=x0.mont($),B0=new x0(1).toRed(V);Z||(Z=Math.max(1,U/48|0));for(var H=$.subn(1),y0=0;!H.testn(y0);y0++);for(var W=$.shrn(y0),w0=H.toRed(V),E=!0;Z>0;Z--){var p0=this._randrange(new x0(2),H);Q&&Q(p0);var T=p0.toRed(V).redPow(W);if(!(T.cmp(B0)===0||T.cmp(w0)===0)){for(var f0=1;f00;Z--){var w0=this._randrange(new x0(2),B0),E=$.gcd(w0);if(E.cmpn(1)!==0)return E;var p0=w0.toRed(U).redPow(y0);if(!(p0.cmp(V)===0||p0.cmp(W)===0)){for(var T=1;TL;)R.ishrn(1);if(R.isEven()&&R.iadd(Q),R.testn(1)||R.iadd(U),d0.cmp(U)){if(!d0.cmp(V))for(;R.mod(y0).cmp(W);)R.iadd(p0)}else for(;R.mod(Y).cmp(E);)R.iadd(p0);if(b0=R.shrn(1),c0(b0)&&c0(R)&&C(b0)&&C(R)&&Z.test(b0)&&Z.test(R))return R}}}}),wQ=$Q({"node_modules/diffie-hellman/lib/primes.json"(X,K){K.exports={modp1:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},modp2:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},modp5:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},modp14:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},modp15:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},modp16:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},modp17:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},modp18:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}}}),pQ=$Q({"node_modules/diffie-hellman/lib/dh.js"(X,K){var x0=A(),G=BQ(),Y=new G,$=new x0(24),Z=new x0(11),Q=new x0(10),U=new x0(3),V=new x0(7),B0=yQ(),H=ZQ();K.exports=p0;function y0(f0,D){return D=D||"utf8",c$.isBuffer(f0)||(f0=new c$(f0,D)),this._pub=new x0(f0),this}function W(f0,D){return D=D||"utf8",c$.isBuffer(f0)||(f0=new c$(f0,D)),this._priv=new x0(f0),this}var w0={};function E(f0,D){var c0=D.toString("hex"),C=[c0,f0.toString(16)].join("_");if(C in w0)return w0[C];var h0=0;if(f0.isEven()||!B0.simpleSieve||!B0.fermatTest(f0)||!Y.test(f0))return h0+=1,c0==="02"||c0==="05"?h0+=8:h0+=4,w0[C]=h0,h0;Y.test(f0.shrn(1))||(h0+=2);var L;switch(c0){case"02":f0.mod($).cmp(Z)&&(h0+=8);break;case"05":L=f0.mod(Q),L.cmp(U)&&L.cmp(V)&&(h0+=8);break;default:h0+=4}return w0[C]=h0,h0}function p0(f0,D,c0){this.setGenerator(D),this.__prime=new x0(f0),this._prime=x0.mont(this.__prime),this._primeLen=f0.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,c0?(this.setPublicKey=y0,this.setPrivateKey=W):this._primeCode=8}Object.defineProperty(p0.prototype,"verifyError",{enumerable:!0,get:function(){return typeof this._primeCode!="number"&&(this._primeCode=E(this.__prime,this.__gen)),this._primeCode}}),p0.prototype.generateKeys=function(){return this._priv||(this._priv=new x0(H(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},p0.prototype.computeSecret=function(f0){f0=new x0(f0),f0=f0.toRed(this._prime);var D=f0.redPow(this._priv).fromRed(),c0=new c$(D.toArray()),C=this.getPrime();if(c0.length0?M:u0},Z.min=function(M,u0){return M.cmp(u0)<0?M:u0},Z.prototype._init=function(M,u0,S){if(typeof M=="number")return this._initNumber(M,u0,S);if(typeof M=="object")return this._initArray(M,u0,S);u0==="hex"&&(u0=16),Y(u0===(u0|0)&&u0>=2&&u0<=36),M=M.toString().replace(/\s+/g,"");var n0=0;M[0]==="-"&&(n0++,this.negative=1),n0=0;n0-=3)s0=M[n0]|M[n0-1]<<8|M[n0-2]<<16,this.words[v]|=s0<>>26-I&67108863,I+=24,I>=26&&(I-=26,v++);else if(S==="le")for(n0=0,v=0;n0>>26-I&67108863,I+=24,I>=26&&(I-=26,v++);return this._strip()};function U(M,u0){var S=M.charCodeAt(u0);if(S>=48&&S<=57)return S-48;if(S>=65&&S<=70)return S-55;if(S>=97&&S<=102)return S-87;Y(!1,"Invalid character in "+M)}function V(M,u0,S){var n0=U(M,S);return S-1>=u0&&(n0|=U(M,S-1)<<4),n0}Z.prototype._parseHex=function(M,u0,S){this.length=Math.ceil((M.length-u0)/6),this.words=new Array(this.length);for(var n0=0;n0=u0;n0-=2)I=V(M,u0,n0)<=18?(v-=18,s0+=1,this.words[s0]|=I>>>26):v+=8;else{var t0=M.length-u0;for(n0=t0%2===0?u0+1:u0;n0=18?(v-=18,s0+=1,this.words[s0]|=I>>>26):v+=8}this._strip()};function B0(M,u0,S,n0){for(var v=0,s0=0,I=Math.min(M.length,S),t0=u0;t0=49?s0=m0-49+10:m0>=17?s0=m0-17+10:s0=m0,Y(m0>=0&&s01&&this.words[this.length-1]===0;)this.length--;return this._normSign()},Z.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{Z.prototype[Symbol.for("nodejs.util.inspect.custom")]=y0}catch{Z.prototype.inspect=y0}else Z.prototype.inspect=y0;function y0(){return(this.red?""}var W=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],w0=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],E=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];Z.prototype.toString=function(M,u0){M=M||10,u0=u0|0||1;var S;if(M===16||M==="hex"){S="";for(var n0=0,v=0,s0=0;s0>>24-n0&16777215,n0+=2,n0>=26&&(n0-=26,s0--),v!==0||s0!==this.length-1?S=W[6-t0.length]+t0+S:S=t0+S}for(v!==0&&(S=v.toString(16)+S);S.length%u0!==0;)S="0"+S;return this.negative!==0&&(S="-"+S),S}if(M===(M|0)&&M>=2&&M<=36){var m0=w0[M],a0=E[M];S="";var q=this.clone();for(q.negative=0;!q.isZero();){var e0=q.modrn(a0).toString(M);q=q.idivn(a0),q.isZero()?S=e0+S:S=W[m0-e0.length]+e0+S}for(this.isZero()&&(S="0"+S);S.length%u0!==0;)S="0"+S;return this.negative!==0&&(S="-"+S),S}Y(!1,"Base should be between 2 and 36")},Z.prototype.toNumber=function(){var M=this.words[0];return this.length===2?M+=this.words[1]*67108864:this.length===3&&this.words[2]===1?M+=4503599627370496+this.words[1]*67108864:this.length>2&&Y(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-M:M},Z.prototype.toJSON=function(){return this.toString(16,2)},Q&&(Z.prototype.toBuffer=function(M,u0){return this.toArrayLike(Q,M,u0)}),Z.prototype.toArray=function(M,u0){return this.toArrayLike(Array,M,u0)};var p0=function(M,u0){return M.allocUnsafe?M.allocUnsafe(u0):new M(u0)};Z.prototype.toArrayLike=function(M,u0,S){this._strip();var n0=this.byteLength(),v=S||Math.max(1,n0);Y(n0<=v,"byte array longer than desired length"),Y(v>0,"Requested array length <= 0");var s0=p0(M,v),I=u0==="le"?"LE":"BE";return this["_toArrayLike"+I](s0,n0),s0},Z.prototype._toArrayLikeLE=function(M,u0){for(var S=0,n0=0,v=0,s0=0;v>8&255),S>16&255),s0===6?(S>24&255),n0=0,s0=0):(n0=I>>>24,s0+=2)}if(S=0&&(M[S--]=I>>8&255),S>=0&&(M[S--]=I>>16&255),s0===6?(S>=0&&(M[S--]=I>>24&255),n0=0,s0=0):(n0=I>>>24,s0+=2)}if(S>=0)for(M[S--]=n0;S>=0;)M[S--]=0},Math.clz32?Z.prototype._countBits=function(M){return 32-Math.clz32(M)}:Z.prototype._countBits=function(M){var u0=M,S=0;return u0>=4096&&(S+=13,u0>>>=13),u0>=64&&(S+=7,u0>>>=7),u0>=8&&(S+=4,u0>>>=4),u0>=2&&(S+=2,u0>>>=2),S+u0},Z.prototype._zeroBits=function(M){if(M===0)return 26;var u0=M,S=0;return(u0&8191)===0&&(S+=13,u0>>>=13),(u0&127)===0&&(S+=7,u0>>>=7),(u0&15)===0&&(S+=4,u0>>>=4),(u0&3)===0&&(S+=2,u0>>>=2),(u0&1)===0&&S++,S},Z.prototype.bitLength=function(){var M=this.words[this.length-1],u0=this._countBits(M);return(this.length-1)*26+u0};function T(M){for(var u0=new Array(M.bitLength()),S=0;S>>v&1}return u0}Z.prototype.zeroBits=function(){if(this.isZero())return 0;for(var M=0,u0=0;u0M.length?this.clone().ior(M):M.clone().ior(this)},Z.prototype.uor=function(M){return this.length>M.length?this.clone().iuor(M):M.clone().iuor(this)},Z.prototype.iuand=function(M){var u0;this.length>M.length?u0=M:u0=this;for(var S=0;SM.length?this.clone().iand(M):M.clone().iand(this)},Z.prototype.uand=function(M){return this.length>M.length?this.clone().iuand(M):M.clone().iuand(this)},Z.prototype.iuxor=function(M){var u0,S;this.length>M.length?(u0=this,S=M):(u0=M,S=this);for(var n0=0;n0M.length?this.clone().ixor(M):M.clone().ixor(this)},Z.prototype.uxor=function(M){return this.length>M.length?this.clone().iuxor(M):M.clone().iuxor(this)},Z.prototype.inotn=function(M){Y(typeof M=="number"&&M>=0);var u0=Math.ceil(M/26)|0,S=M%26;this._expand(u0),S>0&&u0--;for(var n0=0;n00&&(this.words[n0]=~this.words[n0]&67108863>>26-S),this._strip()},Z.prototype.notn=function(M){return this.clone().inotn(M)},Z.prototype.setn=function(M,u0){Y(typeof M=="number"&&M>=0);var S=M/26|0,n0=M%26;return this._expand(S+1),u0?this.words[S]=this.words[S]|1<M.length?(S=this,n0=M):(S=M,n0=this);for(var v=0,s0=0;s0>>26;for(;v!==0&&s0>>26;if(this.length=S.length,v!==0)this.words[this.length]=v,this.length++;else if(S!==this)for(;s0M.length?this.clone().iadd(M):M.clone().iadd(this)},Z.prototype.isub=function(M){if(M.negative!==0){M.negative=0;var u0=this.iadd(M);return M.negative=1,u0._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(M),this.negative=1,this._normSign();var S=this.cmp(M);if(S===0)return this.negative=0,this.length=1,this.words[0]=0,this;var n0,v;S>0?(n0=this,v=M):(n0=M,v=this);for(var s0=0,I=0;I>26,this.words[I]=u0&67108863;for(;s0!==0&&I>26,this.words[I]=u0&67108863;if(s0===0&&I>>26,e0=m0&67108863,r0=Math.min(a0,u0.length-1),i0=Math.max(0,a0-M.length+1);i0<=r0;i0++){var j=a0-i0|0;v=M.words[j]|0,s0=u0.words[i0]|0,I=v*s0+e0,q+=I/67108864|0,e0=I&67108863}S.words[a0]=e0|0,m0=q|0}return m0!==0?S.words[a0]=m0|0:S.length--,S._strip()}var D=function(M,u0,S){var n0=M.words,v=u0.words,s0=S.words,I=0,t0,m0,a0,q=n0[0]|0,e0=q&8191,r0=q>>>13,i0=n0[1]|0,j=i0&8191,$$=i0>>>13,k=n0[2]|0,Q$=k&8191,g=k>>>13,Y$=n0[3]|0,_=Y$&8191,Z$=Y$>>>13,N=n0[4]|0,G$=N&8191,x=N>>>13,V$=n0[5]|0,B=V$&8191,U$=V$>>>13,y=n0[6]|0,X$=y&8191,w=y>>>13,K$=n0[7]|0,p=K$&8191,I$=K$>>>13,f=n0[8]|0,O$=f&8191,c=f>>>13,J$=n0[9]|0,h=J$&8191,F$=J$>>>13,d=v[0]|0,A$=d&8191,b=d>>>13,H$=v[1]|0,l=H$&8191,W$=H$>>>13,o=v[2]|0,E$=o&8191,u=o>>>13,T$=v[3]|0,n=T$&8191,D$=T$>>>13,s=v[4]|0,C$=s&8191,t=s>>>13,L$=v[5]|0,m=L$&8191,R$=L$>>>13,a=v[6]|0,P$=a&8191,O=a>>>13,z$=v[7]|0,e=z$&8191,M$=z$>>>13,J=v[8]|0,S$=J&8191,F=J>>>13,v$=v[9]|0,r=v$&8191,q$=v$>>>13;S.negative=M.negative^u0.negative,S.length=19,t0=Math.imul(e0,A$),m0=Math.imul(e0,b),m0=m0+Math.imul(r0,A$)|0,a0=Math.imul(r0,b);var i=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(i>>>26)|0,i&=67108863,t0=Math.imul(j,A$),m0=Math.imul(j,b),m0=m0+Math.imul($$,A$)|0,a0=Math.imul($$,b),t0=t0+Math.imul(e0,l)|0,m0=m0+Math.imul(e0,W$)|0,m0=m0+Math.imul(r0,l)|0,a0=a0+Math.imul(r0,W$)|0;var j$=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(j$>>>26)|0,j$&=67108863,t0=Math.imul(Q$,A$),m0=Math.imul(Q$,b),m0=m0+Math.imul(g,A$)|0,a0=Math.imul(g,b),t0=t0+Math.imul(j,l)|0,m0=m0+Math.imul(j,W$)|0,m0=m0+Math.imul($$,l)|0,a0=a0+Math.imul($$,W$)|0,t0=t0+Math.imul(e0,E$)|0,m0=m0+Math.imul(e0,u)|0,m0=m0+Math.imul(r0,E$)|0,a0=a0+Math.imul(r0,u)|0;var k$=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(k$>>>26)|0,k$&=67108863,t0=Math.imul(_,A$),m0=Math.imul(_,b),m0=m0+Math.imul(Z$,A$)|0,a0=Math.imul(Z$,b),t0=t0+Math.imul(Q$,l)|0,m0=m0+Math.imul(Q$,W$)|0,m0=m0+Math.imul(g,l)|0,a0=a0+Math.imul(g,W$)|0,t0=t0+Math.imul(j,E$)|0,m0=m0+Math.imul(j,u)|0,m0=m0+Math.imul($$,E$)|0,a0=a0+Math.imul($$,u)|0,t0=t0+Math.imul(e0,n)|0,m0=m0+Math.imul(e0,D$)|0,m0=m0+Math.imul(r0,n)|0,a0=a0+Math.imul(r0,D$)|0;var g$=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(g$>>>26)|0,g$&=67108863,t0=Math.imul(G$,A$),m0=Math.imul(G$,b),m0=m0+Math.imul(x,A$)|0,a0=Math.imul(x,b),t0=t0+Math.imul(_,l)|0,m0=m0+Math.imul(_,W$)|0,m0=m0+Math.imul(Z$,l)|0,a0=a0+Math.imul(Z$,W$)|0,t0=t0+Math.imul(Q$,E$)|0,m0=m0+Math.imul(Q$,u)|0,m0=m0+Math.imul(g,E$)|0,a0=a0+Math.imul(g,u)|0,t0=t0+Math.imul(j,n)|0,m0=m0+Math.imul(j,D$)|0,m0=m0+Math.imul($$,n)|0,a0=a0+Math.imul($$,D$)|0,t0=t0+Math.imul(e0,C$)|0,m0=m0+Math.imul(e0,t)|0,m0=m0+Math.imul(r0,C$)|0,a0=a0+Math.imul(r0,t)|0;var _$=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(_$>>>26)|0,_$&=67108863,t0=Math.imul(B,A$),m0=Math.imul(B,b),m0=m0+Math.imul(U$,A$)|0,a0=Math.imul(U$,b),t0=t0+Math.imul(G$,l)|0,m0=m0+Math.imul(G$,W$)|0,m0=m0+Math.imul(x,l)|0,a0=a0+Math.imul(x,W$)|0,t0=t0+Math.imul(_,E$)|0,m0=m0+Math.imul(_,u)|0,m0=m0+Math.imul(Z$,E$)|0,a0=a0+Math.imul(Z$,u)|0,t0=t0+Math.imul(Q$,n)|0,m0=m0+Math.imul(Q$,D$)|0,m0=m0+Math.imul(g,n)|0,a0=a0+Math.imul(g,D$)|0,t0=t0+Math.imul(j,C$)|0,m0=m0+Math.imul(j,t)|0,m0=m0+Math.imul($$,C$)|0,a0=a0+Math.imul($$,t)|0,t0=t0+Math.imul(e0,m)|0,m0=m0+Math.imul(e0,R$)|0,m0=m0+Math.imul(r0,m)|0,a0=a0+Math.imul(r0,R$)|0;var N$=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(N$>>>26)|0,N$&=67108863,t0=Math.imul(X$,A$),m0=Math.imul(X$,b),m0=m0+Math.imul(w,A$)|0,a0=Math.imul(w,b),t0=t0+Math.imul(B,l)|0,m0=m0+Math.imul(B,W$)|0,m0=m0+Math.imul(U$,l)|0,a0=a0+Math.imul(U$,W$)|0,t0=t0+Math.imul(G$,E$)|0,m0=m0+Math.imul(G$,u)|0,m0=m0+Math.imul(x,E$)|0,a0=a0+Math.imul(x,u)|0,t0=t0+Math.imul(_,n)|0,m0=m0+Math.imul(_,D$)|0,m0=m0+Math.imul(Z$,n)|0,a0=a0+Math.imul(Z$,D$)|0,t0=t0+Math.imul(Q$,C$)|0,m0=m0+Math.imul(Q$,t)|0,m0=m0+Math.imul(g,C$)|0,a0=a0+Math.imul(g,t)|0,t0=t0+Math.imul(j,m)|0,m0=m0+Math.imul(j,R$)|0,m0=m0+Math.imul($$,m)|0,a0=a0+Math.imul($$,R$)|0,t0=t0+Math.imul(e0,P$)|0,m0=m0+Math.imul(e0,O)|0,m0=m0+Math.imul(r0,P$)|0,a0=a0+Math.imul(r0,O)|0;var $0=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+($0>>>26)|0,$0&=67108863,t0=Math.imul(p,A$),m0=Math.imul(p,b),m0=m0+Math.imul(I$,A$)|0,a0=Math.imul(I$,b),t0=t0+Math.imul(X$,l)|0,m0=m0+Math.imul(X$,W$)|0,m0=m0+Math.imul(w,l)|0,a0=a0+Math.imul(w,W$)|0,t0=t0+Math.imul(B,E$)|0,m0=m0+Math.imul(B,u)|0,m0=m0+Math.imul(U$,E$)|0,a0=a0+Math.imul(U$,u)|0,t0=t0+Math.imul(G$,n)|0,m0=m0+Math.imul(G$,D$)|0,m0=m0+Math.imul(x,n)|0,a0=a0+Math.imul(x,D$)|0,t0=t0+Math.imul(_,C$)|0,m0=m0+Math.imul(_,t)|0,m0=m0+Math.imul(Z$,C$)|0,a0=a0+Math.imul(Z$,t)|0,t0=t0+Math.imul(Q$,m)|0,m0=m0+Math.imul(Q$,R$)|0,m0=m0+Math.imul(g,m)|0,a0=a0+Math.imul(g,R$)|0,t0=t0+Math.imul(j,P$)|0,m0=m0+Math.imul(j,O)|0,m0=m0+Math.imul($$,P$)|0,a0=a0+Math.imul($$,O)|0,t0=t0+Math.imul(e0,e)|0,m0=m0+Math.imul(e0,M$)|0,m0=m0+Math.imul(r0,e)|0,a0=a0+Math.imul(r0,M$)|0;var x$=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(x$>>>26)|0,x$&=67108863,t0=Math.imul(O$,A$),m0=Math.imul(O$,b),m0=m0+Math.imul(c,A$)|0,a0=Math.imul(c,b),t0=t0+Math.imul(p,l)|0,m0=m0+Math.imul(p,W$)|0,m0=m0+Math.imul(I$,l)|0,a0=a0+Math.imul(I$,W$)|0,t0=t0+Math.imul(X$,E$)|0,m0=m0+Math.imul(X$,u)|0,m0=m0+Math.imul(w,E$)|0,a0=a0+Math.imul(w,u)|0,t0=t0+Math.imul(B,n)|0,m0=m0+Math.imul(B,D$)|0,m0=m0+Math.imul(U$,n)|0,a0=a0+Math.imul(U$,D$)|0,t0=t0+Math.imul(G$,C$)|0,m0=m0+Math.imul(G$,t)|0,m0=m0+Math.imul(x,C$)|0,a0=a0+Math.imul(x,t)|0,t0=t0+Math.imul(_,m)|0,m0=m0+Math.imul(_,R$)|0,m0=m0+Math.imul(Z$,m)|0,a0=a0+Math.imul(Z$,R$)|0,t0=t0+Math.imul(Q$,P$)|0,m0=m0+Math.imul(Q$,O)|0,m0=m0+Math.imul(g,P$)|0,a0=a0+Math.imul(g,O)|0,t0=t0+Math.imul(j,e)|0,m0=m0+Math.imul(j,M$)|0,m0=m0+Math.imul($$,e)|0,a0=a0+Math.imul($$,M$)|0,t0=t0+Math.imul(e0,S$)|0,m0=m0+Math.imul(e0,F)|0,m0=m0+Math.imul(r0,S$)|0,a0=a0+Math.imul(r0,F)|0;var Q0=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(Q0>>>26)|0,Q0&=67108863,t0=Math.imul(h,A$),m0=Math.imul(h,b),m0=m0+Math.imul(F$,A$)|0,a0=Math.imul(F$,b),t0=t0+Math.imul(O$,l)|0,m0=m0+Math.imul(O$,W$)|0,m0=m0+Math.imul(c,l)|0,a0=a0+Math.imul(c,W$)|0,t0=t0+Math.imul(p,E$)|0,m0=m0+Math.imul(p,u)|0,m0=m0+Math.imul(I$,E$)|0,a0=a0+Math.imul(I$,u)|0,t0=t0+Math.imul(X$,n)|0,m0=m0+Math.imul(X$,D$)|0,m0=m0+Math.imul(w,n)|0,a0=a0+Math.imul(w,D$)|0,t0=t0+Math.imul(B,C$)|0,m0=m0+Math.imul(B,t)|0,m0=m0+Math.imul(U$,C$)|0,a0=a0+Math.imul(U$,t)|0,t0=t0+Math.imul(G$,m)|0,m0=m0+Math.imul(G$,R$)|0,m0=m0+Math.imul(x,m)|0,a0=a0+Math.imul(x,R$)|0,t0=t0+Math.imul(_,P$)|0,m0=m0+Math.imul(_,O)|0,m0=m0+Math.imul(Z$,P$)|0,a0=a0+Math.imul(Z$,O)|0,t0=t0+Math.imul(Q$,e)|0,m0=m0+Math.imul(Q$,M$)|0,m0=m0+Math.imul(g,e)|0,a0=a0+Math.imul(g,M$)|0,t0=t0+Math.imul(j,S$)|0,m0=m0+Math.imul(j,F)|0,m0=m0+Math.imul($$,S$)|0,a0=a0+Math.imul($$,F)|0,t0=t0+Math.imul(e0,r)|0,m0=m0+Math.imul(e0,q$)|0,m0=m0+Math.imul(r0,r)|0,a0=a0+Math.imul(r0,q$)|0;var B$=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(B$>>>26)|0,B$&=67108863,t0=Math.imul(h,l),m0=Math.imul(h,W$),m0=m0+Math.imul(F$,l)|0,a0=Math.imul(F$,W$),t0=t0+Math.imul(O$,E$)|0,m0=m0+Math.imul(O$,u)|0,m0=m0+Math.imul(c,E$)|0,a0=a0+Math.imul(c,u)|0,t0=t0+Math.imul(p,n)|0,m0=m0+Math.imul(p,D$)|0,m0=m0+Math.imul(I$,n)|0,a0=a0+Math.imul(I$,D$)|0,t0=t0+Math.imul(X$,C$)|0,m0=m0+Math.imul(X$,t)|0,m0=m0+Math.imul(w,C$)|0,a0=a0+Math.imul(w,t)|0,t0=t0+Math.imul(B,m)|0,m0=m0+Math.imul(B,R$)|0,m0=m0+Math.imul(U$,m)|0,a0=a0+Math.imul(U$,R$)|0,t0=t0+Math.imul(G$,P$)|0,m0=m0+Math.imul(G$,O)|0,m0=m0+Math.imul(x,P$)|0,a0=a0+Math.imul(x,O)|0,t0=t0+Math.imul(_,e)|0,m0=m0+Math.imul(_,M$)|0,m0=m0+Math.imul(Z$,e)|0,a0=a0+Math.imul(Z$,M$)|0,t0=t0+Math.imul(Q$,S$)|0,m0=m0+Math.imul(Q$,F)|0,m0=m0+Math.imul(g,S$)|0,a0=a0+Math.imul(g,F)|0,t0=t0+Math.imul(j,r)|0,m0=m0+Math.imul(j,q$)|0,m0=m0+Math.imul($$,r)|0,a0=a0+Math.imul($$,q$)|0;var Y0=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(Y0>>>26)|0,Y0&=67108863,t0=Math.imul(h,E$),m0=Math.imul(h,u),m0=m0+Math.imul(F$,E$)|0,a0=Math.imul(F$,u),t0=t0+Math.imul(O$,n)|0,m0=m0+Math.imul(O$,D$)|0,m0=m0+Math.imul(c,n)|0,a0=a0+Math.imul(c,D$)|0,t0=t0+Math.imul(p,C$)|0,m0=m0+Math.imul(p,t)|0,m0=m0+Math.imul(I$,C$)|0,a0=a0+Math.imul(I$,t)|0,t0=t0+Math.imul(X$,m)|0,m0=m0+Math.imul(X$,R$)|0,m0=m0+Math.imul(w,m)|0,a0=a0+Math.imul(w,R$)|0,t0=t0+Math.imul(B,P$)|0,m0=m0+Math.imul(B,O)|0,m0=m0+Math.imul(U$,P$)|0,a0=a0+Math.imul(U$,O)|0,t0=t0+Math.imul(G$,e)|0,m0=m0+Math.imul(G$,M$)|0,m0=m0+Math.imul(x,e)|0,a0=a0+Math.imul(x,M$)|0,t0=t0+Math.imul(_,S$)|0,m0=m0+Math.imul(_,F)|0,m0=m0+Math.imul(Z$,S$)|0,a0=a0+Math.imul(Z$,F)|0,t0=t0+Math.imul(Q$,r)|0,m0=m0+Math.imul(Q$,q$)|0,m0=m0+Math.imul(g,r)|0,a0=a0+Math.imul(g,q$)|0;var y$=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(y$>>>26)|0,y$&=67108863,t0=Math.imul(h,n),m0=Math.imul(h,D$),m0=m0+Math.imul(F$,n)|0,a0=Math.imul(F$,D$),t0=t0+Math.imul(O$,C$)|0,m0=m0+Math.imul(O$,t)|0,m0=m0+Math.imul(c,C$)|0,a0=a0+Math.imul(c,t)|0,t0=t0+Math.imul(p,m)|0,m0=m0+Math.imul(p,R$)|0,m0=m0+Math.imul(I$,m)|0,a0=a0+Math.imul(I$,R$)|0,t0=t0+Math.imul(X$,P$)|0,m0=m0+Math.imul(X$,O)|0,m0=m0+Math.imul(w,P$)|0,a0=a0+Math.imul(w,O)|0,t0=t0+Math.imul(B,e)|0,m0=m0+Math.imul(B,M$)|0,m0=m0+Math.imul(U$,e)|0,a0=a0+Math.imul(U$,M$)|0,t0=t0+Math.imul(G$,S$)|0,m0=m0+Math.imul(G$,F)|0,m0=m0+Math.imul(x,S$)|0,a0=a0+Math.imul(x,F)|0,t0=t0+Math.imul(_,r)|0,m0=m0+Math.imul(_,q$)|0,m0=m0+Math.imul(Z$,r)|0,a0=a0+Math.imul(Z$,q$)|0;var Z0=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(Z0>>>26)|0,Z0&=67108863,t0=Math.imul(h,C$),m0=Math.imul(h,t),m0=m0+Math.imul(F$,C$)|0,a0=Math.imul(F$,t),t0=t0+Math.imul(O$,m)|0,m0=m0+Math.imul(O$,R$)|0,m0=m0+Math.imul(c,m)|0,a0=a0+Math.imul(c,R$)|0,t0=t0+Math.imul(p,P$)|0,m0=m0+Math.imul(p,O)|0,m0=m0+Math.imul(I$,P$)|0,a0=a0+Math.imul(I$,O)|0,t0=t0+Math.imul(X$,e)|0,m0=m0+Math.imul(X$,M$)|0,m0=m0+Math.imul(w,e)|0,a0=a0+Math.imul(w,M$)|0,t0=t0+Math.imul(B,S$)|0,m0=m0+Math.imul(B,F)|0,m0=m0+Math.imul(U$,S$)|0,a0=a0+Math.imul(U$,F)|0,t0=t0+Math.imul(G$,r)|0,m0=m0+Math.imul(G$,q$)|0,m0=m0+Math.imul(x,r)|0,a0=a0+Math.imul(x,q$)|0;var w$=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(w$>>>26)|0,w$&=67108863,t0=Math.imul(h,m),m0=Math.imul(h,R$),m0=m0+Math.imul(F$,m)|0,a0=Math.imul(F$,R$),t0=t0+Math.imul(O$,P$)|0,m0=m0+Math.imul(O$,O)|0,m0=m0+Math.imul(c,P$)|0,a0=a0+Math.imul(c,O)|0,t0=t0+Math.imul(p,e)|0,m0=m0+Math.imul(p,M$)|0,m0=m0+Math.imul(I$,e)|0,a0=a0+Math.imul(I$,M$)|0,t0=t0+Math.imul(X$,S$)|0,m0=m0+Math.imul(X$,F)|0,m0=m0+Math.imul(w,S$)|0,a0=a0+Math.imul(w,F)|0,t0=t0+Math.imul(B,r)|0,m0=m0+Math.imul(B,q$)|0,m0=m0+Math.imul(U$,r)|0,a0=a0+Math.imul(U$,q$)|0;var G0=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(G0>>>26)|0,G0&=67108863,t0=Math.imul(h,P$),m0=Math.imul(h,O),m0=m0+Math.imul(F$,P$)|0,a0=Math.imul(F$,O),t0=t0+Math.imul(O$,e)|0,m0=m0+Math.imul(O$,M$)|0,m0=m0+Math.imul(c,e)|0,a0=a0+Math.imul(c,M$)|0,t0=t0+Math.imul(p,S$)|0,m0=m0+Math.imul(p,F)|0,m0=m0+Math.imul(I$,S$)|0,a0=a0+Math.imul(I$,F)|0,t0=t0+Math.imul(X$,r)|0,m0=m0+Math.imul(X$,q$)|0,m0=m0+Math.imul(w,r)|0,a0=a0+Math.imul(w,q$)|0;var p$=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(p$>>>26)|0,p$&=67108863,t0=Math.imul(h,e),m0=Math.imul(h,M$),m0=m0+Math.imul(F$,e)|0,a0=Math.imul(F$,M$),t0=t0+Math.imul(O$,S$)|0,m0=m0+Math.imul(O$,F)|0,m0=m0+Math.imul(c,S$)|0,a0=a0+Math.imul(c,F)|0,t0=t0+Math.imul(p,r)|0,m0=m0+Math.imul(p,q$)|0,m0=m0+Math.imul(I$,r)|0,a0=a0+Math.imul(I$,q$)|0;var V0=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(V0>>>26)|0,V0&=67108863,t0=Math.imul(h,S$),m0=Math.imul(h,F),m0=m0+Math.imul(F$,S$)|0,a0=Math.imul(F$,F),t0=t0+Math.imul(O$,r)|0,m0=m0+Math.imul(O$,q$)|0,m0=m0+Math.imul(c,r)|0,a0=a0+Math.imul(c,q$)|0;var f$=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(f$>>>26)|0,f$&=67108863,t0=Math.imul(h,r),m0=Math.imul(h,q$),m0=m0+Math.imul(F$,r)|0,a0=Math.imul(F$,q$);var U0=(I+t0|0)+((m0&8191)<<13)|0;return I=(a0+(m0>>>13)|0)+(U0>>>26)|0,U0&=67108863,s0[0]=i,s0[1]=j$,s0[2]=k$,s0[3]=g$,s0[4]=_$,s0[5]=N$,s0[6]=$0,s0[7]=x$,s0[8]=Q0,s0[9]=B$,s0[10]=Y0,s0[11]=y$,s0[12]=Z0,s0[13]=w$,s0[14]=G0,s0[15]=p$,s0[16]=V0,s0[17]=f$,s0[18]=U0,I!==0&&(s0[19]=I,S.length++),S};Math.imul||(D=f0);function c0(M,u0,S){S.negative=u0.negative^M.negative,S.length=M.length+u0.length;for(var n0=0,v=0,s0=0;s0>>26)|0,v+=I>>>26,I&=67108863}S.words[s0]=t0,n0=I,I=v}return n0!==0?S.words[s0]=n0:S.length--,S._strip()}function C(M,u0,S){return c0(M,u0,S)}Z.prototype.mulTo=function(M,u0){var S,n0=this.length+M.length;return this.length===10&&M.length===10?S=D(this,M,u0):n0<63?S=f0(this,M,u0):n0<1024?S=c0(this,M,u0):S=C(this,M,u0),S};function h0(M,u0){this.x=M,this.y=u0}h0.prototype.makeRBT=function(M){for(var u0=new Array(M),S=Z.prototype._countBits(M)-1,n0=0;n0>=1;return n0},h0.prototype.permute=function(M,u0,S,n0,v,s0){for(var I=0;I>>1)v++;return 1<>>13,S[2*s0+1]=v&8191,v=v>>>13;for(s0=2*u0;s0>=26,S+=v/67108864|0,S+=s0>>>26,this.words[n0]=s0&67108863}return S!==0&&(this.words[n0]=S,this.length++),u0?this.ineg():this},Z.prototype.muln=function(M){return this.clone().imuln(M)},Z.prototype.sqr=function(){return this.mul(this)},Z.prototype.isqr=function(){return this.imul(this.clone())},Z.prototype.pow=function(M){var u0=T(M);if(u0.length===0)return new Z(1);for(var S=this,n0=0;n0=0);var u0=M%26,S=(M-u0)/26,n0=67108863>>>26-u0<<26-u0,v;if(u0!==0){var s0=0;for(v=0;v>>26-u0}s0&&(this.words[v]=s0,this.length++)}if(S!==0){for(v=this.length-1;v>=0;v--)this.words[v+S]=this.words[v];for(v=0;v=0);var n0;u0?n0=(u0-u0%26)/26:n0=0;var v=M%26,s0=Math.min((M-v)/26,this.length),I=67108863^67108863>>>v<s0)for(this.length-=s0,m0=0;m0=0&&(a0!==0||m0>=n0);m0--){var q=this.words[m0]|0;this.words[m0]=a0<<26-v|q>>>v,a0=q&I}return t0&&a0!==0&&(t0.words[t0.length++]=a0),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},Z.prototype.ishrn=function(M,u0,S){return Y(this.negative===0),this.iushrn(M,u0,S)},Z.prototype.shln=function(M){return this.clone().ishln(M)},Z.prototype.ushln=function(M){return this.clone().iushln(M)},Z.prototype.shrn=function(M){return this.clone().ishrn(M)},Z.prototype.ushrn=function(M){return this.clone().iushrn(M)},Z.prototype.testn=function(M){Y(typeof M=="number"&&M>=0);var u0=M%26,S=(M-u0)/26,n0=1<=0);var u0=M%26,S=(M-u0)/26;if(Y(this.negative===0,"imaskn works only with positive numbers"),this.length<=S)return this;if(u0!==0&&S++,this.length=Math.min(S,this.length),u0!==0){var n0=67108863^67108863>>>u0<=67108864;u0++)this.words[u0]-=67108864,u0===this.length-1?this.words[u0+1]=1:this.words[u0+1]++;return this.length=Math.max(this.length,u0+1),this},Z.prototype.isubn=function(M){if(Y(typeof M=="number"),Y(M<67108864),M<0)return this.iaddn(-M);if(this.negative!==0)return this.negative=0,this.iaddn(M),this.negative=1,this;if(this.words[0]-=M,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var u0=0;u0>26)-(t0/67108864|0),this.words[v+S]=s0&67108863}for(;v>26,this.words[v+S]=s0&67108863;if(I===0)return this._strip();for(Y(I===-1),I=0,v=0;v>26,this.words[v]=s0&67108863;return this.negative=1,this._strip()},Z.prototype._wordDiv=function(M,u0){var S=this.length-M.length,n0=this.clone(),v=M,s0=v.words[v.length-1]|0,I=this._countBits(s0);S=26-I,S!==0&&(v=v.ushln(S),n0.iushln(S),s0=v.words[v.length-1]|0);var t0=n0.length-v.length,m0;if(u0!=="mod"){m0=new Z(null),m0.length=t0+1,m0.words=new Array(m0.length);for(var a0=0;a0=0;e0--){var r0=(n0.words[v.length+e0]|0)*67108864+(n0.words[v.length+e0-1]|0);for(r0=Math.min(r0/s0|0,67108863),n0._ishlnsubmul(v,r0,e0);n0.negative!==0;)r0--,n0.negative=0,n0._ishlnsubmul(v,1,e0),n0.isZero()||(n0.negative^=1);m0&&(m0.words[e0]=r0)}return m0&&m0._strip(),n0._strip(),u0!=="div"&&S!==0&&n0.iushrn(S),{div:m0||null,mod:n0}},Z.prototype.divmod=function(M,u0,S){if(Y(!M.isZero()),this.isZero())return{div:new Z(0),mod:new Z(0)};var n0,v,s0;return this.negative!==0&&M.negative===0?(s0=this.neg().divmod(M,u0),u0!=="mod"&&(n0=s0.div.neg()),u0!=="div"&&(v=s0.mod.neg(),S&&v.negative!==0&&v.iadd(M)),{div:n0,mod:v}):this.negative===0&&M.negative!==0?(s0=this.divmod(M.neg(),u0),u0!=="mod"&&(n0=s0.div.neg()),{div:n0,mod:s0.mod}):(this.negative&M.negative)!==0?(s0=this.neg().divmod(M.neg(),u0),u0!=="div"&&(v=s0.mod.neg(),S&&v.negative!==0&&v.isub(M)),{div:s0.div,mod:v}):M.length>this.length||this.cmp(M)<0?{div:new Z(0),mod:this}:M.length===1?u0==="div"?{div:this.divn(M.words[0]),mod:null}:u0==="mod"?{div:null,mod:new Z(this.modrn(M.words[0]))}:{div:this.divn(M.words[0]),mod:new Z(this.modrn(M.words[0]))}:this._wordDiv(M,u0)},Z.prototype.div=function(M){return this.divmod(M,"div",!1).div},Z.prototype.mod=function(M){return this.divmod(M,"mod",!1).mod},Z.prototype.umod=function(M){return this.divmod(M,"mod",!0).mod},Z.prototype.divRound=function(M){var u0=this.divmod(M);if(u0.mod.isZero())return u0.div;var S=u0.div.negative!==0?u0.mod.isub(M):u0.mod,n0=M.ushrn(1),v=M.andln(1),s0=S.cmp(n0);return s0<0||v===1&&s0===0?u0.div:u0.div.negative!==0?u0.div.isubn(1):u0.div.iaddn(1)},Z.prototype.modrn=function(M){var u0=M<0;u0&&(M=-M),Y(M<=67108863);for(var S=(1<<26)%M,n0=0,v=this.length-1;v>=0;v--)n0=(S*n0+(this.words[v]|0))%M;return u0?-n0:n0},Z.prototype.modn=function(M){return this.modrn(M)},Z.prototype.idivn=function(M){var u0=M<0;u0&&(M=-M),Y(M<=67108863);for(var S=0,n0=this.length-1;n0>=0;n0--){var v=(this.words[n0]|0)+S*67108864;this.words[n0]=v/M|0,S=v%M}return this._strip(),u0?this.ineg():this},Z.prototype.divn=function(M){return this.clone().idivn(M)},Z.prototype.egcd=function(M){Y(M.negative===0),Y(!M.isZero());var u0=this,S=M.clone();u0.negative!==0?u0=u0.umod(M):u0=u0.clone();for(var n0=new Z(1),v=new Z(0),s0=new Z(0),I=new Z(1),t0=0;u0.isEven()&&S.isEven();)u0.iushrn(1),S.iushrn(1),++t0;for(var m0=S.clone(),a0=u0.clone();!u0.isZero();){for(var q=0,e0=1;(u0.words[0]&e0)===0&&q<26;++q,e0<<=1);if(q>0)for(u0.iushrn(q);q-- >0;)(n0.isOdd()||v.isOdd())&&(n0.iadd(m0),v.isub(a0)),n0.iushrn(1),v.iushrn(1);for(var r0=0,i0=1;(S.words[0]&i0)===0&&r0<26;++r0,i0<<=1);if(r0>0)for(S.iushrn(r0);r0-- >0;)(s0.isOdd()||I.isOdd())&&(s0.iadd(m0),I.isub(a0)),s0.iushrn(1),I.iushrn(1);u0.cmp(S)>=0?(u0.isub(S),n0.isub(s0),v.isub(I)):(S.isub(u0),s0.isub(n0),I.isub(v))}return{a:s0,b:I,gcd:S.iushln(t0)}},Z.prototype._invmp=function(M){Y(M.negative===0),Y(!M.isZero());var u0=this,S=M.clone();u0.negative!==0?u0=u0.umod(M):u0=u0.clone();for(var n0=new Z(1),v=new Z(0),s0=S.clone();u0.cmpn(1)>0&&S.cmpn(1)>0;){for(var I=0,t0=1;(u0.words[0]&t0)===0&&I<26;++I,t0<<=1);if(I>0)for(u0.iushrn(I);I-- >0;)n0.isOdd()&&n0.iadd(s0),n0.iushrn(1);for(var m0=0,a0=1;(S.words[0]&a0)===0&&m0<26;++m0,a0<<=1);if(m0>0)for(S.iushrn(m0);m0-- >0;)v.isOdd()&&v.iadd(s0),v.iushrn(1);u0.cmp(S)>=0?(u0.isub(S),n0.isub(v)):(S.isub(u0),v.isub(n0))}var q;return u0.cmpn(1)===0?q=n0:q=v,q.cmpn(0)<0&&q.iadd(M),q},Z.prototype.gcd=function(M){if(this.isZero())return M.abs();if(M.isZero())return this.abs();var u0=this.clone(),S=M.clone();u0.negative=0,S.negative=0;for(var n0=0;u0.isEven()&&S.isEven();n0++)u0.iushrn(1),S.iushrn(1);do{for(;u0.isEven();)u0.iushrn(1);for(;S.isEven();)S.iushrn(1);var v=u0.cmp(S);if(v<0){var s0=u0;u0=S,S=s0}else if(v===0||S.cmpn(1)===0)break;u0.isub(S)}while(!0);return S.iushln(n0)},Z.prototype.invm=function(M){return this.egcd(M).a.umod(M)},Z.prototype.isEven=function(){return(this.words[0]&1)===0},Z.prototype.isOdd=function(){return(this.words[0]&1)===1},Z.prototype.andln=function(M){return this.words[0]&M},Z.prototype.bincn=function(M){Y(typeof M=="number");var u0=M%26,S=(M-u0)/26,n0=1<>>26,I&=67108863,this.words[s0]=I}return v!==0&&(this.words[s0]=v,this.length++),this},Z.prototype.isZero=function(){return this.length===1&&this.words[0]===0},Z.prototype.cmpn=function(M){var u0=M<0;if(this.negative!==0&&!u0)return-1;if(this.negative===0&&u0)return 1;this._strip();var S;if(this.length>1)S=1;else{u0&&(M=-M),Y(M<=67108863,"Number is too big");var n0=this.words[0]|0;S=n0===M?0:n0M.length)return 1;if(this.length=0;S--){var n0=this.words[S]|0,v=M.words[S]|0;if(n0!==v){n0v&&(u0=1);break}}return u0},Z.prototype.gtn=function(M){return this.cmpn(M)===1},Z.prototype.gt=function(M){return this.cmp(M)===1},Z.prototype.gten=function(M){return this.cmpn(M)>=0},Z.prototype.gte=function(M){return this.cmp(M)>=0},Z.prototype.ltn=function(M){return this.cmpn(M)===-1},Z.prototype.lt=function(M){return this.cmp(M)===-1},Z.prototype.lten=function(M){return this.cmpn(M)<=0},Z.prototype.lte=function(M){return this.cmp(M)<=0},Z.prototype.eqn=function(M){return this.cmpn(M)===0},Z.prototype.eq=function(M){return this.cmp(M)===0},Z.red=function(M){return new z(M)},Z.prototype.toRed=function(M){return Y(!this.red,"Already a number in reduction context"),Y(this.negative===0,"red works only with positives"),M.convertTo(this)._forceRed(M)},Z.prototype.fromRed=function(){return Y(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},Z.prototype._forceRed=function(M){return this.red=M,this},Z.prototype.forceRed=function(M){return Y(!this.red,"Already a number in reduction context"),this._forceRed(M)},Z.prototype.redAdd=function(M){return Y(this.red,"redAdd works only with red numbers"),this.red.add(this,M)},Z.prototype.redIAdd=function(M){return Y(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,M)},Z.prototype.redSub=function(M){return Y(this.red,"redSub works only with red numbers"),this.red.sub(this,M)},Z.prototype.redISub=function(M){return Y(this.red,"redISub works only with red numbers"),this.red.isub(this,M)},Z.prototype.redShl=function(M){return Y(this.red,"redShl works only with red numbers"),this.red.shl(this,M)},Z.prototype.redMul=function(M){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,M),this.red.mul(this,M)},Z.prototype.redIMul=function(M){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,M),this.red.imul(this,M)},Z.prototype.redSqr=function(){return Y(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},Z.prototype.redISqr=function(){return Y(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},Z.prototype.redSqrt=function(){return Y(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},Z.prototype.redInvm=function(){return Y(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},Z.prototype.redNeg=function(){return Y(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},Z.prototype.redPow=function(M){return Y(this.red&&!M.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,M)};var L={k256:null,p224:null,p192:null,p25519:null};function d0(M,u0){this.name=M,this.p=new Z(u0,16),this.n=this.p.bitLength(),this.k=new Z(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}d0.prototype._tmp=function(){var M=new Z(null);return M.words=new Array(Math.ceil(this.n/13)),M},d0.prototype.ireduce=function(M){var u0=M,S;do this.split(u0,this.tmp),u0=this.imulK(u0),u0=u0.iadd(this.tmp),S=u0.bitLength();while(S>this.n);var n0=S0?u0.isub(this.p):u0.strip!==void 0?u0.strip():u0._strip(),u0},d0.prototype.split=function(M,u0){M.iushrn(this.n,0,u0)},d0.prototype.imulK=function(M){return M.imul(this.k)};function R(){d0.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}$(R,d0),R.prototype.split=function(M,u0){for(var S=4194303,n0=Math.min(M.length,9),v=0;v>>22,s0=I}s0>>>=22,M.words[v-10]=s0,s0===0&&M.length>10?M.length-=10:M.length-=9},R.prototype.imulK=function(M){M.words[M.length]=0,M.words[M.length+1]=0,M.length+=2;for(var u0=0,S=0;S>>=26,M.words[S]=v,u0=n0}return u0!==0&&(M.words[M.length++]=u0),M},Z._prime=function(M){if(L[M])return L[M];var u0;if(M==="k256")u0=new R;else if(M==="p224")u0=new b0;else if(M==="p192")u0=new P;else if(M==="p25519")u0=new l0;else throw new Error("Unknown prime "+M);return L[M]=u0,u0};function z(M){if(typeof M=="string"){var u0=Z._prime(M);this.m=u0.p,this.prime=u0}else Y(M.gtn(1),"modulus must be greater than 1"),this.m=M,this.prime=null}z.prototype._verify1=function(M){Y(M.negative===0,"red works only with positives"),Y(M.red,"red works only with red numbers")},z.prototype._verify2=function(M,u0){Y((M.negative|u0.negative)===0,"red works only with positives"),Y(M.red&&M.red===u0.red,"red works only with red numbers")},z.prototype.imod=function(M){return this.prime?this.prime.ireduce(M)._forceRed(this):(H(M,M.umod(this.m)._forceRed(this)),M)},z.prototype.neg=function(M){return M.isZero()?M.clone():this.m.sub(M)._forceRed(this)},z.prototype.add=function(M,u0){this._verify2(M,u0);var S=M.add(u0);return S.cmp(this.m)>=0&&S.isub(this.m),S._forceRed(this)},z.prototype.iadd=function(M,u0){this._verify2(M,u0);var S=M.iadd(u0);return S.cmp(this.m)>=0&&S.isub(this.m),S},z.prototype.sub=function(M,u0){this._verify2(M,u0);var S=M.sub(u0);return S.cmpn(0)<0&&S.iadd(this.m),S._forceRed(this)},z.prototype.isub=function(M,u0){this._verify2(M,u0);var S=M.isub(u0);return S.cmpn(0)<0&&S.iadd(this.m),S},z.prototype.shl=function(M,u0){return this._verify1(M),this.imod(M.ushln(u0))},z.prototype.imul=function(M,u0){return this._verify2(M,u0),this.imod(M.imul(u0))},z.prototype.mul=function(M,u0){return this._verify2(M,u0),this.imod(M.mul(u0))},z.prototype.isqr=function(M){return this.imul(M,M.clone())},z.prototype.sqr=function(M){return this.mul(M,M)},z.prototype.sqrt=function(M){if(M.isZero())return M.clone();var u0=this.m.andln(3);if(Y(u0%2===1),u0===3){var S=this.m.add(new Z(1)).iushrn(2);return this.pow(M,S)}for(var n0=this.m.subn(1),v=0;!n0.isZero()&&n0.andln(1)===0;)v++,n0.iushrn(1);Y(!n0.isZero());var s0=new Z(1).toRed(this),I=s0.redNeg(),t0=this.m.subn(1).iushrn(1),m0=this.m.bitLength();for(m0=new Z(2*m0*m0).toRed(this);this.pow(m0,t0).cmp(I)!==0;)m0.redIAdd(I);for(var a0=this.pow(m0,n0),q=this.pow(M,n0.addn(1).iushrn(1)),e0=this.pow(M,n0),r0=v;e0.cmp(s0)!==0;){for(var i0=e0,j=0;i0.cmp(s0)!==0;j++)i0=i0.redSqr();Y(j=0;v--){for(var a0=u0.words[v],q=m0-1;q>=0;q--){var e0=a0>>q&1;if(s0!==n0[0]&&(s0=this.sqr(s0)),e0===0&&I===0){t0=0;continue}I<<=1,I|=e0,t0++,!(t0!==S&&(v!==0||q!==0))&&(s0=this.mul(s0,n0[I]),t0=0,I=0)}m0=26}return s0},z.prototype.convertTo=function(M){var u0=M.umod(this.m);return u0===M?u0.clone():u0},z.prototype.convertFrom=function(M){var u0=M.clone();return u0.red=null,u0},Z.mont=function(M){return new o0(M)};function o0(M){z.call(this,M),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new Z(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}$(o0,z),o0.prototype.convertTo=function(M){return this.imod(M.ushln(this.shift))},o0.prototype.convertFrom=function(M){var u0=this.imod(M.mul(this.rinv));return u0.red=null,u0},o0.prototype.imul=function(M,u0){if(M.isZero()||u0.isZero())return M.words[0]=0,M.length=1,M;var S=M.imul(u0),n0=S.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),v=S.isub(n0).iushrn(this.shift),s0=v;return v.cmp(this.m)>=0?s0=v.isub(this.m):v.cmpn(0)<0&&(s0=v.iadd(this.m)),s0._forceRed(this)},o0.prototype.mul=function(M,u0){if(M.isZero()||u0.isZero())return new Z(0)._forceRed(this);var S=M.mul(u0),n0=S.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),v=S.isub(n0).iushrn(this.shift),s0=v;return v.cmp(this.m)>=0?s0=v.isub(this.m):v.cmpn(0)<0&&(s0=v.iadd(this.m)),s0._forceRed(this)},o0.prototype.invm=function(M){var u0=this.imod(M._invmp(this.m).mul(this.r2));return u0._forceRed(this)}})(typeof K>"u"||K,X)}}),hQ=$Q({"node_modules/browserify-rsa/index.js"(X,K){var x0=cQ(),G=ZQ();function Y(Q){var U=$(Q),V=U.toRed(x0.mont(Q.modulus)).redPow(new x0(Q.publicExponent)).fromRed();return{blinder:V,unblinder:U.invm(Q.modulus)}}function $(Q){var U=Q.modulus.byteLength(),V;do V=new x0(G(U));while(V.cmp(Q.modulus)>=0||!V.umod(Q.prime1)||!V.umod(Q.prime2));return V}function Z(Q,U){var V=Y(U),B0=U.modulus.byteLength(),H=new x0(Q).mul(V.blinder).umod(U.modulus),y0=H.toRed(x0.mont(U.prime1)),W=H.toRed(x0.mont(U.prime2)),w0=U.coefficient,E=U.prime1,p0=U.prime2,T=y0.redPow(U.exponent1).fromRed(),f0=W.redPow(U.exponent2).fromRed(),D=T.isub(f0).imul(w0).umod(E).imul(p0);return f0.iadd(D).imul(V.unblinder).umod(U.modulus).toArrayLike(c$,"be",B0)}Z.getr=$,K.exports=Z}}),dQ=$Q({"node_modules/elliptic/package.json"(X,K){K.exports={name:"elliptic",version:"6.5.4",description:"EC cryptography",main:"lib/elliptic.js",files:["lib"],scripts:{lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},repository:{type:"git",url:"git@github.com:indutny/elliptic"},keywords:["EC","Elliptic","curve","Cryptography"],author:"Fedor Indutny ",license:"MIT",bugs:{url:"https://github.com/indutny/elliptic/issues"},homepage:"https://github.com/indutny/elliptic",devDependencies:{brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},dependencies:{"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"}}}}),bQ=$Q({"node_modules/elliptic/node_modules/bn.js/lib/bn.js"(X,K){(function(x0,G){function Y(l0,z){if(!l0)throw new Error(z||"Assertion failed")}function $(l0,z){l0.super_=z;var o0=function(){};o0.prototype=z.prototype,l0.prototype=new o0,l0.prototype.constructor=l0}function Z(l0,z,o0){if(Z.isBN(l0))return l0;this.negative=0,this.words=null,this.length=0,this.red=null,l0!==null&&((z==="le"||z==="be")&&(o0=z,z=10),this._init(l0||0,z||10,o0||"be"))}typeof x0=="object"?x0.exports=Z:G.BN=Z,Z.BN=Z,Z.wordSize=26;var Q=c$;Z.isBN=function(l0){return l0 instanceof Z?!0:l0!==null&&typeof l0=="object"&&l0.constructor.wordSize===Z.wordSize&&Array.isArray(l0.words)},Z.max=function(l0,z){return l0.cmp(z)>0?l0:z},Z.min=function(l0,z){return l0.cmp(z)<0?l0:z},Z.prototype._init=function(l0,z,o0){if(typeof l0=="number")return this._initNumber(l0,z,o0);if(typeof l0=="object")return this._initArray(l0,z,o0);z==="hex"&&(z=16),Y(z===(z|0)&&z>=2&&z<=36),l0=l0.toString().replace(/\s+/g,"");var M=0;l0[0]==="-"&&(M++,this.negative=1),M=0;M-=3)S=l0[M]|l0[M-1]<<8|l0[M-2]<<16,this.words[u0]|=S<>>26-n0&67108863,n0+=24,n0>=26&&(n0-=26,u0++);else if(o0==="le")for(M=0,u0=0;M>>26-n0&67108863,n0+=24,n0>=26&&(n0-=26,u0++);return this.strip()};function U(l0,z){var o0=l0.charCodeAt(z);return o0>=65&&o0<=70?o0-55:o0>=97&&o0<=102?o0-87:o0-48&15}function V(l0,z,o0){var M=U(l0,o0);return o0-1>=z&&(M|=U(l0,o0-1)<<4),M}Z.prototype._parseHex=function(l0,z,o0){this.length=Math.ceil((l0.length-z)/6),this.words=new Array(this.length);for(var M=0;M=z;M-=2)n0=V(l0,z,M)<=18?(u0-=18,S+=1,this.words[S]|=n0>>>26):u0+=8;else{var v=l0.length-z;for(M=v%2===0?z+1:z;M=18?(u0-=18,S+=1,this.words[S]|=n0>>>26):u0+=8}this.strip()};function B0(l0,z,o0,M){for(var u0=0,S=Math.min(l0.length,o0),n0=z;n0=49?u0+=v-49+10:v>=17?u0+=v-17+10:u0+=v}return u0}Z.prototype._parseBase=function(l0,z,o0){this.words=[0],this.length=1;for(var M=0,u0=1;u0<=67108863;u0*=z)M++;M--,u0=u0/z|0;for(var S=l0.length-o0,n0=S%M,v=Math.min(S,S-n0)+o0,s0=0,I=o0;I1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},Z.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},Z.prototype.inspect=function(){return(this.red?""};var H=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y0=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],W=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];Z.prototype.toString=function(l0,z){l0=l0||10,z=z|0||1;var o0;if(l0===16||l0==="hex"){o0="";for(var M=0,u0=0,S=0;S>>24-M&16777215,u0!==0||S!==this.length-1?o0=H[6-v.length]+v+o0:o0=v+o0,M+=2,M>=26&&(M-=26,S--)}for(u0!==0&&(o0=u0.toString(16)+o0);o0.length%z!==0;)o0="0"+o0;return this.negative!==0&&(o0="-"+o0),o0}if(l0===(l0|0)&&l0>=2&&l0<=36){var s0=y0[l0],I=W[l0];o0="";var t0=this.clone();for(t0.negative=0;!t0.isZero();){var m0=t0.modn(I).toString(l0);t0=t0.idivn(I),t0.isZero()?o0=m0+o0:o0=H[s0-m0.length]+m0+o0}for(this.isZero()&&(o0="0"+o0);o0.length%z!==0;)o0="0"+o0;return this.negative!==0&&(o0="-"+o0),o0}Y(!1,"Base should be between 2 and 36")},Z.prototype.toNumber=function(){var l0=this.words[0];return this.length===2?l0+=this.words[1]*67108864:this.length===3&&this.words[2]===1?l0+=4503599627370496+this.words[1]*67108864:this.length>2&&Y(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-l0:l0},Z.prototype.toJSON=function(){return this.toString(16)},Z.prototype.toBuffer=function(l0,z){return Y(typeof Q<"u"),this.toArrayLike(Q,l0,z)},Z.prototype.toArray=function(l0,z){return this.toArrayLike(Array,l0,z)},Z.prototype.toArrayLike=function(l0,z,o0){var M=this.byteLength(),u0=o0||Math.max(1,M);Y(M<=u0,"byte array longer than desired length"),Y(u0>0,"Requested array length <= 0"),this.strip();var S=z==="le",n0=new l0(u0),v,s0,I=this.clone();if(S){for(s0=0;!I.isZero();s0++)v=I.andln(255),I.iushrn(8),n0[s0]=v;for(;s0=4096&&(o0+=13,z>>>=13),z>=64&&(o0+=7,z>>>=7),z>=8&&(o0+=4,z>>>=4),z>=2&&(o0+=2,z>>>=2),o0+z},Z.prototype._zeroBits=function(l0){if(l0===0)return 26;var z=l0,o0=0;return(z&8191)===0&&(o0+=13,z>>>=13),(z&127)===0&&(o0+=7,z>>>=7),(z&15)===0&&(o0+=4,z>>>=4),(z&3)===0&&(o0+=2,z>>>=2),(z&1)===0&&o0++,o0},Z.prototype.bitLength=function(){var l0=this.words[this.length-1],z=this._countBits(l0);return(this.length-1)*26+z};function w0(l0){for(var z=new Array(l0.bitLength()),o0=0;o0>>u0}return z}Z.prototype.zeroBits=function(){if(this.isZero())return 0;for(var l0=0,z=0;zl0.length?this.clone().ior(l0):l0.clone().ior(this)},Z.prototype.uor=function(l0){return this.length>l0.length?this.clone().iuor(l0):l0.clone().iuor(this)},Z.prototype.iuand=function(l0){var z;this.length>l0.length?z=l0:z=this;for(var o0=0;o0l0.length?this.clone().iand(l0):l0.clone().iand(this)},Z.prototype.uand=function(l0){return this.length>l0.length?this.clone().iuand(l0):l0.clone().iuand(this)},Z.prototype.iuxor=function(l0){var z,o0;this.length>l0.length?(z=this,o0=l0):(z=l0,o0=this);for(var M=0;Ml0.length?this.clone().ixor(l0):l0.clone().ixor(this)},Z.prototype.uxor=function(l0){return this.length>l0.length?this.clone().iuxor(l0):l0.clone().iuxor(this)},Z.prototype.inotn=function(l0){Y(typeof l0=="number"&&l0>=0);var z=Math.ceil(l0/26)|0,o0=l0%26;this._expand(z),o0>0&&z--;for(var M=0;M0&&(this.words[M]=~this.words[M]&67108863>>26-o0),this.strip()},Z.prototype.notn=function(l0){return this.clone().inotn(l0)},Z.prototype.setn=function(l0,z){Y(typeof l0=="number"&&l0>=0);var o0=l0/26|0,M=l0%26;return this._expand(o0+1),z?this.words[o0]=this.words[o0]|1<l0.length?(o0=this,M=l0):(o0=l0,M=this);for(var u0=0,S=0;S>>26;for(;u0!==0&&S>>26;if(this.length=o0.length,u0!==0)this.words[this.length]=u0,this.length++;else if(o0!==this)for(;Sl0.length?this.clone().iadd(l0):l0.clone().iadd(this)},Z.prototype.isub=function(l0){if(l0.negative!==0){l0.negative=0;var z=this.iadd(l0);return l0.negative=1,z._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(l0),this.negative=1,this._normSign();var o0=this.cmp(l0);if(o0===0)return this.negative=0,this.length=1,this.words[0]=0,this;var M,u0;o0>0?(M=this,u0=l0):(M=l0,u0=this);for(var S=0,n0=0;n0>26,this.words[n0]=z&67108863;for(;S!==0&&n0>26,this.words[n0]=z&67108863;if(S===0&&n0>>26,m0=s0&67108863,a0=Math.min(I,z.length-1),q=Math.max(0,I-l0.length+1);q<=a0;q++){var e0=I-q|0;u0=l0.words[e0]|0,S=z.words[q]|0,n0=u0*S+m0,t0+=n0/67108864|0,m0=n0&67108863}o0.words[I]=m0|0,s0=t0|0}return s0!==0?o0.words[I]=s0|0:o0.length--,o0.strip()}var p0=function(l0,z,o0){var M=l0.words,u0=z.words,S=o0.words,n0=0,v,s0,I,t0=M[0]|0,m0=t0&8191,a0=t0>>>13,q=M[1]|0,e0=q&8191,r0=q>>>13,i0=M[2]|0,j=i0&8191,$$=i0>>>13,k=M[3]|0,Q$=k&8191,g=k>>>13,Y$=M[4]|0,_=Y$&8191,Z$=Y$>>>13,N=M[5]|0,G$=N&8191,x=N>>>13,V$=M[6]|0,B=V$&8191,U$=V$>>>13,y=M[7]|0,X$=y&8191,w=y>>>13,K$=M[8]|0,p=K$&8191,I$=K$>>>13,f=M[9]|0,O$=f&8191,c=f>>>13,J$=u0[0]|0,h=J$&8191,F$=J$>>>13,d=u0[1]|0,A$=d&8191,b=d>>>13,H$=u0[2]|0,l=H$&8191,W$=H$>>>13,o=u0[3]|0,E$=o&8191,u=o>>>13,T$=u0[4]|0,n=T$&8191,D$=T$>>>13,s=u0[5]|0,C$=s&8191,t=s>>>13,L$=u0[6]|0,m=L$&8191,R$=L$>>>13,a=u0[7]|0,P$=a&8191,O=a>>>13,z$=u0[8]|0,e=z$&8191,M$=z$>>>13,J=u0[9]|0,S$=J&8191,F=J>>>13;o0.negative=l0.negative^z.negative,o0.length=19,v=Math.imul(m0,h),s0=Math.imul(m0,F$),s0=s0+Math.imul(a0,h)|0,I=Math.imul(a0,F$);var v$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(v$>>>26)|0,v$&=67108863,v=Math.imul(e0,h),s0=Math.imul(e0,F$),s0=s0+Math.imul(r0,h)|0,I=Math.imul(r0,F$),v=v+Math.imul(m0,A$)|0,s0=s0+Math.imul(m0,b)|0,s0=s0+Math.imul(a0,A$)|0,I=I+Math.imul(a0,b)|0;var r=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(r>>>26)|0,r&=67108863,v=Math.imul(j,h),s0=Math.imul(j,F$),s0=s0+Math.imul($$,h)|0,I=Math.imul($$,F$),v=v+Math.imul(e0,A$)|0,s0=s0+Math.imul(e0,b)|0,s0=s0+Math.imul(r0,A$)|0,I=I+Math.imul(r0,b)|0,v=v+Math.imul(m0,l)|0,s0=s0+Math.imul(m0,W$)|0,s0=s0+Math.imul(a0,l)|0,I=I+Math.imul(a0,W$)|0;var q$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(q$>>>26)|0,q$&=67108863,v=Math.imul(Q$,h),s0=Math.imul(Q$,F$),s0=s0+Math.imul(g,h)|0,I=Math.imul(g,F$),v=v+Math.imul(j,A$)|0,s0=s0+Math.imul(j,b)|0,s0=s0+Math.imul($$,A$)|0,I=I+Math.imul($$,b)|0,v=v+Math.imul(e0,l)|0,s0=s0+Math.imul(e0,W$)|0,s0=s0+Math.imul(r0,l)|0,I=I+Math.imul(r0,W$)|0,v=v+Math.imul(m0,E$)|0,s0=s0+Math.imul(m0,u)|0,s0=s0+Math.imul(a0,E$)|0,I=I+Math.imul(a0,u)|0;var i=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(i>>>26)|0,i&=67108863,v=Math.imul(_,h),s0=Math.imul(_,F$),s0=s0+Math.imul(Z$,h)|0,I=Math.imul(Z$,F$),v=v+Math.imul(Q$,A$)|0,s0=s0+Math.imul(Q$,b)|0,s0=s0+Math.imul(g,A$)|0,I=I+Math.imul(g,b)|0,v=v+Math.imul(j,l)|0,s0=s0+Math.imul(j,W$)|0,s0=s0+Math.imul($$,l)|0,I=I+Math.imul($$,W$)|0,v=v+Math.imul(e0,E$)|0,s0=s0+Math.imul(e0,u)|0,s0=s0+Math.imul(r0,E$)|0,I=I+Math.imul(r0,u)|0,v=v+Math.imul(m0,n)|0,s0=s0+Math.imul(m0,D$)|0,s0=s0+Math.imul(a0,n)|0,I=I+Math.imul(a0,D$)|0;var j$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(j$>>>26)|0,j$&=67108863,v=Math.imul(G$,h),s0=Math.imul(G$,F$),s0=s0+Math.imul(x,h)|0,I=Math.imul(x,F$),v=v+Math.imul(_,A$)|0,s0=s0+Math.imul(_,b)|0,s0=s0+Math.imul(Z$,A$)|0,I=I+Math.imul(Z$,b)|0,v=v+Math.imul(Q$,l)|0,s0=s0+Math.imul(Q$,W$)|0,s0=s0+Math.imul(g,l)|0,I=I+Math.imul(g,W$)|0,v=v+Math.imul(j,E$)|0,s0=s0+Math.imul(j,u)|0,s0=s0+Math.imul($$,E$)|0,I=I+Math.imul($$,u)|0,v=v+Math.imul(e0,n)|0,s0=s0+Math.imul(e0,D$)|0,s0=s0+Math.imul(r0,n)|0,I=I+Math.imul(r0,D$)|0,v=v+Math.imul(m0,C$)|0,s0=s0+Math.imul(m0,t)|0,s0=s0+Math.imul(a0,C$)|0,I=I+Math.imul(a0,t)|0;var k$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(k$>>>26)|0,k$&=67108863,v=Math.imul(B,h),s0=Math.imul(B,F$),s0=s0+Math.imul(U$,h)|0,I=Math.imul(U$,F$),v=v+Math.imul(G$,A$)|0,s0=s0+Math.imul(G$,b)|0,s0=s0+Math.imul(x,A$)|0,I=I+Math.imul(x,b)|0,v=v+Math.imul(_,l)|0,s0=s0+Math.imul(_,W$)|0,s0=s0+Math.imul(Z$,l)|0,I=I+Math.imul(Z$,W$)|0,v=v+Math.imul(Q$,E$)|0,s0=s0+Math.imul(Q$,u)|0,s0=s0+Math.imul(g,E$)|0,I=I+Math.imul(g,u)|0,v=v+Math.imul(j,n)|0,s0=s0+Math.imul(j,D$)|0,s0=s0+Math.imul($$,n)|0,I=I+Math.imul($$,D$)|0,v=v+Math.imul(e0,C$)|0,s0=s0+Math.imul(e0,t)|0,s0=s0+Math.imul(r0,C$)|0,I=I+Math.imul(r0,t)|0,v=v+Math.imul(m0,m)|0,s0=s0+Math.imul(m0,R$)|0,s0=s0+Math.imul(a0,m)|0,I=I+Math.imul(a0,R$)|0;var g$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(g$>>>26)|0,g$&=67108863,v=Math.imul(X$,h),s0=Math.imul(X$,F$),s0=s0+Math.imul(w,h)|0,I=Math.imul(w,F$),v=v+Math.imul(B,A$)|0,s0=s0+Math.imul(B,b)|0,s0=s0+Math.imul(U$,A$)|0,I=I+Math.imul(U$,b)|0,v=v+Math.imul(G$,l)|0,s0=s0+Math.imul(G$,W$)|0,s0=s0+Math.imul(x,l)|0,I=I+Math.imul(x,W$)|0,v=v+Math.imul(_,E$)|0,s0=s0+Math.imul(_,u)|0,s0=s0+Math.imul(Z$,E$)|0,I=I+Math.imul(Z$,u)|0,v=v+Math.imul(Q$,n)|0,s0=s0+Math.imul(Q$,D$)|0,s0=s0+Math.imul(g,n)|0,I=I+Math.imul(g,D$)|0,v=v+Math.imul(j,C$)|0,s0=s0+Math.imul(j,t)|0,s0=s0+Math.imul($$,C$)|0,I=I+Math.imul($$,t)|0,v=v+Math.imul(e0,m)|0,s0=s0+Math.imul(e0,R$)|0,s0=s0+Math.imul(r0,m)|0,I=I+Math.imul(r0,R$)|0,v=v+Math.imul(m0,P$)|0,s0=s0+Math.imul(m0,O)|0,s0=s0+Math.imul(a0,P$)|0,I=I+Math.imul(a0,O)|0;var _$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(_$>>>26)|0,_$&=67108863,v=Math.imul(p,h),s0=Math.imul(p,F$),s0=s0+Math.imul(I$,h)|0,I=Math.imul(I$,F$),v=v+Math.imul(X$,A$)|0,s0=s0+Math.imul(X$,b)|0,s0=s0+Math.imul(w,A$)|0,I=I+Math.imul(w,b)|0,v=v+Math.imul(B,l)|0,s0=s0+Math.imul(B,W$)|0,s0=s0+Math.imul(U$,l)|0,I=I+Math.imul(U$,W$)|0,v=v+Math.imul(G$,E$)|0,s0=s0+Math.imul(G$,u)|0,s0=s0+Math.imul(x,E$)|0,I=I+Math.imul(x,u)|0,v=v+Math.imul(_,n)|0,s0=s0+Math.imul(_,D$)|0,s0=s0+Math.imul(Z$,n)|0,I=I+Math.imul(Z$,D$)|0,v=v+Math.imul(Q$,C$)|0,s0=s0+Math.imul(Q$,t)|0,s0=s0+Math.imul(g,C$)|0,I=I+Math.imul(g,t)|0,v=v+Math.imul(j,m)|0,s0=s0+Math.imul(j,R$)|0,s0=s0+Math.imul($$,m)|0,I=I+Math.imul($$,R$)|0,v=v+Math.imul(e0,P$)|0,s0=s0+Math.imul(e0,O)|0,s0=s0+Math.imul(r0,P$)|0,I=I+Math.imul(r0,O)|0,v=v+Math.imul(m0,e)|0,s0=s0+Math.imul(m0,M$)|0,s0=s0+Math.imul(a0,e)|0,I=I+Math.imul(a0,M$)|0;var N$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(N$>>>26)|0,N$&=67108863,v=Math.imul(O$,h),s0=Math.imul(O$,F$),s0=s0+Math.imul(c,h)|0,I=Math.imul(c,F$),v=v+Math.imul(p,A$)|0,s0=s0+Math.imul(p,b)|0,s0=s0+Math.imul(I$,A$)|0,I=I+Math.imul(I$,b)|0,v=v+Math.imul(X$,l)|0,s0=s0+Math.imul(X$,W$)|0,s0=s0+Math.imul(w,l)|0,I=I+Math.imul(w,W$)|0,v=v+Math.imul(B,E$)|0,s0=s0+Math.imul(B,u)|0,s0=s0+Math.imul(U$,E$)|0,I=I+Math.imul(U$,u)|0,v=v+Math.imul(G$,n)|0,s0=s0+Math.imul(G$,D$)|0,s0=s0+Math.imul(x,n)|0,I=I+Math.imul(x,D$)|0,v=v+Math.imul(_,C$)|0,s0=s0+Math.imul(_,t)|0,s0=s0+Math.imul(Z$,C$)|0,I=I+Math.imul(Z$,t)|0,v=v+Math.imul(Q$,m)|0,s0=s0+Math.imul(Q$,R$)|0,s0=s0+Math.imul(g,m)|0,I=I+Math.imul(g,R$)|0,v=v+Math.imul(j,P$)|0,s0=s0+Math.imul(j,O)|0,s0=s0+Math.imul($$,P$)|0,I=I+Math.imul($$,O)|0,v=v+Math.imul(e0,e)|0,s0=s0+Math.imul(e0,M$)|0,s0=s0+Math.imul(r0,e)|0,I=I+Math.imul(r0,M$)|0,v=v+Math.imul(m0,S$)|0,s0=s0+Math.imul(m0,F)|0,s0=s0+Math.imul(a0,S$)|0,I=I+Math.imul(a0,F)|0;var $0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+($0>>>26)|0,$0&=67108863,v=Math.imul(O$,A$),s0=Math.imul(O$,b),s0=s0+Math.imul(c,A$)|0,I=Math.imul(c,b),v=v+Math.imul(p,l)|0,s0=s0+Math.imul(p,W$)|0,s0=s0+Math.imul(I$,l)|0,I=I+Math.imul(I$,W$)|0,v=v+Math.imul(X$,E$)|0,s0=s0+Math.imul(X$,u)|0,s0=s0+Math.imul(w,E$)|0,I=I+Math.imul(w,u)|0,v=v+Math.imul(B,n)|0,s0=s0+Math.imul(B,D$)|0,s0=s0+Math.imul(U$,n)|0,I=I+Math.imul(U$,D$)|0,v=v+Math.imul(G$,C$)|0,s0=s0+Math.imul(G$,t)|0,s0=s0+Math.imul(x,C$)|0,I=I+Math.imul(x,t)|0,v=v+Math.imul(_,m)|0,s0=s0+Math.imul(_,R$)|0,s0=s0+Math.imul(Z$,m)|0,I=I+Math.imul(Z$,R$)|0,v=v+Math.imul(Q$,P$)|0,s0=s0+Math.imul(Q$,O)|0,s0=s0+Math.imul(g,P$)|0,I=I+Math.imul(g,O)|0,v=v+Math.imul(j,e)|0,s0=s0+Math.imul(j,M$)|0,s0=s0+Math.imul($$,e)|0,I=I+Math.imul($$,M$)|0,v=v+Math.imul(e0,S$)|0,s0=s0+Math.imul(e0,F)|0,s0=s0+Math.imul(r0,S$)|0,I=I+Math.imul(r0,F)|0;var x$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(x$>>>26)|0,x$&=67108863,v=Math.imul(O$,l),s0=Math.imul(O$,W$),s0=s0+Math.imul(c,l)|0,I=Math.imul(c,W$),v=v+Math.imul(p,E$)|0,s0=s0+Math.imul(p,u)|0,s0=s0+Math.imul(I$,E$)|0,I=I+Math.imul(I$,u)|0,v=v+Math.imul(X$,n)|0,s0=s0+Math.imul(X$,D$)|0,s0=s0+Math.imul(w,n)|0,I=I+Math.imul(w,D$)|0,v=v+Math.imul(B,C$)|0,s0=s0+Math.imul(B,t)|0,s0=s0+Math.imul(U$,C$)|0,I=I+Math.imul(U$,t)|0,v=v+Math.imul(G$,m)|0,s0=s0+Math.imul(G$,R$)|0,s0=s0+Math.imul(x,m)|0,I=I+Math.imul(x,R$)|0,v=v+Math.imul(_,P$)|0,s0=s0+Math.imul(_,O)|0,s0=s0+Math.imul(Z$,P$)|0,I=I+Math.imul(Z$,O)|0,v=v+Math.imul(Q$,e)|0,s0=s0+Math.imul(Q$,M$)|0,s0=s0+Math.imul(g,e)|0,I=I+Math.imul(g,M$)|0,v=v+Math.imul(j,S$)|0,s0=s0+Math.imul(j,F)|0,s0=s0+Math.imul($$,S$)|0,I=I+Math.imul($$,F)|0;var Q0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Q0>>>26)|0,Q0&=67108863,v=Math.imul(O$,E$),s0=Math.imul(O$,u),s0=s0+Math.imul(c,E$)|0,I=Math.imul(c,u),v=v+Math.imul(p,n)|0,s0=s0+Math.imul(p,D$)|0,s0=s0+Math.imul(I$,n)|0,I=I+Math.imul(I$,D$)|0,v=v+Math.imul(X$,C$)|0,s0=s0+Math.imul(X$,t)|0,s0=s0+Math.imul(w,C$)|0,I=I+Math.imul(w,t)|0,v=v+Math.imul(B,m)|0,s0=s0+Math.imul(B,R$)|0,s0=s0+Math.imul(U$,m)|0,I=I+Math.imul(U$,R$)|0,v=v+Math.imul(G$,P$)|0,s0=s0+Math.imul(G$,O)|0,s0=s0+Math.imul(x,P$)|0,I=I+Math.imul(x,O)|0,v=v+Math.imul(_,e)|0,s0=s0+Math.imul(_,M$)|0,s0=s0+Math.imul(Z$,e)|0,I=I+Math.imul(Z$,M$)|0,v=v+Math.imul(Q$,S$)|0,s0=s0+Math.imul(Q$,F)|0,s0=s0+Math.imul(g,S$)|0,I=I+Math.imul(g,F)|0;var B$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(B$>>>26)|0,B$&=67108863,v=Math.imul(O$,n),s0=Math.imul(O$,D$),s0=s0+Math.imul(c,n)|0,I=Math.imul(c,D$),v=v+Math.imul(p,C$)|0,s0=s0+Math.imul(p,t)|0,s0=s0+Math.imul(I$,C$)|0,I=I+Math.imul(I$,t)|0,v=v+Math.imul(X$,m)|0,s0=s0+Math.imul(X$,R$)|0,s0=s0+Math.imul(w,m)|0,I=I+Math.imul(w,R$)|0,v=v+Math.imul(B,P$)|0,s0=s0+Math.imul(B,O)|0,s0=s0+Math.imul(U$,P$)|0,I=I+Math.imul(U$,O)|0,v=v+Math.imul(G$,e)|0,s0=s0+Math.imul(G$,M$)|0,s0=s0+Math.imul(x,e)|0,I=I+Math.imul(x,M$)|0,v=v+Math.imul(_,S$)|0,s0=s0+Math.imul(_,F)|0,s0=s0+Math.imul(Z$,S$)|0,I=I+Math.imul(Z$,F)|0;var Y0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Y0>>>26)|0,Y0&=67108863,v=Math.imul(O$,C$),s0=Math.imul(O$,t),s0=s0+Math.imul(c,C$)|0,I=Math.imul(c,t),v=v+Math.imul(p,m)|0,s0=s0+Math.imul(p,R$)|0,s0=s0+Math.imul(I$,m)|0,I=I+Math.imul(I$,R$)|0,v=v+Math.imul(X$,P$)|0,s0=s0+Math.imul(X$,O)|0,s0=s0+Math.imul(w,P$)|0,I=I+Math.imul(w,O)|0,v=v+Math.imul(B,e)|0,s0=s0+Math.imul(B,M$)|0,s0=s0+Math.imul(U$,e)|0,I=I+Math.imul(U$,M$)|0,v=v+Math.imul(G$,S$)|0,s0=s0+Math.imul(G$,F)|0,s0=s0+Math.imul(x,S$)|0,I=I+Math.imul(x,F)|0;var y$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(y$>>>26)|0,y$&=67108863,v=Math.imul(O$,m),s0=Math.imul(O$,R$),s0=s0+Math.imul(c,m)|0,I=Math.imul(c,R$),v=v+Math.imul(p,P$)|0,s0=s0+Math.imul(p,O)|0,s0=s0+Math.imul(I$,P$)|0,I=I+Math.imul(I$,O)|0,v=v+Math.imul(X$,e)|0,s0=s0+Math.imul(X$,M$)|0,s0=s0+Math.imul(w,e)|0,I=I+Math.imul(w,M$)|0,v=v+Math.imul(B,S$)|0,s0=s0+Math.imul(B,F)|0,s0=s0+Math.imul(U$,S$)|0,I=I+Math.imul(U$,F)|0;var Z0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Z0>>>26)|0,Z0&=67108863,v=Math.imul(O$,P$),s0=Math.imul(O$,O),s0=s0+Math.imul(c,P$)|0,I=Math.imul(c,O),v=v+Math.imul(p,e)|0,s0=s0+Math.imul(p,M$)|0,s0=s0+Math.imul(I$,e)|0,I=I+Math.imul(I$,M$)|0,v=v+Math.imul(X$,S$)|0,s0=s0+Math.imul(X$,F)|0,s0=s0+Math.imul(w,S$)|0,I=I+Math.imul(w,F)|0;var w$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(w$>>>26)|0,w$&=67108863,v=Math.imul(O$,e),s0=Math.imul(O$,M$),s0=s0+Math.imul(c,e)|0,I=Math.imul(c,M$),v=v+Math.imul(p,S$)|0,s0=s0+Math.imul(p,F)|0,s0=s0+Math.imul(I$,S$)|0,I=I+Math.imul(I$,F)|0;var G0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(G0>>>26)|0,G0&=67108863,v=Math.imul(O$,S$),s0=Math.imul(O$,F),s0=s0+Math.imul(c,S$)|0,I=Math.imul(c,F);var p$=(n0+v|0)+((s0&8191)<<13)|0;return n0=(I+(s0>>>13)|0)+(p$>>>26)|0,p$&=67108863,S[0]=v$,S[1]=r,S[2]=q$,S[3]=i,S[4]=j$,S[5]=k$,S[6]=g$,S[7]=_$,S[8]=N$,S[9]=$0,S[10]=x$,S[11]=Q0,S[12]=B$,S[13]=Y0,S[14]=y$,S[15]=Z0,S[16]=w$,S[17]=G0,S[18]=p$,n0!==0&&(S[19]=n0,o0.length++),o0};Math.imul||(p0=E);function T(l0,z,o0){o0.negative=z.negative^l0.negative,o0.length=l0.length+z.length;for(var M=0,u0=0,S=0;S>>26)|0,u0+=n0>>>26,n0&=67108863}o0.words[S]=v,M=n0,n0=u0}return M!==0?o0.words[S]=M:o0.length--,o0.strip()}function f0(l0,z,o0){var M=new D;return M.mulp(l0,z,o0)}Z.prototype.mulTo=function(l0,z){var o0,M=this.length+l0.length;return this.length===10&&l0.length===10?o0=p0(this,l0,z):M<63?o0=E(this,l0,z):M<1024?o0=T(this,l0,z):o0=f0(this,l0,z),o0};function D(l0,z){this.x=l0,this.y=z}D.prototype.makeRBT=function(l0){for(var z=new Array(l0),o0=Z.prototype._countBits(l0)-1,M=0;M>=1;return M},D.prototype.permute=function(l0,z,o0,M,u0,S){for(var n0=0;n0>>1)u0++;return 1<>>13,o0[2*S+1]=u0&8191,u0=u0>>>13;for(S=2*z;S>=26,z+=M/67108864|0,z+=u0>>>26,this.words[o0]=u0&67108863}return z!==0&&(this.words[o0]=z,this.length++),this},Z.prototype.muln=function(l0){return this.clone().imuln(l0)},Z.prototype.sqr=function(){return this.mul(this)},Z.prototype.isqr=function(){return this.imul(this.clone())},Z.prototype.pow=function(l0){var z=w0(l0);if(z.length===0)return new Z(1);for(var o0=this,M=0;M=0);var z=l0%26,o0=(l0-z)/26,M=67108863>>>26-z<<26-z,u0;if(z!==0){var S=0;for(u0=0;u0>>26-z}S&&(this.words[u0]=S,this.length++)}if(o0!==0){for(u0=this.length-1;u0>=0;u0--)this.words[u0+o0]=this.words[u0];for(u0=0;u0=0);var M;z?M=(z-z%26)/26:M=0;var u0=l0%26,S=Math.min((l0-u0)/26,this.length),n0=67108863^67108863>>>u0<S)for(this.length-=S,s0=0;s0=0&&(I!==0||s0>=M);s0--){var t0=this.words[s0]|0;this.words[s0]=I<<26-u0|t0>>>u0,I=t0&n0}return v&&I!==0&&(v.words[v.length++]=I),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},Z.prototype.ishrn=function(l0,z,o0){return Y(this.negative===0),this.iushrn(l0,z,o0)},Z.prototype.shln=function(l0){return this.clone().ishln(l0)},Z.prototype.ushln=function(l0){return this.clone().iushln(l0)},Z.prototype.shrn=function(l0){return this.clone().ishrn(l0)},Z.prototype.ushrn=function(l0){return this.clone().iushrn(l0)},Z.prototype.testn=function(l0){Y(typeof l0=="number"&&l0>=0);var z=l0%26,o0=(l0-z)/26,M=1<=0);var z=l0%26,o0=(l0-z)/26;if(Y(this.negative===0,"imaskn works only with positive numbers"),this.length<=o0)return this;if(z!==0&&o0++,this.length=Math.min(o0,this.length),z!==0){var M=67108863^67108863>>>z<=67108864;z++)this.words[z]-=67108864,z===this.length-1?this.words[z+1]=1:this.words[z+1]++;return this.length=Math.max(this.length,z+1),this},Z.prototype.isubn=function(l0){if(Y(typeof l0=="number"),Y(l0<67108864),l0<0)return this.iaddn(-l0);if(this.negative!==0)return this.negative=0,this.iaddn(l0),this.negative=1,this;if(this.words[0]-=l0,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var z=0;z>26)-(v/67108864|0),this.words[u0+o0]=S&67108863}for(;u0>26,this.words[u0+o0]=S&67108863;if(n0===0)return this.strip();for(Y(n0===-1),n0=0,u0=0;u0>26,this.words[u0]=S&67108863;return this.negative=1,this.strip()},Z.prototype._wordDiv=function(l0,z){var o0=this.length-l0.length,M=this.clone(),u0=l0,S=u0.words[u0.length-1]|0,n0=this._countBits(S);o0=26-n0,o0!==0&&(u0=u0.ushln(o0),M.iushln(o0),S=u0.words[u0.length-1]|0);var v=M.length-u0.length,s0;if(z!=="mod"){s0=new Z(null),s0.length=v+1,s0.words=new Array(s0.length);for(var I=0;I=0;m0--){var a0=(M.words[u0.length+m0]|0)*67108864+(M.words[u0.length+m0-1]|0);for(a0=Math.min(a0/S|0,67108863),M._ishlnsubmul(u0,a0,m0);M.negative!==0;)a0--,M.negative=0,M._ishlnsubmul(u0,1,m0),M.isZero()||(M.negative^=1);s0&&(s0.words[m0]=a0)}return s0&&s0.strip(),M.strip(),z!=="div"&&o0!==0&&M.iushrn(o0),{div:s0||null,mod:M}},Z.prototype.divmod=function(l0,z,o0){if(Y(!l0.isZero()),this.isZero())return{div:new Z(0),mod:new Z(0)};var M,u0,S;return this.negative!==0&&l0.negative===0?(S=this.neg().divmod(l0,z),z!=="mod"&&(M=S.div.neg()),z!=="div"&&(u0=S.mod.neg(),o0&&u0.negative!==0&&u0.iadd(l0)),{div:M,mod:u0}):this.negative===0&&l0.negative!==0?(S=this.divmod(l0.neg(),z),z!=="mod"&&(M=S.div.neg()),{div:M,mod:S.mod}):(this.negative&l0.negative)!==0?(S=this.neg().divmod(l0.neg(),z),z!=="div"&&(u0=S.mod.neg(),o0&&u0.negative!==0&&u0.isub(l0)),{div:S.div,mod:u0}):l0.length>this.length||this.cmp(l0)<0?{div:new Z(0),mod:this}:l0.length===1?z==="div"?{div:this.divn(l0.words[0]),mod:null}:z==="mod"?{div:null,mod:new Z(this.modn(l0.words[0]))}:{div:this.divn(l0.words[0]),mod:new Z(this.modn(l0.words[0]))}:this._wordDiv(l0,z)},Z.prototype.div=function(l0){return this.divmod(l0,"div",!1).div},Z.prototype.mod=function(l0){return this.divmod(l0,"mod",!1).mod},Z.prototype.umod=function(l0){return this.divmod(l0,"mod",!0).mod},Z.prototype.divRound=function(l0){var z=this.divmod(l0);if(z.mod.isZero())return z.div;var o0=z.div.negative!==0?z.mod.isub(l0):z.mod,M=l0.ushrn(1),u0=l0.andln(1),S=o0.cmp(M);return S<0||u0===1&&S===0?z.div:z.div.negative!==0?z.div.isubn(1):z.div.iaddn(1)},Z.prototype.modn=function(l0){Y(l0<=67108863);for(var z=(1<<26)%l0,o0=0,M=this.length-1;M>=0;M--)o0=(z*o0+(this.words[M]|0))%l0;return o0},Z.prototype.idivn=function(l0){Y(l0<=67108863);for(var z=0,o0=this.length-1;o0>=0;o0--){var M=(this.words[o0]|0)+z*67108864;this.words[o0]=M/l0|0,z=M%l0}return this.strip()},Z.prototype.divn=function(l0){return this.clone().idivn(l0)},Z.prototype.egcd=function(l0){Y(l0.negative===0),Y(!l0.isZero());var z=this,o0=l0.clone();z.negative!==0?z=z.umod(l0):z=z.clone();for(var M=new Z(1),u0=new Z(0),S=new Z(0),n0=new Z(1),v=0;z.isEven()&&o0.isEven();)z.iushrn(1),o0.iushrn(1),++v;for(var s0=o0.clone(),I=z.clone();!z.isZero();){for(var t0=0,m0=1;(z.words[0]&m0)===0&&t0<26;++t0,m0<<=1);if(t0>0)for(z.iushrn(t0);t0-- >0;)(M.isOdd()||u0.isOdd())&&(M.iadd(s0),u0.isub(I)),M.iushrn(1),u0.iushrn(1);for(var a0=0,q=1;(o0.words[0]&q)===0&&a0<26;++a0,q<<=1);if(a0>0)for(o0.iushrn(a0);a0-- >0;)(S.isOdd()||n0.isOdd())&&(S.iadd(s0),n0.isub(I)),S.iushrn(1),n0.iushrn(1);z.cmp(o0)>=0?(z.isub(o0),M.isub(S),u0.isub(n0)):(o0.isub(z),S.isub(M),n0.isub(u0))}return{a:S,b:n0,gcd:o0.iushln(v)}},Z.prototype._invmp=function(l0){Y(l0.negative===0),Y(!l0.isZero());var z=this,o0=l0.clone();z.negative!==0?z=z.umod(l0):z=z.clone();for(var M=new Z(1),u0=new Z(0),S=o0.clone();z.cmpn(1)>0&&o0.cmpn(1)>0;){for(var n0=0,v=1;(z.words[0]&v)===0&&n0<26;++n0,v<<=1);if(n0>0)for(z.iushrn(n0);n0-- >0;)M.isOdd()&&M.iadd(S),M.iushrn(1);for(var s0=0,I=1;(o0.words[0]&I)===0&&s0<26;++s0,I<<=1);if(s0>0)for(o0.iushrn(s0);s0-- >0;)u0.isOdd()&&u0.iadd(S),u0.iushrn(1);z.cmp(o0)>=0?(z.isub(o0),M.isub(u0)):(o0.isub(z),u0.isub(M))}var t0;return z.cmpn(1)===0?t0=M:t0=u0,t0.cmpn(0)<0&&t0.iadd(l0),t0},Z.prototype.gcd=function(l0){if(this.isZero())return l0.abs();if(l0.isZero())return this.abs();var z=this.clone(),o0=l0.clone();z.negative=0,o0.negative=0;for(var M=0;z.isEven()&&o0.isEven();M++)z.iushrn(1),o0.iushrn(1);do{for(;z.isEven();)z.iushrn(1);for(;o0.isEven();)o0.iushrn(1);var u0=z.cmp(o0);if(u0<0){var S=z;z=o0,o0=S}else if(u0===0||o0.cmpn(1)===0)break;z.isub(o0)}while(!0);return o0.iushln(M)},Z.prototype.invm=function(l0){return this.egcd(l0).a.umod(l0)},Z.prototype.isEven=function(){return(this.words[0]&1)===0},Z.prototype.isOdd=function(){return(this.words[0]&1)===1},Z.prototype.andln=function(l0){return this.words[0]&l0},Z.prototype.bincn=function(l0){Y(typeof l0=="number");var z=l0%26,o0=(l0-z)/26,M=1<>>26,n0&=67108863,this.words[S]=n0}return u0!==0&&(this.words[S]=u0,this.length++),this},Z.prototype.isZero=function(){return this.length===1&&this.words[0]===0},Z.prototype.cmpn=function(l0){var z=l0<0;if(this.negative!==0&&!z)return-1;if(this.negative===0&&z)return 1;this.strip();var o0;if(this.length>1)o0=1;else{z&&(l0=-l0),Y(l0<=67108863,"Number is too big");var M=this.words[0]|0;o0=M===l0?0:Ml0.length)return 1;if(this.length=0;o0--){var M=this.words[o0]|0,u0=l0.words[o0]|0;if(M!==u0){Mu0&&(z=1);break}}return z},Z.prototype.gtn=function(l0){return this.cmpn(l0)===1},Z.prototype.gt=function(l0){return this.cmp(l0)===1},Z.prototype.gten=function(l0){return this.cmpn(l0)>=0},Z.prototype.gte=function(l0){return this.cmp(l0)>=0},Z.prototype.ltn=function(l0){return this.cmpn(l0)===-1},Z.prototype.lt=function(l0){return this.cmp(l0)===-1},Z.prototype.lten=function(l0){return this.cmpn(l0)<=0},Z.prototype.lte=function(l0){return this.cmp(l0)<=0},Z.prototype.eqn=function(l0){return this.cmpn(l0)===0},Z.prototype.eq=function(l0){return this.cmp(l0)===0},Z.red=function(l0){return new b0(l0)},Z.prototype.toRed=function(l0){return Y(!this.red,"Already a number in reduction context"),Y(this.negative===0,"red works only with positives"),l0.convertTo(this)._forceRed(l0)},Z.prototype.fromRed=function(){return Y(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},Z.prototype._forceRed=function(l0){return this.red=l0,this},Z.prototype.forceRed=function(l0){return Y(!this.red,"Already a number in reduction context"),this._forceRed(l0)},Z.prototype.redAdd=function(l0){return Y(this.red,"redAdd works only with red numbers"),this.red.add(this,l0)},Z.prototype.redIAdd=function(l0){return Y(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,l0)},Z.prototype.redSub=function(l0){return Y(this.red,"redSub works only with red numbers"),this.red.sub(this,l0)},Z.prototype.redISub=function(l0){return Y(this.red,"redISub works only with red numbers"),this.red.isub(this,l0)},Z.prototype.redShl=function(l0){return Y(this.red,"redShl works only with red numbers"),this.red.shl(this,l0)},Z.prototype.redMul=function(l0){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,l0),this.red.mul(this,l0)},Z.prototype.redIMul=function(l0){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,l0),this.red.imul(this,l0)},Z.prototype.redSqr=function(){return Y(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},Z.prototype.redISqr=function(){return Y(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},Z.prototype.redSqrt=function(){return Y(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},Z.prototype.redInvm=function(){return Y(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},Z.prototype.redNeg=function(){return Y(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},Z.prototype.redPow=function(l0){return Y(this.red&&!l0.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,l0)};var c0={k256:null,p224:null,p192:null,p25519:null};function C(l0,z){this.name=l0,this.p=new Z(z,16),this.n=this.p.bitLength(),this.k=new Z(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}C.prototype._tmp=function(){var l0=new Z(null);return l0.words=new Array(Math.ceil(this.n/13)),l0},C.prototype.ireduce=function(l0){var z=l0,o0;do this.split(z,this.tmp),z=this.imulK(z),z=z.iadd(this.tmp),o0=z.bitLength();while(o0>this.n);var M=o00?z.isub(this.p):z.strip!==void 0?z.strip():z._strip(),z},C.prototype.split=function(l0,z){l0.iushrn(this.n,0,z)},C.prototype.imulK=function(l0){return l0.imul(this.k)};function h0(){C.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}$(h0,C),h0.prototype.split=function(l0,z){for(var o0=4194303,M=Math.min(l0.length,9),u0=0;u0>>22,S=n0}S>>>=22,l0.words[u0-10]=S,S===0&&l0.length>10?l0.length-=10:l0.length-=9},h0.prototype.imulK=function(l0){l0.words[l0.length]=0,l0.words[l0.length+1]=0,l0.length+=2;for(var z=0,o0=0;o0>>=26,l0.words[o0]=u0,z=M}return z!==0&&(l0.words[l0.length++]=z),l0},Z._prime=function(l0){if(c0[l0])return c0[l0];var z;if(l0==="k256")z=new h0;else if(l0==="p224")z=new L;else if(l0==="p192")z=new d0;else if(l0==="p25519")z=new R;else throw new Error("Unknown prime "+l0);return c0[l0]=z,z};function b0(l0){if(typeof l0=="string"){var z=Z._prime(l0);this.m=z.p,this.prime=z}else Y(l0.gtn(1),"modulus must be greater than 1"),this.m=l0,this.prime=null}b0.prototype._verify1=function(l0){Y(l0.negative===0,"red works only with positives"),Y(l0.red,"red works only with red numbers")},b0.prototype._verify2=function(l0,z){Y((l0.negative|z.negative)===0,"red works only with positives"),Y(l0.red&&l0.red===z.red,"red works only with red numbers")},b0.prototype.imod=function(l0){return this.prime?this.prime.ireduce(l0)._forceRed(this):l0.umod(this.m)._forceRed(this)},b0.prototype.neg=function(l0){return l0.isZero()?l0.clone():this.m.sub(l0)._forceRed(this)},b0.prototype.add=function(l0,z){this._verify2(l0,z);var o0=l0.add(z);return o0.cmp(this.m)>=0&&o0.isub(this.m),o0._forceRed(this)},b0.prototype.iadd=function(l0,z){this._verify2(l0,z);var o0=l0.iadd(z);return o0.cmp(this.m)>=0&&o0.isub(this.m),o0},b0.prototype.sub=function(l0,z){this._verify2(l0,z);var o0=l0.sub(z);return o0.cmpn(0)<0&&o0.iadd(this.m),o0._forceRed(this)},b0.prototype.isub=function(l0,z){this._verify2(l0,z);var o0=l0.isub(z);return o0.cmpn(0)<0&&o0.iadd(this.m),o0},b0.prototype.shl=function(l0,z){return this._verify1(l0),this.imod(l0.ushln(z))},b0.prototype.imul=function(l0,z){return this._verify2(l0,z),this.imod(l0.imul(z))},b0.prototype.mul=function(l0,z){return this._verify2(l0,z),this.imod(l0.mul(z))},b0.prototype.isqr=function(l0){return this.imul(l0,l0.clone())},b0.prototype.sqr=function(l0){return this.mul(l0,l0)},b0.prototype.sqrt=function(l0){if(l0.isZero())return l0.clone();var z=this.m.andln(3);if(Y(z%2===1),z===3){var o0=this.m.add(new Z(1)).iushrn(2);return this.pow(l0,o0)}for(var M=this.m.subn(1),u0=0;!M.isZero()&&M.andln(1)===0;)u0++,M.iushrn(1);Y(!M.isZero());var S=new Z(1).toRed(this),n0=S.redNeg(),v=this.m.subn(1).iushrn(1),s0=this.m.bitLength();for(s0=new Z(2*s0*s0).toRed(this);this.pow(s0,v).cmp(n0)!==0;)s0.redIAdd(n0);for(var I=this.pow(s0,M),t0=this.pow(l0,M.addn(1).iushrn(1)),m0=this.pow(l0,M),a0=u0;m0.cmp(S)!==0;){for(var q=m0,e0=0;q.cmp(S)!==0;e0++)q=q.redSqr();Y(e0=0;u0--){for(var I=z.words[u0],t0=s0-1;t0>=0;t0--){var m0=I>>t0&1;if(S!==M[0]&&(S=this.sqr(S)),m0===0&&n0===0){v=0;continue}n0<<=1,n0|=m0,v++,!(v!==o0&&(u0!==0||t0!==0))&&(S=this.mul(S,M[n0]),v=0,n0=0)}s0=26}return S},b0.prototype.convertTo=function(l0){var z=l0.umod(this.m);return z===l0?z.clone():z},b0.prototype.convertFrom=function(l0){var z=l0.clone();return z.red=null,z},Z.mont=function(l0){return new P(l0)};function P(l0){b0.call(this,l0),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new Z(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}$(P,b0),P.prototype.convertTo=function(l0){return this.imod(l0.ushln(this.shift))},P.prototype.convertFrom=function(l0){var z=this.imod(l0.mul(this.rinv));return z.red=null,z},P.prototype.imul=function(l0,z){if(l0.isZero()||z.isZero())return l0.words[0]=0,l0.length=1,l0;var o0=l0.imul(z),M=o0.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u0=o0.isub(M).iushrn(this.shift),S=u0;return u0.cmp(this.m)>=0?S=u0.isub(this.m):u0.cmpn(0)<0&&(S=u0.iadd(this.m)),S._forceRed(this)},P.prototype.mul=function(l0,z){if(l0.isZero()||z.isZero())return new Z(0)._forceRed(this);var o0=l0.mul(z),M=o0.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u0=o0.isub(M).iushrn(this.shift),S=u0;return u0.cmp(this.m)>=0?S=u0.isub(this.m):u0.cmpn(0)<0&&(S=u0.iadd(this.m)),S._forceRed(this)},P.prototype.invm=function(l0){var z=this.imod(l0._invmp(this.m).mul(this.r2));return z._forceRed(this)}})(typeof K>"u"||K,X)}}),lQ=$Q({"node_modules/minimalistic-crypto-utils/lib/utils.js"(X){var K=X;function x0($,Z){if(Array.isArray($))return $.slice();if(!$)return[];var Q=[];if(typeof $!="string"){for(var U=0;U<$.length;U++)Q[U]=$[U]|0;return Q}if(Z==="hex"){$=$.replace(/[^a-z0-9]+/gi,""),$.length%2!==0&&($="0"+$);for(var U=0;U<$.length;U+=2)Q.push(parseInt($[U]+$[U+1],16))}else for(var U=0;U<$.length;U++){var V=$.charCodeAt(U),B0=V>>8,H=V&255;B0?Q.push(B0,H):Q.push(H)}return Q}K.toArray=x0;function G($){return $.length===1?"0"+$:$}K.zero2=G;function Y($){for(var Z="",Q=0;Q<$.length;Q++)Z+=G($[Q].toString(16));return Z}K.toHex=Y,K.encode=function($,Z){return Z==="hex"?Y($):$}}}),oQ=$Q({"node_modules/elliptic/lib/elliptic/utils.js"(X){var K=X,x0=bQ(),G=N0(),Y=lQ();K.assert=G,K.toArray=Y.toArray,K.zero2=Y.zero2,K.toHex=Y.toHex,K.encode=Y.encode;function $(B0,H,y0){var W=new Array(Math.max(B0.bitLength(),y0)+1);W.fill(0);for(var w0=1<(w0>>1)-1?T=(w0>>1)-f0:T=f0,E.isubn(T)):T=0,W[p0]=T,E.iushrn(1)}return W}K.getNAF=$;function Z(B0,H){var y0=[[],[]];B0=B0.clone(),H=H.clone();for(var W=0,w0=0,E;B0.cmpn(-W)>0||H.cmpn(-w0)>0;){var p0=B0.andln(3)+W&3,T=H.andln(3)+w0&3;p0===3&&(p0=-1),T===3&&(T=-1);var f0;(p0&1)===0?f0=0:(E=B0.andln(7)+W&7,(E===3||E===5)&&T===2?f0=-p0:f0=p0),y0[0].push(f0);var D;(T&1)===0?D=0:(E=H.andln(7)+w0&7,(E===3||E===5)&&p0===2?D=-T:D=T),y0[1].push(D),2*W===f0+1&&(W=1-W),2*w0===D+1&&(w0=1-w0),B0.iushrn(1),H.iushrn(1)}return y0}K.getJSF=Z;function Q(B0,H,y0){var W="_"+H;B0.prototype[H]=function(){return this[W]!==void 0?this[W]:this[W]=y0.call(this)}}K.cachedProperty=Q;function U(B0){return typeof B0=="string"?K.toArray(B0,"hex"):B0}K.parseBytes=U;function V(B0){return new x0(B0,"hex","le")}K.intFromLE=V}}),uQ=$Q({"node_modules/elliptic/lib/elliptic/curve/base.js"(X,K){var x0=bQ(),G=oQ(),Y=G.getNAF,$=G.getJSF,Z=G.assert;function Q(V,B0){this.type=V,this.p=new x0(B0.p,16),this.red=B0.prime?x0.red(B0.prime):x0.mont(this.p),this.zero=new x0(0).toRed(this.red),this.one=new x0(1).toRed(this.red),this.two=new x0(2).toRed(this.red),this.n=B0.n&&new x0(B0.n,16),this.g=B0.g&&this.pointFromJSON(B0.g,B0.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var H=this.n&&this.p.div(this.n);!H||H.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}K.exports=Q,Q.prototype.point=function(){throw new Error("Not implemented")},Q.prototype.validate=function(){throw new Error("Not implemented")},Q.prototype._fixedNafMul=function(V,B0){Z(V.precomputed);var H=V._getDoubles(),y0=Y(B0,1,this._bitLength),W=(1<=E;T--)p0=(p0<<1)+y0[T];w0.push(p0)}for(var f0=this.jpoint(null,null,null),D=this.jpoint(null,null,null),c0=W;c0>0;c0--){for(E=0;E=0;p0--){for(var T=0;p0>=0&&w0[p0]===0;p0--)T++;if(p0>=0&&T++,E=E.dblp(T),p0<0)break;var f0=w0[p0];Z(f0!==0),V.type==="affine"?f0>0?E=E.mixedAdd(W[f0-1>>1]):E=E.mixedAdd(W[-f0-1>>1].neg()):f0>0?E=E.add(W[f0-1>>1]):E=E.add(W[-f0-1>>1].neg())}return V.type==="affine"?E.toP():E},Q.prototype._wnafMulAdd=function(V,B0,H,y0,W){var w0=this._wnafT1,E=this._wnafT2,p0=this._wnafT3,T=0,f0,D,c0;for(f0=0;f0=1;f0-=2){var h0=f0-1,L=f0;if(w0[h0]!==1||w0[L]!==1){p0[h0]=Y(H[h0],w0[h0],this._bitLength),p0[L]=Y(H[L],w0[L],this._bitLength),T=Math.max(p0[h0].length,T),T=Math.max(p0[L].length,T);continue}var d0=[B0[h0],null,null,B0[L]];B0[h0].y.cmp(B0[L].y)===0?(d0[1]=B0[h0].add(B0[L]),d0[2]=B0[h0].toJ().mixedAdd(B0[L].neg())):B0[h0].y.cmp(B0[L].y.redNeg())===0?(d0[1]=B0[h0].toJ().mixedAdd(B0[L]),d0[2]=B0[h0].add(B0[L].neg())):(d0[1]=B0[h0].toJ().mixedAdd(B0[L]),d0[2]=B0[h0].toJ().mixedAdd(B0[L].neg()));var R=[-3,-1,-5,-7,0,7,5,1,3],b0=$(H[h0],H[L]);for(T=Math.max(b0[0].length,T),p0[h0]=new Array(T),p0[L]=new Array(T),D=0;D=0;f0--){for(var M=0;f0>=0;){var u0=!0;for(D=0;D=0&&M++,z=z.dblp(M),f0<0)break;for(D=0;D0?c0=E[D][S-1>>1]:S<0&&(c0=E[D][-S-1>>1].neg()),c0.type==="affine"?z=z.mixedAdd(c0):z=z.add(c0))}}for(f0=0;f0=Math.ceil((V.bitLength()+1)/B0.step):!1},U.prototype._getDoubles=function(V,B0){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var H=[this],y0=this,W=0;W=0&&(h0=f0,L=D),c0.negative&&(c0=c0.neg(),C=C.neg()),h0.negative&&(h0=h0.neg(),L=L.neg()),[{a:c0,b:C},{a:h0,b:L}]},Q.prototype._endoSplit=function(B0){var H=this.endo.basis,y0=H[0],W=H[1],w0=W.b.mul(B0).divRound(this.n),E=y0.b.neg().mul(B0).divRound(this.n),p0=w0.mul(y0.a),T=E.mul(W.a),f0=w0.mul(y0.b),D=E.mul(W.b),c0=B0.sub(p0).sub(T),C=f0.add(D).neg();return{k1:c0,k2:C}},Q.prototype.pointFromX=function(B0,H){B0=new G(B0,16),B0.red||(B0=B0.toRed(this.red));var y0=B0.redSqr().redMul(B0).redIAdd(B0.redMul(this.a)).redIAdd(this.b),W=y0.redSqrt();if(W.redSqr().redSub(y0).cmp(this.zero)!==0)throw new Error("invalid point");var w0=W.fromRed().isOdd();return(H&&!w0||!H&&w0)&&(W=W.redNeg()),this.point(B0,W)},Q.prototype.validate=function(B0){if(B0.inf)return!0;var{x:H,y:y0}=B0,W=this.a.redMul(H),w0=H.redSqr().redMul(H).redIAdd(W).redIAdd(this.b);return y0.redSqr().redISub(w0).cmpn(0)===0},Q.prototype._endoWnafMulAdd=function(B0,H,y0){for(var W=this._endoWnafT1,w0=this._endoWnafT2,E=0;E":""},U.prototype.isInfinity=function(){return this.inf},U.prototype.add=function(B0){if(this.inf)return B0;if(B0.inf)return this;if(this.eq(B0))return this.dbl();if(this.neg().eq(B0))return this.curve.point(null,null);if(this.x.cmp(B0.x)===0)return this.curve.point(null,null);var H=this.y.redSub(B0.y);H.cmpn(0)!==0&&(H=H.redMul(this.x.redSub(B0.x).redInvm()));var y0=H.redSqr().redISub(this.x).redISub(B0.x),W=H.redMul(this.x.redSub(y0)).redISub(this.y);return this.curve.point(y0,W)},U.prototype.dbl=function(){if(this.inf)return this;var B0=this.y.redAdd(this.y);if(B0.cmpn(0)===0)return this.curve.point(null,null);var H=this.curve.a,y0=this.x.redSqr(),W=B0.redInvm(),w0=y0.redAdd(y0).redIAdd(y0).redIAdd(H).redMul(W),E=w0.redSqr().redISub(this.x.redAdd(this.x)),p0=w0.redMul(this.x.redSub(E)).redISub(this.y);return this.curve.point(E,p0)},U.prototype.getX=function(){return this.x.fromRed()},U.prototype.getY=function(){return this.y.fromRed()},U.prototype.mul=function(B0){return B0=new G(B0,16),this.isInfinity()?this:this._hasDoubles(B0)?this.curve._fixedNafMul(this,B0):this.curve.endo?this.curve._endoWnafMulAdd([this],[B0]):this.curve._wnafMul(this,B0)},U.prototype.mulAdd=function(B0,H,y0){var W=[this,H],w0=[B0,y0];return this.curve.endo?this.curve._endoWnafMulAdd(W,w0):this.curve._wnafMulAdd(1,W,w0,2)},U.prototype.jmulAdd=function(B0,H,y0){var W=[this,H],w0=[B0,y0];return this.curve.endo?this.curve._endoWnafMulAdd(W,w0,!0):this.curve._wnafMulAdd(1,W,w0,2,!0)},U.prototype.eq=function(B0){return this===B0||this.inf===B0.inf&&(this.inf||this.x.cmp(B0.x)===0&&this.y.cmp(B0.y)===0)},U.prototype.neg=function(B0){if(this.inf)return this;var H=this.curve.point(this.x,this.y.redNeg());if(B0&&this.precomputed){var y0=this.precomputed,W=function(w0){return w0.neg()};H.precomputed={naf:y0.naf&&{wnd:y0.naf.wnd,points:y0.naf.points.map(W)},doubles:y0.doubles&&{step:y0.doubles.step,points:y0.doubles.points.map(W)}}}return H},U.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var B0=this.curve.jpoint(this.x,this.y,this.curve.one);return B0};function V(B0,H,y0,W){$.BasePoint.call(this,B0,"jacobian"),H===null&&y0===null&&W===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new G(0)):(this.x=new G(H,16),this.y=new G(y0,16),this.z=new G(W,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}Y(V,$.BasePoint),Q.prototype.jpoint=function(B0,H,y0){return new V(this,B0,H,y0)},V.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var B0=this.z.redInvm(),H=B0.redSqr(),y0=this.x.redMul(H),W=this.y.redMul(H).redMul(B0);return this.curve.point(y0,W)},V.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},V.prototype.add=function(B0){if(this.isInfinity())return B0;if(B0.isInfinity())return this;var H=B0.z.redSqr(),y0=this.z.redSqr(),W=this.x.redMul(H),w0=B0.x.redMul(y0),E=this.y.redMul(H.redMul(B0.z)),p0=B0.y.redMul(y0.redMul(this.z)),T=W.redSub(w0),f0=E.redSub(p0);if(T.cmpn(0)===0)return f0.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var D=T.redSqr(),c0=D.redMul(T),C=W.redMul(D),h0=f0.redSqr().redIAdd(c0).redISub(C).redISub(C),L=f0.redMul(C.redISub(h0)).redISub(E.redMul(c0)),d0=this.z.redMul(B0.z).redMul(T);return this.curve.jpoint(h0,L,d0)},V.prototype.mixedAdd=function(B0){if(this.isInfinity())return B0.toJ();if(B0.isInfinity())return this;var H=this.z.redSqr(),y0=this.x,W=B0.x.redMul(H),w0=this.y,E=B0.y.redMul(H).redMul(this.z),p0=y0.redSub(W),T=w0.redSub(E);if(p0.cmpn(0)===0)return T.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var f0=p0.redSqr(),D=f0.redMul(p0),c0=y0.redMul(f0),C=T.redSqr().redIAdd(D).redISub(c0).redISub(c0),h0=T.redMul(c0.redISub(C)).redISub(w0.redMul(D)),L=this.z.redMul(p0);return this.curve.jpoint(C,h0,L)},V.prototype.dblp=function(B0){if(B0===0)return this;if(this.isInfinity())return this;if(!B0)return this.dbl();var H;if(this.curve.zeroA||this.curve.threeA){var y0=this;for(H=0;H=0)return!1;if(y0.redIAdd(w0),this.x.cmp(y0)===0)return!0}},V.prototype.inspect=function(){return this.isInfinity()?"":""},V.prototype.isInfinity=function(){return this.z.cmpn(0)===0}}}),sQ=$Q({"node_modules/elliptic/lib/elliptic/curve/mont.js"(X,K){var x0=bQ(),G=X0(),Y=uQ(),$=oQ();function Z(U){Y.call(this,"mont",U),this.a=new x0(U.a,16).toRed(this.red),this.b=new x0(U.b,16).toRed(this.red),this.i4=new x0(4).toRed(this.red).redInvm(),this.two=new x0(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}G(Z,Y),K.exports=Z,Z.prototype.validate=function(U){var V=U.normalize().x,B0=V.redSqr(),H=B0.redMul(V).redAdd(B0.redMul(this.a)).redAdd(V),y0=H.redSqrt();return y0.redSqr().cmp(H)===0};function Q(U,V,B0){Y.BasePoint.call(this,U,"projective"),V===null&&B0===null?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new x0(V,16),this.z=new x0(B0,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}G(Q,Y.BasePoint),Z.prototype.decodePoint=function(U,V){return this.point($.toArray(U,V),1)},Z.prototype.point=function(U,V){return new Q(this,U,V)},Z.prototype.pointFromJSON=function(U){return Q.fromJSON(this,U)},Q.prototype.precompute=function(){},Q.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},Q.fromJSON=function(U,V){return new Q(U,V[0],V[1]||U.one)},Q.prototype.inspect=function(){return this.isInfinity()?"":""},Q.prototype.isInfinity=function(){return this.z.cmpn(0)===0},Q.prototype.dbl=function(){var U=this.x.redAdd(this.z),V=U.redSqr(),B0=this.x.redSub(this.z),H=B0.redSqr(),y0=V.redSub(H),W=V.redMul(H),w0=y0.redMul(H.redAdd(this.curve.a24.redMul(y0)));return this.curve.point(W,w0)},Q.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},Q.prototype.diffAdd=function(U,V){var B0=this.x.redAdd(this.z),H=this.x.redSub(this.z),y0=U.x.redAdd(U.z),W=U.x.redSub(U.z),w0=W.redMul(B0),E=y0.redMul(H),p0=V.z.redMul(w0.redAdd(E).redSqr()),T=V.x.redMul(w0.redISub(E).redSqr());return this.curve.point(p0,T)},Q.prototype.mul=function(U){for(var V=U.clone(),B0=this,H=this.curve.point(null,null),y0=this,W=[];V.cmpn(0)!==0;V.iushrn(1))W.push(V.andln(1));for(var w0=W.length-1;w0>=0;w0--)W[w0]===0?(B0=B0.diffAdd(H,y0),H=H.dbl()):(H=B0.diffAdd(H,y0),B0=B0.dbl());return H},Q.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},Q.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},Q.prototype.eq=function(U){return this.getX().cmp(U.getX())===0},Q.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},Q.prototype.getX=function(){return this.normalize(),this.x.fromRed()}}}),tQ=$Q({"node_modules/elliptic/lib/elliptic/curve/edwards.js"(X,K){var x0=oQ(),G=bQ(),Y=X0(),$=uQ(),Z=x0.assert;function Q(V){this.twisted=(V.a|0)!==1,this.mOneA=this.twisted&&(V.a|0)===-1,this.extended=this.mOneA,$.call(this,"edwards",V),this.a=new G(V.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new G(V.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new G(V.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),Z(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(V.c|0)===1}Y(Q,$),K.exports=Q,Q.prototype._mulA=function(V){return this.mOneA?V.redNeg():this.a.redMul(V)},Q.prototype._mulC=function(V){return this.oneC?V:this.c.redMul(V)},Q.prototype.jpoint=function(V,B0,H,y0){return this.point(V,B0,H,y0)},Q.prototype.pointFromX=function(V,B0){V=new G(V,16),V.red||(V=V.toRed(this.red));var H=V.redSqr(),y0=this.c2.redSub(this.a.redMul(H)),W=this.one.redSub(this.c2.redMul(this.d).redMul(H)),w0=y0.redMul(W.redInvm()),E=w0.redSqrt();if(E.redSqr().redSub(w0).cmp(this.zero)!==0)throw new Error("invalid point");var p0=E.fromRed().isOdd();return(B0&&!p0||!B0&&p0)&&(E=E.redNeg()),this.point(V,E)},Q.prototype.pointFromY=function(V,B0){V=new G(V,16),V.red||(V=V.toRed(this.red));var H=V.redSqr(),y0=H.redSub(this.c2),W=H.redMul(this.d).redMul(this.c2).redSub(this.a),w0=y0.redMul(W.redInvm());if(w0.cmp(this.zero)===0){if(B0)throw new Error("invalid point");return this.point(this.zero,V)}var E=w0.redSqrt();if(E.redSqr().redSub(w0).cmp(this.zero)!==0)throw new Error("invalid point");return E.fromRed().isOdd()!==B0&&(E=E.redNeg()),this.point(E,V)},Q.prototype.validate=function(V){if(V.isInfinity())return!0;V.normalize();var B0=V.x.redSqr(),H=V.y.redSqr(),y0=B0.redMul(this.a).redAdd(H),W=this.c2.redMul(this.one.redAdd(this.d.redMul(B0).redMul(H)));return y0.cmp(W)===0};function U(V,B0,H,y0,W){$.BasePoint.call(this,V,"projective"),B0===null&&H===null&&y0===null?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new G(B0,16),this.y=new G(H,16),this.z=y0?new G(y0,16):this.curve.one,this.t=W&&new G(W,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}Y(U,$.BasePoint),Q.prototype.pointFromJSON=function(V){return U.fromJSON(this,V)},Q.prototype.point=function(V,B0,H,y0){return new U(this,V,B0,H,y0)},U.fromJSON=function(V,B0){return new U(V,B0[0],B0[1],B0[2])},U.prototype.inspect=function(){return this.isInfinity()?"":""},U.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)},U.prototype._extDbl=function(){var V=this.x.redSqr(),B0=this.y.redSqr(),H=this.z.redSqr();H=H.redIAdd(H);var y0=this.curve._mulA(V),W=this.x.redAdd(this.y).redSqr().redISub(V).redISub(B0),w0=y0.redAdd(B0),E=w0.redSub(H),p0=y0.redSub(B0),T=W.redMul(E),f0=w0.redMul(p0),D=W.redMul(p0),c0=E.redMul(w0);return this.curve.point(T,f0,c0,D)},U.prototype._projDbl=function(){var V=this.x.redAdd(this.y).redSqr(),B0=this.x.redSqr(),H=this.y.redSqr(),y0,W,w0,E,p0,T;if(this.curve.twisted){E=this.curve._mulA(B0);var f0=E.redAdd(H);this.zOne?(y0=V.redSub(B0).redSub(H).redMul(f0.redSub(this.curve.two)),W=f0.redMul(E.redSub(H)),w0=f0.redSqr().redSub(f0).redSub(f0)):(p0=this.z.redSqr(),T=f0.redSub(p0).redISub(p0),y0=V.redSub(B0).redISub(H).redMul(T),W=f0.redMul(E.redSub(H)),w0=f0.redMul(T))}else E=B0.redAdd(H),p0=this.curve._mulC(this.z).redSqr(),T=E.redSub(p0).redSub(p0),y0=this.curve._mulC(V.redISub(E)).redMul(T),W=this.curve._mulC(E).redMul(B0.redISub(H)),w0=E.redMul(T);return this.curve.point(y0,W,w0)},U.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},U.prototype._extAdd=function(V){var B0=this.y.redSub(this.x).redMul(V.y.redSub(V.x)),H=this.y.redAdd(this.x).redMul(V.y.redAdd(V.x)),y0=this.t.redMul(this.curve.dd).redMul(V.t),W=this.z.redMul(V.z.redAdd(V.z)),w0=H.redSub(B0),E=W.redSub(y0),p0=W.redAdd(y0),T=H.redAdd(B0),f0=w0.redMul(E),D=p0.redMul(T),c0=w0.redMul(T),C=E.redMul(p0);return this.curve.point(f0,D,C,c0)},U.prototype._projAdd=function(V){var B0=this.z.redMul(V.z),H=B0.redSqr(),y0=this.x.redMul(V.x),W=this.y.redMul(V.y),w0=this.curve.d.redMul(y0).redMul(W),E=H.redSub(w0),p0=H.redAdd(w0),T=this.x.redAdd(this.y).redMul(V.x.redAdd(V.y)).redISub(y0).redISub(W),f0=B0.redMul(E).redMul(T),D,c0;return this.curve.twisted?(D=B0.redMul(p0).redMul(W.redSub(this.curve._mulA(y0))),c0=E.redMul(p0)):(D=B0.redMul(p0).redMul(W.redSub(y0)),c0=this.curve._mulC(E).redMul(p0)),this.curve.point(f0,D,c0)},U.prototype.add=function(V){return this.isInfinity()?V:V.isInfinity()?this:this.curve.extended?this._extAdd(V):this._projAdd(V)},U.prototype.mul=function(V){return this._hasDoubles(V)?this.curve._fixedNafMul(this,V):this.curve._wnafMul(this,V)},U.prototype.mulAdd=function(V,B0,H){return this.curve._wnafMulAdd(1,[this,B0],[V,H],2,!1)},U.prototype.jmulAdd=function(V,B0,H){return this.curve._wnafMulAdd(1,[this,B0],[V,H],2,!0)},U.prototype.normalize=function(){if(this.zOne)return this;var V=this.z.redInvm();return this.x=this.x.redMul(V),this.y=this.y.redMul(V),this.t&&(this.t=this.t.redMul(V)),this.z=this.curve.one,this.zOne=!0,this},U.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},U.prototype.getX=function(){return this.normalize(),this.x.fromRed()},U.prototype.getY=function(){return this.normalize(),this.y.fromRed()},U.prototype.eq=function(V){return this===V||this.getX().cmp(V.getX())===0&&this.getY().cmp(V.getY())===0},U.prototype.eqXToP=function(V){var B0=V.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(B0)===0)return!0;for(var H=V.clone(),y0=this.curve.redN.redMul(this.z);;){if(H.iadd(this.curve.n),H.cmp(this.curve.p)>=0)return!1;if(B0.redIAdd(y0),this.x.cmp(B0)===0)return!0}},U.prototype.toP=U.prototype.normalize,U.prototype.mixedAdd=U.prototype.add}}),mQ=$Q({"node_modules/elliptic/lib/elliptic/curve/index.js"(X){var K=X;K.base=uQ(),K.short=nQ(),K.mont=sQ(),K.edwards=tQ()}}),aQ=$Q({"node_modules/hash.js/lib/hash/utils.js"(X){var K=N0(),x0=X0();X.inherits=x0;function G(z,o0){return(z.charCodeAt(o0)&64512)!==55296||o0<0||o0+1>=z.length?!1:(z.charCodeAt(o0+1)&64512)===56320}function Y(z,o0){if(Array.isArray(z))return z.slice();if(!z)return[];var M=[];if(typeof z=="string")if(o0){if(o0==="hex")for(z=z.replace(/[^a-z0-9]+/gi,""),z.length%2!==0&&(z="0"+z),S=0;S>6|192,M[u0++]=n0&63|128):G(z,S)?(n0=65536+((n0&1023)<<10)+(z.charCodeAt(++S)&1023),M[u0++]=n0>>18|240,M[u0++]=n0>>12&63|128,M[u0++]=n0>>6&63|128,M[u0++]=n0&63|128):(M[u0++]=n0>>12|224,M[u0++]=n0>>6&63|128,M[u0++]=n0&63|128)}else for(S=0;S>>24|z>>>8&65280|z<<8&16711680|(z&255)<<24;return o0>>>0}X.htonl=Z;function Q(z,o0){for(var M="",u0=0;u0>>0}return n0}X.join32=B0;function H(z,o0){for(var M=new Array(z.length*4),u0=0,S=0;u0>>24,M[S+1]=n0>>>16&255,M[S+2]=n0>>>8&255,M[S+3]=n0&255):(M[S+3]=n0>>>24,M[S+2]=n0>>>16&255,M[S+1]=n0>>>8&255,M[S]=n0&255)}return M}X.split32=H;function y0(z,o0){return z>>>o0|z<<32-o0}X.rotr32=y0;function W(z,o0){return z<>>32-o0}X.rotl32=W;function w0(z,o0){return z+o0>>>0}X.sum32=w0;function E(z,o0,M){return z+o0+M>>>0}X.sum32_3=E;function p0(z,o0,M,u0){return z+o0+M+u0>>>0}X.sum32_4=p0;function T(z,o0,M,u0,S){return z+o0+M+u0+S>>>0}X.sum32_5=T;function f0(z,o0,M,u0){var S=z[o0],n0=z[o0+1],v=u0+n0>>>0,s0=(v>>0,z[o0+1]=v}X.sum64=f0;function D(z,o0,M,u0){var S=o0+u0>>>0,n0=(S>>0}X.sum64_hi=D;function c0(z,o0,M,u0){var S=o0+u0;return S>>>0}X.sum64_lo=c0;function C(z,o0,M,u0,S,n0,v,s0){var I=0,t0=o0;t0=t0+u0>>>0,I+=t0>>0,I+=t0>>0,I+=t0>>0}X.sum64_4_hi=C;function h0(z,o0,M,u0,S,n0,v,s0){var I=o0+u0+n0+s0;return I>>>0}X.sum64_4_lo=h0;function L(z,o0,M,u0,S,n0,v,s0,I,t0){var m0=0,a0=o0;a0=a0+u0>>>0,m0+=a0>>0,m0+=a0>>0,m0+=a0>>0,m0+=a0>>0}X.sum64_5_hi=L;function d0(z,o0,M,u0,S,n0,v,s0,I,t0){var m0=o0+u0+n0+s0+t0;return m0>>>0}X.sum64_5_lo=d0;function R(z,o0,M){var u0=o0<<32-M|z>>>M;return u0>>>0}X.rotr64_hi=R;function b0(z,o0,M){var u0=z<<32-M|o0>>>M;return u0>>>0}X.rotr64_lo=b0;function P(z,o0,M){return z>>>M}X.shr64_hi=P;function l0(z,o0,M){var u0=z<<32-M|o0>>>M;return u0>>>0}X.shr64_lo=l0}}),eQ=$Q({"node_modules/hash.js/lib/hash/common.js"(X){var K=aQ(),x0=N0();function G(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}X.BlockHash=G,G.prototype.update=function(Y,$){if(Y=K.toArray(Y,$),this.pending?this.pending=this.pending.concat(Y):this.pending=Y,this.pendingTotal+=Y.length,this.pending.length>=this._delta8){Y=this.pending;var Z=Y.length%this._delta8;this.pending=Y.slice(Y.length-Z,Y.length),this.pending.length===0&&(this.pending=null),Y=K.join32(Y,0,Y.length-Z,this.endian);for(var Q=0;Q>>24&255,Q[U++]=Y>>>16&255,Q[U++]=Y>>>8&255,Q[U++]=Y&255}else for(Q[U++]=Y&255,Q[U++]=Y>>>8&255,Q[U++]=Y>>>16&255,Q[U++]=Y>>>24&255,Q[U++]=0,Q[U++]=0,Q[U++]=0,Q[U++]=0,V=8;V>>3}X.g0_256=V;function B0(H){return x0(H,17)^x0(H,19)^H>>>10}X.g1_256=B0}}),iQ=$Q({"node_modules/hash.js/lib/hash/sha/1.js"(X,K){var x0=aQ(),G=eQ(),Y=rQ(),$=x0.rotl32,Z=x0.sum32,Q=x0.sum32_5,U=Y.ft_1,V=G.BlockHash,B0=[1518500249,1859775393,2400959708,3395469782];function H(){if(!(this instanceof H))return new H;V.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}x0.inherits(H,V),K.exports=H,H.blockSize=512,H.outSize=160,H.hmacStrength=80,H.padLength=64,H.prototype._update=function(y0,W){for(var w0=this.W,E=0;E<16;E++)w0[E]=y0[W+E];for(;Ethis.blockSize&&($=new this.Hash().update($).digest()),G($.length<=this.blockSize);for(var Z=$.length;Z=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(Q,U,V)}K.exports=$,$.prototype._init=function(Z,Q,U){var V=Z.concat(Q).concat(U);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var B0=0;B0=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(Z.concat(U||[])),this._reseed=1},$.prototype.generate=function(Z,Q,U,V){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");typeof Q!="string"&&(V=U,U=Q,Q=null),U&&(U=G.toArray(U,V||"hex"),this._update(U));for(var B0=[];B0.length"}}}),FY=$Q({"node_modules/elliptic/lib/elliptic/ec/signature.js"(X,K){var x0=bQ(),G=oQ(),Y=G.assert;function $(B0,H){if(B0 instanceof $)return B0;this._importDER(B0,H)||(Y(B0.r&&B0.s,"Signature without r or s"),this.r=new x0(B0.r,16),this.s=new x0(B0.s,16),B0.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=B0.recoveryParam)}K.exports=$;function Z(){this.place=0}function Q(B0,H){var y0=B0[H.place++];if(!(y0&128))return y0;var W=y0&15;if(W===0||W>4)return!1;for(var w0=0,E=0,p0=H.place;E>>=0;return w0<=127?!1:(H.place=p0,w0)}function U(B0){for(var H=0,y0=B0.length-1;!B0[H]&&!(B0[H+1]&128)&&H>>3);for(B0.push(y0|128);--y0;)B0.push(H>>>(y0<<3)&255);B0.push(H)}$.prototype.toDER=function(B0){var H=this.r.toArray(),y0=this.s.toArray();for(H[0]&128&&(H=[0].concat(H)),y0[0]&128&&(y0=[0].concat(y0)),H=U(H),y0=U(y0);!y0[0]&&!(y0[1]&128);)y0=y0.slice(1);var W=[2];V(W,H.length),W=W.concat(H),W.push(2),V(W,y0.length);var w0=W.concat(y0),E=[48];return V(E,w0.length),E=E.concat(w0),G.encode(E,B0)}}}),AY=$Q({"node_modules/elliptic/lib/elliptic/ec/index.js"(X,K){var x0=bQ(),G=OY(),Y=oQ(),$=IY(),Z=xQ(),Q=Y.assert,U=JY(),V=FY();function B0(H){if(!(this instanceof B0))return new B0(H);typeof H=="string"&&(Q(Object.prototype.hasOwnProperty.call($,H),"Unknown curve "+H),H=$[H]),H instanceof $.PresetCurve&&(H={curve:H}),this.curve=H.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=H.curve.g,this.g.precompute(H.curve.n.bitLength()+1),this.hash=H.hash||H.curve.hash}K.exports=B0,B0.prototype.keyPair=function(H){return new U(this,H)},B0.prototype.keyFromPrivate=function(H,y0){return U.fromPrivate(this,H,y0)},B0.prototype.keyFromPublic=function(H,y0){return U.fromPublic(this,H,y0)},B0.prototype.genKeyPair=function(H){H||(H={});for(var y0=new G({hash:this.hash,pers:H.pers,persEnc:H.persEnc||"utf8",entropy:H.entropy||Z(this.hash.hmacStrength),entropyEnc:H.entropy&&H.entropyEnc||"utf8",nonce:this.n.toArray()}),W=this.n.byteLength(),w0=this.n.sub(new x0(2));;){var E=new x0(y0.generate(W));if(!(E.cmp(w0)>0))return E.iaddn(1),this.keyFromPrivate(E)}},B0.prototype._truncateToN=function(H,y0){var W=H.byteLength()*8-this.n.bitLength();return W>0&&(H=H.ushrn(W)),!y0&&H.cmp(this.n)>=0?H.sub(this.n):H},B0.prototype.sign=function(H,y0,W,w0){typeof W=="object"&&(w0=W,W=null),w0||(w0={}),y0=this.keyFromPrivate(y0,W),H=this._truncateToN(new x0(H,16));for(var E=this.n.byteLength(),p0=y0.getPrivate().toArray("be",E),T=H.toArray("be",E),f0=new G({hash:this.hash,entropy:p0,nonce:T,pers:w0.pers,persEnc:w0.persEnc||"utf8"}),D=this.n.sub(new x0(1)),c0=0;;c0++){var C=w0.k?w0.k(c0):new x0(f0.generate(this.n.byteLength()));if(C=this._truncateToN(C,!0),!(C.cmpn(1)<=0||C.cmp(D)>=0)){var h0=this.g.mul(C);if(!h0.isInfinity()){var L=h0.getX(),d0=L.umod(this.n);if(d0.cmpn(0)!==0){var R=C.invm(this.n).mul(d0.mul(y0.getPrivate()).iadd(H));if(R=R.umod(this.n),R.cmpn(0)!==0){var b0=(h0.getY().isOdd()?1:0)|(L.cmp(d0)!==0?2:0);return w0.canonical&&R.cmp(this.nh)>0&&(R=this.n.sub(R),b0^=1),new V({r:d0,s:R,recoveryParam:b0})}}}}}},B0.prototype.verify=function(H,y0,W,w0){H=this._truncateToN(new x0(H,16)),W=this.keyFromPublic(W,w0),y0=new V(y0,"hex");var{r:E,s:p0}=y0;if(E.cmpn(1)<0||E.cmp(this.n)>=0||p0.cmpn(1)<0||p0.cmp(this.n)>=0)return!1;var T=p0.invm(this.n),f0=T.mul(H).umod(this.n),D=T.mul(E).umod(this.n),c0;return this.curve._maxwellTrick?(c0=this.g.jmulAdd(f0,W.getPublic(),D),c0.isInfinity()?!1:c0.eqXToP(E)):(c0=this.g.mulAdd(f0,W.getPublic(),D),c0.isInfinity()?!1:c0.getX().umod(this.n).cmp(E)===0)},B0.prototype.recoverPubKey=function(H,y0,W,w0){Q((3&W)===W,"The recovery param is more than two bits"),y0=new V(y0,w0);var E=this.n,p0=new x0(H),T=y0.r,f0=y0.s,D=W&1,c0=W>>1;if(T.cmp(this.curve.p.umod(this.curve.n))>=0&&c0)throw new Error("Unable to find sencond key candinate");c0?T=this.curve.pointFromX(T.add(this.curve.n),D):T=this.curve.pointFromX(T,D);var C=y0.r.invm(E),h0=E.sub(p0).mul(C).umod(E),L=f0.mul(C).umod(E);return this.g.mulAdd(h0,T,L)},B0.prototype.getKeyRecoveryParam=function(H,y0,W,w0){if(y0=new V(y0,w0),y0.recoveryParam!==null)return y0.recoveryParam;for(var E=0;E<4;E++){var p0;try{p0=this.recoverPubKey(H,y0,E)}catch{continue}if(p0.eq(W))return E}throw new Error("Unable to find valid recovery factor")}}}),HY=$Q({"node_modules/elliptic/lib/elliptic/eddsa/key.js"(X,K){var x0=oQ(),G=x0.assert,Y=x0.parseBytes,$=x0.cachedProperty;function Z(Q,U){this.eddsa=Q,this._secret=Y(U.secret),Q.isPoint(U.pub)?this._pub=U.pub:this._pubBytes=Y(U.pub)}Z.fromPublic=function(Q,U){return U instanceof Z?U:new Z(Q,{pub:U})},Z.fromSecret=function(Q,U){return U instanceof Z?U:new Z(Q,{secret:U})},Z.prototype.secret=function(){return this._secret},$(Z,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())}),$(Z,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())}),$(Z,"privBytes",function(){var Q=this.eddsa,U=this.hash(),V=Q.encodingLength-1,B0=U.slice(0,Q.encodingLength);return B0[0]&=248,B0[V]&=127,B0[V]|=64,B0}),$(Z,"priv",function(){return this.eddsa.decodeInt(this.privBytes())}),$(Z,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()}),$(Z,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)}),Z.prototype.sign=function(Q){return G(this._secret,"KeyPair can only verify"),this.eddsa.sign(Q,this)},Z.prototype.verify=function(Q,U){return this.eddsa.verify(Q,U,this)},Z.prototype.getSecret=function(Q){return G(this._secret,"KeyPair is public only"),x0.encode(this.secret(),Q)},Z.prototype.getPublic=function(Q){return x0.encode(this.pubBytes(),Q)},K.exports=Z}}),WY=$Q({"node_modules/elliptic/lib/elliptic/eddsa/signature.js"(X,K){var x0=bQ(),G=oQ(),Y=G.assert,$=G.cachedProperty,Z=G.parseBytes;function Q(U,V){this.eddsa=U,typeof V!="object"&&(V=Z(V)),Array.isArray(V)&&(V={R:V.slice(0,U.encodingLength),S:V.slice(U.encodingLength)}),Y(V.R&&V.S,"Signature without R or S"),U.isPoint(V.R)&&(this._R=V.R),V.S instanceof x0&&(this._S=V.S),this._Rencoded=Array.isArray(V.R)?V.R:V.Rencoded,this._Sencoded=Array.isArray(V.S)?V.S:V.Sencoded}$(Q,"S",function(){return this.eddsa.decodeInt(this.Sencoded())}),$(Q,"R",function(){return this.eddsa.decodePoint(this.Rencoded())}),$(Q,"Rencoded",function(){return this.eddsa.encodePoint(this.R())}),$(Q,"Sencoded",function(){return this.eddsa.encodeInt(this.S())}),Q.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},Q.prototype.toHex=function(){return G.encode(this.toBytes(),"hex").toUpperCase()},K.exports=Q}}),EY=$Q({"node_modules/elliptic/lib/elliptic/eddsa/index.js"(X,K){var x0=XY(),G=IY(),Y=oQ(),$=Y.assert,Z=Y.parseBytes,Q=HY(),U=WY();function V(B0){if($(B0==="ed25519","only tested with ed25519 so far"),!(this instanceof V))return new V(B0);B0=G[B0].curve,this.curve=B0,this.g=B0.g,this.g.precompute(B0.n.bitLength()+1),this.pointClass=B0.point().constructor,this.encodingLength=Math.ceil(B0.n.bitLength()/8),this.hash=x0.sha512}K.exports=V,V.prototype.sign=function(B0,H){B0=Z(B0);var y0=this.keyFromSecret(H),W=this.hashInt(y0.messagePrefix(),B0),w0=this.g.mul(W),E=this.encodePoint(w0),p0=this.hashInt(E,y0.pubBytes(),B0).mul(y0.priv()),T=W.add(p0).umod(this.curve.n);return this.makeSignature({R:w0,S:T,Rencoded:E})},V.prototype.verify=function(B0,H,y0){B0=Z(B0),H=this.makeSignature(H);var W=this.keyFromPublic(y0),w0=this.hashInt(H.Rencoded(),W.pubBytes(),B0),E=this.g.mul(H.S()),p0=H.R().add(W.pub().mul(w0));return p0.eq(E)},V.prototype.hashInt=function(){for(var B0=this.hash(),H=0;H0?l0:z},Z.min=function(l0,z){return l0.cmp(z)<0?l0:z},Z.prototype._init=function(l0,z,o0){if(typeof l0=="number")return this._initNumber(l0,z,o0);if(typeof l0=="object")return this._initArray(l0,z,o0);z==="hex"&&(z=16),Y(z===(z|0)&&z>=2&&z<=36),l0=l0.toString().replace(/\s+/g,"");var M=0;l0[0]==="-"&&(M++,this.negative=1),M=0;M-=3)S=l0[M]|l0[M-1]<<8|l0[M-2]<<16,this.words[u0]|=S<>>26-n0&67108863,n0+=24,n0>=26&&(n0-=26,u0++);else if(o0==="le")for(M=0,u0=0;M>>26-n0&67108863,n0+=24,n0>=26&&(n0-=26,u0++);return this.strip()};function U(l0,z){var o0=l0.charCodeAt(z);return o0>=65&&o0<=70?o0-55:o0>=97&&o0<=102?o0-87:o0-48&15}function V(l0,z,o0){var M=U(l0,o0);return o0-1>=z&&(M|=U(l0,o0-1)<<4),M}Z.prototype._parseHex=function(l0,z,o0){this.length=Math.ceil((l0.length-z)/6),this.words=new Array(this.length);for(var M=0;M=z;M-=2)n0=V(l0,z,M)<=18?(u0-=18,S+=1,this.words[S]|=n0>>>26):u0+=8;else{var v=l0.length-z;for(M=v%2===0?z+1:z;M=18?(u0-=18,S+=1,this.words[S]|=n0>>>26):u0+=8}this.strip()};function B0(l0,z,o0,M){for(var u0=0,S=Math.min(l0.length,o0),n0=z;n0=49?u0+=v-49+10:v>=17?u0+=v-17+10:u0+=v}return u0}Z.prototype._parseBase=function(l0,z,o0){this.words=[0],this.length=1;for(var M=0,u0=1;u0<=67108863;u0*=z)M++;M--,u0=u0/z|0;for(var S=l0.length-o0,n0=S%M,v=Math.min(S,S-n0)+o0,s0=0,I=o0;I1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},Z.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},Z.prototype.inspect=function(){return(this.red?""};var H=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y0=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],W=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];Z.prototype.toString=function(l0,z){l0=l0||10,z=z|0||1;var o0;if(l0===16||l0==="hex"){o0="";for(var M=0,u0=0,S=0;S>>24-M&16777215,u0!==0||S!==this.length-1?o0=H[6-v.length]+v+o0:o0=v+o0,M+=2,M>=26&&(M-=26,S--)}for(u0!==0&&(o0=u0.toString(16)+o0);o0.length%z!==0;)o0="0"+o0;return this.negative!==0&&(o0="-"+o0),o0}if(l0===(l0|0)&&l0>=2&&l0<=36){var s0=y0[l0],I=W[l0];o0="";var t0=this.clone();for(t0.negative=0;!t0.isZero();){var m0=t0.modn(I).toString(l0);t0=t0.idivn(I),t0.isZero()?o0=m0+o0:o0=H[s0-m0.length]+m0+o0}for(this.isZero()&&(o0="0"+o0);o0.length%z!==0;)o0="0"+o0;return this.negative!==0&&(o0="-"+o0),o0}Y(!1,"Base should be between 2 and 36")},Z.prototype.toNumber=function(){var l0=this.words[0];return this.length===2?l0+=this.words[1]*67108864:this.length===3&&this.words[2]===1?l0+=4503599627370496+this.words[1]*67108864:this.length>2&&Y(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-l0:l0},Z.prototype.toJSON=function(){return this.toString(16)},Z.prototype.toBuffer=function(l0,z){return Y(typeof Q<"u"),this.toArrayLike(Q,l0,z)},Z.prototype.toArray=function(l0,z){return this.toArrayLike(Array,l0,z)},Z.prototype.toArrayLike=function(l0,z,o0){var M=this.byteLength(),u0=o0||Math.max(1,M);Y(M<=u0,"byte array longer than desired length"),Y(u0>0,"Requested array length <= 0"),this.strip();var S=z==="le",n0=new l0(u0),v,s0,I=this.clone();if(S){for(s0=0;!I.isZero();s0++)v=I.andln(255),I.iushrn(8),n0[s0]=v;for(;s0=4096&&(o0+=13,z>>>=13),z>=64&&(o0+=7,z>>>=7),z>=8&&(o0+=4,z>>>=4),z>=2&&(o0+=2,z>>>=2),o0+z},Z.prototype._zeroBits=function(l0){if(l0===0)return 26;var z=l0,o0=0;return(z&8191)===0&&(o0+=13,z>>>=13),(z&127)===0&&(o0+=7,z>>>=7),(z&15)===0&&(o0+=4,z>>>=4),(z&3)===0&&(o0+=2,z>>>=2),(z&1)===0&&o0++,o0},Z.prototype.bitLength=function(){var l0=this.words[this.length-1],z=this._countBits(l0);return(this.length-1)*26+z};function w0(l0){for(var z=new Array(l0.bitLength()),o0=0;o0>>u0}return z}Z.prototype.zeroBits=function(){if(this.isZero())return 0;for(var l0=0,z=0;zl0.length?this.clone().ior(l0):l0.clone().ior(this)},Z.prototype.uor=function(l0){return this.length>l0.length?this.clone().iuor(l0):l0.clone().iuor(this)},Z.prototype.iuand=function(l0){var z;this.length>l0.length?z=l0:z=this;for(var o0=0;o0l0.length?this.clone().iand(l0):l0.clone().iand(this)},Z.prototype.uand=function(l0){return this.length>l0.length?this.clone().iuand(l0):l0.clone().iuand(this)},Z.prototype.iuxor=function(l0){var z,o0;this.length>l0.length?(z=this,o0=l0):(z=l0,o0=this);for(var M=0;Ml0.length?this.clone().ixor(l0):l0.clone().ixor(this)},Z.prototype.uxor=function(l0){return this.length>l0.length?this.clone().iuxor(l0):l0.clone().iuxor(this)},Z.prototype.inotn=function(l0){Y(typeof l0=="number"&&l0>=0);var z=Math.ceil(l0/26)|0,o0=l0%26;this._expand(z),o0>0&&z--;for(var M=0;M0&&(this.words[M]=~this.words[M]&67108863>>26-o0),this.strip()},Z.prototype.notn=function(l0){return this.clone().inotn(l0)},Z.prototype.setn=function(l0,z){Y(typeof l0=="number"&&l0>=0);var o0=l0/26|0,M=l0%26;return this._expand(o0+1),z?this.words[o0]=this.words[o0]|1<l0.length?(o0=this,M=l0):(o0=l0,M=this);for(var u0=0,S=0;S>>26;for(;u0!==0&&S>>26;if(this.length=o0.length,u0!==0)this.words[this.length]=u0,this.length++;else if(o0!==this)for(;Sl0.length?this.clone().iadd(l0):l0.clone().iadd(this)},Z.prototype.isub=function(l0){if(l0.negative!==0){l0.negative=0;var z=this.iadd(l0);return l0.negative=1,z._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(l0),this.negative=1,this._normSign();var o0=this.cmp(l0);if(o0===0)return this.negative=0,this.length=1,this.words[0]=0,this;var M,u0;o0>0?(M=this,u0=l0):(M=l0,u0=this);for(var S=0,n0=0;n0>26,this.words[n0]=z&67108863;for(;S!==0&&n0>26,this.words[n0]=z&67108863;if(S===0&&n0>>26,m0=s0&67108863,a0=Math.min(I,z.length-1),q=Math.max(0,I-l0.length+1);q<=a0;q++){var e0=I-q|0;u0=l0.words[e0]|0,S=z.words[q]|0,n0=u0*S+m0,t0+=n0/67108864|0,m0=n0&67108863}o0.words[I]=m0|0,s0=t0|0}return s0!==0?o0.words[I]=s0|0:o0.length--,o0.strip()}var p0=function(l0,z,o0){var M=l0.words,u0=z.words,S=o0.words,n0=0,v,s0,I,t0=M[0]|0,m0=t0&8191,a0=t0>>>13,q=M[1]|0,e0=q&8191,r0=q>>>13,i0=M[2]|0,j=i0&8191,$$=i0>>>13,k=M[3]|0,Q$=k&8191,g=k>>>13,Y$=M[4]|0,_=Y$&8191,Z$=Y$>>>13,N=M[5]|0,G$=N&8191,x=N>>>13,V$=M[6]|0,B=V$&8191,U$=V$>>>13,y=M[7]|0,X$=y&8191,w=y>>>13,K$=M[8]|0,p=K$&8191,I$=K$>>>13,f=M[9]|0,O$=f&8191,c=f>>>13,J$=u0[0]|0,h=J$&8191,F$=J$>>>13,d=u0[1]|0,A$=d&8191,b=d>>>13,H$=u0[2]|0,l=H$&8191,W$=H$>>>13,o=u0[3]|0,E$=o&8191,u=o>>>13,T$=u0[4]|0,n=T$&8191,D$=T$>>>13,s=u0[5]|0,C$=s&8191,t=s>>>13,L$=u0[6]|0,m=L$&8191,R$=L$>>>13,a=u0[7]|0,P$=a&8191,O=a>>>13,z$=u0[8]|0,e=z$&8191,M$=z$>>>13,J=u0[9]|0,S$=J&8191,F=J>>>13;o0.negative=l0.negative^z.negative,o0.length=19,v=Math.imul(m0,h),s0=Math.imul(m0,F$),s0=s0+Math.imul(a0,h)|0,I=Math.imul(a0,F$);var v$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(v$>>>26)|0,v$&=67108863,v=Math.imul(e0,h),s0=Math.imul(e0,F$),s0=s0+Math.imul(r0,h)|0,I=Math.imul(r0,F$),v=v+Math.imul(m0,A$)|0,s0=s0+Math.imul(m0,b)|0,s0=s0+Math.imul(a0,A$)|0,I=I+Math.imul(a0,b)|0;var r=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(r>>>26)|0,r&=67108863,v=Math.imul(j,h),s0=Math.imul(j,F$),s0=s0+Math.imul($$,h)|0,I=Math.imul($$,F$),v=v+Math.imul(e0,A$)|0,s0=s0+Math.imul(e0,b)|0,s0=s0+Math.imul(r0,A$)|0,I=I+Math.imul(r0,b)|0,v=v+Math.imul(m0,l)|0,s0=s0+Math.imul(m0,W$)|0,s0=s0+Math.imul(a0,l)|0,I=I+Math.imul(a0,W$)|0;var q$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(q$>>>26)|0,q$&=67108863,v=Math.imul(Q$,h),s0=Math.imul(Q$,F$),s0=s0+Math.imul(g,h)|0,I=Math.imul(g,F$),v=v+Math.imul(j,A$)|0,s0=s0+Math.imul(j,b)|0,s0=s0+Math.imul($$,A$)|0,I=I+Math.imul($$,b)|0,v=v+Math.imul(e0,l)|0,s0=s0+Math.imul(e0,W$)|0,s0=s0+Math.imul(r0,l)|0,I=I+Math.imul(r0,W$)|0,v=v+Math.imul(m0,E$)|0,s0=s0+Math.imul(m0,u)|0,s0=s0+Math.imul(a0,E$)|0,I=I+Math.imul(a0,u)|0;var i=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(i>>>26)|0,i&=67108863,v=Math.imul(_,h),s0=Math.imul(_,F$),s0=s0+Math.imul(Z$,h)|0,I=Math.imul(Z$,F$),v=v+Math.imul(Q$,A$)|0,s0=s0+Math.imul(Q$,b)|0,s0=s0+Math.imul(g,A$)|0,I=I+Math.imul(g,b)|0,v=v+Math.imul(j,l)|0,s0=s0+Math.imul(j,W$)|0,s0=s0+Math.imul($$,l)|0,I=I+Math.imul($$,W$)|0,v=v+Math.imul(e0,E$)|0,s0=s0+Math.imul(e0,u)|0,s0=s0+Math.imul(r0,E$)|0,I=I+Math.imul(r0,u)|0,v=v+Math.imul(m0,n)|0,s0=s0+Math.imul(m0,D$)|0,s0=s0+Math.imul(a0,n)|0,I=I+Math.imul(a0,D$)|0;var j$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(j$>>>26)|0,j$&=67108863,v=Math.imul(G$,h),s0=Math.imul(G$,F$),s0=s0+Math.imul(x,h)|0,I=Math.imul(x,F$),v=v+Math.imul(_,A$)|0,s0=s0+Math.imul(_,b)|0,s0=s0+Math.imul(Z$,A$)|0,I=I+Math.imul(Z$,b)|0,v=v+Math.imul(Q$,l)|0,s0=s0+Math.imul(Q$,W$)|0,s0=s0+Math.imul(g,l)|0,I=I+Math.imul(g,W$)|0,v=v+Math.imul(j,E$)|0,s0=s0+Math.imul(j,u)|0,s0=s0+Math.imul($$,E$)|0,I=I+Math.imul($$,u)|0,v=v+Math.imul(e0,n)|0,s0=s0+Math.imul(e0,D$)|0,s0=s0+Math.imul(r0,n)|0,I=I+Math.imul(r0,D$)|0,v=v+Math.imul(m0,C$)|0,s0=s0+Math.imul(m0,t)|0,s0=s0+Math.imul(a0,C$)|0,I=I+Math.imul(a0,t)|0;var k$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(k$>>>26)|0,k$&=67108863,v=Math.imul(B,h),s0=Math.imul(B,F$),s0=s0+Math.imul(U$,h)|0,I=Math.imul(U$,F$),v=v+Math.imul(G$,A$)|0,s0=s0+Math.imul(G$,b)|0,s0=s0+Math.imul(x,A$)|0,I=I+Math.imul(x,b)|0,v=v+Math.imul(_,l)|0,s0=s0+Math.imul(_,W$)|0,s0=s0+Math.imul(Z$,l)|0,I=I+Math.imul(Z$,W$)|0,v=v+Math.imul(Q$,E$)|0,s0=s0+Math.imul(Q$,u)|0,s0=s0+Math.imul(g,E$)|0,I=I+Math.imul(g,u)|0,v=v+Math.imul(j,n)|0,s0=s0+Math.imul(j,D$)|0,s0=s0+Math.imul($$,n)|0,I=I+Math.imul($$,D$)|0,v=v+Math.imul(e0,C$)|0,s0=s0+Math.imul(e0,t)|0,s0=s0+Math.imul(r0,C$)|0,I=I+Math.imul(r0,t)|0,v=v+Math.imul(m0,m)|0,s0=s0+Math.imul(m0,R$)|0,s0=s0+Math.imul(a0,m)|0,I=I+Math.imul(a0,R$)|0;var g$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(g$>>>26)|0,g$&=67108863,v=Math.imul(X$,h),s0=Math.imul(X$,F$),s0=s0+Math.imul(w,h)|0,I=Math.imul(w,F$),v=v+Math.imul(B,A$)|0,s0=s0+Math.imul(B,b)|0,s0=s0+Math.imul(U$,A$)|0,I=I+Math.imul(U$,b)|0,v=v+Math.imul(G$,l)|0,s0=s0+Math.imul(G$,W$)|0,s0=s0+Math.imul(x,l)|0,I=I+Math.imul(x,W$)|0,v=v+Math.imul(_,E$)|0,s0=s0+Math.imul(_,u)|0,s0=s0+Math.imul(Z$,E$)|0,I=I+Math.imul(Z$,u)|0,v=v+Math.imul(Q$,n)|0,s0=s0+Math.imul(Q$,D$)|0,s0=s0+Math.imul(g,n)|0,I=I+Math.imul(g,D$)|0,v=v+Math.imul(j,C$)|0,s0=s0+Math.imul(j,t)|0,s0=s0+Math.imul($$,C$)|0,I=I+Math.imul($$,t)|0,v=v+Math.imul(e0,m)|0,s0=s0+Math.imul(e0,R$)|0,s0=s0+Math.imul(r0,m)|0,I=I+Math.imul(r0,R$)|0,v=v+Math.imul(m0,P$)|0,s0=s0+Math.imul(m0,O)|0,s0=s0+Math.imul(a0,P$)|0,I=I+Math.imul(a0,O)|0;var _$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(_$>>>26)|0,_$&=67108863,v=Math.imul(p,h),s0=Math.imul(p,F$),s0=s0+Math.imul(I$,h)|0,I=Math.imul(I$,F$),v=v+Math.imul(X$,A$)|0,s0=s0+Math.imul(X$,b)|0,s0=s0+Math.imul(w,A$)|0,I=I+Math.imul(w,b)|0,v=v+Math.imul(B,l)|0,s0=s0+Math.imul(B,W$)|0,s0=s0+Math.imul(U$,l)|0,I=I+Math.imul(U$,W$)|0,v=v+Math.imul(G$,E$)|0,s0=s0+Math.imul(G$,u)|0,s0=s0+Math.imul(x,E$)|0,I=I+Math.imul(x,u)|0,v=v+Math.imul(_,n)|0,s0=s0+Math.imul(_,D$)|0,s0=s0+Math.imul(Z$,n)|0,I=I+Math.imul(Z$,D$)|0,v=v+Math.imul(Q$,C$)|0,s0=s0+Math.imul(Q$,t)|0,s0=s0+Math.imul(g,C$)|0,I=I+Math.imul(g,t)|0,v=v+Math.imul(j,m)|0,s0=s0+Math.imul(j,R$)|0,s0=s0+Math.imul($$,m)|0,I=I+Math.imul($$,R$)|0,v=v+Math.imul(e0,P$)|0,s0=s0+Math.imul(e0,O)|0,s0=s0+Math.imul(r0,P$)|0,I=I+Math.imul(r0,O)|0,v=v+Math.imul(m0,e)|0,s0=s0+Math.imul(m0,M$)|0,s0=s0+Math.imul(a0,e)|0,I=I+Math.imul(a0,M$)|0;var N$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(N$>>>26)|0,N$&=67108863,v=Math.imul(O$,h),s0=Math.imul(O$,F$),s0=s0+Math.imul(c,h)|0,I=Math.imul(c,F$),v=v+Math.imul(p,A$)|0,s0=s0+Math.imul(p,b)|0,s0=s0+Math.imul(I$,A$)|0,I=I+Math.imul(I$,b)|0,v=v+Math.imul(X$,l)|0,s0=s0+Math.imul(X$,W$)|0,s0=s0+Math.imul(w,l)|0,I=I+Math.imul(w,W$)|0,v=v+Math.imul(B,E$)|0,s0=s0+Math.imul(B,u)|0,s0=s0+Math.imul(U$,E$)|0,I=I+Math.imul(U$,u)|0,v=v+Math.imul(G$,n)|0,s0=s0+Math.imul(G$,D$)|0,s0=s0+Math.imul(x,n)|0,I=I+Math.imul(x,D$)|0,v=v+Math.imul(_,C$)|0,s0=s0+Math.imul(_,t)|0,s0=s0+Math.imul(Z$,C$)|0,I=I+Math.imul(Z$,t)|0,v=v+Math.imul(Q$,m)|0,s0=s0+Math.imul(Q$,R$)|0,s0=s0+Math.imul(g,m)|0,I=I+Math.imul(g,R$)|0,v=v+Math.imul(j,P$)|0,s0=s0+Math.imul(j,O)|0,s0=s0+Math.imul($$,P$)|0,I=I+Math.imul($$,O)|0,v=v+Math.imul(e0,e)|0,s0=s0+Math.imul(e0,M$)|0,s0=s0+Math.imul(r0,e)|0,I=I+Math.imul(r0,M$)|0,v=v+Math.imul(m0,S$)|0,s0=s0+Math.imul(m0,F)|0,s0=s0+Math.imul(a0,S$)|0,I=I+Math.imul(a0,F)|0;var $0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+($0>>>26)|0,$0&=67108863,v=Math.imul(O$,A$),s0=Math.imul(O$,b),s0=s0+Math.imul(c,A$)|0,I=Math.imul(c,b),v=v+Math.imul(p,l)|0,s0=s0+Math.imul(p,W$)|0,s0=s0+Math.imul(I$,l)|0,I=I+Math.imul(I$,W$)|0,v=v+Math.imul(X$,E$)|0,s0=s0+Math.imul(X$,u)|0,s0=s0+Math.imul(w,E$)|0,I=I+Math.imul(w,u)|0,v=v+Math.imul(B,n)|0,s0=s0+Math.imul(B,D$)|0,s0=s0+Math.imul(U$,n)|0,I=I+Math.imul(U$,D$)|0,v=v+Math.imul(G$,C$)|0,s0=s0+Math.imul(G$,t)|0,s0=s0+Math.imul(x,C$)|0,I=I+Math.imul(x,t)|0,v=v+Math.imul(_,m)|0,s0=s0+Math.imul(_,R$)|0,s0=s0+Math.imul(Z$,m)|0,I=I+Math.imul(Z$,R$)|0,v=v+Math.imul(Q$,P$)|0,s0=s0+Math.imul(Q$,O)|0,s0=s0+Math.imul(g,P$)|0,I=I+Math.imul(g,O)|0,v=v+Math.imul(j,e)|0,s0=s0+Math.imul(j,M$)|0,s0=s0+Math.imul($$,e)|0,I=I+Math.imul($$,M$)|0,v=v+Math.imul(e0,S$)|0,s0=s0+Math.imul(e0,F)|0,s0=s0+Math.imul(r0,S$)|0,I=I+Math.imul(r0,F)|0;var x$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(x$>>>26)|0,x$&=67108863,v=Math.imul(O$,l),s0=Math.imul(O$,W$),s0=s0+Math.imul(c,l)|0,I=Math.imul(c,W$),v=v+Math.imul(p,E$)|0,s0=s0+Math.imul(p,u)|0,s0=s0+Math.imul(I$,E$)|0,I=I+Math.imul(I$,u)|0,v=v+Math.imul(X$,n)|0,s0=s0+Math.imul(X$,D$)|0,s0=s0+Math.imul(w,n)|0,I=I+Math.imul(w,D$)|0,v=v+Math.imul(B,C$)|0,s0=s0+Math.imul(B,t)|0,s0=s0+Math.imul(U$,C$)|0,I=I+Math.imul(U$,t)|0,v=v+Math.imul(G$,m)|0,s0=s0+Math.imul(G$,R$)|0,s0=s0+Math.imul(x,m)|0,I=I+Math.imul(x,R$)|0,v=v+Math.imul(_,P$)|0,s0=s0+Math.imul(_,O)|0,s0=s0+Math.imul(Z$,P$)|0,I=I+Math.imul(Z$,O)|0,v=v+Math.imul(Q$,e)|0,s0=s0+Math.imul(Q$,M$)|0,s0=s0+Math.imul(g,e)|0,I=I+Math.imul(g,M$)|0,v=v+Math.imul(j,S$)|0,s0=s0+Math.imul(j,F)|0,s0=s0+Math.imul($$,S$)|0,I=I+Math.imul($$,F)|0;var Q0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Q0>>>26)|0,Q0&=67108863,v=Math.imul(O$,E$),s0=Math.imul(O$,u),s0=s0+Math.imul(c,E$)|0,I=Math.imul(c,u),v=v+Math.imul(p,n)|0,s0=s0+Math.imul(p,D$)|0,s0=s0+Math.imul(I$,n)|0,I=I+Math.imul(I$,D$)|0,v=v+Math.imul(X$,C$)|0,s0=s0+Math.imul(X$,t)|0,s0=s0+Math.imul(w,C$)|0,I=I+Math.imul(w,t)|0,v=v+Math.imul(B,m)|0,s0=s0+Math.imul(B,R$)|0,s0=s0+Math.imul(U$,m)|0,I=I+Math.imul(U$,R$)|0,v=v+Math.imul(G$,P$)|0,s0=s0+Math.imul(G$,O)|0,s0=s0+Math.imul(x,P$)|0,I=I+Math.imul(x,O)|0,v=v+Math.imul(_,e)|0,s0=s0+Math.imul(_,M$)|0,s0=s0+Math.imul(Z$,e)|0,I=I+Math.imul(Z$,M$)|0,v=v+Math.imul(Q$,S$)|0,s0=s0+Math.imul(Q$,F)|0,s0=s0+Math.imul(g,S$)|0,I=I+Math.imul(g,F)|0;var B$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(B$>>>26)|0,B$&=67108863,v=Math.imul(O$,n),s0=Math.imul(O$,D$),s0=s0+Math.imul(c,n)|0,I=Math.imul(c,D$),v=v+Math.imul(p,C$)|0,s0=s0+Math.imul(p,t)|0,s0=s0+Math.imul(I$,C$)|0,I=I+Math.imul(I$,t)|0,v=v+Math.imul(X$,m)|0,s0=s0+Math.imul(X$,R$)|0,s0=s0+Math.imul(w,m)|0,I=I+Math.imul(w,R$)|0,v=v+Math.imul(B,P$)|0,s0=s0+Math.imul(B,O)|0,s0=s0+Math.imul(U$,P$)|0,I=I+Math.imul(U$,O)|0,v=v+Math.imul(G$,e)|0,s0=s0+Math.imul(G$,M$)|0,s0=s0+Math.imul(x,e)|0,I=I+Math.imul(x,M$)|0,v=v+Math.imul(_,S$)|0,s0=s0+Math.imul(_,F)|0,s0=s0+Math.imul(Z$,S$)|0,I=I+Math.imul(Z$,F)|0;var Y0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Y0>>>26)|0,Y0&=67108863,v=Math.imul(O$,C$),s0=Math.imul(O$,t),s0=s0+Math.imul(c,C$)|0,I=Math.imul(c,t),v=v+Math.imul(p,m)|0,s0=s0+Math.imul(p,R$)|0,s0=s0+Math.imul(I$,m)|0,I=I+Math.imul(I$,R$)|0,v=v+Math.imul(X$,P$)|0,s0=s0+Math.imul(X$,O)|0,s0=s0+Math.imul(w,P$)|0,I=I+Math.imul(w,O)|0,v=v+Math.imul(B,e)|0,s0=s0+Math.imul(B,M$)|0,s0=s0+Math.imul(U$,e)|0,I=I+Math.imul(U$,M$)|0,v=v+Math.imul(G$,S$)|0,s0=s0+Math.imul(G$,F)|0,s0=s0+Math.imul(x,S$)|0,I=I+Math.imul(x,F)|0;var y$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(y$>>>26)|0,y$&=67108863,v=Math.imul(O$,m),s0=Math.imul(O$,R$),s0=s0+Math.imul(c,m)|0,I=Math.imul(c,R$),v=v+Math.imul(p,P$)|0,s0=s0+Math.imul(p,O)|0,s0=s0+Math.imul(I$,P$)|0,I=I+Math.imul(I$,O)|0,v=v+Math.imul(X$,e)|0,s0=s0+Math.imul(X$,M$)|0,s0=s0+Math.imul(w,e)|0,I=I+Math.imul(w,M$)|0,v=v+Math.imul(B,S$)|0,s0=s0+Math.imul(B,F)|0,s0=s0+Math.imul(U$,S$)|0,I=I+Math.imul(U$,F)|0;var Z0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Z0>>>26)|0,Z0&=67108863,v=Math.imul(O$,P$),s0=Math.imul(O$,O),s0=s0+Math.imul(c,P$)|0,I=Math.imul(c,O),v=v+Math.imul(p,e)|0,s0=s0+Math.imul(p,M$)|0,s0=s0+Math.imul(I$,e)|0,I=I+Math.imul(I$,M$)|0,v=v+Math.imul(X$,S$)|0,s0=s0+Math.imul(X$,F)|0,s0=s0+Math.imul(w,S$)|0,I=I+Math.imul(w,F)|0;var w$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(w$>>>26)|0,w$&=67108863,v=Math.imul(O$,e),s0=Math.imul(O$,M$),s0=s0+Math.imul(c,e)|0,I=Math.imul(c,M$),v=v+Math.imul(p,S$)|0,s0=s0+Math.imul(p,F)|0,s0=s0+Math.imul(I$,S$)|0,I=I+Math.imul(I$,F)|0;var G0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(G0>>>26)|0,G0&=67108863,v=Math.imul(O$,S$),s0=Math.imul(O$,F),s0=s0+Math.imul(c,S$)|0,I=Math.imul(c,F);var p$=(n0+v|0)+((s0&8191)<<13)|0;return n0=(I+(s0>>>13)|0)+(p$>>>26)|0,p$&=67108863,S[0]=v$,S[1]=r,S[2]=q$,S[3]=i,S[4]=j$,S[5]=k$,S[6]=g$,S[7]=_$,S[8]=N$,S[9]=$0,S[10]=x$,S[11]=Q0,S[12]=B$,S[13]=Y0,S[14]=y$,S[15]=Z0,S[16]=w$,S[17]=G0,S[18]=p$,n0!==0&&(S[19]=n0,o0.length++),o0};Math.imul||(p0=E);function T(l0,z,o0){o0.negative=z.negative^l0.negative,o0.length=l0.length+z.length;for(var M=0,u0=0,S=0;S>>26)|0,u0+=n0>>>26,n0&=67108863}o0.words[S]=v,M=n0,n0=u0}return M!==0?o0.words[S]=M:o0.length--,o0.strip()}function f0(l0,z,o0){var M=new D;return M.mulp(l0,z,o0)}Z.prototype.mulTo=function(l0,z){var o0,M=this.length+l0.length;return this.length===10&&l0.length===10?o0=p0(this,l0,z):M<63?o0=E(this,l0,z):M<1024?o0=T(this,l0,z):o0=f0(this,l0,z),o0};function D(l0,z){this.x=l0,this.y=z}D.prototype.makeRBT=function(l0){for(var z=new Array(l0),o0=Z.prototype._countBits(l0)-1,M=0;M>=1;return M},D.prototype.permute=function(l0,z,o0,M,u0,S){for(var n0=0;n0>>1)u0++;return 1<>>13,o0[2*S+1]=u0&8191,u0=u0>>>13;for(S=2*z;S>=26,z+=M/67108864|0,z+=u0>>>26,this.words[o0]=u0&67108863}return z!==0&&(this.words[o0]=z,this.length++),this},Z.prototype.muln=function(l0){return this.clone().imuln(l0)},Z.prototype.sqr=function(){return this.mul(this)},Z.prototype.isqr=function(){return this.imul(this.clone())},Z.prototype.pow=function(l0){var z=w0(l0);if(z.length===0)return new Z(1);for(var o0=this,M=0;M=0);var z=l0%26,o0=(l0-z)/26,M=67108863>>>26-z<<26-z,u0;if(z!==0){var S=0;for(u0=0;u0>>26-z}S&&(this.words[u0]=S,this.length++)}if(o0!==0){for(u0=this.length-1;u0>=0;u0--)this.words[u0+o0]=this.words[u0];for(u0=0;u0=0);var M;z?M=(z-z%26)/26:M=0;var u0=l0%26,S=Math.min((l0-u0)/26,this.length),n0=67108863^67108863>>>u0<S)for(this.length-=S,s0=0;s0=0&&(I!==0||s0>=M);s0--){var t0=this.words[s0]|0;this.words[s0]=I<<26-u0|t0>>>u0,I=t0&n0}return v&&I!==0&&(v.words[v.length++]=I),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},Z.prototype.ishrn=function(l0,z,o0){return Y(this.negative===0),this.iushrn(l0,z,o0)},Z.prototype.shln=function(l0){return this.clone().ishln(l0)},Z.prototype.ushln=function(l0){return this.clone().iushln(l0)},Z.prototype.shrn=function(l0){return this.clone().ishrn(l0)},Z.prototype.ushrn=function(l0){return this.clone().iushrn(l0)},Z.prototype.testn=function(l0){Y(typeof l0=="number"&&l0>=0);var z=l0%26,o0=(l0-z)/26,M=1<=0);var z=l0%26,o0=(l0-z)/26;if(Y(this.negative===0,"imaskn works only with positive numbers"),this.length<=o0)return this;if(z!==0&&o0++,this.length=Math.min(o0,this.length),z!==0){var M=67108863^67108863>>>z<=67108864;z++)this.words[z]-=67108864,z===this.length-1?this.words[z+1]=1:this.words[z+1]++;return this.length=Math.max(this.length,z+1),this},Z.prototype.isubn=function(l0){if(Y(typeof l0=="number"),Y(l0<67108864),l0<0)return this.iaddn(-l0);if(this.negative!==0)return this.negative=0,this.iaddn(l0),this.negative=1,this;if(this.words[0]-=l0,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var z=0;z>26)-(v/67108864|0),this.words[u0+o0]=S&67108863}for(;u0>26,this.words[u0+o0]=S&67108863;if(n0===0)return this.strip();for(Y(n0===-1),n0=0,u0=0;u0>26,this.words[u0]=S&67108863;return this.negative=1,this.strip()},Z.prototype._wordDiv=function(l0,z){var o0=this.length-l0.length,M=this.clone(),u0=l0,S=u0.words[u0.length-1]|0,n0=this._countBits(S);o0=26-n0,o0!==0&&(u0=u0.ushln(o0),M.iushln(o0),S=u0.words[u0.length-1]|0);var v=M.length-u0.length,s0;if(z!=="mod"){s0=new Z(null),s0.length=v+1,s0.words=new Array(s0.length);for(var I=0;I=0;m0--){var a0=(M.words[u0.length+m0]|0)*67108864+(M.words[u0.length+m0-1]|0);for(a0=Math.min(a0/S|0,67108863),M._ishlnsubmul(u0,a0,m0);M.negative!==0;)a0--,M.negative=0,M._ishlnsubmul(u0,1,m0),M.isZero()||(M.negative^=1);s0&&(s0.words[m0]=a0)}return s0&&s0.strip(),M.strip(),z!=="div"&&o0!==0&&M.iushrn(o0),{div:s0||null,mod:M}},Z.prototype.divmod=function(l0,z,o0){if(Y(!l0.isZero()),this.isZero())return{div:new Z(0),mod:new Z(0)};var M,u0,S;return this.negative!==0&&l0.negative===0?(S=this.neg().divmod(l0,z),z!=="mod"&&(M=S.div.neg()),z!=="div"&&(u0=S.mod.neg(),o0&&u0.negative!==0&&u0.iadd(l0)),{div:M,mod:u0}):this.negative===0&&l0.negative!==0?(S=this.divmod(l0.neg(),z),z!=="mod"&&(M=S.div.neg()),{div:M,mod:S.mod}):(this.negative&l0.negative)!==0?(S=this.neg().divmod(l0.neg(),z),z!=="div"&&(u0=S.mod.neg(),o0&&u0.negative!==0&&u0.isub(l0)),{div:S.div,mod:u0}):l0.length>this.length||this.cmp(l0)<0?{div:new Z(0),mod:this}:l0.length===1?z==="div"?{div:this.divn(l0.words[0]),mod:null}:z==="mod"?{div:null,mod:new Z(this.modn(l0.words[0]))}:{div:this.divn(l0.words[0]),mod:new Z(this.modn(l0.words[0]))}:this._wordDiv(l0,z)},Z.prototype.div=function(l0){return this.divmod(l0,"div",!1).div},Z.prototype.mod=function(l0){return this.divmod(l0,"mod",!1).mod},Z.prototype.umod=function(l0){return this.divmod(l0,"mod",!0).mod},Z.prototype.divRound=function(l0){var z=this.divmod(l0);if(z.mod.isZero())return z.div;var o0=z.div.negative!==0?z.mod.isub(l0):z.mod,M=l0.ushrn(1),u0=l0.andln(1),S=o0.cmp(M);return S<0||u0===1&&S===0?z.div:z.div.negative!==0?z.div.isubn(1):z.div.iaddn(1)},Z.prototype.modn=function(l0){Y(l0<=67108863);for(var z=(1<<26)%l0,o0=0,M=this.length-1;M>=0;M--)o0=(z*o0+(this.words[M]|0))%l0;return o0},Z.prototype.idivn=function(l0){Y(l0<=67108863);for(var z=0,o0=this.length-1;o0>=0;o0--){var M=(this.words[o0]|0)+z*67108864;this.words[o0]=M/l0|0,z=M%l0}return this.strip()},Z.prototype.divn=function(l0){return this.clone().idivn(l0)},Z.prototype.egcd=function(l0){Y(l0.negative===0),Y(!l0.isZero());var z=this,o0=l0.clone();z.negative!==0?z=z.umod(l0):z=z.clone();for(var M=new Z(1),u0=new Z(0),S=new Z(0),n0=new Z(1),v=0;z.isEven()&&o0.isEven();)z.iushrn(1),o0.iushrn(1),++v;for(var s0=o0.clone(),I=z.clone();!z.isZero();){for(var t0=0,m0=1;(z.words[0]&m0)===0&&t0<26;++t0,m0<<=1);if(t0>0)for(z.iushrn(t0);t0-- >0;)(M.isOdd()||u0.isOdd())&&(M.iadd(s0),u0.isub(I)),M.iushrn(1),u0.iushrn(1);for(var a0=0,q=1;(o0.words[0]&q)===0&&a0<26;++a0,q<<=1);if(a0>0)for(o0.iushrn(a0);a0-- >0;)(S.isOdd()||n0.isOdd())&&(S.iadd(s0),n0.isub(I)),S.iushrn(1),n0.iushrn(1);z.cmp(o0)>=0?(z.isub(o0),M.isub(S),u0.isub(n0)):(o0.isub(z),S.isub(M),n0.isub(u0))}return{a:S,b:n0,gcd:o0.iushln(v)}},Z.prototype._invmp=function(l0){Y(l0.negative===0),Y(!l0.isZero());var z=this,o0=l0.clone();z.negative!==0?z=z.umod(l0):z=z.clone();for(var M=new Z(1),u0=new Z(0),S=o0.clone();z.cmpn(1)>0&&o0.cmpn(1)>0;){for(var n0=0,v=1;(z.words[0]&v)===0&&n0<26;++n0,v<<=1);if(n0>0)for(z.iushrn(n0);n0-- >0;)M.isOdd()&&M.iadd(S),M.iushrn(1);for(var s0=0,I=1;(o0.words[0]&I)===0&&s0<26;++s0,I<<=1);if(s0>0)for(o0.iushrn(s0);s0-- >0;)u0.isOdd()&&u0.iadd(S),u0.iushrn(1);z.cmp(o0)>=0?(z.isub(o0),M.isub(u0)):(o0.isub(z),u0.isub(M))}var t0;return z.cmpn(1)===0?t0=M:t0=u0,t0.cmpn(0)<0&&t0.iadd(l0),t0},Z.prototype.gcd=function(l0){if(this.isZero())return l0.abs();if(l0.isZero())return this.abs();var z=this.clone(),o0=l0.clone();z.negative=0,o0.negative=0;for(var M=0;z.isEven()&&o0.isEven();M++)z.iushrn(1),o0.iushrn(1);do{for(;z.isEven();)z.iushrn(1);for(;o0.isEven();)o0.iushrn(1);var u0=z.cmp(o0);if(u0<0){var S=z;z=o0,o0=S}else if(u0===0||o0.cmpn(1)===0)break;z.isub(o0)}while(!0);return o0.iushln(M)},Z.prototype.invm=function(l0){return this.egcd(l0).a.umod(l0)},Z.prototype.isEven=function(){return(this.words[0]&1)===0},Z.prototype.isOdd=function(){return(this.words[0]&1)===1},Z.prototype.andln=function(l0){return this.words[0]&l0},Z.prototype.bincn=function(l0){Y(typeof l0=="number");var z=l0%26,o0=(l0-z)/26,M=1<>>26,n0&=67108863,this.words[S]=n0}return u0!==0&&(this.words[S]=u0,this.length++),this},Z.prototype.isZero=function(){return this.length===1&&this.words[0]===0},Z.prototype.cmpn=function(l0){var z=l0<0;if(this.negative!==0&&!z)return-1;if(this.negative===0&&z)return 1;this.strip();var o0;if(this.length>1)o0=1;else{z&&(l0=-l0),Y(l0<=67108863,"Number is too big");var M=this.words[0]|0;o0=M===l0?0:Ml0.length)return 1;if(this.length=0;o0--){var M=this.words[o0]|0,u0=l0.words[o0]|0;if(M!==u0){Mu0&&(z=1);break}}return z},Z.prototype.gtn=function(l0){return this.cmpn(l0)===1},Z.prototype.gt=function(l0){return this.cmp(l0)===1},Z.prototype.gten=function(l0){return this.cmpn(l0)>=0},Z.prototype.gte=function(l0){return this.cmp(l0)>=0},Z.prototype.ltn=function(l0){return this.cmpn(l0)===-1},Z.prototype.lt=function(l0){return this.cmp(l0)===-1},Z.prototype.lten=function(l0){return this.cmpn(l0)<=0},Z.prototype.lte=function(l0){return this.cmp(l0)<=0},Z.prototype.eqn=function(l0){return this.cmpn(l0)===0},Z.prototype.eq=function(l0){return this.cmp(l0)===0},Z.red=function(l0){return new b0(l0)},Z.prototype.toRed=function(l0){return Y(!this.red,"Already a number in reduction context"),Y(this.negative===0,"red works only with positives"),l0.convertTo(this)._forceRed(l0)},Z.prototype.fromRed=function(){return Y(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},Z.prototype._forceRed=function(l0){return this.red=l0,this},Z.prototype.forceRed=function(l0){return Y(!this.red,"Already a number in reduction context"),this._forceRed(l0)},Z.prototype.redAdd=function(l0){return Y(this.red,"redAdd works only with red numbers"),this.red.add(this,l0)},Z.prototype.redIAdd=function(l0){return Y(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,l0)},Z.prototype.redSub=function(l0){return Y(this.red,"redSub works only with red numbers"),this.red.sub(this,l0)},Z.prototype.redISub=function(l0){return Y(this.red,"redISub works only with red numbers"),this.red.isub(this,l0)},Z.prototype.redShl=function(l0){return Y(this.red,"redShl works only with red numbers"),this.red.shl(this,l0)},Z.prototype.redMul=function(l0){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,l0),this.red.mul(this,l0)},Z.prototype.redIMul=function(l0){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,l0),this.red.imul(this,l0)},Z.prototype.redSqr=function(){return Y(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},Z.prototype.redISqr=function(){return Y(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},Z.prototype.redSqrt=function(){return Y(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},Z.prototype.redInvm=function(){return Y(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},Z.prototype.redNeg=function(){return Y(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},Z.prototype.redPow=function(l0){return Y(this.red&&!l0.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,l0)};var c0={k256:null,p224:null,p192:null,p25519:null};function C(l0,z){this.name=l0,this.p=new Z(z,16),this.n=this.p.bitLength(),this.k=new Z(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}C.prototype._tmp=function(){var l0=new Z(null);return l0.words=new Array(Math.ceil(this.n/13)),l0},C.prototype.ireduce=function(l0){var z=l0,o0;do this.split(z,this.tmp),z=this.imulK(z),z=z.iadd(this.tmp),o0=z.bitLength();while(o0>this.n);var M=o00?z.isub(this.p):z.strip!==void 0?z.strip():z._strip(),z},C.prototype.split=function(l0,z){l0.iushrn(this.n,0,z)},C.prototype.imulK=function(l0){return l0.imul(this.k)};function h0(){C.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}$(h0,C),h0.prototype.split=function(l0,z){for(var o0=4194303,M=Math.min(l0.length,9),u0=0;u0>>22,S=n0}S>>>=22,l0.words[u0-10]=S,S===0&&l0.length>10?l0.length-=10:l0.length-=9},h0.prototype.imulK=function(l0){l0.words[l0.length]=0,l0.words[l0.length+1]=0,l0.length+=2;for(var z=0,o0=0;o0>>=26,l0.words[o0]=u0,z=M}return z!==0&&(l0.words[l0.length++]=z),l0},Z._prime=function(l0){if(c0[l0])return c0[l0];var z;if(l0==="k256")z=new h0;else if(l0==="p224")z=new L;else if(l0==="p192")z=new d0;else if(l0==="p25519")z=new R;else throw new Error("Unknown prime "+l0);return c0[l0]=z,z};function b0(l0){if(typeof l0=="string"){var z=Z._prime(l0);this.m=z.p,this.prime=z}else Y(l0.gtn(1),"modulus must be greater than 1"),this.m=l0,this.prime=null}b0.prototype._verify1=function(l0){Y(l0.negative===0,"red works only with positives"),Y(l0.red,"red works only with red numbers")},b0.prototype._verify2=function(l0,z){Y((l0.negative|z.negative)===0,"red works only with positives"),Y(l0.red&&l0.red===z.red,"red works only with red numbers")},b0.prototype.imod=function(l0){return this.prime?this.prime.ireduce(l0)._forceRed(this):l0.umod(this.m)._forceRed(this)},b0.prototype.neg=function(l0){return l0.isZero()?l0.clone():this.m.sub(l0)._forceRed(this)},b0.prototype.add=function(l0,z){this._verify2(l0,z);var o0=l0.add(z);return o0.cmp(this.m)>=0&&o0.isub(this.m),o0._forceRed(this)},b0.prototype.iadd=function(l0,z){this._verify2(l0,z);var o0=l0.iadd(z);return o0.cmp(this.m)>=0&&o0.isub(this.m),o0},b0.prototype.sub=function(l0,z){this._verify2(l0,z);var o0=l0.sub(z);return o0.cmpn(0)<0&&o0.iadd(this.m),o0._forceRed(this)},b0.prototype.isub=function(l0,z){this._verify2(l0,z);var o0=l0.isub(z);return o0.cmpn(0)<0&&o0.iadd(this.m),o0},b0.prototype.shl=function(l0,z){return this._verify1(l0),this.imod(l0.ushln(z))},b0.prototype.imul=function(l0,z){return this._verify2(l0,z),this.imod(l0.imul(z))},b0.prototype.mul=function(l0,z){return this._verify2(l0,z),this.imod(l0.mul(z))},b0.prototype.isqr=function(l0){return this.imul(l0,l0.clone())},b0.prototype.sqr=function(l0){return this.mul(l0,l0)},b0.prototype.sqrt=function(l0){if(l0.isZero())return l0.clone();var z=this.m.andln(3);if(Y(z%2===1),z===3){var o0=this.m.add(new Z(1)).iushrn(2);return this.pow(l0,o0)}for(var M=this.m.subn(1),u0=0;!M.isZero()&&M.andln(1)===0;)u0++,M.iushrn(1);Y(!M.isZero());var S=new Z(1).toRed(this),n0=S.redNeg(),v=this.m.subn(1).iushrn(1),s0=this.m.bitLength();for(s0=new Z(2*s0*s0).toRed(this);this.pow(s0,v).cmp(n0)!==0;)s0.redIAdd(n0);for(var I=this.pow(s0,M),t0=this.pow(l0,M.addn(1).iushrn(1)),m0=this.pow(l0,M),a0=u0;m0.cmp(S)!==0;){for(var q=m0,e0=0;q.cmp(S)!==0;e0++)q=q.redSqr();Y(e0=0;u0--){for(var I=z.words[u0],t0=s0-1;t0>=0;t0--){var m0=I>>t0&1;if(S!==M[0]&&(S=this.sqr(S)),m0===0&&n0===0){v=0;continue}n0<<=1,n0|=m0,v++,!(v!==o0&&(u0!==0||t0!==0))&&(S=this.mul(S,M[n0]),v=0,n0=0)}s0=26}return S},b0.prototype.convertTo=function(l0){var z=l0.umod(this.m);return z===l0?z.clone():z},b0.prototype.convertFrom=function(l0){var z=l0.clone();return z.red=null,z},Z.mont=function(l0){return new P(l0)};function P(l0){b0.call(this,l0),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new Z(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}$(P,b0),P.prototype.convertTo=function(l0){return this.imod(l0.ushln(this.shift))},P.prototype.convertFrom=function(l0){var z=this.imod(l0.mul(this.rinv));return z.red=null,z},P.prototype.imul=function(l0,z){if(l0.isZero()||z.isZero())return l0.words[0]=0,l0.length=1,l0;var o0=l0.imul(z),M=o0.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u0=o0.isub(M).iushrn(this.shift),S=u0;return u0.cmp(this.m)>=0?S=u0.isub(this.m):u0.cmpn(0)<0&&(S=u0.iadd(this.m)),S._forceRed(this)},P.prototype.mul=function(l0,z){if(l0.isZero()||z.isZero())return new Z(0)._forceRed(this);var o0=l0.mul(z),M=o0.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u0=o0.isub(M).iushrn(this.shift),S=u0;return u0.cmp(this.m)>=0?S=u0.isub(this.m):u0.cmpn(0)<0&&(S=u0.iadd(this.m)),S._forceRed(this)},P.prototype.invm=function(l0){var z=this.imod(l0._invmp(this.m).mul(this.r2));return z._forceRed(this)}})(typeof K>"u"||K,X)}}),CY=$Q({"node_modules/safer-buffer/safer.js"(X,K){var x0=e$,G=c$,Y={},$;for($ in x0)!x0.hasOwnProperty($)||$==="SlowBuffer"||$==="Buffer"||(Y[$]=x0[$]);var Z=Y.Buffer={};for($ in G)!G.hasOwnProperty($)||$==="allocUnsafe"||$==="allocUnsafeSlow"||(Z[$]=G[$]);if(Y.Buffer.prototype=G.prototype,(!Z.from||Z.from===Uint8Array.from)&&(Z.from=function(Q,U,V){if(typeof Q=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof Q);if(Q&&typeof Q.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof Q);return G(Q,U,V)}),Z.alloc||(Z.alloc=function(Q,U,V){if(typeof Q!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof Q);if(Q<0||Q>=2*(1<<30))throw new RangeError('The value "'+Q+'" is invalid for option "size"');var B0=G(Q);return!U||U.length===0?B0.fill(0):typeof V=="string"?B0.fill(U,V):B0.fill(U),B0}),!Y.kStringMaxLength)try{Y.kStringMaxLength=r$}catch{}Y.constants||(Y.constants={MAX_LENGTH:Y.kMaxLength},Y.kStringMaxLength&&(Y.constants.MAX_STRING_LENGTH=Y.kStringMaxLength)),K.exports=Y}}),LY=$Q({"node_modules/asn1.js/lib/asn1/base/reporter.js"(X){var K=X0();function x0(Y){this._reporterState={obj:null,path:[],options:Y||{},errors:[]}}X.Reporter=x0,x0.prototype.isError=function(Y){return Y instanceof G},x0.prototype.save=function(){let Y=this._reporterState;return{obj:Y.obj,pathLen:Y.path.length}},x0.prototype.restore=function(Y){let $=this._reporterState;$.obj=Y.obj,$.path=$.path.slice(0,Y.pathLen)},x0.prototype.enterKey=function(Y){return this._reporterState.path.push(Y)},x0.prototype.exitKey=function(Y){let $=this._reporterState;$.path=$.path.slice(0,Y-1)},x0.prototype.leaveKey=function(Y,$,Z){let Q=this._reporterState;this.exitKey(Y),Q.obj!==null&&(Q.obj[$]=Z)},x0.prototype.path=function(){return this._reporterState.path.join("/")},x0.prototype.enterObject=function(){let Y=this._reporterState,$=Y.obj;return Y.obj={},$},x0.prototype.leaveObject=function(Y){let $=this._reporterState,Z=$.obj;return $.obj=Y,Z},x0.prototype.error=function(Y){let $,Z=this._reporterState,Q=Y instanceof G;if(Q?$=Y:$=new G(Z.path.map(function(U){return"["+JSON.stringify(U)+"]"}).join(""),Y.message||Y,Y.stack),!Z.options.partial)throw $;return Q||Z.errors.push($),$},x0.prototype.wrapResult=function(Y){let $=this._reporterState;return $.options.partial?{result:this.isError(Y)?null:Y,errors:$.errors}:Y};function G(Y,$){this.path=Y,this.rethrow($)}K(G,Error),G.prototype.rethrow=function(Y){if(this.message=Y+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,G),!this.stack)try{throw new Error(this.message)}catch($){this.stack=$.stack}return this}}}),l$=$Q({"node_modules/asn1.js/lib/asn1/base/buffer.js"(X){var K=X0(),x0=LY().Reporter,G=CY().Buffer;function Y(Z,Q){if(x0.call(this,Q),!G.isBuffer(Z)){this.error("Input not Buffer");return}this.base=Z,this.offset=0,this.length=Z.length}K(Y,x0),X.DecoderBuffer=Y,Y.isDecoderBuffer=function(Z){return Z instanceof Y?!0:typeof Z=="object"&&G.isBuffer(Z.base)&&Z.constructor.name==="DecoderBuffer"&&typeof Z.offset=="number"&&typeof Z.length=="number"&&typeof Z.save=="function"&&typeof Z.restore=="function"&&typeof Z.isEmpty=="function"&&typeof Z.readUInt8=="function"&&typeof Z.skip=="function"&&typeof Z.raw=="function"},Y.prototype.save=function(){return{offset:this.offset,reporter:x0.prototype.save.call(this)}},Y.prototype.restore=function(Z){let Q=new Y(this.base);return Q.offset=Z.offset,Q.length=this.offset,this.offset=Z.offset,x0.prototype.restore.call(this,Z.reporter),Q},Y.prototype.isEmpty=function(){return this.offset===this.length},Y.prototype.readUInt8=function(Z){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(Z||"DecoderBuffer overrun")},Y.prototype.skip=function(Z,Q){if(!(this.offset+Z<=this.length))return this.error(Q||"DecoderBuffer overrun");let U=new Y(this.base);return U._reporterState=this._reporterState,U.offset=this.offset,U.length=this.offset+Z,this.offset+=Z,U},Y.prototype.raw=function(Z){return this.base.slice(Z?Z.offset:this.offset,this.length)};function $(Z,Q){if(Array.isArray(Z))this.length=0,this.value=Z.map(function(U){return $.isEncoderBuffer(U)||(U=new $(U,Q)),this.length+=U.length,U},this);else if(typeof Z=="number"){if(!(0<=Z&&Z<=255))return Q.error("non-byte EncoderBuffer value");this.value=Z,this.length=1}else if(typeof Z=="string")this.value=Z,this.length=G.byteLength(Z);else if(G.isBuffer(Z))this.value=Z,this.length=Z.length;else return Q.error("Unsupported type: "+typeof Z)}X.EncoderBuffer=$,$.isEncoderBuffer=function(Z){return Z instanceof $?!0:typeof Z=="object"&&Z.constructor.name==="EncoderBuffer"&&typeof Z.length=="number"&&typeof Z.join=="function"},$.prototype.join=function(Z,Q){return Z||(Z=G.alloc(this.length)),Q||(Q=0),this.length===0||(Array.isArray(this.value)?this.value.forEach(function(U){U.join(Z,Q),Q+=U.length}):(typeof this.value=="number"?Z[Q]=this.value:typeof this.value=="string"?Z.write(this.value,Q):G.isBuffer(this.value)&&this.value.copy(Z,Q),Q+=this.length)),Z}}}),RY=$Q({"node_modules/asn1.js/lib/asn1/base/node.js"(X,K){var x0=LY().Reporter,G=l$().EncoderBuffer,Y=l$().DecoderBuffer,$=N0(),Z=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],Q=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(Z),U=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];function V(H,y0,W){let w0={};this._baseState=w0,w0.name=W,w0.enc=H,w0.parent=y0||null,w0.children=null,w0.tag=null,w0.args=null,w0.reverseArgs=null,w0.choice=null,w0.optional=!1,w0.any=!1,w0.obj=!1,w0.use=null,w0.useDecoder=null,w0.key=null,w0.default=null,w0.explicit=null,w0.implicit=null,w0.contains=null,w0.parent||(w0.children=[],this._wrap())}K.exports=V;var B0=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];V.prototype.clone=function(){let H=this._baseState,y0={};B0.forEach(function(w0){y0[w0]=H[w0]});let W=new this.constructor(y0.parent);return W._baseState=y0,W},V.prototype._wrap=function(){let H=this._baseState;Q.forEach(function(y0){this[y0]=function(){let W=new this.constructor(this);return H.children.push(W),W[y0].apply(W,arguments)}},this)},V.prototype._init=function(H){let y0=this._baseState;$(y0.parent===null),H.call(this),y0.children=y0.children.filter(function(W){return W._baseState.parent===this},this),$.equal(y0.children.length,1,"Root node can have only one child")},V.prototype._useArgs=function(H){let y0=this._baseState,W=H.filter(function(w0){return w0 instanceof this.constructor},this);H=H.filter(function(w0){return!(w0 instanceof this.constructor)},this),W.length!==0&&($(y0.children===null),y0.children=W,W.forEach(function(w0){w0._baseState.parent=this},this)),H.length!==0&&($(y0.args===null),y0.args=H,y0.reverseArgs=H.map(function(w0){if(typeof w0!="object"||w0.constructor!==Object)return w0;let E={};return Object.keys(w0).forEach(function(p0){p0==(p0|0)&&(p0|=0);let T=w0[p0];E[T]=p0}),E}))},U.forEach(function(H){V.prototype[H]=function(){let y0=this._baseState;throw new Error(H+" not implemented for encoding: "+y0.enc)}}),Z.forEach(function(H){V.prototype[H]=function(){let y0=this._baseState,W=Array.prototype.slice.call(arguments);return $(y0.tag===null),y0.tag=H,this._useArgs(W),this}}),V.prototype.use=function(H){$(H);let y0=this._baseState;return $(y0.use===null),y0.use=H,this},V.prototype.optional=function(){let H=this._baseState;return H.optional=!0,this},V.prototype.def=function(H){let y0=this._baseState;return $(y0.default===null),y0.default=H,y0.optional=!0,this},V.prototype.explicit=function(H){let y0=this._baseState;return $(y0.explicit===null&&y0.implicit===null),y0.explicit=H,this},V.prototype.implicit=function(H){let y0=this._baseState;return $(y0.explicit===null&&y0.implicit===null),y0.implicit=H,this},V.prototype.obj=function(){let H=this._baseState,y0=Array.prototype.slice.call(arguments);return H.obj=!0,y0.length!==0&&this._useArgs(y0),this},V.prototype.key=function(H){let y0=this._baseState;return $(y0.key===null),y0.key=H,this},V.prototype.any=function(){let H=this._baseState;return H.any=!0,this},V.prototype.choice=function(H){let y0=this._baseState;return $(y0.choice===null),y0.choice=H,this._useArgs(Object.keys(H).map(function(W){return H[W]})),this},V.prototype.contains=function(H){let y0=this._baseState;return $(y0.use===null),y0.contains=H,this},V.prototype._decode=function(H,y0){let W=this._baseState;if(W.parent===null)return H.wrapResult(W.children[0]._decode(H,y0));let w0=W.default,E=!0,p0=null;if(W.key!==null&&(p0=H.enterKey(W.key)),W.optional){let f0=null;if(W.explicit!==null?f0=W.explicit:W.implicit!==null?f0=W.implicit:W.tag!==null&&(f0=W.tag),f0===null&&!W.any){let D=H.save();try{W.choice===null?this._decodeGeneric(W.tag,H,y0):this._decodeChoice(H,y0),E=!0}catch{E=!1}H.restore(D)}else if(E=this._peekTag(H,f0,W.any),H.isError(E))return E}let T;if(W.obj&&E&&(T=H.enterObject()),E){if(W.explicit!==null){let D=this._decodeTag(H,W.explicit);if(H.isError(D))return D;H=D}let f0=H.offset;if(W.use===null&&W.choice===null){let D;W.any&&(D=H.save());let c0=this._decodeTag(H,W.implicit!==null?W.implicit:W.tag,W.any);if(H.isError(c0))return c0;W.any?w0=H.raw(D):H=c0}if(y0&&y0.track&&W.tag!==null&&y0.track(H.path(),f0,H.length,"tagged"),y0&&y0.track&&W.tag!==null&&y0.track(H.path(),H.offset,H.length,"content"),W.any||(W.choice===null?w0=this._decodeGeneric(W.tag,H,y0):w0=this._decodeChoice(H,y0)),H.isError(w0))return w0;if(!W.any&&W.choice===null&&W.children!==null&&W.children.forEach(function(D){D._decode(H,y0)}),W.contains&&(W.tag==="octstr"||W.tag==="bitstr")){let D=new Y(w0);w0=this._getUse(W.contains,H._reporterState.obj)._decode(D,y0)}}return W.obj&&E&&(w0=H.leaveObject(T)),W.key!==null&&(w0!==null||E===!0)?H.leaveKey(p0,W.key,w0):p0!==null&&H.exitKey(p0),w0},V.prototype._decodeGeneric=function(H,y0,W){let w0=this._baseState;return H==="seq"||H==="set"?null:H==="seqof"||H==="setof"?this._decodeList(y0,H,w0.args[0],W):/str$/.test(H)?this._decodeStr(y0,H,W):H==="objid"&&w0.args?this._decodeObjid(y0,w0.args[0],w0.args[1],W):H==="objid"?this._decodeObjid(y0,null,null,W):H==="gentime"||H==="utctime"?this._decodeTime(y0,H,W):H==="null_"?this._decodeNull(y0,W):H==="bool"?this._decodeBool(y0,W):H==="objDesc"?this._decodeStr(y0,H,W):H==="int"||H==="enum"?this._decodeInt(y0,w0.args&&w0.args[0],W):w0.use!==null?this._getUse(w0.use,y0._reporterState.obj)._decode(y0,W):y0.error("unknown tag: "+H)},V.prototype._getUse=function(H,y0){let W=this._baseState;return W.useDecoder=this._use(H,y0),$(W.useDecoder._baseState.parent===null),W.useDecoder=W.useDecoder._baseState.children[0],W.implicit!==W.useDecoder._baseState.implicit&&(W.useDecoder=W.useDecoder.clone(),W.useDecoder._baseState.implicit=W.implicit),W.useDecoder},V.prototype._decodeChoice=function(H,y0){let W=this._baseState,w0=null,E=!1;return Object.keys(W.choice).some(function(p0){let T=H.save(),f0=W.choice[p0];try{let D=f0._decode(H,y0);if(H.isError(D))return!1;w0={type:p0,value:D},E=!0}catch{return H.restore(T),!1}return!0},this),E?w0:H.error("Choice not matched")},V.prototype._createEncoderBuffer=function(H){return new G(H,this.reporter)},V.prototype._encode=function(H,y0,W){let w0=this._baseState;if(w0.default!==null&&w0.default===H)return;let E=this._encodeValue(H,y0,W);if(E!==void 0&&!this._skipDefault(E,y0,W))return E},V.prototype._encodeValue=function(H,y0,W){let w0=this._baseState;if(w0.parent===null)return w0.children[0]._encode(H,y0||new x0);let E=null;if(this.reporter=y0,w0.optional&&H===void 0)if(w0.default!==null)H=w0.default;else return;let p0=null,T=!1;if(w0.any)E=this._createEncoderBuffer(H);else if(w0.choice)E=this._encodeChoice(H,y0);else if(w0.contains)p0=this._getUse(w0.contains,W)._encode(H,y0),T=!0;else if(w0.children)p0=w0.children.map(function(f0){if(f0._baseState.tag==="null_")return f0._encode(null,y0,H);if(f0._baseState.key===null)return y0.error("Child should have a key");let D=y0.enterKey(f0._baseState.key);if(typeof H!="object")return y0.error("Child expected, but input is not object");let c0=f0._encode(H[f0._baseState.key],y0,H);return y0.leaveKey(D),c0},this).filter(function(f0){return f0}),p0=this._createEncoderBuffer(p0);else if(w0.tag==="seqof"||w0.tag==="setof"){if(!(w0.args&&w0.args.length===1))return y0.error("Too many args for : "+w0.tag);if(!Array.isArray(H))return y0.error("seqof/setof, but data is not Array");let f0=this.clone();f0._baseState.implicit=null,p0=this._createEncoderBuffer(H.map(function(D){let c0=this._baseState;return this._getUse(c0.args[0],H)._encode(D,y0)},f0))}else w0.use!==null?E=this._getUse(w0.use,W)._encode(H,y0):(p0=this._encodePrimitive(w0.tag,H),T=!0);if(!w0.any&&w0.choice===null){let f0=w0.implicit!==null?w0.implicit:w0.tag,D=w0.implicit===null?"universal":"context";f0===null?w0.use===null&&y0.error("Tag could be omitted only for .use()"):w0.use===null&&(E=this._encodeComposite(f0,T,D,p0))}return w0.explicit!==null&&(E=this._encodeComposite(w0.explicit,!1,"context",E)),E},V.prototype._encodeChoice=function(H,y0){let W=this._baseState,w0=W.choice[H.type];return w0||$(!1,H.type+" not found in "+JSON.stringify(Object.keys(W.choice))),w0._encode(H.value,y0)},V.prototype._encodePrimitive=function(H,y0){let W=this._baseState;if(/str$/.test(H))return this._encodeStr(y0,H);if(H==="objid"&&W.args)return this._encodeObjid(y0,W.reverseArgs[0],W.args[1]);if(H==="objid")return this._encodeObjid(y0,null,null);if(H==="gentime"||H==="utctime")return this._encodeTime(y0,H);if(H==="null_")return this._encodeNull();if(H==="int"||H==="enum")return this._encodeInt(y0,W.args&&W.reverseArgs[0]);if(H==="bool")return this._encodeBool(y0);if(H==="objDesc")return this._encodeStr(y0,H);throw new Error("Unsupported tag: "+H)},V.prototype._isNumstr=function(H){return/^[0-9 ]*$/.test(H)},V.prototype._isPrintstr=function(H){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(H)}}}),PY=$Q({"node_modules/asn1.js/lib/asn1/constants/der.js"(X){function K(x0){let G={};return Object.keys(x0).forEach(function(Y){(Y|0)==Y&&(Y=Y|0);let $=x0[Y];G[$]=Y}),G}X.tagClass={0:"universal",1:"application",2:"context",3:"private"},X.tagClassByName=K(X.tagClass),X.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},X.tagByName=K(X.tag)}}),zY=$Q({"node_modules/asn1.js/lib/asn1/encoders/der.js"(X,K){var x0=X0(),G=CY().Buffer,Y=RY(),$=PY();function Z(B0){this.enc="der",this.name=B0.name,this.entity=B0,this.tree=new Q,this.tree._init(B0.body)}K.exports=Z,Z.prototype.encode=function(B0,H){return this.tree._encode(B0,H).join()};function Q(B0){Y.call(this,"der",B0)}x0(Q,Y),Q.prototype._encodeComposite=function(B0,H,y0,W){let w0=V(B0,H,y0,this.reporter);if(W.length<128){let T=G.alloc(2);return T[0]=w0,T[1]=W.length,this._createEncoderBuffer([T,W])}let E=1;for(let T=W.length;T>=256;T>>=8)E++;let p0=G.alloc(2+E);p0[0]=w0,p0[1]=128|E;for(let T=1+E,f0=W.length;f0>0;T--,f0>>=8)p0[T]=f0&255;return this._createEncoderBuffer([p0,W])},Q.prototype._encodeStr=function(B0,H){if(H==="bitstr")return this._createEncoderBuffer([B0.unused|0,B0.data]);if(H==="bmpstr"){let y0=G.alloc(B0.length*2);for(let W=0;W=40)return this.reporter.error("Second objid identifier OOB");B0.splice(0,2,B0[0]*40+B0[1])}let W=0;for(let p0=0;p0=128;T>>=7)W++}let w0=G.alloc(W),E=w0.length-1;for(let p0=B0.length-1;p0>=0;p0--){let T=B0[p0];for(w0[E--]=T&127;(T>>=7)>0;)w0[E--]=128|T&127}return this._createEncoderBuffer(w0)};function U(B0){return B0<10?"0"+B0:B0}Q.prototype._encodeTime=function(B0,H){let y0,W=new Date(B0);return H==="gentime"?y0=[U(W.getUTCFullYear()),U(W.getUTCMonth()+1),U(W.getUTCDate()),U(W.getUTCHours()),U(W.getUTCMinutes()),U(W.getUTCSeconds()),"Z"].join(""):H==="utctime"?y0=[U(W.getUTCFullYear()%100),U(W.getUTCMonth()+1),U(W.getUTCDate()),U(W.getUTCHours()),U(W.getUTCMinutes()),U(W.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+H+" time is not supported yet"),this._encodeStr(y0,"octstr")},Q.prototype._encodeNull=function(){return this._createEncoderBuffer("")},Q.prototype._encodeInt=function(B0,H){if(typeof B0=="string"){if(!H)return this.reporter.error("String int or enum given, but no values map");if(!H.hasOwnProperty(B0))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(B0));B0=H[B0]}if(typeof B0!="number"&&!G.isBuffer(B0)){let w0=B0.toArray();!B0.sign&&w0[0]&128&&w0.unshift(0),B0=G.from(w0)}if(G.isBuffer(B0)){let w0=B0.length;B0.length===0&&w0++;let E=G.alloc(w0);return B0.copy(E),B0.length===0&&(E[0]=0),this._createEncoderBuffer(E)}if(B0<128)return this._createEncoderBuffer(B0);if(B0<256)return this._createEncoderBuffer([0,B0]);let y0=1;for(let w0=B0;w0>=256;w0>>=8)y0++;let W=new Array(y0);for(let w0=W.length-1;w0>=0;w0--)W[w0]=B0&255,B0>>=8;return W[0]&128&&W.unshift(0),this._createEncoderBuffer(G.from(W))},Q.prototype._encodeBool=function(B0){return this._createEncoderBuffer(B0?255:0)},Q.prototype._use=function(B0,H){return typeof B0=="function"&&(B0=B0(H)),B0._getEncoder("der").tree},Q.prototype._skipDefault=function(B0,H,y0){let W=this._baseState,w0;if(W.default===null)return!1;let E=B0.join();if(W.defaultBuffer===void 0&&(W.defaultBuffer=this._encodeValue(W.default,H,y0).join()),E.length!==W.defaultBuffer.length)return!1;for(w0=0;w0=31?W.error("Multi-octet tag encoding unsupported"):(H||(w0|=32),w0|=$.tagClassByName[y0||"universal"]<<6,w0)}}}),MY=$Q({"node_modules/asn1.js/lib/asn1/encoders/pem.js"(X,K){var x0=X0(),G=zY();function Y($){G.call(this,$),this.enc="pem"}x0(Y,G),K.exports=Y,Y.prototype.encode=function($,Z){let Q=G.prototype.encode.call(this,$).toString("base64"),U=["-----BEGIN "+Z.label+"-----"];for(let V=0;V>6],E=(W&32)===0;if((W&31)===31){let T=W;for(W=0;(T&128)===128;){if(T=H.readUInt8(y0),H.isError(T))return T;W<<=7,W|=T&127}}else W&=31;let p0=Z.tag[W];return{cls:w0,primitive:E,tag:W,tagStr:p0}}function B0(H,y0,W){let w0=H.readUInt8(W);if(H.isError(w0))return w0;if(!y0&&w0===128)return null;if((w0&128)===0)return w0;let E=w0&127;if(E>4)return H.error("length octect is too long");w0=0;for(let p0=0;p00&&c0.ishrn(C),c0}function E(f0,D){f0=w0(f0,D),f0=f0.mod(D);var c0=x0.from(f0.toArray());if(c0.length=y0)throw new Error("invalid sig")}K.exports=Q}}),dY=$Q({"node_modules/browserify-sign/browser/index.js"(X,K){var x0=YQ().Buffer,G=L0(),Y=X0(),$=cY(),Z=hY(),Q=M0();Object.keys(Q).forEach(function(y0){Q[y0].id=x0.from(Q[y0].id,"hex"),Q[y0.toLowerCase()]=Q[y0]});function U(y0){h$.Writable.call(this);var W=Q[y0];if(!W)throw new Error("Unknown message digest");this._hashType=W.hash,this._hash=G(W.hash),this._tag=W.id,this._signType=W.sign}Y(U,h$.Writable),U.prototype._write=function(y0,W,w0){this._hash.update(y0),w0()},U.prototype.update=function(y0,W){return typeof y0=="string"&&(y0=x0.from(y0,W)),this._hash.update(y0),this},U.prototype.sign=function(y0,W){this.end();var w0=this._hash.digest(),E=$(w0,y0,this._hashType,this._signType,this._tag);return W?E.toString(W):E};function V(y0){h$.Writable.call(this);var W=Q[y0];if(!W)throw new Error("Unknown message digest");this._hash=G(W.hash),this._tag=W.id,this._signType=W.sign}Y(V,h$.Writable),V.prototype._write=function(y0,W,w0){this._hash.update(y0),w0()},V.prototype.update=function(y0,W){return typeof y0=="string"&&(y0=x0.from(y0,W)),this._hash.update(y0),this},V.prototype.verify=function(y0,W,w0){typeof W=="string"&&(W=x0.from(W,w0)),this.end();var E=this._hash.digest();return Z(W,E,y0,this._signType,this._tag)};function B0(y0){return new U(y0)}function H(y0){return new V(y0)}K.exports={Sign:B0,Verify:H,createSign:B0,createVerify:H}}}),bY=$Q({"node_modules/create-ecdh/node_modules/bn.js/lib/bn.js"(X,K){(function(x0,G){function Y(l0,z){if(!l0)throw new Error(z||"Assertion failed")}function $(l0,z){l0.super_=z;var o0=function(){};o0.prototype=z.prototype,l0.prototype=new o0,l0.prototype.constructor=l0}function Z(l0,z,o0){if(Z.isBN(l0))return l0;this.negative=0,this.words=null,this.length=0,this.red=null,l0!==null&&((z==="le"||z==="be")&&(o0=z,z=10),this._init(l0||0,z||10,o0||"be"))}typeof x0=="object"?x0.exports=Z:G.BN=Z,Z.BN=Z,Z.wordSize=26;var Q=c$;Z.isBN=function(l0){return l0 instanceof Z?!0:l0!==null&&typeof l0=="object"&&l0.constructor.wordSize===Z.wordSize&&Array.isArray(l0.words)},Z.max=function(l0,z){return l0.cmp(z)>0?l0:z},Z.min=function(l0,z){return l0.cmp(z)<0?l0:z},Z.prototype._init=function(l0,z,o0){if(typeof l0=="number")return this._initNumber(l0,z,o0);if(typeof l0=="object")return this._initArray(l0,z,o0);z==="hex"&&(z=16),Y(z===(z|0)&&z>=2&&z<=36),l0=l0.toString().replace(/\s+/g,"");var M=0;l0[0]==="-"&&(M++,this.negative=1),M=0;M-=3)S=l0[M]|l0[M-1]<<8|l0[M-2]<<16,this.words[u0]|=S<>>26-n0&67108863,n0+=24,n0>=26&&(n0-=26,u0++);else if(o0==="le")for(M=0,u0=0;M>>26-n0&67108863,n0+=24,n0>=26&&(n0-=26,u0++);return this.strip()};function U(l0,z){var o0=l0.charCodeAt(z);return o0>=65&&o0<=70?o0-55:o0>=97&&o0<=102?o0-87:o0-48&15}function V(l0,z,o0){var M=U(l0,o0);return o0-1>=z&&(M|=U(l0,o0-1)<<4),M}Z.prototype._parseHex=function(l0,z,o0){this.length=Math.ceil((l0.length-z)/6),this.words=new Array(this.length);for(var M=0;M=z;M-=2)n0=V(l0,z,M)<=18?(u0-=18,S+=1,this.words[S]|=n0>>>26):u0+=8;else{var v=l0.length-z;for(M=v%2===0?z+1:z;M=18?(u0-=18,S+=1,this.words[S]|=n0>>>26):u0+=8}this.strip()};function B0(l0,z,o0,M){for(var u0=0,S=Math.min(l0.length,o0),n0=z;n0=49?u0+=v-49+10:v>=17?u0+=v-17+10:u0+=v}return u0}Z.prototype._parseBase=function(l0,z,o0){this.words=[0],this.length=1;for(var M=0,u0=1;u0<=67108863;u0*=z)M++;M--,u0=u0/z|0;for(var S=l0.length-o0,n0=S%M,v=Math.min(S,S-n0)+o0,s0=0,I=o0;I1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},Z.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},Z.prototype.inspect=function(){return(this.red?""};var H=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y0=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],W=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];Z.prototype.toString=function(l0,z){l0=l0||10,z=z|0||1;var o0;if(l0===16||l0==="hex"){o0="";for(var M=0,u0=0,S=0;S>>24-M&16777215,u0!==0||S!==this.length-1?o0=H[6-v.length]+v+o0:o0=v+o0,M+=2,M>=26&&(M-=26,S--)}for(u0!==0&&(o0=u0.toString(16)+o0);o0.length%z!==0;)o0="0"+o0;return this.negative!==0&&(o0="-"+o0),o0}if(l0===(l0|0)&&l0>=2&&l0<=36){var s0=y0[l0],I=W[l0];o0="";var t0=this.clone();for(t0.negative=0;!t0.isZero();){var m0=t0.modn(I).toString(l0);t0=t0.idivn(I),t0.isZero()?o0=m0+o0:o0=H[s0-m0.length]+m0+o0}for(this.isZero()&&(o0="0"+o0);o0.length%z!==0;)o0="0"+o0;return this.negative!==0&&(o0="-"+o0),o0}Y(!1,"Base should be between 2 and 36")},Z.prototype.toNumber=function(){var l0=this.words[0];return this.length===2?l0+=this.words[1]*67108864:this.length===3&&this.words[2]===1?l0+=4503599627370496+this.words[1]*67108864:this.length>2&&Y(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-l0:l0},Z.prototype.toJSON=function(){return this.toString(16)},Z.prototype.toBuffer=function(l0,z){return Y(typeof Q<"u"),this.toArrayLike(Q,l0,z)},Z.prototype.toArray=function(l0,z){return this.toArrayLike(Array,l0,z)},Z.prototype.toArrayLike=function(l0,z,o0){var M=this.byteLength(),u0=o0||Math.max(1,M);Y(M<=u0,"byte array longer than desired length"),Y(u0>0,"Requested array length <= 0"),this.strip();var S=z==="le",n0=new l0(u0),v,s0,I=this.clone();if(S){for(s0=0;!I.isZero();s0++)v=I.andln(255),I.iushrn(8),n0[s0]=v;for(;s0=4096&&(o0+=13,z>>>=13),z>=64&&(o0+=7,z>>>=7),z>=8&&(o0+=4,z>>>=4),z>=2&&(o0+=2,z>>>=2),o0+z},Z.prototype._zeroBits=function(l0){if(l0===0)return 26;var z=l0,o0=0;return(z&8191)===0&&(o0+=13,z>>>=13),(z&127)===0&&(o0+=7,z>>>=7),(z&15)===0&&(o0+=4,z>>>=4),(z&3)===0&&(o0+=2,z>>>=2),(z&1)===0&&o0++,o0},Z.prototype.bitLength=function(){var l0=this.words[this.length-1],z=this._countBits(l0);return(this.length-1)*26+z};function w0(l0){for(var z=new Array(l0.bitLength()),o0=0;o0>>u0}return z}Z.prototype.zeroBits=function(){if(this.isZero())return 0;for(var l0=0,z=0;zl0.length?this.clone().ior(l0):l0.clone().ior(this)},Z.prototype.uor=function(l0){return this.length>l0.length?this.clone().iuor(l0):l0.clone().iuor(this)},Z.prototype.iuand=function(l0){var z;this.length>l0.length?z=l0:z=this;for(var o0=0;o0l0.length?this.clone().iand(l0):l0.clone().iand(this)},Z.prototype.uand=function(l0){return this.length>l0.length?this.clone().iuand(l0):l0.clone().iuand(this)},Z.prototype.iuxor=function(l0){var z,o0;this.length>l0.length?(z=this,o0=l0):(z=l0,o0=this);for(var M=0;Ml0.length?this.clone().ixor(l0):l0.clone().ixor(this)},Z.prototype.uxor=function(l0){return this.length>l0.length?this.clone().iuxor(l0):l0.clone().iuxor(this)},Z.prototype.inotn=function(l0){Y(typeof l0=="number"&&l0>=0);var z=Math.ceil(l0/26)|0,o0=l0%26;this._expand(z),o0>0&&z--;for(var M=0;M0&&(this.words[M]=~this.words[M]&67108863>>26-o0),this.strip()},Z.prototype.notn=function(l0){return this.clone().inotn(l0)},Z.prototype.setn=function(l0,z){Y(typeof l0=="number"&&l0>=0);var o0=l0/26|0,M=l0%26;return this._expand(o0+1),z?this.words[o0]=this.words[o0]|1<l0.length?(o0=this,M=l0):(o0=l0,M=this);for(var u0=0,S=0;S>>26;for(;u0!==0&&S>>26;if(this.length=o0.length,u0!==0)this.words[this.length]=u0,this.length++;else if(o0!==this)for(;Sl0.length?this.clone().iadd(l0):l0.clone().iadd(this)},Z.prototype.isub=function(l0){if(l0.negative!==0){l0.negative=0;var z=this.iadd(l0);return l0.negative=1,z._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(l0),this.negative=1,this._normSign();var o0=this.cmp(l0);if(o0===0)return this.negative=0,this.length=1,this.words[0]=0,this;var M,u0;o0>0?(M=this,u0=l0):(M=l0,u0=this);for(var S=0,n0=0;n0>26,this.words[n0]=z&67108863;for(;S!==0&&n0>26,this.words[n0]=z&67108863;if(S===0&&n0>>26,m0=s0&67108863,a0=Math.min(I,z.length-1),q=Math.max(0,I-l0.length+1);q<=a0;q++){var e0=I-q|0;u0=l0.words[e0]|0,S=z.words[q]|0,n0=u0*S+m0,t0+=n0/67108864|0,m0=n0&67108863}o0.words[I]=m0|0,s0=t0|0}return s0!==0?o0.words[I]=s0|0:o0.length--,o0.strip()}var p0=function(l0,z,o0){var M=l0.words,u0=z.words,S=o0.words,n0=0,v,s0,I,t0=M[0]|0,m0=t0&8191,a0=t0>>>13,q=M[1]|0,e0=q&8191,r0=q>>>13,i0=M[2]|0,j=i0&8191,$$=i0>>>13,k=M[3]|0,Q$=k&8191,g=k>>>13,Y$=M[4]|0,_=Y$&8191,Z$=Y$>>>13,N=M[5]|0,G$=N&8191,x=N>>>13,V$=M[6]|0,B=V$&8191,U$=V$>>>13,y=M[7]|0,X$=y&8191,w=y>>>13,K$=M[8]|0,p=K$&8191,I$=K$>>>13,f=M[9]|0,O$=f&8191,c=f>>>13,J$=u0[0]|0,h=J$&8191,F$=J$>>>13,d=u0[1]|0,A$=d&8191,b=d>>>13,H$=u0[2]|0,l=H$&8191,W$=H$>>>13,o=u0[3]|0,E$=o&8191,u=o>>>13,T$=u0[4]|0,n=T$&8191,D$=T$>>>13,s=u0[5]|0,C$=s&8191,t=s>>>13,L$=u0[6]|0,m=L$&8191,R$=L$>>>13,a=u0[7]|0,P$=a&8191,O=a>>>13,z$=u0[8]|0,e=z$&8191,M$=z$>>>13,J=u0[9]|0,S$=J&8191,F=J>>>13;o0.negative=l0.negative^z.negative,o0.length=19,v=Math.imul(m0,h),s0=Math.imul(m0,F$),s0=s0+Math.imul(a0,h)|0,I=Math.imul(a0,F$);var v$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(v$>>>26)|0,v$&=67108863,v=Math.imul(e0,h),s0=Math.imul(e0,F$),s0=s0+Math.imul(r0,h)|0,I=Math.imul(r0,F$),v=v+Math.imul(m0,A$)|0,s0=s0+Math.imul(m0,b)|0,s0=s0+Math.imul(a0,A$)|0,I=I+Math.imul(a0,b)|0;var r=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(r>>>26)|0,r&=67108863,v=Math.imul(j,h),s0=Math.imul(j,F$),s0=s0+Math.imul($$,h)|0,I=Math.imul($$,F$),v=v+Math.imul(e0,A$)|0,s0=s0+Math.imul(e0,b)|0,s0=s0+Math.imul(r0,A$)|0,I=I+Math.imul(r0,b)|0,v=v+Math.imul(m0,l)|0,s0=s0+Math.imul(m0,W$)|0,s0=s0+Math.imul(a0,l)|0,I=I+Math.imul(a0,W$)|0;var q$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(q$>>>26)|0,q$&=67108863,v=Math.imul(Q$,h),s0=Math.imul(Q$,F$),s0=s0+Math.imul(g,h)|0,I=Math.imul(g,F$),v=v+Math.imul(j,A$)|0,s0=s0+Math.imul(j,b)|0,s0=s0+Math.imul($$,A$)|0,I=I+Math.imul($$,b)|0,v=v+Math.imul(e0,l)|0,s0=s0+Math.imul(e0,W$)|0,s0=s0+Math.imul(r0,l)|0,I=I+Math.imul(r0,W$)|0,v=v+Math.imul(m0,E$)|0,s0=s0+Math.imul(m0,u)|0,s0=s0+Math.imul(a0,E$)|0,I=I+Math.imul(a0,u)|0;var i=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(i>>>26)|0,i&=67108863,v=Math.imul(_,h),s0=Math.imul(_,F$),s0=s0+Math.imul(Z$,h)|0,I=Math.imul(Z$,F$),v=v+Math.imul(Q$,A$)|0,s0=s0+Math.imul(Q$,b)|0,s0=s0+Math.imul(g,A$)|0,I=I+Math.imul(g,b)|0,v=v+Math.imul(j,l)|0,s0=s0+Math.imul(j,W$)|0,s0=s0+Math.imul($$,l)|0,I=I+Math.imul($$,W$)|0,v=v+Math.imul(e0,E$)|0,s0=s0+Math.imul(e0,u)|0,s0=s0+Math.imul(r0,E$)|0,I=I+Math.imul(r0,u)|0,v=v+Math.imul(m0,n)|0,s0=s0+Math.imul(m0,D$)|0,s0=s0+Math.imul(a0,n)|0,I=I+Math.imul(a0,D$)|0;var j$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(j$>>>26)|0,j$&=67108863,v=Math.imul(G$,h),s0=Math.imul(G$,F$),s0=s0+Math.imul(x,h)|0,I=Math.imul(x,F$),v=v+Math.imul(_,A$)|0,s0=s0+Math.imul(_,b)|0,s0=s0+Math.imul(Z$,A$)|0,I=I+Math.imul(Z$,b)|0,v=v+Math.imul(Q$,l)|0,s0=s0+Math.imul(Q$,W$)|0,s0=s0+Math.imul(g,l)|0,I=I+Math.imul(g,W$)|0,v=v+Math.imul(j,E$)|0,s0=s0+Math.imul(j,u)|0,s0=s0+Math.imul($$,E$)|0,I=I+Math.imul($$,u)|0,v=v+Math.imul(e0,n)|0,s0=s0+Math.imul(e0,D$)|0,s0=s0+Math.imul(r0,n)|0,I=I+Math.imul(r0,D$)|0,v=v+Math.imul(m0,C$)|0,s0=s0+Math.imul(m0,t)|0,s0=s0+Math.imul(a0,C$)|0,I=I+Math.imul(a0,t)|0;var k$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(k$>>>26)|0,k$&=67108863,v=Math.imul(B,h),s0=Math.imul(B,F$),s0=s0+Math.imul(U$,h)|0,I=Math.imul(U$,F$),v=v+Math.imul(G$,A$)|0,s0=s0+Math.imul(G$,b)|0,s0=s0+Math.imul(x,A$)|0,I=I+Math.imul(x,b)|0,v=v+Math.imul(_,l)|0,s0=s0+Math.imul(_,W$)|0,s0=s0+Math.imul(Z$,l)|0,I=I+Math.imul(Z$,W$)|0,v=v+Math.imul(Q$,E$)|0,s0=s0+Math.imul(Q$,u)|0,s0=s0+Math.imul(g,E$)|0,I=I+Math.imul(g,u)|0,v=v+Math.imul(j,n)|0,s0=s0+Math.imul(j,D$)|0,s0=s0+Math.imul($$,n)|0,I=I+Math.imul($$,D$)|0,v=v+Math.imul(e0,C$)|0,s0=s0+Math.imul(e0,t)|0,s0=s0+Math.imul(r0,C$)|0,I=I+Math.imul(r0,t)|0,v=v+Math.imul(m0,m)|0,s0=s0+Math.imul(m0,R$)|0,s0=s0+Math.imul(a0,m)|0,I=I+Math.imul(a0,R$)|0;var g$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(g$>>>26)|0,g$&=67108863,v=Math.imul(X$,h),s0=Math.imul(X$,F$),s0=s0+Math.imul(w,h)|0,I=Math.imul(w,F$),v=v+Math.imul(B,A$)|0,s0=s0+Math.imul(B,b)|0,s0=s0+Math.imul(U$,A$)|0,I=I+Math.imul(U$,b)|0,v=v+Math.imul(G$,l)|0,s0=s0+Math.imul(G$,W$)|0,s0=s0+Math.imul(x,l)|0,I=I+Math.imul(x,W$)|0,v=v+Math.imul(_,E$)|0,s0=s0+Math.imul(_,u)|0,s0=s0+Math.imul(Z$,E$)|0,I=I+Math.imul(Z$,u)|0,v=v+Math.imul(Q$,n)|0,s0=s0+Math.imul(Q$,D$)|0,s0=s0+Math.imul(g,n)|0,I=I+Math.imul(g,D$)|0,v=v+Math.imul(j,C$)|0,s0=s0+Math.imul(j,t)|0,s0=s0+Math.imul($$,C$)|0,I=I+Math.imul($$,t)|0,v=v+Math.imul(e0,m)|0,s0=s0+Math.imul(e0,R$)|0,s0=s0+Math.imul(r0,m)|0,I=I+Math.imul(r0,R$)|0,v=v+Math.imul(m0,P$)|0,s0=s0+Math.imul(m0,O)|0,s0=s0+Math.imul(a0,P$)|0,I=I+Math.imul(a0,O)|0;var _$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(_$>>>26)|0,_$&=67108863,v=Math.imul(p,h),s0=Math.imul(p,F$),s0=s0+Math.imul(I$,h)|0,I=Math.imul(I$,F$),v=v+Math.imul(X$,A$)|0,s0=s0+Math.imul(X$,b)|0,s0=s0+Math.imul(w,A$)|0,I=I+Math.imul(w,b)|0,v=v+Math.imul(B,l)|0,s0=s0+Math.imul(B,W$)|0,s0=s0+Math.imul(U$,l)|0,I=I+Math.imul(U$,W$)|0,v=v+Math.imul(G$,E$)|0,s0=s0+Math.imul(G$,u)|0,s0=s0+Math.imul(x,E$)|0,I=I+Math.imul(x,u)|0,v=v+Math.imul(_,n)|0,s0=s0+Math.imul(_,D$)|0,s0=s0+Math.imul(Z$,n)|0,I=I+Math.imul(Z$,D$)|0,v=v+Math.imul(Q$,C$)|0,s0=s0+Math.imul(Q$,t)|0,s0=s0+Math.imul(g,C$)|0,I=I+Math.imul(g,t)|0,v=v+Math.imul(j,m)|0,s0=s0+Math.imul(j,R$)|0,s0=s0+Math.imul($$,m)|0,I=I+Math.imul($$,R$)|0,v=v+Math.imul(e0,P$)|0,s0=s0+Math.imul(e0,O)|0,s0=s0+Math.imul(r0,P$)|0,I=I+Math.imul(r0,O)|0,v=v+Math.imul(m0,e)|0,s0=s0+Math.imul(m0,M$)|0,s0=s0+Math.imul(a0,e)|0,I=I+Math.imul(a0,M$)|0;var N$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(N$>>>26)|0,N$&=67108863,v=Math.imul(O$,h),s0=Math.imul(O$,F$),s0=s0+Math.imul(c,h)|0,I=Math.imul(c,F$),v=v+Math.imul(p,A$)|0,s0=s0+Math.imul(p,b)|0,s0=s0+Math.imul(I$,A$)|0,I=I+Math.imul(I$,b)|0,v=v+Math.imul(X$,l)|0,s0=s0+Math.imul(X$,W$)|0,s0=s0+Math.imul(w,l)|0,I=I+Math.imul(w,W$)|0,v=v+Math.imul(B,E$)|0,s0=s0+Math.imul(B,u)|0,s0=s0+Math.imul(U$,E$)|0,I=I+Math.imul(U$,u)|0,v=v+Math.imul(G$,n)|0,s0=s0+Math.imul(G$,D$)|0,s0=s0+Math.imul(x,n)|0,I=I+Math.imul(x,D$)|0,v=v+Math.imul(_,C$)|0,s0=s0+Math.imul(_,t)|0,s0=s0+Math.imul(Z$,C$)|0,I=I+Math.imul(Z$,t)|0,v=v+Math.imul(Q$,m)|0,s0=s0+Math.imul(Q$,R$)|0,s0=s0+Math.imul(g,m)|0,I=I+Math.imul(g,R$)|0,v=v+Math.imul(j,P$)|0,s0=s0+Math.imul(j,O)|0,s0=s0+Math.imul($$,P$)|0,I=I+Math.imul($$,O)|0,v=v+Math.imul(e0,e)|0,s0=s0+Math.imul(e0,M$)|0,s0=s0+Math.imul(r0,e)|0,I=I+Math.imul(r0,M$)|0,v=v+Math.imul(m0,S$)|0,s0=s0+Math.imul(m0,F)|0,s0=s0+Math.imul(a0,S$)|0,I=I+Math.imul(a0,F)|0;var $0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+($0>>>26)|0,$0&=67108863,v=Math.imul(O$,A$),s0=Math.imul(O$,b),s0=s0+Math.imul(c,A$)|0,I=Math.imul(c,b),v=v+Math.imul(p,l)|0,s0=s0+Math.imul(p,W$)|0,s0=s0+Math.imul(I$,l)|0,I=I+Math.imul(I$,W$)|0,v=v+Math.imul(X$,E$)|0,s0=s0+Math.imul(X$,u)|0,s0=s0+Math.imul(w,E$)|0,I=I+Math.imul(w,u)|0,v=v+Math.imul(B,n)|0,s0=s0+Math.imul(B,D$)|0,s0=s0+Math.imul(U$,n)|0,I=I+Math.imul(U$,D$)|0,v=v+Math.imul(G$,C$)|0,s0=s0+Math.imul(G$,t)|0,s0=s0+Math.imul(x,C$)|0,I=I+Math.imul(x,t)|0,v=v+Math.imul(_,m)|0,s0=s0+Math.imul(_,R$)|0,s0=s0+Math.imul(Z$,m)|0,I=I+Math.imul(Z$,R$)|0,v=v+Math.imul(Q$,P$)|0,s0=s0+Math.imul(Q$,O)|0,s0=s0+Math.imul(g,P$)|0,I=I+Math.imul(g,O)|0,v=v+Math.imul(j,e)|0,s0=s0+Math.imul(j,M$)|0,s0=s0+Math.imul($$,e)|0,I=I+Math.imul($$,M$)|0,v=v+Math.imul(e0,S$)|0,s0=s0+Math.imul(e0,F)|0,s0=s0+Math.imul(r0,S$)|0,I=I+Math.imul(r0,F)|0;var x$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(x$>>>26)|0,x$&=67108863,v=Math.imul(O$,l),s0=Math.imul(O$,W$),s0=s0+Math.imul(c,l)|0,I=Math.imul(c,W$),v=v+Math.imul(p,E$)|0,s0=s0+Math.imul(p,u)|0,s0=s0+Math.imul(I$,E$)|0,I=I+Math.imul(I$,u)|0,v=v+Math.imul(X$,n)|0,s0=s0+Math.imul(X$,D$)|0,s0=s0+Math.imul(w,n)|0,I=I+Math.imul(w,D$)|0,v=v+Math.imul(B,C$)|0,s0=s0+Math.imul(B,t)|0,s0=s0+Math.imul(U$,C$)|0,I=I+Math.imul(U$,t)|0,v=v+Math.imul(G$,m)|0,s0=s0+Math.imul(G$,R$)|0,s0=s0+Math.imul(x,m)|0,I=I+Math.imul(x,R$)|0,v=v+Math.imul(_,P$)|0,s0=s0+Math.imul(_,O)|0,s0=s0+Math.imul(Z$,P$)|0,I=I+Math.imul(Z$,O)|0,v=v+Math.imul(Q$,e)|0,s0=s0+Math.imul(Q$,M$)|0,s0=s0+Math.imul(g,e)|0,I=I+Math.imul(g,M$)|0,v=v+Math.imul(j,S$)|0,s0=s0+Math.imul(j,F)|0,s0=s0+Math.imul($$,S$)|0,I=I+Math.imul($$,F)|0;var Q0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Q0>>>26)|0,Q0&=67108863,v=Math.imul(O$,E$),s0=Math.imul(O$,u),s0=s0+Math.imul(c,E$)|0,I=Math.imul(c,u),v=v+Math.imul(p,n)|0,s0=s0+Math.imul(p,D$)|0,s0=s0+Math.imul(I$,n)|0,I=I+Math.imul(I$,D$)|0,v=v+Math.imul(X$,C$)|0,s0=s0+Math.imul(X$,t)|0,s0=s0+Math.imul(w,C$)|0,I=I+Math.imul(w,t)|0,v=v+Math.imul(B,m)|0,s0=s0+Math.imul(B,R$)|0,s0=s0+Math.imul(U$,m)|0,I=I+Math.imul(U$,R$)|0,v=v+Math.imul(G$,P$)|0,s0=s0+Math.imul(G$,O)|0,s0=s0+Math.imul(x,P$)|0,I=I+Math.imul(x,O)|0,v=v+Math.imul(_,e)|0,s0=s0+Math.imul(_,M$)|0,s0=s0+Math.imul(Z$,e)|0,I=I+Math.imul(Z$,M$)|0,v=v+Math.imul(Q$,S$)|0,s0=s0+Math.imul(Q$,F)|0,s0=s0+Math.imul(g,S$)|0,I=I+Math.imul(g,F)|0;var B$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(B$>>>26)|0,B$&=67108863,v=Math.imul(O$,n),s0=Math.imul(O$,D$),s0=s0+Math.imul(c,n)|0,I=Math.imul(c,D$),v=v+Math.imul(p,C$)|0,s0=s0+Math.imul(p,t)|0,s0=s0+Math.imul(I$,C$)|0,I=I+Math.imul(I$,t)|0,v=v+Math.imul(X$,m)|0,s0=s0+Math.imul(X$,R$)|0,s0=s0+Math.imul(w,m)|0,I=I+Math.imul(w,R$)|0,v=v+Math.imul(B,P$)|0,s0=s0+Math.imul(B,O)|0,s0=s0+Math.imul(U$,P$)|0,I=I+Math.imul(U$,O)|0,v=v+Math.imul(G$,e)|0,s0=s0+Math.imul(G$,M$)|0,s0=s0+Math.imul(x,e)|0,I=I+Math.imul(x,M$)|0,v=v+Math.imul(_,S$)|0,s0=s0+Math.imul(_,F)|0,s0=s0+Math.imul(Z$,S$)|0,I=I+Math.imul(Z$,F)|0;var Y0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Y0>>>26)|0,Y0&=67108863,v=Math.imul(O$,C$),s0=Math.imul(O$,t),s0=s0+Math.imul(c,C$)|0,I=Math.imul(c,t),v=v+Math.imul(p,m)|0,s0=s0+Math.imul(p,R$)|0,s0=s0+Math.imul(I$,m)|0,I=I+Math.imul(I$,R$)|0,v=v+Math.imul(X$,P$)|0,s0=s0+Math.imul(X$,O)|0,s0=s0+Math.imul(w,P$)|0,I=I+Math.imul(w,O)|0,v=v+Math.imul(B,e)|0,s0=s0+Math.imul(B,M$)|0,s0=s0+Math.imul(U$,e)|0,I=I+Math.imul(U$,M$)|0,v=v+Math.imul(G$,S$)|0,s0=s0+Math.imul(G$,F)|0,s0=s0+Math.imul(x,S$)|0,I=I+Math.imul(x,F)|0;var y$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(y$>>>26)|0,y$&=67108863,v=Math.imul(O$,m),s0=Math.imul(O$,R$),s0=s0+Math.imul(c,m)|0,I=Math.imul(c,R$),v=v+Math.imul(p,P$)|0,s0=s0+Math.imul(p,O)|0,s0=s0+Math.imul(I$,P$)|0,I=I+Math.imul(I$,O)|0,v=v+Math.imul(X$,e)|0,s0=s0+Math.imul(X$,M$)|0,s0=s0+Math.imul(w,e)|0,I=I+Math.imul(w,M$)|0,v=v+Math.imul(B,S$)|0,s0=s0+Math.imul(B,F)|0,s0=s0+Math.imul(U$,S$)|0,I=I+Math.imul(U$,F)|0;var Z0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Z0>>>26)|0,Z0&=67108863,v=Math.imul(O$,P$),s0=Math.imul(O$,O),s0=s0+Math.imul(c,P$)|0,I=Math.imul(c,O),v=v+Math.imul(p,e)|0,s0=s0+Math.imul(p,M$)|0,s0=s0+Math.imul(I$,e)|0,I=I+Math.imul(I$,M$)|0,v=v+Math.imul(X$,S$)|0,s0=s0+Math.imul(X$,F)|0,s0=s0+Math.imul(w,S$)|0,I=I+Math.imul(w,F)|0;var w$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(w$>>>26)|0,w$&=67108863,v=Math.imul(O$,e),s0=Math.imul(O$,M$),s0=s0+Math.imul(c,e)|0,I=Math.imul(c,M$),v=v+Math.imul(p,S$)|0,s0=s0+Math.imul(p,F)|0,s0=s0+Math.imul(I$,S$)|0,I=I+Math.imul(I$,F)|0;var G0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(G0>>>26)|0,G0&=67108863,v=Math.imul(O$,S$),s0=Math.imul(O$,F),s0=s0+Math.imul(c,S$)|0,I=Math.imul(c,F);var p$=(n0+v|0)+((s0&8191)<<13)|0;return n0=(I+(s0>>>13)|0)+(p$>>>26)|0,p$&=67108863,S[0]=v$,S[1]=r,S[2]=q$,S[3]=i,S[4]=j$,S[5]=k$,S[6]=g$,S[7]=_$,S[8]=N$,S[9]=$0,S[10]=x$,S[11]=Q0,S[12]=B$,S[13]=Y0,S[14]=y$,S[15]=Z0,S[16]=w$,S[17]=G0,S[18]=p$,n0!==0&&(S[19]=n0,o0.length++),o0};Math.imul||(p0=E);function T(l0,z,o0){o0.negative=z.negative^l0.negative,o0.length=l0.length+z.length;for(var M=0,u0=0,S=0;S>>26)|0,u0+=n0>>>26,n0&=67108863}o0.words[S]=v,M=n0,n0=u0}return M!==0?o0.words[S]=M:o0.length--,o0.strip()}function f0(l0,z,o0){var M=new D;return M.mulp(l0,z,o0)}Z.prototype.mulTo=function(l0,z){var o0,M=this.length+l0.length;return this.length===10&&l0.length===10?o0=p0(this,l0,z):M<63?o0=E(this,l0,z):M<1024?o0=T(this,l0,z):o0=f0(this,l0,z),o0};function D(l0,z){this.x=l0,this.y=z}D.prototype.makeRBT=function(l0){for(var z=new Array(l0),o0=Z.prototype._countBits(l0)-1,M=0;M>=1;return M},D.prototype.permute=function(l0,z,o0,M,u0,S){for(var n0=0;n0>>1)u0++;return 1<>>13,o0[2*S+1]=u0&8191,u0=u0>>>13;for(S=2*z;S>=26,z+=M/67108864|0,z+=u0>>>26,this.words[o0]=u0&67108863}return z!==0&&(this.words[o0]=z,this.length++),this},Z.prototype.muln=function(l0){return this.clone().imuln(l0)},Z.prototype.sqr=function(){return this.mul(this)},Z.prototype.isqr=function(){return this.imul(this.clone())},Z.prototype.pow=function(l0){var z=w0(l0);if(z.length===0)return new Z(1);for(var o0=this,M=0;M=0);var z=l0%26,o0=(l0-z)/26,M=67108863>>>26-z<<26-z,u0;if(z!==0){var S=0;for(u0=0;u0>>26-z}S&&(this.words[u0]=S,this.length++)}if(o0!==0){for(u0=this.length-1;u0>=0;u0--)this.words[u0+o0]=this.words[u0];for(u0=0;u0=0);var M;z?M=(z-z%26)/26:M=0;var u0=l0%26,S=Math.min((l0-u0)/26,this.length),n0=67108863^67108863>>>u0<S)for(this.length-=S,s0=0;s0=0&&(I!==0||s0>=M);s0--){var t0=this.words[s0]|0;this.words[s0]=I<<26-u0|t0>>>u0,I=t0&n0}return v&&I!==0&&(v.words[v.length++]=I),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},Z.prototype.ishrn=function(l0,z,o0){return Y(this.negative===0),this.iushrn(l0,z,o0)},Z.prototype.shln=function(l0){return this.clone().ishln(l0)},Z.prototype.ushln=function(l0){return this.clone().iushln(l0)},Z.prototype.shrn=function(l0){return this.clone().ishrn(l0)},Z.prototype.ushrn=function(l0){return this.clone().iushrn(l0)},Z.prototype.testn=function(l0){Y(typeof l0=="number"&&l0>=0);var z=l0%26,o0=(l0-z)/26,M=1<=0);var z=l0%26,o0=(l0-z)/26;if(Y(this.negative===0,"imaskn works only with positive numbers"),this.length<=o0)return this;if(z!==0&&o0++,this.length=Math.min(o0,this.length),z!==0){var M=67108863^67108863>>>z<=67108864;z++)this.words[z]-=67108864,z===this.length-1?this.words[z+1]=1:this.words[z+1]++;return this.length=Math.max(this.length,z+1),this},Z.prototype.isubn=function(l0){if(Y(typeof l0=="number"),Y(l0<67108864),l0<0)return this.iaddn(-l0);if(this.negative!==0)return this.negative=0,this.iaddn(l0),this.negative=1,this;if(this.words[0]-=l0,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var z=0;z>26)-(v/67108864|0),this.words[u0+o0]=S&67108863}for(;u0>26,this.words[u0+o0]=S&67108863;if(n0===0)return this.strip();for(Y(n0===-1),n0=0,u0=0;u0>26,this.words[u0]=S&67108863;return this.negative=1,this.strip()},Z.prototype._wordDiv=function(l0,z){var o0=this.length-l0.length,M=this.clone(),u0=l0,S=u0.words[u0.length-1]|0,n0=this._countBits(S);o0=26-n0,o0!==0&&(u0=u0.ushln(o0),M.iushln(o0),S=u0.words[u0.length-1]|0);var v=M.length-u0.length,s0;if(z!=="mod"){s0=new Z(null),s0.length=v+1,s0.words=new Array(s0.length);for(var I=0;I=0;m0--){var a0=(M.words[u0.length+m0]|0)*67108864+(M.words[u0.length+m0-1]|0);for(a0=Math.min(a0/S|0,67108863),M._ishlnsubmul(u0,a0,m0);M.negative!==0;)a0--,M.negative=0,M._ishlnsubmul(u0,1,m0),M.isZero()||(M.negative^=1);s0&&(s0.words[m0]=a0)}return s0&&s0.strip(),M.strip(),z!=="div"&&o0!==0&&M.iushrn(o0),{div:s0||null,mod:M}},Z.prototype.divmod=function(l0,z,o0){if(Y(!l0.isZero()),this.isZero())return{div:new Z(0),mod:new Z(0)};var M,u0,S;return this.negative!==0&&l0.negative===0?(S=this.neg().divmod(l0,z),z!=="mod"&&(M=S.div.neg()),z!=="div"&&(u0=S.mod.neg(),o0&&u0.negative!==0&&u0.iadd(l0)),{div:M,mod:u0}):this.negative===0&&l0.negative!==0?(S=this.divmod(l0.neg(),z),z!=="mod"&&(M=S.div.neg()),{div:M,mod:S.mod}):(this.negative&l0.negative)!==0?(S=this.neg().divmod(l0.neg(),z),z!=="div"&&(u0=S.mod.neg(),o0&&u0.negative!==0&&u0.isub(l0)),{div:S.div,mod:u0}):l0.length>this.length||this.cmp(l0)<0?{div:new Z(0),mod:this}:l0.length===1?z==="div"?{div:this.divn(l0.words[0]),mod:null}:z==="mod"?{div:null,mod:new Z(this.modn(l0.words[0]))}:{div:this.divn(l0.words[0]),mod:new Z(this.modn(l0.words[0]))}:this._wordDiv(l0,z)},Z.prototype.div=function(l0){return this.divmod(l0,"div",!1).div},Z.prototype.mod=function(l0){return this.divmod(l0,"mod",!1).mod},Z.prototype.umod=function(l0){return this.divmod(l0,"mod",!0).mod},Z.prototype.divRound=function(l0){var z=this.divmod(l0);if(z.mod.isZero())return z.div;var o0=z.div.negative!==0?z.mod.isub(l0):z.mod,M=l0.ushrn(1),u0=l0.andln(1),S=o0.cmp(M);return S<0||u0===1&&S===0?z.div:z.div.negative!==0?z.div.isubn(1):z.div.iaddn(1)},Z.prototype.modn=function(l0){Y(l0<=67108863);for(var z=(1<<26)%l0,o0=0,M=this.length-1;M>=0;M--)o0=(z*o0+(this.words[M]|0))%l0;return o0},Z.prototype.idivn=function(l0){Y(l0<=67108863);for(var z=0,o0=this.length-1;o0>=0;o0--){var M=(this.words[o0]|0)+z*67108864;this.words[o0]=M/l0|0,z=M%l0}return this.strip()},Z.prototype.divn=function(l0){return this.clone().idivn(l0)},Z.prototype.egcd=function(l0){Y(l0.negative===0),Y(!l0.isZero());var z=this,o0=l0.clone();z.negative!==0?z=z.umod(l0):z=z.clone();for(var M=new Z(1),u0=new Z(0),S=new Z(0),n0=new Z(1),v=0;z.isEven()&&o0.isEven();)z.iushrn(1),o0.iushrn(1),++v;for(var s0=o0.clone(),I=z.clone();!z.isZero();){for(var t0=0,m0=1;(z.words[0]&m0)===0&&t0<26;++t0,m0<<=1);if(t0>0)for(z.iushrn(t0);t0-- >0;)(M.isOdd()||u0.isOdd())&&(M.iadd(s0),u0.isub(I)),M.iushrn(1),u0.iushrn(1);for(var a0=0,q=1;(o0.words[0]&q)===0&&a0<26;++a0,q<<=1);if(a0>0)for(o0.iushrn(a0);a0-- >0;)(S.isOdd()||n0.isOdd())&&(S.iadd(s0),n0.isub(I)),S.iushrn(1),n0.iushrn(1);z.cmp(o0)>=0?(z.isub(o0),M.isub(S),u0.isub(n0)):(o0.isub(z),S.isub(M),n0.isub(u0))}return{a:S,b:n0,gcd:o0.iushln(v)}},Z.prototype._invmp=function(l0){Y(l0.negative===0),Y(!l0.isZero());var z=this,o0=l0.clone();z.negative!==0?z=z.umod(l0):z=z.clone();for(var M=new Z(1),u0=new Z(0),S=o0.clone();z.cmpn(1)>0&&o0.cmpn(1)>0;){for(var n0=0,v=1;(z.words[0]&v)===0&&n0<26;++n0,v<<=1);if(n0>0)for(z.iushrn(n0);n0-- >0;)M.isOdd()&&M.iadd(S),M.iushrn(1);for(var s0=0,I=1;(o0.words[0]&I)===0&&s0<26;++s0,I<<=1);if(s0>0)for(o0.iushrn(s0);s0-- >0;)u0.isOdd()&&u0.iadd(S),u0.iushrn(1);z.cmp(o0)>=0?(z.isub(o0),M.isub(u0)):(o0.isub(z),u0.isub(M))}var t0;return z.cmpn(1)===0?t0=M:t0=u0,t0.cmpn(0)<0&&t0.iadd(l0),t0},Z.prototype.gcd=function(l0){if(this.isZero())return l0.abs();if(l0.isZero())return this.abs();var z=this.clone(),o0=l0.clone();z.negative=0,o0.negative=0;for(var M=0;z.isEven()&&o0.isEven();M++)z.iushrn(1),o0.iushrn(1);do{for(;z.isEven();)z.iushrn(1);for(;o0.isEven();)o0.iushrn(1);var u0=z.cmp(o0);if(u0<0){var S=z;z=o0,o0=S}else if(u0===0||o0.cmpn(1)===0)break;z.isub(o0)}while(!0);return o0.iushln(M)},Z.prototype.invm=function(l0){return this.egcd(l0).a.umod(l0)},Z.prototype.isEven=function(){return(this.words[0]&1)===0},Z.prototype.isOdd=function(){return(this.words[0]&1)===1},Z.prototype.andln=function(l0){return this.words[0]&l0},Z.prototype.bincn=function(l0){Y(typeof l0=="number");var z=l0%26,o0=(l0-z)/26,M=1<>>26,n0&=67108863,this.words[S]=n0}return u0!==0&&(this.words[S]=u0,this.length++),this},Z.prototype.isZero=function(){return this.length===1&&this.words[0]===0},Z.prototype.cmpn=function(l0){var z=l0<0;if(this.negative!==0&&!z)return-1;if(this.negative===0&&z)return 1;this.strip();var o0;if(this.length>1)o0=1;else{z&&(l0=-l0),Y(l0<=67108863,"Number is too big");var M=this.words[0]|0;o0=M===l0?0:Ml0.length)return 1;if(this.length=0;o0--){var M=this.words[o0]|0,u0=l0.words[o0]|0;if(M!==u0){Mu0&&(z=1);break}}return z},Z.prototype.gtn=function(l0){return this.cmpn(l0)===1},Z.prototype.gt=function(l0){return this.cmp(l0)===1},Z.prototype.gten=function(l0){return this.cmpn(l0)>=0},Z.prototype.gte=function(l0){return this.cmp(l0)>=0},Z.prototype.ltn=function(l0){return this.cmpn(l0)===-1},Z.prototype.lt=function(l0){return this.cmp(l0)===-1},Z.prototype.lten=function(l0){return this.cmpn(l0)<=0},Z.prototype.lte=function(l0){return this.cmp(l0)<=0},Z.prototype.eqn=function(l0){return this.cmpn(l0)===0},Z.prototype.eq=function(l0){return this.cmp(l0)===0},Z.red=function(l0){return new b0(l0)},Z.prototype.toRed=function(l0){return Y(!this.red,"Already a number in reduction context"),Y(this.negative===0,"red works only with positives"),l0.convertTo(this)._forceRed(l0)},Z.prototype.fromRed=function(){return Y(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},Z.prototype._forceRed=function(l0){return this.red=l0,this},Z.prototype.forceRed=function(l0){return Y(!this.red,"Already a number in reduction context"),this._forceRed(l0)},Z.prototype.redAdd=function(l0){return Y(this.red,"redAdd works only with red numbers"),this.red.add(this,l0)},Z.prototype.redIAdd=function(l0){return Y(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,l0)},Z.prototype.redSub=function(l0){return Y(this.red,"redSub works only with red numbers"),this.red.sub(this,l0)},Z.prototype.redISub=function(l0){return Y(this.red,"redISub works only with red numbers"),this.red.isub(this,l0)},Z.prototype.redShl=function(l0){return Y(this.red,"redShl works only with red numbers"),this.red.shl(this,l0)},Z.prototype.redMul=function(l0){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,l0),this.red.mul(this,l0)},Z.prototype.redIMul=function(l0){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,l0),this.red.imul(this,l0)},Z.prototype.redSqr=function(){return Y(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},Z.prototype.redISqr=function(){return Y(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},Z.prototype.redSqrt=function(){return Y(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},Z.prototype.redInvm=function(){return Y(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},Z.prototype.redNeg=function(){return Y(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},Z.prototype.redPow=function(l0){return Y(this.red&&!l0.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,l0)};var c0={k256:null,p224:null,p192:null,p25519:null};function C(l0,z){this.name=l0,this.p=new Z(z,16),this.n=this.p.bitLength(),this.k=new Z(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}C.prototype._tmp=function(){var l0=new Z(null);return l0.words=new Array(Math.ceil(this.n/13)),l0},C.prototype.ireduce=function(l0){var z=l0,o0;do this.split(z,this.tmp),z=this.imulK(z),z=z.iadd(this.tmp),o0=z.bitLength();while(o0>this.n);var M=o00?z.isub(this.p):z.strip!==void 0?z.strip():z._strip(),z},C.prototype.split=function(l0,z){l0.iushrn(this.n,0,z)},C.prototype.imulK=function(l0){return l0.imul(this.k)};function h0(){C.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}$(h0,C),h0.prototype.split=function(l0,z){for(var o0=4194303,M=Math.min(l0.length,9),u0=0;u0>>22,S=n0}S>>>=22,l0.words[u0-10]=S,S===0&&l0.length>10?l0.length-=10:l0.length-=9},h0.prototype.imulK=function(l0){l0.words[l0.length]=0,l0.words[l0.length+1]=0,l0.length+=2;for(var z=0,o0=0;o0>>=26,l0.words[o0]=u0,z=M}return z!==0&&(l0.words[l0.length++]=z),l0},Z._prime=function(l0){if(c0[l0])return c0[l0];var z;if(l0==="k256")z=new h0;else if(l0==="p224")z=new L;else if(l0==="p192")z=new d0;else if(l0==="p25519")z=new R;else throw new Error("Unknown prime "+l0);return c0[l0]=z,z};function b0(l0){if(typeof l0=="string"){var z=Z._prime(l0);this.m=z.p,this.prime=z}else Y(l0.gtn(1),"modulus must be greater than 1"),this.m=l0,this.prime=null}b0.prototype._verify1=function(l0){Y(l0.negative===0,"red works only with positives"),Y(l0.red,"red works only with red numbers")},b0.prototype._verify2=function(l0,z){Y((l0.negative|z.negative)===0,"red works only with positives"),Y(l0.red&&l0.red===z.red,"red works only with red numbers")},b0.prototype.imod=function(l0){return this.prime?this.prime.ireduce(l0)._forceRed(this):l0.umod(this.m)._forceRed(this)},b0.prototype.neg=function(l0){return l0.isZero()?l0.clone():this.m.sub(l0)._forceRed(this)},b0.prototype.add=function(l0,z){this._verify2(l0,z);var o0=l0.add(z);return o0.cmp(this.m)>=0&&o0.isub(this.m),o0._forceRed(this)},b0.prototype.iadd=function(l0,z){this._verify2(l0,z);var o0=l0.iadd(z);return o0.cmp(this.m)>=0&&o0.isub(this.m),o0},b0.prototype.sub=function(l0,z){this._verify2(l0,z);var o0=l0.sub(z);return o0.cmpn(0)<0&&o0.iadd(this.m),o0._forceRed(this)},b0.prototype.isub=function(l0,z){this._verify2(l0,z);var o0=l0.isub(z);return o0.cmpn(0)<0&&o0.iadd(this.m),o0},b0.prototype.shl=function(l0,z){return this._verify1(l0),this.imod(l0.ushln(z))},b0.prototype.imul=function(l0,z){return this._verify2(l0,z),this.imod(l0.imul(z))},b0.prototype.mul=function(l0,z){return this._verify2(l0,z),this.imod(l0.mul(z))},b0.prototype.isqr=function(l0){return this.imul(l0,l0.clone())},b0.prototype.sqr=function(l0){return this.mul(l0,l0)},b0.prototype.sqrt=function(l0){if(l0.isZero())return l0.clone();var z=this.m.andln(3);if(Y(z%2===1),z===3){var o0=this.m.add(new Z(1)).iushrn(2);return this.pow(l0,o0)}for(var M=this.m.subn(1),u0=0;!M.isZero()&&M.andln(1)===0;)u0++,M.iushrn(1);Y(!M.isZero());var S=new Z(1).toRed(this),n0=S.redNeg(),v=this.m.subn(1).iushrn(1),s0=this.m.bitLength();for(s0=new Z(2*s0*s0).toRed(this);this.pow(s0,v).cmp(n0)!==0;)s0.redIAdd(n0);for(var I=this.pow(s0,M),t0=this.pow(l0,M.addn(1).iushrn(1)),m0=this.pow(l0,M),a0=u0;m0.cmp(S)!==0;){for(var q=m0,e0=0;q.cmp(S)!==0;e0++)q=q.redSqr();Y(e0=0;u0--){for(var I=z.words[u0],t0=s0-1;t0>=0;t0--){var m0=I>>t0&1;if(S!==M[0]&&(S=this.sqr(S)),m0===0&&n0===0){v=0;continue}n0<<=1,n0|=m0,v++,!(v!==o0&&(u0!==0||t0!==0))&&(S=this.mul(S,M[n0]),v=0,n0=0)}s0=26}return S},b0.prototype.convertTo=function(l0){var z=l0.umod(this.m);return z===l0?z.clone():z},b0.prototype.convertFrom=function(l0){var z=l0.clone();return z.red=null,z},Z.mont=function(l0){return new P(l0)};function P(l0){b0.call(this,l0),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new Z(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}$(P,b0),P.prototype.convertTo=function(l0){return this.imod(l0.ushln(this.shift))},P.prototype.convertFrom=function(l0){var z=this.imod(l0.mul(this.rinv));return z.red=null,z},P.prototype.imul=function(l0,z){if(l0.isZero()||z.isZero())return l0.words[0]=0,l0.length=1,l0;var o0=l0.imul(z),M=o0.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u0=o0.isub(M).iushrn(this.shift),S=u0;return u0.cmp(this.m)>=0?S=u0.isub(this.m):u0.cmpn(0)<0&&(S=u0.iadd(this.m)),S._forceRed(this)},P.prototype.mul=function(l0,z){if(l0.isZero()||z.isZero())return new Z(0)._forceRed(this);var o0=l0.mul(z),M=o0.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u0=o0.isub(M).iushrn(this.shift),S=u0;return u0.cmp(this.m)>=0?S=u0.isub(this.m):u0.cmpn(0)<0&&(S=u0.iadd(this.m)),S._forceRed(this)},P.prototype.invm=function(l0){var z=this.imod(l0._invmp(this.m).mul(this.r2));return z._forceRed(this)}})(typeof K>"u"||K,X)}}),lY=$Q({"node_modules/create-ecdh/browser.js"(X,K){var x0=TY(),G=bY();K.exports=function(Q){return new $(Q)};var Y={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};Y.p224=Y.secp224r1,Y.p256=Y.secp256r1=Y.prime256v1,Y.p192=Y.secp192r1=Y.prime192v1,Y.p384=Y.secp384r1,Y.p521=Y.secp521r1;function $(Q){this.curveType=Y[Q],this.curveType||(this.curveType={name:Q}),this.curve=new x0.ec(this.curveType.name),this.keys=void 0}$.prototype.generateKeys=function(Q,U){return this.keys=this.curve.genKeyPair(),this.getPublicKey(Q,U)},$.prototype.computeSecret=function(Q,U,V){U=U||"utf8",c$.isBuffer(Q)||(Q=new c$(Q,U));var B0=this.curve.keyFromPublic(Q).getPublic(),H=B0.mul(this.keys.getPrivate()).getX();return Z(H,V,this.curveType.byteLength)},$.prototype.getPublicKey=function(Q,U){var V=this.keys.getPublic(U==="compressed",!0);return U==="hybrid"&&(V[V.length-1]%2?V[0]=7:V[0]=6),Z(V,Q)},$.prototype.getPrivateKey=function(Q){return Z(this.keys.getPrivate(),Q)},$.prototype.setPublicKey=function(Q,U){return U=U||"utf8",c$.isBuffer(Q)||(Q=new c$(Q,U)),this.keys._importPublic(Q),this},$.prototype.setPrivateKey=function(Q,U){U=U||"utf8",c$.isBuffer(Q)||(Q=new c$(Q,U));var V=new G(Q);return V=V.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(V),this};function Z(Q,U,V){Array.isArray(Q)||(Q=Q.toArray());var B0=new c$(Q);if(V&&B0.length0?l0:z},Z.min=function(l0,z){return l0.cmp(z)<0?l0:z},Z.prototype._init=function(l0,z,o0){if(typeof l0=="number")return this._initNumber(l0,z,o0);if(typeof l0=="object")return this._initArray(l0,z,o0);z==="hex"&&(z=16),Y(z===(z|0)&&z>=2&&z<=36),l0=l0.toString().replace(/\s+/g,"");var M=0;l0[0]==="-"&&(M++,this.negative=1),M=0;M-=3)S=l0[M]|l0[M-1]<<8|l0[M-2]<<16,this.words[u0]|=S<>>26-n0&67108863,n0+=24,n0>=26&&(n0-=26,u0++);else if(o0==="le")for(M=0,u0=0;M>>26-n0&67108863,n0+=24,n0>=26&&(n0-=26,u0++);return this.strip()};function U(l0,z){var o0=l0.charCodeAt(z);return o0>=65&&o0<=70?o0-55:o0>=97&&o0<=102?o0-87:o0-48&15}function V(l0,z,o0){var M=U(l0,o0);return o0-1>=z&&(M|=U(l0,o0-1)<<4),M}Z.prototype._parseHex=function(l0,z,o0){this.length=Math.ceil((l0.length-z)/6),this.words=new Array(this.length);for(var M=0;M=z;M-=2)n0=V(l0,z,M)<=18?(u0-=18,S+=1,this.words[S]|=n0>>>26):u0+=8;else{var v=l0.length-z;for(M=v%2===0?z+1:z;M=18?(u0-=18,S+=1,this.words[S]|=n0>>>26):u0+=8}this.strip()};function B0(l0,z,o0,M){for(var u0=0,S=Math.min(l0.length,o0),n0=z;n0=49?u0+=v-49+10:v>=17?u0+=v-17+10:u0+=v}return u0}Z.prototype._parseBase=function(l0,z,o0){this.words=[0],this.length=1;for(var M=0,u0=1;u0<=67108863;u0*=z)M++;M--,u0=u0/z|0;for(var S=l0.length-o0,n0=S%M,v=Math.min(S,S-n0)+o0,s0=0,I=o0;I1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},Z.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},Z.prototype.inspect=function(){return(this.red?""};var H=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y0=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],W=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];Z.prototype.toString=function(l0,z){l0=l0||10,z=z|0||1;var o0;if(l0===16||l0==="hex"){o0="";for(var M=0,u0=0,S=0;S>>24-M&16777215,u0!==0||S!==this.length-1?o0=H[6-v.length]+v+o0:o0=v+o0,M+=2,M>=26&&(M-=26,S--)}for(u0!==0&&(o0=u0.toString(16)+o0);o0.length%z!==0;)o0="0"+o0;return this.negative!==0&&(o0="-"+o0),o0}if(l0===(l0|0)&&l0>=2&&l0<=36){var s0=y0[l0],I=W[l0];o0="";var t0=this.clone();for(t0.negative=0;!t0.isZero();){var m0=t0.modn(I).toString(l0);t0=t0.idivn(I),t0.isZero()?o0=m0+o0:o0=H[s0-m0.length]+m0+o0}for(this.isZero()&&(o0="0"+o0);o0.length%z!==0;)o0="0"+o0;return this.negative!==0&&(o0="-"+o0),o0}Y(!1,"Base should be between 2 and 36")},Z.prototype.toNumber=function(){var l0=this.words[0];return this.length===2?l0+=this.words[1]*67108864:this.length===3&&this.words[2]===1?l0+=4503599627370496+this.words[1]*67108864:this.length>2&&Y(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-l0:l0},Z.prototype.toJSON=function(){return this.toString(16)},Z.prototype.toBuffer=function(l0,z){return Y(typeof Q<"u"),this.toArrayLike(Q,l0,z)},Z.prototype.toArray=function(l0,z){return this.toArrayLike(Array,l0,z)},Z.prototype.toArrayLike=function(l0,z,o0){var M=this.byteLength(),u0=o0||Math.max(1,M);Y(M<=u0,"byte array longer than desired length"),Y(u0>0,"Requested array length <= 0"),this.strip();var S=z==="le",n0=new l0(u0),v,s0,I=this.clone();if(S){for(s0=0;!I.isZero();s0++)v=I.andln(255),I.iushrn(8),n0[s0]=v;for(;s0=4096&&(o0+=13,z>>>=13),z>=64&&(o0+=7,z>>>=7),z>=8&&(o0+=4,z>>>=4),z>=2&&(o0+=2,z>>>=2),o0+z},Z.prototype._zeroBits=function(l0){if(l0===0)return 26;var z=l0,o0=0;return(z&8191)===0&&(o0+=13,z>>>=13),(z&127)===0&&(o0+=7,z>>>=7),(z&15)===0&&(o0+=4,z>>>=4),(z&3)===0&&(o0+=2,z>>>=2),(z&1)===0&&o0++,o0},Z.prototype.bitLength=function(){var l0=this.words[this.length-1],z=this._countBits(l0);return(this.length-1)*26+z};function w0(l0){for(var z=new Array(l0.bitLength()),o0=0;o0>>u0}return z}Z.prototype.zeroBits=function(){if(this.isZero())return 0;for(var l0=0,z=0;zl0.length?this.clone().ior(l0):l0.clone().ior(this)},Z.prototype.uor=function(l0){return this.length>l0.length?this.clone().iuor(l0):l0.clone().iuor(this)},Z.prototype.iuand=function(l0){var z;this.length>l0.length?z=l0:z=this;for(var o0=0;o0l0.length?this.clone().iand(l0):l0.clone().iand(this)},Z.prototype.uand=function(l0){return this.length>l0.length?this.clone().iuand(l0):l0.clone().iuand(this)},Z.prototype.iuxor=function(l0){var z,o0;this.length>l0.length?(z=this,o0=l0):(z=l0,o0=this);for(var M=0;Ml0.length?this.clone().ixor(l0):l0.clone().ixor(this)},Z.prototype.uxor=function(l0){return this.length>l0.length?this.clone().iuxor(l0):l0.clone().iuxor(this)},Z.prototype.inotn=function(l0){Y(typeof l0=="number"&&l0>=0);var z=Math.ceil(l0/26)|0,o0=l0%26;this._expand(z),o0>0&&z--;for(var M=0;M0&&(this.words[M]=~this.words[M]&67108863>>26-o0),this.strip()},Z.prototype.notn=function(l0){return this.clone().inotn(l0)},Z.prototype.setn=function(l0,z){Y(typeof l0=="number"&&l0>=0);var o0=l0/26|0,M=l0%26;return this._expand(o0+1),z?this.words[o0]=this.words[o0]|1<l0.length?(o0=this,M=l0):(o0=l0,M=this);for(var u0=0,S=0;S>>26;for(;u0!==0&&S>>26;if(this.length=o0.length,u0!==0)this.words[this.length]=u0,this.length++;else if(o0!==this)for(;Sl0.length?this.clone().iadd(l0):l0.clone().iadd(this)},Z.prototype.isub=function(l0){if(l0.negative!==0){l0.negative=0;var z=this.iadd(l0);return l0.negative=1,z._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(l0),this.negative=1,this._normSign();var o0=this.cmp(l0);if(o0===0)return this.negative=0,this.length=1,this.words[0]=0,this;var M,u0;o0>0?(M=this,u0=l0):(M=l0,u0=this);for(var S=0,n0=0;n0>26,this.words[n0]=z&67108863;for(;S!==0&&n0>26,this.words[n0]=z&67108863;if(S===0&&n0>>26,m0=s0&67108863,a0=Math.min(I,z.length-1),q=Math.max(0,I-l0.length+1);q<=a0;q++){var e0=I-q|0;u0=l0.words[e0]|0,S=z.words[q]|0,n0=u0*S+m0,t0+=n0/67108864|0,m0=n0&67108863}o0.words[I]=m0|0,s0=t0|0}return s0!==0?o0.words[I]=s0|0:o0.length--,o0.strip()}var p0=function(l0,z,o0){var M=l0.words,u0=z.words,S=o0.words,n0=0,v,s0,I,t0=M[0]|0,m0=t0&8191,a0=t0>>>13,q=M[1]|0,e0=q&8191,r0=q>>>13,i0=M[2]|0,j=i0&8191,$$=i0>>>13,k=M[3]|0,Q$=k&8191,g=k>>>13,Y$=M[4]|0,_=Y$&8191,Z$=Y$>>>13,N=M[5]|0,G$=N&8191,x=N>>>13,V$=M[6]|0,B=V$&8191,U$=V$>>>13,y=M[7]|0,X$=y&8191,w=y>>>13,K$=M[8]|0,p=K$&8191,I$=K$>>>13,f=M[9]|0,O$=f&8191,c=f>>>13,J$=u0[0]|0,h=J$&8191,F$=J$>>>13,d=u0[1]|0,A$=d&8191,b=d>>>13,H$=u0[2]|0,l=H$&8191,W$=H$>>>13,o=u0[3]|0,E$=o&8191,u=o>>>13,T$=u0[4]|0,n=T$&8191,D$=T$>>>13,s=u0[5]|0,C$=s&8191,t=s>>>13,L$=u0[6]|0,m=L$&8191,R$=L$>>>13,a=u0[7]|0,P$=a&8191,O=a>>>13,z$=u0[8]|0,e=z$&8191,M$=z$>>>13,J=u0[9]|0,S$=J&8191,F=J>>>13;o0.negative=l0.negative^z.negative,o0.length=19,v=Math.imul(m0,h),s0=Math.imul(m0,F$),s0=s0+Math.imul(a0,h)|0,I=Math.imul(a0,F$);var v$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(v$>>>26)|0,v$&=67108863,v=Math.imul(e0,h),s0=Math.imul(e0,F$),s0=s0+Math.imul(r0,h)|0,I=Math.imul(r0,F$),v=v+Math.imul(m0,A$)|0,s0=s0+Math.imul(m0,b)|0,s0=s0+Math.imul(a0,A$)|0,I=I+Math.imul(a0,b)|0;var r=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(r>>>26)|0,r&=67108863,v=Math.imul(j,h),s0=Math.imul(j,F$),s0=s0+Math.imul($$,h)|0,I=Math.imul($$,F$),v=v+Math.imul(e0,A$)|0,s0=s0+Math.imul(e0,b)|0,s0=s0+Math.imul(r0,A$)|0,I=I+Math.imul(r0,b)|0,v=v+Math.imul(m0,l)|0,s0=s0+Math.imul(m0,W$)|0,s0=s0+Math.imul(a0,l)|0,I=I+Math.imul(a0,W$)|0;var q$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(q$>>>26)|0,q$&=67108863,v=Math.imul(Q$,h),s0=Math.imul(Q$,F$),s0=s0+Math.imul(g,h)|0,I=Math.imul(g,F$),v=v+Math.imul(j,A$)|0,s0=s0+Math.imul(j,b)|0,s0=s0+Math.imul($$,A$)|0,I=I+Math.imul($$,b)|0,v=v+Math.imul(e0,l)|0,s0=s0+Math.imul(e0,W$)|0,s0=s0+Math.imul(r0,l)|0,I=I+Math.imul(r0,W$)|0,v=v+Math.imul(m0,E$)|0,s0=s0+Math.imul(m0,u)|0,s0=s0+Math.imul(a0,E$)|0,I=I+Math.imul(a0,u)|0;var i=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(i>>>26)|0,i&=67108863,v=Math.imul(_,h),s0=Math.imul(_,F$),s0=s0+Math.imul(Z$,h)|0,I=Math.imul(Z$,F$),v=v+Math.imul(Q$,A$)|0,s0=s0+Math.imul(Q$,b)|0,s0=s0+Math.imul(g,A$)|0,I=I+Math.imul(g,b)|0,v=v+Math.imul(j,l)|0,s0=s0+Math.imul(j,W$)|0,s0=s0+Math.imul($$,l)|0,I=I+Math.imul($$,W$)|0,v=v+Math.imul(e0,E$)|0,s0=s0+Math.imul(e0,u)|0,s0=s0+Math.imul(r0,E$)|0,I=I+Math.imul(r0,u)|0,v=v+Math.imul(m0,n)|0,s0=s0+Math.imul(m0,D$)|0,s0=s0+Math.imul(a0,n)|0,I=I+Math.imul(a0,D$)|0;var j$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(j$>>>26)|0,j$&=67108863,v=Math.imul(G$,h),s0=Math.imul(G$,F$),s0=s0+Math.imul(x,h)|0,I=Math.imul(x,F$),v=v+Math.imul(_,A$)|0,s0=s0+Math.imul(_,b)|0,s0=s0+Math.imul(Z$,A$)|0,I=I+Math.imul(Z$,b)|0,v=v+Math.imul(Q$,l)|0,s0=s0+Math.imul(Q$,W$)|0,s0=s0+Math.imul(g,l)|0,I=I+Math.imul(g,W$)|0,v=v+Math.imul(j,E$)|0,s0=s0+Math.imul(j,u)|0,s0=s0+Math.imul($$,E$)|0,I=I+Math.imul($$,u)|0,v=v+Math.imul(e0,n)|0,s0=s0+Math.imul(e0,D$)|0,s0=s0+Math.imul(r0,n)|0,I=I+Math.imul(r0,D$)|0,v=v+Math.imul(m0,C$)|0,s0=s0+Math.imul(m0,t)|0,s0=s0+Math.imul(a0,C$)|0,I=I+Math.imul(a0,t)|0;var k$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(k$>>>26)|0,k$&=67108863,v=Math.imul(B,h),s0=Math.imul(B,F$),s0=s0+Math.imul(U$,h)|0,I=Math.imul(U$,F$),v=v+Math.imul(G$,A$)|0,s0=s0+Math.imul(G$,b)|0,s0=s0+Math.imul(x,A$)|0,I=I+Math.imul(x,b)|0,v=v+Math.imul(_,l)|0,s0=s0+Math.imul(_,W$)|0,s0=s0+Math.imul(Z$,l)|0,I=I+Math.imul(Z$,W$)|0,v=v+Math.imul(Q$,E$)|0,s0=s0+Math.imul(Q$,u)|0,s0=s0+Math.imul(g,E$)|0,I=I+Math.imul(g,u)|0,v=v+Math.imul(j,n)|0,s0=s0+Math.imul(j,D$)|0,s0=s0+Math.imul($$,n)|0,I=I+Math.imul($$,D$)|0,v=v+Math.imul(e0,C$)|0,s0=s0+Math.imul(e0,t)|0,s0=s0+Math.imul(r0,C$)|0,I=I+Math.imul(r0,t)|0,v=v+Math.imul(m0,m)|0,s0=s0+Math.imul(m0,R$)|0,s0=s0+Math.imul(a0,m)|0,I=I+Math.imul(a0,R$)|0;var g$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(g$>>>26)|0,g$&=67108863,v=Math.imul(X$,h),s0=Math.imul(X$,F$),s0=s0+Math.imul(w,h)|0,I=Math.imul(w,F$),v=v+Math.imul(B,A$)|0,s0=s0+Math.imul(B,b)|0,s0=s0+Math.imul(U$,A$)|0,I=I+Math.imul(U$,b)|0,v=v+Math.imul(G$,l)|0,s0=s0+Math.imul(G$,W$)|0,s0=s0+Math.imul(x,l)|0,I=I+Math.imul(x,W$)|0,v=v+Math.imul(_,E$)|0,s0=s0+Math.imul(_,u)|0,s0=s0+Math.imul(Z$,E$)|0,I=I+Math.imul(Z$,u)|0,v=v+Math.imul(Q$,n)|0,s0=s0+Math.imul(Q$,D$)|0,s0=s0+Math.imul(g,n)|0,I=I+Math.imul(g,D$)|0,v=v+Math.imul(j,C$)|0,s0=s0+Math.imul(j,t)|0,s0=s0+Math.imul($$,C$)|0,I=I+Math.imul($$,t)|0,v=v+Math.imul(e0,m)|0,s0=s0+Math.imul(e0,R$)|0,s0=s0+Math.imul(r0,m)|0,I=I+Math.imul(r0,R$)|0,v=v+Math.imul(m0,P$)|0,s0=s0+Math.imul(m0,O)|0,s0=s0+Math.imul(a0,P$)|0,I=I+Math.imul(a0,O)|0;var _$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(_$>>>26)|0,_$&=67108863,v=Math.imul(p,h),s0=Math.imul(p,F$),s0=s0+Math.imul(I$,h)|0,I=Math.imul(I$,F$),v=v+Math.imul(X$,A$)|0,s0=s0+Math.imul(X$,b)|0,s0=s0+Math.imul(w,A$)|0,I=I+Math.imul(w,b)|0,v=v+Math.imul(B,l)|0,s0=s0+Math.imul(B,W$)|0,s0=s0+Math.imul(U$,l)|0,I=I+Math.imul(U$,W$)|0,v=v+Math.imul(G$,E$)|0,s0=s0+Math.imul(G$,u)|0,s0=s0+Math.imul(x,E$)|0,I=I+Math.imul(x,u)|0,v=v+Math.imul(_,n)|0,s0=s0+Math.imul(_,D$)|0,s0=s0+Math.imul(Z$,n)|0,I=I+Math.imul(Z$,D$)|0,v=v+Math.imul(Q$,C$)|0,s0=s0+Math.imul(Q$,t)|0,s0=s0+Math.imul(g,C$)|0,I=I+Math.imul(g,t)|0,v=v+Math.imul(j,m)|0,s0=s0+Math.imul(j,R$)|0,s0=s0+Math.imul($$,m)|0,I=I+Math.imul($$,R$)|0,v=v+Math.imul(e0,P$)|0,s0=s0+Math.imul(e0,O)|0,s0=s0+Math.imul(r0,P$)|0,I=I+Math.imul(r0,O)|0,v=v+Math.imul(m0,e)|0,s0=s0+Math.imul(m0,M$)|0,s0=s0+Math.imul(a0,e)|0,I=I+Math.imul(a0,M$)|0;var N$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(N$>>>26)|0,N$&=67108863,v=Math.imul(O$,h),s0=Math.imul(O$,F$),s0=s0+Math.imul(c,h)|0,I=Math.imul(c,F$),v=v+Math.imul(p,A$)|0,s0=s0+Math.imul(p,b)|0,s0=s0+Math.imul(I$,A$)|0,I=I+Math.imul(I$,b)|0,v=v+Math.imul(X$,l)|0,s0=s0+Math.imul(X$,W$)|0,s0=s0+Math.imul(w,l)|0,I=I+Math.imul(w,W$)|0,v=v+Math.imul(B,E$)|0,s0=s0+Math.imul(B,u)|0,s0=s0+Math.imul(U$,E$)|0,I=I+Math.imul(U$,u)|0,v=v+Math.imul(G$,n)|0,s0=s0+Math.imul(G$,D$)|0,s0=s0+Math.imul(x,n)|0,I=I+Math.imul(x,D$)|0,v=v+Math.imul(_,C$)|0,s0=s0+Math.imul(_,t)|0,s0=s0+Math.imul(Z$,C$)|0,I=I+Math.imul(Z$,t)|0,v=v+Math.imul(Q$,m)|0,s0=s0+Math.imul(Q$,R$)|0,s0=s0+Math.imul(g,m)|0,I=I+Math.imul(g,R$)|0,v=v+Math.imul(j,P$)|0,s0=s0+Math.imul(j,O)|0,s0=s0+Math.imul($$,P$)|0,I=I+Math.imul($$,O)|0,v=v+Math.imul(e0,e)|0,s0=s0+Math.imul(e0,M$)|0,s0=s0+Math.imul(r0,e)|0,I=I+Math.imul(r0,M$)|0,v=v+Math.imul(m0,S$)|0,s0=s0+Math.imul(m0,F)|0,s0=s0+Math.imul(a0,S$)|0,I=I+Math.imul(a0,F)|0;var $0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+($0>>>26)|0,$0&=67108863,v=Math.imul(O$,A$),s0=Math.imul(O$,b),s0=s0+Math.imul(c,A$)|0,I=Math.imul(c,b),v=v+Math.imul(p,l)|0,s0=s0+Math.imul(p,W$)|0,s0=s0+Math.imul(I$,l)|0,I=I+Math.imul(I$,W$)|0,v=v+Math.imul(X$,E$)|0,s0=s0+Math.imul(X$,u)|0,s0=s0+Math.imul(w,E$)|0,I=I+Math.imul(w,u)|0,v=v+Math.imul(B,n)|0,s0=s0+Math.imul(B,D$)|0,s0=s0+Math.imul(U$,n)|0,I=I+Math.imul(U$,D$)|0,v=v+Math.imul(G$,C$)|0,s0=s0+Math.imul(G$,t)|0,s0=s0+Math.imul(x,C$)|0,I=I+Math.imul(x,t)|0,v=v+Math.imul(_,m)|0,s0=s0+Math.imul(_,R$)|0,s0=s0+Math.imul(Z$,m)|0,I=I+Math.imul(Z$,R$)|0,v=v+Math.imul(Q$,P$)|0,s0=s0+Math.imul(Q$,O)|0,s0=s0+Math.imul(g,P$)|0,I=I+Math.imul(g,O)|0,v=v+Math.imul(j,e)|0,s0=s0+Math.imul(j,M$)|0,s0=s0+Math.imul($$,e)|0,I=I+Math.imul($$,M$)|0,v=v+Math.imul(e0,S$)|0,s0=s0+Math.imul(e0,F)|0,s0=s0+Math.imul(r0,S$)|0,I=I+Math.imul(r0,F)|0;var x$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(x$>>>26)|0,x$&=67108863,v=Math.imul(O$,l),s0=Math.imul(O$,W$),s0=s0+Math.imul(c,l)|0,I=Math.imul(c,W$),v=v+Math.imul(p,E$)|0,s0=s0+Math.imul(p,u)|0,s0=s0+Math.imul(I$,E$)|0,I=I+Math.imul(I$,u)|0,v=v+Math.imul(X$,n)|0,s0=s0+Math.imul(X$,D$)|0,s0=s0+Math.imul(w,n)|0,I=I+Math.imul(w,D$)|0,v=v+Math.imul(B,C$)|0,s0=s0+Math.imul(B,t)|0,s0=s0+Math.imul(U$,C$)|0,I=I+Math.imul(U$,t)|0,v=v+Math.imul(G$,m)|0,s0=s0+Math.imul(G$,R$)|0,s0=s0+Math.imul(x,m)|0,I=I+Math.imul(x,R$)|0,v=v+Math.imul(_,P$)|0,s0=s0+Math.imul(_,O)|0,s0=s0+Math.imul(Z$,P$)|0,I=I+Math.imul(Z$,O)|0,v=v+Math.imul(Q$,e)|0,s0=s0+Math.imul(Q$,M$)|0,s0=s0+Math.imul(g,e)|0,I=I+Math.imul(g,M$)|0,v=v+Math.imul(j,S$)|0,s0=s0+Math.imul(j,F)|0,s0=s0+Math.imul($$,S$)|0,I=I+Math.imul($$,F)|0;var Q0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Q0>>>26)|0,Q0&=67108863,v=Math.imul(O$,E$),s0=Math.imul(O$,u),s0=s0+Math.imul(c,E$)|0,I=Math.imul(c,u),v=v+Math.imul(p,n)|0,s0=s0+Math.imul(p,D$)|0,s0=s0+Math.imul(I$,n)|0,I=I+Math.imul(I$,D$)|0,v=v+Math.imul(X$,C$)|0,s0=s0+Math.imul(X$,t)|0,s0=s0+Math.imul(w,C$)|0,I=I+Math.imul(w,t)|0,v=v+Math.imul(B,m)|0,s0=s0+Math.imul(B,R$)|0,s0=s0+Math.imul(U$,m)|0,I=I+Math.imul(U$,R$)|0,v=v+Math.imul(G$,P$)|0,s0=s0+Math.imul(G$,O)|0,s0=s0+Math.imul(x,P$)|0,I=I+Math.imul(x,O)|0,v=v+Math.imul(_,e)|0,s0=s0+Math.imul(_,M$)|0,s0=s0+Math.imul(Z$,e)|0,I=I+Math.imul(Z$,M$)|0,v=v+Math.imul(Q$,S$)|0,s0=s0+Math.imul(Q$,F)|0,s0=s0+Math.imul(g,S$)|0,I=I+Math.imul(g,F)|0;var B$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(B$>>>26)|0,B$&=67108863,v=Math.imul(O$,n),s0=Math.imul(O$,D$),s0=s0+Math.imul(c,n)|0,I=Math.imul(c,D$),v=v+Math.imul(p,C$)|0,s0=s0+Math.imul(p,t)|0,s0=s0+Math.imul(I$,C$)|0,I=I+Math.imul(I$,t)|0,v=v+Math.imul(X$,m)|0,s0=s0+Math.imul(X$,R$)|0,s0=s0+Math.imul(w,m)|0,I=I+Math.imul(w,R$)|0,v=v+Math.imul(B,P$)|0,s0=s0+Math.imul(B,O)|0,s0=s0+Math.imul(U$,P$)|0,I=I+Math.imul(U$,O)|0,v=v+Math.imul(G$,e)|0,s0=s0+Math.imul(G$,M$)|0,s0=s0+Math.imul(x,e)|0,I=I+Math.imul(x,M$)|0,v=v+Math.imul(_,S$)|0,s0=s0+Math.imul(_,F)|0,s0=s0+Math.imul(Z$,S$)|0,I=I+Math.imul(Z$,F)|0;var Y0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Y0>>>26)|0,Y0&=67108863,v=Math.imul(O$,C$),s0=Math.imul(O$,t),s0=s0+Math.imul(c,C$)|0,I=Math.imul(c,t),v=v+Math.imul(p,m)|0,s0=s0+Math.imul(p,R$)|0,s0=s0+Math.imul(I$,m)|0,I=I+Math.imul(I$,R$)|0,v=v+Math.imul(X$,P$)|0,s0=s0+Math.imul(X$,O)|0,s0=s0+Math.imul(w,P$)|0,I=I+Math.imul(w,O)|0,v=v+Math.imul(B,e)|0,s0=s0+Math.imul(B,M$)|0,s0=s0+Math.imul(U$,e)|0,I=I+Math.imul(U$,M$)|0,v=v+Math.imul(G$,S$)|0,s0=s0+Math.imul(G$,F)|0,s0=s0+Math.imul(x,S$)|0,I=I+Math.imul(x,F)|0;var y$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(y$>>>26)|0,y$&=67108863,v=Math.imul(O$,m),s0=Math.imul(O$,R$),s0=s0+Math.imul(c,m)|0,I=Math.imul(c,R$),v=v+Math.imul(p,P$)|0,s0=s0+Math.imul(p,O)|0,s0=s0+Math.imul(I$,P$)|0,I=I+Math.imul(I$,O)|0,v=v+Math.imul(X$,e)|0,s0=s0+Math.imul(X$,M$)|0,s0=s0+Math.imul(w,e)|0,I=I+Math.imul(w,M$)|0,v=v+Math.imul(B,S$)|0,s0=s0+Math.imul(B,F)|0,s0=s0+Math.imul(U$,S$)|0,I=I+Math.imul(U$,F)|0;var Z0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Z0>>>26)|0,Z0&=67108863,v=Math.imul(O$,P$),s0=Math.imul(O$,O),s0=s0+Math.imul(c,P$)|0,I=Math.imul(c,O),v=v+Math.imul(p,e)|0,s0=s0+Math.imul(p,M$)|0,s0=s0+Math.imul(I$,e)|0,I=I+Math.imul(I$,M$)|0,v=v+Math.imul(X$,S$)|0,s0=s0+Math.imul(X$,F)|0,s0=s0+Math.imul(w,S$)|0,I=I+Math.imul(w,F)|0;var w$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(w$>>>26)|0,w$&=67108863,v=Math.imul(O$,e),s0=Math.imul(O$,M$),s0=s0+Math.imul(c,e)|0,I=Math.imul(c,M$),v=v+Math.imul(p,S$)|0,s0=s0+Math.imul(p,F)|0,s0=s0+Math.imul(I$,S$)|0,I=I+Math.imul(I$,F)|0;var G0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(G0>>>26)|0,G0&=67108863,v=Math.imul(O$,S$),s0=Math.imul(O$,F),s0=s0+Math.imul(c,S$)|0,I=Math.imul(c,F);var p$=(n0+v|0)+((s0&8191)<<13)|0;return n0=(I+(s0>>>13)|0)+(p$>>>26)|0,p$&=67108863,S[0]=v$,S[1]=r,S[2]=q$,S[3]=i,S[4]=j$,S[5]=k$,S[6]=g$,S[7]=_$,S[8]=N$,S[9]=$0,S[10]=x$,S[11]=Q0,S[12]=B$,S[13]=Y0,S[14]=y$,S[15]=Z0,S[16]=w$,S[17]=G0,S[18]=p$,n0!==0&&(S[19]=n0,o0.length++),o0};Math.imul||(p0=E);function T(l0,z,o0){o0.negative=z.negative^l0.negative,o0.length=l0.length+z.length;for(var M=0,u0=0,S=0;S>>26)|0,u0+=n0>>>26,n0&=67108863}o0.words[S]=v,M=n0,n0=u0}return M!==0?o0.words[S]=M:o0.length--,o0.strip()}function f0(l0,z,o0){var M=new D;return M.mulp(l0,z,o0)}Z.prototype.mulTo=function(l0,z){var o0,M=this.length+l0.length;return this.length===10&&l0.length===10?o0=p0(this,l0,z):M<63?o0=E(this,l0,z):M<1024?o0=T(this,l0,z):o0=f0(this,l0,z),o0};function D(l0,z){this.x=l0,this.y=z}D.prototype.makeRBT=function(l0){for(var z=new Array(l0),o0=Z.prototype._countBits(l0)-1,M=0;M>=1;return M},D.prototype.permute=function(l0,z,o0,M,u0,S){for(var n0=0;n0>>1)u0++;return 1<>>13,o0[2*S+1]=u0&8191,u0=u0>>>13;for(S=2*z;S>=26,z+=M/67108864|0,z+=u0>>>26,this.words[o0]=u0&67108863}return z!==0&&(this.words[o0]=z,this.length++),this},Z.prototype.muln=function(l0){return this.clone().imuln(l0)},Z.prototype.sqr=function(){return this.mul(this)},Z.prototype.isqr=function(){return this.imul(this.clone())},Z.prototype.pow=function(l0){var z=w0(l0);if(z.length===0)return new Z(1);for(var o0=this,M=0;M=0);var z=l0%26,o0=(l0-z)/26,M=67108863>>>26-z<<26-z,u0;if(z!==0){var S=0;for(u0=0;u0>>26-z}S&&(this.words[u0]=S,this.length++)}if(o0!==0){for(u0=this.length-1;u0>=0;u0--)this.words[u0+o0]=this.words[u0];for(u0=0;u0=0);var M;z?M=(z-z%26)/26:M=0;var u0=l0%26,S=Math.min((l0-u0)/26,this.length),n0=67108863^67108863>>>u0<S)for(this.length-=S,s0=0;s0=0&&(I!==0||s0>=M);s0--){var t0=this.words[s0]|0;this.words[s0]=I<<26-u0|t0>>>u0,I=t0&n0}return v&&I!==0&&(v.words[v.length++]=I),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},Z.prototype.ishrn=function(l0,z,o0){return Y(this.negative===0),this.iushrn(l0,z,o0)},Z.prototype.shln=function(l0){return this.clone().ishln(l0)},Z.prototype.ushln=function(l0){return this.clone().iushln(l0)},Z.prototype.shrn=function(l0){return this.clone().ishrn(l0)},Z.prototype.ushrn=function(l0){return this.clone().iushrn(l0)},Z.prototype.testn=function(l0){Y(typeof l0=="number"&&l0>=0);var z=l0%26,o0=(l0-z)/26,M=1<=0);var z=l0%26,o0=(l0-z)/26;if(Y(this.negative===0,"imaskn works only with positive numbers"),this.length<=o0)return this;if(z!==0&&o0++,this.length=Math.min(o0,this.length),z!==0){var M=67108863^67108863>>>z<=67108864;z++)this.words[z]-=67108864,z===this.length-1?this.words[z+1]=1:this.words[z+1]++;return this.length=Math.max(this.length,z+1),this},Z.prototype.isubn=function(l0){if(Y(typeof l0=="number"),Y(l0<67108864),l0<0)return this.iaddn(-l0);if(this.negative!==0)return this.negative=0,this.iaddn(l0),this.negative=1,this;if(this.words[0]-=l0,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var z=0;z>26)-(v/67108864|0),this.words[u0+o0]=S&67108863}for(;u0>26,this.words[u0+o0]=S&67108863;if(n0===0)return this.strip();for(Y(n0===-1),n0=0,u0=0;u0>26,this.words[u0]=S&67108863;return this.negative=1,this.strip()},Z.prototype._wordDiv=function(l0,z){var o0=this.length-l0.length,M=this.clone(),u0=l0,S=u0.words[u0.length-1]|0,n0=this._countBits(S);o0=26-n0,o0!==0&&(u0=u0.ushln(o0),M.iushln(o0),S=u0.words[u0.length-1]|0);var v=M.length-u0.length,s0;if(z!=="mod"){s0=new Z(null),s0.length=v+1,s0.words=new Array(s0.length);for(var I=0;I=0;m0--){var a0=(M.words[u0.length+m0]|0)*67108864+(M.words[u0.length+m0-1]|0);for(a0=Math.min(a0/S|0,67108863),M._ishlnsubmul(u0,a0,m0);M.negative!==0;)a0--,M.negative=0,M._ishlnsubmul(u0,1,m0),M.isZero()||(M.negative^=1);s0&&(s0.words[m0]=a0)}return s0&&s0.strip(),M.strip(),z!=="div"&&o0!==0&&M.iushrn(o0),{div:s0||null,mod:M}},Z.prototype.divmod=function(l0,z,o0){if(Y(!l0.isZero()),this.isZero())return{div:new Z(0),mod:new Z(0)};var M,u0,S;return this.negative!==0&&l0.negative===0?(S=this.neg().divmod(l0,z),z!=="mod"&&(M=S.div.neg()),z!=="div"&&(u0=S.mod.neg(),o0&&u0.negative!==0&&u0.iadd(l0)),{div:M,mod:u0}):this.negative===0&&l0.negative!==0?(S=this.divmod(l0.neg(),z),z!=="mod"&&(M=S.div.neg()),{div:M,mod:S.mod}):(this.negative&l0.negative)!==0?(S=this.neg().divmod(l0.neg(),z),z!=="div"&&(u0=S.mod.neg(),o0&&u0.negative!==0&&u0.isub(l0)),{div:S.div,mod:u0}):l0.length>this.length||this.cmp(l0)<0?{div:new Z(0),mod:this}:l0.length===1?z==="div"?{div:this.divn(l0.words[0]),mod:null}:z==="mod"?{div:null,mod:new Z(this.modn(l0.words[0]))}:{div:this.divn(l0.words[0]),mod:new Z(this.modn(l0.words[0]))}:this._wordDiv(l0,z)},Z.prototype.div=function(l0){return this.divmod(l0,"div",!1).div},Z.prototype.mod=function(l0){return this.divmod(l0,"mod",!1).mod},Z.prototype.umod=function(l0){return this.divmod(l0,"mod",!0).mod},Z.prototype.divRound=function(l0){var z=this.divmod(l0);if(z.mod.isZero())return z.div;var o0=z.div.negative!==0?z.mod.isub(l0):z.mod,M=l0.ushrn(1),u0=l0.andln(1),S=o0.cmp(M);return S<0||u0===1&&S===0?z.div:z.div.negative!==0?z.div.isubn(1):z.div.iaddn(1)},Z.prototype.modn=function(l0){Y(l0<=67108863);for(var z=(1<<26)%l0,o0=0,M=this.length-1;M>=0;M--)o0=(z*o0+(this.words[M]|0))%l0;return o0},Z.prototype.idivn=function(l0){Y(l0<=67108863);for(var z=0,o0=this.length-1;o0>=0;o0--){var M=(this.words[o0]|0)+z*67108864;this.words[o0]=M/l0|0,z=M%l0}return this.strip()},Z.prototype.divn=function(l0){return this.clone().idivn(l0)},Z.prototype.egcd=function(l0){Y(l0.negative===0),Y(!l0.isZero());var z=this,o0=l0.clone();z.negative!==0?z=z.umod(l0):z=z.clone();for(var M=new Z(1),u0=new Z(0),S=new Z(0),n0=new Z(1),v=0;z.isEven()&&o0.isEven();)z.iushrn(1),o0.iushrn(1),++v;for(var s0=o0.clone(),I=z.clone();!z.isZero();){for(var t0=0,m0=1;(z.words[0]&m0)===0&&t0<26;++t0,m0<<=1);if(t0>0)for(z.iushrn(t0);t0-- >0;)(M.isOdd()||u0.isOdd())&&(M.iadd(s0),u0.isub(I)),M.iushrn(1),u0.iushrn(1);for(var a0=0,q=1;(o0.words[0]&q)===0&&a0<26;++a0,q<<=1);if(a0>0)for(o0.iushrn(a0);a0-- >0;)(S.isOdd()||n0.isOdd())&&(S.iadd(s0),n0.isub(I)),S.iushrn(1),n0.iushrn(1);z.cmp(o0)>=0?(z.isub(o0),M.isub(S),u0.isub(n0)):(o0.isub(z),S.isub(M),n0.isub(u0))}return{a:S,b:n0,gcd:o0.iushln(v)}},Z.prototype._invmp=function(l0){Y(l0.negative===0),Y(!l0.isZero());var z=this,o0=l0.clone();z.negative!==0?z=z.umod(l0):z=z.clone();for(var M=new Z(1),u0=new Z(0),S=o0.clone();z.cmpn(1)>0&&o0.cmpn(1)>0;){for(var n0=0,v=1;(z.words[0]&v)===0&&n0<26;++n0,v<<=1);if(n0>0)for(z.iushrn(n0);n0-- >0;)M.isOdd()&&M.iadd(S),M.iushrn(1);for(var s0=0,I=1;(o0.words[0]&I)===0&&s0<26;++s0,I<<=1);if(s0>0)for(o0.iushrn(s0);s0-- >0;)u0.isOdd()&&u0.iadd(S),u0.iushrn(1);z.cmp(o0)>=0?(z.isub(o0),M.isub(u0)):(o0.isub(z),u0.isub(M))}var t0;return z.cmpn(1)===0?t0=M:t0=u0,t0.cmpn(0)<0&&t0.iadd(l0),t0},Z.prototype.gcd=function(l0){if(this.isZero())return l0.abs();if(l0.isZero())return this.abs();var z=this.clone(),o0=l0.clone();z.negative=0,o0.negative=0;for(var M=0;z.isEven()&&o0.isEven();M++)z.iushrn(1),o0.iushrn(1);do{for(;z.isEven();)z.iushrn(1);for(;o0.isEven();)o0.iushrn(1);var u0=z.cmp(o0);if(u0<0){var S=z;z=o0,o0=S}else if(u0===0||o0.cmpn(1)===0)break;z.isub(o0)}while(!0);return o0.iushln(M)},Z.prototype.invm=function(l0){return this.egcd(l0).a.umod(l0)},Z.prototype.isEven=function(){return(this.words[0]&1)===0},Z.prototype.isOdd=function(){return(this.words[0]&1)===1},Z.prototype.andln=function(l0){return this.words[0]&l0},Z.prototype.bincn=function(l0){Y(typeof l0=="number");var z=l0%26,o0=(l0-z)/26,M=1<>>26,n0&=67108863,this.words[S]=n0}return u0!==0&&(this.words[S]=u0,this.length++),this},Z.prototype.isZero=function(){return this.length===1&&this.words[0]===0},Z.prototype.cmpn=function(l0){var z=l0<0;if(this.negative!==0&&!z)return-1;if(this.negative===0&&z)return 1;this.strip();var o0;if(this.length>1)o0=1;else{z&&(l0=-l0),Y(l0<=67108863,"Number is too big");var M=this.words[0]|0;o0=M===l0?0:Ml0.length)return 1;if(this.length=0;o0--){var M=this.words[o0]|0,u0=l0.words[o0]|0;if(M!==u0){Mu0&&(z=1);break}}return z},Z.prototype.gtn=function(l0){return this.cmpn(l0)===1},Z.prototype.gt=function(l0){return this.cmp(l0)===1},Z.prototype.gten=function(l0){return this.cmpn(l0)>=0},Z.prototype.gte=function(l0){return this.cmp(l0)>=0},Z.prototype.ltn=function(l0){return this.cmpn(l0)===-1},Z.prototype.lt=function(l0){return this.cmp(l0)===-1},Z.prototype.lten=function(l0){return this.cmpn(l0)<=0},Z.prototype.lte=function(l0){return this.cmp(l0)<=0},Z.prototype.eqn=function(l0){return this.cmpn(l0)===0},Z.prototype.eq=function(l0){return this.cmp(l0)===0},Z.red=function(l0){return new b0(l0)},Z.prototype.toRed=function(l0){return Y(!this.red,"Already a number in reduction context"),Y(this.negative===0,"red works only with positives"),l0.convertTo(this)._forceRed(l0)},Z.prototype.fromRed=function(){return Y(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},Z.prototype._forceRed=function(l0){return this.red=l0,this},Z.prototype.forceRed=function(l0){return Y(!this.red,"Already a number in reduction context"),this._forceRed(l0)},Z.prototype.redAdd=function(l0){return Y(this.red,"redAdd works only with red numbers"),this.red.add(this,l0)},Z.prototype.redIAdd=function(l0){return Y(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,l0)},Z.prototype.redSub=function(l0){return Y(this.red,"redSub works only with red numbers"),this.red.sub(this,l0)},Z.prototype.redISub=function(l0){return Y(this.red,"redISub works only with red numbers"),this.red.isub(this,l0)},Z.prototype.redShl=function(l0){return Y(this.red,"redShl works only with red numbers"),this.red.shl(this,l0)},Z.prototype.redMul=function(l0){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,l0),this.red.mul(this,l0)},Z.prototype.redIMul=function(l0){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,l0),this.red.imul(this,l0)},Z.prototype.redSqr=function(){return Y(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},Z.prototype.redISqr=function(){return Y(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},Z.prototype.redSqrt=function(){return Y(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},Z.prototype.redInvm=function(){return Y(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},Z.prototype.redNeg=function(){return Y(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},Z.prototype.redPow=function(l0){return Y(this.red&&!l0.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,l0)};var c0={k256:null,p224:null,p192:null,p25519:null};function C(l0,z){this.name=l0,this.p=new Z(z,16),this.n=this.p.bitLength(),this.k=new Z(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}C.prototype._tmp=function(){var l0=new Z(null);return l0.words=new Array(Math.ceil(this.n/13)),l0},C.prototype.ireduce=function(l0){var z=l0,o0;do this.split(z,this.tmp),z=this.imulK(z),z=z.iadd(this.tmp),o0=z.bitLength();while(o0>this.n);var M=o00?z.isub(this.p):z.strip!==void 0?z.strip():z._strip(),z},C.prototype.split=function(l0,z){l0.iushrn(this.n,0,z)},C.prototype.imulK=function(l0){return l0.imul(this.k)};function h0(){C.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}$(h0,C),h0.prototype.split=function(l0,z){for(var o0=4194303,M=Math.min(l0.length,9),u0=0;u0>>22,S=n0}S>>>=22,l0.words[u0-10]=S,S===0&&l0.length>10?l0.length-=10:l0.length-=9},h0.prototype.imulK=function(l0){l0.words[l0.length]=0,l0.words[l0.length+1]=0,l0.length+=2;for(var z=0,o0=0;o0>>=26,l0.words[o0]=u0,z=M}return z!==0&&(l0.words[l0.length++]=z),l0},Z._prime=function(l0){if(c0[l0])return c0[l0];var z;if(l0==="k256")z=new h0;else if(l0==="p224")z=new L;else if(l0==="p192")z=new d0;else if(l0==="p25519")z=new R;else throw new Error("Unknown prime "+l0);return c0[l0]=z,z};function b0(l0){if(typeof l0=="string"){var z=Z._prime(l0);this.m=z.p,this.prime=z}else Y(l0.gtn(1),"modulus must be greater than 1"),this.m=l0,this.prime=null}b0.prototype._verify1=function(l0){Y(l0.negative===0,"red works only with positives"),Y(l0.red,"red works only with red numbers")},b0.prototype._verify2=function(l0,z){Y((l0.negative|z.negative)===0,"red works only with positives"),Y(l0.red&&l0.red===z.red,"red works only with red numbers")},b0.prototype.imod=function(l0){return this.prime?this.prime.ireduce(l0)._forceRed(this):l0.umod(this.m)._forceRed(this)},b0.prototype.neg=function(l0){return l0.isZero()?l0.clone():this.m.sub(l0)._forceRed(this)},b0.prototype.add=function(l0,z){this._verify2(l0,z);var o0=l0.add(z);return o0.cmp(this.m)>=0&&o0.isub(this.m),o0._forceRed(this)},b0.prototype.iadd=function(l0,z){this._verify2(l0,z);var o0=l0.iadd(z);return o0.cmp(this.m)>=0&&o0.isub(this.m),o0},b0.prototype.sub=function(l0,z){this._verify2(l0,z);var o0=l0.sub(z);return o0.cmpn(0)<0&&o0.iadd(this.m),o0._forceRed(this)},b0.prototype.isub=function(l0,z){this._verify2(l0,z);var o0=l0.isub(z);return o0.cmpn(0)<0&&o0.iadd(this.m),o0},b0.prototype.shl=function(l0,z){return this._verify1(l0),this.imod(l0.ushln(z))},b0.prototype.imul=function(l0,z){return this._verify2(l0,z),this.imod(l0.imul(z))},b0.prototype.mul=function(l0,z){return this._verify2(l0,z),this.imod(l0.mul(z))},b0.prototype.isqr=function(l0){return this.imul(l0,l0.clone())},b0.prototype.sqr=function(l0){return this.mul(l0,l0)},b0.prototype.sqrt=function(l0){if(l0.isZero())return l0.clone();var z=this.m.andln(3);if(Y(z%2===1),z===3){var o0=this.m.add(new Z(1)).iushrn(2);return this.pow(l0,o0)}for(var M=this.m.subn(1),u0=0;!M.isZero()&&M.andln(1)===0;)u0++,M.iushrn(1);Y(!M.isZero());var S=new Z(1).toRed(this),n0=S.redNeg(),v=this.m.subn(1).iushrn(1),s0=this.m.bitLength();for(s0=new Z(2*s0*s0).toRed(this);this.pow(s0,v).cmp(n0)!==0;)s0.redIAdd(n0);for(var I=this.pow(s0,M),t0=this.pow(l0,M.addn(1).iushrn(1)),m0=this.pow(l0,M),a0=u0;m0.cmp(S)!==0;){for(var q=m0,e0=0;q.cmp(S)!==0;e0++)q=q.redSqr();Y(e0=0;u0--){for(var I=z.words[u0],t0=s0-1;t0>=0;t0--){var m0=I>>t0&1;if(S!==M[0]&&(S=this.sqr(S)),m0===0&&n0===0){v=0;continue}n0<<=1,n0|=m0,v++,!(v!==o0&&(u0!==0||t0!==0))&&(S=this.mul(S,M[n0]),v=0,n0=0)}s0=26}return S},b0.prototype.convertTo=function(l0){var z=l0.umod(this.m);return z===l0?z.clone():z},b0.prototype.convertFrom=function(l0){var z=l0.clone();return z.red=null,z},Z.mont=function(l0){return new P(l0)};function P(l0){b0.call(this,l0),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new Z(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}$(P,b0),P.prototype.convertTo=function(l0){return this.imod(l0.ushln(this.shift))},P.prototype.convertFrom=function(l0){var z=this.imod(l0.mul(this.rinv));return z.red=null,z},P.prototype.imul=function(l0,z){if(l0.isZero()||z.isZero())return l0.words[0]=0,l0.length=1,l0;var o0=l0.imul(z),M=o0.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u0=o0.isub(M).iushrn(this.shift),S=u0;return u0.cmp(this.m)>=0?S=u0.isub(this.m):u0.cmpn(0)<0&&(S=u0.iadd(this.m)),S._forceRed(this)},P.prototype.mul=function(l0,z){if(l0.isZero()||z.isZero())return new Z(0)._forceRed(this);var o0=l0.mul(z),M=o0.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u0=o0.isub(M).iushrn(this.shift),S=u0;return u0.cmp(this.m)>=0?S=u0.isub(this.m):u0.cmpn(0)<0&&(S=u0.iadd(this.m)),S._forceRed(this)},P.prototype.invm=function(l0){var z=this.imod(l0._invmp(this.m).mul(this.r2));return z._forceRed(this)}})(typeof K>"u"||K,X)}}),{CryptoHasher:sY}=globalThis.Bun,tY=$Q({"node_modules/public-encrypt/withPublic.js"(X,K){var x0=nY(),G=YQ().Buffer;function Y($,Z){return G.from($.toRed(x0.mont(Z.modulus)).redPow(new x0(Z.publicExponent)).fromRed().toArray())}K.exports=Y}}),mY=$Q({"node_modules/public-encrypt/publicEncrypt.js"(X,K){var x0=pY(),G=ZQ(),Y=L0(),$=oY(),Z=uY(),Q=nY(),U=tY(),V=hQ(),B0=YQ().Buffer;K.exports=function(w0,E,p0){var T;w0.padding?T=w0.padding:p0?T=1:T=4;var f0=x0(w0),D;if(T===4)D=H(f0,E);else if(T===1)D=y0(f0,E,p0);else if(T===3){if(D=new Q(E),D.cmp(f0.modulus)>=0)throw new Error("data too long for modulus")}else throw new Error("unknown padding");return p0?V(D,f0):U(D,f0)};function H(w0,E){var p0=w0.modulus.byteLength(),T=E.length,f0=Y("sha1").update(B0.alloc(0)).digest(),D=f0.length,c0=2*D;if(T>p0-c0-2)throw new Error("message too long");var C=B0.alloc(p0-T-c0-2),h0=p0-D-1,L=G(D),d0=Z(B0.concat([f0,C,B0.alloc(1,1),E],h0),$(L,h0)),R=Z(L,$(d0,D));return new Q(B0.concat([B0.alloc(1),R,d0],p0))}function y0(w0,E,p0){var T=E.length,f0=w0.modulus.byteLength();if(T>f0-11)throw new Error("message too long");var D;return p0?D=B0.alloc(f0-T-3,255):D=W(f0-T-3),new Q(B0.concat([B0.from([0,p0?1:2]),D,B0.alloc(1),E],f0))}function W(w0){for(var E=B0.allocUnsafe(w0),p0=0,T=G(w0*2),f0=0,D;p0f0||new $(w0).cmp(T.modulus)>=0)throw new Error("decryption error");var D;E?D=U(new $(w0),T):D=Z(w0,T);var c0=V.alloc(f0-D.length);if(D=V.concat([c0,D],f0),p0===4)return B0(T,D);if(p0===1)return H(T,D,E);if(p0===3)return D;throw new Error("unknown padding")};function B0(W,w0){var E=W.modulus.byteLength(),p0=Q("sha1").update(V.alloc(0)).digest(),T=p0.length;if(w0[0]!==0)throw new Error("decryption error");var f0=w0.slice(1,T+1),D=w0.slice(T+1),c0=Y(f0,G(D,T)),C=Y(D,G(c0,E-T-1));if(y0(p0,C.slice(0,T)))throw new Error("decryption error");for(var h0=T;C[h0]===0;)h0++;if(C[h0++]!==1)throw new Error("decryption error");return C.slice(h0)}function H(W,w0,E){for(var p0=w0.slice(0,2),T=2,f0=0;w0[T++]!==0;)if(T>=w0.length){f0++;break}var D=w0.slice(2,T-1);if((p0.toString("hex")!=="0002"&&!E||p0.toString("hex")!=="0001"&&E)&&f0++,D.length<8&&f0++,f0)throw new Error("decryption error");return w0.slice(T)}function y0(W,w0){W=V.from(W),w0=V.from(w0);var E=0,p0=W.length;W.length!==w0.length&&(E++,p0=Math.min(W.length,w0.length));for(var T=-1;++T$||H<0)throw new TypeError("offset must be a uint32");if(H>Y||H>y0)throw new RangeError("offset out of range")}function Q(H,y0,W){if(typeof H!="number"||H!==H)throw new TypeError("size must be a number");if(H>$||H<0)throw new TypeError("size must be a uint32");if(H+y0>W||H>Y)throw new RangeError("buffer too small")}X.randomFill=U,X.randomFillSync=B0;function U(H,y0,W,w0){if(!G.isBuffer(H)&&!(H instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if(typeof y0=="function")w0=y0,y0=0,W=H.length;else if(typeof W=="function")w0=W,W=H.length-y0;else if(typeof w0!="function")throw new TypeError('"cb" argument must be a function');return Z(y0,H.length),Q(W,y0,H.length),V(H,y0,W,w0)}function V(H,y0,W,w0){if(w0){x0(W,function(p0,T){if(p0)return w0(p0);T.copy(H,y0),w0(null,H)});return}var E=x0(W);return E.copy(H,y0),H}function B0(H,y0,W){if(typeof y0>"u"&&(y0=0),!G.isBuffer(H)&&!(H instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return Z(y0,H.length),W===void 0&&(W=H.length-y0),Q(W,y0,H.length),V(H,y0,W)}}}),iY=$Q({"node_modules/crypto-browserify/index.js"(X){X.randomBytes=X.rng=X.pseudoRandomBytes=X.prng=ZQ(),X.createHash=L0(),X.Hash=X.createHash.Hash,X.createHmac=X.Hmac=z0();var K=S0(),x0=Object.keys(K),G=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(x0);X.getHashes=function(){return G};var Y=g0();X.pbkdf2=Y.pbkdf2,X.pbkdf2Sync=Y.pbkdf2Sync;var $=gQ();X.Cipher=$.Cipher,X.createCipher=$.createCipher,X.Cipheriv=$.Cipheriv,X.createCipheriv=$.createCipheriv,X.Decipher=$.Decipher,X.createDecipher=$.createDecipher,X.Decipheriv=$.Decipheriv,X.createDecipheriv=$.createDecipheriv,X.getCiphers=$.getCiphers,X.listCiphers=$.listCiphers;var Z=fQ();X.DiffieHellmanGroup=Z.DiffieHellmanGroup,X.createDiffieHellmanGroup=Z.createDiffieHellmanGroup,X.getDiffieHellman=Z.getDiffieHellman,X.createDiffieHellman=Z.createDiffieHellman,X.DiffieHellman=Z.DiffieHellman;var Q=dY();X.createSign=Q.createSign,X.Sign=Q.Sign,X.createVerify=Q.createVerify,X.Verify=Q.Verify,X.createECDH=lY();var U=eY();X.publicEncrypt=U.publicEncrypt,X.privateEncrypt=U.privateEncrypt,X.publicDecrypt=U.publicDecrypt,X.privateDecrypt=U.privateDecrypt,X.getRandomValues=(B0)=>d$.getRandomValues(B0);var V=rY();X.randomFill=V.randomFill,X.randomFillSync=V.randomFillSync,X.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join(` +`))},X.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}}}),$Z={...iY(),[Symbol.for("CommonJS")]:0},o$="buffer",QZ=(X)=>d$.getRandomValues(X),YZ=()=>d$.randomUUID(),u$="timingSafeEqual"in d$?(X,K)=>{let{byteLength:x0}=X,{byteLength:G}=K;if(typeof x0!="number"||typeof G!="number")throw new TypeError("Input must be an array buffer view");if(x0!==G)throw new RangeError("Input buffers must have the same length");return d$.timingSafeEqual(X,K)}:void 0,ZZ="scryptSync"in d$?(X,K,x0,G)=>{let Y=d$.scryptSync(X,K,x0,G);return o$!=="buffer"?new c$(Y).toString(o$):new c$(Y)}:void 0,GZ="scryptSync"in d$?function(X,K,x0,G,Y){if(typeof G=="function"&&(Y=G,G=void 0),typeof Y!="function"){var $=new TypeError("callback must be a function");throw $.code="ERR_INVALID_CALLBACK",$}try{let Z=d$.scryptSync(X,K,x0,G);process.nextTick(Y,null,o$!=="buffer"?new c$(Z).toString(o$):new c$(Z))}catch(Z){throw Z}}:void 0;u$&&(Object.defineProperty(u$,"name",{value:"::bunternal::"}),Object.defineProperty(GZ,"name",{value:"::bunternal::"}),Object.defineProperty(ZZ,"name",{value:"::bunternal::"}));var n$=d$;QQ($Z,{DEFAULT_ENCODING:()=>o$,getRandomValues:()=>QZ,randomUUID:()=>YZ,scrypt:()=>GZ,scryptSync:()=>ZZ,timingSafeEqual:()=>u$,webcrypto:()=>n$,subtle:()=>n$.subtle});var{randomBytes:VZ,rng:UZ,pseudoRandomBytes:XZ,prng:KZ,Hash:IZ,createHash:OZ,createHmac:JZ,Hmac:FZ,getHashes:AZ,pbkdf2:HZ,pbkdf2Sync:WZ,Cipher:EZ,createCipher:TZ,Cipheriv:DZ,createCipheriv:CZ,Decipher:LZ,createDecipher:RZ,Decipheriv:PZ,createDecipheriv:zZ,getCiphers:MZ,listCiphers:SZ,DiffieHellmanGroup:vZ,createDiffieHellmanGroup:qZ,getDiffieHellman:jZ,createDiffieHellman:kZ,DiffieHellman:gZ,createSign:_Z,Sign:NZ,createVerify:xZ,Verify:BZ,createECDH:yZ,publicEncrypt:wZ,privateEncrypt:pZ,publicDecrypt:fZ,privateDecrypt:cZ,randomFill:hZ,randomFillSync:dZ,createCredentials:bZ,constants:lZ}=$Z;var uZ=$Z;/*! safe-buffer. MIT License. Feross Aboukhadijeh */export{n$ as webcrypto,u$ as timingSafeEqual,ZZ as scryptSync,GZ as scrypt,UZ as rng,YZ as randomUUID,dZ as randomFillSync,hZ as randomFill,VZ as randomBytes,wZ as publicEncrypt,fZ as publicDecrypt,XZ as pseudoRandomBytes,KZ as prng,pZ as privateEncrypt,cZ as privateDecrypt,WZ as pbkdf2Sync,HZ as pbkdf2,SZ as listCiphers,QZ as getRandomValues,AZ as getHashes,jZ as getDiffieHellman,MZ as getCiphers,uZ as default,xZ as createVerify,_Z as createSign,JZ as createHmac,OZ as createHash,yZ as createECDH,qZ as createDiffieHellmanGroup,kZ as createDiffieHellman,zZ as createDecipheriv,RZ as createDecipher,bZ as createCredentials,CZ as createCipheriv,TZ as createCipher,lZ as constants,BZ as Verify,NZ as Sign,FZ as Hmac,IZ as Hash,vZ as DiffieHellmanGroup,gZ as DiffieHellman,PZ as Decipheriv,LZ as Decipher,o$ as DEFAULT_ENCODING,DZ as Cipheriv,EZ as Cipher}; diff --git a/src/js/out/modules/node/path.js b/src/js/out/modules/node/path.js index f8cc1ec08..4e6003c7d 100644 --- a/src/js/out/modules/node/path.js +++ b/src/js/out/modules/node/path.js @@ -1 +1 @@ -var g=function(i){var f=m({basename:i.basename.bind(i),dirname:i.dirname.bind(i),extname:i.extname.bind(i),format:i.format.bind(i),isAbsolute:i.isAbsolute.bind(i),join:i.join.bind(i),normalize:i.normalize.bind(i),parse:i.parse.bind(i),relative:i.relative.bind(i),resolve:i.resolve.bind(i),toNamespacedPath:i.toNamespacedPath.bind(i),sep:i.sep,delimiter:i.delimiter});return f.default=f,f},m=(i)=>Object.assign(Object.create(null),i),k=g(Bun._Path()),q=g(Bun._Path(!1)),v=g(Bun._Path(!0));k.win32=v;k.posix=q;var{basename:y,dirname:z,extname:A,format:B,isAbsolute:C,join:D,normalize:E,parse:F,relative:G,resolve:H,toNamespacedPath:I,sep:J,delimiter:K,__esModule:L}=k;k[Symbol.for("CommonJS")]=0;k.__esModule=!0;var O=k;export{v as win32,I as toNamespacedPath,J as sep,H as resolve,G as relative,q as posix,F as parse,E as normalize,D as join,C as isAbsolute,B as format,A as extname,z as dirname,K as delimiter,O as default,m as createModule,y as basename,L as __esModule}; +var H=function(i){var G=f({basename:i.basename.bind(i),dirname:i.dirname.bind(i),extname:i.extname.bind(i),format:i.format.bind(i),isAbsolute:i.isAbsolute.bind(i),join:i.join.bind(i),normalize:i.normalize.bind(i),parse:i.parse.bind(i),relative:i.relative.bind(i),resolve:i.resolve.bind(i),toNamespacedPath:i.toNamespacedPath.bind(i),sep:i.sep,delimiter:i.delimiter});return G.default=G,G},f=(i)=>Object.assign(Object.create(null),i),m=H(Bun._Path()),I=H(Bun._Path(!1)),g=H(Bun._Path(!0));m.win32=g;m.posix=I;var{basename:J,dirname:k,extname:K,format:q,isAbsolute:L,join:v,normalize:N,parse:y,relative:O,resolve:C,toNamespacedPath:z,sep:D,delimiter:A,__esModule:E}=m;m[Symbol.for("CommonJS")]=0;m.__esModule=!0;var F=m;export{g as win32,z as toNamespacedPath,D as sep,C as resolve,O as relative,I as posix,y as parse,N as normalize,v as join,L as isAbsolute,q as format,K as extname,k as dirname,A as delimiter,F as default,f as createModule,J as basename,E as __esModule}; diff --git a/src/js/out/modules/node/path.posix.js b/src/js/out/modules/node/path.posix.js index 64e8a62f5..ca08d44b8 100644 --- a/src/js/out/modules/node/path.posix.js +++ b/src/js/out/modules/node/path.posix.js @@ -1 +1 @@ -var i=function(e){return{basename:e.basename.bind(e),dirname:e.dirname.bind(e),extname:e.extname.bind(e),format:e.format.bind(e),isAbsolute:e.isAbsolute.bind(e),join:e.join.bind(e),normalize:e.normalize.bind(e),parse:e.parse.bind(e),relative:e.relative.bind(e),resolve:e.resolve.bind(e),toNamespacedPath:e.toNamespacedPath.bind(e),sep:e.sep,delimiter:e.delimiter}},r=i(Bun._Path(!1));r[Symbol.for("CommonJS")]=0;var{basename:d,dirname:l,extname:s,format:c,isAbsolute:f,join:g,normalize:k,parse:m,relative:q,resolve:t,toNamespacedPath:v,sep:w,delimiter:x}=r,z=r;export{v as toNamespacedPath,w as sep,t as resolve,q as relative,m as parse,k as normalize,g as join,f as isAbsolute,c as format,s as extname,l as dirname,x as delimiter,z as default,d as basename}; +var r=function(i){return{basename:i.basename.bind(i),dirname:i.dirname.bind(i),extname:i.extname.bind(i),format:i.format.bind(i),isAbsolute:i.isAbsolute.bind(i),join:i.join.bind(i),normalize:i.normalize.bind(i),parse:i.parse.bind(i),relative:i.relative.bind(i),resolve:i.resolve.bind(i),toNamespacedPath:i.toNamespacedPath.bind(i),sep:i.sep,delimiter:i.delimiter}},k=r(Bun._Path(!1));k[Symbol.for("CommonJS")]=0;var{basename:e,dirname:m,extname:d,format:l,isAbsolute:s,join:c,normalize:f,parse:g,relative:q,resolve:t,toNamespacedPath:v,sep:w,delimiter:x}=k,z=k;export{v as toNamespacedPath,w as sep,t as resolve,q as relative,g as parse,f as normalize,c as join,s as isAbsolute,l as format,d as extname,m as dirname,x as delimiter,z as default,e as basename}; diff --git a/src/js/out/modules/node/stream.consumers.js b/src/js/out/modules/node/stream.consumers.js index 20bbb7de4..8e3592104 100644 --- a/src/js/out/modules/node/stream.consumers.js +++ b/src/js/out/modules/node/stream.consumers.js @@ -1 +1 @@ -var{Bun:o}=globalThis[Symbol.for("Bun.lazy")]("primordials"),p=o.readableStreamToArrayBuffer,c=o.readableStreamToText,g=(h)=>o.readableStreamToText(h).then(JSON.parse),i=async(h)=>{return new Buffer(await p(h))},k=o.readableStreamToBlob,q={[Symbol.for("CommonJS")]:0,arrayBuffer:p,text:c,json:g,buffer:i,blob:k};export{c as text,g as json,q as default,i as buffer,k as blob,p as arrayBuffer}; +var{Bun:k}=globalThis[Symbol.for("Bun.lazy")]("primordials"),p=k.readableStreamToArrayBuffer,o=k.readableStreamToText,h=(c)=>k.readableStreamToText(c).then(JSON.parse),g=async(c)=>{return new Buffer(await p(c))},i=k.readableStreamToBlob,q={[Symbol.for("CommonJS")]:0,arrayBuffer:p,text:o,json:h,buffer:g,blob:i};export{o as text,h as json,q as default,g as buffer,i as blob,p as arrayBuffer}; diff --git a/src/js/out/modules/node/stream.js b/src/js/out/modules/node/stream.js index f96818bd6..31a1d64c6 100644 --- a/src/js/out/modules/node/stream.js +++ b/src/js/out/modules/node/stream.js @@ -1,2 +1,2 @@ -import{EventEmitter as Pq} from"bun:events_native";import{StringDecoder as Sq} from"node:string_decoder";var cq=function(q){return typeof q==="object"&&q!==null&&q instanceof ReadableStream},dq=function(q,Q){if(typeof q!=="boolean")throw new iq(Q,"boolean",q)};var iq=function(q,Q,X){return new Error(`The argument '${q}' is invalid. Received '${X}' for type '${Q}'`)},nq=function(q,Q,X){return new Error(`The value '${Q}' is invalid for argument '${q}'. Reason: ${X}`)},FQ=function(q,Q){var[X,J,H,K,Z,B,Y]=globalThis[Symbol.for("Bun.lazy")](q),$=[!1],z=function(F,L,j,N){if(L>0){const A=j.subarray(0,L),E=j.subarray(L);if(A.byteLength>0)F.push(A);if(N)F.push(null);return E.byteLength>0?E:void 0}if(N)F.push(null);return j},V=function(F,L,j,N){if(L.byteLength>0)F.push(L);if(N)F.push(null);return j},U=process.env.BUN_DISABLE_DYNAMIC_CHUNK_SIZE!=="1";const W=new FinalizationRegistry((F)=>F&&Z(F)),G=512;var M=class F extends Q{#q;#Q=1;#X=!1;#J=void 0;#H;#K=!1;#Z=!U;#B;constructor(L,j={}){super(j);if(typeof j.highWaterMark==="number")this.#H=j.highWaterMark;else this.#H=262144;this.#q=L,this.#X=!1,this.#J=void 0,this.#K=!1,this.#B={},W.register(this,this.#q,this.#B)}_read(L){if(Aq&&Nq("NativeReadable._read",this.__id),this.#K){Aq&&Nq("pendingRead is true",this.__id);return}var j=this.#q;if(Aq&&Nq("ptr @ NativeReadable._read",j,this.__id),j===0){this.push(null);return}if(!this.#X)Aq&&Nq("NativeReadable not constructed yet",this.__id),this.#Y(j);return this.#V(this.#$(L),j)}#Y(L){this.#X=!0;const j=J(L,this.#H);if(Aq&&Nq("NativeReadable internal `start` result",j,this.__id),typeof j==="number"&&j>1)this.#Z=!0,Aq&&Nq("NativeReadable resized",this.__id),this.#H=Math.min(this.#H,j);if(Y){const N=Y(L);if(Aq&&Nq("NativeReadable drain result",N,this.__id),(N?.byteLength??0)>0)this.push(N)}}#$(L=this.#H){var j=this.#J;if(Aq&&Nq("chunk @ #getRemainingChunk",j,this.__id),j?.byteLength??0G?L:G;this.#J=j=new Buffer(N)}return j}push(L,j){return Aq&&Nq("NativeReadable push -- result, encoding",L,j,this.__id),super.push(...arguments)}#z(L,j,N){if(Aq&&Nq("result, isClosed @ #handleResult",L,N,this.__id),typeof L==="number"){if(L>=this.#H&&!this.#Z&&!N)this.#H*=2,this.#Z=!0;return z(this,L,j,N)}else if(typeof L==="boolean")return this.push(null),j?.byteLength??0>0?j:void 0;else if(ArrayBuffer.isView(L)){if(L.byteLength>=this.#H&&!this.#Z&&!N)this.#H*=2,this.#Z=!0,Aq&&Nq("Resized",this.__id);return V(this,L,j,N)}else throw Aq&&Nq("Unknown result type",L,this.__id),new Error("Invalid result from pull")}#V(L,j){Aq&&Nq("#internalRead()",this.__id),$[0]=!1;var N=X(j,L,$);if(xq(N))return this.#K=!0,N.then((A)=>{this.#K=!1,Aq&&Nq("pending no longerrrrrrrr (result returned from pull)",this.__id),this.#J=this.#z(A,L,$[0])},(A)=>{Aq&&Nq("error from pull",A,this.__id),errorOrDestroy(this,A)});else this.#J=this.#z(N,L,$[0])}_destroy(L,j){var N=this.#q;if(N===0){j(L);return}if(W.unregister(this.#B),this.#q=0,B)B(N,!1);Aq&&Nq("NativeReadable destroyed",this.__id),H(N,L),j(L)}ref(){var L=this.#q;if(L===0)return;if(this.#Q++===0)B(L,!0)}unref(){var L=this.#q;if(L===0)return;if(this.#Q--===1)B(L,!1)}};if(!B)M.prototype.ref=void 0,M.prototype.unref=void 0;return M},jQ=function(q,Q){return LQ[q]||=FQ(q,Q)},NQ=function(q,Q,X){if(!(Q&&typeof Q==="object"&&Q instanceof ReadableStream))return;const J=wq(Q);if(!J){Nq("no native readable stream");return}const{stream:H,data:K}=J;return new(jQ(K,q))(H,X)},{isPromise:xq,isCallable:Dq,direct:wq,Object:Tq}=globalThis[Symbol.for("Bun.lazy")]("primordials");globalThis.__IDS_TO_TRACK=process.env.DEBUG_TRACK_EE?.length?process.env.DEBUG_TRACK_EE.split(","):process.env.DEBUG_STREAMS?.length?process.env.DEBUG_STREAMS.split(","):null;var gq=!!process.env.DEBUG_TRACK_EE,Aq=!!(process.env.DEBUG||process.env.DEBUG_STREAMS||gq),Nq=Aq?globalThis.__IDS_TO_TRACK?(...q)=>{const Q=q[q.length-1];if(!globalThis.__IDS_TO_TRACK.includes(Q))return;console.log(`ID: ${Q}`,...q.slice(0,-1))}:(...q)=>console.log(...q.slice(0,-1)):()=>{},fq=Tq.create,kq=Tq.defineProperty,yq=Tq.getOwnPropertyDescriptor,hq=Tq.getOwnPropertyNames,pq=Tq.getPrototypeOf,uq=Tq.prototype.hasOwnProperty,bq=Tq.setPrototypeOf,mq=(q,Q)=>function X(){return Q||(0,q[hq(q)[0]])((Q={exports:{}}).exports,Q),Q.exports};var Iq=process.nextTick;var lq=Array.isArray,Oq=mq({"node_modules/readable-stream/lib/ours/primordials.js"(q,Q){Q.exports={ArrayIsArray(X){return Array.isArray(X)},ArrayPrototypeIncludes(X,J){return X.includes(J)},ArrayPrototypeIndexOf(X,J){return X.indexOf(J)},ArrayPrototypeJoin(X,J){return X.join(J)},ArrayPrototypeMap(X,J){return X.map(J)},ArrayPrototypePop(X,J){return X.pop(J)},ArrayPrototypePush(X,J){return X.push(J)},ArrayPrototypeSlice(X,J,H){return X.slice(J,H)},Error,FunctionPrototypeCall(X,J,...H){return X.call(J,...H)},FunctionPrototypeSymbolHasInstance(X,J){return Function.prototype[Symbol.hasInstance].call(X,J)},MathFloor:Math.floor,Number,NumberIsInteger:Number.isInteger,NumberIsNaN:Number.isNaN,NumberMAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,NumberParseInt:Number.parseInt,ObjectDefineProperties(X,J){return Tq.defineProperties(X,J)},ObjectDefineProperty(X,J,H){return Tq.defineProperty(X,J,H)},ObjectGetOwnPropertyDescriptor(X,J){return Tq.getOwnPropertyDescriptor(X,J)},ObjectKeys(X){return Tq.keys(X)},ObjectSetPrototypeOf(X,J){return Tq.setPrototypeOf(X,J)},Promise,PromisePrototypeCatch(X,J){return X.catch(J)},PromisePrototypeThen(X,J,H){return X.then(J,H)},PromiseReject(X){return Promise.reject(X)},ReflectApply:Reflect.apply,RegExpPrototypeTest(X,J){return X.test(J)},SafeSet:Set,String,StringPrototypeSlice(X,J,H){return X.slice(J,H)},StringPrototypeToLowerCase(X){return X.toLowerCase()},StringPrototypeToUpperCase(X){return X.toUpperCase()},StringPrototypeTrim(X){return X.trim()},Symbol,SymbolAsyncIterator:Symbol.asyncIterator,SymbolHasInstance:Symbol.hasInstance,SymbolIterator:Symbol.iterator,TypedArrayPrototypeSet(X,J,H){return X.set(J,H)},Uint8Array}}}),_q=mq({"node_modules/readable-stream/lib/ours/util.js"(q,Q){var X=Tq.getPrototypeOf(async function(){}).constructor,J=typeof Blob!=="undefined"?function K(Z){return Z instanceof Blob}:function K(Z){return!1},H=class extends Error{constructor(K){if(!Array.isArray(K))throw new TypeError(`Expected input to be an Array, got ${typeof K}`);let Z="";for(let B=0;B{K=Y,Z=$}),resolve:K,reject:Z}},promisify(K){return new Promise((Z,B)=>{K((Y,...$)=>{if(Y)return B(Y);return Z(...$)})})},debuglog(){return function(){}},format(K,...Z){return K.replace(/%([sdifj])/g,function(...[B,Y]){const $=Z.shift();if(Y==="f")return $.toFixed(6);else if(Y==="j")return JSON.stringify($);else if(Y==="s"&&typeof $==="object")return`${$.constructor!==Tq?$.constructor.name:""} {}`.trim();else return $.toString()})},inspect(K){switch(typeof K){case"string":if(K.includes("'")){if(!K.includes('"'))return`"${K}"`;else if(!K.includes("`")&&!K.includes("${"))return`\`${K}\``}return`'${K}'`;case"number":if(isNaN(K))return"NaN";else if(Tq.is(K,-0))return String(K);return K;case"bigint":return`${String(K)}n`;case"boolean":case"undefined":return String(K);case"object":return"{}"}},types:{isAsyncFunction(K){return K instanceof X},isArrayBufferView(K){return ArrayBuffer.isView(K)}},isBlob:J},Q.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")}}),oq=mq({"node_modules/readable-stream/lib/ours/errors.js"(q,Q){var{format:X,inspect:J,AggregateError:H}=_q(),K=globalThis.AggregateError||H,Z=Symbol("kIsNodeError"),B=["string","function","number","object","Function","Object","boolean","bigint","symbol"],Y=/^([A-Z][a-z0-9]*)+$/,$="__node_internal_",z={};function V(j,N){if(!j)throw new z.ERR_INTERNAL_ASSERTION(N)}function U(j){let N="",A=j.length;const E=j[0]==="-"?1:0;for(;A>=E+4;A-=3)N=`_${j.slice(A-3,A)}${N}`;return`${j.slice(0,A)}${N}`}function W(j,N,A){if(typeof N==="function")return V(N.length<=A.length,`Code: ${j}; The provided arguments length (${A.length}) does not match the required ones (${N.length}).`),N(...A);const E=(N.match(/%[dfijoOs]/g)||[]).length;if(V(E===A.length,`Code: ${j}; The provided arguments length (${A.length}) does not match the required ones (${E}).`),A.length===0)return N;return X(N,...A)}function G(j,N,A){if(!A)A=Error;class E extends A{constructor(...I){super(W(j,N,I))}toString(){return`${this.name} [${j}]: ${this.message}`}}Tq.defineProperties(E.prototype,{name:{value:A.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${j}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),E.prototype.code=j,E.prototype[Z]=!0,z[j]=E}function M(j){const N=$+j.name;return Tq.defineProperty(j,"name",{value:N}),j}function F(j,N){if(j&&N&&j!==N){if(Array.isArray(N.errors))return N.errors.push(j),N;const A=new K([N,j],N.message);return A.code=N.code,A}return j||N}var L=class extends Error{constructor(j="The operation was aborted",N=void 0){if(N!==void 0&&typeof N!=="object")throw new z.ERR_INVALID_ARG_TYPE("options","Object",N);super(j,N);this.code="ABORT_ERR",this.name="AbortError"}};G("ERR_ASSERTION","%s",Error),G("ERR_INVALID_ARG_TYPE",(j,N,A)=>{if(V(typeof j==="string","'name' must be a string"),!Array.isArray(N))N=[N];let E="The ";if(j.endsWith(" argument"))E+=`${j} `;else E+=`"${j}" ${j.includes(".")?"property":"argument"} `;E+="must be ";const I=[],T=[],P=[];for(let O of N)if(V(typeof O==="string","All expected entries have to be of type string"),B.includes(O))I.push(O.toLowerCase());else if(Y.test(O))T.push(O);else V(O!=="object",'The value "object" should be written as "Object"'),P.push(O);if(T.length>0){const O=I.indexOf("object");if(O!==-1)I.splice(I,O,1),T.push("Object")}if(I.length>0){switch(I.length){case 1:E+=`of type ${I[0]}`;break;case 2:E+=`one of type ${I[0]} or ${I[1]}`;break;default:{const O=I.pop();E+=`one of type ${I.join(", ")}, or ${O}`}}if(T.length>0||P.length>0)E+=" or "}if(T.length>0){switch(T.length){case 1:E+=`an instance of ${T[0]}`;break;case 2:E+=`an instance of ${T[0]} or ${T[1]}`;break;default:{const O=T.pop();E+=`an instance of ${T.join(", ")}, or ${O}`}}if(P.length>0)E+=" or "}switch(P.length){case 0:break;case 1:if(P[0].toLowerCase()!==P[0])E+="an ";E+=`${P[0]}`;break;case 2:E+=`one of ${P[0]} or ${P[1]}`;break;default:{const O=P.pop();E+=`one of ${P.join(", ")}, or ${O}`}}if(A==null)E+=`. Received ${A}`;else if(typeof A==="function"&&A.name)E+=`. Received function ${A.name}`;else if(typeof A==="object"){var x;if((x=A.constructor)!==null&&x!==void 0&&x.name)E+=`. Received an instance of ${A.constructor.name}`;else{const O=J(A,{depth:-1});E+=`. Received ${O}`}}else{let O=J(A,{colors:!1});if(O.length>25)O=`${O.slice(0,25)}...`;E+=`. Received type ${typeof A} (${O})`}return E},TypeError),G("ERR_INVALID_ARG_VALUE",(j,N,A="is invalid")=>{let E=J(N);if(E.length>128)E=E.slice(0,128)+"...";return`The ${j.includes(".")?"property":"argument"} '${j}' ${A}. Received ${E}`},TypeError),G("ERR_INVALID_RETURN_VALUE",(j,N,A)=>{var E;const I=A!==null&&A!==void 0&&(E=A.constructor)!==null&&E!==void 0&&E.name?`instance of ${A.constructor.name}`:`type ${typeof A}`;return`Expected ${j} to be returned from the "${N}" function but got ${I}.`},TypeError),G("ERR_MISSING_ARGS",(...j)=>{V(j.length>0,"At least one arg needs to be specified");let N;const A=j.length;switch(j=(Array.isArray(j)?j:[j]).map((E)=>`"${E}"`).join(" or "),A){case 1:N+=`The ${j[0]} argument`;break;case 2:N+=`The ${j[0]} and ${j[1]} arguments`;break;default:{const E=j.pop();N+=`The ${j.join(", ")}, and ${E} arguments`}break}return`${N} must be specified`},TypeError),G("ERR_OUT_OF_RANGE",(j,N,A)=>{V(N,'Missing "range" argument');let E;if(Number.isInteger(A)&&Math.abs(A)>4294967296)E=U(String(A));else if(typeof A==="bigint"){if(E=String(A),A>2n**32n||A<-(2n**32n))E=U(E);E+="n"}else E=J(A);return`The value of "${j}" is out of range. It must be ${N}. Received ${E}`},RangeError),G("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),G("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),G("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),G("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),G("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),G("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),G("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),G("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),G("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),G("ERR_STREAM_WRITE_AFTER_END","write after end",Error),G("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),Q.exports={AbortError:L,aggregateTwoErrors:M(F),hideStackFrames:M,codes:z}}}),sq=mq({"node_modules/readable-stream/lib/internal/validators.js"(q,Q){var{ArrayIsArray:X,ArrayPrototypeIncludes:J,ArrayPrototypeJoin:H,ArrayPrototypeMap:K,NumberIsInteger:Z,NumberMAX_SAFE_INTEGER:B,NumberMIN_SAFE_INTEGER:Y,NumberParseInt:$,RegExpPrototypeTest:z,String:V,StringPrototypeToUpperCase:U,StringPrototypeTrim:W}=Oq(),{hideStackFrames:G,codes:{ERR_SOCKET_BAD_PORT:M,ERR_INVALID_ARG_TYPE:F,ERR_INVALID_ARG_VALUE:L,ERR_OUT_OF_RANGE:j,ERR_UNKNOWN_SIGNAL:N}}=oq(),{normalizeEncoding:A}=_q(),{isAsyncFunction:E,isArrayBufferView:I}=_q().types,T={};function P(i){return i===(i|0)}function x(i){return i===i>>>0}var O=/^[0-7]+$/,_="must be a 32-bit unsigned integer or an octal string";function C(i,n,o){if(typeof i==="undefined")i=o;if(typeof i==="string"){if(!z(O,i))throw new L(n,i,_);i=$(i,8)}return w(i,n,0,4294967295),i}var D=G((i,n,o=Y,s=B)=>{if(typeof i!=="number")throw new F(n,"number",i);if(!Z(i))throw new j(n,"an integer",i);if(is)throw new j(n,`>= ${o} && <= ${s}`,i)}),w=G((i,n,o=-2147483648,s=2147483647)=>{if(typeof i!=="number")throw new F(n,"number",i);if(!P(i)){if(!Z(i))throw new j(n,"an integer",i);throw new j(n,`>= ${o} && <= ${s}`,i)}if(is)throw new j(n,`>= ${o} && <= ${s}`,i)}),v=G((i,n,o)=>{if(typeof i!=="number")throw new F(n,"number",i);if(!x(i)){if(!Z(i))throw new j(n,"an integer",i);throw new j(n,`>= ${o?1:0} && < 4294967296`,i)}if(o&&i===0)throw new j(n,">= 1 && < 4294967296",i)});function R(i,n){if(typeof i!=="string")throw new F(n,"string",i)}function S(i,n){if(typeof i!=="number")throw new F(n,"number",i)}var g=G((i,n,o)=>{if(!J(o,i)){const a="must be one of: "+H(K(o,(r)=>typeof r==="string"?`'${r}'`:V(r)),", ");throw new L(n,i,a)}});function f(i,n){if(typeof i!=="boolean")throw new F(n,"boolean",i)}var k=G((i,n,o)=>{const s=o==null,a=s?!1:o.allowArray,r=s?!1:o.allowFunction;if(!(s?!1:o.nullable)&&i===null||!a&&X(i)||typeof i!=="object"&&(!r||typeof i!=="function"))throw new F(n,"Object",i)}),y=G((i,n,o=0)=>{if(!X(i))throw new F(n,"Array",i);if(i.length{if(!I(i))throw new F(n,["Buffer","TypedArray","DataView"],i)});function u(i,n){const o=A(n),s=i.length;if(o==="hex"&&s%2!==0)throw new L("encoding",n,`is invalid for data of length ${s}`)}function b(i,n="Port",o=!0){if(typeof i!=="number"&&typeof i!=="string"||typeof i==="string"&&W(i).length===0||+i!==+i>>>0||i>65535||i===0&&!o)throw new M(n,i,o);return i|0}var m=G((i,n)=>{if(i!==void 0&&(i===null||typeof i!=="object"||!("aborted"in i)))throw new F(n,"AbortSignal",i)}),c=G((i,n)=>{if(typeof i!=="function")throw new F(n,"Function",i)}),d=G((i,n)=>{if(typeof i!=="function"||E(i))throw new F(n,"Function",i)}),l=G((i,n)=>{if(i!==void 0)throw new F(n,"undefined",i)});Q.exports={isInt32:P,isUint32:x,parseFileMode:C,validateArray:y,validateBoolean:f,validateBuffer:p,validateEncoding:u,validateFunction:c,validateInt32:w,validateInteger:D,validateNumber:S,validateObject:k,validateOneOf:g,validatePlainFunction:d,validatePort:b,validateSignalName:h,validateString:R,validateUint32:v,validateUndefined:l,validateAbortSignal:m}}}),aq=mq({"node_modules/readable-stream/lib/internal/streams/utils.js"(q,Q){var{Symbol:X,SymbolAsyncIterator:J,SymbolIterator:H}=Oq(),K=X("kDestroyed"),Z=X("kIsErrored"),B=X("kIsReadable"),Y=X("kIsDisturbed");function $(v,R=!1){var S;return!!(v&&typeof v.pipe==="function"&&typeof v.on==="function"&&(!R||typeof v.pause==="function"&&typeof v.resume==="function")&&(!v._writableState||((S=v._readableState)===null||S===void 0?void 0:S.readable)!==!1)&&(!v._writableState||v._readableState))}function z(v){var R;return!!(v&&typeof v.write==="function"&&typeof v.on==="function"&&(!v._readableState||((R=v._writableState)===null||R===void 0?void 0:R.writable)!==!1))}function V(v){return!!(v&&typeof v.pipe==="function"&&v._readableState&&typeof v.on==="function"&&typeof v.write==="function")}function U(v){return v&&(v._readableState||v._writableState||typeof v.write==="function"&&typeof v.on==="function"||typeof v.pipe==="function"&&typeof v.on==="function")}function W(v,R){if(v==null)return!1;if(R===!0)return typeof v[J]==="function";if(R===!1)return typeof v[H]==="function";return typeof v[J]==="function"||typeof v[H]==="function"}function G(v){if(!U(v))return null;const{_writableState:R,_readableState:S}=v,g=R||S;return!!(v.destroyed||v[K]||g!==null&&g!==void 0&&g.destroyed)}function M(v){if(!z(v))return null;if(v.writableEnded===!0)return!0;const R=v._writableState;if(R!==null&&R!==void 0&&R.errored)return!1;if(typeof(R===null||R===void 0?void 0:R.ended)!=="boolean")return null;return R.ended}function F(v,R){if(!z(v))return null;if(v.writableFinished===!0)return!0;const S=v._writableState;if(S!==null&&S!==void 0&&S.errored)return!1;if(typeof(S===null||S===void 0?void 0:S.finished)!=="boolean")return null;return!!(S.finished||R===!1&&S.ended===!0&&S.length===0)}function L(v){if(!$(v))return null;if(v.readableEnded===!0)return!0;const R=v._readableState;if(!R||R.errored)return!1;if(typeof(R===null||R===void 0?void 0:R.ended)!=="boolean")return null;return R.ended}function j(v,R){if(!$(v))return null;const S=v._readableState;if(S!==null&&S!==void 0&&S.errored)return!1;if(typeof(S===null||S===void 0?void 0:S.endEmitted)!=="boolean")return null;return!!(S.endEmitted||R===!1&&S.ended===!0&&S.length===0)}function N(v){if(v&&v[B]!=null)return v[B];if(typeof(v===null||v===void 0?void 0:v.readable)!=="boolean")return null;if(G(v))return!1;return $(v)&&v.readable&&!j(v)}function A(v){if(typeof(v===null||v===void 0?void 0:v.writable)!=="boolean")return null;if(G(v))return!1;return z(v)&&v.writable&&!M(v)}function E(v,R){if(!U(v))return null;if(G(v))return!0;if((R===null||R===void 0?void 0:R.readable)!==!1&&N(v))return!1;if((R===null||R===void 0?void 0:R.writable)!==!1&&A(v))return!1;return!0}function I(v){var R,S;if(!U(v))return null;if(v.writableErrored)return v.writableErrored;return(R=(S=v._writableState)===null||S===void 0?void 0:S.errored)!==null&&R!==void 0?R:null}function T(v){var R,S;if(!U(v))return null;if(v.readableErrored)return v.readableErrored;return(R=(S=v._readableState)===null||S===void 0?void 0:S.errored)!==null&&R!==void 0?R:null}function P(v){if(!U(v))return null;if(typeof v.closed==="boolean")return v.closed;const{_writableState:R,_readableState:S}=v;if(typeof(R===null||R===void 0?void 0:R.closed)==="boolean"||typeof(S===null||S===void 0?void 0:S.closed)==="boolean")return(R===null||R===void 0?void 0:R.closed)||(S===null||S===void 0?void 0:S.closed);if(typeof v._closed==="boolean"&&x(v))return v._closed;return null}function x(v){return typeof v._closed==="boolean"&&typeof v._defaultKeepAlive==="boolean"&&typeof v._removedConnection==="boolean"&&typeof v._removedContLen==="boolean"}function O(v){return typeof v._sent100==="boolean"&&x(v)}function _(v){var R;return typeof v._consuming==="boolean"&&typeof v._dumped==="boolean"&&((R=v.req)===null||R===void 0?void 0:R.upgradeOrConnect)===void 0}function C(v){if(!U(v))return null;const{_writableState:R,_readableState:S}=v,g=R||S;return!g&&O(v)||!!(g&&g.autoDestroy&&g.emitClose&&g.closed===!1)}function D(v){var R;return!!(v&&((R=v[Y])!==null&&R!==void 0?R:v.readableDidRead||v.readableAborted))}function w(v){var R,S,g,f,k,y,h,p,u,b;return!!(v&&((R=(S=(g=(f=(k=(y=v[Z])!==null&&y!==void 0?y:v.readableErrored)!==null&&k!==void 0?k:v.writableErrored)!==null&&f!==void 0?f:(h=v._readableState)===null||h===void 0?void 0:h.errorEmitted)!==null&&g!==void 0?g:(p=v._writableState)===null||p===void 0?void 0:p.errorEmitted)!==null&&S!==void 0?S:(u=v._readableState)===null||u===void 0?void 0:u.errored)!==null&&R!==void 0?R:(b=v._writableState)===null||b===void 0?void 0:b.errored))}Q.exports={kDestroyed:K,isDisturbed:D,kIsDisturbed:Y,isErrored:w,kIsErrored:Z,isReadable:N,kIsReadable:B,isClosed:P,isDestroyed:G,isDuplexNodeStream:V,isFinished:E,isIterable:W,isReadableNodeStream:$,isReadableEnded:L,isReadableFinished:j,isReadableErrored:T,isNodeStream:U,isWritable:A,isWritableNodeStream:z,isWritableEnded:M,isWritableFinished:F,isWritableErrored:I,isServerRequest:_,isServerResponse:O,willEmitClose:C}}}),rq=mq({"node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(q,Q){var{AbortError:X,codes:J}=oq(),{ERR_INVALID_ARG_TYPE:H,ERR_STREAM_PREMATURE_CLOSE:K}=J,{once:Z}=_q(),{validateAbortSignal:B,validateFunction:Y,validateObject:$}=sq(),{Promise:z}=Oq(),{isClosed:V,isReadable:U,isReadableNodeStream:W,isReadableFinished:G,isReadableErrored:M,isWritable:F,isWritableNodeStream:L,isWritableFinished:j,isWritableErrored:N,isNodeStream:A,willEmitClose:E}=aq();function I(O){return O.setHeader&&typeof O.abort==="function"}var T=()=>{};function P(O,_,C){var D,w;if(arguments.length===2)C=_,_={};else if(_==null)_={};else $(_,"options");Y(C,"callback"),B(_.signal,"options.signal"),C=Z(C);const v=(D=_.readable)!==null&&D!==void 0?D:W(O),R=(w=_.writable)!==null&&w!==void 0?w:L(O);if(!A(O))throw new H("stream","Stream",O);const{_writableState:S,_readableState:g}=O,f=()=>{if(!O.writable)h()};let k=E(O)&&W(O)===v&&L(O)===R,y=j(O,!1);const h=()=>{if(y=!0,O.destroyed)k=!1;if(k&&(!O.readable||v))return;if(!v||p)C.call(O)};let p=G(O,!1);const u=()=>{if(p=!0,O.destroyed)k=!1;if(k&&(!O.writable||R))return;if(!R||y)C.call(O)},b=(i)=>{C.call(O,i)};let m=V(O);const c=()=>{m=!0;const i=N(O)||M(O);if(i&&typeof i!=="boolean")return C.call(O,i);if(v&&!p&&W(O,!0)){if(!G(O,!1))return C.call(O,new K)}if(R&&!y){if(!j(O,!1))return C.call(O,new K)}C.call(O)},d=()=>{O.req.on("finish",h)};if(I(O)){if(O.on("complete",h),!k)O.on("abort",c);if(O.req)d();else O.on("request",d)}else if(R&&!S)O.on("end",f),O.on("close",f);if(!k&&typeof O.aborted==="boolean")O.on("aborted",c);if(O.on("end",u),O.on("finish",h),_.error!==!1)O.on("error",b);if(O.on("close",c),m)Iq(c);else if(S!==null&&S!==void 0&&S.errorEmitted||g!==null&&g!==void 0&&g.errorEmitted){if(!k)Iq(c)}else if(!v&&(!k||U(O))&&(y||F(O)===!1))Iq(c);else if(!R&&(!k||F(O))&&(p||U(O)===!1))Iq(c);else if(g&&O.req&&O.aborted)Iq(c);const l=()=>{if(C=T,O.removeListener("aborted",c),O.removeListener("complete",h),O.removeListener("abort",c),O.removeListener("request",d),O.req)O.req.removeListener("finish",h);O.removeListener("end",f),O.removeListener("close",f),O.removeListener("finish",h),O.removeListener("end",u),O.removeListener("error",b),O.removeListener("close",c)};if(_.signal&&!m){const i=()=>{const n=C;l(),n.call(O,new X(void 0,{cause:_.signal.reason}))};if(_.signal.aborted)Iq(i);else{const n=C;C=Z((...o)=>{_.signal.removeEventListener("abort",i),n.apply(O,o)}),_.signal.addEventListener("abort",i)}}return l}function x(O,_){return new z((C,D)=>{P(O,_,(w)=>{if(w)D(w);else C()})})}Q.exports=P,Q.exports.finished=x}}),tq=mq({"node_modules/readable-stream/lib/internal/streams/operators.js"(q,Q){var{codes:{ERR_INVALID_ARG_TYPE:X,ERR_MISSING_ARGS:J,ERR_OUT_OF_RANGE:H},AbortError:K}=oq(),{validateAbortSignal:Z,validateInteger:B,validateObject:Y}=sq(),$=Oq().Symbol("kWeak"),{finished:z}=rq(),{ArrayPrototypePush:V,MathFloor:U,Number:W,NumberIsNaN:G,Promise:M,PromiseReject:F,PromisePrototypeCatch:L,Symbol:j}=Oq(),N=j("kEmpty"),A=j("kEof");function E(f,k){if(typeof f!=="function")throw new X("fn",["Function","AsyncFunction"],f);if(k!=null)Y(k,"options");if((k===null||k===void 0?void 0:k.signal)!=null)Z(k.signal,"options.signal");let y=1;if((k===null||k===void 0?void 0:k.concurrency)!=null)y=U(k.concurrency);return B(y,"concurrency",1),async function*h(){var p,u;const b=new AbortController,m=this,c=[],d=b.signal,l={signal:d},i=()=>b.abort();if(k!==null&&k!==void 0&&(p=k.signal)!==null&&p!==void 0&&p.aborted)i();k===null||k===void 0||(u=k.signal)===null||u===void 0||u.addEventListener("abort",i);let n,o,s=!1;function a(){s=!0}async function r(){try{for await(let qq of m){var t;if(s)return;if(d.aborted)throw new K;try{qq=f(qq,l)}catch(Qq){qq=F(Qq)}if(qq===N)continue;if(typeof((t=qq)===null||t===void 0?void 0:t.catch)==="function")qq.catch(a);if(c.push(qq),n)n(),n=null;if(!s&&c.length&&c.length>=y)await new M((Qq)=>{o=Qq})}c.push(A)}catch(qq){const Qq=F(qq);L(Qq,a),c.push(Qq)}finally{var e;if(s=!0,n)n(),n=null;k===null||k===void 0||(e=k.signal)===null||e===void 0||e.removeEventListener("abort",i)}}r();try{while(!0){while(c.length>0){const t=await c[0];if(t===A)return;if(d.aborted)throw new K;if(t!==N)yield t;if(c.shift(),o)o(),o=null}await new M((t)=>{n=t})}}finally{if(b.abort(),s=!0,o)o(),o=null}}.call(this)}function I(f=void 0){if(f!=null)Y(f,"options");if((f===null||f===void 0?void 0:f.signal)!=null)Z(f.signal,"options.signal");return async function*k(){let y=0;for await(let p of this){var h;if(f!==null&&f!==void 0&&(h=f.signal)!==null&&h!==void 0&&h.aborted)throw new K({cause:f.signal.reason});yield[y++,p]}}.call(this)}async function T(f,k=void 0){for await(let y of _.call(this,f,k))return!0;return!1}async function P(f,k=void 0){if(typeof f!=="function")throw new X("fn",["Function","AsyncFunction"],f);return!await T.call(this,async(...y)=>{return!await f(...y)},k)}async function x(f,k){for await(let y of _.call(this,f,k))return y;return}async function O(f,k){if(typeof f!=="function")throw new X("fn",["Function","AsyncFunction"],f);async function y(h,p){return await f(h,p),N}for await(let h of E.call(this,y,k));}function _(f,k){if(typeof f!=="function")throw new X("fn",["Function","AsyncFunction"],f);async function y(h,p){if(await f(h,p))return h;return N}return E.call(this,y,k)}var C=class extends J{constructor(){super("reduce");this.message="Reduce of an empty stream requires an initial value"}};async function D(f,k,y){var h;if(typeof f!=="function")throw new X("reducer",["Function","AsyncFunction"],f);if(y!=null)Y(y,"options");if((y===null||y===void 0?void 0:y.signal)!=null)Z(y.signal,"options.signal");let p=arguments.length>1;if(y!==null&&y!==void 0&&(h=y.signal)!==null&&h!==void 0&&h.aborted){const d=new K(void 0,{cause:y.signal.reason});throw this.once("error",()=>{}),await z(this.destroy(d)),d}const u=new AbortController,b=u.signal;if(y!==null&&y!==void 0&&y.signal){const d={once:!0,[$]:this};y.signal.addEventListener("abort",()=>u.abort(),d)}let m=!1;try{for await(let d of this){var c;if(m=!0,y!==null&&y!==void 0&&(c=y.signal)!==null&&c!==void 0&&c.aborted)throw new K;if(!p)k=d,p=!0;else k=await f(k,d,{signal:b})}if(!m&&!p)throw new C}finally{u.abort()}return k}async function w(f){if(f!=null)Y(f,"options");if((f===null||f===void 0?void 0:f.signal)!=null)Z(f.signal,"options.signal");const k=[];for await(let h of this){var y;if(f!==null&&f!==void 0&&(y=f.signal)!==null&&y!==void 0&&y.aborted)throw new K(void 0,{cause:f.signal.reason});V(k,h)}return k}function v(f,k){const y=E.call(this,f,k);return async function*h(){for await(let p of y)yield*p}.call(this)}function R(f){if(f=W(f),G(f))return 0;if(f<0)throw new H("number",">= 0",f);return f}function S(f,k=void 0){if(k!=null)Y(k,"options");if((k===null||k===void 0?void 0:k.signal)!=null)Z(k.signal,"options.signal");return f=R(f),async function*y(){var h;if(k!==null&&k!==void 0&&(h=k.signal)!==null&&h!==void 0&&h.aborted)throw new K;for await(let u of this){var p;if(k!==null&&k!==void 0&&(p=k.signal)!==null&&p!==void 0&&p.aborted)throw new K;if(f--<=0)yield u}}.call(this)}function g(f,k=void 0){if(k!=null)Y(k,"options");if((k===null||k===void 0?void 0:k.signal)!=null)Z(k.signal,"options.signal");return f=R(f),async function*y(){var h;if(k!==null&&k!==void 0&&(h=k.signal)!==null&&h!==void 0&&h.aborted)throw new K;for await(let u of this){var p;if(k!==null&&k!==void 0&&(p=k.signal)!==null&&p!==void 0&&p.aborted)throw new K;if(f-- >0)yield u;else return}}.call(this)}Q.exports.streamReturningOperators={asIndexedPairs:I,drop:S,filter:_,flatMap:v,map:E,take:g},Q.exports.promiseReturningOperators={every:P,forEach:O,reduce:D,toArray:w,some:T,find:x}}}),eq=mq({"node_modules/readable-stream/lib/internal/streams/destroy.js"(q,Q){var{aggregateTwoErrors:X,codes:{ERR_MULTIPLE_CALLBACK:J},AbortError:H}=oq(),{Symbol:K}=Oq(),{kDestroyed:Z,isDestroyed:B,isFinished:Y,isServerRequest:$}=aq(),z="#kDestroy",V="#kConstruct";function U(_,C,D){if(_){if(_.stack,C&&!C.errored)C.errored=_;if(D&&!D.errored)D.errored=_}}function W(_,C){const D=this._readableState,w=this._writableState,v=w||D;if(w&&w.destroyed||D&&D.destroyed){if(typeof C==="function")C();return this}if(U(_,w,D),w)w.destroyed=!0;if(D)D.destroyed=!0;if(!v.constructed)this.once(z,(R)=>{G(this,X(R,_),C)});else G(this,_,C);return this}function G(_,C,D){let w=!1;function v(R){if(w)return;w=!0;const{_readableState:S,_writableState:g}=_;if(U(R,g,S),g)g.closed=!0;if(S)S.closed=!0;if(typeof D==="function")D(R);if(R)Iq(M,_,R);else Iq(F,_)}try{_._destroy(C||null,v)}catch(R){v(R)}}function M(_,C){L(_,C),F(_)}function F(_){const{_readableState:C,_writableState:D}=_;if(D)D.closeEmitted=!0;if(C)C.closeEmitted=!0;if(D&&D.emitClose||C&&C.emitClose)_.emit("close")}function L(_,C){const D=_?._readableState,w=_?._writableState;if(w?.errorEmitted||D?.errorEmitted)return;if(w)w.errorEmitted=!0;if(D)D.errorEmitted=!0;_?.emit?.("error",C)}function j(){const _=this._readableState,C=this._writableState;if(_)_.constructed=!0,_.closed=!1,_.closeEmitted=!1,_.destroyed=!1,_.errored=null,_.errorEmitted=!1,_.reading=!1,_.ended=_.readable===!1,_.endEmitted=_.readable===!1;if(C)C.constructed=!0,C.destroyed=!1,C.closed=!1,C.closeEmitted=!1,C.errored=null,C.errorEmitted=!1,C.finalCalled=!1,C.prefinished=!1,C.ended=C.writable===!1,C.ending=C.writable===!1,C.finished=C.writable===!1}function N(_,C,D){const w=_?._readableState,v=_?._writableState;if(v&&v.destroyed||w&&w.destroyed)return this;if(w&&w.autoDestroy||v&&v.autoDestroy)_.destroy(C);else if(C){if(Error.captureStackTrace(C),v&&!v.errored)v.errored=C;if(w&&!w.errored)w.errored=C;if(D)Iq(L,_,C);else L(_,C)}}function A(_,C){if(typeof _._construct!=="function")return;const{_readableState:D,_writableState:w}=_;if(D)D.constructed=!1;if(w)w.constructed=!1;if(_.once(V,C),_.listenerCount(V)>1)return;Iq(E,_)}function E(_){let C=!1;function D(w){if(C){N(_,w!==null&&w!==void 0?w:new J);return}C=!0;const{_readableState:v,_writableState:R}=_,S=R||v;if(v)v.constructed=!0;if(R)R.constructed=!0;if(S.destroyed)_.emit(z,w);else if(w)N(_,w,!0);else Iq(I,_)}try{_._construct(D)}catch(w){D(w)}}function I(_){_.emit(V)}function T(_){return _&&_.setHeader&&typeof _.abort==="function"}function P(_){_.emit("close")}function x(_,C){_.emit("error",C),Iq(P,_)}function O(_,C){if(!_||B(_))return;if(!C&&!Y(_))C=new H;if($(_))_.socket=null,_.destroy(C);else if(T(_))_.abort();else if(T(_.req))_.req.abort();else if(typeof _.destroy==="function")_.destroy(C);else if(typeof _.close==="function")_.close();else if(C)Iq(x,_);else Iq(P,_);if(!_.destroyed)_[Z]=!0}Q.exports={construct:A,destroyer:O,destroy:W,undestroy:j,errorOrDestroy:N}}}),qQ=mq({"node_modules/readable-stream/lib/internal/streams/legacy.js"(q,Q){var{ArrayIsArray:X,ObjectSetPrototypeOf:J}=Oq();function H(Z){if(!(this instanceof H))return new H(Z);Pq.call(this,Z)}J(H.prototype,Pq.prototype),J(H,Pq),H.prototype.pipe=function(Z,B){const Y=this;function $(F){if(Z.writable&&Z.write(F)===!1&&Y.pause)Y.pause()}Y.on("data",$);function z(){if(Y.readable&&Y.resume)Y.resume()}if(Z.on("drain",z),!Z._isStdio&&(!B||B.end!==!1))Y.on("end",U),Y.on("close",W);let V=!1;function U(){if(V)return;V=!0,Z.end()}function W(){if(V)return;if(V=!0,typeof Z.destroy==="function")Z.destroy()}function G(F){if(M(),Pq.listenerCount(this,"error")===0)this.emit("error",F)}K(Y,"error",G),K(Z,"error",G);function M(){Y.removeListener("data",$),Z.removeListener("drain",z),Y.removeListener("end",U),Y.removeListener("close",W),Y.removeListener("error",G),Z.removeListener("error",G),Y.removeListener("end",M),Y.removeListener("close",M),Z.removeListener("close",M)}return Y.on("end",M),Y.on("close",M),Z.on("close",M),Z.emit("pipe",Y),Z};function K(Z,B,Y){if(typeof Z.prependListener==="function")return Z.prependListener(B,Y);if(!Z._events||!Z._events[B])Z.on(B,Y);else if(X(Z._events[B]))Z._events[B].unshift(Y);else Z._events[B]=[Y,Z._events[B]]}Q.exports={Stream:H,prependListener:K}}}),QQ=mq({"node_modules/readable-stream/lib/internal/streams/add-abort-signal.js"(q,Q){var{AbortError:X,codes:J}=oq(),H=rq(),{ERR_INVALID_ARG_TYPE:K}=J,Z=(Y,$)=>{if(typeof Y!=="object"||!("aborted"in Y))throw new K($,"AbortSignal",Y)};function B(Y){return!!(Y&&typeof Y.pipe==="function")}Q.exports.addAbortSignal=function Y($,z){if(Z($,"signal"),!B(z))throw new K("stream","stream.Stream",z);return Q.exports.addAbortSignalNoValidate($,z)},Q.exports.addAbortSignalNoValidate=function(Y,$){if(typeof Y!=="object"||!("aborted"in Y))return $;const z=()=>{$.destroy(new X(void 0,{cause:Y.reason}))};if(Y.aborted)z();else Y.addEventListener("abort",z),H($,()=>Y.removeEventListener("abort",z));return $}}}),XQ=mq({"node_modules/readable-stream/lib/internal/streams/state.js"(q,Q){var{MathFloor:X,NumberIsInteger:J}=Oq(),{ERR_INVALID_ARG_VALUE:H}=oq().codes;function K(Y,$,z){return Y.highWaterMark!=null?Y.highWaterMark:$?Y[z]:null}function Z(Y){return Y?16:16384}function B(Y,$,z,V){const U=K($,V,z);if(U!=null){if(!J(U)||U<0){const W=V?`options.${z}`:"options.highWaterMark";throw new H(W,U)}return X(U)}return Z(Y.objectMode)}Q.exports={getHighWaterMark:B,getDefaultHighWaterMark:Z}}}),JQ=mq({"node_modules/readable-stream/lib/internal/streams/from.js"(q,Q){var{PromisePrototypeThen:X,SymbolAsyncIterator:J,SymbolIterator:H}=Oq(),{ERR_INVALID_ARG_TYPE:K,ERR_STREAM_NULL_VALUES:Z}=oq().codes;function B(Y,$,z){let V;if(typeof $==="string"||$ instanceof Buffer)return new Y({objectMode:!0,...z,read(){this.push($),this.push(null)}});let U;if($&&$[J])U=!0,V=$[J]();else if($&&$[H])U=!1,V=$[H]();else throw new K("iterable",["Iterable"],$);const W=new Y({objectMode:!0,highWaterMark:1,...z});let G=!1;W._read=function(){if(!G)G=!0,F()},W._destroy=function(L,j){X(M(L),()=>Iq(j,L),(N)=>Iq(j,N||L))};async function M(L){const j=L!==void 0&&L!==null,N=typeof V.throw==="function";if(j&&N){const{value:A,done:E}=await V.throw(L);if(await A,E)return}if(typeof V.return==="function"){const{value:A}=await V.return();await A}}async function F(){for(;;){try{const{value:L,done:j}=U?await V.next():V.next();if(j)W.push(null);else{const N=L&&typeof L.then==="function"?await L:L;if(N===null)throw G=!1,new Z;else if(W.push(N))continue;else G=!1}}catch(L){W.destroy(L)}break}}return W}Q.exports=B}}),HQ,KQ,ZQ=mq({"node_modules/readable-stream/lib/internal/streams/readable.js"(q,Q){var{ArrayPrototypeIndexOf:X,NumberIsInteger:J,NumberIsNaN:H,NumberParseInt:K,ObjectDefineProperties:Z,ObjectKeys:B,ObjectSetPrototypeOf:Y,Promise:$,SafeSet:z,SymbolAsyncIterator:V,Symbol:U}=Oq(),W=globalThis[Symbol.for("Bun.lazy")]("bun:stream").ReadableState,{Stream:G,prependListener:M}=qQ();function F(qq){if(!(this instanceof F))return new F(qq);const Qq=this instanceof Cq();if(this._readableState=new W(qq,this,Qq),qq){const{read:Xq,destroy:Jq,construct:Hq,signal:Kq}=qq;if(typeof Xq==="function")this._read=Xq;if(typeof Jq==="function")this._destroy=Jq;if(typeof Hq==="function")this._construct=Hq;if(Kq&&!Qq)N(Kq,this)}G.call(this,qq),_.construct(this,()=>{if(this._readableState.needReadable)x(this,this._readableState)})}Y(F.prototype,G.prototype),Y(F,G),F.prototype.on=function(qq,Qq){const Xq=G.prototype.on.call(this,qq,Qq),Jq=this._readableState;if(qq==="data")if(Jq.readableListening=this.listenerCount("readable")>0,Jq.flowing!==!1)Aq&&Nq("in flowing mode!",this.__id),this.resume();else Aq&&Nq("in readable mode!",this.__id);else if(qq==="readable"){if(Aq&&Nq("readable listener added!",this.__id),!Jq.endEmitted&&!Jq.readableListening){if(Jq.readableListening=Jq.needReadable=!0,Jq.flowing=!1,Jq.emittedReadable=!1,Aq&&Nq("on readable - state.length, reading, emittedReadable",Jq.length,Jq.reading,Jq.emittedReadable,this.__id),Jq.length)O(this,Jq);else if(!Jq.reading)Iq(l,this)}else if(Jq.endEmitted)Aq&&Nq("end already emitted...",this.__id)}return Xq};class L extends F{#q;#Q;#X;#J;constructor(qq,Qq){const{objectMode:Xq,highWaterMark:Jq,encoding:Hq,signal:Kq}=qq;super({objectMode:Xq,highWaterMark:Jq,encoding:Hq,signal:Kq});this.#X=[],this.#q=void 0,this.#J=Qq,this.#Q=!1}#H(){var qq=this.#X,Qq=0,Xq=qq.length;for(;Qq0)this.#X=[];return!1}#K(qq){qq.releaseLock(),this.#q=void 0,this.#Q=!0,this.push(null);return}async _read(){Aq&&Nq("ReadableFromWeb _read()",this.__id);var qq=this.#J,Qq=this.#q;if(qq)Qq=this.#q=qq.getReader(),this.#J=void 0;else if(this.#H())return;var Xq;try{do{var Jq=!1,Hq;const Kq=Qq.readMany();if(xq(Kq)){if({done:Jq,value:Hq}=await Kq,this.#Q){this.#X.push(...Hq);return}}else({done:Jq,value:Hq}=Kq);if(Jq){this.#K(Qq);return}if(!this.push(Hq[0])){this.#X=Hq.slice(1);return}for(let Zq=1,Bq=Hq.length;Zq{this.#Q=!0,Qq(qq)});return}try{Qq(qq)}catch(Jq){globalThis.reportError(Jq)}}}KQ=L;function j(qq,Qq={}){if(!cq(qq))throw new D("readableStream","ReadableStream",qq);g(Qq,"options");const{highWaterMark:Xq,encoding:Jq,objectMode:Hq=!1,signal:Kq}=Qq;if(Jq!==void 0&&!Buffer.isEncoding(Jq))throw new nq(Jq,"options.encoding");return dq(Hq,"options.objectMode"),NQ(F,qq,Qq)||new L({highWaterMark:Xq,encoding:Jq,objectMode:Hq,signal:Kq},qq)}Q.exports=F,HQ=j;var{addAbortSignal:N}=QQ(),A=rq();const{maybeReadMore:E,resume:I,emitReadable:T,onEofChunk:P}=globalThis[Symbol.for("Bun.lazy")]("bun:stream");function x(qq,Qq){process.nextTick(E,qq,Qq)}function O(qq,Qq){Aq&&Nq("NativeReadable - emitReadable",qq.__id),T(qq,Qq)}var _=eq(),{aggregateTwoErrors:C,codes:{ERR_INVALID_ARG_TYPE:D,ERR_METHOD_NOT_IMPLEMENTED:w,ERR_OUT_OF_RANGE:v,ERR_STREAM_PUSH_AFTER_EOF:R,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:S}}=oq(),{validateObject:g}=sq(),f=JQ(),k=()=>{},{errorOrDestroy:y}=_;F.prototype.destroy=_.destroy,F.prototype._undestroy=_.undestroy,F.prototype._destroy=function(qq,Qq){Qq(qq)},F.prototype[Pq.captureRejectionSymbol]=function(qq){this.destroy(qq)},F.prototype.push=function(qq,Qq){return h(this,qq,Qq,!1)},F.prototype.unshift=function(qq,Qq){return h(this,qq,Qq,!0)};function h(qq,Qq,Xq,Jq){Aq&&Nq("readableAddChunk",Qq,qq.__id);const Hq=qq._readableState;let Kq;if(!Hq.objectMode){if(typeof Qq==="string"){if(Xq=Xq||Hq.defaultEncoding,Hq.encoding!==Xq)if(Jq&&Hq.encoding)Qq=Buffer.from(Qq,Xq).toString(Hq.encoding);else Qq=Buffer.from(Qq,Xq),Xq=""}else if(Qq instanceof Buffer)Xq="";else if(G._isUint8Array(Qq)){if(Jq||!Hq.decoder)Qq=G._uint8ArrayToBuffer(Qq);Xq=""}else if(Qq!=null)Kq=new D("chunk",["string","Buffer","Uint8Array"],Qq)}if(Kq)y(qq,Kq);else if(Qq===null)Hq.reading=!1,P(qq,Hq);else if(Hq.objectMode||Qq&&Qq.length>0)if(Jq)if(Hq.endEmitted)y(qq,new S);else if(Hq.destroyed||Hq.errored)return!1;else p(qq,Hq,Qq,!0);else if(Hq.ended)y(qq,new R);else if(Hq.destroyed||Hq.errored)return!1;else if(Hq.reading=!1,Hq.decoder&&!Xq)if(Qq=Hq.decoder.write(Qq),Hq.objectMode||Qq.length!==0)p(qq,Hq,Qq,!1);else x(qq,Hq);else p(qq,Hq,Qq,!1);else if(!Jq)Hq.reading=!1,x(qq,Hq);return!Hq.ended&&(Hq.length0){if(Qq.multiAwaitDrain)Qq.awaitDrainWriters.clear();else Qq.awaitDrainWriters=null;Qq.dataEmitted=!0,qq.emit("data",Xq)}else{if(Qq.length+=Qq.objectMode?1:Xq.length,Jq)Qq.buffer.unshift(Xq);else Qq.buffer.push(Xq);if(Aq&&Nq("needReadable @ addChunk",Qq.needReadable,qq.__id),Qq.needReadable)O(qq,Qq)}x(qq,Qq)}F.prototype.isPaused=function(){const qq=this._readableState;return qq.paused===!0||qq.flowing===!1},F.prototype.setEncoding=function(qq){const Qq=new Sq(qq);this._readableState.decoder=Qq,this._readableState.encoding=this._readableState.decoder.encoding;const Xq=this._readableState.buffer;let Jq="";for(let Hq=Xq.length;Hq>0;Hq--)Jq+=Qq.write(Xq.shift());if(Jq!=="")Xq.push(Jq);return this._readableState.length=Jq.length,this};var u=1073741824;function b(qq){if(qq>u)throw new v("size","<= 1GiB",qq);else qq--,qq|=qq>>>1,qq|=qq>>>2,qq|=qq>>>4,qq|=qq>>>8,qq|=qq>>>16,qq++;return qq}function m(qq,Qq){if(qq<=0||Qq.length===0&&Qq.ended)return 0;if(Qq.objectMode)return 1;if(H(qq)){if(Qq.flowing&&Qq.length)return Qq.buffer.first().length;return Qq.length}if(qq<=Qq.length)return qq;return Qq.ended?Qq.length:0}F.prototype.read=function(qq){if(Aq&&Nq("read - n =",qq,this.__id),!J(qq))qq=K(qq,10);const Qq=this._readableState,Xq=qq;if(qq>Qq.highWaterMark)Qq.highWaterMark=b(qq);if(qq!==0)Qq.emittedReadable=!1;if(qq===0&&Qq.needReadable&&((Qq.highWaterMark!==0?Qq.length>=Qq.highWaterMark:Qq.length>0)||Qq.ended)){if(Aq&&Nq("read: emitReadable or endReadable",Qq.length,Qq.ended,this.__id),Qq.length===0&&Qq.ended)s(this);else O(this,Qq);return null}if(qq=m(qq,Qq),qq===0&&Qq.ended){if(Aq&&Nq("read: calling endReadable if length 0 -- length, state.ended",Qq.length,Qq.ended,this.__id),Qq.length===0)s(this);return null}let Jq=Qq.needReadable;if(Aq&&Nq("need readable",Jq,this.__id),Qq.length===0||Qq.length-qq0)Kq=o(qq,Qq);else Kq=null;if(Aq&&Nq("ret @ read",Kq,this.__id),Kq===null)Qq.needReadable=Qq.length<=Qq.highWaterMark,Aq&&Nq("state.length while ret = null",Qq.length,this.__id),qq=0;else if(Qq.length-=qq,Qq.multiAwaitDrain)Qq.awaitDrainWriters.clear();else Qq.awaitDrainWriters=null;if(Qq.length===0){if(!Qq.ended)Qq.needReadable=!0;if(Xq!==qq&&Qq.ended)s(this)}if(Kq!==null&&!Qq.errorEmitted&&!Qq.closeEmitted)Qq.dataEmitted=!0,this.emit("data",Kq);return Kq},F.prototype._read=function(qq){throw new w("_read()")},F.prototype.pipe=function(qq,Qq){const Xq=this,Jq=this._readableState;if(Jq.pipes.length===1){if(!Jq.multiAwaitDrain)Jq.multiAwaitDrain=!0,Jq.awaitDrainWriters=new z(Jq.awaitDrainWriters?[Jq.awaitDrainWriters]:[])}Jq.pipes.push(qq),Aq&&Nq("pipe count=%d opts=%j",Jq.pipes.length,Qq,Xq.__id);const Kq=(!Qq||Qq.end!==!1)&&qq!==process.stdout&&qq!==process.stderr?Bq:Fq;if(Jq.endEmitted)Iq(Kq);else Xq.once("end",Kq);qq.on("unpipe",Zq);function Zq(Lq,jq){if(Aq&&Nq("onunpipe",Xq.__id),Lq===Xq){if(jq&&jq.hasUnpiped===!1)jq.hasUnpiped=!0,zq()}}function Bq(){Aq&&Nq("onend",Xq.__id),qq.end()}let Yq,$q=!1;function zq(){if(Aq&&Nq("cleanup",Xq.__id),qq.removeListener("close",Gq),qq.removeListener("finish",Mq),Yq)qq.removeListener("drain",Yq);if(qq.removeListener("error",Wq),qq.removeListener("unpipe",Zq),Xq.removeListener("end",Bq),Xq.removeListener("end",Fq),Xq.removeListener("data",Uq),$q=!0,Yq&&Jq.awaitDrainWriters&&(!qq._writableState||qq._writableState.needDrain))Yq()}function Vq(){if(!$q){if(Jq.pipes.length===1&&Jq.pipes[0]===qq)Aq&&Nq("false write response, pause",0,Xq.__id),Jq.awaitDrainWriters=qq,Jq.multiAwaitDrain=!1;else if(Jq.pipes.length>1&&Jq.pipes.includes(qq))Aq&&Nq("false write response, pause",Jq.awaitDrainWriters.size,Xq.__id),Jq.awaitDrainWriters.add(qq);Xq.pause()}if(!Yq)Yq=c(Xq,qq),qq.on("drain",Yq)}Xq.on("data",Uq);function Uq(Lq){Aq&&Nq("ondata",Xq.__id);const jq=qq.write(Lq);if(Aq&&Nq("dest.write",jq,Xq.__id),jq===!1)Vq()}function Wq(Lq){if(Nq("onerror",Lq),Fq(),qq.removeListener("error",Wq),qq.listenerCount("error")===0){const jq=qq._writableState||qq._readableState;if(jq&&!jq.errorEmitted)y(qq,Lq);else qq.emit("error",Lq)}}M(qq,"error",Wq);function Gq(){qq.removeListener("finish",Mq),Fq()}qq.once("close",Gq);function Mq(){Nq("onfinish"),qq.removeListener("close",Gq),Fq()}qq.once("finish",Mq);function Fq(){Nq("unpipe"),Xq.unpipe(qq)}if(qq.emit("pipe",Xq),qq.writableNeedDrain===!0){if(Jq.flowing)Vq()}else if(!Jq.flowing)Nq("pipe resume"),Xq.resume();return qq};function c(qq,Qq){return function Xq(){const Jq=qq._readableState;if(Jq.awaitDrainWriters===Qq)Nq("pipeOnDrain",1),Jq.awaitDrainWriters=null;else if(Jq.multiAwaitDrain)Nq("pipeOnDrain",Jq.awaitDrainWriters.size),Jq.awaitDrainWriters.delete(Qq);if((!Jq.awaitDrainWriters||Jq.awaitDrainWriters.size===0)&&qq.listenerCount("data"))qq.resume()}}F.prototype.unpipe=function(qq){const Qq=this._readableState,Xq={hasUnpiped:!1};if(Qq.pipes.length===0)return this;if(!qq){const Hq=Qq.pipes;Qq.pipes=[],this.pause();for(let Kq=0;Kq0,Qq.resumeScheduled&&Qq.paused===!1)Qq.flowing=!0;else if(qq.listenerCount("data")>0)qq.resume();else if(!Qq.readableListening)Qq.flowing=null}function l(qq){Aq&&Nq("on readable nextTick, calling read(0)",qq.__id),qq.read(0)}F.prototype.resume=function(){const qq=this._readableState;if(!qq.flowing)Aq&&Nq("resume",this.__id),qq.flowing=!qq.readableListening,I(this,qq);return qq.paused=!1,this},F.prototype.pause=function(){if(Aq&&Nq("call pause flowing=%j",this._readableState.flowing,this.__id),this._readableState.flowing!==!1)Aq&&Nq("pause",this.__id),this._readableState.flowing=!1,this.emit("pause");return this._readableState.paused=!0,this},F.prototype.wrap=function(qq){let Qq=!1;qq.on("data",(Jq)=>{if(!this.push(Jq)&&qq.pause)Qq=!0,qq.pause()}),qq.on("end",()=>{this.push(null)}),qq.on("error",(Jq)=>{y(this,Jq)}),qq.on("close",()=>{this.destroy()}),qq.on("destroy",()=>{this.destroy()}),this._read=()=>{if(Qq&&qq.resume)Qq=!1,qq.resume()};const Xq=B(qq);for(let Jq=1;Jq{Hq=Zq?C(Hq,Zq):null,Xq(),Xq=k});try{while(!0){const Zq=qq.destroyed?null:qq.read();if(Zq!==null)yield Zq;else if(Hq)throw Hq;else if(Hq===null)return;else await new $(Jq)}}catch(Zq){throw Hq=C(Hq,Zq),Hq}finally{if((Hq||(Qq===null||Qq===void 0?void 0:Qq.destroyOnReturn)!==!1)&&(Hq===void 0||qq._readableState.autoDestroy))_.destroyer(qq,null);else qq.off("readable",Jq),Kq()}}Z(F.prototype,{readable:{get(){const qq=this._readableState;return!!qq&&qq.readable!==!1&&!qq.destroyed&&!qq.errorEmitted&&!qq.endEmitted},set(qq){if(this._readableState)this._readableState.readable=!!qq}},readableDidRead:{enumerable:!1,get:function(){return this._readableState.dataEmitted}},readableAborted:{enumerable:!1,get:function(){return!!(this._readableState.readable!==!1&&(this._readableState.destroyed||this._readableState.errored)&&!this._readableState.endEmitted)}},readableHighWaterMark:{enumerable:!1,get:function(){return this._readableState.highWaterMark}},readableBuffer:{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}},readableFlowing:{enumerable:!1,get:function(){return this._readableState.flowing},set:function(qq){if(this._readableState)this._readableState.flowing=qq}},readableLength:{enumerable:!1,get(){return this._readableState.length}},readableObjectMode:{enumerable:!1,get(){return this._readableState?this._readableState.objectMode:!1}},readableEncoding:{enumerable:!1,get(){return this._readableState?this._readableState.encoding:null}},errored:{enumerable:!1,get(){return this._readableState?this._readableState.errored:null}},closed:{get(){return this._readableState?this._readableState.closed:!1}},destroyed:{enumerable:!1,get(){return this._readableState?this._readableState.destroyed:!1},set(qq){if(!this._readableState)return;this._readableState.destroyed=qq}},readableEnded:{enumerable:!1,get(){return this._readableState?this._readableState.endEmitted:!1}}}),F._fromList=o;function o(qq,Qq){if(Qq.length===0)return null;let Xq;if(Qq.objectMode)Xq=Qq.buffer.shift();else if(!qq||qq>=Qq.length){if(Qq.decoder)Xq=Qq.buffer.join("");else if(Qq.buffer.length===1)Xq=Qq.buffer.first();else Xq=Qq.buffer.concat(Qq.length);Qq.buffer.clear()}else Xq=Qq.buffer.consume(qq,Qq.decoder);return Xq}function s(qq){const Qq=qq._readableState;if(Aq&&Nq("endEmitted @ endReadable",Qq.endEmitted,qq.__id),!Qq.endEmitted)Qq.ended=!0,Iq(a,Qq,qq)}function a(qq,Qq){if(Aq&&Nq("endReadableNT -- endEmitted, state.length",qq.endEmitted,qq.length,Qq.__id),!qq.errored&&!qq.closeEmitted&&!qq.endEmitted&&qq.length===0){if(qq.endEmitted=!0,Qq.emit("end"),Aq&&Nq("end emitted @ endReadableNT",Qq.__id),Qq.writable&&Qq.allowHalfOpen===!1)Iq(r,Qq);else if(qq.autoDestroy){const Xq=Qq._writableState;if(!Xq||Xq.autoDestroy&&(Xq.finished||Xq.writable===!1))Qq.destroy()}}}function r(qq){if(qq.writable&&!qq.writableEnded&&!qq.destroyed)qq.end()}F.from=function(qq,Qq){return f(F,qq,Qq)};var t={newStreamReadableFromReadableStream:j};function e(){if(t===void 0)t={};return t}F.fromWeb=function(qq,Qq){return e().newStreamReadableFromReadableStream(qq,Qq)},F.toWeb=function(qq){return e().newReadableStreamFromStreamReadable(qq)},F.wrap=function(qq,Qq){var Xq,Jq;return new F({objectMode:(Xq=(Jq=qq.readableObjectMode)!==null&&Jq!==void 0?Jq:qq.objectMode)!==null&&Xq!==void 0?Xq:!0,...Qq,destroy(Hq,Kq){_.destroyer(qq,Hq),Kq(Hq)}}).wrap(qq)}}}),BQ=mq({"node_modules/readable-stream/lib/internal/streams/writable.js"(q,Q){var{ArrayPrototypeSlice:X,Error:J,FunctionPrototypeSymbolHasInstance:H,ObjectDefineProperty:K,ObjectDefineProperties:Z,ObjectSetPrototypeOf:B,StringPrototypeToLowerCase:Y,Symbol:$,SymbolHasInstance:z}=Oq(),V=qQ().Stream,U=eq(),{addAbortSignal:W}=QQ(),{getHighWaterMark:G,getDefaultHighWaterMark:M}=XQ(),{ERR_INVALID_ARG_TYPE:F,ERR_METHOD_NOT_IMPLEMENTED:L,ERR_MULTIPLE_CALLBACK:j,ERR_STREAM_CANNOT_PIPE:N,ERR_STREAM_DESTROYED:A,ERR_STREAM_ALREADY_FINISHED:E,ERR_STREAM_NULL_VALUES:I,ERR_STREAM_WRITE_AFTER_END:T,ERR_UNKNOWN_ENCODING:P}=oq().codes,{errorOrDestroy:x}=U;function O(o={}){const s=this instanceof Cq();if(!s&&!H(O,this))return new O(o);if(this._writableState=new D(o,this,s),o){if(typeof o.write==="function")this._write=o.write;if(typeof o.writev==="function")this._writev=o.writev;if(typeof o.destroy==="function")this._destroy=o.destroy;if(typeof o.final==="function")this._final=o.final;if(typeof o.construct==="function")this._construct=o.construct;if(o.signal)W(o.signal,this)}V.call(this,o),U.construct(this,()=>{const a=this._writableState;if(!a.writing)p(this,a);c(this,a)})}B(O.prototype,V.prototype),B(O,V),Q.exports=O;function _(){}var C=$("kOnFinished");function D(o,s,a){if(typeof a!=="boolean")a=s instanceof Cq();if(this.objectMode=!!(o&&o.objectMode),a)this.objectMode=this.objectMode||!!(o&&o.writableObjectMode);this.highWaterMark=o?G(this,o,"writableHighWaterMark",a):M(!1),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;const r=!!(o&&o.decodeStrings===!1);this.decodeStrings=!r,this.defaultEncoding=o&&o.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=f.bind(void 0,s),this.writecb=null,this.writelen=0,this.afterWriteTickInfo=null,w(this),this.pendingcb=0,this.constructed=!0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!o||o.emitClose!==!1,this.autoDestroy=!o||o.autoDestroy!==!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this[C]=[]}function w(o){o.buffered=[],o.bufferedIndex=0,o.allBuffers=!0,o.allNoop=!0}D.prototype.getBuffer=function o(){return X(this.buffered,this.bufferedIndex)},K(D.prototype,"bufferedRequestCount",{get(){return this.buffered.length-this.bufferedIndex}}),K(O,z,{value:function(o){if(H(this,o))return!0;if(this!==O)return!1;return o&&o._writableState instanceof D}}),O.prototype.pipe=function(){x(this,new N)};function v(o,s,a,r){const t=o._writableState;if(typeof a==="function")r=a,a=t.defaultEncoding;else{if(!a)a=t.defaultEncoding;else if(a!=="buffer"&&!Buffer.isEncoding(a))throw new P(a);if(typeof r!=="function")r=_}if(s===null)throw new I;else if(!t.objectMode)if(typeof s==="string"){if(t.decodeStrings!==!1)s=Buffer.from(s,a),a="buffer"}else if(s instanceof Buffer)a="buffer";else if(V._isUint8Array(s))s=V._uint8ArrayToBuffer(s),a="buffer";else throw new F("chunk",["string","Buffer","Uint8Array"],s);let e;if(t.ending)e=new T;else if(t.destroyed)e=new A("write");if(e)return Iq(r,e),x(o,e,!0),e;return t.pendingcb++,R(o,t,s,a,r)}O.prototype.write=function(o,s,a){return v(this,o,s,a)===!0},O.prototype.cork=function(){this._writableState.corked++},O.prototype.uncork=function(){const o=this._writableState;if(o.corked){if(o.corked--,!o.writing)p(this,o)}},O.prototype.setDefaultEncoding=function o(s){if(typeof s==="string")s=Y(s);if(!Buffer.isEncoding(s))throw new P(s);return this._writableState.defaultEncoding=s,this};function R(o,s,a,r,t){const e=s.objectMode?1:a.length;s.length+=e;const qq=s.lengtha.bufferedIndex)p(o,a);if(r)if(a.afterWriteTickInfo!==null&&a.afterWriteTickInfo.cb===t)a.afterWriteTickInfo.count++;else a.afterWriteTickInfo={count:1,cb:t,stream:o,state:a},Iq(k,a.afterWriteTickInfo);else y(o,a,1,t)}}function k({stream:o,state:s,count:a,cb:r}){return s.afterWriteTickInfo=null,y(o,s,a,r)}function y(o,s,a,r){if(!s.ending&&!o.destroyed&&s.length===0&&s.needDrain)s.needDrain=!1,o.emit("drain");while(a-- >0)s.pendingcb--,r();if(s.destroyed)h(s);c(o,s)}function h(o){if(o.writing)return;for(let t=o.bufferedIndex;t1&&o._writev){s.pendingcb-=e-1;const Qq=s.allNoop?_:(Jq)=>{for(let Hq=qq;Hq256)a.splice(0,qq),s.bufferedIndex=0;else s.bufferedIndex=qq}s.bufferProcessing=!1}O.prototype._write=function(o,s,a){if(this._writev)this._writev([{chunk:o,encoding:s}],a);else throw new L("_write()")},O.prototype._writev=null,O.prototype.end=function(o,s,a,r=!1){const t=this._writableState;if(Aq&&Nq("end",t,this.__id),typeof o==="function")a=o,o=null,s=null;else if(typeof s==="function")a=s,s=null;let e;if(o!==null&&o!==void 0){let qq;if(!r)qq=v(this,o,s);else qq=this.write(o,s);if(qq instanceof J)e=qq}if(t.corked)t.corked=1,this.uncork();if(e)this.emit("error",e);else if(!t.errored&&!t.ending)t.ending=!0,c(this,t,!0),t.ended=!0;else if(t.finished)e=new E("end");else if(t.destroyed)e=new A("end");if(typeof a==="function")if(e||t.finished)Iq(a,e);else t[C].push(a);return this};function u(o,s){var a=o.ending&&!o.destroyed&&o.constructed&&o.length===0&&!o.errored&&o.buffered.length===0&&!o.finished&&!o.writing&&!o.errorEmitted&&!o.closeEmitted;return Nq("needFinish",a,s),a}function b(o,s){let a=!1;function r(t){if(a){x(o,t!==null&&t!==void 0?t:j());return}if(a=!0,s.pendingcb--,t){const e=s[C].splice(0);for(let qq=0;qq{if(u(t))d(r,t);else t.pendingcb--},o,s);else if(u(s))s.pendingcb++,d(o,s)}}function d(o,s){s.pendingcb--,s.finished=!0;const a=s[C].splice(0);for(let r=0;r{if(g!=null)throw new U("nully","body",g)},(g)=>{W(R,g)});return R=new A({objectMode:!0,readable:!1,write:C,final(g){D(async()=>{try{await S,Iq(g,null)}catch(f){Iq(g,f)}})},destroy:w})}throw new U("Iterable, AsyncIterable or AsyncFunction",x,_)}if(j(P))return T(P.arrayBuffer());if(H(P))return L(A,P,{objectMode:!0,writable:!1});if(typeof(P===null||P===void 0?void 0:P.writable)==="object"||typeof(P===null||P===void 0?void 0:P.readable)==="object"){const _=P!==null&&P!==void 0&&P.readable?Z(P===null||P===void 0?void 0:P.readable)?P===null||P===void 0?void 0:P.readable:T(P.readable):void 0,C=P!==null&&P!==void 0&&P.writable?B(P===null||P===void 0?void 0:P.writable)?P===null||P===void 0?void 0:P.writable:T(P.writable):void 0;return I({readable:_,writable:C})}const O=P===null||P===void 0?void 0:P.then;if(typeof O==="function"){let _;return N(O,P,(C)=>{if(C!=null)_.push(C);_.push(null)},(C)=>{W(_,C)}),_=new A({objectMode:!0,writable:!1,read(){}})}throw new V(x,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],P)};function E(T){let{promise:P,resolve:x}=F();const O=new AbortController,_=O.signal;return{value:T(async function*(){while(!0){const D=P;P=null;const{chunk:w,done:v,cb:R}=await D;if(Iq(R),v)return;if(_.aborted)throw new z(void 0,{cause:_.reason});({promise:P,resolve:x}=F()),yield w}}(),{signal:_}),write(D,w,v){const R=x;x=null,R({chunk:D,done:!1,cb:v})},final(D){const w=x;x=null,w({done:!0,cb:D})},destroy(D,w){O.abort(),w(D)}}}function I(T){const P=T.readable&&typeof T.readable.read!=="function"?M.wrap(T.readable):T.readable,x=T.writable;let O=!!X(P),_=!!J(x),C,D,w,v,R;function S(g){const f=v;if(v=null,f)f(g);else if(g)R.destroy(g);else if(!O&&!_)R.destroy()}if(R=new A({readableObjectMode:!!(P!==null&&P!==void 0&&P.readableObjectMode),writableObjectMode:!!(x!==null&&x!==void 0&&x.writableObjectMode),readable:O,writable:_}),_)$(x,(g)=>{if(_=!1,g)W(P,g);S(g)}),R._write=function(g,f,k){if(x.write(g,f))k();else C=k},R._final=function(g){x.end(),D=g},x.on("drain",function(){if(C){const g=C;C=null,g()}}),x.on("finish",function(){if(D){const g=D;D=null,g()}});if(O)$(P,(g)=>{if(O=!1,g)W(P,g);S(g)}),P.on("readable",function(){if(w){const g=w;w=null,g()}}),P.on("end",function(){R.push(null)}),R._read=function(){while(!0){const g=P.read();if(g===null){w=R._read;return}if(!R.push(g))return}};return R._destroy=function(g,f){if(!g&&v!==null)g=new z;if(w=null,C=null,D=null,v===null)f(g);else v=f,W(x,g),W(P,g)},R}}}),Cq=mq({"node_modules/readable-stream/lib/internal/streams/duplex.js"(q,Q){var{ObjectDefineProperties:X,ObjectGetOwnPropertyDescriptor:J,ObjectKeys:H,ObjectSetPrototypeOf:K}=Oq(),Z=ZQ();function B(U){if(!(this instanceof B))return new B(U);if(Z.call(this,U),Eq.call(this,U),U){if(this.allowHalfOpen=U.allowHalfOpen!==!1,U.readable===!1)this._readableState.readable=!1,this._readableState.ended=!0,this._readableState.endEmitted=!0;if(U.writable===!1)this._writableState.writable=!1,this._writableState.ending=!0,this._writableState.ended=!0,this._writableState.finished=!0}else this.allowHalfOpen=!0}Q.exports=B,K(B.prototype,Z.prototype),K(B,Z);for(var Y in Eq.prototype)if(!B.prototype[Y])B.prototype[Y]=Eq.prototype[Y];X(B.prototype,{writable:J(Eq.prototype,"writable"),writableHighWaterMark:J(Eq.prototype,"writableHighWaterMark"),writableObjectMode:J(Eq.prototype,"writableObjectMode"),writableBuffer:J(Eq.prototype,"writableBuffer"),writableLength:J(Eq.prototype,"writableLength"),writableFinished:J(Eq.prototype,"writableFinished"),writableCorked:J(Eq.prototype,"writableCorked"),writableEnded:J(Eq.prototype,"writableEnded"),writableNeedDrain:J(Eq.prototype,"writableNeedDrain"),destroyed:{get(){if(this._readableState===void 0||this._writableState===void 0)return!1;return this._readableState.destroyed&&this._writableState.destroyed},set(U){if(this._readableState&&this._writableState)this._readableState.destroyed=U,this._writableState.destroyed=U}}});var $;function z(){if($===void 0)$={};return $}B.fromWeb=function(U,W){return z().newStreamDuplexFromReadableWritablePair(U,W)},B.toWeb=function(U){return z().newReadableWritablePairFromDuplex(U)};var V;B.from=function(U){if(!V)V=YQ();return V(U,"body")}}}),$Q=mq({"node_modules/readable-stream/lib/internal/streams/transform.js"(q,Q){var{ObjectSetPrototypeOf:X,Symbol:J}=Oq(),{ERR_METHOD_NOT_IMPLEMENTED:H}=oq().codes,K=Cq();function Z(z){if(!(this instanceof Z))return new Z(z);if(K.call(this,z),this._readableState.sync=!1,this[B]=null,z){if(typeof z.transform==="function")this._transform=z.transform;if(typeof z.flush==="function")this._flush=z.flush}this.on("prefinish",$.bind(this))}X(Z.prototype,K.prototype),X(Z,K),Q.exports=Z;var B=J("kCallback");function Y(z){if(typeof this._flush==="function"&&!this.destroyed)this._flush((V,U)=>{if(V){if(z)z(V);else this.destroy(V);return}if(U!=null)this.push(U);if(this.push(null),z)z()});else if(this.push(null),z)z()}function $(){if(this._final!==Y)Y.call(this)}Z.prototype._final=Y,Z.prototype._transform=function(z,V,U){throw new H("_transform()")},Z.prototype._write=function(z,V,U){const W=this._readableState,G=this._writableState,M=W.length;this._transform(z,V,(F,L)=>{if(F){U(F);return}if(L!=null)this.push(L);if(G.ended||M===W.length||W.length{g=!0});const f=K(v,{readable:R,writable:S},(k)=>{g=!k});return{destroy:(k)=>{if(g)return;g=!0,B.destroyer(v,k||new W("pipe"))},cleanup:f}}function P(v){return M(v[v.length-1],"streams[stream.length - 1]"),v.pop()}function x(v){if(L(v))return v;else if(N(v))return O(v);throw new z("val",["Readable","Iterable","AsyncIterable"],v)}async function*O(v){if(!I)I=ZQ();yield*I.prototype[H].call(v)}async function _(v,R,S,{end:g}){let f,k=null;const y=(u)=>{if(u)f=u;if(k){const b=k;k=null,b()}},h=()=>new J((u,b)=>{if(f)b(f);else k=()=>{if(f)b(f);else u()}});R.on("drain",y);const p=K(R,{readable:!1},y);try{if(R.writableNeedDrain)await h();for await(let u of v)if(!R.write(u))await h();if(g)R.end();await h(),S()}catch(u){S(f!==u?$(f,u):u)}finally{p(),R.off("drain",y)}}function C(...v){return D(v,Z(P(v)))}function D(v,R,S){if(v.length===1&&X(v[0]))v=v[0];if(v.length<2)throw new U("streams");const g=new AbortController,f=g.signal,k=S===null||S===void 0?void 0:S.signal,y=[];F(k,"options.signal");function h(){d(new G)}k===null||k===void 0||k.addEventListener("abort",h);let p,u;const b=[];let m=0;function c(n){d(n,--m===0)}function d(n,o){if(n&&(!p||p.code==="ERR_STREAM_PREMATURE_CLOSE"))p=n;if(!p&&!o)return;while(b.length)b.shift()(p);if(k===null||k===void 0||k.removeEventListener("abort",h),g.abort(),o){if(!p)y.forEach((s)=>s());Iq(R,p,u)}}let l;for(let n=0;n0,r=s||(S===null||S===void 0?void 0:S.end)!==!1,t=n===v.length-1;if(A(o)){let e=function(qq){if(qq&&qq.name!=="AbortError"&&qq.code!=="ERR_STREAM_PREMATURE_CLOSE")c(qq)};if(r){const{destroy:qq,cleanup:Qq}=T(o,s,a);if(b.push(qq),j(o)&&t)y.push(Qq)}if(o.on("error",e),j(o)&&t)y.push(()=>{o.removeListener("error",e)})}if(n===0)if(typeof o==="function"){if(l=o({signal:f}),!L(l))throw new V("Iterable, AsyncIterable or Stream","source",l)}else if(L(o)||N(o))l=o;else l=Y.from(o);else if(typeof o==="function")if(l=x(l),l=o(l,{signal:f}),s){if(!L(l,!0))throw new V("AsyncIterable",`transform[${n-1}]`,l)}else{var i;if(!E)E=zQ();const e=new E({objectMode:!0}),qq=(i=l)===null||i===void 0?void 0:i.then;if(typeof qq==="function")m++,qq.call(l,(Jq)=>{if(u=Jq,Jq!=null)e.write(Jq);if(r)e.end();Iq(c)},(Jq)=>{e.destroy(Jq),Iq(c,Jq)});else if(L(l,!0))m++,_(l,e,c,{end:r});else throw new V("AsyncIterable or Promise","destination",l);l=e;const{destroy:Qq,cleanup:Xq}=T(l,!1,!0);if(b.push(Qq),t)y.push(Xq)}else if(A(o)){if(N(l)){m+=2;const e=w(l,o,c,{end:r});if(j(o)&&t)y.push(e)}else if(L(l))m++,_(l,o,c,{end:r});else throw new z("val",["Readable","Iterable","AsyncIterable"],l);l=o}else l=Y.from(o)}if(f!==null&&f!==void 0&&f.aborted||k!==null&&k!==void 0&&k.aborted)Iq(h);return l}function w(v,R,S,{end:g}){if(v.pipe(R,{end:g}),g)v.once("end",()=>R.end());else S();return K(v,{readable:!0,writable:!1},(f)=>{const k=v._readableState;if(f&&f.code==="ERR_STREAM_PREMATURE_CLOSE"&&k&&k.ended&&!k.errored&&!k.errorEmitted)v.once("end",S).once("error",S);else S(f)}),K(R,{readable:!1,writable:!0},S)}Q.exports={pipelineImpl:D,pipeline:C}}}),UQ=mq({"node_modules/readable-stream/lib/internal/streams/compose.js"(q,Q){var{pipeline:X}=VQ(),J=Cq(),{destroyer:H}=eq(),{isNodeStream:K,isReadable:Z,isWritable:B}=aq(),{AbortError:Y,codes:{ERR_INVALID_ARG_VALUE:$,ERR_MISSING_ARGS:z}}=oq();Q.exports=function V(...U){if(U.length===0)throw new z("streams");if(U.length===1)return J.from(U[0]);const W=[...U];if(typeof U[0]==="function")U[0]=J.from(U[0]);if(typeof U[U.length-1]==="function"){const P=U.length-1;U[P]=J.from(U[P])}for(let P=0;P0&&!B(U[P]))throw new $(`streams[${P}]`,W[P],"must be writable")}let G,M,F,L,j;function N(P){const x=L;if(L=null,x)x(P);else if(P)j.destroy(P);else if(!T&&!I)j.destroy()}const A=U[0],E=X(U,N),I=!!B(A),T=!!Z(E);if(j=new J({writableObjectMode:!!(A!==null&&A!==void 0&&A.writableObjectMode),readableObjectMode:!!(E!==null&&E!==void 0&&E.writableObjectMode),writable:I,readable:T}),I)j._write=function(P,x,O){if(A.write(P,x))O();else G=O},j._final=function(P){A.end(),M=P},A.on("drain",function(){if(G){const P=G;G=null,P()}}),E.on("finish",function(){if(M){const P=M;M=null,P()}});if(T)E.on("readable",function(){if(F){const P=F;F=null,P()}}),E.on("end",function(){j.push(null)}),j._read=function(){while(!0){const P=E.read();if(P===null){F=j._read;return}if(!j.push(P))return}};return j._destroy=function(P,x){if(!P&&L!==null)P=new Y;if(F=null,G=null,M=null,L===null)x(P);else L=x,H(E,P)},j}}}),WQ=mq({"node_modules/readable-stream/lib/stream/promises.js"(q,Q){var{ArrayPrototypePop:X,Promise:J}=Oq(),{isIterable:H,isNodeStream:K}=aq(),{pipelineImpl:Z}=VQ(),{finished:B}=rq();function Y(...$){return new J((z,V)=>{let U,W;const G=$[$.length-1];if(G&&typeof G==="object"&&!K(G)&&!H(G)){const M=X($);U=M.signal,W=M.end}Z($,(M,F)=>{if(M)V(M);else z(F)},{signal:U,end:W})})}Q.exports={finished:B,pipeline:Y}}}),GQ=mq({"node_modules/readable-stream/lib/stream.js"(q,Q){var{ObjectDefineProperty:X,ObjectKeys:J,ReflectApply:H}=Oq(),{promisify:{custom:K}}=_q(),{streamReturningOperators:Z,promiseReturningOperators:B}=tq(),{codes:{ERR_ILLEGAL_CONSTRUCTOR:Y}}=oq(),$=UQ(),{pipeline:z}=VQ(),{destroyer:V}=eq(),U=rq(),W=WQ(),G=aq(),M=Q.exports=qQ().Stream;M.isDisturbed=G.isDisturbed,M.isErrored=G.isErrored,M.isWritable=G.isWritable,M.isReadable=G.isReadable,M.Readable=ZQ();for(let L of J(Z)){let j=function(...A){if(new.target)throw Y();return M.Readable.from(H(N,this,A))};const N=Z[L];X(j,"name",{value:N.name}),X(j,"length",{value:N.length}),X(M.Readable.prototype,L,{value:j,enumerable:!1,configurable:!0,writable:!0})}for(let L of J(B)){let j=function(...A){if(new.target)throw Y();return H(N,this,A)};const N=B[L];X(j,"name",{value:N.name}),X(j,"length",{value:N.length}),X(M.Readable.prototype,L,{value:j,enumerable:!1,configurable:!0,writable:!0})}M.Writable=BQ(),M.Duplex=Cq(),M.Transform=$Q(),M.PassThrough=zQ(),M.pipeline=z;var{addAbortSignal:F}=QQ();M.addAbortSignal=F,M.finished=U,M.destroy=V,M.compose=$,X(M,"promises",{configurable:!0,enumerable:!0,get(){return W}}),X(z,K,{enumerable:!0,get(){return W.pipeline}}),X(U,K,{enumerable:!0,get(){return W.finished}}),M.Stream=M,M._isUint8Array=function L(j){return j instanceof Uint8Array},M._uint8ArrayToBuffer=function L(j){return new Buffer(j.buffer,j.byteOffset,j.byteLength)}}}),MQ=mq({"node_modules/readable-stream/lib/ours/index.js"(q,Q){const X=GQ(),J=WQ(),H=X.Readable.destroy;Q.exports=X,Q.exports._uint8ArrayToBuffer=X._uint8ArrayToBuffer,Q.exports._isUint8Array=X._isUint8Array,Q.exports.isDisturbed=X.isDisturbed,Q.exports.isErrored=X.isErrored,Q.exports.isWritable=X.isWritable,Q.exports.isReadable=X.isReadable,Q.exports.Readable=X.Readable,Q.exports.Writable=X.Writable,Q.exports.Duplex=X.Duplex,Q.exports.Transform=X.Transform,Q.exports.PassThrough=X.PassThrough,Q.exports.addAbortSignal=X.addAbortSignal,Q.exports.finished=X.finished,Q.exports.destroy=X.destroy,Q.exports.destroy=H,Q.exports.pipeline=X.pipeline,Q.exports.compose=X.compose,Q.exports._getNativeReadableStreamPrototype=jQ,Q.exports.NativeWritable=pQ,Tq.defineProperty(X,"promises",{configurable:!0,enumerable:!0,get(){return J}}),Q.exports.Stream=X.Stream,Q.exports.default=Q.exports}}),LQ={0:void 0,1:void 0,2:void 0,3:void 0,4:void 0,5:void 0},Eq=BQ(),pQ=class q extends Eq{#q;#Q;#X=!0;_construct;_destroy;_final;constructor(Q,X={}){super(X);this._construct=this.#J,this._destroy=this.#K,this._final=this.#Z,this.#q=Q}#J(Q){this._writableState.constructed=!0,this.constructed=!0,Q()}#H(){if(typeof this.#q==="object")if(typeof this.#q.write==="function")this.#Q=this.#q;else throw new Error("Invalid FileSink");else this.#Q=Bun.file(this.#q).writer()}write(Q,X,J,H=this.#X){if(!H)return this.#X=!1,super.write(Q,X,J);if(!this.#Q)this.#H();var K=this.#Q,Z=K.write(Q);if(xq(Z))return Z.then(()=>{this.emit("drain"),K.flush(!0)}),!1;if(K.flush(!0),J)J(null,Q.byteLength);return!0}end(Q,X,J,H=this.#X){return super.end(Q,X,J,H)}#K(Q,X){if(this._writableState.destroyed=!0,X)X(Q)}#Z(Q){if(this.#Q)this.#Q.end();if(Q)Q()}ref(){if(!this.#Q)this.#H();this.#Q.ref()}unref(){if(!this.#Q)return;this.#Q.unref()}},AQ=MQ();AQ[Symbol.for("CommonJS")]=0;AQ[Symbol.for("::bunternal::")]={_ReadableFromWeb:HQ,_ReadableFromWebForUndici:KQ};var lQ=AQ,EQ=AQ._uint8ArrayToBuffer,IQ=AQ._isUint8Array,TQ=AQ.isDisturbed,PQ=AQ.isErrored,xQ=AQ.isWritable,OQ=AQ.isReadable,_Q=AQ.Readable,Eq=AQ.Writable,CQ=AQ.Duplex,DQ=AQ.Transform,wQ=AQ.PassThrough,vQ=AQ.addAbortSignal,RQ=AQ.finished,SQ=AQ.destroy,gQ=AQ.pipeline,fQ=AQ.compose,kQ=AQ.Stream,yQ=AQ["eos"]=rq,hQ=AQ._getNativeReadableStreamPrototype,pQ=AQ.NativeWritable,uQ=kQ.promises;export{uQ as promises,gQ as pipeline,xQ as isWritable,OQ as isReadable,PQ as isErrored,TQ as isDisturbed,RQ as finished,yQ as eos,SQ as destroy,lQ as default,fQ as compose,vQ as addAbortSignal,EQ as _uint8ArrayToBuffer,IQ as _isUint8Array,hQ as _getNativeReadableStreamPrototype,Eq as Writable,DQ as Transform,kQ as Stream,_Q as Readable,wQ as PassThrough,pQ as NativeWritable,CQ as Duplex}; +import{EventEmitter as CQ} from"bun:events_native";import{StringDecoder as Eq} from"node:string_decoder";var M=function(B){return typeof B==="object"&&B!==null&&B instanceof ReadableStream},F=function(B,Y){if(typeof B!=="boolean")throw new yQ(Y,"boolean",B)};var yQ=function(B,Y,U){return new Error(`The argument '${B}' is invalid. Received '${U}' for type '${Y}'`)},xq=function(B,Y,U){return new Error(`The value '${Y}' is invalid for argument '${B}'. Reason: ${U}`)},P=function(B,Y){var[U,H,X,q,J,Q,Z]=globalThis[Symbol.for("Bun.lazy")](B),K=[!1],oq=function(rq,m,tq,c){if(m>0){const eq=tq.subarray(0,m),d=tq.subarray(m);if(eq.byteLength>0)rq.push(eq);if(c)rq.push(null);return d.byteLength>0?d:void 0}if(c)rq.push(null);return tq},p=function(rq,m,tq,c){if(m.byteLength>0)rq.push(m);if(c)rq.push(null);return tq},sq=process.env.BUN_DISABLE_DYNAMIC_CHUNK_SIZE!=="1";const u=new FinalizationRegistry((rq)=>rq&&J(rq)),aq=512;var b=class rq extends Y{#q;#Q=1;#X=!1;#J=void 0;#H;#K=!1;#Z=!sq;#B;constructor(m,tq={}){super(tq);if(typeof tq.highWaterMark==="number")this.#H=tq.highWaterMark;else this.#H=262144;this.#q=m,this.#X=!1,this.#J=void 0,this.#K=!1,this.#B={},u.register(this,this.#q,this.#B)}_read(m){if(OQ&&Gq("NativeReadable._read",this.__id),this.#K){OQ&&Gq("pendingRead is true",this.__id);return}var tq=this.#q;if(OQ&&Gq("ptr @ NativeReadable._read",tq,this.__id),tq===0){this.push(null);return}if(!this.#X)OQ&&Gq("NativeReadable not constructed yet",this.__id),this.#Y(tq);return this.#V(this.#$(m),tq)}#Y(m){this.#X=!0;const tq=H(m,this.#H);if(OQ&&Gq("NativeReadable internal `start` result",tq,this.__id),typeof tq==="number"&&tq>1)this.#Z=!0,OQ&&Gq("NativeReadable resized",this.__id),this.#H=Math.min(this.#H,tq);if(Z){const c=Z(m);if(OQ&&Gq("NativeReadable drain result",c,this.__id),(c?.byteLength??0)>0)this.push(c)}}#$(m=this.#H){var tq=this.#J;if(OQ&&Gq("chunk @ #getRemainingChunk",tq,this.__id),tq?.byteLength??0aq?m:aq;this.#J=tq=new Buffer(c)}return tq}push(m,tq){return OQ&&Gq("NativeReadable push -- result, encoding",m,tq,this.__id),super.push(...arguments)}#z(m,tq,c){if(OQ&&Gq("result, isClosed @ #handleResult",m,c,this.__id),typeof m==="number"){if(m>=this.#H&&!this.#Z&&!c)this.#H*=2,this.#Z=!0;return oq(this,m,tq,c)}else if(typeof m==="boolean")return this.push(null),tq?.byteLength??0>0?tq:void 0;else if(ArrayBuffer.isView(m)){if(m.byteLength>=this.#H&&!this.#Z&&!c)this.#H*=2,this.#Z=!0,OQ&&Gq("Resized",this.__id);return p(this,m,tq,c)}else throw OQ&&Gq("Unknown result type",m,this.__id),new Error("Invalid result from pull")}#V(m,tq){OQ&&Gq("#internalRead()",this.__id),K[0]=!1;var c=U(tq,m,K);if(Lq(c))return this.#K=!0,c.then((eq)=>{this.#K=!1,OQ&&Gq("pending no longerrrrrrrr (result returned from pull)",this.__id),this.#J=this.#z(eq,m,K[0])},(eq)=>{OQ&&Gq("error from pull",eq,this.__id),errorOrDestroy(this,eq)});else this.#J=this.#z(c,m,K[0])}_destroy(m,tq){var c=this.#q;if(c===0){tq(m);return}if(u.unregister(this.#B),this.#q=0,Q)Q(c,!1);OQ&&Gq("NativeReadable destroyed",this.__id),X(c,m),tq(m)}ref(){var m=this.#q;if(m===0)return;if(this.#Q++===0)Q(m,!0)}unref(){var m=this.#q;if(m===0)return;if(this.#Q--===1)Q(m,!1)}};if(!Q)b.prototype.ref=void 0,b.prototype.unref=void 0;return b},O=function(B,Y){return x[B]||=P(B,Y)},_=function(B,Y,U){if(!(Y&&typeof Y==="object"&&Y instanceof ReadableStream))return;const H=vQ(Y);if(!H){Gq("no native readable stream");return}const{stream:X,data:q}=H;return new(O(q,B))(X,U)},{isPromise:Lq,isCallable:Nq,direct:vQ,Object:Fq}=globalThis[Symbol.for("Bun.lazy")]("primordials");globalThis.__IDS_TO_TRACK=process.env.DEBUG_TRACK_EE?.length?process.env.DEBUG_TRACK_EE.split(","):process.env.DEBUG_STREAMS?.length?process.env.DEBUG_STREAMS.split(","):null;var SQ=!!process.env.DEBUG_TRACK_EE,OQ=!!(process.env.DEBUG||process.env.DEBUG_STREAMS||SQ),Gq=OQ?globalThis.__IDS_TO_TRACK?(...B)=>{const Y=B[B.length-1];if(!globalThis.__IDS_TO_TRACK.includes(Y))return;console.log(`ID: ${Y}`,...B.slice(0,-1))}:(...B)=>console.log(...B.slice(0,-1)):()=>{},Iq=Fq.create,gQ=Fq.defineProperty,V=Fq.getOwnPropertyDescriptor,fQ=Fq.getOwnPropertyNames,Tq=Fq.getPrototypeOf,kQ=Fq.prototype.hasOwnProperty,W=Fq.setPrototypeOf,G=(B,Y)=>function U(){return Y||(0,B[fQ(B)[0]])((Y={exports:{}}).exports,Y),Y.exports};var _Q=process.nextTick;var Pq=Array.isArray,DQ=G({"node_modules/readable-stream/lib/ours/primordials.js"(B,Y){Y.exports={ArrayIsArray(U){return Array.isArray(U)},ArrayPrototypeIncludes(U,H){return U.includes(H)},ArrayPrototypeIndexOf(U,H){return U.indexOf(H)},ArrayPrototypeJoin(U,H){return U.join(H)},ArrayPrototypeMap(U,H){return U.map(H)},ArrayPrototypePop(U,H){return U.pop(H)},ArrayPrototypePush(U,H){return U.push(H)},ArrayPrototypeSlice(U,H,X){return U.slice(H,X)},Error,FunctionPrototypeCall(U,H,...X){return U.call(H,...X)},FunctionPrototypeSymbolHasInstance(U,H){return Function.prototype[Symbol.hasInstance].call(U,H)},MathFloor:Math.floor,Number,NumberIsInteger:Number.isInteger,NumberIsNaN:Number.isNaN,NumberMAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,NumberParseInt:Number.parseInt,ObjectDefineProperties(U,H){return Fq.defineProperties(U,H)},ObjectDefineProperty(U,H,X){return Fq.defineProperty(U,H,X)},ObjectGetOwnPropertyDescriptor(U,H){return Fq.getOwnPropertyDescriptor(U,H)},ObjectKeys(U){return Fq.keys(U)},ObjectSetPrototypeOf(U,H){return Fq.setPrototypeOf(U,H)},Promise,PromisePrototypeCatch(U,H){return U.catch(H)},PromisePrototypeThen(U,H,X){return U.then(H,X)},PromiseReject(U){return Promise.reject(U)},ReflectApply:Reflect.apply,RegExpPrototypeTest(U,H){return U.test(H)},SafeSet:Set,String,StringPrototypeSlice(U,H,X){return U.slice(H,X)},StringPrototypeToLowerCase(U){return U.toLowerCase()},StringPrototypeToUpperCase(U){return U.toUpperCase()},StringPrototypeTrim(U){return U.trim()},Symbol,SymbolAsyncIterator:Symbol.asyncIterator,SymbolHasInstance:Symbol.hasInstance,SymbolIterator:Symbol.iterator,TypedArrayPrototypeSet(U,H,X){return U.set(H,X)},Uint8Array}}}),jq=G({"node_modules/readable-stream/lib/ours/util.js"(B,Y){var U=Fq.getPrototypeOf(async function(){}).constructor,H=typeof Blob!=="undefined"?function q(J){return J instanceof Blob}:function q(J){return!1},X=class extends Error{constructor(q){if(!Array.isArray(q))throw new TypeError(`Expected input to be an Array, got ${typeof q}`);let J="";for(let Q=0;Q{q=Z,J=K}),resolve:q,reject:J}},promisify(q){return new Promise((J,Q)=>{q((Z,...K)=>{if(Z)return Q(Z);return J(...K)})})},debuglog(){return function(){}},format(q,...J){return q.replace(/%([sdifj])/g,function(...[Q,Z]){const K=J.shift();if(Z==="f")return K.toFixed(6);else if(Z==="j")return JSON.stringify(K);else if(Z==="s"&&typeof K==="object")return`${K.constructor!==Fq?K.constructor.name:""} {}`.trim();else return K.toString()})},inspect(q){switch(typeof q){case"string":if(q.includes("'")){if(!q.includes('"'))return`"${q}"`;else if(!q.includes("`")&&!q.includes("${"))return`\`${q}\``}return`'${q}'`;case"number":if(isNaN(q))return"NaN";else if(Fq.is(q,-0))return String(q);return q;case"bigint":return`${String(q)}n`;case"boolean":case"undefined":return String(q);case"object":return"{}"}},types:{isAsyncFunction(q){return q instanceof U},isArrayBufferView(q){return ArrayBuffer.isView(q)}},isBlob:H},Y.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")}}),hQ=G({"node_modules/readable-stream/lib/ours/errors.js"(B,Y){var{format:U,inspect:H,AggregateError:X}=jq(),q=globalThis.AggregateError||X,J=Symbol("kIsNodeError"),Q=["string","function","number","object","Function","Object","boolean","bigint","symbol"],Z=/^([A-Z][a-z0-9]*)+$/,K="__node_internal_",oq={};function p(tq,c){if(!tq)throw new oq.ERR_INTERNAL_ASSERTION(c)}function sq(tq){let c="",eq=tq.length;const d=tq[0]==="-"?1:0;for(;eq>=d+4;eq-=3)c=`_${tq.slice(eq-3,eq)}${c}`;return`${tq.slice(0,eq)}${c}`}function u(tq,c,eq){if(typeof c==="function")return p(c.length<=eq.length,`Code: ${tq}; The provided arguments length (${eq.length}) does not match the required ones (${c.length}).`),c(...eq);const d=(c.match(/%[dfijoOs]/g)||[]).length;if(p(d===eq.length,`Code: ${tq}; The provided arguments length (${eq.length}) does not match the required ones (${d}).`),eq.length===0)return c;return U(c,...eq)}function aq(tq,c,eq){if(!eq)eq=Error;class d extends eq{constructor(...qQ){super(u(tq,c,qQ))}toString(){return`${this.name} [${tq}]: ${this.message}`}}Fq.defineProperties(d.prototype,{name:{value:eq.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${tq}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),d.prototype.code=tq,d.prototype[J]=!0,oq[tq]=d}function b(tq){const c=K+tq.name;return Fq.defineProperty(tq,"name",{value:c}),tq}function rq(tq,c){if(tq&&c&&tq!==c){if(Array.isArray(c.errors))return c.errors.push(tq),c;const eq=new q([c,tq],c.message);return eq.code=c.code,eq}return tq||c}var m=class extends Error{constructor(tq="The operation was aborted",c=void 0){if(c!==void 0&&typeof c!=="object")throw new oq.ERR_INVALID_ARG_TYPE("options","Object",c);super(tq,c);this.code="ABORT_ERR",this.name="AbortError"}};aq("ERR_ASSERTION","%s",Error),aq("ERR_INVALID_ARG_TYPE",(tq,c,eq)=>{if(p(typeof tq==="string","'name' must be a string"),!Array.isArray(c))c=[c];let d="The ";if(tq.endsWith(" argument"))d+=`${tq} `;else d+=`"${tq}" ${tq.includes(".")?"property":"argument"} `;d+="must be ";const qQ=[],l=[],QQ=[];for(let XQ of c)if(p(typeof XQ==="string","All expected entries have to be of type string"),Q.includes(XQ))qQ.push(XQ.toLowerCase());else if(Z.test(XQ))l.push(XQ);else p(XQ!=="object",'The value "object" should be written as "Object"'),QQ.push(XQ);if(l.length>0){const XQ=qQ.indexOf("object");if(XQ!==-1)qQ.splice(qQ,XQ,1),l.push("Object")}if(qQ.length>0){switch(qQ.length){case 1:d+=`of type ${qQ[0]}`;break;case 2:d+=`one of type ${qQ[0]} or ${qQ[1]}`;break;default:{const XQ=qQ.pop();d+=`one of type ${qQ.join(", ")}, or ${XQ}`}}if(l.length>0||QQ.length>0)d+=" or "}if(l.length>0){switch(l.length){case 1:d+=`an instance of ${l[0]}`;break;case 2:d+=`an instance of ${l[0]} or ${l[1]}`;break;default:{const XQ=l.pop();d+=`an instance of ${l.join(", ")}, or ${XQ}`}}if(QQ.length>0)d+=" or "}switch(QQ.length){case 0:break;case 1:if(QQ[0].toLowerCase()!==QQ[0])d+="an ";d+=`${QQ[0]}`;break;case 2:d+=`one of ${QQ[0]} or ${QQ[1]}`;break;default:{const XQ=QQ.pop();d+=`one of ${QQ.join(", ")}, or ${XQ}`}}if(eq==null)d+=`. Received ${eq}`;else if(typeof eq==="function"&&eq.name)d+=`. Received function ${eq.name}`;else if(typeof eq==="object"){var i;if((i=eq.constructor)!==null&&i!==void 0&&i.name)d+=`. Received an instance of ${eq.constructor.name}`;else{const XQ=H(eq,{depth:-1});d+=`. Received ${XQ}`}}else{let XQ=H(eq,{colors:!1});if(XQ.length>25)XQ=`${XQ.slice(0,25)}...`;d+=`. Received type ${typeof eq} (${XQ})`}return d},TypeError),aq("ERR_INVALID_ARG_VALUE",(tq,c,eq="is invalid")=>{let d=H(c);if(d.length>128)d=d.slice(0,128)+"...";return`The ${tq.includes(".")?"property":"argument"} '${tq}' ${eq}. Received ${d}`},TypeError),aq("ERR_INVALID_RETURN_VALUE",(tq,c,eq)=>{var d;const qQ=eq!==null&&eq!==void 0&&(d=eq.constructor)!==null&&d!==void 0&&d.name?`instance of ${eq.constructor.name}`:`type ${typeof eq}`;return`Expected ${tq} to be returned from the "${c}" function but got ${qQ}.`},TypeError),aq("ERR_MISSING_ARGS",(...tq)=>{p(tq.length>0,"At least one arg needs to be specified");let c;const eq=tq.length;switch(tq=(Array.isArray(tq)?tq:[tq]).map((d)=>`"${d}"`).join(" or "),eq){case 1:c+=`The ${tq[0]} argument`;break;case 2:c+=`The ${tq[0]} and ${tq[1]} arguments`;break;default:{const d=tq.pop();c+=`The ${tq.join(", ")}, and ${d} arguments`}break}return`${c} must be specified`},TypeError),aq("ERR_OUT_OF_RANGE",(tq,c,eq)=>{p(c,'Missing "range" argument');let d;if(Number.isInteger(eq)&&Math.abs(eq)>4294967296)d=sq(String(eq));else if(typeof eq==="bigint"){if(d=String(eq),eq>2n**32n||eq<-(2n**32n))d=sq(d);d+="n"}else d=H(eq);return`The value of "${tq}" is out of range. It must be ${c}. Received ${d}`},RangeError),aq("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),aq("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),aq("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),aq("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),aq("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),aq("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),aq("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),aq("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),aq("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),aq("ERR_STREAM_WRITE_AFTER_END","write after end",Error),aq("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),Y.exports={AbortError:m,aggregateTwoErrors:b(rq),hideStackFrames:b,codes:oq}}}),L=G({"node_modules/readable-stream/lib/internal/validators.js"(B,Y){var{ArrayIsArray:U,ArrayPrototypeIncludes:H,ArrayPrototypeJoin:X,ArrayPrototypeMap:q,NumberIsInteger:J,NumberMAX_SAFE_INTEGER:Q,NumberMIN_SAFE_INTEGER:Z,NumberParseInt:K,RegExpPrototypeTest:oq,String:p,StringPrototypeToUpperCase:sq,StringPrototypeTrim:u}=DQ(),{hideStackFrames:aq,codes:{ERR_SOCKET_BAD_PORT:b,ERR_INVALID_ARG_TYPE:rq,ERR_INVALID_ARG_VALUE:m,ERR_OUT_OF_RANGE:tq,ERR_UNKNOWN_SIGNAL:c}}=hQ(),{normalizeEncoding:eq}=jq(),{isAsyncFunction:d,isArrayBufferView:qQ}=jq().types,l={};function QQ(UQ){return UQ===(UQ|0)}function i(UQ){return UQ===UQ>>>0}var XQ=/^[0-7]+$/,n="must be a 32-bit unsigned integer or an octal string";function JQ(UQ,Qq,WQ){if(typeof UQ==="undefined")UQ=WQ;if(typeof UQ==="string"){if(!oq(XQ,UQ))throw new m(Qq,UQ,n);UQ=K(UQ,8)}return HQ(UQ,Qq,0,4294967295),UQ}var o=aq((UQ,Qq,WQ=Z,Xq=Q)=>{if(typeof UQ!=="number")throw new rq(Qq,"number",UQ);if(!J(UQ))throw new tq(Qq,"an integer",UQ);if(UQXq)throw new tq(Qq,`>= ${WQ} && <= ${Xq}`,UQ)}),HQ=aq((UQ,Qq,WQ=-2147483648,Xq=2147483647)=>{if(typeof UQ!=="number")throw new rq(Qq,"number",UQ);if(!QQ(UQ)){if(!J(UQ))throw new tq(Qq,"an integer",UQ);throw new tq(Qq,`>= ${WQ} && <= ${Xq}`,UQ)}if(UQXq)throw new tq(Qq,`>= ${WQ} && <= ${Xq}`,UQ)}),s=aq((UQ,Qq,WQ)=>{if(typeof UQ!=="number")throw new rq(Qq,"number",UQ);if(!i(UQ)){if(!J(UQ))throw new tq(Qq,"an integer",UQ);throw new tq(Qq,`>= ${WQ?1:0} && < 4294967296`,UQ)}if(WQ&&UQ===0)throw new tq(Qq,">= 1 && < 4294967296",UQ)});function KQ(UQ,Qq){if(typeof UQ!=="string")throw new rq(Qq,"string",UQ)}function a(UQ,Qq){if(typeof UQ!=="number")throw new rq(Qq,"number",UQ)}var ZQ=aq((UQ,Qq,WQ)=>{if(!H(WQ,UQ)){const GQ="must be one of: "+X(q(WQ,(Jq)=>typeof Jq==="string"?`'${Jq}'`:p(Jq)),", ");throw new m(Qq,UQ,GQ)}});function r(UQ,Qq){if(typeof UQ!=="boolean")throw new rq(Qq,"boolean",UQ)}var BQ=aq((UQ,Qq,WQ)=>{const Xq=WQ==null,GQ=Xq?!1:WQ.allowArray,Jq=Xq?!1:WQ.allowFunction;if(!(Xq?!1:WQ.nullable)&&UQ===null||!GQ&&U(UQ)||typeof UQ!=="object"&&(!Jq||typeof UQ!=="function"))throw new rq(Qq,"Object",UQ)}),$=aq((UQ,Qq,WQ=0)=>{if(!U(UQ))throw new rq(Qq,"Array",UQ);if(UQ.length{if(!qQ(UQ))throw new rq(Qq,["Buffer","TypedArray","DataView"],UQ)});function $Q(UQ,Qq){const WQ=eq(Qq),Xq=UQ.length;if(WQ==="hex"&&Xq%2!==0)throw new m("encoding",Qq,`is invalid for data of length ${Xq}`)}function t(UQ,Qq="Port",WQ=!0){if(typeof UQ!=="number"&&typeof UQ!=="string"||typeof UQ==="string"&&u(UQ).length===0||+UQ!==+UQ>>>0||UQ>65535||UQ===0&&!WQ)throw new b(Qq,UQ,WQ);return UQ|0}var zQ=aq((UQ,Qq)=>{if(UQ!==void 0&&(UQ===null||typeof UQ!=="object"||!("aborted"in UQ)))throw new rq(Qq,"AbortSignal",UQ)}),e=aq((UQ,Qq)=>{if(typeof UQ!=="function")throw new rq(Qq,"Function",UQ)}),VQ=aq((UQ,Qq)=>{if(typeof UQ!=="function"||d(UQ))throw new rq(Qq,"Function",UQ)}),qq=aq((UQ,Qq)=>{if(UQ!==void 0)throw new rq(Qq,"undefined",UQ)});Y.exports={isInt32:QQ,isUint32:i,parseFileMode:JQ,validateArray:$,validateBoolean:r,validateBuffer:z,validateEncoding:$Q,validateFunction:e,validateInt32:HQ,validateInteger:o,validateNumber:a,validateObject:BQ,validateOneOf:ZQ,validatePlainFunction:VQ,validatePort:t,validateSignalName:YQ,validateString:KQ,validateUint32:s,validateUndefined:qq,validateAbortSignal:zQ}}}),j=G({"node_modules/readable-stream/lib/internal/streams/utils.js"(B,Y){var{Symbol:U,SymbolAsyncIterator:H,SymbolIterator:X}=DQ(),q=U("kDestroyed"),J=U("kIsErrored"),Q=U("kIsReadable"),Z=U("kIsDisturbed");function K(s,KQ=!1){var a;return!!(s&&typeof s.pipe==="function"&&typeof s.on==="function"&&(!KQ||typeof s.pause==="function"&&typeof s.resume==="function")&&(!s._writableState||((a=s._readableState)===null||a===void 0?void 0:a.readable)!==!1)&&(!s._writableState||s._readableState))}function oq(s){var KQ;return!!(s&&typeof s.write==="function"&&typeof s.on==="function"&&(!s._readableState||((KQ=s._writableState)===null||KQ===void 0?void 0:KQ.writable)!==!1))}function p(s){return!!(s&&typeof s.pipe==="function"&&s._readableState&&typeof s.on==="function"&&typeof s.write==="function")}function sq(s){return s&&(s._readableState||s._writableState||typeof s.write==="function"&&typeof s.on==="function"||typeof s.pipe==="function"&&typeof s.on==="function")}function u(s,KQ){if(s==null)return!1;if(KQ===!0)return typeof s[H]==="function";if(KQ===!1)return typeof s[X]==="function";return typeof s[H]==="function"||typeof s[X]==="function"}function aq(s){if(!sq(s))return null;const{_writableState:KQ,_readableState:a}=s,ZQ=KQ||a;return!!(s.destroyed||s[q]||ZQ!==null&&ZQ!==void 0&&ZQ.destroyed)}function b(s){if(!oq(s))return null;if(s.writableEnded===!0)return!0;const KQ=s._writableState;if(KQ!==null&&KQ!==void 0&&KQ.errored)return!1;if(typeof(KQ===null||KQ===void 0?void 0:KQ.ended)!=="boolean")return null;return KQ.ended}function rq(s,KQ){if(!oq(s))return null;if(s.writableFinished===!0)return!0;const a=s._writableState;if(a!==null&&a!==void 0&&a.errored)return!1;if(typeof(a===null||a===void 0?void 0:a.finished)!=="boolean")return null;return!!(a.finished||KQ===!1&&a.ended===!0&&a.length===0)}function m(s){if(!K(s))return null;if(s.readableEnded===!0)return!0;const KQ=s._readableState;if(!KQ||KQ.errored)return!1;if(typeof(KQ===null||KQ===void 0?void 0:KQ.ended)!=="boolean")return null;return KQ.ended}function tq(s,KQ){if(!K(s))return null;const a=s._readableState;if(a!==null&&a!==void 0&&a.errored)return!1;if(typeof(a===null||a===void 0?void 0:a.endEmitted)!=="boolean")return null;return!!(a.endEmitted||KQ===!1&&a.ended===!0&&a.length===0)}function c(s){if(s&&s[Q]!=null)return s[Q];if(typeof(s===null||s===void 0?void 0:s.readable)!=="boolean")return null;if(aq(s))return!1;return K(s)&&s.readable&&!tq(s)}function eq(s){if(typeof(s===null||s===void 0?void 0:s.writable)!=="boolean")return null;if(aq(s))return!1;return oq(s)&&s.writable&&!b(s)}function d(s,KQ){if(!sq(s))return null;if(aq(s))return!0;if((KQ===null||KQ===void 0?void 0:KQ.readable)!==!1&&c(s))return!1;if((KQ===null||KQ===void 0?void 0:KQ.writable)!==!1&&eq(s))return!1;return!0}function qQ(s){var KQ,a;if(!sq(s))return null;if(s.writableErrored)return s.writableErrored;return(KQ=(a=s._writableState)===null||a===void 0?void 0:a.errored)!==null&&KQ!==void 0?KQ:null}function l(s){var KQ,a;if(!sq(s))return null;if(s.readableErrored)return s.readableErrored;return(KQ=(a=s._readableState)===null||a===void 0?void 0:a.errored)!==null&&KQ!==void 0?KQ:null}function QQ(s){if(!sq(s))return null;if(typeof s.closed==="boolean")return s.closed;const{_writableState:KQ,_readableState:a}=s;if(typeof(KQ===null||KQ===void 0?void 0:KQ.closed)==="boolean"||typeof(a===null||a===void 0?void 0:a.closed)==="boolean")return(KQ===null||KQ===void 0?void 0:KQ.closed)||(a===null||a===void 0?void 0:a.closed);if(typeof s._closed==="boolean"&&i(s))return s._closed;return null}function i(s){return typeof s._closed==="boolean"&&typeof s._defaultKeepAlive==="boolean"&&typeof s._removedConnection==="boolean"&&typeof s._removedContLen==="boolean"}function XQ(s){return typeof s._sent100==="boolean"&&i(s)}function n(s){var KQ;return typeof s._consuming==="boolean"&&typeof s._dumped==="boolean"&&((KQ=s.req)===null||KQ===void 0?void 0:KQ.upgradeOrConnect)===void 0}function JQ(s){if(!sq(s))return null;const{_writableState:KQ,_readableState:a}=s,ZQ=KQ||a;return!ZQ&&XQ(s)||!!(ZQ&&ZQ.autoDestroy&&ZQ.emitClose&&ZQ.closed===!1)}function o(s){var KQ;return!!(s&&((KQ=s[Z])!==null&&KQ!==void 0?KQ:s.readableDidRead||s.readableAborted))}function HQ(s){var KQ,a,ZQ,r,BQ,$,YQ,z,$Q,t;return!!(s&&((KQ=(a=(ZQ=(r=(BQ=($=s[J])!==null&&$!==void 0?$:s.readableErrored)!==null&&BQ!==void 0?BQ:s.writableErrored)!==null&&r!==void 0?r:(YQ=s._readableState)===null||YQ===void 0?void 0:YQ.errorEmitted)!==null&&ZQ!==void 0?ZQ:(z=s._writableState)===null||z===void 0?void 0:z.errorEmitted)!==null&&a!==void 0?a:($Q=s._readableState)===null||$Q===void 0?void 0:$Q.errored)!==null&&KQ!==void 0?KQ:(t=s._writableState)===null||t===void 0?void 0:t.errored))}Y.exports={kDestroyed:q,isDisturbed:o,kIsDisturbed:Z,isErrored:HQ,kIsErrored:J,isReadable:c,kIsReadable:Q,isClosed:QQ,isDestroyed:aq,isDuplexNodeStream:p,isFinished:d,isIterable:u,isReadableNodeStream:K,isReadableEnded:m,isReadableFinished:tq,isReadableErrored:l,isNodeStream:sq,isWritable:eq,isWritableNodeStream:oq,isWritableEnded:b,isWritableFinished:rq,isWritableErrored:qQ,isServerRequest:n,isServerResponse:XQ,willEmitClose:JQ}}}),N=G({"node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(B,Y){var{AbortError:U,codes:H}=hQ(),{ERR_INVALID_ARG_TYPE:X,ERR_STREAM_PREMATURE_CLOSE:q}=H,{once:J}=jq(),{validateAbortSignal:Q,validateFunction:Z,validateObject:K}=L(),{Promise:oq}=DQ(),{isClosed:p,isReadable:sq,isReadableNodeStream:u,isReadableFinished:aq,isReadableErrored:b,isWritable:rq,isWritableNodeStream:m,isWritableFinished:tq,isWritableErrored:c,isNodeStream:eq,willEmitClose:d}=j();function qQ(XQ){return XQ.setHeader&&typeof XQ.abort==="function"}var l=()=>{};function QQ(XQ,n,JQ){var o,HQ;if(arguments.length===2)JQ=n,n={};else if(n==null)n={};else K(n,"options");Z(JQ,"callback"),Q(n.signal,"options.signal"),JQ=J(JQ);const s=(o=n.readable)!==null&&o!==void 0?o:u(XQ),KQ=(HQ=n.writable)!==null&&HQ!==void 0?HQ:m(XQ);if(!eq(XQ))throw new X("stream","Stream",XQ);const{_writableState:a,_readableState:ZQ}=XQ,r=()=>{if(!XQ.writable)YQ()};let BQ=d(XQ)&&u(XQ)===s&&m(XQ)===KQ,$=tq(XQ,!1);const YQ=()=>{if($=!0,XQ.destroyed)BQ=!1;if(BQ&&(!XQ.readable||s))return;if(!s||z)JQ.call(XQ)};let z=aq(XQ,!1);const $Q=()=>{if(z=!0,XQ.destroyed)BQ=!1;if(BQ&&(!XQ.writable||KQ))return;if(!KQ||$)JQ.call(XQ)},t=(UQ)=>{JQ.call(XQ,UQ)};let zQ=p(XQ);const e=()=>{zQ=!0;const UQ=c(XQ)||b(XQ);if(UQ&&typeof UQ!=="boolean")return JQ.call(XQ,UQ);if(s&&!z&&u(XQ,!0)){if(!aq(XQ,!1))return JQ.call(XQ,new q)}if(KQ&&!$){if(!tq(XQ,!1))return JQ.call(XQ,new q)}JQ.call(XQ)},VQ=()=>{XQ.req.on("finish",YQ)};if(qQ(XQ)){if(XQ.on("complete",YQ),!BQ)XQ.on("abort",e);if(XQ.req)VQ();else XQ.on("request",VQ)}else if(KQ&&!a)XQ.on("end",r),XQ.on("close",r);if(!BQ&&typeof XQ.aborted==="boolean")XQ.on("aborted",e);if(XQ.on("end",$Q),XQ.on("finish",YQ),n.error!==!1)XQ.on("error",t);if(XQ.on("close",e),zQ)_Q(e);else if(a!==null&&a!==void 0&&a.errorEmitted||ZQ!==null&&ZQ!==void 0&&ZQ.errorEmitted){if(!BQ)_Q(e)}else if(!s&&(!BQ||sq(XQ))&&($||rq(XQ)===!1))_Q(e);else if(!KQ&&(!BQ||rq(XQ))&&(z||sq(XQ)===!1))_Q(e);else if(ZQ&&XQ.req&&XQ.aborted)_Q(e);const qq=()=>{if(JQ=l,XQ.removeListener("aborted",e),XQ.removeListener("complete",YQ),XQ.removeListener("abort",e),XQ.removeListener("request",VQ),XQ.req)XQ.req.removeListener("finish",YQ);XQ.removeListener("end",r),XQ.removeListener("close",r),XQ.removeListener("finish",YQ),XQ.removeListener("end",$Q),XQ.removeListener("error",t),XQ.removeListener("close",e)};if(n.signal&&!zQ){const UQ=()=>{const Qq=JQ;qq(),Qq.call(XQ,new U(void 0,{cause:n.signal.reason}))};if(n.signal.aborted)_Q(UQ);else{const Qq=JQ;JQ=J((...WQ)=>{n.signal.removeEventListener("abort",UQ),Qq.apply(XQ,WQ)}),n.signal.addEventListener("abort",UQ)}}return qq}function i(XQ,n){return new oq((JQ,o)=>{QQ(XQ,n,(HQ)=>{if(HQ)o(HQ);else JQ()})})}Y.exports=QQ,Y.exports.finished=i}}),A=G({"node_modules/readable-stream/lib/internal/streams/operators.js"(B,Y){var{codes:{ERR_INVALID_ARG_TYPE:U,ERR_MISSING_ARGS:H,ERR_OUT_OF_RANGE:X},AbortError:q}=hQ(),{validateAbortSignal:J,validateInteger:Q,validateObject:Z}=L(),K=DQ().Symbol("kWeak"),{finished:oq}=N(),{ArrayPrototypePush:p,MathFloor:sq,Number:u,NumberIsNaN:aq,Promise:b,PromiseReject:rq,PromisePrototypeCatch:m,Symbol:tq}=DQ(),c=tq("kEmpty"),eq=tq("kEof");function d(r,BQ){if(typeof r!=="function")throw new U("fn",["Function","AsyncFunction"],r);if(BQ!=null)Z(BQ,"options");if((BQ===null||BQ===void 0?void 0:BQ.signal)!=null)J(BQ.signal,"options.signal");let $=1;if((BQ===null||BQ===void 0?void 0:BQ.concurrency)!=null)$=sq(BQ.concurrency);return Q($,"concurrency",1),async function*YQ(){var z,$Q;const t=new AbortController,zQ=this,e=[],VQ=t.signal,qq={signal:VQ},UQ=()=>t.abort();if(BQ!==null&&BQ!==void 0&&(z=BQ.signal)!==null&&z!==void 0&&z.aborted)UQ();BQ===null||BQ===void 0||($Q=BQ.signal)===null||$Q===void 0||$Q.addEventListener("abort",UQ);let Qq,WQ,Xq=!1;function GQ(){Xq=!0}async function Jq(){try{for await(let FQ of zQ){var MQ;if(Xq)return;if(VQ.aborted)throw new q;try{FQ=r(FQ,qq)}catch(Kq){FQ=rq(Kq)}if(FQ===c)continue;if(typeof((MQ=FQ)===null||MQ===void 0?void 0:MQ.catch)==="function")FQ.catch(GQ);if(e.push(FQ),Qq)Qq(),Qq=null;if(!Xq&&e.length&&e.length>=$)await new b((Kq)=>{WQ=Kq})}e.push(eq)}catch(FQ){const Kq=rq(FQ);m(Kq,GQ),e.push(Kq)}finally{var Hq;if(Xq=!0,Qq)Qq(),Qq=null;BQ===null||BQ===void 0||(Hq=BQ.signal)===null||Hq===void 0||Hq.removeEventListener("abort",UQ)}}Jq();try{while(!0){while(e.length>0){const MQ=await e[0];if(MQ===eq)return;if(VQ.aborted)throw new q;if(MQ!==c)yield MQ;if(e.shift(),WQ)WQ(),WQ=null}await new b((MQ)=>{Qq=MQ})}}finally{if(t.abort(),Xq=!0,WQ)WQ(),WQ=null}}.call(this)}function qQ(r=void 0){if(r!=null)Z(r,"options");if((r===null||r===void 0?void 0:r.signal)!=null)J(r.signal,"options.signal");return async function*BQ(){let $=0;for await(let z of this){var YQ;if(r!==null&&r!==void 0&&(YQ=r.signal)!==null&&YQ!==void 0&&YQ.aborted)throw new q({cause:r.signal.reason});yield[$++,z]}}.call(this)}async function l(r,BQ=void 0){for await(let $ of n.call(this,r,BQ))return!0;return!1}async function QQ(r,BQ=void 0){if(typeof r!=="function")throw new U("fn",["Function","AsyncFunction"],r);return!await l.call(this,async(...$)=>{return!await r(...$)},BQ)}async function i(r,BQ){for await(let $ of n.call(this,r,BQ))return $;return}async function XQ(r,BQ){if(typeof r!=="function")throw new U("fn",["Function","AsyncFunction"],r);async function $(YQ,z){return await r(YQ,z),c}for await(let YQ of d.call(this,$,BQ));}function n(r,BQ){if(typeof r!=="function")throw new U("fn",["Function","AsyncFunction"],r);async function $(YQ,z){if(await r(YQ,z))return YQ;return c}return d.call(this,$,BQ)}var JQ=class extends H{constructor(){super("reduce");this.message="Reduce of an empty stream requires an initial value"}};async function o(r,BQ,$){var YQ;if(typeof r!=="function")throw new U("reducer",["Function","AsyncFunction"],r);if($!=null)Z($,"options");if(($===null||$===void 0?void 0:$.signal)!=null)J($.signal,"options.signal");let z=arguments.length>1;if($!==null&&$!==void 0&&(YQ=$.signal)!==null&&YQ!==void 0&&YQ.aborted){const VQ=new q(void 0,{cause:$.signal.reason});throw this.once("error",()=>{}),await oq(this.destroy(VQ)),VQ}const $Q=new AbortController,t=$Q.signal;if($!==null&&$!==void 0&&$.signal){const VQ={once:!0,[K]:this};$.signal.addEventListener("abort",()=>$Q.abort(),VQ)}let zQ=!1;try{for await(let VQ of this){var e;if(zQ=!0,$!==null&&$!==void 0&&(e=$.signal)!==null&&e!==void 0&&e.aborted)throw new q;if(!z)BQ=VQ,z=!0;else BQ=await r(BQ,VQ,{signal:t})}if(!zQ&&!z)throw new JQ}finally{$Q.abort()}return BQ}async function HQ(r){if(r!=null)Z(r,"options");if((r===null||r===void 0?void 0:r.signal)!=null)J(r.signal,"options.signal");const BQ=[];for await(let YQ of this){var $;if(r!==null&&r!==void 0&&($=r.signal)!==null&&$!==void 0&&$.aborted)throw new q(void 0,{cause:r.signal.reason});p(BQ,YQ)}return BQ}function s(r,BQ){const $=d.call(this,r,BQ);return async function*YQ(){for await(let z of $)yield*z}.call(this)}function KQ(r){if(r=u(r),aq(r))return 0;if(r<0)throw new X("number",">= 0",r);return r}function a(r,BQ=void 0){if(BQ!=null)Z(BQ,"options");if((BQ===null||BQ===void 0?void 0:BQ.signal)!=null)J(BQ.signal,"options.signal");return r=KQ(r),async function*$(){var YQ;if(BQ!==null&&BQ!==void 0&&(YQ=BQ.signal)!==null&&YQ!==void 0&&YQ.aborted)throw new q;for await(let $Q of this){var z;if(BQ!==null&&BQ!==void 0&&(z=BQ.signal)!==null&&z!==void 0&&z.aborted)throw new q;if(r--<=0)yield $Q}}.call(this)}function ZQ(r,BQ=void 0){if(BQ!=null)Z(BQ,"options");if((BQ===null||BQ===void 0?void 0:BQ.signal)!=null)J(BQ.signal,"options.signal");return r=KQ(r),async function*$(){var YQ;if(BQ!==null&&BQ!==void 0&&(YQ=BQ.signal)!==null&&YQ!==void 0&&YQ.aborted)throw new q;for await(let $Q of this){var z;if(BQ!==null&&BQ!==void 0&&(z=BQ.signal)!==null&&z!==void 0&&z.aborted)throw new q;if(r-- >0)yield $Q;else return}}.call(this)}Y.exports.streamReturningOperators={asIndexedPairs:qQ,drop:a,filter:n,flatMap:s,map:d,take:ZQ},Y.exports.promiseReturningOperators={every:QQ,forEach:XQ,reduce:o,toArray:HQ,some:l,find:i}}}),Oq=G({"node_modules/readable-stream/lib/internal/streams/destroy.js"(B,Y){var{aggregateTwoErrors:U,codes:{ERR_MULTIPLE_CALLBACK:H},AbortError:X}=hQ(),{Symbol:q}=DQ(),{kDestroyed:J,isDestroyed:Q,isFinished:Z,isServerRequest:K}=j(),oq="#kDestroy",p="#kConstruct";function sq(n,JQ,o){if(n){if(n.stack,JQ&&!JQ.errored)JQ.errored=n;if(o&&!o.errored)o.errored=n}}function u(n,JQ){const o=this._readableState,HQ=this._writableState,s=HQ||o;if(HQ&&HQ.destroyed||o&&o.destroyed){if(typeof JQ==="function")JQ();return this}if(sq(n,HQ,o),HQ)HQ.destroyed=!0;if(o)o.destroyed=!0;if(!s.constructed)this.once(oq,(KQ)=>{aq(this,U(KQ,n),JQ)});else aq(this,n,JQ);return this}function aq(n,JQ,o){let HQ=!1;function s(KQ){if(HQ)return;HQ=!0;const{_readableState:a,_writableState:ZQ}=n;if(sq(KQ,ZQ,a),ZQ)ZQ.closed=!0;if(a)a.closed=!0;if(typeof o==="function")o(KQ);if(KQ)_Q(b,n,KQ);else _Q(rq,n)}try{n._destroy(JQ||null,s)}catch(KQ){s(KQ)}}function b(n,JQ){m(n,JQ),rq(n)}function rq(n){const{_readableState:JQ,_writableState:o}=n;if(o)o.closeEmitted=!0;if(JQ)JQ.closeEmitted=!0;if(o&&o.emitClose||JQ&&JQ.emitClose)n.emit("close")}function m(n,JQ){const o=n?._readableState,HQ=n?._writableState;if(HQ?.errorEmitted||o?.errorEmitted)return;if(HQ)HQ.errorEmitted=!0;if(o)o.errorEmitted=!0;n?.emit?.("error",JQ)}function tq(){const n=this._readableState,JQ=this._writableState;if(n)n.constructed=!0,n.closed=!1,n.closeEmitted=!1,n.destroyed=!1,n.errored=null,n.errorEmitted=!1,n.reading=!1,n.ended=n.readable===!1,n.endEmitted=n.readable===!1;if(JQ)JQ.constructed=!0,JQ.destroyed=!1,JQ.closed=!1,JQ.closeEmitted=!1,JQ.errored=null,JQ.errorEmitted=!1,JQ.finalCalled=!1,JQ.prefinished=!1,JQ.ended=JQ.writable===!1,JQ.ending=JQ.writable===!1,JQ.finished=JQ.writable===!1}function c(n,JQ,o){const HQ=n?._readableState,s=n?._writableState;if(s&&s.destroyed||HQ&&HQ.destroyed)return this;if(HQ&&HQ.autoDestroy||s&&s.autoDestroy)n.destroy(JQ);else if(JQ){if(Error.captureStackTrace(JQ),s&&!s.errored)s.errored=JQ;if(HQ&&!HQ.errored)HQ.errored=JQ;if(o)_Q(m,n,JQ);else m(n,JQ)}}function eq(n,JQ){if(typeof n._construct!=="function")return;const{_readableState:o,_writableState:HQ}=n;if(o)o.constructed=!1;if(HQ)HQ.constructed=!1;if(n.once(p,JQ),n.listenerCount(p)>1)return;_Q(d,n)}function d(n){let JQ=!1;function o(HQ){if(JQ){c(n,HQ!==null&&HQ!==void 0?HQ:new H);return}JQ=!0;const{_readableState:s,_writableState:KQ}=n,a=KQ||s;if(s)s.constructed=!0;if(KQ)KQ.constructed=!0;if(a.destroyed)n.emit(oq,HQ);else if(HQ)c(n,HQ,!0);else _Q(qQ,n)}try{n._construct(o)}catch(HQ){o(HQ)}}function qQ(n){n.emit(p)}function l(n){return n&&n.setHeader&&typeof n.abort==="function"}function QQ(n){n.emit("close")}function i(n,JQ){n.emit("error",JQ),_Q(QQ,n)}function XQ(n,JQ){if(!n||Q(n))return;if(!JQ&&!Z(n))JQ=new X;if(K(n))n.socket=null,n.destroy(JQ);else if(l(n))n.abort();else if(l(n.req))n.req.abort();else if(typeof n.destroy==="function")n.destroy(JQ);else if(typeof n.close==="function")n.close();else if(JQ)_Q(i,n);else _Q(QQ,n);if(!n.destroyed)n[J]=!0}Y.exports={construct:eq,destroyer:XQ,destroy:u,undestroy:tq,errorOrDestroy:c}}}),pQ=G({"node_modules/readable-stream/lib/internal/streams/legacy.js"(B,Y){var{ArrayIsArray:U,ObjectSetPrototypeOf:H}=DQ();function X(J){if(!(this instanceof X))return new X(J);CQ.call(this,J)}H(X.prototype,CQ.prototype),H(X,CQ),X.prototype.pipe=function(J,Q){const Z=this;function K(rq){if(J.writable&&J.write(rq)===!1&&Z.pause)Z.pause()}Z.on("data",K);function oq(){if(Z.readable&&Z.resume)Z.resume()}if(J.on("drain",oq),!J._isStdio&&(!Q||Q.end!==!1))Z.on("end",sq),Z.on("close",u);let p=!1;function sq(){if(p)return;p=!0,J.end()}function u(){if(p)return;if(p=!0,typeof J.destroy==="function")J.destroy()}function aq(rq){if(b(),CQ.listenerCount(this,"error")===0)this.emit("error",rq)}q(Z,"error",aq),q(J,"error",aq);function b(){Z.removeListener("data",K),J.removeListener("drain",oq),Z.removeListener("end",sq),Z.removeListener("close",u),Z.removeListener("error",aq),J.removeListener("error",aq),Z.removeListener("end",b),Z.removeListener("close",b),J.removeListener("close",b)}return Z.on("end",b),Z.on("close",b),J.on("close",b),J.emit("pipe",Z),J};function q(J,Q,Z){if(typeof J.prependListener==="function")return J.prependListener(Q,Z);if(!J._events||!J._events[Q])J.on(Q,Z);else if(U(J._events[Q]))J._events[Q].unshift(Z);else J._events[Q]=[Z,J._events[Q]]}Y.exports={Stream:X,prependListener:q}}}),_q=G({"node_modules/readable-stream/lib/internal/streams/add-abort-signal.js"(B,Y){var{AbortError:U,codes:H}=hQ(),X=N(),{ERR_INVALID_ARG_TYPE:q}=H,J=(Z,K)=>{if(typeof Z!=="object"||!("aborted"in Z))throw new q(K,"AbortSignal",Z)};function Q(Z){return!!(Z&&typeof Z.pipe==="function")}Y.exports.addAbortSignal=function Z(K,oq){if(J(K,"signal"),!Q(oq))throw new q("stream","stream.Stream",oq);return Y.exports.addAbortSignalNoValidate(K,oq)},Y.exports.addAbortSignalNoValidate=function(Z,K){if(typeof Z!=="object"||!("aborted"in Z))return K;const oq=()=>{K.destroy(new U(void 0,{cause:Z.reason}))};if(Z.aborted)oq();else Z.addEventListener("abort",oq),X(K,()=>Z.removeEventListener("abort",oq));return K}}}),uQ=G({"node_modules/readable-stream/lib/internal/streams/state.js"(B,Y){var{MathFloor:U,NumberIsInteger:H}=DQ(),{ERR_INVALID_ARG_VALUE:X}=hQ().codes;function q(Z,K,oq){return Z.highWaterMark!=null?Z.highWaterMark:K?Z[oq]:null}function J(Z){return Z?16:16384}function Q(Z,K,oq,p){const sq=q(K,p,oq);if(sq!=null){if(!H(sq)||sq<0){const u=p?`options.${oq}`:"options.highWaterMark";throw new X(u,sq)}return U(sq)}return J(Z.objectMode)}Y.exports={getHighWaterMark:Q,getDefaultHighWaterMark:J}}}),Cq=G({"node_modules/readable-stream/lib/internal/streams/from.js"(B,Y){var{PromisePrototypeThen:U,SymbolAsyncIterator:H,SymbolIterator:X}=DQ(),{ERR_INVALID_ARG_TYPE:q,ERR_STREAM_NULL_VALUES:J}=hQ().codes;function Q(Z,K,oq){let p;if(typeof K==="string"||K instanceof Buffer)return new Z({objectMode:!0,...oq,read(){this.push(K),this.push(null)}});let sq;if(K&&K[H])sq=!0,p=K[H]();else if(K&&K[X])sq=!1,p=K[X]();else throw new q("iterable",["Iterable"],K);const u=new Z({objectMode:!0,highWaterMark:1,...oq});let aq=!1;u._read=function(){if(!aq)aq=!0,rq()},u._destroy=function(m,tq){U(b(m),()=>_Q(tq,m),(c)=>_Q(tq,c||m))};async function b(m){const tq=m!==void 0&&m!==null,c=typeof p.throw==="function";if(tq&&c){const{value:eq,done:d}=await p.throw(m);if(await eq,d)return}if(typeof p.return==="function"){const{value:eq}=await p.return();await eq}}async function rq(){for(;;){try{const{value:m,done:tq}=sq?await p.next():p.next();if(tq)u.push(null);else{const c=m&&typeof m.then==="function"?await m:m;if(c===null)throw aq=!1,new J;else if(u.push(c))continue;else aq=!1}}catch(m){u.destroy(m)}break}}return u}Y.exports=Q}}),bQ,Dq,mQ=G({"node_modules/readable-stream/lib/internal/streams/readable.js"(B,Y){var{ArrayPrototypeIndexOf:U,NumberIsInteger:H,NumberIsNaN:X,NumberParseInt:q,ObjectDefineProperties:J,ObjectKeys:Q,ObjectSetPrototypeOf:Z,Promise:K,SafeSet:oq,SymbolAsyncIterator:p,Symbol:sq}=DQ(),u=globalThis[Symbol.for("Bun.lazy")]("bun:stream").ReadableState,{Stream:aq,prependListener:b}=pQ();function rq(FQ){if(!(this instanceof rq))return new rq(FQ);const Kq=this instanceof wQ();if(this._readableState=new u(FQ,this,Kq),FQ){const{read:LQ,destroy:Zq,construct:jQ,signal:Bq}=FQ;if(typeof LQ==="function")this._read=LQ;if(typeof Zq==="function")this._destroy=Zq;if(typeof jQ==="function")this._construct=jQ;if(Bq&&!Kq)c(Bq,this)}aq.call(this,FQ),n.construct(this,()=>{if(this._readableState.needReadable)i(this,this._readableState)})}Z(rq.prototype,aq.prototype),Z(rq,aq),rq.prototype.on=function(FQ,Kq){const LQ=aq.prototype.on.call(this,FQ,Kq),Zq=this._readableState;if(FQ==="data")if(Zq.readableListening=this.listenerCount("readable")>0,Zq.flowing!==!1)OQ&&Gq("in flowing mode!",this.__id),this.resume();else OQ&&Gq("in readable mode!",this.__id);else if(FQ==="readable"){if(OQ&&Gq("readable listener added!",this.__id),!Zq.endEmitted&&!Zq.readableListening){if(Zq.readableListening=Zq.needReadable=!0,Zq.flowing=!1,Zq.emittedReadable=!1,OQ&&Gq("on readable - state.length, reading, emittedReadable",Zq.length,Zq.reading,Zq.emittedReadable,this.__id),Zq.length)XQ(this,Zq);else if(!Zq.reading)_Q(qq,this)}else if(Zq.endEmitted)OQ&&Gq("end already emitted...",this.__id)}return LQ};class m extends rq{#q;#Q;#X;#J;constructor(FQ,Kq){const{objectMode:LQ,highWaterMark:Zq,encoding:jQ,signal:Bq}=FQ;super({objectMode:LQ,highWaterMark:Zq,encoding:jQ,signal:Bq});this.#X=[],this.#q=void 0,this.#J=Kq,this.#Q=!1}#H(){var FQ=this.#X,Kq=0,LQ=FQ.length;for(;Kq0)this.#X=[];return!1}#K(FQ){FQ.releaseLock(),this.#q=void 0,this.#Q=!0,this.push(null);return}async _read(){OQ&&Gq("ReadableFromWeb _read()",this.__id);var FQ=this.#J,Kq=this.#q;if(FQ)Kq=this.#q=FQ.getReader(),this.#J=void 0;else if(this.#H())return;var LQ;try{do{var Zq=!1,jQ;const Bq=Kq.readMany();if(Lq(Bq)){if({done:Zq,value:jQ}=await Bq,this.#Q){this.#X.push(...jQ);return}}else({done:Zq,value:jQ}=Bq);if(Zq){this.#K(Kq);return}if(!this.push(jQ[0])){this.#X=jQ.slice(1);return}for(let NQ=1,Yq=jQ.length;NQ{this.#Q=!0,Kq(FQ)});return}try{Kq(FQ)}catch(Zq){globalThis.reportError(Zq)}}}Dq=m;function tq(FQ,Kq={}){if(!M(FQ))throw new o("readableStream","ReadableStream",FQ);ZQ(Kq,"options");const{highWaterMark:LQ,encoding:Zq,objectMode:jQ=!1,signal:Bq}=Kq;if(Zq!==void 0&&!Buffer.isEncoding(Zq))throw new xq(Zq,"options.encoding");return F(jQ,"options.objectMode"),_(rq,FQ,Kq)||new m({highWaterMark:LQ,encoding:Zq,objectMode:jQ,signal:Bq},FQ)}Y.exports=rq,bQ=tq;var{addAbortSignal:c}=_q(),eq=N();const{maybeReadMore:d,resume:qQ,emitReadable:l,onEofChunk:QQ}=globalThis[Symbol.for("Bun.lazy")]("bun:stream");function i(FQ,Kq){process.nextTick(d,FQ,Kq)}function XQ(FQ,Kq){OQ&&Gq("NativeReadable - emitReadable",FQ.__id),l(FQ,Kq)}var n=Oq(),{aggregateTwoErrors:JQ,codes:{ERR_INVALID_ARG_TYPE:o,ERR_METHOD_NOT_IMPLEMENTED:HQ,ERR_OUT_OF_RANGE:s,ERR_STREAM_PUSH_AFTER_EOF:KQ,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:a}}=hQ(),{validateObject:ZQ}=L(),r=Cq(),BQ=()=>{},{errorOrDestroy:$}=n;rq.prototype.destroy=n.destroy,rq.prototype._undestroy=n.undestroy,rq.prototype._destroy=function(FQ,Kq){Kq(FQ)},rq.prototype[CQ.captureRejectionSymbol]=function(FQ){this.destroy(FQ)},rq.prototype.push=function(FQ,Kq){return YQ(this,FQ,Kq,!1)},rq.prototype.unshift=function(FQ,Kq){return YQ(this,FQ,Kq,!0)};function YQ(FQ,Kq,LQ,Zq){OQ&&Gq("readableAddChunk",Kq,FQ.__id);const jQ=FQ._readableState;let Bq;if(!jQ.objectMode){if(typeof Kq==="string"){if(LQ=LQ||jQ.defaultEncoding,jQ.encoding!==LQ)if(Zq&&jQ.encoding)Kq=Buffer.from(Kq,LQ).toString(jQ.encoding);else Kq=Buffer.from(Kq,LQ),LQ=""}else if(Kq instanceof Buffer)LQ="";else if(aq._isUint8Array(Kq)){if(Zq||!jQ.decoder)Kq=aq._uint8ArrayToBuffer(Kq);LQ=""}else if(Kq!=null)Bq=new o("chunk",["string","Buffer","Uint8Array"],Kq)}if(Bq)$(FQ,Bq);else if(Kq===null)jQ.reading=!1,QQ(FQ,jQ);else if(jQ.objectMode||Kq&&Kq.length>0)if(Zq)if(jQ.endEmitted)$(FQ,new a);else if(jQ.destroyed||jQ.errored)return!1;else z(FQ,jQ,Kq,!0);else if(jQ.ended)$(FQ,new KQ);else if(jQ.destroyed||jQ.errored)return!1;else if(jQ.reading=!1,jQ.decoder&&!LQ)if(Kq=jQ.decoder.write(Kq),jQ.objectMode||Kq.length!==0)z(FQ,jQ,Kq,!1);else i(FQ,jQ);else z(FQ,jQ,Kq,!1);else if(!Zq)jQ.reading=!1,i(FQ,jQ);return!jQ.ended&&(jQ.length0){if(Kq.multiAwaitDrain)Kq.awaitDrainWriters.clear();else Kq.awaitDrainWriters=null;Kq.dataEmitted=!0,FQ.emit("data",LQ)}else{if(Kq.length+=Kq.objectMode?1:LQ.length,Zq)Kq.buffer.unshift(LQ);else Kq.buffer.push(LQ);if(OQ&&Gq("needReadable @ addChunk",Kq.needReadable,FQ.__id),Kq.needReadable)XQ(FQ,Kq)}i(FQ,Kq)}rq.prototype.isPaused=function(){const FQ=this._readableState;return FQ.paused===!0||FQ.flowing===!1},rq.prototype.setEncoding=function(FQ){const Kq=new Eq(FQ);this._readableState.decoder=Kq,this._readableState.encoding=this._readableState.decoder.encoding;const LQ=this._readableState.buffer;let Zq="";for(let jQ=LQ.length;jQ>0;jQ--)Zq+=Kq.write(LQ.shift());if(Zq!=="")LQ.push(Zq);return this._readableState.length=Zq.length,this};var $Q=1073741824;function t(FQ){if(FQ>$Q)throw new s("size","<= 1GiB",FQ);else FQ--,FQ|=FQ>>>1,FQ|=FQ>>>2,FQ|=FQ>>>4,FQ|=FQ>>>8,FQ|=FQ>>>16,FQ++;return FQ}function zQ(FQ,Kq){if(FQ<=0||Kq.length===0&&Kq.ended)return 0;if(Kq.objectMode)return 1;if(X(FQ)){if(Kq.flowing&&Kq.length)return Kq.buffer.first().length;return Kq.length}if(FQ<=Kq.length)return FQ;return Kq.ended?Kq.length:0}rq.prototype.read=function(FQ){if(OQ&&Gq("read - n =",FQ,this.__id),!H(FQ))FQ=q(FQ,10);const Kq=this._readableState,LQ=FQ;if(FQ>Kq.highWaterMark)Kq.highWaterMark=t(FQ);if(FQ!==0)Kq.emittedReadable=!1;if(FQ===0&&Kq.needReadable&&((Kq.highWaterMark!==0?Kq.length>=Kq.highWaterMark:Kq.length>0)||Kq.ended)){if(OQ&&Gq("read: emitReadable or endReadable",Kq.length,Kq.ended,this.__id),Kq.length===0&&Kq.ended)Xq(this);else XQ(this,Kq);return null}if(FQ=zQ(FQ,Kq),FQ===0&&Kq.ended){if(OQ&&Gq("read: calling endReadable if length 0 -- length, state.ended",Kq.length,Kq.ended,this.__id),Kq.length===0)Xq(this);return null}let Zq=Kq.needReadable;if(OQ&&Gq("need readable",Zq,this.__id),Kq.length===0||Kq.length-FQ0)Bq=WQ(FQ,Kq);else Bq=null;if(OQ&&Gq("ret @ read",Bq,this.__id),Bq===null)Kq.needReadable=Kq.length<=Kq.highWaterMark,OQ&&Gq("state.length while ret = null",Kq.length,this.__id),FQ=0;else if(Kq.length-=FQ,Kq.multiAwaitDrain)Kq.awaitDrainWriters.clear();else Kq.awaitDrainWriters=null;if(Kq.length===0){if(!Kq.ended)Kq.needReadable=!0;if(LQ!==FQ&&Kq.ended)Xq(this)}if(Bq!==null&&!Kq.errorEmitted&&!Kq.closeEmitted)Kq.dataEmitted=!0,this.emit("data",Bq);return Bq},rq.prototype._read=function(FQ){throw new HQ("_read()")},rq.prototype.pipe=function(FQ,Kq){const LQ=this,Zq=this._readableState;if(Zq.pipes.length===1){if(!Zq.multiAwaitDrain)Zq.multiAwaitDrain=!0,Zq.awaitDrainWriters=new oq(Zq.awaitDrainWriters?[Zq.awaitDrainWriters]:[])}Zq.pipes.push(FQ),OQ&&Gq("pipe count=%d opts=%j",Zq.pipes.length,Kq,LQ.__id);const Bq=(!Kq||Kq.end!==!1)&&FQ!==process.stdout&&FQ!==process.stderr?Yq:PQ;if(Zq.endEmitted)_Q(Bq);else LQ.once("end",Bq);FQ.on("unpipe",NQ);function NQ(Wq,xQ){if(OQ&&Gq("onunpipe",LQ.__id),Wq===LQ){if(xQ&&xQ.hasUnpiped===!1)xQ.hasUnpiped=!0,EQ()}}function Yq(){OQ&&Gq("onend",LQ.__id),FQ.end()}let AQ,$q=!1;function EQ(){if(OQ&&Gq("cleanup",LQ.__id),FQ.removeListener("close",TQ),FQ.removeListener("finish",Uq),AQ)FQ.removeListener("drain",AQ);if(FQ.removeListener("error",Vq),FQ.removeListener("unpipe",NQ),LQ.removeListener("end",Yq),LQ.removeListener("end",PQ),LQ.removeListener("data",IQ),$q=!0,AQ&&Zq.awaitDrainWriters&&(!FQ._writableState||FQ._writableState.needDrain))AQ()}function zq(){if(!$q){if(Zq.pipes.length===1&&Zq.pipes[0]===FQ)OQ&&Gq("false write response, pause",0,LQ.__id),Zq.awaitDrainWriters=FQ,Zq.multiAwaitDrain=!1;else if(Zq.pipes.length>1&&Zq.pipes.includes(FQ))OQ&&Gq("false write response, pause",Zq.awaitDrainWriters.size,LQ.__id),Zq.awaitDrainWriters.add(FQ);LQ.pause()}if(!AQ)AQ=e(LQ,FQ),FQ.on("drain",AQ)}LQ.on("data",IQ);function IQ(Wq){OQ&&Gq("ondata",LQ.__id);const xQ=FQ.write(Wq);if(OQ&&Gq("dest.write",xQ,LQ.__id),xQ===!1)zq()}function Vq(Wq){if(Gq("onerror",Wq),PQ(),FQ.removeListener("error",Vq),FQ.listenerCount("error")===0){const xQ=FQ._writableState||FQ._readableState;if(xQ&&!xQ.errorEmitted)$(FQ,Wq);else FQ.emit("error",Wq)}}b(FQ,"error",Vq);function TQ(){FQ.removeListener("finish",Uq),PQ()}FQ.once("close",TQ);function Uq(){Gq("onfinish"),FQ.removeListener("close",TQ),PQ()}FQ.once("finish",Uq);function PQ(){Gq("unpipe"),LQ.unpipe(FQ)}if(FQ.emit("pipe",LQ),FQ.writableNeedDrain===!0){if(Zq.flowing)zq()}else if(!Zq.flowing)Gq("pipe resume"),LQ.resume();return FQ};function e(FQ,Kq){return function LQ(){const Zq=FQ._readableState;if(Zq.awaitDrainWriters===Kq)Gq("pipeOnDrain",1),Zq.awaitDrainWriters=null;else if(Zq.multiAwaitDrain)Gq("pipeOnDrain",Zq.awaitDrainWriters.size),Zq.awaitDrainWriters.delete(Kq);if((!Zq.awaitDrainWriters||Zq.awaitDrainWriters.size===0)&&FQ.listenerCount("data"))FQ.resume()}}rq.prototype.unpipe=function(FQ){const Kq=this._readableState,LQ={hasUnpiped:!1};if(Kq.pipes.length===0)return this;if(!FQ){const jQ=Kq.pipes;Kq.pipes=[],this.pause();for(let Bq=0;Bq0,Kq.resumeScheduled&&Kq.paused===!1)Kq.flowing=!0;else if(FQ.listenerCount("data")>0)FQ.resume();else if(!Kq.readableListening)Kq.flowing=null}function qq(FQ){OQ&&Gq("on readable nextTick, calling read(0)",FQ.__id),FQ.read(0)}rq.prototype.resume=function(){const FQ=this._readableState;if(!FQ.flowing)OQ&&Gq("resume",this.__id),FQ.flowing=!FQ.readableListening,qQ(this,FQ);return FQ.paused=!1,this},rq.prototype.pause=function(){if(OQ&&Gq("call pause flowing=%j",this._readableState.flowing,this.__id),this._readableState.flowing!==!1)OQ&&Gq("pause",this.__id),this._readableState.flowing=!1,this.emit("pause");return this._readableState.paused=!0,this},rq.prototype.wrap=function(FQ){let Kq=!1;FQ.on("data",(Zq)=>{if(!this.push(Zq)&&FQ.pause)Kq=!0,FQ.pause()}),FQ.on("end",()=>{this.push(null)}),FQ.on("error",(Zq)=>{$(this,Zq)}),FQ.on("close",()=>{this.destroy()}),FQ.on("destroy",()=>{this.destroy()}),this._read=()=>{if(Kq&&FQ.resume)Kq=!1,FQ.resume()};const LQ=Q(FQ);for(let Zq=1;Zq{jQ=NQ?JQ(jQ,NQ):null,LQ(),LQ=BQ});try{while(!0){const NQ=FQ.destroyed?null:FQ.read();if(NQ!==null)yield NQ;else if(jQ)throw jQ;else if(jQ===null)return;else await new K(Zq)}}catch(NQ){throw jQ=JQ(jQ,NQ),jQ}finally{if((jQ||(Kq===null||Kq===void 0?void 0:Kq.destroyOnReturn)!==!1)&&(jQ===void 0||FQ._readableState.autoDestroy))n.destroyer(FQ,null);else FQ.off("readable",Zq),Bq()}}J(rq.prototype,{readable:{get(){const FQ=this._readableState;return!!FQ&&FQ.readable!==!1&&!FQ.destroyed&&!FQ.errorEmitted&&!FQ.endEmitted},set(FQ){if(this._readableState)this._readableState.readable=!!FQ}},readableDidRead:{enumerable:!1,get:function(){return this._readableState.dataEmitted}},readableAborted:{enumerable:!1,get:function(){return!!(this._readableState.readable!==!1&&(this._readableState.destroyed||this._readableState.errored)&&!this._readableState.endEmitted)}},readableHighWaterMark:{enumerable:!1,get:function(){return this._readableState.highWaterMark}},readableBuffer:{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}},readableFlowing:{enumerable:!1,get:function(){return this._readableState.flowing},set:function(FQ){if(this._readableState)this._readableState.flowing=FQ}},readableLength:{enumerable:!1,get(){return this._readableState.length}},readableObjectMode:{enumerable:!1,get(){return this._readableState?this._readableState.objectMode:!1}},readableEncoding:{enumerable:!1,get(){return this._readableState?this._readableState.encoding:null}},errored:{enumerable:!1,get(){return this._readableState?this._readableState.errored:null}},closed:{get(){return this._readableState?this._readableState.closed:!1}},destroyed:{enumerable:!1,get(){return this._readableState?this._readableState.destroyed:!1},set(FQ){if(!this._readableState)return;this._readableState.destroyed=FQ}},readableEnded:{enumerable:!1,get(){return this._readableState?this._readableState.endEmitted:!1}}}),rq._fromList=WQ;function WQ(FQ,Kq){if(Kq.length===0)return null;let LQ;if(Kq.objectMode)LQ=Kq.buffer.shift();else if(!FQ||FQ>=Kq.length){if(Kq.decoder)LQ=Kq.buffer.join("");else if(Kq.buffer.length===1)LQ=Kq.buffer.first();else LQ=Kq.buffer.concat(Kq.length);Kq.buffer.clear()}else LQ=Kq.buffer.consume(FQ,Kq.decoder);return LQ}function Xq(FQ){const Kq=FQ._readableState;if(OQ&&Gq("endEmitted @ endReadable",Kq.endEmitted,FQ.__id),!Kq.endEmitted)Kq.ended=!0,_Q(GQ,Kq,FQ)}function GQ(FQ,Kq){if(OQ&&Gq("endReadableNT -- endEmitted, state.length",FQ.endEmitted,FQ.length,Kq.__id),!FQ.errored&&!FQ.closeEmitted&&!FQ.endEmitted&&FQ.length===0){if(FQ.endEmitted=!0,Kq.emit("end"),OQ&&Gq("end emitted @ endReadableNT",Kq.__id),Kq.writable&&Kq.allowHalfOpen===!1)_Q(Jq,Kq);else if(FQ.autoDestroy){const LQ=Kq._writableState;if(!LQ||LQ.autoDestroy&&(LQ.finished||LQ.writable===!1))Kq.destroy()}}}function Jq(FQ){if(FQ.writable&&!FQ.writableEnded&&!FQ.destroyed)FQ.end()}rq.from=function(FQ,Kq){return r(rq,FQ,Kq)};var MQ={newStreamReadableFromReadableStream:tq};function Hq(){if(MQ===void 0)MQ={};return MQ}rq.fromWeb=function(FQ,Kq){return Hq().newStreamReadableFromReadableStream(FQ,Kq)},rq.toWeb=function(FQ){return Hq().newReadableStreamFromStreamReadable(FQ)},rq.wrap=function(FQ,Kq){var LQ,Zq;return new rq({objectMode:(LQ=(Zq=FQ.readableObjectMode)!==null&&Zq!==void 0?Zq:FQ.objectMode)!==null&&LQ!==void 0?LQ:!0,...Kq,destroy(jQ,Bq){n.destroyer(FQ,jQ),Bq(jQ)}}).wrap(FQ)}}}),wq=G({"node_modules/readable-stream/lib/internal/streams/writable.js"(B,Y){var{ArrayPrototypeSlice:U,Error:H,FunctionPrototypeSymbolHasInstance:X,ObjectDefineProperty:q,ObjectDefineProperties:J,ObjectSetPrototypeOf:Q,StringPrototypeToLowerCase:Z,Symbol:K,SymbolHasInstance:oq}=DQ(),p=pQ().Stream,sq=Oq(),{addAbortSignal:u}=_q(),{getHighWaterMark:aq,getDefaultHighWaterMark:b}=uQ(),{ERR_INVALID_ARG_TYPE:rq,ERR_METHOD_NOT_IMPLEMENTED:m,ERR_MULTIPLE_CALLBACK:tq,ERR_STREAM_CANNOT_PIPE:c,ERR_STREAM_DESTROYED:eq,ERR_STREAM_ALREADY_FINISHED:d,ERR_STREAM_NULL_VALUES:qQ,ERR_STREAM_WRITE_AFTER_END:l,ERR_UNKNOWN_ENCODING:QQ}=hQ().codes,{errorOrDestroy:i}=sq;function XQ(WQ={}){const Xq=this instanceof wQ();if(!Xq&&!X(XQ,this))return new XQ(WQ);if(this._writableState=new o(WQ,this,Xq),WQ){if(typeof WQ.write==="function")this._write=WQ.write;if(typeof WQ.writev==="function")this._writev=WQ.writev;if(typeof WQ.destroy==="function")this._destroy=WQ.destroy;if(typeof WQ.final==="function")this._final=WQ.final;if(typeof WQ.construct==="function")this._construct=WQ.construct;if(WQ.signal)u(WQ.signal,this)}p.call(this,WQ),sq.construct(this,()=>{const GQ=this._writableState;if(!GQ.writing)z(this,GQ);e(this,GQ)})}Q(XQ.prototype,p.prototype),Q(XQ,p),Y.exports=XQ;function n(){}var JQ=K("kOnFinished");function o(WQ,Xq,GQ){if(typeof GQ!=="boolean")GQ=Xq instanceof wQ();if(this.objectMode=!!(WQ&&WQ.objectMode),GQ)this.objectMode=this.objectMode||!!(WQ&&WQ.writableObjectMode);this.highWaterMark=WQ?aq(this,WQ,"writableHighWaterMark",GQ):b(!1),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;const Jq=!!(WQ&&WQ.decodeStrings===!1);this.decodeStrings=!Jq,this.defaultEncoding=WQ&&WQ.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=r.bind(void 0,Xq),this.writecb=null,this.writelen=0,this.afterWriteTickInfo=null,HQ(this),this.pendingcb=0,this.constructed=!0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!WQ||WQ.emitClose!==!1,this.autoDestroy=!WQ||WQ.autoDestroy!==!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this[JQ]=[]}function HQ(WQ){WQ.buffered=[],WQ.bufferedIndex=0,WQ.allBuffers=!0,WQ.allNoop=!0}o.prototype.getBuffer=function WQ(){return U(this.buffered,this.bufferedIndex)},q(o.prototype,"bufferedRequestCount",{get(){return this.buffered.length-this.bufferedIndex}}),q(XQ,oq,{value:function(WQ){if(X(this,WQ))return!0;if(this!==XQ)return!1;return WQ&&WQ._writableState instanceof o}}),XQ.prototype.pipe=function(){i(this,new c)};function s(WQ,Xq,GQ,Jq){const MQ=WQ._writableState;if(typeof GQ==="function")Jq=GQ,GQ=MQ.defaultEncoding;else{if(!GQ)GQ=MQ.defaultEncoding;else if(GQ!=="buffer"&&!Buffer.isEncoding(GQ))throw new QQ(GQ);if(typeof Jq!=="function")Jq=n}if(Xq===null)throw new qQ;else if(!MQ.objectMode)if(typeof Xq==="string"){if(MQ.decodeStrings!==!1)Xq=Buffer.from(Xq,GQ),GQ="buffer"}else if(Xq instanceof Buffer)GQ="buffer";else if(p._isUint8Array(Xq))Xq=p._uint8ArrayToBuffer(Xq),GQ="buffer";else throw new rq("chunk",["string","Buffer","Uint8Array"],Xq);let Hq;if(MQ.ending)Hq=new l;else if(MQ.destroyed)Hq=new eq("write");if(Hq)return _Q(Jq,Hq),i(WQ,Hq,!0),Hq;return MQ.pendingcb++,KQ(WQ,MQ,Xq,GQ,Jq)}XQ.prototype.write=function(WQ,Xq,GQ){return s(this,WQ,Xq,GQ)===!0},XQ.prototype.cork=function(){this._writableState.corked++},XQ.prototype.uncork=function(){const WQ=this._writableState;if(WQ.corked){if(WQ.corked--,!WQ.writing)z(this,WQ)}},XQ.prototype.setDefaultEncoding=function WQ(Xq){if(typeof Xq==="string")Xq=Z(Xq);if(!Buffer.isEncoding(Xq))throw new QQ(Xq);return this._writableState.defaultEncoding=Xq,this};function KQ(WQ,Xq,GQ,Jq,MQ){const Hq=Xq.objectMode?1:GQ.length;Xq.length+=Hq;const FQ=Xq.lengthGQ.bufferedIndex)z(WQ,GQ);if(Jq)if(GQ.afterWriteTickInfo!==null&&GQ.afterWriteTickInfo.cb===MQ)GQ.afterWriteTickInfo.count++;else GQ.afterWriteTickInfo={count:1,cb:MQ,stream:WQ,state:GQ},_Q(BQ,GQ.afterWriteTickInfo);else $(WQ,GQ,1,MQ)}}function BQ({stream:WQ,state:Xq,count:GQ,cb:Jq}){return Xq.afterWriteTickInfo=null,$(WQ,Xq,GQ,Jq)}function $(WQ,Xq,GQ,Jq){if(!Xq.ending&&!WQ.destroyed&&Xq.length===0&&Xq.needDrain)Xq.needDrain=!1,WQ.emit("drain");while(GQ-- >0)Xq.pendingcb--,Jq();if(Xq.destroyed)YQ(Xq);e(WQ,Xq)}function YQ(WQ){if(WQ.writing)return;for(let MQ=WQ.bufferedIndex;MQ1&&WQ._writev){Xq.pendingcb-=Hq-1;const Kq=Xq.allNoop?n:(Zq)=>{for(let jQ=FQ;jQ256)GQ.splice(0,FQ),Xq.bufferedIndex=0;else Xq.bufferedIndex=FQ}Xq.bufferProcessing=!1}XQ.prototype._write=function(WQ,Xq,GQ){if(this._writev)this._writev([{chunk:WQ,encoding:Xq}],GQ);else throw new m("_write()")},XQ.prototype._writev=null,XQ.prototype.end=function(WQ,Xq,GQ,Jq=!1){const MQ=this._writableState;if(OQ&&Gq("end",MQ,this.__id),typeof WQ==="function")GQ=WQ,WQ=null,Xq=null;else if(typeof Xq==="function")GQ=Xq,Xq=null;let Hq;if(WQ!==null&&WQ!==void 0){let FQ;if(!Jq)FQ=s(this,WQ,Xq);else FQ=this.write(WQ,Xq);if(FQ instanceof H)Hq=FQ}if(MQ.corked)MQ.corked=1,this.uncork();if(Hq)this.emit("error",Hq);else if(!MQ.errored&&!MQ.ending)MQ.ending=!0,e(this,MQ,!0),MQ.ended=!0;else if(MQ.finished)Hq=new d("end");else if(MQ.destroyed)Hq=new eq("end");if(typeof GQ==="function")if(Hq||MQ.finished)_Q(GQ,Hq);else MQ[JQ].push(GQ);return this};function $Q(WQ,Xq){var GQ=WQ.ending&&!WQ.destroyed&&WQ.constructed&&WQ.length===0&&!WQ.errored&&WQ.buffered.length===0&&!WQ.finished&&!WQ.writing&&!WQ.errorEmitted&&!WQ.closeEmitted;return Gq("needFinish",GQ,Xq),GQ}function t(WQ,Xq){let GQ=!1;function Jq(MQ){if(GQ){i(WQ,MQ!==null&&MQ!==void 0?MQ:tq());return}if(GQ=!0,Xq.pendingcb--,MQ){const Hq=Xq[JQ].splice(0);for(let FQ=0;FQ{if($Q(MQ))VQ(Jq,MQ);else MQ.pendingcb--},WQ,Xq);else if($Q(Xq))Xq.pendingcb++,VQ(WQ,Xq)}}function VQ(WQ,Xq){Xq.pendingcb--,Xq.finished=!0;const GQ=Xq[JQ].splice(0);for(let Jq=0;Jq{if(ZQ!=null)throw new sq("nully","body",ZQ)},(ZQ)=>{u(KQ,ZQ)});return KQ=new eq({objectMode:!0,readable:!1,write:JQ,final(ZQ){o(async()=>{try{await a,_Q(ZQ,null)}catch(r){_Q(ZQ,r)}})},destroy:HQ})}throw new sq("Iterable, AsyncIterable or AsyncFunction",i,n)}if(tq(QQ))return l(QQ.arrayBuffer());if(X(QQ))return m(eq,QQ,{objectMode:!0,writable:!1});if(typeof(QQ===null||QQ===void 0?void 0:QQ.writable)==="object"||typeof(QQ===null||QQ===void 0?void 0:QQ.readable)==="object"){const n=QQ!==null&&QQ!==void 0&&QQ.readable?J(QQ===null||QQ===void 0?void 0:QQ.readable)?QQ===null||QQ===void 0?void 0:QQ.readable:l(QQ.readable):void 0,JQ=QQ!==null&&QQ!==void 0&&QQ.writable?Q(QQ===null||QQ===void 0?void 0:QQ.writable)?QQ===null||QQ===void 0?void 0:QQ.writable:l(QQ.writable):void 0;return qQ({readable:n,writable:JQ})}const XQ=QQ===null||QQ===void 0?void 0:QQ.then;if(typeof XQ==="function"){let n;return c(XQ,QQ,(JQ)=>{if(JQ!=null)n.push(JQ);n.push(null)},(JQ)=>{u(n,JQ)}),n=new eq({objectMode:!0,writable:!1,read(){}})}throw new p(i,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],QQ)};function d(l){let{promise:QQ,resolve:i}=rq();const XQ=new AbortController,n=XQ.signal;return{value:l(async function*(){while(!0){const o=QQ;QQ=null;const{chunk:HQ,done:s,cb:KQ}=await o;if(_Q(KQ),s)return;if(n.aborted)throw new oq(void 0,{cause:n.reason});({promise:QQ,resolve:i}=rq()),yield HQ}}(),{signal:n}),write(o,HQ,s){const KQ=i;i=null,KQ({chunk:o,done:!1,cb:s})},final(o){const HQ=i;i=null,HQ({done:!0,cb:o})},destroy(o,HQ){XQ.abort(),HQ(o)}}}function qQ(l){const QQ=l.readable&&typeof l.readable.read!=="function"?b.wrap(l.readable):l.readable,i=l.writable;let XQ=!!U(QQ),n=!!H(i),JQ,o,HQ,s,KQ;function a(ZQ){const r=s;if(s=null,r)r(ZQ);else if(ZQ)KQ.destroy(ZQ);else if(!XQ&&!n)KQ.destroy()}if(KQ=new eq({readableObjectMode:!!(QQ!==null&&QQ!==void 0&&QQ.readableObjectMode),writableObjectMode:!!(i!==null&&i!==void 0&&i.writableObjectMode),readable:XQ,writable:n}),n)K(i,(ZQ)=>{if(n=!1,ZQ)u(QQ,ZQ);a(ZQ)}),KQ._write=function(ZQ,r,BQ){if(i.write(ZQ,r))BQ();else JQ=BQ},KQ._final=function(ZQ){i.end(),o=ZQ},i.on("drain",function(){if(JQ){const ZQ=JQ;JQ=null,ZQ()}}),i.on("finish",function(){if(o){const ZQ=o;o=null,ZQ()}});if(XQ)K(QQ,(ZQ)=>{if(XQ=!1,ZQ)u(QQ,ZQ);a(ZQ)}),QQ.on("readable",function(){if(HQ){const ZQ=HQ;HQ=null,ZQ()}}),QQ.on("end",function(){KQ.push(null)}),KQ._read=function(){while(!0){const ZQ=QQ.read();if(ZQ===null){HQ=KQ._read;return}if(!KQ.push(ZQ))return}};return KQ._destroy=function(ZQ,r){if(!ZQ&&s!==null)ZQ=new oq;if(HQ=null,JQ=null,o=null,s===null)r(ZQ);else s=r,u(i,ZQ),u(QQ,ZQ)},KQ}}}),wQ=G({"node_modules/readable-stream/lib/internal/streams/duplex.js"(B,Y){var{ObjectDefineProperties:U,ObjectGetOwnPropertyDescriptor:H,ObjectKeys:X,ObjectSetPrototypeOf:q}=DQ(),J=mQ();function Q(sq){if(!(this instanceof Q))return new Q(sq);if(J.call(this,sq),Mq.call(this,sq),sq){if(this.allowHalfOpen=sq.allowHalfOpen!==!1,sq.readable===!1)this._readableState.readable=!1,this._readableState.ended=!0,this._readableState.endEmitted=!0;if(sq.writable===!1)this._writableState.writable=!1,this._writableState.ending=!0,this._writableState.ended=!0,this._writableState.finished=!0}else this.allowHalfOpen=!0}Y.exports=Q,q(Q.prototype,J.prototype),q(Q,J);for(var Z in Mq.prototype)if(!Q.prototype[Z])Q.prototype[Z]=Mq.prototype[Z];U(Q.prototype,{writable:H(Mq.prototype,"writable"),writableHighWaterMark:H(Mq.prototype,"writableHighWaterMark"),writableObjectMode:H(Mq.prototype,"writableObjectMode"),writableBuffer:H(Mq.prototype,"writableBuffer"),writableLength:H(Mq.prototype,"writableLength"),writableFinished:H(Mq.prototype,"writableFinished"),writableCorked:H(Mq.prototype,"writableCorked"),writableEnded:H(Mq.prototype,"writableEnded"),writableNeedDrain:H(Mq.prototype,"writableNeedDrain"),destroyed:{get(){if(this._readableState===void 0||this._writableState===void 0)return!1;return this._readableState.destroyed&&this._writableState.destroyed},set(sq){if(this._readableState&&this._writableState)this._readableState.destroyed=sq,this._writableState.destroyed=sq}}});var K;function oq(){if(K===void 0)K={};return K}Q.fromWeb=function(sq,u){return oq().newStreamDuplexFromReadableWritablePair(sq,u)},Q.toWeb=function(sq){return oq().newReadableWritablePairFromDuplex(sq)};var p;Q.from=function(sq){if(!p)p=cQ();return p(sq,"body")}}}),vq=G({"node_modules/readable-stream/lib/internal/streams/transform.js"(B,Y){var{ObjectSetPrototypeOf:U,Symbol:H}=DQ(),{ERR_METHOD_NOT_IMPLEMENTED:X}=hQ().codes,q=wQ();function J(oq){if(!(this instanceof J))return new J(oq);if(q.call(this,oq),this._readableState.sync=!1,this[Q]=null,oq){if(typeof oq.transform==="function")this._transform=oq.transform;if(typeof oq.flush==="function")this._flush=oq.flush}this.on("prefinish",K.bind(this))}U(J.prototype,q.prototype),U(J,q),Y.exports=J;var Q=H("kCallback");function Z(oq){if(typeof this._flush==="function"&&!this.destroyed)this._flush((p,sq)=>{if(p){if(oq)oq(p);else this.destroy(p);return}if(sq!=null)this.push(sq);if(this.push(null),oq)oq()});else if(this.push(null),oq)oq()}function K(){if(this._final!==Z)Z.call(this)}J.prototype._final=Z,J.prototype._transform=function(oq,p,sq){throw new X("_transform()")},J.prototype._write=function(oq,p,sq){const u=this._readableState,aq=this._writableState,b=u.length;this._transform(oq,p,(rq,m)=>{if(rq){sq(rq);return}if(m!=null)this.push(m);if(aq.ended||b===u.length||u.length{ZQ=!0});const r=q(s,{readable:KQ,writable:a},(BQ)=>{ZQ=!BQ});return{destroy:(BQ)=>{if(ZQ)return;ZQ=!0,Q.destroyer(s,BQ||new u("pipe"))},cleanup:r}}function QQ(s){return b(s[s.length-1],"streams[stream.length - 1]"),s.pop()}function i(s){if(m(s))return s;else if(c(s))return XQ(s);throw new oq("val",["Readable","Iterable","AsyncIterable"],s)}async function*XQ(s){if(!qQ)qQ=mQ();yield*qQ.prototype[X].call(s)}async function n(s,KQ,a,{end:ZQ}){let r,BQ=null;const $=($Q)=>{if($Q)r=$Q;if(BQ){const t=BQ;BQ=null,t()}},YQ=()=>new H(($Q,t)=>{if(r)t(r);else BQ=()=>{if(r)t(r);else $Q()}});KQ.on("drain",$);const z=q(KQ,{readable:!1},$);try{if(KQ.writableNeedDrain)await YQ();for await(let $Q of s)if(!KQ.write($Q))await YQ();if(ZQ)KQ.end();await YQ(),a()}catch($Q){a(r!==$Q?K(r,$Q):$Q)}finally{z(),KQ.off("drain",$)}}function JQ(...s){return o(s,J(QQ(s)))}function o(s,KQ,a){if(s.length===1&&U(s[0]))s=s[0];if(s.length<2)throw new sq("streams");const ZQ=new AbortController,r=ZQ.signal,BQ=a===null||a===void 0?void 0:a.signal,$=[];rq(BQ,"options.signal");function YQ(){VQ(new aq)}BQ===null||BQ===void 0||BQ.addEventListener("abort",YQ);let z,$Q;const t=[];let zQ=0;function e(Qq){VQ(Qq,--zQ===0)}function VQ(Qq,WQ){if(Qq&&(!z||z.code==="ERR_STREAM_PREMATURE_CLOSE"))z=Qq;if(!z&&!WQ)return;while(t.length)t.shift()(z);if(BQ===null||BQ===void 0||BQ.removeEventListener("abort",YQ),ZQ.abort(),WQ){if(!z)$.forEach((Xq)=>Xq());_Q(KQ,z,$Q)}}let qq;for(let Qq=0;Qq0,Jq=Xq||(a===null||a===void 0?void 0:a.end)!==!1,MQ=Qq===s.length-1;if(eq(WQ)){let Hq=function(FQ){if(FQ&&FQ.name!=="AbortError"&&FQ.code!=="ERR_STREAM_PREMATURE_CLOSE")e(FQ)};if(Jq){const{destroy:FQ,cleanup:Kq}=l(WQ,Xq,GQ);if(t.push(FQ),tq(WQ)&&MQ)$.push(Kq)}if(WQ.on("error",Hq),tq(WQ)&&MQ)$.push(()=>{WQ.removeListener("error",Hq)})}if(Qq===0)if(typeof WQ==="function"){if(qq=WQ({signal:r}),!m(qq))throw new p("Iterable, AsyncIterable or Stream","source",qq)}else if(m(WQ)||c(WQ))qq=WQ;else qq=Z.from(WQ);else if(typeof WQ==="function")if(qq=i(qq),qq=WQ(qq,{signal:r}),Xq){if(!m(qq,!0))throw new p("AsyncIterable",`transform[${Qq-1}]`,qq)}else{var UQ;if(!d)d=dQ();const Hq=new d({objectMode:!0}),FQ=(UQ=qq)===null||UQ===void 0?void 0:UQ.then;if(typeof FQ==="function")zQ++,FQ.call(qq,(Zq)=>{if($Q=Zq,Zq!=null)Hq.write(Zq);if(Jq)Hq.end();_Q(e)},(Zq)=>{Hq.destroy(Zq),_Q(e,Zq)});else if(m(qq,!0))zQ++,n(qq,Hq,e,{end:Jq});else throw new p("AsyncIterable or Promise","destination",qq);qq=Hq;const{destroy:Kq,cleanup:LQ}=l(qq,!1,!0);if(t.push(Kq),MQ)$.push(LQ)}else if(eq(WQ)){if(c(qq)){zQ+=2;const Hq=HQ(qq,WQ,e,{end:Jq});if(tq(WQ)&&MQ)$.push(Hq)}else if(m(qq))zQ++,n(qq,WQ,e,{end:Jq});else throw new oq("val",["Readable","Iterable","AsyncIterable"],qq);qq=WQ}else qq=Z.from(WQ)}if(r!==null&&r!==void 0&&r.aborted||BQ!==null&&BQ!==void 0&&BQ.aborted)_Q(YQ);return qq}function HQ(s,KQ,a,{end:ZQ}){if(s.pipe(KQ,{end:ZQ}),ZQ)s.once("end",()=>KQ.end());else a();return q(s,{readable:!0,writable:!1},(r)=>{const BQ=s._readableState;if(r&&r.code==="ERR_STREAM_PREMATURE_CLOSE"&&BQ&&BQ.ended&&!BQ.errored&&!BQ.errorEmitted)s.once("end",a).once("error",a);else a(r)}),q(KQ,{readable:!1,writable:!0},a)}Y.exports={pipelineImpl:o,pipeline:JQ}}}),lQ=G({"node_modules/readable-stream/lib/internal/streams/compose.js"(B,Y){var{pipeline:U}=Rq(),H=wQ(),{destroyer:X}=Oq(),{isNodeStream:q,isReadable:J,isWritable:Q}=j(),{AbortError:Z,codes:{ERR_INVALID_ARG_VALUE:K,ERR_MISSING_ARGS:oq}}=hQ();Y.exports=function p(...sq){if(sq.length===0)throw new oq("streams");if(sq.length===1)return H.from(sq[0]);const u=[...sq];if(typeof sq[0]==="function")sq[0]=H.from(sq[0]);if(typeof sq[sq.length-1]==="function"){const QQ=sq.length-1;sq[QQ]=H.from(sq[QQ])}for(let QQ=0;QQ0&&!Q(sq[QQ]))throw new K(`streams[${QQ}]`,u[QQ],"must be writable")}let aq,b,rq,m,tq;function c(QQ){const i=m;if(m=null,i)i(QQ);else if(QQ)tq.destroy(QQ);else if(!l&&!qQ)tq.destroy()}const eq=sq[0],d=U(sq,c),qQ=!!Q(eq),l=!!J(d);if(tq=new H({writableObjectMode:!!(eq!==null&&eq!==void 0&&eq.writableObjectMode),readableObjectMode:!!(d!==null&&d!==void 0&&d.writableObjectMode),writable:qQ,readable:l}),qQ)tq._write=function(QQ,i,XQ){if(eq.write(QQ,i))XQ();else aq=XQ},tq._final=function(QQ){eq.end(),b=QQ},eq.on("drain",function(){if(aq){const QQ=aq;aq=null,QQ()}}),d.on("finish",function(){if(b){const QQ=b;b=null,QQ()}});if(l)d.on("readable",function(){if(rq){const QQ=rq;rq=null,QQ()}}),d.on("end",function(){tq.push(null)}),tq._read=function(){while(!0){const QQ=d.read();if(QQ===null){rq=tq._read;return}if(!tq.push(QQ))return}};return tq._destroy=function(QQ,i){if(!QQ&&m!==null)QQ=new Z;if(rq=null,aq=null,b=null,m===null)i(QQ);else m=i,X(d,QQ)},tq}}}),E=G({"node_modules/readable-stream/lib/stream/promises.js"(B,Y){var{ArrayPrototypePop:U,Promise:H}=DQ(),{isIterable:X,isNodeStream:q}=j(),{pipelineImpl:J}=Rq(),{finished:Q}=N();function Z(...K){return new H((oq,p)=>{let sq,u;const aq=K[K.length-1];if(aq&&typeof aq==="object"&&!q(aq)&&!X(aq)){const b=U(K);sq=b.signal,u=b.end}J(K,(b,rq)=>{if(b)p(b);else oq(rq)},{signal:sq,end:u})})}Y.exports={finished:Q,pipeline:Z}}}),I=G({"node_modules/readable-stream/lib/stream.js"(B,Y){var{ObjectDefineProperty:U,ObjectKeys:H,ReflectApply:X}=DQ(),{promisify:{custom:q}}=jq(),{streamReturningOperators:J,promiseReturningOperators:Q}=A(),{codes:{ERR_ILLEGAL_CONSTRUCTOR:Z}}=hQ(),K=lQ(),{pipeline:oq}=Rq(),{destroyer:p}=Oq(),sq=N(),u=E(),aq=j(),b=Y.exports=pQ().Stream;b.isDisturbed=aq.isDisturbed,b.isErrored=aq.isErrored,b.isWritable=aq.isWritable,b.isReadable=aq.isReadable,b.Readable=mQ();for(let m of H(J)){let tq=function(...eq){if(new.target)throw Z();return b.Readable.from(X(c,this,eq))};const c=J[m];U(tq,"name",{value:c.name}),U(tq,"length",{value:c.length}),U(b.Readable.prototype,m,{value:tq,enumerable:!1,configurable:!0,writable:!0})}for(let m of H(Q)){let tq=function(...eq){if(new.target)throw Z();return X(c,this,eq)};const c=Q[m];U(tq,"name",{value:c.name}),U(tq,"length",{value:c.length}),U(b.Readable.prototype,m,{value:tq,enumerable:!1,configurable:!0,writable:!0})}b.Writable=wq(),b.Duplex=wQ(),b.Transform=vq(),b.PassThrough=dQ(),b.pipeline=oq;var{addAbortSignal:rq}=_q();b.addAbortSignal=rq,b.finished=sq,b.destroy=p,b.compose=K,U(b,"promises",{configurable:!0,enumerable:!0,get(){return u}}),U(oq,q,{enumerable:!0,get(){return u.pipeline}}),U(sq,q,{enumerable:!0,get(){return u.finished}}),b.Stream=b,b._isUint8Array=function m(tq){return tq instanceof Uint8Array},b._uint8ArrayToBuffer=function m(tq){return new Buffer(tq.buffer,tq.byteOffset,tq.byteLength)}}}),T=G({"node_modules/readable-stream/lib/ours/index.js"(B,Y){const U=I(),H=E(),X=U.Readable.destroy;Y.exports=U,Y.exports._uint8ArrayToBuffer=U._uint8ArrayToBuffer,Y.exports._isUint8Array=U._isUint8Array,Y.exports.isDisturbed=U.isDisturbed,Y.exports.isErrored=U.isErrored,Y.exports.isWritable=U.isWritable,Y.exports.isReadable=U.isReadable,Y.exports.Readable=U.Readable,Y.exports.Writable=U.Writable,Y.exports.Duplex=U.Duplex,Y.exports.Transform=U.Transform,Y.exports.PassThrough=U.PassThrough,Y.exports.addAbortSignal=U.addAbortSignal,Y.exports.finished=U.finished,Y.exports.destroy=U.destroy,Y.exports.destroy=X,Y.exports.pipeline=U.pipeline,Y.exports.compose=U.compose,Y.exports._getNativeReadableStreamPrototype=O,Y.exports.NativeWritable=bq,Fq.defineProperty(U,"promises",{configurable:!0,enumerable:!0,get(){return H}}),Y.exports.Stream=U.Stream,Y.exports.default=Y.exports}}),x={0:void 0,1:void 0,2:void 0,3:void 0,4:void 0,5:void 0},Mq=wq(),bq=class B extends Mq{#q;#Q;#X=!0;_construct;_destroy;_final;constructor(Y,U={}){super(U);this._construct=this.#J,this._destroy=this.#K,this._final=this.#Z,this.#q=Y}#J(Y){this._writableState.constructed=!0,this.constructed=!0,Y()}#H(){if(typeof this.#q==="object")if(typeof this.#q.write==="function")this.#Q=this.#q;else throw new Error("Invalid FileSink");else this.#Q=Bun.file(this.#q).writer()}write(Y,U,H,X=this.#X){if(!X)return this.#X=!1,super.write(Y,U,H);if(!this.#Q)this.#H();var q=this.#Q,J=q.write(Y);if(Lq(J))return J.then(()=>{this.emit("drain"),q.flush(!0)}),!1;if(q.flush(!0),H)H(null,Y.byteLength);return!0}end(Y,U,H,X=this.#X){return super.end(Y,U,H,X)}#K(Y,U){if(this._writableState.destroyed=!0,U)U(Y)}#Z(Y){if(this.#Q)this.#Q.end();if(Y)Y()}ref(){if(!this.#Q)this.#H();this.#Q.ref()}unref(){if(!this.#Q)return;this.#Q.unref()}},C=T();C[Symbol.for("CommonJS")]=0;C[Symbol.for("::bunternal::")]={_ReadableFromWeb:bQ,_ReadableFromWebForUndici:Dq};var nq=C,D=C._uint8ArrayToBuffer,w=C._isUint8Array,v=C.isDisturbed,R=C.isErrored,S=C.isWritable,g=C.isReadable,f=C.Readable,Mq=C.Writable,k=C.Duplex,y=C.Transform,h=C.PassThrough,Sq=C.addAbortSignal,gq=C.finished,fq=C.destroy,kq=C.pipeline,yq=C.compose,hq=C.Stream,pq=C["eos"]=N,uq=C._getNativeReadableStreamPrototype,bq=C.NativeWritable,mq=hq.promises;export{mq as promises,kq as pipeline,S as isWritable,g as isReadable,R as isErrored,v as isDisturbed,gq as finished,pq as eos,fq as destroy,nq as default,yq as compose,Sq as addAbortSignal,D as _uint8ArrayToBuffer,w as _isUint8Array,uq as _getNativeReadableStreamPrototype,Mq as Writable,y as Transform,hq as Stream,f as Readable,h as PassThrough,bq as NativeWritable,k as Duplex}; diff --git a/src/js/out/modules/node/util.js b/src/js/out/modules/node/util.js index b0881147c..8fbdc2d6c 100644 --- a/src/js/out/modules/node/util.js +++ b/src/js/out/modules/node/util.js @@ -44,21 +44,23 @@ var isFunction = function(value) { }, deprecate = function(fn, msg, code) { if (process.noDeprecation === !0) return fn; - var realFn = fn, wrapper = () => { - return fnToWrap.apply(this, arguments); - }, deprecater = () => { - if (process.throwDeprecation) { - var err = new Error(msg); - if (code) - err.code = code; - throw err; - } else if (process.traceDeprecation) - console.trace(msg); - else - console.error(msg); - return fnToWrap = realFn, realFn.apply(this, arguments); - }, fnToWrap = deprecater; - return wrapper; + var warned = !1; + function deprecated() { + if (!warned) { + if (process.throwDeprecation) { + var err = new Error(msg); + if (code) + err.code = code; + throw err; + } else if (process.traceDeprecation) + console.trace(msg); + else + console.error(msg); + warned = !0; + } + return fn.apply(this, arguments); + } + return deprecated; }, debuglog = function(set) { if (set = set.toUpperCase(), !debugs[set]) if (debugEnvRegex.test(set)) { diff --git a/test/js/bun/resolve/import-meta.test.js b/test/js/bun/resolve/import-meta.test.js index 7d385148b..d6d145520 100644 --- a/test/js/bun/resolve/import-meta.test.js +++ b/test/js/bun/resolve/import-meta.test.js @@ -25,9 +25,14 @@ it("import.meta.main", () => { it("import.meta.resolveSync", () => { expect(import.meta.resolveSync("./" + import.meta.file, import.meta.path)).toBe(path); +}); + +it("Module.createRequire", () => { const require = Module.createRequire(import.meta.path); expect(require.resolve(import.meta.path)).toBe(path); expect(require.resolve("./" + import.meta.file)).toBe(path); + const { resolve } = require; + expect(resolve("./" + import.meta.file)).toBe(path); // check it works with URL objects expect(Module.createRequire(new URL(import.meta.url)).resolve(import.meta.path)).toBe(import.meta.path); @@ -68,8 +73,11 @@ it("import.meta.require (json)", () => { }); it("const f = require;require(json)", () => { + function capture(f) { + return f.length; + } const f = require; - console.log(f); + capture(f); expect(f("./require-json.json").hello).toBe(sync.hello); }); @@ -107,7 +115,6 @@ it("Module.createRequire(file://url).resolve(file://url)", () => { const createdRequire = Module.createRequire(import.meta.url); const result1 = createdRequire.resolve("./require-json.json"); const result2 = createdRequire.resolve("file://./require-json.json"); - expect(result1).toBe(expected); expect(result2).toBe(expected); }); -- cgit v1.2.3 From ec3ed67bc9ad8cbb0e59234564d57265d5423fce Mon Sep 17 00:00:00 2001 From: Dylan Conway <35280289+dylan-conway@users.noreply.github.com> Date: Mon, 26 Jun 2023 08:12:37 -0700 Subject: implement `_nodeModulePaths` and `require.main.paths` (#3411) * tests in progress * add `require.main.paths`, add every dir up to root * remove imports --- src/bun.js/bindings/CommonJSModuleRecord.cpp | 31 +++++++++ src/bun.js/bindings/CommonJSModuleRecord.h | 1 + src/bun.js/modules/NodeModuleModule.cpp | 15 ++-- src/resolver/resolver.zig | 95 ++++++++++++++++++++++++++ test/js/node/module/node-module-module.test.js | 19 ++++++ 5 files changed, 150 insertions(+), 11 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/bindings/CommonJSModuleRecord.cpp b/src/bun.js/bindings/CommonJSModuleRecord.cpp index 8d4fe0a1e..3615db774 100644 --- a/src/bun.js/bindings/CommonJSModuleRecord.cpp +++ b/src/bun.js/bindings/CommonJSModuleRecord.cpp @@ -295,6 +295,35 @@ JSC_DEFINE_CUSTOM_SETTER(setterPath, return true; } +extern "C" EncodedJSValue Resolver__propForRequireMainPaths(JSGlobalObject*); + +JSC_DEFINE_CUSTOM_GETTER(getterPaths, (JSC::JSGlobalObject * globalObject, JSC::EncodedJSValue thisValue, JSC::PropertyName)) +{ + JSCommonJSModule* thisObject = jsDynamicCast(JSValue::decode(thisValue)); + if (UNLIKELY(!thisObject)) { + return JSValue::encode(jsUndefined()); + } + + if (!thisObject->m_paths) { + JSValue paths = JSValue::decode(Resolver__propForRequireMainPaths(globalObject)); + thisObject->m_paths.set(globalObject->vm(), thisObject, paths); + } + + return JSValue::encode(thisObject->m_paths.get()); +} + +JSC_DEFINE_CUSTOM_SETTER(setterPaths, + (JSC::JSGlobalObject * globalObject, JSC::EncodedJSValue thisValue, + JSC::EncodedJSValue value, JSC::PropertyName propertyName)) +{ + JSCommonJSModule* thisObject = jsDynamicCast(JSValue::decode(thisValue)); + if (!thisObject) + return false; + + thisObject->m_paths.set(globalObject->vm(), thisObject, JSValue::decode(value)); + return true; +} + JSC_DEFINE_CUSTOM_SETTER(setterFilename, (JSC::JSGlobalObject * globalObject, JSC::EncodedJSValue thisValue, JSC::EncodedJSValue value, JSC::PropertyName propertyName)) @@ -340,6 +369,7 @@ static const struct HashTableValue JSCommonJSModulePrototypeTableValues[] = { { "loaded"_s, static_cast(PropertyAttribute::PropertyCallback | PropertyAttribute::DontEnum | 0), NoIntrinsic, { HashTableValue::LazyPropertyType, createLoaded } }, { "parent"_s, static_cast(PropertyAttribute::PropertyCallback | PropertyAttribute::DontEnum | 0), NoIntrinsic, { HashTableValue::LazyPropertyType, createParent } }, { "path"_s, static_cast(PropertyAttribute::CustomAccessor), NoIntrinsic, { HashTableValue::GetterSetterType, getterPath, setterPath } }, + { "paths"_s, static_cast(PropertyAttribute::CustomAccessor), NoIntrinsic, { HashTableValue::GetterSetterType, getterPaths, setterPaths } }, }; class JSCommonJSModulePrototype final : public JSC::JSNonFinalObject { @@ -675,6 +705,7 @@ void JSCommonJSModule::visitChildrenImpl(JSCell* cell, Visitor& visitor) visitor.append(thisObject->sourceCode); visitor.append(thisObject->m_filename); visitor.append(thisObject->m_dirname); + visitor.append(thisObject->m_paths); } DEFINE_VISIT_CHILDREN(JSCommonJSModule); diff --git a/src/bun.js/bindings/CommonJSModuleRecord.h b/src/bun.js/bindings/CommonJSModuleRecord.h index 48f14b39c..a96ab5f75 100644 --- a/src/bun.js/bindings/CommonJSModuleRecord.h +++ b/src/bun.js/bindings/CommonJSModuleRecord.h @@ -24,6 +24,7 @@ public: mutable JSC::WriteBarrier m_id; mutable JSC::WriteBarrier m_filename; mutable JSC::WriteBarrier m_dirname; + mutable JSC::WriteBarrier m_paths; mutable JSC::WriteBarrier sourceCode; static void destroy(JSC::JSCell*); diff --git a/src/bun.js/modules/NodeModuleModule.cpp b/src/bun.js/modules/NodeModuleModule.cpp index 8b278ddd8..34d45698f 100644 --- a/src/bun.js/modules/NodeModuleModule.cpp +++ b/src/bun.js/modules/NodeModuleModule.cpp @@ -26,15 +26,8 @@ JSC_DEFINE_HOST_FUNCTION(jsFunctionNodeModuleCreateRequire, scope, JSValue::encode(Zig::ImportMetaObject::createRequireFunction( vm, globalObject, val))); } -JSC_DEFINE_HOST_FUNCTION(jsFunctionNodeModulePaths, - (JSC::JSGlobalObject * globalObject, - JSC::CallFrame *callFrame)) { - return JSC::JSValue::encode(JSC::JSArray::create( - globalObject->vm(), - globalObject->arrayStructureForIndexingTypeDuringAllocation( - ArrayWithContiguous), - 0)); -} +extern "C" EncodedJSValue Resolver__nodeModulePathsForJS(JSGlobalObject *, + CallFrame *); JSC_DEFINE_HOST_FUNCTION(jsFunctionFindSourceMap, (JSGlobalObject * globalObject, @@ -114,7 +107,7 @@ void generateNodeModuleModule(JSC::JSGlobalObject *globalObject, vm, globalObject, 1, String("createRequire"_s), jsFunctionNodeModuleCreateRequire, ImplementationVisibility::Public)); exportValues.append(JSFunction::create(vm, globalObject, 1, String("paths"_s), - jsFunctionNodeModulePaths, + Resolver__nodeModulePathsForJS, ImplementationVisibility::Public)); exportValues.append(JSFunction::create( vm, globalObject, 1, String("findSourceMap"_s), jsFunctionFindSourceMap, @@ -143,7 +136,7 @@ void generateNodeModuleModule(JSC::JSGlobalObject *globalObject, exportNames.append(JSC::Identifier::fromString(vm, "_nodeModulePaths"_s)); exportValues.append(JSFunction::create( vm, globalObject, 0, String("_nodeModulePaths"_s), - jsFunctionNodeModulePaths, ImplementationVisibility::Public)); + Resolver__nodeModulePathsForJS, ImplementationVisibility::Public)); exportNames.append(JSC::Identifier::fromString(vm, "_cache"_s)); exportValues.append( diff --git a/src/resolver/resolver.zig b/src/resolver/resolver.zig index 14bc358d0..40b106f3a 100644 --- a/src/resolver/resolver.zig +++ b/src/resolver/resolver.zig @@ -94,6 +94,7 @@ const bufs = struct { threadlocal var remap_path_trailing_slash: [bun.MAX_PATH_BYTES]u8 = undefined; threadlocal var path_in_global_disk_cache: [bun.MAX_PATH_BYTES]u8 = undefined; threadlocal var abs_to_rel: [bun.MAX_PATH_BYTES]u8 = undefined; + threadlocal var node_modules_paths_buf: [bun.MAX_PATH_BYTES]u8 = undefined; pub inline fn bufs(comptime field: std.meta.DeclEnum(@This())) *@TypeOf(@field(@This(), @tagName(field))) { return &@field(@This(), @tagName(field)); @@ -3107,6 +3108,93 @@ pub const Resolver = struct { }; } + pub export fn Resolver__nodeModulePathsForJS(globalThis: *bun.JSC.JSGlobalObject, callframe: *bun.JSC.CallFrame) callconv(.C) bun.JSC.JSValue { + bun.JSC.markBinding(@src()); + const argument: bun.JSC.JSValue = callframe.argument(0); + + if (argument.isEmpty() or !argument.isString()) { + globalThis.throwInvalidArgumentType("nodeModulePaths", "path", "string"); + return .zero; + } + + const in_str = argument.toBunString(globalThis); + var r = &globalThis.bunVM().bundler.resolver; + return nodeModulePathsJSValue(r, in_str, globalThis); + } + + pub export fn Resolver__propForRequireMainPaths(globalThis: *bun.JSC.JSGlobalObject) callconv(.C) bun.JSC.JSValue { + bun.JSC.markBinding(@src()); + + const in_str = bun.String.create("."); + var r = &globalThis.bunVM().bundler.resolver; + return nodeModulePathsJSValue(r, in_str, globalThis); + } + + pub fn nodeModulePathsJSValue( + r: *ThisResolver, + in_str: bun.String, + globalObject: *bun.JSC.JSGlobalObject, + ) bun.JSC.JSValue { + var list = std.ArrayList(bun.String).init(bun.default_allocator); + defer list.deinit(); + + const sliced = in_str.toUTF8(bun.default_allocator); + defer sliced.deinit(); + + const str = brk: { + if (std.fs.path.isAbsolute(sliced.slice())) break :brk sliced.slice(); + var dir_path_buf = bufs(.node_modules_paths_buf); + break :brk r.fs.joinBuf(&[_]string{ r.fs.top_level_dir, sliced.slice() }, dir_path_buf); + }; + var arena = std.heap.ArenaAllocator.init(bun.default_allocator); + defer arena.deinit(); + var stack_fallback_allocator = std.heap.stackFallback(1024, arena.allocator()); + + if (r.readDirInfo(strings.withoutTrailingSlash(str)) catch null) |result| { + var dir_info = result; + + while (true) { + const path_without_trailing_slash = strings.withoutTrailingSlash(dir_info.abs_path); + const path_parts = brk: { + if (path_without_trailing_slash.len == 1 and path_without_trailing_slash[0] == '/') { + break :brk [2]string{ "", "/node_modules" }; + } + + break :brk [2]string{ path_without_trailing_slash, "/node_modules" }; + }; + list.append( + bun.String.create( + bun.strings.concat(stack_fallback_allocator.get(), &path_parts) catch unreachable, + ), + ) catch unreachable; + dir_info = (r.readDirInfo(std.fs.path.dirname(path_without_trailing_slash) orelse break) catch null) orelse break; + } + } else { + // does not exist + const full_path = std.fs.path.resolve(r.allocator, &[1][]const u8{str}) catch unreachable; + var path = full_path; + while (true) { + const path_without_trailing_slash = strings.withoutTrailingSlash(path); + + list.append( + bun.String.create( + bun.strings.concat( + stack_fallback_allocator.get(), + &[_]string{ + path_without_trailing_slash, + "/node_modules", + }, + ) catch unreachable, + ), + ) catch unreachable; + + path = path[0 .. strings.lastIndexOfChar(path, '/') orelse break]; + } + } + + return bun.String.toJSArray(globalObject, list.items); + } + pub fn loadAsIndex(r: *ThisResolver, dir_info: *DirInfo, extension_order: []const string) ?MatchResult { var rfs = &r.fs.fs; // Try the "index" file with extensions @@ -3892,3 +3980,10 @@ pub const GlobalCache = enum { }; } }; + +comptime { + if (!bun.JSC.is_bindgen) { + _ = Resolver.Resolver__nodeModulePathsForJS; + _ = Resolver.Resolver__propForRequireMainPaths; + } +} diff --git a/test/js/node/module/node-module-module.test.js b/test/js/node/module/node-module-module.test.js index 549b5e085..3ced63da1 100644 --- a/test/js/node/module/node-module-module.test.js +++ b/test/js/node/module/node-module-module.test.js @@ -1,5 +1,24 @@ import { expect, test } from "bun:test"; +import { _nodeModulePaths } from "module"; test("module.globalPaths exists", () => { expect(Array.isArray(require("module").globalPaths)).toBe(true); }); + +test("_nodeModulePaths() works", () => { + expect(() => { + _nodeModulePaths(); + }).toThrow(); + expect(_nodeModulePaths(".").length).toBeGreaterThan(0); + expect(_nodeModulePaths(".").pop()).toBe("/node_modules"); + expect(_nodeModulePaths("")).toEqual(_nodeModulePaths(".")); + expect(_nodeModulePaths("/")).toEqual(["/node_modules"]); + expect(_nodeModulePaths("/a/b/c/d")).toEqual([ + "/a/b/c/d/node_modules", + "/a/b/c/node_modules", + "/a/b/node_modules", + "/a/node_modules", + "/node_modules", + ]); + expect(_nodeModulePaths("/a/b/../d")).toEqual(["/a/d/node_modules", "/a/node_modules", "/node_modules"]); +}); -- cgit v1.2.3 From 50e872fc761db50ae2804f780ea9cd655600a7e2 Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Mon, 26 Jun 2023 11:56:53 -0700 Subject: Implement writev & readv (#3419) * [node:fs] Implement `writev` and `readv` * writev & readv tests * cast to const type * woops * cast --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> --- src/bun.js/node/node_fs.zig | 235 +++++++++++++++++++++++++++++++++ src/bun.js/node/node_fs_binding.zig | 8 +- src/bun.js/node/syscall.zig | 152 +++++++++++++++++++++ src/bun.js/node/types.zig | 44 ++++++ src/io/io_darwin.zig | 4 + src/js/node/fs.js | 41 +++++- src/js/node/fs.promises.ts | 34 ++++- src/js/out/modules/node/fs.js | 38 +++++- src/js/out/modules/node/fs.promises.js | 2 +- test/js/node/fs/fs.test.ts | 65 +++++++++ 10 files changed, 611 insertions(+), 12 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/node/node_fs.zig b/src/bun.js/node/node_fs.zig index 13d785e97..fa33a575b 100644 --- a/src/bun.js/node/node_fs.zig +++ b/src/bun.js/node/node_fs.zig @@ -135,6 +135,154 @@ pub const Arguments = struct { } }; + pub const Writev = struct { + fd: FileDescriptor, + buffers: JSC.Node.VectorArrayBuffer, + position: ?u52 = 0, + + pub fn deinit(_: *const @This()) void {} + + pub fn fromJS(ctx: JSC.C.JSContextRef, arguments: *ArgumentsSlice, exception: JSC.C.ExceptionRef) ?Writev { + const fd_value = arguments.nextEat() orelse { + if (exception.* == null) { + JSC.throwInvalidArguments( + "file descriptor is required", + .{}, + ctx, + exception, + ); + } + return null; + }; + + const fd = JSC.Node.fileDescriptorFromJS(ctx, fd_value, exception) orelse { + if (exception.* == null) { + JSC.throwInvalidArguments( + "file descriptor must be a number", + .{}, + ctx, + exception, + ); + } + return null; + }; + + const buffers = JSC.Node.VectorArrayBuffer.fromJS( + ctx, + arguments.protectEatNext() orelse { + JSC.throwInvalidArguments("Expected an ArrayBufferView[]", .{}, ctx, exception); + return null; + }, + exception, + arguments.arena.allocator(), + ) orelse { + if (exception.* == null) { + JSC.throwInvalidArguments( + "buffers must be an array of TypedArray", + .{}, + ctx, + exception, + ); + } + return null; + }; + + var position: ?u52 = null; + + if (arguments.nextEat()) |pos_value| { + if (!pos_value.isUndefinedOrNull()) { + if (pos_value.isNumber()) { + position = pos_value.to(u52); + } else { + JSC.throwInvalidArguments( + "position must be a number", + .{}, + ctx, + exception, + ); + return null; + } + } + } + + return Writev{ .fd = fd, .buffers = buffers, .position = position }; + } + }; + + pub const Readv = struct { + fd: FileDescriptor, + buffers: JSC.Node.VectorArrayBuffer, + position: ?u52 = 0, + + pub fn deinit(_: *const @This()) void {} + + pub fn fromJS(ctx: JSC.C.JSContextRef, arguments: *ArgumentsSlice, exception: JSC.C.ExceptionRef) ?Readv { + const fd_value = arguments.nextEat() orelse { + if (exception.* == null) { + JSC.throwInvalidArguments( + "file descriptor is required", + .{}, + ctx, + exception, + ); + } + return null; + }; + + const fd = JSC.Node.fileDescriptorFromJS(ctx, fd_value, exception) orelse { + if (exception.* == null) { + JSC.throwInvalidArguments( + "file descriptor must be a number", + .{}, + ctx, + exception, + ); + } + return null; + }; + + const buffers = JSC.Node.VectorArrayBuffer.fromJS( + ctx, + arguments.protectEatNext() orelse { + JSC.throwInvalidArguments("Expected an ArrayBufferView[]", .{}, ctx, exception); + return null; + }, + exception, + arguments.arena.allocator(), + ) orelse { + if (exception.* == null) { + JSC.throwInvalidArguments( + "buffers must be an array of TypedArray", + .{}, + ctx, + exception, + ); + } + return null; + }; + + var position: ?u52 = null; + + if (arguments.nextEat()) |pos_value| { + if (!pos_value.isUndefinedOrNull()) { + if (pos_value.isNumber()) { + position = pos_value.to(u52); + } else { + JSC.throwInvalidArguments( + "position must be a number", + .{}, + ctx, + exception, + ); + return null; + } + } + } + + return Readv{ .fd = fd, .buffers = buffers, .position = position }; + } + }; + pub const FTruncate = struct { fd: FileDescriptor, len: ?JSC.WebCore.Blob.SizeType = null, @@ -2372,6 +2520,7 @@ const Return = struct { pub const Mkdtemp = JSC.ZigString; pub const Open = FileDescriptor; pub const WriteFile = void; + pub const Readv = Read; pub const Read = struct { bytes_read: u52, @@ -2480,6 +2629,8 @@ const Return = struct { pub const Chown = void; pub const Lutimes = void; + + pub const Writev = Write; }; /// Bun's implementation of the Node.js "fs" module @@ -3256,6 +3407,14 @@ pub const NodeFS = struct { ); } + pub fn readv(this: *NodeFS, args: Arguments.Readv, comptime flavor: Flavor) Maybe(Return.Read) { + return if (args.position != null) _preadv(this, args, flavor) else _readv(this, args, flavor); + } + + pub fn writev(this: *NodeFS, args: Arguments.Writev, comptime flavor: Flavor) Maybe(Return.Write) { + return if (args.position != null) _pwritev(this, args, flavor) else _writev(this, args, flavor); + } + pub fn write(this: *NodeFS, args: Arguments.Write, comptime flavor: Flavor) Maybe(Return.Write) { return if (args.position != null) _pwrite(this, args, flavor) else _write(this, args, flavor); } @@ -3307,6 +3466,82 @@ pub const NodeFS = struct { return Maybe(Return.Write).todo; } + fn _preadv(_: *NodeFS, args: Arguments.Readv, comptime flavor: Flavor) Maybe(Return.Readv) { + const position = args.position.?; + + switch (comptime flavor) { + .sync => { + return switch (Syscall.preadv(args.fd, args.buffers.buffers.items, position)) { + .err => |err| .{ + .err = err, + }, + .result => |amt| .{ .result = .{ + .bytes_read = @truncate(u52, amt), + } }, + }; + }, + else => {}, + } + + return Maybe(Return.Write).todo; + } + + fn _readv(_: *NodeFS, args: Arguments.Readv, comptime flavor: Flavor) Maybe(Return.Readv) { + switch (comptime flavor) { + .sync => { + return switch (Syscall.readv(args.fd, args.buffers.buffers.items)) { + .err => |err| .{ + .err = err, + }, + .result => |amt| .{ .result = .{ + .bytes_read = @truncate(u52, amt), + } }, + }; + }, + else => {}, + } + + return Maybe(Return.Write).todo; + } + + fn _pwritev(_: *NodeFS, args: Arguments.Writev, comptime flavor: Flavor) Maybe(Return.Write) { + const position = args.position.?; + + switch (comptime flavor) { + .sync => { + return switch (Syscall.pwritev(args.fd, args.buffers.buffers.items, position)) { + .err => |err| .{ + .err = err, + }, + .result => |amt| .{ .result = .{ + .bytes_written = @truncate(u52, amt), + } }, + }; + }, + else => {}, + } + + return Maybe(Return.Write).todo; + } + + fn _writev(_: *NodeFS, args: Arguments.Writev, comptime flavor: Flavor) Maybe(Return.Write) { + switch (comptime flavor) { + .sync => { + return switch (Syscall.writev(args.fd, args.buffers.buffers.items)) { + .err => |err| .{ + .err = err, + }, + .result => |amt| .{ .result = .{ + .bytes_written = @truncate(u52, amt), + } }, + }; + }, + else => {}, + } + + return Maybe(Return.Write).todo; + } + pub fn readdir(this: *NodeFS, args: Arguments.Readdir, comptime flavor: Flavor) Maybe(Return.Readdir) { return switch (args.encoding) { .buffer => _readdir( diff --git a/src/bun.js/node/node_fs_binding.zig b/src/bun.js/node/node_fs_binding.zig index f178f0355..a4cc62cd3 100644 --- a/src/bun.js/node/node_fs_binding.zig +++ b/src/bun.js/node/node_fs_binding.zig @@ -229,6 +229,10 @@ pub const NodeJSFS = struct { pub const lutimesSync = callSync(.lutimes); pub const rmSync = callSync(.rm); pub const rmdirSync = callSync(.rmdir); + pub const writev = call(.writev); + pub const writevSync = callSync(.writev); + pub const readv = call(.readv); + pub const readvSync = callSync(.readv); pub const fdatasyncSync = callSync(.fdatasync); pub const fdatasync = call(.fdatasync); @@ -247,8 +251,4 @@ pub const NodeJSFS = struct { const notimpl = fdatasync; pub const opendir = notimpl; pub const opendirSync = notimpl; - pub const readv = notimpl; - pub const readvSync = notimpl; - pub const writev = notimpl; - pub const writevSync = notimpl; }; diff --git a/src/bun.js/node/syscall.zig b/src/bun.js/node/syscall.zig index 77bd5b13d..48c5b1305 100644 --- a/src/bun.js/node/syscall.zig +++ b/src/bun.js/node/syscall.zig @@ -106,6 +106,10 @@ pub const Tag = enum(u8) { waitpid, posix_spawn, getaddrinfo, + writev, + pwritev, + readv, + preadv, pub var strings = std.EnumMap(Tag, JSC.C.JSStringRef).initFull(null); }; const PathString = @import("root").bun.PathString; @@ -302,6 +306,154 @@ pub fn write(fd: os.fd_t, bytes: []const u8) Maybe(usize) { } } +fn veclen(buffers: anytype) usize { + var len: usize = 0; + for (buffers) |buffer| { + len += buffer.iov_len; + } + return len; +} + +pub fn writev(fd: os.fd_t, buffers: []std.os.iovec) Maybe(usize) { + if (comptime Environment.isMac) { + const rc = writev_sym(fd, @ptrCast([*]std.os.iovec_const, buffers.ptr), @intCast(i32, buffers.len)); + if (comptime Environment.allow_assert) + log("writev({d}, {d}) = {d}", .{ fd, veclen(buffers), rc }); + + if (Maybe(usize).errnoSysFd(rc, .writev, fd)) |err| { + return err; + } + + return Maybe(usize){ .result = @intCast(usize, rc) }; + } else { + while (true) { + const rc = writev_sym(fd, @ptrCast([*]std.os.iovec_const, buffers.ptr), buffers.len); + if (comptime Environment.allow_assert) + log("writev({d}, {d}) = {d}", .{ fd, veclen(buffers), rc }); + + if (Maybe(usize).errnoSysFd(rc, .writev, fd)) |err| { + if (err.getErrno() == .INTR) continue; + return err; + } + + return Maybe(usize){ .result = @intCast(usize, rc) }; + } + unreachable; + } +} + +pub fn pwritev(fd: os.fd_t, buffers: []std.os.iovec, position: isize) Maybe(usize) { + if (comptime Environment.isMac) { + const rc = pwritev_sym(fd, @ptrCast([*]std.os.iovec_const, buffers.ptr), @intCast(i32, buffers.len), position); + if (comptime Environment.allow_assert) + log("pwritev({d}, {d}) = {d}", .{ fd, veclen(buffers), rc }); + + if (Maybe(usize).errnoSysFd(rc, .pwritev, fd)) |err| { + return err; + } + + return Maybe(usize){ .result = @intCast(usize, rc) }; + } else { + while (true) { + const rc = pwritev_sym(fd, @ptrCast([*]std.os.iovec_const, buffers.ptr), buffers.len, position); + if (comptime Environment.allow_assert) + log("pwritev({d}, {d}) = {d}", .{ fd, veclen(buffers), rc }); + + if (Maybe(usize).errnoSysFd(rc, .pwritev, fd)) |err| { + if (err.getErrno() == .INTR) continue; + return err; + } + + return Maybe(usize){ .result = @intCast(usize, rc) }; + } + unreachable; + } +} + +pub fn readv(fd: os.fd_t, buffers: []std.os.iovec) Maybe(usize) { + if (comptime Environment.isMac) { + const rc = readv_sym(fd, buffers.ptr, @intCast(i32, buffers.len)); + if (comptime Environment.allow_assert) + log("readv({d}, {d}) = {d}", .{ fd, veclen(buffers), rc }); + + if (Maybe(usize).errnoSysFd(rc, .readv, fd)) |err| { + return err; + } + + return Maybe(usize){ .result = @intCast(usize, rc) }; + } else { + while (true) { + const rc = readv_sym(fd, buffers.ptr, buffers.len); + if (comptime Environment.allow_assert) + log("readv({d}, {d}) = {d}", .{ fd, veclen(buffers), rc }); + + if (Maybe(usize).errnoSysFd(rc, .readv, fd)) |err| { + if (err.getErrno() == .INTR) continue; + return err; + } + + return Maybe(usize){ .result = @intCast(usize, rc) }; + } + unreachable; + } +} + +pub fn preadv(fd: os.fd_t, buffers: []std.os.iovec, position: isize) Maybe(usize) { + if (comptime Environment.isMac) { + const rc = preadv_sym(fd, buffers.ptr, @intCast(i32, buffers.len), position); + if (comptime Environment.allow_assert) + log("preadv({d}, {d}) = {d}", .{ fd, veclen(buffers), rc }); + + if (Maybe(usize).errnoSysFd(rc, .preadv, fd)) |err| { + return err; + } + + return Maybe(usize){ .result = @intCast(usize, rc) }; + } else { + while (true) { + const rc = preadv_sym(fd, buffers.ptr, buffers.len, position); + if (comptime Environment.allow_assert) + log("preadv({d}, {d}) = {d}", .{ fd, veclen(buffers), rc }); + + if (Maybe(usize).errnoSysFd(rc, .preadv, fd)) |err| { + if (err.getErrno() == .INTR) continue; + return err; + } + + return Maybe(usize){ .result = @intCast(usize, rc) }; + } + unreachable; + } +} + +const preadv_sym = if (builtin.os.tag == .linux and builtin.link_libc) + std.os.linux.preadv +else if (builtin.os.tag.isDarwin()) + system.@"preadv$NOCANCEL" +else + system.preadv; + +const readv_sym = if (builtin.os.tag == .linux and builtin.link_libc) + std.os.linux.readv +else if (builtin.os.tag.isDarwin()) + system.@"readv$NOCANCEL" +else + system.readv; + +const pwritev_sym = if (builtin.os.tag == .linux and builtin.link_libc) + std.os.linux.pwritev +else if (builtin.os.tag.isDarwin()) + system.@"pwritev$NOCANCEL" +else + system.pwritev; + +const writev_sym = if (builtin.os.tag == .linux and builtin.link_libc) + std.os.linux.writev +else if (builtin.os.tag.isDarwin()) + system.@"writev$NOCANCEL" +else + system.writev; + const pread_sym = if (builtin.os.tag == .linux and builtin.link_libc) sys.pread64 else if (builtin.os.tag.isDarwin()) diff --git a/src/bun.js/node/types.zig b/src/bun.js/node/types.zig index 659ac31bb..b01eca8e0 100644 --- a/src/bun.js/node/types.zig +++ b/src/bun.js/node/types.zig @@ -813,6 +813,50 @@ pub const Valid = struct { } }; +pub const VectorArrayBuffer = struct { + value: JSC.JSValue, + buffers: std.ArrayList(std.os.iovec), + + pub fn toJS(this: VectorArrayBuffer, _: *JSC.JSGlobalObject) JSC.JSValue { + return this.value; + } + + pub fn fromJS(globalObject: *JSC.JSGlobalObject, val: JSC.JSValue, exception: JSC.C.ExceptionRef, allocator: std.mem.Allocator) ?VectorArrayBuffer { + if (!val.jsType().isArrayLike()) { + JSC.throwInvalidArguments("Expected ArrayBufferView[]", .{}, globalObject, exception); + return null; + } + + var bufferlist = std.ArrayList(std.os.iovec).init(allocator); + var i: usize = 0; + const len = val.getLength(globalObject); + bufferlist.ensureTotalCapacityPrecise(len) catch @panic("Failed to allocate memory for ArrayBuffer[]"); + + while (i < len) { + const element = val.getIndex(globalObject, @truncate(u32, i)); + + if (!element.isCell()) { + JSC.throwInvalidArguments("Expected ArrayBufferView[]", .{}, globalObject, exception); + return null; + } + + const array_buffer = element.asArrayBuffer(globalObject) orelse { + JSC.throwInvalidArguments("Expected ArrayBufferView[]", .{}, globalObject, exception); + return null; + }; + + var buf = array_buffer.byteSlice(); + bufferlist.append(std.os.iovec{ + .iov_base = buf.ptr, + .iov_len = buf.len, + }) catch @panic("Failed to allocate memory for ArrayBuffer[]"); + i += 1; + } + + return VectorArrayBuffer{ .value = val, .buffers = bufferlist }; + } +}; + pub const ArgumentsSlice = struct { remaining: []const JSC.JSValue, vm: *JSC.VirtualMachine, diff --git a/src/io/io_darwin.zig b/src/io/io_darwin.zig index 8045cbdf6..9ebc6f4d6 100644 --- a/src/io/io_darwin.zig +++ b/src/io/io_darwin.zig @@ -274,7 +274,11 @@ pub const darwin = struct { pub extern "c" fn @"openat$NOCANCEL"(fd: c.fd_t, path: [*:0]const u8, oflag: c_uint, ...) c_int; pub extern "c" fn @"read$NOCANCEL"(fd: c.fd_t, buf: [*]u8, nbyte: usize) isize; pub extern "c" fn @"pread$NOCANCEL"(fd: c.fd_t, buf: [*]u8, nbyte: usize, offset: c.off_t) isize; + pub extern "c" fn @"preadv$NOCANCEL"(fd: c.fd_t, uf: [*]std.os.iovec, count: i32, offset: c.off_t) isize; + pub extern "c" fn @"readv$NOCANCEL"(fd: c.fd_t, uf: [*]std.os.iovec, count: i32) isize; pub extern "c" fn @"write$NOCANCEL"(fd: c.fd_t, buf: [*]const u8, nbyte: usize) isize; + pub extern "c" fn @"writev$NOCANCEL"(fd: c.fd_t, buf: [*]std.os.iovec_const, count: i32) isize; + pub extern "c" fn @"pwritev$NOCANCEL"(fd: c.fd_t, buf: [*]std.os.iovec_const, count: i32, offset: c.off_t) isize; }; pub const OpenError = error{ /// In WASI, this error may occur when the file descriptor does diff --git a/src/js/node/fs.js b/src/js/node/fs.js index 8d9f0d235..072102c35 100644 --- a/src/js/node/fs.js +++ b/src/js/node/fs.js @@ -5,9 +5,8 @@ import { EventEmitter } from "node:events"; // Hardcoded module "node:fs" var { direct, isPromise, isCallable } = globalThis[Symbol.for("Bun.lazy")]("primordials"); -export { default as promises } from "node:fs/promises"; import promises from "node:fs/promises"; - +export { default as promises } from "node:fs/promises"; import * as Stream from "node:stream"; var fs = Bun.fs(); @@ -213,6 +212,40 @@ export var access = function access(...args) { lutimesSync = fs.lutimesSync.bind(fs), rmSync = fs.rmSync.bind(fs), rmdirSync = fs.rmdirSync.bind(fs), + writev = (fd, buffers, position, callback) => { + if (typeof position === "function") { + callback = position; + position = null; + } + + queueMicrotask(() => { + try { + var written = fs.writevSync(fd, buffers, position); + } catch (e) { + callback(e); + } + + callback(null, written, buffers); + }); + }, + writevSync = fs.writevSync.bind(fs), + readv = (fd, buffers, position, callback) => { + if (typeof position === "function") { + callback = position; + position = null; + } + + queueMicrotask(() => { + try { + var written = fs.readvSync(fd, buffers, position); + } catch (e) { + callback(e); + } + + callback(null, written, buffers); + }); + }, + readvSync = fs.readvSync.bind(fs), Dirent = fs.Dirent, Stats = fs.Stats, watch = function watch(path, options, listener) { @@ -1069,6 +1102,10 @@ export default { ReadStream, watch, FSWatcher, + writev, + writevSync, + readv, + readvSync, [Symbol.for("::bunternal::")]: { ReadStreamClass, WriteStreamClass, diff --git a/src/js/node/fs.promises.ts b/src/js/node/fs.promises.ts index 7df446ccb..12278ef53 100644 --- a/src/js/node/fs.promises.ts +++ b/src/js/node/fs.promises.ts @@ -123,7 +123,37 @@ export var access = promisify(fs.accessSync), utimes = promisify(fs.utimesSync), lutimes = promisify(fs.lutimesSync), rm = promisify(fs.rmSync), - rmdir = promisify(fs.rmdirSync); + rmdir = promisify(fs.rmdirSync), + writev = (fd, buffers, position) => { + return new Promise((resolve, reject) => { + try { + var bytesWritten = fs.writevSync(fd, buffers, position); + } catch (err) { + reject(err); + return; + } + + resolve({ + bytesWritten, + buffers, + }); + }); + }, + readv = (fd, buffers, position) => { + return new Promise((resolve, reject) => { + try { + var bytesRead = fs.readvSync(fd, buffers, position); + } catch (err) { + reject(err); + return; + } + + resolve({ + bytesRead, + buffers, + }); + }); + }; export default { access, @@ -163,6 +193,8 @@ export default { rm, rmdir, watch, + writev, + readv, constants, [Symbol.for("CommonJS")]: 0, }; diff --git a/src/js/out/modules/node/fs.js b/src/js/out/modules/node/fs.js index 6c8269d59..b7457f104 100644 --- a/src/js/out/modules/node/fs.js +++ b/src/js/out/modules/node/fs.js @@ -1,6 +1,6 @@ import {EventEmitter} from "node:events"; -import {default as default2} from "node:fs/promises"; import promises2 from "node:fs/promises"; +import {default as default2} from "node:fs/promises"; import * as Stream from "node:stream"; var callbackify = function(fsFunction, args) { try { @@ -133,7 +133,29 @@ var access = function access2(...args) { callbackify(fs.utimesSync, args); }, lutimes = function lutimes2(...args) { callbackify(fs.lutimesSync, args); -}, accessSync = fs.accessSync.bind(fs), appendFileSync = fs.appendFileSync.bind(fs), closeSync = fs.closeSync.bind(fs), copyFileSync = fs.copyFileSync.bind(fs), existsSync = fs.existsSync.bind(fs), chownSync = fs.chownSync.bind(fs), chmodSync = fs.chmodSync.bind(fs), fchmodSync = fs.fchmodSync.bind(fs), fchownSync = fs.fchownSync.bind(fs), fstatSync = fs.fstatSync.bind(fs), fsyncSync = fs.fsyncSync.bind(fs), ftruncateSync = fs.ftruncateSync.bind(fs), futimesSync = fs.futimesSync.bind(fs), lchmodSync = fs.lchmodSync.bind(fs), lchownSync = fs.lchownSync.bind(fs), linkSync = fs.linkSync.bind(fs), lstatSync = fs.lstatSync.bind(fs), mkdirSync = fs.mkdirSync.bind(fs), mkdtempSync = fs.mkdtempSync.bind(fs), openSync = fs.openSync.bind(fs), readSync = fs.readSync.bind(fs), writeSync = fs.writeSync.bind(fs), readdirSync = fs.readdirSync.bind(fs), readFileSync = fs.readFileSync.bind(fs), writeFileSync = fs.writeFileSync.bind(fs), readlinkSync = fs.readlinkSync.bind(fs), realpathSync = fs.realpathSync.bind(fs), renameSync = fs.renameSync.bind(fs), statSync = fs.statSync.bind(fs), symlinkSync = fs.symlinkSync.bind(fs), truncateSync = fs.truncateSync.bind(fs), unlinkSync = fs.unlinkSync.bind(fs), utimesSync = fs.utimesSync.bind(fs), lutimesSync = fs.lutimesSync.bind(fs), rmSync = fs.rmSync.bind(fs), rmdirSync = fs.rmdirSync.bind(fs), Dirent = fs.Dirent, Stats = fs.Stats, watch = function watch2(path, options, listener) { +}, accessSync = fs.accessSync.bind(fs), appendFileSync = fs.appendFileSync.bind(fs), closeSync = fs.closeSync.bind(fs), copyFileSync = fs.copyFileSync.bind(fs), existsSync = fs.existsSync.bind(fs), chownSync = fs.chownSync.bind(fs), chmodSync = fs.chmodSync.bind(fs), fchmodSync = fs.fchmodSync.bind(fs), fchownSync = fs.fchownSync.bind(fs), fstatSync = fs.fstatSync.bind(fs), fsyncSync = fs.fsyncSync.bind(fs), ftruncateSync = fs.ftruncateSync.bind(fs), futimesSync = fs.futimesSync.bind(fs), lchmodSync = fs.lchmodSync.bind(fs), lchownSync = fs.lchownSync.bind(fs), linkSync = fs.linkSync.bind(fs), lstatSync = fs.lstatSync.bind(fs), mkdirSync = fs.mkdirSync.bind(fs), mkdtempSync = fs.mkdtempSync.bind(fs), openSync = fs.openSync.bind(fs), readSync = fs.readSync.bind(fs), writeSync = fs.writeSync.bind(fs), readdirSync = fs.readdirSync.bind(fs), readFileSync = fs.readFileSync.bind(fs), writeFileSync = fs.writeFileSync.bind(fs), readlinkSync = fs.readlinkSync.bind(fs), realpathSync = fs.realpathSync.bind(fs), renameSync = fs.renameSync.bind(fs), statSync = fs.statSync.bind(fs), symlinkSync = fs.symlinkSync.bind(fs), truncateSync = fs.truncateSync.bind(fs), unlinkSync = fs.unlinkSync.bind(fs), utimesSync = fs.utimesSync.bind(fs), lutimesSync = fs.lutimesSync.bind(fs), rmSync = fs.rmSync.bind(fs), rmdirSync = fs.rmdirSync.bind(fs), writev = (fd, buffers, position, callback) => { + if (typeof position === "function") + callback = position, position = null; + queueMicrotask(() => { + try { + var written = fs.writevSync(fd, buffers, position); + } catch (e) { + callback(e); + } + callback(null, written, buffers); + }); +}, writevSync = fs.writevSync.bind(fs), readv = (fd, buffers, position, callback) => { + if (typeof position === "function") + callback = position, position = null; + queueMicrotask(() => { + try { + var written = fs.readvSync(fd, buffers, position); + } catch (e) { + callback(e); + } + callback(null, written, buffers); + }); +}, readvSync = fs.readvSync.bind(fs), Dirent = fs.Dirent, Stats = fs.Stats, watch = function watch2(path, options, listener) { return new FSWatcher(path, options, listener); }, readStreamPathFastPathSymbol = Symbol.for("Bun.Node.readStreamPathFastPath"), readStreamSymbol = Symbol.for("Bun.NodeReadStream"), readStreamPathOrFdSymbol = Symbol.for("Bun.NodeReadStreamPathOrFd"), writeStreamSymbol = Symbol.for("Bun.NodeWriteStream"), writeStreamPathFastPathSymbol = Symbol.for("Bun.NodeWriteStreamFastPath"), writeStreamPathFastPathCallSymbol = Symbol.for("Bun.NodeWriteStreamFastPathCall"), kIoDone = Symbol.for("kIoDone"), defaultReadStreamOptions = { file: void 0, @@ -366,8 +388,8 @@ WriteStream = function(InternalWriteStream) { return WriteStreamClass = InternalWriteStream, Object.defineProperty(WriteStreamClass.prototype, Symbol.toStringTag, { value: "WritesStream", enumerable: !1 - }), Object.defineProperty(function WriteStream(options) { - return new InternalWriteStream(options); + }), Object.defineProperty(function WriteStream(path, options) { + return new InternalWriteStream(path, options); }, Symbol.hasInstance, { value(instance) { return instance instanceof InternalWriteStream; @@ -642,12 +664,18 @@ var fs_default = { ReadStream, watch, FSWatcher, + writev, + writevSync, + readv, + readvSync, [Symbol.for("::bunternal::")]: { ReadStreamClass, WriteStreamClass } }; export { + writevSync, + writev, writeSync, writeFileSync, writeFile, @@ -671,6 +699,8 @@ export { rename, realpathSync, realpath, + readvSync, + readv, readlinkSync, readlink, readdirSync, diff --git a/src/js/out/modules/node/fs.promises.js b/src/js/out/modules/node/fs.promises.js index ef3330771..549ba0c9c 100644 --- a/src/js/out/modules/node/fs.promises.js +++ b/src/js/out/modules/node/fs.promises.js @@ -1 +1 @@ -function H(S,C={}){const J=[];if(S instanceof URL)throw new TypeError("Watch URLs are not supported yet");else if(Buffer.isBuffer(S))S=S.toString();else if(typeof S!=="string")throw new TypeError("Expected path to be a string or Buffer");let b=null;if(typeof C==="string")C={encoding:C};return D.watch(S,C||{},(q,z)=>{if(J.push({eventType:q,filename:z}),b){const A=b;b=null,A()}}),{async*[Symbol.asyncIterator](){let q=!1;while(!q){while(J.length){let z=J.shift();if(z.eventType==="close"){q=!0;break}if(z.eventType==="error")throw q=!0,z.filename;yield z}await new Promise((z)=>b=z)}}}}var D=Bun.fs(),B="::bunternal::",G={[B]:(S)=>{var C={[B]:function(J,b,q){var z;try{z=S.apply(D,q),q=void 0}catch(A){q=void 0,b(A);return}J(z)}}[B];return async function(...J){return await new Promise((b,q)=>{process.nextTick(C,b,q,J)})}}}[B],I=G(D.accessSync),K=G(D.appendFileSync),L=G(D.closeSync),M=G(D.copyFileSync),N=G(D.existsSync),O=G(D.chownSync),P=G(D.chmodSync),Q=G(D.fchmodSync),U=G(D.fchownSync),V=G(D.fstatSync),W=G(D.fsyncSync),X=G(D.ftruncateSync),Y=G(D.futimesSync),Z=G(D.lchmodSync),_=G(D.lchownSync),$=G(D.linkSync),T=G(D.lstatSync),E=G(D.mkdirSync),j=G(D.mkdtempSync),R=G(D.openSync),k=G(D.readSync),x=G(D.writeSync),F=G(D.readdirSync),u=G(D.readFileSync),w=G(D.writeFileSync),g=G(D.readlinkSync),h=G(D.realpathSync),d=G(D.renameSync),c=G(D.statSync),v=G(D.symlinkSync),a=G(D.truncateSync),y=G(D.unlinkSync),l=G(D.utimesSync),t=G(D.lutimesSync),p=G(D.rmSync),n=G(D.rmdirSync),m={access:I,appendFile:K,close:L,copyFile:M,exists:N,chown:O,chmod:P,fchmod:Q,fchown:U,fstat:V,fsync:W,ftruncate:X,futimes:Y,lchmod:Z,lchown:_,link:$,lstat:T,mkdir:E,mkdtemp:j,open:R,read:k,write:x,readdir:F,readFile:u,writeFile:w,readlink:g,realpath:h,rename:d,stat:c,symlink:v,truncate:a,unlink:y,utimes:l,lutimes:t,rm:p,rmdir:n,watch:H,constants,[Symbol.for("CommonJS")]:0};export{w as writeFile,x as write,H as watch,l as utimes,y as unlink,a as truncate,v as symlink,c as stat,n as rmdir,p as rm,d as rename,h as realpath,g as readlink,F as readdir,u as readFile,k as read,R as open,j as mkdtemp,E as mkdir,t as lutimes,T as lstat,$ as link,_ as lchown,Z as lchmod,Y as futimes,X as ftruncate,W as fsync,V as fstat,U as fchown,Q as fchmod,N as exists,m as default,M as copyFile,L as close,O as chown,P as chmod,K as appendFile,I as access}; +function J(S,q={}){const z=[];if(S instanceof URL)throw new TypeError("Watch URLs are not supported yet");else if(Buffer.isBuffer(S))S=S.toString();else if(typeof S!=="string")throw new TypeError("Expected path to be a string or Buffer");let A=null;if(typeof q==="string")q={encoding:q};return H.watch(S,q||{},(B,C)=>{if(z.push({eventType:B,filename:C}),A){const D=A;A=null,D()}}),{async*[Symbol.asyncIterator](){let B=!1;while(!B){while(z.length){let C=z.shift();if(C.eventType==="close"){B=!0;break}if(C.eventType==="error")throw B=!0,C.filename;yield C}await new Promise((C)=>A=C)}}}}var H=Bun.fs(),G="::bunternal::",I={[G]:(S)=>{var q={[G]:function(z,A,B){var C;try{C=S.apply(H,B),B=void 0}catch(D){B=void 0,A(D);return}z(C)}}[G];return async function(...z){return await new Promise((A,B)=>{process.nextTick(q,A,B,z)})}}}[G],K=I(H.accessSync),L=I(H.appendFileSync),M=I(H.closeSync),N=I(H.copyFileSync),O=I(H.existsSync),P=I(H.chownSync),Q=I(H.chmodSync),U=I(H.fchmodSync),V=I(H.fchownSync),X=I(H.fstatSync),Y=I(H.fsyncSync),Z=I(H.ftruncateSync),_=I(H.futimesSync),$=I(H.lchmodSync),T=I(H.lchownSync),W=I(H.linkSync),k=I(H.lstatSync),E=I(H.mkdirSync),x=I(H.mkdtempSync),F=I(H.openSync),R=I(H.readSync),g=I(H.writeSync),h=I(H.readdirSync),j=I(H.readFileSync),w=I(H.writeFileSync),b=I(H.readlinkSync),u=I(H.realpathSync),d=I(H.renameSync),c=I(H.statSync),v=I(H.symlinkSync),a=I(H.truncateSync),y=I(H.unlinkSync),l=I(H.utimesSync),p=I(H.lutimesSync),m=I(H.rmSync),n=I(H.rmdirSync),t=(S,q,z)=>{return new Promise((A,B)=>{try{var C=H.writevSync(S,q,z)}catch(D){B(D);return}A({bytesWritten:C,buffers:q})})},o=(S,q,z)=>{return new Promise((A,B)=>{try{var C=H.readvSync(S,q,z)}catch(D){B(D);return}A({bytesRead:C,buffers:q})})},r={access:K,appendFile:L,close:M,copyFile:N,exists:O,chown:P,chmod:Q,fchmod:U,fchown:V,fstat:X,fsync:Y,ftruncate:Z,futimes:_,lchmod:$,lchown:T,link:W,lstat:k,mkdir:E,mkdtemp:x,open:F,read:R,write:g,readdir:h,readFile:j,writeFile:w,readlink:b,realpath:u,rename:d,stat:c,symlink:v,truncate:a,unlink:y,utimes:l,lutimes:p,rm:m,rmdir:n,watch:J,writev:t,readv:o,constants,[Symbol.for("CommonJS")]:0};export{t as writev,w as writeFile,g as write,J as watch,l as utimes,y as unlink,a as truncate,v as symlink,c as stat,n as rmdir,m as rm,d as rename,u as realpath,o as readv,b as readlink,h as readdir,j as readFile,R as read,F as open,x as mkdtemp,E as mkdir,p as lutimes,k as lstat,W as link,T as lchown,$ as lchmod,_ as futimes,Z as ftruncate,Y as fsync,X as fstat,V as fchown,U as fchmod,O as exists,r as default,N as copyFile,M as close,P as chown,Q as chmod,L as appendFile,K as access}; diff --git a/test/js/node/fs/fs.test.ts b/test/js/node/fs/fs.test.ts index 0353968fe..272522fc0 100644 --- a/test/js/node/fs/fs.test.ts +++ b/test/js/node/fs/fs.test.ts @@ -29,6 +29,8 @@ import fs, { realpathSync, readlinkSync, symlinkSync, + writevSync, + readvSync, } from "node:fs"; import _promises from "node:fs/promises"; @@ -301,6 +303,69 @@ describe("readSync", () => { }); }); +it("writevSync", () => { + var fd = openSync(`${tmpdir()}/writevSync.txt`, "w"); + fs.ftruncateSync(fd, 0); + const buffers = [new Uint8Array([1, 2, 3]), new Uint8Array([4, 5, 6]), new Uint8Array([7, 8, 9])]; + const result = writevSync(fd, buffers); + expect(result).toBe(9); + closeSync(fd); + + fd = openSync(`${tmpdir()}/writevSync.txt`, "r"); + const buf = new Uint8Array(9); + readSync(fd, buf, 0, 9, 0); + expect(buf).toEqual(new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9])); +}); + +it("pwritevSync", () => { + var fd = openSync(`${tmpdir()}/pwritevSync.txt`, "w"); + fs.ftruncateSync(fd, 0); + writeSync(fd, "lalalala", 0); + const buffers = [new Uint8Array([1, 2, 3]), new Uint8Array([4, 5, 6]), new Uint8Array([7, 8, 9])]; + const result = writevSync(fd, buffers, "lalalala".length); + expect(result).toBe(9); + closeSync(fd); + + const out = readFileSync(`${tmpdir()}/pwritevSync.txt`); + expect(out.slice(0, "lalalala".length).toString()).toBe("lalalala"); + expect(out.slice("lalalala".length)).toEqual(new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9])); +}); + +it("readvSync", () => { + var fd = openSync(`${tmpdir()}/readv.txt`, "w"); + fs.ftruncateSync(fd, 0); + + const buf = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9]); + writeSync(fd, buf, 0, 9, 0); + closeSync(fd); + + var fd = openSync(`${tmpdir()}/readv.txt`, "r"); + const buffers = [new Uint8Array(3), new Uint8Array(3), new Uint8Array(3)]; + const result = readvSync(fd, buffers); + expect(result).toBe(9); + expect(buffers[0]).toEqual(new Uint8Array([1, 2, 3])); + expect(buffers[1]).toEqual(new Uint8Array([4, 5, 6])); + expect(buffers[2]).toEqual(new Uint8Array([7, 8, 9])); + closeSync(fd); +}); + +it("preadv", () => { + var fd = openSync(`${tmpdir()}/preadv.txt`, "w"); + fs.ftruncateSync(fd, 0); + + const buf = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]); + writeSync(fd, buf, 0, buf.byteLength, 0); + closeSync(fd); + + var fd = openSync(`${tmpdir()}/preadv.txt`, "r"); + const buffers = [new Uint8Array(3), new Uint8Array(3), new Uint8Array(3)]; + const result = readvSync(fd, buffers, 3); + expect(result).toBe(9); + expect(buffers[0]).toEqual(new Uint8Array([4, 5, 6])); + expect(buffers[1]).toEqual(new Uint8Array([7, 8, 9])); + expect(buffers[2]).toEqual(new Uint8Array([10, 11, 12])); +}); + describe("writeSync", () => { it("works with a position set to 0", () => { const fd = openSync(import.meta.dir + "/writeFileSync.txt", "w+"); -- cgit v1.2.3 From 6d01e6e367fd518884883ce8194c3c7322043639 Mon Sep 17 00:00:00 2001 From: Dylan Conway Date: Mon, 26 Jun 2023 12:09:05 -0700 Subject: test moved to `node-module-module.test.js` --- test/js/bun/resolve/import-meta.test.js | 6 ------ 1 file changed, 6 deletions(-) (limited to 'test/js') diff --git a/test/js/bun/resolve/import-meta.test.js b/test/js/bun/resolve/import-meta.test.js index d6d145520..2d79c531e 100644 --- a/test/js/bun/resolve/import-meta.test.js +++ b/test/js/bun/resolve/import-meta.test.js @@ -90,12 +90,6 @@ it("Module.createRequire().resolve", () => { expect(result).toBe(expected); }); -// this is stubbed out -it("Module._nodeModulePaths()", () => { - const expected = Module._nodeModulePaths(); - expect(!!expected).toBe(true); -}); - // this isn't used in bun but exists anyway // we just want it to not be undefined it("Module._cache", () => { -- cgit v1.2.3 From a732999da578ca92a1d9e633036225a32e77529d Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Mon, 26 Jun 2023 12:49:20 -0700 Subject: Runtime support for `__esModule` annotations (#3393) * Runtime support for `__esModule` annotations * Ignore `__esModule` annotation when `"type": "module"` is set --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> --- src/bun.js/bindings/CommonJSModuleRecord.cpp | 113 +++++++++++++++++++-- src/bun.js/bindings/CommonJSModuleRecord.h | 1 + src/bun.js/bindings/exports.zig | 7 +- src/bun.js/bindings/headers-handwritten.h | 1 + src/bun.js/module_loader.zig | 21 ++++ src/js/builtins/BunBuiltinNames.h | 7 +- test/js/bun/resolve/esModule-annotation.test.js | 68 +++++++++++++ .../export-esModule-annotation-empty.cjs | 1 + .../export-esModule-annotation-no-default.cjs | 1 + .../export-esModule-annotation.cjs | 2 + .../export-esModule-no-annotation.cjs | 1 + test/js/bun/resolve/with-type-module/package.json | 4 + .../export-esModule-annotation-empty.cjs | 1 + .../export-esModule-annotation-no-default.cjs | 1 + .../export-esModule-annotation.cjs | 2 + .../export-esModule-no-annotation.cjs | 1 + .../bun/resolve/without-type-module/package.json | 4 + 17 files changed, 221 insertions(+), 15 deletions(-) create mode 100644 test/js/bun/resolve/esModule-annotation.test.js create mode 100644 test/js/bun/resolve/with-type-module/export-esModule-annotation-empty.cjs create mode 100644 test/js/bun/resolve/with-type-module/export-esModule-annotation-no-default.cjs create mode 100644 test/js/bun/resolve/with-type-module/export-esModule-annotation.cjs create mode 100644 test/js/bun/resolve/with-type-module/export-esModule-no-annotation.cjs create mode 100644 test/js/bun/resolve/with-type-module/package.json create mode 100644 test/js/bun/resolve/without-type-module/export-esModule-annotation-empty.cjs create mode 100644 test/js/bun/resolve/without-type-module/export-esModule-annotation-no-default.cjs create mode 100644 test/js/bun/resolve/without-type-module/export-esModule-annotation.cjs create mode 100644 test/js/bun/resolve/without-type-module/export-esModule-no-annotation.cjs create mode 100644 test/js/bun/resolve/without-type-module/package.json (limited to 'test/js') diff --git a/src/bun.js/bindings/CommonJSModuleRecord.cpp b/src/bun.js/bindings/CommonJSModuleRecord.cpp index 3615db774..c7dac89c2 100644 --- a/src/bun.js/bindings/CommonJSModuleRecord.cpp +++ b/src/bun.js/bindings/CommonJSModuleRecord.cpp @@ -586,13 +586,41 @@ void JSCommonJSModule::toSyntheticSource(JSC::JSGlobalObject* globalObject, auto result = this->exportsObject(); auto& vm = globalObject->vm(); - exportNames.append(vm.propertyNames->defaultKeyword); - exportValues.append(result); // This exists to tell ImportMetaObject.ts that this is a CommonJS module. exportNames.append(Identifier::fromUid(vm.symbolRegistry().symbolForKey("CommonJS"_s))); exportValues.append(jsNumber(0)); + // Bun's intepretation of the "__esModule" annotation: + // + // - If a "default" export does not exist OR the __esModule annotation is not present, then we + // set the default export to the exports object + // + // - If a "default" export also exists, then we set the default export + // to the value of it (matching Babel behavior) + // + // https://stackoverflow.com/questions/50943704/whats-the-purpose-of-object-definepropertyexports-esmodule-value-0 + // https://github.com/nodejs/node/issues/40891 + // https://github.com/evanw/bundler-esm-cjs-tests + // https://github.com/evanw/esbuild/issues/1591 + // https://github.com/oven-sh/bun/issues/3383 + // + // Note that this interpretation is slightly different + // + // - We do not ignore when "type": "module" or when the file + // extension is ".mjs". Build tools determine that based on the + // caller's behavior, but in a JS runtime, there is only one ModuleNamespaceObject. + // + // It would be possible to match the behavior at runtime, but + // it would need further engine changes which do not match the ES Module spec + // + // - We ignore the value of the annotation. We only look for the + // existence of the value being set. This is for performance reasons, but also + // this annotation is meant for tooling and the only usages of setting + // it to something that does NOT evaluate to "true" I could find were in + // unit tests of build tools. Happy to revisit this if users file an issue. + bool needsToAssignDefault = true; + if (result.isObject()) { auto* exports = asObject(result); @@ -601,21 +629,78 @@ void JSCommonJSModule::toSyntheticSource(JSC::JSGlobalObject* globalObject, exportNames.reserveCapacity(size + 2); exportValues.ensureCapacity(size + 2); - if (canPerformFastEnumeration(structure)) { + auto catchScope = DECLARE_CATCH_SCOPE(vm); + + Identifier esModuleMarker = builtinNames(vm).__esModulePublicName(); + bool hasESModuleMarker = !this->ignoreESModuleAnnotation && exports->hasProperty(globalObject, esModuleMarker); + if (catchScope.exception()) { + catchScope.clearException(); + } + + if (hasESModuleMarker) { + if (canPerformFastEnumeration(structure)) { + exports->structure()->forEachProperty(vm, [&](const PropertyTableEntry& entry) -> bool { + auto key = entry.key(); + if (key->isSymbol() || entry.attributes() & PropertyAttribute::DontEnum || key == esModuleMarker) + return true; + + needsToAssignDefault = needsToAssignDefault && key != vm.propertyNames->defaultKeyword; + + JSValue value = exports->getDirect(entry.offset()); + exportNames.append(Identifier::fromUid(vm, key)); + exportValues.append(value); + return true; + }); + } else { + JSC::PropertyNameArray properties(vm, JSC::PropertyNameMode::Strings, JSC::PrivateSymbolMode::Exclude); + exports->methodTable()->getOwnPropertyNames(exports, globalObject, properties, DontEnumPropertiesMode::Exclude); + if (catchScope.exception()) { + catchScope.clearExceptionExceptTermination(); + return; + } + + for (auto property : properties) { + if (UNLIKELY(property.isEmpty() || property.isNull() || property == esModuleMarker || property.isPrivateName() || property.isSymbol())) + continue; + + // ignore constructor + if (property == vm.propertyNames->constructor) + continue; + + JSC::PropertySlot slot(exports, PropertySlot::InternalMethodType::Get); + if (!exports->getPropertySlot(globalObject, property, slot)) + continue; + + exportNames.append(property); + + JSValue getterResult = slot.getValue(globalObject, property); + + // If it throws, we keep them in the exports list, but mark it as undefined + // This is consistent with what Node.js does. + if (catchScope.exception()) { + catchScope.clearException(); + getterResult = jsUndefined(); + } + + exportValues.append(getterResult); + + needsToAssignDefault = needsToAssignDefault && property != vm.propertyNames->defaultKeyword; + } + } + + } else if (canPerformFastEnumeration(structure)) { exports->structure()->forEachProperty(vm, [&](const PropertyTableEntry& entry) -> bool { auto key = entry.key(); - if (key->isSymbol() || key == vm.propertyNames->defaultKeyword || entry.attributes() & PropertyAttribute::DontEnum) + if (key->isSymbol() || entry.attributes() & PropertyAttribute::DontEnum || key == vm.propertyNames->defaultKeyword) return true; - exportNames.append(Identifier::fromUid(vm, key)); - JSValue value = exports->getDirect(entry.offset()); + exportNames.append(Identifier::fromUid(vm, key)); exportValues.append(value); return true; }); } else { - auto catchScope = DECLARE_CATCH_SCOPE(vm); JSC::PropertyNameArray properties(vm, JSC::PropertyNameMode::Strings, JSC::PrivateSymbolMode::Exclude); exports->methodTable()->getOwnPropertyNames(exports, globalObject, properties, DontEnumPropertiesMode::Exclude); if (catchScope.exception()) { @@ -624,11 +709,11 @@ void JSCommonJSModule::toSyntheticSource(JSC::JSGlobalObject* globalObject, } for (auto property : properties) { - if (UNLIKELY(property.isEmpty() || property.isNull() || property.isPrivateName() || property.isSymbol())) + if (UNLIKELY(property.isEmpty() || property.isNull() || property == vm.propertyNames->defaultKeyword || property.isPrivateName() || property.isSymbol())) continue; // ignore constructor - if (property == vm.propertyNames->constructor || property == vm.propertyNames->defaultKeyword) + if (property == vm.propertyNames->constructor) continue; JSC::PropertySlot slot(exports, PropertySlot::InternalMethodType::Get); @@ -650,6 +735,11 @@ void JSCommonJSModule::toSyntheticSource(JSC::JSGlobalObject* globalObject, } } } + + if (needsToAssignDefault) { + exportNames.append(vm.propertyNames->defaultKeyword); + exportValues.append(result); + } } JSValue JSCommonJSModule::exportsObject() @@ -759,6 +849,7 @@ bool JSCommonJSModule::evaluate( { auto& vm = globalObject->vm(); auto sourceProvider = Zig::SourceProvider::create(jsCast(globalObject), source, JSC::SourceProviderSourceType::Program); + this->ignoreESModuleAnnotation = source.tag == ResolvedSourceTagPackageJSONTypeModule; JSC::SourceCode rawInputSource( WTFMove(sourceProvider)); @@ -766,6 +857,7 @@ bool JSCommonJSModule::evaluate( return true; this->sourceCode.set(vm, this, JSC::JSSourceCode::create(vm, WTFMove(rawInputSource))); + WTF::NakedPtr exception; evaluateCommonJSModuleOnce(vm, globalObject, this, this->m_dirname.get(), this->m_filename.get(), exception); @@ -796,6 +888,7 @@ std::optional createCommonJSModule( JSValue entry = globalObject->requireMap()->get(globalObject, specifierValue); auto sourceProvider = Zig::SourceProvider::create(jsCast(globalObject), source, JSC::SourceProviderSourceType::Program); + bool ignoreESModuleAnnotation = source.tag == ResolvedSourceTagPackageJSONTypeModule; SourceOrigin sourceOrigin = sourceProvider->sourceOrigin(); if (entry) { @@ -827,6 +920,8 @@ std::optional createCommonJSModule( globalObject->requireMap()->set(globalObject, requireMapKey, moduleObject); } + moduleObject->ignoreESModuleAnnotation = ignoreESModuleAnnotation; + return JSC::SourceCode( JSC::SyntheticSourceProvider::create( [](JSC::JSGlobalObject* lexicalGlobalObject, diff --git a/src/bun.js/bindings/CommonJSModuleRecord.h b/src/bun.js/bindings/CommonJSModuleRecord.h index a96ab5f75..15792f9da 100644 --- a/src/bun.js/bindings/CommonJSModuleRecord.h +++ b/src/bun.js/bindings/CommonJSModuleRecord.h @@ -26,6 +26,7 @@ public: mutable JSC::WriteBarrier m_dirname; mutable JSC::WriteBarrier m_paths; mutable JSC::WriteBarrier sourceCode; + bool ignoreESModuleAnnotation { false }; static void destroy(JSC::JSCell*); ~JSCommonJSModule(); diff --git a/src/bun.js/bindings/exports.zig b/src/bun.js/bindings/exports.zig index f77b57216..213291e7b 100644 --- a/src/bun.js/bindings/exports.zig +++ b/src/bun.js/bindings/exports.zig @@ -216,9 +216,10 @@ pub const ResolvedSource = extern struct { pub const Tag = enum(u64) { javascript = 0, - wasm = 1, - object = 2, - file = 3, + package_json_type_module = 1, + wasm = 2, + object = 3, + file = 4, @"node:buffer" = 1024, @"node:process" = 1025, diff --git a/src/bun.js/bindings/headers-handwritten.h b/src/bun.js/bindings/headers-handwritten.h index 57940550f..db1e38d3e 100644 --- a/src/bun.js/bindings/headers-handwritten.h +++ b/src/bun.js/bindings/headers-handwritten.h @@ -72,6 +72,7 @@ typedef struct ResolvedSource { void* allocator; uint64_t tag; } ResolvedSource; +static const uint64_t ResolvedSourceTagPackageJSONTypeModule = 1; typedef union ErrorableResolvedSourceResult { ResolvedSource value; ZigErrorType err; diff --git a/src/bun.js/module_loader.zig b/src/bun.js/module_loader.zig index 5838d8a49..b25bb4b10 100644 --- a/src/bun.js/module_loader.zig +++ b/src/bun.js/module_loader.zig @@ -1225,6 +1225,25 @@ pub const ModuleLoader = struct { return resolved_source; } + // Pass along package.json type "module" if set. + const tag = brk: { + if (parse_result.ast.exports_kind == .cjs and parse_result.source.path.isFile()) { + var actual_package_json: *PackageJSON = package_json orelse brk2: { + // this should already be cached virtually always so it's fine to do this + var dir_info = (jsc_vm.bundler.resolver.readDirInfo(parse_result.source.path.name.dir) catch null) orelse + break :brk .javascript; + + break :brk2 dir_info.package_json orelse dir_info.enclosing_package_json; + } orelse break :brk .javascript; + + if (actual_package_json.module_type == .esm) { + break :brk ResolvedSource.Tag.package_json_type_module; + } + } + + break :brk ResolvedSource.Tag.javascript; + }; + return .{ .allocator = null, .source_code = bun.String.createLatin1(printer.ctx.getWritten()), @@ -1245,6 +1264,8 @@ pub const ModuleLoader = struct { // having JSC own the memory causes crashes .hash = 0, + + .tag = tag, }; }, // provideFetch() should be called diff --git a/src/js/builtins/BunBuiltinNames.h b/src/js/builtins/BunBuiltinNames.h index af9291918..1897f939e 100644 --- a/src/js/builtins/BunBuiltinNames.h +++ b/src/js/builtins/BunBuiltinNames.h @@ -37,6 +37,7 @@ using namespace JSC; macro(WritableStream) \ macro(WritableStreamDefaultController) \ macro(WritableStreamDefaultWriter) \ + macro(__esModule) \ macro(_events) \ macro(abortAlgorithm) \ macro(abortSteps) \ @@ -59,11 +60,11 @@ using namespace JSC; macro(cloneArrayBuffer) \ macro(close) \ macro(closeAlgorithm) \ + macro(closeRequest) \ + macro(closeRequested) \ macro(closed) \ macro(closedPromise) \ macro(closedPromiseCapability) \ - macro(closeRequest) \ - macro(closeRequested) \ macro(code) \ macro(commonJSSymbol) \ macro(connect) \ @@ -94,6 +95,7 @@ using namespace JSC; macro(end) \ macro(errno) \ macro(errorSteps) \ + macro(evaluateCommonJSModule) \ macro(execArgv) \ macro(exports) \ macro(extname) \ @@ -137,7 +139,6 @@ using namespace JSC; macro(lazyLoad) \ macro(lazyStreamPrototypeMap) \ macro(loadCJS2ESM) \ - macro(evaluateCommonJSModule) \ macro(localStreams) \ macro(main) \ macro(makeDOMException) \ diff --git a/test/js/bun/resolve/esModule-annotation.test.js b/test/js/bun/resolve/esModule-annotation.test.js new file mode 100644 index 000000000..33c84be5d --- /dev/null +++ b/test/js/bun/resolve/esModule-annotation.test.js @@ -0,0 +1,68 @@ +import { test, expect, describe } from "bun:test"; +import * as WithTypeModuleExportEsModuleAnnotationMissingDefault from "./with-type-module/export-esModule-annotation-empty.cjs"; +import * as WithTypeModuleExportEsModuleAnnotationNoDefault from "./with-type-module/export-esModule-annotation-no-default.cjs"; +import * as WithTypeModuleExportEsModuleAnnotation from "./with-type-module/export-esModule-annotation.cjs"; +import * as WithTypeModuleExportEsModuleNoAnnotation from "./with-type-module/export-esModule-no-annotation.cjs"; +import * as WithoutTypeModuleExportEsModuleAnnotationMissingDefault from "./without-type-module/export-esModule-annotation-empty.cjs"; +import * as WithoutTypeModuleExportEsModuleAnnotationNoDefault from "./without-type-module/export-esModule-annotation-no-default.cjs"; +import * as WithoutTypeModuleExportEsModuleAnnotation from "./without-type-module/export-esModule-annotation.cjs"; +import * as WithoutTypeModuleExportEsModuleNoAnnotation from "./without-type-module/export-esModule-no-annotation.cjs"; + +describe('without type: "module"', () => { + test("module.exports = {}", () => { + expect(WithoutTypeModuleExportEsModuleAnnotationMissingDefault.default).toEqual({}); + expect(WithoutTypeModuleExportEsModuleAnnotationMissingDefault.__esModule).toBeUndefined(); + }); + + test("exports.__esModule = true", () => { + expect(WithoutTypeModuleExportEsModuleAnnotationNoDefault.default).toEqual({ + __esModule: true, + }); + + // The module namespace object will not have the __esModule property. + expect(WithoutTypeModuleExportEsModuleAnnotationNoDefault).not.toHaveProperty("__esModule"); + }); + + test("exports.default = true; exports.__esModule = true;", () => { + expect(WithoutTypeModuleExportEsModuleAnnotation.default).toBeTrue(); + expect(WithoutTypeModuleExportEsModuleAnnotation.__esModule).toBeUndefined(); + }); + + test("exports.default = true;", () => { + expect(WithoutTypeModuleExportEsModuleNoAnnotation.default).toEqual({ + default: true, + }); + expect(WithoutTypeModuleExportEsModuleAnnotation.__esModule).toBeUndefined(); + }); +}); + +describe('with type: "module"', () => { + test("module.exports = {}", () => { + expect(WithTypeModuleExportEsModuleAnnotationMissingDefault.default).toEqual({}); + expect(WithTypeModuleExportEsModuleAnnotationMissingDefault.__esModule).toBeUndefined(); + }); + + test("exports.__esModule = true", () => { + expect(WithTypeModuleExportEsModuleAnnotationNoDefault.default).toEqual({ + __esModule: true, + }); + + // The module namespace object WILL have the __esModule property. + expect(WithTypeModuleExportEsModuleAnnotationNoDefault).toHaveProperty("__esModule"); + }); + + test("exports.default = true; exports.__esModule = true;", () => { + expect(WithTypeModuleExportEsModuleAnnotation.default).toEqual({ + default: true, + __esModule: true, + }); + expect(WithTypeModuleExportEsModuleAnnotation.__esModule).toBeTrue(); + }); + + test("exports.default = true;", () => { + expect(WithTypeModuleExportEsModuleNoAnnotation.default).toEqual({ + default: true, + }); + expect(WithTypeModuleExportEsModuleAnnotation.__esModule).toBeTrue(); + }); +}); diff --git a/test/js/bun/resolve/with-type-module/export-esModule-annotation-empty.cjs b/test/js/bun/resolve/with-type-module/export-esModule-annotation-empty.cjs new file mode 100644 index 000000000..f053ebf79 --- /dev/null +++ b/test/js/bun/resolve/with-type-module/export-esModule-annotation-empty.cjs @@ -0,0 +1 @@ +module.exports = {}; diff --git a/test/js/bun/resolve/with-type-module/export-esModule-annotation-no-default.cjs b/test/js/bun/resolve/with-type-module/export-esModule-annotation-no-default.cjs new file mode 100644 index 000000000..32b83d4a5 --- /dev/null +++ b/test/js/bun/resolve/with-type-module/export-esModule-annotation-no-default.cjs @@ -0,0 +1 @@ +exports.__esModule = true; diff --git a/test/js/bun/resolve/with-type-module/export-esModule-annotation.cjs b/test/js/bun/resolve/with-type-module/export-esModule-annotation.cjs new file mode 100644 index 000000000..bc0625a0c --- /dev/null +++ b/test/js/bun/resolve/with-type-module/export-esModule-annotation.cjs @@ -0,0 +1,2 @@ +exports.default = true; +exports.__esModule = true; diff --git a/test/js/bun/resolve/with-type-module/export-esModule-no-annotation.cjs b/test/js/bun/resolve/with-type-module/export-esModule-no-annotation.cjs new file mode 100644 index 000000000..a4b65815f --- /dev/null +++ b/test/js/bun/resolve/with-type-module/export-esModule-no-annotation.cjs @@ -0,0 +1 @@ +exports.default = true; diff --git a/test/js/bun/resolve/with-type-module/package.json b/test/js/bun/resolve/with-type-module/package.json new file mode 100644 index 000000000..f1863a426 --- /dev/null +++ b/test/js/bun/resolve/with-type-module/package.json @@ -0,0 +1,4 @@ +{ + "name": "with-type-module", + "type": "module" +} diff --git a/test/js/bun/resolve/without-type-module/export-esModule-annotation-empty.cjs b/test/js/bun/resolve/without-type-module/export-esModule-annotation-empty.cjs new file mode 100644 index 000000000..f053ebf79 --- /dev/null +++ b/test/js/bun/resolve/without-type-module/export-esModule-annotation-empty.cjs @@ -0,0 +1 @@ +module.exports = {}; diff --git a/test/js/bun/resolve/without-type-module/export-esModule-annotation-no-default.cjs b/test/js/bun/resolve/without-type-module/export-esModule-annotation-no-default.cjs new file mode 100644 index 000000000..32b83d4a5 --- /dev/null +++ b/test/js/bun/resolve/without-type-module/export-esModule-annotation-no-default.cjs @@ -0,0 +1 @@ +exports.__esModule = true; diff --git a/test/js/bun/resolve/without-type-module/export-esModule-annotation.cjs b/test/js/bun/resolve/without-type-module/export-esModule-annotation.cjs new file mode 100644 index 000000000..bc0625a0c --- /dev/null +++ b/test/js/bun/resolve/without-type-module/export-esModule-annotation.cjs @@ -0,0 +1,2 @@ +exports.default = true; +exports.__esModule = true; diff --git a/test/js/bun/resolve/without-type-module/export-esModule-no-annotation.cjs b/test/js/bun/resolve/without-type-module/export-esModule-no-annotation.cjs new file mode 100644 index 000000000..a4b65815f --- /dev/null +++ b/test/js/bun/resolve/without-type-module/export-esModule-no-annotation.cjs @@ -0,0 +1 @@ +exports.default = true; diff --git a/test/js/bun/resolve/without-type-module/package.json b/test/js/bun/resolve/without-type-module/package.json new file mode 100644 index 000000000..5b290db1c --- /dev/null +++ b/test/js/bun/resolve/without-type-module/package.json @@ -0,0 +1,4 @@ +{ + "name": "without-type-module", + "type": "commonjs" +} -- cgit v1.2.3 From 16598555f137112a3df2da5d8f2ee8edb496484f Mon Sep 17 00:00:00 2001 From: Silas Rech Date: Tue, 27 Jun 2023 00:35:48 +0200 Subject: `.randomInt()` support (#3357) * Add initial .randomInt() fallback * Add basic .randomInt() test * Attempt creating a native implementation * Switch to JSC.wrapWithHasContainer * Switch to .jsNumberFromUint64(), it seems like using just .jsNumber() causes the number to overflow in some cases * Regenerate out folder after rebasing --- bench/snippets/crypto.mjs | 4 ++++ src/bun.js/bindings/JSSinkLookupTable.h | 2 +- src/bun.js/bindings/bindings.zig | 1 + src/bun.js/webcore.zig | 20 ++++++++++++++++++++ src/js/node/crypto.js | 2 ++ src/js/out/modules/node/crypto.js | 8 ++++---- test/js/node/crypto/node-crypto.test.js | 21 +++++++++++++++++++++ 7 files changed, 53 insertions(+), 5 deletions(-) (limited to 'test/js') diff --git a/bench/snippets/crypto.mjs b/bench/snippets/crypto.mjs index b0b992a0f..e8e6f2f8a 100644 --- a/bench/snippets/crypto.mjs +++ b/bench/snippets/crypto.mjs @@ -22,4 +22,8 @@ bench("crypto.randomUUID()", () => { return crypto.randomUUID()[2]; }); +bench("crypto.randomInt()", () => { + return crypto.randomInt(); +}); + await run(); diff --git a/src/bun.js/bindings/JSSinkLookupTable.h b/src/bun.js/bindings/JSSinkLookupTable.h index e4ed81629..f8518bc5e 100644 --- a/src/bun.js/bindings/JSSinkLookupTable.h +++ b/src/bun.js/bindings/JSSinkLookupTable.h @@ -1,4 +1,4 @@ -// Automatically generated from src/bun.js/bindings/JSSink.cpp using /home/cirospaciari/Repos/bun/src/bun.js/WebKit/Source/JavaScriptCore/create_hash_table. DO NOT EDIT! +// Automatically generated from src/bun.js/bindings/JSSink.cpp using /Users/silas/Workspace/opensource/bun/src/bun.js/WebKit/Source/JavaScriptCore/create_hash_table. DO NOT EDIT! diff --git a/src/bun.js/bindings/bindings.zig b/src/bun.js/bindings/bindings.zig index 00833c71d..2b800ab8b 100644 --- a/src/bun.js/bindings/bindings.zig +++ b/src/bun.js/bindings/bindings.zig @@ -5568,6 +5568,7 @@ pub const __DOMCall__reader_u64 = @import("../api/bun.zig").FFI.Reader.Class.fun pub const __DOMCall__reader_intptr = @import("../api/bun.zig").FFI.Reader.Class.functionDefinitions.intptr; pub const __Crypto_getRandomValues = @import("../webcore.zig").Crypto.Class.functionDefinitions.getRandomValues; pub const __Crypto_randomUUID = @import("../webcore.zig").Crypto.Class.functionDefinitions.randomUUID; +pub const __Crypto_randomInt = @import("../webcore.zig").Crypto.Class.functionDefinitions.randomInt; pub const __Crypto_timingSafeEqual = @import("../webcore.zig").Crypto.Class.functionDefinitions.timingSafeEqual; pub const DOMCalls = .{ @import("../api/bun.zig").FFI, diff --git a/src/bun.js/webcore.zig b/src/bun.js/webcore.zig index a5009e09e..fd69b0262 100644 --- a/src/bun.js/webcore.zig +++ b/src/bun.js/webcore.zig @@ -10,6 +10,7 @@ const std = @import("std"); const bun = @import("root").bun; const string = bun.string; pub const AbortSignal = @import("./bindings/bindings.zig").AbortSignal; +pub const JSValue = @import("./bindings/bindings.zig").JSValue; pub const Lifetime = enum { clone, @@ -374,6 +375,7 @@ pub const Crypto = struct { .getRandomValues = JSC.DOMCall("Crypto", @This(), "getRandomValues", JSC.JSValue, JSC.DOMEffect.top), .randomUUID = JSC.DOMCall("Crypto", @This(), "randomUUID", *JSC.JSString, JSC.DOMEffect.top), .timingSafeEqual = JSC.DOMCall("Crypto", @This(), "timingSafeEqual", JSC.JSValue, JSC.DOMEffect.top), + .randomInt = .{ .rfn = &JSC.wrapWithHasContainer(Crypto, "randomInt", false, false, false) }, .scryptSync = .{ .rfn = &JSC.wrapWithHasContainer(Crypto, "scryptSync", false, false, false) }, }, .{}, @@ -698,6 +700,24 @@ pub const Crypto = struct { return JSC.ZigString.init(&out).toValueGC(globalThis); } + pub fn randomInt(globalThis: *JSC.JSGlobalObject, min_value: ?JSValue, max_value: ?JSValue) JSValue { + _ = globalThis; + + var at_least: u52 = 0; + var at_most: u52 = std.math.maxInt(u52); + + if (min_value) |min| { + if (max_value) |max| { + if (min.isNumber()) at_least = min.to(u52); + if (max.isNumber()) at_most = max.to(u52); + } else { + if (min.isNumber()) at_most = min.to(u52); + } + } + + return JSValue.jsNumberFromUint64(std.crypto.random.intRangeAtMost(u52, at_least, at_most)); + } + pub fn randomUUIDWithoutTypeChecks( globalThis: *JSC.JSGlobalObject, _: *anyopaque, diff --git a/src/js/node/crypto.js b/src/js/node/crypto.js index 3791bdcd9..c6968bbd5 100644 --- a/src/js/node/crypto.js +++ b/src/js/node/crypto.js @@ -23752,6 +23752,7 @@ var crypto_exports = { var DEFAULT_ENCODING = "buffer", getRandomValues = array => crypto.getRandomValues(array), randomUUID = () => crypto.randomUUID(), + randomInt = (...args) => crypto.randomInt(...args), timingSafeEqual = "timingSafeEqual" in crypto ? (a, b) => { @@ -23806,6 +23807,7 @@ __export(crypto_exports, { DEFAULT_ENCODING: () => DEFAULT_ENCODING, getRandomValues: () => getRandomValues, randomUUID: () => randomUUID, + randomInt: () => randomInt, scrypt: () => scrypt, scryptSync: () => scryptSync, timingSafeEqual: () => timingSafeEqual, diff --git a/src/js/out/modules/node/crypto.js b/src/js/out/modules/node/crypto.js index 85d647a59..9db837693 100644 --- a/src/js/out/modules/node/crypto.js +++ b/src/js/out/modules/node/crypto.js @@ -1,4 +1,4 @@ -import{StringDecoder as a$} from"node:string_decoder";import*as e$ from"node:buffer";import*as h$ from"node:stream";var s$=Object.defineProperty;var t$=Object.getOwnPropertyNames;var r$=536870888,c$=globalThis.Buffer,d$=globalThis.crypto,i$=d$;var $Q=(X,K)=>function(){return K||(0,X[t$(X)[0]])((K={exports:{}}).exports,K),K.exports},QQ=(X,K)=>{for(var x0 in K)s$(X,x0,{get:K[x0],enumerable:!0})};var YQ=$Q({"node_modules/safe-buffer/index.js"(X,K){var x0=e$,G=x0.Buffer;function Y(Z,Q){for(var U in Z)Q[U]=Z[U]}G.from&&G.alloc&&G.allocUnsafe&&G.allocUnsafeSlow?K.exports=x0:(Y(x0,X),X.Buffer=$);function $(Z,Q,U){return G(Z,Q,U)}$.prototype=Object.create(G.prototype),Y(G,$),$.from=function(Z,Q,U){if(typeof Z=="number")throw new TypeError("Argument must not be a number");return G(Z,Q,U)},$.alloc=function(Z,Q,U){if(typeof Z!="number")throw new TypeError("Argument must be a number");var V=G(Z);return Q!==void 0?typeof U=="string"?V.fill(Q,U):V.fill(Q):V.fill(0),V},$.allocUnsafe=function(Z){if(typeof Z!="number")throw new TypeError("Argument must be a number");return G(Z)},$.allocUnsafeSlow=function(Z){if(typeof Z!="number")throw new TypeError("Argument must be a number");return x0.SlowBuffer(Z)}}}),ZQ=$Q({"node_modules/randombytes/browser.js"(X,K){var x0=65536,G=4294967295;function Y(){throw new Error(`Secure random number generation is not supported by this browser. -Use Chrome, Firefox or Internet Explorer 11`)}var $=YQ().Buffer,Z=i$;Z&&Z.getRandomValues?K.exports=Q:K.exports=Y;function Q(U,V){if(U>G)throw new RangeError("requested too many random bytes");var B0=$.allocUnsafe(U);if(U>0)if(U>x0)for(var H=0;H=this._blockSize;){for(var B0=this._blockOffset;B00;++H)this._length[H]+=y0,y0=this._length[H]/4294967296|0,y0>0&&(this._length[H]-=4294967296*y0);return this},$.prototype._update=function(){throw new Error("_update is not implemented")},$.prototype.digest=function(Z){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var Q=this._digest();Z!==void 0&&(Q=Q.toString(Z)),this._block.fill(0),this._blockOffset=0;for(var U=0;U<4;++U)this._length[U]=0;return Q},$.prototype._digest=function(){throw new Error("_digest is not implemented")},K.exports=$}}),I0=$Q({"node_modules/md5.js/index.js"(X,K){var x0=X0(),G=K0(),Y=YQ().Buffer,$=new Array(16);function Z(){G.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}x0(Z,G),Z.prototype._update=function(){for(var y0=$,W=0;W<16;++W)y0[W]=this._block.readInt32LE(W*4);var w0=this._a,E=this._b,p0=this._c,T=this._d;w0=U(w0,E,p0,T,y0[0],3614090360,7),T=U(T,w0,E,p0,y0[1],3905402710,12),p0=U(p0,T,w0,E,y0[2],606105819,17),E=U(E,p0,T,w0,y0[3],3250441966,22),w0=U(w0,E,p0,T,y0[4],4118548399,7),T=U(T,w0,E,p0,y0[5],1200080426,12),p0=U(p0,T,w0,E,y0[6],2821735955,17),E=U(E,p0,T,w0,y0[7],4249261313,22),w0=U(w0,E,p0,T,y0[8],1770035416,7),T=U(T,w0,E,p0,y0[9],2336552879,12),p0=U(p0,T,w0,E,y0[10],4294925233,17),E=U(E,p0,T,w0,y0[11],2304563134,22),w0=U(w0,E,p0,T,y0[12],1804603682,7),T=U(T,w0,E,p0,y0[13],4254626195,12),p0=U(p0,T,w0,E,y0[14],2792965006,17),E=U(E,p0,T,w0,y0[15],1236535329,22),w0=V(w0,E,p0,T,y0[1],4129170786,5),T=V(T,w0,E,p0,y0[6],3225465664,9),p0=V(p0,T,w0,E,y0[11],643717713,14),E=V(E,p0,T,w0,y0[0],3921069994,20),w0=V(w0,E,p0,T,y0[5],3593408605,5),T=V(T,w0,E,p0,y0[10],38016083,9),p0=V(p0,T,w0,E,y0[15],3634488961,14),E=V(E,p0,T,w0,y0[4],3889429448,20),w0=V(w0,E,p0,T,y0[9],568446438,5),T=V(T,w0,E,p0,y0[14],3275163606,9),p0=V(p0,T,w0,E,y0[3],4107603335,14),E=V(E,p0,T,w0,y0[8],1163531501,20),w0=V(w0,E,p0,T,y0[13],2850285829,5),T=V(T,w0,E,p0,y0[2],4243563512,9),p0=V(p0,T,w0,E,y0[7],1735328473,14),E=V(E,p0,T,w0,y0[12],2368359562,20),w0=B0(w0,E,p0,T,y0[5],4294588738,4),T=B0(T,w0,E,p0,y0[8],2272392833,11),p0=B0(p0,T,w0,E,y0[11],1839030562,16),E=B0(E,p0,T,w0,y0[14],4259657740,23),w0=B0(w0,E,p0,T,y0[1],2763975236,4),T=B0(T,w0,E,p0,y0[4],1272893353,11),p0=B0(p0,T,w0,E,y0[7],4139469664,16),E=B0(E,p0,T,w0,y0[10],3200236656,23),w0=B0(w0,E,p0,T,y0[13],681279174,4),T=B0(T,w0,E,p0,y0[0],3936430074,11),p0=B0(p0,T,w0,E,y0[3],3572445317,16),E=B0(E,p0,T,w0,y0[6],76029189,23),w0=B0(w0,E,p0,T,y0[9],3654602809,4),T=B0(T,w0,E,p0,y0[12],3873151461,11),p0=B0(p0,T,w0,E,y0[15],530742520,16),E=B0(E,p0,T,w0,y0[2],3299628645,23),w0=H(w0,E,p0,T,y0[0],4096336452,6),T=H(T,w0,E,p0,y0[7],1126891415,10),p0=H(p0,T,w0,E,y0[14],2878612391,15),E=H(E,p0,T,w0,y0[5],4237533241,21),w0=H(w0,E,p0,T,y0[12],1700485571,6),T=H(T,w0,E,p0,y0[3],2399980690,10),p0=H(p0,T,w0,E,y0[10],4293915773,15),E=H(E,p0,T,w0,y0[1],2240044497,21),w0=H(w0,E,p0,T,y0[8],1873313359,6),T=H(T,w0,E,p0,y0[15],4264355552,10),p0=H(p0,T,w0,E,y0[6],2734768916,15),E=H(E,p0,T,w0,y0[13],1309151649,21),w0=H(w0,E,p0,T,y0[4],4149444226,6),T=H(T,w0,E,p0,y0[11],3174756917,10),p0=H(p0,T,w0,E,y0[2],718787259,15),E=H(E,p0,T,w0,y0[9],3951481745,21),this._a=this._a+w0|0,this._b=this._b+E|0,this._c=this._c+p0|0,this._d=this._d+T|0},Z.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var y0=Y.allocUnsafe(16);return y0.writeInt32LE(this._a,0),y0.writeInt32LE(this._b,4),y0.writeInt32LE(this._c,8),y0.writeInt32LE(this._d,12),y0};function Q(y0,W){return y0<>>32-W}function U(y0,W,w0,E,p0,T,f0){return Q(y0+(W&w0|~W&E)+p0+T|0,f0)+W|0}function V(y0,W,w0,E,p0,T,f0){return Q(y0+(W&E|w0&~E)+p0+T|0,f0)+W|0}function B0(y0,W,w0,E,p0,T,f0){return Q(y0+(W^w0^E)+p0+T|0,f0)+W|0}function H(y0,W,w0,E,p0,T,f0){return Q(y0+(w0^(W|~E))+p0+T|0,f0)+W|0}K.exports=Z}}),O0=$Q({"node_modules/ripemd160/index.js"(X,K){var x0=c$,G=X0(),Y=K0(),$=new Array(16),Z=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],Q=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],U=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],V=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],B0=[0,1518500249,1859775393,2400959708,2840853838],H=[1352829926,1548603684,1836072691,2053994217,0];function y0(){Y.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}G(y0,Y),y0.prototype._update=function(){for(var D=$,c0=0;c0<16;++c0)D[c0]=this._block.readInt32LE(c0*4);for(var C=this._a|0,h0=this._b|0,L=this._c|0,d0=this._d|0,R=this._e|0,b0=this._a|0,P=this._b|0,l0=this._c|0,z=this._d|0,o0=this._e|0,M=0;M<80;M+=1){var u0,S;M<16?(u0=w0(C,h0,L,d0,R,D[Z[M]],B0[0],U[M]),S=f0(b0,P,l0,z,o0,D[Q[M]],H[0],V[M])):M<32?(u0=E(C,h0,L,d0,R,D[Z[M]],B0[1],U[M]),S=T(b0,P,l0,z,o0,D[Q[M]],H[1],V[M])):M<48?(u0=p0(C,h0,L,d0,R,D[Z[M]],B0[2],U[M]),S=p0(b0,P,l0,z,o0,D[Q[M]],H[2],V[M])):M<64?(u0=T(C,h0,L,d0,R,D[Z[M]],B0[3],U[M]),S=E(b0,P,l0,z,o0,D[Q[M]],H[3],V[M])):(u0=f0(C,h0,L,d0,R,D[Z[M]],B0[4],U[M]),S=w0(b0,P,l0,z,o0,D[Q[M]],H[4],V[M])),C=R,R=d0,d0=W(L,10),L=h0,h0=u0,b0=o0,o0=z,z=W(l0,10),l0=P,P=S}var n0=this._b+L+z|0;this._b=this._c+d0+o0|0,this._c=this._d+R+b0|0,this._d=this._e+C+P|0,this._e=this._a+h0+l0|0,this._a=n0},y0.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var D=x0.alloc?x0.alloc(20):new x0(20);return D.writeInt32LE(this._a,0),D.writeInt32LE(this._b,4),D.writeInt32LE(this._c,8),D.writeInt32LE(this._d,12),D.writeInt32LE(this._e,16),D};function W(D,c0){return D<>>32-c0}function w0(D,c0,C,h0,L,d0,R,b0){return W(D+(c0^C^h0)+d0+R|0,b0)+L|0}function E(D,c0,C,h0,L,d0,R,b0){return W(D+(c0&C|~c0&h0)+d0+R|0,b0)+L|0}function p0(D,c0,C,h0,L,d0,R,b0){return W(D+((c0|~C)^h0)+d0+R|0,b0)+L|0}function T(D,c0,C,h0,L,d0,R,b0){return W(D+(c0&h0|C&~h0)+d0+R|0,b0)+L|0}function f0(D,c0,C,h0,L,d0,R,b0){return W(D+(c0^(C|~h0))+d0+R|0,b0)+L|0}K.exports=y0}}),J0=$Q({"node_modules/sha.js/hash.js"(X,K){var x0=YQ().Buffer;function G(Y,$){this._block=x0.alloc(Y),this._finalSize=$,this._blockSize=Y,this._len=0}G.prototype.update=function(Y,$){typeof Y=="string"&&($=$||"utf8",Y=x0.from(Y,$));for(var Z=this._block,Q=this._blockSize,U=Y.length,V=this._len,B0=0;B0=this._finalSize&&(this._update(this._block),this._block.fill(0));var Z=this._len*8;if(Z<=4294967295)this._block.writeUInt32BE(Z,this._blockSize-4);else{var Q=(Z&4294967295)>>>0,U=(Z-Q)/4294967296;this._block.writeUInt32BE(U,this._blockSize-8),this._block.writeUInt32BE(Q,this._blockSize-4)}this._update(this._block);var V=this._hash();return Y?V.toString(Y):V},G.prototype._update=function(){throw new Error("_update must be implemented by subclass")},K.exports=G}}),F0=$Q({"node_modules/sha.js/sha.js"(X,K){var x0=X0(),G=J0(),Y=YQ().Buffer,$=[1518500249,1859775393,-1894007588,-899497514],Z=new Array(80);function Q(){this.init(),this._w=Z,G.call(this,64,56)}x0(Q,G),Q.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function U(H){return H<<5|H>>>27}function V(H){return H<<30|H>>>2}function B0(H,y0,W,w0){return H===0?y0&W|~y0&w0:H===2?y0&W|y0&w0|W&w0:y0^W^w0}Q.prototype._update=function(H){for(var y0=this._w,W=this._a|0,w0=this._b|0,E=this._c|0,p0=this._d|0,T=this._e|0,f0=0;f0<16;++f0)y0[f0]=H.readInt32BE(f0*4);for(;f0<80;++f0)y0[f0]=y0[f0-3]^y0[f0-8]^y0[f0-14]^y0[f0-16];for(var D=0;D<80;++D){var c0=~~(D/20),C=U(W)+B0(c0,w0,E,p0)+T+y0[D]+$[c0]|0;T=p0,p0=E,E=V(w0),w0=W,W=C}this._a=W+this._a|0,this._b=w0+this._b|0,this._c=E+this._c|0,this._d=p0+this._d|0,this._e=T+this._e|0},Q.prototype._hash=function(){var H=Y.allocUnsafe(20);return H.writeInt32BE(this._a|0,0),H.writeInt32BE(this._b|0,4),H.writeInt32BE(this._c|0,8),H.writeInt32BE(this._d|0,12),H.writeInt32BE(this._e|0,16),H},K.exports=Q}}),A0=$Q({"node_modules/sha.js/sha1.js"(X,K){var x0=X0(),G=J0(),Y=YQ().Buffer,$=[1518500249,1859775393,-1894007588,-899497514],Z=new Array(80);function Q(){this.init(),this._w=Z,G.call(this,64,56)}x0(Q,G),Q.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function U(y0){return y0<<1|y0>>>31}function V(y0){return y0<<5|y0>>>27}function B0(y0){return y0<<30|y0>>>2}function H(y0,W,w0,E){return y0===0?W&w0|~W&E:y0===2?W&w0|W&E|w0&E:W^w0^E}Q.prototype._update=function(y0){for(var W=this._w,w0=this._a|0,E=this._b|0,p0=this._c|0,T=this._d|0,f0=this._e|0,D=0;D<16;++D)W[D]=y0.readInt32BE(D*4);for(;D<80;++D)W[D]=U(W[D-3]^W[D-8]^W[D-14]^W[D-16]);for(var c0=0;c0<80;++c0){var C=~~(c0/20),h0=V(w0)+H(C,E,p0,T)+f0+W[c0]+$[C]|0;f0=T,T=p0,p0=B0(E),E=w0,w0=h0}this._a=w0+this._a|0,this._b=E+this._b|0,this._c=p0+this._c|0,this._d=T+this._d|0,this._e=f0+this._e|0},Q.prototype._hash=function(){var y0=Y.allocUnsafe(20);return y0.writeInt32BE(this._a|0,0),y0.writeInt32BE(this._b|0,4),y0.writeInt32BE(this._c|0,8),y0.writeInt32BE(this._d|0,12),y0.writeInt32BE(this._e|0,16),y0},K.exports=Q}}),H0=$Q({"node_modules/sha.js/sha256.js"(X,K){var x0=X0(),G=J0(),Y=YQ().Buffer,$=[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],Z=new Array(64);function Q(){this.init(),this._w=Z,G.call(this,64,56)}x0(Q,G),Q.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function U(w0,E,p0){return p0^w0&(E^p0)}function V(w0,E,p0){return w0&E|p0&(w0|E)}function B0(w0){return(w0>>>2|w0<<30)^(w0>>>13|w0<<19)^(w0>>>22|w0<<10)}function H(w0){return(w0>>>6|w0<<26)^(w0>>>11|w0<<21)^(w0>>>25|w0<<7)}function y0(w0){return(w0>>>7|w0<<25)^(w0>>>18|w0<<14)^w0>>>3}function W(w0){return(w0>>>17|w0<<15)^(w0>>>19|w0<<13)^w0>>>10}Q.prototype._update=function(w0){for(var E=this._w,p0=this._a|0,T=this._b|0,f0=this._c|0,D=this._d|0,c0=this._e|0,C=this._f|0,h0=this._g|0,L=this._h|0,d0=0;d0<16;++d0)E[d0]=w0.readInt32BE(d0*4);for(;d0<64;++d0)E[d0]=W(E[d0-2])+E[d0-7]+y0(E[d0-15])+E[d0-16]|0;for(var R=0;R<64;++R){var b0=L+H(c0)+U(c0,C,h0)+$[R]+E[R]|0,P=B0(p0)+V(p0,T,f0)|0;L=h0,h0=C,C=c0,c0=D+b0|0,D=f0,f0=T,T=p0,p0=b0+P|0}this._a=p0+this._a|0,this._b=T+this._b|0,this._c=f0+this._c|0,this._d=D+this._d|0,this._e=c0+this._e|0,this._f=C+this._f|0,this._g=h0+this._g|0,this._h=L+this._h|0},Q.prototype._hash=function(){var w0=Y.allocUnsafe(32);return w0.writeInt32BE(this._a,0),w0.writeInt32BE(this._b,4),w0.writeInt32BE(this._c,8),w0.writeInt32BE(this._d,12),w0.writeInt32BE(this._e,16),w0.writeInt32BE(this._f,20),w0.writeInt32BE(this._g,24),w0.writeInt32BE(this._h,28),w0},K.exports=Q}}),W0=$Q({"node_modules/sha.js/sha224.js"(X,K){var x0=X0(),G=H0(),Y=J0(),$=YQ().Buffer,Z=new Array(64);function Q(){this.init(),this._w=Z,Y.call(this,64,56)}x0(Q,G),Q.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},Q.prototype._hash=function(){var U=$.allocUnsafe(28);return U.writeInt32BE(this._a,0),U.writeInt32BE(this._b,4),U.writeInt32BE(this._c,8),U.writeInt32BE(this._d,12),U.writeInt32BE(this._e,16),U.writeInt32BE(this._f,20),U.writeInt32BE(this._g,24),U},K.exports=Q}}),E0=$Q({"node_modules/sha.js/sha512.js"(X,K){var x0=X0(),G=J0(),Y=YQ().Buffer,$=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],Z=new Array(160);function Q(){this.init(),this._w=Z,G.call(this,128,112)}x0(Q,G),Q.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function U(T,f0,D){return D^T&(f0^D)}function V(T,f0,D){return T&f0|D&(T|f0)}function B0(T,f0){return(T>>>28|f0<<4)^(f0>>>2|T<<30)^(f0>>>7|T<<25)}function H(T,f0){return(T>>>14|f0<<18)^(T>>>18|f0<<14)^(f0>>>9|T<<23)}function y0(T,f0){return(T>>>1|f0<<31)^(T>>>8|f0<<24)^T>>>7}function W(T,f0){return(T>>>1|f0<<31)^(T>>>8|f0<<24)^(T>>>7|f0<<25)}function w0(T,f0){return(T>>>19|f0<<13)^(f0>>>29|T<<3)^T>>>6}function E(T,f0){return(T>>>19|f0<<13)^(f0>>>29|T<<3)^(T>>>6|f0<<26)}function p0(T,f0){return T>>>0>>0?1:0}Q.prototype._update=function(T){for(var f0=this._w,D=this._ah|0,c0=this._bh|0,C=this._ch|0,h0=this._dh|0,L=this._eh|0,d0=this._fh|0,R=this._gh|0,b0=this._hh|0,P=this._al|0,l0=this._bl|0,z=this._cl|0,o0=this._dl|0,M=this._el|0,u0=this._fl|0,S=this._gl|0,n0=this._hl|0,v=0;v<32;v+=2)f0[v]=T.readInt32BE(v*4),f0[v+1]=T.readInt32BE(v*4+4);for(;v<160;v+=2){var s0=f0[v-30],I=f0[v-30+1],t0=y0(s0,I),m0=W(I,s0);s0=f0[v-4],I=f0[v-4+1];var a0=w0(s0,I),q=E(I,s0),e0=f0[v-14],r0=f0[v-14+1],i0=f0[v-32],j=f0[v-32+1],$$=m0+r0|0,k=t0+e0+p0($$,m0)|0;$$=$$+q|0,k=k+a0+p0($$,q)|0,$$=$$+j|0,k=k+i0+p0($$,j)|0,f0[v]=k,f0[v+1]=$$}for(var Q$=0;Q$<160;Q$+=2){k=f0[Q$],$$=f0[Q$+1];var g=V(D,c0,C),Y$=V(P,l0,z),_=B0(D,P),Z$=B0(P,D),N=H(L,M),G$=H(M,L),x=$[Q$],V$=$[Q$+1],B=U(L,d0,R),U$=U(M,u0,S),y=n0+G$|0,X$=b0+N+p0(y,n0)|0;y=y+U$|0,X$=X$+B+p0(y,U$)|0,y=y+V$|0,X$=X$+x+p0(y,V$)|0,y=y+$$|0,X$=X$+k+p0(y,$$)|0;var w=Z$+Y$|0,K$=_+g+p0(w,Z$)|0;b0=R,n0=S,R=d0,S=u0,d0=L,u0=M,M=o0+y|0,L=h0+X$+p0(M,o0)|0,h0=C,o0=z,C=c0,z=l0,c0=D,l0=P,P=y+w|0,D=X$+K$+p0(P,y)|0}this._al=this._al+P|0,this._bl=this._bl+l0|0,this._cl=this._cl+z|0,this._dl=this._dl+o0|0,this._el=this._el+M|0,this._fl=this._fl+u0|0,this._gl=this._gl+S|0,this._hl=this._hl+n0|0,this._ah=this._ah+D+p0(this._al,P)|0,this._bh=this._bh+c0+p0(this._bl,l0)|0,this._ch=this._ch+C+p0(this._cl,z)|0,this._dh=this._dh+h0+p0(this._dl,o0)|0,this._eh=this._eh+L+p0(this._el,M)|0,this._fh=this._fh+d0+p0(this._fl,u0)|0,this._gh=this._gh+R+p0(this._gl,S)|0,this._hh=this._hh+b0+p0(this._hl,n0)|0},Q.prototype._hash=function(){var T=Y.allocUnsafe(64);function f0(D,c0,C){T.writeInt32BE(D,C),T.writeInt32BE(c0,C+4)}return f0(this._ah,this._al,0),f0(this._bh,this._bl,8),f0(this._ch,this._cl,16),f0(this._dh,this._dl,24),f0(this._eh,this._el,32),f0(this._fh,this._fl,40),f0(this._gh,this._gl,48),f0(this._hh,this._hl,56),T},K.exports=Q}}),T0=$Q({"node_modules/sha.js/sha384.js"(X,K){var x0=X0(),G=E0(),Y=J0(),$=YQ().Buffer,Z=new Array(160);function Q(){this.init(),this._w=Z,Y.call(this,128,112)}x0(Q,G),Q.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},Q.prototype._hash=function(){var U=$.allocUnsafe(48);function V(B0,H,y0){U.writeInt32BE(B0,y0),U.writeInt32BE(H,y0+4)}return V(this._ah,this._al,0),V(this._bh,this._bl,8),V(this._ch,this._cl,16),V(this._dh,this._dl,24),V(this._eh,this._el,32),V(this._fh,this._fl,40),U},K.exports=Q}}),D0=$Q({"node_modules/sha.js/index.js"(x0,K){var x0=K.exports=function(G){G=G.toLowerCase();var Y=x0[G];if(!Y)throw new Error(G+" is not supported (we accept pull requests)");return new Y};x0.sha=F0(),x0.sha1=A0(),x0.sha224=W0(),x0.sha256=H0(),x0.sha384=T0(),x0.sha512=E0()}}),C0=$Q({"node_modules/cipher-base/index.js"(X,K){var x0=YQ().Buffer,G=X0();function Y($){h$.Transform.call(this),this.hashMode=typeof $=="string",this.hashMode?this[$]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}G(Y,h$.Transform),Y.prototype.update=function($,Z,Q){typeof $=="string"&&($=x0.from($,Z));var U=this._update($);return this.hashMode?this:(Q&&(U=this._toString(U,Q)),U)},Y.prototype.setAutoPadding=function(){},Y.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},Y.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},Y.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},Y.prototype._transform=function($,Z,Q){var U;try{this.hashMode?this._update($):this.push(this._update($))}catch(V){U=V}finally{Q(U)}},Y.prototype._flush=function($){var Z;try{this.push(this.__final())}catch(Q){Z=Q}$(Z)},Y.prototype._finalOrDigest=function($){var Z=this.__final()||x0.alloc(0);return $&&(Z=this._toString(Z,$,!0)),Z},Y.prototype._toString=function($,Z,Q){if(this._decoder||(this._decoder=new a$(Z),this._encoding=Z),this._encoding!==Z)throw new Error("can't switch encodings");var U=this._decoder.write($);return Q&&(U+=this._decoder.end()),U},K.exports=Y}}),L0=$Q({"node_modules/create-hash/browser.js"(X,K){const x0=function $(Z,Q){this._options=Q,this._hasher=new sY(Z,Q),this._finalized=!1};x0.prototype=Object.create(h$.Transform.prototype),x0.prototype.update=function $(Z,Q){return this._checkFinalized(),this._hasher.update(Z,Q),this},x0.prototype.digest=function $(Z,Q){return this._checkFinalized(),this._finalized=!0,this._hasher.digest(Z,Q)},x0.prototype._checkFinalized=function $(){if(this._finalized){var Z=new Error("Digest already called");throw Z.code="ERR_CRYPTO_HASH_FINALIZED",Z}},x0.prototype.copy=function $(){const Z=Object.create(x0.prototype);return Z._options=this._options,Z._hasher=this._hasher.copy(),Z._finalized=this._finalized,Z};const G={__proto__:h$.Transform.prototype,...x0.prototype,_transform($,Z,Q){this.update($,Z),Q&&Q()},_flush($){this.push(this.digest()),$()}},Y=["_events","_eventsCount","_final","_maxListeners","_maxListeners","_read","_undestroy","_writableState","_write","_writev","addListener","asIndexedPairs","closed","compose","constructor","cork","destroy","destroyed","drop","emit","end","errored","eventNames","every","filter","find","flatMap","forEach","getMaxListeners","hasOwnProperty","isPaused","isPrototypeOf","iterator","listenerCount","listeners","map","off","on","once","pause","pipe","prependListener","prependOnceListener","propertyIsEnumerable","push","rawListeners","read","readable","readableAborted","readableBuffer","readableDidRead","readableEncoding","readableEnded","readableFlowing","readableHighWaterMark","readableLength","readableObjectMode","reduce","removeAllListeners","removeListener","resume","setDefaultEncoding","setEncoding","setMaxListeners","some","take","toArray","toLocaleString","toString","uncork","unpipe","unshift","valueOf","wrap","writable","writableBuffer","writableCorked","writableEnded","writableFinished","writableHighWaterMark","writableLength","writableNeedDrain","writableObjectMode","write"];for(let $ of Y)Object.defineProperty(x0.prototype,$,{get(){return Object.setPrototypeOf(this,G),h$.Transform.call(this,this._options),this[$]},enumerable:!1,configurable:!0});K.exports=function $(Z){return new x0(Z)},K.exports.createHash=K.exports,K.exports.Hash=x0}}),R0=$Q({"node_modules/create-hmac/legacy.js"(X,K){var x0=X0(),G=YQ().Buffer,Y=C0(),$=G.alloc(128),Z=64;function Q(U,V){Y.call(this,"digest"),typeof V=="string"&&(V=G.from(V)),this._alg=U,this._key=V,V.length>Z?V=U(V):V.lengthW){var w0=H==="rmd160"?new Q:U(H);y0=w0.update(y0).digest()}else y0.lengthx0||Y!==Y)throw new TypeError("Bad key length")}}}),q0=$Q({"node_modules/pbkdf2/lib/default-encoding.js"(X,K){var x0;global.process&&global.process.browser?x0="utf-8":global.process&&global.process.version?(G=parseInt(process.version.split(".")[0].slice(1),10),x0=G>=6?"utf-8":"binary"):x0="utf-8";var G;K.exports=x0}}),j0=$Q({"node_modules/pbkdf2/lib/to-buffer.js"(X,K){var x0=YQ().Buffer;K.exports=function(G,Y,$){if(x0.isBuffer(G))return G;if(typeof G=="string")return x0.from(G,Y);if(ArrayBuffer.isView(G))return x0.from(G.buffer);throw new TypeError($+" must be a string, a Buffer, a typed array or a DataView")}}}),k0=$Q({"node_modules/pbkdf2/lib/sync-browser.js"(X,K){var x0=P0(),G=O0(),Y=D0(),$=YQ().Buffer,Z=v0(),Q=q0(),U=j0(),V=$.alloc(128),B0={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function H(w0,E,p0){var T=y0(w0),f0=w0==="sha512"||w0==="sha384"?128:64;E.length>f0?E=T(E):E.length>>0},X.writeUInt32BE=function(Y,$,Z){Y[0+Z]=$>>>24,Y[1+Z]=$>>>16&255,Y[2+Z]=$>>>8&255,Y[3+Z]=$&255},X.ip=function(Y,$,Z,Q){for(var U=0,V=0,B0=6;B0>=0;B0-=2){for(var H=0;H<=24;H+=8)U<<=1,U|=$>>>H+B0&1;for(var H=0;H<=24;H+=8)U<<=1,U|=Y>>>H+B0&1}for(var B0=6;B0>=0;B0-=2){for(var H=1;H<=25;H+=8)V<<=1,V|=$>>>H+B0&1;for(var H=1;H<=25;H+=8)V<<=1,V|=Y>>>H+B0&1}Z[Q+0]=U>>>0,Z[Q+1]=V>>>0},X.rip=function(Y,$,Z,Q){for(var U=0,V=0,B0=0;B0<4;B0++)for(var H=24;H>=0;H-=8)U<<=1,U|=$>>>H+B0&1,U<<=1,U|=Y>>>H+B0&1;for(var B0=4;B0<8;B0++)for(var H=24;H>=0;H-=8)V<<=1,V|=$>>>H+B0&1,V<<=1,V|=Y>>>H+B0&1;Z[Q+0]=U>>>0,Z[Q+1]=V>>>0},X.pc1=function(Y,$,Z,Q){for(var U=0,V=0,B0=7;B0>=5;B0--){for(var H=0;H<=24;H+=8)U<<=1,U|=$>>H+B0&1;for(var H=0;H<=24;H+=8)U<<=1,U|=Y>>H+B0&1}for(var H=0;H<=24;H+=8)U<<=1,U|=$>>H+B0&1;for(var B0=1;B0<=3;B0++){for(var H=0;H<=24;H+=8)V<<=1,V|=$>>H+B0&1;for(var H=0;H<=24;H+=8)V<<=1,V|=Y>>H+B0&1}for(var H=0;H<=24;H+=8)V<<=1,V|=Y>>H+B0&1;Z[Q+0]=U>>>0,Z[Q+1]=V>>>0},X.r28shl=function(Y,$){return Y<<$&268435455|Y>>>28-$};var K=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];X.pc2=function(Y,$,Z,Q){for(var U=0,V=0,B0=K.length>>>1,H=0;H>>K[H]&1;for(var H=B0;H>>K[H]&1;Z[Q+0]=U>>>0,Z[Q+1]=V>>>0},X.expand=function(Y,$,Z){var Q=0,U=0;Q=(Y&1)<<5|Y>>>27;for(var V=23;V>=15;V-=4)Q<<=6,Q|=Y>>>V&63;for(var V=11;V>=3;V-=4)U|=Y>>>V&63,U<<=6;U|=(Y&31)<<1|Y>>>31,$[Z+0]=Q>>>0,$[Z+1]=U>>>0};var x0=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];X.substitute=function(Y,$){for(var Z=0,Q=0;Q<4;Q++){var U=Y>>>18-Q*6&63,V=x0[Q*64+U];Z<<=4,Z|=V}for(var Q=0;Q<4;Q++){var U=$>>>18-Q*6&63,V=x0[256+Q*64+U];Z<<=4,Z|=V}return Z>>>0};var G=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];X.permute=function(Y){for(var $=0,Z=0;Z>>G[Z]&1;return $>>>0},X.padSplit=function(Y,$,Z){for(var Q=Y.toString(2);Q.length<$;)Q="0"+Q;for(var U=[],V=0;V<$;V+=Z)U.push(Q.slice(V,V+Z));return U.join(" ")}}}),N0=$Q({"node_modules/minimalistic-assert/index.js"(X,K){K.exports=x0;function x0(G,Y){if(!G)throw new Error(Y||"Assertion failed")}x0.equal=function(G,Y,$){if(G!=Y)throw new Error($||"Assertion failed: "+G+" != "+Y)}}}),VQ=$Q({"node_modules/des.js/lib/des/cipher.js"(X,K){var x0=N0();function G(Y){this.options=Y,this.type=this.options.type,this.blockSize=8,this._init(),this.buffer=new Array(this.blockSize),this.bufferOff=0}K.exports=G,G.prototype._init=function(){},G.prototype.update=function(Y){return Y.length===0?[]:this.type==="decrypt"?this._updateDecrypt(Y):this._updateEncrypt(Y)},G.prototype._buffer=function(Y,$){for(var Z=Math.min(this.buffer.length-this.bufferOff,Y.length-$),Q=0;Q0;Q--)$+=this._buffer(Y,$),Z+=this._flushBuffer(U,Z);return $+=this._buffer(Y,$),U},G.prototype.final=function(Y){var $;Y&&($=this.update(Y));var Z;return this.type==="encrypt"?Z=this._finalEncrypt():Z=this._finalDecrypt(),$?$.concat(Z):Z},G.prototype._pad=function(Y,$){if($===0)return!1;for(;$>>1];H=Y.r28shl(H,w0),y0=Y.r28shl(y0,w0),Y.pc2(H,y0,V.keys,W)}},Q.prototype._update=function(V,B0,H,y0){var W=this._desState,w0=Y.readUInt32BE(V,B0),E=Y.readUInt32BE(V,B0+4);Y.ip(w0,E,W.tmp,0),w0=W.tmp[0],E=W.tmp[1],this.type==="encrypt"?this._encrypt(W,w0,E,W.tmp,0):this._decrypt(W,w0,E,W.tmp,0),w0=W.tmp[0],E=W.tmp[1],Y.writeUInt32BE(H,w0,y0),Y.writeUInt32BE(H,E,y0+4)},Q.prototype._pad=function(V,B0){for(var H=V.length-B0,y0=B0;y0>>0,w0=C}Y.rip(E,w0,y0,W)},Q.prototype._decrypt=function(V,B0,H,y0,W){for(var w0=H,E=B0,p0=V.keys.length-2;p0>=0;p0-=2){var T=V.keys[p0],f0=V.keys[p0+1];Y.expand(w0,V.tmp,0),T^=V.tmp[0],f0^=V.tmp[1];var D=Y.substitute(T,f0),c0=Y.permute(D),C=w0;w0=(E^c0)>>>0,E=C}Y.rip(w0,E,y0,W)}}}),XQ=$Q({"node_modules/des.js/lib/des/cbc.js"(X){var K=N0(),x0=X0(),G={};function Y(Z){K.equal(Z.length,8,"Invalid IV length"),this.iv=new Array(8);for(var Q=0;Q>U%8,Y._prev=G(Y._prev,Z?H:y0);return B0}function G(Y,$){var Z=Y.length,Q=-1,U=K.allocUnsafe(Y.length);for(Y=K.concat([Y,K.from([$])]);++Q>7;return U}X.encrypt=function(Y,$,Z){for(var Q=$.length,U=K.allocUnsafe(Q),V=-1;++V>>24]^E[D>>>16&255]^p0[c0>>>8&255]^T[C&255]^B0[b0++],L=w0[D>>>24]^E[c0>>>16&255]^p0[C>>>8&255]^T[f0&255]^B0[b0++],d0=w0[c0>>>24]^E[C>>>16&255]^p0[f0>>>8&255]^T[D&255]^B0[b0++],R=w0[C>>>24]^E[f0>>>16&255]^p0[D>>>8&255]^T[c0&255]^B0[b0++],f0=h0,D=L,c0=d0,C=R;return h0=(y0[f0>>>24]<<24|y0[D>>>16&255]<<16|y0[c0>>>8&255]<<8|y0[C&255])^B0[b0++],L=(y0[D>>>24]<<24|y0[c0>>>16&255]<<16|y0[C>>>8&255]<<8|y0[f0&255])^B0[b0++],d0=(y0[c0>>>24]<<24|y0[C>>>16&255]<<16|y0[f0>>>8&255]<<8|y0[D&255])^B0[b0++],R=(y0[C>>>24]<<24|y0[f0>>>16&255]<<16|y0[D>>>8&255]<<8|y0[c0&255])^B0[b0++],h0=h0>>>0,L=L>>>0,d0=d0>>>0,R=R>>>0,[h0,L,d0,R]}var Z=[0,1,2,4,8,16,32,64,128,27,54],Q=function(){for(var V=new Array(256),B0=0;B0<256;B0++)B0<128?V[B0]=B0<<1:V[B0]=B0<<1^283;for(var H=[],y0=[],W=[[],[],[],[]],w0=[[],[],[],[]],E=0,p0=0,T=0;T<256;++T){var f0=p0^p0<<1^p0<<2^p0<<3^p0<<4;f0=f0>>>8^f0&255^99,H[E]=f0,y0[f0]=E;var D=V[E],c0=V[D],C=V[c0],h0=V[f0]*257^f0*16843008;W[0][E]=h0<<24|h0>>>8,W[1][E]=h0<<16|h0>>>16,W[2][E]=h0<<8|h0>>>24,W[3][E]=h0,h0=C*16843009^c0*65537^D*257^E*16843008,w0[0][f0]=h0<<24|h0>>>8,w0[1][f0]=h0<<16|h0>>>16,w0[2][f0]=h0<<8|h0>>>24,w0[3][f0]=h0,E===0?E=p0=1:(E=D^V[V[V[C^D]]],p0^=V[V[p0]])}return{SBOX:H,INV_SBOX:y0,SUB_MIX:W,INV_SUB_MIX:w0}}();function U(V){this._key=G(V),this._reset()}U.blockSize=16,U.keySize=32,U.prototype.blockSize=U.blockSize,U.prototype.keySize=U.keySize,U.prototype._reset=function(){for(var V=this._key,B0=V.length,H=B0+6,y0=(H+1)*4,W=[],w0=0;w0>>24,E=Q.SBOX[E>>>24]<<24|Q.SBOX[E>>>16&255]<<16|Q.SBOX[E>>>8&255]<<8|Q.SBOX[E&255],E^=Z[w0/B0|0]<<24):B0>6&&w0%B0===4&&(E=Q.SBOX[E>>>24]<<24|Q.SBOX[E>>>16&255]<<16|Q.SBOX[E>>>8&255]<<8|Q.SBOX[E&255]),W[w0]=W[w0-B0]^E}for(var p0=[],T=0;T>>24]]^Q.INV_SUB_MIX[1][Q.SBOX[D>>>16&255]]^Q.INV_SUB_MIX[2][Q.SBOX[D>>>8&255]]^Q.INV_SUB_MIX[3][Q.SBOX[D&255]]}this._nRounds=H,this._keySchedule=W,this._invKeySchedule=p0},U.prototype.encryptBlockRaw=function(V){return V=G(V),$(V,this._keySchedule,Q.SUB_MIX,Q.SBOX,this._nRounds)},U.prototype.encryptBlock=function(V){var B0=this.encryptBlockRaw(V),H=x0.allocUnsafe(16);return H.writeUInt32BE(B0[0],0),H.writeUInt32BE(B0[1],4),H.writeUInt32BE(B0[2],8),H.writeUInt32BE(B0[3],12),H},U.prototype.decryptBlock=function(V){V=G(V);var B0=V[1];V[1]=V[3],V[3]=B0;var H=$(V,this._invKeySchedule,Q.INV_SUB_MIX,Q.INV_SBOX,this._nRounds),y0=x0.allocUnsafe(16);return y0.writeUInt32BE(H[0],0),y0.writeUInt32BE(H[3],4),y0.writeUInt32BE(H[2],8),y0.writeUInt32BE(H[1],12),y0},U.prototype.scrub=function(){Y(this._keySchedule),Y(this._invKeySchedule),Y(this._key)},K.exports.AES=U}}),PQ=$Q({"node_modules/browserify-aes/ghash.js"(X,K){var x0=YQ().Buffer,G=x0.alloc(16,0);function Y(Q){return[Q.readUInt32BE(0),Q.readUInt32BE(4),Q.readUInt32BE(8),Q.readUInt32BE(12)]}function $(Q){var U=x0.allocUnsafe(16);return U.writeUInt32BE(Q[0]>>>0,0),U.writeUInt32BE(Q[1]>>>0,4),U.writeUInt32BE(Q[2]>>>0,8),U.writeUInt32BE(Q[3]>>>0,12),U}function Z(Q){this.h=Q,this.state=x0.alloc(16,0),this.cache=x0.allocUnsafe(0)}Z.prototype.ghash=function(Q){for(var U=-1;++U0;V--)Q[V]=Q[V]>>>1|(Q[V-1]&1)<<31;Q[0]=Q[0]>>>1,H&&(Q[0]=Q[0]^225<<24)}this.state=$(U)},Z.prototype.update=function(Q){this.cache=x0.concat([this.cache,Q]);for(var U;this.cache.length>=16;)U=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(U)},Z.prototype.final=function(Q,U){return this.cache.length&&this.ghash(x0.concat([this.cache,G],16)),this.ghash($([0,Q,0,U])),this.state},K.exports=Z}}),zQ=$Q({"node_modules/browserify-aes/authCipher.js"(X,K){var x0=RQ(),G=YQ().Buffer,Y=C0(),$=X0(),Z=PQ(),Q=FQ(),U=DQ();function V(y0,W){var w0=0;y0.length!==W.length&&w0++;for(var E=Math.min(y0.length,W.length),p0=0;p00||U>0;){var W=new G;W.update(y0),W.update($),Z&&W.update(Z),y0=W.digest();var w0=0;if(V>0){var E=B0.length-V;w0=Math.min(V,y0.length),y0.copy(B0,E,0,w0),V-=w0}if(w00){var p0=H.length-U,T=Math.min(U,y0.length-w0);y0.copy(H,p0,w0,w0+T),U-=T}}return y0.fill(0),{key:B0,iv:H}}K.exports=Y}}),vQ=$Q({"node_modules/browserify-aes/encrypter.js"(X){var K=LQ(),x0=zQ(),G=YQ().Buffer,Y=MQ(),$=C0(),Z=RQ(),Q=SQ(),U=X0();function V(w0,E,p0){$.call(this),this._cache=new H,this._cipher=new Z.AES(E),this._prev=G.from(p0),this._mode=w0,this._autopadding=!0}U(V,$),V.prototype._update=function(w0){this._cache.add(w0);for(var E,p0,T=[];E=this._cache.get();)p0=this._mode.encrypt(this,E),T.push(p0);return G.concat(T)};var B0=G.alloc(16,16);V.prototype._final=function(){var w0=this._cache.flush();if(this._autopadding)return w0=this._mode.encrypt(this,w0),this._cipher.scrub(),w0;if(!w0.equals(B0))throw this._cipher.scrub(),new Error("data not multiple of block length")},V.prototype.setAutoPadding=function(w0){return this._autopadding=!!w0,this};function H(){this.cache=G.allocUnsafe(0)}H.prototype.add=function(w0){this.cache=G.concat([this.cache,w0])},H.prototype.get=function(){if(this.cache.length>15){var w0=this.cache.slice(0,16);return this.cache=this.cache.slice(16),w0}return null},H.prototype.flush=function(){for(var w0=16-this.cache.length,E=G.allocUnsafe(w0),p0=-1;++p016)return E=this.cache.slice(0,16),this.cache=this.cache.slice(16),E}else if(this.cache.length>=16)return E=this.cache.slice(0,16),this.cache=this.cache.slice(16),E;return null},B0.prototype.flush=function(){if(this.cache.length)return this.cache};function H(w0){var E=w0[15];if(E<1||E>16)throw new Error("unable to decrypt data");for(var p0=-1;++p00?l0:z},Z.min=function(l0,z){return l0.cmp(z)<0?l0:z},Z.prototype._init=function(l0,z,o0){if(typeof l0=="number")return this._initNumber(l0,z,o0);if(typeof l0=="object")return this._initArray(l0,z,o0);z==="hex"&&(z=16),Y(z===(z|0)&&z>=2&&z<=36),l0=l0.toString().replace(/\s+/g,"");var M=0;l0[0]==="-"&&(M++,this.negative=1),M=0;M-=3)S=l0[M]|l0[M-1]<<8|l0[M-2]<<16,this.words[u0]|=S<>>26-n0&67108863,n0+=24,n0>=26&&(n0-=26,u0++);else if(o0==="le")for(M=0,u0=0;M>>26-n0&67108863,n0+=24,n0>=26&&(n0-=26,u0++);return this.strip()};function U(l0,z){var o0=l0.charCodeAt(z);return o0>=65&&o0<=70?o0-55:o0>=97&&o0<=102?o0-87:o0-48&15}function V(l0,z,o0){var M=U(l0,o0);return o0-1>=z&&(M|=U(l0,o0-1)<<4),M}Z.prototype._parseHex=function(l0,z,o0){this.length=Math.ceil((l0.length-z)/6),this.words=new Array(this.length);for(var M=0;M=z;M-=2)n0=V(l0,z,M)<=18?(u0-=18,S+=1,this.words[S]|=n0>>>26):u0+=8;else{var v=l0.length-z;for(M=v%2===0?z+1:z;M=18?(u0-=18,S+=1,this.words[S]|=n0>>>26):u0+=8}this.strip()};function B0(l0,z,o0,M){for(var u0=0,S=Math.min(l0.length,o0),n0=z;n0=49?u0+=v-49+10:v>=17?u0+=v-17+10:u0+=v}return u0}Z.prototype._parseBase=function(l0,z,o0){this.words=[0],this.length=1;for(var M=0,u0=1;u0<=67108863;u0*=z)M++;M--,u0=u0/z|0;for(var S=l0.length-o0,n0=S%M,v=Math.min(S,S-n0)+o0,s0=0,I=o0;I1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},Z.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},Z.prototype.inspect=function(){return(this.red?""};var H=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y0=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],W=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];Z.prototype.toString=function(l0,z){l0=l0||10,z=z|0||1;var o0;if(l0===16||l0==="hex"){o0="";for(var M=0,u0=0,S=0;S>>24-M&16777215,u0!==0||S!==this.length-1?o0=H[6-v.length]+v+o0:o0=v+o0,M+=2,M>=26&&(M-=26,S--)}for(u0!==0&&(o0=u0.toString(16)+o0);o0.length%z!==0;)o0="0"+o0;return this.negative!==0&&(o0="-"+o0),o0}if(l0===(l0|0)&&l0>=2&&l0<=36){var s0=y0[l0],I=W[l0];o0="";var t0=this.clone();for(t0.negative=0;!t0.isZero();){var m0=t0.modn(I).toString(l0);t0=t0.idivn(I),t0.isZero()?o0=m0+o0:o0=H[s0-m0.length]+m0+o0}for(this.isZero()&&(o0="0"+o0);o0.length%z!==0;)o0="0"+o0;return this.negative!==0&&(o0="-"+o0),o0}Y(!1,"Base should be between 2 and 36")},Z.prototype.toNumber=function(){var l0=this.words[0];return this.length===2?l0+=this.words[1]*67108864:this.length===3&&this.words[2]===1?l0+=4503599627370496+this.words[1]*67108864:this.length>2&&Y(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-l0:l0},Z.prototype.toJSON=function(){return this.toString(16)},Z.prototype.toBuffer=function(l0,z){return Y(typeof Q<"u"),this.toArrayLike(Q,l0,z)},Z.prototype.toArray=function(l0,z){return this.toArrayLike(Array,l0,z)},Z.prototype.toArrayLike=function(l0,z,o0){var M=this.byteLength(),u0=o0||Math.max(1,M);Y(M<=u0,"byte array longer than desired length"),Y(u0>0,"Requested array length <= 0"),this.strip();var S=z==="le",n0=new l0(u0),v,s0,I=this.clone();if(S){for(s0=0;!I.isZero();s0++)v=I.andln(255),I.iushrn(8),n0[s0]=v;for(;s0=4096&&(o0+=13,z>>>=13),z>=64&&(o0+=7,z>>>=7),z>=8&&(o0+=4,z>>>=4),z>=2&&(o0+=2,z>>>=2),o0+z},Z.prototype._zeroBits=function(l0){if(l0===0)return 26;var z=l0,o0=0;return(z&8191)===0&&(o0+=13,z>>>=13),(z&127)===0&&(o0+=7,z>>>=7),(z&15)===0&&(o0+=4,z>>>=4),(z&3)===0&&(o0+=2,z>>>=2),(z&1)===0&&o0++,o0},Z.prototype.bitLength=function(){var l0=this.words[this.length-1],z=this._countBits(l0);return(this.length-1)*26+z};function w0(l0){for(var z=new Array(l0.bitLength()),o0=0;o0>>u0}return z}Z.prototype.zeroBits=function(){if(this.isZero())return 0;for(var l0=0,z=0;zl0.length?this.clone().ior(l0):l0.clone().ior(this)},Z.prototype.uor=function(l0){return this.length>l0.length?this.clone().iuor(l0):l0.clone().iuor(this)},Z.prototype.iuand=function(l0){var z;this.length>l0.length?z=l0:z=this;for(var o0=0;o0l0.length?this.clone().iand(l0):l0.clone().iand(this)},Z.prototype.uand=function(l0){return this.length>l0.length?this.clone().iuand(l0):l0.clone().iuand(this)},Z.prototype.iuxor=function(l0){var z,o0;this.length>l0.length?(z=this,o0=l0):(z=l0,o0=this);for(var M=0;Ml0.length?this.clone().ixor(l0):l0.clone().ixor(this)},Z.prototype.uxor=function(l0){return this.length>l0.length?this.clone().iuxor(l0):l0.clone().iuxor(this)},Z.prototype.inotn=function(l0){Y(typeof l0=="number"&&l0>=0);var z=Math.ceil(l0/26)|0,o0=l0%26;this._expand(z),o0>0&&z--;for(var M=0;M0&&(this.words[M]=~this.words[M]&67108863>>26-o0),this.strip()},Z.prototype.notn=function(l0){return this.clone().inotn(l0)},Z.prototype.setn=function(l0,z){Y(typeof l0=="number"&&l0>=0);var o0=l0/26|0,M=l0%26;return this._expand(o0+1),z?this.words[o0]=this.words[o0]|1<l0.length?(o0=this,M=l0):(o0=l0,M=this);for(var u0=0,S=0;S>>26;for(;u0!==0&&S>>26;if(this.length=o0.length,u0!==0)this.words[this.length]=u0,this.length++;else if(o0!==this)for(;Sl0.length?this.clone().iadd(l0):l0.clone().iadd(this)},Z.prototype.isub=function(l0){if(l0.negative!==0){l0.negative=0;var z=this.iadd(l0);return l0.negative=1,z._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(l0),this.negative=1,this._normSign();var o0=this.cmp(l0);if(o0===0)return this.negative=0,this.length=1,this.words[0]=0,this;var M,u0;o0>0?(M=this,u0=l0):(M=l0,u0=this);for(var S=0,n0=0;n0>26,this.words[n0]=z&67108863;for(;S!==0&&n0>26,this.words[n0]=z&67108863;if(S===0&&n0>>26,m0=s0&67108863,a0=Math.min(I,z.length-1),q=Math.max(0,I-l0.length+1);q<=a0;q++){var e0=I-q|0;u0=l0.words[e0]|0,S=z.words[q]|0,n0=u0*S+m0,t0+=n0/67108864|0,m0=n0&67108863}o0.words[I]=m0|0,s0=t0|0}return s0!==0?o0.words[I]=s0|0:o0.length--,o0.strip()}var p0=function(l0,z,o0){var M=l0.words,u0=z.words,S=o0.words,n0=0,v,s0,I,t0=M[0]|0,m0=t0&8191,a0=t0>>>13,q=M[1]|0,e0=q&8191,r0=q>>>13,i0=M[2]|0,j=i0&8191,$$=i0>>>13,k=M[3]|0,Q$=k&8191,g=k>>>13,Y$=M[4]|0,_=Y$&8191,Z$=Y$>>>13,N=M[5]|0,G$=N&8191,x=N>>>13,V$=M[6]|0,B=V$&8191,U$=V$>>>13,y=M[7]|0,X$=y&8191,w=y>>>13,K$=M[8]|0,p=K$&8191,I$=K$>>>13,f=M[9]|0,O$=f&8191,c=f>>>13,J$=u0[0]|0,h=J$&8191,F$=J$>>>13,d=u0[1]|0,A$=d&8191,b=d>>>13,H$=u0[2]|0,l=H$&8191,W$=H$>>>13,o=u0[3]|0,E$=o&8191,u=o>>>13,T$=u0[4]|0,n=T$&8191,D$=T$>>>13,s=u0[5]|0,C$=s&8191,t=s>>>13,L$=u0[6]|0,m=L$&8191,R$=L$>>>13,a=u0[7]|0,P$=a&8191,O=a>>>13,z$=u0[8]|0,e=z$&8191,M$=z$>>>13,J=u0[9]|0,S$=J&8191,F=J>>>13;o0.negative=l0.negative^z.negative,o0.length=19,v=Math.imul(m0,h),s0=Math.imul(m0,F$),s0=s0+Math.imul(a0,h)|0,I=Math.imul(a0,F$);var v$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(v$>>>26)|0,v$&=67108863,v=Math.imul(e0,h),s0=Math.imul(e0,F$),s0=s0+Math.imul(r0,h)|0,I=Math.imul(r0,F$),v=v+Math.imul(m0,A$)|0,s0=s0+Math.imul(m0,b)|0,s0=s0+Math.imul(a0,A$)|0,I=I+Math.imul(a0,b)|0;var r=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(r>>>26)|0,r&=67108863,v=Math.imul(j,h),s0=Math.imul(j,F$),s0=s0+Math.imul($$,h)|0,I=Math.imul($$,F$),v=v+Math.imul(e0,A$)|0,s0=s0+Math.imul(e0,b)|0,s0=s0+Math.imul(r0,A$)|0,I=I+Math.imul(r0,b)|0,v=v+Math.imul(m0,l)|0,s0=s0+Math.imul(m0,W$)|0,s0=s0+Math.imul(a0,l)|0,I=I+Math.imul(a0,W$)|0;var q$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(q$>>>26)|0,q$&=67108863,v=Math.imul(Q$,h),s0=Math.imul(Q$,F$),s0=s0+Math.imul(g,h)|0,I=Math.imul(g,F$),v=v+Math.imul(j,A$)|0,s0=s0+Math.imul(j,b)|0,s0=s0+Math.imul($$,A$)|0,I=I+Math.imul($$,b)|0,v=v+Math.imul(e0,l)|0,s0=s0+Math.imul(e0,W$)|0,s0=s0+Math.imul(r0,l)|0,I=I+Math.imul(r0,W$)|0,v=v+Math.imul(m0,E$)|0,s0=s0+Math.imul(m0,u)|0,s0=s0+Math.imul(a0,E$)|0,I=I+Math.imul(a0,u)|0;var i=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(i>>>26)|0,i&=67108863,v=Math.imul(_,h),s0=Math.imul(_,F$),s0=s0+Math.imul(Z$,h)|0,I=Math.imul(Z$,F$),v=v+Math.imul(Q$,A$)|0,s0=s0+Math.imul(Q$,b)|0,s0=s0+Math.imul(g,A$)|0,I=I+Math.imul(g,b)|0,v=v+Math.imul(j,l)|0,s0=s0+Math.imul(j,W$)|0,s0=s0+Math.imul($$,l)|0,I=I+Math.imul($$,W$)|0,v=v+Math.imul(e0,E$)|0,s0=s0+Math.imul(e0,u)|0,s0=s0+Math.imul(r0,E$)|0,I=I+Math.imul(r0,u)|0,v=v+Math.imul(m0,n)|0,s0=s0+Math.imul(m0,D$)|0,s0=s0+Math.imul(a0,n)|0,I=I+Math.imul(a0,D$)|0;var j$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(j$>>>26)|0,j$&=67108863,v=Math.imul(G$,h),s0=Math.imul(G$,F$),s0=s0+Math.imul(x,h)|0,I=Math.imul(x,F$),v=v+Math.imul(_,A$)|0,s0=s0+Math.imul(_,b)|0,s0=s0+Math.imul(Z$,A$)|0,I=I+Math.imul(Z$,b)|0,v=v+Math.imul(Q$,l)|0,s0=s0+Math.imul(Q$,W$)|0,s0=s0+Math.imul(g,l)|0,I=I+Math.imul(g,W$)|0,v=v+Math.imul(j,E$)|0,s0=s0+Math.imul(j,u)|0,s0=s0+Math.imul($$,E$)|0,I=I+Math.imul($$,u)|0,v=v+Math.imul(e0,n)|0,s0=s0+Math.imul(e0,D$)|0,s0=s0+Math.imul(r0,n)|0,I=I+Math.imul(r0,D$)|0,v=v+Math.imul(m0,C$)|0,s0=s0+Math.imul(m0,t)|0,s0=s0+Math.imul(a0,C$)|0,I=I+Math.imul(a0,t)|0;var k$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(k$>>>26)|0,k$&=67108863,v=Math.imul(B,h),s0=Math.imul(B,F$),s0=s0+Math.imul(U$,h)|0,I=Math.imul(U$,F$),v=v+Math.imul(G$,A$)|0,s0=s0+Math.imul(G$,b)|0,s0=s0+Math.imul(x,A$)|0,I=I+Math.imul(x,b)|0,v=v+Math.imul(_,l)|0,s0=s0+Math.imul(_,W$)|0,s0=s0+Math.imul(Z$,l)|0,I=I+Math.imul(Z$,W$)|0,v=v+Math.imul(Q$,E$)|0,s0=s0+Math.imul(Q$,u)|0,s0=s0+Math.imul(g,E$)|0,I=I+Math.imul(g,u)|0,v=v+Math.imul(j,n)|0,s0=s0+Math.imul(j,D$)|0,s0=s0+Math.imul($$,n)|0,I=I+Math.imul($$,D$)|0,v=v+Math.imul(e0,C$)|0,s0=s0+Math.imul(e0,t)|0,s0=s0+Math.imul(r0,C$)|0,I=I+Math.imul(r0,t)|0,v=v+Math.imul(m0,m)|0,s0=s0+Math.imul(m0,R$)|0,s0=s0+Math.imul(a0,m)|0,I=I+Math.imul(a0,R$)|0;var g$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(g$>>>26)|0,g$&=67108863,v=Math.imul(X$,h),s0=Math.imul(X$,F$),s0=s0+Math.imul(w,h)|0,I=Math.imul(w,F$),v=v+Math.imul(B,A$)|0,s0=s0+Math.imul(B,b)|0,s0=s0+Math.imul(U$,A$)|0,I=I+Math.imul(U$,b)|0,v=v+Math.imul(G$,l)|0,s0=s0+Math.imul(G$,W$)|0,s0=s0+Math.imul(x,l)|0,I=I+Math.imul(x,W$)|0,v=v+Math.imul(_,E$)|0,s0=s0+Math.imul(_,u)|0,s0=s0+Math.imul(Z$,E$)|0,I=I+Math.imul(Z$,u)|0,v=v+Math.imul(Q$,n)|0,s0=s0+Math.imul(Q$,D$)|0,s0=s0+Math.imul(g,n)|0,I=I+Math.imul(g,D$)|0,v=v+Math.imul(j,C$)|0,s0=s0+Math.imul(j,t)|0,s0=s0+Math.imul($$,C$)|0,I=I+Math.imul($$,t)|0,v=v+Math.imul(e0,m)|0,s0=s0+Math.imul(e0,R$)|0,s0=s0+Math.imul(r0,m)|0,I=I+Math.imul(r0,R$)|0,v=v+Math.imul(m0,P$)|0,s0=s0+Math.imul(m0,O)|0,s0=s0+Math.imul(a0,P$)|0,I=I+Math.imul(a0,O)|0;var _$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(_$>>>26)|0,_$&=67108863,v=Math.imul(p,h),s0=Math.imul(p,F$),s0=s0+Math.imul(I$,h)|0,I=Math.imul(I$,F$),v=v+Math.imul(X$,A$)|0,s0=s0+Math.imul(X$,b)|0,s0=s0+Math.imul(w,A$)|0,I=I+Math.imul(w,b)|0,v=v+Math.imul(B,l)|0,s0=s0+Math.imul(B,W$)|0,s0=s0+Math.imul(U$,l)|0,I=I+Math.imul(U$,W$)|0,v=v+Math.imul(G$,E$)|0,s0=s0+Math.imul(G$,u)|0,s0=s0+Math.imul(x,E$)|0,I=I+Math.imul(x,u)|0,v=v+Math.imul(_,n)|0,s0=s0+Math.imul(_,D$)|0,s0=s0+Math.imul(Z$,n)|0,I=I+Math.imul(Z$,D$)|0,v=v+Math.imul(Q$,C$)|0,s0=s0+Math.imul(Q$,t)|0,s0=s0+Math.imul(g,C$)|0,I=I+Math.imul(g,t)|0,v=v+Math.imul(j,m)|0,s0=s0+Math.imul(j,R$)|0,s0=s0+Math.imul($$,m)|0,I=I+Math.imul($$,R$)|0,v=v+Math.imul(e0,P$)|0,s0=s0+Math.imul(e0,O)|0,s0=s0+Math.imul(r0,P$)|0,I=I+Math.imul(r0,O)|0,v=v+Math.imul(m0,e)|0,s0=s0+Math.imul(m0,M$)|0,s0=s0+Math.imul(a0,e)|0,I=I+Math.imul(a0,M$)|0;var N$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(N$>>>26)|0,N$&=67108863,v=Math.imul(O$,h),s0=Math.imul(O$,F$),s0=s0+Math.imul(c,h)|0,I=Math.imul(c,F$),v=v+Math.imul(p,A$)|0,s0=s0+Math.imul(p,b)|0,s0=s0+Math.imul(I$,A$)|0,I=I+Math.imul(I$,b)|0,v=v+Math.imul(X$,l)|0,s0=s0+Math.imul(X$,W$)|0,s0=s0+Math.imul(w,l)|0,I=I+Math.imul(w,W$)|0,v=v+Math.imul(B,E$)|0,s0=s0+Math.imul(B,u)|0,s0=s0+Math.imul(U$,E$)|0,I=I+Math.imul(U$,u)|0,v=v+Math.imul(G$,n)|0,s0=s0+Math.imul(G$,D$)|0,s0=s0+Math.imul(x,n)|0,I=I+Math.imul(x,D$)|0,v=v+Math.imul(_,C$)|0,s0=s0+Math.imul(_,t)|0,s0=s0+Math.imul(Z$,C$)|0,I=I+Math.imul(Z$,t)|0,v=v+Math.imul(Q$,m)|0,s0=s0+Math.imul(Q$,R$)|0,s0=s0+Math.imul(g,m)|0,I=I+Math.imul(g,R$)|0,v=v+Math.imul(j,P$)|0,s0=s0+Math.imul(j,O)|0,s0=s0+Math.imul($$,P$)|0,I=I+Math.imul($$,O)|0,v=v+Math.imul(e0,e)|0,s0=s0+Math.imul(e0,M$)|0,s0=s0+Math.imul(r0,e)|0,I=I+Math.imul(r0,M$)|0,v=v+Math.imul(m0,S$)|0,s0=s0+Math.imul(m0,F)|0,s0=s0+Math.imul(a0,S$)|0,I=I+Math.imul(a0,F)|0;var $0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+($0>>>26)|0,$0&=67108863,v=Math.imul(O$,A$),s0=Math.imul(O$,b),s0=s0+Math.imul(c,A$)|0,I=Math.imul(c,b),v=v+Math.imul(p,l)|0,s0=s0+Math.imul(p,W$)|0,s0=s0+Math.imul(I$,l)|0,I=I+Math.imul(I$,W$)|0,v=v+Math.imul(X$,E$)|0,s0=s0+Math.imul(X$,u)|0,s0=s0+Math.imul(w,E$)|0,I=I+Math.imul(w,u)|0,v=v+Math.imul(B,n)|0,s0=s0+Math.imul(B,D$)|0,s0=s0+Math.imul(U$,n)|0,I=I+Math.imul(U$,D$)|0,v=v+Math.imul(G$,C$)|0,s0=s0+Math.imul(G$,t)|0,s0=s0+Math.imul(x,C$)|0,I=I+Math.imul(x,t)|0,v=v+Math.imul(_,m)|0,s0=s0+Math.imul(_,R$)|0,s0=s0+Math.imul(Z$,m)|0,I=I+Math.imul(Z$,R$)|0,v=v+Math.imul(Q$,P$)|0,s0=s0+Math.imul(Q$,O)|0,s0=s0+Math.imul(g,P$)|0,I=I+Math.imul(g,O)|0,v=v+Math.imul(j,e)|0,s0=s0+Math.imul(j,M$)|0,s0=s0+Math.imul($$,e)|0,I=I+Math.imul($$,M$)|0,v=v+Math.imul(e0,S$)|0,s0=s0+Math.imul(e0,F)|0,s0=s0+Math.imul(r0,S$)|0,I=I+Math.imul(r0,F)|0;var x$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(x$>>>26)|0,x$&=67108863,v=Math.imul(O$,l),s0=Math.imul(O$,W$),s0=s0+Math.imul(c,l)|0,I=Math.imul(c,W$),v=v+Math.imul(p,E$)|0,s0=s0+Math.imul(p,u)|0,s0=s0+Math.imul(I$,E$)|0,I=I+Math.imul(I$,u)|0,v=v+Math.imul(X$,n)|0,s0=s0+Math.imul(X$,D$)|0,s0=s0+Math.imul(w,n)|0,I=I+Math.imul(w,D$)|0,v=v+Math.imul(B,C$)|0,s0=s0+Math.imul(B,t)|0,s0=s0+Math.imul(U$,C$)|0,I=I+Math.imul(U$,t)|0,v=v+Math.imul(G$,m)|0,s0=s0+Math.imul(G$,R$)|0,s0=s0+Math.imul(x,m)|0,I=I+Math.imul(x,R$)|0,v=v+Math.imul(_,P$)|0,s0=s0+Math.imul(_,O)|0,s0=s0+Math.imul(Z$,P$)|0,I=I+Math.imul(Z$,O)|0,v=v+Math.imul(Q$,e)|0,s0=s0+Math.imul(Q$,M$)|0,s0=s0+Math.imul(g,e)|0,I=I+Math.imul(g,M$)|0,v=v+Math.imul(j,S$)|0,s0=s0+Math.imul(j,F)|0,s0=s0+Math.imul($$,S$)|0,I=I+Math.imul($$,F)|0;var Q0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Q0>>>26)|0,Q0&=67108863,v=Math.imul(O$,E$),s0=Math.imul(O$,u),s0=s0+Math.imul(c,E$)|0,I=Math.imul(c,u),v=v+Math.imul(p,n)|0,s0=s0+Math.imul(p,D$)|0,s0=s0+Math.imul(I$,n)|0,I=I+Math.imul(I$,D$)|0,v=v+Math.imul(X$,C$)|0,s0=s0+Math.imul(X$,t)|0,s0=s0+Math.imul(w,C$)|0,I=I+Math.imul(w,t)|0,v=v+Math.imul(B,m)|0,s0=s0+Math.imul(B,R$)|0,s0=s0+Math.imul(U$,m)|0,I=I+Math.imul(U$,R$)|0,v=v+Math.imul(G$,P$)|0,s0=s0+Math.imul(G$,O)|0,s0=s0+Math.imul(x,P$)|0,I=I+Math.imul(x,O)|0,v=v+Math.imul(_,e)|0,s0=s0+Math.imul(_,M$)|0,s0=s0+Math.imul(Z$,e)|0,I=I+Math.imul(Z$,M$)|0,v=v+Math.imul(Q$,S$)|0,s0=s0+Math.imul(Q$,F)|0,s0=s0+Math.imul(g,S$)|0,I=I+Math.imul(g,F)|0;var B$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(B$>>>26)|0,B$&=67108863,v=Math.imul(O$,n),s0=Math.imul(O$,D$),s0=s0+Math.imul(c,n)|0,I=Math.imul(c,D$),v=v+Math.imul(p,C$)|0,s0=s0+Math.imul(p,t)|0,s0=s0+Math.imul(I$,C$)|0,I=I+Math.imul(I$,t)|0,v=v+Math.imul(X$,m)|0,s0=s0+Math.imul(X$,R$)|0,s0=s0+Math.imul(w,m)|0,I=I+Math.imul(w,R$)|0,v=v+Math.imul(B,P$)|0,s0=s0+Math.imul(B,O)|0,s0=s0+Math.imul(U$,P$)|0,I=I+Math.imul(U$,O)|0,v=v+Math.imul(G$,e)|0,s0=s0+Math.imul(G$,M$)|0,s0=s0+Math.imul(x,e)|0,I=I+Math.imul(x,M$)|0,v=v+Math.imul(_,S$)|0,s0=s0+Math.imul(_,F)|0,s0=s0+Math.imul(Z$,S$)|0,I=I+Math.imul(Z$,F)|0;var Y0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Y0>>>26)|0,Y0&=67108863,v=Math.imul(O$,C$),s0=Math.imul(O$,t),s0=s0+Math.imul(c,C$)|0,I=Math.imul(c,t),v=v+Math.imul(p,m)|0,s0=s0+Math.imul(p,R$)|0,s0=s0+Math.imul(I$,m)|0,I=I+Math.imul(I$,R$)|0,v=v+Math.imul(X$,P$)|0,s0=s0+Math.imul(X$,O)|0,s0=s0+Math.imul(w,P$)|0,I=I+Math.imul(w,O)|0,v=v+Math.imul(B,e)|0,s0=s0+Math.imul(B,M$)|0,s0=s0+Math.imul(U$,e)|0,I=I+Math.imul(U$,M$)|0,v=v+Math.imul(G$,S$)|0,s0=s0+Math.imul(G$,F)|0,s0=s0+Math.imul(x,S$)|0,I=I+Math.imul(x,F)|0;var y$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(y$>>>26)|0,y$&=67108863,v=Math.imul(O$,m),s0=Math.imul(O$,R$),s0=s0+Math.imul(c,m)|0,I=Math.imul(c,R$),v=v+Math.imul(p,P$)|0,s0=s0+Math.imul(p,O)|0,s0=s0+Math.imul(I$,P$)|0,I=I+Math.imul(I$,O)|0,v=v+Math.imul(X$,e)|0,s0=s0+Math.imul(X$,M$)|0,s0=s0+Math.imul(w,e)|0,I=I+Math.imul(w,M$)|0,v=v+Math.imul(B,S$)|0,s0=s0+Math.imul(B,F)|0,s0=s0+Math.imul(U$,S$)|0,I=I+Math.imul(U$,F)|0;var Z0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Z0>>>26)|0,Z0&=67108863,v=Math.imul(O$,P$),s0=Math.imul(O$,O),s0=s0+Math.imul(c,P$)|0,I=Math.imul(c,O),v=v+Math.imul(p,e)|0,s0=s0+Math.imul(p,M$)|0,s0=s0+Math.imul(I$,e)|0,I=I+Math.imul(I$,M$)|0,v=v+Math.imul(X$,S$)|0,s0=s0+Math.imul(X$,F)|0,s0=s0+Math.imul(w,S$)|0,I=I+Math.imul(w,F)|0;var w$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(w$>>>26)|0,w$&=67108863,v=Math.imul(O$,e),s0=Math.imul(O$,M$),s0=s0+Math.imul(c,e)|0,I=Math.imul(c,M$),v=v+Math.imul(p,S$)|0,s0=s0+Math.imul(p,F)|0,s0=s0+Math.imul(I$,S$)|0,I=I+Math.imul(I$,F)|0;var G0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(G0>>>26)|0,G0&=67108863,v=Math.imul(O$,S$),s0=Math.imul(O$,F),s0=s0+Math.imul(c,S$)|0,I=Math.imul(c,F);var p$=(n0+v|0)+((s0&8191)<<13)|0;return n0=(I+(s0>>>13)|0)+(p$>>>26)|0,p$&=67108863,S[0]=v$,S[1]=r,S[2]=q$,S[3]=i,S[4]=j$,S[5]=k$,S[6]=g$,S[7]=_$,S[8]=N$,S[9]=$0,S[10]=x$,S[11]=Q0,S[12]=B$,S[13]=Y0,S[14]=y$,S[15]=Z0,S[16]=w$,S[17]=G0,S[18]=p$,n0!==0&&(S[19]=n0,o0.length++),o0};Math.imul||(p0=E);function T(l0,z,o0){o0.negative=z.negative^l0.negative,o0.length=l0.length+z.length;for(var M=0,u0=0,S=0;S>>26)|0,u0+=n0>>>26,n0&=67108863}o0.words[S]=v,M=n0,n0=u0}return M!==0?o0.words[S]=M:o0.length--,o0.strip()}function f0(l0,z,o0){var M=new D;return M.mulp(l0,z,o0)}Z.prototype.mulTo=function(l0,z){var o0,M=this.length+l0.length;return this.length===10&&l0.length===10?o0=p0(this,l0,z):M<63?o0=E(this,l0,z):M<1024?o0=T(this,l0,z):o0=f0(this,l0,z),o0};function D(l0,z){this.x=l0,this.y=z}D.prototype.makeRBT=function(l0){for(var z=new Array(l0),o0=Z.prototype._countBits(l0)-1,M=0;M>=1;return M},D.prototype.permute=function(l0,z,o0,M,u0,S){for(var n0=0;n0>>1)u0++;return 1<>>13,o0[2*S+1]=u0&8191,u0=u0>>>13;for(S=2*z;S>=26,z+=M/67108864|0,z+=u0>>>26,this.words[o0]=u0&67108863}return z!==0&&(this.words[o0]=z,this.length++),this},Z.prototype.muln=function(l0){return this.clone().imuln(l0)},Z.prototype.sqr=function(){return this.mul(this)},Z.prototype.isqr=function(){return this.imul(this.clone())},Z.prototype.pow=function(l0){var z=w0(l0);if(z.length===0)return new Z(1);for(var o0=this,M=0;M=0);var z=l0%26,o0=(l0-z)/26,M=67108863>>>26-z<<26-z,u0;if(z!==0){var S=0;for(u0=0;u0>>26-z}S&&(this.words[u0]=S,this.length++)}if(o0!==0){for(u0=this.length-1;u0>=0;u0--)this.words[u0+o0]=this.words[u0];for(u0=0;u0=0);var M;z?M=(z-z%26)/26:M=0;var u0=l0%26,S=Math.min((l0-u0)/26,this.length),n0=67108863^67108863>>>u0<S)for(this.length-=S,s0=0;s0=0&&(I!==0||s0>=M);s0--){var t0=this.words[s0]|0;this.words[s0]=I<<26-u0|t0>>>u0,I=t0&n0}return v&&I!==0&&(v.words[v.length++]=I),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},Z.prototype.ishrn=function(l0,z,o0){return Y(this.negative===0),this.iushrn(l0,z,o0)},Z.prototype.shln=function(l0){return this.clone().ishln(l0)},Z.prototype.ushln=function(l0){return this.clone().iushln(l0)},Z.prototype.shrn=function(l0){return this.clone().ishrn(l0)},Z.prototype.ushrn=function(l0){return this.clone().iushrn(l0)},Z.prototype.testn=function(l0){Y(typeof l0=="number"&&l0>=0);var z=l0%26,o0=(l0-z)/26,M=1<=0);var z=l0%26,o0=(l0-z)/26;if(Y(this.negative===0,"imaskn works only with positive numbers"),this.length<=o0)return this;if(z!==0&&o0++,this.length=Math.min(o0,this.length),z!==0){var M=67108863^67108863>>>z<=67108864;z++)this.words[z]-=67108864,z===this.length-1?this.words[z+1]=1:this.words[z+1]++;return this.length=Math.max(this.length,z+1),this},Z.prototype.isubn=function(l0){if(Y(typeof l0=="number"),Y(l0<67108864),l0<0)return this.iaddn(-l0);if(this.negative!==0)return this.negative=0,this.iaddn(l0),this.negative=1,this;if(this.words[0]-=l0,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var z=0;z>26)-(v/67108864|0),this.words[u0+o0]=S&67108863}for(;u0>26,this.words[u0+o0]=S&67108863;if(n0===0)return this.strip();for(Y(n0===-1),n0=0,u0=0;u0>26,this.words[u0]=S&67108863;return this.negative=1,this.strip()},Z.prototype._wordDiv=function(l0,z){var o0=this.length-l0.length,M=this.clone(),u0=l0,S=u0.words[u0.length-1]|0,n0=this._countBits(S);o0=26-n0,o0!==0&&(u0=u0.ushln(o0),M.iushln(o0),S=u0.words[u0.length-1]|0);var v=M.length-u0.length,s0;if(z!=="mod"){s0=new Z(null),s0.length=v+1,s0.words=new Array(s0.length);for(var I=0;I=0;m0--){var a0=(M.words[u0.length+m0]|0)*67108864+(M.words[u0.length+m0-1]|0);for(a0=Math.min(a0/S|0,67108863),M._ishlnsubmul(u0,a0,m0);M.negative!==0;)a0--,M.negative=0,M._ishlnsubmul(u0,1,m0),M.isZero()||(M.negative^=1);s0&&(s0.words[m0]=a0)}return s0&&s0.strip(),M.strip(),z!=="div"&&o0!==0&&M.iushrn(o0),{div:s0||null,mod:M}},Z.prototype.divmod=function(l0,z,o0){if(Y(!l0.isZero()),this.isZero())return{div:new Z(0),mod:new Z(0)};var M,u0,S;return this.negative!==0&&l0.negative===0?(S=this.neg().divmod(l0,z),z!=="mod"&&(M=S.div.neg()),z!=="div"&&(u0=S.mod.neg(),o0&&u0.negative!==0&&u0.iadd(l0)),{div:M,mod:u0}):this.negative===0&&l0.negative!==0?(S=this.divmod(l0.neg(),z),z!=="mod"&&(M=S.div.neg()),{div:M,mod:S.mod}):(this.negative&l0.negative)!==0?(S=this.neg().divmod(l0.neg(),z),z!=="div"&&(u0=S.mod.neg(),o0&&u0.negative!==0&&u0.isub(l0)),{div:S.div,mod:u0}):l0.length>this.length||this.cmp(l0)<0?{div:new Z(0),mod:this}:l0.length===1?z==="div"?{div:this.divn(l0.words[0]),mod:null}:z==="mod"?{div:null,mod:new Z(this.modn(l0.words[0]))}:{div:this.divn(l0.words[0]),mod:new Z(this.modn(l0.words[0]))}:this._wordDiv(l0,z)},Z.prototype.div=function(l0){return this.divmod(l0,"div",!1).div},Z.prototype.mod=function(l0){return this.divmod(l0,"mod",!1).mod},Z.prototype.umod=function(l0){return this.divmod(l0,"mod",!0).mod},Z.prototype.divRound=function(l0){var z=this.divmod(l0);if(z.mod.isZero())return z.div;var o0=z.div.negative!==0?z.mod.isub(l0):z.mod,M=l0.ushrn(1),u0=l0.andln(1),S=o0.cmp(M);return S<0||u0===1&&S===0?z.div:z.div.negative!==0?z.div.isubn(1):z.div.iaddn(1)},Z.prototype.modn=function(l0){Y(l0<=67108863);for(var z=(1<<26)%l0,o0=0,M=this.length-1;M>=0;M--)o0=(z*o0+(this.words[M]|0))%l0;return o0},Z.prototype.idivn=function(l0){Y(l0<=67108863);for(var z=0,o0=this.length-1;o0>=0;o0--){var M=(this.words[o0]|0)+z*67108864;this.words[o0]=M/l0|0,z=M%l0}return this.strip()},Z.prototype.divn=function(l0){return this.clone().idivn(l0)},Z.prototype.egcd=function(l0){Y(l0.negative===0),Y(!l0.isZero());var z=this,o0=l0.clone();z.negative!==0?z=z.umod(l0):z=z.clone();for(var M=new Z(1),u0=new Z(0),S=new Z(0),n0=new Z(1),v=0;z.isEven()&&o0.isEven();)z.iushrn(1),o0.iushrn(1),++v;for(var s0=o0.clone(),I=z.clone();!z.isZero();){for(var t0=0,m0=1;(z.words[0]&m0)===0&&t0<26;++t0,m0<<=1);if(t0>0)for(z.iushrn(t0);t0-- >0;)(M.isOdd()||u0.isOdd())&&(M.iadd(s0),u0.isub(I)),M.iushrn(1),u0.iushrn(1);for(var a0=0,q=1;(o0.words[0]&q)===0&&a0<26;++a0,q<<=1);if(a0>0)for(o0.iushrn(a0);a0-- >0;)(S.isOdd()||n0.isOdd())&&(S.iadd(s0),n0.isub(I)),S.iushrn(1),n0.iushrn(1);z.cmp(o0)>=0?(z.isub(o0),M.isub(S),u0.isub(n0)):(o0.isub(z),S.isub(M),n0.isub(u0))}return{a:S,b:n0,gcd:o0.iushln(v)}},Z.prototype._invmp=function(l0){Y(l0.negative===0),Y(!l0.isZero());var z=this,o0=l0.clone();z.negative!==0?z=z.umod(l0):z=z.clone();for(var M=new Z(1),u0=new Z(0),S=o0.clone();z.cmpn(1)>0&&o0.cmpn(1)>0;){for(var n0=0,v=1;(z.words[0]&v)===0&&n0<26;++n0,v<<=1);if(n0>0)for(z.iushrn(n0);n0-- >0;)M.isOdd()&&M.iadd(S),M.iushrn(1);for(var s0=0,I=1;(o0.words[0]&I)===0&&s0<26;++s0,I<<=1);if(s0>0)for(o0.iushrn(s0);s0-- >0;)u0.isOdd()&&u0.iadd(S),u0.iushrn(1);z.cmp(o0)>=0?(z.isub(o0),M.isub(u0)):(o0.isub(z),u0.isub(M))}var t0;return z.cmpn(1)===0?t0=M:t0=u0,t0.cmpn(0)<0&&t0.iadd(l0),t0},Z.prototype.gcd=function(l0){if(this.isZero())return l0.abs();if(l0.isZero())return this.abs();var z=this.clone(),o0=l0.clone();z.negative=0,o0.negative=0;for(var M=0;z.isEven()&&o0.isEven();M++)z.iushrn(1),o0.iushrn(1);do{for(;z.isEven();)z.iushrn(1);for(;o0.isEven();)o0.iushrn(1);var u0=z.cmp(o0);if(u0<0){var S=z;z=o0,o0=S}else if(u0===0||o0.cmpn(1)===0)break;z.isub(o0)}while(!0);return o0.iushln(M)},Z.prototype.invm=function(l0){return this.egcd(l0).a.umod(l0)},Z.prototype.isEven=function(){return(this.words[0]&1)===0},Z.prototype.isOdd=function(){return(this.words[0]&1)===1},Z.prototype.andln=function(l0){return this.words[0]&l0},Z.prototype.bincn=function(l0){Y(typeof l0=="number");var z=l0%26,o0=(l0-z)/26,M=1<>>26,n0&=67108863,this.words[S]=n0}return u0!==0&&(this.words[S]=u0,this.length++),this},Z.prototype.isZero=function(){return this.length===1&&this.words[0]===0},Z.prototype.cmpn=function(l0){var z=l0<0;if(this.negative!==0&&!z)return-1;if(this.negative===0&&z)return 1;this.strip();var o0;if(this.length>1)o0=1;else{z&&(l0=-l0),Y(l0<=67108863,"Number is too big");var M=this.words[0]|0;o0=M===l0?0:Ml0.length)return 1;if(this.length=0;o0--){var M=this.words[o0]|0,u0=l0.words[o0]|0;if(M!==u0){Mu0&&(z=1);break}}return z},Z.prototype.gtn=function(l0){return this.cmpn(l0)===1},Z.prototype.gt=function(l0){return this.cmp(l0)===1},Z.prototype.gten=function(l0){return this.cmpn(l0)>=0},Z.prototype.gte=function(l0){return this.cmp(l0)>=0},Z.prototype.ltn=function(l0){return this.cmpn(l0)===-1},Z.prototype.lt=function(l0){return this.cmp(l0)===-1},Z.prototype.lten=function(l0){return this.cmpn(l0)<=0},Z.prototype.lte=function(l0){return this.cmp(l0)<=0},Z.prototype.eqn=function(l0){return this.cmpn(l0)===0},Z.prototype.eq=function(l0){return this.cmp(l0)===0},Z.red=function(l0){return new b0(l0)},Z.prototype.toRed=function(l0){return Y(!this.red,"Already a number in reduction context"),Y(this.negative===0,"red works only with positives"),l0.convertTo(this)._forceRed(l0)},Z.prototype.fromRed=function(){return Y(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},Z.prototype._forceRed=function(l0){return this.red=l0,this},Z.prototype.forceRed=function(l0){return Y(!this.red,"Already a number in reduction context"),this._forceRed(l0)},Z.prototype.redAdd=function(l0){return Y(this.red,"redAdd works only with red numbers"),this.red.add(this,l0)},Z.prototype.redIAdd=function(l0){return Y(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,l0)},Z.prototype.redSub=function(l0){return Y(this.red,"redSub works only with red numbers"),this.red.sub(this,l0)},Z.prototype.redISub=function(l0){return Y(this.red,"redISub works only with red numbers"),this.red.isub(this,l0)},Z.prototype.redShl=function(l0){return Y(this.red,"redShl works only with red numbers"),this.red.shl(this,l0)},Z.prototype.redMul=function(l0){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,l0),this.red.mul(this,l0)},Z.prototype.redIMul=function(l0){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,l0),this.red.imul(this,l0)},Z.prototype.redSqr=function(){return Y(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},Z.prototype.redISqr=function(){return Y(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},Z.prototype.redSqrt=function(){return Y(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},Z.prototype.redInvm=function(){return Y(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},Z.prototype.redNeg=function(){return Y(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},Z.prototype.redPow=function(l0){return Y(this.red&&!l0.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,l0)};var c0={k256:null,p224:null,p192:null,p25519:null};function C(l0,z){this.name=l0,this.p=new Z(z,16),this.n=this.p.bitLength(),this.k=new Z(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}C.prototype._tmp=function(){var l0=new Z(null);return l0.words=new Array(Math.ceil(this.n/13)),l0},C.prototype.ireduce=function(l0){var z=l0,o0;do this.split(z,this.tmp),z=this.imulK(z),z=z.iadd(this.tmp),o0=z.bitLength();while(o0>this.n);var M=o00?z.isub(this.p):z.strip!==void 0?z.strip():z._strip(),z},C.prototype.split=function(l0,z){l0.iushrn(this.n,0,z)},C.prototype.imulK=function(l0){return l0.imul(this.k)};function h0(){C.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}$(h0,C),h0.prototype.split=function(l0,z){for(var o0=4194303,M=Math.min(l0.length,9),u0=0;u0>>22,S=n0}S>>>=22,l0.words[u0-10]=S,S===0&&l0.length>10?l0.length-=10:l0.length-=9},h0.prototype.imulK=function(l0){l0.words[l0.length]=0,l0.words[l0.length+1]=0,l0.length+=2;for(var z=0,o0=0;o0>>=26,l0.words[o0]=u0,z=M}return z!==0&&(l0.words[l0.length++]=z),l0},Z._prime=function(l0){if(c0[l0])return c0[l0];var z;if(l0==="k256")z=new h0;else if(l0==="p224")z=new L;else if(l0==="p192")z=new d0;else if(l0==="p25519")z=new R;else throw new Error("Unknown prime "+l0);return c0[l0]=z,z};function b0(l0){if(typeof l0=="string"){var z=Z._prime(l0);this.m=z.p,this.prime=z}else Y(l0.gtn(1),"modulus must be greater than 1"),this.m=l0,this.prime=null}b0.prototype._verify1=function(l0){Y(l0.negative===0,"red works only with positives"),Y(l0.red,"red works only with red numbers")},b0.prototype._verify2=function(l0,z){Y((l0.negative|z.negative)===0,"red works only with positives"),Y(l0.red&&l0.red===z.red,"red works only with red numbers")},b0.prototype.imod=function(l0){return this.prime?this.prime.ireduce(l0)._forceRed(this):l0.umod(this.m)._forceRed(this)},b0.prototype.neg=function(l0){return l0.isZero()?l0.clone():this.m.sub(l0)._forceRed(this)},b0.prototype.add=function(l0,z){this._verify2(l0,z);var o0=l0.add(z);return o0.cmp(this.m)>=0&&o0.isub(this.m),o0._forceRed(this)},b0.prototype.iadd=function(l0,z){this._verify2(l0,z);var o0=l0.iadd(z);return o0.cmp(this.m)>=0&&o0.isub(this.m),o0},b0.prototype.sub=function(l0,z){this._verify2(l0,z);var o0=l0.sub(z);return o0.cmpn(0)<0&&o0.iadd(this.m),o0._forceRed(this)},b0.prototype.isub=function(l0,z){this._verify2(l0,z);var o0=l0.isub(z);return o0.cmpn(0)<0&&o0.iadd(this.m),o0},b0.prototype.shl=function(l0,z){return this._verify1(l0),this.imod(l0.ushln(z))},b0.prototype.imul=function(l0,z){return this._verify2(l0,z),this.imod(l0.imul(z))},b0.prototype.mul=function(l0,z){return this._verify2(l0,z),this.imod(l0.mul(z))},b0.prototype.isqr=function(l0){return this.imul(l0,l0.clone())},b0.prototype.sqr=function(l0){return this.mul(l0,l0)},b0.prototype.sqrt=function(l0){if(l0.isZero())return l0.clone();var z=this.m.andln(3);if(Y(z%2===1),z===3){var o0=this.m.add(new Z(1)).iushrn(2);return this.pow(l0,o0)}for(var M=this.m.subn(1),u0=0;!M.isZero()&&M.andln(1)===0;)u0++,M.iushrn(1);Y(!M.isZero());var S=new Z(1).toRed(this),n0=S.redNeg(),v=this.m.subn(1).iushrn(1),s0=this.m.bitLength();for(s0=new Z(2*s0*s0).toRed(this);this.pow(s0,v).cmp(n0)!==0;)s0.redIAdd(n0);for(var I=this.pow(s0,M),t0=this.pow(l0,M.addn(1).iushrn(1)),m0=this.pow(l0,M),a0=u0;m0.cmp(S)!==0;){for(var q=m0,e0=0;q.cmp(S)!==0;e0++)q=q.redSqr();Y(e0=0;u0--){for(var I=z.words[u0],t0=s0-1;t0>=0;t0--){var m0=I>>t0&1;if(S!==M[0]&&(S=this.sqr(S)),m0===0&&n0===0){v=0;continue}n0<<=1,n0|=m0,v++,!(v!==o0&&(u0!==0||t0!==0))&&(S=this.mul(S,M[n0]),v=0,n0=0)}s0=26}return S},b0.prototype.convertTo=function(l0){var z=l0.umod(this.m);return z===l0?z.clone():z},b0.prototype.convertFrom=function(l0){var z=l0.clone();return z.red=null,z},Z.mont=function(l0){return new P(l0)};function P(l0){b0.call(this,l0),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new Z(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}$(P,b0),P.prototype.convertTo=function(l0){return this.imod(l0.ushln(this.shift))},P.prototype.convertFrom=function(l0){var z=this.imod(l0.mul(this.rinv));return z.red=null,z},P.prototype.imul=function(l0,z){if(l0.isZero()||z.isZero())return l0.words[0]=0,l0.length=1,l0;var o0=l0.imul(z),M=o0.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u0=o0.isub(M).iushrn(this.shift),S=u0;return u0.cmp(this.m)>=0?S=u0.isub(this.m):u0.cmpn(0)<0&&(S=u0.iadd(this.m)),S._forceRed(this)},P.prototype.mul=function(l0,z){if(l0.isZero()||z.isZero())return new Z(0)._forceRed(this);var o0=l0.mul(z),M=o0.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u0=o0.isub(M).iushrn(this.shift),S=u0;return u0.cmp(this.m)>=0?S=u0.isub(this.m):u0.cmpn(0)<0&&(S=u0.iadd(this.m)),S._forceRed(this)},P.prototype.invm=function(l0){var z=this.imod(l0._invmp(this.m).mul(this.r2));return z._forceRed(this)}})(typeof K>"u"||K,X)}}),_Q=$Q({"node_modules/miller-rabin/node_modules/bn.js/lib/bn.js"(X,K){(function(x0,G){function Y(l0,z){if(!l0)throw new Error(z||"Assertion failed")}function $(l0,z){l0.super_=z;var o0=function(){};o0.prototype=z.prototype,l0.prototype=new o0,l0.prototype.constructor=l0}function Z(l0,z,o0){if(Z.isBN(l0))return l0;this.negative=0,this.words=null,this.length=0,this.red=null,l0!==null&&((z==="le"||z==="be")&&(o0=z,z=10),this._init(l0||0,z||10,o0||"be"))}typeof x0=="object"?x0.exports=Z:G.BN=Z,Z.BN=Z,Z.wordSize=26;var Q=c$;Z.isBN=function(l0){return l0 instanceof Z?!0:l0!==null&&typeof l0=="object"&&l0.constructor.wordSize===Z.wordSize&&Array.isArray(l0.words)},Z.max=function(l0,z){return l0.cmp(z)>0?l0:z},Z.min=function(l0,z){return l0.cmp(z)<0?l0:z},Z.prototype._init=function(l0,z,o0){if(typeof l0=="number")return this._initNumber(l0,z,o0);if(typeof l0=="object")return this._initArray(l0,z,o0);z==="hex"&&(z=16),Y(z===(z|0)&&z>=2&&z<=36),l0=l0.toString().replace(/\s+/g,"");var M=0;l0[0]==="-"&&(M++,this.negative=1),M=0;M-=3)S=l0[M]|l0[M-1]<<8|l0[M-2]<<16,this.words[u0]|=S<>>26-n0&67108863,n0+=24,n0>=26&&(n0-=26,u0++);else if(o0==="le")for(M=0,u0=0;M>>26-n0&67108863,n0+=24,n0>=26&&(n0-=26,u0++);return this.strip()};function U(l0,z){var o0=l0.charCodeAt(z);return o0>=65&&o0<=70?o0-55:o0>=97&&o0<=102?o0-87:o0-48&15}function V(l0,z,o0){var M=U(l0,o0);return o0-1>=z&&(M|=U(l0,o0-1)<<4),M}Z.prototype._parseHex=function(l0,z,o0){this.length=Math.ceil((l0.length-z)/6),this.words=new Array(this.length);for(var M=0;M=z;M-=2)n0=V(l0,z,M)<=18?(u0-=18,S+=1,this.words[S]|=n0>>>26):u0+=8;else{var v=l0.length-z;for(M=v%2===0?z+1:z;M=18?(u0-=18,S+=1,this.words[S]|=n0>>>26):u0+=8}this.strip()};function B0(l0,z,o0,M){for(var u0=0,S=Math.min(l0.length,o0),n0=z;n0=49?u0+=v-49+10:v>=17?u0+=v-17+10:u0+=v}return u0}Z.prototype._parseBase=function(l0,z,o0){this.words=[0],this.length=1;for(var M=0,u0=1;u0<=67108863;u0*=z)M++;M--,u0=u0/z|0;for(var S=l0.length-o0,n0=S%M,v=Math.min(S,S-n0)+o0,s0=0,I=o0;I1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},Z.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},Z.prototype.inspect=function(){return(this.red?""};var H=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y0=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],W=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];Z.prototype.toString=function(l0,z){l0=l0||10,z=z|0||1;var o0;if(l0===16||l0==="hex"){o0="";for(var M=0,u0=0,S=0;S>>24-M&16777215,u0!==0||S!==this.length-1?o0=H[6-v.length]+v+o0:o0=v+o0,M+=2,M>=26&&(M-=26,S--)}for(u0!==0&&(o0=u0.toString(16)+o0);o0.length%z!==0;)o0="0"+o0;return this.negative!==0&&(o0="-"+o0),o0}if(l0===(l0|0)&&l0>=2&&l0<=36){var s0=y0[l0],I=W[l0];o0="";var t0=this.clone();for(t0.negative=0;!t0.isZero();){var m0=t0.modn(I).toString(l0);t0=t0.idivn(I),t0.isZero()?o0=m0+o0:o0=H[s0-m0.length]+m0+o0}for(this.isZero()&&(o0="0"+o0);o0.length%z!==0;)o0="0"+o0;return this.negative!==0&&(o0="-"+o0),o0}Y(!1,"Base should be between 2 and 36")},Z.prototype.toNumber=function(){var l0=this.words[0];return this.length===2?l0+=this.words[1]*67108864:this.length===3&&this.words[2]===1?l0+=4503599627370496+this.words[1]*67108864:this.length>2&&Y(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-l0:l0},Z.prototype.toJSON=function(){return this.toString(16)},Z.prototype.toBuffer=function(l0,z){return Y(typeof Q<"u"),this.toArrayLike(Q,l0,z)},Z.prototype.toArray=function(l0,z){return this.toArrayLike(Array,l0,z)},Z.prototype.toArrayLike=function(l0,z,o0){var M=this.byteLength(),u0=o0||Math.max(1,M);Y(M<=u0,"byte array longer than desired length"),Y(u0>0,"Requested array length <= 0"),this.strip();var S=z==="le",n0=new l0(u0),v,s0,I=this.clone();if(S){for(s0=0;!I.isZero();s0++)v=I.andln(255),I.iushrn(8),n0[s0]=v;for(;s0=4096&&(o0+=13,z>>>=13),z>=64&&(o0+=7,z>>>=7),z>=8&&(o0+=4,z>>>=4),z>=2&&(o0+=2,z>>>=2),o0+z},Z.prototype._zeroBits=function(l0){if(l0===0)return 26;var z=l0,o0=0;return(z&8191)===0&&(o0+=13,z>>>=13),(z&127)===0&&(o0+=7,z>>>=7),(z&15)===0&&(o0+=4,z>>>=4),(z&3)===0&&(o0+=2,z>>>=2),(z&1)===0&&o0++,o0},Z.prototype.bitLength=function(){var l0=this.words[this.length-1],z=this._countBits(l0);return(this.length-1)*26+z};function w0(l0){for(var z=new Array(l0.bitLength()),o0=0;o0>>u0}return z}Z.prototype.zeroBits=function(){if(this.isZero())return 0;for(var l0=0,z=0;zl0.length?this.clone().ior(l0):l0.clone().ior(this)},Z.prototype.uor=function(l0){return this.length>l0.length?this.clone().iuor(l0):l0.clone().iuor(this)},Z.prototype.iuand=function(l0){var z;this.length>l0.length?z=l0:z=this;for(var o0=0;o0l0.length?this.clone().iand(l0):l0.clone().iand(this)},Z.prototype.uand=function(l0){return this.length>l0.length?this.clone().iuand(l0):l0.clone().iuand(this)},Z.prototype.iuxor=function(l0){var z,o0;this.length>l0.length?(z=this,o0=l0):(z=l0,o0=this);for(var M=0;Ml0.length?this.clone().ixor(l0):l0.clone().ixor(this)},Z.prototype.uxor=function(l0){return this.length>l0.length?this.clone().iuxor(l0):l0.clone().iuxor(this)},Z.prototype.inotn=function(l0){Y(typeof l0=="number"&&l0>=0);var z=Math.ceil(l0/26)|0,o0=l0%26;this._expand(z),o0>0&&z--;for(var M=0;M0&&(this.words[M]=~this.words[M]&67108863>>26-o0),this.strip()},Z.prototype.notn=function(l0){return this.clone().inotn(l0)},Z.prototype.setn=function(l0,z){Y(typeof l0=="number"&&l0>=0);var o0=l0/26|0,M=l0%26;return this._expand(o0+1),z?this.words[o0]=this.words[o0]|1<l0.length?(o0=this,M=l0):(o0=l0,M=this);for(var u0=0,S=0;S>>26;for(;u0!==0&&S>>26;if(this.length=o0.length,u0!==0)this.words[this.length]=u0,this.length++;else if(o0!==this)for(;Sl0.length?this.clone().iadd(l0):l0.clone().iadd(this)},Z.prototype.isub=function(l0){if(l0.negative!==0){l0.negative=0;var z=this.iadd(l0);return l0.negative=1,z._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(l0),this.negative=1,this._normSign();var o0=this.cmp(l0);if(o0===0)return this.negative=0,this.length=1,this.words[0]=0,this;var M,u0;o0>0?(M=this,u0=l0):(M=l0,u0=this);for(var S=0,n0=0;n0>26,this.words[n0]=z&67108863;for(;S!==0&&n0>26,this.words[n0]=z&67108863;if(S===0&&n0>>26,m0=s0&67108863,a0=Math.min(I,z.length-1),q=Math.max(0,I-l0.length+1);q<=a0;q++){var e0=I-q|0;u0=l0.words[e0]|0,S=z.words[q]|0,n0=u0*S+m0,t0+=n0/67108864|0,m0=n0&67108863}o0.words[I]=m0|0,s0=t0|0}return s0!==0?o0.words[I]=s0|0:o0.length--,o0.strip()}var p0=function(l0,z,o0){var M=l0.words,u0=z.words,S=o0.words,n0=0,v,s0,I,t0=M[0]|0,m0=t0&8191,a0=t0>>>13,q=M[1]|0,e0=q&8191,r0=q>>>13,i0=M[2]|0,j=i0&8191,$$=i0>>>13,k=M[3]|0,Q$=k&8191,g=k>>>13,Y$=M[4]|0,_=Y$&8191,Z$=Y$>>>13,N=M[5]|0,G$=N&8191,x=N>>>13,V$=M[6]|0,B=V$&8191,U$=V$>>>13,y=M[7]|0,X$=y&8191,w=y>>>13,K$=M[8]|0,p=K$&8191,I$=K$>>>13,f=M[9]|0,O$=f&8191,c=f>>>13,J$=u0[0]|0,h=J$&8191,F$=J$>>>13,d=u0[1]|0,A$=d&8191,b=d>>>13,H$=u0[2]|0,l=H$&8191,W$=H$>>>13,o=u0[3]|0,E$=o&8191,u=o>>>13,T$=u0[4]|0,n=T$&8191,D$=T$>>>13,s=u0[5]|0,C$=s&8191,t=s>>>13,L$=u0[6]|0,m=L$&8191,R$=L$>>>13,a=u0[7]|0,P$=a&8191,O=a>>>13,z$=u0[8]|0,e=z$&8191,M$=z$>>>13,J=u0[9]|0,S$=J&8191,F=J>>>13;o0.negative=l0.negative^z.negative,o0.length=19,v=Math.imul(m0,h),s0=Math.imul(m0,F$),s0=s0+Math.imul(a0,h)|0,I=Math.imul(a0,F$);var v$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(v$>>>26)|0,v$&=67108863,v=Math.imul(e0,h),s0=Math.imul(e0,F$),s0=s0+Math.imul(r0,h)|0,I=Math.imul(r0,F$),v=v+Math.imul(m0,A$)|0,s0=s0+Math.imul(m0,b)|0,s0=s0+Math.imul(a0,A$)|0,I=I+Math.imul(a0,b)|0;var r=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(r>>>26)|0,r&=67108863,v=Math.imul(j,h),s0=Math.imul(j,F$),s0=s0+Math.imul($$,h)|0,I=Math.imul($$,F$),v=v+Math.imul(e0,A$)|0,s0=s0+Math.imul(e0,b)|0,s0=s0+Math.imul(r0,A$)|0,I=I+Math.imul(r0,b)|0,v=v+Math.imul(m0,l)|0,s0=s0+Math.imul(m0,W$)|0,s0=s0+Math.imul(a0,l)|0,I=I+Math.imul(a0,W$)|0;var q$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(q$>>>26)|0,q$&=67108863,v=Math.imul(Q$,h),s0=Math.imul(Q$,F$),s0=s0+Math.imul(g,h)|0,I=Math.imul(g,F$),v=v+Math.imul(j,A$)|0,s0=s0+Math.imul(j,b)|0,s0=s0+Math.imul($$,A$)|0,I=I+Math.imul($$,b)|0,v=v+Math.imul(e0,l)|0,s0=s0+Math.imul(e0,W$)|0,s0=s0+Math.imul(r0,l)|0,I=I+Math.imul(r0,W$)|0,v=v+Math.imul(m0,E$)|0,s0=s0+Math.imul(m0,u)|0,s0=s0+Math.imul(a0,E$)|0,I=I+Math.imul(a0,u)|0;var i=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(i>>>26)|0,i&=67108863,v=Math.imul(_,h),s0=Math.imul(_,F$),s0=s0+Math.imul(Z$,h)|0,I=Math.imul(Z$,F$),v=v+Math.imul(Q$,A$)|0,s0=s0+Math.imul(Q$,b)|0,s0=s0+Math.imul(g,A$)|0,I=I+Math.imul(g,b)|0,v=v+Math.imul(j,l)|0,s0=s0+Math.imul(j,W$)|0,s0=s0+Math.imul($$,l)|0,I=I+Math.imul($$,W$)|0,v=v+Math.imul(e0,E$)|0,s0=s0+Math.imul(e0,u)|0,s0=s0+Math.imul(r0,E$)|0,I=I+Math.imul(r0,u)|0,v=v+Math.imul(m0,n)|0,s0=s0+Math.imul(m0,D$)|0,s0=s0+Math.imul(a0,n)|0,I=I+Math.imul(a0,D$)|0;var j$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(j$>>>26)|0,j$&=67108863,v=Math.imul(G$,h),s0=Math.imul(G$,F$),s0=s0+Math.imul(x,h)|0,I=Math.imul(x,F$),v=v+Math.imul(_,A$)|0,s0=s0+Math.imul(_,b)|0,s0=s0+Math.imul(Z$,A$)|0,I=I+Math.imul(Z$,b)|0,v=v+Math.imul(Q$,l)|0,s0=s0+Math.imul(Q$,W$)|0,s0=s0+Math.imul(g,l)|0,I=I+Math.imul(g,W$)|0,v=v+Math.imul(j,E$)|0,s0=s0+Math.imul(j,u)|0,s0=s0+Math.imul($$,E$)|0,I=I+Math.imul($$,u)|0,v=v+Math.imul(e0,n)|0,s0=s0+Math.imul(e0,D$)|0,s0=s0+Math.imul(r0,n)|0,I=I+Math.imul(r0,D$)|0,v=v+Math.imul(m0,C$)|0,s0=s0+Math.imul(m0,t)|0,s0=s0+Math.imul(a0,C$)|0,I=I+Math.imul(a0,t)|0;var k$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(k$>>>26)|0,k$&=67108863,v=Math.imul(B,h),s0=Math.imul(B,F$),s0=s0+Math.imul(U$,h)|0,I=Math.imul(U$,F$),v=v+Math.imul(G$,A$)|0,s0=s0+Math.imul(G$,b)|0,s0=s0+Math.imul(x,A$)|0,I=I+Math.imul(x,b)|0,v=v+Math.imul(_,l)|0,s0=s0+Math.imul(_,W$)|0,s0=s0+Math.imul(Z$,l)|0,I=I+Math.imul(Z$,W$)|0,v=v+Math.imul(Q$,E$)|0,s0=s0+Math.imul(Q$,u)|0,s0=s0+Math.imul(g,E$)|0,I=I+Math.imul(g,u)|0,v=v+Math.imul(j,n)|0,s0=s0+Math.imul(j,D$)|0,s0=s0+Math.imul($$,n)|0,I=I+Math.imul($$,D$)|0,v=v+Math.imul(e0,C$)|0,s0=s0+Math.imul(e0,t)|0,s0=s0+Math.imul(r0,C$)|0,I=I+Math.imul(r0,t)|0,v=v+Math.imul(m0,m)|0,s0=s0+Math.imul(m0,R$)|0,s0=s0+Math.imul(a0,m)|0,I=I+Math.imul(a0,R$)|0;var g$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(g$>>>26)|0,g$&=67108863,v=Math.imul(X$,h),s0=Math.imul(X$,F$),s0=s0+Math.imul(w,h)|0,I=Math.imul(w,F$),v=v+Math.imul(B,A$)|0,s0=s0+Math.imul(B,b)|0,s0=s0+Math.imul(U$,A$)|0,I=I+Math.imul(U$,b)|0,v=v+Math.imul(G$,l)|0,s0=s0+Math.imul(G$,W$)|0,s0=s0+Math.imul(x,l)|0,I=I+Math.imul(x,W$)|0,v=v+Math.imul(_,E$)|0,s0=s0+Math.imul(_,u)|0,s0=s0+Math.imul(Z$,E$)|0,I=I+Math.imul(Z$,u)|0,v=v+Math.imul(Q$,n)|0,s0=s0+Math.imul(Q$,D$)|0,s0=s0+Math.imul(g,n)|0,I=I+Math.imul(g,D$)|0,v=v+Math.imul(j,C$)|0,s0=s0+Math.imul(j,t)|0,s0=s0+Math.imul($$,C$)|0,I=I+Math.imul($$,t)|0,v=v+Math.imul(e0,m)|0,s0=s0+Math.imul(e0,R$)|0,s0=s0+Math.imul(r0,m)|0,I=I+Math.imul(r0,R$)|0,v=v+Math.imul(m0,P$)|0,s0=s0+Math.imul(m0,O)|0,s0=s0+Math.imul(a0,P$)|0,I=I+Math.imul(a0,O)|0;var _$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(_$>>>26)|0,_$&=67108863,v=Math.imul(p,h),s0=Math.imul(p,F$),s0=s0+Math.imul(I$,h)|0,I=Math.imul(I$,F$),v=v+Math.imul(X$,A$)|0,s0=s0+Math.imul(X$,b)|0,s0=s0+Math.imul(w,A$)|0,I=I+Math.imul(w,b)|0,v=v+Math.imul(B,l)|0,s0=s0+Math.imul(B,W$)|0,s0=s0+Math.imul(U$,l)|0,I=I+Math.imul(U$,W$)|0,v=v+Math.imul(G$,E$)|0,s0=s0+Math.imul(G$,u)|0,s0=s0+Math.imul(x,E$)|0,I=I+Math.imul(x,u)|0,v=v+Math.imul(_,n)|0,s0=s0+Math.imul(_,D$)|0,s0=s0+Math.imul(Z$,n)|0,I=I+Math.imul(Z$,D$)|0,v=v+Math.imul(Q$,C$)|0,s0=s0+Math.imul(Q$,t)|0,s0=s0+Math.imul(g,C$)|0,I=I+Math.imul(g,t)|0,v=v+Math.imul(j,m)|0,s0=s0+Math.imul(j,R$)|0,s0=s0+Math.imul($$,m)|0,I=I+Math.imul($$,R$)|0,v=v+Math.imul(e0,P$)|0,s0=s0+Math.imul(e0,O)|0,s0=s0+Math.imul(r0,P$)|0,I=I+Math.imul(r0,O)|0,v=v+Math.imul(m0,e)|0,s0=s0+Math.imul(m0,M$)|0,s0=s0+Math.imul(a0,e)|0,I=I+Math.imul(a0,M$)|0;var N$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(N$>>>26)|0,N$&=67108863,v=Math.imul(O$,h),s0=Math.imul(O$,F$),s0=s0+Math.imul(c,h)|0,I=Math.imul(c,F$),v=v+Math.imul(p,A$)|0,s0=s0+Math.imul(p,b)|0,s0=s0+Math.imul(I$,A$)|0,I=I+Math.imul(I$,b)|0,v=v+Math.imul(X$,l)|0,s0=s0+Math.imul(X$,W$)|0,s0=s0+Math.imul(w,l)|0,I=I+Math.imul(w,W$)|0,v=v+Math.imul(B,E$)|0,s0=s0+Math.imul(B,u)|0,s0=s0+Math.imul(U$,E$)|0,I=I+Math.imul(U$,u)|0,v=v+Math.imul(G$,n)|0,s0=s0+Math.imul(G$,D$)|0,s0=s0+Math.imul(x,n)|0,I=I+Math.imul(x,D$)|0,v=v+Math.imul(_,C$)|0,s0=s0+Math.imul(_,t)|0,s0=s0+Math.imul(Z$,C$)|0,I=I+Math.imul(Z$,t)|0,v=v+Math.imul(Q$,m)|0,s0=s0+Math.imul(Q$,R$)|0,s0=s0+Math.imul(g,m)|0,I=I+Math.imul(g,R$)|0,v=v+Math.imul(j,P$)|0,s0=s0+Math.imul(j,O)|0,s0=s0+Math.imul($$,P$)|0,I=I+Math.imul($$,O)|0,v=v+Math.imul(e0,e)|0,s0=s0+Math.imul(e0,M$)|0,s0=s0+Math.imul(r0,e)|0,I=I+Math.imul(r0,M$)|0,v=v+Math.imul(m0,S$)|0,s0=s0+Math.imul(m0,F)|0,s0=s0+Math.imul(a0,S$)|0,I=I+Math.imul(a0,F)|0;var $0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+($0>>>26)|0,$0&=67108863,v=Math.imul(O$,A$),s0=Math.imul(O$,b),s0=s0+Math.imul(c,A$)|0,I=Math.imul(c,b),v=v+Math.imul(p,l)|0,s0=s0+Math.imul(p,W$)|0,s0=s0+Math.imul(I$,l)|0,I=I+Math.imul(I$,W$)|0,v=v+Math.imul(X$,E$)|0,s0=s0+Math.imul(X$,u)|0,s0=s0+Math.imul(w,E$)|0,I=I+Math.imul(w,u)|0,v=v+Math.imul(B,n)|0,s0=s0+Math.imul(B,D$)|0,s0=s0+Math.imul(U$,n)|0,I=I+Math.imul(U$,D$)|0,v=v+Math.imul(G$,C$)|0,s0=s0+Math.imul(G$,t)|0,s0=s0+Math.imul(x,C$)|0,I=I+Math.imul(x,t)|0,v=v+Math.imul(_,m)|0,s0=s0+Math.imul(_,R$)|0,s0=s0+Math.imul(Z$,m)|0,I=I+Math.imul(Z$,R$)|0,v=v+Math.imul(Q$,P$)|0,s0=s0+Math.imul(Q$,O)|0,s0=s0+Math.imul(g,P$)|0,I=I+Math.imul(g,O)|0,v=v+Math.imul(j,e)|0,s0=s0+Math.imul(j,M$)|0,s0=s0+Math.imul($$,e)|0,I=I+Math.imul($$,M$)|0,v=v+Math.imul(e0,S$)|0,s0=s0+Math.imul(e0,F)|0,s0=s0+Math.imul(r0,S$)|0,I=I+Math.imul(r0,F)|0;var x$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(x$>>>26)|0,x$&=67108863,v=Math.imul(O$,l),s0=Math.imul(O$,W$),s0=s0+Math.imul(c,l)|0,I=Math.imul(c,W$),v=v+Math.imul(p,E$)|0,s0=s0+Math.imul(p,u)|0,s0=s0+Math.imul(I$,E$)|0,I=I+Math.imul(I$,u)|0,v=v+Math.imul(X$,n)|0,s0=s0+Math.imul(X$,D$)|0,s0=s0+Math.imul(w,n)|0,I=I+Math.imul(w,D$)|0,v=v+Math.imul(B,C$)|0,s0=s0+Math.imul(B,t)|0,s0=s0+Math.imul(U$,C$)|0,I=I+Math.imul(U$,t)|0,v=v+Math.imul(G$,m)|0,s0=s0+Math.imul(G$,R$)|0,s0=s0+Math.imul(x,m)|0,I=I+Math.imul(x,R$)|0,v=v+Math.imul(_,P$)|0,s0=s0+Math.imul(_,O)|0,s0=s0+Math.imul(Z$,P$)|0,I=I+Math.imul(Z$,O)|0,v=v+Math.imul(Q$,e)|0,s0=s0+Math.imul(Q$,M$)|0,s0=s0+Math.imul(g,e)|0,I=I+Math.imul(g,M$)|0,v=v+Math.imul(j,S$)|0,s0=s0+Math.imul(j,F)|0,s0=s0+Math.imul($$,S$)|0,I=I+Math.imul($$,F)|0;var Q0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Q0>>>26)|0,Q0&=67108863,v=Math.imul(O$,E$),s0=Math.imul(O$,u),s0=s0+Math.imul(c,E$)|0,I=Math.imul(c,u),v=v+Math.imul(p,n)|0,s0=s0+Math.imul(p,D$)|0,s0=s0+Math.imul(I$,n)|0,I=I+Math.imul(I$,D$)|0,v=v+Math.imul(X$,C$)|0,s0=s0+Math.imul(X$,t)|0,s0=s0+Math.imul(w,C$)|0,I=I+Math.imul(w,t)|0,v=v+Math.imul(B,m)|0,s0=s0+Math.imul(B,R$)|0,s0=s0+Math.imul(U$,m)|0,I=I+Math.imul(U$,R$)|0,v=v+Math.imul(G$,P$)|0,s0=s0+Math.imul(G$,O)|0,s0=s0+Math.imul(x,P$)|0,I=I+Math.imul(x,O)|0,v=v+Math.imul(_,e)|0,s0=s0+Math.imul(_,M$)|0,s0=s0+Math.imul(Z$,e)|0,I=I+Math.imul(Z$,M$)|0,v=v+Math.imul(Q$,S$)|0,s0=s0+Math.imul(Q$,F)|0,s0=s0+Math.imul(g,S$)|0,I=I+Math.imul(g,F)|0;var B$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(B$>>>26)|0,B$&=67108863,v=Math.imul(O$,n),s0=Math.imul(O$,D$),s0=s0+Math.imul(c,n)|0,I=Math.imul(c,D$),v=v+Math.imul(p,C$)|0,s0=s0+Math.imul(p,t)|0,s0=s0+Math.imul(I$,C$)|0,I=I+Math.imul(I$,t)|0,v=v+Math.imul(X$,m)|0,s0=s0+Math.imul(X$,R$)|0,s0=s0+Math.imul(w,m)|0,I=I+Math.imul(w,R$)|0,v=v+Math.imul(B,P$)|0,s0=s0+Math.imul(B,O)|0,s0=s0+Math.imul(U$,P$)|0,I=I+Math.imul(U$,O)|0,v=v+Math.imul(G$,e)|0,s0=s0+Math.imul(G$,M$)|0,s0=s0+Math.imul(x,e)|0,I=I+Math.imul(x,M$)|0,v=v+Math.imul(_,S$)|0,s0=s0+Math.imul(_,F)|0,s0=s0+Math.imul(Z$,S$)|0,I=I+Math.imul(Z$,F)|0;var Y0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Y0>>>26)|0,Y0&=67108863,v=Math.imul(O$,C$),s0=Math.imul(O$,t),s0=s0+Math.imul(c,C$)|0,I=Math.imul(c,t),v=v+Math.imul(p,m)|0,s0=s0+Math.imul(p,R$)|0,s0=s0+Math.imul(I$,m)|0,I=I+Math.imul(I$,R$)|0,v=v+Math.imul(X$,P$)|0,s0=s0+Math.imul(X$,O)|0,s0=s0+Math.imul(w,P$)|0,I=I+Math.imul(w,O)|0,v=v+Math.imul(B,e)|0,s0=s0+Math.imul(B,M$)|0,s0=s0+Math.imul(U$,e)|0,I=I+Math.imul(U$,M$)|0,v=v+Math.imul(G$,S$)|0,s0=s0+Math.imul(G$,F)|0,s0=s0+Math.imul(x,S$)|0,I=I+Math.imul(x,F)|0;var y$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(y$>>>26)|0,y$&=67108863,v=Math.imul(O$,m),s0=Math.imul(O$,R$),s0=s0+Math.imul(c,m)|0,I=Math.imul(c,R$),v=v+Math.imul(p,P$)|0,s0=s0+Math.imul(p,O)|0,s0=s0+Math.imul(I$,P$)|0,I=I+Math.imul(I$,O)|0,v=v+Math.imul(X$,e)|0,s0=s0+Math.imul(X$,M$)|0,s0=s0+Math.imul(w,e)|0,I=I+Math.imul(w,M$)|0,v=v+Math.imul(B,S$)|0,s0=s0+Math.imul(B,F)|0,s0=s0+Math.imul(U$,S$)|0,I=I+Math.imul(U$,F)|0;var Z0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Z0>>>26)|0,Z0&=67108863,v=Math.imul(O$,P$),s0=Math.imul(O$,O),s0=s0+Math.imul(c,P$)|0,I=Math.imul(c,O),v=v+Math.imul(p,e)|0,s0=s0+Math.imul(p,M$)|0,s0=s0+Math.imul(I$,e)|0,I=I+Math.imul(I$,M$)|0,v=v+Math.imul(X$,S$)|0,s0=s0+Math.imul(X$,F)|0,s0=s0+Math.imul(w,S$)|0,I=I+Math.imul(w,F)|0;var w$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(w$>>>26)|0,w$&=67108863,v=Math.imul(O$,e),s0=Math.imul(O$,M$),s0=s0+Math.imul(c,e)|0,I=Math.imul(c,M$),v=v+Math.imul(p,S$)|0,s0=s0+Math.imul(p,F)|0,s0=s0+Math.imul(I$,S$)|0,I=I+Math.imul(I$,F)|0;var G0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(G0>>>26)|0,G0&=67108863,v=Math.imul(O$,S$),s0=Math.imul(O$,F),s0=s0+Math.imul(c,S$)|0,I=Math.imul(c,F);var p$=(n0+v|0)+((s0&8191)<<13)|0;return n0=(I+(s0>>>13)|0)+(p$>>>26)|0,p$&=67108863,S[0]=v$,S[1]=r,S[2]=q$,S[3]=i,S[4]=j$,S[5]=k$,S[6]=g$,S[7]=_$,S[8]=N$,S[9]=$0,S[10]=x$,S[11]=Q0,S[12]=B$,S[13]=Y0,S[14]=y$,S[15]=Z0,S[16]=w$,S[17]=G0,S[18]=p$,n0!==0&&(S[19]=n0,o0.length++),o0};Math.imul||(p0=E);function T(l0,z,o0){o0.negative=z.negative^l0.negative,o0.length=l0.length+z.length;for(var M=0,u0=0,S=0;S>>26)|0,u0+=n0>>>26,n0&=67108863}o0.words[S]=v,M=n0,n0=u0}return M!==0?o0.words[S]=M:o0.length--,o0.strip()}function f0(l0,z,o0){var M=new D;return M.mulp(l0,z,o0)}Z.prototype.mulTo=function(l0,z){var o0,M=this.length+l0.length;return this.length===10&&l0.length===10?o0=p0(this,l0,z):M<63?o0=E(this,l0,z):M<1024?o0=T(this,l0,z):o0=f0(this,l0,z),o0};function D(l0,z){this.x=l0,this.y=z}D.prototype.makeRBT=function(l0){for(var z=new Array(l0),o0=Z.prototype._countBits(l0)-1,M=0;M>=1;return M},D.prototype.permute=function(l0,z,o0,M,u0,S){for(var n0=0;n0>>1)u0++;return 1<>>13,o0[2*S+1]=u0&8191,u0=u0>>>13;for(S=2*z;S>=26,z+=M/67108864|0,z+=u0>>>26,this.words[o0]=u0&67108863}return z!==0&&(this.words[o0]=z,this.length++),this},Z.prototype.muln=function(l0){return this.clone().imuln(l0)},Z.prototype.sqr=function(){return this.mul(this)},Z.prototype.isqr=function(){return this.imul(this.clone())},Z.prototype.pow=function(l0){var z=w0(l0);if(z.length===0)return new Z(1);for(var o0=this,M=0;M=0);var z=l0%26,o0=(l0-z)/26,M=67108863>>>26-z<<26-z,u0;if(z!==0){var S=0;for(u0=0;u0>>26-z}S&&(this.words[u0]=S,this.length++)}if(o0!==0){for(u0=this.length-1;u0>=0;u0--)this.words[u0+o0]=this.words[u0];for(u0=0;u0=0);var M;z?M=(z-z%26)/26:M=0;var u0=l0%26,S=Math.min((l0-u0)/26,this.length),n0=67108863^67108863>>>u0<S)for(this.length-=S,s0=0;s0=0&&(I!==0||s0>=M);s0--){var t0=this.words[s0]|0;this.words[s0]=I<<26-u0|t0>>>u0,I=t0&n0}return v&&I!==0&&(v.words[v.length++]=I),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},Z.prototype.ishrn=function(l0,z,o0){return Y(this.negative===0),this.iushrn(l0,z,o0)},Z.prototype.shln=function(l0){return this.clone().ishln(l0)},Z.prototype.ushln=function(l0){return this.clone().iushln(l0)},Z.prototype.shrn=function(l0){return this.clone().ishrn(l0)},Z.prototype.ushrn=function(l0){return this.clone().iushrn(l0)},Z.prototype.testn=function(l0){Y(typeof l0=="number"&&l0>=0);var z=l0%26,o0=(l0-z)/26,M=1<=0);var z=l0%26,o0=(l0-z)/26;if(Y(this.negative===0,"imaskn works only with positive numbers"),this.length<=o0)return this;if(z!==0&&o0++,this.length=Math.min(o0,this.length),z!==0){var M=67108863^67108863>>>z<=67108864;z++)this.words[z]-=67108864,z===this.length-1?this.words[z+1]=1:this.words[z+1]++;return this.length=Math.max(this.length,z+1),this},Z.prototype.isubn=function(l0){if(Y(typeof l0=="number"),Y(l0<67108864),l0<0)return this.iaddn(-l0);if(this.negative!==0)return this.negative=0,this.iaddn(l0),this.negative=1,this;if(this.words[0]-=l0,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var z=0;z>26)-(v/67108864|0),this.words[u0+o0]=S&67108863}for(;u0>26,this.words[u0+o0]=S&67108863;if(n0===0)return this.strip();for(Y(n0===-1),n0=0,u0=0;u0>26,this.words[u0]=S&67108863;return this.negative=1,this.strip()},Z.prototype._wordDiv=function(l0,z){var o0=this.length-l0.length,M=this.clone(),u0=l0,S=u0.words[u0.length-1]|0,n0=this._countBits(S);o0=26-n0,o0!==0&&(u0=u0.ushln(o0),M.iushln(o0),S=u0.words[u0.length-1]|0);var v=M.length-u0.length,s0;if(z!=="mod"){s0=new Z(null),s0.length=v+1,s0.words=new Array(s0.length);for(var I=0;I=0;m0--){var a0=(M.words[u0.length+m0]|0)*67108864+(M.words[u0.length+m0-1]|0);for(a0=Math.min(a0/S|0,67108863),M._ishlnsubmul(u0,a0,m0);M.negative!==0;)a0--,M.negative=0,M._ishlnsubmul(u0,1,m0),M.isZero()||(M.negative^=1);s0&&(s0.words[m0]=a0)}return s0&&s0.strip(),M.strip(),z!=="div"&&o0!==0&&M.iushrn(o0),{div:s0||null,mod:M}},Z.prototype.divmod=function(l0,z,o0){if(Y(!l0.isZero()),this.isZero())return{div:new Z(0),mod:new Z(0)};var M,u0,S;return this.negative!==0&&l0.negative===0?(S=this.neg().divmod(l0,z),z!=="mod"&&(M=S.div.neg()),z!=="div"&&(u0=S.mod.neg(),o0&&u0.negative!==0&&u0.iadd(l0)),{div:M,mod:u0}):this.negative===0&&l0.negative!==0?(S=this.divmod(l0.neg(),z),z!=="mod"&&(M=S.div.neg()),{div:M,mod:S.mod}):(this.negative&l0.negative)!==0?(S=this.neg().divmod(l0.neg(),z),z!=="div"&&(u0=S.mod.neg(),o0&&u0.negative!==0&&u0.isub(l0)),{div:S.div,mod:u0}):l0.length>this.length||this.cmp(l0)<0?{div:new Z(0),mod:this}:l0.length===1?z==="div"?{div:this.divn(l0.words[0]),mod:null}:z==="mod"?{div:null,mod:new Z(this.modn(l0.words[0]))}:{div:this.divn(l0.words[0]),mod:new Z(this.modn(l0.words[0]))}:this._wordDiv(l0,z)},Z.prototype.div=function(l0){return this.divmod(l0,"div",!1).div},Z.prototype.mod=function(l0){return this.divmod(l0,"mod",!1).mod},Z.prototype.umod=function(l0){return this.divmod(l0,"mod",!0).mod},Z.prototype.divRound=function(l0){var z=this.divmod(l0);if(z.mod.isZero())return z.div;var o0=z.div.negative!==0?z.mod.isub(l0):z.mod,M=l0.ushrn(1),u0=l0.andln(1),S=o0.cmp(M);return S<0||u0===1&&S===0?z.div:z.div.negative!==0?z.div.isubn(1):z.div.iaddn(1)},Z.prototype.modn=function(l0){Y(l0<=67108863);for(var z=(1<<26)%l0,o0=0,M=this.length-1;M>=0;M--)o0=(z*o0+(this.words[M]|0))%l0;return o0},Z.prototype.idivn=function(l0){Y(l0<=67108863);for(var z=0,o0=this.length-1;o0>=0;o0--){var M=(this.words[o0]|0)+z*67108864;this.words[o0]=M/l0|0,z=M%l0}return this.strip()},Z.prototype.divn=function(l0){return this.clone().idivn(l0)},Z.prototype.egcd=function(l0){Y(l0.negative===0),Y(!l0.isZero());var z=this,o0=l0.clone();z.negative!==0?z=z.umod(l0):z=z.clone();for(var M=new Z(1),u0=new Z(0),S=new Z(0),n0=new Z(1),v=0;z.isEven()&&o0.isEven();)z.iushrn(1),o0.iushrn(1),++v;for(var s0=o0.clone(),I=z.clone();!z.isZero();){for(var t0=0,m0=1;(z.words[0]&m0)===0&&t0<26;++t0,m0<<=1);if(t0>0)for(z.iushrn(t0);t0-- >0;)(M.isOdd()||u0.isOdd())&&(M.iadd(s0),u0.isub(I)),M.iushrn(1),u0.iushrn(1);for(var a0=0,q=1;(o0.words[0]&q)===0&&a0<26;++a0,q<<=1);if(a0>0)for(o0.iushrn(a0);a0-- >0;)(S.isOdd()||n0.isOdd())&&(S.iadd(s0),n0.isub(I)),S.iushrn(1),n0.iushrn(1);z.cmp(o0)>=0?(z.isub(o0),M.isub(S),u0.isub(n0)):(o0.isub(z),S.isub(M),n0.isub(u0))}return{a:S,b:n0,gcd:o0.iushln(v)}},Z.prototype._invmp=function(l0){Y(l0.negative===0),Y(!l0.isZero());var z=this,o0=l0.clone();z.negative!==0?z=z.umod(l0):z=z.clone();for(var M=new Z(1),u0=new Z(0),S=o0.clone();z.cmpn(1)>0&&o0.cmpn(1)>0;){for(var n0=0,v=1;(z.words[0]&v)===0&&n0<26;++n0,v<<=1);if(n0>0)for(z.iushrn(n0);n0-- >0;)M.isOdd()&&M.iadd(S),M.iushrn(1);for(var s0=0,I=1;(o0.words[0]&I)===0&&s0<26;++s0,I<<=1);if(s0>0)for(o0.iushrn(s0);s0-- >0;)u0.isOdd()&&u0.iadd(S),u0.iushrn(1);z.cmp(o0)>=0?(z.isub(o0),M.isub(u0)):(o0.isub(z),u0.isub(M))}var t0;return z.cmpn(1)===0?t0=M:t0=u0,t0.cmpn(0)<0&&t0.iadd(l0),t0},Z.prototype.gcd=function(l0){if(this.isZero())return l0.abs();if(l0.isZero())return this.abs();var z=this.clone(),o0=l0.clone();z.negative=0,o0.negative=0;for(var M=0;z.isEven()&&o0.isEven();M++)z.iushrn(1),o0.iushrn(1);do{for(;z.isEven();)z.iushrn(1);for(;o0.isEven();)o0.iushrn(1);var u0=z.cmp(o0);if(u0<0){var S=z;z=o0,o0=S}else if(u0===0||o0.cmpn(1)===0)break;z.isub(o0)}while(!0);return o0.iushln(M)},Z.prototype.invm=function(l0){return this.egcd(l0).a.umod(l0)},Z.prototype.isEven=function(){return(this.words[0]&1)===0},Z.prototype.isOdd=function(){return(this.words[0]&1)===1},Z.prototype.andln=function(l0){return this.words[0]&l0},Z.prototype.bincn=function(l0){Y(typeof l0=="number");var z=l0%26,o0=(l0-z)/26,M=1<>>26,n0&=67108863,this.words[S]=n0}return u0!==0&&(this.words[S]=u0,this.length++),this},Z.prototype.isZero=function(){return this.length===1&&this.words[0]===0},Z.prototype.cmpn=function(l0){var z=l0<0;if(this.negative!==0&&!z)return-1;if(this.negative===0&&z)return 1;this.strip();var o0;if(this.length>1)o0=1;else{z&&(l0=-l0),Y(l0<=67108863,"Number is too big");var M=this.words[0]|0;o0=M===l0?0:Ml0.length)return 1;if(this.length=0;o0--){var M=this.words[o0]|0,u0=l0.words[o0]|0;if(M!==u0){Mu0&&(z=1);break}}return z},Z.prototype.gtn=function(l0){return this.cmpn(l0)===1},Z.prototype.gt=function(l0){return this.cmp(l0)===1},Z.prototype.gten=function(l0){return this.cmpn(l0)>=0},Z.prototype.gte=function(l0){return this.cmp(l0)>=0},Z.prototype.ltn=function(l0){return this.cmpn(l0)===-1},Z.prototype.lt=function(l0){return this.cmp(l0)===-1},Z.prototype.lten=function(l0){return this.cmpn(l0)<=0},Z.prototype.lte=function(l0){return this.cmp(l0)<=0},Z.prototype.eqn=function(l0){return this.cmpn(l0)===0},Z.prototype.eq=function(l0){return this.cmp(l0)===0},Z.red=function(l0){return new b0(l0)},Z.prototype.toRed=function(l0){return Y(!this.red,"Already a number in reduction context"),Y(this.negative===0,"red works only with positives"),l0.convertTo(this)._forceRed(l0)},Z.prototype.fromRed=function(){return Y(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},Z.prototype._forceRed=function(l0){return this.red=l0,this},Z.prototype.forceRed=function(l0){return Y(!this.red,"Already a number in reduction context"),this._forceRed(l0)},Z.prototype.redAdd=function(l0){return Y(this.red,"redAdd works only with red numbers"),this.red.add(this,l0)},Z.prototype.redIAdd=function(l0){return Y(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,l0)},Z.prototype.redSub=function(l0){return Y(this.red,"redSub works only with red numbers"),this.red.sub(this,l0)},Z.prototype.redISub=function(l0){return Y(this.red,"redISub works only with red numbers"),this.red.isub(this,l0)},Z.prototype.redShl=function(l0){return Y(this.red,"redShl works only with red numbers"),this.red.shl(this,l0)},Z.prototype.redMul=function(l0){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,l0),this.red.mul(this,l0)},Z.prototype.redIMul=function(l0){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,l0),this.red.imul(this,l0)},Z.prototype.redSqr=function(){return Y(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},Z.prototype.redISqr=function(){return Y(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},Z.prototype.redSqrt=function(){return Y(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},Z.prototype.redInvm=function(){return Y(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},Z.prototype.redNeg=function(){return Y(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},Z.prototype.redPow=function(l0){return Y(this.red&&!l0.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,l0)};var c0={k256:null,p224:null,p192:null,p25519:null};function C(l0,z){this.name=l0,this.p=new Z(z,16),this.n=this.p.bitLength(),this.k=new Z(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}C.prototype._tmp=function(){var l0=new Z(null);return l0.words=new Array(Math.ceil(this.n/13)),l0},C.prototype.ireduce=function(l0){var z=l0,o0;do this.split(z,this.tmp),z=this.imulK(z),z=z.iadd(this.tmp),o0=z.bitLength();while(o0>this.n);var M=o00?z.isub(this.p):z.strip!==void 0?z.strip():z._strip(),z},C.prototype.split=function(l0,z){l0.iushrn(this.n,0,z)},C.prototype.imulK=function(l0){return l0.imul(this.k)};function h0(){C.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}$(h0,C),h0.prototype.split=function(l0,z){for(var o0=4194303,M=Math.min(l0.length,9),u0=0;u0>>22,S=n0}S>>>=22,l0.words[u0-10]=S,S===0&&l0.length>10?l0.length-=10:l0.length-=9},h0.prototype.imulK=function(l0){l0.words[l0.length]=0,l0.words[l0.length+1]=0,l0.length+=2;for(var z=0,o0=0;o0>>=26,l0.words[o0]=u0,z=M}return z!==0&&(l0.words[l0.length++]=z),l0},Z._prime=function(l0){if(c0[l0])return c0[l0];var z;if(l0==="k256")z=new h0;else if(l0==="p224")z=new L;else if(l0==="p192")z=new d0;else if(l0==="p25519")z=new R;else throw new Error("Unknown prime "+l0);return c0[l0]=z,z};function b0(l0){if(typeof l0=="string"){var z=Z._prime(l0);this.m=z.p,this.prime=z}else Y(l0.gtn(1),"modulus must be greater than 1"),this.m=l0,this.prime=null}b0.prototype._verify1=function(l0){Y(l0.negative===0,"red works only with positives"),Y(l0.red,"red works only with red numbers")},b0.prototype._verify2=function(l0,z){Y((l0.negative|z.negative)===0,"red works only with positives"),Y(l0.red&&l0.red===z.red,"red works only with red numbers")},b0.prototype.imod=function(l0){return this.prime?this.prime.ireduce(l0)._forceRed(this):l0.umod(this.m)._forceRed(this)},b0.prototype.neg=function(l0){return l0.isZero()?l0.clone():this.m.sub(l0)._forceRed(this)},b0.prototype.add=function(l0,z){this._verify2(l0,z);var o0=l0.add(z);return o0.cmp(this.m)>=0&&o0.isub(this.m),o0._forceRed(this)},b0.prototype.iadd=function(l0,z){this._verify2(l0,z);var o0=l0.iadd(z);return o0.cmp(this.m)>=0&&o0.isub(this.m),o0},b0.prototype.sub=function(l0,z){this._verify2(l0,z);var o0=l0.sub(z);return o0.cmpn(0)<0&&o0.iadd(this.m),o0._forceRed(this)},b0.prototype.isub=function(l0,z){this._verify2(l0,z);var o0=l0.isub(z);return o0.cmpn(0)<0&&o0.iadd(this.m),o0},b0.prototype.shl=function(l0,z){return this._verify1(l0),this.imod(l0.ushln(z))},b0.prototype.imul=function(l0,z){return this._verify2(l0,z),this.imod(l0.imul(z))},b0.prototype.mul=function(l0,z){return this._verify2(l0,z),this.imod(l0.mul(z))},b0.prototype.isqr=function(l0){return this.imul(l0,l0.clone())},b0.prototype.sqr=function(l0){return this.mul(l0,l0)},b0.prototype.sqrt=function(l0){if(l0.isZero())return l0.clone();var z=this.m.andln(3);if(Y(z%2===1),z===3){var o0=this.m.add(new Z(1)).iushrn(2);return this.pow(l0,o0)}for(var M=this.m.subn(1),u0=0;!M.isZero()&&M.andln(1)===0;)u0++,M.iushrn(1);Y(!M.isZero());var S=new Z(1).toRed(this),n0=S.redNeg(),v=this.m.subn(1).iushrn(1),s0=this.m.bitLength();for(s0=new Z(2*s0*s0).toRed(this);this.pow(s0,v).cmp(n0)!==0;)s0.redIAdd(n0);for(var I=this.pow(s0,M),t0=this.pow(l0,M.addn(1).iushrn(1)),m0=this.pow(l0,M),a0=u0;m0.cmp(S)!==0;){for(var q=m0,e0=0;q.cmp(S)!==0;e0++)q=q.redSqr();Y(e0=0;u0--){for(var I=z.words[u0],t0=s0-1;t0>=0;t0--){var m0=I>>t0&1;if(S!==M[0]&&(S=this.sqr(S)),m0===0&&n0===0){v=0;continue}n0<<=1,n0|=m0,v++,!(v!==o0&&(u0!==0||t0!==0))&&(S=this.mul(S,M[n0]),v=0,n0=0)}s0=26}return S},b0.prototype.convertTo=function(l0){var z=l0.umod(this.m);return z===l0?z.clone():z},b0.prototype.convertFrom=function(l0){var z=l0.clone();return z.red=null,z},Z.mont=function(l0){return new P(l0)};function P(l0){b0.call(this,l0),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new Z(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}$(P,b0),P.prototype.convertTo=function(l0){return this.imod(l0.ushln(this.shift))},P.prototype.convertFrom=function(l0){var z=this.imod(l0.mul(this.rinv));return z.red=null,z},P.prototype.imul=function(l0,z){if(l0.isZero()||z.isZero())return l0.words[0]=0,l0.length=1,l0;var o0=l0.imul(z),M=o0.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u0=o0.isub(M).iushrn(this.shift),S=u0;return u0.cmp(this.m)>=0?S=u0.isub(this.m):u0.cmpn(0)<0&&(S=u0.iadd(this.m)),S._forceRed(this)},P.prototype.mul=function(l0,z){if(l0.isZero()||z.isZero())return new Z(0)._forceRed(this);var o0=l0.mul(z),M=o0.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u0=o0.isub(M).iushrn(this.shift),S=u0;return u0.cmp(this.m)>=0?S=u0.isub(this.m):u0.cmpn(0)<0&&(S=u0.iadd(this.m)),S._forceRed(this)},P.prototype.invm=function(l0){var z=this.imod(l0._invmp(this.m).mul(this.r2));return z._forceRed(this)}})(typeof K>"u"||K,X)}}),NQ=$Q({"(disabled):node_modules/crypto-browserify/index.js"(){}}),xQ=$Q({"node_modules/brorand/index.js"(X,K){var x0;K.exports=function(Y){return x0||(x0=new G(null)),x0.generate(Y)};function G(Y){this.rand=Y}K.exports.Rand=G,G.prototype.generate=function(Y){return this._rand(Y)},G.prototype._rand=function(Y){var $=new c$(Y);return d$.getRandomValues($),$}}}),BQ=$Q({"node_modules/miller-rabin/lib/mr.js"(X,K){var x0=_Q(),G=xQ();function Y($){this.rand=$||new G.Rand}K.exports=Y,Y.create=function($){return new Y($)},Y.prototype._randbelow=function($){var Z=$.bitLength(),Q=Math.ceil(Z/8);do var U=new x0(this.rand.generate(Q));while(U.cmp($)>=0);return U},Y.prototype._randrange=function($,Z){var Q=Z.sub($);return $.add(this._randbelow(Q))},Y.prototype.test=function($,Z,Q){var U=$.bitLength(),V=x0.mont($),B0=new x0(1).toRed(V);Z||(Z=Math.max(1,U/48|0));for(var H=$.subn(1),y0=0;!H.testn(y0);y0++);for(var W=$.shrn(y0),w0=H.toRed(V),E=!0;Z>0;Z--){var p0=this._randrange(new x0(2),H);Q&&Q(p0);var T=p0.toRed(V).redPow(W);if(!(T.cmp(B0)===0||T.cmp(w0)===0)){for(var f0=1;f00;Z--){var w0=this._randrange(new x0(2),B0),E=$.gcd(w0);if(E.cmpn(1)!==0)return E;var p0=w0.toRed(U).redPow(y0);if(!(p0.cmp(V)===0||p0.cmp(W)===0)){for(var T=1;TL;)R.ishrn(1);if(R.isEven()&&R.iadd(Q),R.testn(1)||R.iadd(U),d0.cmp(U)){if(!d0.cmp(V))for(;R.mod(y0).cmp(W);)R.iadd(p0)}else for(;R.mod(Y).cmp(E);)R.iadd(p0);if(b0=R.shrn(1),c0(b0)&&c0(R)&&C(b0)&&C(R)&&Z.test(b0)&&Z.test(R))return R}}}}),wQ=$Q({"node_modules/diffie-hellman/lib/primes.json"(X,K){K.exports={modp1:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},modp2:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},modp5:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},modp14:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},modp15:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},modp16:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},modp17:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},modp18:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}}}),pQ=$Q({"node_modules/diffie-hellman/lib/dh.js"(X,K){var x0=A(),G=BQ(),Y=new G,$=new x0(24),Z=new x0(11),Q=new x0(10),U=new x0(3),V=new x0(7),B0=yQ(),H=ZQ();K.exports=p0;function y0(f0,D){return D=D||"utf8",c$.isBuffer(f0)||(f0=new c$(f0,D)),this._pub=new x0(f0),this}function W(f0,D){return D=D||"utf8",c$.isBuffer(f0)||(f0=new c$(f0,D)),this._priv=new x0(f0),this}var w0={};function E(f0,D){var c0=D.toString("hex"),C=[c0,f0.toString(16)].join("_");if(C in w0)return w0[C];var h0=0;if(f0.isEven()||!B0.simpleSieve||!B0.fermatTest(f0)||!Y.test(f0))return h0+=1,c0==="02"||c0==="05"?h0+=8:h0+=4,w0[C]=h0,h0;Y.test(f0.shrn(1))||(h0+=2);var L;switch(c0){case"02":f0.mod($).cmp(Z)&&(h0+=8);break;case"05":L=f0.mod(Q),L.cmp(U)&&L.cmp(V)&&(h0+=8);break;default:h0+=4}return w0[C]=h0,h0}function p0(f0,D,c0){this.setGenerator(D),this.__prime=new x0(f0),this._prime=x0.mont(this.__prime),this._primeLen=f0.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,c0?(this.setPublicKey=y0,this.setPrivateKey=W):this._primeCode=8}Object.defineProperty(p0.prototype,"verifyError",{enumerable:!0,get:function(){return typeof this._primeCode!="number"&&(this._primeCode=E(this.__prime,this.__gen)),this._primeCode}}),p0.prototype.generateKeys=function(){return this._priv||(this._priv=new x0(H(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},p0.prototype.computeSecret=function(f0){f0=new x0(f0),f0=f0.toRed(this._prime);var D=f0.redPow(this._priv).fromRed(),c0=new c$(D.toArray()),C=this.getPrime();if(c0.length0?M:u0},Z.min=function(M,u0){return M.cmp(u0)<0?M:u0},Z.prototype._init=function(M,u0,S){if(typeof M=="number")return this._initNumber(M,u0,S);if(typeof M=="object")return this._initArray(M,u0,S);u0==="hex"&&(u0=16),Y(u0===(u0|0)&&u0>=2&&u0<=36),M=M.toString().replace(/\s+/g,"");var n0=0;M[0]==="-"&&(n0++,this.negative=1),n0=0;n0-=3)s0=M[n0]|M[n0-1]<<8|M[n0-2]<<16,this.words[v]|=s0<>>26-I&67108863,I+=24,I>=26&&(I-=26,v++);else if(S==="le")for(n0=0,v=0;n0>>26-I&67108863,I+=24,I>=26&&(I-=26,v++);return this._strip()};function U(M,u0){var S=M.charCodeAt(u0);if(S>=48&&S<=57)return S-48;if(S>=65&&S<=70)return S-55;if(S>=97&&S<=102)return S-87;Y(!1,"Invalid character in "+M)}function V(M,u0,S){var n0=U(M,S);return S-1>=u0&&(n0|=U(M,S-1)<<4),n0}Z.prototype._parseHex=function(M,u0,S){this.length=Math.ceil((M.length-u0)/6),this.words=new Array(this.length);for(var n0=0;n0=u0;n0-=2)I=V(M,u0,n0)<=18?(v-=18,s0+=1,this.words[s0]|=I>>>26):v+=8;else{var t0=M.length-u0;for(n0=t0%2===0?u0+1:u0;n0=18?(v-=18,s0+=1,this.words[s0]|=I>>>26):v+=8}this._strip()};function B0(M,u0,S,n0){for(var v=0,s0=0,I=Math.min(M.length,S),t0=u0;t0=49?s0=m0-49+10:m0>=17?s0=m0-17+10:s0=m0,Y(m0>=0&&s01&&this.words[this.length-1]===0;)this.length--;return this._normSign()},Z.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{Z.prototype[Symbol.for("nodejs.util.inspect.custom")]=y0}catch{Z.prototype.inspect=y0}else Z.prototype.inspect=y0;function y0(){return(this.red?""}var W=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],w0=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],E=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];Z.prototype.toString=function(M,u0){M=M||10,u0=u0|0||1;var S;if(M===16||M==="hex"){S="";for(var n0=0,v=0,s0=0;s0>>24-n0&16777215,n0+=2,n0>=26&&(n0-=26,s0--),v!==0||s0!==this.length-1?S=W[6-t0.length]+t0+S:S=t0+S}for(v!==0&&(S=v.toString(16)+S);S.length%u0!==0;)S="0"+S;return this.negative!==0&&(S="-"+S),S}if(M===(M|0)&&M>=2&&M<=36){var m0=w0[M],a0=E[M];S="";var q=this.clone();for(q.negative=0;!q.isZero();){var e0=q.modrn(a0).toString(M);q=q.idivn(a0),q.isZero()?S=e0+S:S=W[m0-e0.length]+e0+S}for(this.isZero()&&(S="0"+S);S.length%u0!==0;)S="0"+S;return this.negative!==0&&(S="-"+S),S}Y(!1,"Base should be between 2 and 36")},Z.prototype.toNumber=function(){var M=this.words[0];return this.length===2?M+=this.words[1]*67108864:this.length===3&&this.words[2]===1?M+=4503599627370496+this.words[1]*67108864:this.length>2&&Y(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-M:M},Z.prototype.toJSON=function(){return this.toString(16,2)},Q&&(Z.prototype.toBuffer=function(M,u0){return this.toArrayLike(Q,M,u0)}),Z.prototype.toArray=function(M,u0){return this.toArrayLike(Array,M,u0)};var p0=function(M,u0){return M.allocUnsafe?M.allocUnsafe(u0):new M(u0)};Z.prototype.toArrayLike=function(M,u0,S){this._strip();var n0=this.byteLength(),v=S||Math.max(1,n0);Y(n0<=v,"byte array longer than desired length"),Y(v>0,"Requested array length <= 0");var s0=p0(M,v),I=u0==="le"?"LE":"BE";return this["_toArrayLike"+I](s0,n0),s0},Z.prototype._toArrayLikeLE=function(M,u0){for(var S=0,n0=0,v=0,s0=0;v>8&255),S>16&255),s0===6?(S>24&255),n0=0,s0=0):(n0=I>>>24,s0+=2)}if(S=0&&(M[S--]=I>>8&255),S>=0&&(M[S--]=I>>16&255),s0===6?(S>=0&&(M[S--]=I>>24&255),n0=0,s0=0):(n0=I>>>24,s0+=2)}if(S>=0)for(M[S--]=n0;S>=0;)M[S--]=0},Math.clz32?Z.prototype._countBits=function(M){return 32-Math.clz32(M)}:Z.prototype._countBits=function(M){var u0=M,S=0;return u0>=4096&&(S+=13,u0>>>=13),u0>=64&&(S+=7,u0>>>=7),u0>=8&&(S+=4,u0>>>=4),u0>=2&&(S+=2,u0>>>=2),S+u0},Z.prototype._zeroBits=function(M){if(M===0)return 26;var u0=M,S=0;return(u0&8191)===0&&(S+=13,u0>>>=13),(u0&127)===0&&(S+=7,u0>>>=7),(u0&15)===0&&(S+=4,u0>>>=4),(u0&3)===0&&(S+=2,u0>>>=2),(u0&1)===0&&S++,S},Z.prototype.bitLength=function(){var M=this.words[this.length-1],u0=this._countBits(M);return(this.length-1)*26+u0};function T(M){for(var u0=new Array(M.bitLength()),S=0;S>>v&1}return u0}Z.prototype.zeroBits=function(){if(this.isZero())return 0;for(var M=0,u0=0;u0M.length?this.clone().ior(M):M.clone().ior(this)},Z.prototype.uor=function(M){return this.length>M.length?this.clone().iuor(M):M.clone().iuor(this)},Z.prototype.iuand=function(M){var u0;this.length>M.length?u0=M:u0=this;for(var S=0;SM.length?this.clone().iand(M):M.clone().iand(this)},Z.prototype.uand=function(M){return this.length>M.length?this.clone().iuand(M):M.clone().iuand(this)},Z.prototype.iuxor=function(M){var u0,S;this.length>M.length?(u0=this,S=M):(u0=M,S=this);for(var n0=0;n0M.length?this.clone().ixor(M):M.clone().ixor(this)},Z.prototype.uxor=function(M){return this.length>M.length?this.clone().iuxor(M):M.clone().iuxor(this)},Z.prototype.inotn=function(M){Y(typeof M=="number"&&M>=0);var u0=Math.ceil(M/26)|0,S=M%26;this._expand(u0),S>0&&u0--;for(var n0=0;n00&&(this.words[n0]=~this.words[n0]&67108863>>26-S),this._strip()},Z.prototype.notn=function(M){return this.clone().inotn(M)},Z.prototype.setn=function(M,u0){Y(typeof M=="number"&&M>=0);var S=M/26|0,n0=M%26;return this._expand(S+1),u0?this.words[S]=this.words[S]|1<M.length?(S=this,n0=M):(S=M,n0=this);for(var v=0,s0=0;s0>>26;for(;v!==0&&s0>>26;if(this.length=S.length,v!==0)this.words[this.length]=v,this.length++;else if(S!==this)for(;s0M.length?this.clone().iadd(M):M.clone().iadd(this)},Z.prototype.isub=function(M){if(M.negative!==0){M.negative=0;var u0=this.iadd(M);return M.negative=1,u0._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(M),this.negative=1,this._normSign();var S=this.cmp(M);if(S===0)return this.negative=0,this.length=1,this.words[0]=0,this;var n0,v;S>0?(n0=this,v=M):(n0=M,v=this);for(var s0=0,I=0;I>26,this.words[I]=u0&67108863;for(;s0!==0&&I>26,this.words[I]=u0&67108863;if(s0===0&&I>>26,e0=m0&67108863,r0=Math.min(a0,u0.length-1),i0=Math.max(0,a0-M.length+1);i0<=r0;i0++){var j=a0-i0|0;v=M.words[j]|0,s0=u0.words[i0]|0,I=v*s0+e0,q+=I/67108864|0,e0=I&67108863}S.words[a0]=e0|0,m0=q|0}return m0!==0?S.words[a0]=m0|0:S.length--,S._strip()}var D=function(M,u0,S){var n0=M.words,v=u0.words,s0=S.words,I=0,t0,m0,a0,q=n0[0]|0,e0=q&8191,r0=q>>>13,i0=n0[1]|0,j=i0&8191,$$=i0>>>13,k=n0[2]|0,Q$=k&8191,g=k>>>13,Y$=n0[3]|0,_=Y$&8191,Z$=Y$>>>13,N=n0[4]|0,G$=N&8191,x=N>>>13,V$=n0[5]|0,B=V$&8191,U$=V$>>>13,y=n0[6]|0,X$=y&8191,w=y>>>13,K$=n0[7]|0,p=K$&8191,I$=K$>>>13,f=n0[8]|0,O$=f&8191,c=f>>>13,J$=n0[9]|0,h=J$&8191,F$=J$>>>13,d=v[0]|0,A$=d&8191,b=d>>>13,H$=v[1]|0,l=H$&8191,W$=H$>>>13,o=v[2]|0,E$=o&8191,u=o>>>13,T$=v[3]|0,n=T$&8191,D$=T$>>>13,s=v[4]|0,C$=s&8191,t=s>>>13,L$=v[5]|0,m=L$&8191,R$=L$>>>13,a=v[6]|0,P$=a&8191,O=a>>>13,z$=v[7]|0,e=z$&8191,M$=z$>>>13,J=v[8]|0,S$=J&8191,F=J>>>13,v$=v[9]|0,r=v$&8191,q$=v$>>>13;S.negative=M.negative^u0.negative,S.length=19,t0=Math.imul(e0,A$),m0=Math.imul(e0,b),m0=m0+Math.imul(r0,A$)|0,a0=Math.imul(r0,b);var i=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(i>>>26)|0,i&=67108863,t0=Math.imul(j,A$),m0=Math.imul(j,b),m0=m0+Math.imul($$,A$)|0,a0=Math.imul($$,b),t0=t0+Math.imul(e0,l)|0,m0=m0+Math.imul(e0,W$)|0,m0=m0+Math.imul(r0,l)|0,a0=a0+Math.imul(r0,W$)|0;var j$=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(j$>>>26)|0,j$&=67108863,t0=Math.imul(Q$,A$),m0=Math.imul(Q$,b),m0=m0+Math.imul(g,A$)|0,a0=Math.imul(g,b),t0=t0+Math.imul(j,l)|0,m0=m0+Math.imul(j,W$)|0,m0=m0+Math.imul($$,l)|0,a0=a0+Math.imul($$,W$)|0,t0=t0+Math.imul(e0,E$)|0,m0=m0+Math.imul(e0,u)|0,m0=m0+Math.imul(r0,E$)|0,a0=a0+Math.imul(r0,u)|0;var k$=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(k$>>>26)|0,k$&=67108863,t0=Math.imul(_,A$),m0=Math.imul(_,b),m0=m0+Math.imul(Z$,A$)|0,a0=Math.imul(Z$,b),t0=t0+Math.imul(Q$,l)|0,m0=m0+Math.imul(Q$,W$)|0,m0=m0+Math.imul(g,l)|0,a0=a0+Math.imul(g,W$)|0,t0=t0+Math.imul(j,E$)|0,m0=m0+Math.imul(j,u)|0,m0=m0+Math.imul($$,E$)|0,a0=a0+Math.imul($$,u)|0,t0=t0+Math.imul(e0,n)|0,m0=m0+Math.imul(e0,D$)|0,m0=m0+Math.imul(r0,n)|0,a0=a0+Math.imul(r0,D$)|0;var g$=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(g$>>>26)|0,g$&=67108863,t0=Math.imul(G$,A$),m0=Math.imul(G$,b),m0=m0+Math.imul(x,A$)|0,a0=Math.imul(x,b),t0=t0+Math.imul(_,l)|0,m0=m0+Math.imul(_,W$)|0,m0=m0+Math.imul(Z$,l)|0,a0=a0+Math.imul(Z$,W$)|0,t0=t0+Math.imul(Q$,E$)|0,m0=m0+Math.imul(Q$,u)|0,m0=m0+Math.imul(g,E$)|0,a0=a0+Math.imul(g,u)|0,t0=t0+Math.imul(j,n)|0,m0=m0+Math.imul(j,D$)|0,m0=m0+Math.imul($$,n)|0,a0=a0+Math.imul($$,D$)|0,t0=t0+Math.imul(e0,C$)|0,m0=m0+Math.imul(e0,t)|0,m0=m0+Math.imul(r0,C$)|0,a0=a0+Math.imul(r0,t)|0;var _$=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(_$>>>26)|0,_$&=67108863,t0=Math.imul(B,A$),m0=Math.imul(B,b),m0=m0+Math.imul(U$,A$)|0,a0=Math.imul(U$,b),t0=t0+Math.imul(G$,l)|0,m0=m0+Math.imul(G$,W$)|0,m0=m0+Math.imul(x,l)|0,a0=a0+Math.imul(x,W$)|0,t0=t0+Math.imul(_,E$)|0,m0=m0+Math.imul(_,u)|0,m0=m0+Math.imul(Z$,E$)|0,a0=a0+Math.imul(Z$,u)|0,t0=t0+Math.imul(Q$,n)|0,m0=m0+Math.imul(Q$,D$)|0,m0=m0+Math.imul(g,n)|0,a0=a0+Math.imul(g,D$)|0,t0=t0+Math.imul(j,C$)|0,m0=m0+Math.imul(j,t)|0,m0=m0+Math.imul($$,C$)|0,a0=a0+Math.imul($$,t)|0,t0=t0+Math.imul(e0,m)|0,m0=m0+Math.imul(e0,R$)|0,m0=m0+Math.imul(r0,m)|0,a0=a0+Math.imul(r0,R$)|0;var N$=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(N$>>>26)|0,N$&=67108863,t0=Math.imul(X$,A$),m0=Math.imul(X$,b),m0=m0+Math.imul(w,A$)|0,a0=Math.imul(w,b),t0=t0+Math.imul(B,l)|0,m0=m0+Math.imul(B,W$)|0,m0=m0+Math.imul(U$,l)|0,a0=a0+Math.imul(U$,W$)|0,t0=t0+Math.imul(G$,E$)|0,m0=m0+Math.imul(G$,u)|0,m0=m0+Math.imul(x,E$)|0,a0=a0+Math.imul(x,u)|0,t0=t0+Math.imul(_,n)|0,m0=m0+Math.imul(_,D$)|0,m0=m0+Math.imul(Z$,n)|0,a0=a0+Math.imul(Z$,D$)|0,t0=t0+Math.imul(Q$,C$)|0,m0=m0+Math.imul(Q$,t)|0,m0=m0+Math.imul(g,C$)|0,a0=a0+Math.imul(g,t)|0,t0=t0+Math.imul(j,m)|0,m0=m0+Math.imul(j,R$)|0,m0=m0+Math.imul($$,m)|0,a0=a0+Math.imul($$,R$)|0,t0=t0+Math.imul(e0,P$)|0,m0=m0+Math.imul(e0,O)|0,m0=m0+Math.imul(r0,P$)|0,a0=a0+Math.imul(r0,O)|0;var $0=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+($0>>>26)|0,$0&=67108863,t0=Math.imul(p,A$),m0=Math.imul(p,b),m0=m0+Math.imul(I$,A$)|0,a0=Math.imul(I$,b),t0=t0+Math.imul(X$,l)|0,m0=m0+Math.imul(X$,W$)|0,m0=m0+Math.imul(w,l)|0,a0=a0+Math.imul(w,W$)|0,t0=t0+Math.imul(B,E$)|0,m0=m0+Math.imul(B,u)|0,m0=m0+Math.imul(U$,E$)|0,a0=a0+Math.imul(U$,u)|0,t0=t0+Math.imul(G$,n)|0,m0=m0+Math.imul(G$,D$)|0,m0=m0+Math.imul(x,n)|0,a0=a0+Math.imul(x,D$)|0,t0=t0+Math.imul(_,C$)|0,m0=m0+Math.imul(_,t)|0,m0=m0+Math.imul(Z$,C$)|0,a0=a0+Math.imul(Z$,t)|0,t0=t0+Math.imul(Q$,m)|0,m0=m0+Math.imul(Q$,R$)|0,m0=m0+Math.imul(g,m)|0,a0=a0+Math.imul(g,R$)|0,t0=t0+Math.imul(j,P$)|0,m0=m0+Math.imul(j,O)|0,m0=m0+Math.imul($$,P$)|0,a0=a0+Math.imul($$,O)|0,t0=t0+Math.imul(e0,e)|0,m0=m0+Math.imul(e0,M$)|0,m0=m0+Math.imul(r0,e)|0,a0=a0+Math.imul(r0,M$)|0;var x$=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(x$>>>26)|0,x$&=67108863,t0=Math.imul(O$,A$),m0=Math.imul(O$,b),m0=m0+Math.imul(c,A$)|0,a0=Math.imul(c,b),t0=t0+Math.imul(p,l)|0,m0=m0+Math.imul(p,W$)|0,m0=m0+Math.imul(I$,l)|0,a0=a0+Math.imul(I$,W$)|0,t0=t0+Math.imul(X$,E$)|0,m0=m0+Math.imul(X$,u)|0,m0=m0+Math.imul(w,E$)|0,a0=a0+Math.imul(w,u)|0,t0=t0+Math.imul(B,n)|0,m0=m0+Math.imul(B,D$)|0,m0=m0+Math.imul(U$,n)|0,a0=a0+Math.imul(U$,D$)|0,t0=t0+Math.imul(G$,C$)|0,m0=m0+Math.imul(G$,t)|0,m0=m0+Math.imul(x,C$)|0,a0=a0+Math.imul(x,t)|0,t0=t0+Math.imul(_,m)|0,m0=m0+Math.imul(_,R$)|0,m0=m0+Math.imul(Z$,m)|0,a0=a0+Math.imul(Z$,R$)|0,t0=t0+Math.imul(Q$,P$)|0,m0=m0+Math.imul(Q$,O)|0,m0=m0+Math.imul(g,P$)|0,a0=a0+Math.imul(g,O)|0,t0=t0+Math.imul(j,e)|0,m0=m0+Math.imul(j,M$)|0,m0=m0+Math.imul($$,e)|0,a0=a0+Math.imul($$,M$)|0,t0=t0+Math.imul(e0,S$)|0,m0=m0+Math.imul(e0,F)|0,m0=m0+Math.imul(r0,S$)|0,a0=a0+Math.imul(r0,F)|0;var Q0=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(Q0>>>26)|0,Q0&=67108863,t0=Math.imul(h,A$),m0=Math.imul(h,b),m0=m0+Math.imul(F$,A$)|0,a0=Math.imul(F$,b),t0=t0+Math.imul(O$,l)|0,m0=m0+Math.imul(O$,W$)|0,m0=m0+Math.imul(c,l)|0,a0=a0+Math.imul(c,W$)|0,t0=t0+Math.imul(p,E$)|0,m0=m0+Math.imul(p,u)|0,m0=m0+Math.imul(I$,E$)|0,a0=a0+Math.imul(I$,u)|0,t0=t0+Math.imul(X$,n)|0,m0=m0+Math.imul(X$,D$)|0,m0=m0+Math.imul(w,n)|0,a0=a0+Math.imul(w,D$)|0,t0=t0+Math.imul(B,C$)|0,m0=m0+Math.imul(B,t)|0,m0=m0+Math.imul(U$,C$)|0,a0=a0+Math.imul(U$,t)|0,t0=t0+Math.imul(G$,m)|0,m0=m0+Math.imul(G$,R$)|0,m0=m0+Math.imul(x,m)|0,a0=a0+Math.imul(x,R$)|0,t0=t0+Math.imul(_,P$)|0,m0=m0+Math.imul(_,O)|0,m0=m0+Math.imul(Z$,P$)|0,a0=a0+Math.imul(Z$,O)|0,t0=t0+Math.imul(Q$,e)|0,m0=m0+Math.imul(Q$,M$)|0,m0=m0+Math.imul(g,e)|0,a0=a0+Math.imul(g,M$)|0,t0=t0+Math.imul(j,S$)|0,m0=m0+Math.imul(j,F)|0,m0=m0+Math.imul($$,S$)|0,a0=a0+Math.imul($$,F)|0,t0=t0+Math.imul(e0,r)|0,m0=m0+Math.imul(e0,q$)|0,m0=m0+Math.imul(r0,r)|0,a0=a0+Math.imul(r0,q$)|0;var B$=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(B$>>>26)|0,B$&=67108863,t0=Math.imul(h,l),m0=Math.imul(h,W$),m0=m0+Math.imul(F$,l)|0,a0=Math.imul(F$,W$),t0=t0+Math.imul(O$,E$)|0,m0=m0+Math.imul(O$,u)|0,m0=m0+Math.imul(c,E$)|0,a0=a0+Math.imul(c,u)|0,t0=t0+Math.imul(p,n)|0,m0=m0+Math.imul(p,D$)|0,m0=m0+Math.imul(I$,n)|0,a0=a0+Math.imul(I$,D$)|0,t0=t0+Math.imul(X$,C$)|0,m0=m0+Math.imul(X$,t)|0,m0=m0+Math.imul(w,C$)|0,a0=a0+Math.imul(w,t)|0,t0=t0+Math.imul(B,m)|0,m0=m0+Math.imul(B,R$)|0,m0=m0+Math.imul(U$,m)|0,a0=a0+Math.imul(U$,R$)|0,t0=t0+Math.imul(G$,P$)|0,m0=m0+Math.imul(G$,O)|0,m0=m0+Math.imul(x,P$)|0,a0=a0+Math.imul(x,O)|0,t0=t0+Math.imul(_,e)|0,m0=m0+Math.imul(_,M$)|0,m0=m0+Math.imul(Z$,e)|0,a0=a0+Math.imul(Z$,M$)|0,t0=t0+Math.imul(Q$,S$)|0,m0=m0+Math.imul(Q$,F)|0,m0=m0+Math.imul(g,S$)|0,a0=a0+Math.imul(g,F)|0,t0=t0+Math.imul(j,r)|0,m0=m0+Math.imul(j,q$)|0,m0=m0+Math.imul($$,r)|0,a0=a0+Math.imul($$,q$)|0;var Y0=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(Y0>>>26)|0,Y0&=67108863,t0=Math.imul(h,E$),m0=Math.imul(h,u),m0=m0+Math.imul(F$,E$)|0,a0=Math.imul(F$,u),t0=t0+Math.imul(O$,n)|0,m0=m0+Math.imul(O$,D$)|0,m0=m0+Math.imul(c,n)|0,a0=a0+Math.imul(c,D$)|0,t0=t0+Math.imul(p,C$)|0,m0=m0+Math.imul(p,t)|0,m0=m0+Math.imul(I$,C$)|0,a0=a0+Math.imul(I$,t)|0,t0=t0+Math.imul(X$,m)|0,m0=m0+Math.imul(X$,R$)|0,m0=m0+Math.imul(w,m)|0,a0=a0+Math.imul(w,R$)|0,t0=t0+Math.imul(B,P$)|0,m0=m0+Math.imul(B,O)|0,m0=m0+Math.imul(U$,P$)|0,a0=a0+Math.imul(U$,O)|0,t0=t0+Math.imul(G$,e)|0,m0=m0+Math.imul(G$,M$)|0,m0=m0+Math.imul(x,e)|0,a0=a0+Math.imul(x,M$)|0,t0=t0+Math.imul(_,S$)|0,m0=m0+Math.imul(_,F)|0,m0=m0+Math.imul(Z$,S$)|0,a0=a0+Math.imul(Z$,F)|0,t0=t0+Math.imul(Q$,r)|0,m0=m0+Math.imul(Q$,q$)|0,m0=m0+Math.imul(g,r)|0,a0=a0+Math.imul(g,q$)|0;var y$=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(y$>>>26)|0,y$&=67108863,t0=Math.imul(h,n),m0=Math.imul(h,D$),m0=m0+Math.imul(F$,n)|0,a0=Math.imul(F$,D$),t0=t0+Math.imul(O$,C$)|0,m0=m0+Math.imul(O$,t)|0,m0=m0+Math.imul(c,C$)|0,a0=a0+Math.imul(c,t)|0,t0=t0+Math.imul(p,m)|0,m0=m0+Math.imul(p,R$)|0,m0=m0+Math.imul(I$,m)|0,a0=a0+Math.imul(I$,R$)|0,t0=t0+Math.imul(X$,P$)|0,m0=m0+Math.imul(X$,O)|0,m0=m0+Math.imul(w,P$)|0,a0=a0+Math.imul(w,O)|0,t0=t0+Math.imul(B,e)|0,m0=m0+Math.imul(B,M$)|0,m0=m0+Math.imul(U$,e)|0,a0=a0+Math.imul(U$,M$)|0,t0=t0+Math.imul(G$,S$)|0,m0=m0+Math.imul(G$,F)|0,m0=m0+Math.imul(x,S$)|0,a0=a0+Math.imul(x,F)|0,t0=t0+Math.imul(_,r)|0,m0=m0+Math.imul(_,q$)|0,m0=m0+Math.imul(Z$,r)|0,a0=a0+Math.imul(Z$,q$)|0;var Z0=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(Z0>>>26)|0,Z0&=67108863,t0=Math.imul(h,C$),m0=Math.imul(h,t),m0=m0+Math.imul(F$,C$)|0,a0=Math.imul(F$,t),t0=t0+Math.imul(O$,m)|0,m0=m0+Math.imul(O$,R$)|0,m0=m0+Math.imul(c,m)|0,a0=a0+Math.imul(c,R$)|0,t0=t0+Math.imul(p,P$)|0,m0=m0+Math.imul(p,O)|0,m0=m0+Math.imul(I$,P$)|0,a0=a0+Math.imul(I$,O)|0,t0=t0+Math.imul(X$,e)|0,m0=m0+Math.imul(X$,M$)|0,m0=m0+Math.imul(w,e)|0,a0=a0+Math.imul(w,M$)|0,t0=t0+Math.imul(B,S$)|0,m0=m0+Math.imul(B,F)|0,m0=m0+Math.imul(U$,S$)|0,a0=a0+Math.imul(U$,F)|0,t0=t0+Math.imul(G$,r)|0,m0=m0+Math.imul(G$,q$)|0,m0=m0+Math.imul(x,r)|0,a0=a0+Math.imul(x,q$)|0;var w$=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(w$>>>26)|0,w$&=67108863,t0=Math.imul(h,m),m0=Math.imul(h,R$),m0=m0+Math.imul(F$,m)|0,a0=Math.imul(F$,R$),t0=t0+Math.imul(O$,P$)|0,m0=m0+Math.imul(O$,O)|0,m0=m0+Math.imul(c,P$)|0,a0=a0+Math.imul(c,O)|0,t0=t0+Math.imul(p,e)|0,m0=m0+Math.imul(p,M$)|0,m0=m0+Math.imul(I$,e)|0,a0=a0+Math.imul(I$,M$)|0,t0=t0+Math.imul(X$,S$)|0,m0=m0+Math.imul(X$,F)|0,m0=m0+Math.imul(w,S$)|0,a0=a0+Math.imul(w,F)|0,t0=t0+Math.imul(B,r)|0,m0=m0+Math.imul(B,q$)|0,m0=m0+Math.imul(U$,r)|0,a0=a0+Math.imul(U$,q$)|0;var G0=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(G0>>>26)|0,G0&=67108863,t0=Math.imul(h,P$),m0=Math.imul(h,O),m0=m0+Math.imul(F$,P$)|0,a0=Math.imul(F$,O),t0=t0+Math.imul(O$,e)|0,m0=m0+Math.imul(O$,M$)|0,m0=m0+Math.imul(c,e)|0,a0=a0+Math.imul(c,M$)|0,t0=t0+Math.imul(p,S$)|0,m0=m0+Math.imul(p,F)|0,m0=m0+Math.imul(I$,S$)|0,a0=a0+Math.imul(I$,F)|0,t0=t0+Math.imul(X$,r)|0,m0=m0+Math.imul(X$,q$)|0,m0=m0+Math.imul(w,r)|0,a0=a0+Math.imul(w,q$)|0;var p$=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(p$>>>26)|0,p$&=67108863,t0=Math.imul(h,e),m0=Math.imul(h,M$),m0=m0+Math.imul(F$,e)|0,a0=Math.imul(F$,M$),t0=t0+Math.imul(O$,S$)|0,m0=m0+Math.imul(O$,F)|0,m0=m0+Math.imul(c,S$)|0,a0=a0+Math.imul(c,F)|0,t0=t0+Math.imul(p,r)|0,m0=m0+Math.imul(p,q$)|0,m0=m0+Math.imul(I$,r)|0,a0=a0+Math.imul(I$,q$)|0;var V0=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(V0>>>26)|0,V0&=67108863,t0=Math.imul(h,S$),m0=Math.imul(h,F),m0=m0+Math.imul(F$,S$)|0,a0=Math.imul(F$,F),t0=t0+Math.imul(O$,r)|0,m0=m0+Math.imul(O$,q$)|0,m0=m0+Math.imul(c,r)|0,a0=a0+Math.imul(c,q$)|0;var f$=(I+t0|0)+((m0&8191)<<13)|0;I=(a0+(m0>>>13)|0)+(f$>>>26)|0,f$&=67108863,t0=Math.imul(h,r),m0=Math.imul(h,q$),m0=m0+Math.imul(F$,r)|0,a0=Math.imul(F$,q$);var U0=(I+t0|0)+((m0&8191)<<13)|0;return I=(a0+(m0>>>13)|0)+(U0>>>26)|0,U0&=67108863,s0[0]=i,s0[1]=j$,s0[2]=k$,s0[3]=g$,s0[4]=_$,s0[5]=N$,s0[6]=$0,s0[7]=x$,s0[8]=Q0,s0[9]=B$,s0[10]=Y0,s0[11]=y$,s0[12]=Z0,s0[13]=w$,s0[14]=G0,s0[15]=p$,s0[16]=V0,s0[17]=f$,s0[18]=U0,I!==0&&(s0[19]=I,S.length++),S};Math.imul||(D=f0);function c0(M,u0,S){S.negative=u0.negative^M.negative,S.length=M.length+u0.length;for(var n0=0,v=0,s0=0;s0>>26)|0,v+=I>>>26,I&=67108863}S.words[s0]=t0,n0=I,I=v}return n0!==0?S.words[s0]=n0:S.length--,S._strip()}function C(M,u0,S){return c0(M,u0,S)}Z.prototype.mulTo=function(M,u0){var S,n0=this.length+M.length;return this.length===10&&M.length===10?S=D(this,M,u0):n0<63?S=f0(this,M,u0):n0<1024?S=c0(this,M,u0):S=C(this,M,u0),S};function h0(M,u0){this.x=M,this.y=u0}h0.prototype.makeRBT=function(M){for(var u0=new Array(M),S=Z.prototype._countBits(M)-1,n0=0;n0>=1;return n0},h0.prototype.permute=function(M,u0,S,n0,v,s0){for(var I=0;I>>1)v++;return 1<>>13,S[2*s0+1]=v&8191,v=v>>>13;for(s0=2*u0;s0>=26,S+=v/67108864|0,S+=s0>>>26,this.words[n0]=s0&67108863}return S!==0&&(this.words[n0]=S,this.length++),u0?this.ineg():this},Z.prototype.muln=function(M){return this.clone().imuln(M)},Z.prototype.sqr=function(){return this.mul(this)},Z.prototype.isqr=function(){return this.imul(this.clone())},Z.prototype.pow=function(M){var u0=T(M);if(u0.length===0)return new Z(1);for(var S=this,n0=0;n0=0);var u0=M%26,S=(M-u0)/26,n0=67108863>>>26-u0<<26-u0,v;if(u0!==0){var s0=0;for(v=0;v>>26-u0}s0&&(this.words[v]=s0,this.length++)}if(S!==0){for(v=this.length-1;v>=0;v--)this.words[v+S]=this.words[v];for(v=0;v=0);var n0;u0?n0=(u0-u0%26)/26:n0=0;var v=M%26,s0=Math.min((M-v)/26,this.length),I=67108863^67108863>>>v<s0)for(this.length-=s0,m0=0;m0=0&&(a0!==0||m0>=n0);m0--){var q=this.words[m0]|0;this.words[m0]=a0<<26-v|q>>>v,a0=q&I}return t0&&a0!==0&&(t0.words[t0.length++]=a0),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},Z.prototype.ishrn=function(M,u0,S){return Y(this.negative===0),this.iushrn(M,u0,S)},Z.prototype.shln=function(M){return this.clone().ishln(M)},Z.prototype.ushln=function(M){return this.clone().iushln(M)},Z.prototype.shrn=function(M){return this.clone().ishrn(M)},Z.prototype.ushrn=function(M){return this.clone().iushrn(M)},Z.prototype.testn=function(M){Y(typeof M=="number"&&M>=0);var u0=M%26,S=(M-u0)/26,n0=1<=0);var u0=M%26,S=(M-u0)/26;if(Y(this.negative===0,"imaskn works only with positive numbers"),this.length<=S)return this;if(u0!==0&&S++,this.length=Math.min(S,this.length),u0!==0){var n0=67108863^67108863>>>u0<=67108864;u0++)this.words[u0]-=67108864,u0===this.length-1?this.words[u0+1]=1:this.words[u0+1]++;return this.length=Math.max(this.length,u0+1),this},Z.prototype.isubn=function(M){if(Y(typeof M=="number"),Y(M<67108864),M<0)return this.iaddn(-M);if(this.negative!==0)return this.negative=0,this.iaddn(M),this.negative=1,this;if(this.words[0]-=M,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var u0=0;u0>26)-(t0/67108864|0),this.words[v+S]=s0&67108863}for(;v>26,this.words[v+S]=s0&67108863;if(I===0)return this._strip();for(Y(I===-1),I=0,v=0;v>26,this.words[v]=s0&67108863;return this.negative=1,this._strip()},Z.prototype._wordDiv=function(M,u0){var S=this.length-M.length,n0=this.clone(),v=M,s0=v.words[v.length-1]|0,I=this._countBits(s0);S=26-I,S!==0&&(v=v.ushln(S),n0.iushln(S),s0=v.words[v.length-1]|0);var t0=n0.length-v.length,m0;if(u0!=="mod"){m0=new Z(null),m0.length=t0+1,m0.words=new Array(m0.length);for(var a0=0;a0=0;e0--){var r0=(n0.words[v.length+e0]|0)*67108864+(n0.words[v.length+e0-1]|0);for(r0=Math.min(r0/s0|0,67108863),n0._ishlnsubmul(v,r0,e0);n0.negative!==0;)r0--,n0.negative=0,n0._ishlnsubmul(v,1,e0),n0.isZero()||(n0.negative^=1);m0&&(m0.words[e0]=r0)}return m0&&m0._strip(),n0._strip(),u0!=="div"&&S!==0&&n0.iushrn(S),{div:m0||null,mod:n0}},Z.prototype.divmod=function(M,u0,S){if(Y(!M.isZero()),this.isZero())return{div:new Z(0),mod:new Z(0)};var n0,v,s0;return this.negative!==0&&M.negative===0?(s0=this.neg().divmod(M,u0),u0!=="mod"&&(n0=s0.div.neg()),u0!=="div"&&(v=s0.mod.neg(),S&&v.negative!==0&&v.iadd(M)),{div:n0,mod:v}):this.negative===0&&M.negative!==0?(s0=this.divmod(M.neg(),u0),u0!=="mod"&&(n0=s0.div.neg()),{div:n0,mod:s0.mod}):(this.negative&M.negative)!==0?(s0=this.neg().divmod(M.neg(),u0),u0!=="div"&&(v=s0.mod.neg(),S&&v.negative!==0&&v.isub(M)),{div:s0.div,mod:v}):M.length>this.length||this.cmp(M)<0?{div:new Z(0),mod:this}:M.length===1?u0==="div"?{div:this.divn(M.words[0]),mod:null}:u0==="mod"?{div:null,mod:new Z(this.modrn(M.words[0]))}:{div:this.divn(M.words[0]),mod:new Z(this.modrn(M.words[0]))}:this._wordDiv(M,u0)},Z.prototype.div=function(M){return this.divmod(M,"div",!1).div},Z.prototype.mod=function(M){return this.divmod(M,"mod",!1).mod},Z.prototype.umod=function(M){return this.divmod(M,"mod",!0).mod},Z.prototype.divRound=function(M){var u0=this.divmod(M);if(u0.mod.isZero())return u0.div;var S=u0.div.negative!==0?u0.mod.isub(M):u0.mod,n0=M.ushrn(1),v=M.andln(1),s0=S.cmp(n0);return s0<0||v===1&&s0===0?u0.div:u0.div.negative!==0?u0.div.isubn(1):u0.div.iaddn(1)},Z.prototype.modrn=function(M){var u0=M<0;u0&&(M=-M),Y(M<=67108863);for(var S=(1<<26)%M,n0=0,v=this.length-1;v>=0;v--)n0=(S*n0+(this.words[v]|0))%M;return u0?-n0:n0},Z.prototype.modn=function(M){return this.modrn(M)},Z.prototype.idivn=function(M){var u0=M<0;u0&&(M=-M),Y(M<=67108863);for(var S=0,n0=this.length-1;n0>=0;n0--){var v=(this.words[n0]|0)+S*67108864;this.words[n0]=v/M|0,S=v%M}return this._strip(),u0?this.ineg():this},Z.prototype.divn=function(M){return this.clone().idivn(M)},Z.prototype.egcd=function(M){Y(M.negative===0),Y(!M.isZero());var u0=this,S=M.clone();u0.negative!==0?u0=u0.umod(M):u0=u0.clone();for(var n0=new Z(1),v=new Z(0),s0=new Z(0),I=new Z(1),t0=0;u0.isEven()&&S.isEven();)u0.iushrn(1),S.iushrn(1),++t0;for(var m0=S.clone(),a0=u0.clone();!u0.isZero();){for(var q=0,e0=1;(u0.words[0]&e0)===0&&q<26;++q,e0<<=1);if(q>0)for(u0.iushrn(q);q-- >0;)(n0.isOdd()||v.isOdd())&&(n0.iadd(m0),v.isub(a0)),n0.iushrn(1),v.iushrn(1);for(var r0=0,i0=1;(S.words[0]&i0)===0&&r0<26;++r0,i0<<=1);if(r0>0)for(S.iushrn(r0);r0-- >0;)(s0.isOdd()||I.isOdd())&&(s0.iadd(m0),I.isub(a0)),s0.iushrn(1),I.iushrn(1);u0.cmp(S)>=0?(u0.isub(S),n0.isub(s0),v.isub(I)):(S.isub(u0),s0.isub(n0),I.isub(v))}return{a:s0,b:I,gcd:S.iushln(t0)}},Z.prototype._invmp=function(M){Y(M.negative===0),Y(!M.isZero());var u0=this,S=M.clone();u0.negative!==0?u0=u0.umod(M):u0=u0.clone();for(var n0=new Z(1),v=new Z(0),s0=S.clone();u0.cmpn(1)>0&&S.cmpn(1)>0;){for(var I=0,t0=1;(u0.words[0]&t0)===0&&I<26;++I,t0<<=1);if(I>0)for(u0.iushrn(I);I-- >0;)n0.isOdd()&&n0.iadd(s0),n0.iushrn(1);for(var m0=0,a0=1;(S.words[0]&a0)===0&&m0<26;++m0,a0<<=1);if(m0>0)for(S.iushrn(m0);m0-- >0;)v.isOdd()&&v.iadd(s0),v.iushrn(1);u0.cmp(S)>=0?(u0.isub(S),n0.isub(v)):(S.isub(u0),v.isub(n0))}var q;return u0.cmpn(1)===0?q=n0:q=v,q.cmpn(0)<0&&q.iadd(M),q},Z.prototype.gcd=function(M){if(this.isZero())return M.abs();if(M.isZero())return this.abs();var u0=this.clone(),S=M.clone();u0.negative=0,S.negative=0;for(var n0=0;u0.isEven()&&S.isEven();n0++)u0.iushrn(1),S.iushrn(1);do{for(;u0.isEven();)u0.iushrn(1);for(;S.isEven();)S.iushrn(1);var v=u0.cmp(S);if(v<0){var s0=u0;u0=S,S=s0}else if(v===0||S.cmpn(1)===0)break;u0.isub(S)}while(!0);return S.iushln(n0)},Z.prototype.invm=function(M){return this.egcd(M).a.umod(M)},Z.prototype.isEven=function(){return(this.words[0]&1)===0},Z.prototype.isOdd=function(){return(this.words[0]&1)===1},Z.prototype.andln=function(M){return this.words[0]&M},Z.prototype.bincn=function(M){Y(typeof M=="number");var u0=M%26,S=(M-u0)/26,n0=1<>>26,I&=67108863,this.words[s0]=I}return v!==0&&(this.words[s0]=v,this.length++),this},Z.prototype.isZero=function(){return this.length===1&&this.words[0]===0},Z.prototype.cmpn=function(M){var u0=M<0;if(this.negative!==0&&!u0)return-1;if(this.negative===0&&u0)return 1;this._strip();var S;if(this.length>1)S=1;else{u0&&(M=-M),Y(M<=67108863,"Number is too big");var n0=this.words[0]|0;S=n0===M?0:n0M.length)return 1;if(this.length=0;S--){var n0=this.words[S]|0,v=M.words[S]|0;if(n0!==v){n0v&&(u0=1);break}}return u0},Z.prototype.gtn=function(M){return this.cmpn(M)===1},Z.prototype.gt=function(M){return this.cmp(M)===1},Z.prototype.gten=function(M){return this.cmpn(M)>=0},Z.prototype.gte=function(M){return this.cmp(M)>=0},Z.prototype.ltn=function(M){return this.cmpn(M)===-1},Z.prototype.lt=function(M){return this.cmp(M)===-1},Z.prototype.lten=function(M){return this.cmpn(M)<=0},Z.prototype.lte=function(M){return this.cmp(M)<=0},Z.prototype.eqn=function(M){return this.cmpn(M)===0},Z.prototype.eq=function(M){return this.cmp(M)===0},Z.red=function(M){return new z(M)},Z.prototype.toRed=function(M){return Y(!this.red,"Already a number in reduction context"),Y(this.negative===0,"red works only with positives"),M.convertTo(this)._forceRed(M)},Z.prototype.fromRed=function(){return Y(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},Z.prototype._forceRed=function(M){return this.red=M,this},Z.prototype.forceRed=function(M){return Y(!this.red,"Already a number in reduction context"),this._forceRed(M)},Z.prototype.redAdd=function(M){return Y(this.red,"redAdd works only with red numbers"),this.red.add(this,M)},Z.prototype.redIAdd=function(M){return Y(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,M)},Z.prototype.redSub=function(M){return Y(this.red,"redSub works only with red numbers"),this.red.sub(this,M)},Z.prototype.redISub=function(M){return Y(this.red,"redISub works only with red numbers"),this.red.isub(this,M)},Z.prototype.redShl=function(M){return Y(this.red,"redShl works only with red numbers"),this.red.shl(this,M)},Z.prototype.redMul=function(M){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,M),this.red.mul(this,M)},Z.prototype.redIMul=function(M){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,M),this.red.imul(this,M)},Z.prototype.redSqr=function(){return Y(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},Z.prototype.redISqr=function(){return Y(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},Z.prototype.redSqrt=function(){return Y(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},Z.prototype.redInvm=function(){return Y(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},Z.prototype.redNeg=function(){return Y(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},Z.prototype.redPow=function(M){return Y(this.red&&!M.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,M)};var L={k256:null,p224:null,p192:null,p25519:null};function d0(M,u0){this.name=M,this.p=new Z(u0,16),this.n=this.p.bitLength(),this.k=new Z(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}d0.prototype._tmp=function(){var M=new Z(null);return M.words=new Array(Math.ceil(this.n/13)),M},d0.prototype.ireduce=function(M){var u0=M,S;do this.split(u0,this.tmp),u0=this.imulK(u0),u0=u0.iadd(this.tmp),S=u0.bitLength();while(S>this.n);var n0=S0?u0.isub(this.p):u0.strip!==void 0?u0.strip():u0._strip(),u0},d0.prototype.split=function(M,u0){M.iushrn(this.n,0,u0)},d0.prototype.imulK=function(M){return M.imul(this.k)};function R(){d0.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}$(R,d0),R.prototype.split=function(M,u0){for(var S=4194303,n0=Math.min(M.length,9),v=0;v>>22,s0=I}s0>>>=22,M.words[v-10]=s0,s0===0&&M.length>10?M.length-=10:M.length-=9},R.prototype.imulK=function(M){M.words[M.length]=0,M.words[M.length+1]=0,M.length+=2;for(var u0=0,S=0;S>>=26,M.words[S]=v,u0=n0}return u0!==0&&(M.words[M.length++]=u0),M},Z._prime=function(M){if(L[M])return L[M];var u0;if(M==="k256")u0=new R;else if(M==="p224")u0=new b0;else if(M==="p192")u0=new P;else if(M==="p25519")u0=new l0;else throw new Error("Unknown prime "+M);return L[M]=u0,u0};function z(M){if(typeof M=="string"){var u0=Z._prime(M);this.m=u0.p,this.prime=u0}else Y(M.gtn(1),"modulus must be greater than 1"),this.m=M,this.prime=null}z.prototype._verify1=function(M){Y(M.negative===0,"red works only with positives"),Y(M.red,"red works only with red numbers")},z.prototype._verify2=function(M,u0){Y((M.negative|u0.negative)===0,"red works only with positives"),Y(M.red&&M.red===u0.red,"red works only with red numbers")},z.prototype.imod=function(M){return this.prime?this.prime.ireduce(M)._forceRed(this):(H(M,M.umod(this.m)._forceRed(this)),M)},z.prototype.neg=function(M){return M.isZero()?M.clone():this.m.sub(M)._forceRed(this)},z.prototype.add=function(M,u0){this._verify2(M,u0);var S=M.add(u0);return S.cmp(this.m)>=0&&S.isub(this.m),S._forceRed(this)},z.prototype.iadd=function(M,u0){this._verify2(M,u0);var S=M.iadd(u0);return S.cmp(this.m)>=0&&S.isub(this.m),S},z.prototype.sub=function(M,u0){this._verify2(M,u0);var S=M.sub(u0);return S.cmpn(0)<0&&S.iadd(this.m),S._forceRed(this)},z.prototype.isub=function(M,u0){this._verify2(M,u0);var S=M.isub(u0);return S.cmpn(0)<0&&S.iadd(this.m),S},z.prototype.shl=function(M,u0){return this._verify1(M),this.imod(M.ushln(u0))},z.prototype.imul=function(M,u0){return this._verify2(M,u0),this.imod(M.imul(u0))},z.prototype.mul=function(M,u0){return this._verify2(M,u0),this.imod(M.mul(u0))},z.prototype.isqr=function(M){return this.imul(M,M.clone())},z.prototype.sqr=function(M){return this.mul(M,M)},z.prototype.sqrt=function(M){if(M.isZero())return M.clone();var u0=this.m.andln(3);if(Y(u0%2===1),u0===3){var S=this.m.add(new Z(1)).iushrn(2);return this.pow(M,S)}for(var n0=this.m.subn(1),v=0;!n0.isZero()&&n0.andln(1)===0;)v++,n0.iushrn(1);Y(!n0.isZero());var s0=new Z(1).toRed(this),I=s0.redNeg(),t0=this.m.subn(1).iushrn(1),m0=this.m.bitLength();for(m0=new Z(2*m0*m0).toRed(this);this.pow(m0,t0).cmp(I)!==0;)m0.redIAdd(I);for(var a0=this.pow(m0,n0),q=this.pow(M,n0.addn(1).iushrn(1)),e0=this.pow(M,n0),r0=v;e0.cmp(s0)!==0;){for(var i0=e0,j=0;i0.cmp(s0)!==0;j++)i0=i0.redSqr();Y(j=0;v--){for(var a0=u0.words[v],q=m0-1;q>=0;q--){var e0=a0>>q&1;if(s0!==n0[0]&&(s0=this.sqr(s0)),e0===0&&I===0){t0=0;continue}I<<=1,I|=e0,t0++,!(t0!==S&&(v!==0||q!==0))&&(s0=this.mul(s0,n0[I]),t0=0,I=0)}m0=26}return s0},z.prototype.convertTo=function(M){var u0=M.umod(this.m);return u0===M?u0.clone():u0},z.prototype.convertFrom=function(M){var u0=M.clone();return u0.red=null,u0},Z.mont=function(M){return new o0(M)};function o0(M){z.call(this,M),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new Z(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}$(o0,z),o0.prototype.convertTo=function(M){return this.imod(M.ushln(this.shift))},o0.prototype.convertFrom=function(M){var u0=this.imod(M.mul(this.rinv));return u0.red=null,u0},o0.prototype.imul=function(M,u0){if(M.isZero()||u0.isZero())return M.words[0]=0,M.length=1,M;var S=M.imul(u0),n0=S.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),v=S.isub(n0).iushrn(this.shift),s0=v;return v.cmp(this.m)>=0?s0=v.isub(this.m):v.cmpn(0)<0&&(s0=v.iadd(this.m)),s0._forceRed(this)},o0.prototype.mul=function(M,u0){if(M.isZero()||u0.isZero())return new Z(0)._forceRed(this);var S=M.mul(u0),n0=S.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),v=S.isub(n0).iushrn(this.shift),s0=v;return v.cmp(this.m)>=0?s0=v.isub(this.m):v.cmpn(0)<0&&(s0=v.iadd(this.m)),s0._forceRed(this)},o0.prototype.invm=function(M){var u0=this.imod(M._invmp(this.m).mul(this.r2));return u0._forceRed(this)}})(typeof K>"u"||K,X)}}),hQ=$Q({"node_modules/browserify-rsa/index.js"(X,K){var x0=cQ(),G=ZQ();function Y(Q){var U=$(Q),V=U.toRed(x0.mont(Q.modulus)).redPow(new x0(Q.publicExponent)).fromRed();return{blinder:V,unblinder:U.invm(Q.modulus)}}function $(Q){var U=Q.modulus.byteLength(),V;do V=new x0(G(U));while(V.cmp(Q.modulus)>=0||!V.umod(Q.prime1)||!V.umod(Q.prime2));return V}function Z(Q,U){var V=Y(U),B0=U.modulus.byteLength(),H=new x0(Q).mul(V.blinder).umod(U.modulus),y0=H.toRed(x0.mont(U.prime1)),W=H.toRed(x0.mont(U.prime2)),w0=U.coefficient,E=U.prime1,p0=U.prime2,T=y0.redPow(U.exponent1).fromRed(),f0=W.redPow(U.exponent2).fromRed(),D=T.isub(f0).imul(w0).umod(E).imul(p0);return f0.iadd(D).imul(V.unblinder).umod(U.modulus).toArrayLike(c$,"be",B0)}Z.getr=$,K.exports=Z}}),dQ=$Q({"node_modules/elliptic/package.json"(X,K){K.exports={name:"elliptic",version:"6.5.4",description:"EC cryptography",main:"lib/elliptic.js",files:["lib"],scripts:{lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},repository:{type:"git",url:"git@github.com:indutny/elliptic"},keywords:["EC","Elliptic","curve","Cryptography"],author:"Fedor Indutny ",license:"MIT",bugs:{url:"https://github.com/indutny/elliptic/issues"},homepage:"https://github.com/indutny/elliptic",devDependencies:{brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},dependencies:{"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"}}}}),bQ=$Q({"node_modules/elliptic/node_modules/bn.js/lib/bn.js"(X,K){(function(x0,G){function Y(l0,z){if(!l0)throw new Error(z||"Assertion failed")}function $(l0,z){l0.super_=z;var o0=function(){};o0.prototype=z.prototype,l0.prototype=new o0,l0.prototype.constructor=l0}function Z(l0,z,o0){if(Z.isBN(l0))return l0;this.negative=0,this.words=null,this.length=0,this.red=null,l0!==null&&((z==="le"||z==="be")&&(o0=z,z=10),this._init(l0||0,z||10,o0||"be"))}typeof x0=="object"?x0.exports=Z:G.BN=Z,Z.BN=Z,Z.wordSize=26;var Q=c$;Z.isBN=function(l0){return l0 instanceof Z?!0:l0!==null&&typeof l0=="object"&&l0.constructor.wordSize===Z.wordSize&&Array.isArray(l0.words)},Z.max=function(l0,z){return l0.cmp(z)>0?l0:z},Z.min=function(l0,z){return l0.cmp(z)<0?l0:z},Z.prototype._init=function(l0,z,o0){if(typeof l0=="number")return this._initNumber(l0,z,o0);if(typeof l0=="object")return this._initArray(l0,z,o0);z==="hex"&&(z=16),Y(z===(z|0)&&z>=2&&z<=36),l0=l0.toString().replace(/\s+/g,"");var M=0;l0[0]==="-"&&(M++,this.negative=1),M=0;M-=3)S=l0[M]|l0[M-1]<<8|l0[M-2]<<16,this.words[u0]|=S<>>26-n0&67108863,n0+=24,n0>=26&&(n0-=26,u0++);else if(o0==="le")for(M=0,u0=0;M>>26-n0&67108863,n0+=24,n0>=26&&(n0-=26,u0++);return this.strip()};function U(l0,z){var o0=l0.charCodeAt(z);return o0>=65&&o0<=70?o0-55:o0>=97&&o0<=102?o0-87:o0-48&15}function V(l0,z,o0){var M=U(l0,o0);return o0-1>=z&&(M|=U(l0,o0-1)<<4),M}Z.prototype._parseHex=function(l0,z,o0){this.length=Math.ceil((l0.length-z)/6),this.words=new Array(this.length);for(var M=0;M=z;M-=2)n0=V(l0,z,M)<=18?(u0-=18,S+=1,this.words[S]|=n0>>>26):u0+=8;else{var v=l0.length-z;for(M=v%2===0?z+1:z;M=18?(u0-=18,S+=1,this.words[S]|=n0>>>26):u0+=8}this.strip()};function B0(l0,z,o0,M){for(var u0=0,S=Math.min(l0.length,o0),n0=z;n0=49?u0+=v-49+10:v>=17?u0+=v-17+10:u0+=v}return u0}Z.prototype._parseBase=function(l0,z,o0){this.words=[0],this.length=1;for(var M=0,u0=1;u0<=67108863;u0*=z)M++;M--,u0=u0/z|0;for(var S=l0.length-o0,n0=S%M,v=Math.min(S,S-n0)+o0,s0=0,I=o0;I1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},Z.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},Z.prototype.inspect=function(){return(this.red?""};var H=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y0=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],W=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];Z.prototype.toString=function(l0,z){l0=l0||10,z=z|0||1;var o0;if(l0===16||l0==="hex"){o0="";for(var M=0,u0=0,S=0;S>>24-M&16777215,u0!==0||S!==this.length-1?o0=H[6-v.length]+v+o0:o0=v+o0,M+=2,M>=26&&(M-=26,S--)}for(u0!==0&&(o0=u0.toString(16)+o0);o0.length%z!==0;)o0="0"+o0;return this.negative!==0&&(o0="-"+o0),o0}if(l0===(l0|0)&&l0>=2&&l0<=36){var s0=y0[l0],I=W[l0];o0="";var t0=this.clone();for(t0.negative=0;!t0.isZero();){var m0=t0.modn(I).toString(l0);t0=t0.idivn(I),t0.isZero()?o0=m0+o0:o0=H[s0-m0.length]+m0+o0}for(this.isZero()&&(o0="0"+o0);o0.length%z!==0;)o0="0"+o0;return this.negative!==0&&(o0="-"+o0),o0}Y(!1,"Base should be between 2 and 36")},Z.prototype.toNumber=function(){var l0=this.words[0];return this.length===2?l0+=this.words[1]*67108864:this.length===3&&this.words[2]===1?l0+=4503599627370496+this.words[1]*67108864:this.length>2&&Y(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-l0:l0},Z.prototype.toJSON=function(){return this.toString(16)},Z.prototype.toBuffer=function(l0,z){return Y(typeof Q<"u"),this.toArrayLike(Q,l0,z)},Z.prototype.toArray=function(l0,z){return this.toArrayLike(Array,l0,z)},Z.prototype.toArrayLike=function(l0,z,o0){var M=this.byteLength(),u0=o0||Math.max(1,M);Y(M<=u0,"byte array longer than desired length"),Y(u0>0,"Requested array length <= 0"),this.strip();var S=z==="le",n0=new l0(u0),v,s0,I=this.clone();if(S){for(s0=0;!I.isZero();s0++)v=I.andln(255),I.iushrn(8),n0[s0]=v;for(;s0=4096&&(o0+=13,z>>>=13),z>=64&&(o0+=7,z>>>=7),z>=8&&(o0+=4,z>>>=4),z>=2&&(o0+=2,z>>>=2),o0+z},Z.prototype._zeroBits=function(l0){if(l0===0)return 26;var z=l0,o0=0;return(z&8191)===0&&(o0+=13,z>>>=13),(z&127)===0&&(o0+=7,z>>>=7),(z&15)===0&&(o0+=4,z>>>=4),(z&3)===0&&(o0+=2,z>>>=2),(z&1)===0&&o0++,o0},Z.prototype.bitLength=function(){var l0=this.words[this.length-1],z=this._countBits(l0);return(this.length-1)*26+z};function w0(l0){for(var z=new Array(l0.bitLength()),o0=0;o0>>u0}return z}Z.prototype.zeroBits=function(){if(this.isZero())return 0;for(var l0=0,z=0;zl0.length?this.clone().ior(l0):l0.clone().ior(this)},Z.prototype.uor=function(l0){return this.length>l0.length?this.clone().iuor(l0):l0.clone().iuor(this)},Z.prototype.iuand=function(l0){var z;this.length>l0.length?z=l0:z=this;for(var o0=0;o0l0.length?this.clone().iand(l0):l0.clone().iand(this)},Z.prototype.uand=function(l0){return this.length>l0.length?this.clone().iuand(l0):l0.clone().iuand(this)},Z.prototype.iuxor=function(l0){var z,o0;this.length>l0.length?(z=this,o0=l0):(z=l0,o0=this);for(var M=0;Ml0.length?this.clone().ixor(l0):l0.clone().ixor(this)},Z.prototype.uxor=function(l0){return this.length>l0.length?this.clone().iuxor(l0):l0.clone().iuxor(this)},Z.prototype.inotn=function(l0){Y(typeof l0=="number"&&l0>=0);var z=Math.ceil(l0/26)|0,o0=l0%26;this._expand(z),o0>0&&z--;for(var M=0;M0&&(this.words[M]=~this.words[M]&67108863>>26-o0),this.strip()},Z.prototype.notn=function(l0){return this.clone().inotn(l0)},Z.prototype.setn=function(l0,z){Y(typeof l0=="number"&&l0>=0);var o0=l0/26|0,M=l0%26;return this._expand(o0+1),z?this.words[o0]=this.words[o0]|1<l0.length?(o0=this,M=l0):(o0=l0,M=this);for(var u0=0,S=0;S>>26;for(;u0!==0&&S>>26;if(this.length=o0.length,u0!==0)this.words[this.length]=u0,this.length++;else if(o0!==this)for(;Sl0.length?this.clone().iadd(l0):l0.clone().iadd(this)},Z.prototype.isub=function(l0){if(l0.negative!==0){l0.negative=0;var z=this.iadd(l0);return l0.negative=1,z._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(l0),this.negative=1,this._normSign();var o0=this.cmp(l0);if(o0===0)return this.negative=0,this.length=1,this.words[0]=0,this;var M,u0;o0>0?(M=this,u0=l0):(M=l0,u0=this);for(var S=0,n0=0;n0>26,this.words[n0]=z&67108863;for(;S!==0&&n0>26,this.words[n0]=z&67108863;if(S===0&&n0>>26,m0=s0&67108863,a0=Math.min(I,z.length-1),q=Math.max(0,I-l0.length+1);q<=a0;q++){var e0=I-q|0;u0=l0.words[e0]|0,S=z.words[q]|0,n0=u0*S+m0,t0+=n0/67108864|0,m0=n0&67108863}o0.words[I]=m0|0,s0=t0|0}return s0!==0?o0.words[I]=s0|0:o0.length--,o0.strip()}var p0=function(l0,z,o0){var M=l0.words,u0=z.words,S=o0.words,n0=0,v,s0,I,t0=M[0]|0,m0=t0&8191,a0=t0>>>13,q=M[1]|0,e0=q&8191,r0=q>>>13,i0=M[2]|0,j=i0&8191,$$=i0>>>13,k=M[3]|0,Q$=k&8191,g=k>>>13,Y$=M[4]|0,_=Y$&8191,Z$=Y$>>>13,N=M[5]|0,G$=N&8191,x=N>>>13,V$=M[6]|0,B=V$&8191,U$=V$>>>13,y=M[7]|0,X$=y&8191,w=y>>>13,K$=M[8]|0,p=K$&8191,I$=K$>>>13,f=M[9]|0,O$=f&8191,c=f>>>13,J$=u0[0]|0,h=J$&8191,F$=J$>>>13,d=u0[1]|0,A$=d&8191,b=d>>>13,H$=u0[2]|0,l=H$&8191,W$=H$>>>13,o=u0[3]|0,E$=o&8191,u=o>>>13,T$=u0[4]|0,n=T$&8191,D$=T$>>>13,s=u0[5]|0,C$=s&8191,t=s>>>13,L$=u0[6]|0,m=L$&8191,R$=L$>>>13,a=u0[7]|0,P$=a&8191,O=a>>>13,z$=u0[8]|0,e=z$&8191,M$=z$>>>13,J=u0[9]|0,S$=J&8191,F=J>>>13;o0.negative=l0.negative^z.negative,o0.length=19,v=Math.imul(m0,h),s0=Math.imul(m0,F$),s0=s0+Math.imul(a0,h)|0,I=Math.imul(a0,F$);var v$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(v$>>>26)|0,v$&=67108863,v=Math.imul(e0,h),s0=Math.imul(e0,F$),s0=s0+Math.imul(r0,h)|0,I=Math.imul(r0,F$),v=v+Math.imul(m0,A$)|0,s0=s0+Math.imul(m0,b)|0,s0=s0+Math.imul(a0,A$)|0,I=I+Math.imul(a0,b)|0;var r=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(r>>>26)|0,r&=67108863,v=Math.imul(j,h),s0=Math.imul(j,F$),s0=s0+Math.imul($$,h)|0,I=Math.imul($$,F$),v=v+Math.imul(e0,A$)|0,s0=s0+Math.imul(e0,b)|0,s0=s0+Math.imul(r0,A$)|0,I=I+Math.imul(r0,b)|0,v=v+Math.imul(m0,l)|0,s0=s0+Math.imul(m0,W$)|0,s0=s0+Math.imul(a0,l)|0,I=I+Math.imul(a0,W$)|0;var q$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(q$>>>26)|0,q$&=67108863,v=Math.imul(Q$,h),s0=Math.imul(Q$,F$),s0=s0+Math.imul(g,h)|0,I=Math.imul(g,F$),v=v+Math.imul(j,A$)|0,s0=s0+Math.imul(j,b)|0,s0=s0+Math.imul($$,A$)|0,I=I+Math.imul($$,b)|0,v=v+Math.imul(e0,l)|0,s0=s0+Math.imul(e0,W$)|0,s0=s0+Math.imul(r0,l)|0,I=I+Math.imul(r0,W$)|0,v=v+Math.imul(m0,E$)|0,s0=s0+Math.imul(m0,u)|0,s0=s0+Math.imul(a0,E$)|0,I=I+Math.imul(a0,u)|0;var i=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(i>>>26)|0,i&=67108863,v=Math.imul(_,h),s0=Math.imul(_,F$),s0=s0+Math.imul(Z$,h)|0,I=Math.imul(Z$,F$),v=v+Math.imul(Q$,A$)|0,s0=s0+Math.imul(Q$,b)|0,s0=s0+Math.imul(g,A$)|0,I=I+Math.imul(g,b)|0,v=v+Math.imul(j,l)|0,s0=s0+Math.imul(j,W$)|0,s0=s0+Math.imul($$,l)|0,I=I+Math.imul($$,W$)|0,v=v+Math.imul(e0,E$)|0,s0=s0+Math.imul(e0,u)|0,s0=s0+Math.imul(r0,E$)|0,I=I+Math.imul(r0,u)|0,v=v+Math.imul(m0,n)|0,s0=s0+Math.imul(m0,D$)|0,s0=s0+Math.imul(a0,n)|0,I=I+Math.imul(a0,D$)|0;var j$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(j$>>>26)|0,j$&=67108863,v=Math.imul(G$,h),s0=Math.imul(G$,F$),s0=s0+Math.imul(x,h)|0,I=Math.imul(x,F$),v=v+Math.imul(_,A$)|0,s0=s0+Math.imul(_,b)|0,s0=s0+Math.imul(Z$,A$)|0,I=I+Math.imul(Z$,b)|0,v=v+Math.imul(Q$,l)|0,s0=s0+Math.imul(Q$,W$)|0,s0=s0+Math.imul(g,l)|0,I=I+Math.imul(g,W$)|0,v=v+Math.imul(j,E$)|0,s0=s0+Math.imul(j,u)|0,s0=s0+Math.imul($$,E$)|0,I=I+Math.imul($$,u)|0,v=v+Math.imul(e0,n)|0,s0=s0+Math.imul(e0,D$)|0,s0=s0+Math.imul(r0,n)|0,I=I+Math.imul(r0,D$)|0,v=v+Math.imul(m0,C$)|0,s0=s0+Math.imul(m0,t)|0,s0=s0+Math.imul(a0,C$)|0,I=I+Math.imul(a0,t)|0;var k$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(k$>>>26)|0,k$&=67108863,v=Math.imul(B,h),s0=Math.imul(B,F$),s0=s0+Math.imul(U$,h)|0,I=Math.imul(U$,F$),v=v+Math.imul(G$,A$)|0,s0=s0+Math.imul(G$,b)|0,s0=s0+Math.imul(x,A$)|0,I=I+Math.imul(x,b)|0,v=v+Math.imul(_,l)|0,s0=s0+Math.imul(_,W$)|0,s0=s0+Math.imul(Z$,l)|0,I=I+Math.imul(Z$,W$)|0,v=v+Math.imul(Q$,E$)|0,s0=s0+Math.imul(Q$,u)|0,s0=s0+Math.imul(g,E$)|0,I=I+Math.imul(g,u)|0,v=v+Math.imul(j,n)|0,s0=s0+Math.imul(j,D$)|0,s0=s0+Math.imul($$,n)|0,I=I+Math.imul($$,D$)|0,v=v+Math.imul(e0,C$)|0,s0=s0+Math.imul(e0,t)|0,s0=s0+Math.imul(r0,C$)|0,I=I+Math.imul(r0,t)|0,v=v+Math.imul(m0,m)|0,s0=s0+Math.imul(m0,R$)|0,s0=s0+Math.imul(a0,m)|0,I=I+Math.imul(a0,R$)|0;var g$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(g$>>>26)|0,g$&=67108863,v=Math.imul(X$,h),s0=Math.imul(X$,F$),s0=s0+Math.imul(w,h)|0,I=Math.imul(w,F$),v=v+Math.imul(B,A$)|0,s0=s0+Math.imul(B,b)|0,s0=s0+Math.imul(U$,A$)|0,I=I+Math.imul(U$,b)|0,v=v+Math.imul(G$,l)|0,s0=s0+Math.imul(G$,W$)|0,s0=s0+Math.imul(x,l)|0,I=I+Math.imul(x,W$)|0,v=v+Math.imul(_,E$)|0,s0=s0+Math.imul(_,u)|0,s0=s0+Math.imul(Z$,E$)|0,I=I+Math.imul(Z$,u)|0,v=v+Math.imul(Q$,n)|0,s0=s0+Math.imul(Q$,D$)|0,s0=s0+Math.imul(g,n)|0,I=I+Math.imul(g,D$)|0,v=v+Math.imul(j,C$)|0,s0=s0+Math.imul(j,t)|0,s0=s0+Math.imul($$,C$)|0,I=I+Math.imul($$,t)|0,v=v+Math.imul(e0,m)|0,s0=s0+Math.imul(e0,R$)|0,s0=s0+Math.imul(r0,m)|0,I=I+Math.imul(r0,R$)|0,v=v+Math.imul(m0,P$)|0,s0=s0+Math.imul(m0,O)|0,s0=s0+Math.imul(a0,P$)|0,I=I+Math.imul(a0,O)|0;var _$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(_$>>>26)|0,_$&=67108863,v=Math.imul(p,h),s0=Math.imul(p,F$),s0=s0+Math.imul(I$,h)|0,I=Math.imul(I$,F$),v=v+Math.imul(X$,A$)|0,s0=s0+Math.imul(X$,b)|0,s0=s0+Math.imul(w,A$)|0,I=I+Math.imul(w,b)|0,v=v+Math.imul(B,l)|0,s0=s0+Math.imul(B,W$)|0,s0=s0+Math.imul(U$,l)|0,I=I+Math.imul(U$,W$)|0,v=v+Math.imul(G$,E$)|0,s0=s0+Math.imul(G$,u)|0,s0=s0+Math.imul(x,E$)|0,I=I+Math.imul(x,u)|0,v=v+Math.imul(_,n)|0,s0=s0+Math.imul(_,D$)|0,s0=s0+Math.imul(Z$,n)|0,I=I+Math.imul(Z$,D$)|0,v=v+Math.imul(Q$,C$)|0,s0=s0+Math.imul(Q$,t)|0,s0=s0+Math.imul(g,C$)|0,I=I+Math.imul(g,t)|0,v=v+Math.imul(j,m)|0,s0=s0+Math.imul(j,R$)|0,s0=s0+Math.imul($$,m)|0,I=I+Math.imul($$,R$)|0,v=v+Math.imul(e0,P$)|0,s0=s0+Math.imul(e0,O)|0,s0=s0+Math.imul(r0,P$)|0,I=I+Math.imul(r0,O)|0,v=v+Math.imul(m0,e)|0,s0=s0+Math.imul(m0,M$)|0,s0=s0+Math.imul(a0,e)|0,I=I+Math.imul(a0,M$)|0;var N$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(N$>>>26)|0,N$&=67108863,v=Math.imul(O$,h),s0=Math.imul(O$,F$),s0=s0+Math.imul(c,h)|0,I=Math.imul(c,F$),v=v+Math.imul(p,A$)|0,s0=s0+Math.imul(p,b)|0,s0=s0+Math.imul(I$,A$)|0,I=I+Math.imul(I$,b)|0,v=v+Math.imul(X$,l)|0,s0=s0+Math.imul(X$,W$)|0,s0=s0+Math.imul(w,l)|0,I=I+Math.imul(w,W$)|0,v=v+Math.imul(B,E$)|0,s0=s0+Math.imul(B,u)|0,s0=s0+Math.imul(U$,E$)|0,I=I+Math.imul(U$,u)|0,v=v+Math.imul(G$,n)|0,s0=s0+Math.imul(G$,D$)|0,s0=s0+Math.imul(x,n)|0,I=I+Math.imul(x,D$)|0,v=v+Math.imul(_,C$)|0,s0=s0+Math.imul(_,t)|0,s0=s0+Math.imul(Z$,C$)|0,I=I+Math.imul(Z$,t)|0,v=v+Math.imul(Q$,m)|0,s0=s0+Math.imul(Q$,R$)|0,s0=s0+Math.imul(g,m)|0,I=I+Math.imul(g,R$)|0,v=v+Math.imul(j,P$)|0,s0=s0+Math.imul(j,O)|0,s0=s0+Math.imul($$,P$)|0,I=I+Math.imul($$,O)|0,v=v+Math.imul(e0,e)|0,s0=s0+Math.imul(e0,M$)|0,s0=s0+Math.imul(r0,e)|0,I=I+Math.imul(r0,M$)|0,v=v+Math.imul(m0,S$)|0,s0=s0+Math.imul(m0,F)|0,s0=s0+Math.imul(a0,S$)|0,I=I+Math.imul(a0,F)|0;var $0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+($0>>>26)|0,$0&=67108863,v=Math.imul(O$,A$),s0=Math.imul(O$,b),s0=s0+Math.imul(c,A$)|0,I=Math.imul(c,b),v=v+Math.imul(p,l)|0,s0=s0+Math.imul(p,W$)|0,s0=s0+Math.imul(I$,l)|0,I=I+Math.imul(I$,W$)|0,v=v+Math.imul(X$,E$)|0,s0=s0+Math.imul(X$,u)|0,s0=s0+Math.imul(w,E$)|0,I=I+Math.imul(w,u)|0,v=v+Math.imul(B,n)|0,s0=s0+Math.imul(B,D$)|0,s0=s0+Math.imul(U$,n)|0,I=I+Math.imul(U$,D$)|0,v=v+Math.imul(G$,C$)|0,s0=s0+Math.imul(G$,t)|0,s0=s0+Math.imul(x,C$)|0,I=I+Math.imul(x,t)|0,v=v+Math.imul(_,m)|0,s0=s0+Math.imul(_,R$)|0,s0=s0+Math.imul(Z$,m)|0,I=I+Math.imul(Z$,R$)|0,v=v+Math.imul(Q$,P$)|0,s0=s0+Math.imul(Q$,O)|0,s0=s0+Math.imul(g,P$)|0,I=I+Math.imul(g,O)|0,v=v+Math.imul(j,e)|0,s0=s0+Math.imul(j,M$)|0,s0=s0+Math.imul($$,e)|0,I=I+Math.imul($$,M$)|0,v=v+Math.imul(e0,S$)|0,s0=s0+Math.imul(e0,F)|0,s0=s0+Math.imul(r0,S$)|0,I=I+Math.imul(r0,F)|0;var x$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(x$>>>26)|0,x$&=67108863,v=Math.imul(O$,l),s0=Math.imul(O$,W$),s0=s0+Math.imul(c,l)|0,I=Math.imul(c,W$),v=v+Math.imul(p,E$)|0,s0=s0+Math.imul(p,u)|0,s0=s0+Math.imul(I$,E$)|0,I=I+Math.imul(I$,u)|0,v=v+Math.imul(X$,n)|0,s0=s0+Math.imul(X$,D$)|0,s0=s0+Math.imul(w,n)|0,I=I+Math.imul(w,D$)|0,v=v+Math.imul(B,C$)|0,s0=s0+Math.imul(B,t)|0,s0=s0+Math.imul(U$,C$)|0,I=I+Math.imul(U$,t)|0,v=v+Math.imul(G$,m)|0,s0=s0+Math.imul(G$,R$)|0,s0=s0+Math.imul(x,m)|0,I=I+Math.imul(x,R$)|0,v=v+Math.imul(_,P$)|0,s0=s0+Math.imul(_,O)|0,s0=s0+Math.imul(Z$,P$)|0,I=I+Math.imul(Z$,O)|0,v=v+Math.imul(Q$,e)|0,s0=s0+Math.imul(Q$,M$)|0,s0=s0+Math.imul(g,e)|0,I=I+Math.imul(g,M$)|0,v=v+Math.imul(j,S$)|0,s0=s0+Math.imul(j,F)|0,s0=s0+Math.imul($$,S$)|0,I=I+Math.imul($$,F)|0;var Q0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Q0>>>26)|0,Q0&=67108863,v=Math.imul(O$,E$),s0=Math.imul(O$,u),s0=s0+Math.imul(c,E$)|0,I=Math.imul(c,u),v=v+Math.imul(p,n)|0,s0=s0+Math.imul(p,D$)|0,s0=s0+Math.imul(I$,n)|0,I=I+Math.imul(I$,D$)|0,v=v+Math.imul(X$,C$)|0,s0=s0+Math.imul(X$,t)|0,s0=s0+Math.imul(w,C$)|0,I=I+Math.imul(w,t)|0,v=v+Math.imul(B,m)|0,s0=s0+Math.imul(B,R$)|0,s0=s0+Math.imul(U$,m)|0,I=I+Math.imul(U$,R$)|0,v=v+Math.imul(G$,P$)|0,s0=s0+Math.imul(G$,O)|0,s0=s0+Math.imul(x,P$)|0,I=I+Math.imul(x,O)|0,v=v+Math.imul(_,e)|0,s0=s0+Math.imul(_,M$)|0,s0=s0+Math.imul(Z$,e)|0,I=I+Math.imul(Z$,M$)|0,v=v+Math.imul(Q$,S$)|0,s0=s0+Math.imul(Q$,F)|0,s0=s0+Math.imul(g,S$)|0,I=I+Math.imul(g,F)|0;var B$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(B$>>>26)|0,B$&=67108863,v=Math.imul(O$,n),s0=Math.imul(O$,D$),s0=s0+Math.imul(c,n)|0,I=Math.imul(c,D$),v=v+Math.imul(p,C$)|0,s0=s0+Math.imul(p,t)|0,s0=s0+Math.imul(I$,C$)|0,I=I+Math.imul(I$,t)|0,v=v+Math.imul(X$,m)|0,s0=s0+Math.imul(X$,R$)|0,s0=s0+Math.imul(w,m)|0,I=I+Math.imul(w,R$)|0,v=v+Math.imul(B,P$)|0,s0=s0+Math.imul(B,O)|0,s0=s0+Math.imul(U$,P$)|0,I=I+Math.imul(U$,O)|0,v=v+Math.imul(G$,e)|0,s0=s0+Math.imul(G$,M$)|0,s0=s0+Math.imul(x,e)|0,I=I+Math.imul(x,M$)|0,v=v+Math.imul(_,S$)|0,s0=s0+Math.imul(_,F)|0,s0=s0+Math.imul(Z$,S$)|0,I=I+Math.imul(Z$,F)|0;var Y0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Y0>>>26)|0,Y0&=67108863,v=Math.imul(O$,C$),s0=Math.imul(O$,t),s0=s0+Math.imul(c,C$)|0,I=Math.imul(c,t),v=v+Math.imul(p,m)|0,s0=s0+Math.imul(p,R$)|0,s0=s0+Math.imul(I$,m)|0,I=I+Math.imul(I$,R$)|0,v=v+Math.imul(X$,P$)|0,s0=s0+Math.imul(X$,O)|0,s0=s0+Math.imul(w,P$)|0,I=I+Math.imul(w,O)|0,v=v+Math.imul(B,e)|0,s0=s0+Math.imul(B,M$)|0,s0=s0+Math.imul(U$,e)|0,I=I+Math.imul(U$,M$)|0,v=v+Math.imul(G$,S$)|0,s0=s0+Math.imul(G$,F)|0,s0=s0+Math.imul(x,S$)|0,I=I+Math.imul(x,F)|0;var y$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(y$>>>26)|0,y$&=67108863,v=Math.imul(O$,m),s0=Math.imul(O$,R$),s0=s0+Math.imul(c,m)|0,I=Math.imul(c,R$),v=v+Math.imul(p,P$)|0,s0=s0+Math.imul(p,O)|0,s0=s0+Math.imul(I$,P$)|0,I=I+Math.imul(I$,O)|0,v=v+Math.imul(X$,e)|0,s0=s0+Math.imul(X$,M$)|0,s0=s0+Math.imul(w,e)|0,I=I+Math.imul(w,M$)|0,v=v+Math.imul(B,S$)|0,s0=s0+Math.imul(B,F)|0,s0=s0+Math.imul(U$,S$)|0,I=I+Math.imul(U$,F)|0;var Z0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Z0>>>26)|0,Z0&=67108863,v=Math.imul(O$,P$),s0=Math.imul(O$,O),s0=s0+Math.imul(c,P$)|0,I=Math.imul(c,O),v=v+Math.imul(p,e)|0,s0=s0+Math.imul(p,M$)|0,s0=s0+Math.imul(I$,e)|0,I=I+Math.imul(I$,M$)|0,v=v+Math.imul(X$,S$)|0,s0=s0+Math.imul(X$,F)|0,s0=s0+Math.imul(w,S$)|0,I=I+Math.imul(w,F)|0;var w$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(w$>>>26)|0,w$&=67108863,v=Math.imul(O$,e),s0=Math.imul(O$,M$),s0=s0+Math.imul(c,e)|0,I=Math.imul(c,M$),v=v+Math.imul(p,S$)|0,s0=s0+Math.imul(p,F)|0,s0=s0+Math.imul(I$,S$)|0,I=I+Math.imul(I$,F)|0;var G0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(G0>>>26)|0,G0&=67108863,v=Math.imul(O$,S$),s0=Math.imul(O$,F),s0=s0+Math.imul(c,S$)|0,I=Math.imul(c,F);var p$=(n0+v|0)+((s0&8191)<<13)|0;return n0=(I+(s0>>>13)|0)+(p$>>>26)|0,p$&=67108863,S[0]=v$,S[1]=r,S[2]=q$,S[3]=i,S[4]=j$,S[5]=k$,S[6]=g$,S[7]=_$,S[8]=N$,S[9]=$0,S[10]=x$,S[11]=Q0,S[12]=B$,S[13]=Y0,S[14]=y$,S[15]=Z0,S[16]=w$,S[17]=G0,S[18]=p$,n0!==0&&(S[19]=n0,o0.length++),o0};Math.imul||(p0=E);function T(l0,z,o0){o0.negative=z.negative^l0.negative,o0.length=l0.length+z.length;for(var M=0,u0=0,S=0;S>>26)|0,u0+=n0>>>26,n0&=67108863}o0.words[S]=v,M=n0,n0=u0}return M!==0?o0.words[S]=M:o0.length--,o0.strip()}function f0(l0,z,o0){var M=new D;return M.mulp(l0,z,o0)}Z.prototype.mulTo=function(l0,z){var o0,M=this.length+l0.length;return this.length===10&&l0.length===10?o0=p0(this,l0,z):M<63?o0=E(this,l0,z):M<1024?o0=T(this,l0,z):o0=f0(this,l0,z),o0};function D(l0,z){this.x=l0,this.y=z}D.prototype.makeRBT=function(l0){for(var z=new Array(l0),o0=Z.prototype._countBits(l0)-1,M=0;M>=1;return M},D.prototype.permute=function(l0,z,o0,M,u0,S){for(var n0=0;n0>>1)u0++;return 1<>>13,o0[2*S+1]=u0&8191,u0=u0>>>13;for(S=2*z;S>=26,z+=M/67108864|0,z+=u0>>>26,this.words[o0]=u0&67108863}return z!==0&&(this.words[o0]=z,this.length++),this},Z.prototype.muln=function(l0){return this.clone().imuln(l0)},Z.prototype.sqr=function(){return this.mul(this)},Z.prototype.isqr=function(){return this.imul(this.clone())},Z.prototype.pow=function(l0){var z=w0(l0);if(z.length===0)return new Z(1);for(var o0=this,M=0;M=0);var z=l0%26,o0=(l0-z)/26,M=67108863>>>26-z<<26-z,u0;if(z!==0){var S=0;for(u0=0;u0>>26-z}S&&(this.words[u0]=S,this.length++)}if(o0!==0){for(u0=this.length-1;u0>=0;u0--)this.words[u0+o0]=this.words[u0];for(u0=0;u0=0);var M;z?M=(z-z%26)/26:M=0;var u0=l0%26,S=Math.min((l0-u0)/26,this.length),n0=67108863^67108863>>>u0<S)for(this.length-=S,s0=0;s0=0&&(I!==0||s0>=M);s0--){var t0=this.words[s0]|0;this.words[s0]=I<<26-u0|t0>>>u0,I=t0&n0}return v&&I!==0&&(v.words[v.length++]=I),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},Z.prototype.ishrn=function(l0,z,o0){return Y(this.negative===0),this.iushrn(l0,z,o0)},Z.prototype.shln=function(l0){return this.clone().ishln(l0)},Z.prototype.ushln=function(l0){return this.clone().iushln(l0)},Z.prototype.shrn=function(l0){return this.clone().ishrn(l0)},Z.prototype.ushrn=function(l0){return this.clone().iushrn(l0)},Z.prototype.testn=function(l0){Y(typeof l0=="number"&&l0>=0);var z=l0%26,o0=(l0-z)/26,M=1<=0);var z=l0%26,o0=(l0-z)/26;if(Y(this.negative===0,"imaskn works only with positive numbers"),this.length<=o0)return this;if(z!==0&&o0++,this.length=Math.min(o0,this.length),z!==0){var M=67108863^67108863>>>z<=67108864;z++)this.words[z]-=67108864,z===this.length-1?this.words[z+1]=1:this.words[z+1]++;return this.length=Math.max(this.length,z+1),this},Z.prototype.isubn=function(l0){if(Y(typeof l0=="number"),Y(l0<67108864),l0<0)return this.iaddn(-l0);if(this.negative!==0)return this.negative=0,this.iaddn(l0),this.negative=1,this;if(this.words[0]-=l0,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var z=0;z>26)-(v/67108864|0),this.words[u0+o0]=S&67108863}for(;u0>26,this.words[u0+o0]=S&67108863;if(n0===0)return this.strip();for(Y(n0===-1),n0=0,u0=0;u0>26,this.words[u0]=S&67108863;return this.negative=1,this.strip()},Z.prototype._wordDiv=function(l0,z){var o0=this.length-l0.length,M=this.clone(),u0=l0,S=u0.words[u0.length-1]|0,n0=this._countBits(S);o0=26-n0,o0!==0&&(u0=u0.ushln(o0),M.iushln(o0),S=u0.words[u0.length-1]|0);var v=M.length-u0.length,s0;if(z!=="mod"){s0=new Z(null),s0.length=v+1,s0.words=new Array(s0.length);for(var I=0;I=0;m0--){var a0=(M.words[u0.length+m0]|0)*67108864+(M.words[u0.length+m0-1]|0);for(a0=Math.min(a0/S|0,67108863),M._ishlnsubmul(u0,a0,m0);M.negative!==0;)a0--,M.negative=0,M._ishlnsubmul(u0,1,m0),M.isZero()||(M.negative^=1);s0&&(s0.words[m0]=a0)}return s0&&s0.strip(),M.strip(),z!=="div"&&o0!==0&&M.iushrn(o0),{div:s0||null,mod:M}},Z.prototype.divmod=function(l0,z,o0){if(Y(!l0.isZero()),this.isZero())return{div:new Z(0),mod:new Z(0)};var M,u0,S;return this.negative!==0&&l0.negative===0?(S=this.neg().divmod(l0,z),z!=="mod"&&(M=S.div.neg()),z!=="div"&&(u0=S.mod.neg(),o0&&u0.negative!==0&&u0.iadd(l0)),{div:M,mod:u0}):this.negative===0&&l0.negative!==0?(S=this.divmod(l0.neg(),z),z!=="mod"&&(M=S.div.neg()),{div:M,mod:S.mod}):(this.negative&l0.negative)!==0?(S=this.neg().divmod(l0.neg(),z),z!=="div"&&(u0=S.mod.neg(),o0&&u0.negative!==0&&u0.isub(l0)),{div:S.div,mod:u0}):l0.length>this.length||this.cmp(l0)<0?{div:new Z(0),mod:this}:l0.length===1?z==="div"?{div:this.divn(l0.words[0]),mod:null}:z==="mod"?{div:null,mod:new Z(this.modn(l0.words[0]))}:{div:this.divn(l0.words[0]),mod:new Z(this.modn(l0.words[0]))}:this._wordDiv(l0,z)},Z.prototype.div=function(l0){return this.divmod(l0,"div",!1).div},Z.prototype.mod=function(l0){return this.divmod(l0,"mod",!1).mod},Z.prototype.umod=function(l0){return this.divmod(l0,"mod",!0).mod},Z.prototype.divRound=function(l0){var z=this.divmod(l0);if(z.mod.isZero())return z.div;var o0=z.div.negative!==0?z.mod.isub(l0):z.mod,M=l0.ushrn(1),u0=l0.andln(1),S=o0.cmp(M);return S<0||u0===1&&S===0?z.div:z.div.negative!==0?z.div.isubn(1):z.div.iaddn(1)},Z.prototype.modn=function(l0){Y(l0<=67108863);for(var z=(1<<26)%l0,o0=0,M=this.length-1;M>=0;M--)o0=(z*o0+(this.words[M]|0))%l0;return o0},Z.prototype.idivn=function(l0){Y(l0<=67108863);for(var z=0,o0=this.length-1;o0>=0;o0--){var M=(this.words[o0]|0)+z*67108864;this.words[o0]=M/l0|0,z=M%l0}return this.strip()},Z.prototype.divn=function(l0){return this.clone().idivn(l0)},Z.prototype.egcd=function(l0){Y(l0.negative===0),Y(!l0.isZero());var z=this,o0=l0.clone();z.negative!==0?z=z.umod(l0):z=z.clone();for(var M=new Z(1),u0=new Z(0),S=new Z(0),n0=new Z(1),v=0;z.isEven()&&o0.isEven();)z.iushrn(1),o0.iushrn(1),++v;for(var s0=o0.clone(),I=z.clone();!z.isZero();){for(var t0=0,m0=1;(z.words[0]&m0)===0&&t0<26;++t0,m0<<=1);if(t0>0)for(z.iushrn(t0);t0-- >0;)(M.isOdd()||u0.isOdd())&&(M.iadd(s0),u0.isub(I)),M.iushrn(1),u0.iushrn(1);for(var a0=0,q=1;(o0.words[0]&q)===0&&a0<26;++a0,q<<=1);if(a0>0)for(o0.iushrn(a0);a0-- >0;)(S.isOdd()||n0.isOdd())&&(S.iadd(s0),n0.isub(I)),S.iushrn(1),n0.iushrn(1);z.cmp(o0)>=0?(z.isub(o0),M.isub(S),u0.isub(n0)):(o0.isub(z),S.isub(M),n0.isub(u0))}return{a:S,b:n0,gcd:o0.iushln(v)}},Z.prototype._invmp=function(l0){Y(l0.negative===0),Y(!l0.isZero());var z=this,o0=l0.clone();z.negative!==0?z=z.umod(l0):z=z.clone();for(var M=new Z(1),u0=new Z(0),S=o0.clone();z.cmpn(1)>0&&o0.cmpn(1)>0;){for(var n0=0,v=1;(z.words[0]&v)===0&&n0<26;++n0,v<<=1);if(n0>0)for(z.iushrn(n0);n0-- >0;)M.isOdd()&&M.iadd(S),M.iushrn(1);for(var s0=0,I=1;(o0.words[0]&I)===0&&s0<26;++s0,I<<=1);if(s0>0)for(o0.iushrn(s0);s0-- >0;)u0.isOdd()&&u0.iadd(S),u0.iushrn(1);z.cmp(o0)>=0?(z.isub(o0),M.isub(u0)):(o0.isub(z),u0.isub(M))}var t0;return z.cmpn(1)===0?t0=M:t0=u0,t0.cmpn(0)<0&&t0.iadd(l0),t0},Z.prototype.gcd=function(l0){if(this.isZero())return l0.abs();if(l0.isZero())return this.abs();var z=this.clone(),o0=l0.clone();z.negative=0,o0.negative=0;for(var M=0;z.isEven()&&o0.isEven();M++)z.iushrn(1),o0.iushrn(1);do{for(;z.isEven();)z.iushrn(1);for(;o0.isEven();)o0.iushrn(1);var u0=z.cmp(o0);if(u0<0){var S=z;z=o0,o0=S}else if(u0===0||o0.cmpn(1)===0)break;z.isub(o0)}while(!0);return o0.iushln(M)},Z.prototype.invm=function(l0){return this.egcd(l0).a.umod(l0)},Z.prototype.isEven=function(){return(this.words[0]&1)===0},Z.prototype.isOdd=function(){return(this.words[0]&1)===1},Z.prototype.andln=function(l0){return this.words[0]&l0},Z.prototype.bincn=function(l0){Y(typeof l0=="number");var z=l0%26,o0=(l0-z)/26,M=1<>>26,n0&=67108863,this.words[S]=n0}return u0!==0&&(this.words[S]=u0,this.length++),this},Z.prototype.isZero=function(){return this.length===1&&this.words[0]===0},Z.prototype.cmpn=function(l0){var z=l0<0;if(this.negative!==0&&!z)return-1;if(this.negative===0&&z)return 1;this.strip();var o0;if(this.length>1)o0=1;else{z&&(l0=-l0),Y(l0<=67108863,"Number is too big");var M=this.words[0]|0;o0=M===l0?0:Ml0.length)return 1;if(this.length=0;o0--){var M=this.words[o0]|0,u0=l0.words[o0]|0;if(M!==u0){Mu0&&(z=1);break}}return z},Z.prototype.gtn=function(l0){return this.cmpn(l0)===1},Z.prototype.gt=function(l0){return this.cmp(l0)===1},Z.prototype.gten=function(l0){return this.cmpn(l0)>=0},Z.prototype.gte=function(l0){return this.cmp(l0)>=0},Z.prototype.ltn=function(l0){return this.cmpn(l0)===-1},Z.prototype.lt=function(l0){return this.cmp(l0)===-1},Z.prototype.lten=function(l0){return this.cmpn(l0)<=0},Z.prototype.lte=function(l0){return this.cmp(l0)<=0},Z.prototype.eqn=function(l0){return this.cmpn(l0)===0},Z.prototype.eq=function(l0){return this.cmp(l0)===0},Z.red=function(l0){return new b0(l0)},Z.prototype.toRed=function(l0){return Y(!this.red,"Already a number in reduction context"),Y(this.negative===0,"red works only with positives"),l0.convertTo(this)._forceRed(l0)},Z.prototype.fromRed=function(){return Y(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},Z.prototype._forceRed=function(l0){return this.red=l0,this},Z.prototype.forceRed=function(l0){return Y(!this.red,"Already a number in reduction context"),this._forceRed(l0)},Z.prototype.redAdd=function(l0){return Y(this.red,"redAdd works only with red numbers"),this.red.add(this,l0)},Z.prototype.redIAdd=function(l0){return Y(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,l0)},Z.prototype.redSub=function(l0){return Y(this.red,"redSub works only with red numbers"),this.red.sub(this,l0)},Z.prototype.redISub=function(l0){return Y(this.red,"redISub works only with red numbers"),this.red.isub(this,l0)},Z.prototype.redShl=function(l0){return Y(this.red,"redShl works only with red numbers"),this.red.shl(this,l0)},Z.prototype.redMul=function(l0){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,l0),this.red.mul(this,l0)},Z.prototype.redIMul=function(l0){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,l0),this.red.imul(this,l0)},Z.prototype.redSqr=function(){return Y(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},Z.prototype.redISqr=function(){return Y(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},Z.prototype.redSqrt=function(){return Y(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},Z.prototype.redInvm=function(){return Y(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},Z.prototype.redNeg=function(){return Y(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},Z.prototype.redPow=function(l0){return Y(this.red&&!l0.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,l0)};var c0={k256:null,p224:null,p192:null,p25519:null};function C(l0,z){this.name=l0,this.p=new Z(z,16),this.n=this.p.bitLength(),this.k=new Z(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}C.prototype._tmp=function(){var l0=new Z(null);return l0.words=new Array(Math.ceil(this.n/13)),l0},C.prototype.ireduce=function(l0){var z=l0,o0;do this.split(z,this.tmp),z=this.imulK(z),z=z.iadd(this.tmp),o0=z.bitLength();while(o0>this.n);var M=o00?z.isub(this.p):z.strip!==void 0?z.strip():z._strip(),z},C.prototype.split=function(l0,z){l0.iushrn(this.n,0,z)},C.prototype.imulK=function(l0){return l0.imul(this.k)};function h0(){C.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}$(h0,C),h0.prototype.split=function(l0,z){for(var o0=4194303,M=Math.min(l0.length,9),u0=0;u0>>22,S=n0}S>>>=22,l0.words[u0-10]=S,S===0&&l0.length>10?l0.length-=10:l0.length-=9},h0.prototype.imulK=function(l0){l0.words[l0.length]=0,l0.words[l0.length+1]=0,l0.length+=2;for(var z=0,o0=0;o0>>=26,l0.words[o0]=u0,z=M}return z!==0&&(l0.words[l0.length++]=z),l0},Z._prime=function(l0){if(c0[l0])return c0[l0];var z;if(l0==="k256")z=new h0;else if(l0==="p224")z=new L;else if(l0==="p192")z=new d0;else if(l0==="p25519")z=new R;else throw new Error("Unknown prime "+l0);return c0[l0]=z,z};function b0(l0){if(typeof l0=="string"){var z=Z._prime(l0);this.m=z.p,this.prime=z}else Y(l0.gtn(1),"modulus must be greater than 1"),this.m=l0,this.prime=null}b0.prototype._verify1=function(l0){Y(l0.negative===0,"red works only with positives"),Y(l0.red,"red works only with red numbers")},b0.prototype._verify2=function(l0,z){Y((l0.negative|z.negative)===0,"red works only with positives"),Y(l0.red&&l0.red===z.red,"red works only with red numbers")},b0.prototype.imod=function(l0){return this.prime?this.prime.ireduce(l0)._forceRed(this):l0.umod(this.m)._forceRed(this)},b0.prototype.neg=function(l0){return l0.isZero()?l0.clone():this.m.sub(l0)._forceRed(this)},b0.prototype.add=function(l0,z){this._verify2(l0,z);var o0=l0.add(z);return o0.cmp(this.m)>=0&&o0.isub(this.m),o0._forceRed(this)},b0.prototype.iadd=function(l0,z){this._verify2(l0,z);var o0=l0.iadd(z);return o0.cmp(this.m)>=0&&o0.isub(this.m),o0},b0.prototype.sub=function(l0,z){this._verify2(l0,z);var o0=l0.sub(z);return o0.cmpn(0)<0&&o0.iadd(this.m),o0._forceRed(this)},b0.prototype.isub=function(l0,z){this._verify2(l0,z);var o0=l0.isub(z);return o0.cmpn(0)<0&&o0.iadd(this.m),o0},b0.prototype.shl=function(l0,z){return this._verify1(l0),this.imod(l0.ushln(z))},b0.prototype.imul=function(l0,z){return this._verify2(l0,z),this.imod(l0.imul(z))},b0.prototype.mul=function(l0,z){return this._verify2(l0,z),this.imod(l0.mul(z))},b0.prototype.isqr=function(l0){return this.imul(l0,l0.clone())},b0.prototype.sqr=function(l0){return this.mul(l0,l0)},b0.prototype.sqrt=function(l0){if(l0.isZero())return l0.clone();var z=this.m.andln(3);if(Y(z%2===1),z===3){var o0=this.m.add(new Z(1)).iushrn(2);return this.pow(l0,o0)}for(var M=this.m.subn(1),u0=0;!M.isZero()&&M.andln(1)===0;)u0++,M.iushrn(1);Y(!M.isZero());var S=new Z(1).toRed(this),n0=S.redNeg(),v=this.m.subn(1).iushrn(1),s0=this.m.bitLength();for(s0=new Z(2*s0*s0).toRed(this);this.pow(s0,v).cmp(n0)!==0;)s0.redIAdd(n0);for(var I=this.pow(s0,M),t0=this.pow(l0,M.addn(1).iushrn(1)),m0=this.pow(l0,M),a0=u0;m0.cmp(S)!==0;){for(var q=m0,e0=0;q.cmp(S)!==0;e0++)q=q.redSqr();Y(e0=0;u0--){for(var I=z.words[u0],t0=s0-1;t0>=0;t0--){var m0=I>>t0&1;if(S!==M[0]&&(S=this.sqr(S)),m0===0&&n0===0){v=0;continue}n0<<=1,n0|=m0,v++,!(v!==o0&&(u0!==0||t0!==0))&&(S=this.mul(S,M[n0]),v=0,n0=0)}s0=26}return S},b0.prototype.convertTo=function(l0){var z=l0.umod(this.m);return z===l0?z.clone():z},b0.prototype.convertFrom=function(l0){var z=l0.clone();return z.red=null,z},Z.mont=function(l0){return new P(l0)};function P(l0){b0.call(this,l0),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new Z(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}$(P,b0),P.prototype.convertTo=function(l0){return this.imod(l0.ushln(this.shift))},P.prototype.convertFrom=function(l0){var z=this.imod(l0.mul(this.rinv));return z.red=null,z},P.prototype.imul=function(l0,z){if(l0.isZero()||z.isZero())return l0.words[0]=0,l0.length=1,l0;var o0=l0.imul(z),M=o0.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u0=o0.isub(M).iushrn(this.shift),S=u0;return u0.cmp(this.m)>=0?S=u0.isub(this.m):u0.cmpn(0)<0&&(S=u0.iadd(this.m)),S._forceRed(this)},P.prototype.mul=function(l0,z){if(l0.isZero()||z.isZero())return new Z(0)._forceRed(this);var o0=l0.mul(z),M=o0.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u0=o0.isub(M).iushrn(this.shift),S=u0;return u0.cmp(this.m)>=0?S=u0.isub(this.m):u0.cmpn(0)<0&&(S=u0.iadd(this.m)),S._forceRed(this)},P.prototype.invm=function(l0){var z=this.imod(l0._invmp(this.m).mul(this.r2));return z._forceRed(this)}})(typeof K>"u"||K,X)}}),lQ=$Q({"node_modules/minimalistic-crypto-utils/lib/utils.js"(X){var K=X;function x0($,Z){if(Array.isArray($))return $.slice();if(!$)return[];var Q=[];if(typeof $!="string"){for(var U=0;U<$.length;U++)Q[U]=$[U]|0;return Q}if(Z==="hex"){$=$.replace(/[^a-z0-9]+/gi,""),$.length%2!==0&&($="0"+$);for(var U=0;U<$.length;U+=2)Q.push(parseInt($[U]+$[U+1],16))}else for(var U=0;U<$.length;U++){var V=$.charCodeAt(U),B0=V>>8,H=V&255;B0?Q.push(B0,H):Q.push(H)}return Q}K.toArray=x0;function G($){return $.length===1?"0"+$:$}K.zero2=G;function Y($){for(var Z="",Q=0;Q<$.length;Q++)Z+=G($[Q].toString(16));return Z}K.toHex=Y,K.encode=function($,Z){return Z==="hex"?Y($):$}}}),oQ=$Q({"node_modules/elliptic/lib/elliptic/utils.js"(X){var K=X,x0=bQ(),G=N0(),Y=lQ();K.assert=G,K.toArray=Y.toArray,K.zero2=Y.zero2,K.toHex=Y.toHex,K.encode=Y.encode;function $(B0,H,y0){var W=new Array(Math.max(B0.bitLength(),y0)+1);W.fill(0);for(var w0=1<(w0>>1)-1?T=(w0>>1)-f0:T=f0,E.isubn(T)):T=0,W[p0]=T,E.iushrn(1)}return W}K.getNAF=$;function Z(B0,H){var y0=[[],[]];B0=B0.clone(),H=H.clone();for(var W=0,w0=0,E;B0.cmpn(-W)>0||H.cmpn(-w0)>0;){var p0=B0.andln(3)+W&3,T=H.andln(3)+w0&3;p0===3&&(p0=-1),T===3&&(T=-1);var f0;(p0&1)===0?f0=0:(E=B0.andln(7)+W&7,(E===3||E===5)&&T===2?f0=-p0:f0=p0),y0[0].push(f0);var D;(T&1)===0?D=0:(E=H.andln(7)+w0&7,(E===3||E===5)&&p0===2?D=-T:D=T),y0[1].push(D),2*W===f0+1&&(W=1-W),2*w0===D+1&&(w0=1-w0),B0.iushrn(1),H.iushrn(1)}return y0}K.getJSF=Z;function Q(B0,H,y0){var W="_"+H;B0.prototype[H]=function(){return this[W]!==void 0?this[W]:this[W]=y0.call(this)}}K.cachedProperty=Q;function U(B0){return typeof B0=="string"?K.toArray(B0,"hex"):B0}K.parseBytes=U;function V(B0){return new x0(B0,"hex","le")}K.intFromLE=V}}),uQ=$Q({"node_modules/elliptic/lib/elliptic/curve/base.js"(X,K){var x0=bQ(),G=oQ(),Y=G.getNAF,$=G.getJSF,Z=G.assert;function Q(V,B0){this.type=V,this.p=new x0(B0.p,16),this.red=B0.prime?x0.red(B0.prime):x0.mont(this.p),this.zero=new x0(0).toRed(this.red),this.one=new x0(1).toRed(this.red),this.two=new x0(2).toRed(this.red),this.n=B0.n&&new x0(B0.n,16),this.g=B0.g&&this.pointFromJSON(B0.g,B0.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var H=this.n&&this.p.div(this.n);!H||H.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}K.exports=Q,Q.prototype.point=function(){throw new Error("Not implemented")},Q.prototype.validate=function(){throw new Error("Not implemented")},Q.prototype._fixedNafMul=function(V,B0){Z(V.precomputed);var H=V._getDoubles(),y0=Y(B0,1,this._bitLength),W=(1<=E;T--)p0=(p0<<1)+y0[T];w0.push(p0)}for(var f0=this.jpoint(null,null,null),D=this.jpoint(null,null,null),c0=W;c0>0;c0--){for(E=0;E=0;p0--){for(var T=0;p0>=0&&w0[p0]===0;p0--)T++;if(p0>=0&&T++,E=E.dblp(T),p0<0)break;var f0=w0[p0];Z(f0!==0),V.type==="affine"?f0>0?E=E.mixedAdd(W[f0-1>>1]):E=E.mixedAdd(W[-f0-1>>1].neg()):f0>0?E=E.add(W[f0-1>>1]):E=E.add(W[-f0-1>>1].neg())}return V.type==="affine"?E.toP():E},Q.prototype._wnafMulAdd=function(V,B0,H,y0,W){var w0=this._wnafT1,E=this._wnafT2,p0=this._wnafT3,T=0,f0,D,c0;for(f0=0;f0=1;f0-=2){var h0=f0-1,L=f0;if(w0[h0]!==1||w0[L]!==1){p0[h0]=Y(H[h0],w0[h0],this._bitLength),p0[L]=Y(H[L],w0[L],this._bitLength),T=Math.max(p0[h0].length,T),T=Math.max(p0[L].length,T);continue}var d0=[B0[h0],null,null,B0[L]];B0[h0].y.cmp(B0[L].y)===0?(d0[1]=B0[h0].add(B0[L]),d0[2]=B0[h0].toJ().mixedAdd(B0[L].neg())):B0[h0].y.cmp(B0[L].y.redNeg())===0?(d0[1]=B0[h0].toJ().mixedAdd(B0[L]),d0[2]=B0[h0].add(B0[L].neg())):(d0[1]=B0[h0].toJ().mixedAdd(B0[L]),d0[2]=B0[h0].toJ().mixedAdd(B0[L].neg()));var R=[-3,-1,-5,-7,0,7,5,1,3],b0=$(H[h0],H[L]);for(T=Math.max(b0[0].length,T),p0[h0]=new Array(T),p0[L]=new Array(T),D=0;D=0;f0--){for(var M=0;f0>=0;){var u0=!0;for(D=0;D=0&&M++,z=z.dblp(M),f0<0)break;for(D=0;D0?c0=E[D][S-1>>1]:S<0&&(c0=E[D][-S-1>>1].neg()),c0.type==="affine"?z=z.mixedAdd(c0):z=z.add(c0))}}for(f0=0;f0=Math.ceil((V.bitLength()+1)/B0.step):!1},U.prototype._getDoubles=function(V,B0){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var H=[this],y0=this,W=0;W=0&&(h0=f0,L=D),c0.negative&&(c0=c0.neg(),C=C.neg()),h0.negative&&(h0=h0.neg(),L=L.neg()),[{a:c0,b:C},{a:h0,b:L}]},Q.prototype._endoSplit=function(B0){var H=this.endo.basis,y0=H[0],W=H[1],w0=W.b.mul(B0).divRound(this.n),E=y0.b.neg().mul(B0).divRound(this.n),p0=w0.mul(y0.a),T=E.mul(W.a),f0=w0.mul(y0.b),D=E.mul(W.b),c0=B0.sub(p0).sub(T),C=f0.add(D).neg();return{k1:c0,k2:C}},Q.prototype.pointFromX=function(B0,H){B0=new G(B0,16),B0.red||(B0=B0.toRed(this.red));var y0=B0.redSqr().redMul(B0).redIAdd(B0.redMul(this.a)).redIAdd(this.b),W=y0.redSqrt();if(W.redSqr().redSub(y0).cmp(this.zero)!==0)throw new Error("invalid point");var w0=W.fromRed().isOdd();return(H&&!w0||!H&&w0)&&(W=W.redNeg()),this.point(B0,W)},Q.prototype.validate=function(B0){if(B0.inf)return!0;var{x:H,y:y0}=B0,W=this.a.redMul(H),w0=H.redSqr().redMul(H).redIAdd(W).redIAdd(this.b);return y0.redSqr().redISub(w0).cmpn(0)===0},Q.prototype._endoWnafMulAdd=function(B0,H,y0){for(var W=this._endoWnafT1,w0=this._endoWnafT2,E=0;E":""},U.prototype.isInfinity=function(){return this.inf},U.prototype.add=function(B0){if(this.inf)return B0;if(B0.inf)return this;if(this.eq(B0))return this.dbl();if(this.neg().eq(B0))return this.curve.point(null,null);if(this.x.cmp(B0.x)===0)return this.curve.point(null,null);var H=this.y.redSub(B0.y);H.cmpn(0)!==0&&(H=H.redMul(this.x.redSub(B0.x).redInvm()));var y0=H.redSqr().redISub(this.x).redISub(B0.x),W=H.redMul(this.x.redSub(y0)).redISub(this.y);return this.curve.point(y0,W)},U.prototype.dbl=function(){if(this.inf)return this;var B0=this.y.redAdd(this.y);if(B0.cmpn(0)===0)return this.curve.point(null,null);var H=this.curve.a,y0=this.x.redSqr(),W=B0.redInvm(),w0=y0.redAdd(y0).redIAdd(y0).redIAdd(H).redMul(W),E=w0.redSqr().redISub(this.x.redAdd(this.x)),p0=w0.redMul(this.x.redSub(E)).redISub(this.y);return this.curve.point(E,p0)},U.prototype.getX=function(){return this.x.fromRed()},U.prototype.getY=function(){return this.y.fromRed()},U.prototype.mul=function(B0){return B0=new G(B0,16),this.isInfinity()?this:this._hasDoubles(B0)?this.curve._fixedNafMul(this,B0):this.curve.endo?this.curve._endoWnafMulAdd([this],[B0]):this.curve._wnafMul(this,B0)},U.prototype.mulAdd=function(B0,H,y0){var W=[this,H],w0=[B0,y0];return this.curve.endo?this.curve._endoWnafMulAdd(W,w0):this.curve._wnafMulAdd(1,W,w0,2)},U.prototype.jmulAdd=function(B0,H,y0){var W=[this,H],w0=[B0,y0];return this.curve.endo?this.curve._endoWnafMulAdd(W,w0,!0):this.curve._wnafMulAdd(1,W,w0,2,!0)},U.prototype.eq=function(B0){return this===B0||this.inf===B0.inf&&(this.inf||this.x.cmp(B0.x)===0&&this.y.cmp(B0.y)===0)},U.prototype.neg=function(B0){if(this.inf)return this;var H=this.curve.point(this.x,this.y.redNeg());if(B0&&this.precomputed){var y0=this.precomputed,W=function(w0){return w0.neg()};H.precomputed={naf:y0.naf&&{wnd:y0.naf.wnd,points:y0.naf.points.map(W)},doubles:y0.doubles&&{step:y0.doubles.step,points:y0.doubles.points.map(W)}}}return H},U.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var B0=this.curve.jpoint(this.x,this.y,this.curve.one);return B0};function V(B0,H,y0,W){$.BasePoint.call(this,B0,"jacobian"),H===null&&y0===null&&W===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new G(0)):(this.x=new G(H,16),this.y=new G(y0,16),this.z=new G(W,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}Y(V,$.BasePoint),Q.prototype.jpoint=function(B0,H,y0){return new V(this,B0,H,y0)},V.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var B0=this.z.redInvm(),H=B0.redSqr(),y0=this.x.redMul(H),W=this.y.redMul(H).redMul(B0);return this.curve.point(y0,W)},V.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},V.prototype.add=function(B0){if(this.isInfinity())return B0;if(B0.isInfinity())return this;var H=B0.z.redSqr(),y0=this.z.redSqr(),W=this.x.redMul(H),w0=B0.x.redMul(y0),E=this.y.redMul(H.redMul(B0.z)),p0=B0.y.redMul(y0.redMul(this.z)),T=W.redSub(w0),f0=E.redSub(p0);if(T.cmpn(0)===0)return f0.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var D=T.redSqr(),c0=D.redMul(T),C=W.redMul(D),h0=f0.redSqr().redIAdd(c0).redISub(C).redISub(C),L=f0.redMul(C.redISub(h0)).redISub(E.redMul(c0)),d0=this.z.redMul(B0.z).redMul(T);return this.curve.jpoint(h0,L,d0)},V.prototype.mixedAdd=function(B0){if(this.isInfinity())return B0.toJ();if(B0.isInfinity())return this;var H=this.z.redSqr(),y0=this.x,W=B0.x.redMul(H),w0=this.y,E=B0.y.redMul(H).redMul(this.z),p0=y0.redSub(W),T=w0.redSub(E);if(p0.cmpn(0)===0)return T.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var f0=p0.redSqr(),D=f0.redMul(p0),c0=y0.redMul(f0),C=T.redSqr().redIAdd(D).redISub(c0).redISub(c0),h0=T.redMul(c0.redISub(C)).redISub(w0.redMul(D)),L=this.z.redMul(p0);return this.curve.jpoint(C,h0,L)},V.prototype.dblp=function(B0){if(B0===0)return this;if(this.isInfinity())return this;if(!B0)return this.dbl();var H;if(this.curve.zeroA||this.curve.threeA){var y0=this;for(H=0;H=0)return!1;if(y0.redIAdd(w0),this.x.cmp(y0)===0)return!0}},V.prototype.inspect=function(){return this.isInfinity()?"":""},V.prototype.isInfinity=function(){return this.z.cmpn(0)===0}}}),sQ=$Q({"node_modules/elliptic/lib/elliptic/curve/mont.js"(X,K){var x0=bQ(),G=X0(),Y=uQ(),$=oQ();function Z(U){Y.call(this,"mont",U),this.a=new x0(U.a,16).toRed(this.red),this.b=new x0(U.b,16).toRed(this.red),this.i4=new x0(4).toRed(this.red).redInvm(),this.two=new x0(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}G(Z,Y),K.exports=Z,Z.prototype.validate=function(U){var V=U.normalize().x,B0=V.redSqr(),H=B0.redMul(V).redAdd(B0.redMul(this.a)).redAdd(V),y0=H.redSqrt();return y0.redSqr().cmp(H)===0};function Q(U,V,B0){Y.BasePoint.call(this,U,"projective"),V===null&&B0===null?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new x0(V,16),this.z=new x0(B0,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}G(Q,Y.BasePoint),Z.prototype.decodePoint=function(U,V){return this.point($.toArray(U,V),1)},Z.prototype.point=function(U,V){return new Q(this,U,V)},Z.prototype.pointFromJSON=function(U){return Q.fromJSON(this,U)},Q.prototype.precompute=function(){},Q.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},Q.fromJSON=function(U,V){return new Q(U,V[0],V[1]||U.one)},Q.prototype.inspect=function(){return this.isInfinity()?"":""},Q.prototype.isInfinity=function(){return this.z.cmpn(0)===0},Q.prototype.dbl=function(){var U=this.x.redAdd(this.z),V=U.redSqr(),B0=this.x.redSub(this.z),H=B0.redSqr(),y0=V.redSub(H),W=V.redMul(H),w0=y0.redMul(H.redAdd(this.curve.a24.redMul(y0)));return this.curve.point(W,w0)},Q.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},Q.prototype.diffAdd=function(U,V){var B0=this.x.redAdd(this.z),H=this.x.redSub(this.z),y0=U.x.redAdd(U.z),W=U.x.redSub(U.z),w0=W.redMul(B0),E=y0.redMul(H),p0=V.z.redMul(w0.redAdd(E).redSqr()),T=V.x.redMul(w0.redISub(E).redSqr());return this.curve.point(p0,T)},Q.prototype.mul=function(U){for(var V=U.clone(),B0=this,H=this.curve.point(null,null),y0=this,W=[];V.cmpn(0)!==0;V.iushrn(1))W.push(V.andln(1));for(var w0=W.length-1;w0>=0;w0--)W[w0]===0?(B0=B0.diffAdd(H,y0),H=H.dbl()):(H=B0.diffAdd(H,y0),B0=B0.dbl());return H},Q.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},Q.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},Q.prototype.eq=function(U){return this.getX().cmp(U.getX())===0},Q.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},Q.prototype.getX=function(){return this.normalize(),this.x.fromRed()}}}),tQ=$Q({"node_modules/elliptic/lib/elliptic/curve/edwards.js"(X,K){var x0=oQ(),G=bQ(),Y=X0(),$=uQ(),Z=x0.assert;function Q(V){this.twisted=(V.a|0)!==1,this.mOneA=this.twisted&&(V.a|0)===-1,this.extended=this.mOneA,$.call(this,"edwards",V),this.a=new G(V.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new G(V.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new G(V.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),Z(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(V.c|0)===1}Y(Q,$),K.exports=Q,Q.prototype._mulA=function(V){return this.mOneA?V.redNeg():this.a.redMul(V)},Q.prototype._mulC=function(V){return this.oneC?V:this.c.redMul(V)},Q.prototype.jpoint=function(V,B0,H,y0){return this.point(V,B0,H,y0)},Q.prototype.pointFromX=function(V,B0){V=new G(V,16),V.red||(V=V.toRed(this.red));var H=V.redSqr(),y0=this.c2.redSub(this.a.redMul(H)),W=this.one.redSub(this.c2.redMul(this.d).redMul(H)),w0=y0.redMul(W.redInvm()),E=w0.redSqrt();if(E.redSqr().redSub(w0).cmp(this.zero)!==0)throw new Error("invalid point");var p0=E.fromRed().isOdd();return(B0&&!p0||!B0&&p0)&&(E=E.redNeg()),this.point(V,E)},Q.prototype.pointFromY=function(V,B0){V=new G(V,16),V.red||(V=V.toRed(this.red));var H=V.redSqr(),y0=H.redSub(this.c2),W=H.redMul(this.d).redMul(this.c2).redSub(this.a),w0=y0.redMul(W.redInvm());if(w0.cmp(this.zero)===0){if(B0)throw new Error("invalid point");return this.point(this.zero,V)}var E=w0.redSqrt();if(E.redSqr().redSub(w0).cmp(this.zero)!==0)throw new Error("invalid point");return E.fromRed().isOdd()!==B0&&(E=E.redNeg()),this.point(E,V)},Q.prototype.validate=function(V){if(V.isInfinity())return!0;V.normalize();var B0=V.x.redSqr(),H=V.y.redSqr(),y0=B0.redMul(this.a).redAdd(H),W=this.c2.redMul(this.one.redAdd(this.d.redMul(B0).redMul(H)));return y0.cmp(W)===0};function U(V,B0,H,y0,W){$.BasePoint.call(this,V,"projective"),B0===null&&H===null&&y0===null?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new G(B0,16),this.y=new G(H,16),this.z=y0?new G(y0,16):this.curve.one,this.t=W&&new G(W,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}Y(U,$.BasePoint),Q.prototype.pointFromJSON=function(V){return U.fromJSON(this,V)},Q.prototype.point=function(V,B0,H,y0){return new U(this,V,B0,H,y0)},U.fromJSON=function(V,B0){return new U(V,B0[0],B0[1],B0[2])},U.prototype.inspect=function(){return this.isInfinity()?"":""},U.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)},U.prototype._extDbl=function(){var V=this.x.redSqr(),B0=this.y.redSqr(),H=this.z.redSqr();H=H.redIAdd(H);var y0=this.curve._mulA(V),W=this.x.redAdd(this.y).redSqr().redISub(V).redISub(B0),w0=y0.redAdd(B0),E=w0.redSub(H),p0=y0.redSub(B0),T=W.redMul(E),f0=w0.redMul(p0),D=W.redMul(p0),c0=E.redMul(w0);return this.curve.point(T,f0,c0,D)},U.prototype._projDbl=function(){var V=this.x.redAdd(this.y).redSqr(),B0=this.x.redSqr(),H=this.y.redSqr(),y0,W,w0,E,p0,T;if(this.curve.twisted){E=this.curve._mulA(B0);var f0=E.redAdd(H);this.zOne?(y0=V.redSub(B0).redSub(H).redMul(f0.redSub(this.curve.two)),W=f0.redMul(E.redSub(H)),w0=f0.redSqr().redSub(f0).redSub(f0)):(p0=this.z.redSqr(),T=f0.redSub(p0).redISub(p0),y0=V.redSub(B0).redISub(H).redMul(T),W=f0.redMul(E.redSub(H)),w0=f0.redMul(T))}else E=B0.redAdd(H),p0=this.curve._mulC(this.z).redSqr(),T=E.redSub(p0).redSub(p0),y0=this.curve._mulC(V.redISub(E)).redMul(T),W=this.curve._mulC(E).redMul(B0.redISub(H)),w0=E.redMul(T);return this.curve.point(y0,W,w0)},U.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},U.prototype._extAdd=function(V){var B0=this.y.redSub(this.x).redMul(V.y.redSub(V.x)),H=this.y.redAdd(this.x).redMul(V.y.redAdd(V.x)),y0=this.t.redMul(this.curve.dd).redMul(V.t),W=this.z.redMul(V.z.redAdd(V.z)),w0=H.redSub(B0),E=W.redSub(y0),p0=W.redAdd(y0),T=H.redAdd(B0),f0=w0.redMul(E),D=p0.redMul(T),c0=w0.redMul(T),C=E.redMul(p0);return this.curve.point(f0,D,C,c0)},U.prototype._projAdd=function(V){var B0=this.z.redMul(V.z),H=B0.redSqr(),y0=this.x.redMul(V.x),W=this.y.redMul(V.y),w0=this.curve.d.redMul(y0).redMul(W),E=H.redSub(w0),p0=H.redAdd(w0),T=this.x.redAdd(this.y).redMul(V.x.redAdd(V.y)).redISub(y0).redISub(W),f0=B0.redMul(E).redMul(T),D,c0;return this.curve.twisted?(D=B0.redMul(p0).redMul(W.redSub(this.curve._mulA(y0))),c0=E.redMul(p0)):(D=B0.redMul(p0).redMul(W.redSub(y0)),c0=this.curve._mulC(E).redMul(p0)),this.curve.point(f0,D,c0)},U.prototype.add=function(V){return this.isInfinity()?V:V.isInfinity()?this:this.curve.extended?this._extAdd(V):this._projAdd(V)},U.prototype.mul=function(V){return this._hasDoubles(V)?this.curve._fixedNafMul(this,V):this.curve._wnafMul(this,V)},U.prototype.mulAdd=function(V,B0,H){return this.curve._wnafMulAdd(1,[this,B0],[V,H],2,!1)},U.prototype.jmulAdd=function(V,B0,H){return this.curve._wnafMulAdd(1,[this,B0],[V,H],2,!0)},U.prototype.normalize=function(){if(this.zOne)return this;var V=this.z.redInvm();return this.x=this.x.redMul(V),this.y=this.y.redMul(V),this.t&&(this.t=this.t.redMul(V)),this.z=this.curve.one,this.zOne=!0,this},U.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},U.prototype.getX=function(){return this.normalize(),this.x.fromRed()},U.prototype.getY=function(){return this.normalize(),this.y.fromRed()},U.prototype.eq=function(V){return this===V||this.getX().cmp(V.getX())===0&&this.getY().cmp(V.getY())===0},U.prototype.eqXToP=function(V){var B0=V.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(B0)===0)return!0;for(var H=V.clone(),y0=this.curve.redN.redMul(this.z);;){if(H.iadd(this.curve.n),H.cmp(this.curve.p)>=0)return!1;if(B0.redIAdd(y0),this.x.cmp(B0)===0)return!0}},U.prototype.toP=U.prototype.normalize,U.prototype.mixedAdd=U.prototype.add}}),mQ=$Q({"node_modules/elliptic/lib/elliptic/curve/index.js"(X){var K=X;K.base=uQ(),K.short=nQ(),K.mont=sQ(),K.edwards=tQ()}}),aQ=$Q({"node_modules/hash.js/lib/hash/utils.js"(X){var K=N0(),x0=X0();X.inherits=x0;function G(z,o0){return(z.charCodeAt(o0)&64512)!==55296||o0<0||o0+1>=z.length?!1:(z.charCodeAt(o0+1)&64512)===56320}function Y(z,o0){if(Array.isArray(z))return z.slice();if(!z)return[];var M=[];if(typeof z=="string")if(o0){if(o0==="hex")for(z=z.replace(/[^a-z0-9]+/gi,""),z.length%2!==0&&(z="0"+z),S=0;S>6|192,M[u0++]=n0&63|128):G(z,S)?(n0=65536+((n0&1023)<<10)+(z.charCodeAt(++S)&1023),M[u0++]=n0>>18|240,M[u0++]=n0>>12&63|128,M[u0++]=n0>>6&63|128,M[u0++]=n0&63|128):(M[u0++]=n0>>12|224,M[u0++]=n0>>6&63|128,M[u0++]=n0&63|128)}else for(S=0;S>>24|z>>>8&65280|z<<8&16711680|(z&255)<<24;return o0>>>0}X.htonl=Z;function Q(z,o0){for(var M="",u0=0;u0>>0}return n0}X.join32=B0;function H(z,o0){for(var M=new Array(z.length*4),u0=0,S=0;u0>>24,M[S+1]=n0>>>16&255,M[S+2]=n0>>>8&255,M[S+3]=n0&255):(M[S+3]=n0>>>24,M[S+2]=n0>>>16&255,M[S+1]=n0>>>8&255,M[S]=n0&255)}return M}X.split32=H;function y0(z,o0){return z>>>o0|z<<32-o0}X.rotr32=y0;function W(z,o0){return z<>>32-o0}X.rotl32=W;function w0(z,o0){return z+o0>>>0}X.sum32=w0;function E(z,o0,M){return z+o0+M>>>0}X.sum32_3=E;function p0(z,o0,M,u0){return z+o0+M+u0>>>0}X.sum32_4=p0;function T(z,o0,M,u0,S){return z+o0+M+u0+S>>>0}X.sum32_5=T;function f0(z,o0,M,u0){var S=z[o0],n0=z[o0+1],v=u0+n0>>>0,s0=(v>>0,z[o0+1]=v}X.sum64=f0;function D(z,o0,M,u0){var S=o0+u0>>>0,n0=(S>>0}X.sum64_hi=D;function c0(z,o0,M,u0){var S=o0+u0;return S>>>0}X.sum64_lo=c0;function C(z,o0,M,u0,S,n0,v,s0){var I=0,t0=o0;t0=t0+u0>>>0,I+=t0>>0,I+=t0>>0,I+=t0>>0}X.sum64_4_hi=C;function h0(z,o0,M,u0,S,n0,v,s0){var I=o0+u0+n0+s0;return I>>>0}X.sum64_4_lo=h0;function L(z,o0,M,u0,S,n0,v,s0,I,t0){var m0=0,a0=o0;a0=a0+u0>>>0,m0+=a0>>0,m0+=a0>>0,m0+=a0>>0,m0+=a0>>0}X.sum64_5_hi=L;function d0(z,o0,M,u0,S,n0,v,s0,I,t0){var m0=o0+u0+n0+s0+t0;return m0>>>0}X.sum64_5_lo=d0;function R(z,o0,M){var u0=o0<<32-M|z>>>M;return u0>>>0}X.rotr64_hi=R;function b0(z,o0,M){var u0=z<<32-M|o0>>>M;return u0>>>0}X.rotr64_lo=b0;function P(z,o0,M){return z>>>M}X.shr64_hi=P;function l0(z,o0,M){var u0=z<<32-M|o0>>>M;return u0>>>0}X.shr64_lo=l0}}),eQ=$Q({"node_modules/hash.js/lib/hash/common.js"(X){var K=aQ(),x0=N0();function G(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}X.BlockHash=G,G.prototype.update=function(Y,$){if(Y=K.toArray(Y,$),this.pending?this.pending=this.pending.concat(Y):this.pending=Y,this.pendingTotal+=Y.length,this.pending.length>=this._delta8){Y=this.pending;var Z=Y.length%this._delta8;this.pending=Y.slice(Y.length-Z,Y.length),this.pending.length===0&&(this.pending=null),Y=K.join32(Y,0,Y.length-Z,this.endian);for(var Q=0;Q>>24&255,Q[U++]=Y>>>16&255,Q[U++]=Y>>>8&255,Q[U++]=Y&255}else for(Q[U++]=Y&255,Q[U++]=Y>>>8&255,Q[U++]=Y>>>16&255,Q[U++]=Y>>>24&255,Q[U++]=0,Q[U++]=0,Q[U++]=0,Q[U++]=0,V=8;V>>3}X.g0_256=V;function B0(H){return x0(H,17)^x0(H,19)^H>>>10}X.g1_256=B0}}),iQ=$Q({"node_modules/hash.js/lib/hash/sha/1.js"(X,K){var x0=aQ(),G=eQ(),Y=rQ(),$=x0.rotl32,Z=x0.sum32,Q=x0.sum32_5,U=Y.ft_1,V=G.BlockHash,B0=[1518500249,1859775393,2400959708,3395469782];function H(){if(!(this instanceof H))return new H;V.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}x0.inherits(H,V),K.exports=H,H.blockSize=512,H.outSize=160,H.hmacStrength=80,H.padLength=64,H.prototype._update=function(y0,W){for(var w0=this.W,E=0;E<16;E++)w0[E]=y0[W+E];for(;Ethis.blockSize&&($=new this.Hash().update($).digest()),G($.length<=this.blockSize);for(var Z=$.length;Z=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(Q,U,V)}K.exports=$,$.prototype._init=function(Z,Q,U){var V=Z.concat(Q).concat(U);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var B0=0;B0=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(Z.concat(U||[])),this._reseed=1},$.prototype.generate=function(Z,Q,U,V){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");typeof Q!="string"&&(V=U,U=Q,Q=null),U&&(U=G.toArray(U,V||"hex"),this._update(U));for(var B0=[];B0.length"}}}),FY=$Q({"node_modules/elliptic/lib/elliptic/ec/signature.js"(X,K){var x0=bQ(),G=oQ(),Y=G.assert;function $(B0,H){if(B0 instanceof $)return B0;this._importDER(B0,H)||(Y(B0.r&&B0.s,"Signature without r or s"),this.r=new x0(B0.r,16),this.s=new x0(B0.s,16),B0.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=B0.recoveryParam)}K.exports=$;function Z(){this.place=0}function Q(B0,H){var y0=B0[H.place++];if(!(y0&128))return y0;var W=y0&15;if(W===0||W>4)return!1;for(var w0=0,E=0,p0=H.place;E>>=0;return w0<=127?!1:(H.place=p0,w0)}function U(B0){for(var H=0,y0=B0.length-1;!B0[H]&&!(B0[H+1]&128)&&H>>3);for(B0.push(y0|128);--y0;)B0.push(H>>>(y0<<3)&255);B0.push(H)}$.prototype.toDER=function(B0){var H=this.r.toArray(),y0=this.s.toArray();for(H[0]&128&&(H=[0].concat(H)),y0[0]&128&&(y0=[0].concat(y0)),H=U(H),y0=U(y0);!y0[0]&&!(y0[1]&128);)y0=y0.slice(1);var W=[2];V(W,H.length),W=W.concat(H),W.push(2),V(W,y0.length);var w0=W.concat(y0),E=[48];return V(E,w0.length),E=E.concat(w0),G.encode(E,B0)}}}),AY=$Q({"node_modules/elliptic/lib/elliptic/ec/index.js"(X,K){var x0=bQ(),G=OY(),Y=oQ(),$=IY(),Z=xQ(),Q=Y.assert,U=JY(),V=FY();function B0(H){if(!(this instanceof B0))return new B0(H);typeof H=="string"&&(Q(Object.prototype.hasOwnProperty.call($,H),"Unknown curve "+H),H=$[H]),H instanceof $.PresetCurve&&(H={curve:H}),this.curve=H.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=H.curve.g,this.g.precompute(H.curve.n.bitLength()+1),this.hash=H.hash||H.curve.hash}K.exports=B0,B0.prototype.keyPair=function(H){return new U(this,H)},B0.prototype.keyFromPrivate=function(H,y0){return U.fromPrivate(this,H,y0)},B0.prototype.keyFromPublic=function(H,y0){return U.fromPublic(this,H,y0)},B0.prototype.genKeyPair=function(H){H||(H={});for(var y0=new G({hash:this.hash,pers:H.pers,persEnc:H.persEnc||"utf8",entropy:H.entropy||Z(this.hash.hmacStrength),entropyEnc:H.entropy&&H.entropyEnc||"utf8",nonce:this.n.toArray()}),W=this.n.byteLength(),w0=this.n.sub(new x0(2));;){var E=new x0(y0.generate(W));if(!(E.cmp(w0)>0))return E.iaddn(1),this.keyFromPrivate(E)}},B0.prototype._truncateToN=function(H,y0){var W=H.byteLength()*8-this.n.bitLength();return W>0&&(H=H.ushrn(W)),!y0&&H.cmp(this.n)>=0?H.sub(this.n):H},B0.prototype.sign=function(H,y0,W,w0){typeof W=="object"&&(w0=W,W=null),w0||(w0={}),y0=this.keyFromPrivate(y0,W),H=this._truncateToN(new x0(H,16));for(var E=this.n.byteLength(),p0=y0.getPrivate().toArray("be",E),T=H.toArray("be",E),f0=new G({hash:this.hash,entropy:p0,nonce:T,pers:w0.pers,persEnc:w0.persEnc||"utf8"}),D=this.n.sub(new x0(1)),c0=0;;c0++){var C=w0.k?w0.k(c0):new x0(f0.generate(this.n.byteLength()));if(C=this._truncateToN(C,!0),!(C.cmpn(1)<=0||C.cmp(D)>=0)){var h0=this.g.mul(C);if(!h0.isInfinity()){var L=h0.getX(),d0=L.umod(this.n);if(d0.cmpn(0)!==0){var R=C.invm(this.n).mul(d0.mul(y0.getPrivate()).iadd(H));if(R=R.umod(this.n),R.cmpn(0)!==0){var b0=(h0.getY().isOdd()?1:0)|(L.cmp(d0)!==0?2:0);return w0.canonical&&R.cmp(this.nh)>0&&(R=this.n.sub(R),b0^=1),new V({r:d0,s:R,recoveryParam:b0})}}}}}},B0.prototype.verify=function(H,y0,W,w0){H=this._truncateToN(new x0(H,16)),W=this.keyFromPublic(W,w0),y0=new V(y0,"hex");var{r:E,s:p0}=y0;if(E.cmpn(1)<0||E.cmp(this.n)>=0||p0.cmpn(1)<0||p0.cmp(this.n)>=0)return!1;var T=p0.invm(this.n),f0=T.mul(H).umod(this.n),D=T.mul(E).umod(this.n),c0;return this.curve._maxwellTrick?(c0=this.g.jmulAdd(f0,W.getPublic(),D),c0.isInfinity()?!1:c0.eqXToP(E)):(c0=this.g.mulAdd(f0,W.getPublic(),D),c0.isInfinity()?!1:c0.getX().umod(this.n).cmp(E)===0)},B0.prototype.recoverPubKey=function(H,y0,W,w0){Q((3&W)===W,"The recovery param is more than two bits"),y0=new V(y0,w0);var E=this.n,p0=new x0(H),T=y0.r,f0=y0.s,D=W&1,c0=W>>1;if(T.cmp(this.curve.p.umod(this.curve.n))>=0&&c0)throw new Error("Unable to find sencond key candinate");c0?T=this.curve.pointFromX(T.add(this.curve.n),D):T=this.curve.pointFromX(T,D);var C=y0.r.invm(E),h0=E.sub(p0).mul(C).umod(E),L=f0.mul(C).umod(E);return this.g.mulAdd(h0,T,L)},B0.prototype.getKeyRecoveryParam=function(H,y0,W,w0){if(y0=new V(y0,w0),y0.recoveryParam!==null)return y0.recoveryParam;for(var E=0;E<4;E++){var p0;try{p0=this.recoverPubKey(H,y0,E)}catch{continue}if(p0.eq(W))return E}throw new Error("Unable to find valid recovery factor")}}}),HY=$Q({"node_modules/elliptic/lib/elliptic/eddsa/key.js"(X,K){var x0=oQ(),G=x0.assert,Y=x0.parseBytes,$=x0.cachedProperty;function Z(Q,U){this.eddsa=Q,this._secret=Y(U.secret),Q.isPoint(U.pub)?this._pub=U.pub:this._pubBytes=Y(U.pub)}Z.fromPublic=function(Q,U){return U instanceof Z?U:new Z(Q,{pub:U})},Z.fromSecret=function(Q,U){return U instanceof Z?U:new Z(Q,{secret:U})},Z.prototype.secret=function(){return this._secret},$(Z,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())}),$(Z,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())}),$(Z,"privBytes",function(){var Q=this.eddsa,U=this.hash(),V=Q.encodingLength-1,B0=U.slice(0,Q.encodingLength);return B0[0]&=248,B0[V]&=127,B0[V]|=64,B0}),$(Z,"priv",function(){return this.eddsa.decodeInt(this.privBytes())}),$(Z,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()}),$(Z,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)}),Z.prototype.sign=function(Q){return G(this._secret,"KeyPair can only verify"),this.eddsa.sign(Q,this)},Z.prototype.verify=function(Q,U){return this.eddsa.verify(Q,U,this)},Z.prototype.getSecret=function(Q){return G(this._secret,"KeyPair is public only"),x0.encode(this.secret(),Q)},Z.prototype.getPublic=function(Q){return x0.encode(this.pubBytes(),Q)},K.exports=Z}}),WY=$Q({"node_modules/elliptic/lib/elliptic/eddsa/signature.js"(X,K){var x0=bQ(),G=oQ(),Y=G.assert,$=G.cachedProperty,Z=G.parseBytes;function Q(U,V){this.eddsa=U,typeof V!="object"&&(V=Z(V)),Array.isArray(V)&&(V={R:V.slice(0,U.encodingLength),S:V.slice(U.encodingLength)}),Y(V.R&&V.S,"Signature without R or S"),U.isPoint(V.R)&&(this._R=V.R),V.S instanceof x0&&(this._S=V.S),this._Rencoded=Array.isArray(V.R)?V.R:V.Rencoded,this._Sencoded=Array.isArray(V.S)?V.S:V.Sencoded}$(Q,"S",function(){return this.eddsa.decodeInt(this.Sencoded())}),$(Q,"R",function(){return this.eddsa.decodePoint(this.Rencoded())}),$(Q,"Rencoded",function(){return this.eddsa.encodePoint(this.R())}),$(Q,"Sencoded",function(){return this.eddsa.encodeInt(this.S())}),Q.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},Q.prototype.toHex=function(){return G.encode(this.toBytes(),"hex").toUpperCase()},K.exports=Q}}),EY=$Q({"node_modules/elliptic/lib/elliptic/eddsa/index.js"(X,K){var x0=XY(),G=IY(),Y=oQ(),$=Y.assert,Z=Y.parseBytes,Q=HY(),U=WY();function V(B0){if($(B0==="ed25519","only tested with ed25519 so far"),!(this instanceof V))return new V(B0);B0=G[B0].curve,this.curve=B0,this.g=B0.g,this.g.precompute(B0.n.bitLength()+1),this.pointClass=B0.point().constructor,this.encodingLength=Math.ceil(B0.n.bitLength()/8),this.hash=x0.sha512}K.exports=V,V.prototype.sign=function(B0,H){B0=Z(B0);var y0=this.keyFromSecret(H),W=this.hashInt(y0.messagePrefix(),B0),w0=this.g.mul(W),E=this.encodePoint(w0),p0=this.hashInt(E,y0.pubBytes(),B0).mul(y0.priv()),T=W.add(p0).umod(this.curve.n);return this.makeSignature({R:w0,S:T,Rencoded:E})},V.prototype.verify=function(B0,H,y0){B0=Z(B0),H=this.makeSignature(H);var W=this.keyFromPublic(y0),w0=this.hashInt(H.Rencoded(),W.pubBytes(),B0),E=this.g.mul(H.S()),p0=H.R().add(W.pub().mul(w0));return p0.eq(E)},V.prototype.hashInt=function(){for(var B0=this.hash(),H=0;H0?l0:z},Z.min=function(l0,z){return l0.cmp(z)<0?l0:z},Z.prototype._init=function(l0,z,o0){if(typeof l0=="number")return this._initNumber(l0,z,o0);if(typeof l0=="object")return this._initArray(l0,z,o0);z==="hex"&&(z=16),Y(z===(z|0)&&z>=2&&z<=36),l0=l0.toString().replace(/\s+/g,"");var M=0;l0[0]==="-"&&(M++,this.negative=1),M=0;M-=3)S=l0[M]|l0[M-1]<<8|l0[M-2]<<16,this.words[u0]|=S<>>26-n0&67108863,n0+=24,n0>=26&&(n0-=26,u0++);else if(o0==="le")for(M=0,u0=0;M>>26-n0&67108863,n0+=24,n0>=26&&(n0-=26,u0++);return this.strip()};function U(l0,z){var o0=l0.charCodeAt(z);return o0>=65&&o0<=70?o0-55:o0>=97&&o0<=102?o0-87:o0-48&15}function V(l0,z,o0){var M=U(l0,o0);return o0-1>=z&&(M|=U(l0,o0-1)<<4),M}Z.prototype._parseHex=function(l0,z,o0){this.length=Math.ceil((l0.length-z)/6),this.words=new Array(this.length);for(var M=0;M=z;M-=2)n0=V(l0,z,M)<=18?(u0-=18,S+=1,this.words[S]|=n0>>>26):u0+=8;else{var v=l0.length-z;for(M=v%2===0?z+1:z;M=18?(u0-=18,S+=1,this.words[S]|=n0>>>26):u0+=8}this.strip()};function B0(l0,z,o0,M){for(var u0=0,S=Math.min(l0.length,o0),n0=z;n0=49?u0+=v-49+10:v>=17?u0+=v-17+10:u0+=v}return u0}Z.prototype._parseBase=function(l0,z,o0){this.words=[0],this.length=1;for(var M=0,u0=1;u0<=67108863;u0*=z)M++;M--,u0=u0/z|0;for(var S=l0.length-o0,n0=S%M,v=Math.min(S,S-n0)+o0,s0=0,I=o0;I1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},Z.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},Z.prototype.inspect=function(){return(this.red?""};var H=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y0=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],W=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];Z.prototype.toString=function(l0,z){l0=l0||10,z=z|0||1;var o0;if(l0===16||l0==="hex"){o0="";for(var M=0,u0=0,S=0;S>>24-M&16777215,u0!==0||S!==this.length-1?o0=H[6-v.length]+v+o0:o0=v+o0,M+=2,M>=26&&(M-=26,S--)}for(u0!==0&&(o0=u0.toString(16)+o0);o0.length%z!==0;)o0="0"+o0;return this.negative!==0&&(o0="-"+o0),o0}if(l0===(l0|0)&&l0>=2&&l0<=36){var s0=y0[l0],I=W[l0];o0="";var t0=this.clone();for(t0.negative=0;!t0.isZero();){var m0=t0.modn(I).toString(l0);t0=t0.idivn(I),t0.isZero()?o0=m0+o0:o0=H[s0-m0.length]+m0+o0}for(this.isZero()&&(o0="0"+o0);o0.length%z!==0;)o0="0"+o0;return this.negative!==0&&(o0="-"+o0),o0}Y(!1,"Base should be between 2 and 36")},Z.prototype.toNumber=function(){var l0=this.words[0];return this.length===2?l0+=this.words[1]*67108864:this.length===3&&this.words[2]===1?l0+=4503599627370496+this.words[1]*67108864:this.length>2&&Y(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-l0:l0},Z.prototype.toJSON=function(){return this.toString(16)},Z.prototype.toBuffer=function(l0,z){return Y(typeof Q<"u"),this.toArrayLike(Q,l0,z)},Z.prototype.toArray=function(l0,z){return this.toArrayLike(Array,l0,z)},Z.prototype.toArrayLike=function(l0,z,o0){var M=this.byteLength(),u0=o0||Math.max(1,M);Y(M<=u0,"byte array longer than desired length"),Y(u0>0,"Requested array length <= 0"),this.strip();var S=z==="le",n0=new l0(u0),v,s0,I=this.clone();if(S){for(s0=0;!I.isZero();s0++)v=I.andln(255),I.iushrn(8),n0[s0]=v;for(;s0=4096&&(o0+=13,z>>>=13),z>=64&&(o0+=7,z>>>=7),z>=8&&(o0+=4,z>>>=4),z>=2&&(o0+=2,z>>>=2),o0+z},Z.prototype._zeroBits=function(l0){if(l0===0)return 26;var z=l0,o0=0;return(z&8191)===0&&(o0+=13,z>>>=13),(z&127)===0&&(o0+=7,z>>>=7),(z&15)===0&&(o0+=4,z>>>=4),(z&3)===0&&(o0+=2,z>>>=2),(z&1)===0&&o0++,o0},Z.prototype.bitLength=function(){var l0=this.words[this.length-1],z=this._countBits(l0);return(this.length-1)*26+z};function w0(l0){for(var z=new Array(l0.bitLength()),o0=0;o0>>u0}return z}Z.prototype.zeroBits=function(){if(this.isZero())return 0;for(var l0=0,z=0;zl0.length?this.clone().ior(l0):l0.clone().ior(this)},Z.prototype.uor=function(l0){return this.length>l0.length?this.clone().iuor(l0):l0.clone().iuor(this)},Z.prototype.iuand=function(l0){var z;this.length>l0.length?z=l0:z=this;for(var o0=0;o0l0.length?this.clone().iand(l0):l0.clone().iand(this)},Z.prototype.uand=function(l0){return this.length>l0.length?this.clone().iuand(l0):l0.clone().iuand(this)},Z.prototype.iuxor=function(l0){var z,o0;this.length>l0.length?(z=this,o0=l0):(z=l0,o0=this);for(var M=0;Ml0.length?this.clone().ixor(l0):l0.clone().ixor(this)},Z.prototype.uxor=function(l0){return this.length>l0.length?this.clone().iuxor(l0):l0.clone().iuxor(this)},Z.prototype.inotn=function(l0){Y(typeof l0=="number"&&l0>=0);var z=Math.ceil(l0/26)|0,o0=l0%26;this._expand(z),o0>0&&z--;for(var M=0;M0&&(this.words[M]=~this.words[M]&67108863>>26-o0),this.strip()},Z.prototype.notn=function(l0){return this.clone().inotn(l0)},Z.prototype.setn=function(l0,z){Y(typeof l0=="number"&&l0>=0);var o0=l0/26|0,M=l0%26;return this._expand(o0+1),z?this.words[o0]=this.words[o0]|1<l0.length?(o0=this,M=l0):(o0=l0,M=this);for(var u0=0,S=0;S>>26;for(;u0!==0&&S>>26;if(this.length=o0.length,u0!==0)this.words[this.length]=u0,this.length++;else if(o0!==this)for(;Sl0.length?this.clone().iadd(l0):l0.clone().iadd(this)},Z.prototype.isub=function(l0){if(l0.negative!==0){l0.negative=0;var z=this.iadd(l0);return l0.negative=1,z._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(l0),this.negative=1,this._normSign();var o0=this.cmp(l0);if(o0===0)return this.negative=0,this.length=1,this.words[0]=0,this;var M,u0;o0>0?(M=this,u0=l0):(M=l0,u0=this);for(var S=0,n0=0;n0>26,this.words[n0]=z&67108863;for(;S!==0&&n0>26,this.words[n0]=z&67108863;if(S===0&&n0>>26,m0=s0&67108863,a0=Math.min(I,z.length-1),q=Math.max(0,I-l0.length+1);q<=a0;q++){var e0=I-q|0;u0=l0.words[e0]|0,S=z.words[q]|0,n0=u0*S+m0,t0+=n0/67108864|0,m0=n0&67108863}o0.words[I]=m0|0,s0=t0|0}return s0!==0?o0.words[I]=s0|0:o0.length--,o0.strip()}var p0=function(l0,z,o0){var M=l0.words,u0=z.words,S=o0.words,n0=0,v,s0,I,t0=M[0]|0,m0=t0&8191,a0=t0>>>13,q=M[1]|0,e0=q&8191,r0=q>>>13,i0=M[2]|0,j=i0&8191,$$=i0>>>13,k=M[3]|0,Q$=k&8191,g=k>>>13,Y$=M[4]|0,_=Y$&8191,Z$=Y$>>>13,N=M[5]|0,G$=N&8191,x=N>>>13,V$=M[6]|0,B=V$&8191,U$=V$>>>13,y=M[7]|0,X$=y&8191,w=y>>>13,K$=M[8]|0,p=K$&8191,I$=K$>>>13,f=M[9]|0,O$=f&8191,c=f>>>13,J$=u0[0]|0,h=J$&8191,F$=J$>>>13,d=u0[1]|0,A$=d&8191,b=d>>>13,H$=u0[2]|0,l=H$&8191,W$=H$>>>13,o=u0[3]|0,E$=o&8191,u=o>>>13,T$=u0[4]|0,n=T$&8191,D$=T$>>>13,s=u0[5]|0,C$=s&8191,t=s>>>13,L$=u0[6]|0,m=L$&8191,R$=L$>>>13,a=u0[7]|0,P$=a&8191,O=a>>>13,z$=u0[8]|0,e=z$&8191,M$=z$>>>13,J=u0[9]|0,S$=J&8191,F=J>>>13;o0.negative=l0.negative^z.negative,o0.length=19,v=Math.imul(m0,h),s0=Math.imul(m0,F$),s0=s0+Math.imul(a0,h)|0,I=Math.imul(a0,F$);var v$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(v$>>>26)|0,v$&=67108863,v=Math.imul(e0,h),s0=Math.imul(e0,F$),s0=s0+Math.imul(r0,h)|0,I=Math.imul(r0,F$),v=v+Math.imul(m0,A$)|0,s0=s0+Math.imul(m0,b)|0,s0=s0+Math.imul(a0,A$)|0,I=I+Math.imul(a0,b)|0;var r=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(r>>>26)|0,r&=67108863,v=Math.imul(j,h),s0=Math.imul(j,F$),s0=s0+Math.imul($$,h)|0,I=Math.imul($$,F$),v=v+Math.imul(e0,A$)|0,s0=s0+Math.imul(e0,b)|0,s0=s0+Math.imul(r0,A$)|0,I=I+Math.imul(r0,b)|0,v=v+Math.imul(m0,l)|0,s0=s0+Math.imul(m0,W$)|0,s0=s0+Math.imul(a0,l)|0,I=I+Math.imul(a0,W$)|0;var q$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(q$>>>26)|0,q$&=67108863,v=Math.imul(Q$,h),s0=Math.imul(Q$,F$),s0=s0+Math.imul(g,h)|0,I=Math.imul(g,F$),v=v+Math.imul(j,A$)|0,s0=s0+Math.imul(j,b)|0,s0=s0+Math.imul($$,A$)|0,I=I+Math.imul($$,b)|0,v=v+Math.imul(e0,l)|0,s0=s0+Math.imul(e0,W$)|0,s0=s0+Math.imul(r0,l)|0,I=I+Math.imul(r0,W$)|0,v=v+Math.imul(m0,E$)|0,s0=s0+Math.imul(m0,u)|0,s0=s0+Math.imul(a0,E$)|0,I=I+Math.imul(a0,u)|0;var i=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(i>>>26)|0,i&=67108863,v=Math.imul(_,h),s0=Math.imul(_,F$),s0=s0+Math.imul(Z$,h)|0,I=Math.imul(Z$,F$),v=v+Math.imul(Q$,A$)|0,s0=s0+Math.imul(Q$,b)|0,s0=s0+Math.imul(g,A$)|0,I=I+Math.imul(g,b)|0,v=v+Math.imul(j,l)|0,s0=s0+Math.imul(j,W$)|0,s0=s0+Math.imul($$,l)|0,I=I+Math.imul($$,W$)|0,v=v+Math.imul(e0,E$)|0,s0=s0+Math.imul(e0,u)|0,s0=s0+Math.imul(r0,E$)|0,I=I+Math.imul(r0,u)|0,v=v+Math.imul(m0,n)|0,s0=s0+Math.imul(m0,D$)|0,s0=s0+Math.imul(a0,n)|0,I=I+Math.imul(a0,D$)|0;var j$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(j$>>>26)|0,j$&=67108863,v=Math.imul(G$,h),s0=Math.imul(G$,F$),s0=s0+Math.imul(x,h)|0,I=Math.imul(x,F$),v=v+Math.imul(_,A$)|0,s0=s0+Math.imul(_,b)|0,s0=s0+Math.imul(Z$,A$)|0,I=I+Math.imul(Z$,b)|0,v=v+Math.imul(Q$,l)|0,s0=s0+Math.imul(Q$,W$)|0,s0=s0+Math.imul(g,l)|0,I=I+Math.imul(g,W$)|0,v=v+Math.imul(j,E$)|0,s0=s0+Math.imul(j,u)|0,s0=s0+Math.imul($$,E$)|0,I=I+Math.imul($$,u)|0,v=v+Math.imul(e0,n)|0,s0=s0+Math.imul(e0,D$)|0,s0=s0+Math.imul(r0,n)|0,I=I+Math.imul(r0,D$)|0,v=v+Math.imul(m0,C$)|0,s0=s0+Math.imul(m0,t)|0,s0=s0+Math.imul(a0,C$)|0,I=I+Math.imul(a0,t)|0;var k$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(k$>>>26)|0,k$&=67108863,v=Math.imul(B,h),s0=Math.imul(B,F$),s0=s0+Math.imul(U$,h)|0,I=Math.imul(U$,F$),v=v+Math.imul(G$,A$)|0,s0=s0+Math.imul(G$,b)|0,s0=s0+Math.imul(x,A$)|0,I=I+Math.imul(x,b)|0,v=v+Math.imul(_,l)|0,s0=s0+Math.imul(_,W$)|0,s0=s0+Math.imul(Z$,l)|0,I=I+Math.imul(Z$,W$)|0,v=v+Math.imul(Q$,E$)|0,s0=s0+Math.imul(Q$,u)|0,s0=s0+Math.imul(g,E$)|0,I=I+Math.imul(g,u)|0,v=v+Math.imul(j,n)|0,s0=s0+Math.imul(j,D$)|0,s0=s0+Math.imul($$,n)|0,I=I+Math.imul($$,D$)|0,v=v+Math.imul(e0,C$)|0,s0=s0+Math.imul(e0,t)|0,s0=s0+Math.imul(r0,C$)|0,I=I+Math.imul(r0,t)|0,v=v+Math.imul(m0,m)|0,s0=s0+Math.imul(m0,R$)|0,s0=s0+Math.imul(a0,m)|0,I=I+Math.imul(a0,R$)|0;var g$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(g$>>>26)|0,g$&=67108863,v=Math.imul(X$,h),s0=Math.imul(X$,F$),s0=s0+Math.imul(w,h)|0,I=Math.imul(w,F$),v=v+Math.imul(B,A$)|0,s0=s0+Math.imul(B,b)|0,s0=s0+Math.imul(U$,A$)|0,I=I+Math.imul(U$,b)|0,v=v+Math.imul(G$,l)|0,s0=s0+Math.imul(G$,W$)|0,s0=s0+Math.imul(x,l)|0,I=I+Math.imul(x,W$)|0,v=v+Math.imul(_,E$)|0,s0=s0+Math.imul(_,u)|0,s0=s0+Math.imul(Z$,E$)|0,I=I+Math.imul(Z$,u)|0,v=v+Math.imul(Q$,n)|0,s0=s0+Math.imul(Q$,D$)|0,s0=s0+Math.imul(g,n)|0,I=I+Math.imul(g,D$)|0,v=v+Math.imul(j,C$)|0,s0=s0+Math.imul(j,t)|0,s0=s0+Math.imul($$,C$)|0,I=I+Math.imul($$,t)|0,v=v+Math.imul(e0,m)|0,s0=s0+Math.imul(e0,R$)|0,s0=s0+Math.imul(r0,m)|0,I=I+Math.imul(r0,R$)|0,v=v+Math.imul(m0,P$)|0,s0=s0+Math.imul(m0,O)|0,s0=s0+Math.imul(a0,P$)|0,I=I+Math.imul(a0,O)|0;var _$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(_$>>>26)|0,_$&=67108863,v=Math.imul(p,h),s0=Math.imul(p,F$),s0=s0+Math.imul(I$,h)|0,I=Math.imul(I$,F$),v=v+Math.imul(X$,A$)|0,s0=s0+Math.imul(X$,b)|0,s0=s0+Math.imul(w,A$)|0,I=I+Math.imul(w,b)|0,v=v+Math.imul(B,l)|0,s0=s0+Math.imul(B,W$)|0,s0=s0+Math.imul(U$,l)|0,I=I+Math.imul(U$,W$)|0,v=v+Math.imul(G$,E$)|0,s0=s0+Math.imul(G$,u)|0,s0=s0+Math.imul(x,E$)|0,I=I+Math.imul(x,u)|0,v=v+Math.imul(_,n)|0,s0=s0+Math.imul(_,D$)|0,s0=s0+Math.imul(Z$,n)|0,I=I+Math.imul(Z$,D$)|0,v=v+Math.imul(Q$,C$)|0,s0=s0+Math.imul(Q$,t)|0,s0=s0+Math.imul(g,C$)|0,I=I+Math.imul(g,t)|0,v=v+Math.imul(j,m)|0,s0=s0+Math.imul(j,R$)|0,s0=s0+Math.imul($$,m)|0,I=I+Math.imul($$,R$)|0,v=v+Math.imul(e0,P$)|0,s0=s0+Math.imul(e0,O)|0,s0=s0+Math.imul(r0,P$)|0,I=I+Math.imul(r0,O)|0,v=v+Math.imul(m0,e)|0,s0=s0+Math.imul(m0,M$)|0,s0=s0+Math.imul(a0,e)|0,I=I+Math.imul(a0,M$)|0;var N$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(N$>>>26)|0,N$&=67108863,v=Math.imul(O$,h),s0=Math.imul(O$,F$),s0=s0+Math.imul(c,h)|0,I=Math.imul(c,F$),v=v+Math.imul(p,A$)|0,s0=s0+Math.imul(p,b)|0,s0=s0+Math.imul(I$,A$)|0,I=I+Math.imul(I$,b)|0,v=v+Math.imul(X$,l)|0,s0=s0+Math.imul(X$,W$)|0,s0=s0+Math.imul(w,l)|0,I=I+Math.imul(w,W$)|0,v=v+Math.imul(B,E$)|0,s0=s0+Math.imul(B,u)|0,s0=s0+Math.imul(U$,E$)|0,I=I+Math.imul(U$,u)|0,v=v+Math.imul(G$,n)|0,s0=s0+Math.imul(G$,D$)|0,s0=s0+Math.imul(x,n)|0,I=I+Math.imul(x,D$)|0,v=v+Math.imul(_,C$)|0,s0=s0+Math.imul(_,t)|0,s0=s0+Math.imul(Z$,C$)|0,I=I+Math.imul(Z$,t)|0,v=v+Math.imul(Q$,m)|0,s0=s0+Math.imul(Q$,R$)|0,s0=s0+Math.imul(g,m)|0,I=I+Math.imul(g,R$)|0,v=v+Math.imul(j,P$)|0,s0=s0+Math.imul(j,O)|0,s0=s0+Math.imul($$,P$)|0,I=I+Math.imul($$,O)|0,v=v+Math.imul(e0,e)|0,s0=s0+Math.imul(e0,M$)|0,s0=s0+Math.imul(r0,e)|0,I=I+Math.imul(r0,M$)|0,v=v+Math.imul(m0,S$)|0,s0=s0+Math.imul(m0,F)|0,s0=s0+Math.imul(a0,S$)|0,I=I+Math.imul(a0,F)|0;var $0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+($0>>>26)|0,$0&=67108863,v=Math.imul(O$,A$),s0=Math.imul(O$,b),s0=s0+Math.imul(c,A$)|0,I=Math.imul(c,b),v=v+Math.imul(p,l)|0,s0=s0+Math.imul(p,W$)|0,s0=s0+Math.imul(I$,l)|0,I=I+Math.imul(I$,W$)|0,v=v+Math.imul(X$,E$)|0,s0=s0+Math.imul(X$,u)|0,s0=s0+Math.imul(w,E$)|0,I=I+Math.imul(w,u)|0,v=v+Math.imul(B,n)|0,s0=s0+Math.imul(B,D$)|0,s0=s0+Math.imul(U$,n)|0,I=I+Math.imul(U$,D$)|0,v=v+Math.imul(G$,C$)|0,s0=s0+Math.imul(G$,t)|0,s0=s0+Math.imul(x,C$)|0,I=I+Math.imul(x,t)|0,v=v+Math.imul(_,m)|0,s0=s0+Math.imul(_,R$)|0,s0=s0+Math.imul(Z$,m)|0,I=I+Math.imul(Z$,R$)|0,v=v+Math.imul(Q$,P$)|0,s0=s0+Math.imul(Q$,O)|0,s0=s0+Math.imul(g,P$)|0,I=I+Math.imul(g,O)|0,v=v+Math.imul(j,e)|0,s0=s0+Math.imul(j,M$)|0,s0=s0+Math.imul($$,e)|0,I=I+Math.imul($$,M$)|0,v=v+Math.imul(e0,S$)|0,s0=s0+Math.imul(e0,F)|0,s0=s0+Math.imul(r0,S$)|0,I=I+Math.imul(r0,F)|0;var x$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(x$>>>26)|0,x$&=67108863,v=Math.imul(O$,l),s0=Math.imul(O$,W$),s0=s0+Math.imul(c,l)|0,I=Math.imul(c,W$),v=v+Math.imul(p,E$)|0,s0=s0+Math.imul(p,u)|0,s0=s0+Math.imul(I$,E$)|0,I=I+Math.imul(I$,u)|0,v=v+Math.imul(X$,n)|0,s0=s0+Math.imul(X$,D$)|0,s0=s0+Math.imul(w,n)|0,I=I+Math.imul(w,D$)|0,v=v+Math.imul(B,C$)|0,s0=s0+Math.imul(B,t)|0,s0=s0+Math.imul(U$,C$)|0,I=I+Math.imul(U$,t)|0,v=v+Math.imul(G$,m)|0,s0=s0+Math.imul(G$,R$)|0,s0=s0+Math.imul(x,m)|0,I=I+Math.imul(x,R$)|0,v=v+Math.imul(_,P$)|0,s0=s0+Math.imul(_,O)|0,s0=s0+Math.imul(Z$,P$)|0,I=I+Math.imul(Z$,O)|0,v=v+Math.imul(Q$,e)|0,s0=s0+Math.imul(Q$,M$)|0,s0=s0+Math.imul(g,e)|0,I=I+Math.imul(g,M$)|0,v=v+Math.imul(j,S$)|0,s0=s0+Math.imul(j,F)|0,s0=s0+Math.imul($$,S$)|0,I=I+Math.imul($$,F)|0;var Q0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Q0>>>26)|0,Q0&=67108863,v=Math.imul(O$,E$),s0=Math.imul(O$,u),s0=s0+Math.imul(c,E$)|0,I=Math.imul(c,u),v=v+Math.imul(p,n)|0,s0=s0+Math.imul(p,D$)|0,s0=s0+Math.imul(I$,n)|0,I=I+Math.imul(I$,D$)|0,v=v+Math.imul(X$,C$)|0,s0=s0+Math.imul(X$,t)|0,s0=s0+Math.imul(w,C$)|0,I=I+Math.imul(w,t)|0,v=v+Math.imul(B,m)|0,s0=s0+Math.imul(B,R$)|0,s0=s0+Math.imul(U$,m)|0,I=I+Math.imul(U$,R$)|0,v=v+Math.imul(G$,P$)|0,s0=s0+Math.imul(G$,O)|0,s0=s0+Math.imul(x,P$)|0,I=I+Math.imul(x,O)|0,v=v+Math.imul(_,e)|0,s0=s0+Math.imul(_,M$)|0,s0=s0+Math.imul(Z$,e)|0,I=I+Math.imul(Z$,M$)|0,v=v+Math.imul(Q$,S$)|0,s0=s0+Math.imul(Q$,F)|0,s0=s0+Math.imul(g,S$)|0,I=I+Math.imul(g,F)|0;var B$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(B$>>>26)|0,B$&=67108863,v=Math.imul(O$,n),s0=Math.imul(O$,D$),s0=s0+Math.imul(c,n)|0,I=Math.imul(c,D$),v=v+Math.imul(p,C$)|0,s0=s0+Math.imul(p,t)|0,s0=s0+Math.imul(I$,C$)|0,I=I+Math.imul(I$,t)|0,v=v+Math.imul(X$,m)|0,s0=s0+Math.imul(X$,R$)|0,s0=s0+Math.imul(w,m)|0,I=I+Math.imul(w,R$)|0,v=v+Math.imul(B,P$)|0,s0=s0+Math.imul(B,O)|0,s0=s0+Math.imul(U$,P$)|0,I=I+Math.imul(U$,O)|0,v=v+Math.imul(G$,e)|0,s0=s0+Math.imul(G$,M$)|0,s0=s0+Math.imul(x,e)|0,I=I+Math.imul(x,M$)|0,v=v+Math.imul(_,S$)|0,s0=s0+Math.imul(_,F)|0,s0=s0+Math.imul(Z$,S$)|0,I=I+Math.imul(Z$,F)|0;var Y0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Y0>>>26)|0,Y0&=67108863,v=Math.imul(O$,C$),s0=Math.imul(O$,t),s0=s0+Math.imul(c,C$)|0,I=Math.imul(c,t),v=v+Math.imul(p,m)|0,s0=s0+Math.imul(p,R$)|0,s0=s0+Math.imul(I$,m)|0,I=I+Math.imul(I$,R$)|0,v=v+Math.imul(X$,P$)|0,s0=s0+Math.imul(X$,O)|0,s0=s0+Math.imul(w,P$)|0,I=I+Math.imul(w,O)|0,v=v+Math.imul(B,e)|0,s0=s0+Math.imul(B,M$)|0,s0=s0+Math.imul(U$,e)|0,I=I+Math.imul(U$,M$)|0,v=v+Math.imul(G$,S$)|0,s0=s0+Math.imul(G$,F)|0,s0=s0+Math.imul(x,S$)|0,I=I+Math.imul(x,F)|0;var y$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(y$>>>26)|0,y$&=67108863,v=Math.imul(O$,m),s0=Math.imul(O$,R$),s0=s0+Math.imul(c,m)|0,I=Math.imul(c,R$),v=v+Math.imul(p,P$)|0,s0=s0+Math.imul(p,O)|0,s0=s0+Math.imul(I$,P$)|0,I=I+Math.imul(I$,O)|0,v=v+Math.imul(X$,e)|0,s0=s0+Math.imul(X$,M$)|0,s0=s0+Math.imul(w,e)|0,I=I+Math.imul(w,M$)|0,v=v+Math.imul(B,S$)|0,s0=s0+Math.imul(B,F)|0,s0=s0+Math.imul(U$,S$)|0,I=I+Math.imul(U$,F)|0;var Z0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Z0>>>26)|0,Z0&=67108863,v=Math.imul(O$,P$),s0=Math.imul(O$,O),s0=s0+Math.imul(c,P$)|0,I=Math.imul(c,O),v=v+Math.imul(p,e)|0,s0=s0+Math.imul(p,M$)|0,s0=s0+Math.imul(I$,e)|0,I=I+Math.imul(I$,M$)|0,v=v+Math.imul(X$,S$)|0,s0=s0+Math.imul(X$,F)|0,s0=s0+Math.imul(w,S$)|0,I=I+Math.imul(w,F)|0;var w$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(w$>>>26)|0,w$&=67108863,v=Math.imul(O$,e),s0=Math.imul(O$,M$),s0=s0+Math.imul(c,e)|0,I=Math.imul(c,M$),v=v+Math.imul(p,S$)|0,s0=s0+Math.imul(p,F)|0,s0=s0+Math.imul(I$,S$)|0,I=I+Math.imul(I$,F)|0;var G0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(G0>>>26)|0,G0&=67108863,v=Math.imul(O$,S$),s0=Math.imul(O$,F),s0=s0+Math.imul(c,S$)|0,I=Math.imul(c,F);var p$=(n0+v|0)+((s0&8191)<<13)|0;return n0=(I+(s0>>>13)|0)+(p$>>>26)|0,p$&=67108863,S[0]=v$,S[1]=r,S[2]=q$,S[3]=i,S[4]=j$,S[5]=k$,S[6]=g$,S[7]=_$,S[8]=N$,S[9]=$0,S[10]=x$,S[11]=Q0,S[12]=B$,S[13]=Y0,S[14]=y$,S[15]=Z0,S[16]=w$,S[17]=G0,S[18]=p$,n0!==0&&(S[19]=n0,o0.length++),o0};Math.imul||(p0=E);function T(l0,z,o0){o0.negative=z.negative^l0.negative,o0.length=l0.length+z.length;for(var M=0,u0=0,S=0;S>>26)|0,u0+=n0>>>26,n0&=67108863}o0.words[S]=v,M=n0,n0=u0}return M!==0?o0.words[S]=M:o0.length--,o0.strip()}function f0(l0,z,o0){var M=new D;return M.mulp(l0,z,o0)}Z.prototype.mulTo=function(l0,z){var o0,M=this.length+l0.length;return this.length===10&&l0.length===10?o0=p0(this,l0,z):M<63?o0=E(this,l0,z):M<1024?o0=T(this,l0,z):o0=f0(this,l0,z),o0};function D(l0,z){this.x=l0,this.y=z}D.prototype.makeRBT=function(l0){for(var z=new Array(l0),o0=Z.prototype._countBits(l0)-1,M=0;M>=1;return M},D.prototype.permute=function(l0,z,o0,M,u0,S){for(var n0=0;n0>>1)u0++;return 1<>>13,o0[2*S+1]=u0&8191,u0=u0>>>13;for(S=2*z;S>=26,z+=M/67108864|0,z+=u0>>>26,this.words[o0]=u0&67108863}return z!==0&&(this.words[o0]=z,this.length++),this},Z.prototype.muln=function(l0){return this.clone().imuln(l0)},Z.prototype.sqr=function(){return this.mul(this)},Z.prototype.isqr=function(){return this.imul(this.clone())},Z.prototype.pow=function(l0){var z=w0(l0);if(z.length===0)return new Z(1);for(var o0=this,M=0;M=0);var z=l0%26,o0=(l0-z)/26,M=67108863>>>26-z<<26-z,u0;if(z!==0){var S=0;for(u0=0;u0>>26-z}S&&(this.words[u0]=S,this.length++)}if(o0!==0){for(u0=this.length-1;u0>=0;u0--)this.words[u0+o0]=this.words[u0];for(u0=0;u0=0);var M;z?M=(z-z%26)/26:M=0;var u0=l0%26,S=Math.min((l0-u0)/26,this.length),n0=67108863^67108863>>>u0<S)for(this.length-=S,s0=0;s0=0&&(I!==0||s0>=M);s0--){var t0=this.words[s0]|0;this.words[s0]=I<<26-u0|t0>>>u0,I=t0&n0}return v&&I!==0&&(v.words[v.length++]=I),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},Z.prototype.ishrn=function(l0,z,o0){return Y(this.negative===0),this.iushrn(l0,z,o0)},Z.prototype.shln=function(l0){return this.clone().ishln(l0)},Z.prototype.ushln=function(l0){return this.clone().iushln(l0)},Z.prototype.shrn=function(l0){return this.clone().ishrn(l0)},Z.prototype.ushrn=function(l0){return this.clone().iushrn(l0)},Z.prototype.testn=function(l0){Y(typeof l0=="number"&&l0>=0);var z=l0%26,o0=(l0-z)/26,M=1<=0);var z=l0%26,o0=(l0-z)/26;if(Y(this.negative===0,"imaskn works only with positive numbers"),this.length<=o0)return this;if(z!==0&&o0++,this.length=Math.min(o0,this.length),z!==0){var M=67108863^67108863>>>z<=67108864;z++)this.words[z]-=67108864,z===this.length-1?this.words[z+1]=1:this.words[z+1]++;return this.length=Math.max(this.length,z+1),this},Z.prototype.isubn=function(l0){if(Y(typeof l0=="number"),Y(l0<67108864),l0<0)return this.iaddn(-l0);if(this.negative!==0)return this.negative=0,this.iaddn(l0),this.negative=1,this;if(this.words[0]-=l0,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var z=0;z>26)-(v/67108864|0),this.words[u0+o0]=S&67108863}for(;u0>26,this.words[u0+o0]=S&67108863;if(n0===0)return this.strip();for(Y(n0===-1),n0=0,u0=0;u0>26,this.words[u0]=S&67108863;return this.negative=1,this.strip()},Z.prototype._wordDiv=function(l0,z){var o0=this.length-l0.length,M=this.clone(),u0=l0,S=u0.words[u0.length-1]|0,n0=this._countBits(S);o0=26-n0,o0!==0&&(u0=u0.ushln(o0),M.iushln(o0),S=u0.words[u0.length-1]|0);var v=M.length-u0.length,s0;if(z!=="mod"){s0=new Z(null),s0.length=v+1,s0.words=new Array(s0.length);for(var I=0;I=0;m0--){var a0=(M.words[u0.length+m0]|0)*67108864+(M.words[u0.length+m0-1]|0);for(a0=Math.min(a0/S|0,67108863),M._ishlnsubmul(u0,a0,m0);M.negative!==0;)a0--,M.negative=0,M._ishlnsubmul(u0,1,m0),M.isZero()||(M.negative^=1);s0&&(s0.words[m0]=a0)}return s0&&s0.strip(),M.strip(),z!=="div"&&o0!==0&&M.iushrn(o0),{div:s0||null,mod:M}},Z.prototype.divmod=function(l0,z,o0){if(Y(!l0.isZero()),this.isZero())return{div:new Z(0),mod:new Z(0)};var M,u0,S;return this.negative!==0&&l0.negative===0?(S=this.neg().divmod(l0,z),z!=="mod"&&(M=S.div.neg()),z!=="div"&&(u0=S.mod.neg(),o0&&u0.negative!==0&&u0.iadd(l0)),{div:M,mod:u0}):this.negative===0&&l0.negative!==0?(S=this.divmod(l0.neg(),z),z!=="mod"&&(M=S.div.neg()),{div:M,mod:S.mod}):(this.negative&l0.negative)!==0?(S=this.neg().divmod(l0.neg(),z),z!=="div"&&(u0=S.mod.neg(),o0&&u0.negative!==0&&u0.isub(l0)),{div:S.div,mod:u0}):l0.length>this.length||this.cmp(l0)<0?{div:new Z(0),mod:this}:l0.length===1?z==="div"?{div:this.divn(l0.words[0]),mod:null}:z==="mod"?{div:null,mod:new Z(this.modn(l0.words[0]))}:{div:this.divn(l0.words[0]),mod:new Z(this.modn(l0.words[0]))}:this._wordDiv(l0,z)},Z.prototype.div=function(l0){return this.divmod(l0,"div",!1).div},Z.prototype.mod=function(l0){return this.divmod(l0,"mod",!1).mod},Z.prototype.umod=function(l0){return this.divmod(l0,"mod",!0).mod},Z.prototype.divRound=function(l0){var z=this.divmod(l0);if(z.mod.isZero())return z.div;var o0=z.div.negative!==0?z.mod.isub(l0):z.mod,M=l0.ushrn(1),u0=l0.andln(1),S=o0.cmp(M);return S<0||u0===1&&S===0?z.div:z.div.negative!==0?z.div.isubn(1):z.div.iaddn(1)},Z.prototype.modn=function(l0){Y(l0<=67108863);for(var z=(1<<26)%l0,o0=0,M=this.length-1;M>=0;M--)o0=(z*o0+(this.words[M]|0))%l0;return o0},Z.prototype.idivn=function(l0){Y(l0<=67108863);for(var z=0,o0=this.length-1;o0>=0;o0--){var M=(this.words[o0]|0)+z*67108864;this.words[o0]=M/l0|0,z=M%l0}return this.strip()},Z.prototype.divn=function(l0){return this.clone().idivn(l0)},Z.prototype.egcd=function(l0){Y(l0.negative===0),Y(!l0.isZero());var z=this,o0=l0.clone();z.negative!==0?z=z.umod(l0):z=z.clone();for(var M=new Z(1),u0=new Z(0),S=new Z(0),n0=new Z(1),v=0;z.isEven()&&o0.isEven();)z.iushrn(1),o0.iushrn(1),++v;for(var s0=o0.clone(),I=z.clone();!z.isZero();){for(var t0=0,m0=1;(z.words[0]&m0)===0&&t0<26;++t0,m0<<=1);if(t0>0)for(z.iushrn(t0);t0-- >0;)(M.isOdd()||u0.isOdd())&&(M.iadd(s0),u0.isub(I)),M.iushrn(1),u0.iushrn(1);for(var a0=0,q=1;(o0.words[0]&q)===0&&a0<26;++a0,q<<=1);if(a0>0)for(o0.iushrn(a0);a0-- >0;)(S.isOdd()||n0.isOdd())&&(S.iadd(s0),n0.isub(I)),S.iushrn(1),n0.iushrn(1);z.cmp(o0)>=0?(z.isub(o0),M.isub(S),u0.isub(n0)):(o0.isub(z),S.isub(M),n0.isub(u0))}return{a:S,b:n0,gcd:o0.iushln(v)}},Z.prototype._invmp=function(l0){Y(l0.negative===0),Y(!l0.isZero());var z=this,o0=l0.clone();z.negative!==0?z=z.umod(l0):z=z.clone();for(var M=new Z(1),u0=new Z(0),S=o0.clone();z.cmpn(1)>0&&o0.cmpn(1)>0;){for(var n0=0,v=1;(z.words[0]&v)===0&&n0<26;++n0,v<<=1);if(n0>0)for(z.iushrn(n0);n0-- >0;)M.isOdd()&&M.iadd(S),M.iushrn(1);for(var s0=0,I=1;(o0.words[0]&I)===0&&s0<26;++s0,I<<=1);if(s0>0)for(o0.iushrn(s0);s0-- >0;)u0.isOdd()&&u0.iadd(S),u0.iushrn(1);z.cmp(o0)>=0?(z.isub(o0),M.isub(u0)):(o0.isub(z),u0.isub(M))}var t0;return z.cmpn(1)===0?t0=M:t0=u0,t0.cmpn(0)<0&&t0.iadd(l0),t0},Z.prototype.gcd=function(l0){if(this.isZero())return l0.abs();if(l0.isZero())return this.abs();var z=this.clone(),o0=l0.clone();z.negative=0,o0.negative=0;for(var M=0;z.isEven()&&o0.isEven();M++)z.iushrn(1),o0.iushrn(1);do{for(;z.isEven();)z.iushrn(1);for(;o0.isEven();)o0.iushrn(1);var u0=z.cmp(o0);if(u0<0){var S=z;z=o0,o0=S}else if(u0===0||o0.cmpn(1)===0)break;z.isub(o0)}while(!0);return o0.iushln(M)},Z.prototype.invm=function(l0){return this.egcd(l0).a.umod(l0)},Z.prototype.isEven=function(){return(this.words[0]&1)===0},Z.prototype.isOdd=function(){return(this.words[0]&1)===1},Z.prototype.andln=function(l0){return this.words[0]&l0},Z.prototype.bincn=function(l0){Y(typeof l0=="number");var z=l0%26,o0=(l0-z)/26,M=1<>>26,n0&=67108863,this.words[S]=n0}return u0!==0&&(this.words[S]=u0,this.length++),this},Z.prototype.isZero=function(){return this.length===1&&this.words[0]===0},Z.prototype.cmpn=function(l0){var z=l0<0;if(this.negative!==0&&!z)return-1;if(this.negative===0&&z)return 1;this.strip();var o0;if(this.length>1)o0=1;else{z&&(l0=-l0),Y(l0<=67108863,"Number is too big");var M=this.words[0]|0;o0=M===l0?0:Ml0.length)return 1;if(this.length=0;o0--){var M=this.words[o0]|0,u0=l0.words[o0]|0;if(M!==u0){Mu0&&(z=1);break}}return z},Z.prototype.gtn=function(l0){return this.cmpn(l0)===1},Z.prototype.gt=function(l0){return this.cmp(l0)===1},Z.prototype.gten=function(l0){return this.cmpn(l0)>=0},Z.prototype.gte=function(l0){return this.cmp(l0)>=0},Z.prototype.ltn=function(l0){return this.cmpn(l0)===-1},Z.prototype.lt=function(l0){return this.cmp(l0)===-1},Z.prototype.lten=function(l0){return this.cmpn(l0)<=0},Z.prototype.lte=function(l0){return this.cmp(l0)<=0},Z.prototype.eqn=function(l0){return this.cmpn(l0)===0},Z.prototype.eq=function(l0){return this.cmp(l0)===0},Z.red=function(l0){return new b0(l0)},Z.prototype.toRed=function(l0){return Y(!this.red,"Already a number in reduction context"),Y(this.negative===0,"red works only with positives"),l0.convertTo(this)._forceRed(l0)},Z.prototype.fromRed=function(){return Y(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},Z.prototype._forceRed=function(l0){return this.red=l0,this},Z.prototype.forceRed=function(l0){return Y(!this.red,"Already a number in reduction context"),this._forceRed(l0)},Z.prototype.redAdd=function(l0){return Y(this.red,"redAdd works only with red numbers"),this.red.add(this,l0)},Z.prototype.redIAdd=function(l0){return Y(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,l0)},Z.prototype.redSub=function(l0){return Y(this.red,"redSub works only with red numbers"),this.red.sub(this,l0)},Z.prototype.redISub=function(l0){return Y(this.red,"redISub works only with red numbers"),this.red.isub(this,l0)},Z.prototype.redShl=function(l0){return Y(this.red,"redShl works only with red numbers"),this.red.shl(this,l0)},Z.prototype.redMul=function(l0){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,l0),this.red.mul(this,l0)},Z.prototype.redIMul=function(l0){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,l0),this.red.imul(this,l0)},Z.prototype.redSqr=function(){return Y(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},Z.prototype.redISqr=function(){return Y(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},Z.prototype.redSqrt=function(){return Y(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},Z.prototype.redInvm=function(){return Y(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},Z.prototype.redNeg=function(){return Y(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},Z.prototype.redPow=function(l0){return Y(this.red&&!l0.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,l0)};var c0={k256:null,p224:null,p192:null,p25519:null};function C(l0,z){this.name=l0,this.p=new Z(z,16),this.n=this.p.bitLength(),this.k=new Z(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}C.prototype._tmp=function(){var l0=new Z(null);return l0.words=new Array(Math.ceil(this.n/13)),l0},C.prototype.ireduce=function(l0){var z=l0,o0;do this.split(z,this.tmp),z=this.imulK(z),z=z.iadd(this.tmp),o0=z.bitLength();while(o0>this.n);var M=o00?z.isub(this.p):z.strip!==void 0?z.strip():z._strip(),z},C.prototype.split=function(l0,z){l0.iushrn(this.n,0,z)},C.prototype.imulK=function(l0){return l0.imul(this.k)};function h0(){C.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}$(h0,C),h0.prototype.split=function(l0,z){for(var o0=4194303,M=Math.min(l0.length,9),u0=0;u0>>22,S=n0}S>>>=22,l0.words[u0-10]=S,S===0&&l0.length>10?l0.length-=10:l0.length-=9},h0.prototype.imulK=function(l0){l0.words[l0.length]=0,l0.words[l0.length+1]=0,l0.length+=2;for(var z=0,o0=0;o0>>=26,l0.words[o0]=u0,z=M}return z!==0&&(l0.words[l0.length++]=z),l0},Z._prime=function(l0){if(c0[l0])return c0[l0];var z;if(l0==="k256")z=new h0;else if(l0==="p224")z=new L;else if(l0==="p192")z=new d0;else if(l0==="p25519")z=new R;else throw new Error("Unknown prime "+l0);return c0[l0]=z,z};function b0(l0){if(typeof l0=="string"){var z=Z._prime(l0);this.m=z.p,this.prime=z}else Y(l0.gtn(1),"modulus must be greater than 1"),this.m=l0,this.prime=null}b0.prototype._verify1=function(l0){Y(l0.negative===0,"red works only with positives"),Y(l0.red,"red works only with red numbers")},b0.prototype._verify2=function(l0,z){Y((l0.negative|z.negative)===0,"red works only with positives"),Y(l0.red&&l0.red===z.red,"red works only with red numbers")},b0.prototype.imod=function(l0){return this.prime?this.prime.ireduce(l0)._forceRed(this):l0.umod(this.m)._forceRed(this)},b0.prototype.neg=function(l0){return l0.isZero()?l0.clone():this.m.sub(l0)._forceRed(this)},b0.prototype.add=function(l0,z){this._verify2(l0,z);var o0=l0.add(z);return o0.cmp(this.m)>=0&&o0.isub(this.m),o0._forceRed(this)},b0.prototype.iadd=function(l0,z){this._verify2(l0,z);var o0=l0.iadd(z);return o0.cmp(this.m)>=0&&o0.isub(this.m),o0},b0.prototype.sub=function(l0,z){this._verify2(l0,z);var o0=l0.sub(z);return o0.cmpn(0)<0&&o0.iadd(this.m),o0._forceRed(this)},b0.prototype.isub=function(l0,z){this._verify2(l0,z);var o0=l0.isub(z);return o0.cmpn(0)<0&&o0.iadd(this.m),o0},b0.prototype.shl=function(l0,z){return this._verify1(l0),this.imod(l0.ushln(z))},b0.prototype.imul=function(l0,z){return this._verify2(l0,z),this.imod(l0.imul(z))},b0.prototype.mul=function(l0,z){return this._verify2(l0,z),this.imod(l0.mul(z))},b0.prototype.isqr=function(l0){return this.imul(l0,l0.clone())},b0.prototype.sqr=function(l0){return this.mul(l0,l0)},b0.prototype.sqrt=function(l0){if(l0.isZero())return l0.clone();var z=this.m.andln(3);if(Y(z%2===1),z===3){var o0=this.m.add(new Z(1)).iushrn(2);return this.pow(l0,o0)}for(var M=this.m.subn(1),u0=0;!M.isZero()&&M.andln(1)===0;)u0++,M.iushrn(1);Y(!M.isZero());var S=new Z(1).toRed(this),n0=S.redNeg(),v=this.m.subn(1).iushrn(1),s0=this.m.bitLength();for(s0=new Z(2*s0*s0).toRed(this);this.pow(s0,v).cmp(n0)!==0;)s0.redIAdd(n0);for(var I=this.pow(s0,M),t0=this.pow(l0,M.addn(1).iushrn(1)),m0=this.pow(l0,M),a0=u0;m0.cmp(S)!==0;){for(var q=m0,e0=0;q.cmp(S)!==0;e0++)q=q.redSqr();Y(e0=0;u0--){for(var I=z.words[u0],t0=s0-1;t0>=0;t0--){var m0=I>>t0&1;if(S!==M[0]&&(S=this.sqr(S)),m0===0&&n0===0){v=0;continue}n0<<=1,n0|=m0,v++,!(v!==o0&&(u0!==0||t0!==0))&&(S=this.mul(S,M[n0]),v=0,n0=0)}s0=26}return S},b0.prototype.convertTo=function(l0){var z=l0.umod(this.m);return z===l0?z.clone():z},b0.prototype.convertFrom=function(l0){var z=l0.clone();return z.red=null,z},Z.mont=function(l0){return new P(l0)};function P(l0){b0.call(this,l0),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new Z(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}$(P,b0),P.prototype.convertTo=function(l0){return this.imod(l0.ushln(this.shift))},P.prototype.convertFrom=function(l0){var z=this.imod(l0.mul(this.rinv));return z.red=null,z},P.prototype.imul=function(l0,z){if(l0.isZero()||z.isZero())return l0.words[0]=0,l0.length=1,l0;var o0=l0.imul(z),M=o0.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u0=o0.isub(M).iushrn(this.shift),S=u0;return u0.cmp(this.m)>=0?S=u0.isub(this.m):u0.cmpn(0)<0&&(S=u0.iadd(this.m)),S._forceRed(this)},P.prototype.mul=function(l0,z){if(l0.isZero()||z.isZero())return new Z(0)._forceRed(this);var o0=l0.mul(z),M=o0.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u0=o0.isub(M).iushrn(this.shift),S=u0;return u0.cmp(this.m)>=0?S=u0.isub(this.m):u0.cmpn(0)<0&&(S=u0.iadd(this.m)),S._forceRed(this)},P.prototype.invm=function(l0){var z=this.imod(l0._invmp(this.m).mul(this.r2));return z._forceRed(this)}})(typeof K>"u"||K,X)}}),CY=$Q({"node_modules/safer-buffer/safer.js"(X,K){var x0=e$,G=c$,Y={},$;for($ in x0)!x0.hasOwnProperty($)||$==="SlowBuffer"||$==="Buffer"||(Y[$]=x0[$]);var Z=Y.Buffer={};for($ in G)!G.hasOwnProperty($)||$==="allocUnsafe"||$==="allocUnsafeSlow"||(Z[$]=G[$]);if(Y.Buffer.prototype=G.prototype,(!Z.from||Z.from===Uint8Array.from)&&(Z.from=function(Q,U,V){if(typeof Q=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof Q);if(Q&&typeof Q.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof Q);return G(Q,U,V)}),Z.alloc||(Z.alloc=function(Q,U,V){if(typeof Q!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof Q);if(Q<0||Q>=2*(1<<30))throw new RangeError('The value "'+Q+'" is invalid for option "size"');var B0=G(Q);return!U||U.length===0?B0.fill(0):typeof V=="string"?B0.fill(U,V):B0.fill(U),B0}),!Y.kStringMaxLength)try{Y.kStringMaxLength=r$}catch{}Y.constants||(Y.constants={MAX_LENGTH:Y.kMaxLength},Y.kStringMaxLength&&(Y.constants.MAX_STRING_LENGTH=Y.kStringMaxLength)),K.exports=Y}}),LY=$Q({"node_modules/asn1.js/lib/asn1/base/reporter.js"(X){var K=X0();function x0(Y){this._reporterState={obj:null,path:[],options:Y||{},errors:[]}}X.Reporter=x0,x0.prototype.isError=function(Y){return Y instanceof G},x0.prototype.save=function(){let Y=this._reporterState;return{obj:Y.obj,pathLen:Y.path.length}},x0.prototype.restore=function(Y){let $=this._reporterState;$.obj=Y.obj,$.path=$.path.slice(0,Y.pathLen)},x0.prototype.enterKey=function(Y){return this._reporterState.path.push(Y)},x0.prototype.exitKey=function(Y){let $=this._reporterState;$.path=$.path.slice(0,Y-1)},x0.prototype.leaveKey=function(Y,$,Z){let Q=this._reporterState;this.exitKey(Y),Q.obj!==null&&(Q.obj[$]=Z)},x0.prototype.path=function(){return this._reporterState.path.join("/")},x0.prototype.enterObject=function(){let Y=this._reporterState,$=Y.obj;return Y.obj={},$},x0.prototype.leaveObject=function(Y){let $=this._reporterState,Z=$.obj;return $.obj=Y,Z},x0.prototype.error=function(Y){let $,Z=this._reporterState,Q=Y instanceof G;if(Q?$=Y:$=new G(Z.path.map(function(U){return"["+JSON.stringify(U)+"]"}).join(""),Y.message||Y,Y.stack),!Z.options.partial)throw $;return Q||Z.errors.push($),$},x0.prototype.wrapResult=function(Y){let $=this._reporterState;return $.options.partial?{result:this.isError(Y)?null:Y,errors:$.errors}:Y};function G(Y,$){this.path=Y,this.rethrow($)}K(G,Error),G.prototype.rethrow=function(Y){if(this.message=Y+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,G),!this.stack)try{throw new Error(this.message)}catch($){this.stack=$.stack}return this}}}),l$=$Q({"node_modules/asn1.js/lib/asn1/base/buffer.js"(X){var K=X0(),x0=LY().Reporter,G=CY().Buffer;function Y(Z,Q){if(x0.call(this,Q),!G.isBuffer(Z)){this.error("Input not Buffer");return}this.base=Z,this.offset=0,this.length=Z.length}K(Y,x0),X.DecoderBuffer=Y,Y.isDecoderBuffer=function(Z){return Z instanceof Y?!0:typeof Z=="object"&&G.isBuffer(Z.base)&&Z.constructor.name==="DecoderBuffer"&&typeof Z.offset=="number"&&typeof Z.length=="number"&&typeof Z.save=="function"&&typeof Z.restore=="function"&&typeof Z.isEmpty=="function"&&typeof Z.readUInt8=="function"&&typeof Z.skip=="function"&&typeof Z.raw=="function"},Y.prototype.save=function(){return{offset:this.offset,reporter:x0.prototype.save.call(this)}},Y.prototype.restore=function(Z){let Q=new Y(this.base);return Q.offset=Z.offset,Q.length=this.offset,this.offset=Z.offset,x0.prototype.restore.call(this,Z.reporter),Q},Y.prototype.isEmpty=function(){return this.offset===this.length},Y.prototype.readUInt8=function(Z){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(Z||"DecoderBuffer overrun")},Y.prototype.skip=function(Z,Q){if(!(this.offset+Z<=this.length))return this.error(Q||"DecoderBuffer overrun");let U=new Y(this.base);return U._reporterState=this._reporterState,U.offset=this.offset,U.length=this.offset+Z,this.offset+=Z,U},Y.prototype.raw=function(Z){return this.base.slice(Z?Z.offset:this.offset,this.length)};function $(Z,Q){if(Array.isArray(Z))this.length=0,this.value=Z.map(function(U){return $.isEncoderBuffer(U)||(U=new $(U,Q)),this.length+=U.length,U},this);else if(typeof Z=="number"){if(!(0<=Z&&Z<=255))return Q.error("non-byte EncoderBuffer value");this.value=Z,this.length=1}else if(typeof Z=="string")this.value=Z,this.length=G.byteLength(Z);else if(G.isBuffer(Z))this.value=Z,this.length=Z.length;else return Q.error("Unsupported type: "+typeof Z)}X.EncoderBuffer=$,$.isEncoderBuffer=function(Z){return Z instanceof $?!0:typeof Z=="object"&&Z.constructor.name==="EncoderBuffer"&&typeof Z.length=="number"&&typeof Z.join=="function"},$.prototype.join=function(Z,Q){return Z||(Z=G.alloc(this.length)),Q||(Q=0),this.length===0||(Array.isArray(this.value)?this.value.forEach(function(U){U.join(Z,Q),Q+=U.length}):(typeof this.value=="number"?Z[Q]=this.value:typeof this.value=="string"?Z.write(this.value,Q):G.isBuffer(this.value)&&this.value.copy(Z,Q),Q+=this.length)),Z}}}),RY=$Q({"node_modules/asn1.js/lib/asn1/base/node.js"(X,K){var x0=LY().Reporter,G=l$().EncoderBuffer,Y=l$().DecoderBuffer,$=N0(),Z=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],Q=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(Z),U=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];function V(H,y0,W){let w0={};this._baseState=w0,w0.name=W,w0.enc=H,w0.parent=y0||null,w0.children=null,w0.tag=null,w0.args=null,w0.reverseArgs=null,w0.choice=null,w0.optional=!1,w0.any=!1,w0.obj=!1,w0.use=null,w0.useDecoder=null,w0.key=null,w0.default=null,w0.explicit=null,w0.implicit=null,w0.contains=null,w0.parent||(w0.children=[],this._wrap())}K.exports=V;var B0=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];V.prototype.clone=function(){let H=this._baseState,y0={};B0.forEach(function(w0){y0[w0]=H[w0]});let W=new this.constructor(y0.parent);return W._baseState=y0,W},V.prototype._wrap=function(){let H=this._baseState;Q.forEach(function(y0){this[y0]=function(){let W=new this.constructor(this);return H.children.push(W),W[y0].apply(W,arguments)}},this)},V.prototype._init=function(H){let y0=this._baseState;$(y0.parent===null),H.call(this),y0.children=y0.children.filter(function(W){return W._baseState.parent===this},this),$.equal(y0.children.length,1,"Root node can have only one child")},V.prototype._useArgs=function(H){let y0=this._baseState,W=H.filter(function(w0){return w0 instanceof this.constructor},this);H=H.filter(function(w0){return!(w0 instanceof this.constructor)},this),W.length!==0&&($(y0.children===null),y0.children=W,W.forEach(function(w0){w0._baseState.parent=this},this)),H.length!==0&&($(y0.args===null),y0.args=H,y0.reverseArgs=H.map(function(w0){if(typeof w0!="object"||w0.constructor!==Object)return w0;let E={};return Object.keys(w0).forEach(function(p0){p0==(p0|0)&&(p0|=0);let T=w0[p0];E[T]=p0}),E}))},U.forEach(function(H){V.prototype[H]=function(){let y0=this._baseState;throw new Error(H+" not implemented for encoding: "+y0.enc)}}),Z.forEach(function(H){V.prototype[H]=function(){let y0=this._baseState,W=Array.prototype.slice.call(arguments);return $(y0.tag===null),y0.tag=H,this._useArgs(W),this}}),V.prototype.use=function(H){$(H);let y0=this._baseState;return $(y0.use===null),y0.use=H,this},V.prototype.optional=function(){let H=this._baseState;return H.optional=!0,this},V.prototype.def=function(H){let y0=this._baseState;return $(y0.default===null),y0.default=H,y0.optional=!0,this},V.prototype.explicit=function(H){let y0=this._baseState;return $(y0.explicit===null&&y0.implicit===null),y0.explicit=H,this},V.prototype.implicit=function(H){let y0=this._baseState;return $(y0.explicit===null&&y0.implicit===null),y0.implicit=H,this},V.prototype.obj=function(){let H=this._baseState,y0=Array.prototype.slice.call(arguments);return H.obj=!0,y0.length!==0&&this._useArgs(y0),this},V.prototype.key=function(H){let y0=this._baseState;return $(y0.key===null),y0.key=H,this},V.prototype.any=function(){let H=this._baseState;return H.any=!0,this},V.prototype.choice=function(H){let y0=this._baseState;return $(y0.choice===null),y0.choice=H,this._useArgs(Object.keys(H).map(function(W){return H[W]})),this},V.prototype.contains=function(H){let y0=this._baseState;return $(y0.use===null),y0.contains=H,this},V.prototype._decode=function(H,y0){let W=this._baseState;if(W.parent===null)return H.wrapResult(W.children[0]._decode(H,y0));let w0=W.default,E=!0,p0=null;if(W.key!==null&&(p0=H.enterKey(W.key)),W.optional){let f0=null;if(W.explicit!==null?f0=W.explicit:W.implicit!==null?f0=W.implicit:W.tag!==null&&(f0=W.tag),f0===null&&!W.any){let D=H.save();try{W.choice===null?this._decodeGeneric(W.tag,H,y0):this._decodeChoice(H,y0),E=!0}catch{E=!1}H.restore(D)}else if(E=this._peekTag(H,f0,W.any),H.isError(E))return E}let T;if(W.obj&&E&&(T=H.enterObject()),E){if(W.explicit!==null){let D=this._decodeTag(H,W.explicit);if(H.isError(D))return D;H=D}let f0=H.offset;if(W.use===null&&W.choice===null){let D;W.any&&(D=H.save());let c0=this._decodeTag(H,W.implicit!==null?W.implicit:W.tag,W.any);if(H.isError(c0))return c0;W.any?w0=H.raw(D):H=c0}if(y0&&y0.track&&W.tag!==null&&y0.track(H.path(),f0,H.length,"tagged"),y0&&y0.track&&W.tag!==null&&y0.track(H.path(),H.offset,H.length,"content"),W.any||(W.choice===null?w0=this._decodeGeneric(W.tag,H,y0):w0=this._decodeChoice(H,y0)),H.isError(w0))return w0;if(!W.any&&W.choice===null&&W.children!==null&&W.children.forEach(function(D){D._decode(H,y0)}),W.contains&&(W.tag==="octstr"||W.tag==="bitstr")){let D=new Y(w0);w0=this._getUse(W.contains,H._reporterState.obj)._decode(D,y0)}}return W.obj&&E&&(w0=H.leaveObject(T)),W.key!==null&&(w0!==null||E===!0)?H.leaveKey(p0,W.key,w0):p0!==null&&H.exitKey(p0),w0},V.prototype._decodeGeneric=function(H,y0,W){let w0=this._baseState;return H==="seq"||H==="set"?null:H==="seqof"||H==="setof"?this._decodeList(y0,H,w0.args[0],W):/str$/.test(H)?this._decodeStr(y0,H,W):H==="objid"&&w0.args?this._decodeObjid(y0,w0.args[0],w0.args[1],W):H==="objid"?this._decodeObjid(y0,null,null,W):H==="gentime"||H==="utctime"?this._decodeTime(y0,H,W):H==="null_"?this._decodeNull(y0,W):H==="bool"?this._decodeBool(y0,W):H==="objDesc"?this._decodeStr(y0,H,W):H==="int"||H==="enum"?this._decodeInt(y0,w0.args&&w0.args[0],W):w0.use!==null?this._getUse(w0.use,y0._reporterState.obj)._decode(y0,W):y0.error("unknown tag: "+H)},V.prototype._getUse=function(H,y0){let W=this._baseState;return W.useDecoder=this._use(H,y0),$(W.useDecoder._baseState.parent===null),W.useDecoder=W.useDecoder._baseState.children[0],W.implicit!==W.useDecoder._baseState.implicit&&(W.useDecoder=W.useDecoder.clone(),W.useDecoder._baseState.implicit=W.implicit),W.useDecoder},V.prototype._decodeChoice=function(H,y0){let W=this._baseState,w0=null,E=!1;return Object.keys(W.choice).some(function(p0){let T=H.save(),f0=W.choice[p0];try{let D=f0._decode(H,y0);if(H.isError(D))return!1;w0={type:p0,value:D},E=!0}catch{return H.restore(T),!1}return!0},this),E?w0:H.error("Choice not matched")},V.prototype._createEncoderBuffer=function(H){return new G(H,this.reporter)},V.prototype._encode=function(H,y0,W){let w0=this._baseState;if(w0.default!==null&&w0.default===H)return;let E=this._encodeValue(H,y0,W);if(E!==void 0&&!this._skipDefault(E,y0,W))return E},V.prototype._encodeValue=function(H,y0,W){let w0=this._baseState;if(w0.parent===null)return w0.children[0]._encode(H,y0||new x0);let E=null;if(this.reporter=y0,w0.optional&&H===void 0)if(w0.default!==null)H=w0.default;else return;let p0=null,T=!1;if(w0.any)E=this._createEncoderBuffer(H);else if(w0.choice)E=this._encodeChoice(H,y0);else if(w0.contains)p0=this._getUse(w0.contains,W)._encode(H,y0),T=!0;else if(w0.children)p0=w0.children.map(function(f0){if(f0._baseState.tag==="null_")return f0._encode(null,y0,H);if(f0._baseState.key===null)return y0.error("Child should have a key");let D=y0.enterKey(f0._baseState.key);if(typeof H!="object")return y0.error("Child expected, but input is not object");let c0=f0._encode(H[f0._baseState.key],y0,H);return y0.leaveKey(D),c0},this).filter(function(f0){return f0}),p0=this._createEncoderBuffer(p0);else if(w0.tag==="seqof"||w0.tag==="setof"){if(!(w0.args&&w0.args.length===1))return y0.error("Too many args for : "+w0.tag);if(!Array.isArray(H))return y0.error("seqof/setof, but data is not Array");let f0=this.clone();f0._baseState.implicit=null,p0=this._createEncoderBuffer(H.map(function(D){let c0=this._baseState;return this._getUse(c0.args[0],H)._encode(D,y0)},f0))}else w0.use!==null?E=this._getUse(w0.use,W)._encode(H,y0):(p0=this._encodePrimitive(w0.tag,H),T=!0);if(!w0.any&&w0.choice===null){let f0=w0.implicit!==null?w0.implicit:w0.tag,D=w0.implicit===null?"universal":"context";f0===null?w0.use===null&&y0.error("Tag could be omitted only for .use()"):w0.use===null&&(E=this._encodeComposite(f0,T,D,p0))}return w0.explicit!==null&&(E=this._encodeComposite(w0.explicit,!1,"context",E)),E},V.prototype._encodeChoice=function(H,y0){let W=this._baseState,w0=W.choice[H.type];return w0||$(!1,H.type+" not found in "+JSON.stringify(Object.keys(W.choice))),w0._encode(H.value,y0)},V.prototype._encodePrimitive=function(H,y0){let W=this._baseState;if(/str$/.test(H))return this._encodeStr(y0,H);if(H==="objid"&&W.args)return this._encodeObjid(y0,W.reverseArgs[0],W.args[1]);if(H==="objid")return this._encodeObjid(y0,null,null);if(H==="gentime"||H==="utctime")return this._encodeTime(y0,H);if(H==="null_")return this._encodeNull();if(H==="int"||H==="enum")return this._encodeInt(y0,W.args&&W.reverseArgs[0]);if(H==="bool")return this._encodeBool(y0);if(H==="objDesc")return this._encodeStr(y0,H);throw new Error("Unsupported tag: "+H)},V.prototype._isNumstr=function(H){return/^[0-9 ]*$/.test(H)},V.prototype._isPrintstr=function(H){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(H)}}}),PY=$Q({"node_modules/asn1.js/lib/asn1/constants/der.js"(X){function K(x0){let G={};return Object.keys(x0).forEach(function(Y){(Y|0)==Y&&(Y=Y|0);let $=x0[Y];G[$]=Y}),G}X.tagClass={0:"universal",1:"application",2:"context",3:"private"},X.tagClassByName=K(X.tagClass),X.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},X.tagByName=K(X.tag)}}),zY=$Q({"node_modules/asn1.js/lib/asn1/encoders/der.js"(X,K){var x0=X0(),G=CY().Buffer,Y=RY(),$=PY();function Z(B0){this.enc="der",this.name=B0.name,this.entity=B0,this.tree=new Q,this.tree._init(B0.body)}K.exports=Z,Z.prototype.encode=function(B0,H){return this.tree._encode(B0,H).join()};function Q(B0){Y.call(this,"der",B0)}x0(Q,Y),Q.prototype._encodeComposite=function(B0,H,y0,W){let w0=V(B0,H,y0,this.reporter);if(W.length<128){let T=G.alloc(2);return T[0]=w0,T[1]=W.length,this._createEncoderBuffer([T,W])}let E=1;for(let T=W.length;T>=256;T>>=8)E++;let p0=G.alloc(2+E);p0[0]=w0,p0[1]=128|E;for(let T=1+E,f0=W.length;f0>0;T--,f0>>=8)p0[T]=f0&255;return this._createEncoderBuffer([p0,W])},Q.prototype._encodeStr=function(B0,H){if(H==="bitstr")return this._createEncoderBuffer([B0.unused|0,B0.data]);if(H==="bmpstr"){let y0=G.alloc(B0.length*2);for(let W=0;W=40)return this.reporter.error("Second objid identifier OOB");B0.splice(0,2,B0[0]*40+B0[1])}let W=0;for(let p0=0;p0=128;T>>=7)W++}let w0=G.alloc(W),E=w0.length-1;for(let p0=B0.length-1;p0>=0;p0--){let T=B0[p0];for(w0[E--]=T&127;(T>>=7)>0;)w0[E--]=128|T&127}return this._createEncoderBuffer(w0)};function U(B0){return B0<10?"0"+B0:B0}Q.prototype._encodeTime=function(B0,H){let y0,W=new Date(B0);return H==="gentime"?y0=[U(W.getUTCFullYear()),U(W.getUTCMonth()+1),U(W.getUTCDate()),U(W.getUTCHours()),U(W.getUTCMinutes()),U(W.getUTCSeconds()),"Z"].join(""):H==="utctime"?y0=[U(W.getUTCFullYear()%100),U(W.getUTCMonth()+1),U(W.getUTCDate()),U(W.getUTCHours()),U(W.getUTCMinutes()),U(W.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+H+" time is not supported yet"),this._encodeStr(y0,"octstr")},Q.prototype._encodeNull=function(){return this._createEncoderBuffer("")},Q.prototype._encodeInt=function(B0,H){if(typeof B0=="string"){if(!H)return this.reporter.error("String int or enum given, but no values map");if(!H.hasOwnProperty(B0))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(B0));B0=H[B0]}if(typeof B0!="number"&&!G.isBuffer(B0)){let w0=B0.toArray();!B0.sign&&w0[0]&128&&w0.unshift(0),B0=G.from(w0)}if(G.isBuffer(B0)){let w0=B0.length;B0.length===0&&w0++;let E=G.alloc(w0);return B0.copy(E),B0.length===0&&(E[0]=0),this._createEncoderBuffer(E)}if(B0<128)return this._createEncoderBuffer(B0);if(B0<256)return this._createEncoderBuffer([0,B0]);let y0=1;for(let w0=B0;w0>=256;w0>>=8)y0++;let W=new Array(y0);for(let w0=W.length-1;w0>=0;w0--)W[w0]=B0&255,B0>>=8;return W[0]&128&&W.unshift(0),this._createEncoderBuffer(G.from(W))},Q.prototype._encodeBool=function(B0){return this._createEncoderBuffer(B0?255:0)},Q.prototype._use=function(B0,H){return typeof B0=="function"&&(B0=B0(H)),B0._getEncoder("der").tree},Q.prototype._skipDefault=function(B0,H,y0){let W=this._baseState,w0;if(W.default===null)return!1;let E=B0.join();if(W.defaultBuffer===void 0&&(W.defaultBuffer=this._encodeValue(W.default,H,y0).join()),E.length!==W.defaultBuffer.length)return!1;for(w0=0;w0=31?W.error("Multi-octet tag encoding unsupported"):(H||(w0|=32),w0|=$.tagClassByName[y0||"universal"]<<6,w0)}}}),MY=$Q({"node_modules/asn1.js/lib/asn1/encoders/pem.js"(X,K){var x0=X0(),G=zY();function Y($){G.call(this,$),this.enc="pem"}x0(Y,G),K.exports=Y,Y.prototype.encode=function($,Z){let Q=G.prototype.encode.call(this,$).toString("base64"),U=["-----BEGIN "+Z.label+"-----"];for(let V=0;V>6],E=(W&32)===0;if((W&31)===31){let T=W;for(W=0;(T&128)===128;){if(T=H.readUInt8(y0),H.isError(T))return T;W<<=7,W|=T&127}}else W&=31;let p0=Z.tag[W];return{cls:w0,primitive:E,tag:W,tagStr:p0}}function B0(H,y0,W){let w0=H.readUInt8(W);if(H.isError(w0))return w0;if(!y0&&w0===128)return null;if((w0&128)===0)return w0;let E=w0&127;if(E>4)return H.error("length octect is too long");w0=0;for(let p0=0;p00&&c0.ishrn(C),c0}function E(f0,D){f0=w0(f0,D),f0=f0.mod(D);var c0=x0.from(f0.toArray());if(c0.length=y0)throw new Error("invalid sig")}K.exports=Q}}),dY=$Q({"node_modules/browserify-sign/browser/index.js"(X,K){var x0=YQ().Buffer,G=L0(),Y=X0(),$=cY(),Z=hY(),Q=M0();Object.keys(Q).forEach(function(y0){Q[y0].id=x0.from(Q[y0].id,"hex"),Q[y0.toLowerCase()]=Q[y0]});function U(y0){h$.Writable.call(this);var W=Q[y0];if(!W)throw new Error("Unknown message digest");this._hashType=W.hash,this._hash=G(W.hash),this._tag=W.id,this._signType=W.sign}Y(U,h$.Writable),U.prototype._write=function(y0,W,w0){this._hash.update(y0),w0()},U.prototype.update=function(y0,W){return typeof y0=="string"&&(y0=x0.from(y0,W)),this._hash.update(y0),this},U.prototype.sign=function(y0,W){this.end();var w0=this._hash.digest(),E=$(w0,y0,this._hashType,this._signType,this._tag);return W?E.toString(W):E};function V(y0){h$.Writable.call(this);var W=Q[y0];if(!W)throw new Error("Unknown message digest");this._hash=G(W.hash),this._tag=W.id,this._signType=W.sign}Y(V,h$.Writable),V.prototype._write=function(y0,W,w0){this._hash.update(y0),w0()},V.prototype.update=function(y0,W){return typeof y0=="string"&&(y0=x0.from(y0,W)),this._hash.update(y0),this},V.prototype.verify=function(y0,W,w0){typeof W=="string"&&(W=x0.from(W,w0)),this.end();var E=this._hash.digest();return Z(W,E,y0,this._signType,this._tag)};function B0(y0){return new U(y0)}function H(y0){return new V(y0)}K.exports={Sign:B0,Verify:H,createSign:B0,createVerify:H}}}),bY=$Q({"node_modules/create-ecdh/node_modules/bn.js/lib/bn.js"(X,K){(function(x0,G){function Y(l0,z){if(!l0)throw new Error(z||"Assertion failed")}function $(l0,z){l0.super_=z;var o0=function(){};o0.prototype=z.prototype,l0.prototype=new o0,l0.prototype.constructor=l0}function Z(l0,z,o0){if(Z.isBN(l0))return l0;this.negative=0,this.words=null,this.length=0,this.red=null,l0!==null&&((z==="le"||z==="be")&&(o0=z,z=10),this._init(l0||0,z||10,o0||"be"))}typeof x0=="object"?x0.exports=Z:G.BN=Z,Z.BN=Z,Z.wordSize=26;var Q=c$;Z.isBN=function(l0){return l0 instanceof Z?!0:l0!==null&&typeof l0=="object"&&l0.constructor.wordSize===Z.wordSize&&Array.isArray(l0.words)},Z.max=function(l0,z){return l0.cmp(z)>0?l0:z},Z.min=function(l0,z){return l0.cmp(z)<0?l0:z},Z.prototype._init=function(l0,z,o0){if(typeof l0=="number")return this._initNumber(l0,z,o0);if(typeof l0=="object")return this._initArray(l0,z,o0);z==="hex"&&(z=16),Y(z===(z|0)&&z>=2&&z<=36),l0=l0.toString().replace(/\s+/g,"");var M=0;l0[0]==="-"&&(M++,this.negative=1),M=0;M-=3)S=l0[M]|l0[M-1]<<8|l0[M-2]<<16,this.words[u0]|=S<>>26-n0&67108863,n0+=24,n0>=26&&(n0-=26,u0++);else if(o0==="le")for(M=0,u0=0;M>>26-n0&67108863,n0+=24,n0>=26&&(n0-=26,u0++);return this.strip()};function U(l0,z){var o0=l0.charCodeAt(z);return o0>=65&&o0<=70?o0-55:o0>=97&&o0<=102?o0-87:o0-48&15}function V(l0,z,o0){var M=U(l0,o0);return o0-1>=z&&(M|=U(l0,o0-1)<<4),M}Z.prototype._parseHex=function(l0,z,o0){this.length=Math.ceil((l0.length-z)/6),this.words=new Array(this.length);for(var M=0;M=z;M-=2)n0=V(l0,z,M)<=18?(u0-=18,S+=1,this.words[S]|=n0>>>26):u0+=8;else{var v=l0.length-z;for(M=v%2===0?z+1:z;M=18?(u0-=18,S+=1,this.words[S]|=n0>>>26):u0+=8}this.strip()};function B0(l0,z,o0,M){for(var u0=0,S=Math.min(l0.length,o0),n0=z;n0=49?u0+=v-49+10:v>=17?u0+=v-17+10:u0+=v}return u0}Z.prototype._parseBase=function(l0,z,o0){this.words=[0],this.length=1;for(var M=0,u0=1;u0<=67108863;u0*=z)M++;M--,u0=u0/z|0;for(var S=l0.length-o0,n0=S%M,v=Math.min(S,S-n0)+o0,s0=0,I=o0;I1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},Z.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},Z.prototype.inspect=function(){return(this.red?""};var H=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y0=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],W=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];Z.prototype.toString=function(l0,z){l0=l0||10,z=z|0||1;var o0;if(l0===16||l0==="hex"){o0="";for(var M=0,u0=0,S=0;S>>24-M&16777215,u0!==0||S!==this.length-1?o0=H[6-v.length]+v+o0:o0=v+o0,M+=2,M>=26&&(M-=26,S--)}for(u0!==0&&(o0=u0.toString(16)+o0);o0.length%z!==0;)o0="0"+o0;return this.negative!==0&&(o0="-"+o0),o0}if(l0===(l0|0)&&l0>=2&&l0<=36){var s0=y0[l0],I=W[l0];o0="";var t0=this.clone();for(t0.negative=0;!t0.isZero();){var m0=t0.modn(I).toString(l0);t0=t0.idivn(I),t0.isZero()?o0=m0+o0:o0=H[s0-m0.length]+m0+o0}for(this.isZero()&&(o0="0"+o0);o0.length%z!==0;)o0="0"+o0;return this.negative!==0&&(o0="-"+o0),o0}Y(!1,"Base should be between 2 and 36")},Z.prototype.toNumber=function(){var l0=this.words[0];return this.length===2?l0+=this.words[1]*67108864:this.length===3&&this.words[2]===1?l0+=4503599627370496+this.words[1]*67108864:this.length>2&&Y(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-l0:l0},Z.prototype.toJSON=function(){return this.toString(16)},Z.prototype.toBuffer=function(l0,z){return Y(typeof Q<"u"),this.toArrayLike(Q,l0,z)},Z.prototype.toArray=function(l0,z){return this.toArrayLike(Array,l0,z)},Z.prototype.toArrayLike=function(l0,z,o0){var M=this.byteLength(),u0=o0||Math.max(1,M);Y(M<=u0,"byte array longer than desired length"),Y(u0>0,"Requested array length <= 0"),this.strip();var S=z==="le",n0=new l0(u0),v,s0,I=this.clone();if(S){for(s0=0;!I.isZero();s0++)v=I.andln(255),I.iushrn(8),n0[s0]=v;for(;s0=4096&&(o0+=13,z>>>=13),z>=64&&(o0+=7,z>>>=7),z>=8&&(o0+=4,z>>>=4),z>=2&&(o0+=2,z>>>=2),o0+z},Z.prototype._zeroBits=function(l0){if(l0===0)return 26;var z=l0,o0=0;return(z&8191)===0&&(o0+=13,z>>>=13),(z&127)===0&&(o0+=7,z>>>=7),(z&15)===0&&(o0+=4,z>>>=4),(z&3)===0&&(o0+=2,z>>>=2),(z&1)===0&&o0++,o0},Z.prototype.bitLength=function(){var l0=this.words[this.length-1],z=this._countBits(l0);return(this.length-1)*26+z};function w0(l0){for(var z=new Array(l0.bitLength()),o0=0;o0>>u0}return z}Z.prototype.zeroBits=function(){if(this.isZero())return 0;for(var l0=0,z=0;zl0.length?this.clone().ior(l0):l0.clone().ior(this)},Z.prototype.uor=function(l0){return this.length>l0.length?this.clone().iuor(l0):l0.clone().iuor(this)},Z.prototype.iuand=function(l0){var z;this.length>l0.length?z=l0:z=this;for(var o0=0;o0l0.length?this.clone().iand(l0):l0.clone().iand(this)},Z.prototype.uand=function(l0){return this.length>l0.length?this.clone().iuand(l0):l0.clone().iuand(this)},Z.prototype.iuxor=function(l0){var z,o0;this.length>l0.length?(z=this,o0=l0):(z=l0,o0=this);for(var M=0;Ml0.length?this.clone().ixor(l0):l0.clone().ixor(this)},Z.prototype.uxor=function(l0){return this.length>l0.length?this.clone().iuxor(l0):l0.clone().iuxor(this)},Z.prototype.inotn=function(l0){Y(typeof l0=="number"&&l0>=0);var z=Math.ceil(l0/26)|0,o0=l0%26;this._expand(z),o0>0&&z--;for(var M=0;M0&&(this.words[M]=~this.words[M]&67108863>>26-o0),this.strip()},Z.prototype.notn=function(l0){return this.clone().inotn(l0)},Z.prototype.setn=function(l0,z){Y(typeof l0=="number"&&l0>=0);var o0=l0/26|0,M=l0%26;return this._expand(o0+1),z?this.words[o0]=this.words[o0]|1<l0.length?(o0=this,M=l0):(o0=l0,M=this);for(var u0=0,S=0;S>>26;for(;u0!==0&&S>>26;if(this.length=o0.length,u0!==0)this.words[this.length]=u0,this.length++;else if(o0!==this)for(;Sl0.length?this.clone().iadd(l0):l0.clone().iadd(this)},Z.prototype.isub=function(l0){if(l0.negative!==0){l0.negative=0;var z=this.iadd(l0);return l0.negative=1,z._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(l0),this.negative=1,this._normSign();var o0=this.cmp(l0);if(o0===0)return this.negative=0,this.length=1,this.words[0]=0,this;var M,u0;o0>0?(M=this,u0=l0):(M=l0,u0=this);for(var S=0,n0=0;n0>26,this.words[n0]=z&67108863;for(;S!==0&&n0>26,this.words[n0]=z&67108863;if(S===0&&n0>>26,m0=s0&67108863,a0=Math.min(I,z.length-1),q=Math.max(0,I-l0.length+1);q<=a0;q++){var e0=I-q|0;u0=l0.words[e0]|0,S=z.words[q]|0,n0=u0*S+m0,t0+=n0/67108864|0,m0=n0&67108863}o0.words[I]=m0|0,s0=t0|0}return s0!==0?o0.words[I]=s0|0:o0.length--,o0.strip()}var p0=function(l0,z,o0){var M=l0.words,u0=z.words,S=o0.words,n0=0,v,s0,I,t0=M[0]|0,m0=t0&8191,a0=t0>>>13,q=M[1]|0,e0=q&8191,r0=q>>>13,i0=M[2]|0,j=i0&8191,$$=i0>>>13,k=M[3]|0,Q$=k&8191,g=k>>>13,Y$=M[4]|0,_=Y$&8191,Z$=Y$>>>13,N=M[5]|0,G$=N&8191,x=N>>>13,V$=M[6]|0,B=V$&8191,U$=V$>>>13,y=M[7]|0,X$=y&8191,w=y>>>13,K$=M[8]|0,p=K$&8191,I$=K$>>>13,f=M[9]|0,O$=f&8191,c=f>>>13,J$=u0[0]|0,h=J$&8191,F$=J$>>>13,d=u0[1]|0,A$=d&8191,b=d>>>13,H$=u0[2]|0,l=H$&8191,W$=H$>>>13,o=u0[3]|0,E$=o&8191,u=o>>>13,T$=u0[4]|0,n=T$&8191,D$=T$>>>13,s=u0[5]|0,C$=s&8191,t=s>>>13,L$=u0[6]|0,m=L$&8191,R$=L$>>>13,a=u0[7]|0,P$=a&8191,O=a>>>13,z$=u0[8]|0,e=z$&8191,M$=z$>>>13,J=u0[9]|0,S$=J&8191,F=J>>>13;o0.negative=l0.negative^z.negative,o0.length=19,v=Math.imul(m0,h),s0=Math.imul(m0,F$),s0=s0+Math.imul(a0,h)|0,I=Math.imul(a0,F$);var v$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(v$>>>26)|0,v$&=67108863,v=Math.imul(e0,h),s0=Math.imul(e0,F$),s0=s0+Math.imul(r0,h)|0,I=Math.imul(r0,F$),v=v+Math.imul(m0,A$)|0,s0=s0+Math.imul(m0,b)|0,s0=s0+Math.imul(a0,A$)|0,I=I+Math.imul(a0,b)|0;var r=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(r>>>26)|0,r&=67108863,v=Math.imul(j,h),s0=Math.imul(j,F$),s0=s0+Math.imul($$,h)|0,I=Math.imul($$,F$),v=v+Math.imul(e0,A$)|0,s0=s0+Math.imul(e0,b)|0,s0=s0+Math.imul(r0,A$)|0,I=I+Math.imul(r0,b)|0,v=v+Math.imul(m0,l)|0,s0=s0+Math.imul(m0,W$)|0,s0=s0+Math.imul(a0,l)|0,I=I+Math.imul(a0,W$)|0;var q$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(q$>>>26)|0,q$&=67108863,v=Math.imul(Q$,h),s0=Math.imul(Q$,F$),s0=s0+Math.imul(g,h)|0,I=Math.imul(g,F$),v=v+Math.imul(j,A$)|0,s0=s0+Math.imul(j,b)|0,s0=s0+Math.imul($$,A$)|0,I=I+Math.imul($$,b)|0,v=v+Math.imul(e0,l)|0,s0=s0+Math.imul(e0,W$)|0,s0=s0+Math.imul(r0,l)|0,I=I+Math.imul(r0,W$)|0,v=v+Math.imul(m0,E$)|0,s0=s0+Math.imul(m0,u)|0,s0=s0+Math.imul(a0,E$)|0,I=I+Math.imul(a0,u)|0;var i=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(i>>>26)|0,i&=67108863,v=Math.imul(_,h),s0=Math.imul(_,F$),s0=s0+Math.imul(Z$,h)|0,I=Math.imul(Z$,F$),v=v+Math.imul(Q$,A$)|0,s0=s0+Math.imul(Q$,b)|0,s0=s0+Math.imul(g,A$)|0,I=I+Math.imul(g,b)|0,v=v+Math.imul(j,l)|0,s0=s0+Math.imul(j,W$)|0,s0=s0+Math.imul($$,l)|0,I=I+Math.imul($$,W$)|0,v=v+Math.imul(e0,E$)|0,s0=s0+Math.imul(e0,u)|0,s0=s0+Math.imul(r0,E$)|0,I=I+Math.imul(r0,u)|0,v=v+Math.imul(m0,n)|0,s0=s0+Math.imul(m0,D$)|0,s0=s0+Math.imul(a0,n)|0,I=I+Math.imul(a0,D$)|0;var j$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(j$>>>26)|0,j$&=67108863,v=Math.imul(G$,h),s0=Math.imul(G$,F$),s0=s0+Math.imul(x,h)|0,I=Math.imul(x,F$),v=v+Math.imul(_,A$)|0,s0=s0+Math.imul(_,b)|0,s0=s0+Math.imul(Z$,A$)|0,I=I+Math.imul(Z$,b)|0,v=v+Math.imul(Q$,l)|0,s0=s0+Math.imul(Q$,W$)|0,s0=s0+Math.imul(g,l)|0,I=I+Math.imul(g,W$)|0,v=v+Math.imul(j,E$)|0,s0=s0+Math.imul(j,u)|0,s0=s0+Math.imul($$,E$)|0,I=I+Math.imul($$,u)|0,v=v+Math.imul(e0,n)|0,s0=s0+Math.imul(e0,D$)|0,s0=s0+Math.imul(r0,n)|0,I=I+Math.imul(r0,D$)|0,v=v+Math.imul(m0,C$)|0,s0=s0+Math.imul(m0,t)|0,s0=s0+Math.imul(a0,C$)|0,I=I+Math.imul(a0,t)|0;var k$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(k$>>>26)|0,k$&=67108863,v=Math.imul(B,h),s0=Math.imul(B,F$),s0=s0+Math.imul(U$,h)|0,I=Math.imul(U$,F$),v=v+Math.imul(G$,A$)|0,s0=s0+Math.imul(G$,b)|0,s0=s0+Math.imul(x,A$)|0,I=I+Math.imul(x,b)|0,v=v+Math.imul(_,l)|0,s0=s0+Math.imul(_,W$)|0,s0=s0+Math.imul(Z$,l)|0,I=I+Math.imul(Z$,W$)|0,v=v+Math.imul(Q$,E$)|0,s0=s0+Math.imul(Q$,u)|0,s0=s0+Math.imul(g,E$)|0,I=I+Math.imul(g,u)|0,v=v+Math.imul(j,n)|0,s0=s0+Math.imul(j,D$)|0,s0=s0+Math.imul($$,n)|0,I=I+Math.imul($$,D$)|0,v=v+Math.imul(e0,C$)|0,s0=s0+Math.imul(e0,t)|0,s0=s0+Math.imul(r0,C$)|0,I=I+Math.imul(r0,t)|0,v=v+Math.imul(m0,m)|0,s0=s0+Math.imul(m0,R$)|0,s0=s0+Math.imul(a0,m)|0,I=I+Math.imul(a0,R$)|0;var g$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(g$>>>26)|0,g$&=67108863,v=Math.imul(X$,h),s0=Math.imul(X$,F$),s0=s0+Math.imul(w,h)|0,I=Math.imul(w,F$),v=v+Math.imul(B,A$)|0,s0=s0+Math.imul(B,b)|0,s0=s0+Math.imul(U$,A$)|0,I=I+Math.imul(U$,b)|0,v=v+Math.imul(G$,l)|0,s0=s0+Math.imul(G$,W$)|0,s0=s0+Math.imul(x,l)|0,I=I+Math.imul(x,W$)|0,v=v+Math.imul(_,E$)|0,s0=s0+Math.imul(_,u)|0,s0=s0+Math.imul(Z$,E$)|0,I=I+Math.imul(Z$,u)|0,v=v+Math.imul(Q$,n)|0,s0=s0+Math.imul(Q$,D$)|0,s0=s0+Math.imul(g,n)|0,I=I+Math.imul(g,D$)|0,v=v+Math.imul(j,C$)|0,s0=s0+Math.imul(j,t)|0,s0=s0+Math.imul($$,C$)|0,I=I+Math.imul($$,t)|0,v=v+Math.imul(e0,m)|0,s0=s0+Math.imul(e0,R$)|0,s0=s0+Math.imul(r0,m)|0,I=I+Math.imul(r0,R$)|0,v=v+Math.imul(m0,P$)|0,s0=s0+Math.imul(m0,O)|0,s0=s0+Math.imul(a0,P$)|0,I=I+Math.imul(a0,O)|0;var _$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(_$>>>26)|0,_$&=67108863,v=Math.imul(p,h),s0=Math.imul(p,F$),s0=s0+Math.imul(I$,h)|0,I=Math.imul(I$,F$),v=v+Math.imul(X$,A$)|0,s0=s0+Math.imul(X$,b)|0,s0=s0+Math.imul(w,A$)|0,I=I+Math.imul(w,b)|0,v=v+Math.imul(B,l)|0,s0=s0+Math.imul(B,W$)|0,s0=s0+Math.imul(U$,l)|0,I=I+Math.imul(U$,W$)|0,v=v+Math.imul(G$,E$)|0,s0=s0+Math.imul(G$,u)|0,s0=s0+Math.imul(x,E$)|0,I=I+Math.imul(x,u)|0,v=v+Math.imul(_,n)|0,s0=s0+Math.imul(_,D$)|0,s0=s0+Math.imul(Z$,n)|0,I=I+Math.imul(Z$,D$)|0,v=v+Math.imul(Q$,C$)|0,s0=s0+Math.imul(Q$,t)|0,s0=s0+Math.imul(g,C$)|0,I=I+Math.imul(g,t)|0,v=v+Math.imul(j,m)|0,s0=s0+Math.imul(j,R$)|0,s0=s0+Math.imul($$,m)|0,I=I+Math.imul($$,R$)|0,v=v+Math.imul(e0,P$)|0,s0=s0+Math.imul(e0,O)|0,s0=s0+Math.imul(r0,P$)|0,I=I+Math.imul(r0,O)|0,v=v+Math.imul(m0,e)|0,s0=s0+Math.imul(m0,M$)|0,s0=s0+Math.imul(a0,e)|0,I=I+Math.imul(a0,M$)|0;var N$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(N$>>>26)|0,N$&=67108863,v=Math.imul(O$,h),s0=Math.imul(O$,F$),s0=s0+Math.imul(c,h)|0,I=Math.imul(c,F$),v=v+Math.imul(p,A$)|0,s0=s0+Math.imul(p,b)|0,s0=s0+Math.imul(I$,A$)|0,I=I+Math.imul(I$,b)|0,v=v+Math.imul(X$,l)|0,s0=s0+Math.imul(X$,W$)|0,s0=s0+Math.imul(w,l)|0,I=I+Math.imul(w,W$)|0,v=v+Math.imul(B,E$)|0,s0=s0+Math.imul(B,u)|0,s0=s0+Math.imul(U$,E$)|0,I=I+Math.imul(U$,u)|0,v=v+Math.imul(G$,n)|0,s0=s0+Math.imul(G$,D$)|0,s0=s0+Math.imul(x,n)|0,I=I+Math.imul(x,D$)|0,v=v+Math.imul(_,C$)|0,s0=s0+Math.imul(_,t)|0,s0=s0+Math.imul(Z$,C$)|0,I=I+Math.imul(Z$,t)|0,v=v+Math.imul(Q$,m)|0,s0=s0+Math.imul(Q$,R$)|0,s0=s0+Math.imul(g,m)|0,I=I+Math.imul(g,R$)|0,v=v+Math.imul(j,P$)|0,s0=s0+Math.imul(j,O)|0,s0=s0+Math.imul($$,P$)|0,I=I+Math.imul($$,O)|0,v=v+Math.imul(e0,e)|0,s0=s0+Math.imul(e0,M$)|0,s0=s0+Math.imul(r0,e)|0,I=I+Math.imul(r0,M$)|0,v=v+Math.imul(m0,S$)|0,s0=s0+Math.imul(m0,F)|0,s0=s0+Math.imul(a0,S$)|0,I=I+Math.imul(a0,F)|0;var $0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+($0>>>26)|0,$0&=67108863,v=Math.imul(O$,A$),s0=Math.imul(O$,b),s0=s0+Math.imul(c,A$)|0,I=Math.imul(c,b),v=v+Math.imul(p,l)|0,s0=s0+Math.imul(p,W$)|0,s0=s0+Math.imul(I$,l)|0,I=I+Math.imul(I$,W$)|0,v=v+Math.imul(X$,E$)|0,s0=s0+Math.imul(X$,u)|0,s0=s0+Math.imul(w,E$)|0,I=I+Math.imul(w,u)|0,v=v+Math.imul(B,n)|0,s0=s0+Math.imul(B,D$)|0,s0=s0+Math.imul(U$,n)|0,I=I+Math.imul(U$,D$)|0,v=v+Math.imul(G$,C$)|0,s0=s0+Math.imul(G$,t)|0,s0=s0+Math.imul(x,C$)|0,I=I+Math.imul(x,t)|0,v=v+Math.imul(_,m)|0,s0=s0+Math.imul(_,R$)|0,s0=s0+Math.imul(Z$,m)|0,I=I+Math.imul(Z$,R$)|0,v=v+Math.imul(Q$,P$)|0,s0=s0+Math.imul(Q$,O)|0,s0=s0+Math.imul(g,P$)|0,I=I+Math.imul(g,O)|0,v=v+Math.imul(j,e)|0,s0=s0+Math.imul(j,M$)|0,s0=s0+Math.imul($$,e)|0,I=I+Math.imul($$,M$)|0,v=v+Math.imul(e0,S$)|0,s0=s0+Math.imul(e0,F)|0,s0=s0+Math.imul(r0,S$)|0,I=I+Math.imul(r0,F)|0;var x$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(x$>>>26)|0,x$&=67108863,v=Math.imul(O$,l),s0=Math.imul(O$,W$),s0=s0+Math.imul(c,l)|0,I=Math.imul(c,W$),v=v+Math.imul(p,E$)|0,s0=s0+Math.imul(p,u)|0,s0=s0+Math.imul(I$,E$)|0,I=I+Math.imul(I$,u)|0,v=v+Math.imul(X$,n)|0,s0=s0+Math.imul(X$,D$)|0,s0=s0+Math.imul(w,n)|0,I=I+Math.imul(w,D$)|0,v=v+Math.imul(B,C$)|0,s0=s0+Math.imul(B,t)|0,s0=s0+Math.imul(U$,C$)|0,I=I+Math.imul(U$,t)|0,v=v+Math.imul(G$,m)|0,s0=s0+Math.imul(G$,R$)|0,s0=s0+Math.imul(x,m)|0,I=I+Math.imul(x,R$)|0,v=v+Math.imul(_,P$)|0,s0=s0+Math.imul(_,O)|0,s0=s0+Math.imul(Z$,P$)|0,I=I+Math.imul(Z$,O)|0,v=v+Math.imul(Q$,e)|0,s0=s0+Math.imul(Q$,M$)|0,s0=s0+Math.imul(g,e)|0,I=I+Math.imul(g,M$)|0,v=v+Math.imul(j,S$)|0,s0=s0+Math.imul(j,F)|0,s0=s0+Math.imul($$,S$)|0,I=I+Math.imul($$,F)|0;var Q0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Q0>>>26)|0,Q0&=67108863,v=Math.imul(O$,E$),s0=Math.imul(O$,u),s0=s0+Math.imul(c,E$)|0,I=Math.imul(c,u),v=v+Math.imul(p,n)|0,s0=s0+Math.imul(p,D$)|0,s0=s0+Math.imul(I$,n)|0,I=I+Math.imul(I$,D$)|0,v=v+Math.imul(X$,C$)|0,s0=s0+Math.imul(X$,t)|0,s0=s0+Math.imul(w,C$)|0,I=I+Math.imul(w,t)|0,v=v+Math.imul(B,m)|0,s0=s0+Math.imul(B,R$)|0,s0=s0+Math.imul(U$,m)|0,I=I+Math.imul(U$,R$)|0,v=v+Math.imul(G$,P$)|0,s0=s0+Math.imul(G$,O)|0,s0=s0+Math.imul(x,P$)|0,I=I+Math.imul(x,O)|0,v=v+Math.imul(_,e)|0,s0=s0+Math.imul(_,M$)|0,s0=s0+Math.imul(Z$,e)|0,I=I+Math.imul(Z$,M$)|0,v=v+Math.imul(Q$,S$)|0,s0=s0+Math.imul(Q$,F)|0,s0=s0+Math.imul(g,S$)|0,I=I+Math.imul(g,F)|0;var B$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(B$>>>26)|0,B$&=67108863,v=Math.imul(O$,n),s0=Math.imul(O$,D$),s0=s0+Math.imul(c,n)|0,I=Math.imul(c,D$),v=v+Math.imul(p,C$)|0,s0=s0+Math.imul(p,t)|0,s0=s0+Math.imul(I$,C$)|0,I=I+Math.imul(I$,t)|0,v=v+Math.imul(X$,m)|0,s0=s0+Math.imul(X$,R$)|0,s0=s0+Math.imul(w,m)|0,I=I+Math.imul(w,R$)|0,v=v+Math.imul(B,P$)|0,s0=s0+Math.imul(B,O)|0,s0=s0+Math.imul(U$,P$)|0,I=I+Math.imul(U$,O)|0,v=v+Math.imul(G$,e)|0,s0=s0+Math.imul(G$,M$)|0,s0=s0+Math.imul(x,e)|0,I=I+Math.imul(x,M$)|0,v=v+Math.imul(_,S$)|0,s0=s0+Math.imul(_,F)|0,s0=s0+Math.imul(Z$,S$)|0,I=I+Math.imul(Z$,F)|0;var Y0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Y0>>>26)|0,Y0&=67108863,v=Math.imul(O$,C$),s0=Math.imul(O$,t),s0=s0+Math.imul(c,C$)|0,I=Math.imul(c,t),v=v+Math.imul(p,m)|0,s0=s0+Math.imul(p,R$)|0,s0=s0+Math.imul(I$,m)|0,I=I+Math.imul(I$,R$)|0,v=v+Math.imul(X$,P$)|0,s0=s0+Math.imul(X$,O)|0,s0=s0+Math.imul(w,P$)|0,I=I+Math.imul(w,O)|0,v=v+Math.imul(B,e)|0,s0=s0+Math.imul(B,M$)|0,s0=s0+Math.imul(U$,e)|0,I=I+Math.imul(U$,M$)|0,v=v+Math.imul(G$,S$)|0,s0=s0+Math.imul(G$,F)|0,s0=s0+Math.imul(x,S$)|0,I=I+Math.imul(x,F)|0;var y$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(y$>>>26)|0,y$&=67108863,v=Math.imul(O$,m),s0=Math.imul(O$,R$),s0=s0+Math.imul(c,m)|0,I=Math.imul(c,R$),v=v+Math.imul(p,P$)|0,s0=s0+Math.imul(p,O)|0,s0=s0+Math.imul(I$,P$)|0,I=I+Math.imul(I$,O)|0,v=v+Math.imul(X$,e)|0,s0=s0+Math.imul(X$,M$)|0,s0=s0+Math.imul(w,e)|0,I=I+Math.imul(w,M$)|0,v=v+Math.imul(B,S$)|0,s0=s0+Math.imul(B,F)|0,s0=s0+Math.imul(U$,S$)|0,I=I+Math.imul(U$,F)|0;var Z0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Z0>>>26)|0,Z0&=67108863,v=Math.imul(O$,P$),s0=Math.imul(O$,O),s0=s0+Math.imul(c,P$)|0,I=Math.imul(c,O),v=v+Math.imul(p,e)|0,s0=s0+Math.imul(p,M$)|0,s0=s0+Math.imul(I$,e)|0,I=I+Math.imul(I$,M$)|0,v=v+Math.imul(X$,S$)|0,s0=s0+Math.imul(X$,F)|0,s0=s0+Math.imul(w,S$)|0,I=I+Math.imul(w,F)|0;var w$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(w$>>>26)|0,w$&=67108863,v=Math.imul(O$,e),s0=Math.imul(O$,M$),s0=s0+Math.imul(c,e)|0,I=Math.imul(c,M$),v=v+Math.imul(p,S$)|0,s0=s0+Math.imul(p,F)|0,s0=s0+Math.imul(I$,S$)|0,I=I+Math.imul(I$,F)|0;var G0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(G0>>>26)|0,G0&=67108863,v=Math.imul(O$,S$),s0=Math.imul(O$,F),s0=s0+Math.imul(c,S$)|0,I=Math.imul(c,F);var p$=(n0+v|0)+((s0&8191)<<13)|0;return n0=(I+(s0>>>13)|0)+(p$>>>26)|0,p$&=67108863,S[0]=v$,S[1]=r,S[2]=q$,S[3]=i,S[4]=j$,S[5]=k$,S[6]=g$,S[7]=_$,S[8]=N$,S[9]=$0,S[10]=x$,S[11]=Q0,S[12]=B$,S[13]=Y0,S[14]=y$,S[15]=Z0,S[16]=w$,S[17]=G0,S[18]=p$,n0!==0&&(S[19]=n0,o0.length++),o0};Math.imul||(p0=E);function T(l0,z,o0){o0.negative=z.negative^l0.negative,o0.length=l0.length+z.length;for(var M=0,u0=0,S=0;S>>26)|0,u0+=n0>>>26,n0&=67108863}o0.words[S]=v,M=n0,n0=u0}return M!==0?o0.words[S]=M:o0.length--,o0.strip()}function f0(l0,z,o0){var M=new D;return M.mulp(l0,z,o0)}Z.prototype.mulTo=function(l0,z){var o0,M=this.length+l0.length;return this.length===10&&l0.length===10?o0=p0(this,l0,z):M<63?o0=E(this,l0,z):M<1024?o0=T(this,l0,z):o0=f0(this,l0,z),o0};function D(l0,z){this.x=l0,this.y=z}D.prototype.makeRBT=function(l0){for(var z=new Array(l0),o0=Z.prototype._countBits(l0)-1,M=0;M>=1;return M},D.prototype.permute=function(l0,z,o0,M,u0,S){for(var n0=0;n0>>1)u0++;return 1<>>13,o0[2*S+1]=u0&8191,u0=u0>>>13;for(S=2*z;S>=26,z+=M/67108864|0,z+=u0>>>26,this.words[o0]=u0&67108863}return z!==0&&(this.words[o0]=z,this.length++),this},Z.prototype.muln=function(l0){return this.clone().imuln(l0)},Z.prototype.sqr=function(){return this.mul(this)},Z.prototype.isqr=function(){return this.imul(this.clone())},Z.prototype.pow=function(l0){var z=w0(l0);if(z.length===0)return new Z(1);for(var o0=this,M=0;M=0);var z=l0%26,o0=(l0-z)/26,M=67108863>>>26-z<<26-z,u0;if(z!==0){var S=0;for(u0=0;u0>>26-z}S&&(this.words[u0]=S,this.length++)}if(o0!==0){for(u0=this.length-1;u0>=0;u0--)this.words[u0+o0]=this.words[u0];for(u0=0;u0=0);var M;z?M=(z-z%26)/26:M=0;var u0=l0%26,S=Math.min((l0-u0)/26,this.length),n0=67108863^67108863>>>u0<S)for(this.length-=S,s0=0;s0=0&&(I!==0||s0>=M);s0--){var t0=this.words[s0]|0;this.words[s0]=I<<26-u0|t0>>>u0,I=t0&n0}return v&&I!==0&&(v.words[v.length++]=I),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},Z.prototype.ishrn=function(l0,z,o0){return Y(this.negative===0),this.iushrn(l0,z,o0)},Z.prototype.shln=function(l0){return this.clone().ishln(l0)},Z.prototype.ushln=function(l0){return this.clone().iushln(l0)},Z.prototype.shrn=function(l0){return this.clone().ishrn(l0)},Z.prototype.ushrn=function(l0){return this.clone().iushrn(l0)},Z.prototype.testn=function(l0){Y(typeof l0=="number"&&l0>=0);var z=l0%26,o0=(l0-z)/26,M=1<=0);var z=l0%26,o0=(l0-z)/26;if(Y(this.negative===0,"imaskn works only with positive numbers"),this.length<=o0)return this;if(z!==0&&o0++,this.length=Math.min(o0,this.length),z!==0){var M=67108863^67108863>>>z<=67108864;z++)this.words[z]-=67108864,z===this.length-1?this.words[z+1]=1:this.words[z+1]++;return this.length=Math.max(this.length,z+1),this},Z.prototype.isubn=function(l0){if(Y(typeof l0=="number"),Y(l0<67108864),l0<0)return this.iaddn(-l0);if(this.negative!==0)return this.negative=0,this.iaddn(l0),this.negative=1,this;if(this.words[0]-=l0,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var z=0;z>26)-(v/67108864|0),this.words[u0+o0]=S&67108863}for(;u0>26,this.words[u0+o0]=S&67108863;if(n0===0)return this.strip();for(Y(n0===-1),n0=0,u0=0;u0>26,this.words[u0]=S&67108863;return this.negative=1,this.strip()},Z.prototype._wordDiv=function(l0,z){var o0=this.length-l0.length,M=this.clone(),u0=l0,S=u0.words[u0.length-1]|0,n0=this._countBits(S);o0=26-n0,o0!==0&&(u0=u0.ushln(o0),M.iushln(o0),S=u0.words[u0.length-1]|0);var v=M.length-u0.length,s0;if(z!=="mod"){s0=new Z(null),s0.length=v+1,s0.words=new Array(s0.length);for(var I=0;I=0;m0--){var a0=(M.words[u0.length+m0]|0)*67108864+(M.words[u0.length+m0-1]|0);for(a0=Math.min(a0/S|0,67108863),M._ishlnsubmul(u0,a0,m0);M.negative!==0;)a0--,M.negative=0,M._ishlnsubmul(u0,1,m0),M.isZero()||(M.negative^=1);s0&&(s0.words[m0]=a0)}return s0&&s0.strip(),M.strip(),z!=="div"&&o0!==0&&M.iushrn(o0),{div:s0||null,mod:M}},Z.prototype.divmod=function(l0,z,o0){if(Y(!l0.isZero()),this.isZero())return{div:new Z(0),mod:new Z(0)};var M,u0,S;return this.negative!==0&&l0.negative===0?(S=this.neg().divmod(l0,z),z!=="mod"&&(M=S.div.neg()),z!=="div"&&(u0=S.mod.neg(),o0&&u0.negative!==0&&u0.iadd(l0)),{div:M,mod:u0}):this.negative===0&&l0.negative!==0?(S=this.divmod(l0.neg(),z),z!=="mod"&&(M=S.div.neg()),{div:M,mod:S.mod}):(this.negative&l0.negative)!==0?(S=this.neg().divmod(l0.neg(),z),z!=="div"&&(u0=S.mod.neg(),o0&&u0.negative!==0&&u0.isub(l0)),{div:S.div,mod:u0}):l0.length>this.length||this.cmp(l0)<0?{div:new Z(0),mod:this}:l0.length===1?z==="div"?{div:this.divn(l0.words[0]),mod:null}:z==="mod"?{div:null,mod:new Z(this.modn(l0.words[0]))}:{div:this.divn(l0.words[0]),mod:new Z(this.modn(l0.words[0]))}:this._wordDiv(l0,z)},Z.prototype.div=function(l0){return this.divmod(l0,"div",!1).div},Z.prototype.mod=function(l0){return this.divmod(l0,"mod",!1).mod},Z.prototype.umod=function(l0){return this.divmod(l0,"mod",!0).mod},Z.prototype.divRound=function(l0){var z=this.divmod(l0);if(z.mod.isZero())return z.div;var o0=z.div.negative!==0?z.mod.isub(l0):z.mod,M=l0.ushrn(1),u0=l0.andln(1),S=o0.cmp(M);return S<0||u0===1&&S===0?z.div:z.div.negative!==0?z.div.isubn(1):z.div.iaddn(1)},Z.prototype.modn=function(l0){Y(l0<=67108863);for(var z=(1<<26)%l0,o0=0,M=this.length-1;M>=0;M--)o0=(z*o0+(this.words[M]|0))%l0;return o0},Z.prototype.idivn=function(l0){Y(l0<=67108863);for(var z=0,o0=this.length-1;o0>=0;o0--){var M=(this.words[o0]|0)+z*67108864;this.words[o0]=M/l0|0,z=M%l0}return this.strip()},Z.prototype.divn=function(l0){return this.clone().idivn(l0)},Z.prototype.egcd=function(l0){Y(l0.negative===0),Y(!l0.isZero());var z=this,o0=l0.clone();z.negative!==0?z=z.umod(l0):z=z.clone();for(var M=new Z(1),u0=new Z(0),S=new Z(0),n0=new Z(1),v=0;z.isEven()&&o0.isEven();)z.iushrn(1),o0.iushrn(1),++v;for(var s0=o0.clone(),I=z.clone();!z.isZero();){for(var t0=0,m0=1;(z.words[0]&m0)===0&&t0<26;++t0,m0<<=1);if(t0>0)for(z.iushrn(t0);t0-- >0;)(M.isOdd()||u0.isOdd())&&(M.iadd(s0),u0.isub(I)),M.iushrn(1),u0.iushrn(1);for(var a0=0,q=1;(o0.words[0]&q)===0&&a0<26;++a0,q<<=1);if(a0>0)for(o0.iushrn(a0);a0-- >0;)(S.isOdd()||n0.isOdd())&&(S.iadd(s0),n0.isub(I)),S.iushrn(1),n0.iushrn(1);z.cmp(o0)>=0?(z.isub(o0),M.isub(S),u0.isub(n0)):(o0.isub(z),S.isub(M),n0.isub(u0))}return{a:S,b:n0,gcd:o0.iushln(v)}},Z.prototype._invmp=function(l0){Y(l0.negative===0),Y(!l0.isZero());var z=this,o0=l0.clone();z.negative!==0?z=z.umod(l0):z=z.clone();for(var M=new Z(1),u0=new Z(0),S=o0.clone();z.cmpn(1)>0&&o0.cmpn(1)>0;){for(var n0=0,v=1;(z.words[0]&v)===0&&n0<26;++n0,v<<=1);if(n0>0)for(z.iushrn(n0);n0-- >0;)M.isOdd()&&M.iadd(S),M.iushrn(1);for(var s0=0,I=1;(o0.words[0]&I)===0&&s0<26;++s0,I<<=1);if(s0>0)for(o0.iushrn(s0);s0-- >0;)u0.isOdd()&&u0.iadd(S),u0.iushrn(1);z.cmp(o0)>=0?(z.isub(o0),M.isub(u0)):(o0.isub(z),u0.isub(M))}var t0;return z.cmpn(1)===0?t0=M:t0=u0,t0.cmpn(0)<0&&t0.iadd(l0),t0},Z.prototype.gcd=function(l0){if(this.isZero())return l0.abs();if(l0.isZero())return this.abs();var z=this.clone(),o0=l0.clone();z.negative=0,o0.negative=0;for(var M=0;z.isEven()&&o0.isEven();M++)z.iushrn(1),o0.iushrn(1);do{for(;z.isEven();)z.iushrn(1);for(;o0.isEven();)o0.iushrn(1);var u0=z.cmp(o0);if(u0<0){var S=z;z=o0,o0=S}else if(u0===0||o0.cmpn(1)===0)break;z.isub(o0)}while(!0);return o0.iushln(M)},Z.prototype.invm=function(l0){return this.egcd(l0).a.umod(l0)},Z.prototype.isEven=function(){return(this.words[0]&1)===0},Z.prototype.isOdd=function(){return(this.words[0]&1)===1},Z.prototype.andln=function(l0){return this.words[0]&l0},Z.prototype.bincn=function(l0){Y(typeof l0=="number");var z=l0%26,o0=(l0-z)/26,M=1<>>26,n0&=67108863,this.words[S]=n0}return u0!==0&&(this.words[S]=u0,this.length++),this},Z.prototype.isZero=function(){return this.length===1&&this.words[0]===0},Z.prototype.cmpn=function(l0){var z=l0<0;if(this.negative!==0&&!z)return-1;if(this.negative===0&&z)return 1;this.strip();var o0;if(this.length>1)o0=1;else{z&&(l0=-l0),Y(l0<=67108863,"Number is too big");var M=this.words[0]|0;o0=M===l0?0:Ml0.length)return 1;if(this.length=0;o0--){var M=this.words[o0]|0,u0=l0.words[o0]|0;if(M!==u0){Mu0&&(z=1);break}}return z},Z.prototype.gtn=function(l0){return this.cmpn(l0)===1},Z.prototype.gt=function(l0){return this.cmp(l0)===1},Z.prototype.gten=function(l0){return this.cmpn(l0)>=0},Z.prototype.gte=function(l0){return this.cmp(l0)>=0},Z.prototype.ltn=function(l0){return this.cmpn(l0)===-1},Z.prototype.lt=function(l0){return this.cmp(l0)===-1},Z.prototype.lten=function(l0){return this.cmpn(l0)<=0},Z.prototype.lte=function(l0){return this.cmp(l0)<=0},Z.prototype.eqn=function(l0){return this.cmpn(l0)===0},Z.prototype.eq=function(l0){return this.cmp(l0)===0},Z.red=function(l0){return new b0(l0)},Z.prototype.toRed=function(l0){return Y(!this.red,"Already a number in reduction context"),Y(this.negative===0,"red works only with positives"),l0.convertTo(this)._forceRed(l0)},Z.prototype.fromRed=function(){return Y(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},Z.prototype._forceRed=function(l0){return this.red=l0,this},Z.prototype.forceRed=function(l0){return Y(!this.red,"Already a number in reduction context"),this._forceRed(l0)},Z.prototype.redAdd=function(l0){return Y(this.red,"redAdd works only with red numbers"),this.red.add(this,l0)},Z.prototype.redIAdd=function(l0){return Y(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,l0)},Z.prototype.redSub=function(l0){return Y(this.red,"redSub works only with red numbers"),this.red.sub(this,l0)},Z.prototype.redISub=function(l0){return Y(this.red,"redISub works only with red numbers"),this.red.isub(this,l0)},Z.prototype.redShl=function(l0){return Y(this.red,"redShl works only with red numbers"),this.red.shl(this,l0)},Z.prototype.redMul=function(l0){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,l0),this.red.mul(this,l0)},Z.prototype.redIMul=function(l0){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,l0),this.red.imul(this,l0)},Z.prototype.redSqr=function(){return Y(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},Z.prototype.redISqr=function(){return Y(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},Z.prototype.redSqrt=function(){return Y(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},Z.prototype.redInvm=function(){return Y(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},Z.prototype.redNeg=function(){return Y(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},Z.prototype.redPow=function(l0){return Y(this.red&&!l0.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,l0)};var c0={k256:null,p224:null,p192:null,p25519:null};function C(l0,z){this.name=l0,this.p=new Z(z,16),this.n=this.p.bitLength(),this.k=new Z(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}C.prototype._tmp=function(){var l0=new Z(null);return l0.words=new Array(Math.ceil(this.n/13)),l0},C.prototype.ireduce=function(l0){var z=l0,o0;do this.split(z,this.tmp),z=this.imulK(z),z=z.iadd(this.tmp),o0=z.bitLength();while(o0>this.n);var M=o00?z.isub(this.p):z.strip!==void 0?z.strip():z._strip(),z},C.prototype.split=function(l0,z){l0.iushrn(this.n,0,z)},C.prototype.imulK=function(l0){return l0.imul(this.k)};function h0(){C.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}$(h0,C),h0.prototype.split=function(l0,z){for(var o0=4194303,M=Math.min(l0.length,9),u0=0;u0>>22,S=n0}S>>>=22,l0.words[u0-10]=S,S===0&&l0.length>10?l0.length-=10:l0.length-=9},h0.prototype.imulK=function(l0){l0.words[l0.length]=0,l0.words[l0.length+1]=0,l0.length+=2;for(var z=0,o0=0;o0>>=26,l0.words[o0]=u0,z=M}return z!==0&&(l0.words[l0.length++]=z),l0},Z._prime=function(l0){if(c0[l0])return c0[l0];var z;if(l0==="k256")z=new h0;else if(l0==="p224")z=new L;else if(l0==="p192")z=new d0;else if(l0==="p25519")z=new R;else throw new Error("Unknown prime "+l0);return c0[l0]=z,z};function b0(l0){if(typeof l0=="string"){var z=Z._prime(l0);this.m=z.p,this.prime=z}else Y(l0.gtn(1),"modulus must be greater than 1"),this.m=l0,this.prime=null}b0.prototype._verify1=function(l0){Y(l0.negative===0,"red works only with positives"),Y(l0.red,"red works only with red numbers")},b0.prototype._verify2=function(l0,z){Y((l0.negative|z.negative)===0,"red works only with positives"),Y(l0.red&&l0.red===z.red,"red works only with red numbers")},b0.prototype.imod=function(l0){return this.prime?this.prime.ireduce(l0)._forceRed(this):l0.umod(this.m)._forceRed(this)},b0.prototype.neg=function(l0){return l0.isZero()?l0.clone():this.m.sub(l0)._forceRed(this)},b0.prototype.add=function(l0,z){this._verify2(l0,z);var o0=l0.add(z);return o0.cmp(this.m)>=0&&o0.isub(this.m),o0._forceRed(this)},b0.prototype.iadd=function(l0,z){this._verify2(l0,z);var o0=l0.iadd(z);return o0.cmp(this.m)>=0&&o0.isub(this.m),o0},b0.prototype.sub=function(l0,z){this._verify2(l0,z);var o0=l0.sub(z);return o0.cmpn(0)<0&&o0.iadd(this.m),o0._forceRed(this)},b0.prototype.isub=function(l0,z){this._verify2(l0,z);var o0=l0.isub(z);return o0.cmpn(0)<0&&o0.iadd(this.m),o0},b0.prototype.shl=function(l0,z){return this._verify1(l0),this.imod(l0.ushln(z))},b0.prototype.imul=function(l0,z){return this._verify2(l0,z),this.imod(l0.imul(z))},b0.prototype.mul=function(l0,z){return this._verify2(l0,z),this.imod(l0.mul(z))},b0.prototype.isqr=function(l0){return this.imul(l0,l0.clone())},b0.prototype.sqr=function(l0){return this.mul(l0,l0)},b0.prototype.sqrt=function(l0){if(l0.isZero())return l0.clone();var z=this.m.andln(3);if(Y(z%2===1),z===3){var o0=this.m.add(new Z(1)).iushrn(2);return this.pow(l0,o0)}for(var M=this.m.subn(1),u0=0;!M.isZero()&&M.andln(1)===0;)u0++,M.iushrn(1);Y(!M.isZero());var S=new Z(1).toRed(this),n0=S.redNeg(),v=this.m.subn(1).iushrn(1),s0=this.m.bitLength();for(s0=new Z(2*s0*s0).toRed(this);this.pow(s0,v).cmp(n0)!==0;)s0.redIAdd(n0);for(var I=this.pow(s0,M),t0=this.pow(l0,M.addn(1).iushrn(1)),m0=this.pow(l0,M),a0=u0;m0.cmp(S)!==0;){for(var q=m0,e0=0;q.cmp(S)!==0;e0++)q=q.redSqr();Y(e0=0;u0--){for(var I=z.words[u0],t0=s0-1;t0>=0;t0--){var m0=I>>t0&1;if(S!==M[0]&&(S=this.sqr(S)),m0===0&&n0===0){v=0;continue}n0<<=1,n0|=m0,v++,!(v!==o0&&(u0!==0||t0!==0))&&(S=this.mul(S,M[n0]),v=0,n0=0)}s0=26}return S},b0.prototype.convertTo=function(l0){var z=l0.umod(this.m);return z===l0?z.clone():z},b0.prototype.convertFrom=function(l0){var z=l0.clone();return z.red=null,z},Z.mont=function(l0){return new P(l0)};function P(l0){b0.call(this,l0),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new Z(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}$(P,b0),P.prototype.convertTo=function(l0){return this.imod(l0.ushln(this.shift))},P.prototype.convertFrom=function(l0){var z=this.imod(l0.mul(this.rinv));return z.red=null,z},P.prototype.imul=function(l0,z){if(l0.isZero()||z.isZero())return l0.words[0]=0,l0.length=1,l0;var o0=l0.imul(z),M=o0.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u0=o0.isub(M).iushrn(this.shift),S=u0;return u0.cmp(this.m)>=0?S=u0.isub(this.m):u0.cmpn(0)<0&&(S=u0.iadd(this.m)),S._forceRed(this)},P.prototype.mul=function(l0,z){if(l0.isZero()||z.isZero())return new Z(0)._forceRed(this);var o0=l0.mul(z),M=o0.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u0=o0.isub(M).iushrn(this.shift),S=u0;return u0.cmp(this.m)>=0?S=u0.isub(this.m):u0.cmpn(0)<0&&(S=u0.iadd(this.m)),S._forceRed(this)},P.prototype.invm=function(l0){var z=this.imod(l0._invmp(this.m).mul(this.r2));return z._forceRed(this)}})(typeof K>"u"||K,X)}}),lY=$Q({"node_modules/create-ecdh/browser.js"(X,K){var x0=TY(),G=bY();K.exports=function(Q){return new $(Q)};var Y={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};Y.p224=Y.secp224r1,Y.p256=Y.secp256r1=Y.prime256v1,Y.p192=Y.secp192r1=Y.prime192v1,Y.p384=Y.secp384r1,Y.p521=Y.secp521r1;function $(Q){this.curveType=Y[Q],this.curveType||(this.curveType={name:Q}),this.curve=new x0.ec(this.curveType.name),this.keys=void 0}$.prototype.generateKeys=function(Q,U){return this.keys=this.curve.genKeyPair(),this.getPublicKey(Q,U)},$.prototype.computeSecret=function(Q,U,V){U=U||"utf8",c$.isBuffer(Q)||(Q=new c$(Q,U));var B0=this.curve.keyFromPublic(Q).getPublic(),H=B0.mul(this.keys.getPrivate()).getX();return Z(H,V,this.curveType.byteLength)},$.prototype.getPublicKey=function(Q,U){var V=this.keys.getPublic(U==="compressed",!0);return U==="hybrid"&&(V[V.length-1]%2?V[0]=7:V[0]=6),Z(V,Q)},$.prototype.getPrivateKey=function(Q){return Z(this.keys.getPrivate(),Q)},$.prototype.setPublicKey=function(Q,U){return U=U||"utf8",c$.isBuffer(Q)||(Q=new c$(Q,U)),this.keys._importPublic(Q),this},$.prototype.setPrivateKey=function(Q,U){U=U||"utf8",c$.isBuffer(Q)||(Q=new c$(Q,U));var V=new G(Q);return V=V.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(V),this};function Z(Q,U,V){Array.isArray(Q)||(Q=Q.toArray());var B0=new c$(Q);if(V&&B0.length0?l0:z},Z.min=function(l0,z){return l0.cmp(z)<0?l0:z},Z.prototype._init=function(l0,z,o0){if(typeof l0=="number")return this._initNumber(l0,z,o0);if(typeof l0=="object")return this._initArray(l0,z,o0);z==="hex"&&(z=16),Y(z===(z|0)&&z>=2&&z<=36),l0=l0.toString().replace(/\s+/g,"");var M=0;l0[0]==="-"&&(M++,this.negative=1),M=0;M-=3)S=l0[M]|l0[M-1]<<8|l0[M-2]<<16,this.words[u0]|=S<>>26-n0&67108863,n0+=24,n0>=26&&(n0-=26,u0++);else if(o0==="le")for(M=0,u0=0;M>>26-n0&67108863,n0+=24,n0>=26&&(n0-=26,u0++);return this.strip()};function U(l0,z){var o0=l0.charCodeAt(z);return o0>=65&&o0<=70?o0-55:o0>=97&&o0<=102?o0-87:o0-48&15}function V(l0,z,o0){var M=U(l0,o0);return o0-1>=z&&(M|=U(l0,o0-1)<<4),M}Z.prototype._parseHex=function(l0,z,o0){this.length=Math.ceil((l0.length-z)/6),this.words=new Array(this.length);for(var M=0;M=z;M-=2)n0=V(l0,z,M)<=18?(u0-=18,S+=1,this.words[S]|=n0>>>26):u0+=8;else{var v=l0.length-z;for(M=v%2===0?z+1:z;M=18?(u0-=18,S+=1,this.words[S]|=n0>>>26):u0+=8}this.strip()};function B0(l0,z,o0,M){for(var u0=0,S=Math.min(l0.length,o0),n0=z;n0=49?u0+=v-49+10:v>=17?u0+=v-17+10:u0+=v}return u0}Z.prototype._parseBase=function(l0,z,o0){this.words=[0],this.length=1;for(var M=0,u0=1;u0<=67108863;u0*=z)M++;M--,u0=u0/z|0;for(var S=l0.length-o0,n0=S%M,v=Math.min(S,S-n0)+o0,s0=0,I=o0;I1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},Z.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},Z.prototype.inspect=function(){return(this.red?""};var H=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y0=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],W=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];Z.prototype.toString=function(l0,z){l0=l0||10,z=z|0||1;var o0;if(l0===16||l0==="hex"){o0="";for(var M=0,u0=0,S=0;S>>24-M&16777215,u0!==0||S!==this.length-1?o0=H[6-v.length]+v+o0:o0=v+o0,M+=2,M>=26&&(M-=26,S--)}for(u0!==0&&(o0=u0.toString(16)+o0);o0.length%z!==0;)o0="0"+o0;return this.negative!==0&&(o0="-"+o0),o0}if(l0===(l0|0)&&l0>=2&&l0<=36){var s0=y0[l0],I=W[l0];o0="";var t0=this.clone();for(t0.negative=0;!t0.isZero();){var m0=t0.modn(I).toString(l0);t0=t0.idivn(I),t0.isZero()?o0=m0+o0:o0=H[s0-m0.length]+m0+o0}for(this.isZero()&&(o0="0"+o0);o0.length%z!==0;)o0="0"+o0;return this.negative!==0&&(o0="-"+o0),o0}Y(!1,"Base should be between 2 and 36")},Z.prototype.toNumber=function(){var l0=this.words[0];return this.length===2?l0+=this.words[1]*67108864:this.length===3&&this.words[2]===1?l0+=4503599627370496+this.words[1]*67108864:this.length>2&&Y(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-l0:l0},Z.prototype.toJSON=function(){return this.toString(16)},Z.prototype.toBuffer=function(l0,z){return Y(typeof Q<"u"),this.toArrayLike(Q,l0,z)},Z.prototype.toArray=function(l0,z){return this.toArrayLike(Array,l0,z)},Z.prototype.toArrayLike=function(l0,z,o0){var M=this.byteLength(),u0=o0||Math.max(1,M);Y(M<=u0,"byte array longer than desired length"),Y(u0>0,"Requested array length <= 0"),this.strip();var S=z==="le",n0=new l0(u0),v,s0,I=this.clone();if(S){for(s0=0;!I.isZero();s0++)v=I.andln(255),I.iushrn(8),n0[s0]=v;for(;s0=4096&&(o0+=13,z>>>=13),z>=64&&(o0+=7,z>>>=7),z>=8&&(o0+=4,z>>>=4),z>=2&&(o0+=2,z>>>=2),o0+z},Z.prototype._zeroBits=function(l0){if(l0===0)return 26;var z=l0,o0=0;return(z&8191)===0&&(o0+=13,z>>>=13),(z&127)===0&&(o0+=7,z>>>=7),(z&15)===0&&(o0+=4,z>>>=4),(z&3)===0&&(o0+=2,z>>>=2),(z&1)===0&&o0++,o0},Z.prototype.bitLength=function(){var l0=this.words[this.length-1],z=this._countBits(l0);return(this.length-1)*26+z};function w0(l0){for(var z=new Array(l0.bitLength()),o0=0;o0>>u0}return z}Z.prototype.zeroBits=function(){if(this.isZero())return 0;for(var l0=0,z=0;zl0.length?this.clone().ior(l0):l0.clone().ior(this)},Z.prototype.uor=function(l0){return this.length>l0.length?this.clone().iuor(l0):l0.clone().iuor(this)},Z.prototype.iuand=function(l0){var z;this.length>l0.length?z=l0:z=this;for(var o0=0;o0l0.length?this.clone().iand(l0):l0.clone().iand(this)},Z.prototype.uand=function(l0){return this.length>l0.length?this.clone().iuand(l0):l0.clone().iuand(this)},Z.prototype.iuxor=function(l0){var z,o0;this.length>l0.length?(z=this,o0=l0):(z=l0,o0=this);for(var M=0;Ml0.length?this.clone().ixor(l0):l0.clone().ixor(this)},Z.prototype.uxor=function(l0){return this.length>l0.length?this.clone().iuxor(l0):l0.clone().iuxor(this)},Z.prototype.inotn=function(l0){Y(typeof l0=="number"&&l0>=0);var z=Math.ceil(l0/26)|0,o0=l0%26;this._expand(z),o0>0&&z--;for(var M=0;M0&&(this.words[M]=~this.words[M]&67108863>>26-o0),this.strip()},Z.prototype.notn=function(l0){return this.clone().inotn(l0)},Z.prototype.setn=function(l0,z){Y(typeof l0=="number"&&l0>=0);var o0=l0/26|0,M=l0%26;return this._expand(o0+1),z?this.words[o0]=this.words[o0]|1<l0.length?(o0=this,M=l0):(o0=l0,M=this);for(var u0=0,S=0;S>>26;for(;u0!==0&&S>>26;if(this.length=o0.length,u0!==0)this.words[this.length]=u0,this.length++;else if(o0!==this)for(;Sl0.length?this.clone().iadd(l0):l0.clone().iadd(this)},Z.prototype.isub=function(l0){if(l0.negative!==0){l0.negative=0;var z=this.iadd(l0);return l0.negative=1,z._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(l0),this.negative=1,this._normSign();var o0=this.cmp(l0);if(o0===0)return this.negative=0,this.length=1,this.words[0]=0,this;var M,u0;o0>0?(M=this,u0=l0):(M=l0,u0=this);for(var S=0,n0=0;n0>26,this.words[n0]=z&67108863;for(;S!==0&&n0>26,this.words[n0]=z&67108863;if(S===0&&n0>>26,m0=s0&67108863,a0=Math.min(I,z.length-1),q=Math.max(0,I-l0.length+1);q<=a0;q++){var e0=I-q|0;u0=l0.words[e0]|0,S=z.words[q]|0,n0=u0*S+m0,t0+=n0/67108864|0,m0=n0&67108863}o0.words[I]=m0|0,s0=t0|0}return s0!==0?o0.words[I]=s0|0:o0.length--,o0.strip()}var p0=function(l0,z,o0){var M=l0.words,u0=z.words,S=o0.words,n0=0,v,s0,I,t0=M[0]|0,m0=t0&8191,a0=t0>>>13,q=M[1]|0,e0=q&8191,r0=q>>>13,i0=M[2]|0,j=i0&8191,$$=i0>>>13,k=M[3]|0,Q$=k&8191,g=k>>>13,Y$=M[4]|0,_=Y$&8191,Z$=Y$>>>13,N=M[5]|0,G$=N&8191,x=N>>>13,V$=M[6]|0,B=V$&8191,U$=V$>>>13,y=M[7]|0,X$=y&8191,w=y>>>13,K$=M[8]|0,p=K$&8191,I$=K$>>>13,f=M[9]|0,O$=f&8191,c=f>>>13,J$=u0[0]|0,h=J$&8191,F$=J$>>>13,d=u0[1]|0,A$=d&8191,b=d>>>13,H$=u0[2]|0,l=H$&8191,W$=H$>>>13,o=u0[3]|0,E$=o&8191,u=o>>>13,T$=u0[4]|0,n=T$&8191,D$=T$>>>13,s=u0[5]|0,C$=s&8191,t=s>>>13,L$=u0[6]|0,m=L$&8191,R$=L$>>>13,a=u0[7]|0,P$=a&8191,O=a>>>13,z$=u0[8]|0,e=z$&8191,M$=z$>>>13,J=u0[9]|0,S$=J&8191,F=J>>>13;o0.negative=l0.negative^z.negative,o0.length=19,v=Math.imul(m0,h),s0=Math.imul(m0,F$),s0=s0+Math.imul(a0,h)|0,I=Math.imul(a0,F$);var v$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(v$>>>26)|0,v$&=67108863,v=Math.imul(e0,h),s0=Math.imul(e0,F$),s0=s0+Math.imul(r0,h)|0,I=Math.imul(r0,F$),v=v+Math.imul(m0,A$)|0,s0=s0+Math.imul(m0,b)|0,s0=s0+Math.imul(a0,A$)|0,I=I+Math.imul(a0,b)|0;var r=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(r>>>26)|0,r&=67108863,v=Math.imul(j,h),s0=Math.imul(j,F$),s0=s0+Math.imul($$,h)|0,I=Math.imul($$,F$),v=v+Math.imul(e0,A$)|0,s0=s0+Math.imul(e0,b)|0,s0=s0+Math.imul(r0,A$)|0,I=I+Math.imul(r0,b)|0,v=v+Math.imul(m0,l)|0,s0=s0+Math.imul(m0,W$)|0,s0=s0+Math.imul(a0,l)|0,I=I+Math.imul(a0,W$)|0;var q$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(q$>>>26)|0,q$&=67108863,v=Math.imul(Q$,h),s0=Math.imul(Q$,F$),s0=s0+Math.imul(g,h)|0,I=Math.imul(g,F$),v=v+Math.imul(j,A$)|0,s0=s0+Math.imul(j,b)|0,s0=s0+Math.imul($$,A$)|0,I=I+Math.imul($$,b)|0,v=v+Math.imul(e0,l)|0,s0=s0+Math.imul(e0,W$)|0,s0=s0+Math.imul(r0,l)|0,I=I+Math.imul(r0,W$)|0,v=v+Math.imul(m0,E$)|0,s0=s0+Math.imul(m0,u)|0,s0=s0+Math.imul(a0,E$)|0,I=I+Math.imul(a0,u)|0;var i=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(i>>>26)|0,i&=67108863,v=Math.imul(_,h),s0=Math.imul(_,F$),s0=s0+Math.imul(Z$,h)|0,I=Math.imul(Z$,F$),v=v+Math.imul(Q$,A$)|0,s0=s0+Math.imul(Q$,b)|0,s0=s0+Math.imul(g,A$)|0,I=I+Math.imul(g,b)|0,v=v+Math.imul(j,l)|0,s0=s0+Math.imul(j,W$)|0,s0=s0+Math.imul($$,l)|0,I=I+Math.imul($$,W$)|0,v=v+Math.imul(e0,E$)|0,s0=s0+Math.imul(e0,u)|0,s0=s0+Math.imul(r0,E$)|0,I=I+Math.imul(r0,u)|0,v=v+Math.imul(m0,n)|0,s0=s0+Math.imul(m0,D$)|0,s0=s0+Math.imul(a0,n)|0,I=I+Math.imul(a0,D$)|0;var j$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(j$>>>26)|0,j$&=67108863,v=Math.imul(G$,h),s0=Math.imul(G$,F$),s0=s0+Math.imul(x,h)|0,I=Math.imul(x,F$),v=v+Math.imul(_,A$)|0,s0=s0+Math.imul(_,b)|0,s0=s0+Math.imul(Z$,A$)|0,I=I+Math.imul(Z$,b)|0,v=v+Math.imul(Q$,l)|0,s0=s0+Math.imul(Q$,W$)|0,s0=s0+Math.imul(g,l)|0,I=I+Math.imul(g,W$)|0,v=v+Math.imul(j,E$)|0,s0=s0+Math.imul(j,u)|0,s0=s0+Math.imul($$,E$)|0,I=I+Math.imul($$,u)|0,v=v+Math.imul(e0,n)|0,s0=s0+Math.imul(e0,D$)|0,s0=s0+Math.imul(r0,n)|0,I=I+Math.imul(r0,D$)|0,v=v+Math.imul(m0,C$)|0,s0=s0+Math.imul(m0,t)|0,s0=s0+Math.imul(a0,C$)|0,I=I+Math.imul(a0,t)|0;var k$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(k$>>>26)|0,k$&=67108863,v=Math.imul(B,h),s0=Math.imul(B,F$),s0=s0+Math.imul(U$,h)|0,I=Math.imul(U$,F$),v=v+Math.imul(G$,A$)|0,s0=s0+Math.imul(G$,b)|0,s0=s0+Math.imul(x,A$)|0,I=I+Math.imul(x,b)|0,v=v+Math.imul(_,l)|0,s0=s0+Math.imul(_,W$)|0,s0=s0+Math.imul(Z$,l)|0,I=I+Math.imul(Z$,W$)|0,v=v+Math.imul(Q$,E$)|0,s0=s0+Math.imul(Q$,u)|0,s0=s0+Math.imul(g,E$)|0,I=I+Math.imul(g,u)|0,v=v+Math.imul(j,n)|0,s0=s0+Math.imul(j,D$)|0,s0=s0+Math.imul($$,n)|0,I=I+Math.imul($$,D$)|0,v=v+Math.imul(e0,C$)|0,s0=s0+Math.imul(e0,t)|0,s0=s0+Math.imul(r0,C$)|0,I=I+Math.imul(r0,t)|0,v=v+Math.imul(m0,m)|0,s0=s0+Math.imul(m0,R$)|0,s0=s0+Math.imul(a0,m)|0,I=I+Math.imul(a0,R$)|0;var g$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(g$>>>26)|0,g$&=67108863,v=Math.imul(X$,h),s0=Math.imul(X$,F$),s0=s0+Math.imul(w,h)|0,I=Math.imul(w,F$),v=v+Math.imul(B,A$)|0,s0=s0+Math.imul(B,b)|0,s0=s0+Math.imul(U$,A$)|0,I=I+Math.imul(U$,b)|0,v=v+Math.imul(G$,l)|0,s0=s0+Math.imul(G$,W$)|0,s0=s0+Math.imul(x,l)|0,I=I+Math.imul(x,W$)|0,v=v+Math.imul(_,E$)|0,s0=s0+Math.imul(_,u)|0,s0=s0+Math.imul(Z$,E$)|0,I=I+Math.imul(Z$,u)|0,v=v+Math.imul(Q$,n)|0,s0=s0+Math.imul(Q$,D$)|0,s0=s0+Math.imul(g,n)|0,I=I+Math.imul(g,D$)|0,v=v+Math.imul(j,C$)|0,s0=s0+Math.imul(j,t)|0,s0=s0+Math.imul($$,C$)|0,I=I+Math.imul($$,t)|0,v=v+Math.imul(e0,m)|0,s0=s0+Math.imul(e0,R$)|0,s0=s0+Math.imul(r0,m)|0,I=I+Math.imul(r0,R$)|0,v=v+Math.imul(m0,P$)|0,s0=s0+Math.imul(m0,O)|0,s0=s0+Math.imul(a0,P$)|0,I=I+Math.imul(a0,O)|0;var _$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(_$>>>26)|0,_$&=67108863,v=Math.imul(p,h),s0=Math.imul(p,F$),s0=s0+Math.imul(I$,h)|0,I=Math.imul(I$,F$),v=v+Math.imul(X$,A$)|0,s0=s0+Math.imul(X$,b)|0,s0=s0+Math.imul(w,A$)|0,I=I+Math.imul(w,b)|0,v=v+Math.imul(B,l)|0,s0=s0+Math.imul(B,W$)|0,s0=s0+Math.imul(U$,l)|0,I=I+Math.imul(U$,W$)|0,v=v+Math.imul(G$,E$)|0,s0=s0+Math.imul(G$,u)|0,s0=s0+Math.imul(x,E$)|0,I=I+Math.imul(x,u)|0,v=v+Math.imul(_,n)|0,s0=s0+Math.imul(_,D$)|0,s0=s0+Math.imul(Z$,n)|0,I=I+Math.imul(Z$,D$)|0,v=v+Math.imul(Q$,C$)|0,s0=s0+Math.imul(Q$,t)|0,s0=s0+Math.imul(g,C$)|0,I=I+Math.imul(g,t)|0,v=v+Math.imul(j,m)|0,s0=s0+Math.imul(j,R$)|0,s0=s0+Math.imul($$,m)|0,I=I+Math.imul($$,R$)|0,v=v+Math.imul(e0,P$)|0,s0=s0+Math.imul(e0,O)|0,s0=s0+Math.imul(r0,P$)|0,I=I+Math.imul(r0,O)|0,v=v+Math.imul(m0,e)|0,s0=s0+Math.imul(m0,M$)|0,s0=s0+Math.imul(a0,e)|0,I=I+Math.imul(a0,M$)|0;var N$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(N$>>>26)|0,N$&=67108863,v=Math.imul(O$,h),s0=Math.imul(O$,F$),s0=s0+Math.imul(c,h)|0,I=Math.imul(c,F$),v=v+Math.imul(p,A$)|0,s0=s0+Math.imul(p,b)|0,s0=s0+Math.imul(I$,A$)|0,I=I+Math.imul(I$,b)|0,v=v+Math.imul(X$,l)|0,s0=s0+Math.imul(X$,W$)|0,s0=s0+Math.imul(w,l)|0,I=I+Math.imul(w,W$)|0,v=v+Math.imul(B,E$)|0,s0=s0+Math.imul(B,u)|0,s0=s0+Math.imul(U$,E$)|0,I=I+Math.imul(U$,u)|0,v=v+Math.imul(G$,n)|0,s0=s0+Math.imul(G$,D$)|0,s0=s0+Math.imul(x,n)|0,I=I+Math.imul(x,D$)|0,v=v+Math.imul(_,C$)|0,s0=s0+Math.imul(_,t)|0,s0=s0+Math.imul(Z$,C$)|0,I=I+Math.imul(Z$,t)|0,v=v+Math.imul(Q$,m)|0,s0=s0+Math.imul(Q$,R$)|0,s0=s0+Math.imul(g,m)|0,I=I+Math.imul(g,R$)|0,v=v+Math.imul(j,P$)|0,s0=s0+Math.imul(j,O)|0,s0=s0+Math.imul($$,P$)|0,I=I+Math.imul($$,O)|0,v=v+Math.imul(e0,e)|0,s0=s0+Math.imul(e0,M$)|0,s0=s0+Math.imul(r0,e)|0,I=I+Math.imul(r0,M$)|0,v=v+Math.imul(m0,S$)|0,s0=s0+Math.imul(m0,F)|0,s0=s0+Math.imul(a0,S$)|0,I=I+Math.imul(a0,F)|0;var $0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+($0>>>26)|0,$0&=67108863,v=Math.imul(O$,A$),s0=Math.imul(O$,b),s0=s0+Math.imul(c,A$)|0,I=Math.imul(c,b),v=v+Math.imul(p,l)|0,s0=s0+Math.imul(p,W$)|0,s0=s0+Math.imul(I$,l)|0,I=I+Math.imul(I$,W$)|0,v=v+Math.imul(X$,E$)|0,s0=s0+Math.imul(X$,u)|0,s0=s0+Math.imul(w,E$)|0,I=I+Math.imul(w,u)|0,v=v+Math.imul(B,n)|0,s0=s0+Math.imul(B,D$)|0,s0=s0+Math.imul(U$,n)|0,I=I+Math.imul(U$,D$)|0,v=v+Math.imul(G$,C$)|0,s0=s0+Math.imul(G$,t)|0,s0=s0+Math.imul(x,C$)|0,I=I+Math.imul(x,t)|0,v=v+Math.imul(_,m)|0,s0=s0+Math.imul(_,R$)|0,s0=s0+Math.imul(Z$,m)|0,I=I+Math.imul(Z$,R$)|0,v=v+Math.imul(Q$,P$)|0,s0=s0+Math.imul(Q$,O)|0,s0=s0+Math.imul(g,P$)|0,I=I+Math.imul(g,O)|0,v=v+Math.imul(j,e)|0,s0=s0+Math.imul(j,M$)|0,s0=s0+Math.imul($$,e)|0,I=I+Math.imul($$,M$)|0,v=v+Math.imul(e0,S$)|0,s0=s0+Math.imul(e0,F)|0,s0=s0+Math.imul(r0,S$)|0,I=I+Math.imul(r0,F)|0;var x$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(x$>>>26)|0,x$&=67108863,v=Math.imul(O$,l),s0=Math.imul(O$,W$),s0=s0+Math.imul(c,l)|0,I=Math.imul(c,W$),v=v+Math.imul(p,E$)|0,s0=s0+Math.imul(p,u)|0,s0=s0+Math.imul(I$,E$)|0,I=I+Math.imul(I$,u)|0,v=v+Math.imul(X$,n)|0,s0=s0+Math.imul(X$,D$)|0,s0=s0+Math.imul(w,n)|0,I=I+Math.imul(w,D$)|0,v=v+Math.imul(B,C$)|0,s0=s0+Math.imul(B,t)|0,s0=s0+Math.imul(U$,C$)|0,I=I+Math.imul(U$,t)|0,v=v+Math.imul(G$,m)|0,s0=s0+Math.imul(G$,R$)|0,s0=s0+Math.imul(x,m)|0,I=I+Math.imul(x,R$)|0,v=v+Math.imul(_,P$)|0,s0=s0+Math.imul(_,O)|0,s0=s0+Math.imul(Z$,P$)|0,I=I+Math.imul(Z$,O)|0,v=v+Math.imul(Q$,e)|0,s0=s0+Math.imul(Q$,M$)|0,s0=s0+Math.imul(g,e)|0,I=I+Math.imul(g,M$)|0,v=v+Math.imul(j,S$)|0,s0=s0+Math.imul(j,F)|0,s0=s0+Math.imul($$,S$)|0,I=I+Math.imul($$,F)|0;var Q0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Q0>>>26)|0,Q0&=67108863,v=Math.imul(O$,E$),s0=Math.imul(O$,u),s0=s0+Math.imul(c,E$)|0,I=Math.imul(c,u),v=v+Math.imul(p,n)|0,s0=s0+Math.imul(p,D$)|0,s0=s0+Math.imul(I$,n)|0,I=I+Math.imul(I$,D$)|0,v=v+Math.imul(X$,C$)|0,s0=s0+Math.imul(X$,t)|0,s0=s0+Math.imul(w,C$)|0,I=I+Math.imul(w,t)|0,v=v+Math.imul(B,m)|0,s0=s0+Math.imul(B,R$)|0,s0=s0+Math.imul(U$,m)|0,I=I+Math.imul(U$,R$)|0,v=v+Math.imul(G$,P$)|0,s0=s0+Math.imul(G$,O)|0,s0=s0+Math.imul(x,P$)|0,I=I+Math.imul(x,O)|0,v=v+Math.imul(_,e)|0,s0=s0+Math.imul(_,M$)|0,s0=s0+Math.imul(Z$,e)|0,I=I+Math.imul(Z$,M$)|0,v=v+Math.imul(Q$,S$)|0,s0=s0+Math.imul(Q$,F)|0,s0=s0+Math.imul(g,S$)|0,I=I+Math.imul(g,F)|0;var B$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(B$>>>26)|0,B$&=67108863,v=Math.imul(O$,n),s0=Math.imul(O$,D$),s0=s0+Math.imul(c,n)|0,I=Math.imul(c,D$),v=v+Math.imul(p,C$)|0,s0=s0+Math.imul(p,t)|0,s0=s0+Math.imul(I$,C$)|0,I=I+Math.imul(I$,t)|0,v=v+Math.imul(X$,m)|0,s0=s0+Math.imul(X$,R$)|0,s0=s0+Math.imul(w,m)|0,I=I+Math.imul(w,R$)|0,v=v+Math.imul(B,P$)|0,s0=s0+Math.imul(B,O)|0,s0=s0+Math.imul(U$,P$)|0,I=I+Math.imul(U$,O)|0,v=v+Math.imul(G$,e)|0,s0=s0+Math.imul(G$,M$)|0,s0=s0+Math.imul(x,e)|0,I=I+Math.imul(x,M$)|0,v=v+Math.imul(_,S$)|0,s0=s0+Math.imul(_,F)|0,s0=s0+Math.imul(Z$,S$)|0,I=I+Math.imul(Z$,F)|0;var Y0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Y0>>>26)|0,Y0&=67108863,v=Math.imul(O$,C$),s0=Math.imul(O$,t),s0=s0+Math.imul(c,C$)|0,I=Math.imul(c,t),v=v+Math.imul(p,m)|0,s0=s0+Math.imul(p,R$)|0,s0=s0+Math.imul(I$,m)|0,I=I+Math.imul(I$,R$)|0,v=v+Math.imul(X$,P$)|0,s0=s0+Math.imul(X$,O)|0,s0=s0+Math.imul(w,P$)|0,I=I+Math.imul(w,O)|0,v=v+Math.imul(B,e)|0,s0=s0+Math.imul(B,M$)|0,s0=s0+Math.imul(U$,e)|0,I=I+Math.imul(U$,M$)|0,v=v+Math.imul(G$,S$)|0,s0=s0+Math.imul(G$,F)|0,s0=s0+Math.imul(x,S$)|0,I=I+Math.imul(x,F)|0;var y$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(y$>>>26)|0,y$&=67108863,v=Math.imul(O$,m),s0=Math.imul(O$,R$),s0=s0+Math.imul(c,m)|0,I=Math.imul(c,R$),v=v+Math.imul(p,P$)|0,s0=s0+Math.imul(p,O)|0,s0=s0+Math.imul(I$,P$)|0,I=I+Math.imul(I$,O)|0,v=v+Math.imul(X$,e)|0,s0=s0+Math.imul(X$,M$)|0,s0=s0+Math.imul(w,e)|0,I=I+Math.imul(w,M$)|0,v=v+Math.imul(B,S$)|0,s0=s0+Math.imul(B,F)|0,s0=s0+Math.imul(U$,S$)|0,I=I+Math.imul(U$,F)|0;var Z0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(Z0>>>26)|0,Z0&=67108863,v=Math.imul(O$,P$),s0=Math.imul(O$,O),s0=s0+Math.imul(c,P$)|0,I=Math.imul(c,O),v=v+Math.imul(p,e)|0,s0=s0+Math.imul(p,M$)|0,s0=s0+Math.imul(I$,e)|0,I=I+Math.imul(I$,M$)|0,v=v+Math.imul(X$,S$)|0,s0=s0+Math.imul(X$,F)|0,s0=s0+Math.imul(w,S$)|0,I=I+Math.imul(w,F)|0;var w$=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(w$>>>26)|0,w$&=67108863,v=Math.imul(O$,e),s0=Math.imul(O$,M$),s0=s0+Math.imul(c,e)|0,I=Math.imul(c,M$),v=v+Math.imul(p,S$)|0,s0=s0+Math.imul(p,F)|0,s0=s0+Math.imul(I$,S$)|0,I=I+Math.imul(I$,F)|0;var G0=(n0+v|0)+((s0&8191)<<13)|0;n0=(I+(s0>>>13)|0)+(G0>>>26)|0,G0&=67108863,v=Math.imul(O$,S$),s0=Math.imul(O$,F),s0=s0+Math.imul(c,S$)|0,I=Math.imul(c,F);var p$=(n0+v|0)+((s0&8191)<<13)|0;return n0=(I+(s0>>>13)|0)+(p$>>>26)|0,p$&=67108863,S[0]=v$,S[1]=r,S[2]=q$,S[3]=i,S[4]=j$,S[5]=k$,S[6]=g$,S[7]=_$,S[8]=N$,S[9]=$0,S[10]=x$,S[11]=Q0,S[12]=B$,S[13]=Y0,S[14]=y$,S[15]=Z0,S[16]=w$,S[17]=G0,S[18]=p$,n0!==0&&(S[19]=n0,o0.length++),o0};Math.imul||(p0=E);function T(l0,z,o0){o0.negative=z.negative^l0.negative,o0.length=l0.length+z.length;for(var M=0,u0=0,S=0;S>>26)|0,u0+=n0>>>26,n0&=67108863}o0.words[S]=v,M=n0,n0=u0}return M!==0?o0.words[S]=M:o0.length--,o0.strip()}function f0(l0,z,o0){var M=new D;return M.mulp(l0,z,o0)}Z.prototype.mulTo=function(l0,z){var o0,M=this.length+l0.length;return this.length===10&&l0.length===10?o0=p0(this,l0,z):M<63?o0=E(this,l0,z):M<1024?o0=T(this,l0,z):o0=f0(this,l0,z),o0};function D(l0,z){this.x=l0,this.y=z}D.prototype.makeRBT=function(l0){for(var z=new Array(l0),o0=Z.prototype._countBits(l0)-1,M=0;M>=1;return M},D.prototype.permute=function(l0,z,o0,M,u0,S){for(var n0=0;n0>>1)u0++;return 1<>>13,o0[2*S+1]=u0&8191,u0=u0>>>13;for(S=2*z;S>=26,z+=M/67108864|0,z+=u0>>>26,this.words[o0]=u0&67108863}return z!==0&&(this.words[o0]=z,this.length++),this},Z.prototype.muln=function(l0){return this.clone().imuln(l0)},Z.prototype.sqr=function(){return this.mul(this)},Z.prototype.isqr=function(){return this.imul(this.clone())},Z.prototype.pow=function(l0){var z=w0(l0);if(z.length===0)return new Z(1);for(var o0=this,M=0;M=0);var z=l0%26,o0=(l0-z)/26,M=67108863>>>26-z<<26-z,u0;if(z!==0){var S=0;for(u0=0;u0>>26-z}S&&(this.words[u0]=S,this.length++)}if(o0!==0){for(u0=this.length-1;u0>=0;u0--)this.words[u0+o0]=this.words[u0];for(u0=0;u0=0);var M;z?M=(z-z%26)/26:M=0;var u0=l0%26,S=Math.min((l0-u0)/26,this.length),n0=67108863^67108863>>>u0<S)for(this.length-=S,s0=0;s0=0&&(I!==0||s0>=M);s0--){var t0=this.words[s0]|0;this.words[s0]=I<<26-u0|t0>>>u0,I=t0&n0}return v&&I!==0&&(v.words[v.length++]=I),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},Z.prototype.ishrn=function(l0,z,o0){return Y(this.negative===0),this.iushrn(l0,z,o0)},Z.prototype.shln=function(l0){return this.clone().ishln(l0)},Z.prototype.ushln=function(l0){return this.clone().iushln(l0)},Z.prototype.shrn=function(l0){return this.clone().ishrn(l0)},Z.prototype.ushrn=function(l0){return this.clone().iushrn(l0)},Z.prototype.testn=function(l0){Y(typeof l0=="number"&&l0>=0);var z=l0%26,o0=(l0-z)/26,M=1<=0);var z=l0%26,o0=(l0-z)/26;if(Y(this.negative===0,"imaskn works only with positive numbers"),this.length<=o0)return this;if(z!==0&&o0++,this.length=Math.min(o0,this.length),z!==0){var M=67108863^67108863>>>z<=67108864;z++)this.words[z]-=67108864,z===this.length-1?this.words[z+1]=1:this.words[z+1]++;return this.length=Math.max(this.length,z+1),this},Z.prototype.isubn=function(l0){if(Y(typeof l0=="number"),Y(l0<67108864),l0<0)return this.iaddn(-l0);if(this.negative!==0)return this.negative=0,this.iaddn(l0),this.negative=1,this;if(this.words[0]-=l0,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var z=0;z>26)-(v/67108864|0),this.words[u0+o0]=S&67108863}for(;u0>26,this.words[u0+o0]=S&67108863;if(n0===0)return this.strip();for(Y(n0===-1),n0=0,u0=0;u0>26,this.words[u0]=S&67108863;return this.negative=1,this.strip()},Z.prototype._wordDiv=function(l0,z){var o0=this.length-l0.length,M=this.clone(),u0=l0,S=u0.words[u0.length-1]|0,n0=this._countBits(S);o0=26-n0,o0!==0&&(u0=u0.ushln(o0),M.iushln(o0),S=u0.words[u0.length-1]|0);var v=M.length-u0.length,s0;if(z!=="mod"){s0=new Z(null),s0.length=v+1,s0.words=new Array(s0.length);for(var I=0;I=0;m0--){var a0=(M.words[u0.length+m0]|0)*67108864+(M.words[u0.length+m0-1]|0);for(a0=Math.min(a0/S|0,67108863),M._ishlnsubmul(u0,a0,m0);M.negative!==0;)a0--,M.negative=0,M._ishlnsubmul(u0,1,m0),M.isZero()||(M.negative^=1);s0&&(s0.words[m0]=a0)}return s0&&s0.strip(),M.strip(),z!=="div"&&o0!==0&&M.iushrn(o0),{div:s0||null,mod:M}},Z.prototype.divmod=function(l0,z,o0){if(Y(!l0.isZero()),this.isZero())return{div:new Z(0),mod:new Z(0)};var M,u0,S;return this.negative!==0&&l0.negative===0?(S=this.neg().divmod(l0,z),z!=="mod"&&(M=S.div.neg()),z!=="div"&&(u0=S.mod.neg(),o0&&u0.negative!==0&&u0.iadd(l0)),{div:M,mod:u0}):this.negative===0&&l0.negative!==0?(S=this.divmod(l0.neg(),z),z!=="mod"&&(M=S.div.neg()),{div:M,mod:S.mod}):(this.negative&l0.negative)!==0?(S=this.neg().divmod(l0.neg(),z),z!=="div"&&(u0=S.mod.neg(),o0&&u0.negative!==0&&u0.isub(l0)),{div:S.div,mod:u0}):l0.length>this.length||this.cmp(l0)<0?{div:new Z(0),mod:this}:l0.length===1?z==="div"?{div:this.divn(l0.words[0]),mod:null}:z==="mod"?{div:null,mod:new Z(this.modn(l0.words[0]))}:{div:this.divn(l0.words[0]),mod:new Z(this.modn(l0.words[0]))}:this._wordDiv(l0,z)},Z.prototype.div=function(l0){return this.divmod(l0,"div",!1).div},Z.prototype.mod=function(l0){return this.divmod(l0,"mod",!1).mod},Z.prototype.umod=function(l0){return this.divmod(l0,"mod",!0).mod},Z.prototype.divRound=function(l0){var z=this.divmod(l0);if(z.mod.isZero())return z.div;var o0=z.div.negative!==0?z.mod.isub(l0):z.mod,M=l0.ushrn(1),u0=l0.andln(1),S=o0.cmp(M);return S<0||u0===1&&S===0?z.div:z.div.negative!==0?z.div.isubn(1):z.div.iaddn(1)},Z.prototype.modn=function(l0){Y(l0<=67108863);for(var z=(1<<26)%l0,o0=0,M=this.length-1;M>=0;M--)o0=(z*o0+(this.words[M]|0))%l0;return o0},Z.prototype.idivn=function(l0){Y(l0<=67108863);for(var z=0,o0=this.length-1;o0>=0;o0--){var M=(this.words[o0]|0)+z*67108864;this.words[o0]=M/l0|0,z=M%l0}return this.strip()},Z.prototype.divn=function(l0){return this.clone().idivn(l0)},Z.prototype.egcd=function(l0){Y(l0.negative===0),Y(!l0.isZero());var z=this,o0=l0.clone();z.negative!==0?z=z.umod(l0):z=z.clone();for(var M=new Z(1),u0=new Z(0),S=new Z(0),n0=new Z(1),v=0;z.isEven()&&o0.isEven();)z.iushrn(1),o0.iushrn(1),++v;for(var s0=o0.clone(),I=z.clone();!z.isZero();){for(var t0=0,m0=1;(z.words[0]&m0)===0&&t0<26;++t0,m0<<=1);if(t0>0)for(z.iushrn(t0);t0-- >0;)(M.isOdd()||u0.isOdd())&&(M.iadd(s0),u0.isub(I)),M.iushrn(1),u0.iushrn(1);for(var a0=0,q=1;(o0.words[0]&q)===0&&a0<26;++a0,q<<=1);if(a0>0)for(o0.iushrn(a0);a0-- >0;)(S.isOdd()||n0.isOdd())&&(S.iadd(s0),n0.isub(I)),S.iushrn(1),n0.iushrn(1);z.cmp(o0)>=0?(z.isub(o0),M.isub(S),u0.isub(n0)):(o0.isub(z),S.isub(M),n0.isub(u0))}return{a:S,b:n0,gcd:o0.iushln(v)}},Z.prototype._invmp=function(l0){Y(l0.negative===0),Y(!l0.isZero());var z=this,o0=l0.clone();z.negative!==0?z=z.umod(l0):z=z.clone();for(var M=new Z(1),u0=new Z(0),S=o0.clone();z.cmpn(1)>0&&o0.cmpn(1)>0;){for(var n0=0,v=1;(z.words[0]&v)===0&&n0<26;++n0,v<<=1);if(n0>0)for(z.iushrn(n0);n0-- >0;)M.isOdd()&&M.iadd(S),M.iushrn(1);for(var s0=0,I=1;(o0.words[0]&I)===0&&s0<26;++s0,I<<=1);if(s0>0)for(o0.iushrn(s0);s0-- >0;)u0.isOdd()&&u0.iadd(S),u0.iushrn(1);z.cmp(o0)>=0?(z.isub(o0),M.isub(u0)):(o0.isub(z),u0.isub(M))}var t0;return z.cmpn(1)===0?t0=M:t0=u0,t0.cmpn(0)<0&&t0.iadd(l0),t0},Z.prototype.gcd=function(l0){if(this.isZero())return l0.abs();if(l0.isZero())return this.abs();var z=this.clone(),o0=l0.clone();z.negative=0,o0.negative=0;for(var M=0;z.isEven()&&o0.isEven();M++)z.iushrn(1),o0.iushrn(1);do{for(;z.isEven();)z.iushrn(1);for(;o0.isEven();)o0.iushrn(1);var u0=z.cmp(o0);if(u0<0){var S=z;z=o0,o0=S}else if(u0===0||o0.cmpn(1)===0)break;z.isub(o0)}while(!0);return o0.iushln(M)},Z.prototype.invm=function(l0){return this.egcd(l0).a.umod(l0)},Z.prototype.isEven=function(){return(this.words[0]&1)===0},Z.prototype.isOdd=function(){return(this.words[0]&1)===1},Z.prototype.andln=function(l0){return this.words[0]&l0},Z.prototype.bincn=function(l0){Y(typeof l0=="number");var z=l0%26,o0=(l0-z)/26,M=1<>>26,n0&=67108863,this.words[S]=n0}return u0!==0&&(this.words[S]=u0,this.length++),this},Z.prototype.isZero=function(){return this.length===1&&this.words[0]===0},Z.prototype.cmpn=function(l0){var z=l0<0;if(this.negative!==0&&!z)return-1;if(this.negative===0&&z)return 1;this.strip();var o0;if(this.length>1)o0=1;else{z&&(l0=-l0),Y(l0<=67108863,"Number is too big");var M=this.words[0]|0;o0=M===l0?0:Ml0.length)return 1;if(this.length=0;o0--){var M=this.words[o0]|0,u0=l0.words[o0]|0;if(M!==u0){Mu0&&(z=1);break}}return z},Z.prototype.gtn=function(l0){return this.cmpn(l0)===1},Z.prototype.gt=function(l0){return this.cmp(l0)===1},Z.prototype.gten=function(l0){return this.cmpn(l0)>=0},Z.prototype.gte=function(l0){return this.cmp(l0)>=0},Z.prototype.ltn=function(l0){return this.cmpn(l0)===-1},Z.prototype.lt=function(l0){return this.cmp(l0)===-1},Z.prototype.lten=function(l0){return this.cmpn(l0)<=0},Z.prototype.lte=function(l0){return this.cmp(l0)<=0},Z.prototype.eqn=function(l0){return this.cmpn(l0)===0},Z.prototype.eq=function(l0){return this.cmp(l0)===0},Z.red=function(l0){return new b0(l0)},Z.prototype.toRed=function(l0){return Y(!this.red,"Already a number in reduction context"),Y(this.negative===0,"red works only with positives"),l0.convertTo(this)._forceRed(l0)},Z.prototype.fromRed=function(){return Y(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},Z.prototype._forceRed=function(l0){return this.red=l0,this},Z.prototype.forceRed=function(l0){return Y(!this.red,"Already a number in reduction context"),this._forceRed(l0)},Z.prototype.redAdd=function(l0){return Y(this.red,"redAdd works only with red numbers"),this.red.add(this,l0)},Z.prototype.redIAdd=function(l0){return Y(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,l0)},Z.prototype.redSub=function(l0){return Y(this.red,"redSub works only with red numbers"),this.red.sub(this,l0)},Z.prototype.redISub=function(l0){return Y(this.red,"redISub works only with red numbers"),this.red.isub(this,l0)},Z.prototype.redShl=function(l0){return Y(this.red,"redShl works only with red numbers"),this.red.shl(this,l0)},Z.prototype.redMul=function(l0){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,l0),this.red.mul(this,l0)},Z.prototype.redIMul=function(l0){return Y(this.red,"redMul works only with red numbers"),this.red._verify2(this,l0),this.red.imul(this,l0)},Z.prototype.redSqr=function(){return Y(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},Z.prototype.redISqr=function(){return Y(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},Z.prototype.redSqrt=function(){return Y(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},Z.prototype.redInvm=function(){return Y(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},Z.prototype.redNeg=function(){return Y(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},Z.prototype.redPow=function(l0){return Y(this.red&&!l0.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,l0)};var c0={k256:null,p224:null,p192:null,p25519:null};function C(l0,z){this.name=l0,this.p=new Z(z,16),this.n=this.p.bitLength(),this.k=new Z(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}C.prototype._tmp=function(){var l0=new Z(null);return l0.words=new Array(Math.ceil(this.n/13)),l0},C.prototype.ireduce=function(l0){var z=l0,o0;do this.split(z,this.tmp),z=this.imulK(z),z=z.iadd(this.tmp),o0=z.bitLength();while(o0>this.n);var M=o00?z.isub(this.p):z.strip!==void 0?z.strip():z._strip(),z},C.prototype.split=function(l0,z){l0.iushrn(this.n,0,z)},C.prototype.imulK=function(l0){return l0.imul(this.k)};function h0(){C.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}$(h0,C),h0.prototype.split=function(l0,z){for(var o0=4194303,M=Math.min(l0.length,9),u0=0;u0>>22,S=n0}S>>>=22,l0.words[u0-10]=S,S===0&&l0.length>10?l0.length-=10:l0.length-=9},h0.prototype.imulK=function(l0){l0.words[l0.length]=0,l0.words[l0.length+1]=0,l0.length+=2;for(var z=0,o0=0;o0>>=26,l0.words[o0]=u0,z=M}return z!==0&&(l0.words[l0.length++]=z),l0},Z._prime=function(l0){if(c0[l0])return c0[l0];var z;if(l0==="k256")z=new h0;else if(l0==="p224")z=new L;else if(l0==="p192")z=new d0;else if(l0==="p25519")z=new R;else throw new Error("Unknown prime "+l0);return c0[l0]=z,z};function b0(l0){if(typeof l0=="string"){var z=Z._prime(l0);this.m=z.p,this.prime=z}else Y(l0.gtn(1),"modulus must be greater than 1"),this.m=l0,this.prime=null}b0.prototype._verify1=function(l0){Y(l0.negative===0,"red works only with positives"),Y(l0.red,"red works only with red numbers")},b0.prototype._verify2=function(l0,z){Y((l0.negative|z.negative)===0,"red works only with positives"),Y(l0.red&&l0.red===z.red,"red works only with red numbers")},b0.prototype.imod=function(l0){return this.prime?this.prime.ireduce(l0)._forceRed(this):l0.umod(this.m)._forceRed(this)},b0.prototype.neg=function(l0){return l0.isZero()?l0.clone():this.m.sub(l0)._forceRed(this)},b0.prototype.add=function(l0,z){this._verify2(l0,z);var o0=l0.add(z);return o0.cmp(this.m)>=0&&o0.isub(this.m),o0._forceRed(this)},b0.prototype.iadd=function(l0,z){this._verify2(l0,z);var o0=l0.iadd(z);return o0.cmp(this.m)>=0&&o0.isub(this.m),o0},b0.prototype.sub=function(l0,z){this._verify2(l0,z);var o0=l0.sub(z);return o0.cmpn(0)<0&&o0.iadd(this.m),o0._forceRed(this)},b0.prototype.isub=function(l0,z){this._verify2(l0,z);var o0=l0.isub(z);return o0.cmpn(0)<0&&o0.iadd(this.m),o0},b0.prototype.shl=function(l0,z){return this._verify1(l0),this.imod(l0.ushln(z))},b0.prototype.imul=function(l0,z){return this._verify2(l0,z),this.imod(l0.imul(z))},b0.prototype.mul=function(l0,z){return this._verify2(l0,z),this.imod(l0.mul(z))},b0.prototype.isqr=function(l0){return this.imul(l0,l0.clone())},b0.prototype.sqr=function(l0){return this.mul(l0,l0)},b0.prototype.sqrt=function(l0){if(l0.isZero())return l0.clone();var z=this.m.andln(3);if(Y(z%2===1),z===3){var o0=this.m.add(new Z(1)).iushrn(2);return this.pow(l0,o0)}for(var M=this.m.subn(1),u0=0;!M.isZero()&&M.andln(1)===0;)u0++,M.iushrn(1);Y(!M.isZero());var S=new Z(1).toRed(this),n0=S.redNeg(),v=this.m.subn(1).iushrn(1),s0=this.m.bitLength();for(s0=new Z(2*s0*s0).toRed(this);this.pow(s0,v).cmp(n0)!==0;)s0.redIAdd(n0);for(var I=this.pow(s0,M),t0=this.pow(l0,M.addn(1).iushrn(1)),m0=this.pow(l0,M),a0=u0;m0.cmp(S)!==0;){for(var q=m0,e0=0;q.cmp(S)!==0;e0++)q=q.redSqr();Y(e0=0;u0--){for(var I=z.words[u0],t0=s0-1;t0>=0;t0--){var m0=I>>t0&1;if(S!==M[0]&&(S=this.sqr(S)),m0===0&&n0===0){v=0;continue}n0<<=1,n0|=m0,v++,!(v!==o0&&(u0!==0||t0!==0))&&(S=this.mul(S,M[n0]),v=0,n0=0)}s0=26}return S},b0.prototype.convertTo=function(l0){var z=l0.umod(this.m);return z===l0?z.clone():z},b0.prototype.convertFrom=function(l0){var z=l0.clone();return z.red=null,z},Z.mont=function(l0){return new P(l0)};function P(l0){b0.call(this,l0),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new Z(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}$(P,b0),P.prototype.convertTo=function(l0){return this.imod(l0.ushln(this.shift))},P.prototype.convertFrom=function(l0){var z=this.imod(l0.mul(this.rinv));return z.red=null,z},P.prototype.imul=function(l0,z){if(l0.isZero()||z.isZero())return l0.words[0]=0,l0.length=1,l0;var o0=l0.imul(z),M=o0.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u0=o0.isub(M).iushrn(this.shift),S=u0;return u0.cmp(this.m)>=0?S=u0.isub(this.m):u0.cmpn(0)<0&&(S=u0.iadd(this.m)),S._forceRed(this)},P.prototype.mul=function(l0,z){if(l0.isZero()||z.isZero())return new Z(0)._forceRed(this);var o0=l0.mul(z),M=o0.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u0=o0.isub(M).iushrn(this.shift),S=u0;return u0.cmp(this.m)>=0?S=u0.isub(this.m):u0.cmpn(0)<0&&(S=u0.iadd(this.m)),S._forceRed(this)},P.prototype.invm=function(l0){var z=this.imod(l0._invmp(this.m).mul(this.r2));return z._forceRed(this)}})(typeof K>"u"||K,X)}}),{CryptoHasher:sY}=globalThis.Bun,tY=$Q({"node_modules/public-encrypt/withPublic.js"(X,K){var x0=nY(),G=YQ().Buffer;function Y($,Z){return G.from($.toRed(x0.mont(Z.modulus)).redPow(new x0(Z.publicExponent)).fromRed().toArray())}K.exports=Y}}),mY=$Q({"node_modules/public-encrypt/publicEncrypt.js"(X,K){var x0=pY(),G=ZQ(),Y=L0(),$=oY(),Z=uY(),Q=nY(),U=tY(),V=hQ(),B0=YQ().Buffer;K.exports=function(w0,E,p0){var T;w0.padding?T=w0.padding:p0?T=1:T=4;var f0=x0(w0),D;if(T===4)D=H(f0,E);else if(T===1)D=y0(f0,E,p0);else if(T===3){if(D=new Q(E),D.cmp(f0.modulus)>=0)throw new Error("data too long for modulus")}else throw new Error("unknown padding");return p0?V(D,f0):U(D,f0)};function H(w0,E){var p0=w0.modulus.byteLength(),T=E.length,f0=Y("sha1").update(B0.alloc(0)).digest(),D=f0.length,c0=2*D;if(T>p0-c0-2)throw new Error("message too long");var C=B0.alloc(p0-T-c0-2),h0=p0-D-1,L=G(D),d0=Z(B0.concat([f0,C,B0.alloc(1,1),E],h0),$(L,h0)),R=Z(L,$(d0,D));return new Q(B0.concat([B0.alloc(1),R,d0],p0))}function y0(w0,E,p0){var T=E.length,f0=w0.modulus.byteLength();if(T>f0-11)throw new Error("message too long");var D;return p0?D=B0.alloc(f0-T-3,255):D=W(f0-T-3),new Q(B0.concat([B0.from([0,p0?1:2]),D,B0.alloc(1),E],f0))}function W(w0){for(var E=B0.allocUnsafe(w0),p0=0,T=G(w0*2),f0=0,D;p0f0||new $(w0).cmp(T.modulus)>=0)throw new Error("decryption error");var D;E?D=U(new $(w0),T):D=Z(w0,T);var c0=V.alloc(f0-D.length);if(D=V.concat([c0,D],f0),p0===4)return B0(T,D);if(p0===1)return H(T,D,E);if(p0===3)return D;throw new Error("unknown padding")};function B0(W,w0){var E=W.modulus.byteLength(),p0=Q("sha1").update(V.alloc(0)).digest(),T=p0.length;if(w0[0]!==0)throw new Error("decryption error");var f0=w0.slice(1,T+1),D=w0.slice(T+1),c0=Y(f0,G(D,T)),C=Y(D,G(c0,E-T-1));if(y0(p0,C.slice(0,T)))throw new Error("decryption error");for(var h0=T;C[h0]===0;)h0++;if(C[h0++]!==1)throw new Error("decryption error");return C.slice(h0)}function H(W,w0,E){for(var p0=w0.slice(0,2),T=2,f0=0;w0[T++]!==0;)if(T>=w0.length){f0++;break}var D=w0.slice(2,T-1);if((p0.toString("hex")!=="0002"&&!E||p0.toString("hex")!=="0001"&&E)&&f0++,D.length<8&&f0++,f0)throw new Error("decryption error");return w0.slice(T)}function y0(W,w0){W=V.from(W),w0=V.from(w0);var E=0,p0=W.length;W.length!==w0.length&&(E++,p0=Math.min(W.length,w0.length));for(var T=-1;++T$||H<0)throw new TypeError("offset must be a uint32");if(H>Y||H>y0)throw new RangeError("offset out of range")}function Q(H,y0,W){if(typeof H!="number"||H!==H)throw new TypeError("size must be a number");if(H>$||H<0)throw new TypeError("size must be a uint32");if(H+y0>W||H>Y)throw new RangeError("buffer too small")}X.randomFill=U,X.randomFillSync=B0;function U(H,y0,W,w0){if(!G.isBuffer(H)&&!(H instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if(typeof y0=="function")w0=y0,y0=0,W=H.length;else if(typeof W=="function")w0=W,W=H.length-y0;else if(typeof w0!="function")throw new TypeError('"cb" argument must be a function');return Z(y0,H.length),Q(W,y0,H.length),V(H,y0,W,w0)}function V(H,y0,W,w0){if(w0){x0(W,function(p0,T){if(p0)return w0(p0);T.copy(H,y0),w0(null,H)});return}var E=x0(W);return E.copy(H,y0),H}function B0(H,y0,W){if(typeof y0>"u"&&(y0=0),!G.isBuffer(H)&&!(H instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return Z(y0,H.length),W===void 0&&(W=H.length-y0),Q(W,y0,H.length),V(H,y0,W)}}}),iY=$Q({"node_modules/crypto-browserify/index.js"(X){X.randomBytes=X.rng=X.pseudoRandomBytes=X.prng=ZQ(),X.createHash=L0(),X.Hash=X.createHash.Hash,X.createHmac=X.Hmac=z0();var K=S0(),x0=Object.keys(K),G=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(x0);X.getHashes=function(){return G};var Y=g0();X.pbkdf2=Y.pbkdf2,X.pbkdf2Sync=Y.pbkdf2Sync;var $=gQ();X.Cipher=$.Cipher,X.createCipher=$.createCipher,X.Cipheriv=$.Cipheriv,X.createCipheriv=$.createCipheriv,X.Decipher=$.Decipher,X.createDecipher=$.createDecipher,X.Decipheriv=$.Decipheriv,X.createDecipheriv=$.createDecipheriv,X.getCiphers=$.getCiphers,X.listCiphers=$.listCiphers;var Z=fQ();X.DiffieHellmanGroup=Z.DiffieHellmanGroup,X.createDiffieHellmanGroup=Z.createDiffieHellmanGroup,X.getDiffieHellman=Z.getDiffieHellman,X.createDiffieHellman=Z.createDiffieHellman,X.DiffieHellman=Z.DiffieHellman;var Q=dY();X.createSign=Q.createSign,X.Sign=Q.Sign,X.createVerify=Q.createVerify,X.Verify=Q.Verify,X.createECDH=lY();var U=eY();X.publicEncrypt=U.publicEncrypt,X.privateEncrypt=U.privateEncrypt,X.publicDecrypt=U.publicDecrypt,X.privateDecrypt=U.privateDecrypt,X.getRandomValues=(B0)=>d$.getRandomValues(B0);var V=rY();X.randomFill=V.randomFill,X.randomFillSync=V.randomFillSync,X.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join(` -`))},X.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}}}),$Z={...iY(),[Symbol.for("CommonJS")]:0},o$="buffer",QZ=(X)=>d$.getRandomValues(X),YZ=()=>d$.randomUUID(),u$="timingSafeEqual"in d$?(X,K)=>{let{byteLength:x0}=X,{byteLength:G}=K;if(typeof x0!="number"||typeof G!="number")throw new TypeError("Input must be an array buffer view");if(x0!==G)throw new RangeError("Input buffers must have the same length");return d$.timingSafeEqual(X,K)}:void 0,ZZ="scryptSync"in d$?(X,K,x0,G)=>{let Y=d$.scryptSync(X,K,x0,G);return o$!=="buffer"?new c$(Y).toString(o$):new c$(Y)}:void 0,GZ="scryptSync"in d$?function(X,K,x0,G,Y){if(typeof G=="function"&&(Y=G,G=void 0),typeof Y!="function"){var $=new TypeError("callback must be a function");throw $.code="ERR_INVALID_CALLBACK",$}try{let Z=d$.scryptSync(X,K,x0,G);process.nextTick(Y,null,o$!=="buffer"?new c$(Z).toString(o$):new c$(Z))}catch(Z){throw Z}}:void 0;u$&&(Object.defineProperty(u$,"name",{value:"::bunternal::"}),Object.defineProperty(GZ,"name",{value:"::bunternal::"}),Object.defineProperty(ZZ,"name",{value:"::bunternal::"}));var n$=d$;QQ($Z,{DEFAULT_ENCODING:()=>o$,getRandomValues:()=>QZ,randomUUID:()=>YZ,scrypt:()=>GZ,scryptSync:()=>ZZ,timingSafeEqual:()=>u$,webcrypto:()=>n$,subtle:()=>n$.subtle});var{randomBytes:VZ,rng:UZ,pseudoRandomBytes:XZ,prng:KZ,Hash:IZ,createHash:OZ,createHmac:JZ,Hmac:FZ,getHashes:AZ,pbkdf2:HZ,pbkdf2Sync:WZ,Cipher:EZ,createCipher:TZ,Cipheriv:DZ,createCipheriv:CZ,Decipher:LZ,createDecipher:RZ,Decipheriv:PZ,createDecipheriv:zZ,getCiphers:MZ,listCiphers:SZ,DiffieHellmanGroup:vZ,createDiffieHellmanGroup:qZ,getDiffieHellman:jZ,createDiffieHellman:kZ,DiffieHellman:gZ,createSign:_Z,Sign:NZ,createVerify:xZ,Verify:BZ,createECDH:yZ,publicEncrypt:wZ,privateEncrypt:pZ,publicDecrypt:fZ,privateDecrypt:cZ,randomFill:hZ,randomFillSync:dZ,createCredentials:bZ,constants:lZ}=$Z;var uZ=$Z;/*! safe-buffer. MIT License. Feross Aboukhadijeh */export{n$ as webcrypto,u$ as timingSafeEqual,ZZ as scryptSync,GZ as scrypt,UZ as rng,YZ as randomUUID,dZ as randomFillSync,hZ as randomFill,VZ as randomBytes,wZ as publicEncrypt,fZ as publicDecrypt,XZ as pseudoRandomBytes,KZ as prng,pZ as privateEncrypt,cZ as privateDecrypt,WZ as pbkdf2Sync,HZ as pbkdf2,SZ as listCiphers,QZ as getRandomValues,AZ as getHashes,jZ as getDiffieHellman,MZ as getCiphers,uZ as default,xZ as createVerify,_Z as createSign,JZ as createHmac,OZ as createHash,yZ as createECDH,qZ as createDiffieHellmanGroup,kZ as createDiffieHellman,zZ as createDecipheriv,RZ as createDecipher,bZ as createCredentials,CZ as createCipheriv,TZ as createCipher,lZ as constants,BZ as Verify,NZ as Sign,FZ as Hmac,IZ as Hash,vZ as DiffieHellmanGroup,gZ as DiffieHellman,PZ as Decipheriv,LZ as Decipher,o$ as DEFAULT_ENCODING,DZ as Cipheriv,EZ as Cipher}; +import{StringDecoder as z$} from"node:string_decoder";import*as M$ from"node:buffer";import*as A$ from"node:stream";var L$=Object.defineProperty;var R$=Object.getOwnPropertyNames;var S$=536870888,F$=globalThis.Buffer,H$=globalThis.crypto,v$=H$;var q$=($,Q)=>function(){return Q||(0,$[R$($)[0]])((Q={exports:{}}).exports,Q),Q.exports},j$=($,Q)=>{for(var Y in Q)L$($,Y,{get:Q[Y],enumerable:!0})};var k$=q$({"node_modules/safe-buffer/index.js"($,Q){var Y=M$,Z=Y.Buffer;function G(U,X){for(var K in U)X[K]=U[K]}Z.from&&Z.alloc&&Z.allocUnsafe&&Z.allocUnsafeSlow?Q.exports=Y:(G(Y,$),$.Buffer=V);function V(U,X,K){return Z(U,X,K)}V.prototype=Object.create(Z.prototype),G(Z,V),V.from=function(U,X,K){if(typeof U=="number")throw new TypeError("Argument must not be a number");return Z(U,X,K)},V.alloc=function(U,X,K){if(typeof U!="number")throw new TypeError("Argument must be a number");var I=Z(U);return X!==void 0?typeof K=="string"?I.fill(X,K):I.fill(X):I.fill(0),I},V.allocUnsafe=function(U){if(typeof U!="number")throw new TypeError("Argument must be a number");return Z(U)},V.allocUnsafeSlow=function(U){if(typeof U!="number")throw new TypeError("Argument must be a number");return Y.SlowBuffer(U)}}}),g$=q$({"node_modules/randombytes/browser.js"($,Q){var Y=65536,Z=4294967295;function G(){throw new Error(`Secure random number generation is not supported by this browser. +Use Chrome, Firefox or Internet Explorer 11`)}var V=k$().Buffer,U=v$;U&&U.getRandomValues?Q.exports=X:Q.exports=G;function X(K,I){if(K>Z)throw new RangeError("requested too many random bytes");var O=V.allocUnsafe(K);if(K>0)if(K>Y)for(var J=0;J=this._blockSize;){for(var O=this._blockOffset;O0;++J)this._length[J]+=F,F=this._length[J]/4294967296|0,F>0&&(this._length[J]-=4294967296*F);return this},V.prototype._update=function(){throw new Error("_update is not implemented")},V.prototype.digest=function(U){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var X=this._digest();U!==void 0&&(X=X.toString(U)),this._block.fill(0),this._blockOffset=0;for(var K=0;K<4;++K)this._length[K]=0;return X},V.prototype._digest=function(){throw new Error("_digest is not implemented")},Q.exports=V}}),x$=q$({"node_modules/md5.js/index.js"($,Q){var Y=_$(),Z=N$(),G=k$().Buffer,V=new Array(16);function U(){Z.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}Y(U,Z),U.prototype._update=function(){for(var F=V,A=0;A<16;++A)F[A]=this._block.readInt32LE(A*4);var H=this._a,W=this._b,E=this._c,T=this._d;H=K(H,W,E,T,F[0],3614090360,7),T=K(T,H,W,E,F[1],3905402710,12),E=K(E,T,H,W,F[2],606105819,17),W=K(W,E,T,H,F[3],3250441966,22),H=K(H,W,E,T,F[4],4118548399,7),T=K(T,H,W,E,F[5],1200080426,12),E=K(E,T,H,W,F[6],2821735955,17),W=K(W,E,T,H,F[7],4249261313,22),H=K(H,W,E,T,F[8],1770035416,7),T=K(T,H,W,E,F[9],2336552879,12),E=K(E,T,H,W,F[10],4294925233,17),W=K(W,E,T,H,F[11],2304563134,22),H=K(H,W,E,T,F[12],1804603682,7),T=K(T,H,W,E,F[13],4254626195,12),E=K(E,T,H,W,F[14],2792965006,17),W=K(W,E,T,H,F[15],1236535329,22),H=I(H,W,E,T,F[1],4129170786,5),T=I(T,H,W,E,F[6],3225465664,9),E=I(E,T,H,W,F[11],643717713,14),W=I(W,E,T,H,F[0],3921069994,20),H=I(H,W,E,T,F[5],3593408605,5),T=I(T,H,W,E,F[10],38016083,9),E=I(E,T,H,W,F[15],3634488961,14),W=I(W,E,T,H,F[4],3889429448,20),H=I(H,W,E,T,F[9],568446438,5),T=I(T,H,W,E,F[14],3275163606,9),E=I(E,T,H,W,F[3],4107603335,14),W=I(W,E,T,H,F[8],1163531501,20),H=I(H,W,E,T,F[13],2850285829,5),T=I(T,H,W,E,F[2],4243563512,9),E=I(E,T,H,W,F[7],1735328473,14),W=I(W,E,T,H,F[12],2368359562,20),H=O(H,W,E,T,F[5],4294588738,4),T=O(T,H,W,E,F[8],2272392833,11),E=O(E,T,H,W,F[11],1839030562,16),W=O(W,E,T,H,F[14],4259657740,23),H=O(H,W,E,T,F[1],2763975236,4),T=O(T,H,W,E,F[4],1272893353,11),E=O(E,T,H,W,F[7],4139469664,16),W=O(W,E,T,H,F[10],3200236656,23),H=O(H,W,E,T,F[13],681279174,4),T=O(T,H,W,E,F[0],3936430074,11),E=O(E,T,H,W,F[3],3572445317,16),W=O(W,E,T,H,F[6],76029189,23),H=O(H,W,E,T,F[9],3654602809,4),T=O(T,H,W,E,F[12],3873151461,11),E=O(E,T,H,W,F[15],530742520,16),W=O(W,E,T,H,F[2],3299628645,23),H=J(H,W,E,T,F[0],4096336452,6),T=J(T,H,W,E,F[7],1126891415,10),E=J(E,T,H,W,F[14],2878612391,15),W=J(W,E,T,H,F[5],4237533241,21),H=J(H,W,E,T,F[12],1700485571,6),T=J(T,H,W,E,F[3],2399980690,10),E=J(E,T,H,W,F[10],4293915773,15),W=J(W,E,T,H,F[1],2240044497,21),H=J(H,W,E,T,F[8],1873313359,6),T=J(T,H,W,E,F[15],4264355552,10),E=J(E,T,H,W,F[6],2734768916,15),W=J(W,E,T,H,F[13],1309151649,21),H=J(H,W,E,T,F[4],4149444226,6),T=J(T,H,W,E,F[11],3174756917,10),E=J(E,T,H,W,F[2],718787259,15),W=J(W,E,T,H,F[9],3951481745,21),this._a=this._a+H|0,this._b=this._b+W|0,this._c=this._c+E|0,this._d=this._d+T|0},U.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var F=G.allocUnsafe(16);return F.writeInt32LE(this._a,0),F.writeInt32LE(this._b,4),F.writeInt32LE(this._c,8),F.writeInt32LE(this._d,12),F};function X(F,A){return F<>>32-A}function K(F,A,H,W,E,T,D){return X(F+(A&H|~A&W)+E+T|0,D)+A|0}function I(F,A,H,W,E,T,D){return X(F+(A&W|H&~W)+E+T|0,D)+A|0}function O(F,A,H,W,E,T,D){return X(F+(A^H^W)+E+T|0,D)+A|0}function J(F,A,H,W,E,T,D){return X(F+(H^(A|~W))+E+T|0,D)+A|0}Q.exports=U}}),B$=q$({"node_modules/ripemd160/index.js"($,Q){var Y=F$,Z=_$(),G=N$(),V=new Array(16),U=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],X=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],K=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],I=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],O=[0,1518500249,1859775393,2400959708,2840853838],J=[1352829926,1548603684,1836072691,2053994217,0];function F(){G.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}Z(F,G),F.prototype._update=function(){for(var C=V,L=0;L<16;++L)C[L]=this._block.readInt32LE(L*4);for(var R=this._a|0,P=this._b|0,z=this._c|0,M=this._d|0,S=this._e|0,v=this._a|0,q=this._b|0,j=this._c|0,k=this._d|0,g=this._e|0,_=0;_<80;_+=1){var N,x;_<16?(N=H(R,P,z,M,S,C[U[_]],O[0],K[_]),x=D(v,q,j,k,g,C[X[_]],J[0],I[_])):_<32?(N=W(R,P,z,M,S,C[U[_]],O[1],K[_]),x=T(v,q,j,k,g,C[X[_]],J[1],I[_])):_<48?(N=E(R,P,z,M,S,C[U[_]],O[2],K[_]),x=E(v,q,j,k,g,C[X[_]],J[2],I[_])):_<64?(N=T(R,P,z,M,S,C[U[_]],O[3],K[_]),x=W(v,q,j,k,g,C[X[_]],J[3],I[_])):(N=D(R,P,z,M,S,C[U[_]],O[4],K[_]),x=H(v,q,j,k,g,C[X[_]],J[4],I[_])),R=S,S=M,M=A(z,10),z=P,P=N,v=g,g=k,k=A(j,10),j=q,q=x}var B=this._b+z+k|0;this._b=this._c+M+g|0,this._c=this._d+S+v|0,this._d=this._e+R+q|0,this._e=this._a+P+j|0,this._a=B},F.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var C=Y.alloc?Y.alloc(20):new Y(20);return C.writeInt32LE(this._a,0),C.writeInt32LE(this._b,4),C.writeInt32LE(this._c,8),C.writeInt32LE(this._d,12),C.writeInt32LE(this._e,16),C};function A(C,L){return C<>>32-L}function H(C,L,R,P,z,M,S,v){return A(C+(L^R^P)+M+S|0,v)+z|0}function W(C,L,R,P,z,M,S,v){return A(C+(L&R|~L&P)+M+S|0,v)+z|0}function E(C,L,R,P,z,M,S,v){return A(C+((L|~R)^P)+M+S|0,v)+z|0}function T(C,L,R,P,z,M,S,v){return A(C+(L&P|R&~P)+M+S|0,v)+z|0}function D(C,L,R,P,z,M,S,v){return A(C+(L^(R|~P))+M+S|0,v)+z|0}Q.exports=F}}),y$=q$({"node_modules/sha.js/hash.js"($,Q){var Y=k$().Buffer;function Z(G,V){this._block=Y.alloc(G),this._finalSize=V,this._blockSize=G,this._len=0}Z.prototype.update=function(G,V){typeof G=="string"&&(V=V||"utf8",G=Y.from(G,V));for(var U=this._block,X=this._blockSize,K=G.length,I=this._len,O=0;O=this._finalSize&&(this._update(this._block),this._block.fill(0));var U=this._len*8;if(U<=4294967295)this._block.writeUInt32BE(U,this._blockSize-4);else{var X=(U&4294967295)>>>0,K=(U-X)/4294967296;this._block.writeUInt32BE(K,this._blockSize-8),this._block.writeUInt32BE(X,this._blockSize-4)}this._update(this._block);var I=this._hash();return G?I.toString(G):I},Z.prototype._update=function(){throw new Error("_update must be implemented by subclass")},Q.exports=Z}}),w$=q$({"node_modules/sha.js/sha.js"($,Q){var Y=_$(),Z=y$(),G=k$().Buffer,V=[1518500249,1859775393,-1894007588,-899497514],U=new Array(80);function X(){this.init(),this._w=U,Z.call(this,64,56)}Y(X,Z),X.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function K(J){return J<<5|J>>>27}function I(J){return J<<30|J>>>2}function O(J,F,A,H){return J===0?F&A|~F&H:J===2?F&A|F&H|A&H:F^A^H}X.prototype._update=function(J){for(var F=this._w,A=this._a|0,H=this._b|0,W=this._c|0,E=this._d|0,T=this._e|0,D=0;D<16;++D)F[D]=J.readInt32BE(D*4);for(;D<80;++D)F[D]=F[D-3]^F[D-8]^F[D-14]^F[D-16];for(var C=0;C<80;++C){var L=~~(C/20),R=K(A)+O(L,H,W,E)+T+F[C]+V[L]|0;T=E,E=W,W=I(H),H=A,A=R}this._a=A+this._a|0,this._b=H+this._b|0,this._c=W+this._c|0,this._d=E+this._d|0,this._e=T+this._e|0},X.prototype._hash=function(){var J=G.allocUnsafe(20);return J.writeInt32BE(this._a|0,0),J.writeInt32BE(this._b|0,4),J.writeInt32BE(this._c|0,8),J.writeInt32BE(this._d|0,12),J.writeInt32BE(this._e|0,16),J},Q.exports=X}}),p$=q$({"node_modules/sha.js/sha1.js"($,Q){var Y=_$(),Z=y$(),G=k$().Buffer,V=[1518500249,1859775393,-1894007588,-899497514],U=new Array(80);function X(){this.init(),this._w=U,Z.call(this,64,56)}Y(X,Z),X.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function K(F){return F<<1|F>>>31}function I(F){return F<<5|F>>>27}function O(F){return F<<30|F>>>2}function J(F,A,H,W){return F===0?A&H|~A&W:F===2?A&H|A&W|H&W:A^H^W}X.prototype._update=function(F){for(var A=this._w,H=this._a|0,W=this._b|0,E=this._c|0,T=this._d|0,D=this._e|0,C=0;C<16;++C)A[C]=F.readInt32BE(C*4);for(;C<80;++C)A[C]=K(A[C-3]^A[C-8]^A[C-14]^A[C-16]);for(var L=0;L<80;++L){var R=~~(L/20),P=I(H)+J(R,W,E,T)+D+A[L]+V[R]|0;D=T,T=E,E=O(W),W=H,H=P}this._a=H+this._a|0,this._b=W+this._b|0,this._c=E+this._c|0,this._d=T+this._d|0,this._e=D+this._e|0},X.prototype._hash=function(){var F=G.allocUnsafe(20);return F.writeInt32BE(this._a|0,0),F.writeInt32BE(this._b|0,4),F.writeInt32BE(this._c|0,8),F.writeInt32BE(this._d|0,12),F.writeInt32BE(this._e|0,16),F},Q.exports=X}}),f$=q$({"node_modules/sha.js/sha256.js"($,Q){var Y=_$(),Z=y$(),G=k$().Buffer,V=[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],U=new Array(64);function X(){this.init(),this._w=U,Z.call(this,64,56)}Y(X,Z),X.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function K(H,W,E){return E^H&(W^E)}function I(H,W,E){return H&W|E&(H|W)}function O(H){return(H>>>2|H<<30)^(H>>>13|H<<19)^(H>>>22|H<<10)}function J(H){return(H>>>6|H<<26)^(H>>>11|H<<21)^(H>>>25|H<<7)}function F(H){return(H>>>7|H<<25)^(H>>>18|H<<14)^H>>>3}function A(H){return(H>>>17|H<<15)^(H>>>19|H<<13)^H>>>10}X.prototype._update=function(H){for(var W=this._w,E=this._a|0,T=this._b|0,D=this._c|0,C=this._d|0,L=this._e|0,R=this._f|0,P=this._g|0,z=this._h|0,M=0;M<16;++M)W[M]=H.readInt32BE(M*4);for(;M<64;++M)W[M]=A(W[M-2])+W[M-7]+F(W[M-15])+W[M-16]|0;for(var S=0;S<64;++S){var v=z+J(L)+K(L,R,P)+V[S]+W[S]|0,q=O(E)+I(E,T,D)|0;z=P,P=R,R=L,L=C+v|0,C=D,D=T,T=E,E=v+q|0}this._a=E+this._a|0,this._b=T+this._b|0,this._c=D+this._c|0,this._d=C+this._d|0,this._e=L+this._e|0,this._f=R+this._f|0,this._g=P+this._g|0,this._h=z+this._h|0},X.prototype._hash=function(){var H=G.allocUnsafe(32);return H.writeInt32BE(this._a,0),H.writeInt32BE(this._b,4),H.writeInt32BE(this._c,8),H.writeInt32BE(this._d,12),H.writeInt32BE(this._e,16),H.writeInt32BE(this._f,20),H.writeInt32BE(this._g,24),H.writeInt32BE(this._h,28),H},Q.exports=X}}),c$=q$({"node_modules/sha.js/sha224.js"($,Q){var Y=_$(),Z=f$(),G=y$(),V=k$().Buffer,U=new Array(64);function X(){this.init(),this._w=U,G.call(this,64,56)}Y(X,Z),X.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},X.prototype._hash=function(){var K=V.allocUnsafe(28);return K.writeInt32BE(this._a,0),K.writeInt32BE(this._b,4),K.writeInt32BE(this._c,8),K.writeInt32BE(this._d,12),K.writeInt32BE(this._e,16),K.writeInt32BE(this._f,20),K.writeInt32BE(this._g,24),K},Q.exports=X}}),h$=q$({"node_modules/sha.js/sha512.js"($,Q){var Y=_$(),Z=y$(),G=k$().Buffer,V=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],U=new Array(160);function X(){this.init(),this._w=U,Z.call(this,128,112)}Y(X,Z),X.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function K(T,D,C){return C^T&(D^C)}function I(T,D,C){return T&D|C&(T|D)}function O(T,D){return(T>>>28|D<<4)^(D>>>2|T<<30)^(D>>>7|T<<25)}function J(T,D){return(T>>>14|D<<18)^(T>>>18|D<<14)^(D>>>9|T<<23)}function F(T,D){return(T>>>1|D<<31)^(T>>>8|D<<24)^T>>>7}function A(T,D){return(T>>>1|D<<31)^(T>>>8|D<<24)^(T>>>7|D<<25)}function H(T,D){return(T>>>19|D<<13)^(D>>>29|T<<3)^T>>>6}function W(T,D){return(T>>>19|D<<13)^(D>>>29|T<<3)^(T>>>6|D<<26)}function E(T,D){return T>>>0>>0?1:0}X.prototype._update=function(T){for(var D=this._w,C=this._ah|0,L=this._bh|0,R=this._ch|0,P=this._dh|0,z=this._eh|0,M=this._fh|0,S=this._gh|0,v=this._hh|0,q=this._al|0,j=this._bl|0,k=this._cl|0,g=this._dl|0,_=this._el|0,N=this._fl|0,x=this._gl|0,B=this._hl|0,y=0;y<32;y+=2)D[y]=T.readInt32BE(y*4),D[y+1]=T.readInt32BE(y*4+4);for(;y<160;y+=2){var w=D[y-30],p=D[y-30+1],f=F(w,p),c=A(p,w);w=D[y-4],p=D[y-4+1];var h=H(w,p),d=W(p,w),b=D[y-14],l=D[y-14+1],o=D[y-32],u=D[y-32+1],n=c+l|0,s=f+b+E(n,c)|0;n=n+d|0,s=s+h+E(n,d)|0,n=n+u|0,s=s+o+E(n,u)|0,D[y]=s,D[y+1]=n}for(var t=0;t<160;t+=2){s=D[t],n=D[t+1];var m=I(C,L,R),a=I(q,j,k),e=O(C,q),r=O(q,C),i=J(z,_),$0=J(_,z),Q0=V[t],Y0=V[t+1],Z0=K(z,M,S),G0=K(_,N,x),V0=B+$0|0,U0=v+i+E(V0,B)|0;V0=V0+G0|0,U0=U0+Z0+E(V0,G0)|0,V0=V0+Y0|0,U0=U0+Q0+E(V0,Y0)|0,V0=V0+n|0,U0=U0+s+E(V0,n)|0;var X0=r+a|0,K0=e+m+E(X0,r)|0;v=S,B=x,S=M,x=N,M=z,N=_,_=g+V0|0,z=P+U0+E(_,g)|0,P=R,g=k,R=L,k=j,L=C,j=q,q=V0+X0|0,C=U0+K0+E(q,V0)|0}this._al=this._al+q|0,this._bl=this._bl+j|0,this._cl=this._cl+k|0,this._dl=this._dl+g|0,this._el=this._el+_|0,this._fl=this._fl+N|0,this._gl=this._gl+x|0,this._hl=this._hl+B|0,this._ah=this._ah+C+E(this._al,q)|0,this._bh=this._bh+L+E(this._bl,j)|0,this._ch=this._ch+R+E(this._cl,k)|0,this._dh=this._dh+P+E(this._dl,g)|0,this._eh=this._eh+z+E(this._el,_)|0,this._fh=this._fh+M+E(this._fl,N)|0,this._gh=this._gh+S+E(this._gl,x)|0,this._hh=this._hh+v+E(this._hl,B)|0},X.prototype._hash=function(){var T=G.allocUnsafe(64);function D(C,L,R){T.writeInt32BE(C,R),T.writeInt32BE(L,R+4)}return D(this._ah,this._al,0),D(this._bh,this._bl,8),D(this._ch,this._cl,16),D(this._dh,this._dl,24),D(this._eh,this._el,32),D(this._fh,this._fl,40),D(this._gh,this._gl,48),D(this._hh,this._hl,56),T},Q.exports=X}}),d$=q$({"node_modules/sha.js/sha384.js"($,Q){var Y=_$(),Z=h$(),G=y$(),V=k$().Buffer,U=new Array(160);function X(){this.init(),this._w=U,G.call(this,128,112)}Y(X,Z),X.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},X.prototype._hash=function(){var K=V.allocUnsafe(48);function I(O,J,F){K.writeInt32BE(O,F),K.writeInt32BE(J,F+4)}return I(this._ah,this._al,0),I(this._bh,this._bl,8),I(this._ch,this._cl,16),I(this._dh,this._dl,24),I(this._eh,this._el,32),I(this._fh,this._fl,40),K},Q.exports=X}}),b$=q$({"node_modules/sha.js/index.js"(Y,Q){var Y=Q.exports=function(Z){Z=Z.toLowerCase();var G=Y[Z];if(!G)throw new Error(Z+" is not supported (we accept pull requests)");return new G};Y.sha=w$(),Y.sha1=p$(),Y.sha224=c$(),Y.sha256=f$(),Y.sha384=d$(),Y.sha512=h$()}}),l$=q$({"node_modules/cipher-base/index.js"($,Q){var Y=k$().Buffer,Z=_$();function G(V){A$.Transform.call(this),this.hashMode=typeof V=="string",this.hashMode?this[V]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}Z(G,A$.Transform),G.prototype.update=function(V,U,X){typeof V=="string"&&(V=Y.from(V,U));var K=this._update(V);return this.hashMode?this:(X&&(K=this._toString(K,X)),K)},G.prototype.setAutoPadding=function(){},G.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},G.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},G.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},G.prototype._transform=function(V,U,X){var K;try{this.hashMode?this._update(V):this.push(this._update(V))}catch(I){K=I}finally{X(K)}},G.prototype._flush=function(V){var U;try{this.push(this.__final())}catch(X){U=X}V(U)},G.prototype._finalOrDigest=function(V){var U=this.__final()||Y.alloc(0);return V&&(U=this._toString(U,V,!0)),U},G.prototype._toString=function(V,U,X){if(this._decoder||(this._decoder=new z$(U),this._encoding=U),this._encoding!==U)throw new Error("can't switch encodings");var K=this._decoder.write(V);return X&&(K+=this._decoder.end()),K},Q.exports=G}}),o$=q$({"node_modules/create-hash/browser.js"($,Q){const Y=function V(U,X){this._options=X,this._hasher=new sY(U,X),this._finalized=!1};Y.prototype=Object.create(A$.Transform.prototype),Y.prototype.update=function V(U,X){return this._checkFinalized(),this._hasher.update(U,X),this},Y.prototype.digest=function V(U,X){return this._checkFinalized(),this._finalized=!0,this._hasher.digest(U,X)},Y.prototype._checkFinalized=function V(){if(this._finalized){var U=new Error("Digest already called");throw U.code="ERR_CRYPTO_HASH_FINALIZED",U}},Y.prototype.copy=function V(){const U=Object.create(Y.prototype);return U._options=this._options,U._hasher=this._hasher.copy(),U._finalized=this._finalized,U};const Z={__proto__:A$.Transform.prototype,...Y.prototype,_transform(V,U,X){this.update(V,U),X&&X()},_flush(V){this.push(this.digest()),V()}},G=["_events","_eventsCount","_final","_maxListeners","_maxListeners","_read","_undestroy","_writableState","_write","_writev","addListener","asIndexedPairs","closed","compose","constructor","cork","destroy","destroyed","drop","emit","end","errored","eventNames","every","filter","find","flatMap","forEach","getMaxListeners","hasOwnProperty","isPaused","isPrototypeOf","iterator","listenerCount","listeners","map","off","on","once","pause","pipe","prependListener","prependOnceListener","propertyIsEnumerable","push","rawListeners","read","readable","readableAborted","readableBuffer","readableDidRead","readableEncoding","readableEnded","readableFlowing","readableHighWaterMark","readableLength","readableObjectMode","reduce","removeAllListeners","removeListener","resume","setDefaultEncoding","setEncoding","setMaxListeners","some","take","toArray","toLocaleString","toString","uncork","unpipe","unshift","valueOf","wrap","writable","writableBuffer","writableCorked","writableEnded","writableFinished","writableHighWaterMark","writableLength","writableNeedDrain","writableObjectMode","write"];for(let V of G)Object.defineProperty(Y.prototype,V,{get(){return Object.setPrototypeOf(this,Z),A$.Transform.call(this,this._options),this[V]},enumerable:!1,configurable:!0});Q.exports=function V(U){return new Y(U)},Q.exports.createHash=Q.exports,Q.exports.Hash=Y}}),u$=q$({"node_modules/create-hmac/legacy.js"($,Q){var Y=_$(),Z=k$().Buffer,G=l$(),V=Z.alloc(128),U=64;function X(K,I){G.call(this,"digest"),typeof I=="string"&&(I=Z.from(I)),this._alg=K,this._key=I,I.length>U?I=K(I):I.lengthA){var H=J==="rmd160"?new X:K(J);F=H.update(F).digest()}else F.lengthY||G!==G)throw new TypeError("Bad key length")}}}),e$=q$({"node_modules/pbkdf2/lib/default-encoding.js"($,Q){var Y;global.process&&global.process.browser?Y="utf-8":global.process&&global.process.version?(Z=parseInt(process.version.split(".")[0].slice(1),10),Y=Z>=6?"utf-8":"binary"):Y="utf-8";var Z;Q.exports=Y}}),r$=q$({"node_modules/pbkdf2/lib/to-buffer.js"($,Q){var Y=k$().Buffer;Q.exports=function(Z,G,V){if(Y.isBuffer(Z))return Z;if(typeof Z=="string")return Y.from(Z,G);if(ArrayBuffer.isView(Z))return Y.from(Z.buffer);throw new TypeError(V+" must be a string, a Buffer, a typed array or a DataView")}}}),i$=q$({"node_modules/pbkdf2/lib/sync-browser.js"($,Q){var Y=n$(),Z=B$(),G=b$(),V=k$().Buffer,U=a$(),X=e$(),K=r$(),I=V.alloc(128),O={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function J(H,W,E){var T=F(H),D=H==="sha512"||H==="sha384"?128:64;W.length>D?W=T(W):W.length>>0},$.writeUInt32BE=function(G,V,U){G[0+U]=V>>>24,G[1+U]=V>>>16&255,G[2+U]=V>>>8&255,G[3+U]=V&255},$.ip=function(G,V,U,X){for(var K=0,I=0,O=6;O>=0;O-=2){for(var J=0;J<=24;J+=8)K<<=1,K|=V>>>J+O&1;for(var J=0;J<=24;J+=8)K<<=1,K|=G>>>J+O&1}for(var O=6;O>=0;O-=2){for(var J=1;J<=25;J+=8)I<<=1,I|=V>>>J+O&1;for(var J=1;J<=25;J+=8)I<<=1,I|=G>>>J+O&1}U[X+0]=K>>>0,U[X+1]=I>>>0},$.rip=function(G,V,U,X){for(var K=0,I=0,O=0;O<4;O++)for(var J=24;J>=0;J-=8)K<<=1,K|=V>>>J+O&1,K<<=1,K|=G>>>J+O&1;for(var O=4;O<8;O++)for(var J=24;J>=0;J-=8)I<<=1,I|=V>>>J+O&1,I<<=1,I|=G>>>J+O&1;U[X+0]=K>>>0,U[X+1]=I>>>0},$.pc1=function(G,V,U,X){for(var K=0,I=0,O=7;O>=5;O--){for(var J=0;J<=24;J+=8)K<<=1,K|=V>>J+O&1;for(var J=0;J<=24;J+=8)K<<=1,K|=G>>J+O&1}for(var J=0;J<=24;J+=8)K<<=1,K|=V>>J+O&1;for(var O=1;O<=3;O++){for(var J=0;J<=24;J+=8)I<<=1,I|=V>>J+O&1;for(var J=0;J<=24;J+=8)I<<=1,I|=G>>J+O&1}for(var J=0;J<=24;J+=8)I<<=1,I|=G>>J+O&1;U[X+0]=K>>>0,U[X+1]=I>>>0},$.r28shl=function(G,V){return G<>>28-V};var Q=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];$.pc2=function(G,V,U,X){for(var K=0,I=0,O=Q.length>>>1,J=0;J>>Q[J]&1;for(var J=O;J>>Q[J]&1;U[X+0]=K>>>0,U[X+1]=I>>>0},$.expand=function(G,V,U){var X=0,K=0;X=(G&1)<<5|G>>>27;for(var I=23;I>=15;I-=4)X<<=6,X|=G>>>I&63;for(var I=11;I>=3;I-=4)K|=G>>>I&63,K<<=6;K|=(G&31)<<1|G>>>31,V[U+0]=X>>>0,V[U+1]=K>>>0};var Y=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];$.substitute=function(G,V){for(var U=0,X=0;X<4;X++){var K=G>>>18-X*6&63,I=Y[X*64+K];U<<=4,U|=I}for(var X=0;X<4;X++){var K=V>>>18-X*6&63,I=Y[256+X*64+K];U<<=4,U|=I}return U>>>0};var Z=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];$.permute=function(G){for(var V=0,U=0;U>>Z[U]&1;return V>>>0},$.padSplit=function(G,V,U){for(var X=G.toString(2);X.length0;X--)V+=this._buffer(G,V),U+=this._flushBuffer(K,U);return V+=this._buffer(G,V),K},Z.prototype.final=function(G){var V;G&&(V=this.update(G));var U;return this.type==="encrypt"?U=this._finalEncrypt():U=this._finalDecrypt(),V?V.concat(U):U},Z.prototype._pad=function(G,V){if(V===0)return!1;for(;V>>1];J=G.r28shl(J,H),F=G.r28shl(F,H),G.pc2(J,F,I.keys,A)}},X.prototype._update=function(I,O,J,F){var A=this._desState,H=G.readUInt32BE(I,O),W=G.readUInt32BE(I,O+4);G.ip(H,W,A.tmp,0),H=A.tmp[0],W=A.tmp[1],this.type==="encrypt"?this._encrypt(A,H,W,A.tmp,0):this._decrypt(A,H,W,A.tmp,0),H=A.tmp[0],W=A.tmp[1],G.writeUInt32BE(J,H,F),G.writeUInt32BE(J,W,F+4)},X.prototype._pad=function(I,O){for(var J=I.length-O,F=O;F>>0,H=R}G.rip(W,H,F,A)},X.prototype._decrypt=function(I,O,J,F,A){for(var H=J,W=O,E=I.keys.length-2;E>=0;E-=2){var T=I.keys[E],D=I.keys[E+1];G.expand(H,I.tmp,0),T^=I.tmp[0],D^=I.tmp[1];var C=G.substitute(T,D),L=G.permute(C),R=H;H=(W^L)>>>0,W=R}G.rip(H,W,F,A)}}}),UQ=q$({"node_modules/des.js/lib/des/cbc.js"($){var Q=ZQ(),Y=_$(),Z={};function G(U){Q.equal(U.length,8,"Invalid IV length"),this.iv=new Array(8);for(var X=0;X>K%8,G._prev=Z(G._prev,U?J:F);return O}function Z(G,V){var U=G.length,X=-1,K=Q.allocUnsafe(G.length);for(G=Q.concat([G,Q.from([V])]);++X>7;return K}$.encrypt=function(G,V,U){for(var X=V.length,K=Q.allocUnsafe(X),I=-1;++I>>24]^W[C>>>16&255]^E[L>>>8&255]^T[R&255]^O[v++],z=H[C>>>24]^W[L>>>16&255]^E[R>>>8&255]^T[D&255]^O[v++],M=H[L>>>24]^W[R>>>16&255]^E[D>>>8&255]^T[C&255]^O[v++],S=H[R>>>24]^W[D>>>16&255]^E[C>>>8&255]^T[L&255]^O[v++],D=P,C=z,L=M,R=S;return P=(F[D>>>24]<<24|F[C>>>16&255]<<16|F[L>>>8&255]<<8|F[R&255])^O[v++],z=(F[C>>>24]<<24|F[L>>>16&255]<<16|F[R>>>8&255]<<8|F[D&255])^O[v++],M=(F[L>>>24]<<24|F[R>>>16&255]<<16|F[D>>>8&255]<<8|F[C&255])^O[v++],S=(F[R>>>24]<<24|F[D>>>16&255]<<16|F[C>>>8&255]<<8|F[L&255])^O[v++],P=P>>>0,z=z>>>0,M=M>>>0,S=S>>>0,[P,z,M,S]}var U=[0,1,2,4,8,16,32,64,128,27,54],X=function(){for(var I=new Array(256),O=0;O<256;O++)O<128?I[O]=O<<1:I[O]=O<<1^283;for(var J=[],F=[],A=[[],[],[],[]],H=[[],[],[],[]],W=0,E=0,T=0;T<256;++T){var D=E^E<<1^E<<2^E<<3^E<<4;D=D>>>8^D&255^99,J[W]=D,F[D]=W;var C=I[W],L=I[C],R=I[L],P=I[D]*257^D*16843008;A[0][W]=P<<24|P>>>8,A[1][W]=P<<16|P>>>16,A[2][W]=P<<8|P>>>24,A[3][W]=P,P=R*16843009^L*65537^C*257^W*16843008,H[0][D]=P<<24|P>>>8,H[1][D]=P<<16|P>>>16,H[2][D]=P<<8|P>>>24,H[3][D]=P,W===0?W=E=1:(W=C^I[I[I[R^C]]],E^=I[I[E]])}return{SBOX:J,INV_SBOX:F,SUB_MIX:A,INV_SUB_MIX:H}}();function K(I){this._key=Z(I),this._reset()}K.blockSize=16,K.keySize=32,K.prototype.blockSize=K.blockSize,K.prototype.keySize=K.keySize,K.prototype._reset=function(){for(var I=this._key,O=I.length,J=O+6,F=(J+1)*4,A=[],H=0;H>>24,W=X.SBOX[W>>>24]<<24|X.SBOX[W>>>16&255]<<16|X.SBOX[W>>>8&255]<<8|X.SBOX[W&255],W^=U[H/O|0]<<24):O>6&&H%O===4&&(W=X.SBOX[W>>>24]<<24|X.SBOX[W>>>16&255]<<16|X.SBOX[W>>>8&255]<<8|X.SBOX[W&255]),A[H]=A[H-O]^W}for(var E=[],T=0;T>>24]]^X.INV_SUB_MIX[1][X.SBOX[C>>>16&255]]^X.INV_SUB_MIX[2][X.SBOX[C>>>8&255]]^X.INV_SUB_MIX[3][X.SBOX[C&255]]}this._nRounds=J,this._keySchedule=A,this._invKeySchedule=E},K.prototype.encryptBlockRaw=function(I){return I=Z(I),V(I,this._keySchedule,X.SUB_MIX,X.SBOX,this._nRounds)},K.prototype.encryptBlock=function(I){var O=this.encryptBlockRaw(I),J=Y.allocUnsafe(16);return J.writeUInt32BE(O[0],0),J.writeUInt32BE(O[1],4),J.writeUInt32BE(O[2],8),J.writeUInt32BE(O[3],12),J},K.prototype.decryptBlock=function(I){I=Z(I);var O=I[1];I[1]=I[3],I[3]=O;var J=V(I,this._invKeySchedule,X.INV_SUB_MIX,X.INV_SBOX,this._nRounds),F=Y.allocUnsafe(16);return F.writeUInt32BE(J[0],0),F.writeUInt32BE(J[3],4),F.writeUInt32BE(J[2],8),F.writeUInt32BE(J[1],12),F},K.prototype.scrub=function(){G(this._keySchedule),G(this._invKeySchedule),G(this._key)},Q.exports.AES=K}}),RQ=q$({"node_modules/browserify-aes/ghash.js"($,Q){var Y=k$().Buffer,Z=Y.alloc(16,0);function G(X){return[X.readUInt32BE(0),X.readUInt32BE(4),X.readUInt32BE(8),X.readUInt32BE(12)]}function V(X){var K=Y.allocUnsafe(16);return K.writeUInt32BE(X[0]>>>0,0),K.writeUInt32BE(X[1]>>>0,4),K.writeUInt32BE(X[2]>>>0,8),K.writeUInt32BE(X[3]>>>0,12),K}function U(X){this.h=X,this.state=Y.alloc(16,0),this.cache=Y.allocUnsafe(0)}U.prototype.ghash=function(X){for(var K=-1;++K0;I--)X[I]=X[I]>>>1|(X[I-1]&1)<<31;X[0]=X[0]>>>1,J&&(X[0]=X[0]^225<<24)}this.state=V(K)},U.prototype.update=function(X){this.cache=Y.concat([this.cache,X]);for(var K;this.cache.length>=16;)K=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(K)},U.prototype.final=function(X,K){return this.cache.length&&this.ghash(Y.concat([this.cache,Z],16)),this.ghash(V([0,X,0,K])),this.state},Q.exports=U}}),PQ=q$({"node_modules/browserify-aes/authCipher.js"($,Q){var Y=LQ(),Z=k$().Buffer,G=l$(),V=_$(),U=RQ(),X=JQ(),K=TQ();function I(F,A){var H=0;F.length!==A.length&&H++;for(var W=Math.min(F.length,A.length),E=0;E0||K>0;){var A=new Z;A.update(F),A.update(V),U&&A.update(U),F=A.digest();var H=0;if(I>0){var W=O.length-I;H=Math.min(I,F.length),F.copy(O,W,0,H),I-=H}if(H0){var E=J.length-K,T=Math.min(K,F.length-H);F.copy(J,E,H,H+T),K-=T}}return F.fill(0),{key:O,iv:J}}Q.exports=G}}),SQ=q$({"node_modules/browserify-aes/encrypter.js"($){var Q=CQ(),Y=PQ(),Z=k$().Buffer,G=zQ(),V=l$(),U=LQ(),X=MQ(),K=_$();function I(H,W,E){V.call(this),this._cache=new J,this._cipher=new U.AES(W),this._prev=Z.from(E),this._mode=H,this._autopadding=!0}K(I,V),I.prototype._update=function(H){this._cache.add(H);for(var W,E,T=[];W=this._cache.get();)E=this._mode.encrypt(this,W),T.push(E);return Z.concat(T)};var O=Z.alloc(16,16);I.prototype._final=function(){var H=this._cache.flush();if(this._autopadding)return H=this._mode.encrypt(this,H),this._cipher.scrub(),H;if(!H.equals(O))throw this._cipher.scrub(),new Error("data not multiple of block length")},I.prototype.setAutoPadding=function(H){return this._autopadding=!!H,this};function J(){this.cache=Z.allocUnsafe(0)}J.prototype.add=function(H){this.cache=Z.concat([this.cache,H])},J.prototype.get=function(){if(this.cache.length>15){var H=this.cache.slice(0,16);return this.cache=this.cache.slice(16),H}return null},J.prototype.flush=function(){for(var H=16-this.cache.length,W=Z.allocUnsafe(H),E=-1;++E16)return W=this.cache.slice(0,16),this.cache=this.cache.slice(16),W}else if(this.cache.length>=16)return W=this.cache.slice(0,16),this.cache=this.cache.slice(16),W;return null},O.prototype.flush=function(){if(this.cache.length)return this.cache};function J(H){var W=H[15];if(W<1||W>16)throw new Error("unable to decrypt data");for(var E=-1;++E0?j:k},U.min=function(j,k){return j.cmp(k)<0?j:k},U.prototype._init=function(j,k,g){if(typeof j=="number")return this._initNumber(j,k,g);if(typeof j=="object")return this._initArray(j,k,g);k==="hex"&&(k=16),G(k===(k|0)&&k>=2&&k<=36),j=j.toString().replace(/\s+/g,"");var _=0;j[0]==="-"&&(_++,this.negative=1),_=0;_-=3)x=j[_]|j[_-1]<<8|j[_-2]<<16,this.words[N]|=x<>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);else if(g==="le")for(_=0,N=0;_>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);return this.strip()};function K(j,k){var g=j.charCodeAt(k);return g>=65&&g<=70?g-55:g>=97&&g<=102?g-87:g-48&15}function I(j,k,g){var _=K(j,g);return g-1>=k&&(_|=K(j,g-1)<<4),_}U.prototype._parseHex=function(j,k,g){this.length=Math.ceil((j.length-k)/6),this.words=new Array(this.length);for(var _=0;_=k;_-=2)B=I(j,k,_)<=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8;else{var y=j.length-k;for(_=y%2===0?k+1:k;_=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8}this.strip()};function O(j,k,g,_){for(var N=0,x=Math.min(j.length,g),B=k;B=49?N+=y-49+10:y>=17?N+=y-17+10:N+=y}return N}U.prototype._parseBase=function(j,k,g){this.words=[0],this.length=1;for(var _=0,N=1;N<=67108863;N*=k)_++;_--,N=N/k|0;for(var x=j.length-g,B=x%_,y=Math.min(x,x-B)+g,w=0,p=g;p1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},U.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],F=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],A=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(j,k){j=j||10,k=k|0||1;var g;if(j===16||j==="hex"){g="";for(var _=0,N=0,x=0;x>>24-_&16777215,N!==0||x!==this.length-1?g=J[6-y.length]+y+g:g=y+g,_+=2,_>=26&&(_-=26,x--)}for(N!==0&&(g=N.toString(16)+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(j===(j|0)&&j>=2&&j<=36){var w=F[j],p=A[j];g="";var f=this.clone();for(f.negative=0;!f.isZero();){var c=f.modn(p).toString(j);f=f.idivn(p),f.isZero()?g=c+g:g=J[w-c.length]+c+g}for(this.isZero()&&(g="0"+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var j=this.words[0];return this.length===2?j+=this.words[1]*67108864:this.length===3&&this.words[2]===1?j+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-j:j},U.prototype.toJSON=function(){return this.toString(16)},U.prototype.toBuffer=function(j,k){return G(typeof X<"u"),this.toArrayLike(X,j,k)},U.prototype.toArray=function(j,k){return this.toArrayLike(Array,j,k)},U.prototype.toArrayLike=function(j,k,g){var _=this.byteLength(),N=g||Math.max(1,_);G(_<=N,"byte array longer than desired length"),G(N>0,"Requested array length <= 0"),this.strip();var x=k==="le",B=new j(N),y,w,p=this.clone();if(x){for(w=0;!p.isZero();w++)y=p.andln(255),p.iushrn(8),B[w]=y;for(;w=4096&&(g+=13,k>>>=13),k>=64&&(g+=7,k>>>=7),k>=8&&(g+=4,k>>>=4),k>=2&&(g+=2,k>>>=2),g+k},U.prototype._zeroBits=function(j){if(j===0)return 26;var k=j,g=0;return(k&8191)===0&&(g+=13,k>>>=13),(k&127)===0&&(g+=7,k>>>=7),(k&15)===0&&(g+=4,k>>>=4),(k&3)===0&&(g+=2,k>>>=2),(k&1)===0&&g++,g},U.prototype.bitLength=function(){var j=this.words[this.length-1],k=this._countBits(j);return(this.length-1)*26+k};function H(j){for(var k=new Array(j.bitLength()),g=0;g>>N}return k}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var j=0,k=0;kj.length?this.clone().ior(j):j.clone().ior(this)},U.prototype.uor=function(j){return this.length>j.length?this.clone().iuor(j):j.clone().iuor(this)},U.prototype.iuand=function(j){var k;this.length>j.length?k=j:k=this;for(var g=0;gj.length?this.clone().iand(j):j.clone().iand(this)},U.prototype.uand=function(j){return this.length>j.length?this.clone().iuand(j):j.clone().iuand(this)},U.prototype.iuxor=function(j){var k,g;this.length>j.length?(k=this,g=j):(k=j,g=this);for(var _=0;_j.length?this.clone().ixor(j):j.clone().ixor(this)},U.prototype.uxor=function(j){return this.length>j.length?this.clone().iuxor(j):j.clone().iuxor(this)},U.prototype.inotn=function(j){G(typeof j=="number"&&j>=0);var k=Math.ceil(j/26)|0,g=j%26;this._expand(k),g>0&&k--;for(var _=0;_0&&(this.words[_]=~this.words[_]&67108863>>26-g),this.strip()},U.prototype.notn=function(j){return this.clone().inotn(j)},U.prototype.setn=function(j,k){G(typeof j=="number"&&j>=0);var g=j/26|0,_=j%26;return this._expand(g+1),k?this.words[g]=this.words[g]|1<<_:this.words[g]=this.words[g]&~(1<<_),this.strip()},U.prototype.iadd=function(j){var k;if(this.negative!==0&&j.negative===0)return this.negative=0,k=this.isub(j),this.negative^=1,this._normSign();if(this.negative===0&&j.negative!==0)return j.negative=0,k=this.isub(j),j.negative=1,k._normSign();var g,_;this.length>j.length?(g=this,_=j):(g=j,_=this);for(var N=0,x=0;x<_.length;x++)k=(g.words[x]|0)+(_.words[x]|0)+N,this.words[x]=k&67108863,N=k>>>26;for(;N!==0&&x>>26;if(this.length=g.length,N!==0)this.words[this.length]=N,this.length++;else if(g!==this)for(;xj.length?this.clone().iadd(j):j.clone().iadd(this)},U.prototype.isub=function(j){if(j.negative!==0){j.negative=0;var k=this.iadd(j);return j.negative=1,k._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(j),this.negative=1,this._normSign();var g=this.cmp(j);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var _,N;g>0?(_=this,N=j):(_=j,N=this);for(var x=0,B=0;B>26,this.words[B]=k&67108863;for(;x!==0&&B<_.length;B++)k=(_.words[B]|0)+x,x=k>>26,this.words[B]=k&67108863;if(x===0&&B<_.length&&_!==this)for(;B<_.length;B++)this.words[B]=_.words[B];return this.length=Math.max(this.length,B),_!==this&&(this.negative=1),this.strip()},U.prototype.sub=function(j){return this.clone().isub(j)};function W(j,k,g){g.negative=k.negative^j.negative;var _=j.length+k.length|0;g.length=_,_=_-1|0;var N=j.words[0]|0,x=k.words[0]|0,B=N*x,y=B&67108863,w=B/67108864|0;g.words[0]=y;for(var p=1;p<_;p++){for(var f=w>>>26,c=w&67108863,h=Math.min(p,k.length-1),d=Math.max(0,p-j.length+1);d<=h;d++){var b=p-d|0;N=j.words[b]|0,x=k.words[d]|0,B=N*x+c,f+=B/67108864|0,c=B&67108863}g.words[p]=c|0,w=f|0}return w!==0?g.words[p]=w|0:g.length--,g.strip()}var E=function(j,k,g){var _=j.words,N=k.words,x=g.words,B=0,y,w,p,f=_[0]|0,c=f&8191,h=f>>>13,d=_[1]|0,b=d&8191,l=d>>>13,o=_[2]|0,u=o&8191,n=o>>>13,s=_[3]|0,t=s&8191,m=s>>>13,a=_[4]|0,e=a&8191,r=a>>>13,i=_[5]|0,$0=i&8191,Q0=i>>>13,Y0=_[6]|0,Z0=Y0&8191,G0=Y0>>>13,V0=_[7]|0,U0=V0&8191,X0=V0>>>13,K0=_[8]|0,I0=K0&8191,O0=K0>>>13,J0=_[9]|0,F0=J0&8191,A0=J0>>>13,H0=N[0]|0,W0=H0&8191,E0=H0>>>13,T0=N[1]|0,D0=T0&8191,C0=T0>>>13,L0=N[2]|0,R0=L0&8191,P0=L0>>>13,z0=N[3]|0,M0=z0&8191,S0=z0>>>13,v0=N[4]|0,q0=v0&8191,j0=v0>>>13,k0=N[5]|0,g0=k0&8191,_0=k0>>>13,N0=N[6]|0,x0=N0&8191,B0=N0>>>13,y0=N[7]|0,w0=y0&8191,p0=y0>>>13,f0=N[8]|0,c0=f0&8191,h0=f0>>>13,d0=N[9]|0,b0=d0&8191,l0=d0>>>13;g.negative=j.negative^k.negative,g.length=19,y=Math.imul(c,W0),w=Math.imul(c,E0),w=w+Math.imul(h,W0)|0,p=Math.imul(h,E0);var o0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(o0>>>26)|0,o0&=67108863,y=Math.imul(b,W0),w=Math.imul(b,E0),w=w+Math.imul(l,W0)|0,p=Math.imul(l,E0),y=y+Math.imul(c,D0)|0,w=w+Math.imul(c,C0)|0,w=w+Math.imul(h,D0)|0,p=p+Math.imul(h,C0)|0;var u0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(u0>>>26)|0,u0&=67108863,y=Math.imul(u,W0),w=Math.imul(u,E0),w=w+Math.imul(n,W0)|0,p=Math.imul(n,E0),y=y+Math.imul(b,D0)|0,w=w+Math.imul(b,C0)|0,w=w+Math.imul(l,D0)|0,p=p+Math.imul(l,C0)|0,y=y+Math.imul(c,R0)|0,w=w+Math.imul(c,P0)|0,w=w+Math.imul(h,R0)|0,p=p+Math.imul(h,P0)|0;var n0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(n0>>>26)|0,n0&=67108863,y=Math.imul(t,W0),w=Math.imul(t,E0),w=w+Math.imul(m,W0)|0,p=Math.imul(m,E0),y=y+Math.imul(u,D0)|0,w=w+Math.imul(u,C0)|0,w=w+Math.imul(n,D0)|0,p=p+Math.imul(n,C0)|0,y=y+Math.imul(b,R0)|0,w=w+Math.imul(b,P0)|0,w=w+Math.imul(l,R0)|0,p=p+Math.imul(l,P0)|0,y=y+Math.imul(c,M0)|0,w=w+Math.imul(c,S0)|0,w=w+Math.imul(h,M0)|0,p=p+Math.imul(h,S0)|0;var s0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(s0>>>26)|0,s0&=67108863,y=Math.imul(e,W0),w=Math.imul(e,E0),w=w+Math.imul(r,W0)|0,p=Math.imul(r,E0),y=y+Math.imul(t,D0)|0,w=w+Math.imul(t,C0)|0,w=w+Math.imul(m,D0)|0,p=p+Math.imul(m,C0)|0,y=y+Math.imul(u,R0)|0,w=w+Math.imul(u,P0)|0,w=w+Math.imul(n,R0)|0,p=p+Math.imul(n,P0)|0,y=y+Math.imul(b,M0)|0,w=w+Math.imul(b,S0)|0,w=w+Math.imul(l,M0)|0,p=p+Math.imul(l,S0)|0,y=y+Math.imul(c,q0)|0,w=w+Math.imul(c,j0)|0,w=w+Math.imul(h,q0)|0,p=p+Math.imul(h,j0)|0;var t0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(t0>>>26)|0,t0&=67108863,y=Math.imul($0,W0),w=Math.imul($0,E0),w=w+Math.imul(Q0,W0)|0,p=Math.imul(Q0,E0),y=y+Math.imul(e,D0)|0,w=w+Math.imul(e,C0)|0,w=w+Math.imul(r,D0)|0,p=p+Math.imul(r,C0)|0,y=y+Math.imul(t,R0)|0,w=w+Math.imul(t,P0)|0,w=w+Math.imul(m,R0)|0,p=p+Math.imul(m,P0)|0,y=y+Math.imul(u,M0)|0,w=w+Math.imul(u,S0)|0,w=w+Math.imul(n,M0)|0,p=p+Math.imul(n,S0)|0,y=y+Math.imul(b,q0)|0,w=w+Math.imul(b,j0)|0,w=w+Math.imul(l,q0)|0,p=p+Math.imul(l,j0)|0,y=y+Math.imul(c,g0)|0,w=w+Math.imul(c,_0)|0,w=w+Math.imul(h,g0)|0,p=p+Math.imul(h,_0)|0;var m0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(m0>>>26)|0,m0&=67108863,y=Math.imul(Z0,W0),w=Math.imul(Z0,E0),w=w+Math.imul(G0,W0)|0,p=Math.imul(G0,E0),y=y+Math.imul($0,D0)|0,w=w+Math.imul($0,C0)|0,w=w+Math.imul(Q0,D0)|0,p=p+Math.imul(Q0,C0)|0,y=y+Math.imul(e,R0)|0,w=w+Math.imul(e,P0)|0,w=w+Math.imul(r,R0)|0,p=p+Math.imul(r,P0)|0,y=y+Math.imul(t,M0)|0,w=w+Math.imul(t,S0)|0,w=w+Math.imul(m,M0)|0,p=p+Math.imul(m,S0)|0,y=y+Math.imul(u,q0)|0,w=w+Math.imul(u,j0)|0,w=w+Math.imul(n,q0)|0,p=p+Math.imul(n,j0)|0,y=y+Math.imul(b,g0)|0,w=w+Math.imul(b,_0)|0,w=w+Math.imul(l,g0)|0,p=p+Math.imul(l,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,B0)|0,w=w+Math.imul(h,x0)|0,p=p+Math.imul(h,B0)|0;var a0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(a0>>>26)|0,a0&=67108863,y=Math.imul(U0,W0),w=Math.imul(U0,E0),w=w+Math.imul(X0,W0)|0,p=Math.imul(X0,E0),y=y+Math.imul(Z0,D0)|0,w=w+Math.imul(Z0,C0)|0,w=w+Math.imul(G0,D0)|0,p=p+Math.imul(G0,C0)|0,y=y+Math.imul($0,R0)|0,w=w+Math.imul($0,P0)|0,w=w+Math.imul(Q0,R0)|0,p=p+Math.imul(Q0,P0)|0,y=y+Math.imul(e,M0)|0,w=w+Math.imul(e,S0)|0,w=w+Math.imul(r,M0)|0,p=p+Math.imul(r,S0)|0,y=y+Math.imul(t,q0)|0,w=w+Math.imul(t,j0)|0,w=w+Math.imul(m,q0)|0,p=p+Math.imul(m,j0)|0,y=y+Math.imul(u,g0)|0,w=w+Math.imul(u,_0)|0,w=w+Math.imul(n,g0)|0,p=p+Math.imul(n,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,B0)|0,w=w+Math.imul(l,x0)|0,p=p+Math.imul(l,B0)|0,y=y+Math.imul(c,w0)|0,w=w+Math.imul(c,p0)|0,w=w+Math.imul(h,w0)|0,p=p+Math.imul(h,p0)|0;var e0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(e0>>>26)|0,e0&=67108863,y=Math.imul(I0,W0),w=Math.imul(I0,E0),w=w+Math.imul(O0,W0)|0,p=Math.imul(O0,E0),y=y+Math.imul(U0,D0)|0,w=w+Math.imul(U0,C0)|0,w=w+Math.imul(X0,D0)|0,p=p+Math.imul(X0,C0)|0,y=y+Math.imul(Z0,R0)|0,w=w+Math.imul(Z0,P0)|0,w=w+Math.imul(G0,R0)|0,p=p+Math.imul(G0,P0)|0,y=y+Math.imul($0,M0)|0,w=w+Math.imul($0,S0)|0,w=w+Math.imul(Q0,M0)|0,p=p+Math.imul(Q0,S0)|0,y=y+Math.imul(e,q0)|0,w=w+Math.imul(e,j0)|0,w=w+Math.imul(r,q0)|0,p=p+Math.imul(r,j0)|0,y=y+Math.imul(t,g0)|0,w=w+Math.imul(t,_0)|0,w=w+Math.imul(m,g0)|0,p=p+Math.imul(m,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,B0)|0,w=w+Math.imul(n,x0)|0,p=p+Math.imul(n,B0)|0,y=y+Math.imul(b,w0)|0,w=w+Math.imul(b,p0)|0,w=w+Math.imul(l,w0)|0,p=p+Math.imul(l,p0)|0,y=y+Math.imul(c,c0)|0,w=w+Math.imul(c,h0)|0,w=w+Math.imul(h,c0)|0,p=p+Math.imul(h,h0)|0;var r0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(r0>>>26)|0,r0&=67108863,y=Math.imul(F0,W0),w=Math.imul(F0,E0),w=w+Math.imul(A0,W0)|0,p=Math.imul(A0,E0),y=y+Math.imul(I0,D0)|0,w=w+Math.imul(I0,C0)|0,w=w+Math.imul(O0,D0)|0,p=p+Math.imul(O0,C0)|0,y=y+Math.imul(U0,R0)|0,w=w+Math.imul(U0,P0)|0,w=w+Math.imul(X0,R0)|0,p=p+Math.imul(X0,P0)|0,y=y+Math.imul(Z0,M0)|0,w=w+Math.imul(Z0,S0)|0,w=w+Math.imul(G0,M0)|0,p=p+Math.imul(G0,S0)|0,y=y+Math.imul($0,q0)|0,w=w+Math.imul($0,j0)|0,w=w+Math.imul(Q0,q0)|0,p=p+Math.imul(Q0,j0)|0,y=y+Math.imul(e,g0)|0,w=w+Math.imul(e,_0)|0,w=w+Math.imul(r,g0)|0,p=p+Math.imul(r,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,B0)|0,w=w+Math.imul(m,x0)|0,p=p+Math.imul(m,B0)|0,y=y+Math.imul(u,w0)|0,w=w+Math.imul(u,p0)|0,w=w+Math.imul(n,w0)|0,p=p+Math.imul(n,p0)|0,y=y+Math.imul(b,c0)|0,w=w+Math.imul(b,h0)|0,w=w+Math.imul(l,c0)|0,p=p+Math.imul(l,h0)|0,y=y+Math.imul(c,b0)|0,w=w+Math.imul(c,l0)|0,w=w+Math.imul(h,b0)|0,p=p+Math.imul(h,l0)|0;var i0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(i0>>>26)|0,i0&=67108863,y=Math.imul(F0,D0),w=Math.imul(F0,C0),w=w+Math.imul(A0,D0)|0,p=Math.imul(A0,C0),y=y+Math.imul(I0,R0)|0,w=w+Math.imul(I0,P0)|0,w=w+Math.imul(O0,R0)|0,p=p+Math.imul(O0,P0)|0,y=y+Math.imul(U0,M0)|0,w=w+Math.imul(U0,S0)|0,w=w+Math.imul(X0,M0)|0,p=p+Math.imul(X0,S0)|0,y=y+Math.imul(Z0,q0)|0,w=w+Math.imul(Z0,j0)|0,w=w+Math.imul(G0,q0)|0,p=p+Math.imul(G0,j0)|0,y=y+Math.imul($0,g0)|0,w=w+Math.imul($0,_0)|0,w=w+Math.imul(Q0,g0)|0,p=p+Math.imul(Q0,_0)|0,y=y+Math.imul(e,x0)|0,w=w+Math.imul(e,B0)|0,w=w+Math.imul(r,x0)|0,p=p+Math.imul(r,B0)|0,y=y+Math.imul(t,w0)|0,w=w+Math.imul(t,p0)|0,w=w+Math.imul(m,w0)|0,p=p+Math.imul(m,p0)|0,y=y+Math.imul(u,c0)|0,w=w+Math.imul(u,h0)|0,w=w+Math.imul(n,c0)|0,p=p+Math.imul(n,h0)|0,y=y+Math.imul(b,b0)|0,w=w+Math.imul(b,l0)|0,w=w+Math.imul(l,b0)|0,p=p+Math.imul(l,l0)|0;var $$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+($$>>>26)|0,$$&=67108863,y=Math.imul(F0,R0),w=Math.imul(F0,P0),w=w+Math.imul(A0,R0)|0,p=Math.imul(A0,P0),y=y+Math.imul(I0,M0)|0,w=w+Math.imul(I0,S0)|0,w=w+Math.imul(O0,M0)|0,p=p+Math.imul(O0,S0)|0,y=y+Math.imul(U0,q0)|0,w=w+Math.imul(U0,j0)|0,w=w+Math.imul(X0,q0)|0,p=p+Math.imul(X0,j0)|0,y=y+Math.imul(Z0,g0)|0,w=w+Math.imul(Z0,_0)|0,w=w+Math.imul(G0,g0)|0,p=p+Math.imul(G0,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,B0)|0,w=w+Math.imul(Q0,x0)|0,p=p+Math.imul(Q0,B0)|0,y=y+Math.imul(e,w0)|0,w=w+Math.imul(e,p0)|0,w=w+Math.imul(r,w0)|0,p=p+Math.imul(r,p0)|0,y=y+Math.imul(t,c0)|0,w=w+Math.imul(t,h0)|0,w=w+Math.imul(m,c0)|0,p=p+Math.imul(m,h0)|0,y=y+Math.imul(u,b0)|0,w=w+Math.imul(u,l0)|0,w=w+Math.imul(n,b0)|0,p=p+Math.imul(n,l0)|0;var Q$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,y=Math.imul(F0,M0),w=Math.imul(F0,S0),w=w+Math.imul(A0,M0)|0,p=Math.imul(A0,S0),y=y+Math.imul(I0,q0)|0,w=w+Math.imul(I0,j0)|0,w=w+Math.imul(O0,q0)|0,p=p+Math.imul(O0,j0)|0,y=y+Math.imul(U0,g0)|0,w=w+Math.imul(U0,_0)|0,w=w+Math.imul(X0,g0)|0,p=p+Math.imul(X0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,B0)|0,w=w+Math.imul(G0,x0)|0,p=p+Math.imul(G0,B0)|0,y=y+Math.imul($0,w0)|0,w=w+Math.imul($0,p0)|0,w=w+Math.imul(Q0,w0)|0,p=p+Math.imul(Q0,p0)|0,y=y+Math.imul(e,c0)|0,w=w+Math.imul(e,h0)|0,w=w+Math.imul(r,c0)|0,p=p+Math.imul(r,h0)|0,y=y+Math.imul(t,b0)|0,w=w+Math.imul(t,l0)|0,w=w+Math.imul(m,b0)|0,p=p+Math.imul(m,l0)|0;var Y$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,y=Math.imul(F0,q0),w=Math.imul(F0,j0),w=w+Math.imul(A0,q0)|0,p=Math.imul(A0,j0),y=y+Math.imul(I0,g0)|0,w=w+Math.imul(I0,_0)|0,w=w+Math.imul(O0,g0)|0,p=p+Math.imul(O0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,B0)|0,w=w+Math.imul(X0,x0)|0,p=p+Math.imul(X0,B0)|0,y=y+Math.imul(Z0,w0)|0,w=w+Math.imul(Z0,p0)|0,w=w+Math.imul(G0,w0)|0,p=p+Math.imul(G0,p0)|0,y=y+Math.imul($0,c0)|0,w=w+Math.imul($0,h0)|0,w=w+Math.imul(Q0,c0)|0,p=p+Math.imul(Q0,h0)|0,y=y+Math.imul(e,b0)|0,w=w+Math.imul(e,l0)|0,w=w+Math.imul(r,b0)|0,p=p+Math.imul(r,l0)|0;var Z$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,y=Math.imul(F0,g0),w=Math.imul(F0,_0),w=w+Math.imul(A0,g0)|0,p=Math.imul(A0,_0),y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,B0)|0,w=w+Math.imul(O0,x0)|0,p=p+Math.imul(O0,B0)|0,y=y+Math.imul(U0,w0)|0,w=w+Math.imul(U0,p0)|0,w=w+Math.imul(X0,w0)|0,p=p+Math.imul(X0,p0)|0,y=y+Math.imul(Z0,c0)|0,w=w+Math.imul(Z0,h0)|0,w=w+Math.imul(G0,c0)|0,p=p+Math.imul(G0,h0)|0,y=y+Math.imul($0,b0)|0,w=w+Math.imul($0,l0)|0,w=w+Math.imul(Q0,b0)|0,p=p+Math.imul(Q0,l0)|0;var G$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(G$>>>26)|0,G$&=67108863,y=Math.imul(F0,x0),w=Math.imul(F0,B0),w=w+Math.imul(A0,x0)|0,p=Math.imul(A0,B0),y=y+Math.imul(I0,w0)|0,w=w+Math.imul(I0,p0)|0,w=w+Math.imul(O0,w0)|0,p=p+Math.imul(O0,p0)|0,y=y+Math.imul(U0,c0)|0,w=w+Math.imul(U0,h0)|0,w=w+Math.imul(X0,c0)|0,p=p+Math.imul(X0,h0)|0,y=y+Math.imul(Z0,b0)|0,w=w+Math.imul(Z0,l0)|0,w=w+Math.imul(G0,b0)|0,p=p+Math.imul(G0,l0)|0;var V$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(V$>>>26)|0,V$&=67108863,y=Math.imul(F0,w0),w=Math.imul(F0,p0),w=w+Math.imul(A0,w0)|0,p=Math.imul(A0,p0),y=y+Math.imul(I0,c0)|0,w=w+Math.imul(I0,h0)|0,w=w+Math.imul(O0,c0)|0,p=p+Math.imul(O0,h0)|0,y=y+Math.imul(U0,b0)|0,w=w+Math.imul(U0,l0)|0,w=w+Math.imul(X0,b0)|0,p=p+Math.imul(X0,l0)|0;var U$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(U$>>>26)|0,U$&=67108863,y=Math.imul(F0,c0),w=Math.imul(F0,h0),w=w+Math.imul(A0,c0)|0,p=Math.imul(A0,h0),y=y+Math.imul(I0,b0)|0,w=w+Math.imul(I0,l0)|0,w=w+Math.imul(O0,b0)|0,p=p+Math.imul(O0,l0)|0;var X$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(X$>>>26)|0,X$&=67108863,y=Math.imul(F0,b0),w=Math.imul(F0,l0),w=w+Math.imul(A0,b0)|0,p=Math.imul(A0,l0);var K$=(B+y|0)+((w&8191)<<13)|0;return B=(p+(w>>>13)|0)+(K$>>>26)|0,K$&=67108863,x[0]=o0,x[1]=u0,x[2]=n0,x[3]=s0,x[4]=t0,x[5]=m0,x[6]=a0,x[7]=e0,x[8]=r0,x[9]=i0,x[10]=$$,x[11]=Q$,x[12]=Y$,x[13]=Z$,x[14]=G$,x[15]=V$,x[16]=U$,x[17]=X$,x[18]=K$,B!==0&&(x[19]=B,g.length++),g};Math.imul||(E=W);function T(j,k,g){g.negative=k.negative^j.negative,g.length=j.length+k.length;for(var _=0,N=0,x=0;x>>26)|0,N+=B>>>26,B&=67108863}g.words[x]=y,_=B,B=N}return _!==0?g.words[x]=_:g.length--,g.strip()}function D(j,k,g){var _=new C;return _.mulp(j,k,g)}U.prototype.mulTo=function(j,k){var g,_=this.length+j.length;return this.length===10&&j.length===10?g=E(this,j,k):_<63?g=W(this,j,k):_<1024?g=T(this,j,k):g=D(this,j,k),g};function C(j,k){this.x=j,this.y=k}C.prototype.makeRBT=function(j){for(var k=new Array(j),g=U.prototype._countBits(j)-1,_=0;_>=1;return _},C.prototype.permute=function(j,k,g,_,N,x){for(var B=0;B>>1)N++;return 1<>>13,g[2*x+1]=N&8191,N=N>>>13;for(x=2*k;x<_;++x)g[x]=0;G(N===0),G((N&-8192)===0)},C.prototype.stub=function(j){for(var k=new Array(j),g=0;g>=26,k+=_/67108864|0,k+=N>>>26,this.words[g]=N&67108863}return k!==0&&(this.words[g]=k,this.length++),this},U.prototype.muln=function(j){return this.clone().imuln(j)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(j){var k=H(j);if(k.length===0)return new U(1);for(var g=this,_=0;_=0);var k=j%26,g=(j-k)/26,_=67108863>>>26-k<<26-k,N;if(k!==0){var x=0;for(N=0;N>>26-k}x&&(this.words[N]=x,this.length++)}if(g!==0){for(N=this.length-1;N>=0;N--)this.words[N+g]=this.words[N];for(N=0;N=0);var _;k?_=(k-k%26)/26:_=0;var N=j%26,x=Math.min((j-N)/26,this.length),B=67108863^67108863>>>N<x)for(this.length-=x,w=0;w=0&&(p!==0||w>=_);w--){var f=this.words[w]|0;this.words[w]=p<<26-N|f>>>N,p=f&B}return y&&p!==0&&(y.words[y.length++]=p),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},U.prototype.ishrn=function(j,k,g){return G(this.negative===0),this.iushrn(j,k,g)},U.prototype.shln=function(j){return this.clone().ishln(j)},U.prototype.ushln=function(j){return this.clone().iushln(j)},U.prototype.shrn=function(j){return this.clone().ishrn(j)},U.prototype.ushrn=function(j){return this.clone().iushrn(j)},U.prototype.testn=function(j){G(typeof j=="number"&&j>=0);var k=j%26,g=(j-k)/26,_=1<=0);var k=j%26,g=(j-k)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(k!==0&&g++,this.length=Math.min(g,this.length),k!==0){var _=67108863^67108863>>>k<=67108864;k++)this.words[k]-=67108864,k===this.length-1?this.words[k+1]=1:this.words[k+1]++;return this.length=Math.max(this.length,k+1),this},U.prototype.isubn=function(j){if(G(typeof j=="number"),G(j<67108864),j<0)return this.iaddn(-j);if(this.negative!==0)return this.negative=0,this.iaddn(j),this.negative=1,this;if(this.words[0]-=j,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var k=0;k>26)-(y/67108864|0),this.words[N+g]=x&67108863}for(;N>26,this.words[N+g]=x&67108863;if(B===0)return this.strip();for(G(B===-1),B=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},U.prototype._wordDiv=function(j,k){var g=this.length-j.length,_=this.clone(),N=j,x=N.words[N.length-1]|0,B=this._countBits(x);g=26-B,g!==0&&(N=N.ushln(g),_.iushln(g),x=N.words[N.length-1]|0);var y=_.length-N.length,w;if(k!=="mod"){w=new U(null),w.length=y+1,w.words=new Array(w.length);for(var p=0;p=0;c--){var h=(_.words[N.length+c]|0)*67108864+(_.words[N.length+c-1]|0);for(h=Math.min(h/x|0,67108863),_._ishlnsubmul(N,h,c);_.negative!==0;)h--,_.negative=0,_._ishlnsubmul(N,1,c),_.isZero()||(_.negative^=1);w&&(w.words[c]=h)}return w&&w.strip(),_.strip(),k!=="div"&&g!==0&&_.iushrn(g),{div:w||null,mod:_}},U.prototype.divmod=function(j,k,g){if(G(!j.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var _,N,x;return this.negative!==0&&j.negative===0?(x=this.neg().divmod(j,k),k!=="mod"&&(_=x.div.neg()),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.iadd(j)),{div:_,mod:N}):this.negative===0&&j.negative!==0?(x=this.divmod(j.neg(),k),k!=="mod"&&(_=x.div.neg()),{div:_,mod:x.mod}):(this.negative&j.negative)!==0?(x=this.neg().divmod(j.neg(),k),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.isub(j)),{div:x.div,mod:N}):j.length>this.length||this.cmp(j)<0?{div:new U(0),mod:this}:j.length===1?k==="div"?{div:this.divn(j.words[0]),mod:null}:k==="mod"?{div:null,mod:new U(this.modn(j.words[0]))}:{div:this.divn(j.words[0]),mod:new U(this.modn(j.words[0]))}:this._wordDiv(j,k)},U.prototype.div=function(j){return this.divmod(j,"div",!1).div},U.prototype.mod=function(j){return this.divmod(j,"mod",!1).mod},U.prototype.umod=function(j){return this.divmod(j,"mod",!0).mod},U.prototype.divRound=function(j){var k=this.divmod(j);if(k.mod.isZero())return k.div;var g=k.div.negative!==0?k.mod.isub(j):k.mod,_=j.ushrn(1),N=j.andln(1),x=g.cmp(_);return x<0||N===1&&x===0?k.div:k.div.negative!==0?k.div.isubn(1):k.div.iaddn(1)},U.prototype.modn=function(j){G(j<=67108863);for(var k=(1<<26)%j,g=0,_=this.length-1;_>=0;_--)g=(k*g+(this.words[_]|0))%j;return g},U.prototype.idivn=function(j){G(j<=67108863);for(var k=0,g=this.length-1;g>=0;g--){var _=(this.words[g]|0)+k*67108864;this.words[g]=_/j|0,k=_%j}return this.strip()},U.prototype.divn=function(j){return this.clone().idivn(j)},U.prototype.egcd=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=new U(0),B=new U(1),y=0;k.isEven()&&g.isEven();)k.iushrn(1),g.iushrn(1),++y;for(var w=g.clone(),p=k.clone();!k.isZero();){for(var f=0,c=1;(k.words[0]&c)===0&&f<26;++f,c<<=1);if(f>0)for(k.iushrn(f);f-- >0;)(_.isOdd()||N.isOdd())&&(_.iadd(w),N.isub(p)),_.iushrn(1),N.iushrn(1);for(var h=0,d=1;(g.words[0]&d)===0&&h<26;++h,d<<=1);if(h>0)for(g.iushrn(h);h-- >0;)(x.isOdd()||B.isOdd())&&(x.iadd(w),B.isub(p)),x.iushrn(1),B.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(x),N.isub(B)):(g.isub(k),x.isub(_),B.isub(N))}return{a:x,b:B,gcd:g.iushln(y)}},U.prototype._invmp=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=g.clone();k.cmpn(1)>0&&g.cmpn(1)>0;){for(var B=0,y=1;(k.words[0]&y)===0&&B<26;++B,y<<=1);if(B>0)for(k.iushrn(B);B-- >0;)_.isOdd()&&_.iadd(x),_.iushrn(1);for(var w=0,p=1;(g.words[0]&p)===0&&w<26;++w,p<<=1);if(w>0)for(g.iushrn(w);w-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(N)):(g.isub(k),N.isub(_))}var f;return k.cmpn(1)===0?f=_:f=N,f.cmpn(0)<0&&f.iadd(j),f},U.prototype.gcd=function(j){if(this.isZero())return j.abs();if(j.isZero())return this.abs();var k=this.clone(),g=j.clone();k.negative=0,g.negative=0;for(var _=0;k.isEven()&&g.isEven();_++)k.iushrn(1),g.iushrn(1);do{for(;k.isEven();)k.iushrn(1);for(;g.isEven();)g.iushrn(1);var N=k.cmp(g);if(N<0){var x=k;k=g,g=x}else if(N===0||g.cmpn(1)===0)break;k.isub(g)}while(!0);return g.iushln(_)},U.prototype.invm=function(j){return this.egcd(j).a.umod(j)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(j){return this.words[0]&j},U.prototype.bincn=function(j){G(typeof j=="number");var k=j%26,g=(j-k)/26,_=1<>>26,B&=67108863,this.words[x]=B}return N!==0&&(this.words[x]=N,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(j){var k=j<0;if(this.negative!==0&&!k)return-1;if(this.negative===0&&k)return 1;this.strip();var g;if(this.length>1)g=1;else{k&&(j=-j),G(j<=67108863,"Number is too big");var _=this.words[0]|0;g=_===j?0:_j.length)return 1;if(this.length=0;g--){var _=this.words[g]|0,N=j.words[g]|0;if(_!==N){_N&&(k=1);break}}return k},U.prototype.gtn=function(j){return this.cmpn(j)===1},U.prototype.gt=function(j){return this.cmp(j)===1},U.prototype.gten=function(j){return this.cmpn(j)>=0},U.prototype.gte=function(j){return this.cmp(j)>=0},U.prototype.ltn=function(j){return this.cmpn(j)===-1},U.prototype.lt=function(j){return this.cmp(j)===-1},U.prototype.lten=function(j){return this.cmpn(j)<=0},U.prototype.lte=function(j){return this.cmp(j)<=0},U.prototype.eqn=function(j){return this.cmpn(j)===0},U.prototype.eq=function(j){return this.cmp(j)===0},U.red=function(j){return new v(j)},U.prototype.toRed=function(j){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),j.convertTo(this)._forceRed(j)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(j){return this.red=j,this},U.prototype.forceRed=function(j){return G(!this.red,"Already a number in reduction context"),this._forceRed(j)},U.prototype.redAdd=function(j){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,j)},U.prototype.redIAdd=function(j){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,j)},U.prototype.redSub=function(j){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,j)},U.prototype.redISub=function(j){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,j)},U.prototype.redShl=function(j){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,j)},U.prototype.redMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.mul(this,j)},U.prototype.redIMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.imul(this,j)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(j){return G(this.red&&!j.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,j)};var L={k256:null,p224:null,p192:null,p25519:null};function R(j,k){this.name=j,this.p=new U(k,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}R.prototype._tmp=function(){var j=new U(null);return j.words=new Array(Math.ceil(this.n/13)),j},R.prototype.ireduce=function(j){var k=j,g;do this.split(k,this.tmp),k=this.imulK(k),k=k.iadd(this.tmp),g=k.bitLength();while(g>this.n);var _=g0?k.isub(this.p):k.strip!==void 0?k.strip():k._strip(),k},R.prototype.split=function(j,k){j.iushrn(this.n,0,k)},R.prototype.imulK=function(j){return j.imul(this.k)};function P(){R.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(P,R),P.prototype.split=function(j,k){for(var g=4194303,_=Math.min(j.length,9),N=0;N<_;N++)k.words[N]=j.words[N];if(k.length=_,j.length<=9){j.words[0]=0,j.length=1;return}var x=j.words[9];for(k.words[k.length++]=x&g,N=10;N>>22,x=B}x>>>=22,j.words[N-10]=x,x===0&&j.length>10?j.length-=10:j.length-=9},P.prototype.imulK=function(j){j.words[j.length]=0,j.words[j.length+1]=0,j.length+=2;for(var k=0,g=0;g>>=26,j.words[g]=N,k=_}return k!==0&&(j.words[j.length++]=k),j},U._prime=function(j){if(L[j])return L[j];var k;if(j==="k256")k=new P;else if(j==="p224")k=new z;else if(j==="p192")k=new M;else if(j==="p25519")k=new S;else throw new Error("Unknown prime "+j);return L[j]=k,k};function v(j){if(typeof j=="string"){var k=U._prime(j);this.m=k.p,this.prime=k}else G(j.gtn(1),"modulus must be greater than 1"),this.m=j,this.prime=null}v.prototype._verify1=function(j){G(j.negative===0,"red works only with positives"),G(j.red,"red works only with red numbers")},v.prototype._verify2=function(j,k){G((j.negative|k.negative)===0,"red works only with positives"),G(j.red&&j.red===k.red,"red works only with red numbers")},v.prototype.imod=function(j){return this.prime?this.prime.ireduce(j)._forceRed(this):j.umod(this.m)._forceRed(this)},v.prototype.neg=function(j){return j.isZero()?j.clone():this.m.sub(j)._forceRed(this)},v.prototype.add=function(j,k){this._verify2(j,k);var g=j.add(k);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},v.prototype.iadd=function(j,k){this._verify2(j,k);var g=j.iadd(k);return g.cmp(this.m)>=0&&g.isub(this.m),g},v.prototype.sub=function(j,k){this._verify2(j,k);var g=j.sub(k);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},v.prototype.isub=function(j,k){this._verify2(j,k);var g=j.isub(k);return g.cmpn(0)<0&&g.iadd(this.m),g},v.prototype.shl=function(j,k){return this._verify1(j),this.imod(j.ushln(k))},v.prototype.imul=function(j,k){return this._verify2(j,k),this.imod(j.imul(k))},v.prototype.mul=function(j,k){return this._verify2(j,k),this.imod(j.mul(k))},v.prototype.isqr=function(j){return this.imul(j,j.clone())},v.prototype.sqr=function(j){return this.mul(j,j)},v.prototype.sqrt=function(j){if(j.isZero())return j.clone();var k=this.m.andln(3);if(G(k%2===1),k===3){var g=this.m.add(new U(1)).iushrn(2);return this.pow(j,g)}for(var _=this.m.subn(1),N=0;!_.isZero()&&_.andln(1)===0;)N++,_.iushrn(1);G(!_.isZero());var x=new U(1).toRed(this),B=x.redNeg(),y=this.m.subn(1).iushrn(1),w=this.m.bitLength();for(w=new U(2*w*w).toRed(this);this.pow(w,y).cmp(B)!==0;)w.redIAdd(B);for(var p=this.pow(w,_),f=this.pow(j,_.addn(1).iushrn(1)),c=this.pow(j,_),h=N;c.cmp(x)!==0;){for(var d=c,b=0;d.cmp(x)!==0;b++)d=d.redSqr();G(b=0;N--){for(var p=k.words[N],f=w-1;f>=0;f--){var c=p>>f&1;if(x!==_[0]&&(x=this.sqr(x)),c===0&&B===0){y=0;continue}B<<=1,B|=c,y++,!(y!==g&&(N!==0||f!==0))&&(x=this.mul(x,_[B]),y=0,B=0)}w=26}return x},v.prototype.convertTo=function(j){var k=j.umod(this.m);return k===j?k.clone():k},v.prototype.convertFrom=function(j){var k=j.clone();return k.red=null,k},U.mont=function(j){return new q(j)};function q(j){v.call(this,j),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(q,v),q.prototype.convertTo=function(j){return this.imod(j.ushln(this.shift))},q.prototype.convertFrom=function(j){var k=this.imod(j.mul(this.rinv));return k.red=null,k},q.prototype.imul=function(j,k){if(j.isZero()||k.isZero())return j.words[0]=0,j.length=1,j;var g=j.imul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.mul=function(j,k){if(j.isZero()||k.isZero())return new U(0)._forceRed(this);var g=j.mul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.invm=function(j){var k=this.imod(j._invmp(this.m).mul(this.r2));return k._forceRed(this)}})(typeof Q>"u"||Q,$)}}),_Q=q$({"node_modules/miller-rabin/node_modules/bn.js/lib/bn.js"($,Q){(function(Y,Z){function G(j,k){if(!j)throw new Error(k||"Assertion failed")}function V(j,k){j.super_=k;var g=function(){};g.prototype=k.prototype,j.prototype=new g,j.prototype.constructor=j}function U(j,k,g){if(U.isBN(j))return j;this.negative=0,this.words=null,this.length=0,this.red=null,j!==null&&((k==="le"||k==="be")&&(g=k,k=10),this._init(j||0,k||10,g||"be"))}typeof Y=="object"?Y.exports=U:Z.BN=U,U.BN=U,U.wordSize=26;var X=F$;U.isBN=function(j){return j instanceof U?!0:j!==null&&typeof j=="object"&&j.constructor.wordSize===U.wordSize&&Array.isArray(j.words)},U.max=function(j,k){return j.cmp(k)>0?j:k},U.min=function(j,k){return j.cmp(k)<0?j:k},U.prototype._init=function(j,k,g){if(typeof j=="number")return this._initNumber(j,k,g);if(typeof j=="object")return this._initArray(j,k,g);k==="hex"&&(k=16),G(k===(k|0)&&k>=2&&k<=36),j=j.toString().replace(/\s+/g,"");var _=0;j[0]==="-"&&(_++,this.negative=1),_=0;_-=3)x=j[_]|j[_-1]<<8|j[_-2]<<16,this.words[N]|=x<>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);else if(g==="le")for(_=0,N=0;_>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);return this.strip()};function K(j,k){var g=j.charCodeAt(k);return g>=65&&g<=70?g-55:g>=97&&g<=102?g-87:g-48&15}function I(j,k,g){var _=K(j,g);return g-1>=k&&(_|=K(j,g-1)<<4),_}U.prototype._parseHex=function(j,k,g){this.length=Math.ceil((j.length-k)/6),this.words=new Array(this.length);for(var _=0;_=k;_-=2)B=I(j,k,_)<=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8;else{var y=j.length-k;for(_=y%2===0?k+1:k;_=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8}this.strip()};function O(j,k,g,_){for(var N=0,x=Math.min(j.length,g),B=k;B=49?N+=y-49+10:y>=17?N+=y-17+10:N+=y}return N}U.prototype._parseBase=function(j,k,g){this.words=[0],this.length=1;for(var _=0,N=1;N<=67108863;N*=k)_++;_--,N=N/k|0;for(var x=j.length-g,B=x%_,y=Math.min(x,x-B)+g,w=0,p=g;p1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},U.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],F=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],A=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(j,k){j=j||10,k=k|0||1;var g;if(j===16||j==="hex"){g="";for(var _=0,N=0,x=0;x>>24-_&16777215,N!==0||x!==this.length-1?g=J[6-y.length]+y+g:g=y+g,_+=2,_>=26&&(_-=26,x--)}for(N!==0&&(g=N.toString(16)+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(j===(j|0)&&j>=2&&j<=36){var w=F[j],p=A[j];g="";var f=this.clone();for(f.negative=0;!f.isZero();){var c=f.modn(p).toString(j);f=f.idivn(p),f.isZero()?g=c+g:g=J[w-c.length]+c+g}for(this.isZero()&&(g="0"+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var j=this.words[0];return this.length===2?j+=this.words[1]*67108864:this.length===3&&this.words[2]===1?j+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-j:j},U.prototype.toJSON=function(){return this.toString(16)},U.prototype.toBuffer=function(j,k){return G(typeof X<"u"),this.toArrayLike(X,j,k)},U.prototype.toArray=function(j,k){return this.toArrayLike(Array,j,k)},U.prototype.toArrayLike=function(j,k,g){var _=this.byteLength(),N=g||Math.max(1,_);G(_<=N,"byte array longer than desired length"),G(N>0,"Requested array length <= 0"),this.strip();var x=k==="le",B=new j(N),y,w,p=this.clone();if(x){for(w=0;!p.isZero();w++)y=p.andln(255),p.iushrn(8),B[w]=y;for(;w=4096&&(g+=13,k>>>=13),k>=64&&(g+=7,k>>>=7),k>=8&&(g+=4,k>>>=4),k>=2&&(g+=2,k>>>=2),g+k},U.prototype._zeroBits=function(j){if(j===0)return 26;var k=j,g=0;return(k&8191)===0&&(g+=13,k>>>=13),(k&127)===0&&(g+=7,k>>>=7),(k&15)===0&&(g+=4,k>>>=4),(k&3)===0&&(g+=2,k>>>=2),(k&1)===0&&g++,g},U.prototype.bitLength=function(){var j=this.words[this.length-1],k=this._countBits(j);return(this.length-1)*26+k};function H(j){for(var k=new Array(j.bitLength()),g=0;g>>N}return k}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var j=0,k=0;kj.length?this.clone().ior(j):j.clone().ior(this)},U.prototype.uor=function(j){return this.length>j.length?this.clone().iuor(j):j.clone().iuor(this)},U.prototype.iuand=function(j){var k;this.length>j.length?k=j:k=this;for(var g=0;gj.length?this.clone().iand(j):j.clone().iand(this)},U.prototype.uand=function(j){return this.length>j.length?this.clone().iuand(j):j.clone().iuand(this)},U.prototype.iuxor=function(j){var k,g;this.length>j.length?(k=this,g=j):(k=j,g=this);for(var _=0;_j.length?this.clone().ixor(j):j.clone().ixor(this)},U.prototype.uxor=function(j){return this.length>j.length?this.clone().iuxor(j):j.clone().iuxor(this)},U.prototype.inotn=function(j){G(typeof j=="number"&&j>=0);var k=Math.ceil(j/26)|0,g=j%26;this._expand(k),g>0&&k--;for(var _=0;_0&&(this.words[_]=~this.words[_]&67108863>>26-g),this.strip()},U.prototype.notn=function(j){return this.clone().inotn(j)},U.prototype.setn=function(j,k){G(typeof j=="number"&&j>=0);var g=j/26|0,_=j%26;return this._expand(g+1),k?this.words[g]=this.words[g]|1<<_:this.words[g]=this.words[g]&~(1<<_),this.strip()},U.prototype.iadd=function(j){var k;if(this.negative!==0&&j.negative===0)return this.negative=0,k=this.isub(j),this.negative^=1,this._normSign();if(this.negative===0&&j.negative!==0)return j.negative=0,k=this.isub(j),j.negative=1,k._normSign();var g,_;this.length>j.length?(g=this,_=j):(g=j,_=this);for(var N=0,x=0;x<_.length;x++)k=(g.words[x]|0)+(_.words[x]|0)+N,this.words[x]=k&67108863,N=k>>>26;for(;N!==0&&x>>26;if(this.length=g.length,N!==0)this.words[this.length]=N,this.length++;else if(g!==this)for(;xj.length?this.clone().iadd(j):j.clone().iadd(this)},U.prototype.isub=function(j){if(j.negative!==0){j.negative=0;var k=this.iadd(j);return j.negative=1,k._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(j),this.negative=1,this._normSign();var g=this.cmp(j);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var _,N;g>0?(_=this,N=j):(_=j,N=this);for(var x=0,B=0;B>26,this.words[B]=k&67108863;for(;x!==0&&B<_.length;B++)k=(_.words[B]|0)+x,x=k>>26,this.words[B]=k&67108863;if(x===0&&B<_.length&&_!==this)for(;B<_.length;B++)this.words[B]=_.words[B];return this.length=Math.max(this.length,B),_!==this&&(this.negative=1),this.strip()},U.prototype.sub=function(j){return this.clone().isub(j)};function W(j,k,g){g.negative=k.negative^j.negative;var _=j.length+k.length|0;g.length=_,_=_-1|0;var N=j.words[0]|0,x=k.words[0]|0,B=N*x,y=B&67108863,w=B/67108864|0;g.words[0]=y;for(var p=1;p<_;p++){for(var f=w>>>26,c=w&67108863,h=Math.min(p,k.length-1),d=Math.max(0,p-j.length+1);d<=h;d++){var b=p-d|0;N=j.words[b]|0,x=k.words[d]|0,B=N*x+c,f+=B/67108864|0,c=B&67108863}g.words[p]=c|0,w=f|0}return w!==0?g.words[p]=w|0:g.length--,g.strip()}var E=function(j,k,g){var _=j.words,N=k.words,x=g.words,B=0,y,w,p,f=_[0]|0,c=f&8191,h=f>>>13,d=_[1]|0,b=d&8191,l=d>>>13,o=_[2]|0,u=o&8191,n=o>>>13,s=_[3]|0,t=s&8191,m=s>>>13,a=_[4]|0,e=a&8191,r=a>>>13,i=_[5]|0,$0=i&8191,Q0=i>>>13,Y0=_[6]|0,Z0=Y0&8191,G0=Y0>>>13,V0=_[7]|0,U0=V0&8191,X0=V0>>>13,K0=_[8]|0,I0=K0&8191,O0=K0>>>13,J0=_[9]|0,F0=J0&8191,A0=J0>>>13,H0=N[0]|0,W0=H0&8191,E0=H0>>>13,T0=N[1]|0,D0=T0&8191,C0=T0>>>13,L0=N[2]|0,R0=L0&8191,P0=L0>>>13,z0=N[3]|0,M0=z0&8191,S0=z0>>>13,v0=N[4]|0,q0=v0&8191,j0=v0>>>13,k0=N[5]|0,g0=k0&8191,_0=k0>>>13,N0=N[6]|0,x0=N0&8191,B0=N0>>>13,y0=N[7]|0,w0=y0&8191,p0=y0>>>13,f0=N[8]|0,c0=f0&8191,h0=f0>>>13,d0=N[9]|0,b0=d0&8191,l0=d0>>>13;g.negative=j.negative^k.negative,g.length=19,y=Math.imul(c,W0),w=Math.imul(c,E0),w=w+Math.imul(h,W0)|0,p=Math.imul(h,E0);var o0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(o0>>>26)|0,o0&=67108863,y=Math.imul(b,W0),w=Math.imul(b,E0),w=w+Math.imul(l,W0)|0,p=Math.imul(l,E0),y=y+Math.imul(c,D0)|0,w=w+Math.imul(c,C0)|0,w=w+Math.imul(h,D0)|0,p=p+Math.imul(h,C0)|0;var u0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(u0>>>26)|0,u0&=67108863,y=Math.imul(u,W0),w=Math.imul(u,E0),w=w+Math.imul(n,W0)|0,p=Math.imul(n,E0),y=y+Math.imul(b,D0)|0,w=w+Math.imul(b,C0)|0,w=w+Math.imul(l,D0)|0,p=p+Math.imul(l,C0)|0,y=y+Math.imul(c,R0)|0,w=w+Math.imul(c,P0)|0,w=w+Math.imul(h,R0)|0,p=p+Math.imul(h,P0)|0;var n0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(n0>>>26)|0,n0&=67108863,y=Math.imul(t,W0),w=Math.imul(t,E0),w=w+Math.imul(m,W0)|0,p=Math.imul(m,E0),y=y+Math.imul(u,D0)|0,w=w+Math.imul(u,C0)|0,w=w+Math.imul(n,D0)|0,p=p+Math.imul(n,C0)|0,y=y+Math.imul(b,R0)|0,w=w+Math.imul(b,P0)|0,w=w+Math.imul(l,R0)|0,p=p+Math.imul(l,P0)|0,y=y+Math.imul(c,M0)|0,w=w+Math.imul(c,S0)|0,w=w+Math.imul(h,M0)|0,p=p+Math.imul(h,S0)|0;var s0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(s0>>>26)|0,s0&=67108863,y=Math.imul(e,W0),w=Math.imul(e,E0),w=w+Math.imul(r,W0)|0,p=Math.imul(r,E0),y=y+Math.imul(t,D0)|0,w=w+Math.imul(t,C0)|0,w=w+Math.imul(m,D0)|0,p=p+Math.imul(m,C0)|0,y=y+Math.imul(u,R0)|0,w=w+Math.imul(u,P0)|0,w=w+Math.imul(n,R0)|0,p=p+Math.imul(n,P0)|0,y=y+Math.imul(b,M0)|0,w=w+Math.imul(b,S0)|0,w=w+Math.imul(l,M0)|0,p=p+Math.imul(l,S0)|0,y=y+Math.imul(c,q0)|0,w=w+Math.imul(c,j0)|0,w=w+Math.imul(h,q0)|0,p=p+Math.imul(h,j0)|0;var t0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(t0>>>26)|0,t0&=67108863,y=Math.imul($0,W0),w=Math.imul($0,E0),w=w+Math.imul(Q0,W0)|0,p=Math.imul(Q0,E0),y=y+Math.imul(e,D0)|0,w=w+Math.imul(e,C0)|0,w=w+Math.imul(r,D0)|0,p=p+Math.imul(r,C0)|0,y=y+Math.imul(t,R0)|0,w=w+Math.imul(t,P0)|0,w=w+Math.imul(m,R0)|0,p=p+Math.imul(m,P0)|0,y=y+Math.imul(u,M0)|0,w=w+Math.imul(u,S0)|0,w=w+Math.imul(n,M0)|0,p=p+Math.imul(n,S0)|0,y=y+Math.imul(b,q0)|0,w=w+Math.imul(b,j0)|0,w=w+Math.imul(l,q0)|0,p=p+Math.imul(l,j0)|0,y=y+Math.imul(c,g0)|0,w=w+Math.imul(c,_0)|0,w=w+Math.imul(h,g0)|0,p=p+Math.imul(h,_0)|0;var m0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(m0>>>26)|0,m0&=67108863,y=Math.imul(Z0,W0),w=Math.imul(Z0,E0),w=w+Math.imul(G0,W0)|0,p=Math.imul(G0,E0),y=y+Math.imul($0,D0)|0,w=w+Math.imul($0,C0)|0,w=w+Math.imul(Q0,D0)|0,p=p+Math.imul(Q0,C0)|0,y=y+Math.imul(e,R0)|0,w=w+Math.imul(e,P0)|0,w=w+Math.imul(r,R0)|0,p=p+Math.imul(r,P0)|0,y=y+Math.imul(t,M0)|0,w=w+Math.imul(t,S0)|0,w=w+Math.imul(m,M0)|0,p=p+Math.imul(m,S0)|0,y=y+Math.imul(u,q0)|0,w=w+Math.imul(u,j0)|0,w=w+Math.imul(n,q0)|0,p=p+Math.imul(n,j0)|0,y=y+Math.imul(b,g0)|0,w=w+Math.imul(b,_0)|0,w=w+Math.imul(l,g0)|0,p=p+Math.imul(l,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,B0)|0,w=w+Math.imul(h,x0)|0,p=p+Math.imul(h,B0)|0;var a0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(a0>>>26)|0,a0&=67108863,y=Math.imul(U0,W0),w=Math.imul(U0,E0),w=w+Math.imul(X0,W0)|0,p=Math.imul(X0,E0),y=y+Math.imul(Z0,D0)|0,w=w+Math.imul(Z0,C0)|0,w=w+Math.imul(G0,D0)|0,p=p+Math.imul(G0,C0)|0,y=y+Math.imul($0,R0)|0,w=w+Math.imul($0,P0)|0,w=w+Math.imul(Q0,R0)|0,p=p+Math.imul(Q0,P0)|0,y=y+Math.imul(e,M0)|0,w=w+Math.imul(e,S0)|0,w=w+Math.imul(r,M0)|0,p=p+Math.imul(r,S0)|0,y=y+Math.imul(t,q0)|0,w=w+Math.imul(t,j0)|0,w=w+Math.imul(m,q0)|0,p=p+Math.imul(m,j0)|0,y=y+Math.imul(u,g0)|0,w=w+Math.imul(u,_0)|0,w=w+Math.imul(n,g0)|0,p=p+Math.imul(n,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,B0)|0,w=w+Math.imul(l,x0)|0,p=p+Math.imul(l,B0)|0,y=y+Math.imul(c,w0)|0,w=w+Math.imul(c,p0)|0,w=w+Math.imul(h,w0)|0,p=p+Math.imul(h,p0)|0;var e0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(e0>>>26)|0,e0&=67108863,y=Math.imul(I0,W0),w=Math.imul(I0,E0),w=w+Math.imul(O0,W0)|0,p=Math.imul(O0,E0),y=y+Math.imul(U0,D0)|0,w=w+Math.imul(U0,C0)|0,w=w+Math.imul(X0,D0)|0,p=p+Math.imul(X0,C0)|0,y=y+Math.imul(Z0,R0)|0,w=w+Math.imul(Z0,P0)|0,w=w+Math.imul(G0,R0)|0,p=p+Math.imul(G0,P0)|0,y=y+Math.imul($0,M0)|0,w=w+Math.imul($0,S0)|0,w=w+Math.imul(Q0,M0)|0,p=p+Math.imul(Q0,S0)|0,y=y+Math.imul(e,q0)|0,w=w+Math.imul(e,j0)|0,w=w+Math.imul(r,q0)|0,p=p+Math.imul(r,j0)|0,y=y+Math.imul(t,g0)|0,w=w+Math.imul(t,_0)|0,w=w+Math.imul(m,g0)|0,p=p+Math.imul(m,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,B0)|0,w=w+Math.imul(n,x0)|0,p=p+Math.imul(n,B0)|0,y=y+Math.imul(b,w0)|0,w=w+Math.imul(b,p0)|0,w=w+Math.imul(l,w0)|0,p=p+Math.imul(l,p0)|0,y=y+Math.imul(c,c0)|0,w=w+Math.imul(c,h0)|0,w=w+Math.imul(h,c0)|0,p=p+Math.imul(h,h0)|0;var r0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(r0>>>26)|0,r0&=67108863,y=Math.imul(F0,W0),w=Math.imul(F0,E0),w=w+Math.imul(A0,W0)|0,p=Math.imul(A0,E0),y=y+Math.imul(I0,D0)|0,w=w+Math.imul(I0,C0)|0,w=w+Math.imul(O0,D0)|0,p=p+Math.imul(O0,C0)|0,y=y+Math.imul(U0,R0)|0,w=w+Math.imul(U0,P0)|0,w=w+Math.imul(X0,R0)|0,p=p+Math.imul(X0,P0)|0,y=y+Math.imul(Z0,M0)|0,w=w+Math.imul(Z0,S0)|0,w=w+Math.imul(G0,M0)|0,p=p+Math.imul(G0,S0)|0,y=y+Math.imul($0,q0)|0,w=w+Math.imul($0,j0)|0,w=w+Math.imul(Q0,q0)|0,p=p+Math.imul(Q0,j0)|0,y=y+Math.imul(e,g0)|0,w=w+Math.imul(e,_0)|0,w=w+Math.imul(r,g0)|0,p=p+Math.imul(r,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,B0)|0,w=w+Math.imul(m,x0)|0,p=p+Math.imul(m,B0)|0,y=y+Math.imul(u,w0)|0,w=w+Math.imul(u,p0)|0,w=w+Math.imul(n,w0)|0,p=p+Math.imul(n,p0)|0,y=y+Math.imul(b,c0)|0,w=w+Math.imul(b,h0)|0,w=w+Math.imul(l,c0)|0,p=p+Math.imul(l,h0)|0,y=y+Math.imul(c,b0)|0,w=w+Math.imul(c,l0)|0,w=w+Math.imul(h,b0)|0,p=p+Math.imul(h,l0)|0;var i0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(i0>>>26)|0,i0&=67108863,y=Math.imul(F0,D0),w=Math.imul(F0,C0),w=w+Math.imul(A0,D0)|0,p=Math.imul(A0,C0),y=y+Math.imul(I0,R0)|0,w=w+Math.imul(I0,P0)|0,w=w+Math.imul(O0,R0)|0,p=p+Math.imul(O0,P0)|0,y=y+Math.imul(U0,M0)|0,w=w+Math.imul(U0,S0)|0,w=w+Math.imul(X0,M0)|0,p=p+Math.imul(X0,S0)|0,y=y+Math.imul(Z0,q0)|0,w=w+Math.imul(Z0,j0)|0,w=w+Math.imul(G0,q0)|0,p=p+Math.imul(G0,j0)|0,y=y+Math.imul($0,g0)|0,w=w+Math.imul($0,_0)|0,w=w+Math.imul(Q0,g0)|0,p=p+Math.imul(Q0,_0)|0,y=y+Math.imul(e,x0)|0,w=w+Math.imul(e,B0)|0,w=w+Math.imul(r,x0)|0,p=p+Math.imul(r,B0)|0,y=y+Math.imul(t,w0)|0,w=w+Math.imul(t,p0)|0,w=w+Math.imul(m,w0)|0,p=p+Math.imul(m,p0)|0,y=y+Math.imul(u,c0)|0,w=w+Math.imul(u,h0)|0,w=w+Math.imul(n,c0)|0,p=p+Math.imul(n,h0)|0,y=y+Math.imul(b,b0)|0,w=w+Math.imul(b,l0)|0,w=w+Math.imul(l,b0)|0,p=p+Math.imul(l,l0)|0;var $$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+($$>>>26)|0,$$&=67108863,y=Math.imul(F0,R0),w=Math.imul(F0,P0),w=w+Math.imul(A0,R0)|0,p=Math.imul(A0,P0),y=y+Math.imul(I0,M0)|0,w=w+Math.imul(I0,S0)|0,w=w+Math.imul(O0,M0)|0,p=p+Math.imul(O0,S0)|0,y=y+Math.imul(U0,q0)|0,w=w+Math.imul(U0,j0)|0,w=w+Math.imul(X0,q0)|0,p=p+Math.imul(X0,j0)|0,y=y+Math.imul(Z0,g0)|0,w=w+Math.imul(Z0,_0)|0,w=w+Math.imul(G0,g0)|0,p=p+Math.imul(G0,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,B0)|0,w=w+Math.imul(Q0,x0)|0,p=p+Math.imul(Q0,B0)|0,y=y+Math.imul(e,w0)|0,w=w+Math.imul(e,p0)|0,w=w+Math.imul(r,w0)|0,p=p+Math.imul(r,p0)|0,y=y+Math.imul(t,c0)|0,w=w+Math.imul(t,h0)|0,w=w+Math.imul(m,c0)|0,p=p+Math.imul(m,h0)|0,y=y+Math.imul(u,b0)|0,w=w+Math.imul(u,l0)|0,w=w+Math.imul(n,b0)|0,p=p+Math.imul(n,l0)|0;var Q$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,y=Math.imul(F0,M0),w=Math.imul(F0,S0),w=w+Math.imul(A0,M0)|0,p=Math.imul(A0,S0),y=y+Math.imul(I0,q0)|0,w=w+Math.imul(I0,j0)|0,w=w+Math.imul(O0,q0)|0,p=p+Math.imul(O0,j0)|0,y=y+Math.imul(U0,g0)|0,w=w+Math.imul(U0,_0)|0,w=w+Math.imul(X0,g0)|0,p=p+Math.imul(X0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,B0)|0,w=w+Math.imul(G0,x0)|0,p=p+Math.imul(G0,B0)|0,y=y+Math.imul($0,w0)|0,w=w+Math.imul($0,p0)|0,w=w+Math.imul(Q0,w0)|0,p=p+Math.imul(Q0,p0)|0,y=y+Math.imul(e,c0)|0,w=w+Math.imul(e,h0)|0,w=w+Math.imul(r,c0)|0,p=p+Math.imul(r,h0)|0,y=y+Math.imul(t,b0)|0,w=w+Math.imul(t,l0)|0,w=w+Math.imul(m,b0)|0,p=p+Math.imul(m,l0)|0;var Y$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,y=Math.imul(F0,q0),w=Math.imul(F0,j0),w=w+Math.imul(A0,q0)|0,p=Math.imul(A0,j0),y=y+Math.imul(I0,g0)|0,w=w+Math.imul(I0,_0)|0,w=w+Math.imul(O0,g0)|0,p=p+Math.imul(O0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,B0)|0,w=w+Math.imul(X0,x0)|0,p=p+Math.imul(X0,B0)|0,y=y+Math.imul(Z0,w0)|0,w=w+Math.imul(Z0,p0)|0,w=w+Math.imul(G0,w0)|0,p=p+Math.imul(G0,p0)|0,y=y+Math.imul($0,c0)|0,w=w+Math.imul($0,h0)|0,w=w+Math.imul(Q0,c0)|0,p=p+Math.imul(Q0,h0)|0,y=y+Math.imul(e,b0)|0,w=w+Math.imul(e,l0)|0,w=w+Math.imul(r,b0)|0,p=p+Math.imul(r,l0)|0;var Z$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,y=Math.imul(F0,g0),w=Math.imul(F0,_0),w=w+Math.imul(A0,g0)|0,p=Math.imul(A0,_0),y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,B0)|0,w=w+Math.imul(O0,x0)|0,p=p+Math.imul(O0,B0)|0,y=y+Math.imul(U0,w0)|0,w=w+Math.imul(U0,p0)|0,w=w+Math.imul(X0,w0)|0,p=p+Math.imul(X0,p0)|0,y=y+Math.imul(Z0,c0)|0,w=w+Math.imul(Z0,h0)|0,w=w+Math.imul(G0,c0)|0,p=p+Math.imul(G0,h0)|0,y=y+Math.imul($0,b0)|0,w=w+Math.imul($0,l0)|0,w=w+Math.imul(Q0,b0)|0,p=p+Math.imul(Q0,l0)|0;var G$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(G$>>>26)|0,G$&=67108863,y=Math.imul(F0,x0),w=Math.imul(F0,B0),w=w+Math.imul(A0,x0)|0,p=Math.imul(A0,B0),y=y+Math.imul(I0,w0)|0,w=w+Math.imul(I0,p0)|0,w=w+Math.imul(O0,w0)|0,p=p+Math.imul(O0,p0)|0,y=y+Math.imul(U0,c0)|0,w=w+Math.imul(U0,h0)|0,w=w+Math.imul(X0,c0)|0,p=p+Math.imul(X0,h0)|0,y=y+Math.imul(Z0,b0)|0,w=w+Math.imul(Z0,l0)|0,w=w+Math.imul(G0,b0)|0,p=p+Math.imul(G0,l0)|0;var V$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(V$>>>26)|0,V$&=67108863,y=Math.imul(F0,w0),w=Math.imul(F0,p0),w=w+Math.imul(A0,w0)|0,p=Math.imul(A0,p0),y=y+Math.imul(I0,c0)|0,w=w+Math.imul(I0,h0)|0,w=w+Math.imul(O0,c0)|0,p=p+Math.imul(O0,h0)|0,y=y+Math.imul(U0,b0)|0,w=w+Math.imul(U0,l0)|0,w=w+Math.imul(X0,b0)|0,p=p+Math.imul(X0,l0)|0;var U$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(U$>>>26)|0,U$&=67108863,y=Math.imul(F0,c0),w=Math.imul(F0,h0),w=w+Math.imul(A0,c0)|0,p=Math.imul(A0,h0),y=y+Math.imul(I0,b0)|0,w=w+Math.imul(I0,l0)|0,w=w+Math.imul(O0,b0)|0,p=p+Math.imul(O0,l0)|0;var X$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(X$>>>26)|0,X$&=67108863,y=Math.imul(F0,b0),w=Math.imul(F0,l0),w=w+Math.imul(A0,b0)|0,p=Math.imul(A0,l0);var K$=(B+y|0)+((w&8191)<<13)|0;return B=(p+(w>>>13)|0)+(K$>>>26)|0,K$&=67108863,x[0]=o0,x[1]=u0,x[2]=n0,x[3]=s0,x[4]=t0,x[5]=m0,x[6]=a0,x[7]=e0,x[8]=r0,x[9]=i0,x[10]=$$,x[11]=Q$,x[12]=Y$,x[13]=Z$,x[14]=G$,x[15]=V$,x[16]=U$,x[17]=X$,x[18]=K$,B!==0&&(x[19]=B,g.length++),g};Math.imul||(E=W);function T(j,k,g){g.negative=k.negative^j.negative,g.length=j.length+k.length;for(var _=0,N=0,x=0;x>>26)|0,N+=B>>>26,B&=67108863}g.words[x]=y,_=B,B=N}return _!==0?g.words[x]=_:g.length--,g.strip()}function D(j,k,g){var _=new C;return _.mulp(j,k,g)}U.prototype.mulTo=function(j,k){var g,_=this.length+j.length;return this.length===10&&j.length===10?g=E(this,j,k):_<63?g=W(this,j,k):_<1024?g=T(this,j,k):g=D(this,j,k),g};function C(j,k){this.x=j,this.y=k}C.prototype.makeRBT=function(j){for(var k=new Array(j),g=U.prototype._countBits(j)-1,_=0;_>=1;return _},C.prototype.permute=function(j,k,g,_,N,x){for(var B=0;B>>1)N++;return 1<>>13,g[2*x+1]=N&8191,N=N>>>13;for(x=2*k;x<_;++x)g[x]=0;G(N===0),G((N&-8192)===0)},C.prototype.stub=function(j){for(var k=new Array(j),g=0;g>=26,k+=_/67108864|0,k+=N>>>26,this.words[g]=N&67108863}return k!==0&&(this.words[g]=k,this.length++),this},U.prototype.muln=function(j){return this.clone().imuln(j)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(j){var k=H(j);if(k.length===0)return new U(1);for(var g=this,_=0;_=0);var k=j%26,g=(j-k)/26,_=67108863>>>26-k<<26-k,N;if(k!==0){var x=0;for(N=0;N>>26-k}x&&(this.words[N]=x,this.length++)}if(g!==0){for(N=this.length-1;N>=0;N--)this.words[N+g]=this.words[N];for(N=0;N=0);var _;k?_=(k-k%26)/26:_=0;var N=j%26,x=Math.min((j-N)/26,this.length),B=67108863^67108863>>>N<x)for(this.length-=x,w=0;w=0&&(p!==0||w>=_);w--){var f=this.words[w]|0;this.words[w]=p<<26-N|f>>>N,p=f&B}return y&&p!==0&&(y.words[y.length++]=p),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},U.prototype.ishrn=function(j,k,g){return G(this.negative===0),this.iushrn(j,k,g)},U.prototype.shln=function(j){return this.clone().ishln(j)},U.prototype.ushln=function(j){return this.clone().iushln(j)},U.prototype.shrn=function(j){return this.clone().ishrn(j)},U.prototype.ushrn=function(j){return this.clone().iushrn(j)},U.prototype.testn=function(j){G(typeof j=="number"&&j>=0);var k=j%26,g=(j-k)/26,_=1<=0);var k=j%26,g=(j-k)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(k!==0&&g++,this.length=Math.min(g,this.length),k!==0){var _=67108863^67108863>>>k<=67108864;k++)this.words[k]-=67108864,k===this.length-1?this.words[k+1]=1:this.words[k+1]++;return this.length=Math.max(this.length,k+1),this},U.prototype.isubn=function(j){if(G(typeof j=="number"),G(j<67108864),j<0)return this.iaddn(-j);if(this.negative!==0)return this.negative=0,this.iaddn(j),this.negative=1,this;if(this.words[0]-=j,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var k=0;k>26)-(y/67108864|0),this.words[N+g]=x&67108863}for(;N>26,this.words[N+g]=x&67108863;if(B===0)return this.strip();for(G(B===-1),B=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},U.prototype._wordDiv=function(j,k){var g=this.length-j.length,_=this.clone(),N=j,x=N.words[N.length-1]|0,B=this._countBits(x);g=26-B,g!==0&&(N=N.ushln(g),_.iushln(g),x=N.words[N.length-1]|0);var y=_.length-N.length,w;if(k!=="mod"){w=new U(null),w.length=y+1,w.words=new Array(w.length);for(var p=0;p=0;c--){var h=(_.words[N.length+c]|0)*67108864+(_.words[N.length+c-1]|0);for(h=Math.min(h/x|0,67108863),_._ishlnsubmul(N,h,c);_.negative!==0;)h--,_.negative=0,_._ishlnsubmul(N,1,c),_.isZero()||(_.negative^=1);w&&(w.words[c]=h)}return w&&w.strip(),_.strip(),k!=="div"&&g!==0&&_.iushrn(g),{div:w||null,mod:_}},U.prototype.divmod=function(j,k,g){if(G(!j.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var _,N,x;return this.negative!==0&&j.negative===0?(x=this.neg().divmod(j,k),k!=="mod"&&(_=x.div.neg()),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.iadd(j)),{div:_,mod:N}):this.negative===0&&j.negative!==0?(x=this.divmod(j.neg(),k),k!=="mod"&&(_=x.div.neg()),{div:_,mod:x.mod}):(this.negative&j.negative)!==0?(x=this.neg().divmod(j.neg(),k),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.isub(j)),{div:x.div,mod:N}):j.length>this.length||this.cmp(j)<0?{div:new U(0),mod:this}:j.length===1?k==="div"?{div:this.divn(j.words[0]),mod:null}:k==="mod"?{div:null,mod:new U(this.modn(j.words[0]))}:{div:this.divn(j.words[0]),mod:new U(this.modn(j.words[0]))}:this._wordDiv(j,k)},U.prototype.div=function(j){return this.divmod(j,"div",!1).div},U.prototype.mod=function(j){return this.divmod(j,"mod",!1).mod},U.prototype.umod=function(j){return this.divmod(j,"mod",!0).mod},U.prototype.divRound=function(j){var k=this.divmod(j);if(k.mod.isZero())return k.div;var g=k.div.negative!==0?k.mod.isub(j):k.mod,_=j.ushrn(1),N=j.andln(1),x=g.cmp(_);return x<0||N===1&&x===0?k.div:k.div.negative!==0?k.div.isubn(1):k.div.iaddn(1)},U.prototype.modn=function(j){G(j<=67108863);for(var k=(1<<26)%j,g=0,_=this.length-1;_>=0;_--)g=(k*g+(this.words[_]|0))%j;return g},U.prototype.idivn=function(j){G(j<=67108863);for(var k=0,g=this.length-1;g>=0;g--){var _=(this.words[g]|0)+k*67108864;this.words[g]=_/j|0,k=_%j}return this.strip()},U.prototype.divn=function(j){return this.clone().idivn(j)},U.prototype.egcd=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=new U(0),B=new U(1),y=0;k.isEven()&&g.isEven();)k.iushrn(1),g.iushrn(1),++y;for(var w=g.clone(),p=k.clone();!k.isZero();){for(var f=0,c=1;(k.words[0]&c)===0&&f<26;++f,c<<=1);if(f>0)for(k.iushrn(f);f-- >0;)(_.isOdd()||N.isOdd())&&(_.iadd(w),N.isub(p)),_.iushrn(1),N.iushrn(1);for(var h=0,d=1;(g.words[0]&d)===0&&h<26;++h,d<<=1);if(h>0)for(g.iushrn(h);h-- >0;)(x.isOdd()||B.isOdd())&&(x.iadd(w),B.isub(p)),x.iushrn(1),B.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(x),N.isub(B)):(g.isub(k),x.isub(_),B.isub(N))}return{a:x,b:B,gcd:g.iushln(y)}},U.prototype._invmp=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=g.clone();k.cmpn(1)>0&&g.cmpn(1)>0;){for(var B=0,y=1;(k.words[0]&y)===0&&B<26;++B,y<<=1);if(B>0)for(k.iushrn(B);B-- >0;)_.isOdd()&&_.iadd(x),_.iushrn(1);for(var w=0,p=1;(g.words[0]&p)===0&&w<26;++w,p<<=1);if(w>0)for(g.iushrn(w);w-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(N)):(g.isub(k),N.isub(_))}var f;return k.cmpn(1)===0?f=_:f=N,f.cmpn(0)<0&&f.iadd(j),f},U.prototype.gcd=function(j){if(this.isZero())return j.abs();if(j.isZero())return this.abs();var k=this.clone(),g=j.clone();k.negative=0,g.negative=0;for(var _=0;k.isEven()&&g.isEven();_++)k.iushrn(1),g.iushrn(1);do{for(;k.isEven();)k.iushrn(1);for(;g.isEven();)g.iushrn(1);var N=k.cmp(g);if(N<0){var x=k;k=g,g=x}else if(N===0||g.cmpn(1)===0)break;k.isub(g)}while(!0);return g.iushln(_)},U.prototype.invm=function(j){return this.egcd(j).a.umod(j)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(j){return this.words[0]&j},U.prototype.bincn=function(j){G(typeof j=="number");var k=j%26,g=(j-k)/26,_=1<>>26,B&=67108863,this.words[x]=B}return N!==0&&(this.words[x]=N,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(j){var k=j<0;if(this.negative!==0&&!k)return-1;if(this.negative===0&&k)return 1;this.strip();var g;if(this.length>1)g=1;else{k&&(j=-j),G(j<=67108863,"Number is too big");var _=this.words[0]|0;g=_===j?0:_j.length)return 1;if(this.length=0;g--){var _=this.words[g]|0,N=j.words[g]|0;if(_!==N){_N&&(k=1);break}}return k},U.prototype.gtn=function(j){return this.cmpn(j)===1},U.prototype.gt=function(j){return this.cmp(j)===1},U.prototype.gten=function(j){return this.cmpn(j)>=0},U.prototype.gte=function(j){return this.cmp(j)>=0},U.prototype.ltn=function(j){return this.cmpn(j)===-1},U.prototype.lt=function(j){return this.cmp(j)===-1},U.prototype.lten=function(j){return this.cmpn(j)<=0},U.prototype.lte=function(j){return this.cmp(j)<=0},U.prototype.eqn=function(j){return this.cmpn(j)===0},U.prototype.eq=function(j){return this.cmp(j)===0},U.red=function(j){return new v(j)},U.prototype.toRed=function(j){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),j.convertTo(this)._forceRed(j)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(j){return this.red=j,this},U.prototype.forceRed=function(j){return G(!this.red,"Already a number in reduction context"),this._forceRed(j)},U.prototype.redAdd=function(j){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,j)},U.prototype.redIAdd=function(j){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,j)},U.prototype.redSub=function(j){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,j)},U.prototype.redISub=function(j){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,j)},U.prototype.redShl=function(j){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,j)},U.prototype.redMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.mul(this,j)},U.prototype.redIMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.imul(this,j)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(j){return G(this.red&&!j.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,j)};var L={k256:null,p224:null,p192:null,p25519:null};function R(j,k){this.name=j,this.p=new U(k,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}R.prototype._tmp=function(){var j=new U(null);return j.words=new Array(Math.ceil(this.n/13)),j},R.prototype.ireduce=function(j){var k=j,g;do this.split(k,this.tmp),k=this.imulK(k),k=k.iadd(this.tmp),g=k.bitLength();while(g>this.n);var _=g0?k.isub(this.p):k.strip!==void 0?k.strip():k._strip(),k},R.prototype.split=function(j,k){j.iushrn(this.n,0,k)},R.prototype.imulK=function(j){return j.imul(this.k)};function P(){R.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(P,R),P.prototype.split=function(j,k){for(var g=4194303,_=Math.min(j.length,9),N=0;N<_;N++)k.words[N]=j.words[N];if(k.length=_,j.length<=9){j.words[0]=0,j.length=1;return}var x=j.words[9];for(k.words[k.length++]=x&g,N=10;N>>22,x=B}x>>>=22,j.words[N-10]=x,x===0&&j.length>10?j.length-=10:j.length-=9},P.prototype.imulK=function(j){j.words[j.length]=0,j.words[j.length+1]=0,j.length+=2;for(var k=0,g=0;g>>=26,j.words[g]=N,k=_}return k!==0&&(j.words[j.length++]=k),j},U._prime=function(j){if(L[j])return L[j];var k;if(j==="k256")k=new P;else if(j==="p224")k=new z;else if(j==="p192")k=new M;else if(j==="p25519")k=new S;else throw new Error("Unknown prime "+j);return L[j]=k,k};function v(j){if(typeof j=="string"){var k=U._prime(j);this.m=k.p,this.prime=k}else G(j.gtn(1),"modulus must be greater than 1"),this.m=j,this.prime=null}v.prototype._verify1=function(j){G(j.negative===0,"red works only with positives"),G(j.red,"red works only with red numbers")},v.prototype._verify2=function(j,k){G((j.negative|k.negative)===0,"red works only with positives"),G(j.red&&j.red===k.red,"red works only with red numbers")},v.prototype.imod=function(j){return this.prime?this.prime.ireduce(j)._forceRed(this):j.umod(this.m)._forceRed(this)},v.prototype.neg=function(j){return j.isZero()?j.clone():this.m.sub(j)._forceRed(this)},v.prototype.add=function(j,k){this._verify2(j,k);var g=j.add(k);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},v.prototype.iadd=function(j,k){this._verify2(j,k);var g=j.iadd(k);return g.cmp(this.m)>=0&&g.isub(this.m),g},v.prototype.sub=function(j,k){this._verify2(j,k);var g=j.sub(k);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},v.prototype.isub=function(j,k){this._verify2(j,k);var g=j.isub(k);return g.cmpn(0)<0&&g.iadd(this.m),g},v.prototype.shl=function(j,k){return this._verify1(j),this.imod(j.ushln(k))},v.prototype.imul=function(j,k){return this._verify2(j,k),this.imod(j.imul(k))},v.prototype.mul=function(j,k){return this._verify2(j,k),this.imod(j.mul(k))},v.prototype.isqr=function(j){return this.imul(j,j.clone())},v.prototype.sqr=function(j){return this.mul(j,j)},v.prototype.sqrt=function(j){if(j.isZero())return j.clone();var k=this.m.andln(3);if(G(k%2===1),k===3){var g=this.m.add(new U(1)).iushrn(2);return this.pow(j,g)}for(var _=this.m.subn(1),N=0;!_.isZero()&&_.andln(1)===0;)N++,_.iushrn(1);G(!_.isZero());var x=new U(1).toRed(this),B=x.redNeg(),y=this.m.subn(1).iushrn(1),w=this.m.bitLength();for(w=new U(2*w*w).toRed(this);this.pow(w,y).cmp(B)!==0;)w.redIAdd(B);for(var p=this.pow(w,_),f=this.pow(j,_.addn(1).iushrn(1)),c=this.pow(j,_),h=N;c.cmp(x)!==0;){for(var d=c,b=0;d.cmp(x)!==0;b++)d=d.redSqr();G(b=0;N--){for(var p=k.words[N],f=w-1;f>=0;f--){var c=p>>f&1;if(x!==_[0]&&(x=this.sqr(x)),c===0&&B===0){y=0;continue}B<<=1,B|=c,y++,!(y!==g&&(N!==0||f!==0))&&(x=this.mul(x,_[B]),y=0,B=0)}w=26}return x},v.prototype.convertTo=function(j){var k=j.umod(this.m);return k===j?k.clone():k},v.prototype.convertFrom=function(j){var k=j.clone();return k.red=null,k},U.mont=function(j){return new q(j)};function q(j){v.call(this,j),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(q,v),q.prototype.convertTo=function(j){return this.imod(j.ushln(this.shift))},q.prototype.convertFrom=function(j){var k=this.imod(j.mul(this.rinv));return k.red=null,k},q.prototype.imul=function(j,k){if(j.isZero()||k.isZero())return j.words[0]=0,j.length=1,j;var g=j.imul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.mul=function(j,k){if(j.isZero()||k.isZero())return new U(0)._forceRed(this);var g=j.mul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.invm=function(j){var k=this.imod(j._invmp(this.m).mul(this.r2));return k._forceRed(this)}})(typeof Q>"u"||Q,$)}}),NQ=q$({"(disabled):node_modules/crypto-browserify/index.js"(){}}),xQ=q$({"node_modules/brorand/index.js"($,Q){var Y;Q.exports=function(G){return Y||(Y=new Z(null)),Y.generate(G)};function Z(G){this.rand=G}Q.exports.Rand=Z,Z.prototype.generate=function(G){return this._rand(G)},Z.prototype._rand=function(G){var V=new F$(G);return H$.getRandomValues(V),V}}}),BQ=q$({"node_modules/miller-rabin/lib/mr.js"($,Q){var Y=_Q(),Z=xQ();function G(V){this.rand=V||new Z.Rand}Q.exports=G,G.create=function(V){return new G(V)},G.prototype._randbelow=function(V){var U=V.bitLength(),X=Math.ceil(U/8);do var K=new Y(this.rand.generate(X));while(K.cmp(V)>=0);return K},G.prototype._randrange=function(V,U){var X=U.sub(V);return V.add(this._randbelow(X))},G.prototype.test=function(V,U,X){var K=V.bitLength(),I=Y.mont(V),O=new Y(1).toRed(I);U||(U=Math.max(1,K/48|0));for(var J=V.subn(1),F=0;!J.testn(F);F++);for(var A=V.shrn(F),H=J.toRed(I),W=!0;U>0;U--){var E=this._randrange(new Y(2),J);X&&X(E);var T=E.toRed(I).redPow(A);if(!(T.cmp(O)===0||T.cmp(H)===0)){for(var D=1;D0;U--){var H=this._randrange(new Y(2),O),W=V.gcd(H);if(W.cmpn(1)!==0)return W;var E=H.toRed(K).redPow(F);if(!(E.cmp(I)===0||E.cmp(A)===0)){for(var T=1;Tz;)S.ishrn(1);if(S.isEven()&&S.iadd(X),S.testn(1)||S.iadd(K),M.cmp(K)){if(!M.cmp(I))for(;S.mod(F).cmp(A);)S.iadd(E)}else for(;S.mod(G).cmp(W);)S.iadd(E);if(v=S.shrn(1),L(v)&&L(S)&&R(v)&&R(S)&&U.test(v)&&U.test(S))return S}}}}),wQ=q$({"node_modules/diffie-hellman/lib/primes.json"($,Q){Q.exports={modp1:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},modp2:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},modp5:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},modp14:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},modp15:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},modp16:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},modp17:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},modp18:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}}}),pQ=q$({"node_modules/diffie-hellman/lib/dh.js"($,Q){var Y=gQ(),Z=BQ(),G=new Z,V=new Y(24),U=new Y(11),X=new Y(10),K=new Y(3),I=new Y(7),O=yQ(),J=g$();Q.exports=E;function F(D,C){return C=C||"utf8",F$.isBuffer(D)||(D=new F$(D,C)),this._pub=new Y(D),this}function A(D,C){return C=C||"utf8",F$.isBuffer(D)||(D=new F$(D,C)),this._priv=new Y(D),this}var H={};function W(D,C){var L=C.toString("hex"),R=[L,D.toString(16)].join("_");if(R in H)return H[R];var P=0;if(D.isEven()||!O.simpleSieve||!O.fermatTest(D)||!G.test(D))return P+=1,L==="02"||L==="05"?P+=8:P+=4,H[R]=P,P;G.test(D.shrn(1))||(P+=2);var z;switch(L){case"02":D.mod(V).cmp(U)&&(P+=8);break;case"05":z=D.mod(X),z.cmp(K)&&z.cmp(I)&&(P+=8);break;default:P+=4}return H[R]=P,P}function E(D,C,L){this.setGenerator(C),this.__prime=new Y(D),this._prime=Y.mont(this.__prime),this._primeLen=D.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,L?(this.setPublicKey=F,this.setPrivateKey=A):this._primeCode=8}Object.defineProperty(E.prototype,"verifyError",{enumerable:!0,get:function(){return typeof this._primeCode!="number"&&(this._primeCode=W(this.__prime,this.__gen)),this._primeCode}}),E.prototype.generateKeys=function(){return this._priv||(this._priv=new Y(J(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},E.prototype.computeSecret=function(D){D=new Y(D),D=D.toRed(this._prime);var C=D.redPow(this._priv).fromRed(),L=new F$(C.toArray()),R=this.getPrime();if(L.length0?_:N},U.min=function(_,N){return _.cmp(N)<0?_:N},U.prototype._init=function(_,N,x){if(typeof _=="number")return this._initNumber(_,N,x);if(typeof _=="object")return this._initArray(_,N,x);N==="hex"&&(N=16),G(N===(N|0)&&N>=2&&N<=36),_=_.toString().replace(/\s+/g,"");var B=0;_[0]==="-"&&(B++,this.negative=1),B<_.length&&(N===16?this._parseHex(_,B,x):(this._parseBase(_,N,B),x==="le"&&this._initArray(this.toArray(),N,x)))},U.prototype._initNumber=function(_,N,x){_<0&&(this.negative=1,_=-_),_<67108864?(this.words=[_&67108863],this.length=1):_<4503599627370496?(this.words=[_&67108863,_/67108864&67108863],this.length=2):(G(_<9007199254740992),this.words=[_&67108863,_/67108864&67108863,1],this.length=3),x==="le"&&this._initArray(this.toArray(),N,x)},U.prototype._initArray=function(_,N,x){if(G(typeof _.length=="number"),_.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(_.length/3),this.words=new Array(this.length);for(var B=0;B=0;B-=3)w=_[B]|_[B-1]<<8|_[B-2]<<16,this.words[y]|=w<>>26-p&67108863,p+=24,p>=26&&(p-=26,y++);else if(x==="le")for(B=0,y=0;B<_.length;B+=3)w=_[B]|_[B+1]<<8|_[B+2]<<16,this.words[y]|=w<>>26-p&67108863,p+=24,p>=26&&(p-=26,y++);return this._strip()};function K(_,N){var x=_.charCodeAt(N);if(x>=48&&x<=57)return x-48;if(x>=65&&x<=70)return x-55;if(x>=97&&x<=102)return x-87;G(!1,"Invalid character in "+_)}function I(_,N,x){var B=K(_,x);return x-1>=N&&(B|=K(_,x-1)<<4),B}U.prototype._parseHex=function(_,N,x){this.length=Math.ceil((_.length-N)/6),this.words=new Array(this.length);for(var B=0;B=N;B-=2)p=I(_,N,B)<=18?(y-=18,w+=1,this.words[w]|=p>>>26):y+=8;else{var f=_.length-N;for(B=f%2===0?N+1:N;B<_.length;B+=2)p=I(_,N,B)<=18?(y-=18,w+=1,this.words[w]|=p>>>26):y+=8}this._strip()};function O(_,N,x,B){for(var y=0,w=0,p=Math.min(_.length,x),f=N;f=49?w=c-49+10:c>=17?w=c-17+10:w=c,G(c>=0&&w1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{U.prototype[Symbol.for("nodejs.util.inspect.custom")]=F}catch{U.prototype.inspect=F}else U.prototype.inspect=F;function F(){return(this.red?""}var A=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],H=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],W=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(_,N){_=_||10,N=N|0||1;var x;if(_===16||_==="hex"){x="";for(var B=0,y=0,w=0;w>>24-B&16777215,B+=2,B>=26&&(B-=26,w--),y!==0||w!==this.length-1?x=A[6-f.length]+f+x:x=f+x}for(y!==0&&(x=y.toString(16)+x);x.length%N!==0;)x="0"+x;return this.negative!==0&&(x="-"+x),x}if(_===(_|0)&&_>=2&&_<=36){var c=H[_],h=W[_];x="";var d=this.clone();for(d.negative=0;!d.isZero();){var b=d.modrn(h).toString(_);d=d.idivn(h),d.isZero()?x=b+x:x=A[c-b.length]+b+x}for(this.isZero()&&(x="0"+x);x.length%N!==0;)x="0"+x;return this.negative!==0&&(x="-"+x),x}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var _=this.words[0];return this.length===2?_+=this.words[1]*67108864:this.length===3&&this.words[2]===1?_+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-_:_},U.prototype.toJSON=function(){return this.toString(16,2)},X&&(U.prototype.toBuffer=function(_,N){return this.toArrayLike(X,_,N)}),U.prototype.toArray=function(_,N){return this.toArrayLike(Array,_,N)};var E=function(_,N){return _.allocUnsafe?_.allocUnsafe(N):new _(N)};U.prototype.toArrayLike=function(_,N,x){this._strip();var B=this.byteLength(),y=x||Math.max(1,B);G(B<=y,"byte array longer than desired length"),G(y>0,"Requested array length <= 0");var w=E(_,y),p=N==="le"?"LE":"BE";return this["_toArrayLike"+p](w,B),w},U.prototype._toArrayLikeLE=function(_,N){for(var x=0,B=0,y=0,w=0;y>8&255),x<_.length&&(_[x++]=p>>16&255),w===6?(x<_.length&&(_[x++]=p>>24&255),B=0,w=0):(B=p>>>24,w+=2)}if(x<_.length)for(_[x++]=B;x<_.length;)_[x++]=0},U.prototype._toArrayLikeBE=function(_,N){for(var x=_.length-1,B=0,y=0,w=0;y=0&&(_[x--]=p>>8&255),x>=0&&(_[x--]=p>>16&255),w===6?(x>=0&&(_[x--]=p>>24&255),B=0,w=0):(B=p>>>24,w+=2)}if(x>=0)for(_[x--]=B;x>=0;)_[x--]=0},Math.clz32?U.prototype._countBits=function(_){return 32-Math.clz32(_)}:U.prototype._countBits=function(_){var N=_,x=0;return N>=4096&&(x+=13,N>>>=13),N>=64&&(x+=7,N>>>=7),N>=8&&(x+=4,N>>>=4),N>=2&&(x+=2,N>>>=2),x+N},U.prototype._zeroBits=function(_){if(_===0)return 26;var N=_,x=0;return(N&8191)===0&&(x+=13,N>>>=13),(N&127)===0&&(x+=7,N>>>=7),(N&15)===0&&(x+=4,N>>>=4),(N&3)===0&&(x+=2,N>>>=2),(N&1)===0&&x++,x},U.prototype.bitLength=function(){var _=this.words[this.length-1],N=this._countBits(_);return(this.length-1)*26+N};function T(_){for(var N=new Array(_.bitLength()),x=0;x>>y&1}return N}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var _=0,N=0;N_.length?this.clone().ior(_):_.clone().ior(this)},U.prototype.uor=function(_){return this.length>_.length?this.clone().iuor(_):_.clone().iuor(this)},U.prototype.iuand=function(_){var N;this.length>_.length?N=_:N=this;for(var x=0;x_.length?this.clone().iand(_):_.clone().iand(this)},U.prototype.uand=function(_){return this.length>_.length?this.clone().iuand(_):_.clone().iuand(this)},U.prototype.iuxor=function(_){var N,x;this.length>_.length?(N=this,x=_):(N=_,x=this);for(var B=0;B_.length?this.clone().ixor(_):_.clone().ixor(this)},U.prototype.uxor=function(_){return this.length>_.length?this.clone().iuxor(_):_.clone().iuxor(this)},U.prototype.inotn=function(_){G(typeof _=="number"&&_>=0);var N=Math.ceil(_/26)|0,x=_%26;this._expand(N),x>0&&N--;for(var B=0;B0&&(this.words[B]=~this.words[B]&67108863>>26-x),this._strip()},U.prototype.notn=function(_){return this.clone().inotn(_)},U.prototype.setn=function(_,N){G(typeof _=="number"&&_>=0);var x=_/26|0,B=_%26;return this._expand(x+1),N?this.words[x]=this.words[x]|1<_.length?(x=this,B=_):(x=_,B=this);for(var y=0,w=0;w>>26;for(;y!==0&&w>>26;if(this.length=x.length,y!==0)this.words[this.length]=y,this.length++;else if(x!==this)for(;w_.length?this.clone().iadd(_):_.clone().iadd(this)},U.prototype.isub=function(_){if(_.negative!==0){_.negative=0;var N=this.iadd(_);return _.negative=1,N._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(_),this.negative=1,this._normSign();var x=this.cmp(_);if(x===0)return this.negative=0,this.length=1,this.words[0]=0,this;var B,y;x>0?(B=this,y=_):(B=_,y=this);for(var w=0,p=0;p>26,this.words[p]=N&67108863;for(;w!==0&&p>26,this.words[p]=N&67108863;if(w===0&&p>>26,b=c&67108863,l=Math.min(h,N.length-1),o=Math.max(0,h-_.length+1);o<=l;o++){var u=h-o|0;y=_.words[u]|0,w=N.words[o]|0,p=y*w+b,d+=p/67108864|0,b=p&67108863}x.words[h]=b|0,c=d|0}return c!==0?x.words[h]=c|0:x.length--,x._strip()}var C=function(_,N,x){var B=_.words,y=N.words,w=x.words,p=0,f,c,h,d=B[0]|0,b=d&8191,l=d>>>13,o=B[1]|0,u=o&8191,n=o>>>13,s=B[2]|0,t=s&8191,m=s>>>13,a=B[3]|0,e=a&8191,r=a>>>13,i=B[4]|0,$0=i&8191,Q0=i>>>13,Y0=B[5]|0,Z0=Y0&8191,G0=Y0>>>13,V0=B[6]|0,U0=V0&8191,X0=V0>>>13,K0=B[7]|0,I0=K0&8191,O0=K0>>>13,J0=B[8]|0,F0=J0&8191,A0=J0>>>13,H0=B[9]|0,W0=H0&8191,E0=H0>>>13,T0=y[0]|0,D0=T0&8191,C0=T0>>>13,L0=y[1]|0,R0=L0&8191,P0=L0>>>13,z0=y[2]|0,M0=z0&8191,S0=z0>>>13,v0=y[3]|0,q0=v0&8191,j0=v0>>>13,k0=y[4]|0,g0=k0&8191,_0=k0>>>13,N0=y[5]|0,x0=N0&8191,B0=N0>>>13,y0=y[6]|0,w0=y0&8191,p0=y0>>>13,f0=y[7]|0,c0=f0&8191,h0=f0>>>13,d0=y[8]|0,b0=d0&8191,l0=d0>>>13,o0=y[9]|0,u0=o0&8191,n0=o0>>>13;x.negative=_.negative^N.negative,x.length=19,f=Math.imul(b,D0),c=Math.imul(b,C0),c=c+Math.imul(l,D0)|0,h=Math.imul(l,C0);var s0=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(s0>>>26)|0,s0&=67108863,f=Math.imul(u,D0),c=Math.imul(u,C0),c=c+Math.imul(n,D0)|0,h=Math.imul(n,C0),f=f+Math.imul(b,R0)|0,c=c+Math.imul(b,P0)|0,c=c+Math.imul(l,R0)|0,h=h+Math.imul(l,P0)|0;var t0=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(t0>>>26)|0,t0&=67108863,f=Math.imul(t,D0),c=Math.imul(t,C0),c=c+Math.imul(m,D0)|0,h=Math.imul(m,C0),f=f+Math.imul(u,R0)|0,c=c+Math.imul(u,P0)|0,c=c+Math.imul(n,R0)|0,h=h+Math.imul(n,P0)|0,f=f+Math.imul(b,M0)|0,c=c+Math.imul(b,S0)|0,c=c+Math.imul(l,M0)|0,h=h+Math.imul(l,S0)|0;var m0=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(m0>>>26)|0,m0&=67108863,f=Math.imul(e,D0),c=Math.imul(e,C0),c=c+Math.imul(r,D0)|0,h=Math.imul(r,C0),f=f+Math.imul(t,R0)|0,c=c+Math.imul(t,P0)|0,c=c+Math.imul(m,R0)|0,h=h+Math.imul(m,P0)|0,f=f+Math.imul(u,M0)|0,c=c+Math.imul(u,S0)|0,c=c+Math.imul(n,M0)|0,h=h+Math.imul(n,S0)|0,f=f+Math.imul(b,q0)|0,c=c+Math.imul(b,j0)|0,c=c+Math.imul(l,q0)|0,h=h+Math.imul(l,j0)|0;var a0=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(a0>>>26)|0,a0&=67108863,f=Math.imul($0,D0),c=Math.imul($0,C0),c=c+Math.imul(Q0,D0)|0,h=Math.imul(Q0,C0),f=f+Math.imul(e,R0)|0,c=c+Math.imul(e,P0)|0,c=c+Math.imul(r,R0)|0,h=h+Math.imul(r,P0)|0,f=f+Math.imul(t,M0)|0,c=c+Math.imul(t,S0)|0,c=c+Math.imul(m,M0)|0,h=h+Math.imul(m,S0)|0,f=f+Math.imul(u,q0)|0,c=c+Math.imul(u,j0)|0,c=c+Math.imul(n,q0)|0,h=h+Math.imul(n,j0)|0,f=f+Math.imul(b,g0)|0,c=c+Math.imul(b,_0)|0,c=c+Math.imul(l,g0)|0,h=h+Math.imul(l,_0)|0;var e0=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(e0>>>26)|0,e0&=67108863,f=Math.imul(Z0,D0),c=Math.imul(Z0,C0),c=c+Math.imul(G0,D0)|0,h=Math.imul(G0,C0),f=f+Math.imul($0,R0)|0,c=c+Math.imul($0,P0)|0,c=c+Math.imul(Q0,R0)|0,h=h+Math.imul(Q0,P0)|0,f=f+Math.imul(e,M0)|0,c=c+Math.imul(e,S0)|0,c=c+Math.imul(r,M0)|0,h=h+Math.imul(r,S0)|0,f=f+Math.imul(t,q0)|0,c=c+Math.imul(t,j0)|0,c=c+Math.imul(m,q0)|0,h=h+Math.imul(m,j0)|0,f=f+Math.imul(u,g0)|0,c=c+Math.imul(u,_0)|0,c=c+Math.imul(n,g0)|0,h=h+Math.imul(n,_0)|0,f=f+Math.imul(b,x0)|0,c=c+Math.imul(b,B0)|0,c=c+Math.imul(l,x0)|0,h=h+Math.imul(l,B0)|0;var r0=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(r0>>>26)|0,r0&=67108863,f=Math.imul(U0,D0),c=Math.imul(U0,C0),c=c+Math.imul(X0,D0)|0,h=Math.imul(X0,C0),f=f+Math.imul(Z0,R0)|0,c=c+Math.imul(Z0,P0)|0,c=c+Math.imul(G0,R0)|0,h=h+Math.imul(G0,P0)|0,f=f+Math.imul($0,M0)|0,c=c+Math.imul($0,S0)|0,c=c+Math.imul(Q0,M0)|0,h=h+Math.imul(Q0,S0)|0,f=f+Math.imul(e,q0)|0,c=c+Math.imul(e,j0)|0,c=c+Math.imul(r,q0)|0,h=h+Math.imul(r,j0)|0,f=f+Math.imul(t,g0)|0,c=c+Math.imul(t,_0)|0,c=c+Math.imul(m,g0)|0,h=h+Math.imul(m,_0)|0,f=f+Math.imul(u,x0)|0,c=c+Math.imul(u,B0)|0,c=c+Math.imul(n,x0)|0,h=h+Math.imul(n,B0)|0,f=f+Math.imul(b,w0)|0,c=c+Math.imul(b,p0)|0,c=c+Math.imul(l,w0)|0,h=h+Math.imul(l,p0)|0;var i0=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(i0>>>26)|0,i0&=67108863,f=Math.imul(I0,D0),c=Math.imul(I0,C0),c=c+Math.imul(O0,D0)|0,h=Math.imul(O0,C0),f=f+Math.imul(U0,R0)|0,c=c+Math.imul(U0,P0)|0,c=c+Math.imul(X0,R0)|0,h=h+Math.imul(X0,P0)|0,f=f+Math.imul(Z0,M0)|0,c=c+Math.imul(Z0,S0)|0,c=c+Math.imul(G0,M0)|0,h=h+Math.imul(G0,S0)|0,f=f+Math.imul($0,q0)|0,c=c+Math.imul($0,j0)|0,c=c+Math.imul(Q0,q0)|0,h=h+Math.imul(Q0,j0)|0,f=f+Math.imul(e,g0)|0,c=c+Math.imul(e,_0)|0,c=c+Math.imul(r,g0)|0,h=h+Math.imul(r,_0)|0,f=f+Math.imul(t,x0)|0,c=c+Math.imul(t,B0)|0,c=c+Math.imul(m,x0)|0,h=h+Math.imul(m,B0)|0,f=f+Math.imul(u,w0)|0,c=c+Math.imul(u,p0)|0,c=c+Math.imul(n,w0)|0,h=h+Math.imul(n,p0)|0,f=f+Math.imul(b,c0)|0,c=c+Math.imul(b,h0)|0,c=c+Math.imul(l,c0)|0,h=h+Math.imul(l,h0)|0;var $$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+($$>>>26)|0,$$&=67108863,f=Math.imul(F0,D0),c=Math.imul(F0,C0),c=c+Math.imul(A0,D0)|0,h=Math.imul(A0,C0),f=f+Math.imul(I0,R0)|0,c=c+Math.imul(I0,P0)|0,c=c+Math.imul(O0,R0)|0,h=h+Math.imul(O0,P0)|0,f=f+Math.imul(U0,M0)|0,c=c+Math.imul(U0,S0)|0,c=c+Math.imul(X0,M0)|0,h=h+Math.imul(X0,S0)|0,f=f+Math.imul(Z0,q0)|0,c=c+Math.imul(Z0,j0)|0,c=c+Math.imul(G0,q0)|0,h=h+Math.imul(G0,j0)|0,f=f+Math.imul($0,g0)|0,c=c+Math.imul($0,_0)|0,c=c+Math.imul(Q0,g0)|0,h=h+Math.imul(Q0,_0)|0,f=f+Math.imul(e,x0)|0,c=c+Math.imul(e,B0)|0,c=c+Math.imul(r,x0)|0,h=h+Math.imul(r,B0)|0,f=f+Math.imul(t,w0)|0,c=c+Math.imul(t,p0)|0,c=c+Math.imul(m,w0)|0,h=h+Math.imul(m,p0)|0,f=f+Math.imul(u,c0)|0,c=c+Math.imul(u,h0)|0,c=c+Math.imul(n,c0)|0,h=h+Math.imul(n,h0)|0,f=f+Math.imul(b,b0)|0,c=c+Math.imul(b,l0)|0,c=c+Math.imul(l,b0)|0,h=h+Math.imul(l,l0)|0;var Q$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,f=Math.imul(W0,D0),c=Math.imul(W0,C0),c=c+Math.imul(E0,D0)|0,h=Math.imul(E0,C0),f=f+Math.imul(F0,R0)|0,c=c+Math.imul(F0,P0)|0,c=c+Math.imul(A0,R0)|0,h=h+Math.imul(A0,P0)|0,f=f+Math.imul(I0,M0)|0,c=c+Math.imul(I0,S0)|0,c=c+Math.imul(O0,M0)|0,h=h+Math.imul(O0,S0)|0,f=f+Math.imul(U0,q0)|0,c=c+Math.imul(U0,j0)|0,c=c+Math.imul(X0,q0)|0,h=h+Math.imul(X0,j0)|0,f=f+Math.imul(Z0,g0)|0,c=c+Math.imul(Z0,_0)|0,c=c+Math.imul(G0,g0)|0,h=h+Math.imul(G0,_0)|0,f=f+Math.imul($0,x0)|0,c=c+Math.imul($0,B0)|0,c=c+Math.imul(Q0,x0)|0,h=h+Math.imul(Q0,B0)|0,f=f+Math.imul(e,w0)|0,c=c+Math.imul(e,p0)|0,c=c+Math.imul(r,w0)|0,h=h+Math.imul(r,p0)|0,f=f+Math.imul(t,c0)|0,c=c+Math.imul(t,h0)|0,c=c+Math.imul(m,c0)|0,h=h+Math.imul(m,h0)|0,f=f+Math.imul(u,b0)|0,c=c+Math.imul(u,l0)|0,c=c+Math.imul(n,b0)|0,h=h+Math.imul(n,l0)|0,f=f+Math.imul(b,u0)|0,c=c+Math.imul(b,n0)|0,c=c+Math.imul(l,u0)|0,h=h+Math.imul(l,n0)|0;var Y$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,f=Math.imul(W0,R0),c=Math.imul(W0,P0),c=c+Math.imul(E0,R0)|0,h=Math.imul(E0,P0),f=f+Math.imul(F0,M0)|0,c=c+Math.imul(F0,S0)|0,c=c+Math.imul(A0,M0)|0,h=h+Math.imul(A0,S0)|0,f=f+Math.imul(I0,q0)|0,c=c+Math.imul(I0,j0)|0,c=c+Math.imul(O0,q0)|0,h=h+Math.imul(O0,j0)|0,f=f+Math.imul(U0,g0)|0,c=c+Math.imul(U0,_0)|0,c=c+Math.imul(X0,g0)|0,h=h+Math.imul(X0,_0)|0,f=f+Math.imul(Z0,x0)|0,c=c+Math.imul(Z0,B0)|0,c=c+Math.imul(G0,x0)|0,h=h+Math.imul(G0,B0)|0,f=f+Math.imul($0,w0)|0,c=c+Math.imul($0,p0)|0,c=c+Math.imul(Q0,w0)|0,h=h+Math.imul(Q0,p0)|0,f=f+Math.imul(e,c0)|0,c=c+Math.imul(e,h0)|0,c=c+Math.imul(r,c0)|0,h=h+Math.imul(r,h0)|0,f=f+Math.imul(t,b0)|0,c=c+Math.imul(t,l0)|0,c=c+Math.imul(m,b0)|0,h=h+Math.imul(m,l0)|0,f=f+Math.imul(u,u0)|0,c=c+Math.imul(u,n0)|0,c=c+Math.imul(n,u0)|0,h=h+Math.imul(n,n0)|0;var Z$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,f=Math.imul(W0,M0),c=Math.imul(W0,S0),c=c+Math.imul(E0,M0)|0,h=Math.imul(E0,S0),f=f+Math.imul(F0,q0)|0,c=c+Math.imul(F0,j0)|0,c=c+Math.imul(A0,q0)|0,h=h+Math.imul(A0,j0)|0,f=f+Math.imul(I0,g0)|0,c=c+Math.imul(I0,_0)|0,c=c+Math.imul(O0,g0)|0,h=h+Math.imul(O0,_0)|0,f=f+Math.imul(U0,x0)|0,c=c+Math.imul(U0,B0)|0,c=c+Math.imul(X0,x0)|0,h=h+Math.imul(X0,B0)|0,f=f+Math.imul(Z0,w0)|0,c=c+Math.imul(Z0,p0)|0,c=c+Math.imul(G0,w0)|0,h=h+Math.imul(G0,p0)|0,f=f+Math.imul($0,c0)|0,c=c+Math.imul($0,h0)|0,c=c+Math.imul(Q0,c0)|0,h=h+Math.imul(Q0,h0)|0,f=f+Math.imul(e,b0)|0,c=c+Math.imul(e,l0)|0,c=c+Math.imul(r,b0)|0,h=h+Math.imul(r,l0)|0,f=f+Math.imul(t,u0)|0,c=c+Math.imul(t,n0)|0,c=c+Math.imul(m,u0)|0,h=h+Math.imul(m,n0)|0;var G$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(G$>>>26)|0,G$&=67108863,f=Math.imul(W0,q0),c=Math.imul(W0,j0),c=c+Math.imul(E0,q0)|0,h=Math.imul(E0,j0),f=f+Math.imul(F0,g0)|0,c=c+Math.imul(F0,_0)|0,c=c+Math.imul(A0,g0)|0,h=h+Math.imul(A0,_0)|0,f=f+Math.imul(I0,x0)|0,c=c+Math.imul(I0,B0)|0,c=c+Math.imul(O0,x0)|0,h=h+Math.imul(O0,B0)|0,f=f+Math.imul(U0,w0)|0,c=c+Math.imul(U0,p0)|0,c=c+Math.imul(X0,w0)|0,h=h+Math.imul(X0,p0)|0,f=f+Math.imul(Z0,c0)|0,c=c+Math.imul(Z0,h0)|0,c=c+Math.imul(G0,c0)|0,h=h+Math.imul(G0,h0)|0,f=f+Math.imul($0,b0)|0,c=c+Math.imul($0,l0)|0,c=c+Math.imul(Q0,b0)|0,h=h+Math.imul(Q0,l0)|0,f=f+Math.imul(e,u0)|0,c=c+Math.imul(e,n0)|0,c=c+Math.imul(r,u0)|0,h=h+Math.imul(r,n0)|0;var V$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(V$>>>26)|0,V$&=67108863,f=Math.imul(W0,g0),c=Math.imul(W0,_0),c=c+Math.imul(E0,g0)|0,h=Math.imul(E0,_0),f=f+Math.imul(F0,x0)|0,c=c+Math.imul(F0,B0)|0,c=c+Math.imul(A0,x0)|0,h=h+Math.imul(A0,B0)|0,f=f+Math.imul(I0,w0)|0,c=c+Math.imul(I0,p0)|0,c=c+Math.imul(O0,w0)|0,h=h+Math.imul(O0,p0)|0,f=f+Math.imul(U0,c0)|0,c=c+Math.imul(U0,h0)|0,c=c+Math.imul(X0,c0)|0,h=h+Math.imul(X0,h0)|0,f=f+Math.imul(Z0,b0)|0,c=c+Math.imul(Z0,l0)|0,c=c+Math.imul(G0,b0)|0,h=h+Math.imul(G0,l0)|0,f=f+Math.imul($0,u0)|0,c=c+Math.imul($0,n0)|0,c=c+Math.imul(Q0,u0)|0,h=h+Math.imul(Q0,n0)|0;var U$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(U$>>>26)|0,U$&=67108863,f=Math.imul(W0,x0),c=Math.imul(W0,B0),c=c+Math.imul(E0,x0)|0,h=Math.imul(E0,B0),f=f+Math.imul(F0,w0)|0,c=c+Math.imul(F0,p0)|0,c=c+Math.imul(A0,w0)|0,h=h+Math.imul(A0,p0)|0,f=f+Math.imul(I0,c0)|0,c=c+Math.imul(I0,h0)|0,c=c+Math.imul(O0,c0)|0,h=h+Math.imul(O0,h0)|0,f=f+Math.imul(U0,b0)|0,c=c+Math.imul(U0,l0)|0,c=c+Math.imul(X0,b0)|0,h=h+Math.imul(X0,l0)|0,f=f+Math.imul(Z0,u0)|0,c=c+Math.imul(Z0,n0)|0,c=c+Math.imul(G0,u0)|0,h=h+Math.imul(G0,n0)|0;var X$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(X$>>>26)|0,X$&=67108863,f=Math.imul(W0,w0),c=Math.imul(W0,p0),c=c+Math.imul(E0,w0)|0,h=Math.imul(E0,p0),f=f+Math.imul(F0,c0)|0,c=c+Math.imul(F0,h0)|0,c=c+Math.imul(A0,c0)|0,h=h+Math.imul(A0,h0)|0,f=f+Math.imul(I0,b0)|0,c=c+Math.imul(I0,l0)|0,c=c+Math.imul(O0,b0)|0,h=h+Math.imul(O0,l0)|0,f=f+Math.imul(U0,u0)|0,c=c+Math.imul(U0,n0)|0,c=c+Math.imul(X0,u0)|0,h=h+Math.imul(X0,n0)|0;var K$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(K$>>>26)|0,K$&=67108863,f=Math.imul(W0,c0),c=Math.imul(W0,h0),c=c+Math.imul(E0,c0)|0,h=Math.imul(E0,h0),f=f+Math.imul(F0,b0)|0,c=c+Math.imul(F0,l0)|0,c=c+Math.imul(A0,b0)|0,h=h+Math.imul(A0,l0)|0,f=f+Math.imul(I0,u0)|0,c=c+Math.imul(I0,n0)|0,c=c+Math.imul(O0,u0)|0,h=h+Math.imul(O0,n0)|0;var I$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(I$>>>26)|0,I$&=67108863,f=Math.imul(W0,b0),c=Math.imul(W0,l0),c=c+Math.imul(E0,b0)|0,h=Math.imul(E0,l0),f=f+Math.imul(F0,u0)|0,c=c+Math.imul(F0,n0)|0,c=c+Math.imul(A0,u0)|0,h=h+Math.imul(A0,n0)|0;var O$=(p+f|0)+((c&8191)<<13)|0;p=(h+(c>>>13)|0)+(O$>>>26)|0,O$&=67108863,f=Math.imul(W0,u0),c=Math.imul(W0,n0),c=c+Math.imul(E0,u0)|0,h=Math.imul(E0,n0);var J$=(p+f|0)+((c&8191)<<13)|0;return p=(h+(c>>>13)|0)+(J$>>>26)|0,J$&=67108863,w[0]=s0,w[1]=t0,w[2]=m0,w[3]=a0,w[4]=e0,w[5]=r0,w[6]=i0,w[7]=$$,w[8]=Q$,w[9]=Y$,w[10]=Z$,w[11]=G$,w[12]=V$,w[13]=U$,w[14]=X$,w[15]=K$,w[16]=I$,w[17]=O$,w[18]=J$,p!==0&&(w[19]=p,x.length++),x};Math.imul||(C=D);function L(_,N,x){x.negative=N.negative^_.negative,x.length=_.length+N.length;for(var B=0,y=0,w=0;w>>26)|0,y+=p>>>26,p&=67108863}x.words[w]=f,B=p,p=y}return B!==0?x.words[w]=B:x.length--,x._strip()}function R(_,N,x){return L(_,N,x)}U.prototype.mulTo=function(_,N){var x,B=this.length+_.length;return this.length===10&&_.length===10?x=C(this,_,N):B<63?x=D(this,_,N):B<1024?x=L(this,_,N):x=R(this,_,N),x};function P(_,N){this.x=_,this.y=N}P.prototype.makeRBT=function(_){for(var N=new Array(_),x=U.prototype._countBits(_)-1,B=0;B<_;B++)N[B]=this.revBin(B,x,_);return N},P.prototype.revBin=function(_,N,x){if(_===0||_===x-1)return _;for(var B=0,y=0;y>=1;return B},P.prototype.permute=function(_,N,x,B,y,w){for(var p=0;p>>1)y++;return 1<>>13,x[2*w+1]=y&8191,y=y>>>13;for(w=2*N;w>=26,x+=y/67108864|0,x+=w>>>26,this.words[B]=w&67108863}return x!==0&&(this.words[B]=x,this.length++),N?this.ineg():this},U.prototype.muln=function(_){return this.clone().imuln(_)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(_){var N=T(_);if(N.length===0)return new U(1);for(var x=this,B=0;B=0);var N=_%26,x=(_-N)/26,B=67108863>>>26-N<<26-N,y;if(N!==0){var w=0;for(y=0;y>>26-N}w&&(this.words[y]=w,this.length++)}if(x!==0){for(y=this.length-1;y>=0;y--)this.words[y+x]=this.words[y];for(y=0;y=0);var B;N?B=(N-N%26)/26:B=0;var y=_%26,w=Math.min((_-y)/26,this.length),p=67108863^67108863>>>y<w)for(this.length-=w,c=0;c=0&&(h!==0||c>=B);c--){var d=this.words[c]|0;this.words[c]=h<<26-y|d>>>y,h=d&p}return f&&h!==0&&(f.words[f.length++]=h),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},U.prototype.ishrn=function(_,N,x){return G(this.negative===0),this.iushrn(_,N,x)},U.prototype.shln=function(_){return this.clone().ishln(_)},U.prototype.ushln=function(_){return this.clone().iushln(_)},U.prototype.shrn=function(_){return this.clone().ishrn(_)},U.prototype.ushrn=function(_){return this.clone().iushrn(_)},U.prototype.testn=function(_){G(typeof _=="number"&&_>=0);var N=_%26,x=(_-N)/26,B=1<=0);var N=_%26,x=(_-N)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=x)return this;if(N!==0&&x++,this.length=Math.min(x,this.length),N!==0){var B=67108863^67108863>>>N<=67108864;N++)this.words[N]-=67108864,N===this.length-1?this.words[N+1]=1:this.words[N+1]++;return this.length=Math.max(this.length,N+1),this},U.prototype.isubn=function(_){if(G(typeof _=="number"),G(_<67108864),_<0)return this.iaddn(-_);if(this.negative!==0)return this.negative=0,this.iaddn(_),this.negative=1,this;if(this.words[0]-=_,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var N=0;N>26)-(f/67108864|0),this.words[y+x]=w&67108863}for(;y>26,this.words[y+x]=w&67108863;if(p===0)return this._strip();for(G(p===-1),p=0,y=0;y>26,this.words[y]=w&67108863;return this.negative=1,this._strip()},U.prototype._wordDiv=function(_,N){var x=this.length-_.length,B=this.clone(),y=_,w=y.words[y.length-1]|0,p=this._countBits(w);x=26-p,x!==0&&(y=y.ushln(x),B.iushln(x),w=y.words[y.length-1]|0);var f=B.length-y.length,c;if(N!=="mod"){c=new U(null),c.length=f+1,c.words=new Array(c.length);for(var h=0;h=0;b--){var l=(B.words[y.length+b]|0)*67108864+(B.words[y.length+b-1]|0);for(l=Math.min(l/w|0,67108863),B._ishlnsubmul(y,l,b);B.negative!==0;)l--,B.negative=0,B._ishlnsubmul(y,1,b),B.isZero()||(B.negative^=1);c&&(c.words[b]=l)}return c&&c._strip(),B._strip(),N!=="div"&&x!==0&&B.iushrn(x),{div:c||null,mod:B}},U.prototype.divmod=function(_,N,x){if(G(!_.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var B,y,w;return this.negative!==0&&_.negative===0?(w=this.neg().divmod(_,N),N!=="mod"&&(B=w.div.neg()),N!=="div"&&(y=w.mod.neg(),x&&y.negative!==0&&y.iadd(_)),{div:B,mod:y}):this.negative===0&&_.negative!==0?(w=this.divmod(_.neg(),N),N!=="mod"&&(B=w.div.neg()),{div:B,mod:w.mod}):(this.negative&_.negative)!==0?(w=this.neg().divmod(_.neg(),N),N!=="div"&&(y=w.mod.neg(),x&&y.negative!==0&&y.isub(_)),{div:w.div,mod:y}):_.length>this.length||this.cmp(_)<0?{div:new U(0),mod:this}:_.length===1?N==="div"?{div:this.divn(_.words[0]),mod:null}:N==="mod"?{div:null,mod:new U(this.modrn(_.words[0]))}:{div:this.divn(_.words[0]),mod:new U(this.modrn(_.words[0]))}:this._wordDiv(_,N)},U.prototype.div=function(_){return this.divmod(_,"div",!1).div},U.prototype.mod=function(_){return this.divmod(_,"mod",!1).mod},U.prototype.umod=function(_){return this.divmod(_,"mod",!0).mod},U.prototype.divRound=function(_){var N=this.divmod(_);if(N.mod.isZero())return N.div;var x=N.div.negative!==0?N.mod.isub(_):N.mod,B=_.ushrn(1),y=_.andln(1),w=x.cmp(B);return w<0||y===1&&w===0?N.div:N.div.negative!==0?N.div.isubn(1):N.div.iaddn(1)},U.prototype.modrn=function(_){var N=_<0;N&&(_=-_),G(_<=67108863);for(var x=(1<<26)%_,B=0,y=this.length-1;y>=0;y--)B=(x*B+(this.words[y]|0))%_;return N?-B:B},U.prototype.modn=function(_){return this.modrn(_)},U.prototype.idivn=function(_){var N=_<0;N&&(_=-_),G(_<=67108863);for(var x=0,B=this.length-1;B>=0;B--){var y=(this.words[B]|0)+x*67108864;this.words[B]=y/_|0,x=y%_}return this._strip(),N?this.ineg():this},U.prototype.divn=function(_){return this.clone().idivn(_)},U.prototype.egcd=function(_){G(_.negative===0),G(!_.isZero());var N=this,x=_.clone();N.negative!==0?N=N.umod(_):N=N.clone();for(var B=new U(1),y=new U(0),w=new U(0),p=new U(1),f=0;N.isEven()&&x.isEven();)N.iushrn(1),x.iushrn(1),++f;for(var c=x.clone(),h=N.clone();!N.isZero();){for(var d=0,b=1;(N.words[0]&b)===0&&d<26;++d,b<<=1);if(d>0)for(N.iushrn(d);d-- >0;)(B.isOdd()||y.isOdd())&&(B.iadd(c),y.isub(h)),B.iushrn(1),y.iushrn(1);for(var l=0,o=1;(x.words[0]&o)===0&&l<26;++l,o<<=1);if(l>0)for(x.iushrn(l);l-- >0;)(w.isOdd()||p.isOdd())&&(w.iadd(c),p.isub(h)),w.iushrn(1),p.iushrn(1);N.cmp(x)>=0?(N.isub(x),B.isub(w),y.isub(p)):(x.isub(N),w.isub(B),p.isub(y))}return{a:w,b:p,gcd:x.iushln(f)}},U.prototype._invmp=function(_){G(_.negative===0),G(!_.isZero());var N=this,x=_.clone();N.negative!==0?N=N.umod(_):N=N.clone();for(var B=new U(1),y=new U(0),w=x.clone();N.cmpn(1)>0&&x.cmpn(1)>0;){for(var p=0,f=1;(N.words[0]&f)===0&&p<26;++p,f<<=1);if(p>0)for(N.iushrn(p);p-- >0;)B.isOdd()&&B.iadd(w),B.iushrn(1);for(var c=0,h=1;(x.words[0]&h)===0&&c<26;++c,h<<=1);if(c>0)for(x.iushrn(c);c-- >0;)y.isOdd()&&y.iadd(w),y.iushrn(1);N.cmp(x)>=0?(N.isub(x),B.isub(y)):(x.isub(N),y.isub(B))}var d;return N.cmpn(1)===0?d=B:d=y,d.cmpn(0)<0&&d.iadd(_),d},U.prototype.gcd=function(_){if(this.isZero())return _.abs();if(_.isZero())return this.abs();var N=this.clone(),x=_.clone();N.negative=0,x.negative=0;for(var B=0;N.isEven()&&x.isEven();B++)N.iushrn(1),x.iushrn(1);do{for(;N.isEven();)N.iushrn(1);for(;x.isEven();)x.iushrn(1);var y=N.cmp(x);if(y<0){var w=N;N=x,x=w}else if(y===0||x.cmpn(1)===0)break;N.isub(x)}while(!0);return x.iushln(B)},U.prototype.invm=function(_){return this.egcd(_).a.umod(_)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(_){return this.words[0]&_},U.prototype.bincn=function(_){G(typeof _=="number");var N=_%26,x=(_-N)/26,B=1<>>26,p&=67108863,this.words[w]=p}return y!==0&&(this.words[w]=y,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(_){var N=_<0;if(this.negative!==0&&!N)return-1;if(this.negative===0&&N)return 1;this._strip();var x;if(this.length>1)x=1;else{N&&(_=-_),G(_<=67108863,"Number is too big");var B=this.words[0]|0;x=B===_?0:B<_?-1:1}return this.negative!==0?-x|0:x},U.prototype.cmp=function(_){if(this.negative!==0&&_.negative===0)return-1;if(this.negative===0&&_.negative!==0)return 1;var N=this.ucmp(_);return this.negative!==0?-N|0:N},U.prototype.ucmp=function(_){if(this.length>_.length)return 1;if(this.length<_.length)return-1;for(var N=0,x=this.length-1;x>=0;x--){var B=this.words[x]|0,y=_.words[x]|0;if(B!==y){By&&(N=1);break}}return N},U.prototype.gtn=function(_){return this.cmpn(_)===1},U.prototype.gt=function(_){return this.cmp(_)===1},U.prototype.gten=function(_){return this.cmpn(_)>=0},U.prototype.gte=function(_){return this.cmp(_)>=0},U.prototype.ltn=function(_){return this.cmpn(_)===-1},U.prototype.lt=function(_){return this.cmp(_)===-1},U.prototype.lten=function(_){return this.cmpn(_)<=0},U.prototype.lte=function(_){return this.cmp(_)<=0},U.prototype.eqn=function(_){return this.cmpn(_)===0},U.prototype.eq=function(_){return this.cmp(_)===0},U.red=function(_){return new k(_)},U.prototype.toRed=function(_){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),_.convertTo(this)._forceRed(_)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(_){return this.red=_,this},U.prototype.forceRed=function(_){return G(!this.red,"Already a number in reduction context"),this._forceRed(_)},U.prototype.redAdd=function(_){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,_)},U.prototype.redIAdd=function(_){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,_)},U.prototype.redSub=function(_){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,_)},U.prototype.redISub=function(_){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,_)},U.prototype.redShl=function(_){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,_)},U.prototype.redMul=function(_){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,_),this.red.mul(this,_)},U.prototype.redIMul=function(_){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,_),this.red.imul(this,_)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(_){return G(this.red&&!_.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,_)};var z={k256:null,p224:null,p192:null,p25519:null};function M(_,N){this.name=_,this.p=new U(N,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}M.prototype._tmp=function(){var _=new U(null);return _.words=new Array(Math.ceil(this.n/13)),_},M.prototype.ireduce=function(_){var N=_,x;do this.split(N,this.tmp),N=this.imulK(N),N=N.iadd(this.tmp),x=N.bitLength();while(x>this.n);var B=x0?N.isub(this.p):N.strip!==void 0?N.strip():N._strip(),N},M.prototype.split=function(_,N){_.iushrn(this.n,0,N)},M.prototype.imulK=function(_){return _.imul(this.k)};function S(){M.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(S,M),S.prototype.split=function(_,N){for(var x=4194303,B=Math.min(_.length,9),y=0;y>>22,w=p}w>>>=22,_.words[y-10]=w,w===0&&_.length>10?_.length-=10:_.length-=9},S.prototype.imulK=function(_){_.words[_.length]=0,_.words[_.length+1]=0,_.length+=2;for(var N=0,x=0;x<_.length;x++){var B=_.words[x]|0;N+=B*977,_.words[x]=N&67108863,N=B*64+(N/67108864|0)}return _.words[_.length-1]===0&&(_.length--,_.words[_.length-1]===0&&_.length--),_};function v(){M.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}V(v,M);function q(){M.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}V(q,M);function j(){M.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}V(j,M),j.prototype.imulK=function(_){for(var N=0,x=0;x<_.length;x++){var B=(_.words[x]|0)*19+N,y=B&67108863;B>>>=26,_.words[x]=y,N=B}return N!==0&&(_.words[_.length++]=N),_},U._prime=function(_){if(z[_])return z[_];var N;if(_==="k256")N=new S;else if(_==="p224")N=new v;else if(_==="p192")N=new q;else if(_==="p25519")N=new j;else throw new Error("Unknown prime "+_);return z[_]=N,N};function k(_){if(typeof _=="string"){var N=U._prime(_);this.m=N.p,this.prime=N}else G(_.gtn(1),"modulus must be greater than 1"),this.m=_,this.prime=null}k.prototype._verify1=function(_){G(_.negative===0,"red works only with positives"),G(_.red,"red works only with red numbers")},k.prototype._verify2=function(_,N){G((_.negative|N.negative)===0,"red works only with positives"),G(_.red&&_.red===N.red,"red works only with red numbers")},k.prototype.imod=function(_){return this.prime?this.prime.ireduce(_)._forceRed(this):(J(_,_.umod(this.m)._forceRed(this)),_)},k.prototype.neg=function(_){return _.isZero()?_.clone():this.m.sub(_)._forceRed(this)},k.prototype.add=function(_,N){this._verify2(_,N);var x=_.add(N);return x.cmp(this.m)>=0&&x.isub(this.m),x._forceRed(this)},k.prototype.iadd=function(_,N){this._verify2(_,N);var x=_.iadd(N);return x.cmp(this.m)>=0&&x.isub(this.m),x},k.prototype.sub=function(_,N){this._verify2(_,N);var x=_.sub(N);return x.cmpn(0)<0&&x.iadd(this.m),x._forceRed(this)},k.prototype.isub=function(_,N){this._verify2(_,N);var x=_.isub(N);return x.cmpn(0)<0&&x.iadd(this.m),x},k.prototype.shl=function(_,N){return this._verify1(_),this.imod(_.ushln(N))},k.prototype.imul=function(_,N){return this._verify2(_,N),this.imod(_.imul(N))},k.prototype.mul=function(_,N){return this._verify2(_,N),this.imod(_.mul(N))},k.prototype.isqr=function(_){return this.imul(_,_.clone())},k.prototype.sqr=function(_){return this.mul(_,_)},k.prototype.sqrt=function(_){if(_.isZero())return _.clone();var N=this.m.andln(3);if(G(N%2===1),N===3){var x=this.m.add(new U(1)).iushrn(2);return this.pow(_,x)}for(var B=this.m.subn(1),y=0;!B.isZero()&&B.andln(1)===0;)y++,B.iushrn(1);G(!B.isZero());var w=new U(1).toRed(this),p=w.redNeg(),f=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new U(2*c*c).toRed(this);this.pow(c,f).cmp(p)!==0;)c.redIAdd(p);for(var h=this.pow(c,B),d=this.pow(_,B.addn(1).iushrn(1)),b=this.pow(_,B),l=y;b.cmp(w)!==0;){for(var o=b,u=0;o.cmp(w)!==0;u++)o=o.redSqr();G(u=0;y--){for(var h=N.words[y],d=c-1;d>=0;d--){var b=h>>d&1;if(w!==B[0]&&(w=this.sqr(w)),b===0&&p===0){f=0;continue}p<<=1,p|=b,f++,!(f!==x&&(y!==0||d!==0))&&(w=this.mul(w,B[p]),f=0,p=0)}c=26}return w},k.prototype.convertTo=function(_){var N=_.umod(this.m);return N===_?N.clone():N},k.prototype.convertFrom=function(_){var N=_.clone();return N.red=null,N},U.mont=function(_){return new g(_)};function g(_){k.call(this,_),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(g,k),g.prototype.convertTo=function(_){return this.imod(_.ushln(this.shift))},g.prototype.convertFrom=function(_){var N=this.imod(_.mul(this.rinv));return N.red=null,N},g.prototype.imul=function(_,N){if(_.isZero()||N.isZero())return _.words[0]=0,_.length=1,_;var x=_.imul(N),B=x.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),y=x.isub(B).iushrn(this.shift),w=y;return y.cmp(this.m)>=0?w=y.isub(this.m):y.cmpn(0)<0&&(w=y.iadd(this.m)),w._forceRed(this)},g.prototype.mul=function(_,N){if(_.isZero()||N.isZero())return new U(0)._forceRed(this);var x=_.mul(N),B=x.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),y=x.isub(B).iushrn(this.shift),w=y;return y.cmp(this.m)>=0?w=y.isub(this.m):y.cmpn(0)<0&&(w=y.iadd(this.m)),w._forceRed(this)},g.prototype.invm=function(_){var N=this.imod(_._invmp(this.m).mul(this.r2));return N._forceRed(this)}})(typeof Q>"u"||Q,$)}}),hQ=q$({"node_modules/browserify-rsa/index.js"($,Q){var Y=cQ(),Z=g$();function G(X){var K=V(X),I=K.toRed(Y.mont(X.modulus)).redPow(new Y(X.publicExponent)).fromRed();return{blinder:I,unblinder:K.invm(X.modulus)}}function V(X){var K=X.modulus.byteLength(),I;do I=new Y(Z(K));while(I.cmp(X.modulus)>=0||!I.umod(X.prime1)||!I.umod(X.prime2));return I}function U(X,K){var I=G(K),O=K.modulus.byteLength(),J=new Y(X).mul(I.blinder).umod(K.modulus),F=J.toRed(Y.mont(K.prime1)),A=J.toRed(Y.mont(K.prime2)),H=K.coefficient,W=K.prime1,E=K.prime2,T=F.redPow(K.exponent1).fromRed(),D=A.redPow(K.exponent2).fromRed(),C=T.isub(D).imul(H).umod(W).imul(E);return D.iadd(C).imul(I.unblinder).umod(K.modulus).toArrayLike(F$,"be",O)}U.getr=V,Q.exports=U}}),dQ=q$({"node_modules/elliptic/package.json"($,Q){Q.exports={name:"elliptic",version:"6.5.4",description:"EC cryptography",main:"lib/elliptic.js",files:["lib"],scripts:{lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},repository:{type:"git",url:"git@github.com:indutny/elliptic"},keywords:["EC","Elliptic","curve","Cryptography"],author:"Fedor Indutny ",license:"MIT",bugs:{url:"https://github.com/indutny/elliptic/issues"},homepage:"https://github.com/indutny/elliptic",devDependencies:{brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},dependencies:{"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"}}}}),bQ=q$({"node_modules/elliptic/node_modules/bn.js/lib/bn.js"($,Q){(function(Y,Z){function G(j,k){if(!j)throw new Error(k||"Assertion failed")}function V(j,k){j.super_=k;var g=function(){};g.prototype=k.prototype,j.prototype=new g,j.prototype.constructor=j}function U(j,k,g){if(U.isBN(j))return j;this.negative=0,this.words=null,this.length=0,this.red=null,j!==null&&((k==="le"||k==="be")&&(g=k,k=10),this._init(j||0,k||10,g||"be"))}typeof Y=="object"?Y.exports=U:Z.BN=U,U.BN=U,U.wordSize=26;var X=F$;U.isBN=function(j){return j instanceof U?!0:j!==null&&typeof j=="object"&&j.constructor.wordSize===U.wordSize&&Array.isArray(j.words)},U.max=function(j,k){return j.cmp(k)>0?j:k},U.min=function(j,k){return j.cmp(k)<0?j:k},U.prototype._init=function(j,k,g){if(typeof j=="number")return this._initNumber(j,k,g);if(typeof j=="object")return this._initArray(j,k,g);k==="hex"&&(k=16),G(k===(k|0)&&k>=2&&k<=36),j=j.toString().replace(/\s+/g,"");var _=0;j[0]==="-"&&(_++,this.negative=1),_=0;_-=3)x=j[_]|j[_-1]<<8|j[_-2]<<16,this.words[N]|=x<>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);else if(g==="le")for(_=0,N=0;_>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);return this.strip()};function K(j,k){var g=j.charCodeAt(k);return g>=65&&g<=70?g-55:g>=97&&g<=102?g-87:g-48&15}function I(j,k,g){var _=K(j,g);return g-1>=k&&(_|=K(j,g-1)<<4),_}U.prototype._parseHex=function(j,k,g){this.length=Math.ceil((j.length-k)/6),this.words=new Array(this.length);for(var _=0;_=k;_-=2)B=I(j,k,_)<=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8;else{var y=j.length-k;for(_=y%2===0?k+1:k;_=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8}this.strip()};function O(j,k,g,_){for(var N=0,x=Math.min(j.length,g),B=k;B=49?N+=y-49+10:y>=17?N+=y-17+10:N+=y}return N}U.prototype._parseBase=function(j,k,g){this.words=[0],this.length=1;for(var _=0,N=1;N<=67108863;N*=k)_++;_--,N=N/k|0;for(var x=j.length-g,B=x%_,y=Math.min(x,x-B)+g,w=0,p=g;p1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},U.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],F=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],A=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(j,k){j=j||10,k=k|0||1;var g;if(j===16||j==="hex"){g="";for(var _=0,N=0,x=0;x>>24-_&16777215,N!==0||x!==this.length-1?g=J[6-y.length]+y+g:g=y+g,_+=2,_>=26&&(_-=26,x--)}for(N!==0&&(g=N.toString(16)+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(j===(j|0)&&j>=2&&j<=36){var w=F[j],p=A[j];g="";var f=this.clone();for(f.negative=0;!f.isZero();){var c=f.modn(p).toString(j);f=f.idivn(p),f.isZero()?g=c+g:g=J[w-c.length]+c+g}for(this.isZero()&&(g="0"+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var j=this.words[0];return this.length===2?j+=this.words[1]*67108864:this.length===3&&this.words[2]===1?j+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-j:j},U.prototype.toJSON=function(){return this.toString(16)},U.prototype.toBuffer=function(j,k){return G(typeof X<"u"),this.toArrayLike(X,j,k)},U.prototype.toArray=function(j,k){return this.toArrayLike(Array,j,k)},U.prototype.toArrayLike=function(j,k,g){var _=this.byteLength(),N=g||Math.max(1,_);G(_<=N,"byte array longer than desired length"),G(N>0,"Requested array length <= 0"),this.strip();var x=k==="le",B=new j(N),y,w,p=this.clone();if(x){for(w=0;!p.isZero();w++)y=p.andln(255),p.iushrn(8),B[w]=y;for(;w=4096&&(g+=13,k>>>=13),k>=64&&(g+=7,k>>>=7),k>=8&&(g+=4,k>>>=4),k>=2&&(g+=2,k>>>=2),g+k},U.prototype._zeroBits=function(j){if(j===0)return 26;var k=j,g=0;return(k&8191)===0&&(g+=13,k>>>=13),(k&127)===0&&(g+=7,k>>>=7),(k&15)===0&&(g+=4,k>>>=4),(k&3)===0&&(g+=2,k>>>=2),(k&1)===0&&g++,g},U.prototype.bitLength=function(){var j=this.words[this.length-1],k=this._countBits(j);return(this.length-1)*26+k};function H(j){for(var k=new Array(j.bitLength()),g=0;g>>N}return k}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var j=0,k=0;kj.length?this.clone().ior(j):j.clone().ior(this)},U.prototype.uor=function(j){return this.length>j.length?this.clone().iuor(j):j.clone().iuor(this)},U.prototype.iuand=function(j){var k;this.length>j.length?k=j:k=this;for(var g=0;gj.length?this.clone().iand(j):j.clone().iand(this)},U.prototype.uand=function(j){return this.length>j.length?this.clone().iuand(j):j.clone().iuand(this)},U.prototype.iuxor=function(j){var k,g;this.length>j.length?(k=this,g=j):(k=j,g=this);for(var _=0;_j.length?this.clone().ixor(j):j.clone().ixor(this)},U.prototype.uxor=function(j){return this.length>j.length?this.clone().iuxor(j):j.clone().iuxor(this)},U.prototype.inotn=function(j){G(typeof j=="number"&&j>=0);var k=Math.ceil(j/26)|0,g=j%26;this._expand(k),g>0&&k--;for(var _=0;_0&&(this.words[_]=~this.words[_]&67108863>>26-g),this.strip()},U.prototype.notn=function(j){return this.clone().inotn(j)},U.prototype.setn=function(j,k){G(typeof j=="number"&&j>=0);var g=j/26|0,_=j%26;return this._expand(g+1),k?this.words[g]=this.words[g]|1<<_:this.words[g]=this.words[g]&~(1<<_),this.strip()},U.prototype.iadd=function(j){var k;if(this.negative!==0&&j.negative===0)return this.negative=0,k=this.isub(j),this.negative^=1,this._normSign();if(this.negative===0&&j.negative!==0)return j.negative=0,k=this.isub(j),j.negative=1,k._normSign();var g,_;this.length>j.length?(g=this,_=j):(g=j,_=this);for(var N=0,x=0;x<_.length;x++)k=(g.words[x]|0)+(_.words[x]|0)+N,this.words[x]=k&67108863,N=k>>>26;for(;N!==0&&x>>26;if(this.length=g.length,N!==0)this.words[this.length]=N,this.length++;else if(g!==this)for(;xj.length?this.clone().iadd(j):j.clone().iadd(this)},U.prototype.isub=function(j){if(j.negative!==0){j.negative=0;var k=this.iadd(j);return j.negative=1,k._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(j),this.negative=1,this._normSign();var g=this.cmp(j);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var _,N;g>0?(_=this,N=j):(_=j,N=this);for(var x=0,B=0;B>26,this.words[B]=k&67108863;for(;x!==0&&B<_.length;B++)k=(_.words[B]|0)+x,x=k>>26,this.words[B]=k&67108863;if(x===0&&B<_.length&&_!==this)for(;B<_.length;B++)this.words[B]=_.words[B];return this.length=Math.max(this.length,B),_!==this&&(this.negative=1),this.strip()},U.prototype.sub=function(j){return this.clone().isub(j)};function W(j,k,g){g.negative=k.negative^j.negative;var _=j.length+k.length|0;g.length=_,_=_-1|0;var N=j.words[0]|0,x=k.words[0]|0,B=N*x,y=B&67108863,w=B/67108864|0;g.words[0]=y;for(var p=1;p<_;p++){for(var f=w>>>26,c=w&67108863,h=Math.min(p,k.length-1),d=Math.max(0,p-j.length+1);d<=h;d++){var b=p-d|0;N=j.words[b]|0,x=k.words[d]|0,B=N*x+c,f+=B/67108864|0,c=B&67108863}g.words[p]=c|0,w=f|0}return w!==0?g.words[p]=w|0:g.length--,g.strip()}var E=function(j,k,g){var _=j.words,N=k.words,x=g.words,B=0,y,w,p,f=_[0]|0,c=f&8191,h=f>>>13,d=_[1]|0,b=d&8191,l=d>>>13,o=_[2]|0,u=o&8191,n=o>>>13,s=_[3]|0,t=s&8191,m=s>>>13,a=_[4]|0,e=a&8191,r=a>>>13,i=_[5]|0,$0=i&8191,Q0=i>>>13,Y0=_[6]|0,Z0=Y0&8191,G0=Y0>>>13,V0=_[7]|0,U0=V0&8191,X0=V0>>>13,K0=_[8]|0,I0=K0&8191,O0=K0>>>13,J0=_[9]|0,F0=J0&8191,A0=J0>>>13,H0=N[0]|0,W0=H0&8191,E0=H0>>>13,T0=N[1]|0,D0=T0&8191,C0=T0>>>13,L0=N[2]|0,R0=L0&8191,P0=L0>>>13,z0=N[3]|0,M0=z0&8191,S0=z0>>>13,v0=N[4]|0,q0=v0&8191,j0=v0>>>13,k0=N[5]|0,g0=k0&8191,_0=k0>>>13,N0=N[6]|0,x0=N0&8191,B0=N0>>>13,y0=N[7]|0,w0=y0&8191,p0=y0>>>13,f0=N[8]|0,c0=f0&8191,h0=f0>>>13,d0=N[9]|0,b0=d0&8191,l0=d0>>>13;g.negative=j.negative^k.negative,g.length=19,y=Math.imul(c,W0),w=Math.imul(c,E0),w=w+Math.imul(h,W0)|0,p=Math.imul(h,E0);var o0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(o0>>>26)|0,o0&=67108863,y=Math.imul(b,W0),w=Math.imul(b,E0),w=w+Math.imul(l,W0)|0,p=Math.imul(l,E0),y=y+Math.imul(c,D0)|0,w=w+Math.imul(c,C0)|0,w=w+Math.imul(h,D0)|0,p=p+Math.imul(h,C0)|0;var u0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(u0>>>26)|0,u0&=67108863,y=Math.imul(u,W0),w=Math.imul(u,E0),w=w+Math.imul(n,W0)|0,p=Math.imul(n,E0),y=y+Math.imul(b,D0)|0,w=w+Math.imul(b,C0)|0,w=w+Math.imul(l,D0)|0,p=p+Math.imul(l,C0)|0,y=y+Math.imul(c,R0)|0,w=w+Math.imul(c,P0)|0,w=w+Math.imul(h,R0)|0,p=p+Math.imul(h,P0)|0;var n0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(n0>>>26)|0,n0&=67108863,y=Math.imul(t,W0),w=Math.imul(t,E0),w=w+Math.imul(m,W0)|0,p=Math.imul(m,E0),y=y+Math.imul(u,D0)|0,w=w+Math.imul(u,C0)|0,w=w+Math.imul(n,D0)|0,p=p+Math.imul(n,C0)|0,y=y+Math.imul(b,R0)|0,w=w+Math.imul(b,P0)|0,w=w+Math.imul(l,R0)|0,p=p+Math.imul(l,P0)|0,y=y+Math.imul(c,M0)|0,w=w+Math.imul(c,S0)|0,w=w+Math.imul(h,M0)|0,p=p+Math.imul(h,S0)|0;var s0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(s0>>>26)|0,s0&=67108863,y=Math.imul(e,W0),w=Math.imul(e,E0),w=w+Math.imul(r,W0)|0,p=Math.imul(r,E0),y=y+Math.imul(t,D0)|0,w=w+Math.imul(t,C0)|0,w=w+Math.imul(m,D0)|0,p=p+Math.imul(m,C0)|0,y=y+Math.imul(u,R0)|0,w=w+Math.imul(u,P0)|0,w=w+Math.imul(n,R0)|0,p=p+Math.imul(n,P0)|0,y=y+Math.imul(b,M0)|0,w=w+Math.imul(b,S0)|0,w=w+Math.imul(l,M0)|0,p=p+Math.imul(l,S0)|0,y=y+Math.imul(c,q0)|0,w=w+Math.imul(c,j0)|0,w=w+Math.imul(h,q0)|0,p=p+Math.imul(h,j0)|0;var t0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(t0>>>26)|0,t0&=67108863,y=Math.imul($0,W0),w=Math.imul($0,E0),w=w+Math.imul(Q0,W0)|0,p=Math.imul(Q0,E0),y=y+Math.imul(e,D0)|0,w=w+Math.imul(e,C0)|0,w=w+Math.imul(r,D0)|0,p=p+Math.imul(r,C0)|0,y=y+Math.imul(t,R0)|0,w=w+Math.imul(t,P0)|0,w=w+Math.imul(m,R0)|0,p=p+Math.imul(m,P0)|0,y=y+Math.imul(u,M0)|0,w=w+Math.imul(u,S0)|0,w=w+Math.imul(n,M0)|0,p=p+Math.imul(n,S0)|0,y=y+Math.imul(b,q0)|0,w=w+Math.imul(b,j0)|0,w=w+Math.imul(l,q0)|0,p=p+Math.imul(l,j0)|0,y=y+Math.imul(c,g0)|0,w=w+Math.imul(c,_0)|0,w=w+Math.imul(h,g0)|0,p=p+Math.imul(h,_0)|0;var m0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(m0>>>26)|0,m0&=67108863,y=Math.imul(Z0,W0),w=Math.imul(Z0,E0),w=w+Math.imul(G0,W0)|0,p=Math.imul(G0,E0),y=y+Math.imul($0,D0)|0,w=w+Math.imul($0,C0)|0,w=w+Math.imul(Q0,D0)|0,p=p+Math.imul(Q0,C0)|0,y=y+Math.imul(e,R0)|0,w=w+Math.imul(e,P0)|0,w=w+Math.imul(r,R0)|0,p=p+Math.imul(r,P0)|0,y=y+Math.imul(t,M0)|0,w=w+Math.imul(t,S0)|0,w=w+Math.imul(m,M0)|0,p=p+Math.imul(m,S0)|0,y=y+Math.imul(u,q0)|0,w=w+Math.imul(u,j0)|0,w=w+Math.imul(n,q0)|0,p=p+Math.imul(n,j0)|0,y=y+Math.imul(b,g0)|0,w=w+Math.imul(b,_0)|0,w=w+Math.imul(l,g0)|0,p=p+Math.imul(l,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,B0)|0,w=w+Math.imul(h,x0)|0,p=p+Math.imul(h,B0)|0;var a0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(a0>>>26)|0,a0&=67108863,y=Math.imul(U0,W0),w=Math.imul(U0,E0),w=w+Math.imul(X0,W0)|0,p=Math.imul(X0,E0),y=y+Math.imul(Z0,D0)|0,w=w+Math.imul(Z0,C0)|0,w=w+Math.imul(G0,D0)|0,p=p+Math.imul(G0,C0)|0,y=y+Math.imul($0,R0)|0,w=w+Math.imul($0,P0)|0,w=w+Math.imul(Q0,R0)|0,p=p+Math.imul(Q0,P0)|0,y=y+Math.imul(e,M0)|0,w=w+Math.imul(e,S0)|0,w=w+Math.imul(r,M0)|0,p=p+Math.imul(r,S0)|0,y=y+Math.imul(t,q0)|0,w=w+Math.imul(t,j0)|0,w=w+Math.imul(m,q0)|0,p=p+Math.imul(m,j0)|0,y=y+Math.imul(u,g0)|0,w=w+Math.imul(u,_0)|0,w=w+Math.imul(n,g0)|0,p=p+Math.imul(n,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,B0)|0,w=w+Math.imul(l,x0)|0,p=p+Math.imul(l,B0)|0,y=y+Math.imul(c,w0)|0,w=w+Math.imul(c,p0)|0,w=w+Math.imul(h,w0)|0,p=p+Math.imul(h,p0)|0;var e0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(e0>>>26)|0,e0&=67108863,y=Math.imul(I0,W0),w=Math.imul(I0,E0),w=w+Math.imul(O0,W0)|0,p=Math.imul(O0,E0),y=y+Math.imul(U0,D0)|0,w=w+Math.imul(U0,C0)|0,w=w+Math.imul(X0,D0)|0,p=p+Math.imul(X0,C0)|0,y=y+Math.imul(Z0,R0)|0,w=w+Math.imul(Z0,P0)|0,w=w+Math.imul(G0,R0)|0,p=p+Math.imul(G0,P0)|0,y=y+Math.imul($0,M0)|0,w=w+Math.imul($0,S0)|0,w=w+Math.imul(Q0,M0)|0,p=p+Math.imul(Q0,S0)|0,y=y+Math.imul(e,q0)|0,w=w+Math.imul(e,j0)|0,w=w+Math.imul(r,q0)|0,p=p+Math.imul(r,j0)|0,y=y+Math.imul(t,g0)|0,w=w+Math.imul(t,_0)|0,w=w+Math.imul(m,g0)|0,p=p+Math.imul(m,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,B0)|0,w=w+Math.imul(n,x0)|0,p=p+Math.imul(n,B0)|0,y=y+Math.imul(b,w0)|0,w=w+Math.imul(b,p0)|0,w=w+Math.imul(l,w0)|0,p=p+Math.imul(l,p0)|0,y=y+Math.imul(c,c0)|0,w=w+Math.imul(c,h0)|0,w=w+Math.imul(h,c0)|0,p=p+Math.imul(h,h0)|0;var r0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(r0>>>26)|0,r0&=67108863,y=Math.imul(F0,W0),w=Math.imul(F0,E0),w=w+Math.imul(A0,W0)|0,p=Math.imul(A0,E0),y=y+Math.imul(I0,D0)|0,w=w+Math.imul(I0,C0)|0,w=w+Math.imul(O0,D0)|0,p=p+Math.imul(O0,C0)|0,y=y+Math.imul(U0,R0)|0,w=w+Math.imul(U0,P0)|0,w=w+Math.imul(X0,R0)|0,p=p+Math.imul(X0,P0)|0,y=y+Math.imul(Z0,M0)|0,w=w+Math.imul(Z0,S0)|0,w=w+Math.imul(G0,M0)|0,p=p+Math.imul(G0,S0)|0,y=y+Math.imul($0,q0)|0,w=w+Math.imul($0,j0)|0,w=w+Math.imul(Q0,q0)|0,p=p+Math.imul(Q0,j0)|0,y=y+Math.imul(e,g0)|0,w=w+Math.imul(e,_0)|0,w=w+Math.imul(r,g0)|0,p=p+Math.imul(r,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,B0)|0,w=w+Math.imul(m,x0)|0,p=p+Math.imul(m,B0)|0,y=y+Math.imul(u,w0)|0,w=w+Math.imul(u,p0)|0,w=w+Math.imul(n,w0)|0,p=p+Math.imul(n,p0)|0,y=y+Math.imul(b,c0)|0,w=w+Math.imul(b,h0)|0,w=w+Math.imul(l,c0)|0,p=p+Math.imul(l,h0)|0,y=y+Math.imul(c,b0)|0,w=w+Math.imul(c,l0)|0,w=w+Math.imul(h,b0)|0,p=p+Math.imul(h,l0)|0;var i0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(i0>>>26)|0,i0&=67108863,y=Math.imul(F0,D0),w=Math.imul(F0,C0),w=w+Math.imul(A0,D0)|0,p=Math.imul(A0,C0),y=y+Math.imul(I0,R0)|0,w=w+Math.imul(I0,P0)|0,w=w+Math.imul(O0,R0)|0,p=p+Math.imul(O0,P0)|0,y=y+Math.imul(U0,M0)|0,w=w+Math.imul(U0,S0)|0,w=w+Math.imul(X0,M0)|0,p=p+Math.imul(X0,S0)|0,y=y+Math.imul(Z0,q0)|0,w=w+Math.imul(Z0,j0)|0,w=w+Math.imul(G0,q0)|0,p=p+Math.imul(G0,j0)|0,y=y+Math.imul($0,g0)|0,w=w+Math.imul($0,_0)|0,w=w+Math.imul(Q0,g0)|0,p=p+Math.imul(Q0,_0)|0,y=y+Math.imul(e,x0)|0,w=w+Math.imul(e,B0)|0,w=w+Math.imul(r,x0)|0,p=p+Math.imul(r,B0)|0,y=y+Math.imul(t,w0)|0,w=w+Math.imul(t,p0)|0,w=w+Math.imul(m,w0)|0,p=p+Math.imul(m,p0)|0,y=y+Math.imul(u,c0)|0,w=w+Math.imul(u,h0)|0,w=w+Math.imul(n,c0)|0,p=p+Math.imul(n,h0)|0,y=y+Math.imul(b,b0)|0,w=w+Math.imul(b,l0)|0,w=w+Math.imul(l,b0)|0,p=p+Math.imul(l,l0)|0;var $$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+($$>>>26)|0,$$&=67108863,y=Math.imul(F0,R0),w=Math.imul(F0,P0),w=w+Math.imul(A0,R0)|0,p=Math.imul(A0,P0),y=y+Math.imul(I0,M0)|0,w=w+Math.imul(I0,S0)|0,w=w+Math.imul(O0,M0)|0,p=p+Math.imul(O0,S0)|0,y=y+Math.imul(U0,q0)|0,w=w+Math.imul(U0,j0)|0,w=w+Math.imul(X0,q0)|0,p=p+Math.imul(X0,j0)|0,y=y+Math.imul(Z0,g0)|0,w=w+Math.imul(Z0,_0)|0,w=w+Math.imul(G0,g0)|0,p=p+Math.imul(G0,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,B0)|0,w=w+Math.imul(Q0,x0)|0,p=p+Math.imul(Q0,B0)|0,y=y+Math.imul(e,w0)|0,w=w+Math.imul(e,p0)|0,w=w+Math.imul(r,w0)|0,p=p+Math.imul(r,p0)|0,y=y+Math.imul(t,c0)|0,w=w+Math.imul(t,h0)|0,w=w+Math.imul(m,c0)|0,p=p+Math.imul(m,h0)|0,y=y+Math.imul(u,b0)|0,w=w+Math.imul(u,l0)|0,w=w+Math.imul(n,b0)|0,p=p+Math.imul(n,l0)|0;var Q$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,y=Math.imul(F0,M0),w=Math.imul(F0,S0),w=w+Math.imul(A0,M0)|0,p=Math.imul(A0,S0),y=y+Math.imul(I0,q0)|0,w=w+Math.imul(I0,j0)|0,w=w+Math.imul(O0,q0)|0,p=p+Math.imul(O0,j0)|0,y=y+Math.imul(U0,g0)|0,w=w+Math.imul(U0,_0)|0,w=w+Math.imul(X0,g0)|0,p=p+Math.imul(X0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,B0)|0,w=w+Math.imul(G0,x0)|0,p=p+Math.imul(G0,B0)|0,y=y+Math.imul($0,w0)|0,w=w+Math.imul($0,p0)|0,w=w+Math.imul(Q0,w0)|0,p=p+Math.imul(Q0,p0)|0,y=y+Math.imul(e,c0)|0,w=w+Math.imul(e,h0)|0,w=w+Math.imul(r,c0)|0,p=p+Math.imul(r,h0)|0,y=y+Math.imul(t,b0)|0,w=w+Math.imul(t,l0)|0,w=w+Math.imul(m,b0)|0,p=p+Math.imul(m,l0)|0;var Y$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,y=Math.imul(F0,q0),w=Math.imul(F0,j0),w=w+Math.imul(A0,q0)|0,p=Math.imul(A0,j0),y=y+Math.imul(I0,g0)|0,w=w+Math.imul(I0,_0)|0,w=w+Math.imul(O0,g0)|0,p=p+Math.imul(O0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,B0)|0,w=w+Math.imul(X0,x0)|0,p=p+Math.imul(X0,B0)|0,y=y+Math.imul(Z0,w0)|0,w=w+Math.imul(Z0,p0)|0,w=w+Math.imul(G0,w0)|0,p=p+Math.imul(G0,p0)|0,y=y+Math.imul($0,c0)|0,w=w+Math.imul($0,h0)|0,w=w+Math.imul(Q0,c0)|0,p=p+Math.imul(Q0,h0)|0,y=y+Math.imul(e,b0)|0,w=w+Math.imul(e,l0)|0,w=w+Math.imul(r,b0)|0,p=p+Math.imul(r,l0)|0;var Z$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,y=Math.imul(F0,g0),w=Math.imul(F0,_0),w=w+Math.imul(A0,g0)|0,p=Math.imul(A0,_0),y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,B0)|0,w=w+Math.imul(O0,x0)|0,p=p+Math.imul(O0,B0)|0,y=y+Math.imul(U0,w0)|0,w=w+Math.imul(U0,p0)|0,w=w+Math.imul(X0,w0)|0,p=p+Math.imul(X0,p0)|0,y=y+Math.imul(Z0,c0)|0,w=w+Math.imul(Z0,h0)|0,w=w+Math.imul(G0,c0)|0,p=p+Math.imul(G0,h0)|0,y=y+Math.imul($0,b0)|0,w=w+Math.imul($0,l0)|0,w=w+Math.imul(Q0,b0)|0,p=p+Math.imul(Q0,l0)|0;var G$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(G$>>>26)|0,G$&=67108863,y=Math.imul(F0,x0),w=Math.imul(F0,B0),w=w+Math.imul(A0,x0)|0,p=Math.imul(A0,B0),y=y+Math.imul(I0,w0)|0,w=w+Math.imul(I0,p0)|0,w=w+Math.imul(O0,w0)|0,p=p+Math.imul(O0,p0)|0,y=y+Math.imul(U0,c0)|0,w=w+Math.imul(U0,h0)|0,w=w+Math.imul(X0,c0)|0,p=p+Math.imul(X0,h0)|0,y=y+Math.imul(Z0,b0)|0,w=w+Math.imul(Z0,l0)|0,w=w+Math.imul(G0,b0)|0,p=p+Math.imul(G0,l0)|0;var V$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(V$>>>26)|0,V$&=67108863,y=Math.imul(F0,w0),w=Math.imul(F0,p0),w=w+Math.imul(A0,w0)|0,p=Math.imul(A0,p0),y=y+Math.imul(I0,c0)|0,w=w+Math.imul(I0,h0)|0,w=w+Math.imul(O0,c0)|0,p=p+Math.imul(O0,h0)|0,y=y+Math.imul(U0,b0)|0,w=w+Math.imul(U0,l0)|0,w=w+Math.imul(X0,b0)|0,p=p+Math.imul(X0,l0)|0;var U$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(U$>>>26)|0,U$&=67108863,y=Math.imul(F0,c0),w=Math.imul(F0,h0),w=w+Math.imul(A0,c0)|0,p=Math.imul(A0,h0),y=y+Math.imul(I0,b0)|0,w=w+Math.imul(I0,l0)|0,w=w+Math.imul(O0,b0)|0,p=p+Math.imul(O0,l0)|0;var X$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(X$>>>26)|0,X$&=67108863,y=Math.imul(F0,b0),w=Math.imul(F0,l0),w=w+Math.imul(A0,b0)|0,p=Math.imul(A0,l0);var K$=(B+y|0)+((w&8191)<<13)|0;return B=(p+(w>>>13)|0)+(K$>>>26)|0,K$&=67108863,x[0]=o0,x[1]=u0,x[2]=n0,x[3]=s0,x[4]=t0,x[5]=m0,x[6]=a0,x[7]=e0,x[8]=r0,x[9]=i0,x[10]=$$,x[11]=Q$,x[12]=Y$,x[13]=Z$,x[14]=G$,x[15]=V$,x[16]=U$,x[17]=X$,x[18]=K$,B!==0&&(x[19]=B,g.length++),g};Math.imul||(E=W);function T(j,k,g){g.negative=k.negative^j.negative,g.length=j.length+k.length;for(var _=0,N=0,x=0;x>>26)|0,N+=B>>>26,B&=67108863}g.words[x]=y,_=B,B=N}return _!==0?g.words[x]=_:g.length--,g.strip()}function D(j,k,g){var _=new C;return _.mulp(j,k,g)}U.prototype.mulTo=function(j,k){var g,_=this.length+j.length;return this.length===10&&j.length===10?g=E(this,j,k):_<63?g=W(this,j,k):_<1024?g=T(this,j,k):g=D(this,j,k),g};function C(j,k){this.x=j,this.y=k}C.prototype.makeRBT=function(j){for(var k=new Array(j),g=U.prototype._countBits(j)-1,_=0;_>=1;return _},C.prototype.permute=function(j,k,g,_,N,x){for(var B=0;B>>1)N++;return 1<>>13,g[2*x+1]=N&8191,N=N>>>13;for(x=2*k;x<_;++x)g[x]=0;G(N===0),G((N&-8192)===0)},C.prototype.stub=function(j){for(var k=new Array(j),g=0;g>=26,k+=_/67108864|0,k+=N>>>26,this.words[g]=N&67108863}return k!==0&&(this.words[g]=k,this.length++),this},U.prototype.muln=function(j){return this.clone().imuln(j)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(j){var k=H(j);if(k.length===0)return new U(1);for(var g=this,_=0;_=0);var k=j%26,g=(j-k)/26,_=67108863>>>26-k<<26-k,N;if(k!==0){var x=0;for(N=0;N>>26-k}x&&(this.words[N]=x,this.length++)}if(g!==0){for(N=this.length-1;N>=0;N--)this.words[N+g]=this.words[N];for(N=0;N=0);var _;k?_=(k-k%26)/26:_=0;var N=j%26,x=Math.min((j-N)/26,this.length),B=67108863^67108863>>>N<x)for(this.length-=x,w=0;w=0&&(p!==0||w>=_);w--){var f=this.words[w]|0;this.words[w]=p<<26-N|f>>>N,p=f&B}return y&&p!==0&&(y.words[y.length++]=p),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},U.prototype.ishrn=function(j,k,g){return G(this.negative===0),this.iushrn(j,k,g)},U.prototype.shln=function(j){return this.clone().ishln(j)},U.prototype.ushln=function(j){return this.clone().iushln(j)},U.prototype.shrn=function(j){return this.clone().ishrn(j)},U.prototype.ushrn=function(j){return this.clone().iushrn(j)},U.prototype.testn=function(j){G(typeof j=="number"&&j>=0);var k=j%26,g=(j-k)/26,_=1<=0);var k=j%26,g=(j-k)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(k!==0&&g++,this.length=Math.min(g,this.length),k!==0){var _=67108863^67108863>>>k<=67108864;k++)this.words[k]-=67108864,k===this.length-1?this.words[k+1]=1:this.words[k+1]++;return this.length=Math.max(this.length,k+1),this},U.prototype.isubn=function(j){if(G(typeof j=="number"),G(j<67108864),j<0)return this.iaddn(-j);if(this.negative!==0)return this.negative=0,this.iaddn(j),this.negative=1,this;if(this.words[0]-=j,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var k=0;k>26)-(y/67108864|0),this.words[N+g]=x&67108863}for(;N>26,this.words[N+g]=x&67108863;if(B===0)return this.strip();for(G(B===-1),B=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},U.prototype._wordDiv=function(j,k){var g=this.length-j.length,_=this.clone(),N=j,x=N.words[N.length-1]|0,B=this._countBits(x);g=26-B,g!==0&&(N=N.ushln(g),_.iushln(g),x=N.words[N.length-1]|0);var y=_.length-N.length,w;if(k!=="mod"){w=new U(null),w.length=y+1,w.words=new Array(w.length);for(var p=0;p=0;c--){var h=(_.words[N.length+c]|0)*67108864+(_.words[N.length+c-1]|0);for(h=Math.min(h/x|0,67108863),_._ishlnsubmul(N,h,c);_.negative!==0;)h--,_.negative=0,_._ishlnsubmul(N,1,c),_.isZero()||(_.negative^=1);w&&(w.words[c]=h)}return w&&w.strip(),_.strip(),k!=="div"&&g!==0&&_.iushrn(g),{div:w||null,mod:_}},U.prototype.divmod=function(j,k,g){if(G(!j.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var _,N,x;return this.negative!==0&&j.negative===0?(x=this.neg().divmod(j,k),k!=="mod"&&(_=x.div.neg()),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.iadd(j)),{div:_,mod:N}):this.negative===0&&j.negative!==0?(x=this.divmod(j.neg(),k),k!=="mod"&&(_=x.div.neg()),{div:_,mod:x.mod}):(this.negative&j.negative)!==0?(x=this.neg().divmod(j.neg(),k),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.isub(j)),{div:x.div,mod:N}):j.length>this.length||this.cmp(j)<0?{div:new U(0),mod:this}:j.length===1?k==="div"?{div:this.divn(j.words[0]),mod:null}:k==="mod"?{div:null,mod:new U(this.modn(j.words[0]))}:{div:this.divn(j.words[0]),mod:new U(this.modn(j.words[0]))}:this._wordDiv(j,k)},U.prototype.div=function(j){return this.divmod(j,"div",!1).div},U.prototype.mod=function(j){return this.divmod(j,"mod",!1).mod},U.prototype.umod=function(j){return this.divmod(j,"mod",!0).mod},U.prototype.divRound=function(j){var k=this.divmod(j);if(k.mod.isZero())return k.div;var g=k.div.negative!==0?k.mod.isub(j):k.mod,_=j.ushrn(1),N=j.andln(1),x=g.cmp(_);return x<0||N===1&&x===0?k.div:k.div.negative!==0?k.div.isubn(1):k.div.iaddn(1)},U.prototype.modn=function(j){G(j<=67108863);for(var k=(1<<26)%j,g=0,_=this.length-1;_>=0;_--)g=(k*g+(this.words[_]|0))%j;return g},U.prototype.idivn=function(j){G(j<=67108863);for(var k=0,g=this.length-1;g>=0;g--){var _=(this.words[g]|0)+k*67108864;this.words[g]=_/j|0,k=_%j}return this.strip()},U.prototype.divn=function(j){return this.clone().idivn(j)},U.prototype.egcd=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=new U(0),B=new U(1),y=0;k.isEven()&&g.isEven();)k.iushrn(1),g.iushrn(1),++y;for(var w=g.clone(),p=k.clone();!k.isZero();){for(var f=0,c=1;(k.words[0]&c)===0&&f<26;++f,c<<=1);if(f>0)for(k.iushrn(f);f-- >0;)(_.isOdd()||N.isOdd())&&(_.iadd(w),N.isub(p)),_.iushrn(1),N.iushrn(1);for(var h=0,d=1;(g.words[0]&d)===0&&h<26;++h,d<<=1);if(h>0)for(g.iushrn(h);h-- >0;)(x.isOdd()||B.isOdd())&&(x.iadd(w),B.isub(p)),x.iushrn(1),B.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(x),N.isub(B)):(g.isub(k),x.isub(_),B.isub(N))}return{a:x,b:B,gcd:g.iushln(y)}},U.prototype._invmp=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=g.clone();k.cmpn(1)>0&&g.cmpn(1)>0;){for(var B=0,y=1;(k.words[0]&y)===0&&B<26;++B,y<<=1);if(B>0)for(k.iushrn(B);B-- >0;)_.isOdd()&&_.iadd(x),_.iushrn(1);for(var w=0,p=1;(g.words[0]&p)===0&&w<26;++w,p<<=1);if(w>0)for(g.iushrn(w);w-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(N)):(g.isub(k),N.isub(_))}var f;return k.cmpn(1)===0?f=_:f=N,f.cmpn(0)<0&&f.iadd(j),f},U.prototype.gcd=function(j){if(this.isZero())return j.abs();if(j.isZero())return this.abs();var k=this.clone(),g=j.clone();k.negative=0,g.negative=0;for(var _=0;k.isEven()&&g.isEven();_++)k.iushrn(1),g.iushrn(1);do{for(;k.isEven();)k.iushrn(1);for(;g.isEven();)g.iushrn(1);var N=k.cmp(g);if(N<0){var x=k;k=g,g=x}else if(N===0||g.cmpn(1)===0)break;k.isub(g)}while(!0);return g.iushln(_)},U.prototype.invm=function(j){return this.egcd(j).a.umod(j)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(j){return this.words[0]&j},U.prototype.bincn=function(j){G(typeof j=="number");var k=j%26,g=(j-k)/26,_=1<>>26,B&=67108863,this.words[x]=B}return N!==0&&(this.words[x]=N,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(j){var k=j<0;if(this.negative!==0&&!k)return-1;if(this.negative===0&&k)return 1;this.strip();var g;if(this.length>1)g=1;else{k&&(j=-j),G(j<=67108863,"Number is too big");var _=this.words[0]|0;g=_===j?0:_j.length)return 1;if(this.length=0;g--){var _=this.words[g]|0,N=j.words[g]|0;if(_!==N){_N&&(k=1);break}}return k},U.prototype.gtn=function(j){return this.cmpn(j)===1},U.prototype.gt=function(j){return this.cmp(j)===1},U.prototype.gten=function(j){return this.cmpn(j)>=0},U.prototype.gte=function(j){return this.cmp(j)>=0},U.prototype.ltn=function(j){return this.cmpn(j)===-1},U.prototype.lt=function(j){return this.cmp(j)===-1},U.prototype.lten=function(j){return this.cmpn(j)<=0},U.prototype.lte=function(j){return this.cmp(j)<=0},U.prototype.eqn=function(j){return this.cmpn(j)===0},U.prototype.eq=function(j){return this.cmp(j)===0},U.red=function(j){return new v(j)},U.prototype.toRed=function(j){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),j.convertTo(this)._forceRed(j)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(j){return this.red=j,this},U.prototype.forceRed=function(j){return G(!this.red,"Already a number in reduction context"),this._forceRed(j)},U.prototype.redAdd=function(j){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,j)},U.prototype.redIAdd=function(j){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,j)},U.prototype.redSub=function(j){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,j)},U.prototype.redISub=function(j){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,j)},U.prototype.redShl=function(j){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,j)},U.prototype.redMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.mul(this,j)},U.prototype.redIMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.imul(this,j)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(j){return G(this.red&&!j.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,j)};var L={k256:null,p224:null,p192:null,p25519:null};function R(j,k){this.name=j,this.p=new U(k,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}R.prototype._tmp=function(){var j=new U(null);return j.words=new Array(Math.ceil(this.n/13)),j},R.prototype.ireduce=function(j){var k=j,g;do this.split(k,this.tmp),k=this.imulK(k),k=k.iadd(this.tmp),g=k.bitLength();while(g>this.n);var _=g0?k.isub(this.p):k.strip!==void 0?k.strip():k._strip(),k},R.prototype.split=function(j,k){j.iushrn(this.n,0,k)},R.prototype.imulK=function(j){return j.imul(this.k)};function P(){R.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(P,R),P.prototype.split=function(j,k){for(var g=4194303,_=Math.min(j.length,9),N=0;N<_;N++)k.words[N]=j.words[N];if(k.length=_,j.length<=9){j.words[0]=0,j.length=1;return}var x=j.words[9];for(k.words[k.length++]=x&g,N=10;N>>22,x=B}x>>>=22,j.words[N-10]=x,x===0&&j.length>10?j.length-=10:j.length-=9},P.prototype.imulK=function(j){j.words[j.length]=0,j.words[j.length+1]=0,j.length+=2;for(var k=0,g=0;g>>=26,j.words[g]=N,k=_}return k!==0&&(j.words[j.length++]=k),j},U._prime=function(j){if(L[j])return L[j];var k;if(j==="k256")k=new P;else if(j==="p224")k=new z;else if(j==="p192")k=new M;else if(j==="p25519")k=new S;else throw new Error("Unknown prime "+j);return L[j]=k,k};function v(j){if(typeof j=="string"){var k=U._prime(j);this.m=k.p,this.prime=k}else G(j.gtn(1),"modulus must be greater than 1"),this.m=j,this.prime=null}v.prototype._verify1=function(j){G(j.negative===0,"red works only with positives"),G(j.red,"red works only with red numbers")},v.prototype._verify2=function(j,k){G((j.negative|k.negative)===0,"red works only with positives"),G(j.red&&j.red===k.red,"red works only with red numbers")},v.prototype.imod=function(j){return this.prime?this.prime.ireduce(j)._forceRed(this):j.umod(this.m)._forceRed(this)},v.prototype.neg=function(j){return j.isZero()?j.clone():this.m.sub(j)._forceRed(this)},v.prototype.add=function(j,k){this._verify2(j,k);var g=j.add(k);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},v.prototype.iadd=function(j,k){this._verify2(j,k);var g=j.iadd(k);return g.cmp(this.m)>=0&&g.isub(this.m),g},v.prototype.sub=function(j,k){this._verify2(j,k);var g=j.sub(k);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},v.prototype.isub=function(j,k){this._verify2(j,k);var g=j.isub(k);return g.cmpn(0)<0&&g.iadd(this.m),g},v.prototype.shl=function(j,k){return this._verify1(j),this.imod(j.ushln(k))},v.prototype.imul=function(j,k){return this._verify2(j,k),this.imod(j.imul(k))},v.prototype.mul=function(j,k){return this._verify2(j,k),this.imod(j.mul(k))},v.prototype.isqr=function(j){return this.imul(j,j.clone())},v.prototype.sqr=function(j){return this.mul(j,j)},v.prototype.sqrt=function(j){if(j.isZero())return j.clone();var k=this.m.andln(3);if(G(k%2===1),k===3){var g=this.m.add(new U(1)).iushrn(2);return this.pow(j,g)}for(var _=this.m.subn(1),N=0;!_.isZero()&&_.andln(1)===0;)N++,_.iushrn(1);G(!_.isZero());var x=new U(1).toRed(this),B=x.redNeg(),y=this.m.subn(1).iushrn(1),w=this.m.bitLength();for(w=new U(2*w*w).toRed(this);this.pow(w,y).cmp(B)!==0;)w.redIAdd(B);for(var p=this.pow(w,_),f=this.pow(j,_.addn(1).iushrn(1)),c=this.pow(j,_),h=N;c.cmp(x)!==0;){for(var d=c,b=0;d.cmp(x)!==0;b++)d=d.redSqr();G(b=0;N--){for(var p=k.words[N],f=w-1;f>=0;f--){var c=p>>f&1;if(x!==_[0]&&(x=this.sqr(x)),c===0&&B===0){y=0;continue}B<<=1,B|=c,y++,!(y!==g&&(N!==0||f!==0))&&(x=this.mul(x,_[B]),y=0,B=0)}w=26}return x},v.prototype.convertTo=function(j){var k=j.umod(this.m);return k===j?k.clone():k},v.prototype.convertFrom=function(j){var k=j.clone();return k.red=null,k},U.mont=function(j){return new q(j)};function q(j){v.call(this,j),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(q,v),q.prototype.convertTo=function(j){return this.imod(j.ushln(this.shift))},q.prototype.convertFrom=function(j){var k=this.imod(j.mul(this.rinv));return k.red=null,k},q.prototype.imul=function(j,k){if(j.isZero()||k.isZero())return j.words[0]=0,j.length=1,j;var g=j.imul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.mul=function(j,k){if(j.isZero()||k.isZero())return new U(0)._forceRed(this);var g=j.mul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.invm=function(j){var k=this.imod(j._invmp(this.m).mul(this.r2));return k._forceRed(this)}})(typeof Q>"u"||Q,$)}}),lQ=q$({"node_modules/minimalistic-crypto-utils/lib/utils.js"($){var Q=$;function Y(V,U){if(Array.isArray(V))return V.slice();if(!V)return[];var X=[];if(typeof V!="string"){for(var K=0;K>8,J=I&255;O?X.push(O,J):X.push(J)}return X}Q.toArray=Y;function Z(V){return V.length===1?"0"+V:V}Q.zero2=Z;function G(V){for(var U="",X=0;X(H>>1)-1?T=(H>>1)-D:T=D,W.isubn(T)):T=0,A[E]=T,W.iushrn(1)}return A}Q.getNAF=V;function U(O,J){var F=[[],[]];O=O.clone(),J=J.clone();for(var A=0,H=0,W;O.cmpn(-A)>0||J.cmpn(-H)>0;){var E=O.andln(3)+A&3,T=J.andln(3)+H&3;E===3&&(E=-1),T===3&&(T=-1);var D;(E&1)===0?D=0:(W=O.andln(7)+A&7,(W===3||W===5)&&T===2?D=-E:D=E),F[0].push(D);var C;(T&1)===0?C=0:(W=J.andln(7)+H&7,(W===3||W===5)&&E===2?C=-T:C=T),F[1].push(C),2*A===D+1&&(A=1-A),2*H===C+1&&(H=1-H),O.iushrn(1),J.iushrn(1)}return F}Q.getJSF=U;function X(O,J,F){var A="_"+J;O.prototype[J]=function(){return this[A]!==void 0?this[A]:this[A]=F.call(this)}}Q.cachedProperty=X;function K(O){return typeof O=="string"?Q.toArray(O,"hex"):O}Q.parseBytes=K;function I(O){return new Y(O,"hex","le")}Q.intFromLE=I}}),uQ=q$({"node_modules/elliptic/lib/elliptic/curve/base.js"($,Q){var Y=bQ(),Z=oQ(),G=Z.getNAF,V=Z.getJSF,U=Z.assert;function X(I,O){this.type=I,this.p=new Y(O.p,16),this.red=O.prime?Y.red(O.prime):Y.mont(this.p),this.zero=new Y(0).toRed(this.red),this.one=new Y(1).toRed(this.red),this.two=new Y(2).toRed(this.red),this.n=O.n&&new Y(O.n,16),this.g=O.g&&this.pointFromJSON(O.g,O.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var J=this.n&&this.p.div(this.n);!J||J.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}Q.exports=X,X.prototype.point=function(){throw new Error("Not implemented")},X.prototype.validate=function(){throw new Error("Not implemented")},X.prototype._fixedNafMul=function(I,O){U(I.precomputed);var J=I._getDoubles(),F=G(O,1,this._bitLength),A=(1<=W;T--)E=(E<<1)+F[T];H.push(E)}for(var D=this.jpoint(null,null,null),C=this.jpoint(null,null,null),L=A;L>0;L--){for(W=0;W=0;E--){for(var T=0;E>=0&&H[E]===0;E--)T++;if(E>=0&&T++,W=W.dblp(T),E<0)break;var D=H[E];U(D!==0),I.type==="affine"?D>0?W=W.mixedAdd(A[D-1>>1]):W=W.mixedAdd(A[-D-1>>1].neg()):D>0?W=W.add(A[D-1>>1]):W=W.add(A[-D-1>>1].neg())}return I.type==="affine"?W.toP():W},X.prototype._wnafMulAdd=function(I,O,J,F,A){var H=this._wnafT1,W=this._wnafT2,E=this._wnafT3,T=0,D,C,L;for(D=0;D=1;D-=2){var P=D-1,z=D;if(H[P]!==1||H[z]!==1){E[P]=G(J[P],H[P],this._bitLength),E[z]=G(J[z],H[z],this._bitLength),T=Math.max(E[P].length,T),T=Math.max(E[z].length,T);continue}var M=[O[P],null,null,O[z]];O[P].y.cmp(O[z].y)===0?(M[1]=O[P].add(O[z]),M[2]=O[P].toJ().mixedAdd(O[z].neg())):O[P].y.cmp(O[z].y.redNeg())===0?(M[1]=O[P].toJ().mixedAdd(O[z]),M[2]=O[P].add(O[z].neg())):(M[1]=O[P].toJ().mixedAdd(O[z]),M[2]=O[P].toJ().mixedAdd(O[z].neg()));var S=[-3,-1,-5,-7,0,7,5,1,3],v=V(J[P],J[z]);for(T=Math.max(v[0].length,T),E[P]=new Array(T),E[z]=new Array(T),C=0;C=0;D--){for(var _=0;D>=0;){var N=!0;for(C=0;C=0&&_++,k=k.dblp(_),D<0)break;for(C=0;C0?L=W[C][x-1>>1]:x<0&&(L=W[C][-x-1>>1].neg()),L.type==="affine"?k=k.mixedAdd(L):k=k.add(L))}}for(D=0;D=Math.ceil((I.bitLength()+1)/O.step):!1},K.prototype._getDoubles=function(I,O){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var J=[this],F=this,A=0;A=0&&(P=D,z=C),L.negative&&(L=L.neg(),R=R.neg()),P.negative&&(P=P.neg(),z=z.neg()),[{a:L,b:R},{a:P,b:z}]},X.prototype._endoSplit=function(O){var J=this.endo.basis,F=J[0],A=J[1],H=A.b.mul(O).divRound(this.n),W=F.b.neg().mul(O).divRound(this.n),E=H.mul(F.a),T=W.mul(A.a),D=H.mul(F.b),C=W.mul(A.b),L=O.sub(E).sub(T),R=D.add(C).neg();return{k1:L,k2:R}},X.prototype.pointFromX=function(O,J){O=new Z(O,16),O.red||(O=O.toRed(this.red));var F=O.redSqr().redMul(O).redIAdd(O.redMul(this.a)).redIAdd(this.b),A=F.redSqrt();if(A.redSqr().redSub(F).cmp(this.zero)!==0)throw new Error("invalid point");var H=A.fromRed().isOdd();return(J&&!H||!J&&H)&&(A=A.redNeg()),this.point(O,A)},X.prototype.validate=function(O){if(O.inf)return!0;var{x:J,y:F}=O,A=this.a.redMul(J),H=J.redSqr().redMul(J).redIAdd(A).redIAdd(this.b);return F.redSqr().redISub(H).cmpn(0)===0},X.prototype._endoWnafMulAdd=function(O,J,F){for(var A=this._endoWnafT1,H=this._endoWnafT2,W=0;W":""},K.prototype.isInfinity=function(){return this.inf},K.prototype.add=function(O){if(this.inf)return O;if(O.inf)return this;if(this.eq(O))return this.dbl();if(this.neg().eq(O))return this.curve.point(null,null);if(this.x.cmp(O.x)===0)return this.curve.point(null,null);var J=this.y.redSub(O.y);J.cmpn(0)!==0&&(J=J.redMul(this.x.redSub(O.x).redInvm()));var F=J.redSqr().redISub(this.x).redISub(O.x),A=J.redMul(this.x.redSub(F)).redISub(this.y);return this.curve.point(F,A)},K.prototype.dbl=function(){if(this.inf)return this;var O=this.y.redAdd(this.y);if(O.cmpn(0)===0)return this.curve.point(null,null);var J=this.curve.a,F=this.x.redSqr(),A=O.redInvm(),H=F.redAdd(F).redIAdd(F).redIAdd(J).redMul(A),W=H.redSqr().redISub(this.x.redAdd(this.x)),E=H.redMul(this.x.redSub(W)).redISub(this.y);return this.curve.point(W,E)},K.prototype.getX=function(){return this.x.fromRed()},K.prototype.getY=function(){return this.y.fromRed()},K.prototype.mul=function(O){return O=new Z(O,16),this.isInfinity()?this:this._hasDoubles(O)?this.curve._fixedNafMul(this,O):this.curve.endo?this.curve._endoWnafMulAdd([this],[O]):this.curve._wnafMul(this,O)},K.prototype.mulAdd=function(O,J,F){var A=[this,J],H=[O,F];return this.curve.endo?this.curve._endoWnafMulAdd(A,H):this.curve._wnafMulAdd(1,A,H,2)},K.prototype.jmulAdd=function(O,J,F){var A=[this,J],H=[O,F];return this.curve.endo?this.curve._endoWnafMulAdd(A,H,!0):this.curve._wnafMulAdd(1,A,H,2,!0)},K.prototype.eq=function(O){return this===O||this.inf===O.inf&&(this.inf||this.x.cmp(O.x)===0&&this.y.cmp(O.y)===0)},K.prototype.neg=function(O){if(this.inf)return this;var J=this.curve.point(this.x,this.y.redNeg());if(O&&this.precomputed){var F=this.precomputed,A=function(H){return H.neg()};J.precomputed={naf:F.naf&&{wnd:F.naf.wnd,points:F.naf.points.map(A)},doubles:F.doubles&&{step:F.doubles.step,points:F.doubles.points.map(A)}}}return J},K.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var O=this.curve.jpoint(this.x,this.y,this.curve.one);return O};function I(O,J,F,A){V.BasePoint.call(this,O,"jacobian"),J===null&&F===null&&A===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new Z(0)):(this.x=new Z(J,16),this.y=new Z(F,16),this.z=new Z(A,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}G(I,V.BasePoint),X.prototype.jpoint=function(O,J,F){return new I(this,O,J,F)},I.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var O=this.z.redInvm(),J=O.redSqr(),F=this.x.redMul(J),A=this.y.redMul(J).redMul(O);return this.curve.point(F,A)},I.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},I.prototype.add=function(O){if(this.isInfinity())return O;if(O.isInfinity())return this;var J=O.z.redSqr(),F=this.z.redSqr(),A=this.x.redMul(J),H=O.x.redMul(F),W=this.y.redMul(J.redMul(O.z)),E=O.y.redMul(F.redMul(this.z)),T=A.redSub(H),D=W.redSub(E);if(T.cmpn(0)===0)return D.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var C=T.redSqr(),L=C.redMul(T),R=A.redMul(C),P=D.redSqr().redIAdd(L).redISub(R).redISub(R),z=D.redMul(R.redISub(P)).redISub(W.redMul(L)),M=this.z.redMul(O.z).redMul(T);return this.curve.jpoint(P,z,M)},I.prototype.mixedAdd=function(O){if(this.isInfinity())return O.toJ();if(O.isInfinity())return this;var J=this.z.redSqr(),F=this.x,A=O.x.redMul(J),H=this.y,W=O.y.redMul(J).redMul(this.z),E=F.redSub(A),T=H.redSub(W);if(E.cmpn(0)===0)return T.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var D=E.redSqr(),C=D.redMul(E),L=F.redMul(D),R=T.redSqr().redIAdd(C).redISub(L).redISub(L),P=T.redMul(L.redISub(R)).redISub(H.redMul(C)),z=this.z.redMul(E);return this.curve.jpoint(R,P,z)},I.prototype.dblp=function(O){if(O===0)return this;if(this.isInfinity())return this;if(!O)return this.dbl();var J;if(this.curve.zeroA||this.curve.threeA){var F=this;for(J=0;J=0)return!1;if(F.redIAdd(H),this.x.cmp(F)===0)return!0}},I.prototype.inspect=function(){return this.isInfinity()?"":""},I.prototype.isInfinity=function(){return this.z.cmpn(0)===0}}}),sQ=q$({"node_modules/elliptic/lib/elliptic/curve/mont.js"($,Q){var Y=bQ(),Z=_$(),G=uQ(),V=oQ();function U(K){G.call(this,"mont",K),this.a=new Y(K.a,16).toRed(this.red),this.b=new Y(K.b,16).toRed(this.red),this.i4=new Y(4).toRed(this.red).redInvm(),this.two=new Y(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}Z(U,G),Q.exports=U,U.prototype.validate=function(K){var I=K.normalize().x,O=I.redSqr(),J=O.redMul(I).redAdd(O.redMul(this.a)).redAdd(I),F=J.redSqrt();return F.redSqr().cmp(J)===0};function X(K,I,O){G.BasePoint.call(this,K,"projective"),I===null&&O===null?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new Y(I,16),this.z=new Y(O,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}Z(X,G.BasePoint),U.prototype.decodePoint=function(K,I){return this.point(V.toArray(K,I),1)},U.prototype.point=function(K,I){return new X(this,K,I)},U.prototype.pointFromJSON=function(K){return X.fromJSON(this,K)},X.prototype.precompute=function(){},X.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},X.fromJSON=function(K,I){return new X(K,I[0],I[1]||K.one)},X.prototype.inspect=function(){return this.isInfinity()?"":""},X.prototype.isInfinity=function(){return this.z.cmpn(0)===0},X.prototype.dbl=function(){var K=this.x.redAdd(this.z),I=K.redSqr(),O=this.x.redSub(this.z),J=O.redSqr(),F=I.redSub(J),A=I.redMul(J),H=F.redMul(J.redAdd(this.curve.a24.redMul(F)));return this.curve.point(A,H)},X.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},X.prototype.diffAdd=function(K,I){var O=this.x.redAdd(this.z),J=this.x.redSub(this.z),F=K.x.redAdd(K.z),A=K.x.redSub(K.z),H=A.redMul(O),W=F.redMul(J),E=I.z.redMul(H.redAdd(W).redSqr()),T=I.x.redMul(H.redISub(W).redSqr());return this.curve.point(E,T)},X.prototype.mul=function(K){for(var I=K.clone(),O=this,J=this.curve.point(null,null),F=this,A=[];I.cmpn(0)!==0;I.iushrn(1))A.push(I.andln(1));for(var H=A.length-1;H>=0;H--)A[H]===0?(O=O.diffAdd(J,F),J=J.dbl()):(J=O.diffAdd(J,F),O=O.dbl());return J},X.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},X.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},X.prototype.eq=function(K){return this.getX().cmp(K.getX())===0},X.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},X.prototype.getX=function(){return this.normalize(),this.x.fromRed()}}}),tQ=q$({"node_modules/elliptic/lib/elliptic/curve/edwards.js"($,Q){var Y=oQ(),Z=bQ(),G=_$(),V=uQ(),U=Y.assert;function X(I){this.twisted=(I.a|0)!==1,this.mOneA=this.twisted&&(I.a|0)===-1,this.extended=this.mOneA,V.call(this,"edwards",I),this.a=new Z(I.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new Z(I.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new Z(I.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),U(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(I.c|0)===1}G(X,V),Q.exports=X,X.prototype._mulA=function(I){return this.mOneA?I.redNeg():this.a.redMul(I)},X.prototype._mulC=function(I){return this.oneC?I:this.c.redMul(I)},X.prototype.jpoint=function(I,O,J,F){return this.point(I,O,J,F)},X.prototype.pointFromX=function(I,O){I=new Z(I,16),I.red||(I=I.toRed(this.red));var J=I.redSqr(),F=this.c2.redSub(this.a.redMul(J)),A=this.one.redSub(this.c2.redMul(this.d).redMul(J)),H=F.redMul(A.redInvm()),W=H.redSqrt();if(W.redSqr().redSub(H).cmp(this.zero)!==0)throw new Error("invalid point");var E=W.fromRed().isOdd();return(O&&!E||!O&&E)&&(W=W.redNeg()),this.point(I,W)},X.prototype.pointFromY=function(I,O){I=new Z(I,16),I.red||(I=I.toRed(this.red));var J=I.redSqr(),F=J.redSub(this.c2),A=J.redMul(this.d).redMul(this.c2).redSub(this.a),H=F.redMul(A.redInvm());if(H.cmp(this.zero)===0){if(O)throw new Error("invalid point");return this.point(this.zero,I)}var W=H.redSqrt();if(W.redSqr().redSub(H).cmp(this.zero)!==0)throw new Error("invalid point");return W.fromRed().isOdd()!==O&&(W=W.redNeg()),this.point(W,I)},X.prototype.validate=function(I){if(I.isInfinity())return!0;I.normalize();var O=I.x.redSqr(),J=I.y.redSqr(),F=O.redMul(this.a).redAdd(J),A=this.c2.redMul(this.one.redAdd(this.d.redMul(O).redMul(J)));return F.cmp(A)===0};function K(I,O,J,F,A){V.BasePoint.call(this,I,"projective"),O===null&&J===null&&F===null?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new Z(O,16),this.y=new Z(J,16),this.z=F?new Z(F,16):this.curve.one,this.t=A&&new Z(A,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}G(K,V.BasePoint),X.prototype.pointFromJSON=function(I){return K.fromJSON(this,I)},X.prototype.point=function(I,O,J,F){return new K(this,I,O,J,F)},K.fromJSON=function(I,O){return new K(I,O[0],O[1],O[2])},K.prototype.inspect=function(){return this.isInfinity()?"":""},K.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)},K.prototype._extDbl=function(){var I=this.x.redSqr(),O=this.y.redSqr(),J=this.z.redSqr();J=J.redIAdd(J);var F=this.curve._mulA(I),A=this.x.redAdd(this.y).redSqr().redISub(I).redISub(O),H=F.redAdd(O),W=H.redSub(J),E=F.redSub(O),T=A.redMul(W),D=H.redMul(E),C=A.redMul(E),L=W.redMul(H);return this.curve.point(T,D,L,C)},K.prototype._projDbl=function(){var I=this.x.redAdd(this.y).redSqr(),O=this.x.redSqr(),J=this.y.redSqr(),F,A,H,W,E,T;if(this.curve.twisted){W=this.curve._mulA(O);var D=W.redAdd(J);this.zOne?(F=I.redSub(O).redSub(J).redMul(D.redSub(this.curve.two)),A=D.redMul(W.redSub(J)),H=D.redSqr().redSub(D).redSub(D)):(E=this.z.redSqr(),T=D.redSub(E).redISub(E),F=I.redSub(O).redISub(J).redMul(T),A=D.redMul(W.redSub(J)),H=D.redMul(T))}else W=O.redAdd(J),E=this.curve._mulC(this.z).redSqr(),T=W.redSub(E).redSub(E),F=this.curve._mulC(I.redISub(W)).redMul(T),A=this.curve._mulC(W).redMul(O.redISub(J)),H=W.redMul(T);return this.curve.point(F,A,H)},K.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},K.prototype._extAdd=function(I){var O=this.y.redSub(this.x).redMul(I.y.redSub(I.x)),J=this.y.redAdd(this.x).redMul(I.y.redAdd(I.x)),F=this.t.redMul(this.curve.dd).redMul(I.t),A=this.z.redMul(I.z.redAdd(I.z)),H=J.redSub(O),W=A.redSub(F),E=A.redAdd(F),T=J.redAdd(O),D=H.redMul(W),C=E.redMul(T),L=H.redMul(T),R=W.redMul(E);return this.curve.point(D,C,R,L)},K.prototype._projAdd=function(I){var O=this.z.redMul(I.z),J=O.redSqr(),F=this.x.redMul(I.x),A=this.y.redMul(I.y),H=this.curve.d.redMul(F).redMul(A),W=J.redSub(H),E=J.redAdd(H),T=this.x.redAdd(this.y).redMul(I.x.redAdd(I.y)).redISub(F).redISub(A),D=O.redMul(W).redMul(T),C,L;return this.curve.twisted?(C=O.redMul(E).redMul(A.redSub(this.curve._mulA(F))),L=W.redMul(E)):(C=O.redMul(E).redMul(A.redSub(F)),L=this.curve._mulC(W).redMul(E)),this.curve.point(D,C,L)},K.prototype.add=function(I){return this.isInfinity()?I:I.isInfinity()?this:this.curve.extended?this._extAdd(I):this._projAdd(I)},K.prototype.mul=function(I){return this._hasDoubles(I)?this.curve._fixedNafMul(this,I):this.curve._wnafMul(this,I)},K.prototype.mulAdd=function(I,O,J){return this.curve._wnafMulAdd(1,[this,O],[I,J],2,!1)},K.prototype.jmulAdd=function(I,O,J){return this.curve._wnafMulAdd(1,[this,O],[I,J],2,!0)},K.prototype.normalize=function(){if(this.zOne)return this;var I=this.z.redInvm();return this.x=this.x.redMul(I),this.y=this.y.redMul(I),this.t&&(this.t=this.t.redMul(I)),this.z=this.curve.one,this.zOne=!0,this},K.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},K.prototype.getX=function(){return this.normalize(),this.x.fromRed()},K.prototype.getY=function(){return this.normalize(),this.y.fromRed()},K.prototype.eq=function(I){return this===I||this.getX().cmp(I.getX())===0&&this.getY().cmp(I.getY())===0},K.prototype.eqXToP=function(I){var O=I.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(O)===0)return!0;for(var J=I.clone(),F=this.curve.redN.redMul(this.z);;){if(J.iadd(this.curve.n),J.cmp(this.curve.p)>=0)return!1;if(O.redIAdd(F),this.x.cmp(O)===0)return!0}},K.prototype.toP=K.prototype.normalize,K.prototype.mixedAdd=K.prototype.add}}),mQ=q$({"node_modules/elliptic/lib/elliptic/curve/index.js"($){var Q=$;Q.base=uQ(),Q.short=nQ(),Q.mont=sQ(),Q.edwards=tQ()}}),aQ=q$({"node_modules/hash.js/lib/hash/utils.js"($){var Q=ZQ(),Y=_$();$.inherits=Y;function Z(k,g){return(k.charCodeAt(g)&64512)!==55296||g<0||g+1>=k.length?!1:(k.charCodeAt(g+1)&64512)===56320}function G(k,g){if(Array.isArray(k))return k.slice();if(!k)return[];var _=[];if(typeof k=="string")if(g){if(g==="hex")for(k=k.replace(/[^a-z0-9]+/gi,""),k.length%2!==0&&(k="0"+k),x=0;x>6|192,_[N++]=B&63|128):Z(k,x)?(B=65536+((B&1023)<<10)+(k.charCodeAt(++x)&1023),_[N++]=B>>18|240,_[N++]=B>>12&63|128,_[N++]=B>>6&63|128,_[N++]=B&63|128):(_[N++]=B>>12|224,_[N++]=B>>6&63|128,_[N++]=B&63|128)}else for(x=0;x>>24|k>>>8&65280|k<<8&16711680|(k&255)<<24;return g>>>0}$.htonl=U;function X(k,g){for(var _="",N=0;N>>0}return B}$.join32=O;function J(k,g){for(var _=new Array(k.length*4),N=0,x=0;N>>24,_[x+1]=B>>>16&255,_[x+2]=B>>>8&255,_[x+3]=B&255):(_[x+3]=B>>>24,_[x+2]=B>>>16&255,_[x+1]=B>>>8&255,_[x]=B&255)}return _}$.split32=J;function F(k,g){return k>>>g|k<<32-g}$.rotr32=F;function A(k,g){return k<>>32-g}$.rotl32=A;function H(k,g){return k+g>>>0}$.sum32=H;function W(k,g,_){return k+g+_>>>0}$.sum32_3=W;function E(k,g,_,N){return k+g+_+N>>>0}$.sum32_4=E;function T(k,g,_,N,x){return k+g+_+N+x>>>0}$.sum32_5=T;function D(k,g,_,N){var x=k[g],B=k[g+1],y=N+B>>>0,w=(y>>0,k[g+1]=y}$.sum64=D;function C(k,g,_,N){var x=g+N>>>0,B=(x>>0}$.sum64_hi=C;function L(k,g,_,N){var x=g+N;return x>>>0}$.sum64_lo=L;function R(k,g,_,N,x,B,y,w){var p=0,f=g;f=f+N>>>0,p+=f>>0,p+=f>>0,p+=f>>0}$.sum64_4_hi=R;function P(k,g,_,N,x,B,y,w){var p=g+N+B+w;return p>>>0}$.sum64_4_lo=P;function z(k,g,_,N,x,B,y,w,p,f){var c=0,h=g;h=h+N>>>0,c+=h>>0,c+=h>>0,c+=h>>0,c+=h>>0}$.sum64_5_hi=z;function M(k,g,_,N,x,B,y,w,p,f){var c=g+N+B+w+f;return c>>>0}$.sum64_5_lo=M;function S(k,g,_){var N=g<<32-_|k>>>_;return N>>>0}$.rotr64_hi=S;function v(k,g,_){var N=k<<32-_|g>>>_;return N>>>0}$.rotr64_lo=v;function q(k,g,_){return k>>>_}$.shr64_hi=q;function j(k,g,_){var N=k<<32-_|g>>>_;return N>>>0}$.shr64_lo=j}}),eQ=q$({"node_modules/hash.js/lib/hash/common.js"($){var Q=aQ(),Y=ZQ();function Z(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}$.BlockHash=Z,Z.prototype.update=function(G,V){if(G=Q.toArray(G,V),this.pending?this.pending=this.pending.concat(G):this.pending=G,this.pendingTotal+=G.length,this.pending.length>=this._delta8){G=this.pending;var U=G.length%this._delta8;this.pending=G.slice(G.length-U,G.length),this.pending.length===0&&(this.pending=null),G=Q.join32(G,0,G.length-U,this.endian);for(var X=0;X>>24&255,X[K++]=G>>>16&255,X[K++]=G>>>8&255,X[K++]=G&255}else for(X[K++]=G&255,X[K++]=G>>>8&255,X[K++]=G>>>16&255,X[K++]=G>>>24&255,X[K++]=0,X[K++]=0,X[K++]=0,X[K++]=0,I=8;I>>3}$.g0_256=I;function O(J){return Y(J,17)^Y(J,19)^J>>>10}$.g1_256=O}}),iQ=q$({"node_modules/hash.js/lib/hash/sha/1.js"($,Q){var Y=aQ(),Z=eQ(),G=rQ(),V=Y.rotl32,U=Y.sum32,X=Y.sum32_5,K=G.ft_1,I=Z.BlockHash,O=[1518500249,1859775393,2400959708,3395469782];function J(){if(!(this instanceof J))return new J;I.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}Y.inherits(J,I),Q.exports=J,J.blockSize=512,J.outSize=160,J.hmacStrength=80,J.padLength=64,J.prototype._update=function(F,A){for(var H=this.W,W=0;W<16;W++)H[W]=F[A+W];for(;Wthis.blockSize&&(V=new this.Hash().update(V).digest()),Z(V.length<=this.blockSize);for(var U=V.length;U=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(X,K,I)}Q.exports=V,V.prototype._init=function(U,X,K){var I=U.concat(X).concat(K);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var O=0;O=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(U.concat(K||[])),this._reseed=1},V.prototype.generate=function(U,X,K,I){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");typeof X!="string"&&(I=K,K=X,X=null),K&&(K=Z.toArray(K,I||"hex"),this._update(K));for(var O=[];O.length"}}}),FY=q$({"node_modules/elliptic/lib/elliptic/ec/signature.js"($,Q){var Y=bQ(),Z=oQ(),G=Z.assert;function V(O,J){if(O instanceof V)return O;this._importDER(O,J)||(G(O.r&&O.s,"Signature without r or s"),this.r=new Y(O.r,16),this.s=new Y(O.s,16),O.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=O.recoveryParam)}Q.exports=V;function U(){this.place=0}function X(O,J){var F=O[J.place++];if(!(F&128))return F;var A=F&15;if(A===0||A>4)return!1;for(var H=0,W=0,E=J.place;W>>=0;return H<=127?!1:(J.place=E,H)}function K(O){for(var J=0,F=O.length-1;!O[J]&&!(O[J+1]&128)&&J>>3);for(O.push(F|128);--F;)O.push(J>>>(F<<3)&255);O.push(J)}V.prototype.toDER=function(O){var J=this.r.toArray(),F=this.s.toArray();for(J[0]&128&&(J=[0].concat(J)),F[0]&128&&(F=[0].concat(F)),J=K(J),F=K(F);!F[0]&&!(F[1]&128);)F=F.slice(1);var A=[2];I(A,J.length),A=A.concat(J),A.push(2),I(A,F.length);var H=A.concat(F),W=[48];return I(W,H.length),W=W.concat(H),Z.encode(W,O)}}}),AY=q$({"node_modules/elliptic/lib/elliptic/ec/index.js"($,Q){var Y=bQ(),Z=OY(),G=oQ(),V=IY(),U=xQ(),X=G.assert,K=JY(),I=FY();function O(J){if(!(this instanceof O))return new O(J);typeof J=="string"&&(X(Object.prototype.hasOwnProperty.call(V,J),"Unknown curve "+J),J=V[J]),J instanceof V.PresetCurve&&(J={curve:J}),this.curve=J.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=J.curve.g,this.g.precompute(J.curve.n.bitLength()+1),this.hash=J.hash||J.curve.hash}Q.exports=O,O.prototype.keyPair=function(J){return new K(this,J)},O.prototype.keyFromPrivate=function(J,F){return K.fromPrivate(this,J,F)},O.prototype.keyFromPublic=function(J,F){return K.fromPublic(this,J,F)},O.prototype.genKeyPair=function(J){J||(J={});for(var F=new Z({hash:this.hash,pers:J.pers,persEnc:J.persEnc||"utf8",entropy:J.entropy||U(this.hash.hmacStrength),entropyEnc:J.entropy&&J.entropyEnc||"utf8",nonce:this.n.toArray()}),A=this.n.byteLength(),H=this.n.sub(new Y(2));;){var W=new Y(F.generate(A));if(!(W.cmp(H)>0))return W.iaddn(1),this.keyFromPrivate(W)}},O.prototype._truncateToN=function(J,F){var A=J.byteLength()*8-this.n.bitLength();return A>0&&(J=J.ushrn(A)),!F&&J.cmp(this.n)>=0?J.sub(this.n):J},O.prototype.sign=function(J,F,A,H){typeof A=="object"&&(H=A,A=null),H||(H={}),F=this.keyFromPrivate(F,A),J=this._truncateToN(new Y(J,16));for(var W=this.n.byteLength(),E=F.getPrivate().toArray("be",W),T=J.toArray("be",W),D=new Z({hash:this.hash,entropy:E,nonce:T,pers:H.pers,persEnc:H.persEnc||"utf8"}),C=this.n.sub(new Y(1)),L=0;;L++){var R=H.k?H.k(L):new Y(D.generate(this.n.byteLength()));if(R=this._truncateToN(R,!0),!(R.cmpn(1)<=0||R.cmp(C)>=0)){var P=this.g.mul(R);if(!P.isInfinity()){var z=P.getX(),M=z.umod(this.n);if(M.cmpn(0)!==0){var S=R.invm(this.n).mul(M.mul(F.getPrivate()).iadd(J));if(S=S.umod(this.n),S.cmpn(0)!==0){var v=(P.getY().isOdd()?1:0)|(z.cmp(M)!==0?2:0);return H.canonical&&S.cmp(this.nh)>0&&(S=this.n.sub(S),v^=1),new I({r:M,s:S,recoveryParam:v})}}}}}},O.prototype.verify=function(J,F,A,H){J=this._truncateToN(new Y(J,16)),A=this.keyFromPublic(A,H),F=new I(F,"hex");var{r:W,s:E}=F;if(W.cmpn(1)<0||W.cmp(this.n)>=0||E.cmpn(1)<0||E.cmp(this.n)>=0)return!1;var T=E.invm(this.n),D=T.mul(J).umod(this.n),C=T.mul(W).umod(this.n),L;return this.curve._maxwellTrick?(L=this.g.jmulAdd(D,A.getPublic(),C),L.isInfinity()?!1:L.eqXToP(W)):(L=this.g.mulAdd(D,A.getPublic(),C),L.isInfinity()?!1:L.getX().umod(this.n).cmp(W)===0)},O.prototype.recoverPubKey=function(J,F,A,H){X((3&A)===A,"The recovery param is more than two bits"),F=new I(F,H);var W=this.n,E=new Y(J),T=F.r,D=F.s,C=A&1,L=A>>1;if(T.cmp(this.curve.p.umod(this.curve.n))>=0&&L)throw new Error("Unable to find sencond key candinate");L?T=this.curve.pointFromX(T.add(this.curve.n),C):T=this.curve.pointFromX(T,C);var R=F.r.invm(W),P=W.sub(E).mul(R).umod(W),z=D.mul(R).umod(W);return this.g.mulAdd(P,T,z)},O.prototype.getKeyRecoveryParam=function(J,F,A,H){if(F=new I(F,H),F.recoveryParam!==null)return F.recoveryParam;for(var W=0;W<4;W++){var E;try{E=this.recoverPubKey(J,F,W)}catch{continue}if(E.eq(A))return W}throw new Error("Unable to find valid recovery factor")}}}),HY=q$({"node_modules/elliptic/lib/elliptic/eddsa/key.js"($,Q){var Y=oQ(),Z=Y.assert,G=Y.parseBytes,V=Y.cachedProperty;function U(X,K){this.eddsa=X,this._secret=G(K.secret),X.isPoint(K.pub)?this._pub=K.pub:this._pubBytes=G(K.pub)}U.fromPublic=function(X,K){return K instanceof U?K:new U(X,{pub:K})},U.fromSecret=function(X,K){return K instanceof U?K:new U(X,{secret:K})},U.prototype.secret=function(){return this._secret},V(U,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())}),V(U,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())}),V(U,"privBytes",function(){var X=this.eddsa,K=this.hash(),I=X.encodingLength-1,O=K.slice(0,X.encodingLength);return O[0]&=248,O[I]&=127,O[I]|=64,O}),V(U,"priv",function(){return this.eddsa.decodeInt(this.privBytes())}),V(U,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()}),V(U,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)}),U.prototype.sign=function(X){return Z(this._secret,"KeyPair can only verify"),this.eddsa.sign(X,this)},U.prototype.verify=function(X,K){return this.eddsa.verify(X,K,this)},U.prototype.getSecret=function(X){return Z(this._secret,"KeyPair is public only"),Y.encode(this.secret(),X)},U.prototype.getPublic=function(X){return Y.encode(this.pubBytes(),X)},Q.exports=U}}),WY=q$({"node_modules/elliptic/lib/elliptic/eddsa/signature.js"($,Q){var Y=bQ(),Z=oQ(),G=Z.assert,V=Z.cachedProperty,U=Z.parseBytes;function X(K,I){this.eddsa=K,typeof I!="object"&&(I=U(I)),Array.isArray(I)&&(I={R:I.slice(0,K.encodingLength),S:I.slice(K.encodingLength)}),G(I.R&&I.S,"Signature without R or S"),K.isPoint(I.R)&&(this._R=I.R),I.S instanceof Y&&(this._S=I.S),this._Rencoded=Array.isArray(I.R)?I.R:I.Rencoded,this._Sencoded=Array.isArray(I.S)?I.S:I.Sencoded}V(X,"S",function(){return this.eddsa.decodeInt(this.Sencoded())}),V(X,"R",function(){return this.eddsa.decodePoint(this.Rencoded())}),V(X,"Rencoded",function(){return this.eddsa.encodePoint(this.R())}),V(X,"Sencoded",function(){return this.eddsa.encodeInt(this.S())}),X.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},X.prototype.toHex=function(){return Z.encode(this.toBytes(),"hex").toUpperCase()},Q.exports=X}}),EY=q$({"node_modules/elliptic/lib/elliptic/eddsa/index.js"($,Q){var Y=XY(),Z=IY(),G=oQ(),V=G.assert,U=G.parseBytes,X=HY(),K=WY();function I(O){if(V(O==="ed25519","only tested with ed25519 so far"),!(this instanceof I))return new I(O);O=Z[O].curve,this.curve=O,this.g=O.g,this.g.precompute(O.n.bitLength()+1),this.pointClass=O.point().constructor,this.encodingLength=Math.ceil(O.n.bitLength()/8),this.hash=Y.sha512}Q.exports=I,I.prototype.sign=function(O,J){O=U(O);var F=this.keyFromSecret(J),A=this.hashInt(F.messagePrefix(),O),H=this.g.mul(A),W=this.encodePoint(H),E=this.hashInt(W,F.pubBytes(),O).mul(F.priv()),T=A.add(E).umod(this.curve.n);return this.makeSignature({R:H,S:T,Rencoded:W})},I.prototype.verify=function(O,J,F){O=U(O),J=this.makeSignature(J);var A=this.keyFromPublic(F),H=this.hashInt(J.Rencoded(),A.pubBytes(),O),W=this.g.mul(J.S()),E=J.R().add(A.pub().mul(H));return E.eq(W)},I.prototype.hashInt=function(){for(var O=this.hash(),J=0;J0?j:k},U.min=function(j,k){return j.cmp(k)<0?j:k},U.prototype._init=function(j,k,g){if(typeof j=="number")return this._initNumber(j,k,g);if(typeof j=="object")return this._initArray(j,k,g);k==="hex"&&(k=16),G(k===(k|0)&&k>=2&&k<=36),j=j.toString().replace(/\s+/g,"");var _=0;j[0]==="-"&&(_++,this.negative=1),_=0;_-=3)x=j[_]|j[_-1]<<8|j[_-2]<<16,this.words[N]|=x<>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);else if(g==="le")for(_=0,N=0;_>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);return this.strip()};function K(j,k){var g=j.charCodeAt(k);return g>=65&&g<=70?g-55:g>=97&&g<=102?g-87:g-48&15}function I(j,k,g){var _=K(j,g);return g-1>=k&&(_|=K(j,g-1)<<4),_}U.prototype._parseHex=function(j,k,g){this.length=Math.ceil((j.length-k)/6),this.words=new Array(this.length);for(var _=0;_=k;_-=2)B=I(j,k,_)<=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8;else{var y=j.length-k;for(_=y%2===0?k+1:k;_=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8}this.strip()};function O(j,k,g,_){for(var N=0,x=Math.min(j.length,g),B=k;B=49?N+=y-49+10:y>=17?N+=y-17+10:N+=y}return N}U.prototype._parseBase=function(j,k,g){this.words=[0],this.length=1;for(var _=0,N=1;N<=67108863;N*=k)_++;_--,N=N/k|0;for(var x=j.length-g,B=x%_,y=Math.min(x,x-B)+g,w=0,p=g;p1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},U.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],F=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],A=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(j,k){j=j||10,k=k|0||1;var g;if(j===16||j==="hex"){g="";for(var _=0,N=0,x=0;x>>24-_&16777215,N!==0||x!==this.length-1?g=J[6-y.length]+y+g:g=y+g,_+=2,_>=26&&(_-=26,x--)}for(N!==0&&(g=N.toString(16)+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(j===(j|0)&&j>=2&&j<=36){var w=F[j],p=A[j];g="";var f=this.clone();for(f.negative=0;!f.isZero();){var c=f.modn(p).toString(j);f=f.idivn(p),f.isZero()?g=c+g:g=J[w-c.length]+c+g}for(this.isZero()&&(g="0"+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var j=this.words[0];return this.length===2?j+=this.words[1]*67108864:this.length===3&&this.words[2]===1?j+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-j:j},U.prototype.toJSON=function(){return this.toString(16)},U.prototype.toBuffer=function(j,k){return G(typeof X<"u"),this.toArrayLike(X,j,k)},U.prototype.toArray=function(j,k){return this.toArrayLike(Array,j,k)},U.prototype.toArrayLike=function(j,k,g){var _=this.byteLength(),N=g||Math.max(1,_);G(_<=N,"byte array longer than desired length"),G(N>0,"Requested array length <= 0"),this.strip();var x=k==="le",B=new j(N),y,w,p=this.clone();if(x){for(w=0;!p.isZero();w++)y=p.andln(255),p.iushrn(8),B[w]=y;for(;w=4096&&(g+=13,k>>>=13),k>=64&&(g+=7,k>>>=7),k>=8&&(g+=4,k>>>=4),k>=2&&(g+=2,k>>>=2),g+k},U.prototype._zeroBits=function(j){if(j===0)return 26;var k=j,g=0;return(k&8191)===0&&(g+=13,k>>>=13),(k&127)===0&&(g+=7,k>>>=7),(k&15)===0&&(g+=4,k>>>=4),(k&3)===0&&(g+=2,k>>>=2),(k&1)===0&&g++,g},U.prototype.bitLength=function(){var j=this.words[this.length-1],k=this._countBits(j);return(this.length-1)*26+k};function H(j){for(var k=new Array(j.bitLength()),g=0;g>>N}return k}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var j=0,k=0;kj.length?this.clone().ior(j):j.clone().ior(this)},U.prototype.uor=function(j){return this.length>j.length?this.clone().iuor(j):j.clone().iuor(this)},U.prototype.iuand=function(j){var k;this.length>j.length?k=j:k=this;for(var g=0;gj.length?this.clone().iand(j):j.clone().iand(this)},U.prototype.uand=function(j){return this.length>j.length?this.clone().iuand(j):j.clone().iuand(this)},U.prototype.iuxor=function(j){var k,g;this.length>j.length?(k=this,g=j):(k=j,g=this);for(var _=0;_j.length?this.clone().ixor(j):j.clone().ixor(this)},U.prototype.uxor=function(j){return this.length>j.length?this.clone().iuxor(j):j.clone().iuxor(this)},U.prototype.inotn=function(j){G(typeof j=="number"&&j>=0);var k=Math.ceil(j/26)|0,g=j%26;this._expand(k),g>0&&k--;for(var _=0;_0&&(this.words[_]=~this.words[_]&67108863>>26-g),this.strip()},U.prototype.notn=function(j){return this.clone().inotn(j)},U.prototype.setn=function(j,k){G(typeof j=="number"&&j>=0);var g=j/26|0,_=j%26;return this._expand(g+1),k?this.words[g]=this.words[g]|1<<_:this.words[g]=this.words[g]&~(1<<_),this.strip()},U.prototype.iadd=function(j){var k;if(this.negative!==0&&j.negative===0)return this.negative=0,k=this.isub(j),this.negative^=1,this._normSign();if(this.negative===0&&j.negative!==0)return j.negative=0,k=this.isub(j),j.negative=1,k._normSign();var g,_;this.length>j.length?(g=this,_=j):(g=j,_=this);for(var N=0,x=0;x<_.length;x++)k=(g.words[x]|0)+(_.words[x]|0)+N,this.words[x]=k&67108863,N=k>>>26;for(;N!==0&&x>>26;if(this.length=g.length,N!==0)this.words[this.length]=N,this.length++;else if(g!==this)for(;xj.length?this.clone().iadd(j):j.clone().iadd(this)},U.prototype.isub=function(j){if(j.negative!==0){j.negative=0;var k=this.iadd(j);return j.negative=1,k._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(j),this.negative=1,this._normSign();var g=this.cmp(j);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var _,N;g>0?(_=this,N=j):(_=j,N=this);for(var x=0,B=0;B>26,this.words[B]=k&67108863;for(;x!==0&&B<_.length;B++)k=(_.words[B]|0)+x,x=k>>26,this.words[B]=k&67108863;if(x===0&&B<_.length&&_!==this)for(;B<_.length;B++)this.words[B]=_.words[B];return this.length=Math.max(this.length,B),_!==this&&(this.negative=1),this.strip()},U.prototype.sub=function(j){return this.clone().isub(j)};function W(j,k,g){g.negative=k.negative^j.negative;var _=j.length+k.length|0;g.length=_,_=_-1|0;var N=j.words[0]|0,x=k.words[0]|0,B=N*x,y=B&67108863,w=B/67108864|0;g.words[0]=y;for(var p=1;p<_;p++){for(var f=w>>>26,c=w&67108863,h=Math.min(p,k.length-1),d=Math.max(0,p-j.length+1);d<=h;d++){var b=p-d|0;N=j.words[b]|0,x=k.words[d]|0,B=N*x+c,f+=B/67108864|0,c=B&67108863}g.words[p]=c|0,w=f|0}return w!==0?g.words[p]=w|0:g.length--,g.strip()}var E=function(j,k,g){var _=j.words,N=k.words,x=g.words,B=0,y,w,p,f=_[0]|0,c=f&8191,h=f>>>13,d=_[1]|0,b=d&8191,l=d>>>13,o=_[2]|0,u=o&8191,n=o>>>13,s=_[3]|0,t=s&8191,m=s>>>13,a=_[4]|0,e=a&8191,r=a>>>13,i=_[5]|0,$0=i&8191,Q0=i>>>13,Y0=_[6]|0,Z0=Y0&8191,G0=Y0>>>13,V0=_[7]|0,U0=V0&8191,X0=V0>>>13,K0=_[8]|0,I0=K0&8191,O0=K0>>>13,J0=_[9]|0,F0=J0&8191,A0=J0>>>13,H0=N[0]|0,W0=H0&8191,E0=H0>>>13,T0=N[1]|0,D0=T0&8191,C0=T0>>>13,L0=N[2]|0,R0=L0&8191,P0=L0>>>13,z0=N[3]|0,M0=z0&8191,S0=z0>>>13,v0=N[4]|0,q0=v0&8191,j0=v0>>>13,k0=N[5]|0,g0=k0&8191,_0=k0>>>13,N0=N[6]|0,x0=N0&8191,B0=N0>>>13,y0=N[7]|0,w0=y0&8191,p0=y0>>>13,f0=N[8]|0,c0=f0&8191,h0=f0>>>13,d0=N[9]|0,b0=d0&8191,l0=d0>>>13;g.negative=j.negative^k.negative,g.length=19,y=Math.imul(c,W0),w=Math.imul(c,E0),w=w+Math.imul(h,W0)|0,p=Math.imul(h,E0);var o0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(o0>>>26)|0,o0&=67108863,y=Math.imul(b,W0),w=Math.imul(b,E0),w=w+Math.imul(l,W0)|0,p=Math.imul(l,E0),y=y+Math.imul(c,D0)|0,w=w+Math.imul(c,C0)|0,w=w+Math.imul(h,D0)|0,p=p+Math.imul(h,C0)|0;var u0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(u0>>>26)|0,u0&=67108863,y=Math.imul(u,W0),w=Math.imul(u,E0),w=w+Math.imul(n,W0)|0,p=Math.imul(n,E0),y=y+Math.imul(b,D0)|0,w=w+Math.imul(b,C0)|0,w=w+Math.imul(l,D0)|0,p=p+Math.imul(l,C0)|0,y=y+Math.imul(c,R0)|0,w=w+Math.imul(c,P0)|0,w=w+Math.imul(h,R0)|0,p=p+Math.imul(h,P0)|0;var n0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(n0>>>26)|0,n0&=67108863,y=Math.imul(t,W0),w=Math.imul(t,E0),w=w+Math.imul(m,W0)|0,p=Math.imul(m,E0),y=y+Math.imul(u,D0)|0,w=w+Math.imul(u,C0)|0,w=w+Math.imul(n,D0)|0,p=p+Math.imul(n,C0)|0,y=y+Math.imul(b,R0)|0,w=w+Math.imul(b,P0)|0,w=w+Math.imul(l,R0)|0,p=p+Math.imul(l,P0)|0,y=y+Math.imul(c,M0)|0,w=w+Math.imul(c,S0)|0,w=w+Math.imul(h,M0)|0,p=p+Math.imul(h,S0)|0;var s0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(s0>>>26)|0,s0&=67108863,y=Math.imul(e,W0),w=Math.imul(e,E0),w=w+Math.imul(r,W0)|0,p=Math.imul(r,E0),y=y+Math.imul(t,D0)|0,w=w+Math.imul(t,C0)|0,w=w+Math.imul(m,D0)|0,p=p+Math.imul(m,C0)|0,y=y+Math.imul(u,R0)|0,w=w+Math.imul(u,P0)|0,w=w+Math.imul(n,R0)|0,p=p+Math.imul(n,P0)|0,y=y+Math.imul(b,M0)|0,w=w+Math.imul(b,S0)|0,w=w+Math.imul(l,M0)|0,p=p+Math.imul(l,S0)|0,y=y+Math.imul(c,q0)|0,w=w+Math.imul(c,j0)|0,w=w+Math.imul(h,q0)|0,p=p+Math.imul(h,j0)|0;var t0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(t0>>>26)|0,t0&=67108863,y=Math.imul($0,W0),w=Math.imul($0,E0),w=w+Math.imul(Q0,W0)|0,p=Math.imul(Q0,E0),y=y+Math.imul(e,D0)|0,w=w+Math.imul(e,C0)|0,w=w+Math.imul(r,D0)|0,p=p+Math.imul(r,C0)|0,y=y+Math.imul(t,R0)|0,w=w+Math.imul(t,P0)|0,w=w+Math.imul(m,R0)|0,p=p+Math.imul(m,P0)|0,y=y+Math.imul(u,M0)|0,w=w+Math.imul(u,S0)|0,w=w+Math.imul(n,M0)|0,p=p+Math.imul(n,S0)|0,y=y+Math.imul(b,q0)|0,w=w+Math.imul(b,j0)|0,w=w+Math.imul(l,q0)|0,p=p+Math.imul(l,j0)|0,y=y+Math.imul(c,g0)|0,w=w+Math.imul(c,_0)|0,w=w+Math.imul(h,g0)|0,p=p+Math.imul(h,_0)|0;var m0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(m0>>>26)|0,m0&=67108863,y=Math.imul(Z0,W0),w=Math.imul(Z0,E0),w=w+Math.imul(G0,W0)|0,p=Math.imul(G0,E0),y=y+Math.imul($0,D0)|0,w=w+Math.imul($0,C0)|0,w=w+Math.imul(Q0,D0)|0,p=p+Math.imul(Q0,C0)|0,y=y+Math.imul(e,R0)|0,w=w+Math.imul(e,P0)|0,w=w+Math.imul(r,R0)|0,p=p+Math.imul(r,P0)|0,y=y+Math.imul(t,M0)|0,w=w+Math.imul(t,S0)|0,w=w+Math.imul(m,M0)|0,p=p+Math.imul(m,S0)|0,y=y+Math.imul(u,q0)|0,w=w+Math.imul(u,j0)|0,w=w+Math.imul(n,q0)|0,p=p+Math.imul(n,j0)|0,y=y+Math.imul(b,g0)|0,w=w+Math.imul(b,_0)|0,w=w+Math.imul(l,g0)|0,p=p+Math.imul(l,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,B0)|0,w=w+Math.imul(h,x0)|0,p=p+Math.imul(h,B0)|0;var a0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(a0>>>26)|0,a0&=67108863,y=Math.imul(U0,W0),w=Math.imul(U0,E0),w=w+Math.imul(X0,W0)|0,p=Math.imul(X0,E0),y=y+Math.imul(Z0,D0)|0,w=w+Math.imul(Z0,C0)|0,w=w+Math.imul(G0,D0)|0,p=p+Math.imul(G0,C0)|0,y=y+Math.imul($0,R0)|0,w=w+Math.imul($0,P0)|0,w=w+Math.imul(Q0,R0)|0,p=p+Math.imul(Q0,P0)|0,y=y+Math.imul(e,M0)|0,w=w+Math.imul(e,S0)|0,w=w+Math.imul(r,M0)|0,p=p+Math.imul(r,S0)|0,y=y+Math.imul(t,q0)|0,w=w+Math.imul(t,j0)|0,w=w+Math.imul(m,q0)|0,p=p+Math.imul(m,j0)|0,y=y+Math.imul(u,g0)|0,w=w+Math.imul(u,_0)|0,w=w+Math.imul(n,g0)|0,p=p+Math.imul(n,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,B0)|0,w=w+Math.imul(l,x0)|0,p=p+Math.imul(l,B0)|0,y=y+Math.imul(c,w0)|0,w=w+Math.imul(c,p0)|0,w=w+Math.imul(h,w0)|0,p=p+Math.imul(h,p0)|0;var e0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(e0>>>26)|0,e0&=67108863,y=Math.imul(I0,W0),w=Math.imul(I0,E0),w=w+Math.imul(O0,W0)|0,p=Math.imul(O0,E0),y=y+Math.imul(U0,D0)|0,w=w+Math.imul(U0,C0)|0,w=w+Math.imul(X0,D0)|0,p=p+Math.imul(X0,C0)|0,y=y+Math.imul(Z0,R0)|0,w=w+Math.imul(Z0,P0)|0,w=w+Math.imul(G0,R0)|0,p=p+Math.imul(G0,P0)|0,y=y+Math.imul($0,M0)|0,w=w+Math.imul($0,S0)|0,w=w+Math.imul(Q0,M0)|0,p=p+Math.imul(Q0,S0)|0,y=y+Math.imul(e,q0)|0,w=w+Math.imul(e,j0)|0,w=w+Math.imul(r,q0)|0,p=p+Math.imul(r,j0)|0,y=y+Math.imul(t,g0)|0,w=w+Math.imul(t,_0)|0,w=w+Math.imul(m,g0)|0,p=p+Math.imul(m,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,B0)|0,w=w+Math.imul(n,x0)|0,p=p+Math.imul(n,B0)|0,y=y+Math.imul(b,w0)|0,w=w+Math.imul(b,p0)|0,w=w+Math.imul(l,w0)|0,p=p+Math.imul(l,p0)|0,y=y+Math.imul(c,c0)|0,w=w+Math.imul(c,h0)|0,w=w+Math.imul(h,c0)|0,p=p+Math.imul(h,h0)|0;var r0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(r0>>>26)|0,r0&=67108863,y=Math.imul(F0,W0),w=Math.imul(F0,E0),w=w+Math.imul(A0,W0)|0,p=Math.imul(A0,E0),y=y+Math.imul(I0,D0)|0,w=w+Math.imul(I0,C0)|0,w=w+Math.imul(O0,D0)|0,p=p+Math.imul(O0,C0)|0,y=y+Math.imul(U0,R0)|0,w=w+Math.imul(U0,P0)|0,w=w+Math.imul(X0,R0)|0,p=p+Math.imul(X0,P0)|0,y=y+Math.imul(Z0,M0)|0,w=w+Math.imul(Z0,S0)|0,w=w+Math.imul(G0,M0)|0,p=p+Math.imul(G0,S0)|0,y=y+Math.imul($0,q0)|0,w=w+Math.imul($0,j0)|0,w=w+Math.imul(Q0,q0)|0,p=p+Math.imul(Q0,j0)|0,y=y+Math.imul(e,g0)|0,w=w+Math.imul(e,_0)|0,w=w+Math.imul(r,g0)|0,p=p+Math.imul(r,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,B0)|0,w=w+Math.imul(m,x0)|0,p=p+Math.imul(m,B0)|0,y=y+Math.imul(u,w0)|0,w=w+Math.imul(u,p0)|0,w=w+Math.imul(n,w0)|0,p=p+Math.imul(n,p0)|0,y=y+Math.imul(b,c0)|0,w=w+Math.imul(b,h0)|0,w=w+Math.imul(l,c0)|0,p=p+Math.imul(l,h0)|0,y=y+Math.imul(c,b0)|0,w=w+Math.imul(c,l0)|0,w=w+Math.imul(h,b0)|0,p=p+Math.imul(h,l0)|0;var i0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(i0>>>26)|0,i0&=67108863,y=Math.imul(F0,D0),w=Math.imul(F0,C0),w=w+Math.imul(A0,D0)|0,p=Math.imul(A0,C0),y=y+Math.imul(I0,R0)|0,w=w+Math.imul(I0,P0)|0,w=w+Math.imul(O0,R0)|0,p=p+Math.imul(O0,P0)|0,y=y+Math.imul(U0,M0)|0,w=w+Math.imul(U0,S0)|0,w=w+Math.imul(X0,M0)|0,p=p+Math.imul(X0,S0)|0,y=y+Math.imul(Z0,q0)|0,w=w+Math.imul(Z0,j0)|0,w=w+Math.imul(G0,q0)|0,p=p+Math.imul(G0,j0)|0,y=y+Math.imul($0,g0)|0,w=w+Math.imul($0,_0)|0,w=w+Math.imul(Q0,g0)|0,p=p+Math.imul(Q0,_0)|0,y=y+Math.imul(e,x0)|0,w=w+Math.imul(e,B0)|0,w=w+Math.imul(r,x0)|0,p=p+Math.imul(r,B0)|0,y=y+Math.imul(t,w0)|0,w=w+Math.imul(t,p0)|0,w=w+Math.imul(m,w0)|0,p=p+Math.imul(m,p0)|0,y=y+Math.imul(u,c0)|0,w=w+Math.imul(u,h0)|0,w=w+Math.imul(n,c0)|0,p=p+Math.imul(n,h0)|0,y=y+Math.imul(b,b0)|0,w=w+Math.imul(b,l0)|0,w=w+Math.imul(l,b0)|0,p=p+Math.imul(l,l0)|0;var $$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+($$>>>26)|0,$$&=67108863,y=Math.imul(F0,R0),w=Math.imul(F0,P0),w=w+Math.imul(A0,R0)|0,p=Math.imul(A0,P0),y=y+Math.imul(I0,M0)|0,w=w+Math.imul(I0,S0)|0,w=w+Math.imul(O0,M0)|0,p=p+Math.imul(O0,S0)|0,y=y+Math.imul(U0,q0)|0,w=w+Math.imul(U0,j0)|0,w=w+Math.imul(X0,q0)|0,p=p+Math.imul(X0,j0)|0,y=y+Math.imul(Z0,g0)|0,w=w+Math.imul(Z0,_0)|0,w=w+Math.imul(G0,g0)|0,p=p+Math.imul(G0,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,B0)|0,w=w+Math.imul(Q0,x0)|0,p=p+Math.imul(Q0,B0)|0,y=y+Math.imul(e,w0)|0,w=w+Math.imul(e,p0)|0,w=w+Math.imul(r,w0)|0,p=p+Math.imul(r,p0)|0,y=y+Math.imul(t,c0)|0,w=w+Math.imul(t,h0)|0,w=w+Math.imul(m,c0)|0,p=p+Math.imul(m,h0)|0,y=y+Math.imul(u,b0)|0,w=w+Math.imul(u,l0)|0,w=w+Math.imul(n,b0)|0,p=p+Math.imul(n,l0)|0;var Q$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,y=Math.imul(F0,M0),w=Math.imul(F0,S0),w=w+Math.imul(A0,M0)|0,p=Math.imul(A0,S0),y=y+Math.imul(I0,q0)|0,w=w+Math.imul(I0,j0)|0,w=w+Math.imul(O0,q0)|0,p=p+Math.imul(O0,j0)|0,y=y+Math.imul(U0,g0)|0,w=w+Math.imul(U0,_0)|0,w=w+Math.imul(X0,g0)|0,p=p+Math.imul(X0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,B0)|0,w=w+Math.imul(G0,x0)|0,p=p+Math.imul(G0,B0)|0,y=y+Math.imul($0,w0)|0,w=w+Math.imul($0,p0)|0,w=w+Math.imul(Q0,w0)|0,p=p+Math.imul(Q0,p0)|0,y=y+Math.imul(e,c0)|0,w=w+Math.imul(e,h0)|0,w=w+Math.imul(r,c0)|0,p=p+Math.imul(r,h0)|0,y=y+Math.imul(t,b0)|0,w=w+Math.imul(t,l0)|0,w=w+Math.imul(m,b0)|0,p=p+Math.imul(m,l0)|0;var Y$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,y=Math.imul(F0,q0),w=Math.imul(F0,j0),w=w+Math.imul(A0,q0)|0,p=Math.imul(A0,j0),y=y+Math.imul(I0,g0)|0,w=w+Math.imul(I0,_0)|0,w=w+Math.imul(O0,g0)|0,p=p+Math.imul(O0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,B0)|0,w=w+Math.imul(X0,x0)|0,p=p+Math.imul(X0,B0)|0,y=y+Math.imul(Z0,w0)|0,w=w+Math.imul(Z0,p0)|0,w=w+Math.imul(G0,w0)|0,p=p+Math.imul(G0,p0)|0,y=y+Math.imul($0,c0)|0,w=w+Math.imul($0,h0)|0,w=w+Math.imul(Q0,c0)|0,p=p+Math.imul(Q0,h0)|0,y=y+Math.imul(e,b0)|0,w=w+Math.imul(e,l0)|0,w=w+Math.imul(r,b0)|0,p=p+Math.imul(r,l0)|0;var Z$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,y=Math.imul(F0,g0),w=Math.imul(F0,_0),w=w+Math.imul(A0,g0)|0,p=Math.imul(A0,_0),y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,B0)|0,w=w+Math.imul(O0,x0)|0,p=p+Math.imul(O0,B0)|0,y=y+Math.imul(U0,w0)|0,w=w+Math.imul(U0,p0)|0,w=w+Math.imul(X0,w0)|0,p=p+Math.imul(X0,p0)|0,y=y+Math.imul(Z0,c0)|0,w=w+Math.imul(Z0,h0)|0,w=w+Math.imul(G0,c0)|0,p=p+Math.imul(G0,h0)|0,y=y+Math.imul($0,b0)|0,w=w+Math.imul($0,l0)|0,w=w+Math.imul(Q0,b0)|0,p=p+Math.imul(Q0,l0)|0;var G$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(G$>>>26)|0,G$&=67108863,y=Math.imul(F0,x0),w=Math.imul(F0,B0),w=w+Math.imul(A0,x0)|0,p=Math.imul(A0,B0),y=y+Math.imul(I0,w0)|0,w=w+Math.imul(I0,p0)|0,w=w+Math.imul(O0,w0)|0,p=p+Math.imul(O0,p0)|0,y=y+Math.imul(U0,c0)|0,w=w+Math.imul(U0,h0)|0,w=w+Math.imul(X0,c0)|0,p=p+Math.imul(X0,h0)|0,y=y+Math.imul(Z0,b0)|0,w=w+Math.imul(Z0,l0)|0,w=w+Math.imul(G0,b0)|0,p=p+Math.imul(G0,l0)|0;var V$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(V$>>>26)|0,V$&=67108863,y=Math.imul(F0,w0),w=Math.imul(F0,p0),w=w+Math.imul(A0,w0)|0,p=Math.imul(A0,p0),y=y+Math.imul(I0,c0)|0,w=w+Math.imul(I0,h0)|0,w=w+Math.imul(O0,c0)|0,p=p+Math.imul(O0,h0)|0,y=y+Math.imul(U0,b0)|0,w=w+Math.imul(U0,l0)|0,w=w+Math.imul(X0,b0)|0,p=p+Math.imul(X0,l0)|0;var U$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(U$>>>26)|0,U$&=67108863,y=Math.imul(F0,c0),w=Math.imul(F0,h0),w=w+Math.imul(A0,c0)|0,p=Math.imul(A0,h0),y=y+Math.imul(I0,b0)|0,w=w+Math.imul(I0,l0)|0,w=w+Math.imul(O0,b0)|0,p=p+Math.imul(O0,l0)|0;var X$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(X$>>>26)|0,X$&=67108863,y=Math.imul(F0,b0),w=Math.imul(F0,l0),w=w+Math.imul(A0,b0)|0,p=Math.imul(A0,l0);var K$=(B+y|0)+((w&8191)<<13)|0;return B=(p+(w>>>13)|0)+(K$>>>26)|0,K$&=67108863,x[0]=o0,x[1]=u0,x[2]=n0,x[3]=s0,x[4]=t0,x[5]=m0,x[6]=a0,x[7]=e0,x[8]=r0,x[9]=i0,x[10]=$$,x[11]=Q$,x[12]=Y$,x[13]=Z$,x[14]=G$,x[15]=V$,x[16]=U$,x[17]=X$,x[18]=K$,B!==0&&(x[19]=B,g.length++),g};Math.imul||(E=W);function T(j,k,g){g.negative=k.negative^j.negative,g.length=j.length+k.length;for(var _=0,N=0,x=0;x>>26)|0,N+=B>>>26,B&=67108863}g.words[x]=y,_=B,B=N}return _!==0?g.words[x]=_:g.length--,g.strip()}function D(j,k,g){var _=new C;return _.mulp(j,k,g)}U.prototype.mulTo=function(j,k){var g,_=this.length+j.length;return this.length===10&&j.length===10?g=E(this,j,k):_<63?g=W(this,j,k):_<1024?g=T(this,j,k):g=D(this,j,k),g};function C(j,k){this.x=j,this.y=k}C.prototype.makeRBT=function(j){for(var k=new Array(j),g=U.prototype._countBits(j)-1,_=0;_>=1;return _},C.prototype.permute=function(j,k,g,_,N,x){for(var B=0;B>>1)N++;return 1<>>13,g[2*x+1]=N&8191,N=N>>>13;for(x=2*k;x<_;++x)g[x]=0;G(N===0),G((N&-8192)===0)},C.prototype.stub=function(j){for(var k=new Array(j),g=0;g>=26,k+=_/67108864|0,k+=N>>>26,this.words[g]=N&67108863}return k!==0&&(this.words[g]=k,this.length++),this},U.prototype.muln=function(j){return this.clone().imuln(j)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(j){var k=H(j);if(k.length===0)return new U(1);for(var g=this,_=0;_=0);var k=j%26,g=(j-k)/26,_=67108863>>>26-k<<26-k,N;if(k!==0){var x=0;for(N=0;N>>26-k}x&&(this.words[N]=x,this.length++)}if(g!==0){for(N=this.length-1;N>=0;N--)this.words[N+g]=this.words[N];for(N=0;N=0);var _;k?_=(k-k%26)/26:_=0;var N=j%26,x=Math.min((j-N)/26,this.length),B=67108863^67108863>>>N<x)for(this.length-=x,w=0;w=0&&(p!==0||w>=_);w--){var f=this.words[w]|0;this.words[w]=p<<26-N|f>>>N,p=f&B}return y&&p!==0&&(y.words[y.length++]=p),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},U.prototype.ishrn=function(j,k,g){return G(this.negative===0),this.iushrn(j,k,g)},U.prototype.shln=function(j){return this.clone().ishln(j)},U.prototype.ushln=function(j){return this.clone().iushln(j)},U.prototype.shrn=function(j){return this.clone().ishrn(j)},U.prototype.ushrn=function(j){return this.clone().iushrn(j)},U.prototype.testn=function(j){G(typeof j=="number"&&j>=0);var k=j%26,g=(j-k)/26,_=1<=0);var k=j%26,g=(j-k)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(k!==0&&g++,this.length=Math.min(g,this.length),k!==0){var _=67108863^67108863>>>k<=67108864;k++)this.words[k]-=67108864,k===this.length-1?this.words[k+1]=1:this.words[k+1]++;return this.length=Math.max(this.length,k+1),this},U.prototype.isubn=function(j){if(G(typeof j=="number"),G(j<67108864),j<0)return this.iaddn(-j);if(this.negative!==0)return this.negative=0,this.iaddn(j),this.negative=1,this;if(this.words[0]-=j,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var k=0;k>26)-(y/67108864|0),this.words[N+g]=x&67108863}for(;N>26,this.words[N+g]=x&67108863;if(B===0)return this.strip();for(G(B===-1),B=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},U.prototype._wordDiv=function(j,k){var g=this.length-j.length,_=this.clone(),N=j,x=N.words[N.length-1]|0,B=this._countBits(x);g=26-B,g!==0&&(N=N.ushln(g),_.iushln(g),x=N.words[N.length-1]|0);var y=_.length-N.length,w;if(k!=="mod"){w=new U(null),w.length=y+1,w.words=new Array(w.length);for(var p=0;p=0;c--){var h=(_.words[N.length+c]|0)*67108864+(_.words[N.length+c-1]|0);for(h=Math.min(h/x|0,67108863),_._ishlnsubmul(N,h,c);_.negative!==0;)h--,_.negative=0,_._ishlnsubmul(N,1,c),_.isZero()||(_.negative^=1);w&&(w.words[c]=h)}return w&&w.strip(),_.strip(),k!=="div"&&g!==0&&_.iushrn(g),{div:w||null,mod:_}},U.prototype.divmod=function(j,k,g){if(G(!j.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var _,N,x;return this.negative!==0&&j.negative===0?(x=this.neg().divmod(j,k),k!=="mod"&&(_=x.div.neg()),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.iadd(j)),{div:_,mod:N}):this.negative===0&&j.negative!==0?(x=this.divmod(j.neg(),k),k!=="mod"&&(_=x.div.neg()),{div:_,mod:x.mod}):(this.negative&j.negative)!==0?(x=this.neg().divmod(j.neg(),k),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.isub(j)),{div:x.div,mod:N}):j.length>this.length||this.cmp(j)<0?{div:new U(0),mod:this}:j.length===1?k==="div"?{div:this.divn(j.words[0]),mod:null}:k==="mod"?{div:null,mod:new U(this.modn(j.words[0]))}:{div:this.divn(j.words[0]),mod:new U(this.modn(j.words[0]))}:this._wordDiv(j,k)},U.prototype.div=function(j){return this.divmod(j,"div",!1).div},U.prototype.mod=function(j){return this.divmod(j,"mod",!1).mod},U.prototype.umod=function(j){return this.divmod(j,"mod",!0).mod},U.prototype.divRound=function(j){var k=this.divmod(j);if(k.mod.isZero())return k.div;var g=k.div.negative!==0?k.mod.isub(j):k.mod,_=j.ushrn(1),N=j.andln(1),x=g.cmp(_);return x<0||N===1&&x===0?k.div:k.div.negative!==0?k.div.isubn(1):k.div.iaddn(1)},U.prototype.modn=function(j){G(j<=67108863);for(var k=(1<<26)%j,g=0,_=this.length-1;_>=0;_--)g=(k*g+(this.words[_]|0))%j;return g},U.prototype.idivn=function(j){G(j<=67108863);for(var k=0,g=this.length-1;g>=0;g--){var _=(this.words[g]|0)+k*67108864;this.words[g]=_/j|0,k=_%j}return this.strip()},U.prototype.divn=function(j){return this.clone().idivn(j)},U.prototype.egcd=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=new U(0),B=new U(1),y=0;k.isEven()&&g.isEven();)k.iushrn(1),g.iushrn(1),++y;for(var w=g.clone(),p=k.clone();!k.isZero();){for(var f=0,c=1;(k.words[0]&c)===0&&f<26;++f,c<<=1);if(f>0)for(k.iushrn(f);f-- >0;)(_.isOdd()||N.isOdd())&&(_.iadd(w),N.isub(p)),_.iushrn(1),N.iushrn(1);for(var h=0,d=1;(g.words[0]&d)===0&&h<26;++h,d<<=1);if(h>0)for(g.iushrn(h);h-- >0;)(x.isOdd()||B.isOdd())&&(x.iadd(w),B.isub(p)),x.iushrn(1),B.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(x),N.isub(B)):(g.isub(k),x.isub(_),B.isub(N))}return{a:x,b:B,gcd:g.iushln(y)}},U.prototype._invmp=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=g.clone();k.cmpn(1)>0&&g.cmpn(1)>0;){for(var B=0,y=1;(k.words[0]&y)===0&&B<26;++B,y<<=1);if(B>0)for(k.iushrn(B);B-- >0;)_.isOdd()&&_.iadd(x),_.iushrn(1);for(var w=0,p=1;(g.words[0]&p)===0&&w<26;++w,p<<=1);if(w>0)for(g.iushrn(w);w-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(N)):(g.isub(k),N.isub(_))}var f;return k.cmpn(1)===0?f=_:f=N,f.cmpn(0)<0&&f.iadd(j),f},U.prototype.gcd=function(j){if(this.isZero())return j.abs();if(j.isZero())return this.abs();var k=this.clone(),g=j.clone();k.negative=0,g.negative=0;for(var _=0;k.isEven()&&g.isEven();_++)k.iushrn(1),g.iushrn(1);do{for(;k.isEven();)k.iushrn(1);for(;g.isEven();)g.iushrn(1);var N=k.cmp(g);if(N<0){var x=k;k=g,g=x}else if(N===0||g.cmpn(1)===0)break;k.isub(g)}while(!0);return g.iushln(_)},U.prototype.invm=function(j){return this.egcd(j).a.umod(j)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(j){return this.words[0]&j},U.prototype.bincn=function(j){G(typeof j=="number");var k=j%26,g=(j-k)/26,_=1<>>26,B&=67108863,this.words[x]=B}return N!==0&&(this.words[x]=N,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(j){var k=j<0;if(this.negative!==0&&!k)return-1;if(this.negative===0&&k)return 1;this.strip();var g;if(this.length>1)g=1;else{k&&(j=-j),G(j<=67108863,"Number is too big");var _=this.words[0]|0;g=_===j?0:_j.length)return 1;if(this.length=0;g--){var _=this.words[g]|0,N=j.words[g]|0;if(_!==N){_N&&(k=1);break}}return k},U.prototype.gtn=function(j){return this.cmpn(j)===1},U.prototype.gt=function(j){return this.cmp(j)===1},U.prototype.gten=function(j){return this.cmpn(j)>=0},U.prototype.gte=function(j){return this.cmp(j)>=0},U.prototype.ltn=function(j){return this.cmpn(j)===-1},U.prototype.lt=function(j){return this.cmp(j)===-1},U.prototype.lten=function(j){return this.cmpn(j)<=0},U.prototype.lte=function(j){return this.cmp(j)<=0},U.prototype.eqn=function(j){return this.cmpn(j)===0},U.prototype.eq=function(j){return this.cmp(j)===0},U.red=function(j){return new v(j)},U.prototype.toRed=function(j){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),j.convertTo(this)._forceRed(j)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(j){return this.red=j,this},U.prototype.forceRed=function(j){return G(!this.red,"Already a number in reduction context"),this._forceRed(j)},U.prototype.redAdd=function(j){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,j)},U.prototype.redIAdd=function(j){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,j)},U.prototype.redSub=function(j){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,j)},U.prototype.redISub=function(j){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,j)},U.prototype.redShl=function(j){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,j)},U.prototype.redMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.mul(this,j)},U.prototype.redIMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.imul(this,j)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(j){return G(this.red&&!j.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,j)};var L={k256:null,p224:null,p192:null,p25519:null};function R(j,k){this.name=j,this.p=new U(k,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}R.prototype._tmp=function(){var j=new U(null);return j.words=new Array(Math.ceil(this.n/13)),j},R.prototype.ireduce=function(j){var k=j,g;do this.split(k,this.tmp),k=this.imulK(k),k=k.iadd(this.tmp),g=k.bitLength();while(g>this.n);var _=g0?k.isub(this.p):k.strip!==void 0?k.strip():k._strip(),k},R.prototype.split=function(j,k){j.iushrn(this.n,0,k)},R.prototype.imulK=function(j){return j.imul(this.k)};function P(){R.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(P,R),P.prototype.split=function(j,k){for(var g=4194303,_=Math.min(j.length,9),N=0;N<_;N++)k.words[N]=j.words[N];if(k.length=_,j.length<=9){j.words[0]=0,j.length=1;return}var x=j.words[9];for(k.words[k.length++]=x&g,N=10;N>>22,x=B}x>>>=22,j.words[N-10]=x,x===0&&j.length>10?j.length-=10:j.length-=9},P.prototype.imulK=function(j){j.words[j.length]=0,j.words[j.length+1]=0,j.length+=2;for(var k=0,g=0;g>>=26,j.words[g]=N,k=_}return k!==0&&(j.words[j.length++]=k),j},U._prime=function(j){if(L[j])return L[j];var k;if(j==="k256")k=new P;else if(j==="p224")k=new z;else if(j==="p192")k=new M;else if(j==="p25519")k=new S;else throw new Error("Unknown prime "+j);return L[j]=k,k};function v(j){if(typeof j=="string"){var k=U._prime(j);this.m=k.p,this.prime=k}else G(j.gtn(1),"modulus must be greater than 1"),this.m=j,this.prime=null}v.prototype._verify1=function(j){G(j.negative===0,"red works only with positives"),G(j.red,"red works only with red numbers")},v.prototype._verify2=function(j,k){G((j.negative|k.negative)===0,"red works only with positives"),G(j.red&&j.red===k.red,"red works only with red numbers")},v.prototype.imod=function(j){return this.prime?this.prime.ireduce(j)._forceRed(this):j.umod(this.m)._forceRed(this)},v.prototype.neg=function(j){return j.isZero()?j.clone():this.m.sub(j)._forceRed(this)},v.prototype.add=function(j,k){this._verify2(j,k);var g=j.add(k);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},v.prototype.iadd=function(j,k){this._verify2(j,k);var g=j.iadd(k);return g.cmp(this.m)>=0&&g.isub(this.m),g},v.prototype.sub=function(j,k){this._verify2(j,k);var g=j.sub(k);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},v.prototype.isub=function(j,k){this._verify2(j,k);var g=j.isub(k);return g.cmpn(0)<0&&g.iadd(this.m),g},v.prototype.shl=function(j,k){return this._verify1(j),this.imod(j.ushln(k))},v.prototype.imul=function(j,k){return this._verify2(j,k),this.imod(j.imul(k))},v.prototype.mul=function(j,k){return this._verify2(j,k),this.imod(j.mul(k))},v.prototype.isqr=function(j){return this.imul(j,j.clone())},v.prototype.sqr=function(j){return this.mul(j,j)},v.prototype.sqrt=function(j){if(j.isZero())return j.clone();var k=this.m.andln(3);if(G(k%2===1),k===3){var g=this.m.add(new U(1)).iushrn(2);return this.pow(j,g)}for(var _=this.m.subn(1),N=0;!_.isZero()&&_.andln(1)===0;)N++,_.iushrn(1);G(!_.isZero());var x=new U(1).toRed(this),B=x.redNeg(),y=this.m.subn(1).iushrn(1),w=this.m.bitLength();for(w=new U(2*w*w).toRed(this);this.pow(w,y).cmp(B)!==0;)w.redIAdd(B);for(var p=this.pow(w,_),f=this.pow(j,_.addn(1).iushrn(1)),c=this.pow(j,_),h=N;c.cmp(x)!==0;){for(var d=c,b=0;d.cmp(x)!==0;b++)d=d.redSqr();G(b=0;N--){for(var p=k.words[N],f=w-1;f>=0;f--){var c=p>>f&1;if(x!==_[0]&&(x=this.sqr(x)),c===0&&B===0){y=0;continue}B<<=1,B|=c,y++,!(y!==g&&(N!==0||f!==0))&&(x=this.mul(x,_[B]),y=0,B=0)}w=26}return x},v.prototype.convertTo=function(j){var k=j.umod(this.m);return k===j?k.clone():k},v.prototype.convertFrom=function(j){var k=j.clone();return k.red=null,k},U.mont=function(j){return new q(j)};function q(j){v.call(this,j),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(q,v),q.prototype.convertTo=function(j){return this.imod(j.ushln(this.shift))},q.prototype.convertFrom=function(j){var k=this.imod(j.mul(this.rinv));return k.red=null,k},q.prototype.imul=function(j,k){if(j.isZero()||k.isZero())return j.words[0]=0,j.length=1,j;var g=j.imul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.mul=function(j,k){if(j.isZero()||k.isZero())return new U(0)._forceRed(this);var g=j.mul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.invm=function(j){var k=this.imod(j._invmp(this.m).mul(this.r2));return k._forceRed(this)}})(typeof Q>"u"||Q,$)}}),CY=q$({"node_modules/safer-buffer/safer.js"($,Q){var Y=M$,Z=F$,G={},V;for(V in Y)!Y.hasOwnProperty(V)||V==="SlowBuffer"||V==="Buffer"||(G[V]=Y[V]);var U=G.Buffer={};for(V in Z)!Z.hasOwnProperty(V)||V==="allocUnsafe"||V==="allocUnsafeSlow"||(U[V]=Z[V]);if(G.Buffer.prototype=Z.prototype,(!U.from||U.from===Uint8Array.from)&&(U.from=function(X,K,I){if(typeof X=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof X);if(X&&typeof X.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof X);return Z(X,K,I)}),U.alloc||(U.alloc=function(X,K,I){if(typeof X!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof X);if(X<0||X>=2*(1<<30))throw new RangeError('The value "'+X+'" is invalid for option "size"');var O=Z(X);return!K||K.length===0?O.fill(0):typeof I=="string"?O.fill(K,I):O.fill(K),O}),!G.kStringMaxLength)try{G.kStringMaxLength=S$}catch{}G.constants||(G.constants={MAX_LENGTH:G.kMaxLength},G.kStringMaxLength&&(G.constants.MAX_STRING_LENGTH=G.kStringMaxLength)),Q.exports=G}}),LY=q$({"node_modules/asn1.js/lib/asn1/base/reporter.js"($){var Q=_$();function Y(G){this._reporterState={obj:null,path:[],options:G||{},errors:[]}}$.Reporter=Y,Y.prototype.isError=function(G){return G instanceof Z},Y.prototype.save=function(){let G=this._reporterState;return{obj:G.obj,pathLen:G.path.length}},Y.prototype.restore=function(G){let V=this._reporterState;V.obj=G.obj,V.path=V.path.slice(0,G.pathLen)},Y.prototype.enterKey=function(G){return this._reporterState.path.push(G)},Y.prototype.exitKey=function(G){let V=this._reporterState;V.path=V.path.slice(0,G-1)},Y.prototype.leaveKey=function(G,V,U){let X=this._reporterState;this.exitKey(G),X.obj!==null&&(X.obj[V]=U)},Y.prototype.path=function(){return this._reporterState.path.join("/")},Y.prototype.enterObject=function(){let G=this._reporterState,V=G.obj;return G.obj={},V},Y.prototype.leaveObject=function(G){let V=this._reporterState,U=V.obj;return V.obj=G,U},Y.prototype.error=function(G){let V,U=this._reporterState,X=G instanceof Z;if(X?V=G:V=new Z(U.path.map(function(K){return"["+JSON.stringify(K)+"]"}).join(""),G.message||G,G.stack),!U.options.partial)throw V;return X||U.errors.push(V),V},Y.prototype.wrapResult=function(G){let V=this._reporterState;return V.options.partial?{result:this.isError(G)?null:G,errors:V.errors}:G};function Z(G,V){this.path=G,this.rethrow(V)}Q(Z,Error),Z.prototype.rethrow=function(G){if(this.message=G+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,Z),!this.stack)try{throw new Error(this.message)}catch(V){this.stack=V.stack}return this}}}),E$=q$({"node_modules/asn1.js/lib/asn1/base/buffer.js"($){var Q=_$(),Y=LY().Reporter,Z=CY().Buffer;function G(U,X){if(Y.call(this,X),!Z.isBuffer(U)){this.error("Input not Buffer");return}this.base=U,this.offset=0,this.length=U.length}Q(G,Y),$.DecoderBuffer=G,G.isDecoderBuffer=function(U){return U instanceof G?!0:typeof U=="object"&&Z.isBuffer(U.base)&&U.constructor.name==="DecoderBuffer"&&typeof U.offset=="number"&&typeof U.length=="number"&&typeof U.save=="function"&&typeof U.restore=="function"&&typeof U.isEmpty=="function"&&typeof U.readUInt8=="function"&&typeof U.skip=="function"&&typeof U.raw=="function"},G.prototype.save=function(){return{offset:this.offset,reporter:Y.prototype.save.call(this)}},G.prototype.restore=function(U){let X=new G(this.base);return X.offset=U.offset,X.length=this.offset,this.offset=U.offset,Y.prototype.restore.call(this,U.reporter),X},G.prototype.isEmpty=function(){return this.offset===this.length},G.prototype.readUInt8=function(U){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(U||"DecoderBuffer overrun")},G.prototype.skip=function(U,X){if(!(this.offset+U<=this.length))return this.error(X||"DecoderBuffer overrun");let K=new G(this.base);return K._reporterState=this._reporterState,K.offset=this.offset,K.length=this.offset+U,this.offset+=U,K},G.prototype.raw=function(U){return this.base.slice(U?U.offset:this.offset,this.length)};function V(U,X){if(Array.isArray(U))this.length=0,this.value=U.map(function(K){return V.isEncoderBuffer(K)||(K=new V(K,X)),this.length+=K.length,K},this);else if(typeof U=="number"){if(!(0<=U&&U<=255))return X.error("non-byte EncoderBuffer value");this.value=U,this.length=1}else if(typeof U=="string")this.value=U,this.length=Z.byteLength(U);else if(Z.isBuffer(U))this.value=U,this.length=U.length;else return X.error("Unsupported type: "+typeof U)}$.EncoderBuffer=V,V.isEncoderBuffer=function(U){return U instanceof V?!0:typeof U=="object"&&U.constructor.name==="EncoderBuffer"&&typeof U.length=="number"&&typeof U.join=="function"},V.prototype.join=function(U,X){return U||(U=Z.alloc(this.length)),X||(X=0),this.length===0||(Array.isArray(this.value)?this.value.forEach(function(K){K.join(U,X),X+=K.length}):(typeof this.value=="number"?U[X]=this.value:typeof this.value=="string"?U.write(this.value,X):Z.isBuffer(this.value)&&this.value.copy(U,X),X+=this.length)),U}}}),RY=q$({"node_modules/asn1.js/lib/asn1/base/node.js"($,Q){var Y=LY().Reporter,Z=E$().EncoderBuffer,G=E$().DecoderBuffer,V=ZQ(),U=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],X=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(U),K=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];function I(J,F,A){let H={};this._baseState=H,H.name=A,H.enc=J,H.parent=F||null,H.children=null,H.tag=null,H.args=null,H.reverseArgs=null,H.choice=null,H.optional=!1,H.any=!1,H.obj=!1,H.use=null,H.useDecoder=null,H.key=null,H.default=null,H.explicit=null,H.implicit=null,H.contains=null,H.parent||(H.children=[],this._wrap())}Q.exports=I;var O=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];I.prototype.clone=function(){let J=this._baseState,F={};O.forEach(function(H){F[H]=J[H]});let A=new this.constructor(F.parent);return A._baseState=F,A},I.prototype._wrap=function(){let J=this._baseState;X.forEach(function(F){this[F]=function(){let A=new this.constructor(this);return J.children.push(A),A[F].apply(A,arguments)}},this)},I.prototype._init=function(J){let F=this._baseState;V(F.parent===null),J.call(this),F.children=F.children.filter(function(A){return A._baseState.parent===this},this),V.equal(F.children.length,1,"Root node can have only one child")},I.prototype._useArgs=function(J){let F=this._baseState,A=J.filter(function(H){return H instanceof this.constructor},this);J=J.filter(function(H){return!(H instanceof this.constructor)},this),A.length!==0&&(V(F.children===null),F.children=A,A.forEach(function(H){H._baseState.parent=this},this)),J.length!==0&&(V(F.args===null),F.args=J,F.reverseArgs=J.map(function(H){if(typeof H!="object"||H.constructor!==Object)return H;let W={};return Object.keys(H).forEach(function(E){E==(E|0)&&(E|=0);let T=H[E];W[T]=E}),W}))},K.forEach(function(J){I.prototype[J]=function(){let F=this._baseState;throw new Error(J+" not implemented for encoding: "+F.enc)}}),U.forEach(function(J){I.prototype[J]=function(){let F=this._baseState,A=Array.prototype.slice.call(arguments);return V(F.tag===null),F.tag=J,this._useArgs(A),this}}),I.prototype.use=function(J){V(J);let F=this._baseState;return V(F.use===null),F.use=J,this},I.prototype.optional=function(){let J=this._baseState;return J.optional=!0,this},I.prototype.def=function(J){let F=this._baseState;return V(F.default===null),F.default=J,F.optional=!0,this},I.prototype.explicit=function(J){let F=this._baseState;return V(F.explicit===null&&F.implicit===null),F.explicit=J,this},I.prototype.implicit=function(J){let F=this._baseState;return V(F.explicit===null&&F.implicit===null),F.implicit=J,this},I.prototype.obj=function(){let J=this._baseState,F=Array.prototype.slice.call(arguments);return J.obj=!0,F.length!==0&&this._useArgs(F),this},I.prototype.key=function(J){let F=this._baseState;return V(F.key===null),F.key=J,this},I.prototype.any=function(){let J=this._baseState;return J.any=!0,this},I.prototype.choice=function(J){let F=this._baseState;return V(F.choice===null),F.choice=J,this._useArgs(Object.keys(J).map(function(A){return J[A]})),this},I.prototype.contains=function(J){let F=this._baseState;return V(F.use===null),F.contains=J,this},I.prototype._decode=function(J,F){let A=this._baseState;if(A.parent===null)return J.wrapResult(A.children[0]._decode(J,F));let H=A.default,W=!0,E=null;if(A.key!==null&&(E=J.enterKey(A.key)),A.optional){let D=null;if(A.explicit!==null?D=A.explicit:A.implicit!==null?D=A.implicit:A.tag!==null&&(D=A.tag),D===null&&!A.any){let C=J.save();try{A.choice===null?this._decodeGeneric(A.tag,J,F):this._decodeChoice(J,F),W=!0}catch{W=!1}J.restore(C)}else if(W=this._peekTag(J,D,A.any),J.isError(W))return W}let T;if(A.obj&&W&&(T=J.enterObject()),W){if(A.explicit!==null){let C=this._decodeTag(J,A.explicit);if(J.isError(C))return C;J=C}let D=J.offset;if(A.use===null&&A.choice===null){let C;A.any&&(C=J.save());let L=this._decodeTag(J,A.implicit!==null?A.implicit:A.tag,A.any);if(J.isError(L))return L;A.any?H=J.raw(C):J=L}if(F&&F.track&&A.tag!==null&&F.track(J.path(),D,J.length,"tagged"),F&&F.track&&A.tag!==null&&F.track(J.path(),J.offset,J.length,"content"),A.any||(A.choice===null?H=this._decodeGeneric(A.tag,J,F):H=this._decodeChoice(J,F)),J.isError(H))return H;if(!A.any&&A.choice===null&&A.children!==null&&A.children.forEach(function(C){C._decode(J,F)}),A.contains&&(A.tag==="octstr"||A.tag==="bitstr")){let C=new G(H);H=this._getUse(A.contains,J._reporterState.obj)._decode(C,F)}}return A.obj&&W&&(H=J.leaveObject(T)),A.key!==null&&(H!==null||W===!0)?J.leaveKey(E,A.key,H):E!==null&&J.exitKey(E),H},I.prototype._decodeGeneric=function(J,F,A){let H=this._baseState;return J==="seq"||J==="set"?null:J==="seqof"||J==="setof"?this._decodeList(F,J,H.args[0],A):/str$/.test(J)?this._decodeStr(F,J,A):J==="objid"&&H.args?this._decodeObjid(F,H.args[0],H.args[1],A):J==="objid"?this._decodeObjid(F,null,null,A):J==="gentime"||J==="utctime"?this._decodeTime(F,J,A):J==="null_"?this._decodeNull(F,A):J==="bool"?this._decodeBool(F,A):J==="objDesc"?this._decodeStr(F,J,A):J==="int"||J==="enum"?this._decodeInt(F,H.args&&H.args[0],A):H.use!==null?this._getUse(H.use,F._reporterState.obj)._decode(F,A):F.error("unknown tag: "+J)},I.prototype._getUse=function(J,F){let A=this._baseState;return A.useDecoder=this._use(J,F),V(A.useDecoder._baseState.parent===null),A.useDecoder=A.useDecoder._baseState.children[0],A.implicit!==A.useDecoder._baseState.implicit&&(A.useDecoder=A.useDecoder.clone(),A.useDecoder._baseState.implicit=A.implicit),A.useDecoder},I.prototype._decodeChoice=function(J,F){let A=this._baseState,H=null,W=!1;return Object.keys(A.choice).some(function(E){let T=J.save(),D=A.choice[E];try{let C=D._decode(J,F);if(J.isError(C))return!1;H={type:E,value:C},W=!0}catch{return J.restore(T),!1}return!0},this),W?H:J.error("Choice not matched")},I.prototype._createEncoderBuffer=function(J){return new Z(J,this.reporter)},I.prototype._encode=function(J,F,A){let H=this._baseState;if(H.default!==null&&H.default===J)return;let W=this._encodeValue(J,F,A);if(W!==void 0&&!this._skipDefault(W,F,A))return W},I.prototype._encodeValue=function(J,F,A){let H=this._baseState;if(H.parent===null)return H.children[0]._encode(J,F||new Y);let W=null;if(this.reporter=F,H.optional&&J===void 0)if(H.default!==null)J=H.default;else return;let E=null,T=!1;if(H.any)W=this._createEncoderBuffer(J);else if(H.choice)W=this._encodeChoice(J,F);else if(H.contains)E=this._getUse(H.contains,A)._encode(J,F),T=!0;else if(H.children)E=H.children.map(function(D){if(D._baseState.tag==="null_")return D._encode(null,F,J);if(D._baseState.key===null)return F.error("Child should have a key");let C=F.enterKey(D._baseState.key);if(typeof J!="object")return F.error("Child expected, but input is not object");let L=D._encode(J[D._baseState.key],F,J);return F.leaveKey(C),L},this).filter(function(D){return D}),E=this._createEncoderBuffer(E);else if(H.tag==="seqof"||H.tag==="setof"){if(!(H.args&&H.args.length===1))return F.error("Too many args for : "+H.tag);if(!Array.isArray(J))return F.error("seqof/setof, but data is not Array");let D=this.clone();D._baseState.implicit=null,E=this._createEncoderBuffer(J.map(function(C){let L=this._baseState;return this._getUse(L.args[0],J)._encode(C,F)},D))}else H.use!==null?W=this._getUse(H.use,A)._encode(J,F):(E=this._encodePrimitive(H.tag,J),T=!0);if(!H.any&&H.choice===null){let D=H.implicit!==null?H.implicit:H.tag,C=H.implicit===null?"universal":"context";D===null?H.use===null&&F.error("Tag could be omitted only for .use()"):H.use===null&&(W=this._encodeComposite(D,T,C,E))}return H.explicit!==null&&(W=this._encodeComposite(H.explicit,!1,"context",W)),W},I.prototype._encodeChoice=function(J,F){let A=this._baseState,H=A.choice[J.type];return H||V(!1,J.type+" not found in "+JSON.stringify(Object.keys(A.choice))),H._encode(J.value,F)},I.prototype._encodePrimitive=function(J,F){let A=this._baseState;if(/str$/.test(J))return this._encodeStr(F,J);if(J==="objid"&&A.args)return this._encodeObjid(F,A.reverseArgs[0],A.args[1]);if(J==="objid")return this._encodeObjid(F,null,null);if(J==="gentime"||J==="utctime")return this._encodeTime(F,J);if(J==="null_")return this._encodeNull();if(J==="int"||J==="enum")return this._encodeInt(F,A.args&&A.reverseArgs[0]);if(J==="bool")return this._encodeBool(F);if(J==="objDesc")return this._encodeStr(F,J);throw new Error("Unsupported tag: "+J)},I.prototype._isNumstr=function(J){return/^[0-9 ]*$/.test(J)},I.prototype._isPrintstr=function(J){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(J)}}}),PY=q$({"node_modules/asn1.js/lib/asn1/constants/der.js"($){function Q(Y){let Z={};return Object.keys(Y).forEach(function(G){(G|0)==G&&(G=G|0);let V=Y[G];Z[V]=G}),Z}$.tagClass={0:"universal",1:"application",2:"context",3:"private"},$.tagClassByName=Q($.tagClass),$.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},$.tagByName=Q($.tag)}}),zY=q$({"node_modules/asn1.js/lib/asn1/encoders/der.js"($,Q){var Y=_$(),Z=CY().Buffer,G=RY(),V=PY();function U(O){this.enc="der",this.name=O.name,this.entity=O,this.tree=new X,this.tree._init(O.body)}Q.exports=U,U.prototype.encode=function(O,J){return this.tree._encode(O,J).join()};function X(O){G.call(this,"der",O)}Y(X,G),X.prototype._encodeComposite=function(O,J,F,A){let H=I(O,J,F,this.reporter);if(A.length<128){let T=Z.alloc(2);return T[0]=H,T[1]=A.length,this._createEncoderBuffer([T,A])}let W=1;for(let T=A.length;T>=256;T>>=8)W++;let E=Z.alloc(2+W);E[0]=H,E[1]=128|W;for(let T=1+W,D=A.length;D>0;T--,D>>=8)E[T]=D&255;return this._createEncoderBuffer([E,A])},X.prototype._encodeStr=function(O,J){if(J==="bitstr")return this._createEncoderBuffer([O.unused|0,O.data]);if(J==="bmpstr"){let F=Z.alloc(O.length*2);for(let A=0;A=40)return this.reporter.error("Second objid identifier OOB");O.splice(0,2,O[0]*40+O[1])}let A=0;for(let E=0;E=128;T>>=7)A++}let H=Z.alloc(A),W=H.length-1;for(let E=O.length-1;E>=0;E--){let T=O[E];for(H[W--]=T&127;(T>>=7)>0;)H[W--]=128|T&127}return this._createEncoderBuffer(H)};function K(O){return O<10?"0"+O:O}X.prototype._encodeTime=function(O,J){let F,A=new Date(O);return J==="gentime"?F=[K(A.getUTCFullYear()),K(A.getUTCMonth()+1),K(A.getUTCDate()),K(A.getUTCHours()),K(A.getUTCMinutes()),K(A.getUTCSeconds()),"Z"].join(""):J==="utctime"?F=[K(A.getUTCFullYear()%100),K(A.getUTCMonth()+1),K(A.getUTCDate()),K(A.getUTCHours()),K(A.getUTCMinutes()),K(A.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+J+" time is not supported yet"),this._encodeStr(F,"octstr")},X.prototype._encodeNull=function(){return this._createEncoderBuffer("")},X.prototype._encodeInt=function(O,J){if(typeof O=="string"){if(!J)return this.reporter.error("String int or enum given, but no values map");if(!J.hasOwnProperty(O))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(O));O=J[O]}if(typeof O!="number"&&!Z.isBuffer(O)){let H=O.toArray();!O.sign&&H[0]&128&&H.unshift(0),O=Z.from(H)}if(Z.isBuffer(O)){let H=O.length;O.length===0&&H++;let W=Z.alloc(H);return O.copy(W),O.length===0&&(W[0]=0),this._createEncoderBuffer(W)}if(O<128)return this._createEncoderBuffer(O);if(O<256)return this._createEncoderBuffer([0,O]);let F=1;for(let H=O;H>=256;H>>=8)F++;let A=new Array(F);for(let H=A.length-1;H>=0;H--)A[H]=O&255,O>>=8;return A[0]&128&&A.unshift(0),this._createEncoderBuffer(Z.from(A))},X.prototype._encodeBool=function(O){return this._createEncoderBuffer(O?255:0)},X.prototype._use=function(O,J){return typeof O=="function"&&(O=O(J)),O._getEncoder("der").tree},X.prototype._skipDefault=function(O,J,F){let A=this._baseState,H;if(A.default===null)return!1;let W=O.join();if(A.defaultBuffer===void 0&&(A.defaultBuffer=this._encodeValue(A.default,J,F).join()),W.length!==A.defaultBuffer.length)return!1;for(H=0;H=31?A.error("Multi-octet tag encoding unsupported"):(J||(H|=32),H|=V.tagClassByName[F||"universal"]<<6,H)}}}),MY=q$({"node_modules/asn1.js/lib/asn1/encoders/pem.js"($,Q){var Y=_$(),Z=zY();function G(V){Z.call(this,V),this.enc="pem"}Y(G,Z),Q.exports=G,G.prototype.encode=function(V,U){let X=Z.prototype.encode.call(this,V).toString("base64"),K=["-----BEGIN "+U.label+"-----"];for(let I=0;I>6],W=(A&32)===0;if((A&31)===31){let T=A;for(A=0;(T&128)===128;){if(T=J.readUInt8(F),J.isError(T))return T;A<<=7,A|=T&127}}else A&=31;let E=U.tag[A];return{cls:H,primitive:W,tag:A,tagStr:E}}function O(J,F,A){let H=J.readUInt8(A);if(J.isError(H))return H;if(!F&&H===128)return null;if((H&128)===0)return H;let W=H&127;if(W>4)return J.error("length octect is too long");H=0;for(let E=0;E0&&L.ishrn(R),L}function W(D,C){D=H(D,C),D=D.mod(C);var L=Y.from(D.toArray());if(L.length=F)throw new Error("invalid sig")}Q.exports=X}}),dY=q$({"node_modules/browserify-sign/browser/index.js"($,Q){var Y=k$().Buffer,Z=o$(),G=_$(),V=cY(),U=hY(),X=t$();Object.keys(X).forEach(function(F){X[F].id=Y.from(X[F].id,"hex"),X[F.toLowerCase()]=X[F]});function K(F){A$.Writable.call(this);var A=X[F];if(!A)throw new Error("Unknown message digest");this._hashType=A.hash,this._hash=Z(A.hash),this._tag=A.id,this._signType=A.sign}G(K,A$.Writable),K.prototype._write=function(F,A,H){this._hash.update(F),H()},K.prototype.update=function(F,A){return typeof F=="string"&&(F=Y.from(F,A)),this._hash.update(F),this},K.prototype.sign=function(F,A){this.end();var H=this._hash.digest(),W=V(H,F,this._hashType,this._signType,this._tag);return A?W.toString(A):W};function I(F){A$.Writable.call(this);var A=X[F];if(!A)throw new Error("Unknown message digest");this._hash=Z(A.hash),this._tag=A.id,this._signType=A.sign}G(I,A$.Writable),I.prototype._write=function(F,A,H){this._hash.update(F),H()},I.prototype.update=function(F,A){return typeof F=="string"&&(F=Y.from(F,A)),this._hash.update(F),this},I.prototype.verify=function(F,A,H){typeof A=="string"&&(A=Y.from(A,H)),this.end();var W=this._hash.digest();return U(A,W,F,this._signType,this._tag)};function O(F){return new K(F)}function J(F){return new I(F)}Q.exports={Sign:O,Verify:J,createSign:O,createVerify:J}}}),bY=q$({"node_modules/create-ecdh/node_modules/bn.js/lib/bn.js"($,Q){(function(Y,Z){function G(j,k){if(!j)throw new Error(k||"Assertion failed")}function V(j,k){j.super_=k;var g=function(){};g.prototype=k.prototype,j.prototype=new g,j.prototype.constructor=j}function U(j,k,g){if(U.isBN(j))return j;this.negative=0,this.words=null,this.length=0,this.red=null,j!==null&&((k==="le"||k==="be")&&(g=k,k=10),this._init(j||0,k||10,g||"be"))}typeof Y=="object"?Y.exports=U:Z.BN=U,U.BN=U,U.wordSize=26;var X=F$;U.isBN=function(j){return j instanceof U?!0:j!==null&&typeof j=="object"&&j.constructor.wordSize===U.wordSize&&Array.isArray(j.words)},U.max=function(j,k){return j.cmp(k)>0?j:k},U.min=function(j,k){return j.cmp(k)<0?j:k},U.prototype._init=function(j,k,g){if(typeof j=="number")return this._initNumber(j,k,g);if(typeof j=="object")return this._initArray(j,k,g);k==="hex"&&(k=16),G(k===(k|0)&&k>=2&&k<=36),j=j.toString().replace(/\s+/g,"");var _=0;j[0]==="-"&&(_++,this.negative=1),_=0;_-=3)x=j[_]|j[_-1]<<8|j[_-2]<<16,this.words[N]|=x<>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);else if(g==="le")for(_=0,N=0;_>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);return this.strip()};function K(j,k){var g=j.charCodeAt(k);return g>=65&&g<=70?g-55:g>=97&&g<=102?g-87:g-48&15}function I(j,k,g){var _=K(j,g);return g-1>=k&&(_|=K(j,g-1)<<4),_}U.prototype._parseHex=function(j,k,g){this.length=Math.ceil((j.length-k)/6),this.words=new Array(this.length);for(var _=0;_=k;_-=2)B=I(j,k,_)<=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8;else{var y=j.length-k;for(_=y%2===0?k+1:k;_=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8}this.strip()};function O(j,k,g,_){for(var N=0,x=Math.min(j.length,g),B=k;B=49?N+=y-49+10:y>=17?N+=y-17+10:N+=y}return N}U.prototype._parseBase=function(j,k,g){this.words=[0],this.length=1;for(var _=0,N=1;N<=67108863;N*=k)_++;_--,N=N/k|0;for(var x=j.length-g,B=x%_,y=Math.min(x,x-B)+g,w=0,p=g;p1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},U.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],F=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],A=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(j,k){j=j||10,k=k|0||1;var g;if(j===16||j==="hex"){g="";for(var _=0,N=0,x=0;x>>24-_&16777215,N!==0||x!==this.length-1?g=J[6-y.length]+y+g:g=y+g,_+=2,_>=26&&(_-=26,x--)}for(N!==0&&(g=N.toString(16)+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(j===(j|0)&&j>=2&&j<=36){var w=F[j],p=A[j];g="";var f=this.clone();for(f.negative=0;!f.isZero();){var c=f.modn(p).toString(j);f=f.idivn(p),f.isZero()?g=c+g:g=J[w-c.length]+c+g}for(this.isZero()&&(g="0"+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var j=this.words[0];return this.length===2?j+=this.words[1]*67108864:this.length===3&&this.words[2]===1?j+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-j:j},U.prototype.toJSON=function(){return this.toString(16)},U.prototype.toBuffer=function(j,k){return G(typeof X<"u"),this.toArrayLike(X,j,k)},U.prototype.toArray=function(j,k){return this.toArrayLike(Array,j,k)},U.prototype.toArrayLike=function(j,k,g){var _=this.byteLength(),N=g||Math.max(1,_);G(_<=N,"byte array longer than desired length"),G(N>0,"Requested array length <= 0"),this.strip();var x=k==="le",B=new j(N),y,w,p=this.clone();if(x){for(w=0;!p.isZero();w++)y=p.andln(255),p.iushrn(8),B[w]=y;for(;w=4096&&(g+=13,k>>>=13),k>=64&&(g+=7,k>>>=7),k>=8&&(g+=4,k>>>=4),k>=2&&(g+=2,k>>>=2),g+k},U.prototype._zeroBits=function(j){if(j===0)return 26;var k=j,g=0;return(k&8191)===0&&(g+=13,k>>>=13),(k&127)===0&&(g+=7,k>>>=7),(k&15)===0&&(g+=4,k>>>=4),(k&3)===0&&(g+=2,k>>>=2),(k&1)===0&&g++,g},U.prototype.bitLength=function(){var j=this.words[this.length-1],k=this._countBits(j);return(this.length-1)*26+k};function H(j){for(var k=new Array(j.bitLength()),g=0;g>>N}return k}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var j=0,k=0;kj.length?this.clone().ior(j):j.clone().ior(this)},U.prototype.uor=function(j){return this.length>j.length?this.clone().iuor(j):j.clone().iuor(this)},U.prototype.iuand=function(j){var k;this.length>j.length?k=j:k=this;for(var g=0;gj.length?this.clone().iand(j):j.clone().iand(this)},U.prototype.uand=function(j){return this.length>j.length?this.clone().iuand(j):j.clone().iuand(this)},U.prototype.iuxor=function(j){var k,g;this.length>j.length?(k=this,g=j):(k=j,g=this);for(var _=0;_j.length?this.clone().ixor(j):j.clone().ixor(this)},U.prototype.uxor=function(j){return this.length>j.length?this.clone().iuxor(j):j.clone().iuxor(this)},U.prototype.inotn=function(j){G(typeof j=="number"&&j>=0);var k=Math.ceil(j/26)|0,g=j%26;this._expand(k),g>0&&k--;for(var _=0;_0&&(this.words[_]=~this.words[_]&67108863>>26-g),this.strip()},U.prototype.notn=function(j){return this.clone().inotn(j)},U.prototype.setn=function(j,k){G(typeof j=="number"&&j>=0);var g=j/26|0,_=j%26;return this._expand(g+1),k?this.words[g]=this.words[g]|1<<_:this.words[g]=this.words[g]&~(1<<_),this.strip()},U.prototype.iadd=function(j){var k;if(this.negative!==0&&j.negative===0)return this.negative=0,k=this.isub(j),this.negative^=1,this._normSign();if(this.negative===0&&j.negative!==0)return j.negative=0,k=this.isub(j),j.negative=1,k._normSign();var g,_;this.length>j.length?(g=this,_=j):(g=j,_=this);for(var N=0,x=0;x<_.length;x++)k=(g.words[x]|0)+(_.words[x]|0)+N,this.words[x]=k&67108863,N=k>>>26;for(;N!==0&&x>>26;if(this.length=g.length,N!==0)this.words[this.length]=N,this.length++;else if(g!==this)for(;xj.length?this.clone().iadd(j):j.clone().iadd(this)},U.prototype.isub=function(j){if(j.negative!==0){j.negative=0;var k=this.iadd(j);return j.negative=1,k._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(j),this.negative=1,this._normSign();var g=this.cmp(j);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var _,N;g>0?(_=this,N=j):(_=j,N=this);for(var x=0,B=0;B>26,this.words[B]=k&67108863;for(;x!==0&&B<_.length;B++)k=(_.words[B]|0)+x,x=k>>26,this.words[B]=k&67108863;if(x===0&&B<_.length&&_!==this)for(;B<_.length;B++)this.words[B]=_.words[B];return this.length=Math.max(this.length,B),_!==this&&(this.negative=1),this.strip()},U.prototype.sub=function(j){return this.clone().isub(j)};function W(j,k,g){g.negative=k.negative^j.negative;var _=j.length+k.length|0;g.length=_,_=_-1|0;var N=j.words[0]|0,x=k.words[0]|0,B=N*x,y=B&67108863,w=B/67108864|0;g.words[0]=y;for(var p=1;p<_;p++){for(var f=w>>>26,c=w&67108863,h=Math.min(p,k.length-1),d=Math.max(0,p-j.length+1);d<=h;d++){var b=p-d|0;N=j.words[b]|0,x=k.words[d]|0,B=N*x+c,f+=B/67108864|0,c=B&67108863}g.words[p]=c|0,w=f|0}return w!==0?g.words[p]=w|0:g.length--,g.strip()}var E=function(j,k,g){var _=j.words,N=k.words,x=g.words,B=0,y,w,p,f=_[0]|0,c=f&8191,h=f>>>13,d=_[1]|0,b=d&8191,l=d>>>13,o=_[2]|0,u=o&8191,n=o>>>13,s=_[3]|0,t=s&8191,m=s>>>13,a=_[4]|0,e=a&8191,r=a>>>13,i=_[5]|0,$0=i&8191,Q0=i>>>13,Y0=_[6]|0,Z0=Y0&8191,G0=Y0>>>13,V0=_[7]|0,U0=V0&8191,X0=V0>>>13,K0=_[8]|0,I0=K0&8191,O0=K0>>>13,J0=_[9]|0,F0=J0&8191,A0=J0>>>13,H0=N[0]|0,W0=H0&8191,E0=H0>>>13,T0=N[1]|0,D0=T0&8191,C0=T0>>>13,L0=N[2]|0,R0=L0&8191,P0=L0>>>13,z0=N[3]|0,M0=z0&8191,S0=z0>>>13,v0=N[4]|0,q0=v0&8191,j0=v0>>>13,k0=N[5]|0,g0=k0&8191,_0=k0>>>13,N0=N[6]|0,x0=N0&8191,B0=N0>>>13,y0=N[7]|0,w0=y0&8191,p0=y0>>>13,f0=N[8]|0,c0=f0&8191,h0=f0>>>13,d0=N[9]|0,b0=d0&8191,l0=d0>>>13;g.negative=j.negative^k.negative,g.length=19,y=Math.imul(c,W0),w=Math.imul(c,E0),w=w+Math.imul(h,W0)|0,p=Math.imul(h,E0);var o0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(o0>>>26)|0,o0&=67108863,y=Math.imul(b,W0),w=Math.imul(b,E0),w=w+Math.imul(l,W0)|0,p=Math.imul(l,E0),y=y+Math.imul(c,D0)|0,w=w+Math.imul(c,C0)|0,w=w+Math.imul(h,D0)|0,p=p+Math.imul(h,C0)|0;var u0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(u0>>>26)|0,u0&=67108863,y=Math.imul(u,W0),w=Math.imul(u,E0),w=w+Math.imul(n,W0)|0,p=Math.imul(n,E0),y=y+Math.imul(b,D0)|0,w=w+Math.imul(b,C0)|0,w=w+Math.imul(l,D0)|0,p=p+Math.imul(l,C0)|0,y=y+Math.imul(c,R0)|0,w=w+Math.imul(c,P0)|0,w=w+Math.imul(h,R0)|0,p=p+Math.imul(h,P0)|0;var n0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(n0>>>26)|0,n0&=67108863,y=Math.imul(t,W0),w=Math.imul(t,E0),w=w+Math.imul(m,W0)|0,p=Math.imul(m,E0),y=y+Math.imul(u,D0)|0,w=w+Math.imul(u,C0)|0,w=w+Math.imul(n,D0)|0,p=p+Math.imul(n,C0)|0,y=y+Math.imul(b,R0)|0,w=w+Math.imul(b,P0)|0,w=w+Math.imul(l,R0)|0,p=p+Math.imul(l,P0)|0,y=y+Math.imul(c,M0)|0,w=w+Math.imul(c,S0)|0,w=w+Math.imul(h,M0)|0,p=p+Math.imul(h,S0)|0;var s0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(s0>>>26)|0,s0&=67108863,y=Math.imul(e,W0),w=Math.imul(e,E0),w=w+Math.imul(r,W0)|0,p=Math.imul(r,E0),y=y+Math.imul(t,D0)|0,w=w+Math.imul(t,C0)|0,w=w+Math.imul(m,D0)|0,p=p+Math.imul(m,C0)|0,y=y+Math.imul(u,R0)|0,w=w+Math.imul(u,P0)|0,w=w+Math.imul(n,R0)|0,p=p+Math.imul(n,P0)|0,y=y+Math.imul(b,M0)|0,w=w+Math.imul(b,S0)|0,w=w+Math.imul(l,M0)|0,p=p+Math.imul(l,S0)|0,y=y+Math.imul(c,q0)|0,w=w+Math.imul(c,j0)|0,w=w+Math.imul(h,q0)|0,p=p+Math.imul(h,j0)|0;var t0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(t0>>>26)|0,t0&=67108863,y=Math.imul($0,W0),w=Math.imul($0,E0),w=w+Math.imul(Q0,W0)|0,p=Math.imul(Q0,E0),y=y+Math.imul(e,D0)|0,w=w+Math.imul(e,C0)|0,w=w+Math.imul(r,D0)|0,p=p+Math.imul(r,C0)|0,y=y+Math.imul(t,R0)|0,w=w+Math.imul(t,P0)|0,w=w+Math.imul(m,R0)|0,p=p+Math.imul(m,P0)|0,y=y+Math.imul(u,M0)|0,w=w+Math.imul(u,S0)|0,w=w+Math.imul(n,M0)|0,p=p+Math.imul(n,S0)|0,y=y+Math.imul(b,q0)|0,w=w+Math.imul(b,j0)|0,w=w+Math.imul(l,q0)|0,p=p+Math.imul(l,j0)|0,y=y+Math.imul(c,g0)|0,w=w+Math.imul(c,_0)|0,w=w+Math.imul(h,g0)|0,p=p+Math.imul(h,_0)|0;var m0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(m0>>>26)|0,m0&=67108863,y=Math.imul(Z0,W0),w=Math.imul(Z0,E0),w=w+Math.imul(G0,W0)|0,p=Math.imul(G0,E0),y=y+Math.imul($0,D0)|0,w=w+Math.imul($0,C0)|0,w=w+Math.imul(Q0,D0)|0,p=p+Math.imul(Q0,C0)|0,y=y+Math.imul(e,R0)|0,w=w+Math.imul(e,P0)|0,w=w+Math.imul(r,R0)|0,p=p+Math.imul(r,P0)|0,y=y+Math.imul(t,M0)|0,w=w+Math.imul(t,S0)|0,w=w+Math.imul(m,M0)|0,p=p+Math.imul(m,S0)|0,y=y+Math.imul(u,q0)|0,w=w+Math.imul(u,j0)|0,w=w+Math.imul(n,q0)|0,p=p+Math.imul(n,j0)|0,y=y+Math.imul(b,g0)|0,w=w+Math.imul(b,_0)|0,w=w+Math.imul(l,g0)|0,p=p+Math.imul(l,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,B0)|0,w=w+Math.imul(h,x0)|0,p=p+Math.imul(h,B0)|0;var a0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(a0>>>26)|0,a0&=67108863,y=Math.imul(U0,W0),w=Math.imul(U0,E0),w=w+Math.imul(X0,W0)|0,p=Math.imul(X0,E0),y=y+Math.imul(Z0,D0)|0,w=w+Math.imul(Z0,C0)|0,w=w+Math.imul(G0,D0)|0,p=p+Math.imul(G0,C0)|0,y=y+Math.imul($0,R0)|0,w=w+Math.imul($0,P0)|0,w=w+Math.imul(Q0,R0)|0,p=p+Math.imul(Q0,P0)|0,y=y+Math.imul(e,M0)|0,w=w+Math.imul(e,S0)|0,w=w+Math.imul(r,M0)|0,p=p+Math.imul(r,S0)|0,y=y+Math.imul(t,q0)|0,w=w+Math.imul(t,j0)|0,w=w+Math.imul(m,q0)|0,p=p+Math.imul(m,j0)|0,y=y+Math.imul(u,g0)|0,w=w+Math.imul(u,_0)|0,w=w+Math.imul(n,g0)|0,p=p+Math.imul(n,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,B0)|0,w=w+Math.imul(l,x0)|0,p=p+Math.imul(l,B0)|0,y=y+Math.imul(c,w0)|0,w=w+Math.imul(c,p0)|0,w=w+Math.imul(h,w0)|0,p=p+Math.imul(h,p0)|0;var e0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(e0>>>26)|0,e0&=67108863,y=Math.imul(I0,W0),w=Math.imul(I0,E0),w=w+Math.imul(O0,W0)|0,p=Math.imul(O0,E0),y=y+Math.imul(U0,D0)|0,w=w+Math.imul(U0,C0)|0,w=w+Math.imul(X0,D0)|0,p=p+Math.imul(X0,C0)|0,y=y+Math.imul(Z0,R0)|0,w=w+Math.imul(Z0,P0)|0,w=w+Math.imul(G0,R0)|0,p=p+Math.imul(G0,P0)|0,y=y+Math.imul($0,M0)|0,w=w+Math.imul($0,S0)|0,w=w+Math.imul(Q0,M0)|0,p=p+Math.imul(Q0,S0)|0,y=y+Math.imul(e,q0)|0,w=w+Math.imul(e,j0)|0,w=w+Math.imul(r,q0)|0,p=p+Math.imul(r,j0)|0,y=y+Math.imul(t,g0)|0,w=w+Math.imul(t,_0)|0,w=w+Math.imul(m,g0)|0,p=p+Math.imul(m,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,B0)|0,w=w+Math.imul(n,x0)|0,p=p+Math.imul(n,B0)|0,y=y+Math.imul(b,w0)|0,w=w+Math.imul(b,p0)|0,w=w+Math.imul(l,w0)|0,p=p+Math.imul(l,p0)|0,y=y+Math.imul(c,c0)|0,w=w+Math.imul(c,h0)|0,w=w+Math.imul(h,c0)|0,p=p+Math.imul(h,h0)|0;var r0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(r0>>>26)|0,r0&=67108863,y=Math.imul(F0,W0),w=Math.imul(F0,E0),w=w+Math.imul(A0,W0)|0,p=Math.imul(A0,E0),y=y+Math.imul(I0,D0)|0,w=w+Math.imul(I0,C0)|0,w=w+Math.imul(O0,D0)|0,p=p+Math.imul(O0,C0)|0,y=y+Math.imul(U0,R0)|0,w=w+Math.imul(U0,P0)|0,w=w+Math.imul(X0,R0)|0,p=p+Math.imul(X0,P0)|0,y=y+Math.imul(Z0,M0)|0,w=w+Math.imul(Z0,S0)|0,w=w+Math.imul(G0,M0)|0,p=p+Math.imul(G0,S0)|0,y=y+Math.imul($0,q0)|0,w=w+Math.imul($0,j0)|0,w=w+Math.imul(Q0,q0)|0,p=p+Math.imul(Q0,j0)|0,y=y+Math.imul(e,g0)|0,w=w+Math.imul(e,_0)|0,w=w+Math.imul(r,g0)|0,p=p+Math.imul(r,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,B0)|0,w=w+Math.imul(m,x0)|0,p=p+Math.imul(m,B0)|0,y=y+Math.imul(u,w0)|0,w=w+Math.imul(u,p0)|0,w=w+Math.imul(n,w0)|0,p=p+Math.imul(n,p0)|0,y=y+Math.imul(b,c0)|0,w=w+Math.imul(b,h0)|0,w=w+Math.imul(l,c0)|0,p=p+Math.imul(l,h0)|0,y=y+Math.imul(c,b0)|0,w=w+Math.imul(c,l0)|0,w=w+Math.imul(h,b0)|0,p=p+Math.imul(h,l0)|0;var i0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(i0>>>26)|0,i0&=67108863,y=Math.imul(F0,D0),w=Math.imul(F0,C0),w=w+Math.imul(A0,D0)|0,p=Math.imul(A0,C0),y=y+Math.imul(I0,R0)|0,w=w+Math.imul(I0,P0)|0,w=w+Math.imul(O0,R0)|0,p=p+Math.imul(O0,P0)|0,y=y+Math.imul(U0,M0)|0,w=w+Math.imul(U0,S0)|0,w=w+Math.imul(X0,M0)|0,p=p+Math.imul(X0,S0)|0,y=y+Math.imul(Z0,q0)|0,w=w+Math.imul(Z0,j0)|0,w=w+Math.imul(G0,q0)|0,p=p+Math.imul(G0,j0)|0,y=y+Math.imul($0,g0)|0,w=w+Math.imul($0,_0)|0,w=w+Math.imul(Q0,g0)|0,p=p+Math.imul(Q0,_0)|0,y=y+Math.imul(e,x0)|0,w=w+Math.imul(e,B0)|0,w=w+Math.imul(r,x0)|0,p=p+Math.imul(r,B0)|0,y=y+Math.imul(t,w0)|0,w=w+Math.imul(t,p0)|0,w=w+Math.imul(m,w0)|0,p=p+Math.imul(m,p0)|0,y=y+Math.imul(u,c0)|0,w=w+Math.imul(u,h0)|0,w=w+Math.imul(n,c0)|0,p=p+Math.imul(n,h0)|0,y=y+Math.imul(b,b0)|0,w=w+Math.imul(b,l0)|0,w=w+Math.imul(l,b0)|0,p=p+Math.imul(l,l0)|0;var $$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+($$>>>26)|0,$$&=67108863,y=Math.imul(F0,R0),w=Math.imul(F0,P0),w=w+Math.imul(A0,R0)|0,p=Math.imul(A0,P0),y=y+Math.imul(I0,M0)|0,w=w+Math.imul(I0,S0)|0,w=w+Math.imul(O0,M0)|0,p=p+Math.imul(O0,S0)|0,y=y+Math.imul(U0,q0)|0,w=w+Math.imul(U0,j0)|0,w=w+Math.imul(X0,q0)|0,p=p+Math.imul(X0,j0)|0,y=y+Math.imul(Z0,g0)|0,w=w+Math.imul(Z0,_0)|0,w=w+Math.imul(G0,g0)|0,p=p+Math.imul(G0,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,B0)|0,w=w+Math.imul(Q0,x0)|0,p=p+Math.imul(Q0,B0)|0,y=y+Math.imul(e,w0)|0,w=w+Math.imul(e,p0)|0,w=w+Math.imul(r,w0)|0,p=p+Math.imul(r,p0)|0,y=y+Math.imul(t,c0)|0,w=w+Math.imul(t,h0)|0,w=w+Math.imul(m,c0)|0,p=p+Math.imul(m,h0)|0,y=y+Math.imul(u,b0)|0,w=w+Math.imul(u,l0)|0,w=w+Math.imul(n,b0)|0,p=p+Math.imul(n,l0)|0;var Q$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,y=Math.imul(F0,M0),w=Math.imul(F0,S0),w=w+Math.imul(A0,M0)|0,p=Math.imul(A0,S0),y=y+Math.imul(I0,q0)|0,w=w+Math.imul(I0,j0)|0,w=w+Math.imul(O0,q0)|0,p=p+Math.imul(O0,j0)|0,y=y+Math.imul(U0,g0)|0,w=w+Math.imul(U0,_0)|0,w=w+Math.imul(X0,g0)|0,p=p+Math.imul(X0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,B0)|0,w=w+Math.imul(G0,x0)|0,p=p+Math.imul(G0,B0)|0,y=y+Math.imul($0,w0)|0,w=w+Math.imul($0,p0)|0,w=w+Math.imul(Q0,w0)|0,p=p+Math.imul(Q0,p0)|0,y=y+Math.imul(e,c0)|0,w=w+Math.imul(e,h0)|0,w=w+Math.imul(r,c0)|0,p=p+Math.imul(r,h0)|0,y=y+Math.imul(t,b0)|0,w=w+Math.imul(t,l0)|0,w=w+Math.imul(m,b0)|0,p=p+Math.imul(m,l0)|0;var Y$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,y=Math.imul(F0,q0),w=Math.imul(F0,j0),w=w+Math.imul(A0,q0)|0,p=Math.imul(A0,j0),y=y+Math.imul(I0,g0)|0,w=w+Math.imul(I0,_0)|0,w=w+Math.imul(O0,g0)|0,p=p+Math.imul(O0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,B0)|0,w=w+Math.imul(X0,x0)|0,p=p+Math.imul(X0,B0)|0,y=y+Math.imul(Z0,w0)|0,w=w+Math.imul(Z0,p0)|0,w=w+Math.imul(G0,w0)|0,p=p+Math.imul(G0,p0)|0,y=y+Math.imul($0,c0)|0,w=w+Math.imul($0,h0)|0,w=w+Math.imul(Q0,c0)|0,p=p+Math.imul(Q0,h0)|0,y=y+Math.imul(e,b0)|0,w=w+Math.imul(e,l0)|0,w=w+Math.imul(r,b0)|0,p=p+Math.imul(r,l0)|0;var Z$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,y=Math.imul(F0,g0),w=Math.imul(F0,_0),w=w+Math.imul(A0,g0)|0,p=Math.imul(A0,_0),y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,B0)|0,w=w+Math.imul(O0,x0)|0,p=p+Math.imul(O0,B0)|0,y=y+Math.imul(U0,w0)|0,w=w+Math.imul(U0,p0)|0,w=w+Math.imul(X0,w0)|0,p=p+Math.imul(X0,p0)|0,y=y+Math.imul(Z0,c0)|0,w=w+Math.imul(Z0,h0)|0,w=w+Math.imul(G0,c0)|0,p=p+Math.imul(G0,h0)|0,y=y+Math.imul($0,b0)|0,w=w+Math.imul($0,l0)|0,w=w+Math.imul(Q0,b0)|0,p=p+Math.imul(Q0,l0)|0;var G$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(G$>>>26)|0,G$&=67108863,y=Math.imul(F0,x0),w=Math.imul(F0,B0),w=w+Math.imul(A0,x0)|0,p=Math.imul(A0,B0),y=y+Math.imul(I0,w0)|0,w=w+Math.imul(I0,p0)|0,w=w+Math.imul(O0,w0)|0,p=p+Math.imul(O0,p0)|0,y=y+Math.imul(U0,c0)|0,w=w+Math.imul(U0,h0)|0,w=w+Math.imul(X0,c0)|0,p=p+Math.imul(X0,h0)|0,y=y+Math.imul(Z0,b0)|0,w=w+Math.imul(Z0,l0)|0,w=w+Math.imul(G0,b0)|0,p=p+Math.imul(G0,l0)|0;var V$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(V$>>>26)|0,V$&=67108863,y=Math.imul(F0,w0),w=Math.imul(F0,p0),w=w+Math.imul(A0,w0)|0,p=Math.imul(A0,p0),y=y+Math.imul(I0,c0)|0,w=w+Math.imul(I0,h0)|0,w=w+Math.imul(O0,c0)|0,p=p+Math.imul(O0,h0)|0,y=y+Math.imul(U0,b0)|0,w=w+Math.imul(U0,l0)|0,w=w+Math.imul(X0,b0)|0,p=p+Math.imul(X0,l0)|0;var U$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(U$>>>26)|0,U$&=67108863,y=Math.imul(F0,c0),w=Math.imul(F0,h0),w=w+Math.imul(A0,c0)|0,p=Math.imul(A0,h0),y=y+Math.imul(I0,b0)|0,w=w+Math.imul(I0,l0)|0,w=w+Math.imul(O0,b0)|0,p=p+Math.imul(O0,l0)|0;var X$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(X$>>>26)|0,X$&=67108863,y=Math.imul(F0,b0),w=Math.imul(F0,l0),w=w+Math.imul(A0,b0)|0,p=Math.imul(A0,l0);var K$=(B+y|0)+((w&8191)<<13)|0;return B=(p+(w>>>13)|0)+(K$>>>26)|0,K$&=67108863,x[0]=o0,x[1]=u0,x[2]=n0,x[3]=s0,x[4]=t0,x[5]=m0,x[6]=a0,x[7]=e0,x[8]=r0,x[9]=i0,x[10]=$$,x[11]=Q$,x[12]=Y$,x[13]=Z$,x[14]=G$,x[15]=V$,x[16]=U$,x[17]=X$,x[18]=K$,B!==0&&(x[19]=B,g.length++),g};Math.imul||(E=W);function T(j,k,g){g.negative=k.negative^j.negative,g.length=j.length+k.length;for(var _=0,N=0,x=0;x>>26)|0,N+=B>>>26,B&=67108863}g.words[x]=y,_=B,B=N}return _!==0?g.words[x]=_:g.length--,g.strip()}function D(j,k,g){var _=new C;return _.mulp(j,k,g)}U.prototype.mulTo=function(j,k){var g,_=this.length+j.length;return this.length===10&&j.length===10?g=E(this,j,k):_<63?g=W(this,j,k):_<1024?g=T(this,j,k):g=D(this,j,k),g};function C(j,k){this.x=j,this.y=k}C.prototype.makeRBT=function(j){for(var k=new Array(j),g=U.prototype._countBits(j)-1,_=0;_>=1;return _},C.prototype.permute=function(j,k,g,_,N,x){for(var B=0;B>>1)N++;return 1<>>13,g[2*x+1]=N&8191,N=N>>>13;for(x=2*k;x<_;++x)g[x]=0;G(N===0),G((N&-8192)===0)},C.prototype.stub=function(j){for(var k=new Array(j),g=0;g>=26,k+=_/67108864|0,k+=N>>>26,this.words[g]=N&67108863}return k!==0&&(this.words[g]=k,this.length++),this},U.prototype.muln=function(j){return this.clone().imuln(j)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(j){var k=H(j);if(k.length===0)return new U(1);for(var g=this,_=0;_=0);var k=j%26,g=(j-k)/26,_=67108863>>>26-k<<26-k,N;if(k!==0){var x=0;for(N=0;N>>26-k}x&&(this.words[N]=x,this.length++)}if(g!==0){for(N=this.length-1;N>=0;N--)this.words[N+g]=this.words[N];for(N=0;N=0);var _;k?_=(k-k%26)/26:_=0;var N=j%26,x=Math.min((j-N)/26,this.length),B=67108863^67108863>>>N<x)for(this.length-=x,w=0;w=0&&(p!==0||w>=_);w--){var f=this.words[w]|0;this.words[w]=p<<26-N|f>>>N,p=f&B}return y&&p!==0&&(y.words[y.length++]=p),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},U.prototype.ishrn=function(j,k,g){return G(this.negative===0),this.iushrn(j,k,g)},U.prototype.shln=function(j){return this.clone().ishln(j)},U.prototype.ushln=function(j){return this.clone().iushln(j)},U.prototype.shrn=function(j){return this.clone().ishrn(j)},U.prototype.ushrn=function(j){return this.clone().iushrn(j)},U.prototype.testn=function(j){G(typeof j=="number"&&j>=0);var k=j%26,g=(j-k)/26,_=1<=0);var k=j%26,g=(j-k)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(k!==0&&g++,this.length=Math.min(g,this.length),k!==0){var _=67108863^67108863>>>k<=67108864;k++)this.words[k]-=67108864,k===this.length-1?this.words[k+1]=1:this.words[k+1]++;return this.length=Math.max(this.length,k+1),this},U.prototype.isubn=function(j){if(G(typeof j=="number"),G(j<67108864),j<0)return this.iaddn(-j);if(this.negative!==0)return this.negative=0,this.iaddn(j),this.negative=1,this;if(this.words[0]-=j,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var k=0;k>26)-(y/67108864|0),this.words[N+g]=x&67108863}for(;N>26,this.words[N+g]=x&67108863;if(B===0)return this.strip();for(G(B===-1),B=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},U.prototype._wordDiv=function(j,k){var g=this.length-j.length,_=this.clone(),N=j,x=N.words[N.length-1]|0,B=this._countBits(x);g=26-B,g!==0&&(N=N.ushln(g),_.iushln(g),x=N.words[N.length-1]|0);var y=_.length-N.length,w;if(k!=="mod"){w=new U(null),w.length=y+1,w.words=new Array(w.length);for(var p=0;p=0;c--){var h=(_.words[N.length+c]|0)*67108864+(_.words[N.length+c-1]|0);for(h=Math.min(h/x|0,67108863),_._ishlnsubmul(N,h,c);_.negative!==0;)h--,_.negative=0,_._ishlnsubmul(N,1,c),_.isZero()||(_.negative^=1);w&&(w.words[c]=h)}return w&&w.strip(),_.strip(),k!=="div"&&g!==0&&_.iushrn(g),{div:w||null,mod:_}},U.prototype.divmod=function(j,k,g){if(G(!j.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var _,N,x;return this.negative!==0&&j.negative===0?(x=this.neg().divmod(j,k),k!=="mod"&&(_=x.div.neg()),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.iadd(j)),{div:_,mod:N}):this.negative===0&&j.negative!==0?(x=this.divmod(j.neg(),k),k!=="mod"&&(_=x.div.neg()),{div:_,mod:x.mod}):(this.negative&j.negative)!==0?(x=this.neg().divmod(j.neg(),k),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.isub(j)),{div:x.div,mod:N}):j.length>this.length||this.cmp(j)<0?{div:new U(0),mod:this}:j.length===1?k==="div"?{div:this.divn(j.words[0]),mod:null}:k==="mod"?{div:null,mod:new U(this.modn(j.words[0]))}:{div:this.divn(j.words[0]),mod:new U(this.modn(j.words[0]))}:this._wordDiv(j,k)},U.prototype.div=function(j){return this.divmod(j,"div",!1).div},U.prototype.mod=function(j){return this.divmod(j,"mod",!1).mod},U.prototype.umod=function(j){return this.divmod(j,"mod",!0).mod},U.prototype.divRound=function(j){var k=this.divmod(j);if(k.mod.isZero())return k.div;var g=k.div.negative!==0?k.mod.isub(j):k.mod,_=j.ushrn(1),N=j.andln(1),x=g.cmp(_);return x<0||N===1&&x===0?k.div:k.div.negative!==0?k.div.isubn(1):k.div.iaddn(1)},U.prototype.modn=function(j){G(j<=67108863);for(var k=(1<<26)%j,g=0,_=this.length-1;_>=0;_--)g=(k*g+(this.words[_]|0))%j;return g},U.prototype.idivn=function(j){G(j<=67108863);for(var k=0,g=this.length-1;g>=0;g--){var _=(this.words[g]|0)+k*67108864;this.words[g]=_/j|0,k=_%j}return this.strip()},U.prototype.divn=function(j){return this.clone().idivn(j)},U.prototype.egcd=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=new U(0),B=new U(1),y=0;k.isEven()&&g.isEven();)k.iushrn(1),g.iushrn(1),++y;for(var w=g.clone(),p=k.clone();!k.isZero();){for(var f=0,c=1;(k.words[0]&c)===0&&f<26;++f,c<<=1);if(f>0)for(k.iushrn(f);f-- >0;)(_.isOdd()||N.isOdd())&&(_.iadd(w),N.isub(p)),_.iushrn(1),N.iushrn(1);for(var h=0,d=1;(g.words[0]&d)===0&&h<26;++h,d<<=1);if(h>0)for(g.iushrn(h);h-- >0;)(x.isOdd()||B.isOdd())&&(x.iadd(w),B.isub(p)),x.iushrn(1),B.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(x),N.isub(B)):(g.isub(k),x.isub(_),B.isub(N))}return{a:x,b:B,gcd:g.iushln(y)}},U.prototype._invmp=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=g.clone();k.cmpn(1)>0&&g.cmpn(1)>0;){for(var B=0,y=1;(k.words[0]&y)===0&&B<26;++B,y<<=1);if(B>0)for(k.iushrn(B);B-- >0;)_.isOdd()&&_.iadd(x),_.iushrn(1);for(var w=0,p=1;(g.words[0]&p)===0&&w<26;++w,p<<=1);if(w>0)for(g.iushrn(w);w-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(N)):(g.isub(k),N.isub(_))}var f;return k.cmpn(1)===0?f=_:f=N,f.cmpn(0)<0&&f.iadd(j),f},U.prototype.gcd=function(j){if(this.isZero())return j.abs();if(j.isZero())return this.abs();var k=this.clone(),g=j.clone();k.negative=0,g.negative=0;for(var _=0;k.isEven()&&g.isEven();_++)k.iushrn(1),g.iushrn(1);do{for(;k.isEven();)k.iushrn(1);for(;g.isEven();)g.iushrn(1);var N=k.cmp(g);if(N<0){var x=k;k=g,g=x}else if(N===0||g.cmpn(1)===0)break;k.isub(g)}while(!0);return g.iushln(_)},U.prototype.invm=function(j){return this.egcd(j).a.umod(j)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(j){return this.words[0]&j},U.prototype.bincn=function(j){G(typeof j=="number");var k=j%26,g=(j-k)/26,_=1<>>26,B&=67108863,this.words[x]=B}return N!==0&&(this.words[x]=N,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(j){var k=j<0;if(this.negative!==0&&!k)return-1;if(this.negative===0&&k)return 1;this.strip();var g;if(this.length>1)g=1;else{k&&(j=-j),G(j<=67108863,"Number is too big");var _=this.words[0]|0;g=_===j?0:_j.length)return 1;if(this.length=0;g--){var _=this.words[g]|0,N=j.words[g]|0;if(_!==N){_N&&(k=1);break}}return k},U.prototype.gtn=function(j){return this.cmpn(j)===1},U.prototype.gt=function(j){return this.cmp(j)===1},U.prototype.gten=function(j){return this.cmpn(j)>=0},U.prototype.gte=function(j){return this.cmp(j)>=0},U.prototype.ltn=function(j){return this.cmpn(j)===-1},U.prototype.lt=function(j){return this.cmp(j)===-1},U.prototype.lten=function(j){return this.cmpn(j)<=0},U.prototype.lte=function(j){return this.cmp(j)<=0},U.prototype.eqn=function(j){return this.cmpn(j)===0},U.prototype.eq=function(j){return this.cmp(j)===0},U.red=function(j){return new v(j)},U.prototype.toRed=function(j){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),j.convertTo(this)._forceRed(j)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(j){return this.red=j,this},U.prototype.forceRed=function(j){return G(!this.red,"Already a number in reduction context"),this._forceRed(j)},U.prototype.redAdd=function(j){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,j)},U.prototype.redIAdd=function(j){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,j)},U.prototype.redSub=function(j){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,j)},U.prototype.redISub=function(j){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,j)},U.prototype.redShl=function(j){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,j)},U.prototype.redMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.mul(this,j)},U.prototype.redIMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.imul(this,j)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(j){return G(this.red&&!j.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,j)};var L={k256:null,p224:null,p192:null,p25519:null};function R(j,k){this.name=j,this.p=new U(k,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}R.prototype._tmp=function(){var j=new U(null);return j.words=new Array(Math.ceil(this.n/13)),j},R.prototype.ireduce=function(j){var k=j,g;do this.split(k,this.tmp),k=this.imulK(k),k=k.iadd(this.tmp),g=k.bitLength();while(g>this.n);var _=g0?k.isub(this.p):k.strip!==void 0?k.strip():k._strip(),k},R.prototype.split=function(j,k){j.iushrn(this.n,0,k)},R.prototype.imulK=function(j){return j.imul(this.k)};function P(){R.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(P,R),P.prototype.split=function(j,k){for(var g=4194303,_=Math.min(j.length,9),N=0;N<_;N++)k.words[N]=j.words[N];if(k.length=_,j.length<=9){j.words[0]=0,j.length=1;return}var x=j.words[9];for(k.words[k.length++]=x&g,N=10;N>>22,x=B}x>>>=22,j.words[N-10]=x,x===0&&j.length>10?j.length-=10:j.length-=9},P.prototype.imulK=function(j){j.words[j.length]=0,j.words[j.length+1]=0,j.length+=2;for(var k=0,g=0;g>>=26,j.words[g]=N,k=_}return k!==0&&(j.words[j.length++]=k),j},U._prime=function(j){if(L[j])return L[j];var k;if(j==="k256")k=new P;else if(j==="p224")k=new z;else if(j==="p192")k=new M;else if(j==="p25519")k=new S;else throw new Error("Unknown prime "+j);return L[j]=k,k};function v(j){if(typeof j=="string"){var k=U._prime(j);this.m=k.p,this.prime=k}else G(j.gtn(1),"modulus must be greater than 1"),this.m=j,this.prime=null}v.prototype._verify1=function(j){G(j.negative===0,"red works only with positives"),G(j.red,"red works only with red numbers")},v.prototype._verify2=function(j,k){G((j.negative|k.negative)===0,"red works only with positives"),G(j.red&&j.red===k.red,"red works only with red numbers")},v.prototype.imod=function(j){return this.prime?this.prime.ireduce(j)._forceRed(this):j.umod(this.m)._forceRed(this)},v.prototype.neg=function(j){return j.isZero()?j.clone():this.m.sub(j)._forceRed(this)},v.prototype.add=function(j,k){this._verify2(j,k);var g=j.add(k);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},v.prototype.iadd=function(j,k){this._verify2(j,k);var g=j.iadd(k);return g.cmp(this.m)>=0&&g.isub(this.m),g},v.prototype.sub=function(j,k){this._verify2(j,k);var g=j.sub(k);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},v.prototype.isub=function(j,k){this._verify2(j,k);var g=j.isub(k);return g.cmpn(0)<0&&g.iadd(this.m),g},v.prototype.shl=function(j,k){return this._verify1(j),this.imod(j.ushln(k))},v.prototype.imul=function(j,k){return this._verify2(j,k),this.imod(j.imul(k))},v.prototype.mul=function(j,k){return this._verify2(j,k),this.imod(j.mul(k))},v.prototype.isqr=function(j){return this.imul(j,j.clone())},v.prototype.sqr=function(j){return this.mul(j,j)},v.prototype.sqrt=function(j){if(j.isZero())return j.clone();var k=this.m.andln(3);if(G(k%2===1),k===3){var g=this.m.add(new U(1)).iushrn(2);return this.pow(j,g)}for(var _=this.m.subn(1),N=0;!_.isZero()&&_.andln(1)===0;)N++,_.iushrn(1);G(!_.isZero());var x=new U(1).toRed(this),B=x.redNeg(),y=this.m.subn(1).iushrn(1),w=this.m.bitLength();for(w=new U(2*w*w).toRed(this);this.pow(w,y).cmp(B)!==0;)w.redIAdd(B);for(var p=this.pow(w,_),f=this.pow(j,_.addn(1).iushrn(1)),c=this.pow(j,_),h=N;c.cmp(x)!==0;){for(var d=c,b=0;d.cmp(x)!==0;b++)d=d.redSqr();G(b=0;N--){for(var p=k.words[N],f=w-1;f>=0;f--){var c=p>>f&1;if(x!==_[0]&&(x=this.sqr(x)),c===0&&B===0){y=0;continue}B<<=1,B|=c,y++,!(y!==g&&(N!==0||f!==0))&&(x=this.mul(x,_[B]),y=0,B=0)}w=26}return x},v.prototype.convertTo=function(j){var k=j.umod(this.m);return k===j?k.clone():k},v.prototype.convertFrom=function(j){var k=j.clone();return k.red=null,k},U.mont=function(j){return new q(j)};function q(j){v.call(this,j),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(q,v),q.prototype.convertTo=function(j){return this.imod(j.ushln(this.shift))},q.prototype.convertFrom=function(j){var k=this.imod(j.mul(this.rinv));return k.red=null,k},q.prototype.imul=function(j,k){if(j.isZero()||k.isZero())return j.words[0]=0,j.length=1,j;var g=j.imul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.mul=function(j,k){if(j.isZero()||k.isZero())return new U(0)._forceRed(this);var g=j.mul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.invm=function(j){var k=this.imod(j._invmp(this.m).mul(this.r2));return k._forceRed(this)}})(typeof Q>"u"||Q,$)}}),lY=q$({"node_modules/create-ecdh/browser.js"($,Q){var Y=TY(),Z=bY();Q.exports=function(X){return new V(X)};var G={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};G.p224=G.secp224r1,G.p256=G.secp256r1=G.prime256v1,G.p192=G.secp192r1=G.prime192v1,G.p384=G.secp384r1,G.p521=G.secp521r1;function V(X){this.curveType=G[X],this.curveType||(this.curveType={name:X}),this.curve=new Y.ec(this.curveType.name),this.keys=void 0}V.prototype.generateKeys=function(X,K){return this.keys=this.curve.genKeyPair(),this.getPublicKey(X,K)},V.prototype.computeSecret=function(X,K,I){K=K||"utf8",F$.isBuffer(X)||(X=new F$(X,K));var O=this.curve.keyFromPublic(X).getPublic(),J=O.mul(this.keys.getPrivate()).getX();return U(J,I,this.curveType.byteLength)},V.prototype.getPublicKey=function(X,K){var I=this.keys.getPublic(K==="compressed",!0);return K==="hybrid"&&(I[I.length-1]%2?I[0]=7:I[0]=6),U(I,X)},V.prototype.getPrivateKey=function(X){return U(this.keys.getPrivate(),X)},V.prototype.setPublicKey=function(X,K){return K=K||"utf8",F$.isBuffer(X)||(X=new F$(X,K)),this.keys._importPublic(X),this},V.prototype.setPrivateKey=function(X,K){K=K||"utf8",F$.isBuffer(X)||(X=new F$(X,K));var I=new Z(X);return I=I.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(I),this};function U(X,K,I){Array.isArray(X)||(X=X.toArray());var O=new F$(X);if(I&&O.length0?j:k},U.min=function(j,k){return j.cmp(k)<0?j:k},U.prototype._init=function(j,k,g){if(typeof j=="number")return this._initNumber(j,k,g);if(typeof j=="object")return this._initArray(j,k,g);k==="hex"&&(k=16),G(k===(k|0)&&k>=2&&k<=36),j=j.toString().replace(/\s+/g,"");var _=0;j[0]==="-"&&(_++,this.negative=1),_=0;_-=3)x=j[_]|j[_-1]<<8|j[_-2]<<16,this.words[N]|=x<>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);else if(g==="le")for(_=0,N=0;_>>26-B&67108863,B+=24,B>=26&&(B-=26,N++);return this.strip()};function K(j,k){var g=j.charCodeAt(k);return g>=65&&g<=70?g-55:g>=97&&g<=102?g-87:g-48&15}function I(j,k,g){var _=K(j,g);return g-1>=k&&(_|=K(j,g-1)<<4),_}U.prototype._parseHex=function(j,k,g){this.length=Math.ceil((j.length-k)/6),this.words=new Array(this.length);for(var _=0;_=k;_-=2)B=I(j,k,_)<=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8;else{var y=j.length-k;for(_=y%2===0?k+1:k;_=18?(N-=18,x+=1,this.words[x]|=B>>>26):N+=8}this.strip()};function O(j,k,g,_){for(var N=0,x=Math.min(j.length,g),B=k;B=49?N+=y-49+10:y>=17?N+=y-17+10:N+=y}return N}U.prototype._parseBase=function(j,k,g){this.words=[0],this.length=1;for(var _=0,N=1;N<=67108863;N*=k)_++;_--,N=N/k|0;for(var x=j.length-g,B=x%_,y=Math.min(x,x-B)+g,w=0,p=g;p1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},U.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},U.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],F=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],A=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];U.prototype.toString=function(j,k){j=j||10,k=k|0||1;var g;if(j===16||j==="hex"){g="";for(var _=0,N=0,x=0;x>>24-_&16777215,N!==0||x!==this.length-1?g=J[6-y.length]+y+g:g=y+g,_+=2,_>=26&&(_-=26,x--)}for(N!==0&&(g=N.toString(16)+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(j===(j|0)&&j>=2&&j<=36){var w=F[j],p=A[j];g="";var f=this.clone();for(f.negative=0;!f.isZero();){var c=f.modn(p).toString(j);f=f.idivn(p),f.isZero()?g=c+g:g=J[w-c.length]+c+g}for(this.isZero()&&(g="0"+g);g.length%k!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}G(!1,"Base should be between 2 and 36")},U.prototype.toNumber=function(){var j=this.words[0];return this.length===2?j+=this.words[1]*67108864:this.length===3&&this.words[2]===1?j+=4503599627370496+this.words[1]*67108864:this.length>2&&G(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-j:j},U.prototype.toJSON=function(){return this.toString(16)},U.prototype.toBuffer=function(j,k){return G(typeof X<"u"),this.toArrayLike(X,j,k)},U.prototype.toArray=function(j,k){return this.toArrayLike(Array,j,k)},U.prototype.toArrayLike=function(j,k,g){var _=this.byteLength(),N=g||Math.max(1,_);G(_<=N,"byte array longer than desired length"),G(N>0,"Requested array length <= 0"),this.strip();var x=k==="le",B=new j(N),y,w,p=this.clone();if(x){for(w=0;!p.isZero();w++)y=p.andln(255),p.iushrn(8),B[w]=y;for(;w=4096&&(g+=13,k>>>=13),k>=64&&(g+=7,k>>>=7),k>=8&&(g+=4,k>>>=4),k>=2&&(g+=2,k>>>=2),g+k},U.prototype._zeroBits=function(j){if(j===0)return 26;var k=j,g=0;return(k&8191)===0&&(g+=13,k>>>=13),(k&127)===0&&(g+=7,k>>>=7),(k&15)===0&&(g+=4,k>>>=4),(k&3)===0&&(g+=2,k>>>=2),(k&1)===0&&g++,g},U.prototype.bitLength=function(){var j=this.words[this.length-1],k=this._countBits(j);return(this.length-1)*26+k};function H(j){for(var k=new Array(j.bitLength()),g=0;g>>N}return k}U.prototype.zeroBits=function(){if(this.isZero())return 0;for(var j=0,k=0;kj.length?this.clone().ior(j):j.clone().ior(this)},U.prototype.uor=function(j){return this.length>j.length?this.clone().iuor(j):j.clone().iuor(this)},U.prototype.iuand=function(j){var k;this.length>j.length?k=j:k=this;for(var g=0;gj.length?this.clone().iand(j):j.clone().iand(this)},U.prototype.uand=function(j){return this.length>j.length?this.clone().iuand(j):j.clone().iuand(this)},U.prototype.iuxor=function(j){var k,g;this.length>j.length?(k=this,g=j):(k=j,g=this);for(var _=0;_j.length?this.clone().ixor(j):j.clone().ixor(this)},U.prototype.uxor=function(j){return this.length>j.length?this.clone().iuxor(j):j.clone().iuxor(this)},U.prototype.inotn=function(j){G(typeof j=="number"&&j>=0);var k=Math.ceil(j/26)|0,g=j%26;this._expand(k),g>0&&k--;for(var _=0;_0&&(this.words[_]=~this.words[_]&67108863>>26-g),this.strip()},U.prototype.notn=function(j){return this.clone().inotn(j)},U.prototype.setn=function(j,k){G(typeof j=="number"&&j>=0);var g=j/26|0,_=j%26;return this._expand(g+1),k?this.words[g]=this.words[g]|1<<_:this.words[g]=this.words[g]&~(1<<_),this.strip()},U.prototype.iadd=function(j){var k;if(this.negative!==0&&j.negative===0)return this.negative=0,k=this.isub(j),this.negative^=1,this._normSign();if(this.negative===0&&j.negative!==0)return j.negative=0,k=this.isub(j),j.negative=1,k._normSign();var g,_;this.length>j.length?(g=this,_=j):(g=j,_=this);for(var N=0,x=0;x<_.length;x++)k=(g.words[x]|0)+(_.words[x]|0)+N,this.words[x]=k&67108863,N=k>>>26;for(;N!==0&&x>>26;if(this.length=g.length,N!==0)this.words[this.length]=N,this.length++;else if(g!==this)for(;xj.length?this.clone().iadd(j):j.clone().iadd(this)},U.prototype.isub=function(j){if(j.negative!==0){j.negative=0;var k=this.iadd(j);return j.negative=1,k._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(j),this.negative=1,this._normSign();var g=this.cmp(j);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var _,N;g>0?(_=this,N=j):(_=j,N=this);for(var x=0,B=0;B>26,this.words[B]=k&67108863;for(;x!==0&&B<_.length;B++)k=(_.words[B]|0)+x,x=k>>26,this.words[B]=k&67108863;if(x===0&&B<_.length&&_!==this)for(;B<_.length;B++)this.words[B]=_.words[B];return this.length=Math.max(this.length,B),_!==this&&(this.negative=1),this.strip()},U.prototype.sub=function(j){return this.clone().isub(j)};function W(j,k,g){g.negative=k.negative^j.negative;var _=j.length+k.length|0;g.length=_,_=_-1|0;var N=j.words[0]|0,x=k.words[0]|0,B=N*x,y=B&67108863,w=B/67108864|0;g.words[0]=y;for(var p=1;p<_;p++){for(var f=w>>>26,c=w&67108863,h=Math.min(p,k.length-1),d=Math.max(0,p-j.length+1);d<=h;d++){var b=p-d|0;N=j.words[b]|0,x=k.words[d]|0,B=N*x+c,f+=B/67108864|0,c=B&67108863}g.words[p]=c|0,w=f|0}return w!==0?g.words[p]=w|0:g.length--,g.strip()}var E=function(j,k,g){var _=j.words,N=k.words,x=g.words,B=0,y,w,p,f=_[0]|0,c=f&8191,h=f>>>13,d=_[1]|0,b=d&8191,l=d>>>13,o=_[2]|0,u=o&8191,n=o>>>13,s=_[3]|0,t=s&8191,m=s>>>13,a=_[4]|0,e=a&8191,r=a>>>13,i=_[5]|0,$0=i&8191,Q0=i>>>13,Y0=_[6]|0,Z0=Y0&8191,G0=Y0>>>13,V0=_[7]|0,U0=V0&8191,X0=V0>>>13,K0=_[8]|0,I0=K0&8191,O0=K0>>>13,J0=_[9]|0,F0=J0&8191,A0=J0>>>13,H0=N[0]|0,W0=H0&8191,E0=H0>>>13,T0=N[1]|0,D0=T0&8191,C0=T0>>>13,L0=N[2]|0,R0=L0&8191,P0=L0>>>13,z0=N[3]|0,M0=z0&8191,S0=z0>>>13,v0=N[4]|0,q0=v0&8191,j0=v0>>>13,k0=N[5]|0,g0=k0&8191,_0=k0>>>13,N0=N[6]|0,x0=N0&8191,B0=N0>>>13,y0=N[7]|0,w0=y0&8191,p0=y0>>>13,f0=N[8]|0,c0=f0&8191,h0=f0>>>13,d0=N[9]|0,b0=d0&8191,l0=d0>>>13;g.negative=j.negative^k.negative,g.length=19,y=Math.imul(c,W0),w=Math.imul(c,E0),w=w+Math.imul(h,W0)|0,p=Math.imul(h,E0);var o0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(o0>>>26)|0,o0&=67108863,y=Math.imul(b,W0),w=Math.imul(b,E0),w=w+Math.imul(l,W0)|0,p=Math.imul(l,E0),y=y+Math.imul(c,D0)|0,w=w+Math.imul(c,C0)|0,w=w+Math.imul(h,D0)|0,p=p+Math.imul(h,C0)|0;var u0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(u0>>>26)|0,u0&=67108863,y=Math.imul(u,W0),w=Math.imul(u,E0),w=w+Math.imul(n,W0)|0,p=Math.imul(n,E0),y=y+Math.imul(b,D0)|0,w=w+Math.imul(b,C0)|0,w=w+Math.imul(l,D0)|0,p=p+Math.imul(l,C0)|0,y=y+Math.imul(c,R0)|0,w=w+Math.imul(c,P0)|0,w=w+Math.imul(h,R0)|0,p=p+Math.imul(h,P0)|0;var n0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(n0>>>26)|0,n0&=67108863,y=Math.imul(t,W0),w=Math.imul(t,E0),w=w+Math.imul(m,W0)|0,p=Math.imul(m,E0),y=y+Math.imul(u,D0)|0,w=w+Math.imul(u,C0)|0,w=w+Math.imul(n,D0)|0,p=p+Math.imul(n,C0)|0,y=y+Math.imul(b,R0)|0,w=w+Math.imul(b,P0)|0,w=w+Math.imul(l,R0)|0,p=p+Math.imul(l,P0)|0,y=y+Math.imul(c,M0)|0,w=w+Math.imul(c,S0)|0,w=w+Math.imul(h,M0)|0,p=p+Math.imul(h,S0)|0;var s0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(s0>>>26)|0,s0&=67108863,y=Math.imul(e,W0),w=Math.imul(e,E0),w=w+Math.imul(r,W0)|0,p=Math.imul(r,E0),y=y+Math.imul(t,D0)|0,w=w+Math.imul(t,C0)|0,w=w+Math.imul(m,D0)|0,p=p+Math.imul(m,C0)|0,y=y+Math.imul(u,R0)|0,w=w+Math.imul(u,P0)|0,w=w+Math.imul(n,R0)|0,p=p+Math.imul(n,P0)|0,y=y+Math.imul(b,M0)|0,w=w+Math.imul(b,S0)|0,w=w+Math.imul(l,M0)|0,p=p+Math.imul(l,S0)|0,y=y+Math.imul(c,q0)|0,w=w+Math.imul(c,j0)|0,w=w+Math.imul(h,q0)|0,p=p+Math.imul(h,j0)|0;var t0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(t0>>>26)|0,t0&=67108863,y=Math.imul($0,W0),w=Math.imul($0,E0),w=w+Math.imul(Q0,W0)|0,p=Math.imul(Q0,E0),y=y+Math.imul(e,D0)|0,w=w+Math.imul(e,C0)|0,w=w+Math.imul(r,D0)|0,p=p+Math.imul(r,C0)|0,y=y+Math.imul(t,R0)|0,w=w+Math.imul(t,P0)|0,w=w+Math.imul(m,R0)|0,p=p+Math.imul(m,P0)|0,y=y+Math.imul(u,M0)|0,w=w+Math.imul(u,S0)|0,w=w+Math.imul(n,M0)|0,p=p+Math.imul(n,S0)|0,y=y+Math.imul(b,q0)|0,w=w+Math.imul(b,j0)|0,w=w+Math.imul(l,q0)|0,p=p+Math.imul(l,j0)|0,y=y+Math.imul(c,g0)|0,w=w+Math.imul(c,_0)|0,w=w+Math.imul(h,g0)|0,p=p+Math.imul(h,_0)|0;var m0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(m0>>>26)|0,m0&=67108863,y=Math.imul(Z0,W0),w=Math.imul(Z0,E0),w=w+Math.imul(G0,W0)|0,p=Math.imul(G0,E0),y=y+Math.imul($0,D0)|0,w=w+Math.imul($0,C0)|0,w=w+Math.imul(Q0,D0)|0,p=p+Math.imul(Q0,C0)|0,y=y+Math.imul(e,R0)|0,w=w+Math.imul(e,P0)|0,w=w+Math.imul(r,R0)|0,p=p+Math.imul(r,P0)|0,y=y+Math.imul(t,M0)|0,w=w+Math.imul(t,S0)|0,w=w+Math.imul(m,M0)|0,p=p+Math.imul(m,S0)|0,y=y+Math.imul(u,q0)|0,w=w+Math.imul(u,j0)|0,w=w+Math.imul(n,q0)|0,p=p+Math.imul(n,j0)|0,y=y+Math.imul(b,g0)|0,w=w+Math.imul(b,_0)|0,w=w+Math.imul(l,g0)|0,p=p+Math.imul(l,_0)|0,y=y+Math.imul(c,x0)|0,w=w+Math.imul(c,B0)|0,w=w+Math.imul(h,x0)|0,p=p+Math.imul(h,B0)|0;var a0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(a0>>>26)|0,a0&=67108863,y=Math.imul(U0,W0),w=Math.imul(U0,E0),w=w+Math.imul(X0,W0)|0,p=Math.imul(X0,E0),y=y+Math.imul(Z0,D0)|0,w=w+Math.imul(Z0,C0)|0,w=w+Math.imul(G0,D0)|0,p=p+Math.imul(G0,C0)|0,y=y+Math.imul($0,R0)|0,w=w+Math.imul($0,P0)|0,w=w+Math.imul(Q0,R0)|0,p=p+Math.imul(Q0,P0)|0,y=y+Math.imul(e,M0)|0,w=w+Math.imul(e,S0)|0,w=w+Math.imul(r,M0)|0,p=p+Math.imul(r,S0)|0,y=y+Math.imul(t,q0)|0,w=w+Math.imul(t,j0)|0,w=w+Math.imul(m,q0)|0,p=p+Math.imul(m,j0)|0,y=y+Math.imul(u,g0)|0,w=w+Math.imul(u,_0)|0,w=w+Math.imul(n,g0)|0,p=p+Math.imul(n,_0)|0,y=y+Math.imul(b,x0)|0,w=w+Math.imul(b,B0)|0,w=w+Math.imul(l,x0)|0,p=p+Math.imul(l,B0)|0,y=y+Math.imul(c,w0)|0,w=w+Math.imul(c,p0)|0,w=w+Math.imul(h,w0)|0,p=p+Math.imul(h,p0)|0;var e0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(e0>>>26)|0,e0&=67108863,y=Math.imul(I0,W0),w=Math.imul(I0,E0),w=w+Math.imul(O0,W0)|0,p=Math.imul(O0,E0),y=y+Math.imul(U0,D0)|0,w=w+Math.imul(U0,C0)|0,w=w+Math.imul(X0,D0)|0,p=p+Math.imul(X0,C0)|0,y=y+Math.imul(Z0,R0)|0,w=w+Math.imul(Z0,P0)|0,w=w+Math.imul(G0,R0)|0,p=p+Math.imul(G0,P0)|0,y=y+Math.imul($0,M0)|0,w=w+Math.imul($0,S0)|0,w=w+Math.imul(Q0,M0)|0,p=p+Math.imul(Q0,S0)|0,y=y+Math.imul(e,q0)|0,w=w+Math.imul(e,j0)|0,w=w+Math.imul(r,q0)|0,p=p+Math.imul(r,j0)|0,y=y+Math.imul(t,g0)|0,w=w+Math.imul(t,_0)|0,w=w+Math.imul(m,g0)|0,p=p+Math.imul(m,_0)|0,y=y+Math.imul(u,x0)|0,w=w+Math.imul(u,B0)|0,w=w+Math.imul(n,x0)|0,p=p+Math.imul(n,B0)|0,y=y+Math.imul(b,w0)|0,w=w+Math.imul(b,p0)|0,w=w+Math.imul(l,w0)|0,p=p+Math.imul(l,p0)|0,y=y+Math.imul(c,c0)|0,w=w+Math.imul(c,h0)|0,w=w+Math.imul(h,c0)|0,p=p+Math.imul(h,h0)|0;var r0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(r0>>>26)|0,r0&=67108863,y=Math.imul(F0,W0),w=Math.imul(F0,E0),w=w+Math.imul(A0,W0)|0,p=Math.imul(A0,E0),y=y+Math.imul(I0,D0)|0,w=w+Math.imul(I0,C0)|0,w=w+Math.imul(O0,D0)|0,p=p+Math.imul(O0,C0)|0,y=y+Math.imul(U0,R0)|0,w=w+Math.imul(U0,P0)|0,w=w+Math.imul(X0,R0)|0,p=p+Math.imul(X0,P0)|0,y=y+Math.imul(Z0,M0)|0,w=w+Math.imul(Z0,S0)|0,w=w+Math.imul(G0,M0)|0,p=p+Math.imul(G0,S0)|0,y=y+Math.imul($0,q0)|0,w=w+Math.imul($0,j0)|0,w=w+Math.imul(Q0,q0)|0,p=p+Math.imul(Q0,j0)|0,y=y+Math.imul(e,g0)|0,w=w+Math.imul(e,_0)|0,w=w+Math.imul(r,g0)|0,p=p+Math.imul(r,_0)|0,y=y+Math.imul(t,x0)|0,w=w+Math.imul(t,B0)|0,w=w+Math.imul(m,x0)|0,p=p+Math.imul(m,B0)|0,y=y+Math.imul(u,w0)|0,w=w+Math.imul(u,p0)|0,w=w+Math.imul(n,w0)|0,p=p+Math.imul(n,p0)|0,y=y+Math.imul(b,c0)|0,w=w+Math.imul(b,h0)|0,w=w+Math.imul(l,c0)|0,p=p+Math.imul(l,h0)|0,y=y+Math.imul(c,b0)|0,w=w+Math.imul(c,l0)|0,w=w+Math.imul(h,b0)|0,p=p+Math.imul(h,l0)|0;var i0=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(i0>>>26)|0,i0&=67108863,y=Math.imul(F0,D0),w=Math.imul(F0,C0),w=w+Math.imul(A0,D0)|0,p=Math.imul(A0,C0),y=y+Math.imul(I0,R0)|0,w=w+Math.imul(I0,P0)|0,w=w+Math.imul(O0,R0)|0,p=p+Math.imul(O0,P0)|0,y=y+Math.imul(U0,M0)|0,w=w+Math.imul(U0,S0)|0,w=w+Math.imul(X0,M0)|0,p=p+Math.imul(X0,S0)|0,y=y+Math.imul(Z0,q0)|0,w=w+Math.imul(Z0,j0)|0,w=w+Math.imul(G0,q0)|0,p=p+Math.imul(G0,j0)|0,y=y+Math.imul($0,g0)|0,w=w+Math.imul($0,_0)|0,w=w+Math.imul(Q0,g0)|0,p=p+Math.imul(Q0,_0)|0,y=y+Math.imul(e,x0)|0,w=w+Math.imul(e,B0)|0,w=w+Math.imul(r,x0)|0,p=p+Math.imul(r,B0)|0,y=y+Math.imul(t,w0)|0,w=w+Math.imul(t,p0)|0,w=w+Math.imul(m,w0)|0,p=p+Math.imul(m,p0)|0,y=y+Math.imul(u,c0)|0,w=w+Math.imul(u,h0)|0,w=w+Math.imul(n,c0)|0,p=p+Math.imul(n,h0)|0,y=y+Math.imul(b,b0)|0,w=w+Math.imul(b,l0)|0,w=w+Math.imul(l,b0)|0,p=p+Math.imul(l,l0)|0;var $$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+($$>>>26)|0,$$&=67108863,y=Math.imul(F0,R0),w=Math.imul(F0,P0),w=w+Math.imul(A0,R0)|0,p=Math.imul(A0,P0),y=y+Math.imul(I0,M0)|0,w=w+Math.imul(I0,S0)|0,w=w+Math.imul(O0,M0)|0,p=p+Math.imul(O0,S0)|0,y=y+Math.imul(U0,q0)|0,w=w+Math.imul(U0,j0)|0,w=w+Math.imul(X0,q0)|0,p=p+Math.imul(X0,j0)|0,y=y+Math.imul(Z0,g0)|0,w=w+Math.imul(Z0,_0)|0,w=w+Math.imul(G0,g0)|0,p=p+Math.imul(G0,_0)|0,y=y+Math.imul($0,x0)|0,w=w+Math.imul($0,B0)|0,w=w+Math.imul(Q0,x0)|0,p=p+Math.imul(Q0,B0)|0,y=y+Math.imul(e,w0)|0,w=w+Math.imul(e,p0)|0,w=w+Math.imul(r,w0)|0,p=p+Math.imul(r,p0)|0,y=y+Math.imul(t,c0)|0,w=w+Math.imul(t,h0)|0,w=w+Math.imul(m,c0)|0,p=p+Math.imul(m,h0)|0,y=y+Math.imul(u,b0)|0,w=w+Math.imul(u,l0)|0,w=w+Math.imul(n,b0)|0,p=p+Math.imul(n,l0)|0;var Q$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,y=Math.imul(F0,M0),w=Math.imul(F0,S0),w=w+Math.imul(A0,M0)|0,p=Math.imul(A0,S0),y=y+Math.imul(I0,q0)|0,w=w+Math.imul(I0,j0)|0,w=w+Math.imul(O0,q0)|0,p=p+Math.imul(O0,j0)|0,y=y+Math.imul(U0,g0)|0,w=w+Math.imul(U0,_0)|0,w=w+Math.imul(X0,g0)|0,p=p+Math.imul(X0,_0)|0,y=y+Math.imul(Z0,x0)|0,w=w+Math.imul(Z0,B0)|0,w=w+Math.imul(G0,x0)|0,p=p+Math.imul(G0,B0)|0,y=y+Math.imul($0,w0)|0,w=w+Math.imul($0,p0)|0,w=w+Math.imul(Q0,w0)|0,p=p+Math.imul(Q0,p0)|0,y=y+Math.imul(e,c0)|0,w=w+Math.imul(e,h0)|0,w=w+Math.imul(r,c0)|0,p=p+Math.imul(r,h0)|0,y=y+Math.imul(t,b0)|0,w=w+Math.imul(t,l0)|0,w=w+Math.imul(m,b0)|0,p=p+Math.imul(m,l0)|0;var Y$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Y$>>>26)|0,Y$&=67108863,y=Math.imul(F0,q0),w=Math.imul(F0,j0),w=w+Math.imul(A0,q0)|0,p=Math.imul(A0,j0),y=y+Math.imul(I0,g0)|0,w=w+Math.imul(I0,_0)|0,w=w+Math.imul(O0,g0)|0,p=p+Math.imul(O0,_0)|0,y=y+Math.imul(U0,x0)|0,w=w+Math.imul(U0,B0)|0,w=w+Math.imul(X0,x0)|0,p=p+Math.imul(X0,B0)|0,y=y+Math.imul(Z0,w0)|0,w=w+Math.imul(Z0,p0)|0,w=w+Math.imul(G0,w0)|0,p=p+Math.imul(G0,p0)|0,y=y+Math.imul($0,c0)|0,w=w+Math.imul($0,h0)|0,w=w+Math.imul(Q0,c0)|0,p=p+Math.imul(Q0,h0)|0,y=y+Math.imul(e,b0)|0,w=w+Math.imul(e,l0)|0,w=w+Math.imul(r,b0)|0,p=p+Math.imul(r,l0)|0;var Z$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(Z$>>>26)|0,Z$&=67108863,y=Math.imul(F0,g0),w=Math.imul(F0,_0),w=w+Math.imul(A0,g0)|0,p=Math.imul(A0,_0),y=y+Math.imul(I0,x0)|0,w=w+Math.imul(I0,B0)|0,w=w+Math.imul(O0,x0)|0,p=p+Math.imul(O0,B0)|0,y=y+Math.imul(U0,w0)|0,w=w+Math.imul(U0,p0)|0,w=w+Math.imul(X0,w0)|0,p=p+Math.imul(X0,p0)|0,y=y+Math.imul(Z0,c0)|0,w=w+Math.imul(Z0,h0)|0,w=w+Math.imul(G0,c0)|0,p=p+Math.imul(G0,h0)|0,y=y+Math.imul($0,b0)|0,w=w+Math.imul($0,l0)|0,w=w+Math.imul(Q0,b0)|0,p=p+Math.imul(Q0,l0)|0;var G$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(G$>>>26)|0,G$&=67108863,y=Math.imul(F0,x0),w=Math.imul(F0,B0),w=w+Math.imul(A0,x0)|0,p=Math.imul(A0,B0),y=y+Math.imul(I0,w0)|0,w=w+Math.imul(I0,p0)|0,w=w+Math.imul(O0,w0)|0,p=p+Math.imul(O0,p0)|0,y=y+Math.imul(U0,c0)|0,w=w+Math.imul(U0,h0)|0,w=w+Math.imul(X0,c0)|0,p=p+Math.imul(X0,h0)|0,y=y+Math.imul(Z0,b0)|0,w=w+Math.imul(Z0,l0)|0,w=w+Math.imul(G0,b0)|0,p=p+Math.imul(G0,l0)|0;var V$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(V$>>>26)|0,V$&=67108863,y=Math.imul(F0,w0),w=Math.imul(F0,p0),w=w+Math.imul(A0,w0)|0,p=Math.imul(A0,p0),y=y+Math.imul(I0,c0)|0,w=w+Math.imul(I0,h0)|0,w=w+Math.imul(O0,c0)|0,p=p+Math.imul(O0,h0)|0,y=y+Math.imul(U0,b0)|0,w=w+Math.imul(U0,l0)|0,w=w+Math.imul(X0,b0)|0,p=p+Math.imul(X0,l0)|0;var U$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(U$>>>26)|0,U$&=67108863,y=Math.imul(F0,c0),w=Math.imul(F0,h0),w=w+Math.imul(A0,c0)|0,p=Math.imul(A0,h0),y=y+Math.imul(I0,b0)|0,w=w+Math.imul(I0,l0)|0,w=w+Math.imul(O0,b0)|0,p=p+Math.imul(O0,l0)|0;var X$=(B+y|0)+((w&8191)<<13)|0;B=(p+(w>>>13)|0)+(X$>>>26)|0,X$&=67108863,y=Math.imul(F0,b0),w=Math.imul(F0,l0),w=w+Math.imul(A0,b0)|0,p=Math.imul(A0,l0);var K$=(B+y|0)+((w&8191)<<13)|0;return B=(p+(w>>>13)|0)+(K$>>>26)|0,K$&=67108863,x[0]=o0,x[1]=u0,x[2]=n0,x[3]=s0,x[4]=t0,x[5]=m0,x[6]=a0,x[7]=e0,x[8]=r0,x[9]=i0,x[10]=$$,x[11]=Q$,x[12]=Y$,x[13]=Z$,x[14]=G$,x[15]=V$,x[16]=U$,x[17]=X$,x[18]=K$,B!==0&&(x[19]=B,g.length++),g};Math.imul||(E=W);function T(j,k,g){g.negative=k.negative^j.negative,g.length=j.length+k.length;for(var _=0,N=0,x=0;x>>26)|0,N+=B>>>26,B&=67108863}g.words[x]=y,_=B,B=N}return _!==0?g.words[x]=_:g.length--,g.strip()}function D(j,k,g){var _=new C;return _.mulp(j,k,g)}U.prototype.mulTo=function(j,k){var g,_=this.length+j.length;return this.length===10&&j.length===10?g=E(this,j,k):_<63?g=W(this,j,k):_<1024?g=T(this,j,k):g=D(this,j,k),g};function C(j,k){this.x=j,this.y=k}C.prototype.makeRBT=function(j){for(var k=new Array(j),g=U.prototype._countBits(j)-1,_=0;_>=1;return _},C.prototype.permute=function(j,k,g,_,N,x){for(var B=0;B>>1)N++;return 1<>>13,g[2*x+1]=N&8191,N=N>>>13;for(x=2*k;x<_;++x)g[x]=0;G(N===0),G((N&-8192)===0)},C.prototype.stub=function(j){for(var k=new Array(j),g=0;g>=26,k+=_/67108864|0,k+=N>>>26,this.words[g]=N&67108863}return k!==0&&(this.words[g]=k,this.length++),this},U.prototype.muln=function(j){return this.clone().imuln(j)},U.prototype.sqr=function(){return this.mul(this)},U.prototype.isqr=function(){return this.imul(this.clone())},U.prototype.pow=function(j){var k=H(j);if(k.length===0)return new U(1);for(var g=this,_=0;_=0);var k=j%26,g=(j-k)/26,_=67108863>>>26-k<<26-k,N;if(k!==0){var x=0;for(N=0;N>>26-k}x&&(this.words[N]=x,this.length++)}if(g!==0){for(N=this.length-1;N>=0;N--)this.words[N+g]=this.words[N];for(N=0;N=0);var _;k?_=(k-k%26)/26:_=0;var N=j%26,x=Math.min((j-N)/26,this.length),B=67108863^67108863>>>N<x)for(this.length-=x,w=0;w=0&&(p!==0||w>=_);w--){var f=this.words[w]|0;this.words[w]=p<<26-N|f>>>N,p=f&B}return y&&p!==0&&(y.words[y.length++]=p),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},U.prototype.ishrn=function(j,k,g){return G(this.negative===0),this.iushrn(j,k,g)},U.prototype.shln=function(j){return this.clone().ishln(j)},U.prototype.ushln=function(j){return this.clone().iushln(j)},U.prototype.shrn=function(j){return this.clone().ishrn(j)},U.prototype.ushrn=function(j){return this.clone().iushrn(j)},U.prototype.testn=function(j){G(typeof j=="number"&&j>=0);var k=j%26,g=(j-k)/26,_=1<=0);var k=j%26,g=(j-k)/26;if(G(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(k!==0&&g++,this.length=Math.min(g,this.length),k!==0){var _=67108863^67108863>>>k<=67108864;k++)this.words[k]-=67108864,k===this.length-1?this.words[k+1]=1:this.words[k+1]++;return this.length=Math.max(this.length,k+1),this},U.prototype.isubn=function(j){if(G(typeof j=="number"),G(j<67108864),j<0)return this.iaddn(-j);if(this.negative!==0)return this.negative=0,this.iaddn(j),this.negative=1,this;if(this.words[0]-=j,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var k=0;k>26)-(y/67108864|0),this.words[N+g]=x&67108863}for(;N>26,this.words[N+g]=x&67108863;if(B===0)return this.strip();for(G(B===-1),B=0,N=0;N>26,this.words[N]=x&67108863;return this.negative=1,this.strip()},U.prototype._wordDiv=function(j,k){var g=this.length-j.length,_=this.clone(),N=j,x=N.words[N.length-1]|0,B=this._countBits(x);g=26-B,g!==0&&(N=N.ushln(g),_.iushln(g),x=N.words[N.length-1]|0);var y=_.length-N.length,w;if(k!=="mod"){w=new U(null),w.length=y+1,w.words=new Array(w.length);for(var p=0;p=0;c--){var h=(_.words[N.length+c]|0)*67108864+(_.words[N.length+c-1]|0);for(h=Math.min(h/x|0,67108863),_._ishlnsubmul(N,h,c);_.negative!==0;)h--,_.negative=0,_._ishlnsubmul(N,1,c),_.isZero()||(_.negative^=1);w&&(w.words[c]=h)}return w&&w.strip(),_.strip(),k!=="div"&&g!==0&&_.iushrn(g),{div:w||null,mod:_}},U.prototype.divmod=function(j,k,g){if(G(!j.isZero()),this.isZero())return{div:new U(0),mod:new U(0)};var _,N,x;return this.negative!==0&&j.negative===0?(x=this.neg().divmod(j,k),k!=="mod"&&(_=x.div.neg()),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.iadd(j)),{div:_,mod:N}):this.negative===0&&j.negative!==0?(x=this.divmod(j.neg(),k),k!=="mod"&&(_=x.div.neg()),{div:_,mod:x.mod}):(this.negative&j.negative)!==0?(x=this.neg().divmod(j.neg(),k),k!=="div"&&(N=x.mod.neg(),g&&N.negative!==0&&N.isub(j)),{div:x.div,mod:N}):j.length>this.length||this.cmp(j)<0?{div:new U(0),mod:this}:j.length===1?k==="div"?{div:this.divn(j.words[0]),mod:null}:k==="mod"?{div:null,mod:new U(this.modn(j.words[0]))}:{div:this.divn(j.words[0]),mod:new U(this.modn(j.words[0]))}:this._wordDiv(j,k)},U.prototype.div=function(j){return this.divmod(j,"div",!1).div},U.prototype.mod=function(j){return this.divmod(j,"mod",!1).mod},U.prototype.umod=function(j){return this.divmod(j,"mod",!0).mod},U.prototype.divRound=function(j){var k=this.divmod(j);if(k.mod.isZero())return k.div;var g=k.div.negative!==0?k.mod.isub(j):k.mod,_=j.ushrn(1),N=j.andln(1),x=g.cmp(_);return x<0||N===1&&x===0?k.div:k.div.negative!==0?k.div.isubn(1):k.div.iaddn(1)},U.prototype.modn=function(j){G(j<=67108863);for(var k=(1<<26)%j,g=0,_=this.length-1;_>=0;_--)g=(k*g+(this.words[_]|0))%j;return g},U.prototype.idivn=function(j){G(j<=67108863);for(var k=0,g=this.length-1;g>=0;g--){var _=(this.words[g]|0)+k*67108864;this.words[g]=_/j|0,k=_%j}return this.strip()},U.prototype.divn=function(j){return this.clone().idivn(j)},U.prototype.egcd=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=new U(0),B=new U(1),y=0;k.isEven()&&g.isEven();)k.iushrn(1),g.iushrn(1),++y;for(var w=g.clone(),p=k.clone();!k.isZero();){for(var f=0,c=1;(k.words[0]&c)===0&&f<26;++f,c<<=1);if(f>0)for(k.iushrn(f);f-- >0;)(_.isOdd()||N.isOdd())&&(_.iadd(w),N.isub(p)),_.iushrn(1),N.iushrn(1);for(var h=0,d=1;(g.words[0]&d)===0&&h<26;++h,d<<=1);if(h>0)for(g.iushrn(h);h-- >0;)(x.isOdd()||B.isOdd())&&(x.iadd(w),B.isub(p)),x.iushrn(1),B.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(x),N.isub(B)):(g.isub(k),x.isub(_),B.isub(N))}return{a:x,b:B,gcd:g.iushln(y)}},U.prototype._invmp=function(j){G(j.negative===0),G(!j.isZero());var k=this,g=j.clone();k.negative!==0?k=k.umod(j):k=k.clone();for(var _=new U(1),N=new U(0),x=g.clone();k.cmpn(1)>0&&g.cmpn(1)>0;){for(var B=0,y=1;(k.words[0]&y)===0&&B<26;++B,y<<=1);if(B>0)for(k.iushrn(B);B-- >0;)_.isOdd()&&_.iadd(x),_.iushrn(1);for(var w=0,p=1;(g.words[0]&p)===0&&w<26;++w,p<<=1);if(w>0)for(g.iushrn(w);w-- >0;)N.isOdd()&&N.iadd(x),N.iushrn(1);k.cmp(g)>=0?(k.isub(g),_.isub(N)):(g.isub(k),N.isub(_))}var f;return k.cmpn(1)===0?f=_:f=N,f.cmpn(0)<0&&f.iadd(j),f},U.prototype.gcd=function(j){if(this.isZero())return j.abs();if(j.isZero())return this.abs();var k=this.clone(),g=j.clone();k.negative=0,g.negative=0;for(var _=0;k.isEven()&&g.isEven();_++)k.iushrn(1),g.iushrn(1);do{for(;k.isEven();)k.iushrn(1);for(;g.isEven();)g.iushrn(1);var N=k.cmp(g);if(N<0){var x=k;k=g,g=x}else if(N===0||g.cmpn(1)===0)break;k.isub(g)}while(!0);return g.iushln(_)},U.prototype.invm=function(j){return this.egcd(j).a.umod(j)},U.prototype.isEven=function(){return(this.words[0]&1)===0},U.prototype.isOdd=function(){return(this.words[0]&1)===1},U.prototype.andln=function(j){return this.words[0]&j},U.prototype.bincn=function(j){G(typeof j=="number");var k=j%26,g=(j-k)/26,_=1<>>26,B&=67108863,this.words[x]=B}return N!==0&&(this.words[x]=N,this.length++),this},U.prototype.isZero=function(){return this.length===1&&this.words[0]===0},U.prototype.cmpn=function(j){var k=j<0;if(this.negative!==0&&!k)return-1;if(this.negative===0&&k)return 1;this.strip();var g;if(this.length>1)g=1;else{k&&(j=-j),G(j<=67108863,"Number is too big");var _=this.words[0]|0;g=_===j?0:_j.length)return 1;if(this.length=0;g--){var _=this.words[g]|0,N=j.words[g]|0;if(_!==N){_N&&(k=1);break}}return k},U.prototype.gtn=function(j){return this.cmpn(j)===1},U.prototype.gt=function(j){return this.cmp(j)===1},U.prototype.gten=function(j){return this.cmpn(j)>=0},U.prototype.gte=function(j){return this.cmp(j)>=0},U.prototype.ltn=function(j){return this.cmpn(j)===-1},U.prototype.lt=function(j){return this.cmp(j)===-1},U.prototype.lten=function(j){return this.cmpn(j)<=0},U.prototype.lte=function(j){return this.cmp(j)<=0},U.prototype.eqn=function(j){return this.cmpn(j)===0},U.prototype.eq=function(j){return this.cmp(j)===0},U.red=function(j){return new v(j)},U.prototype.toRed=function(j){return G(!this.red,"Already a number in reduction context"),G(this.negative===0,"red works only with positives"),j.convertTo(this)._forceRed(j)},U.prototype.fromRed=function(){return G(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},U.prototype._forceRed=function(j){return this.red=j,this},U.prototype.forceRed=function(j){return G(!this.red,"Already a number in reduction context"),this._forceRed(j)},U.prototype.redAdd=function(j){return G(this.red,"redAdd works only with red numbers"),this.red.add(this,j)},U.prototype.redIAdd=function(j){return G(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,j)},U.prototype.redSub=function(j){return G(this.red,"redSub works only with red numbers"),this.red.sub(this,j)},U.prototype.redISub=function(j){return G(this.red,"redISub works only with red numbers"),this.red.isub(this,j)},U.prototype.redShl=function(j){return G(this.red,"redShl works only with red numbers"),this.red.shl(this,j)},U.prototype.redMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.mul(this,j)},U.prototype.redIMul=function(j){return G(this.red,"redMul works only with red numbers"),this.red._verify2(this,j),this.red.imul(this,j)},U.prototype.redSqr=function(){return G(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},U.prototype.redISqr=function(){return G(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},U.prototype.redSqrt=function(){return G(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},U.prototype.redInvm=function(){return G(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},U.prototype.redNeg=function(){return G(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},U.prototype.redPow=function(j){return G(this.red&&!j.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,j)};var L={k256:null,p224:null,p192:null,p25519:null};function R(j,k){this.name=j,this.p=new U(k,16),this.n=this.p.bitLength(),this.k=new U(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}R.prototype._tmp=function(){var j=new U(null);return j.words=new Array(Math.ceil(this.n/13)),j},R.prototype.ireduce=function(j){var k=j,g;do this.split(k,this.tmp),k=this.imulK(k),k=k.iadd(this.tmp),g=k.bitLength();while(g>this.n);var _=g0?k.isub(this.p):k.strip!==void 0?k.strip():k._strip(),k},R.prototype.split=function(j,k){j.iushrn(this.n,0,k)},R.prototype.imulK=function(j){return j.imul(this.k)};function P(){R.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}V(P,R),P.prototype.split=function(j,k){for(var g=4194303,_=Math.min(j.length,9),N=0;N<_;N++)k.words[N]=j.words[N];if(k.length=_,j.length<=9){j.words[0]=0,j.length=1;return}var x=j.words[9];for(k.words[k.length++]=x&g,N=10;N>>22,x=B}x>>>=22,j.words[N-10]=x,x===0&&j.length>10?j.length-=10:j.length-=9},P.prototype.imulK=function(j){j.words[j.length]=0,j.words[j.length+1]=0,j.length+=2;for(var k=0,g=0;g>>=26,j.words[g]=N,k=_}return k!==0&&(j.words[j.length++]=k),j},U._prime=function(j){if(L[j])return L[j];var k;if(j==="k256")k=new P;else if(j==="p224")k=new z;else if(j==="p192")k=new M;else if(j==="p25519")k=new S;else throw new Error("Unknown prime "+j);return L[j]=k,k};function v(j){if(typeof j=="string"){var k=U._prime(j);this.m=k.p,this.prime=k}else G(j.gtn(1),"modulus must be greater than 1"),this.m=j,this.prime=null}v.prototype._verify1=function(j){G(j.negative===0,"red works only with positives"),G(j.red,"red works only with red numbers")},v.prototype._verify2=function(j,k){G((j.negative|k.negative)===0,"red works only with positives"),G(j.red&&j.red===k.red,"red works only with red numbers")},v.prototype.imod=function(j){return this.prime?this.prime.ireduce(j)._forceRed(this):j.umod(this.m)._forceRed(this)},v.prototype.neg=function(j){return j.isZero()?j.clone():this.m.sub(j)._forceRed(this)},v.prototype.add=function(j,k){this._verify2(j,k);var g=j.add(k);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},v.prototype.iadd=function(j,k){this._verify2(j,k);var g=j.iadd(k);return g.cmp(this.m)>=0&&g.isub(this.m),g},v.prototype.sub=function(j,k){this._verify2(j,k);var g=j.sub(k);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},v.prototype.isub=function(j,k){this._verify2(j,k);var g=j.isub(k);return g.cmpn(0)<0&&g.iadd(this.m),g},v.prototype.shl=function(j,k){return this._verify1(j),this.imod(j.ushln(k))},v.prototype.imul=function(j,k){return this._verify2(j,k),this.imod(j.imul(k))},v.prototype.mul=function(j,k){return this._verify2(j,k),this.imod(j.mul(k))},v.prototype.isqr=function(j){return this.imul(j,j.clone())},v.prototype.sqr=function(j){return this.mul(j,j)},v.prototype.sqrt=function(j){if(j.isZero())return j.clone();var k=this.m.andln(3);if(G(k%2===1),k===3){var g=this.m.add(new U(1)).iushrn(2);return this.pow(j,g)}for(var _=this.m.subn(1),N=0;!_.isZero()&&_.andln(1)===0;)N++,_.iushrn(1);G(!_.isZero());var x=new U(1).toRed(this),B=x.redNeg(),y=this.m.subn(1).iushrn(1),w=this.m.bitLength();for(w=new U(2*w*w).toRed(this);this.pow(w,y).cmp(B)!==0;)w.redIAdd(B);for(var p=this.pow(w,_),f=this.pow(j,_.addn(1).iushrn(1)),c=this.pow(j,_),h=N;c.cmp(x)!==0;){for(var d=c,b=0;d.cmp(x)!==0;b++)d=d.redSqr();G(b=0;N--){for(var p=k.words[N],f=w-1;f>=0;f--){var c=p>>f&1;if(x!==_[0]&&(x=this.sqr(x)),c===0&&B===0){y=0;continue}B<<=1,B|=c,y++,!(y!==g&&(N!==0||f!==0))&&(x=this.mul(x,_[B]),y=0,B=0)}w=26}return x},v.prototype.convertTo=function(j){var k=j.umod(this.m);return k===j?k.clone():k},v.prototype.convertFrom=function(j){var k=j.clone();return k.red=null,k},U.mont=function(j){return new q(j)};function q(j){v.call(this,j),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new U(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}V(q,v),q.prototype.convertTo=function(j){return this.imod(j.ushln(this.shift))},q.prototype.convertFrom=function(j){var k=this.imod(j.mul(this.rinv));return k.red=null,k},q.prototype.imul=function(j,k){if(j.isZero()||k.isZero())return j.words[0]=0,j.length=1,j;var g=j.imul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.mul=function(j,k){if(j.isZero()||k.isZero())return new U(0)._forceRed(this);var g=j.mul(k),_=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=g.isub(_).iushrn(this.shift),x=N;return N.cmp(this.m)>=0?x=N.isub(this.m):N.cmpn(0)<0&&(x=N.iadd(this.m)),x._forceRed(this)},q.prototype.invm=function(j){var k=this.imod(j._invmp(this.m).mul(this.r2));return k._forceRed(this)}})(typeof Q>"u"||Q,$)}}),{CryptoHasher:sY}=globalThis.Bun,tY=q$({"node_modules/public-encrypt/withPublic.js"($,Q){var Y=nY(),Z=k$().Buffer;function G(V,U){return Z.from(V.toRed(Y.mont(U.modulus)).redPow(new Y(U.publicExponent)).fromRed().toArray())}Q.exports=G}}),mY=q$({"node_modules/public-encrypt/publicEncrypt.js"($,Q){var Y=pY(),Z=g$(),G=o$(),V=oY(),U=uY(),X=nY(),K=tY(),I=hQ(),O=k$().Buffer;Q.exports=function(H,W,E){var T;H.padding?T=H.padding:E?T=1:T=4;var D=Y(H),C;if(T===4)C=J(D,W);else if(T===1)C=F(D,W,E);else if(T===3){if(C=new X(W),C.cmp(D.modulus)>=0)throw new Error("data too long for modulus")}else throw new Error("unknown padding");return E?I(C,D):K(C,D)};function J(H,W){var E=H.modulus.byteLength(),T=W.length,D=G("sha1").update(O.alloc(0)).digest(),C=D.length,L=2*C;if(T>E-L-2)throw new Error("message too long");var R=O.alloc(E-T-L-2),P=E-C-1,z=Z(C),M=U(O.concat([D,R,O.alloc(1,1),W],P),V(z,P)),S=U(z,V(M,C));return new X(O.concat([O.alloc(1),S,M],E))}function F(H,W,E){var T=W.length,D=H.modulus.byteLength();if(T>D-11)throw new Error("message too long");var C;return E?C=O.alloc(D-T-3,255):C=A(D-T-3),new X(O.concat([O.from([0,E?1:2]),C,O.alloc(1),W],D))}function A(H){for(var W=O.allocUnsafe(H),E=0,T=Z(H*2),D=0,C;ED||new V(H).cmp(T.modulus)>=0)throw new Error("decryption error");var C;W?C=K(new V(H),T):C=U(H,T);var L=I.alloc(D-C.length);if(C=I.concat([L,C],D),E===4)return O(T,C);if(E===1)return J(T,C,W);if(E===3)return C;throw new Error("unknown padding")};function O(A,H){var W=A.modulus.byteLength(),E=X("sha1").update(I.alloc(0)).digest(),T=E.length;if(H[0]!==0)throw new Error("decryption error");var D=H.slice(1,T+1),C=H.slice(T+1),L=G(D,Z(C,T)),R=G(C,Z(L,W-T-1));if(F(E,R.slice(0,T)))throw new Error("decryption error");for(var P=T;R[P]===0;)P++;if(R[P++]!==1)throw new Error("decryption error");return R.slice(P)}function J(A,H,W){for(var E=H.slice(0,2),T=2,D=0;H[T++]!==0;)if(T>=H.length){D++;break}var C=H.slice(2,T-1);if((E.toString("hex")!=="0002"&&!W||E.toString("hex")!=="0001"&&W)&&D++,C.length<8&&D++,D)throw new Error("decryption error");return H.slice(T)}function F(A,H){A=I.from(A),H=I.from(H);var W=0,E=A.length;A.length!==H.length&&(W++,E=Math.min(A.length,H.length));for(var T=-1;++TV||J<0)throw new TypeError("offset must be a uint32");if(J>G||J>F)throw new RangeError("offset out of range")}function X(J,F,A){if(typeof J!="number"||J!==J)throw new TypeError("size must be a number");if(J>V||J<0)throw new TypeError("size must be a uint32");if(J+F>A||J>G)throw new RangeError("buffer too small")}$.randomFill=K,$.randomFillSync=O;function K(J,F,A,H){if(!Z.isBuffer(J)&&!(J instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if(typeof F=="function")H=F,F=0,A=J.length;else if(typeof A=="function")H=A,A=J.length-F;else if(typeof H!="function")throw new TypeError('"cb" argument must be a function');return U(F,J.length),X(A,F,J.length),I(J,F,A,H)}function I(J,F,A,H){if(H){Y(A,function(E,T){if(E)return H(E);T.copy(J,F),H(null,J)});return}var W=Y(A);return W.copy(J,F),J}function O(J,F,A){if(typeof F>"u"&&(F=0),!Z.isBuffer(J)&&!(J instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return U(F,J.length),A===void 0&&(A=J.length-F),X(A,F,J.length),I(J,F,A)}}}),iY=q$({"node_modules/crypto-browserify/index.js"($){$.randomBytes=$.rng=$.pseudoRandomBytes=$.prng=g$(),$.createHash=o$(),$.Hash=$.createHash.Hash,$.createHmac=$.Hmac=s$();var Q=m$(),Y=Object.keys(Q),Z=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(Y);$.getHashes=function(){return Z};var G=QQ();$.pbkdf2=G.pbkdf2,$.pbkdf2Sync=G.pbkdf2Sync;var V=kQ();$.Cipher=V.Cipher,$.createCipher=V.createCipher,$.Cipheriv=V.Cipheriv,$.createCipheriv=V.createCipheriv,$.Decipher=V.Decipher,$.createDecipher=V.createDecipher,$.Decipheriv=V.Decipheriv,$.createDecipheriv=V.createDecipheriv,$.getCiphers=V.getCiphers,$.listCiphers=V.listCiphers;var U=fQ();$.DiffieHellmanGroup=U.DiffieHellmanGroup,$.createDiffieHellmanGroup=U.createDiffieHellmanGroup,$.getDiffieHellman=U.getDiffieHellman,$.createDiffieHellman=U.createDiffieHellman,$.DiffieHellman=U.DiffieHellman;var X=dY();$.createSign=X.createSign,$.Sign=X.Sign,$.createVerify=X.createVerify,$.Verify=X.Verify,$.createECDH=lY();var K=eY();$.publicEncrypt=K.publicEncrypt,$.privateEncrypt=K.privateEncrypt,$.publicDecrypt=K.publicDecrypt,$.privateDecrypt=K.privateDecrypt,$.getRandomValues=(O)=>H$.getRandomValues(O);var I=rY();$.randomFill=I.randomFill,$.randomFillSync=I.randomFillSync,$.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join(` +`))},$.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}}}),$Z={...iY(),[Symbol.for("CommonJS")]:0},T$="buffer",QZ=($)=>H$.getRandomValues($),YZ=()=>H$.randomUUID(),ZZ=(...$)=>H$.randomInt(...$),D$="timingSafeEqual"in H$?($,Q)=>{let{byteLength:Y}=$,{byteLength:Z}=Q;if(typeof Y!="number"||typeof Z!="number")throw new TypeError("Input must be an array buffer view");if(Y!==Z)throw new RangeError("Input buffers must have the same length");return H$.timingSafeEqual($,Q)}:void 0,GZ="scryptSync"in H$?($,Q,Y,Z)=>{let G=H$.scryptSync($,Q,Y,Z);return T$!=="buffer"?new F$(G).toString(T$):new F$(G)}:void 0,VZ="scryptSync"in H$?function($,Q,Y,Z,G){if(typeof Z=="function"&&(G=Z,Z=void 0),typeof G!="function"){var V=new TypeError("callback must be a function");throw V.code="ERR_INVALID_CALLBACK",V}try{let U=H$.scryptSync($,Q,Y,Z);process.nextTick(G,null,T$!=="buffer"?new F$(U).toString(T$):new F$(U))}catch(U){throw U}}:void 0;D$&&(Object.defineProperty(D$,"name",{value:"::bunternal::"}),Object.defineProperty(VZ,"name",{value:"::bunternal::"}),Object.defineProperty(GZ,"name",{value:"::bunternal::"}));var C$=H$;j$($Z,{DEFAULT_ENCODING:()=>T$,getRandomValues:()=>QZ,randomUUID:()=>YZ,randomInt:()=>ZZ,scrypt:()=>VZ,scryptSync:()=>GZ,timingSafeEqual:()=>D$,webcrypto:()=>C$,subtle:()=>C$.subtle});var{randomBytes:UZ,rng:XZ,pseudoRandomBytes:KZ,prng:IZ,Hash:OZ,createHash:JZ,createHmac:FZ,Hmac:AZ,getHashes:HZ,pbkdf2:WZ,pbkdf2Sync:EZ,Cipher:TZ,createCipher:DZ,Cipheriv:CZ,createCipheriv:LZ,Decipher:RZ,createDecipher:PZ,Decipheriv:zZ,createDecipheriv:MZ,getCiphers:SZ,listCiphers:vZ,DiffieHellmanGroup:qZ,createDiffieHellmanGroup:jZ,getDiffieHellman:kZ,createDiffieHellman:gZ,DiffieHellman:_Z,createSign:NZ,Sign:xZ,createVerify:BZ,Verify:yZ,createECDH:wZ,publicEncrypt:pZ,privateEncrypt:fZ,publicDecrypt:cZ,privateDecrypt:hZ,randomFill:dZ,randomFillSync:bZ,createCredentials:lZ,constants:oZ}=$Z;var nZ=$Z;/*! safe-buffer. MIT License. Feross Aboukhadijeh */export{C$ as webcrypto,D$ as timingSafeEqual,GZ as scryptSync,VZ as scrypt,XZ as rng,YZ as randomUUID,bZ as randomFillSync,dZ as randomFill,UZ as randomBytes,pZ as publicEncrypt,cZ as publicDecrypt,KZ as pseudoRandomBytes,IZ as prng,fZ as privateEncrypt,hZ as privateDecrypt,EZ as pbkdf2Sync,WZ as pbkdf2,vZ as listCiphers,QZ as getRandomValues,HZ as getHashes,kZ as getDiffieHellman,SZ as getCiphers,nZ as default,BZ as createVerify,NZ as createSign,FZ as createHmac,JZ as createHash,wZ as createECDH,jZ as createDiffieHellmanGroup,gZ as createDiffieHellman,MZ as createDecipheriv,PZ as createDecipher,lZ as createCredentials,LZ as createCipheriv,DZ as createCipher,oZ as constants,yZ as Verify,xZ as Sign,AZ as Hmac,OZ as Hash,qZ as DiffieHellmanGroup,_Z as DiffieHellman,zZ as Decipheriv,RZ as Decipher,T$ as DEFAULT_ENCODING,CZ as Cipheriv,TZ as Cipher}; diff --git a/test/js/node/crypto/node-crypto.test.js b/test/js/node/crypto/node-crypto.test.js index 9e0e7f396..5a68540cf 100644 --- a/test/js/node/crypto/node-crypto.test.js +++ b/test/js/node/crypto/node-crypto.test.js @@ -8,6 +8,27 @@ it("crypto.randomBytes should return a Buffer", () => { expect(Buffer.isBuffer(crypto.randomBytes(1))).toBe(true); }); +it("crypto.randomInt should return a number", () => { + const result = crypto.randomInt(0, 10); + expect(typeof result).toBe("number"); + expect(result).toBeGreaterThanOrEqual(0); + expect(result).toBeLessThanOrEqual(10); +}); + +it("crypto.randomInt with no arguments", () => { + const result = crypto.randomInt(); + expect(typeof result).toBe("number"); + expect(result).toBeGreaterThanOrEqual(0); + expect(result).toBeLessThanOrEqual(Number.MAX_SAFE_INTEGER); +}); + +it("crypto.randomInt with one argument", () => { + const result = crypto.randomInt(100); + expect(typeof result).toBe("number"); + expect(result).toBeGreaterThanOrEqual(0); + expect(result).toBeLessThanOrEqual(100); +}); + // https://github.com/oven-sh/bun/issues/1839 describe("createHash", () => { it("update & digest", () => { -- cgit v1.2.3 From a5100ad380f099907d4b3a9bec696f481b8e7821 Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Mon, 26 Jun 2023 15:49:14 -0700 Subject: Fix .rejects --- src/bun.js/test/expect.zig | 21 +++++++-------------- test/js/bun/test/expect.test.js | 22 ++++++++++++++++++++++ 2 files changed, 29 insertions(+), 14 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/test/expect.zig b/src/bun.js/test/expect.zig index 90fcb2a73..e0833f8ed 100644 --- a/src/bun.js/test/expect.zig +++ b/src/bun.js/test/expect.zig @@ -73,32 +73,25 @@ pub const Expect = struct { } pub fn getResolves(this: *Expect, thisValue: JSValue, globalThis: *JSGlobalObject) callconv(.C) JSValue { - switch (this.flags.promise) { + this.flags.promise = switch (this.flags.promise) { + .resolves, .none => .resolves, .rejects => { globalThis.throw("Cannot chain .resolves() after .rejects()", .{}); return .zero; }, - .resolves => {}, - .none => { - this.flags.promise = .resolves; - }, - } + }; + return thisValue; } pub fn getRejects(this: *Expect, thisValue: JSValue, globalThis: *JSGlobalObject) callconv(.C) JSValue { - switch (this.flags.promise) { - .rejects => { - this.flags.promise = .rejects; - }, + this.flags.promise = switch (this.flags.promise) { + .none, .rejects => .rejects, .resolves => { globalThis.throw("Cannot chain .rejects() after .resolves()", .{}); return .zero; }, - .none => { - this.flags.promise = .resolves; - }, - } + }; return thisValue; } diff --git a/test/js/bun/test/expect.test.js b/test/js/bun/test/expect.test.js index d42ec2219..e7195d6f8 100644 --- a/test/js/bun/test/expect.test.js +++ b/test/js/bun/test/expect.test.js @@ -6,6 +6,28 @@ var { isBun, test, describe, expect, jest, vi, mock, bunTest, spyOn } = require("./test-interop.js")(); describe("expect()", () => { + test("rejects", async () => { + await expect(Promise.reject(1)).rejects.toBe(1); + + // Different task + await expect( + new Promise((_, reject) => { + setTimeout(() => reject(1), 0); + }), + ).rejects.toBe(1); + }); + + test("resolves", async () => { + await expect(Promise.resolve(1)).resolves.toBe(1); + + // Different task + await expect( + new Promise(resolve => { + setTimeout(() => resolve(1), 0); + }), + ).resolves.toBe(1); + }); + test("can call without an argument", () => { expect().toBe(undefined); }); -- cgit v1.2.3 From 4e4cae0fc308c448fb73d59228fb30bd994453ed Mon Sep 17 00:00:00 2001 From: Dylan Conway <35280289+dylan-conway@users.noreply.github.com> Date: Mon, 26 Jun 2023 19:16:59 -0700 Subject: webpack test and add empty `prototype` prop to module (#3421) --- src/bun.js/modules/NodeModuleModule.cpp | 9 ++++++--- test/js/third_party/webpack/package.json | 7 +++++++ test/js/third_party/webpack/test.js | 11 +++++++++++ test/js/third_party/webpack/webpack.test.ts | 27 +++++++++++++++++++++++++++ test/js/third_party/webpack/world.js | 3 +++ test/package.json | 4 +++- 6 files changed, 57 insertions(+), 4 deletions(-) create mode 100644 test/js/third_party/webpack/package.json create mode 100644 test/js/third_party/webpack/test.js create mode 100644 test/js/third_party/webpack/webpack.test.ts create mode 100644 test/js/third_party/webpack/world.js (limited to 'test/js') diff --git a/src/bun.js/modules/NodeModuleModule.cpp b/src/bun.js/modules/NodeModuleModule.cpp index 34d45698f..88e08a3ac 100644 --- a/src/bun.js/modules/NodeModuleModule.cpp +++ b/src/bun.js/modules/NodeModuleModule.cpp @@ -142,10 +142,10 @@ void generateNodeModuleModule(JSC::JSGlobalObject *globalObject, exportValues.append( jsCast(globalObject)->lazyRequireCacheObject()); - exportNames.append(JSC::Identifier::fromString(vm, "builtinModules"_s)); + exportNames.append(JSC::Identifier::fromString(vm, "prototype"_s)); + exportValues.append(constructEmptyObject(globalObject)); - exportNames.append(JSC::Identifier::fromString(vm, "globalPaths"_s)); - exportValues.append(JSC::constructEmptyArray(globalObject, 0)); + exportNames.append(JSC::Identifier::fromString(vm, "builtinModules"_s)); JSC::JSArray *builtinModules = JSC::JSArray::create( vm, @@ -167,5 +167,8 @@ void generateNodeModuleModule(JSC::JSGlobalObject *globalObject, builtinModules->putDirectIndex(globalObject, 6, JSC::jsString(vm, String("bun:sqlite"_s))); exportValues.append(builtinModules); + + exportNames.append(JSC::Identifier::fromString(vm, "globalPaths"_s)); + exportValues.append(JSC::constructEmptyArray(globalObject, 0)); } } // namespace Zig diff --git a/test/js/third_party/webpack/package.json b/test/js/third_party/webpack/package.json new file mode 100644 index 000000000..fb08bfdc5 --- /dev/null +++ b/test/js/third_party/webpack/package.json @@ -0,0 +1,7 @@ +{ + "name": "webpack-test", + "version": "2.0.0", + "dependencies": { + "webpack": "5.88.0" + } +} \ No newline at end of file diff --git a/test/js/third_party/webpack/test.js b/test/js/third_party/webpack/test.js new file mode 100644 index 000000000..bfd3e80a1 --- /dev/null +++ b/test/js/third_party/webpack/test.js @@ -0,0 +1,11 @@ +import { world } from "./world.js"; + +function component() { + const element = document.createElement("div"); + + element.innerHTML = "hello " + world(); + + return element; +} + +document.body.appendChild(component()); diff --git a/test/js/third_party/webpack/webpack.test.ts b/test/js/third_party/webpack/webpack.test.ts new file mode 100644 index 000000000..ffc8195c6 --- /dev/null +++ b/test/js/third_party/webpack/webpack.test.ts @@ -0,0 +1,27 @@ +import { bunExe, bunEnv } from "harness"; +import { existsSync, rmdirSync } from "fs"; +import { join } from "path"; + +afterEach(() => { + rmdirSync(join(import.meta.dir, "dist"), { recursive: true }); +}); + +test("webpack works", () => { + Bun.spawnSync({ + cmd: [bunExe(), "-b", "webpack", "--entry", "./test.js", "-o", "./dist/test1/main.js"], + cwd: import.meta.dir, + env: bunEnv, + }); + + expect(existsSync(join(import.meta.dir, "dist", "test1/main.js"))).toBe(true); +}); + +test("webpack --watch works", async () => { + Bun.spawnSync({ + cmd: ["timeout", "3", bunExe(), "-b", "webpack", "--entry", "./test.js", "-o", "./dist/test2/main.js", "--watch"], + cwd: import.meta.dir, + env: bunEnv, + }); + + expect(existsSync(join(import.meta.dir, "dist", "test2/main.js"))).toBe(true); +}); diff --git a/test/js/third_party/webpack/world.js b/test/js/third_party/webpack/world.js new file mode 100644 index 000000000..3fa21bf67 --- /dev/null +++ b/test/js/third_party/webpack/world.js @@ -0,0 +1,3 @@ +export function world() { + return "world"; +} diff --git a/test/package.json b/test/package.json index b9aa55ae2..d4246ea43 100644 --- a/test/package.json +++ b/test/package.json @@ -23,7 +23,9 @@ "svelte": "^3.55.1", "typescript": "^5.0.2", "undici": "^5.20.0", - "vitest": "^0.32.2" + "vitest": "^0.32.2", + "webpack": "5.88.0", + "webpack-cli": "4.7.2" }, "private": true, "scripts": { -- cgit v1.2.3 From ecb0bd39b6f7a0a69f0b92ddedc0af5d0e88e945 Mon Sep 17 00:00:00 2001 From: dave caruso Date: Mon, 26 Jun 2023 22:27:12 -0400 Subject: fix #3412 (#3422) --- src/bun.js/bindings/JSMockFunction.cpp | 12 ++++++++---- test/js/bun/test/mock-fn.test.js | 14 ++++++++++++++ 2 files changed, 22 insertions(+), 4 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/bindings/JSMockFunction.cpp b/src/bun.js/bindings/JSMockFunction.cpp index fbfcf0c9e..33922c2b7 100644 --- a/src/bun.js/bindings/JSMockFunction.cpp +++ b/src/bun.js/bindings/JSMockFunction.cpp @@ -569,15 +569,19 @@ extern "C" EncodedJSValue JSMock__jsSpyOn(JSC::JSGlobalObject* lexicalGlobalObje // easymode: regular property or missing property if (!hasValue || slot.isValue()) { + JSValue value = jsUndefined(); + if (hasValue) { + value = slot.getValue(globalObject, propertyKey); + if (jsDynamicCast(value)) { + return JSValue::encode(value); + } + } + auto* mock = JSMockFunction::create(vm, globalObject, globalObject->mockModule.mockFunctionStructure.getInitializedOnMainThread(globalObject), CallbackKind::GetterSetter); mock->spyTarget = JSC::Weak(object, &weakValueHandleOwner(), nullptr); mock->spyIdentifier = propertyKey.isSymbol() ? Identifier::fromUid(vm, propertyKey.uid()) : Identifier::fromString(vm, propertyKey.publicName()); mock->spyAttributes = hasValue ? slot.attributes() : 0; unsigned attributes = 0; - JSValue value = jsUndefined(); - - if (hasValue) - value = slot.getValue(globalObject, propertyKey); if (hasValue && ((slot.attributes() & PropertyAttribute::Function) != 0 || (value.isCell() && value.isCallable()))) { if (hasValue) diff --git a/test/js/bun/test/mock-fn.test.js b/test/js/bun/test/mock-fn.test.js index 8504e3d70..ef3c4b7d3 100644 --- a/test/js/bun/test/mock-fn.test.js +++ b/test/js/bun/test/mock-fn.test.js @@ -603,5 +603,19 @@ describe("spyOn", () => { }); } + test("spyOn twice works", () => { + var obj = { + original() { + return 42; + }, + }; + const _original = obj.original; + const fn = spyOn(obj, "original"); + const fn2 = spyOn(obj, "original"); + expect(fn).toBe(obj.original); + expect(fn2).toBe(fn); + expect(fn).not.toBe(_original); + }); + // spyOn does not work with getters/setters yet. }); -- cgit v1.2.3 From c96f3b303b07312d320f3f07299aac0f93d4640f Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Mon, 26 Jun 2023 20:37:09 -0700 Subject: Fix default export of `"module"` module --- src/bun.js/modules/NodeModuleModule.cpp | 102 ++++++++++++++----------- test/js/node/module/node-module-module.test.js | 5 ++ 2 files changed, 61 insertions(+), 46 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/modules/NodeModuleModule.cpp b/src/bun.js/modules/NodeModuleModule.cpp index 88e08a3ac..10853ae32 100644 --- a/src/bun.js/modules/NodeModuleModule.cpp +++ b/src/bun.js/modules/NodeModuleModule.cpp @@ -103,49 +103,53 @@ void generateNodeModuleModule(JSC::JSGlobalObject *globalObject, JSC::MarkedArgumentBuffer &exportValues) { JSC::VM &vm = globalObject->vm(); - exportValues.append(JSFunction::create( - vm, globalObject, 1, String("createRequire"_s), - jsFunctionNodeModuleCreateRequire, ImplementationVisibility::Public)); - exportValues.append(JSFunction::create(vm, globalObject, 1, String("paths"_s), - Resolver__nodeModulePathsForJS, - ImplementationVisibility::Public)); - exportValues.append(JSFunction::create( - vm, globalObject, 1, String("findSourceMap"_s), jsFunctionFindSourceMap, - ImplementationVisibility::Public)); - exportValues.append(JSFunction::create( - vm, globalObject, 0, String("syncBuiltinExports"_s), - jsFunctionSyncBuiltinExports, ImplementationVisibility::Public)); - exportValues.append( - JSFunction::create(vm, globalObject, 1, String("SourceMap"_s), - jsFunctionSourceMap, ImplementationVisibility::Public, - NoIntrinsic, jsFunctionSourceMap, nullptr)); - - exportNames.append(JSC::Identifier::fromString(vm, "createRequire"_s)); - exportNames.append(JSC::Identifier::fromString(vm, "paths"_s)); - exportNames.append(JSC::Identifier::fromString(vm, "findSourceMap"_s)); - exportNames.append(JSC::Identifier::fromString(vm, "syncBuiltinExports"_s)); - exportNames.append(JSC::Identifier::fromString(vm, "SourceMap"_s)); - - // note: this is not technically correct - // it doesn't set process.mainModule - exportNames.append(JSC::Identifier::fromString(vm, "_resolveFileName"_s)); - exportValues.append(JSFunction::create( - vm, globalObject, 3, String("_resolveFileName"_s), - jsFunctionResolveFileName, ImplementationVisibility::Public)); - - exportNames.append(JSC::Identifier::fromString(vm, "_nodeModulePaths"_s)); - exportValues.append(JSFunction::create( - vm, globalObject, 0, String("_nodeModulePaths"_s), - Resolver__nodeModulePathsForJS, ImplementationVisibility::Public)); - - exportNames.append(JSC::Identifier::fromString(vm, "_cache"_s)); - exportValues.append( - jsCast(globalObject)->lazyRequireCacheObject()); - - exportNames.append(JSC::Identifier::fromString(vm, "prototype"_s)); - exportValues.append(constructEmptyObject(globalObject)); - - exportNames.append(JSC::Identifier::fromString(vm, "builtinModules"_s)); + JSObject *defaultObject = JSC::constructEmptyObject( + vm, globalObject->nullPrototypeObjectStructure()); + auto append = [&](Identifier name, JSValue value) { + defaultObject->putDirect(vm, name, value); + exportNames.append(name); + exportValues.append(value); + }; + + append(Identifier::fromString(vm, "createRequire"_s), + JSFunction::create(vm, globalObject, 1, String("createRequire"_s), + jsFunctionNodeModuleCreateRequire, + ImplementationVisibility::Public)); + + append(Identifier::fromString(vm, "paths"_s), + JSFunction::create(vm, globalObject, 1, String("paths"_s), + Resolver__nodeModulePathsForJS, + ImplementationVisibility::Public)); + + append(Identifier::fromString(vm, "findSourceMap"_s), + JSFunction::create(vm, globalObject, 1, String("findSourceMap"_s), + jsFunctionFindSourceMap, + ImplementationVisibility::Public)); + append(Identifier::fromString(vm, "syncBuiltinExports"_s), + JSFunction::create(vm, globalObject, 0, String("syncBuiltinExports"_s), + jsFunctionSyncBuiltinExports, + ImplementationVisibility::Public)); + append(Identifier::fromString(vm, "SourceMap"_s), + JSFunction::create(vm, globalObject, 1, String("SourceMap"_s), + jsFunctionSourceMap, + ImplementationVisibility::Public, NoIntrinsic, + jsFunctionSourceMap, nullptr)); + + append(JSC::Identifier::fromString(vm, "_resolveFileName"_s), + JSFunction::create(vm, globalObject, 3, String("_resolveFileName"_s), + jsFunctionResolveFileName, + ImplementationVisibility::Public)); + + append(JSC::Identifier::fromString(vm, "_nodeModulePaths"_s), + JSFunction::create(vm, globalObject, 0, String("_nodeModulePaths"_s), + Resolver__nodeModulePathsForJS, + ImplementationVisibility::Public)); + + append(JSC::Identifier::fromString(vm, "_cache"_s), + jsCast(globalObject)->lazyRequireCacheObject()); + + append(JSC::Identifier::fromString(vm, "globalPaths"_s), + JSC::constructEmptyArray(globalObject, nullptr, 0)); JSC::JSArray *builtinModules = JSC::JSArray::create( vm, @@ -166,9 +170,15 @@ void generateNodeModuleModule(JSC::JSGlobalObject *globalObject, JSC::jsString(vm, String("bun:ffi"_s))); builtinModules->putDirectIndex(globalObject, 6, JSC::jsString(vm, String("bun:sqlite"_s))); - exportValues.append(builtinModules); - exportNames.append(JSC::Identifier::fromString(vm, "globalPaths"_s)); - exportValues.append(JSC::constructEmptyArray(globalObject, 0)); + append(JSC::Identifier::fromString(vm, "builtinModules"_s), builtinModules); + + defaultObject->putDirect(vm, + JSC::PropertyName(Identifier::fromUid( + vm.symbolRegistry().symbolForKey("CommonJS"_s))), + jsNumber(0), 0); + + exportNames.append(vm.propertyNames->defaultKeyword); + exportValues.append(defaultObject); } } // namespace Zig diff --git a/test/js/node/module/node-module-module.test.js b/test/js/node/module/node-module-module.test.js index 3ced63da1..434bac829 100644 --- a/test/js/node/module/node-module-module.test.js +++ b/test/js/node/module/node-module-module.test.js @@ -1,10 +1,15 @@ import { expect, test } from "bun:test"; import { _nodeModulePaths } from "module"; +import Module from "module"; test("module.globalPaths exists", () => { expect(Array.isArray(require("module").globalPaths)).toBe(true); }); +test("Module exists", () => { + expect(Module).toBeDefined(); +}); + test("_nodeModulePaths() works", () => { expect(() => { _nodeModulePaths(); -- cgit v1.2.3 From 1c46d887286350ca102708c7fb8ae090ad88bf31 Mon Sep 17 00:00:00 2001 From: Ai Hoshino Date: Tue, 27 Jun 2023 23:23:25 +0800 Subject: Fix `node:util.callbackify` (#3428) * remove the incorrect parameters Close: https://github.com/oven-sh/bun/issues/3424 * fix error code * add callbackify tests * fix function type * ensure `done` is called when error occurred --- src/js/node/util.js | 5 +- test/js/node/util/util-callbackify.test.js | 323 +++++++++++++++++++++++++++++ 2 files changed, 326 insertions(+), 2 deletions(-) create mode 100644 test/js/node/util/util-callbackify.test.js (limited to 'test/js') diff --git a/src/js/node/util.js b/src/js/node/util.js index 346f88ffb..8f20a4bc1 100644 --- a/src/js/node/util.js +++ b/src/js/node/util.js @@ -518,6 +518,7 @@ function callbackifyOnRejected(reason, cb) { if (!reason) { var newReason = new Error("Promise was rejected with a falsy value"); newReason.reason = reason; + newReason.code = "ERR_FALSY_VALUE_REJECTION"; reason = newReason; } return cb(reason); @@ -538,10 +539,10 @@ function callbackify(original) { }; original.apply(this, args).then( function (ret) { - process.nextTick(cb, null, null, ret); + process.nextTick(cb, null, ret); }, function (rej) { - process.nextTick(callbackifyOnRejected, null, rej, cb); + process.nextTick(callbackifyOnRejected, rej, cb); }, ); } diff --git a/test/js/node/util/util-callbackify.test.js b/test/js/node/util/util-callbackify.test.js new file mode 100644 index 000000000..38c20f5c0 --- /dev/null +++ b/test/js/node/util/util-callbackify.test.js @@ -0,0 +1,323 @@ +import { callbackify } from "util"; +import { createTest } from "node-harness"; + +const { describe, expect, it, createCallCheckCtx } = createTest(import.meta.path); + +const values = [ + "hello world", + null, + undefined, + false, + 0, + {}, + { key: "value" }, + Symbol("I am a symbol"), + function ok() {}, + ["array", "with", 4, "values"], + new Error("boo"), +]; + +describe("util.callbackify", () => { + describe("rejection reason", () => { + for (const value of values) { + it(`callback is async function, value is ${String(value)}`, done => { + const { mustCall } = createCallCheckCtx(done); + async function asyncFn() { + return Promise.reject(value); + } + + const cbAsyncFn = callbackify(asyncFn); + cbAsyncFn( + mustCall((err, ret) => { + try { + expect(ret).toBeUndefined(); + if (err instanceof Error) { + if ("reason" in err) { + expect(!value).toBeTrue(); + expect(err.code).toStrictEqual("ERR_FALSY_VALUE_REJECTION"); + expect(err.reason).toStrictEqual(value); + } else { + expect(String(value)).toEndWith(err.message); + } + } else { + expect(err).toStrictEqual(value); + } + + done(); + } catch (error) { + done(error); + } + }), + ); + }); + + it(`callback is promise, value is ${String(value)}`, done => { + const { mustCall } = createCallCheckCtx(done); + function promiseFn() { + return Promise.reject(value); + } + const obj = {}; + Object.defineProperty(promiseFn, "name", { + value: obj, + writable: false, + enumerable: false, + configurable: true, + }); + + const cbPromiseFn = callbackify(promiseFn); + try { + expect(promiseFn.name).toStrictEqual(obj); + } catch (error) { + done(error); + } + + cbPromiseFn( + mustCall((err, ret) => { + try { + expect(ret).toBeUndefined(); + if (err instanceof Error) { + if ("reason" in err) { + expect(!value).toBeTrue(); + expect(err.code).toStrictEqual("ERR_FALSY_VALUE_REJECTION"); + expect(err.reason).toStrictEqual(value); + } else { + expect(String(value)).toEndWith(err.message); + } + } else { + expect(err).toStrictEqual(value); + } + + done(); + } catch (error) { + done(error); + } + }), + ); + }); + + it(`callback is thenable, value is ${String(value)}`, done => { + const { mustCall } = createCallCheckCtx(done); + function thenableFn() { + return { + then(onRes, onRej) { + onRej(value); + }, + }; + } + + const cbThenableFn = callbackify(thenableFn); + cbThenableFn( + mustCall((err, ret) => { + try { + expect(ret).toBeUndefined(); + if (err instanceof Error) { + if ("reason" in err) { + expect(!value).toBeTrue(); + expect(err.code).toStrictEqual("ERR_FALSY_VALUE_REJECTION"); + expect(err.reason).toStrictEqual(value); + } else { + expect(String(value)).toEndWith(err.message); + } + } else { + expect(err).toStrictEqual(value); + } + + done(); + } catch (error) { + done(error); + } + }), + ); + }); + } + }); + + describe("return value", () => { + for (const value of values) { + it(`callback is async function, value is ${String(value)}`, done => { + const { mustSucceed } = createCallCheckCtx(done); + async function asyncFn() { + return value; + } + + const cbAsyncFn = callbackify(asyncFn); + cbAsyncFn( + mustSucceed(ret => { + try { + expect(ret).toStrictEqual(value); + expect(ret).toStrictEqual(value); + + done(); + } catch (error) { + done(error); + } + }), + ); + }); + + it(`callback is promise, value is ${String(value)}`, done => { + const { mustSucceed } = createCallCheckCtx(done); + function promiseFn() { + return Promise.resolve(value); + } + + const cbPromiseFn = callbackify(promiseFn); + cbPromiseFn( + mustSucceed(ret => { + try { + expect(ret).toStrictEqual(value); + done(); + } catch (error) { + done(error); + } + }), + ); + }); + + it(`callback is thenable, value is ${String(value)}`, done => { + const { mustSucceed } = createCallCheckCtx(done); + function thenableFn() { + return { + then(onRes, onRej) { + onRes(value); + }, + }; + } + + const cbThenableFn = callbackify(thenableFn); + cbThenableFn( + mustSucceed(ret => { + try { + expect(ret).toStrictEqual(value); + done(); + } catch (error) { + done(error); + } + }), + ); + }); + } + }); + + describe("arguments", () => { + for (const value of values) { + it(`callback is async function, value is ${String(value)}`, done => { + const { mustSucceed } = createCallCheckCtx(done); + async function asyncFn(arg) { + try { + expect(arg).toStrictEqual(value); + } catch (error) { + done(error); + } + return arg; + } + + const cbAsyncFn = callbackify(asyncFn); + cbAsyncFn( + value, + mustSucceed(ret => { + try { + expect(ret).toStrictEqual(value); + done(); + } catch (error) { + done(error); + } + }), + ); + }); + + it(`callback is promise, value is ${String(value)}`, done => { + const { mustSucceed } = createCallCheckCtx(done); + function promiseFn(arg) { + try { + expect(arg).toStrictEqual(value); + } catch (error) { + done(error); + } + + return Promise.resolve(arg); + } + const obj = {}; + Object.defineProperty(promiseFn, "length", { + value: obj, + writable: false, + enumerable: false, + configurable: true, + }); + const cbPromiseFn = callbackify(promiseFn); + try { + expect(promiseFn.length).toStrictEqual(obj); + } catch (error) { + done(error); + } + + cbPromiseFn( + value, + mustSucceed(ret => { + try { + expect(ret).toStrictEqual(value); + done(); + } catch (error) { + done(error); + } + }), + ); + }); + } + }); + + describe("this binding", () => { + const value = "hello world"; + it("callback is sync function", done => { + // TODO: + // const { mustSucceed } = createCallCheckCtx(done); + const iAmThis = { + fn(arg) { + try { + expect(this).toStrictEqual(iAmThis); + } catch (error) { + done(error); + } + return Promise.resolve(arg); + }, + }; + + iAmThis.cbFn = callbackify(iAmThis.fn); + iAmThis.cbFn(value, function (rej, ret) { + try { + expect(ret).toStrictEqual(value); + expect(this).toStrictEqual(iAmThis); + + done(); + } catch (error) { + done(error); + } + }); + }); + + it("callback is async function", done => { + const iAmThis = { + async fn(arg) { + try { + expect(this).toStrictEqual(iAmThis); + } catch (error) { + done(error); + } + return Promise.resolve(arg); + }, + }; + + iAmThis.cbFn = callbackify(iAmThis.fn); + iAmThis.cbFn(value, function (rej, ret) { + try { + expect(ret).toStrictEqual(value); + expect(this).toStrictEqual(iAmThis); + + done(); + } catch (error) { + done(error); + } + }); + }); + }); +}); -- cgit v1.2.3 From f81d084f5cef287d7fb94798219c2c0d95cb4a4f Mon Sep 17 00:00:00 2001 From: Benjamin Ryan Date: Tue, 27 Jun 2023 19:27:06 -0500 Subject: [bun:sqlite] enable FTS5 on linux build (#3431) * [bun:sqlite] enable FTS5 on linux build * prettier --- Makefile | 2 +- test/js/bun/sqlite/sqlite.test.js | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) (limited to 'test/js') diff --git a/Makefile b/Makefile index 18e229903..b023dc53c 100644 --- a/Makefile +++ b/Makefile @@ -1694,7 +1694,7 @@ sizegen: # Linux uses bundled SQLite3 ifeq ($(OS_NAME),linux) sqlite: - $(CC) $(EMIT_LLVM_FOR_RELEASE) $(CFLAGS) $(INCLUDE_DIRS) -DSQLITE_ENABLE_COLUMN_METADATA= -DSQLITE_MAX_VARIABLE_NUMBER=250000 -DSQLITE_ENABLE_RTREE=1 -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_FTS3_PARENTHESIS=1 -DSQLITE_ENABLE_JSON1=1 $(SRC_DIR)/sqlite/sqlite3.c -c -o $(SQLITE_OBJECT) + $(CC) $(EMIT_LLVM_FOR_RELEASE) $(CFLAGS) $(INCLUDE_DIRS) -DSQLITE_ENABLE_COLUMN_METADATA= -DSQLITE_MAX_VARIABLE_NUMBER=250000 -DSQLITE_ENABLE_RTREE=1 -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_FTS3_PARENTHESIS=1 -DSQLITE_ENABLE_FTS5=1 -DSQLITE_ENABLE_JSON1=1 $(SRC_DIR)/sqlite/sqlite3.c -c -o $(SQLITE_OBJECT) endif picohttp: diff --git a/test/js/bun/sqlite/sqlite.test.js b/test/js/bun/sqlite/sqlite.test.js index faa7d5015..e4725cac2 100644 --- a/test/js/bun/sqlite/sqlite.test.js +++ b/test/js/bun/sqlite/sqlite.test.js @@ -513,6 +513,24 @@ it("latin1 supplement chars", () => { expect(db.query("SELECT * FROM foo WHERE id > 9999").values()).toEqual([]); }); +it("supports FTS5", () => { + const db = new Database(); + db.run("CREATE VIRTUAL TABLE movies USING fts5(title, tokenize='trigram')"); + const insert = db.prepare("INSERT INTO movies VALUES ($title)"); + const insertMovies = db.transaction(movies => { + for (const movie of movies) insert.run(movie); + }); + insertMovies([ + { $title: "The Shawshank Redemption" }, + { $title: "WarGames" }, + { $title: "Interstellar" }, + { $title: "Se7en" }, + { $title: "City of God" }, + { $title: "Spirited Away" }, + ]); + expect(db.query("SELECT * FROM movies('game')").all()).toEqual([{ title: "WarGames" }]); +}); + describe("Database.run", () => { it("should not throw error `not an error` when provided query containing only whitespace", () => { const db = Database.open(":memory:"); -- cgit v1.2.3 From 3d5573921e732c4a63794e5d25f5953d0a40ff0e Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Wed, 28 Jun 2023 13:53:09 -0700 Subject: Error.prototype.stack gets sourcemapped stacktraces and introduce Error.appendStackTrace (#3441) * Fix potential crash when reading sourcemapped stack traces * Format & sourcemap Error.prototype.stack * prevent double sourcemapping * Introduce Error.appendStackTrace * Fix source url * hide private stack traces in non-debug builds * fixes #3443 * Bump WebKit * Fix test failure in vm.test * Support new() & add test --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> --- .github/workflows/bun-linux-aarch64.yml | 2 +- .github/workflows/bun-linux-build.yml | 4 +- .github/workflows/bun-mac-aarch64.yml | 16 +-- .github/workflows/bun-mac-x64-baseline.yml | 16 +-- .github/workflows/bun-mac-x64.yml | 16 +-- Dockerfile | 2 +- bun.lockb | Bin 72925 -> 72925 bytes package.json | 2 +- src/bun.js/bindings/ZigGlobalObject.cpp | 188 +++++++++++++++++++++++++--- src/bun.js/bindings/bindings.cpp | 28 +++-- src/bun.js/javascript.zig | 22 ++-- test/js/node/v8/capture-stack-trace.test.js | 12 ++ 12 files changed, 241 insertions(+), 67 deletions(-) (limited to 'test/js') diff --git a/.github/workflows/bun-linux-aarch64.yml b/.github/workflows/bun-linux-aarch64.yml index 9bee835b7..01714460b 100644 --- a/.github/workflows/bun-linux-aarch64.yml +++ b/.github/workflows/bun-linux-aarch64.yml @@ -36,7 +36,7 @@ jobs: arch: aarch64 build_arch: arm64 runner: linux-arm64 - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-linux-arm64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-linux-arm64-lto.tar.gz" webkit_basename: "bun-webkit-linux-arm64-lto" build_machine_arch: aarch64 diff --git a/.github/workflows/bun-linux-build.yml b/.github/workflows/bun-linux-build.yml index 8689d488e..798ffaf33 100644 --- a/.github/workflows/bun-linux-build.yml +++ b/.github/workflows/bun-linux-build.yml @@ -46,7 +46,7 @@ jobs: arch: x86_64 build_arch: amd64 runner: big-ubuntu - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-linux-amd64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-linux-amd64-lto.tar.gz" webkit_basename: "bun-webkit-linux-amd64-lto" build_machine_arch: x86_64 - cpu: nehalem @@ -54,7 +54,7 @@ jobs: arch: x86_64 build_arch: amd64 runner: big-ubuntu - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-linux-amd64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-linux-amd64-lto.tar.gz" webkit_basename: "bun-webkit-linux-amd64-lto" build_machine_arch: x86_64 diff --git a/.github/workflows/bun-mac-aarch64.yml b/.github/workflows/bun-mac-aarch64.yml index 3040eee43..f281783bd 100644 --- a/.github/workflows/bun-mac-aarch64.yml +++ b/.github/workflows/bun-mac-aarch64.yml @@ -117,7 +117,7 @@ jobs: # obj: bun-obj-darwin-x64-baseline # runner: macos-11 # artifact: bun-obj-darwin-x64-baseline - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" # dependencies: true # compile_obj: false # - cpu: haswell @@ -126,7 +126,7 @@ jobs: # obj: bun-obj-darwin-x64 # runner: macos-11 # artifact: bun-obj-darwin-x64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" # dependencies: true # compile_obj: false # - cpu: nehalem @@ -135,7 +135,7 @@ jobs: # obj: bun-obj-darwin-x64-baseline # runner: macos-11 # artifact: bun-obj-darwin-x64-baseline - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" # dependencies: false # compile_obj: true # - cpu: haswell @@ -144,7 +144,7 @@ jobs: # obj: bun-obj-darwin-x64 # runner: macos-11 # artifact: bun-obj-darwin-x64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" # dependencies: false # compile_obj: true - cpu: native @@ -152,7 +152,7 @@ jobs: tag: bun-darwin-aarch64 obj: bun-obj-darwin-aarch64 artifact: bun-obj-darwin-aarch64 - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-arm64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-arm64-lto.tar.gz" runner: macos-arm64 dependencies: true compile_obj: true @@ -257,7 +257,7 @@ jobs: # package: bun-darwin-x64 # runner: macos-11 # artifact: bun-obj-darwin-x64-baseline - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" # - cpu: haswell # arch: x86_64 # tag: bun-darwin-x64 @@ -265,14 +265,14 @@ jobs: # package: bun-darwin-x64 # runner: macos-11 # artifact: bun-obj-darwin-x64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" - cpu: native arch: aarch64 tag: bun-darwin-aarch64 obj: bun-obj-darwin-aarch64 package: bun-darwin-aarch64 artifact: bun-obj-darwin-aarch64 - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-arm64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-arm64-lto.tar.gz" runner: macos-arm64 steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/bun-mac-x64-baseline.yml b/.github/workflows/bun-mac-x64-baseline.yml index dea617b21..b5f79a757 100644 --- a/.github/workflows/bun-mac-x64-baseline.yml +++ b/.github/workflows/bun-mac-x64-baseline.yml @@ -117,7 +117,7 @@ jobs: obj: bun-obj-darwin-x64-baseline runner: macos-11 artifact: bun-obj-darwin-x64-baseline - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" dependencies: true compile_obj: false # - cpu: haswell @@ -126,7 +126,7 @@ jobs: # obj: bun-obj-darwin-x64 # runner: macos-11 # artifact: bun-obj-darwin-x64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" # dependencies: true # compile_obj: false - cpu: nehalem @@ -135,7 +135,7 @@ jobs: obj: bun-obj-darwin-x64-baseline runner: macos-11 artifact: bun-obj-darwin-x64-baseline - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" dependencies: false compile_obj: true # - cpu: haswell @@ -144,7 +144,7 @@ jobs: # obj: bun-obj-darwin-x64 # runner: macos-11 # artifact: bun-obj-darwin-x64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" # dependencies: false # compile_obj: true # - cpu: native @@ -152,7 +152,7 @@ jobs: # tag: bun-darwin-aarch64 # obj: bun-obj-darwin-aarch64 # artifact: bun-obj-darwin-aarch64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" # runner: macos-arm64 # dependencies: true # compile_obj: true @@ -258,7 +258,7 @@ jobs: package: bun-darwin-x64 runner: macos-11 artifact: bun-obj-darwin-x64-baseline - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" # - cpu: haswell # arch: x86_64 # tag: bun-darwin-x64 @@ -266,14 +266,14 @@ jobs: # package: bun-darwin-x64 # runner: macos-11 # artifact: bun-obj-darwin-x64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" # - cpu: native # arch: aarch64 # tag: bun-darwin-aarch64 # obj: bun-obj-darwin-aarch64 # package: bun-darwin-aarch64 # artifact: bun-obj-darwin-aarch64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" # runner: macos-arm64 steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/bun-mac-x64.yml b/.github/workflows/bun-mac-x64.yml index 2f2143ab1..8b30321f0 100644 --- a/.github/workflows/bun-mac-x64.yml +++ b/.github/workflows/bun-mac-x64.yml @@ -117,7 +117,7 @@ jobs: # obj: bun-obj-darwin-x64-baseline # runner: macos-11 # artifact: bun-obj-darwin-x64-baseline - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" # dependencies: true # compile_obj: false - cpu: haswell @@ -126,7 +126,7 @@ jobs: obj: bun-obj-darwin-x64 runner: macos-11 artifact: bun-obj-darwin-x64 - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" dependencies: true compile_obj: false # - cpu: nehalem @@ -135,7 +135,7 @@ jobs: # obj: bun-obj-darwin-x64-baseline # runner: macos-11 # artifact: bun-obj-darwin-x64-baseline - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" # dependencies: false # compile_obj: true - cpu: haswell @@ -144,7 +144,7 @@ jobs: obj: bun-obj-darwin-x64 runner: macos-11 artifact: bun-obj-darwin-x64 - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" dependencies: false compile_obj: true # - cpu: native @@ -152,7 +152,7 @@ jobs: # tag: bun-darwin-aarch64 # obj: bun-obj-darwin-aarch64 # artifact: bun-obj-darwin-aarch64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-arm64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-arm64-lto.tar.gz" # runner: macos-arm64 # dependencies: true # compile_obj: true @@ -260,7 +260,7 @@ jobs: # package: bun-darwin-x64 # runner: macos-11 # artifact: bun-obj-darwin-x64-baseline - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" - cpu: haswell arch: x86_64 tag: bun-darwin-x64 @@ -268,14 +268,14 @@ jobs: package: bun-darwin-x64 runner: macos-11 artifact: bun-obj-darwin-x64 - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-amd64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" # - cpu: native # arch: aarch64 # tag: bun-darwin-aarch64 # obj: bun-obj-darwin-aarch64 # package: bun-darwin-aarch64 # artifact: bun-obj-darwin-aarch64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-1/bun-webkit-macos-arm64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-arm64-lto.tar.gz" # runner: macos-arm64 steps: - uses: actions/checkout@v3 diff --git a/Dockerfile b/Dockerfile index b4a76208f..f50ada2d8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,7 +10,7 @@ ARG ARCH=x86_64 ARG BUILD_MACHINE_ARCH=x86_64 ARG TRIPLET=${ARCH}-linux-gnu ARG BUILDARCH=amd64 -ARG WEBKIT_TAG=may20-1 +ARG WEBKIT_TAG=may20-2 ARG ZIG_TAG=jul1 ARG ZIG_VERSION="0.11.0-dev.3737+9eb008717" ARG WEBKIT_BASENAME="bun-webkit-linux-$BUILDARCH" diff --git a/bun.lockb b/bun.lockb index 2c2b03711..e53db751b 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/package.json b/package.json index 94f9968ea..4fe213747 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "@types/react": "^18.0.25", "@typescript-eslint/eslint-plugin": "^5.31.0", "@typescript-eslint/parser": "^5.31.0", - "bun-webkit": "0.0.1-4b3750ddfe644a5bb131d652407653fac528ad51" + "bun-webkit": "0.0.1-8a03cf746abef8a48c932ab25f8821390632f2e2" }, "version": "0.0.0", "prettier": "./.prettierrc.cjs" diff --git a/src/bun.js/bindings/ZigGlobalObject.cpp b/src/bun.js/bindings/ZigGlobalObject.cpp index b27e0aafc..4b4edf097 100644 --- a/src/bun.js/bindings/ZigGlobalObject.cpp +++ b/src/bun.js/bindings/ZigGlobalObject.cpp @@ -219,7 +219,9 @@ extern "C" void JSCInitialize(const char* envp[], size_t envc, void (*onCrash)(c JSC::Options::useJITCage() = false; JSC::Options::useShadowRealm() = true; JSC::Options::useResizableArrayBuffer() = true; +#ifdef BUN_DEBUG JSC::Options::showPrivateScriptsInStackTraces() = true; +#endif JSC::Options::useSetMethods() = true; /* @@ -312,6 +314,123 @@ extern "C" void JSCInitialize(const char* envp[], size_t envc, void (*onCrash)(c } extern "C" void* Bun__getVM(); +extern "C" JSGlobalObject* Bun__getDefaultGlobal(); + +static String computeErrorInfoWithoutPrepareStackTrace(JSC::VM& vm, Vector& stackTrace, unsigned& line, unsigned& column, String& sourceURL, JSObject* errorInstance) +{ + if (!errorInstance) { + return String(); + } + + Zig::GlobalObject* globalObject = jsDynamicCast(errorInstance->globalObject()); + if (!globalObject) { + // Happens in node:vm + globalObject = jsDynamicCast(Bun__getDefaultGlobal()); + } + + WTF::String name = "Error"_s; + WTF::String message; + + if (errorInstance) { + // Note that we are not allowed to allocate memory in here. It's called inside a finalizer. + if (auto* instance = jsDynamicCast(errorInstance)) { + name = instance->sanitizedNameString(globalObject); + message = instance->sanitizedMessageString(globalObject); + } + } + + WTF::StringBuilder sb; + + if (!name.isEmpty()) { + sb.append(name); + sb.append(": "_s); + } + + if (!message.isEmpty()) { + sb.append(message); + } + + if (stackTrace.isEmpty()) { + return sb.toString(); + } + + if ((!message.isEmpty() || !name.isEmpty())) { + sb.append("\n"_s); + } + + size_t framesCount = stackTrace.size(); + ZigStackFrame remappedFrames[framesCount]; + bool hasSet = false; + for (size_t i = 0; i < framesCount; i++) { + StackFrame& frame = stackTrace.at(i); + + sb.append(" at "_s); + + WTF::String functionName = frame.functionName(vm); + + if (auto codeblock = frame.codeBlock()) { + if (codeblock->isConstructor()) { + sb.append("new "_s); + } + + // TODO: async + } + + if (functionName.isEmpty()) { + sb.append(""_s); + } else { + sb.append(functionName); + } + + sb.append(" ("_s); + + if (frame.hasLineAndColumnInfo()) { + unsigned int thisLine = 0; + unsigned int thisColumn = 0; + frame.computeLineAndColumn(thisLine, thisColumn); + remappedFrames[i].position.line = thisLine; + remappedFrames[i].position.column_start = thisColumn; + remappedFrames[i].source_url = Zig::toZigString(frame.sourceURL(vm)); + + // This ensures the lifetime of the sourceURL is accounted for correctly + Bun__remapStackFramePositions(globalObject, remappedFrames + i, 1); + + if (!hasSet) { + hasSet = true; + line = thisLine; + column = thisColumn; + sourceURL = frame.sourceURL(vm); + + if (errorInstance) { + if (remappedFrames[i].remapped) { + errorInstance->putDirect(vm, Identifier::fromString(vm, "originalLine"_s), jsNumber(thisLine), 0); + errorInstance->putDirect(vm, Identifier::fromString(vm, "originalColumn"_s), jsNumber(thisColumn), 0); + } + } + } + + sb.append(frame.sourceURL(vm)); + sb.append(":"_s); + sb.append(remappedFrames[i].position.line); + sb.append(":"_s); + sb.append(remappedFrames[i].position.column_start); + } else { + sb.append("native"_s); + } + sb.append(")"_s); + + if (i != framesCount - 1) { + sb.append("\n"_s); + } + } + + return sb.toString(); +} + +static String computeErrorInfo(JSC::VM& vm, Vector& stackTrace, unsigned& line, unsigned& column, String& sourceURL, JSObject* errorInstance) +{ + return computeErrorInfoWithoutPrepareStackTrace(vm, stackTrace, line, column, sourceURL, errorInstance); +} extern "C" JSC__JSGlobalObject* Zig__GlobalObject__create(JSClassRef* globalObjectClass, int count, void* console_client) @@ -329,6 +448,9 @@ extern "C" JSC__JSGlobalObject* Zig__GlobalObject__create(JSClassRef* globalObje Zig::GlobalObject* globalObject = Zig::GlobalObject::create(vm, Zig::GlobalObject::createStructure(vm, JSC::JSGlobalObject::create(vm, JSC::JSGlobalObject::createStructure(vm, JSC::jsNull())), JSC::jsNull())); globalObject->setConsole(globalObject); globalObject->isThreadLocalDefaultGlobalObject = true; + globalObject->setStackTraceLimit(DEFAULT_ERROR_STACK_TRACE_LIMIT); // Node.js defaults to 10 + vm.setOnComputeErrorInfo(computeErrorInfo); + if (count > 0) { globalObject->installAPIGlobals(globalObjectClass, count, vm); } @@ -2585,7 +2707,32 @@ JSC::JSValue GlobalObject::formatStackTrace(JSC::VM& vm, JSC::JSGlobalObject* le extern "C" EncodedJSValue JSPasswordObject__create(JSC::JSGlobalObject*, bool); -JSC_DECLARE_HOST_FUNCTION(errorConstructorFuncCaptureStackTrace); +JSC_DEFINE_HOST_FUNCTION(errorConstructorFuncAppendStackTrace, (JSC::JSGlobalObject * lexicalGlobalObject, JSC::CallFrame* callFrame)) +{ + GlobalObject* globalObject = reinterpret_cast(lexicalGlobalObject); + JSC::VM& vm = globalObject->vm(); + auto scope = DECLARE_THROW_SCOPE(vm); + + JSC::ErrorInstance* source = jsDynamicCast(callFrame->argument(0)); + JSC::ErrorInstance* destination = jsDynamicCast(callFrame->argument(1)); + + if (!source || !destination) { + throwTypeError(lexicalGlobalObject, scope, "First & second argument must be an Error object"_s); + return JSC::JSValue::encode(jsUndefined()); + } + + if (!destination->stackTrace()) { + destination->captureStackTrace(vm, globalObject, 1); + } + + if (source->stackTrace()) { + destination->stackTrace()->appendVector(*source->stackTrace()); + source->stackTrace()->clear(); + } + + return JSC::JSValue::encode(jsUndefined()); +} + JSC_DEFINE_HOST_FUNCTION(errorConstructorFuncCaptureStackTrace, (JSC::JSGlobalObject * lexicalGlobalObject, JSC::CallFrame* callFrame)) { GlobalObject* globalObject = reinterpret_cast(lexicalGlobalObject); @@ -2600,18 +2747,15 @@ JSC_DEFINE_HOST_FUNCTION(errorConstructorFuncCaptureStackTrace, (JSC::JSGlobalOb JSC::JSObject* errorObject = objectArg.asCell()->getObject(); JSC::JSValue caller = callFrame->argument(1); + // We cannot use our ErrorInstance::captureStackTrace() fast path here unfortunately. + // We need to return these CallSite array objects which means we need to create them JSValue errorValue = lexicalGlobalObject->get(lexicalGlobalObject, vm.propertyNames->Error); auto* errorConstructor = jsDynamicCast(errorValue); - - size_t stackTraceLimit = DEFAULT_ERROR_STACK_TRACE_LIMIT; - if (JSC::JSValue stackTraceLimitProp = errorConstructor->getIfPropertyExists(lexicalGlobalObject, vm.propertyNames->stackTraceLimit)) { - if (stackTraceLimitProp.isNumber()) { - stackTraceLimit = std::min(std::max(static_cast(stackTraceLimitProp.toIntegerOrInfinity(lexicalGlobalObject)), 0ul), 2048ul); - if (stackTraceLimit == 0) { - stackTraceLimit = 2048; - } - } + size_t stackTraceLimit = globalObject->stackTraceLimit().value(); + if (stackTraceLimit == 0) { + stackTraceLimit = DEFAULT_ERROR_STACK_TRACE_LIMIT; } + JSCStackTrace stackTrace = JSCStackTrace::captureCurrentJSStackTrace(globalObject, callFrame, stackTraceLimit, caller); // Create an (uninitialized) array for our "call sites" @@ -2672,9 +2816,20 @@ JSC_DEFINE_HOST_FUNCTION(errorConstructorFuncCaptureStackTrace, (JSC::JSGlobalOb errorObject->deleteProperty(lexicalGlobalObject, vm.propertyNames->stack); } if (formattedStackTrace.isUndefinedOrNull()) { - errorObject->putDirect(vm, vm.propertyNames->stack, jsUndefined(), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum); - } else { - errorObject->putDirect(vm, vm.propertyNames->stack, formattedStackTrace, JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum); + formattedStackTrace = JSC::jsUndefined(); + } + + errorObject->putDirect(vm, vm.propertyNames->stack, formattedStackTrace, 0); + + if (!(caller && caller.isObject())) { + if (auto* instance = jsDynamicCast(errorObject)) { + // we make a separate copy of the StackTrace unfortunately so that we + // can later console.log it without losing the info + // + // This is not good. We should remove this in the future as it strictly makes this function + // already slower than necessary. + instance->captureStackTrace(vm, globalObject, 1, false); + } } RETURN_IF_EXCEPTION(scope, JSC::JSValue::encode(JSValue {})); @@ -3118,11 +3273,8 @@ void GlobalObject::finishCreation(VM& vm) RELEASE_ASSERT(classInfo()); JSC::JSObject* errorConstructor = this->errorConstructor(); - errorConstructor->putDirectNativeFunctionWithoutTransition(vm, this, JSC::Identifier::fromString(vm, "captureStackTrace"_s), 2, errorConstructorFuncCaptureStackTrace, ImplementationVisibility::Public, JSC::NoIntrinsic, PropertyAttribute::DontEnum | 0); - - // JSC default is 100 - errorConstructor->putDirect(vm, vm.propertyNames->stackTraceLimit, jsNumber(DEFAULT_ERROR_STACK_TRACE_LIMIT), JSC::PropertyAttribute::DontEnum | 0); - + errorConstructor->putDirectNativeFunction(vm, this, JSC::Identifier::fromString(vm, "captureStackTrace"_s), 2, errorConstructorFuncCaptureStackTrace, ImplementationVisibility::Public, JSC::NoIntrinsic, PropertyAttribute::DontEnum | 0); + errorConstructor->putDirectNativeFunction(vm, this, JSC::Identifier::fromString(vm, "appendStackTrace"_s), 2, errorConstructorFuncAppendStackTrace, ImplementationVisibility::Private, JSC::NoIntrinsic, PropertyAttribute::DontEnum | 0); JSC::JSValue console = this->get(this, JSC::Identifier::fromString(vm, "console"_s)); JSC::JSObject* consoleObject = console.getObject(); consoleObject->putDirectBuiltinFunction(vm, this, vm.propertyNames->asyncIteratorSymbol, consoleObjectAsyncIteratorCodeGenerator(vm), PropertyAttribute::Builtin | PropertyAttribute::DontDelete); diff --git a/src/bun.js/bindings/bindings.cpp b/src/bun.js/bindings/bindings.cpp index 3f3d82dc4..68aef29dd 100644 --- a/src/bun.js/bindings/bindings.cpp +++ b/src/bun.js/bindings/bindings.cpp @@ -3528,12 +3528,13 @@ static void fromErrorInstance(ZigException* except, JSC::JSGlobalObject* global, JSC::JSValue val) { JSC::JSObject* obj = JSC::jsDynamicCast(val); + JSC::VM& vm = global->vm(); bool getFromSourceURL = false; if (stackTrace != nullptr && stackTrace->size() > 0) { - populateStackTrace(global->vm(), *stackTrace, &except->stack); + populateStackTrace(vm, *stackTrace, &except->stack); } else if (err->stackTrace() != nullptr && err->stackTrace()->size() > 0) { - populateStackTrace(global->vm(), *err->stackTrace(), &except->stack); + populateStackTrace(vm, *err->stackTrace(), &except->stack); } else { getFromSourceURL = true; } @@ -3546,7 +3547,7 @@ static void fromErrorInstance(ZigException* except, JSC::JSGlobalObject* global, } if (except->code == SYNTAX_ERROR_CODE) { except->message = Zig::toZigString(err->sanitizedMessageString(global)); - } else if (JSC::JSValue message = obj->getIfPropertyExists(global, global->vm().propertyNames->message)) { + } else if (JSC::JSValue message = obj->getIfPropertyExists(global, vm.propertyNames->message)) { except->message = Zig::toZigString(message, global); @@ -3556,7 +3557,7 @@ static void fromErrorInstance(ZigException* except, JSC::JSGlobalObject* global, except->name = Zig::toZigString(err->sanitizedNameString(global)); except->runtime_type = err->runtimeTypeForCause(); - auto clientData = WebCore::clientData(global->vm()); + auto clientData = WebCore::clientData(vm); if (except->code != SYNTAX_ERROR_CODE) { if (JSC::JSValue syscall = obj->getIfPropertyExists(global, clientData->builtinNames().syscallPublicName())) { @@ -3571,7 +3572,7 @@ static void fromErrorInstance(ZigException* except, JSC::JSGlobalObject* global, except->path = Zig::toZigString(path, global); } - if (JSC::JSValue fd = obj->getIfPropertyExists(global, Identifier::fromString(global->vm(), "fd"_s))) { + if (JSC::JSValue fd = obj->getIfPropertyExists(global, Identifier::fromString(vm, "fd"_s))) { if (fd.isAnyInt()) { except->fd = fd.toInt32(global); } @@ -3583,17 +3584,17 @@ static void fromErrorInstance(ZigException* except, JSC::JSGlobalObject* global, } if (getFromSourceURL) { - if (JSC::JSValue sourceURL = obj->getIfPropertyExists(global, global->vm().propertyNames->sourceURL)) { + if (JSC::JSValue sourceURL = obj->getIfPropertyExists(global, vm.propertyNames->sourceURL)) { except->stack.frames_ptr[0].source_url = Zig::toZigString(sourceURL, global); - if (JSC::JSValue column = obj->getIfPropertyExists(global, global->vm().propertyNames->column)) { + if (JSC::JSValue column = obj->getIfPropertyExists(global, vm.propertyNames->column)) { except->stack.frames_ptr[0].position.column_start = column.toInt32(global); } - if (JSC::JSValue line = obj->getIfPropertyExists(global, global->vm().propertyNames->line)) { + if (JSC::JSValue line = obj->getIfPropertyExists(global, vm.propertyNames->line)) { except->stack.frames_ptr[0].position.line = line.toInt32(global); - if (JSC::JSValue lineText = obj->getIfPropertyExists(global, JSC::Identifier::fromString(global->vm(), "lineText"_s))) { + if (JSC::JSValue lineText = obj->getIfPropertyExists(global, JSC::Identifier::fromString(vm, "lineText"_s))) { if (JSC::JSString* jsStr = lineText.toStringOrNull(global)) { auto str = jsStr->value(global); except->stack.source_lines_ptr[0] = Zig::toZigString(str); @@ -3603,7 +3604,9 @@ static void fromErrorInstance(ZigException* except, JSC::JSGlobalObject* global, } } } + except->stack.frames_len = 1; + except->stack.frames_ptr[0].remapped = obj->hasProperty(global, JSC::Identifier::fromString(vm, "originalLine"_s)); } } @@ -3654,7 +3657,12 @@ void exceptionFromString(ZigException* except, JSC::JSValue value, JSC::JSGlobal if (JSC::JSValue line = obj->getIfPropertyExists(global, global->vm().propertyNames->line)) { if (line) { - except->stack.frames_ptr[0].position.line = line.toInt32(global); + // TODO: don't sourcemap it twice + if (auto originalLine = obj->getIfPropertyExists(global, JSC::Identifier::fromString(global->vm(), "originalLine"_s))) { + except->stack.frames_ptr[0].position.line = originalLine.toInt32(global); + } else { + except->stack.frames_ptr[0].position.line = line.toInt32(global); + } except->stack.frames_len = 1; } } diff --git a/src/bun.js/javascript.zig b/src/bun.js/javascript.zig index cb1a50f1d..5c58eff60 100644 --- a/src/bun.js/javascript.zig +++ b/src/bun.js/javascript.zig @@ -1981,19 +1981,21 @@ pub const VirtualMachine = struct { } pub fn remapStackFramePositions(this: *VirtualMachine, frames: [*]JSC.ZigStackFrame, frames_count: usize) void { - var i: usize = 0; - while (i < frames_count) : (i += 1) { - if (frames[i].position.isInvalid()) continue; + for (frames[0..frames_count]) |*frame| { + if (frame.position.isInvalid() or frame.remapped) continue; + var sourceURL = frame.source_url.toSlice(bun.default_allocator); + defer sourceURL.deinit(); + if (this.source_mappings.resolveMapping( - frames[i].source_url.slice(), - @max(frames[i].position.line, 0), - @max(frames[i].position.column_start, 0), + sourceURL.slice(), + @max(frame.position.line, 0), + @max(frame.position.column_start, 0), )) |mapping| { - frames[i].position.line = mapping.original.lines; - frames[i].position.column_start = mapping.original.columns; - frames[i].remapped = true; + frame.position.line = mapping.original.lines; + frame.position.column_start = mapping.original.columns; + frame.remapped = true; } else { - frames[i].remapped = true; + frame.remapped = true; } } } diff --git a/test/js/node/v8/capture-stack-trace.test.js b/test/js/node/v8/capture-stack-trace.test.js index d96f91483..cb2624681 100644 --- a/test/js/node/v8/capture-stack-trace.test.js +++ b/test/js/node/v8/capture-stack-trace.test.js @@ -5,6 +5,18 @@ afterEach(() => { Error.prepareStackTrace = origPrepareStackTrace; }); +test("Regular .stack", () => { + var err; + class Foo { + constructor() { + err = new Error("wat"); + } + } + + new Foo(); + expect(err.stack).toMatch(/at new Foo/); +}); + test("capture stack trace", () => { function f1() { f2(); -- cgit v1.2.3 From 292647bd531c154f81d2d3d8f3344e01752549f6 Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Wed, 28 Jun 2023 16:09:08 -0700 Subject: Introduce `await Bun.file(path).exists()` (#3446) Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> --- packages/bun-types/bun.d.ts | 24 +++++++++++++++++++++- src/bun.js/bindings/ZigGeneratedClasses.cpp | 31 +++++++++++++++++++++++++++++ src/bun.js/bindings/generated_classes.zig | 3 +++ src/bun.js/webcore/blob.zig | 29 +++++++++++++++++++++++++++ src/bun.js/webcore/response.classes.ts | 1 + test/js/bun/util/bun-file-exists.test.js | 8 ++++++++ 6 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 test/js/bun/util/bun-file-exists.test.js (limited to 'test/js') diff --git a/packages/bun-types/bun.d.ts b/packages/bun-types/bun.d.ts index 306971d4c..4c10212f2 100644 --- a/packages/bun-types/bun.d.ts +++ b/packages/bun-types/bun.d.ts @@ -673,7 +673,29 @@ declare module "bun" { /** * The name or path of the file, as specified in the constructor. */ - name?: number; + readonly name?: string; + + /** + * Does the file exist? + * + * This returns true for regular files and FIFOs. It returns false for + * directories. Note that a race condition can occur where the file is + * deleted or renamed after this is called but before you open it. + * + * This does a system call to check if the file exists, which can be + * slow. + * + * If using this in an HTTP server, it's faster to instead use `return new + * Response(Bun.file(path))` and then an `error` handler to handle + * exceptions. + * + * Instead of checking for a file's existence and then performing the + * operation, it is faster to just perform the operation and handle the + * error. + * + * For empty Blob, this always returns true. + */ + exists(): Promise; } /** diff --git a/src/bun.js/bindings/ZigGeneratedClasses.cpp b/src/bun.js/bindings/ZigGeneratedClasses.cpp index 387580d54..b7461b5f0 100644 --- a/src/bun.js/bindings/ZigGeneratedClasses.cpp +++ b/src/bun.js/bindings/ZigGeneratedClasses.cpp @@ -103,6 +103,9 @@ extern "C" void BlobClass__finalize(void*); extern "C" EncodedJSValue BlobPrototype__getArrayBuffer(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame); JSC_DECLARE_HOST_FUNCTION(BlobPrototype__arrayBufferCallback); +extern "C" EncodedJSValue BlobPrototype__getExists(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame); +JSC_DECLARE_HOST_FUNCTION(BlobPrototype__existsCallback); + extern "C" EncodedJSValue BlobPrototype__getFormData(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame); JSC_DECLARE_HOST_FUNCTION(BlobPrototype__formDataCallback); @@ -137,6 +140,7 @@ STATIC_ASSERT_ISO_SUBSPACE_SHARABLE(JSBlobPrototype, JSBlobPrototype::Base); static const HashTableValue JSBlobPrototypeTableValues[] = { { "arrayBuffer"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, BlobPrototype__arrayBufferCallback, 0 } }, + { "exists"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, BlobPrototype__existsCallback, 0 } }, { "formData"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, BlobPrototype__formDataCallback, 0 } }, { "json"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, BlobPrototype__jsonCallback, 0 } }, { "lastModified"_s, static_cast(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::GetterSetterType, BlobPrototype__lastModifiedGetterWrap, 0 } }, @@ -190,6 +194,33 @@ JSC_DEFINE_HOST_FUNCTION(BlobPrototype__arrayBufferCallback, (JSGlobalObject * l return BlobPrototype__getArrayBuffer(thisObject->wrapped(), lexicalGlobalObject, callFrame); } +JSC_DEFINE_HOST_FUNCTION(BlobPrototype__existsCallback, (JSGlobalObject * lexicalGlobalObject, CallFrame* callFrame)) +{ + auto& vm = lexicalGlobalObject->vm(); + + JSBlob* thisObject = jsDynamicCast(callFrame->thisValue()); + + if (UNLIKELY(!thisObject)) { + auto throwScope = DECLARE_THROW_SCOPE(vm); + return throwVMTypeError(lexicalGlobalObject, throwScope); + } + + JSC::EnsureStillAliveScope thisArg = JSC::EnsureStillAliveScope(thisObject); + +#ifdef BUN_DEBUG + /** View the file name of the JS file that called this function + * from a debugger */ + SourceOrigin sourceOrigin = callFrame->callerSourceOrigin(vm); + const char* fileName = sourceOrigin.string().utf8().data(); + static const char* lastFileName = nullptr; + if (lastFileName != fileName) { + lastFileName = fileName; + } +#endif + + return BlobPrototype__getExists(thisObject->wrapped(), lexicalGlobalObject, callFrame); +} + JSC_DEFINE_HOST_FUNCTION(BlobPrototype__formDataCallback, (JSGlobalObject * lexicalGlobalObject, CallFrame* callFrame)) { auto& vm = lexicalGlobalObject->vm(); diff --git a/src/bun.js/bindings/generated_classes.zig b/src/bun.js/bindings/generated_classes.zig index bdde69c1a..04a72d7ed 100644 --- a/src/bun.js/bindings/generated_classes.zig +++ b/src/bun.js/bindings/generated_classes.zig @@ -108,6 +108,8 @@ pub const JSBlob = struct { if (@TypeOf(Blob.getArrayBuffer) != CallbackType) @compileLog("Expected Blob.getArrayBuffer to be a callback but received " ++ @typeName(@TypeOf(Blob.getArrayBuffer))); + if (@TypeOf(Blob.getExists) != CallbackType) + @compileLog("Expected Blob.getExists to be a callback but received " ++ @typeName(@TypeOf(Blob.getExists))); if (@TypeOf(Blob.getFormData) != CallbackType) @compileLog("Expected Blob.getFormData to be a callback but received " ++ @typeName(@TypeOf(Blob.getFormData))); if (@TypeOf(Blob.getJSON) != CallbackType) @@ -136,6 +138,7 @@ pub const JSBlob = struct { @export(Blob.constructor, .{ .name = "BlobClass__construct" }); @export(Blob.finalize, .{ .name = "BlobClass__finalize" }); @export(Blob.getArrayBuffer, .{ .name = "BlobPrototype__getArrayBuffer" }); + @export(Blob.getExists, .{ .name = "BlobPrototype__getExists" }); @export(Blob.getFormData, .{ .name = "BlobPrototype__getFormData" }); @export(Blob.getJSON, .{ .name = "BlobPrototype__getJSON" }); @export(Blob.getLastModified, .{ .name = "BlobPrototype__getLastModified" }); diff --git a/src/bun.js/webcore/blob.zig b/src/bun.js/webcore/blob.zig index 868acbb80..faf503a3f 100644 --- a/src/bun.js/webcore/blob.zig +++ b/src/bun.js/webcore/blob.zig @@ -319,6 +319,7 @@ pub const Blob = struct { }, ); } + pub fn writeFormat(this: *const Blob, comptime Formatter: type, formatter: *Formatter, writer: anytype, comptime enable_ansi_colors: bool) !void { const Writer = @TypeOf(writer); @@ -2324,6 +2325,34 @@ pub const Blob = struct { return promisified(this.toFormData(globalThis, .temporary), globalThis); } + fn getExistsSync(this: *Blob) JSC.JSValue { + if (this.size == Blob.max_size) { + this.resolveSize(); + } + + // If there's no store that means it's empty and we just return true + // it will not error to return an empty Blob + var store = this.store orelse return JSValue.jsBoolean(true); + + if (store.data == .bytes) { + // Bytes will never error + return JSValue.jsBoolean(true); + } + + // We say regular files and pipes exist. + // This is mostly meant for "Can we use this in new Response(file)?" + return JSValue.jsBoolean(std.os.S.ISREG(store.data.file.mode) or std.os.S.ISFIFO(store.data.file.mode)); + } + + // This mostly means 'can it be read?' + pub fn getExists( + this: *Blob, + globalThis: *JSC.JSGlobalObject, + _: *JSC.CallFrame, + ) callconv(.C) JSValue { + return JSC.JSPromise.resolvedPromiseValue(globalThis, this.getExistsSync()); + } + pub fn getWriter( this: *Blob, globalThis: *JSC.JSGlobalObject, diff --git a/src/bun.js/webcore/response.classes.ts b/src/bun.js/webcore/response.classes.ts index b6ad452d2..c11cb10b2 100644 --- a/src/bun.js/webcore/response.classes.ts +++ b/src/bun.js/webcore/response.classes.ts @@ -132,6 +132,7 @@ export default [ slice: { fn: "getSlice", length: 2 }, stream: { fn: "getStream", length: 1 }, formData: { fn: "getFormData" }, + exists: { fn: "getExists", length: 0 }, type: { getter: "getType", diff --git a/test/js/bun/util/bun-file-exists.test.js b/test/js/bun/util/bun-file-exists.test.js new file mode 100644 index 000000000..da6dce192 --- /dev/null +++ b/test/js/bun/util/bun-file-exists.test.js @@ -0,0 +1,8 @@ +import { test, expect } from "bun:test"; + +test("bun-file-exists", async () => { + expect(await Bun.file(import.meta.path).exists()).toBeTrue(); + expect(await Bun.file(import.meta.path + "boop").exists()).toBeFalse(); + expect(await Bun.file(import.meta.dir).exists()).toBeFalse(); + expect(await Bun.file(import.meta.dir + "/").exists()).toBeFalse(); +}); -- cgit v1.2.3 From 086ca176be5c8dcc30278b97df274f152fcd112e Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Wed, 28 Jun 2023 16:19:58 -0700 Subject: Make these tests do more --- test/js/bun/util/bun-file-exists.test.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'test/js') diff --git a/test/js/bun/util/bun-file-exists.test.js b/test/js/bun/util/bun-file-exists.test.js index da6dce192..cca28e359 100644 --- a/test/js/bun/util/bun-file-exists.test.js +++ b/test/js/bun/util/bun-file-exists.test.js @@ -1,8 +1,20 @@ import { test, expect } from "bun:test"; - +import { join } from "path"; +import { tmpdir } from "os"; +import { write } from "bun"; +import { unlinkSync } from "fs"; test("bun-file-exists", async () => { expect(await Bun.file(import.meta.path).exists()).toBeTrue(); expect(await Bun.file(import.meta.path + "boop").exists()).toBeFalse(); expect(await Bun.file(import.meta.dir).exists()).toBeFalse(); expect(await Bun.file(import.meta.dir + "/").exists()).toBeFalse(); + const temp = join(tmpdir(), "bun-file-exists.test.js"); + try { + unlinkSync(temp); + } catch (e) {} + expect(await Bun.file(temp).exists()).toBeFalse(); + await write(temp, "boop"); + expect(await Bun.file(temp).exists()).toBeTrue(); + unlinkSync(temp); + expect(await Bun.file(temp).exists()).toBeFalse(); }); -- cgit v1.2.3 From 182e8aa1392af9ba92beccce06f49f8e4593fe5c Mon Sep 17 00:00:00 2001 From: "Alex Lam S.L" Date: Thu, 29 Jun 2023 02:27:15 +0300 Subject: [jest] fix lifecycle hook execution order (#3447) --- src/bun.js/test/jest.zig | 162 +++++++++++++++++++++--------------- test/js/bun/test/jest-hooks.test.ts | 31 +++++++ test/js/bun/test/test-test.test.ts | 6 +- 3 files changed, 130 insertions(+), 69 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/test/jest.zig b/src/bun.js/test/jest.zig index f43afb1a2..d3bb90747 100644 --- a/src/bun.js/test/jest.zig +++ b/src/bun.js/test/jest.zig @@ -493,8 +493,7 @@ pub const Jest = struct { var filepath = Fs.FileSystem.instance.filename_store.append([]const u8, slice) catch unreachable; var scope = runner_.getOrPutFile(filepath); - DescribeScope.active = scope; - DescribeScope.module = scope; + scope.push(); return Bun__Jest__testModuleObject(ctx).asObjectRef(); } @@ -751,17 +750,16 @@ pub const DescribeScope = struct { } pub fn push(new: *DescribeScope) void { - if (comptime is_bindgen) return undefined; - if (new == DescribeScope.active) return; - - new.parent = DescribeScope.active; + if (comptime is_bindgen) return; + std.debug.assert(DescribeScope.active != new); + if (new.parent) |scope| std.debug.assert(scope == DescribeScope.active); DescribeScope.active = new; } pub fn pop(this: *DescribeScope) void { - if (comptime is_bindgen) return undefined; - if (DescribeScope.active == this) - DescribeScope.active = this.parent orelse DescribeScope.active; + if (comptime is_bindgen) return; + std.debug.assert(DescribeScope.active == this); + DescribeScope.active = this.parent; } pub const LifecycleHook = enum { @@ -771,8 +769,7 @@ pub const DescribeScope = struct { afterAll, }; - pub threadlocal var active: *DescribeScope = undefined; - pub threadlocal var module: *DescribeScope = undefined; + pub threadlocal var active: ?*DescribeScope = null; const CallbackFn = *const fn ( *JSC.JSGlobalObject, @@ -781,21 +778,24 @@ pub const DescribeScope = struct { fn createCallback(comptime hook: LifecycleHook) CallbackFn { return struct { - const this_hook = hook; pub fn run( globalThis: *JSC.JSGlobalObject, callframe: *JSC.CallFrame, ) callconv(.C) JSC.JSValue { - const arguments_ = callframe.arguments(2); - const arguments = arguments_.ptr[0..arguments_.len]; - if (arguments.len == 0 or !arguments[0].isObject() or !arguments[0].isCallable(globalThis.vm())) { - globalThis.throwInvalidArgumentType(@tagName(this_hook), "callback", "function"); + const arguments = callframe.arguments(2); + if (arguments.len < 1) { + globalThis.throwNotEnoughArguments("callback", 1, arguments.len); return .zero; } - arguments[0].protect(); - const name = comptime @as(string, @tagName(this_hook)); - @field(DescribeScope.active, name).append(getAllocator(globalThis), arguments[0]) catch unreachable; + const cb = arguments.ptr[0]; + if (!cb.isObject() or !cb.isCallable(globalThis.vm())) { + globalThis.throwInvalidArgumentType(@tagName(hook), "callback", "function"); + return .zero; + } + + cb.protect(); + @field(DescribeScope.active.?, @tagName(hook)).append(getAllocator(globalThis), cb) catch unreachable; return JSC.JSValue.jsBoolean(true); } }.run; @@ -829,11 +829,22 @@ pub const DescribeScope = struct { pub const beforeAll = createCallback(.beforeAll); pub const beforeEach = createCallback(.beforeEach); - pub fn execCallback(this: *DescribeScope, globalObject: *JSC.JSGlobalObject, comptime hook: LifecycleHook) JSValue { - const name = comptime @as(string, @tagName(hook)); - var hooks: []JSC.JSValue = @field(this, name).items; - for (hooks, 0..) |cb, i| { - if (cb.isEmpty()) continue; + pub fn execCallback(this: *DescribeScope, globalObject: *JSC.JSGlobalObject, comptime hook: LifecycleHook) ?JSValue { + var hooks = &@field(this, @tagName(hook)); + defer { + if (comptime hook == .beforeAll or hook == .afterAll) { + hooks.clearAndFree(getAllocator(globalObject)); + } + } + + for (hooks.items) |cb| { + std.debug.assert(cb.isObject()); + std.debug.assert(cb.isCallable(globalObject.vm())); + defer { + if (comptime hook == .beforeAll or hook == .afterAll) { + cb.unprotect(); + } + } const pending_test = Jest.runner.?.pending_test; // forbid `expect()` within hooks @@ -843,20 +854,23 @@ pub const DescribeScope = struct { Jest.runner.?.did_pending_test_fail = false; const vm = VirtualMachine.get(); - var result: JSC.JSValue = if (cb.getLength(globalObject) > 0) brk: { - this.done = false; - const done_func = JSC.NewFunctionWithData( - globalObject, - ZigString.static("done"), - 0, - DescribeScope.onDone, - false, - this, - ); - var result = cb.call(globalObject, &.{done_func}); - vm.waitFor(&this.done); - break :brk result; - } else cb.call(globalObject, &.{}); + var result: JSC.JSValue = switch (cb.getLength(globalObject)) { + 0 => cb.call(globalObject, &.{}), + else => brk: { + this.done = false; + const done_func = JSC.NewFunctionWithData( + globalObject, + ZigString.static("done"), + 0, + DescribeScope.onDone, + false, + this, + ); + var result = cb.call(globalObject, &.{done_func}); + vm.waitFor(&this.done); + break :brk result; + }, + }; if (result.asAnyPromise()) |promise| { if (promise.status(globalObject.vm()) == .Pending) { result.protect(); @@ -870,19 +884,28 @@ pub const DescribeScope = struct { Jest.runner.?.pending_test = pending_test; Jest.runner.?.did_pending_test_fail = orig_did_pending_test_fail; if (result.isAnyError()) return result; - - if (comptime hook == .beforeAll or hook == .afterAll) { - hooks[i] = JSC.JSValue.zero; - } } - return JSValue.zero; + return null; } pub fn runGlobalCallbacks(globalThis: *JSC.JSGlobalObject, comptime hook: LifecycleHook) ?JSValue { // global callbacks - for (@field(Jest.runner.?.global_callbacks, @tagName(hook)).items) |cb| { - if (cb.isEmpty()) continue; + var hooks = &@field(Jest.runner.?.global_callbacks, @tagName(hook)); + defer { + if (comptime hook == .beforeAll or hook == .afterAll) { + hooks.clearAndFree(getAllocator(globalThis)); + } + } + + for (hooks.items) |cb| { + std.debug.assert(cb.isObject()); + std.debug.assert(cb.isCallable(globalThis.vm())); + defer { + if (comptime hook == .beforeAll or hook == .afterAll) { + cb.unprotect(); + } + } const pending_test = Jest.runner.?.pending_test; // forbid `expect()` within hooks @@ -909,28 +932,40 @@ pub const DescribeScope = struct { if (result.isAnyError()) return result; } - if (comptime hook == .beforeAll or hook == .afterAll) { - @field(Jest.runner.?.global_callbacks, @tagName(hook)).items.len = 0; - } - return null; } + fn runBeforeCallbacks(this: *DescribeScope, globalObject: *JSC.JSGlobalObject, comptime hook: LifecycleHook) ?JSValue { + if (this.parent) |scope| { + if (scope.runBeforeCallbacks(globalObject, hook)) |err| { + return err; + } + } + return this.execCallback(globalObject, hook); + } + pub fn runCallback(this: *DescribeScope, globalObject: *JSC.JSGlobalObject, comptime hook: LifecycleHook) JSValue { + if (comptime hook == .afterAll or hook == .afterEach) { + var parent: ?*DescribeScope = this; + while (parent) |scope| { + if (scope.execCallback(globalObject, hook)) |err| { + return err; + } + parent = scope.parent; + } + } + if (runGlobalCallbacks(globalObject, hook)) |err| { return err; } - var parent = this.parent; - while (parent) |scope| { - const ret = scope.execCallback(globalObject, hook); - if (!ret.isEmpty()) { - return ret; + if (comptime hook == .beforeAll or hook == .beforeEach) { + if (this.runBeforeCallbacks(globalObject, hook)) |err| { + return err; } - parent = scope.parent; } - return this.execCallback(globalObject, hook); + return .zero; } pub fn call(globalThis: *JSGlobalObject, callframe: *CallFrame) callconv(.C) JSValue { @@ -961,11 +996,8 @@ pub const DescribeScope = struct { if (comptime is_bindgen) return undefined; callback.protect(); defer callback.unprotect(); - var original_active = active; - defer active = original_active; - if (this != module) - this.parent = this.parent orelse active; - active = this; + this.push(); + defer this.pop(); if (callback == .zero) { this.runTests(globalObject); @@ -1064,9 +1096,8 @@ pub const DescribeScope = struct { if (!this.isAllSkipped()) { // Run the afterAll callbacks, in reverse order // unless there were no tests for this scope - const afterAll_result = this.execCallback(globalThis, .afterAll); - if (!afterAll_result.isEmpty()) { - globalThis.bunVM().runErrorHandler(afterAll_result, null); + if (this.execCallback(globalThis, .afterAll)) |err| { + globalThis.bunVM().runErrorHandler(err, null); } } @@ -1146,7 +1177,6 @@ pub const TestRunnerTask = struct { // reset the global state for each test // prior to the run - DescribeScope.active = describe; expect.active_test_expectation_counter = .{}; jsc_vm.last_reported_error_for_dedupe = .zero; @@ -1417,7 +1447,7 @@ inline fn createScope( return .zero; } - const parent = DescribeScope.active; + const parent = DescribeScope.active.?; const allocator = getAllocator(globalThis); const label = if (description == .zero) "" diff --git a/test/js/bun/test/jest-hooks.test.ts b/test/js/bun/test/jest-hooks.test.ts index c99dc7759..618cdc4c6 100644 --- a/test/js/bun/test/jest-hooks.test.ts +++ b/test/js/bun/test/jest-hooks.test.ts @@ -1,5 +1,36 @@ import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it } from "bun:test"; +let hooks_run: string[] = []; + +beforeAll(() => hooks_run.push("global beforeAll")); +beforeEach(() => hooks_run.push("global beforeEach")); +afterAll(() => hooks_run.push("global afterAll")); +afterEach(() => hooks_run.push("global afterEach")); + +describe("describe scope", () => { + beforeAll(() => hooks_run.push("describe beforeAll")); + beforeEach(() => hooks_run.push("describe beforeEach")); + afterAll(() => hooks_run.push("describe afterAll")); + afterEach(() => hooks_run.push("describe afterEach")); + + it("should run after beforeAll/beforeEach in the correct order", () => { + expect(hooks_run).toEqual(["global beforeAll", "describe beforeAll", "global beforeEach", "describe beforeEach"]); + }); + + it("should run after afterEach/afterAll in the correct order", () => { + expect(hooks_run).toEqual([ + "global beforeAll", + "describe beforeAll", + "global beforeEach", + "describe beforeEach", + "describe afterEach", + "global afterEach", + "global beforeEach", + "describe beforeEach", + ]); + }); +}); + describe("test jest hooks in bun-test", () => { describe("test beforeAll hook", () => { let animal = "tiger"; diff --git a/test/js/bun/test/test-test.test.ts b/test/js/bun/test/test-test.test.ts index 7ecfdef11..5f732bb82 100644 --- a/test/js/bun/test/test-test.test.ts +++ b/test/js/bun/test/test-test.test.ts @@ -540,18 +540,18 @@ beforeEach: #2 beforeEach: TEST-FILE beforeEach: one describe scope -- inside one describe scope -- +afterEach: one describe scope +afterEach: TEST-FILE afterEach: #1 afterEach: #2 -afterEach: TEST-FILE -afterEach: one describe scope afterAll: one describe scope beforeEach: #1 beforeEach: #2 beforeEach: TEST-FILE -- the top-level test -- +afterEach: TEST-FILE afterEach: #1 afterEach: #2 -afterEach: TEST-FILE afterAll: TEST-FILE afterAll: #1 afterAll: #2 -- cgit v1.2.3 From 0cee640199e1102385d639e8e84707d2f3576967 Mon Sep 17 00:00:00 2001 From: dave caruso Date: Wed, 28 Jun 2023 20:45:18 -0400 Subject: export resolve6 from dns/promises (#3450) --- src/js/node/dns.promises.js | 2 ++ test/js/node/dns/dns.node.mjs | 0 test/js/node/dns/node-dns.test.js | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+) delete mode 100644 test/js/node/dns/dns.node.mjs (limited to 'test/js') diff --git a/src/js/node/dns.promises.js b/src/js/node/dns.promises.js index 8b1aa4e48..bcc47faee 100644 --- a/src/js/node/dns.promises.js +++ b/src/js/node/dns.promises.js @@ -6,6 +6,7 @@ export const { lookupService, resolve, resolve4, + resolve6, resolveAny, resolveCname, resolveCaa, @@ -27,6 +28,7 @@ export default { lookupService, resolve, resolve4, + resolve6, resolveAny, resolveCname, resolveCaa, diff --git a/test/js/node/dns/dns.node.mjs b/test/js/node/dns/dns.node.mjs deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/js/node/dns/node-dns.test.js b/test/js/node/dns/node-dns.test.js index 5fb8e0739..5de840146 100644 --- a/test/js/node/dns/node-dns.test.js +++ b/test/js/node/dns/node-dns.test.js @@ -1,5 +1,6 @@ import { expect, test } from "bun:test"; import * as dns from "node:dns"; +import * as dns_promises from "node:dns/promises"; // TODO: test("it exists", () => { @@ -18,6 +19,38 @@ test("it exists", () => { expect(dns.resolveNs).toBeDefined(); expect(dns.resolvePtr).toBeDefined(); expect(dns.resolveCname).toBeDefined(); + + expect(dns.promises).toBeDefined(); + expect(dns.promises.lookup).toBeDefined(); + expect(dns.promises.lookupService).toBeDefined(); + expect(dns.promises.resolve).toBeDefined(); + expect(dns.promises.resolve4).toBeDefined(); + expect(dns.promises.resolve6).toBeDefined(); + expect(dns.promises.resolveSrv).toBeDefined(); + expect(dns.promises.resolveTxt).toBeDefined(); + expect(dns.promises.resolveSoa).toBeDefined(); + expect(dns.promises.resolveNaptr).toBeDefined(); + expect(dns.promises.resolveMx).toBeDefined(); + expect(dns.promises.resolveCaa).toBeDefined(); + expect(dns.promises.resolveNs).toBeDefined(); + expect(dns.promises.resolvePtr).toBeDefined(); + expect(dns.promises.resolveCname).toBeDefined(); + + expect(dns_promises).toBeDefined(); + expect(dns_promises.lookup).toBeDefined(); + expect(dns_promises.lookupService).toBeDefined(); + expect(dns_promises.resolve).toBeDefined(); + expect(dns_promises.resolve4).toBeDefined(); + expect(dns_promises.resolve6).toBeDefined(); + expect(dns_promises.resolveSrv).toBeDefined(); + expect(dns_promises.resolveTxt).toBeDefined(); + expect(dns_promises.resolveSoa).toBeDefined(); + expect(dns_promises.resolveNaptr).toBeDefined(); + expect(dns_promises.resolveMx).toBeDefined(); + expect(dns_promises.resolveCaa).toBeDefined(); + expect(dns_promises.resolveNs).toBeDefined(); + expect(dns_promises.resolvePtr).toBeDefined(); + expect(dns_promises.resolveCname).toBeDefined(); }); // //TODO: use a bun.sh SRV for testing -- cgit v1.2.3 From 32d9abcc03bf2c2542574ff9ae1717d933f5d85f Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Wed, 28 Jun 2023 19:20:41 -0700 Subject: Fix bad test --- test/js/bun/resolve/import-meta.test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'test/js') diff --git a/test/js/bun/resolve/import-meta.test.js b/test/js/bun/resolve/import-meta.test.js index 2d79c531e..e23b44446 100644 --- a/test/js/bun/resolve/import-meta.test.js +++ b/test/js/bun/resolve/import-meta.test.js @@ -97,9 +97,9 @@ it("Module._cache", () => { expect(!!expected).toBe(true); }); -it("Module._resolveFileName()", () => { +it("Module._resolveFilename()", () => { const expected = Bun.resolveSync(import.meta.path, "/"); - const result = Module._resolveFileName(import.meta.path, "/", true); + const result = Module._resolveFilename(import.meta.path, "/", true); expect(result).toBe(expected); }); -- cgit v1.2.3 From 8481f2922f4f6fe07f8b44067fe478cb1ac1706a Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Wed, 28 Jun 2023 21:45:16 -0700 Subject: Add GC test for errors --- src/bun.js/WebKit | 2 +- src/bun.js/bindings/ZigGlobalObject.cpp | 8 ++++++-- src/bun.js/javascript.zig | 4 ++-- test/js/bun/util/error-gc-test.test.js | 26 ++++++++++++++++++++++++++ 4 files changed, 35 insertions(+), 5 deletions(-) create mode 100644 test/js/bun/util/error-gc-test.test.js (limited to 'test/js') diff --git a/src/bun.js/WebKit b/src/bun.js/WebKit index a9e3ab9b8..8a03cf746 160000 --- a/src/bun.js/WebKit +++ b/src/bun.js/WebKit @@ -1 +1 @@ -Subproject commit a9e3ab9b85cf911218e1d51eed8079cd955ec578 +Subproject commit 8a03cf746abef8a48c932ab25f8821390632f2e2 diff --git a/src/bun.js/bindings/ZigGlobalObject.cpp b/src/bun.js/bindings/ZigGlobalObject.cpp index 9ff3ebf93..7ba0f0b30 100644 --- a/src/bun.js/bindings/ZigGlobalObject.cpp +++ b/src/bun.js/bindings/ZigGlobalObject.cpp @@ -390,7 +390,11 @@ static String computeErrorInfoWithoutPrepareStackTrace(JSC::VM& vm, Vector { + for (let i = 0; i < 100; i++) { + var fn = function yo() { + var err = (function innerOne() { + var err = new Error(); + for (let i = 0; i < 1000; i++) { + Bun.inspect(err); + } + Bun.gc(true); + return err; + })(); + err.stack += ""; + }; + + Object.defineProperty(fn, "name", { + value: + "yoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyoyo" + + i, + }); + + fn(); + Bun.gc(true); + } +}); -- cgit v1.2.3 From 8b2c72300c49b1b52ff40c7a927e1d7ddcb4e7a9 Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Wed, 28 Jun 2023 21:56:26 -0700 Subject: Another test --- test/js/bun/util/error-gc-test.test.js | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'test/js') diff --git a/test/js/bun/util/error-gc-test.test.js b/test/js/bun/util/error-gc-test.test.js index 8cef55760..5f9134d4c 100644 --- a/test/js/bun/util/error-gc-test.test.js +++ b/test/js/bun/util/error-gc-test.test.js @@ -1,5 +1,7 @@ import { test, expect } from "bun:test"; +// This test checks that printing stack traces increments and decrements +// reference-counted strings test("error gc test", () => { for (let i = 0; i < 100; i++) { var fn = function yo() { @@ -24,3 +26,10 @@ test("error gc test", () => { Bun.gc(true); } }); + +test("error gc test #2", () => { + for (let i = 0; i < 1000; i++) { + new Error().stack; + Bun.gc(); + } +}); -- cgit v1.2.3 From 853e3771595fd46bb09641c8dbdab738843a45cd Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Thu, 29 Jun 2023 08:30:21 -0700 Subject: Revert "[jest] fix lifecycle hook execution order (#3447)" (#3455) This reverts commit 182e8aa1392af9ba92beccce06f49f8e4593fe5c. --- src/bun.js/test/jest.zig | 162 +++++++++++++++--------------------- test/js/bun/test/jest-hooks.test.ts | 31 ------- test/js/bun/test/test-test.test.ts | 6 +- 3 files changed, 69 insertions(+), 130 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/test/jest.zig b/src/bun.js/test/jest.zig index 5ae2337f9..d53194e00 100644 --- a/src/bun.js/test/jest.zig +++ b/src/bun.js/test/jest.zig @@ -493,7 +493,8 @@ pub const Jest = struct { var filepath = Fs.FileSystem.instance.filename_store.append([]const u8, slice) catch unreachable; var scope = runner_.getOrPutFile(filepath); - scope.push(); + DescribeScope.active = scope; + DescribeScope.module = scope; return Bun__Jest__testModuleObject(ctx).asObjectRef(); } @@ -750,16 +751,17 @@ pub const DescribeScope = struct { } pub fn push(new: *DescribeScope) void { - if (comptime is_bindgen) return; - std.debug.assert(DescribeScope.active != new); - if (new.parent) |scope| std.debug.assert(scope == DescribeScope.active); + if (comptime is_bindgen) return undefined; + if (new == DescribeScope.active) return; + + new.parent = DescribeScope.active; DescribeScope.active = new; } pub fn pop(this: *DescribeScope) void { - if (comptime is_bindgen) return; - std.debug.assert(DescribeScope.active == this); - DescribeScope.active = this.parent; + if (comptime is_bindgen) return undefined; + if (DescribeScope.active == this) + DescribeScope.active = this.parent orelse DescribeScope.active; } pub const LifecycleHook = enum { @@ -769,7 +771,8 @@ pub const DescribeScope = struct { afterAll, }; - pub threadlocal var active: ?*DescribeScope = null; + pub threadlocal var active: *DescribeScope = undefined; + pub threadlocal var module: *DescribeScope = undefined; const CallbackFn = *const fn ( *JSC.JSGlobalObject, @@ -778,24 +781,21 @@ pub const DescribeScope = struct { fn createCallback(comptime hook: LifecycleHook) CallbackFn { return struct { + const this_hook = hook; pub fn run( globalThis: *JSC.JSGlobalObject, callframe: *JSC.CallFrame, ) callconv(.C) JSC.JSValue { - const arguments = callframe.arguments(2); - if (arguments.len < 1) { - globalThis.throwNotEnoughArguments("callback", 1, arguments.len); + const arguments_ = callframe.arguments(2); + const arguments = arguments_.ptr[0..arguments_.len]; + if (arguments.len == 0 or !arguments[0].isObject() or !arguments[0].isCallable(globalThis.vm())) { + globalThis.throwInvalidArgumentType(@tagName(this_hook), "callback", "function"); return .zero; } - const cb = arguments.ptr[0]; - if (!cb.isObject() or !cb.isCallable(globalThis.vm())) { - globalThis.throwInvalidArgumentType(@tagName(hook), "callback", "function"); - return .zero; - } - - cb.protect(); - @field(DescribeScope.active.?, @tagName(hook)).append(getAllocator(globalThis), cb) catch unreachable; + arguments[0].protect(); + const name = comptime @as(string, @tagName(this_hook)); + @field(DescribeScope.active, name).append(getAllocator(globalThis), arguments[0]) catch unreachable; return JSC.JSValue.jsBoolean(true); } }.run; @@ -829,22 +829,11 @@ pub const DescribeScope = struct { pub const beforeAll = createCallback(.beforeAll); pub const beforeEach = createCallback(.beforeEach); - pub fn execCallback(this: *DescribeScope, globalObject: *JSC.JSGlobalObject, comptime hook: LifecycleHook) ?JSValue { - var hooks = &@field(this, @tagName(hook)); - defer { - if (comptime hook == .beforeAll or hook == .afterAll) { - hooks.clearAndFree(getAllocator(globalObject)); - } - } - - for (hooks.items) |cb| { - std.debug.assert(cb.isObject()); - std.debug.assert(cb.isCallable(globalObject.vm())); - defer { - if (comptime hook == .beforeAll or hook == .afterAll) { - cb.unprotect(); - } - } + pub fn execCallback(this: *DescribeScope, globalObject: *JSC.JSGlobalObject, comptime hook: LifecycleHook) JSValue { + const name = comptime @as(string, @tagName(hook)); + var hooks: []JSC.JSValue = @field(this, name).items; + for (hooks, 0..) |cb, i| { + if (cb.isEmpty()) continue; const pending_test = Jest.runner.?.pending_test; // forbid `expect()` within hooks @@ -854,23 +843,20 @@ pub const DescribeScope = struct { Jest.runner.?.did_pending_test_fail = false; const vm = VirtualMachine.get(); - var result: JSC.JSValue = switch (cb.getLength(globalObject)) { - 0 => cb.call(globalObject, &.{}), - else => brk: { - this.done = false; - const done_func = JSC.NewFunctionWithData( - globalObject, - ZigString.static("done"), - 0, - DescribeScope.onDone, - false, - this, - ); - var result = cb.call(globalObject, &.{done_func}); - vm.waitFor(&this.done); - break :brk result; - }, - }; + var result: JSC.JSValue = if (cb.getLength(globalObject) > 0) brk: { + this.done = false; + const done_func = JSC.NewFunctionWithData( + globalObject, + ZigString.static("done"), + 0, + DescribeScope.onDone, + false, + this, + ); + var result = cb.call(globalObject, &.{done_func}); + vm.waitFor(&this.done); + break :brk result; + } else cb.call(globalObject, &.{}); if (result.asAnyPromise()) |promise| { if (promise.status(globalObject.vm()) == .Pending) { result.protect(); @@ -884,28 +870,19 @@ pub const DescribeScope = struct { Jest.runner.?.pending_test = pending_test; Jest.runner.?.did_pending_test_fail = orig_did_pending_test_fail; if (result.isAnyError()) return result; + + if (comptime hook == .beforeAll or hook == .afterAll) { + hooks[i] = JSC.JSValue.zero; + } } - return null; + return JSValue.zero; } pub fn runGlobalCallbacks(globalThis: *JSC.JSGlobalObject, comptime hook: LifecycleHook) ?JSValue { // global callbacks - var hooks = &@field(Jest.runner.?.global_callbacks, @tagName(hook)); - defer { - if (comptime hook == .beforeAll or hook == .afterAll) { - hooks.clearAndFree(getAllocator(globalThis)); - } - } - - for (hooks.items) |cb| { - std.debug.assert(cb.isObject()); - std.debug.assert(cb.isCallable(globalThis.vm())); - defer { - if (comptime hook == .beforeAll or hook == .afterAll) { - cb.unprotect(); - } - } + for (@field(Jest.runner.?.global_callbacks, @tagName(hook)).items) |cb| { + if (cb.isEmpty()) continue; const pending_test = Jest.runner.?.pending_test; // forbid `expect()` within hooks @@ -932,40 +909,28 @@ pub const DescribeScope = struct { if (result.isAnyError()) return result; } - return null; - } - - fn runBeforeCallbacks(this: *DescribeScope, globalObject: *JSC.JSGlobalObject, comptime hook: LifecycleHook) ?JSValue { - if (this.parent) |scope| { - if (scope.runBeforeCallbacks(globalObject, hook)) |err| { - return err; - } + if (comptime hook == .beforeAll or hook == .afterAll) { + @field(Jest.runner.?.global_callbacks, @tagName(hook)).items.len = 0; } - return this.execCallback(globalObject, hook); + + return null; } pub fn runCallback(this: *DescribeScope, globalObject: *JSC.JSGlobalObject, comptime hook: LifecycleHook) JSValue { - if (comptime hook == .afterAll or hook == .afterEach) { - var parent: ?*DescribeScope = this; - while (parent) |scope| { - if (scope.execCallback(globalObject, hook)) |err| { - return err; - } - parent = scope.parent; - } - } - if (runGlobalCallbacks(globalObject, hook)) |err| { return err; } - if (comptime hook == .beforeAll or hook == .beforeEach) { - if (this.runBeforeCallbacks(globalObject, hook)) |err| { - return err; + var parent = this.parent; + while (parent) |scope| { + const ret = scope.execCallback(globalObject, hook); + if (!ret.isEmpty()) { + return ret; } + parent = scope.parent; } - return .zero; + return this.execCallback(globalObject, hook); } pub fn call(globalThis: *JSGlobalObject, callframe: *CallFrame) callconv(.C) JSValue { @@ -996,8 +961,11 @@ pub const DescribeScope = struct { if (comptime is_bindgen) return undefined; callback.protect(); defer callback.unprotect(); - this.push(); - defer this.pop(); + var original_active = active; + defer active = original_active; + if (this != module) + this.parent = this.parent orelse active; + active = this; if (callback == .zero) { this.runTests(globalObject); @@ -1096,8 +1064,9 @@ pub const DescribeScope = struct { if (!this.isAllSkipped()) { // Run the afterAll callbacks, in reverse order // unless there were no tests for this scope - if (this.execCallback(globalThis, .afterAll)) |err| { - globalThis.bunVM().runErrorHandler(err, null); + const afterAll_result = this.execCallback(globalThis, .afterAll); + if (!afterAll_result.isEmpty()) { + globalThis.bunVM().runErrorHandler(afterAll_result, null); } } @@ -1177,6 +1146,7 @@ pub const TestRunnerTask = struct { // reset the global state for each test // prior to the run + DescribeScope.active = describe; expect.active_test_expectation_counter = .{}; jsc_vm.last_reported_error_for_dedupe = .zero; @@ -1447,7 +1417,7 @@ inline fn createScope( return .zero; } - const parent = DescribeScope.active.?; + const parent = DescribeScope.active; const allocator = getAllocator(globalThis); const label = if (description == .zero) "" diff --git a/test/js/bun/test/jest-hooks.test.ts b/test/js/bun/test/jest-hooks.test.ts index 618cdc4c6..c99dc7759 100644 --- a/test/js/bun/test/jest-hooks.test.ts +++ b/test/js/bun/test/jest-hooks.test.ts @@ -1,36 +1,5 @@ import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it } from "bun:test"; -let hooks_run: string[] = []; - -beforeAll(() => hooks_run.push("global beforeAll")); -beforeEach(() => hooks_run.push("global beforeEach")); -afterAll(() => hooks_run.push("global afterAll")); -afterEach(() => hooks_run.push("global afterEach")); - -describe("describe scope", () => { - beforeAll(() => hooks_run.push("describe beforeAll")); - beforeEach(() => hooks_run.push("describe beforeEach")); - afterAll(() => hooks_run.push("describe afterAll")); - afterEach(() => hooks_run.push("describe afterEach")); - - it("should run after beforeAll/beforeEach in the correct order", () => { - expect(hooks_run).toEqual(["global beforeAll", "describe beforeAll", "global beforeEach", "describe beforeEach"]); - }); - - it("should run after afterEach/afterAll in the correct order", () => { - expect(hooks_run).toEqual([ - "global beforeAll", - "describe beforeAll", - "global beforeEach", - "describe beforeEach", - "describe afterEach", - "global afterEach", - "global beforeEach", - "describe beforeEach", - ]); - }); -}); - describe("test jest hooks in bun-test", () => { describe("test beforeAll hook", () => { let animal = "tiger"; diff --git a/test/js/bun/test/test-test.test.ts b/test/js/bun/test/test-test.test.ts index 5f732bb82..7ecfdef11 100644 --- a/test/js/bun/test/test-test.test.ts +++ b/test/js/bun/test/test-test.test.ts @@ -540,18 +540,18 @@ beforeEach: #2 beforeEach: TEST-FILE beforeEach: one describe scope -- inside one describe scope -- -afterEach: one describe scope -afterEach: TEST-FILE afterEach: #1 afterEach: #2 +afterEach: TEST-FILE +afterEach: one describe scope afterAll: one describe scope beforeEach: #1 beforeEach: #2 beforeEach: TEST-FILE -- the top-level test -- -afterEach: TEST-FILE afterEach: #1 afterEach: #2 +afterEach: TEST-FILE afterAll: TEST-FILE afterAll: #1 afterAll: #2 -- cgit v1.2.3 From fec0d15c4f20c053c4660ec8ad4da31d689ec895 Mon Sep 17 00:00:00 2001 From: dave caruso Date: Thu, 29 Jun 2023 11:53:44 -0400 Subject: cant believe i missed this (#3453) --- src/node-fallbacks/node-fetch.js | 1 + test/js/node/fs/node-fetch.cjs.test.js | 13 +++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 test/js/node/fs/node-fetch.cjs.test.js (limited to 'test/js') diff --git a/src/node-fallbacks/node-fetch.js b/src/node-fallbacks/node-fetch.js index a66d8fc7f..f124e6461 100644 --- a/src/node-fallbacks/node-fetch.js +++ b/src/node-fallbacks/node-fetch.js @@ -70,6 +70,7 @@ export default Object.assign(fetch, { fileFrom, fileFromSync, isRedirect, + [Symbol.for("CommonJS")]: 0, }); export { diff --git a/test/js/node/fs/node-fetch.cjs.test.js b/test/js/node/fs/node-fetch.cjs.test.js new file mode 100644 index 000000000..9a6a4b407 --- /dev/null +++ b/test/js/node/fs/node-fetch.cjs.test.js @@ -0,0 +1,13 @@ +const fetch = require("node-fetch"); + +test("require('node-fetch') fetches", async () => { + const server = Bun.serve({ + port: 0, + fetch(req, server) { + server.stop(); + return new Response(); + }, + }); + expect(await fetch("http://" + server.hostname + ":" + server.port)).toBeInstanceOf(Response); + server.stop(true); +}); -- cgit v1.2.3 From 70a87e11818d36f5922a495e2aed8618b01e9a73 Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Thu, 29 Jun 2023 16:36:59 -0700 Subject: Make `node:os` `tmpdir` more consistent with Node.js --- src/bun.js/node/node_os.zig | 28 ++-------------------------- src/js/node/os.js | 23 +++++++++++++++++++++-- src/js/out/modules/node/os.js | 14 ++++++++++++-- test/js/node/os/os.test.js | 5 +++++ 4 files changed, 40 insertions(+), 30 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/node/node_os.zig b/src/bun.js/node/node_os.zig index 7f9ea2e28..f71143315 100644 --- a/src/bun.js/node/node_os.zig +++ b/src/bun.js/node/node_os.zig @@ -16,7 +16,7 @@ pub const Os = struct { pub const code = @embedFile("../os.exports.js"); pub fn create(globalObject: *JSC.JSGlobalObject) callconv(.C) JSC.JSValue { - const module = JSC.JSValue.createEmptyObject(globalObject, 20); + const module = JSC.JSValue.createEmptyObject(globalObject, 22); module.put(globalObject, JSC.ZigString.static("arch"), JSC.NewFunction(globalObject, JSC.ZigString.static("arch"), 0, arch, true)); module.put(globalObject, JSC.ZigString.static("cpus"), JSC.NewFunction(globalObject, JSC.ZigString.static("cpus"), 0, cpus, true)); @@ -31,7 +31,6 @@ pub const Os = struct { module.put(globalObject, JSC.ZigString.static("platform"), JSC.NewFunction(globalObject, JSC.ZigString.static("platform"), 0, platform, true)); module.put(globalObject, JSC.ZigString.static("release"), JSC.NewFunction(globalObject, JSC.ZigString.static("release"), 0, release, true)); module.put(globalObject, JSC.ZigString.static("setPriority"), JSC.NewFunction(globalObject, JSC.ZigString.static("setPriority"), 2, setPriority, true)); - module.put(globalObject, JSC.ZigString.static("tmpdir"), JSC.NewFunction(globalObject, JSC.ZigString.static("tmpdir"), 0, tmpdir, true)); module.put(globalObject, JSC.ZigString.static("totalmem"), JSC.NewFunction(globalObject, JSC.ZigString.static("totalmem"), 0, totalmem, true)); module.put(globalObject, JSC.ZigString.static("type"), JSC.NewFunction(globalObject, JSC.ZigString.static("type"), 0, Os.type, true)); module.put(globalObject, JSC.ZigString.static("uptime"), JSC.NewFunction(globalObject, JSC.ZigString.static("uptime"), 0, uptime, true)); @@ -485,7 +484,7 @@ pub const Os = struct { std.os.AF.INET => JSC.ZigString.static("IPv4"), std.os.AF.INET6 => JSC.ZigString.static("IPv6"), else => JSC.ZigString.static("unknown"), - }).toValue(globalThis)); + }).toValueGC(globalThis)); // mac The MAC address of the network interface { @@ -620,29 +619,6 @@ pub const Os = struct { return JSC.JSValue.jsUndefined(); } - pub fn tmpdir(globalThis: *JSC.JSGlobalObject, _: *JSC.CallFrame) callconv(.C) JSC.JSValue { - JSC.markBinding(@src()); - - const dir: []const u8 = brk: { - if (comptime Environment.isWindows) { - if (bun.getenvZ("TEMP") orelse bun.getenvZ("TMP")) |tmpdir_| { - break :brk tmpdir_; - } - - if (bun.getenvZ("SYSTEMROOT") orelse bun.getenvZ("WINDIR")) |systemdir_| { - break :brk systemdir_ ++ "\\temp"; - } - } else { - const dir = bun.asByteSlice(bun.getenvZ("TMPDIR") orelse bun.getenvZ("TMP") orelse bun.getenvZ("TEMP") orelse "/tmp"); - break :brk strings.withoutTrailingSlash(dir); - } - - break :brk "unknown"; - }; - - return JSC.ZigString.init(dir).withEncoding().toValueGC(globalThis); - } - pub fn totalmem(_: *JSC.JSGlobalObject, _: *JSC.CallFrame) callconv(.C) JSC.JSValue { JSC.markBinding(@src()); diff --git a/src/js/node/os.js b/src/js/node/os.js index 3315708ad..3cd0288bd 100644 --- a/src/js/node/os.js +++ b/src/js/node/os.js @@ -1,4 +1,22 @@ // Hardcoded module "node:os" + +export var tmpdir = function () { + var lazy = Symbol.for("Bun.lazy"); + var primordials = globalThis[lazy]("primordials"); + + var { Bun } = primordials; + var env = Bun.env; + + tmpdir = function () { + var path = env["TMPDIR"] || env["TMP"] || env["TEMP"] || "/tmp"; + const length = path.length; + if (length > 1 && path[length - 1] === "/") path = path.slice(0, -1); + return path; + }; + + return tmpdir(); +}; + function bound(obj) { return { arch: obj.arch.bind(obj), @@ -13,7 +31,9 @@ function bound(obj) { platform: obj.platform.bind(obj), release: obj.release.bind(obj), setPriority: obj.setPriority.bind(obj), - tmpdir: obj.tmpdir.bind(obj), + get tmpdir() { + return tmpdir; + }, totalmem: obj.totalmem.bind(obj), type: obj.type.bind(obj), uptime: obj.uptime.bind(obj), @@ -42,7 +62,6 @@ export var { platform, release, setPriority, - tmpdir, totalmem, type, uptime, diff --git a/src/js/out/modules/node/os.js b/src/js/out/modules/node/os.js index e27464e15..69c112412 100644 --- a/src/js/out/modules/node/os.js +++ b/src/js/out/modules/node/os.js @@ -12,7 +12,9 @@ var bound = function(obj) { platform: obj.platform.bind(obj), release: obj.release.bind(obj), setPriority: obj.setPriority.bind(obj), - tmpdir: obj.tmpdir.bind(obj), + get tmpdir() { + return tmpdir; + }, totalmem: obj.totalmem.bind(obj), type: obj.type.bind(obj), uptime: obj.uptime.bind(obj), @@ -24,6 +26,15 @@ var bound = function(obj) { constants: obj.constants, [Symbol.for("CommonJS")]: 0 }; +}, tmpdir = function() { + var lazy = Symbol.for("Bun.lazy"), primordials = globalThis[lazy]("primordials"), { Bun: Bun2 } = primordials, env = Bun2.env; + return tmpdir = function() { + var path = env["TMPDIR"] || env["TMP"] || env["TEMP"] || "/tmp"; + const length = path.length; + if (length > 1 && path[length - 1] === "/") + path = path.slice(0, -1); + return path; + }, tmpdir(); }, os = bound(Bun._Os()), { arch, cpus, @@ -37,7 +48,6 @@ var bound = function(obj) { platform, release, setPriority, - tmpdir, totalmem, type, uptime, diff --git a/test/js/node/os/os.test.js b/test/js/node/os/os.test.js index d7229b56d..8b4d54bb7 100644 --- a/test/js/node/os/os.test.js +++ b/test/js/node/os/os.test.js @@ -43,11 +43,16 @@ it("tmpdir", () => { expect(os.tmpdir()).toBe(process.env.TEMP || process.env.TMP); expect(os.tmpdir()).toBe(`${process.env.SystemRoot || process.env.windir}\\temp`); } else { + const originalEnv = process.env.TMPDIR; let dir = process.env.TMPDIR || process.env.TMP || process.env.TEMP || "/tmp"; if (dir.length > 1 && dir.endsWith("/")) { dir = dir.substring(0, dir.length - 1); } expect(realpathSync(os.tmpdir())).toBe(realpathSync(dir)); + + process.env.TMPDIR = "/boop"; + expect(os.tmpdir()).toBe("/boop"); + process.env.TMPDIR = originalEnv; } }); -- cgit v1.2.3 From b9460087e391c454f323390a42902a3ed024c8bc Mon Sep 17 00:00:00 2001 From: dave caruso Date: Thu, 29 Jun 2023 23:36:18 -0400 Subject: Fixes `node:http` and `node:stream` so `ytdl-core` works. (#3452) * fix crash in readablestate * make node:https request+get actually use https * use a native readablestream in IncomingMessage * tweaks * fix abort crash * emit close by default * remove abort. this isnt a real function * add validate functions, fixup some other requested changes. not done yet * Update WebCoreJSBuiltins.cpp * Update JSReadableState.cpp * Add some missing exports --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> --- packages/bun-types/bun.d.ts | 6 +- packages/bun-types/globals.d.ts | 9 +- src/bun.js/api/server.zig | 3 +- src/bun.js/bindings/JSReadableState.cpp | 5 +- src/bun.js/webcore/body.zig | 6 +- src/js/builtins/ReadableStreamDefaultReader.ts | 4 +- src/js/builtins/builtins.d.ts | 6 +- src/js/node/events.js | 10 +- src/js/node/http.js | 1795 ----------------------- src/js/node/http.ts | 1810 ++++++++++++++++++++++++ src/js/node/https.js | 3 - src/js/node/https.ts | 65 + src/js/out/WebCoreJSBuiltins.cpp | 150 +- src/js/out/modules/node/assert.js | 84 +- src/js/out/modules/node/dns.promises.js | 3 + src/js/out/modules/node/events.js | 2 + src/js/out/modules/node/fs.promises.js | 2 +- src/js/out/modules/node/http.js | 103 +- src/js/out/modules/node/https.js | 55 +- src/js/private.d.ts | 1 + test/js/node/http/node-http.test.ts | 23 +- 21 files changed, 2163 insertions(+), 1982 deletions(-) delete mode 100644 src/js/node/http.js create mode 100644 src/js/node/http.ts delete mode 100644 src/js/node/https.js create mode 100644 src/js/node/https.ts (limited to 'test/js') diff --git a/packages/bun-types/bun.d.ts b/packages/bun-types/bun.d.ts index 4c10212f2..86ded9aa0 100644 --- a/packages/bun-types/bun.d.ts +++ b/packages/bun-types/bun.d.ts @@ -1912,7 +1912,9 @@ declare module "bun" { export interface TLSWebSocketServeOptions extends WebSocketServeOptions, - TLSOptions {} + TLSOptions { + tls?: TLSOptions; + } export interface Errorlike extends Error { code?: string; errno?: number; @@ -2023,6 +2025,8 @@ declare module "bun" { * The values are SSL options objects. */ serverNames?: Record; + + tls?: TLSOptions; } /** diff --git a/packages/bun-types/globals.d.ts b/packages/bun-types/globals.d.ts index a5d011b52..5784f91c2 100644 --- a/packages/bun-types/globals.d.ts +++ b/packages/bun-types/globals.d.ts @@ -888,6 +888,12 @@ type ReadableStreamController = ReadableStreamDefaultController; type ReadableStreamDefaultReadResult = | ReadableStreamDefaultReadValueResult | ReadableStreamDefaultReadDoneResult; +interface ReadableStreamDefaultReadManyResult { + done: boolean; + /** Number of bytes */ + size: number; + value: T[]; +} type ReadableStreamReader = ReadableStreamDefaultReader; interface RequestInit { @@ -2261,7 +2267,8 @@ declare var ReadableStreamDefaultController: { interface ReadableStreamDefaultReader extends ReadableStreamGenericReader { read(): Promise>; - readMany(): Promise>; + /** Only available in Bun. If there are multiple chunks in the queue, this will return all of them at the same time. */ + readMany(): Promise>; releaseLock(): void; } diff --git a/src/bun.js/api/server.zig b/src/bun.js/api/server.zig index ebfacdcc9..32c4fd25c 100644 --- a/src/bun.js/api/server.zig +++ b/src/bun.js/api/server.zig @@ -1456,12 +1456,11 @@ fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, comp // the promise is pending if (body.value.Locked.action != .none or body.value.Locked.promise != null) { this.pending_promises_for_abort += 1; - body.value.toErrorInstance(JSC.toTypeError(.ABORT_ERR, "Request aborted", .{}, this.server.globalThis), this.server.globalThis); } else if (body.value.Locked.readable != null) { body.value.Locked.readable.?.abort(this.server.globalThis); - body.value.toErrorInstance(JSC.toTypeError(.ABORT_ERR, "Request aborted", .{}, this.server.globalThis), this.server.globalThis); body.value.Locked.readable = null; } + body.value.toErrorInstance(JSC.toTypeError(.ABORT_ERR, "Request aborted", .{}, this.server.globalThis), this.server.globalThis); } } diff --git a/src/bun.js/bindings/JSReadableState.cpp b/src/bun.js/bindings/JSReadableState.cpp index 8a4ee746b..1f3a36def 100644 --- a/src/bun.js/bindings/JSReadableState.cpp +++ b/src/bun.js/bindings/JSReadableState.cpp @@ -29,7 +29,7 @@ int64_t getHighWaterMark(JSC::VM& vm, JSC::JSGlobalObject* globalObject, bool is highWaterMarkVal = options->getIfPropertyExists(globalObject, JSC::Identifier::fromString(vm, "readableObjectMode"_s)); } - if (highWaterMarkVal && !highWaterMarkVal.isUndefinedOrNull()) { + if (highWaterMarkVal && highWaterMarkVal.isNumber()) { return highWaterMarkVal.toInt32(globalObject); } } @@ -72,6 +72,9 @@ void JSReadableState::finishCreation(JSC::VM& vm, JSC::JSGlobalObject* globalObj JSC::JSValue autoDestroyVal = options->getIfPropertyExists(globalObject, JSC::Identifier::fromString(vm, "autoDestroy"_s)); if (!autoDestroyVal || autoDestroyVal.toBoolean(globalObject)) setBool(JSReadableState::Mask::autoDestroy, true); + } else { + setBool(JSReadableState::Mask::emitClose, true); + setBool(JSReadableState::Mask::autoDestroy, true); } // Indicates whether the stream has finished destroying. diff --git a/src/bun.js/webcore/body.zig b/src/bun.js/webcore/body.zig index df3ba3ce1..028b104b2 100644 --- a/src/bun.js/webcore/body.zig +++ b/src/bun.js/webcore/body.zig @@ -496,8 +496,10 @@ pub const Body = struct { locked.readable.?.value.protect(); return locked.readable.?.value; }, - - else => unreachable, + .Error => { + // TODO: handle error properly + return JSC.WebCore.ReadableStream.empty(globalThis); + }, } } diff --git a/src/js/builtins/ReadableStreamDefaultReader.ts b/src/js/builtins/ReadableStreamDefaultReader.ts index ecd553ed5..70c6df8c3 100644 --- a/src/js/builtins/ReadableStreamDefaultReader.ts +++ b/src/js/builtins/ReadableStreamDefaultReader.ts @@ -43,7 +43,7 @@ export function cancel(this, reason) { return $readableStreamReaderGenericCancel(this, reason); } -export function readMany(this) { +export function readMany(this: ReadableStreamDefaultReader): ReadableStreamDefaultReadManyResult { if (!$isReadableStreamDefaultReader(this)) throw new TypeError("ReadableStreamDefaultReader.readMany() should not be called directly"); @@ -75,7 +75,7 @@ export function readMany(this) { var length = values.length; if (length > 0) { - var outValues = $newArrayWithSize(length); + var outValues = $newArrayWithSize(length); if ($isReadableByteStreamController(controller)) { { const buf = values[0]; diff --git a/src/js/builtins/builtins.d.ts b/src/js/builtins/builtins.d.ts index 449c9c128..2de8d8206 100644 --- a/src/js/builtins/builtins.d.ts +++ b/src/js/builtins/builtins.d.ts @@ -433,9 +433,9 @@ declare interface ArrayBufferConstructor extends ClassWithIntrinsics extends ClassWithIntrinsics> {} declare interface UnderlyingSource { - $lazy: boolean; - $bunNativeType: number; - $bunNativePtr: number; + $lazy?: boolean; + $bunNativeType?: number; + $bunNativePtr?: number; autoAllocateChunkSize?: number; } diff --git a/src/js/node/events.js b/src/js/node/events.js index 4fd16a85b..111fdb524 100644 --- a/src/js/node/events.js +++ b/src/js/node/events.js @@ -463,12 +463,14 @@ const usingDomains = false; Object.assign(EventEmitter, { once, on, getEventListeners, setMaxListeners, listenerCount, EventEmitterAsyncResource }); export { EventEmitter, - once, - on, + captureRejectionSymbol, + kErrorMonitor as errorMonitor, getEventListeners, - setMaxListeners, listenerCount, + on, + once, + setMaxListeners, usingDomains, - captureRejectionSymbol, + EventEmitterAsyncResource, }; export default EventEmitter; diff --git a/src/js/node/http.js b/src/js/node/http.js deleted file mode 100644 index fe9730101..000000000 --- a/src/js/node/http.js +++ /dev/null @@ -1,1795 +0,0 @@ -// Hardcoded module "node:http" -import { EventEmitter } from "node:events"; -import { Readable, Writable, Duplex } from "node:stream"; -import { isTypedArray } from "util/types"; - -// Cheaper to duplicate this than to import it from node:net -function isIPv6(input) { - const v4Seg = "(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])"; - const v4Str = `(${v4Seg}[.]){3}${v4Seg}`; - const v6Seg = "(?:[0-9a-fA-F]{1,4})"; - const IPv6Reg = new RegExp( - "^(" + - `(?:${v6Seg}:){7}(?:${v6Seg}|:)|` + - `(?:${v6Seg}:){6}(?:${v4Str}|:${v6Seg}|:)|` + - `(?:${v6Seg}:){5}(?::${v4Str}|(:${v6Seg}){1,2}|:)|` + - `(?:${v6Seg}:){4}(?:(:${v6Seg}){0,1}:${v4Str}|(:${v6Seg}){1,3}|:)|` + - `(?:${v6Seg}:){3}(?:(:${v6Seg}){0,2}:${v4Str}|(:${v6Seg}){1,4}|:)|` + - `(?:${v6Seg}:){2}(?:(:${v6Seg}){0,3}:${v4Str}|(:${v6Seg}){1,5}|:)|` + - `(?:${v6Seg}:){1}(?:(:${v6Seg}){0,4}:${v4Str}|(:${v6Seg}){1,6}|:)|` + - `(?::((?::${v6Seg}){0,5}:${v4Str}|(?::${v6Seg}){1,7}|:))` + - ")(%[0-9a-zA-Z-.:]{1,})?$", - ); - - return IPv6Reg.test(input); -} - -// TODO: add primordial for URL -// Importing from node:url is unnecessary -const { URL } = globalThis; - -const { newArrayWithSize, String, Object, Array } = globalThis[Symbol.for("Bun.lazy")]("primordials"); - -const globalReportError = globalThis.reportError; -const setTimeout = globalThis.setTimeout; -const fetch = Bun.fetch; -const nop = () => {}; - -const __DEBUG__ = process.env.__DEBUG__; -const debug = __DEBUG__ ? (...args) => console.log("node:http", ...args) : nop; - -const kEmptyObject = Object.freeze(Object.create(null)); -const kOutHeaders = Symbol.for("kOutHeaders"); -const kEndCalled = Symbol.for("kEndCalled"); -const kAbortController = Symbol.for("kAbortController"); -const kClearTimeout = Symbol("kClearTimeout"); - -const kCorked = Symbol.for("kCorked"); -const searchParamsSymbol = Symbol.for("query"); // This is the symbol used in Node - -// Primordials -const StringPrototypeSlice = String.prototype.slice; -const StringPrototypeStartsWith = String.prototype.startsWith; -const StringPrototypeToUpperCase = String.prototype.toUpperCase; -const StringPrototypeIncludes = String.prototype.includes; -const StringPrototypeCharCodeAt = String.prototype.charCodeAt; -const StringPrototypeIndexOf = String.prototype.indexOf; -const ArrayIsArray = Array.isArray; -const RegExpPrototypeExec = RegExp.prototype.exec; -const ObjectAssign = Object.assign; -const ObjectPrototypeHasOwnProperty = Object.prototype.hasOwnProperty; - -const INVALID_PATH_REGEX = /[^\u0021-\u00ff]/; -const NODE_HTTP_WARNING = - "WARN: Agent is mostly unused in Bun's implementation of http. If you see strange behavior, this is probably the cause."; - -var _globalAgent; -var _defaultHTTPSAgent; -var kInternalRequest = Symbol("kInternalRequest"); -var kInternalSocketData = Symbol.for("::bunternal::"); - -const kEmptyBuffer = Buffer.alloc(0); - -function isValidTLSArray(obj) { - if (typeof obj === "string" || isTypedArray(obj) || obj instanceof ArrayBuffer || obj instanceof Blob) return true; - if (Array.isArray(obj)) { - for (var i = 0; i < obj.length; i++) { - if (typeof obj !== "string" && !isTypedArray(obj) && !(obj instanceof ArrayBuffer) && !(obj instanceof Blob)) - return false; - } - return true; - } -} - -function getHeader(headers, name) { - if (!headers) return; - const result = headers.get(name); - return result == null ? undefined : result; -} - -var FakeSocket = class Socket extends Duplex { - bytesRead = 0; - bytesWritten = 0; - connecting = false; - remoteAddress = null; - localAddress = "127.0.0.1"; - remotePort; - timeout = 0; - - isServer = false; - - address() { - return { - address: this.localAddress, - family: this.localFamily, - port: this.localPort, - }; - } - - get bufferSize() { - return this.writableLength; - } - - connect(port, host, connectListener) { - return this; - } - - _destroy(err, callback) {} - - _final(callback) {} - - get localAddress() { - return "127.0.0.1"; - } - - get localFamily() { - return "IPv4"; - } - - get localPort() { - return 80; - } - - get pending() { - return this.connecting; - } - - _read(size) {} - - get readyState() { - if (this.connecting) return "opening"; - if (this.readable) { - return this.writable ? "open" : "readOnly"; - } else { - return this.writable ? "writeOnly" : "closed"; - } - } - - ref() {} - - get remoteFamily() { - return "IPv4"; - } - - resetAndDestroy() {} - - setKeepAlive(enable = false, initialDelay = 0) {} - - setNoDelay(noDelay = true) { - return this; - } - - setTimeout(timeout, callback) { - return this; - } - - unref() {} - - _write(chunk, encoding, callback) {} -}; - -export function createServer(options, callback) { - return new Server(options, callback); -} - -export class Agent extends EventEmitter { - defaultPort = 80; - protocol = "http:"; - options; - requests; - sockets; - freeSockets; - - keepAliveMsecs; - keepAlive; - maxSockets; - maxFreeSockets; - scheduling; - maxTotalSockets; - totalSocketCount; - - #fakeSocket; - - static get globalAgent() { - return (_globalAgent ??= new Agent()); - } - - static get defaultMaxSockets() { - return Infinity; - } - - constructor(options = kEmptyObject) { - super(); - this.options = options = { ...options, path: null }; - if (options.noDelay === undefined) options.noDelay = true; - - // Don't confuse net and make it think that we're connecting to a pipe - this.requests = kEmptyObject; - this.sockets = kEmptyObject; - this.freeSockets = kEmptyObject; - - this.keepAliveMsecs = options.keepAliveMsecs || 1000; - this.keepAlive = options.keepAlive || false; - this.maxSockets = options.maxSockets || Agent.defaultMaxSockets; - this.maxFreeSockets = options.maxFreeSockets || 256; - this.scheduling = options.scheduling || "lifo"; - this.maxTotalSockets = options.maxTotalSockets; - this.totalSocketCount = 0; - this.defaultPort = options.defaultPort || 80; - this.protocol = options.protocol || "http:"; - } - - createConnection() { - debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.createConnection is a no-op, returns fake socket"); - return (this.#fakeSocket ??= new FakeSocket()); - } - - getName(options = kEmptyObject) { - let name = `http:${options.host || "localhost"}:`; - if (options.port) name += options.port; - name += ":"; - if (options.localAddress) name += options.localAddress; - // Pacify parallel/test-http-agent-getname by only appending - // the ':' when options.family is set. - if (options.family === 4 || options.family === 6) name += `:${options.family}`; - if (options.socketPath) name += `:${options.socketPath}`; - return name; - } - - addRequest() { - debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.addRequest is a no-op"); - } - - createSocket(req, options, cb) { - debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.createSocket returns fake socket"); - cb(null, (this.#fakeSocket ??= new FakeSocket())); - } - - removeSocket() { - debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.removeSocket is a no-op"); - } - - keepSocketAlive() { - debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.keepSocketAlive is a no-op"); - - return true; - } - - reuseSocket() { - debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.reuseSocket is a no-op"); - } - - destroy() { - debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.destroy is a no-op"); - } -} -function emitListeningNextTick(self, onListen, err, hostname, port) { - if (typeof onListen === "function") { - try { - onListen(err, hostname, port); - } catch (err) { - self.emit("error", err); - } - } - - self.listening = !err; - - if (err) { - self.emit("error", err); - } else { - self.emit("listening", hostname, port); - } -} - -export class Server extends EventEmitter { - #server; - #options; - #tls; - #is_tls = false; - listening = false; - - constructor(options, callback) { - super(); - - if (typeof options === "function") { - callback = options; - options = {}; - } else if (options == null || typeof options === "object") { - options = { ...options }; - this.#tls = null; - let key = options.key; - if (key) { - if (!isValidTLSArray(key)) { - throw new TypeError( - "key argument must be an string, Buffer, TypedArray, BunFile or an array containing string, Buffer, TypedArray or BunFile", - ); - } - this.#is_tls = true; - } - let cert = options.cert; - if (cert) { - if (!isValidTLSArray(cert)) { - throw new TypeError( - "cert argument must be an string, Buffer, TypedArray, BunFile or an array containing string, Buffer, TypedArray or BunFile", - ); - } - this.#is_tls = true; - } - - let ca = options.ca; - if (ca) { - if (!isValidTLSArray(ca)) { - throw new TypeError( - "ca argument must be an string, Buffer, TypedArray, BunFile or an array containing string, Buffer, TypedArray or BunFile", - ); - } - this.#is_tls = true; - } - let passphrase = options.passphrase; - if (passphrase && typeof passphrase !== "string") { - throw new TypeError("passphrase argument must be an string"); - } - - let serverName = options.servername; - if (serverName && typeof serverName !== "string") { - throw new TypeError("servername argument must be an string"); - } - - let secureOptions = options.secureOptions || 0; - if (secureOptions && typeof secureOptions !== "number") { - throw new TypeError("secureOptions argument must be an number"); - } - - if (this.#is_tls) { - this.#tls = { - serverName, - key: key, - cert: cert, - ca: ca, - passphrase: passphrase, - secureOptions: secureOptions, - }; - } else { - this.#tls = null; - } - } else { - throw new Error("bun-http-polyfill: invalid arguments"); - } - - this.#options = options; - - if (callback) this.on("request", callback); - } - - closeAllConnections() { - const server = this.#server; - if (!server) { - return; - } - this.#server = undefined; - server.stop(true); - this.emit("close"); - } - - closeIdleConnections() { - // not actually implemented - } - - close(optionalCallback) { - const server = this.#server; - if (!server) { - if (typeof optionalCallback === "function") - process.nextTick(optionalCallback, new Error("Server is not running")); - return; - } - this.#server = undefined; - if (typeof optionalCallback === "function") this.once("close", optionalCallback); - server.stop(); - this.emit("close"); - } - - address() { - if (!this.#server) return null; - - const address = this.#server.hostname; - return { - address, - family: isIPv6(address) ? "IPv6" : "IPv4", - port: this.#server.port, - }; - } - - listen(port, host, backlog, onListen) { - const server = this; - if (typeof host === "function") { - onListen = host; - host = undefined; - } - - if (typeof port === "function") { - onListen = port; - } else if (typeof port === "object") { - port?.signal?.addEventListener("abort", () => { - this.close(); - }); - - host = port?.host; - port = port?.port; - - if (typeof port?.callback === "function") onListen = port?.callback; - } - - if (typeof backlog === "function") { - onListen = backlog; - } - - const ResponseClass = this.#options.ServerResponse || ServerResponse; - const RequestClass = this.#options.IncomingMessage || IncomingMessage; - - try { - const tls = this.#tls; - if (tls) { - this.serverName = tls.serverName || host || "localhost"; - } - this.#server = Bun.serve({ - tls, - port, - hostname: host, - // Bindings to be used for WS Server - websocket: { - open(ws) { - ws.data.open(ws); - }, - message(ws, message) { - ws.data.message(ws, message); - }, - close(ws, code, reason) { - ws.data.close(ws, code, reason); - }, - drain(ws) { - ws.data.drain(ws); - }, - }, - fetch(req, _server) { - var pendingResponse; - var pendingError; - var rejectFunction, resolveFunction; - var reject = err => { - if (pendingError) return; - pendingError = err; - if (rejectFunction) rejectFunction(err); - }; - - var reply = function (resp) { - if (pendingResponse) return; - pendingResponse = resp; - if (resolveFunction) resolveFunction(resp); - }; - - const http_req = new RequestClass(req); - const http_res = new ResponseClass({ reply, req: http_req }); - - http_req.once("error", err => reject(err)); - http_res.once("error", err => reject(err)); - - const upgrade = req.headers.get("upgrade"); - if (upgrade) { - const socket = new FakeSocket(); - socket[kInternalSocketData] = [_server, http_res, req]; - server.emit("upgrade", http_req, socket, kEmptyBuffer); - } else { - server.emit("request", http_req, http_res); - } - - if (pendingError) { - throw pendingError; - } - - if (pendingResponse) { - return pendingResponse; - } - - return new Promise((resolve, reject) => { - resolveFunction = resolve; - rejectFunction = reject; - }); - }, - }); - setTimeout(emitListeningNextTick, 1, this, onListen, null, this.#server.hostname, this.#server.port); - } catch (err) { - setTimeout(emitListeningNextTick, 1, this, onListen, err); - } - - return this; - } - setTimeout(msecs, callback) {} -} - -function assignHeaders(object, req) { - var headers = req.headers.toJSON(); - const rawHeaders = newArrayWithSize(req.headers.count * 2); - var i = 0; - for (const key in headers) { - rawHeaders[i++] = key; - rawHeaders[i++] = headers[key]; - } - object.headers = headers; - object.rawHeaders = rawHeaders; -} -function destroyBodyStreamNT(bodyStream) { - bodyStream.destroy(); -} - -var defaultIncomingOpts = { type: "request" }; - -function getDefaultHTTPSAgent() { - return (_defaultHTTPSAgent ??= new Agent({ defaultPort: 443, protocol: "https:" })); -} - -export class IncomingMessage extends Readable { - constructor(req, defaultIncomingOpts) { - const method = req.method; - - super(); - - const url = new URL(req.url); - - var { type = "request", [kInternalRequest]: nodeReq } = defaultIncomingOpts || {}; - - this.#noBody = - type === "request" // TODO: Add logic for checking for body on response - ? "GET" === method || - "HEAD" === method || - "TRACE" === method || - "CONNECT" === method || - "OPTIONS" === method || - (parseInt(req.headers.get("Content-Length") || "") || 0) === 0 - : false; - - this.#req = req; - this.method = method; - this.#type = type; - this.complete = !!this.#noBody; - - this.#bodyStream = null; - const socket = new FakeSocket(); - socket.remoteAddress = url.hostname; - socket.remotePort = url.port; - this.#fakeSocket = socket; - - this.url = url.pathname + url.search; - this.#nodeReq = nodeReq; - assignHeaders(this, req); - } - - headers; - rawHeaders; - _consuming = false; - _dumped = false; - #bodyStream = null; - #fakeSocket = undefined; - #noBody = false; - #aborted = false; - #req; - url; - #type; - #nodeReq; - - get req() { - return this.#nodeReq; - } - - _construct(callback) { - // TODO: streaming - if (this.#type === "response" || this.#noBody) { - callback(); - return; - } - - const contentLength = this.#req.headers.get("content-length"); - const length = contentLength ? parseInt(contentLength, 10) : 0; - if (length === 0) { - this.#noBody = true; - callback(); - return; - } - - callback(); - } - - #closeBodyStream() { - debug("closeBodyStream()"); - var bodyStream = this.#bodyStream; - if (bodyStream == null) return; - this.complete = true; - this.#bodyStream = undefined; - this.push(null); - // process.nextTick(destroyBodyStreamNT, bodyStream); - } - - _read(size) { - if (this.#noBody) { - this.push(null); - this.complete = true; - } else if (this.#bodyStream == null) { - const contentLength = this.#req.headers.get("content-length"); - let remaining = contentLength ? parseInt(contentLength, 10) : 0; - this.#bodyStream = Readable.fromWeb(this.#req.body, { - highWaterMark: Number.isFinite(remaining) ? Math.min(remaining, 16384) : 16384, - }); - - const isBodySizeKnown = remaining > 0 && Number.isSafeInteger(remaining); - - if (isBodySizeKnown) { - this.#bodyStream.on("data", chunk => { - debug("body size known", remaining); - this.push(chunk); - // when we are streaming a known body size, automatically close the stream when we have read enough - remaining -= chunk?.byteLength ?? 0; - if (remaining <= 0) { - this.#closeBodyStream(); - } - }); - } else { - this.#bodyStream.on("data", chunk => { - this.push(chunk); - }); - } - - // this can be closed by the time we get here if enough data was synchronously available - this.#bodyStream && - this.#bodyStream.on("end", () => { - this.#closeBodyStream(); - }); - } else { - // this.#bodyStream.read(size); - } - } - - get aborted() { - return this.#aborted; - } - - abort() { - if (this.#aborted) return; - this.#aborted = true; - - this.#closeBodyStream(); - } - - get connection() { - return this.#fakeSocket; - } - - get statusCode() { - return this.#req.status; - } - - get statusMessage() { - return STATUS_CODES[this.#req.status]; - } - - get httpVersion() { - return "1.1"; - } - - get rawTrailers() { - return []; - } - - get httpVersionMajor() { - return 1; - } - - get httpVersionMinor() { - return 1; - } - - get trailers() { - return kEmptyObject; - } - - get socket() { - return (this.#fakeSocket ??= new FakeSocket()); - } - - set socket(val) { - this.#fakeSocket = val; - } - - setTimeout(msecs, callback) { - throw new Error("not implemented"); - } -} - -function emitErrorNt(msg, err, callback) { - callback(err); - if (typeof msg.emit === "function" && !msg._closed) { - msg.emit("error", err); - } -} - -function onError(self, err, cb) { - process.nextTick(() => emitErrorNt(self, err, cb)); -} - -function write_(msg, chunk, encoding, callback, fromEnd) { - if (typeof callback !== "function") callback = nop; - - let len; - if (chunk === null) { - // throw new ERR_STREAM_NULL_VALUES(); - throw new Error("ERR_STREAM_NULL_VALUES"); - } else if (typeof chunk === "string") { - len = Buffer.byteLength(chunk, encoding); - } else { - throw new Error("Invalid arg type for chunk"); - // throw new ERR_INVALID_ARG_TYPE( - // "chunk", - // ["string", "Buffer", "Uint8Array"], - // chunk, - // ); - } - - let err; - if (msg.finished) { - // err = new ERR_STREAM_WRITE_AFTER_END(); - err = new Error("ERR_STREAM_WRITE_AFTER_END"); - } else if (msg.destroyed) { - // err = new ERR_STREAM_DESTROYED("write"); - err = new Error("ERR_STREAM_DESTROYED"); - } - - if (err) { - if (!msg.destroyed) { - onError(msg, err, callback); - } else { - process.nextTick(callback, err); - } - return false; - } - - if (!msg._header) { - if (fromEnd) { - msg._contentLength = len; - } - // msg._implicitHeader(); - } - - if (!msg._hasBody) { - debug("This type of response MUST NOT have a body. " + "Ignoring write() calls."); - process.nextTick(callback); - return true; - } - - // if (!fromEnd && msg.socket && !msg.socket.writableCorked) { - // msg.socket.cork(); - // process.nextTick(connectionCorkNT, msg.socket); - // } - - return true; -} - -export class OutgoingMessage extends Writable { - #headers; - headersSent = false; - sendDate = true; - req; - - #finished = false; - [kEndCalled] = false; - - #fakeSocket; - #timeoutTimer = null; - [kAbortController] = null; - - // Express "compress" package uses this - _implicitHeader() {} - - // For compat with IncomingRequest - get headers() { - if (!this.#headers) return kEmptyObject; - return this.#headers.toJSON(); - } - - get shouldKeepAlive() { - return true; - } - - get chunkedEncoding() { - return false; - } - - set chunkedEncoding(value) { - // throw new Error('not implemented'); - } - - set shouldKeepAlive(value) { - // throw new Error('not implemented'); - } - - get useChunkedEncodingByDefault() { - return true; - } - - set useChunkedEncodingByDefault(value) { - // throw new Error('not implemented'); - } - - get socket() { - return (this.#fakeSocket ??= new FakeSocket()); - } - - set socket(val) { - this.#fakeSocket = val; - } - - get connection() { - return this.socket; - } - - get finished() { - return this.#finished; - } - - appendHeader(name, value) { - var headers = (this.#headers ??= new Headers()); - headers.append(name, value); - } - - flushHeaders() {} - - getHeader(name) { - return getHeader(this.#headers, name); - } - - getHeaders() { - if (!this.#headers) return kEmptyObject; - return this.#headers.toJSON(); - } - - getHeaderNames() { - var headers = this.#headers; - if (!headers) return []; - return Array.from(headers.keys()); - } - - removeHeader(name) { - if (!this.#headers) return; - this.#headers.delete(name); - } - - setHeader(name, value) { - var headers = (this.#headers ??= new Headers()); - headers.set(name, value); - return this; - } - - hasHeader(name) { - if (!this.#headers) return false; - return this.#headers.has(name); - } - - addTrailers(headers) { - throw new Error("not implemented"); - } - - [kClearTimeout]() { - if (this.#timeoutTimer) { - clearTimeout(this.#timeoutTimer); - this.#timeoutTimer = null; - } - } - - setTimeout(msecs, callback) { - if (this.#timeoutTimer) return this; - if (callback) { - this.on("timeout", callback); - } - - this.#timeoutTimer = setTimeout(async () => { - this.#timeoutTimer = null; - this[kAbortController]?.abort(); - this.emit("timeout"); - }, msecs); - - return this; - } -} - -export class ServerResponse extends Writable { - constructor({ req, reply }) { - super(); - this.req = req; - this._reply = reply; - this.sendDate = true; - this.statusCode = 200; - this.headersSent = false; - this.statusMessage = undefined; - this.#controller = undefined; - this.#firstWrite = undefined; - this._writableState.decodeStrings = false; - this.#deferred = undefined; - } - - req; - _reply; - sendDate; - statusCode; - #headers; - headersSent = false; - statusMessage; - #controller; - #firstWrite; - _sent100 = false; - _defaultKeepAlive = false; - _removedConnection = false; - _removedContLen = false; - #deferred = undefined; - #finished = false; - - // Express "compress" package uses this - _implicitHeader() {} - - _write(chunk, encoding, callback) { - if (!this.#firstWrite && !this.headersSent) { - this.#firstWrite = chunk; - callback(); - return; - } - - this.#ensureReadableStreamController(controller => { - controller.write(chunk); - callback(); - }); - } - - _writev(chunks, callback) { - if (chunks.length === 1 && !this.headersSent && !this.#firstWrite) { - this.#firstWrite = chunks[0].chunk; - callback(); - return; - } - - this.#ensureReadableStreamController(controller => { - for (const chunk of chunks) { - controller.write(chunk.chunk); - } - - callback(); - }); - } - - #ensureReadableStreamController(run) { - var thisController = this.#controller; - if (thisController) return run(thisController); - this.headersSent = true; - var firstWrite = this.#firstWrite; - this.#firstWrite = undefined; - this._reply( - new Response( - new ReadableStream({ - type: "direct", - pull: controller => { - this.#controller = controller; - if (firstWrite) controller.write(firstWrite); - firstWrite = undefined; - run(controller); - if (!this.#finished) { - return new Promise(resolve => { - this.#deferred = resolve; - }); - } - }, - }), - { - headers: this.#headers, - status: this.statusCode, - statusText: this.statusMessage ?? STATUS_CODES[this.statusCode], - }, - ), - ); - } - - _final(callback) { - if (!this.headersSent) { - var data = this.#firstWrite || ""; - this.#firstWrite = undefined; - this.#finished = true; - this._reply( - new Response(data, { - headers: this.#headers, - status: this.statusCode, - statusText: this.statusMessage ?? STATUS_CODES[this.statusCode], - }), - ); - callback && callback(); - return; - } - - this.#finished = true; - this.#ensureReadableStreamController(controller => { - controller.end(); - - callback(); - var deferred = this.#deferred; - if (deferred) { - this.#deferred = undefined; - deferred(); - } - }); - } - - writeProcessing() { - throw new Error("not implemented"); - } - - addTrailers(headers) { - throw new Error("not implemented"); - } - - assignSocket(socket) { - throw new Error("not implemented"); - } - - detachSocket(socket) { - throw new Error("not implemented"); - } - - writeContinue(callback) { - throw new Error("not implemented"); - } - - setTimeout(msecs, callback) { - throw new Error("not implemented"); - } - - get shouldKeepAlive() { - return true; - } - - get chunkedEncoding() { - return false; - } - - set chunkedEncoding(value) { - // throw new Error('not implemented'); - } - - set shouldKeepAlive(value) { - // throw new Error('not implemented'); - } - - get useChunkedEncodingByDefault() { - return true; - } - - set useChunkedEncodingByDefault(value) { - // throw new Error('not implemented'); - } - - appendHeader(name, value) { - var headers = (this.#headers ??= new Headers()); - headers.append(name, value); - } - - flushHeaders() {} - - getHeader(name) { - return getHeader(this.#headers, name); - } - - getHeaders() { - var headers = this.#headers; - if (!headers) return kEmptyObject; - return headers.toJSON(); - } - - getHeaderNames() { - var headers = this.#headers; - if (!headers) return []; - return Array.from(headers.keys()); - } - - removeHeader(name) { - if (!this.#headers) return; - this.#headers.delete(name); - } - - setHeader(name, value) { - var headers = (this.#headers ??= new Headers()); - headers.set(name, value); - return this; - } - - hasHeader(name) { - if (!this.#headers) return false; - return this.#headers.has(name); - } - - writeHead(statusCode, statusMessage, headers) { - _writeHead(statusCode, statusMessage, headers, this); - - return this; - } -} - -export class ClientRequest extends OutgoingMessage { - #timeout; - #res = null; - #upgradeOrConnect = false; - #parser = null; - #maxHeadersCount = null; - #reusedSocket = false; - #host; - #protocol; - #method; - #port; - #useDefaultPort; - #joinDuplicateHeaders; - #maxHeaderSize; - #agent = _globalAgent; - #path; - #socketPath; - - #body = null; - #fetchRequest; - #signal = null; - [kAbortController] = null; - #timeoutTimer = null; - #options; - #finished; - - get path() { - return this.#path; - } - - get port() { - return this.#port; - } - - get method() { - return this.#method; - } - - get host() { - return this.#host; - } - - get protocol() { - return this.#protocol; - } - - _write(chunk, encoding, callback) { - var body = this.#body; - if (!body) { - this.#body = chunk; - callback(); - return; - } - this.#body = body + chunk; - callback(); - } - - _writev(chunks, callback) { - var body = this.#body; - if (!body) { - this.#body = chunks.join(); - callback(); - return; - } - this.#body = body + chunks.join(); - callback(); - } - - _final(callback) { - this.#finished = true; - this[kAbortController] = new AbortController(); - this[kAbortController].signal.addEventListener("abort", () => { - this[kClearTimeout](); - }); - if (this.#signal?.aborted) { - this[kAbortController].abort(); - } - - var method = this.#method, - body = this.#body; - - try { - this.#fetchRequest = fetch( - `${this.#protocol}//${this.#host}${this.#useDefaultPort ? "" : ":" + this.#port}${this.#path}`, - { - method, - headers: this.getHeaders(), - body: body && method !== "GET" && method !== "HEAD" && method !== "OPTIONS" ? body : undefined, - redirect: "manual", - verbose: Boolean(__DEBUG__), - signal: this[kAbortController].signal, - }, - ) - .then(response => { - var res = (this.#res = new IncomingMessage(response, { - type: "response", - [kInternalRequest]: this, - })); - this.emit("response", res); - }) - .catch(err => { - if (__DEBUG__) globalReportError(err); - this.emit("error", err); - }) - .finally(() => { - this.#fetchRequest = null; - this[kClearTimeout](); - }); - } catch (err) { - if (__DEBUG__) globalReportError(err); - this.emit("error", err); - } finally { - callback(); - } - } - - get aborted() { - return this.#signal?.aborted || !!this[kAbortController]?.signal.aborted; - } - - abort() { - if (this.aborted) return; - this[kAbortController].abort(); - // TODO: Close stream if body streaming - } - - constructor(input, options, cb) { - super(); - - if (typeof input === "string") { - const urlStr = input; - try { - var urlObject = new URL(urlStr); - } catch (e) { - throw new TypeError(`Invalid URL: ${urlStr}`); - } - input = urlToHttpOptions(urlObject); - } else if (input && typeof input === "object" && input instanceof URL) { - // url.URL instance - input = urlToHttpOptions(input); - } else { - cb = options; - options = input; - input = null; - } - - if (typeof options === "function") { - cb = options; - options = input || kEmptyObject; - } else { - options = ObjectAssign(input || {}, options); - } - - var defaultAgent = options._defaultAgent || Agent.globalAgent; - - let protocol = options.protocol; - if (!protocol) { - if (options.port === 443) { - protocol = "https:"; - } else { - protocol = defaultAgent.protocol || "http:"; - } - this.#protocol = protocol; - } - - switch (this.#agent?.protocol) { - case undefined: { - break; - } - case "http:": { - if (protocol === "https:") { - defaultAgent = this.#agent = getDefaultHTTPSAgent(); - break; - } - } - case "https:": { - if (protocol === "https") { - defaultAgent = this.#agent = Agent.globalAgent; - break; - } - } - default: { - break; - } - } - - if (options.path) { - const path = String(options.path); - if (RegExpPrototypeExec.call(INVALID_PATH_REGEX, path) !== null) { - debug('Path contains unescaped characters: "%s"', path); - throw new Error("Path contains unescaped characters"); - // throw new ERR_UNESCAPED_CHARACTERS("Request path"); - } - } - - // Since we don't implement Agent, we don't need this - if (protocol !== "http:" && protocol !== "https:" && protocol) { - const expectedProtocol = defaultAgent?.protocol ?? "http:"; - throw new Error(`Protocol mismatch. Expected: ${expectedProtocol}. Got: ${protocol}`); - // throw new ERR_INVALID_PROTOCOL(protocol, expectedProtocol); - } - - const defaultPort = protocol === "https:" ? 443 : 80; - - this.#port = options.port || options.defaultPort || this.#agent?.defaultPort || defaultPort; - this.#useDefaultPort = this.#port === defaultPort; - const host = - (this.#host = - options.host = - validateHost(options.hostname, "hostname") || validateHost(options.host, "host") || "localhost"); - - // const setHost = options.setHost === undefined || Boolean(options.setHost); - - this.#socketPath = options.socketPath; - - if (options.timeout !== undefined) this.setTimeout(options.timeout, null); - - const signal = options.signal; - if (signal) { - //We still want to control abort function and timeout so signal call our AbortController - signal.addEventListener("abort", () => { - this[kAbortController]?.abort(); - }); - this.#signal = signal; - } - let method = options.method; - const methodIsString = typeof method === "string"; - if (method !== null && method !== undefined && !methodIsString) { - // throw new ERR_INVALID_ARG_TYPE("options.method", "string", method); - throw new Error("ERR_INVALID_ARG_TYPE: options.method"); - } - - if (methodIsString && method) { - if (!checkIsHttpToken(method)) { - // throw new ERR_INVALID_HTTP_TOKEN("Method", method); - throw new Error("ERR_INVALID_HTTP_TOKEN: Method"); - } - method = this.#method = StringPrototypeToUpperCase.call(method); - } else { - method = this.#method = "GET"; - } - - const _maxHeaderSize = options.maxHeaderSize; - // TODO: Validators - // if (maxHeaderSize !== undefined) - // validateInteger(maxHeaderSize, "maxHeaderSize", 0); - this.#maxHeaderSize = _maxHeaderSize; - - // const insecureHTTPParser = options.insecureHTTPParser; - // if (insecureHTTPParser !== undefined) { - // validateBoolean(insecureHTTPParser, 'options.insecureHTTPParser'); - // } - - // this.insecureHTTPParser = insecureHTTPParser; - var _joinDuplicateHeaders = options.joinDuplicateHeaders; - if (_joinDuplicateHeaders !== undefined) { - // TODO: Validators - // validateBoolean( - // options.joinDuplicateHeaders, - // "options.joinDuplicateHeaders", - // ); - } - - this.#joinDuplicateHeaders = _joinDuplicateHeaders; - - this.#path = options.path || "/"; - if (cb) { - this.once("response", cb); - } - - __DEBUG__ && - debug(`new ClientRequest: ${this.#method} ${this.#protocol}//${this.#host}:${this.#port}${this.#path}`); - - // if ( - // method === "GET" || - // method === "HEAD" || - // method === "DELETE" || - // method === "OPTIONS" || - // method === "TRACE" || - // method === "CONNECT" - // ) { - // this.useChunkedEncodingByDefault = false; - // } else { - // this.useChunkedEncodingByDefault = true; - // } - - this.#finished = false; - this.#res = null; - this.#upgradeOrConnect = false; - this.#parser = null; - this.#maxHeadersCount = null; - this.#reusedSocket = false; - this.#host = host; - this.#protocol = protocol; - this.#timeoutTimer = null; - const headersArray = ArrayIsArray(headers); - if (!headersArray) { - var headers = options.headers; - if (headers) { - for (let key in headers) { - this.setHeader(key, headers[key]); - } - } - - // if (host && !this.getHeader("host") && setHost) { - // let hostHeader = host; - - // // For the Host header, ensure that IPv6 addresses are enclosed - // // in square brackets, as defined by URI formatting - // // https://tools.ietf.org/html/rfc3986#section-3.2.2 - // const posColon = StringPrototypeIndexOf.call(hostHeader, ":"); - // if ( - // posColon !== -1 && - // StringPrototypeIncludes(hostHeader, ":", posColon + 1) && - // StringPrototypeCharCodeAt(hostHeader, 0) !== 91 /* '[' */ - // ) { - // hostHeader = `[${hostHeader}]`; - // } - - // if (port && +port !== defaultPort) { - // hostHeader += ":" + port; - // } - // this.setHeader("Host", hostHeader); - // } - - var auth = options.auth; - if (auth && !this.getHeader("Authorization")) { - this.setHeader("Authorization", "Basic " + Buffer.from(auth).toString("base64")); - } - - // if (this.getHeader("expect")) { - // if (this._header) { - // throw new ERR_HTTP_HEADERS_SENT("render"); - // } - - // this._storeHeader( - // this.method + " " + this.path + " HTTP/1.1\r\n", - // this[kOutHeaders], - // ); - // } - // } else { - // this._storeHeader( - // this.method + " " + this.path + " HTTP/1.1\r\n", - // options.headers, - // ); - } - - // this[kUniqueHeaders] = parseUniqueHeadersOption(options.uniqueHeaders); - - var optsWithoutSignal = options; - if (optsWithoutSignal.signal) { - optsWithoutSignal = ObjectAssign({}, options); - delete optsWithoutSignal.signal; - } - this.#options = optsWithoutSignal; - - var timeout = options.timeout; - if (timeout) { - this.setTimeout(timeout); - } - } - - setSocketKeepAlive(enable = true, initialDelay = 0) { - __DEBUG__ && debug(`${NODE_HTTP_WARNING}\n`, "WARN: ClientRequest.setSocketKeepAlive is a no-op"); - } - - setNoDelay(noDelay = true) { - __DEBUG__ && debug(`${NODE_HTTP_WARNING}\n`, "WARN: ClientRequest.setNoDelay is a no-op"); - } - [kClearTimeout]() { - if (this.#timeoutTimer) { - clearTimeout(this.#timeoutTimer); - this.#timeoutTimer = null; - } - } - - setTimeout(msecs, callback) { - if (this.#timeoutTimer) return this; - if (callback) { - this.on("timeout", callback); - } - - this.#timeoutTimer = setTimeout(async () => { - this.#timeoutTimer = null; - this[kAbortController]?.abort(); - this.emit("timeout"); - }, msecs); - - return this; - } -} - -function urlToHttpOptions(url) { - var { protocol, hostname, hash, search, pathname, href, port, username, password } = url; - return { - protocol, - hostname: - typeof hostname === "string" && StringPrototypeStartsWith.call(hostname, "[") - ? StringPrototypeSlice.call(hostname, 1, -1) - : hostname, - hash, - search, - pathname, - path: `${pathname || ""}${search || ""}`, - href, - port: port ? Number(port) : protocol === "https:" ? 443 : protocol === "http:" ? 80 : undefined, - auth: username || password ? `${decodeURIComponent(username)}:${decodeURIComponent(password)}` : undefined, - }; -} - -function validateHost(host, name) { - if (host !== null && host !== undefined && typeof host !== "string") { - // throw new ERR_INVALID_ARG_TYPE( - // `options.${name}`, - // ["string", "undefined", "null"], - // host, - // ); - throw new Error("Invalid arg type in options"); - } - return host; -} - -const tokenRegExp = /^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/; -/** - * Verifies that the given val is a valid HTTP token - * per the rules defined in RFC 7230 - * See https://tools.ietf.org/html/rfc7230#section-3.2.6 - */ -function checkIsHttpToken(val) { - return RegExpPrototypeExec.call(tokenRegExp, val) !== null; -} - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -export const METHODS = [ - "ACL", - "BIND", - "CHECKOUT", - "CONNECT", - "COPY", - "DELETE", - "GET", - "HEAD", - "LINK", - "LOCK", - "M-SEARCH", - "MERGE", - "MKACTIVITY", - "MKCALENDAR", - "MKCOL", - "MOVE", - "NOTIFY", - "OPTIONS", - "PATCH", - "POST", - "PROPFIND", - "PROPPATCH", - "PURGE", - "PUT", - "REBIND", - "REPORT", - "SEARCH", - "SOURCE", - "SUBSCRIBE", - "TRACE", - "UNBIND", - "UNLINK", - "UNLOCK", - "UNSUBSCRIBE", -]; - -export const STATUS_CODES = { - 100: "Continue", - 101: "Switching Protocols", - 102: "Processing", - 103: "Early Hints", - 200: "OK", - 201: "Created", - 202: "Accepted", - 203: "Non-Authoritative Information", - 204: "No Content", - 205: "Reset Content", - 206: "Partial Content", - 207: "Multi-Status", - 208: "Already Reported", - 226: "IM Used", - 300: "Multiple Choices", - 301: "Moved Permanently", - 302: "Found", - 303: "See Other", - 304: "Not Modified", - 305: "Use Proxy", - 307: "Temporary Redirect", - 308: "Permanent Redirect", - 400: "Bad Request", - 401: "Unauthorized", - 402: "Payment Required", - 403: "Forbidden", - 404: "Not Found", - 405: "Method Not Allowed", - 406: "Not Acceptable", - 407: "Proxy Authentication Required", - 408: "Request Timeout", - 409: "Conflict", - 410: "Gone", - 411: "Length Required", - 412: "Precondition Failed", - 413: "Payload Too Large", - 414: "URI Too Long", - 415: "Unsupported Media Type", - 416: "Range Not Satisfiable", - 417: "Expectation Failed", - 418: "I'm a Teapot", - 421: "Misdirected Request", - 422: "Unprocessable Entity", - 423: "Locked", - 424: "Failed Dependency", - 425: "Too Early", - 426: "Upgrade Required", - 428: "Precondition Required", - 429: "Too Many Requests", - 431: "Request Header Fields Too Large", - 451: "Unavailable For Legal Reasons", - 500: "Internal Server Error", - 501: "Not Implemented", - 502: "Bad Gateway", - 503: "Service Unavailable", - 504: "Gateway Timeout", - 505: "HTTP Version Not Supported", - 506: "Variant Also Negotiates", - 507: "Insufficient Storage", - 508: "Loop Detected", - 509: "Bandwidth Limit Exceeded", - 510: "Not Extended", - 511: "Network Authentication Required", -}; - -function _normalizeArgs(args) { - let arr; - - if (args.length === 0) { - arr = [{}, null]; - // arr[normalizedArgsSymbol] = true; - return arr; - } - - const arg0 = args[0]; - let options = {}; - if (typeof arg0 === "object" && arg0 !== null) { - // (options[...][, cb]) - options = arg0; - // } else if (isPipeName(arg0)) { - // (path[...][, cb]) - // options.path = arg0; - } else { - // ([port][, host][...][, cb]) - options.port = arg0; - if (args.length > 1 && typeof args[1] === "string") { - options.host = args[1]; - } - } - - const cb = args[args.length - 1]; - if (typeof cb !== "function") arr = [options, null]; - else arr = [options, cb]; - - // arr[normalizedArgsSymbol] = true; - return arr; -} - -function _writeHead(statusCode, reason, obj, response) { - statusCode |= 0; - if (statusCode < 100 || statusCode > 999) { - throw new Error("status code must be between 100 and 999"); - } - - if (typeof reason === "string") { - // writeHead(statusCode, reasonPhrase[, headers]) - response.statusMessage = reason; - } else { - // writeHead(statusCode[, headers]) - if (!response.statusMessage) response.statusMessage = STATUS_CODES[statusCode] || "unknown"; - obj = reason; - } - response.statusCode = statusCode; - - { - // Slow-case: when progressive API and header fields are passed. - let k; - if (Array.isArray(obj)) { - if (obj.length % 2 !== 0) { - throw new Error("raw headers must have an even number of elements"); - } - - for (let n = 0; n < obj.length; n += 2) { - k = obj[n + 0]; - if (k) response.setHeader(k, obj[n + 1]); - } - } else if (obj) { - const keys = Object.keys(obj); - // Retain for(;;) loop for performance reasons - // Refs: https://github.com/nodejs/node/pull/30958 - for (let i = 0; i < keys.length; i++) { - k = keys[i]; - if (k) response.setHeader(k, obj[k]); - } - } - } -} - -/** - * Makes an HTTP request. - * @param {string | URL} url - * @param {HTTPRequestOptions} [options] - * @param {Function} [cb] - * @returns {ClientRequest} - */ -export function request(url, options, cb) { - return new ClientRequest(url, options, cb); -} - -/** - * Makes a `GET` HTTP request. - * @param {string | URL} url - * @param {HTTPRequestOptions} [options] - * @param {Function} [cb] - * @returns {ClientRequest} - */ -export function get(url, options, cb) { - const req = request(url, options, cb); - req.end(); - return req; -} -_globalAgent ??= new Agent(); -var defaultObject = { - Agent, - Server, - METHODS, - STATUS_CODES, - createServer, - ServerResponse, - IncomingMessage, - request, - get, - maxHeaderSize: 16384, - // validateHeaderName, - // validateHeaderValue, - setMaxIdleHTTPParsers(max) { - debug(`${NODE_HTTP_WARNING}\n`, "setMaxIdleHTTPParsers() is a no-op"); - }, - get globalAgent() { - return _globalAgent; - }, - set globalAgent(agent) {}, - [Symbol.for("CommonJS")]: 0, -}; - -export default defaultObject; - -export { _globalAgent as globalAgent }; diff --git a/src/js/node/http.ts b/src/js/node/http.ts new file mode 100644 index 000000000..5f21a791c --- /dev/null +++ b/src/js/node/http.ts @@ -0,0 +1,1810 @@ +// Hardcoded module "node:http" +import { EventEmitter } from "node:events"; +import { Readable, Writable, Duplex } from "node:stream"; +import { isTypedArray } from "util/types"; + +const headerCharRegex = /[^\t\x20-\x7e\x80-\xff]/; +/** + * True if val contains an invalid field-vchar + * field-value = *( field-content / obs-fold ) + * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ] + * field-vchar = VCHAR / obs-text + */ +function checkInvalidHeaderChar(val: string) { + return RegExpPrototypeExec.call(headerCharRegex, val) !== null; +} + +export const validateHeaderName = (name, label) => { + if (typeof name !== "string" || !name || !checkIsHttpToken(name)) { + // throw new ERR_INVALID_HTTP_TOKEN(label || "Header name", name); + throw new Error("ERR_INVALID_HTTP_TOKEN"); + } +}; + +export const validateHeaderValue = (name, value) => { + if (value === undefined) { + // throw new ERR_HTTP_INVALID_HEADER_VALUE(value, name); + throw new Error("ERR_HTTP_INVALID_HEADER_VALUE"); + } + if (checkInvalidHeaderChar(value)) { + // throw new ERR_INVALID_CHAR("header content", name); + throw new Error("ERR_INVALID_CHAR"); + } +}; + +// Cheaper to duplicate this than to import it from node:net +function isIPv6(input) { + const v4Seg = "(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])"; + const v4Str = `(${v4Seg}[.]){3}${v4Seg}`; + const v6Seg = "(?:[0-9a-fA-F]{1,4})"; + const IPv6Reg = new RegExp( + "^(" + + `(?:${v6Seg}:){7}(?:${v6Seg}|:)|` + + `(?:${v6Seg}:){6}(?:${v4Str}|:${v6Seg}|:)|` + + `(?:${v6Seg}:){5}(?::${v4Str}|(:${v6Seg}){1,2}|:)|` + + `(?:${v6Seg}:){4}(?:(:${v6Seg}){0,1}:${v4Str}|(:${v6Seg}){1,3}|:)|` + + `(?:${v6Seg}:){3}(?:(:${v6Seg}){0,2}:${v4Str}|(:${v6Seg}){1,4}|:)|` + + `(?:${v6Seg}:){2}(?:(:${v6Seg}){0,3}:${v4Str}|(:${v6Seg}){1,5}|:)|` + + `(?:${v6Seg}:){1}(?:(:${v6Seg}){0,4}:${v4Str}|(:${v6Seg}){1,6}|:)|` + + `(?::((?::${v6Seg}){0,5}:${v4Str}|(?::${v6Seg}){1,7}|:))` + + ")(%[0-9a-zA-Z-.:]{1,})?$", + ); + + return IPv6Reg.test(input); +} + +// TODO: add primordial for URL +// Importing from node:url is unnecessary +const { URL } = globalThis; + +const { newArrayWithSize, String, Object, Array } = globalThis[Symbol.for("Bun.lazy")]("primordials"); + +const globalReportError = globalThis.reportError; +const setTimeout = globalThis.setTimeout; +const fetch = Bun.fetch; +const nop = () => {}; + +const __DEBUG__ = process.env.__DEBUG__; +const debug = __DEBUG__ ? (...args) => console.log("node:http", ...args) : nop; + +const kEmptyObject = Object.freeze(Object.create(null)); +const kOutHeaders = Symbol.for("kOutHeaders"); +const kEndCalled = Symbol.for("kEndCalled"); +const kAbortController = Symbol.for("kAbortController"); +const kClearTimeout = Symbol("kClearTimeout"); + +const kCorked = Symbol.for("kCorked"); +const searchParamsSymbol = Symbol.for("query"); // This is the symbol used in Node + +// Primordials +const StringPrototypeSlice = String.prototype.slice; +const StringPrototypeStartsWith = String.prototype.startsWith; +const StringPrototypeToUpperCase = String.prototype.toUpperCase; +const StringPrototypeIncludes = String.prototype.includes; +const StringPrototypeCharCodeAt = String.prototype.charCodeAt; +const StringPrototypeIndexOf = String.prototype.indexOf; +const ArrayIsArray = Array.isArray; +const RegExpPrototypeExec = RegExp.prototype.exec; +const ObjectAssign = Object.assign; +const ObjectPrototypeHasOwnProperty = Object.prototype.hasOwnProperty; + +const INVALID_PATH_REGEX = /[^\u0021-\u00ff]/; +const NODE_HTTP_WARNING = + "WARN: Agent is mostly unused in Bun's implementation of http. If you see strange behavior, this is probably the cause."; + +var _defaultHTTPSAgent; +var kInternalRequest = Symbol("kInternalRequest"); +var kInternalSocketData = Symbol.for("::bunternal::"); + +const kEmptyBuffer = Buffer.alloc(0); + +function isValidTLSArray(obj) { + if (typeof obj === "string" || isTypedArray(obj) || obj instanceof ArrayBuffer || obj instanceof Blob) return true; + if (Array.isArray(obj)) { + for (var i = 0; i < obj.length; i++) { + if (typeof obj !== "string" && !isTypedArray(obj) && !(obj instanceof ArrayBuffer) && !(obj instanceof Blob)) + return false; + } + return true; + } +} + +function getHeader(headers, name) { + if (!headers) return; + const result = headers.get(name); + return result == null ? undefined : result; +} + +type FakeSocket = InstanceType; +var FakeSocket = class Socket extends Duplex { + bytesRead = 0; + bytesWritten = 0; + connecting = false; + remoteAddress: string | null = null; + remotePort; + timeout = 0; + + isServer = false; + + address() { + return { + address: this.localAddress, + family: this.localFamily, + port: this.localPort, + }; + } + + get bufferSize() { + return this.writableLength; + } + + connect(port, host, connectListener) { + return this; + } + + _destroy(err, callback) {} + + _final(callback) {} + + get localAddress() { + return "127.0.0.1"; + } + + get localFamily() { + return "IPv4"; + } + + get localPort() { + return 80; + } + + get pending() { + return this.connecting; + } + + _read(size) {} + + get readyState() { + if (this.connecting) return "opening"; + if (this.readable) { + return this.writable ? "open" : "readOnly"; + } else { + return this.writable ? "writeOnly" : "closed"; + } + } + + ref() {} + + get remoteFamily() { + return "IPv4"; + } + + resetAndDestroy() {} + + setKeepAlive(enable = false, initialDelay = 0) {} + + setNoDelay(noDelay = true) { + return this; + } + + setTimeout(timeout, callback) { + return this; + } + + unref() {} + + _write(chunk, encoding, callback) {} +}; + +export function createServer(options, callback) { + return new Server(options, callback); +} + +export class Agent extends EventEmitter { + defaultPort = 80; + protocol = "http:"; + options; + requests; + sockets; + freeSockets; + + keepAliveMsecs; + keepAlive; + maxSockets; + maxFreeSockets; + scheduling; + maxTotalSockets; + totalSocketCount; + + #fakeSocket; + + static get globalAgent() { + return globalAgent; + } + + static get defaultMaxSockets() { + return Infinity; + } + + constructor(options = kEmptyObject) { + super(); + this.options = options = { ...options, path: null }; + if (options.noDelay === undefined) options.noDelay = true; + + // Don't confuse net and make it think that we're connecting to a pipe + this.requests = kEmptyObject; + this.sockets = kEmptyObject; + this.freeSockets = kEmptyObject; + + this.keepAliveMsecs = options.keepAliveMsecs || 1000; + this.keepAlive = options.keepAlive || false; + this.maxSockets = options.maxSockets || Agent.defaultMaxSockets; + this.maxFreeSockets = options.maxFreeSockets || 256; + this.scheduling = options.scheduling || "lifo"; + this.maxTotalSockets = options.maxTotalSockets; + this.totalSocketCount = 0; + this.defaultPort = options.defaultPort || 80; + this.protocol = options.protocol || "http:"; + } + + createConnection() { + debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.createConnection is a no-op, returns fake socket"); + return (this.#fakeSocket ??= new FakeSocket()); + } + + getName(options = kEmptyObject) { + let name = `http:${options.host || "localhost"}:`; + if (options.port) name += options.port; + name += ":"; + if (options.localAddress) name += options.localAddress; + // Pacify parallel/test-http-agent-getname by only appending + // the ':' when options.family is set. + if (options.family === 4 || options.family === 6) name += `:${options.family}`; + if (options.socketPath) name += `:${options.socketPath}`; + return name; + } + + addRequest() { + debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.addRequest is a no-op"); + } + + createSocket(req, options, cb) { + debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.createSocket returns fake socket"); + cb(null, (this.#fakeSocket ??= new FakeSocket())); + } + + removeSocket() { + debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.removeSocket is a no-op"); + } + + keepSocketAlive() { + debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.keepSocketAlive is a no-op"); + + return true; + } + + reuseSocket() { + debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.reuseSocket is a no-op"); + } + + destroy() { + debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.destroy is a no-op"); + } +} +function emitListeningNextTick(self, onListen, err, hostname, port) { + if (typeof onListen === "function") { + try { + onListen(err, hostname, port); + } catch (err) { + self.emit("error", err); + } + } + + self.listening = !err; + + if (err) { + self.emit("error", err); + } else { + self.emit("listening", hostname, port); + } +} + +export class Server extends EventEmitter { + #server; + #options; + #tls; + #is_tls = false; + listening = false; + serverName; + + constructor(options, callback) { + super(); + + if (typeof options === "function") { + callback = options; + options = {}; + } else if (options == null || typeof options === "object") { + options = { ...options }; + this.#tls = null; + let key = options.key; + if (key) { + if (!isValidTLSArray(key)) { + throw new TypeError( + "key argument must be an string, Buffer, TypedArray, BunFile or an array containing string, Buffer, TypedArray or BunFile", + ); + } + this.#is_tls = true; + } + let cert = options.cert; + if (cert) { + if (!isValidTLSArray(cert)) { + throw new TypeError( + "cert argument must be an string, Buffer, TypedArray, BunFile or an array containing string, Buffer, TypedArray or BunFile", + ); + } + this.#is_tls = true; + } + + let ca = options.ca; + if (ca) { + if (!isValidTLSArray(ca)) { + throw new TypeError( + "ca argument must be an string, Buffer, TypedArray, BunFile or an array containing string, Buffer, TypedArray or BunFile", + ); + } + this.#is_tls = true; + } + let passphrase = options.passphrase; + if (passphrase && typeof passphrase !== "string") { + throw new TypeError("passphrase argument must be an string"); + } + + let serverName = options.servername; + if (serverName && typeof serverName !== "string") { + throw new TypeError("servername argument must be an string"); + } + + let secureOptions = options.secureOptions || 0; + if (secureOptions && typeof secureOptions !== "number") { + throw new TypeError("secureOptions argument must be an number"); + } + + if (this.#is_tls) { + this.#tls = { + serverName, + key: key, + cert: cert, + ca: ca, + passphrase: passphrase, + secureOptions: secureOptions, + }; + } else { + this.#tls = null; + } + } else { + throw new Error("bun-http-polyfill: invalid arguments"); + } + + this.#options = options; + + if (callback) this.on("request", callback); + } + + closeAllConnections() { + const server = this.#server; + if (!server) { + return; + } + this.#server = undefined; + server.stop(true); + this.emit("close"); + } + + closeIdleConnections() { + // not actually implemented + } + + close(optionalCallback?) { + const server = this.#server; + if (!server) { + if (typeof optionalCallback === "function") + process.nextTick(optionalCallback, new Error("Server is not running")); + return; + } + this.#server = undefined; + if (typeof optionalCallback === "function") this.once("close", optionalCallback); + server.stop(); + this.emit("close"); + } + + address() { + if (!this.#server) return null; + + const address = this.#server.hostname; + return { + address, + family: isIPv6(address) ? "IPv6" : "IPv4", + port: this.#server.port, + }; + } + + listen(port, host, backlog, onListen) { + const server = this; + if (typeof host === "function") { + onListen = host; + host = undefined; + } + + if (typeof port === "function") { + onListen = port; + } else if (typeof port === "object") { + port?.signal?.addEventListener("abort", () => { + this.close(); + }); + + host = port?.host; + port = port?.port; + + if (typeof port?.callback === "function") onListen = port?.callback; + } + + if (typeof backlog === "function") { + onListen = backlog; + } + + const ResponseClass = this.#options.ServerResponse || ServerResponse; + const RequestClass = this.#options.IncomingMessage || IncomingMessage; + + try { + const tls = this.#tls; + if (tls) { + this.serverName = tls.serverName || host || "localhost"; + } + this.#server = Bun.serve({ + tls, + port, + hostname: host, + // Bindings to be used for WS Server + websocket: { + open(ws) { + ws.data.open(ws); + }, + message(ws, message) { + ws.data.message(ws, message); + }, + close(ws, code, reason) { + ws.data.close(ws, code, reason); + }, + drain(ws) { + ws.data.drain(ws); + }, + }, + fetch(req, _server) { + var pendingResponse; + var pendingError; + var rejectFunction, resolveFunction; + var reject = err => { + if (pendingError) return; + pendingError = err; + if (rejectFunction) rejectFunction(err); + }; + + var reply = function (resp) { + if (pendingResponse) return; + pendingResponse = resp; + if (resolveFunction) resolveFunction(resp); + }; + + const http_req = new RequestClass(req); + const http_res = new ResponseClass({ reply, req: http_req }); + + http_req.once("error", err => reject(err)); + http_res.once("error", err => reject(err)); + + const upgrade = req.headers.get("upgrade"); + if (upgrade) { + const socket = new FakeSocket(); + socket[kInternalSocketData] = [_server, http_res, req]; + server.emit("upgrade", http_req, socket, kEmptyBuffer); + } else { + server.emit("request", http_req, http_res); + } + + if (pendingError) { + throw pendingError; + } + + if (pendingResponse) { + return pendingResponse; + } + + return new Promise((resolve, reject) => { + resolveFunction = resolve; + rejectFunction = reject; + }); + }, + }); + setTimeout(emitListeningNextTick, 1, this, onListen, null, this.#server.hostname, this.#server.port); + } catch (err) { + setTimeout(emitListeningNextTick, 1, this, onListen, err); + } + + return this; + } + setTimeout(msecs, callback) {} +} + +function assignHeaders(object, req) { + var headers = req.headers.toJSON(); + const rawHeaders = newArrayWithSize(req.headers.count * 2); + var i = 0; + for (const key in headers) { + rawHeaders[i++] = key; + rawHeaders[i++] = headers[key]; + } + object.headers = headers; + object.rawHeaders = rawHeaders; +} +function destroyBodyStreamNT(bodyStream) { + bodyStream.destroy(); +} + +var defaultIncomingOpts = { type: "request" }; + +function getDefaultHTTPSAgent() { + return (_defaultHTTPSAgent ??= new Agent({ defaultPort: 443, protocol: "https:" })); +} + +export class IncomingMessage extends Readable { + method: string; + complete: boolean; + + constructor(req, defaultIncomingOpts) { + const method = req.method; + + super(); + + const url = new URL(req.url); + + var { type = "request", [kInternalRequest]: nodeReq } = defaultIncomingOpts || {}; + + this.#noBody = + type === "request" // TODO: Add logic for checking for body on response + ? "GET" === method || + "HEAD" === method || + "TRACE" === method || + "CONNECT" === method || + "OPTIONS" === method || + (parseInt(req.headers.get("Content-Length") || "") || 0) === 0 + : false; + + this.#req = req; + this.method = method; + this.#type = type; + this.complete = !!this.#noBody; + + this.#bodyStream = undefined; + const socket = new FakeSocket(); + socket.remoteAddress = url.hostname; + socket.remotePort = url.port; + this.#fakeSocket = socket; + + this.url = url.pathname + url.search; + this.#nodeReq = nodeReq; + assignHeaders(this, req); + } + + headers; + rawHeaders; + _consuming = false; + _dumped = false; + #bodyStream: ReadableStreamDefaultReader | undefined; + #fakeSocket: FakeSocket | undefined; + #noBody = false; + #aborted = false; + #req; + url; + #type; + #nodeReq; + + get req() { + return this.#nodeReq; + } + + _construct(callback) { + // TODO: streaming + if (this.#type === "response" || this.#noBody) { + callback(); + return; + } + + const contentLength = this.#req.headers.get("content-length"); + const length = contentLength ? parseInt(contentLength, 10) : 0; + if (length === 0) { + this.#noBody = true; + callback(); + return; + } + + callback(); + } + + async #consumeStream(reader: ReadableStreamDefaultReader) { + while (true) { + var { done, value } = await reader.readMany(); + if (this.#aborted) return; + if (done) { + this.push(null); + this.destroy(); + break; + } + for (var v of value) { + this.push(v); + } + } + } + + _read(size) { + if (this.#noBody) { + this.push(null); + this.complete = true; + } else if (this.#bodyStream == null) { + const reader = this.#req.body?.getReader() as ReadableStreamDefaultReader; + if (!reader) { + this.push(null); + return; + } + this.#bodyStream = reader; + this.#consumeStream(reader); + } + } + + get aborted() { + return this.#aborted; + } + + #abort() { + if (this.#aborted) return; + this.#aborted = true; + var bodyStream = this.#bodyStream; + if (!bodyStream) return; + bodyStream.cancel(); + this.complete = true; + this.#bodyStream = undefined; + this.push(null); + } + + get connection() { + return this.#fakeSocket; + } + + get statusCode() { + return this.#req.status; + } + + get statusMessage() { + return STATUS_CODES[this.#req.status]; + } + + get httpVersion() { + return "1.1"; + } + + get rawTrailers() { + return []; + } + + get httpVersionMajor() { + return 1; + } + + get httpVersionMinor() { + return 1; + } + + get trailers() { + return kEmptyObject; + } + + get socket() { + return (this.#fakeSocket ??= new FakeSocket()); + } + + set socket(val) { + this.#fakeSocket = val; + } + + setTimeout(msecs, callback) { + throw new Error("not implemented"); + } +} + +function emitErrorNt(msg, err, callback) { + callback(err); + if (typeof msg.emit === "function" && !msg._closed) { + msg.emit("error", err); + } +} + +function onError(self, err, cb) { + process.nextTick(() => emitErrorNt(self, err, cb)); +} + +function write_(msg, chunk, encoding, callback, fromEnd) { + if (typeof callback !== "function") callback = nop; + + let len; + if (chunk === null) { + // throw new ERR_STREAM_NULL_VALUES(); + throw new Error("ERR_STREAM_NULL_VALUES"); + } else if (typeof chunk === "string") { + len = Buffer.byteLength(chunk, encoding); + } else { + throw new Error("Invalid arg type for chunk"); + // throw new ERR_INVALID_ARG_TYPE( + // "chunk", + // ["string", "Buffer", "Uint8Array"], + // chunk, + // ); + } + + let err; + if (msg.finished) { + // err = new ERR_STREAM_WRITE_AFTER_END(); + err = new Error("ERR_STREAM_WRITE_AFTER_END"); + } else if (msg.destroyed) { + // err = new ERR_STREAM_DESTROYED("write"); + err = new Error("ERR_STREAM_DESTROYED"); + } + + if (err) { + if (!msg.destroyed) { + onError(msg, err, callback); + } else { + process.nextTick(callback, err); + } + return false; + } + + if (!msg._header) { + if (fromEnd) { + msg._contentLength = len; + } + // msg._implicitHeader(); + } + + if (!msg._hasBody) { + debug("This type of response MUST NOT have a body. " + "Ignoring write() calls."); + process.nextTick(callback); + return true; + } + + // if (!fromEnd && msg.socket && !msg.socket.writableCorked) { + // msg.socket.cork(); + // process.nextTick(connectionCorkNT, msg.socket); + // } + + return true; +} + +export class OutgoingMessage extends Writable { + #headers; + headersSent = false; + sendDate = true; + req; + + #finished = false; + [kEndCalled] = false; + + #fakeSocket; + #timeoutTimer: Timer | null = null; + [kAbortController]: AbortController | null = null; + + // Express "compress" package uses this + _implicitHeader() {} + + // For compat with IncomingRequest + get headers() { + if (!this.#headers) return kEmptyObject; + return this.#headers.toJSON(); + } + + get shouldKeepAlive() { + return true; + } + + get chunkedEncoding() { + return false; + } + + set chunkedEncoding(value) { + // throw new Error('not implemented'); + } + + set shouldKeepAlive(value) { + // throw new Error('not implemented'); + } + + get useChunkedEncodingByDefault() { + return true; + } + + set useChunkedEncodingByDefault(value) { + // throw new Error('not implemented'); + } + + get socket() { + return (this.#fakeSocket ??= new FakeSocket()); + } + + set socket(val) { + this.#fakeSocket = val; + } + + get connection() { + return this.socket; + } + + get finished() { + return this.#finished; + } + + appendHeader(name, value) { + var headers = (this.#headers ??= new Headers()); + headers.append(name, value); + } + + flushHeaders() {} + + getHeader(name) { + return getHeader(this.#headers, name); + } + + getHeaders() { + if (!this.#headers) return kEmptyObject; + return this.#headers.toJSON(); + } + + getHeaderNames() { + var headers = this.#headers; + if (!headers) return []; + return Array.from(headers.keys()); + } + + removeHeader(name) { + if (!this.#headers) return; + this.#headers.delete(name); + } + + setHeader(name, value) { + var headers = (this.#headers ??= new Headers()); + headers.set(name, value); + return this; + } + + hasHeader(name) { + if (!this.#headers) return false; + return this.#headers.has(name); + } + + addTrailers(headers) { + throw new Error("not implemented"); + } + + [kClearTimeout]() { + if (this.#timeoutTimer) { + clearTimeout(this.#timeoutTimer); + this.#timeoutTimer = null; + } + } + + setTimeout(msecs, callback) { + if (this.#timeoutTimer) return this; + if (callback) { + this.on("timeout", callback); + } + + this.#timeoutTimer = setTimeout(async () => { + this.#timeoutTimer = null; + this[kAbortController]?.abort(); + this.emit("timeout"); + }, msecs); + + return this; + } +} + +export class ServerResponse extends Writable { + declare _writableState: any; + + constructor({ req, reply }) { + super(); + this.req = req; + this._reply = reply; + this.sendDate = true; + this.statusCode = 200; + this.headersSent = false; + this.statusMessage = undefined; + this.#controller = undefined; + this.#firstWrite = undefined; + this._writableState.decodeStrings = false; + this.#deferred = undefined; + } + + req; + _reply; + sendDate; + statusCode; + #headers; + headersSent = false; + statusMessage; + #controller; + #firstWrite; + _sent100 = false; + _defaultKeepAlive = false; + _removedConnection = false; + _removedContLen = false; + #deferred: (() => void) | undefined = undefined; + #finished = false; + + // Express "compress" package uses this + _implicitHeader() {} + + _write(chunk, encoding, callback) { + if (!this.#firstWrite && !this.headersSent) { + this.#firstWrite = chunk; + callback(); + return; + } + + this.#ensureReadableStreamController(controller => { + controller.write(chunk); + callback(); + }); + } + + _writev(chunks, callback) { + if (chunks.length === 1 && !this.headersSent && !this.#firstWrite) { + this.#firstWrite = chunks[0].chunk; + callback(); + return; + } + + this.#ensureReadableStreamController(controller => { + for (const chunk of chunks) { + controller.write(chunk.chunk); + } + + callback(); + }); + } + + #ensureReadableStreamController(run) { + var thisController = this.#controller; + if (thisController) return run(thisController); + this.headersSent = true; + var firstWrite = this.#firstWrite; + this.#firstWrite = undefined; + this._reply( + new Response( + new ReadableStream({ + type: "direct", + pull: controller => { + this.#controller = controller; + if (firstWrite) controller.write(firstWrite); + firstWrite = undefined; + run(controller); + if (!this.#finished) { + return new Promise(resolve => { + this.#deferred = resolve; + }); + } + }, + }), + { + headers: this.#headers, + status: this.statusCode, + statusText: this.statusMessage ?? STATUS_CODES[this.statusCode], + }, + ), + ); + } + + _final(callback) { + if (!this.headersSent) { + var data = this.#firstWrite || ""; + this.#firstWrite = undefined; + this.#finished = true; + this._reply( + new Response(data, { + headers: this.#headers, + status: this.statusCode, + statusText: this.statusMessage ?? STATUS_CODES[this.statusCode], + }), + ); + callback && callback(); + return; + } + + this.#finished = true; + this.#ensureReadableStreamController(controller => { + controller.end(); + + callback(); + var deferred = this.#deferred; + if (deferred) { + this.#deferred = undefined; + deferred(); + } + }); + } + + writeProcessing() { + throw new Error("not implemented"); + } + + addTrailers(headers) { + throw new Error("not implemented"); + } + + assignSocket(socket) { + throw new Error("not implemented"); + } + + detachSocket(socket) { + throw new Error("not implemented"); + } + + writeContinue(callback) { + throw new Error("not implemented"); + } + + setTimeout(msecs, callback) { + throw new Error("not implemented"); + } + + get shouldKeepAlive() { + return true; + } + + get chunkedEncoding() { + return false; + } + + set chunkedEncoding(value) { + // throw new Error('not implemented'); + } + + set shouldKeepAlive(value) { + // throw new Error('not implemented'); + } + + get useChunkedEncodingByDefault() { + return true; + } + + set useChunkedEncodingByDefault(value) { + // throw new Error('not implemented'); + } + + appendHeader(name, value) { + var headers = (this.#headers ??= new Headers()); + headers.append(name, value); + } + + flushHeaders() {} + + getHeader(name) { + return getHeader(this.#headers, name); + } + + getHeaders() { + var headers = this.#headers; + if (!headers) return kEmptyObject; + return headers.toJSON(); + } + + getHeaderNames() { + var headers = this.#headers; + if (!headers) return []; + return Array.from(headers.keys()); + } + + removeHeader(name) { + if (!this.#headers) return; + this.#headers.delete(name); + } + + setHeader(name, value) { + var headers = (this.#headers ??= new Headers()); + headers.set(name, value); + return this; + } + + hasHeader(name) { + if (!this.#headers) return false; + return this.#headers.has(name); + } + + writeHead(statusCode, statusMessage, headers) { + _writeHead(statusCode, statusMessage, headers, this); + + return this; + } +} + +export class ClientRequest extends OutgoingMessage { + #timeout; + #res: IncomingMessage | null = null; + #upgradeOrConnect = false; + #parser = null; + #maxHeadersCount = null; + #reusedSocket = false; + #host; + #protocol; + #method; + #port; + #useDefaultPort; + #joinDuplicateHeaders; + #maxHeaderSize; + #agent = globalAgent; + #path; + #socketPath; + + #body: string | null = null; + #fetchRequest; + #signal: AbortSignal | null = null; + [kAbortController]: AbortController | null = null; + #timeoutTimer: Timer | null = null; + #options; + #finished; + + get path() { + return this.#path; + } + + get port() { + return this.#port; + } + + get method() { + return this.#method; + } + + get host() { + return this.#host; + } + + get protocol() { + return this.#protocol; + } + + _write(chunk, encoding, callback) { + var body = this.#body; + if (!body) { + this.#body = chunk; + callback(); + return; + } + this.#body = body + chunk; + callback(); + } + + _writev(chunks, callback) { + var body = this.#body; + if (!body) { + this.#body = chunks.join(); + callback(); + return; + } + this.#body = body + chunks.join(); + callback(); + } + + _final(callback) { + this.#finished = true; + this[kAbortController] = new AbortController(); + this[kAbortController].signal.addEventListener("abort", () => { + this[kClearTimeout](); + }); + if (this.#signal?.aborted) { + this[kAbortController].abort(); + } + + var method = this.#method, + body = this.#body; + + try { + this.#fetchRequest = fetch( + `${this.#protocol}//${this.#host}${this.#useDefaultPort ? "" : ":" + this.#port}${this.#path}`, + { + method, + headers: this.getHeaders(), + body: body && method !== "GET" && method !== "HEAD" && method !== "OPTIONS" ? body : undefined, + redirect: "manual", + verbose: Boolean(__DEBUG__), + signal: this[kAbortController].signal, + }, + ) + .then(response => { + var res = (this.#res = new IncomingMessage(response, { + type: "response", + [kInternalRequest]: this, + })); + this.emit("response", res); + }) + .catch(err => { + if (__DEBUG__) globalReportError(err); + this.emit("error", err); + }) + .finally(() => { + this.#fetchRequest = null; + this[kClearTimeout](); + }); + } catch (err) { + if (__DEBUG__) globalReportError(err); + this.emit("error", err); + } finally { + callback(); + } + } + + get aborted() { + return this.#signal?.aborted || !!this[kAbortController]?.signal.aborted; + } + + abort() { + if (this.aborted) return; + this[kAbortController]!.abort(); + // TODO: Close stream if body streaming + } + + constructor(input, options, cb) { + super(); + + if (typeof input === "string") { + const urlStr = input; + try { + var urlObject = new URL(urlStr); + } catch (e) { + throw new TypeError(`Invalid URL: ${urlStr}`); + } + input = urlToHttpOptions(urlObject); + } else if (input && typeof input === "object" && input instanceof URL) { + // url.URL instance + input = urlToHttpOptions(input); + } else { + cb = options; + options = input; + input = null; + } + + if (typeof options === "function") { + cb = options; + options = input || kEmptyObject; + } else { + options = ObjectAssign(input || {}, options); + } + + var defaultAgent = options._defaultAgent || Agent.globalAgent; + + let protocol = options.protocol; + if (!protocol) { + if (options.port === 443) { + protocol = "https:"; + } else { + protocol = defaultAgent.protocol || "http:"; + } + } + this.#protocol = protocol; + + switch (this.#agent?.protocol) { + case undefined: { + break; + } + case "http:": { + if (protocol === "https:") { + defaultAgent = this.#agent = getDefaultHTTPSAgent(); + break; + } + } + case "https:": { + if (protocol === "https") { + defaultAgent = this.#agent = Agent.globalAgent; + break; + } + } + default: { + break; + } + } + + if (options.path) { + const path = String(options.path); + if (RegExpPrototypeExec.call(INVALID_PATH_REGEX, path) !== null) { + debug('Path contains unescaped characters: "%s"', path); + throw new Error("Path contains unescaped characters"); + // throw new ERR_UNESCAPED_CHARACTERS("Request path"); + } + } + + // Since we don't implement Agent, we don't need this + if (protocol !== "http:" && protocol !== "https:" && protocol) { + const expectedProtocol = defaultAgent?.protocol ?? "http:"; + throw new Error(`Protocol mismatch. Expected: ${expectedProtocol}. Got: ${protocol}`); + // throw new ERR_INVALID_PROTOCOL(protocol, expectedProtocol); + } + + const defaultPort = protocol === "https:" ? 443 : 80; + + this.#port = options.port || options.defaultPort || this.#agent?.defaultPort || defaultPort; + this.#useDefaultPort = this.#port === defaultPort; + const host = + (this.#host = + options.host = + validateHost(options.hostname, "hostname") || validateHost(options.host, "host") || "localhost"); + + // const setHost = options.setHost === undefined || Boolean(options.setHost); + + this.#socketPath = options.socketPath; + + if (options.timeout !== undefined) this.setTimeout(options.timeout, null); + + const signal = options.signal; + if (signal) { + //We still want to control abort function and timeout so signal call our AbortController + signal.addEventListener("abort", () => { + this[kAbortController]?.abort(); + }); + this.#signal = signal; + } + let method = options.method; + const methodIsString = typeof method === "string"; + if (method !== null && method !== undefined && !methodIsString) { + // throw new ERR_INVALID_ARG_TYPE("options.method", "string", method); + throw new Error("ERR_INVALID_ARG_TYPE: options.method"); + } + + if (methodIsString && method) { + if (!checkIsHttpToken(method)) { + // throw new ERR_INVALID_HTTP_TOKEN("Method", method); + throw new Error("ERR_INVALID_HTTP_TOKEN: Method"); + } + method = this.#method = StringPrototypeToUpperCase.call(method); + } else { + method = this.#method = "GET"; + } + + const _maxHeaderSize = options.maxHeaderSize; + // TODO: Validators + // if (maxHeaderSize !== undefined) + // validateInteger(maxHeaderSize, "maxHeaderSize", 0); + this.#maxHeaderSize = _maxHeaderSize; + + // const insecureHTTPParser = options.insecureHTTPParser; + // if (insecureHTTPParser !== undefined) { + // validateBoolean(insecureHTTPParser, 'options.insecureHTTPParser'); + // } + + // this.insecureHTTPParser = insecureHTTPParser; + var _joinDuplicateHeaders = options.joinDuplicateHeaders; + if (_joinDuplicateHeaders !== undefined) { + // TODO: Validators + // validateBoolean( + // options.joinDuplicateHeaders, + // "options.joinDuplicateHeaders", + // ); + } + + this.#joinDuplicateHeaders = _joinDuplicateHeaders; + + this.#path = options.path || "/"; + if (cb) { + this.once("response", cb); + } + + __DEBUG__ && + debug(`new ClientRequest: ${this.#method} ${this.#protocol}//${this.#host}:${this.#port}${this.#path}`); + + // if ( + // method === "GET" || + // method === "HEAD" || + // method === "DELETE" || + // method === "OPTIONS" || + // method === "TRACE" || + // method === "CONNECT" + // ) { + // this.useChunkedEncodingByDefault = false; + // } else { + // this.useChunkedEncodingByDefault = true; + // } + + this.#finished = false; + this.#res = null; + this.#upgradeOrConnect = false; + this.#parser = null; + this.#maxHeadersCount = null; + this.#reusedSocket = false; + this.#host = host; + this.#protocol = protocol; + this.#timeoutTimer = null; + const headersArray = ArrayIsArray(headers); + if (!headersArray) { + var headers = options.headers; + if (headers) { + for (let key in headers) { + this.setHeader(key, headers[key]); + } + } + + // if (host && !this.getHeader("host") && setHost) { + // let hostHeader = host; + + // // For the Host header, ensure that IPv6 addresses are enclosed + // // in square brackets, as defined by URI formatting + // // https://tools.ietf.org/html/rfc3986#section-3.2.2 + // const posColon = StringPrototypeIndexOf.call(hostHeader, ":"); + // if ( + // posColon !== -1 && + // StringPrototypeIncludes(hostHeader, ":", posColon + 1) && + // StringPrototypeCharCodeAt(hostHeader, 0) !== 91 /* '[' */ + // ) { + // hostHeader = `[${hostHeader}]`; + // } + + // if (port && +port !== defaultPort) { + // hostHeader += ":" + port; + // } + // this.setHeader("Host", hostHeader); + // } + + var auth = options.auth; + if (auth && !this.getHeader("Authorization")) { + this.setHeader("Authorization", "Basic " + Buffer.from(auth).toString("base64")); + } + + // if (this.getHeader("expect")) { + // if (this._header) { + // throw new ERR_HTTP_HEADERS_SENT("render"); + // } + + // this._storeHeader( + // this.method + " " + this.path + " HTTP/1.1\r\n", + // this[kOutHeaders], + // ); + // } + // } else { + // this._storeHeader( + // this.method + " " + this.path + " HTTP/1.1\r\n", + // options.headers, + // ); + } + + // this[kUniqueHeaders] = parseUniqueHeadersOption(options.uniqueHeaders); + + var optsWithoutSignal = options; + if (optsWithoutSignal.signal) { + optsWithoutSignal = ObjectAssign({}, options); + delete optsWithoutSignal.signal; + } + this.#options = optsWithoutSignal; + + var timeout = options.timeout; + if (timeout) { + this.setTimeout(timeout); + } + } + + setSocketKeepAlive(enable = true, initialDelay = 0) { + __DEBUG__ && debug(`${NODE_HTTP_WARNING}\n`, "WARN: ClientRequest.setSocketKeepAlive is a no-op"); + } + + setNoDelay(noDelay = true) { + __DEBUG__ && debug(`${NODE_HTTP_WARNING}\n`, "WARN: ClientRequest.setNoDelay is a no-op"); + } + [kClearTimeout]() { + if (this.#timeoutTimer) { + clearTimeout(this.#timeoutTimer); + this.#timeoutTimer = null; + } + } + + setTimeout(msecs, callback?) { + if (this.#timeoutTimer) return this; + if (callback) { + this.on("timeout", callback); + } + + this.#timeoutTimer = setTimeout(async () => { + this.#timeoutTimer = null; + this[kAbortController]?.abort(); + this.emit("timeout"); + }, msecs); + + return this; + } +} + +function urlToHttpOptions(url) { + var { protocol, hostname, hash, search, pathname, href, port, username, password } = url; + return { + protocol, + hostname: + typeof hostname === "string" && StringPrototypeStartsWith.call(hostname, "[") + ? StringPrototypeSlice.call(hostname, 1, -1) + : hostname, + hash, + search, + pathname, + path: `${pathname || ""}${search || ""}`, + href, + port: port ? Number(port) : protocol === "https:" ? 443 : protocol === "http:" ? 80 : undefined, + auth: username || password ? `${decodeURIComponent(username)}:${decodeURIComponent(password)}` : undefined, + }; +} + +function validateHost(host, name) { + if (host !== null && host !== undefined && typeof host !== "string") { + // throw new ERR_INVALID_ARG_TYPE( + // `options.${name}`, + // ["string", "undefined", "null"], + // host, + // ); + throw new Error("Invalid arg type in options"); + } + return host; +} + +const tokenRegExp = /^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/; +/** + * Verifies that the given val is a valid HTTP token + * per the rules defined in RFC 7230 + * See https://tools.ietf.org/html/rfc7230#section-3.2.6 + */ +function checkIsHttpToken(val) { + return RegExpPrototypeExec.call(tokenRegExp, val) !== null; +} + +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +export const METHODS = [ + "ACL", + "BIND", + "CHECKOUT", + "CONNECT", + "COPY", + "DELETE", + "GET", + "HEAD", + "LINK", + "LOCK", + "M-SEARCH", + "MERGE", + "MKACTIVITY", + "MKCALENDAR", + "MKCOL", + "MOVE", + "NOTIFY", + "OPTIONS", + "PATCH", + "POST", + "PROPFIND", + "PROPPATCH", + "PURGE", + "PUT", + "REBIND", + "REPORT", + "SEARCH", + "SOURCE", + "SUBSCRIBE", + "TRACE", + "UNBIND", + "UNLINK", + "UNLOCK", + "UNSUBSCRIBE", +]; + +export const STATUS_CODES = { + 100: "Continue", + 101: "Switching Protocols", + 102: "Processing", + 103: "Early Hints", + 200: "OK", + 201: "Created", + 202: "Accepted", + 203: "Non-Authoritative Information", + 204: "No Content", + 205: "Reset Content", + 206: "Partial Content", + 207: "Multi-Status", + 208: "Already Reported", + 226: "IM Used", + 300: "Multiple Choices", + 301: "Moved Permanently", + 302: "Found", + 303: "See Other", + 304: "Not Modified", + 305: "Use Proxy", + 307: "Temporary Redirect", + 308: "Permanent Redirect", + 400: "Bad Request", + 401: "Unauthorized", + 402: "Payment Required", + 403: "Forbidden", + 404: "Not Found", + 405: "Method Not Allowed", + 406: "Not Acceptable", + 407: "Proxy Authentication Required", + 408: "Request Timeout", + 409: "Conflict", + 410: "Gone", + 411: "Length Required", + 412: "Precondition Failed", + 413: "Payload Too Large", + 414: "URI Too Long", + 415: "Unsupported Media Type", + 416: "Range Not Satisfiable", + 417: "Expectation Failed", + 418: "I'm a Teapot", + 421: "Misdirected Request", + 422: "Unprocessable Entity", + 423: "Locked", + 424: "Failed Dependency", + 425: "Too Early", + 426: "Upgrade Required", + 428: "Precondition Required", + 429: "Too Many Requests", + 431: "Request Header Fields Too Large", + 451: "Unavailable For Legal Reasons", + 500: "Internal Server Error", + 501: "Not Implemented", + 502: "Bad Gateway", + 503: "Service Unavailable", + 504: "Gateway Timeout", + 505: "HTTP Version Not Supported", + 506: "Variant Also Negotiates", + 507: "Insufficient Storage", + 508: "Loop Detected", + 509: "Bandwidth Limit Exceeded", + 510: "Not Extended", + 511: "Network Authentication Required", +}; + +function _normalizeArgs(args) { + let arr; + + if (args.length === 0) { + arr = [{}, null]; + // arr[normalizedArgsSymbol] = true; + return arr; + } + + const arg0 = args[0]; + let options: any = {}; + if (typeof arg0 === "object" && arg0 !== null) { + // (options[...][, cb]) + options = arg0; + // } else if (isPipeName(arg0)) { + // (path[...][, cb]) + // options.path = arg0; + } else { + // ([port][, host][...][, cb]) + options.port = arg0; + if (args.length > 1 && typeof args[1] === "string") { + options.host = args[1]; + } + } + + const cb = args[args.length - 1]; + if (typeof cb !== "function") arr = [options, null]; + else arr = [options, cb]; + + // arr[normalizedArgsSymbol] = true; + return arr; +} + +function _writeHead(statusCode, reason, obj, response) { + statusCode |= 0; + if (statusCode < 100 || statusCode > 999) { + throw new Error("status code must be between 100 and 999"); + } + + if (typeof reason === "string") { + // writeHead(statusCode, reasonPhrase[, headers]) + response.statusMessage = reason; + } else { + // writeHead(statusCode[, headers]) + if (!response.statusMessage) response.statusMessage = STATUS_CODES[statusCode] || "unknown"; + obj = reason; + } + response.statusCode = statusCode; + + { + // Slow-case: when progressive API and header fields are passed. + let k; + if (Array.isArray(obj)) { + if (obj.length % 2 !== 0) { + throw new Error("raw headers must have an even number of elements"); + } + + for (let n = 0; n < obj.length; n += 2) { + k = obj[n + 0]; + if (k) response.setHeader(k, obj[n + 1]); + } + } else if (obj) { + const keys = Object.keys(obj); + // Retain for(;;) loop for performance reasons + // Refs: https://github.com/nodejs/node/pull/30958 + for (let i = 0; i < keys.length; i++) { + k = keys[i]; + if (k) response.setHeader(k, obj[k]); + } + } + } +} + +/** + * Makes an HTTP request. + * @param {string | URL} url + * @param {HTTPRequestOptions} [options] + * @param {Function} [cb] + * @returns {ClientRequest} + */ +export function request(url, options, cb) { + return new ClientRequest(url, options, cb); +} + +/** + * Makes a `GET` HTTP request. + * @param {string | URL} url + * @param {HTTPRequestOptions} [options] + * @param {Function} [cb] + * @returns {ClientRequest} + */ +export function get(url, options, cb) { + const req = request(url, options, cb); + req.end(); + return req; +} + +export var globalAgent = new Agent(); +var defaultObject = { + Agent, + Server, + METHODS, + STATUS_CODES, + createServer, + ServerResponse, + IncomingMessage, + request, + get, + maxHeaderSize: 16384, + validateHeaderName, + validateHeaderValue, + setMaxIdleHTTPParsers(max) { + debug(`${NODE_HTTP_WARNING}\n`, "setMaxIdleHTTPParsers() is a no-op"); + }, + globalAgent, + [Symbol.for("CommonJS")]: 0, +}; + +export default defaultObject; diff --git a/src/js/node/https.js b/src/js/node/https.js deleted file mode 100644 index 5bef145ff..000000000 --- a/src/js/node/https.js +++ /dev/null @@ -1,3 +0,0 @@ -// Hardcoded module "node:https" -export * from "node:http"; -export { default as default } from "node:http"; diff --git a/src/js/node/https.ts b/src/js/node/https.ts new file mode 100644 index 000000000..08eb89a01 --- /dev/null +++ b/src/js/node/https.ts @@ -0,0 +1,65 @@ +// Hardcoded module "node:https" +import * as http from "node:http"; + +var { + Agent, + Server, + METHODS, + STATUS_CODES, + createServer, + ServerResponse, + IncomingMessage, + maxHeaderSize, + validateHeaderName, + validateHeaderValue, + globalAgent, +} = http; + +function request(input, options, cb) { + if (input && typeof input === "object" && !(input instanceof URL)) { + input.protocol ??= "https:"; + } else if (typeof options === "object") { + options.protocol ??= "https:"; + } + + return http.request(input, options, cb); +} + +function get(input, options, cb) { + const req = request(input, options, cb); + req.end(); + return req; +} + +var defaultExport = { + Agent, + Server, + METHODS, + STATUS_CODES, + createServer, + ServerResponse, + IncomingMessage, + request, + get, + maxHeaderSize, + validateHeaderName, + validateHeaderValue, + globalAgent, +}; + +export { + Agent, + Server, + METHODS, + STATUS_CODES, + createServer, + ServerResponse, + IncomingMessage, + request, + get, + maxHeaderSize, + validateHeaderName, + validateHeaderValue, + globalAgent, +}; +export default defaultExport; diff --git a/src/js/out/WebCoreJSBuiltins.cpp b/src/js/out/WebCoreJSBuiltins.cpp index f5d39d398..df64669b5 100644 --- a/src/js/out/WebCoreJSBuiltins.cpp +++ b/src/js/out/WebCoreJSBuiltins.cpp @@ -32,7 +32,7 @@ const JSC::ConstructorKind s_bundlerPluginRunOnLoadPluginsCodeConstructorKind = const JSC::ImplementationVisibility s_bundlerPluginRunOnLoadPluginsCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_bundlerPluginRunOnLoadPluginsCodeLength = 1325; static const JSC::Intrinsic s_bundlerPluginRunOnLoadPluginsCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_bundlerPluginRunOnLoadPluginsCode = "(function (w,G,H,x){\"use strict\";const C={jsx:0,js:1,ts:2,tsx:3,css:4,file:5,json:6,toml:7,wasm:8,napi:9,base64:10,dataurl:11,text:12},b=[\"jsx\",\"js\",\"ts\",\"tsx\",\"css\",\"file\",\"json\",\"toml\",\"wasm\",\"napi\",\"base64\",\"dataurl\",\"text\"][x];var J=(async(K,z,Q,F)=>{var g=this.onLoad.@get(Q);if(!g)return this.onLoadAsync(K,null,null),null;for(let[B,v]of g)if(B.test(z)){var q=v({path:z,namespace:Q,loader:F});while(q&&@isPromise(q)&&(@getPromiseInternalField(q,@promiseFieldFlags)&@promiseStateMask)===@promiseStateFulfilled)q=@getPromiseInternalField(q,@promiseFieldReactionsOrResult);if(q&&@isPromise(q))q=await q;if(!q||!@isObject(q))continue;var{contents:T,loader:y=F}=q;if(typeof T!==\"string\"&&!@isTypedArrayView(T))@throwTypeError('onLoad plugins must return an object with \"contents\" as a string or Uint8Array');if(typeof y!==\"string\")@throwTypeError('onLoad plugins must return an object with \"loader\" as a string');const j=C[y];if(j===@undefined)@throwTypeError(`Loader ${y} is not supported.`);return this.onLoadAsync(K,T,j),null}return this.onLoadAsync(K,null,null),null})(w,G,H,b);while(J&&@isPromise(J)&&(@getPromiseInternalField(J,@promiseFieldFlags)&@promiseStateMask)===@promiseStateFulfilled)J=@getPromiseInternalField(J,@promiseFieldReactionsOrResult);if(J&&@isPromise(J))J.then(()=>{},(K)=>{this.addError(w,K,1)})})\n"; +const char* const s_bundlerPluginRunOnLoadPluginsCode = "(function (b,g,j,q){\"use strict\";const v={jsx:0,js:1,ts:2,tsx:3,css:4,file:5,json:6,toml:7,wasm:8,napi:9,base64:10,dataurl:11,text:12},w=[\"jsx\",\"js\",\"ts\",\"tsx\",\"css\",\"file\",\"json\",\"toml\",\"wasm\",\"napi\",\"base64\",\"dataurl\",\"text\"][q];var x=(async(y,z,B,C)=>{var F=this.onLoad.@get(B);if(!F)return this.onLoadAsync(y,null,null),null;for(let[K,Q]of F)if(K.test(z)){var G=Q({path:z,namespace:B,loader:C});while(G&&@isPromise(G)&&(@getPromiseInternalField(G,@promiseFieldFlags)&@promiseStateMask)===@promiseStateFulfilled)G=@getPromiseInternalField(G,@promiseFieldReactionsOrResult);if(G&&@isPromise(G))G=await G;if(!G||!@isObject(G))continue;var{contents:H,loader:J=C}=G;if(typeof H!==\"string\"&&!@isTypedArrayView(H))@throwTypeError('onLoad plugins must return an object with \"contents\" as a string or Uint8Array');if(typeof J!==\"string\")@throwTypeError('onLoad plugins must return an object with \"loader\" as a string');const T=v[J];if(T===@undefined)@throwTypeError(`Loader ${J} is not supported.`);return this.onLoadAsync(y,H,T),null}return this.onLoadAsync(y,null,null),null})(b,g,j,w);while(x&&@isPromise(x)&&(@getPromiseInternalField(x,@promiseFieldFlags)&@promiseStateMask)===@promiseStateFulfilled)x=@getPromiseInternalField(x,@promiseFieldReactionsOrResult);if(x&&@isPromise(x))x.then(()=>{},(y)=>{this.addError(b,y,1)})})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ @@ -116,7 +116,7 @@ const JSC::ConstructorKind s_writableStreamInternalsCreateInternalWritableStream const JSC::ImplementationVisibility s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeLength = 956; static const JSC::Intrinsic s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCode = "(function (o,w){\"use strict\";const C={};if(o===@undefined)o={};if(w===@undefined)w={};if(!@isObject(o))@throwTypeError(\"WritableStream constructor takes an object as first argument\");if(\"type\"in o)@throwRangeError(\"Invalid type is specified\");const E=@extractSizeAlgorithm(w),_=@extractHighWaterMark(w,1),f={};if(\"start\"in o){if(f[\"start\"]=o[\"start\"],typeof f[\"start\"]!==\"function\")@throwTypeError(\"underlyingSink.start should be a function\")}if(\"write\"in o){if(f[\"write\"]=o[\"write\"],typeof f[\"write\"]!==\"function\")@throwTypeError(\"underlyingSink.write should be a function\")}if(\"close\"in o){if(f[\"close\"]=o[\"close\"],typeof f[\"close\"]!==\"function\")@throwTypeError(\"underlyingSink.close should be a function\")}if(\"abort\"in o){if(f[\"abort\"]=o[\"abort\"],typeof f[\"abort\"]!==\"function\")@throwTypeError(\"underlyingSink.abort should be a function\")}return @initializeWritableStreamSlots(C,o),@setUpWritableStreamDefaultControllerFromUnderlyingSink(C,o,f,_,E),C})\n"; +const char* const s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCode = "(function (f,o){\"use strict\";const w={};if(f===@undefined)f={};if(o===@undefined)o={};if(!@isObject(f))@throwTypeError(\"WritableStream constructor takes an object as first argument\");if(\"type\"in f)@throwRangeError(\"Invalid type is specified\");const C=@extractSizeAlgorithm(o),E=@extractHighWaterMark(o,1),_={};if(\"start\"in f){if(_[\"start\"]=f[\"start\"],typeof _[\"start\"]!==\"function\")@throwTypeError(\"underlyingSink.start should be a function\")}if(\"write\"in f){if(_[\"write\"]=f[\"write\"],typeof _[\"write\"]!==\"function\")@throwTypeError(\"underlyingSink.write should be a function\")}if(\"close\"in f){if(_[\"close\"]=f[\"close\"],typeof _[\"close\"]!==\"function\")@throwTypeError(\"underlyingSink.close should be a function\")}if(\"abort\"in f){if(_[\"abort\"]=f[\"abort\"],typeof _[\"abort\"]!==\"function\")@throwTypeError(\"underlyingSink.abort should be a function\")}return @initializeWritableStreamSlots(w,f),@setUpWritableStreamDefaultControllerFromUnderlyingSink(w,f,_,E,C),w})\n"; // initializeWritableStreamSlots const JSC::ConstructAbility s_writableStreamInternalsInitializeWritableStreamSlotsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -164,7 +164,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamAbortCodeConst const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamAbortCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamAbortCodeLength = 501; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamAbortCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamAbortCode = "(function (c,h){\"use strict\";const B=@getByIdDirectPrivate(c,\"state\");if(B===\"closed\"||B===\"errored\")return @Promise.@resolve();const _=@getByIdDirectPrivate(c,\"pendingAbortRequest\");if(_!==@undefined)return _.promise.@promise;@assert(B===\"writable\"||B===\"erroring\");let f=!1;if(B===\"erroring\")f=!0,h=@undefined;const j=@newPromiseCapability(@Promise);if(@putByIdDirectPrivate(c,\"pendingAbortRequest\",{promise:j,reason:h,wasAlreadyErroring:f}),!f)@writableStreamStartErroring(c,h);return j.@promise})\n"; +const char* const s_writableStreamInternalsWritableStreamAbortCode = "(function (c,B){\"use strict\";const h=@getByIdDirectPrivate(c,\"state\");if(h===\"closed\"||h===\"errored\")return @Promise.@resolve();const _=@getByIdDirectPrivate(c,\"pendingAbortRequest\");if(_!==@undefined)return _.promise.@promise;@assert(h===\"writable\"||h===\"erroring\");let f=!1;if(h===\"erroring\")f=!0,B=@undefined;const j=@newPromiseCapability(@Promise);if(@putByIdDirectPrivate(c,\"pendingAbortRequest\",{promise:j,reason:B,wasAlreadyErroring:f}),!f)@writableStreamStartErroring(c,B);return j.@promise})\n"; // writableStreamClose const JSC::ConstructAbility s_writableStreamInternalsWritableStreamCloseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -204,7 +204,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamFinishErroring const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamFinishErroringCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamFinishErroringCodeLength = 1058; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamFinishErroringCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamFinishErroringCode = "(function (_){\"use strict\";@assert(@getByIdDirectPrivate(_,\"state\")===\"erroring\"),@assert(!@writableStreamHasOperationMarkedInFlight(_)),@putByIdDirectPrivate(_,\"state\",\"errored\");const p=@getByIdDirectPrivate(_,\"controller\");@getByIdDirectPrivate(p,\"errorSteps\").@call();const h=@getByIdDirectPrivate(_,\"storedError\"),A=@getByIdDirectPrivate(_,\"writeRequests\");for(var I=A.shift();I;I=A.shift())I.@reject.@call(@undefined,h);@putByIdDirectPrivate(_,\"writeRequests\",@createFIFO());const i=@getByIdDirectPrivate(_,\"pendingAbortRequest\");if(i===@undefined){@writableStreamRejectCloseAndClosedPromiseIfNeeded(_);return}if(@putByIdDirectPrivate(_,\"pendingAbortRequest\",@undefined),i.wasAlreadyErroring){i.promise.@reject.@call(@undefined,h),@writableStreamRejectCloseAndClosedPromiseIfNeeded(_);return}@getByIdDirectPrivate(p,\"abortSteps\").@call(@undefined,i.reason).@then(()=>{i.promise.@resolve.@call(),@writableStreamRejectCloseAndClosedPromiseIfNeeded(_)},(B)=>{i.promise.@reject.@call(@undefined,B),@writableStreamRejectCloseAndClosedPromiseIfNeeded(_)})})\n"; +const char* const s_writableStreamInternalsWritableStreamFinishErroringCode = "(function (i){\"use strict\";@assert(@getByIdDirectPrivate(i,\"state\")===\"erroring\"),@assert(!@writableStreamHasOperationMarkedInFlight(i)),@putByIdDirectPrivate(i,\"state\",\"errored\");const _=@getByIdDirectPrivate(i,\"controller\");@getByIdDirectPrivate(_,\"errorSteps\").@call();const p=@getByIdDirectPrivate(i,\"storedError\"),h=@getByIdDirectPrivate(i,\"writeRequests\");for(var A=h.shift();A;A=h.shift())A.@reject.@call(@undefined,p);@putByIdDirectPrivate(i,\"writeRequests\",@createFIFO());const B=@getByIdDirectPrivate(i,\"pendingAbortRequest\");if(B===@undefined){@writableStreamRejectCloseAndClosedPromiseIfNeeded(i);return}if(@putByIdDirectPrivate(i,\"pendingAbortRequest\",@undefined),B.wasAlreadyErroring){B.promise.@reject.@call(@undefined,p),@writableStreamRejectCloseAndClosedPromiseIfNeeded(i);return}@getByIdDirectPrivate(_,\"abortSteps\").@call(@undefined,B.reason).@then(()=>{B.promise.@resolve.@call(),@writableStreamRejectCloseAndClosedPromiseIfNeeded(i)},(I)=>{B.promise.@reject.@call(@undefined,I),@writableStreamRejectCloseAndClosedPromiseIfNeeded(i)})})\n"; // writableStreamFinishInFlightClose const JSC::ConstructAbility s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -212,7 +212,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamFinishInFlight const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeLength = 751; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamFinishInFlightCloseCode = "(function (d){\"use strict\";@getByIdDirectPrivate(d,\"inFlightCloseRequest\").@resolve.@call(),@putByIdDirectPrivate(d,\"inFlightCloseRequest\",@undefined);const n=@getByIdDirectPrivate(d,\"state\");if(@assert(n===\"writable\"||n===\"erroring\"),n===\"erroring\"){@putByIdDirectPrivate(d,\"storedError\",@undefined);const c=@getByIdDirectPrivate(d,\"pendingAbortRequest\");if(c!==@undefined)c.promise.@resolve.@call(),@putByIdDirectPrivate(d,\"pendingAbortRequest\",@undefined)}@putByIdDirectPrivate(d,\"state\",\"closed\");const _=@getByIdDirectPrivate(d,\"writer\");if(_!==@undefined)@getByIdDirectPrivate(_,\"closedPromise\").@resolve.@call();@assert(@getByIdDirectPrivate(d,\"pendingAbortRequest\")===@undefined),@assert(@getByIdDirectPrivate(d,\"storedError\")===@undefined)})\n"; +const char* const s_writableStreamInternalsWritableStreamFinishInFlightCloseCode = "(function (d){\"use strict\";@getByIdDirectPrivate(d,\"inFlightCloseRequest\").@resolve.@call(),@putByIdDirectPrivate(d,\"inFlightCloseRequest\",@undefined);const _=@getByIdDirectPrivate(d,\"state\");if(@assert(_===\"writable\"||_===\"erroring\"),_===\"erroring\"){@putByIdDirectPrivate(d,\"storedError\",@undefined);const c=@getByIdDirectPrivate(d,\"pendingAbortRequest\");if(c!==@undefined)c.promise.@resolve.@call(),@putByIdDirectPrivate(d,\"pendingAbortRequest\",@undefined)}@putByIdDirectPrivate(d,\"state\",\"closed\");const n=@getByIdDirectPrivate(d,\"writer\");if(n!==@undefined)@getByIdDirectPrivate(n,\"closedPromise\").@resolve.@call();@assert(@getByIdDirectPrivate(d,\"pendingAbortRequest\")===@undefined),@assert(@getByIdDirectPrivate(d,\"storedError\")===@undefined)})\n"; // writableStreamFinishInFlightCloseWithError const JSC::ConstructAbility s_writableStreamInternalsWritableStreamFinishInFlightCloseWithErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -348,7 +348,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterW const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeLength = 919; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultWriterWriteCode = "(function (g,P){\"use strict\";const W=@getByIdDirectPrivate(g,\"stream\");@assert(W!==@undefined);const _=@getByIdDirectPrivate(W,\"controller\");@assert(_!==@undefined);const f=@writableStreamDefaultControllerGetChunkSize(_,P);if(W!==@getByIdDirectPrivate(g,\"stream\"))return @Promise.@reject(@makeTypeError(\"writer is not stream's writer\"));const d=@getByIdDirectPrivate(W,\"state\");if(d===\"errored\")return @Promise.@reject(@getByIdDirectPrivate(W,\"storedError\"));if(@writableStreamCloseQueuedOrInFlight(W)||d===\"closed\")return @Promise.@reject(@makeTypeError(\"stream is closing or closed\"));if(@writableStreamCloseQueuedOrInFlight(W)||d===\"closed\")return @Promise.@reject(@makeTypeError(\"stream is closing or closed\"));if(d===\"erroring\")return @Promise.@reject(@getByIdDirectPrivate(W,\"storedError\"));@assert(d===\"writable\");const b=@writableStreamAddWriteRequest(W);return @writableStreamDefaultControllerWrite(_,P,f),b})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultWriterWriteCode = "(function (d,g){\"use strict\";const P=@getByIdDirectPrivate(d,\"stream\");@assert(P!==@undefined);const W=@getByIdDirectPrivate(P,\"controller\");@assert(W!==@undefined);const _=@writableStreamDefaultControllerGetChunkSize(W,g);if(P!==@getByIdDirectPrivate(d,\"stream\"))return @Promise.@reject(@makeTypeError(\"writer is not stream's writer\"));const b=@getByIdDirectPrivate(P,\"state\");if(b===\"errored\")return @Promise.@reject(@getByIdDirectPrivate(P,\"storedError\"));if(@writableStreamCloseQueuedOrInFlight(P)||b===\"closed\")return @Promise.@reject(@makeTypeError(\"stream is closing or closed\"));if(@writableStreamCloseQueuedOrInFlight(P)||b===\"closed\")return @Promise.@reject(@makeTypeError(\"stream is closing or closed\"));if(b===\"erroring\")return @Promise.@reject(@getByIdDirectPrivate(P,\"storedError\"));@assert(b===\"writable\");const f=@writableStreamAddWriteRequest(P);return @writableStreamDefaultControllerWrite(W,g,_),f})\n"; // setUpWritableStreamDefaultController const JSC::ConstructAbility s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -468,7 +468,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControl const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeLength = 450; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultControllerWriteCode = "(function (y,B,D){\"use strict\";try{@enqueueValueWithSize(@getByIdDirectPrivate(y,\"queue\"),B,D);const I=@getByIdDirectPrivate(y,\"stream\"),_=@getByIdDirectPrivate(I,\"state\");if(!@writableStreamCloseQueuedOrInFlight(I)&&_===\"writable\"){const d=@writableStreamDefaultControllerGetBackpressure(y);@writableStreamUpdateBackpressure(I,d)}@writableStreamDefaultControllerAdvanceQueueIfNeeded(y)}catch(I){@writableStreamDefaultControllerErrorIfNeeded(y,I)}})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultControllerWriteCode = "(function (d,y,B){\"use strict\";try{@enqueueValueWithSize(@getByIdDirectPrivate(d,\"queue\"),y,B);const D=@getByIdDirectPrivate(d,\"stream\"),I=@getByIdDirectPrivate(D,\"state\");if(!@writableStreamCloseQueuedOrInFlight(D)&&I===\"writable\"){const _=@writableStreamDefaultControllerGetBackpressure(d);@writableStreamUpdateBackpressure(D,_)}@writableStreamDefaultControllerAdvanceQueueIfNeeded(d)}catch(D){@writableStreamDefaultControllerErrorIfNeeded(d,D)}})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ @@ -502,7 +502,7 @@ const JSC::ConstructorKind s_transformStreamInternalsCreateTransformStreamCodeCo const JSC::ImplementationVisibility s_transformStreamInternalsCreateTransformStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsCreateTransformStreamCodeLength = 513; static const JSC::Intrinsic s_transformStreamInternalsCreateTransformStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsCreateTransformStreamCode = "(function (q,x,B,D,c,F,j){\"use strict\";if(D===@undefined)D=1;if(c===@undefined)c=()=>1;if(F===@undefined)F=0;if(j===@undefined)j=()=>1;@assert(D>=0),@assert(F>=0);const G={};@putByIdDirectPrivate(G,\"TransformStream\",!0);const I=new @TransformStream(G),v=@newPromiseCapability(@Promise);@initializeTransformStream(I,v.@promise,D,c,F,j);const E=new @TransformStreamDefaultController;return @setUpTransformStreamDefaultController(I,E,x,B),q().@then(()=>{v.@resolve.@call()},(_)=>{v.@reject.@call(@undefined,_)}),I})\n"; +const char* const s_transformStreamInternalsCreateTransformStreamCode = "(function (_,c,j,q,v,x,B){\"use strict\";if(q===@undefined)q=1;if(v===@undefined)v=()=>1;if(x===@undefined)x=0;if(B===@undefined)B=()=>1;@assert(q>=0),@assert(x>=0);const D={};@putByIdDirectPrivate(D,\"TransformStream\",!0);const E=new @TransformStream(D),F=@newPromiseCapability(@Promise);@initializeTransformStream(E,F.@promise,q,v,x,B);const G=new @TransformStreamDefaultController;return @setUpTransformStreamDefaultController(E,G,c,j),_().@then(()=>{F.@resolve.@call()},(I)=>{F.@reject.@call(@undefined,I)}),E})\n"; // initializeTransformStream const JSC::ConstructAbility s_transformStreamInternalsInitializeTransformStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -510,7 +510,7 @@ const JSC::ConstructorKind s_transformStreamInternalsInitializeTransformStreamCo const JSC::ImplementationVisibility s_transformStreamInternalsInitializeTransformStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsInitializeTransformStreamCodeLength = 1015; static const JSC::Intrinsic s_transformStreamInternalsInitializeTransformStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsInitializeTransformStreamCode = "(function (T,j,v,C,D,E){\"use strict\";const F=()=>{return j},G=(N)=>{return @transformStreamDefaultSinkWriteAlgorithm(T,N)},I=(N)=>{return @transformStreamDefaultSinkAbortAlgorithm(T,N)},J=()=>{return @transformStreamDefaultSinkCloseAlgorithm(T)},f=@createWritableStream(F,G,J,I,v,C),B=()=>{return @transformStreamDefaultSourcePullAlgorithm(T)},q=(N)=>{return @transformStreamErrorWritableAndUnblockWrite(T,N),@Promise.@resolve()},x={};@putByIdDirectPrivate(x,\"start\",F),@putByIdDirectPrivate(x,\"pull\",B),@putByIdDirectPrivate(x,\"cancel\",q);const K={};@putByIdDirectPrivate(K,\"size\",E),@putByIdDirectPrivate(K,\"highWaterMark\",D);const L=new @ReadableStream(x,K);@putByIdDirectPrivate(T,\"writable\",f),@putByIdDirectPrivate(T,\"internalWritable\",@getInternalWritableStream(f)),@putByIdDirectPrivate(T,\"readable\",L),@putByIdDirectPrivate(T,\"backpressure\",@undefined),@putByIdDirectPrivate(T,\"backpressureChangePromise\",@undefined),@transformStreamSetBackpressure(T,!0),@putByIdDirectPrivate(T,\"controller\",@undefined)})\n"; +const char* const s_transformStreamInternalsInitializeTransformStreamCode = "(function (f,G,B,T,C,F){\"use strict\";const I=()=>{return G},J=(x)=>{return @transformStreamDefaultSinkWriteAlgorithm(f,x)},K=(x)=>{return @transformStreamDefaultSinkAbortAlgorithm(f,x)},j=()=>{return @transformStreamDefaultSinkCloseAlgorithm(f)},L=@createWritableStream(I,J,j,K,B,T),N=()=>{return @transformStreamDefaultSourcePullAlgorithm(f)},q=(x)=>{return @transformStreamErrorWritableAndUnblockWrite(f,x),@Promise.@resolve()},D={};@putByIdDirectPrivate(D,\"start\",I),@putByIdDirectPrivate(D,\"pull\",N),@putByIdDirectPrivate(D,\"cancel\",q);const E={};@putByIdDirectPrivate(E,\"size\",F),@putByIdDirectPrivate(E,\"highWaterMark\",C);const v=new @ReadableStream(D,E);@putByIdDirectPrivate(f,\"writable\",L),@putByIdDirectPrivate(f,\"internalWritable\",@getInternalWritableStream(L)),@putByIdDirectPrivate(f,\"readable\",v),@putByIdDirectPrivate(f,\"backpressure\",@undefined),@putByIdDirectPrivate(f,\"backpressureChangePromise\",@undefined),@transformStreamSetBackpressure(f,!0),@putByIdDirectPrivate(f,\"controller\",@undefined)})\n"; // transformStreamError const JSC::ConstructAbility s_transformStreamInternalsTransformStreamErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -598,7 +598,7 @@ const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultSinkW const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeLength = 764; static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCode = "(function (d,v){\"use strict\";const f=@getByIdDirectPrivate(d,\"internalWritable\");@assert(@getByIdDirectPrivate(f,\"state\")===\"writable\");const j=@getByIdDirectPrivate(d,\"controller\");if(@getByIdDirectPrivate(d,\"backpressure\")){const x=@newPromiseCapability(@Promise),_=@getByIdDirectPrivate(d,\"backpressureChangePromise\");return @assert(_!==@undefined),_.@promise.@then(()=>{const q=@getByIdDirectPrivate(f,\"state\");if(q===\"erroring\"){x.@reject.@call(@undefined,@getByIdDirectPrivate(f,\"storedError\"));return}@assert(q===\"writable\"),@transformStreamDefaultControllerPerformTransform(j,v).@then(()=>{x.@resolve()},(z)=>{x.@reject.@call(@undefined,z)})},(q)=>{x.@reject.@call(@undefined,q)}),x.@promise}return @transformStreamDefaultControllerPerformTransform(j,v)})\n"; +const char* const s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCode = "(function (_,d){\"use strict\";const v=@getByIdDirectPrivate(_,\"internalWritable\");@assert(@getByIdDirectPrivate(v,\"state\")===\"writable\");const f=@getByIdDirectPrivate(_,\"controller\");if(@getByIdDirectPrivate(_,\"backpressure\")){const j=@newPromiseCapability(@Promise),q=@getByIdDirectPrivate(_,\"backpressureChangePromise\");return @assert(q!==@undefined),q.@promise.@then(()=>{const x=@getByIdDirectPrivate(v,\"state\");if(x===\"erroring\"){j.@reject.@call(@undefined,@getByIdDirectPrivate(v,\"storedError\"));return}@assert(x===\"writable\"),@transformStreamDefaultControllerPerformTransform(f,d).@then(()=>{j.@resolve()},(z)=>{j.@reject.@call(@undefined,z)})},(x)=>{j.@reject.@call(@undefined,x)}),j.@promise}return @transformStreamDefaultControllerPerformTransform(f,d)})\n"; // transformStreamDefaultSinkAbortAlgorithm const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -648,7 +648,7 @@ const JSC::ConstructorKind s_processObjectInternalsGetStdioWriteStreamCodeConstr const JSC::ImplementationVisibility s_processObjectInternalsGetStdioWriteStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_processObjectInternalsGetStdioWriteStreamCodeLength = 4250; static const JSC::Intrinsic s_processObjectInternalsGetStdioWriteStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_processObjectInternalsGetStdioWriteStreamCode = "(function (j,z){\"use strict\";var L={path:\"node:process\",require:z},K=(N)=>L.require(N);function G(N){var{Duplex:O,eos:Q,destroy:U}=K(\"node:stream\"),V=class X extends O{#$;#B;#j=!0;#z=!0;#G;#H;#J;#K;#L;#M;get isTTY(){return this.#M\?\?=K(\"node:tty\").isatty(N)}get fd(){return N}constructor(Z){super({readable:!0,writable:!0});this.#G=`/dev/fd/${Z}`}#N(Z){const Y=this.#H;if(this.#H=null,Y)Y(Z);else if(Z)this.destroy(Z);else if(!this.#j&&!this.#z)this.destroy()}_destroy(Z,Y){if(!Z&&this.#H!==null){var P=class A extends Error{code;name;constructor(T=\"The operation was aborted\",x=void 0){if(x!==void 0&&typeof x!==\"object\")throw new Error(`Invalid AbortError options:\\n\\n${JSON.stringify(x,null,2)}`);super(T,x);this.code=\"ABORT_ERR\",this.name=\"AbortError\"}};Z=new P}if(this.#J=null,this.#K=null,this.#H===null)Y(Z);else{if(this.#H=Y,this.#$)U(this.#$,Z);if(this.#B)U(this.#B,Z)}}_write(Z,Y,P){if(!this.#$){var{createWriteStream:A}=K(\"node:fs\"),T=this.#$=A(this.#G);T.on(\"finish\",()=>{if(this.#K){const x=this.#K;this.#K=null,x()}}),T.on(\"drain\",()=>{if(this.#J){const x=this.#J;this.#J=null,x()}}),Q(T,(x)=>{if(this.#z=!1,x)U(T,x);this.#N(x)})}if(T.write(Z,Y))P();else this.#J=P}_final(Z){this.#$&&this.#$.end(),this.#K=Z}#O(){var{createReadStream:Z}=K(\"node:fs\"),Y=this.#B=Z(this.#G);return Y.on(\"readable\",()=>{if(this.#L){const P=this.#L;this.#L=null,P()}else this.read()}),Y.on(\"end\",()=>{this.push(null)}),Q(Y,(P)=>{if(this.#j=!1,P)U(Y,P);this.#N(P)}),Y}_read(){var Z=this.#B;if(!Z)Z=this.#O();while(!0){const Y=Z.read();if(Y===null||!this.push(Y))return}}};return new V(N)}var{EventEmitter:H}=K(\"node:events\");function M(N){if(!N)return!0;var O=N.toLowerCase();return O===\"utf8\"||O===\"utf-8\"||O===\"buffer\"||O===\"binary\"}var J,B=class N extends H{#$;#B;#j;#z;bytesWritten=0;setDefaultEncoding(O){if(this.#B||!M(O))return this.#J(),this.#B.setDefaultEncoding(O)}#G(){switch(this.#$){case 1:{var O=@Bun.stdout.writer({highWaterMark:0});return O.unref(),O}case 2:{var O=@Bun.stderr.writer({highWaterMark:0});return O.unref(),O}default:throw new Error(\"Unsupported writer\")}}#H(){return this.#j\?\?=this.#G()}constructor(O){super();this.#$=O}get fd(){return this.#$}get isTTY(){return this.#z\?\?=K(\"node:tty\").isatty(this.#$)}cursorTo(O,Q,U){return(J\?\?=K(\"readline\")).cursorTo(this,O,Q,U)}moveCursor(O,Q,U){return(J\?\?=K(\"readline\")).moveCursor(this,O,Q,U)}clearLine(O,Q){return(J\?\?=K(\"readline\")).clearLine(this,O,Q)}clearScreenDown(O){return(J\?\?=K(\"readline\")).clearScreenDown(this,O)}ref(){this.#H().ref()}unref(){this.#H().unref()}on(O,Q){if(O===\"close\"||O===\"finish\")return this.#J(),this.#B.on(O,Q);if(O===\"drain\")return super.on(\"drain\",Q);if(O===\"error\")return super.on(\"error\",Q);return super.on(O,Q)}get _writableState(){return this.#J(),this.#B._writableState}get _readableState(){return this.#J(),this.#B._readableState}pipe(O){return this.#J(),this.#B.pipe(O)}unpipe(O){return this.#J(),this.#B.unpipe(O)}#J(){if(this.#B)return;this.#B=G(this.#$);const O=this.eventNames();for(let Q of O)this.#B.on(Q,(...U)=>{this.emit(Q,...U)})}#K(O){var Q=this.#H();const U=Q.write(O);this.bytesWritten+=U;const V=Q.flush(!1);return!!(U||V)}#L(O,Q){if(!M(Q))return this.#J(),this.#B.write(O,Q);return this.#K(O)}#M(O,Q){if(Q)this.emit(\"error\",Q);try{O(Q\?Q:null)}catch(U){this.emit(\"error\",U)}}#N(O,Q,U){if(!M(Q))return this.#J(),this.#B.write(O,Q,U);var V=this.#H();const X=V.write(O),Z=V.flush(!0);if(Z\?.then)return Z.then(()=>{this.#M(U),this.emit(\"drain\")},(Y)=>this.#M(U,Y)),!1;return queueMicrotask(()=>{this.#M(U)}),!!(X||Z)}write(O,Q,U){const V=this._write(O,Q,U);if(V)this.emit(\"drain\");return V}get hasColors(){return @Bun.tty[this.#$].hasColors}_write(O,Q,U){var V=this.#B;if(V)return V.write(O,Q,U);switch(arguments.length){case 0:{var X=new Error(\"Invalid arguments\");throw X.code=\"ERR_INVALID_ARG_TYPE\",X}case 1:return this.#K(O);case 2:if(typeof Q===\"function\")return this.#N(O,\"\",Q);else if(typeof Q===\"string\")return this.#L(O,Q);default:{if(typeof Q!==\"undefined\"&&typeof Q!==\"string\"||typeof U!==\"undefined\"&&typeof U!==\"function\"){var X=new Error(\"Invalid arguments\");throw X.code=\"ERR_INVALID_ARG_TYPE\",X}if(typeof U===\"undefined\")return this.#L(O,Q);return this.#N(O,Q,U)}}}destroy(){return this}end(){return this}};return new B(j)})\n"; +const char* const s_processObjectInternalsGetStdioWriteStreamCode = "(function (A,M){\"use strict\";var N={path:\"node:process\",require:M},O=(Z)=>N.require(Z);function Q(Z){var{Duplex:T,eos:x,destroy:Y}=O(\"node:stream\"),j=class H extends T{#$;#B;#j=!0;#z=!0;#G;#H;#J;#K;#L;#M;get isTTY(){return this.#M\?\?=O(\"node:tty\").isatty(Z)}get fd(){return Z}constructor(V){super({readable:!0,writable:!0});this.#G=`/dev/fd/${V}`}#N(V){const L=this.#H;if(this.#H=null,L)L(V);else if(V)this.destroy(V);else if(!this.#j&&!this.#z)this.destroy()}_destroy(V,L){if(!V&&this.#H!==null){var X=class J extends Error{code;name;constructor(z=\"The operation was aborted\",P=void 0){if(P!==void 0&&typeof P!==\"object\")throw new Error(`Invalid AbortError options:\\n\\n${JSON.stringify(P,null,2)}`);super(z,P);this.code=\"ABORT_ERR\",this.name=\"AbortError\"}};V=new X}if(this.#J=null,this.#K=null,this.#H===null)L(V);else{if(this.#H=L,this.#$)Y(this.#$,V);if(this.#B)Y(this.#B,V)}}_write(V,L,X){if(!this.#$){var{createWriteStream:J}=O(\"node:fs\"),z=this.#$=J(this.#G);z.on(\"finish\",()=>{if(this.#K){const P=this.#K;this.#K=null,P()}}),z.on(\"drain\",()=>{if(this.#J){const P=this.#J;this.#J=null,P()}}),x(z,(P)=>{if(this.#z=!1,P)Y(z,P);this.#N(P)})}if(z.write(V,L))X();else this.#J=X}_final(V){this.#$&&this.#$.end(),this.#K=V}#O(){var{createReadStream:V}=O(\"node:fs\"),L=this.#B=V(this.#G);return L.on(\"readable\",()=>{if(this.#L){const X=this.#L;this.#L=null,X()}else this.read()}),L.on(\"end\",()=>{this.push(null)}),x(L,(X)=>{if(this.#j=!1,X)Y(L,X);this.#N(X)}),L}_read(){var V=this.#B;if(!V)V=this.#O();while(!0){const L=V.read();if(L===null||!this.push(L))return}}};return new j(Z)}var{EventEmitter:B}=O(\"node:events\");function G(Z){if(!Z)return!0;var T=Z.toLowerCase();return T===\"utf8\"||T===\"utf-8\"||T===\"buffer\"||T===\"binary\"}var U,K=class Z extends B{#$;#B;#j;#z;bytesWritten=0;setDefaultEncoding(T){if(this.#B||!G(T))return this.#J(),this.#B.setDefaultEncoding(T)}#G(){switch(this.#$){case 1:{var T=@Bun.stdout.writer({highWaterMark:0});return T.unref(),T}case 2:{var T=@Bun.stderr.writer({highWaterMark:0});return T.unref(),T}default:throw new Error(\"Unsupported writer\")}}#H(){return this.#j\?\?=this.#G()}constructor(T){super();this.#$=T}get fd(){return this.#$}get isTTY(){return this.#z\?\?=O(\"node:tty\").isatty(this.#$)}cursorTo(T,x,Y){return(U\?\?=O(\"readline\")).cursorTo(this,T,x,Y)}moveCursor(T,x,Y){return(U\?\?=O(\"readline\")).moveCursor(this,T,x,Y)}clearLine(T,x){return(U\?\?=O(\"readline\")).clearLine(this,T,x)}clearScreenDown(T){return(U\?\?=O(\"readline\")).clearScreenDown(this,T)}ref(){this.#H().ref()}unref(){this.#H().unref()}on(T,x){if(T===\"close\"||T===\"finish\")return this.#J(),this.#B.on(T,x);if(T===\"drain\")return super.on(\"drain\",x);if(T===\"error\")return super.on(\"error\",x);return super.on(T,x)}get _writableState(){return this.#J(),this.#B._writableState}get _readableState(){return this.#J(),this.#B._readableState}pipe(T){return this.#J(),this.#B.pipe(T)}unpipe(T){return this.#J(),this.#B.unpipe(T)}#J(){if(this.#B)return;this.#B=Q(this.#$);const T=this.eventNames();for(let x of T)this.#B.on(x,(...Y)=>{this.emit(x,...Y)})}#K(T){var x=this.#H();const Y=x.write(T);this.bytesWritten+=Y;const j=x.flush(!1);return!!(Y||j)}#L(T,x){if(!G(x))return this.#J(),this.#B.write(T,x);return this.#K(T)}#M(T,x){if(x)this.emit(\"error\",x);try{T(x\?x:null)}catch(Y){this.emit(\"error\",Y)}}#N(T,x,Y){if(!G(x))return this.#J(),this.#B.write(T,x,Y);var j=this.#H();const H=j.write(T),V=j.flush(!0);if(V\?.then)return V.then(()=>{this.#M(Y),this.emit(\"drain\")},(L)=>this.#M(Y,L)),!1;return queueMicrotask(()=>{this.#M(Y)}),!!(H||V)}write(T,x,Y){const j=this._write(T,x,Y);if(j)this.emit(\"drain\");return j}get hasColors(){return @Bun.tty[this.#$].hasColors}_write(T,x,Y){var j=this.#B;if(j)return j.write(T,x,Y);switch(arguments.length){case 0:{var H=new Error(\"Invalid arguments\");throw H.code=\"ERR_INVALID_ARG_TYPE\",H}case 1:return this.#K(T);case 2:if(typeof x===\"function\")return this.#N(T,\"\",x);else if(typeof x===\"string\")return this.#L(T,x);default:{if(typeof x!==\"undefined\"&&typeof x!==\"string\"||typeof Y!==\"undefined\"&&typeof Y!==\"function\"){var H=new Error(\"Invalid arguments\");throw H.code=\"ERR_INVALID_ARG_TYPE\",H}if(typeof Y===\"undefined\")return this.#L(T,x);return this.#N(T,x,Y)}}}destroy(){return this}end(){return this}};return new K(A)})\n"; // getStdinStream const JSC::ConstructAbility s_processObjectInternalsGetStdinStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -656,7 +656,7 @@ const JSC::ConstructorKind s_processObjectInternalsGetStdinStreamCodeConstructor const JSC::ImplementationVisibility s_processObjectInternalsGetStdinStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_processObjectInternalsGetStdinStreamCodeLength = 1799; static const JSC::Intrinsic s_processObjectInternalsGetStdinStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_processObjectInternalsGetStdinStreamCode = "(function (z,G,H){\"use strict\";var K={path:\"node:process\",require:G},L=(T)=>K.require(T),{Duplex:M,eos:N,destroy:P}=L(\"node:stream\"),Q=class T extends M{#Y;#$;#j;#z=!0;#G=!1;#H=!0;#I;#J;#K;get isTTY(){return L(\"tty\").isatty(z)}get fd(){return z}constructor(){super({readable:!0,writable:!0})}#L(Y){const j=this.#J;if(this.#J=null,j)j(Y);else if(Y)this.destroy(Y);else if(!this.#z&&!this.#H)this.destroy()}_destroy(Y,j){if(!Y&&this.#J!==null){var I=class J extends Error{constructor(U=\"The operation was aborted\",V=void 0){if(V!==void 0&&typeof V!==\"object\")throw new Error(`Invalid AbortError options:\\n\\n${JSON.stringify(V,null,2)}`);super(U,V);this.code=\"ABORT_ERR\",this.name=\"AbortError\"}};Y=new I}if(this.#J===null)j(Y);else if(this.#J=j,this.#j)P(this.#j,Y)}setRawMode(Y){}on(Y,j){if(Y===\"readable\")this.ref(),this.#G=!0;return super.on(Y,j)}pause(){return this.unref(),super.pause()}resume(){return this.ref(),super.resume()}ref(){this.#Y\?\?=H.stdin.stream().getReader(),this.#$\?\?=setInterval(()=>{},1<<30)}unref(){if(this.#$)clearInterval(this.#$),this.#$=null}async#M(){try{var Y,j;const I=this.#Y.readMany();if(!I\?.then)({done:Y,value:j}=I);else({done:Y,value:j}=await I);if(!Y){this.push(j[0]);const J=j.length;for(let U=1;U{if(this.#I){const I=this.#I;this.#I=null,I()}}),j.on(\"drain\",()=>{if(this.#K){const I=this.#K;this.#K=null,I()}}),N(j,(I)=>{if(this.#H=!1,I)P(j,I);this.#L(I)}),j}_write(Y,j,I){var J=this.#j;if(!J)J=this.#N();if(J.write(Y,j))I();else this.#K=I}_final(Y){this.#j.end(),this.#I=(...j)=>Y(...j)}};return new Q})\n"; +const char* const s_processObjectInternalsGetStdinStreamCode = "(function (Y,j,z){\"use strict\";var G={path:\"node:process\",require:j},H=(M)=>G.require(M),{Duplex:I,eos:J,destroy:K}=H(\"node:stream\"),L=class M extends I{#Y;#$;#j;#z=!0;#G=!1;#H=!0;#I;#J;#K;get isTTY(){return H(\"tty\").isatty(Y)}get fd(){return Y}constructor(){super({readable:!0,writable:!0})}#L(N){const P=this.#J;if(this.#J=null,P)P(N);else if(N)this.destroy(N);else if(!this.#z&&!this.#H)this.destroy()}_destroy(N,P){if(!N&&this.#J!==null){var Q=class T extends Error{constructor(U=\"The operation was aborted\",V=void 0){if(V!==void 0&&typeof V!==\"object\")throw new Error(`Invalid AbortError options:\\n\\n${JSON.stringify(V,null,2)}`);super(U,V);this.code=\"ABORT_ERR\",this.name=\"AbortError\"}};N=new Q}if(this.#J===null)P(N);else if(this.#J=P,this.#j)K(this.#j,N)}setRawMode(N){}on(N,P){if(N===\"readable\")this.ref(),this.#G=!0;return super.on(N,P)}pause(){return this.unref(),super.pause()}resume(){return this.ref(),super.resume()}ref(){this.#Y\?\?=z.stdin.stream().getReader(),this.#$\?\?=setInterval(()=>{},1<<30)}unref(){if(this.#$)clearInterval(this.#$),this.#$=null}async#M(){try{var N,P;const Q=this.#Y.readMany();if(!Q\?.then)({done:N,value:P}=Q);else({done:N,value:P}=await Q);if(!N){this.push(P[0]);const T=P.length;for(let U=1;U{if(this.#I){const Q=this.#I;this.#I=null,Q()}}),P.on(\"drain\",()=>{if(this.#K){const Q=this.#K;this.#K=null,Q()}}),J(P,(Q)=>{if(this.#H=!1,Q)K(P,Q);this.#L(Q)}),P}_write(N,P,Q){var T=this.#j;if(!T)T=this.#N();if(T.write(N,P))Q();else this.#K=Q}_final(N){this.#j.end(),this.#I=(...P)=>N(...P)}};return new L})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ @@ -674,7 +674,7 @@ const JSC::ConstructorKind s_transformStreamInitializeTransformStreamCodeConstru const JSC::ImplementationVisibility s_transformStreamInitializeTransformStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInitializeTransformStreamCodeLength = 1334; static const JSC::Intrinsic s_transformStreamInitializeTransformStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInitializeTransformStreamCode = "(function (){\"use strict\";let _=arguments[0];if(@isObject(_)&&@getByIdDirectPrivate(_,\"TransformStream\"))return this;let B=arguments[1],u=arguments[2];if(_===@undefined)_=null;if(u===@undefined)u={};if(B===@undefined)B={};let E={};if(_!==null){if(\"start\"in _){if(E[\"start\"]=_[\"start\"],typeof E[\"start\"]!==\"function\")@throwTypeError(\"transformer.start should be a function\")}if(\"transform\"in _){if(E[\"transform\"]=_[\"transform\"],typeof E[\"transform\"]!==\"function\")@throwTypeError(\"transformer.transform should be a function\")}if(\"flush\"in _){if(E[\"flush\"]=_[\"flush\"],typeof E[\"flush\"]!==\"function\")@throwTypeError(\"transformer.flush should be a function\")}if(\"readableType\"in _)@throwRangeError(\"TransformStream transformer has a readableType\");if(\"writableType\"in _)@throwRangeError(\"TransformStream transformer has a writableType\")}const j=@extractHighWaterMark(u,0),F=@extractSizeAlgorithm(u),q=@extractHighWaterMark(B,1),G=@extractSizeAlgorithm(B),v=@newPromiseCapability(@Promise);if(@initializeTransformStream(this,v.@promise,q,G,j,F),@setUpTransformStreamDefaultControllerFromTransformer(this,_,E),(\"start\"in E)){const I=@getByIdDirectPrivate(this,\"controller\");(()=>@promiseInvokeOrNoopMethodNoCatch(_,E[\"start\"],[I]))().@then(()=>{v.@resolve.@call()},(J)=>{v.@reject.@call(@undefined,J)})}else v.@resolve.@call();return this})\n"; +const char* const s_transformStreamInitializeTransformStreamCode = "(function (){\"use strict\";let _=arguments[0];if(@isObject(_)&&@getByIdDirectPrivate(_,\"TransformStream\"))return this;let B=arguments[1],u=arguments[2];if(_===@undefined)_=null;if(u===@undefined)u={};if(B===@undefined)B={};let j={};if(_!==null){if(\"start\"in _){if(j[\"start\"]=_[\"start\"],typeof j[\"start\"]!==\"function\")@throwTypeError(\"transformer.start should be a function\")}if(\"transform\"in _){if(j[\"transform\"]=_[\"transform\"],typeof j[\"transform\"]!==\"function\")@throwTypeError(\"transformer.transform should be a function\")}if(\"flush\"in _){if(j[\"flush\"]=_[\"flush\"],typeof j[\"flush\"]!==\"function\")@throwTypeError(\"transformer.flush should be a function\")}if(\"readableType\"in _)@throwRangeError(\"TransformStream transformer has a readableType\");if(\"writableType\"in _)@throwRangeError(\"TransformStream transformer has a writableType\")}const v=@extractHighWaterMark(u,0),x=@extractSizeAlgorithm(u),E=@extractHighWaterMark(B,1),F=@extractSizeAlgorithm(B),G=@newPromiseCapability(@Promise);if(@initializeTransformStream(this,G.@promise,E,F,v,x),@setUpTransformStreamDefaultControllerFromTransformer(this,_,j),(\"start\"in j)){const q=@getByIdDirectPrivate(this,\"controller\");(()=>@promiseInvokeOrNoopMethodNoCatch(_,j[\"start\"],[q]))().@then(()=>{G.@resolve.@call()},(J)=>{G.@reject.@call(@undefined,J)})}else G.@resolve.@call();return this})\n"; // readable const JSC::ConstructAbility s_transformStreamReadableCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -716,7 +716,7 @@ const JSC::ConstructorKind s_moduleRequireCodeConstructorKind = JSC::Constructor const JSC::ImplementationVisibility s_moduleRequireCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_moduleRequireCodeLength = 1035; static const JSC::Intrinsic s_moduleRequireCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_moduleRequireCode = "(function (M){\"use strict\";const S=@requireMap.@get(M)||@requireMap.@get(M=@resolveSync(M,this.path,!1));if(S)return @evaluateCommonJSModule(S),S.exports;if(M.endsWith(\".json\")||M.endsWith(\".toml\")||M.endsWith(\".node\"))return @internalRequire(M);let f=@Loader.registry.@get(M);if(f\?.evaluated&&(f.state\?\?0)>=@ModuleReady){const _=f.module,b=@Loader.getModuleNamespaceObject(_),r=b\?.[@commonJSSymbol]===0||b\?.default\?.[@commonJSSymbol]===0\?b.default:b.__esModule\?b:Object.create(b,{__esModule:{value:!0}});return @requireMap.@set(M,@createCommonJSModule(M,r,!0)),r}const L=@createCommonJSModule(M,{},!1);@requireMap.@set(M,L);var h=this.@require(M,L);if(h===-1){try{h=@requireESM(M)}catch(_){throw @requireMap.@delete(M),_}if(f=@Loader.registry.@get(M),f\?.evaluated&&(f.state\?\?0)>=@ModuleReady){const _=@Loader.getModuleNamespaceObject(f.module);return L.exports=_\?.[@commonJSSymbol]===0||_\?.default\?.[@commonJSSymbol]===0\?_.default:_.__esModule\?_:Object.create(_,{__esModule:{value:!0}})}}return @evaluateCommonJSModule(L),L.exports})\n"; +const char* const s_moduleRequireCode = "(function (_){\"use strict\";const S=@requireMap.@get(_)||@requireMap.@get(_=@resolveSync(_,this.path,!1));if(S)return @evaluateCommonJSModule(S),S.exports;if(_.endsWith(\".json\")||_.endsWith(\".toml\")||_.endsWith(\".node\"))return @internalRequire(_);let f=@Loader.registry.@get(_);if(f\?.evaluated&&(f.state\?\?0)>=@ModuleReady){const h=f.module,r=@Loader.getModuleNamespaceObject(h),b=r\?.[@commonJSSymbol]===0||r\?.default\?.[@commonJSSymbol]===0\?r.default:r.__esModule\?r:Object.create(r,{__esModule:{value:!0}});return @requireMap.@set(_,@createCommonJSModule(_,b,!0)),b}const L=@createCommonJSModule(_,{},!1);@requireMap.@set(_,L);var M=this.@require(_,L);if(M===-1){try{M=@requireESM(_)}catch(h){throw @requireMap.@delete(_),h}if(f=@Loader.registry.@get(_),f\?.evaluated&&(f.state\?\?0)>=@ModuleReady){const h=@Loader.getModuleNamespaceObject(f.module);return L.exports=h\?.[@commonJSSymbol]===0||h\?.default\?.[@commonJSSymbol]===0\?h.default:h.__esModule\?h:Object.create(h,{__esModule:{value:!0}})}}return @evaluateCommonJSModule(L),L.exports})\n"; // requireResolve const JSC::ConstructAbility s_moduleRequireResolveCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -830,7 +830,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeReadIntLECodeConstructorKind = JSC const JSC::ImplementationVisibility s_jsBufferPrototypeReadIntLECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeReadIntLECodeLength = 528; static const JSC::Intrinsic s_jsBufferPrototypeReadIntLECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeReadIntLECode = "(function (d,r){\"use strict\";const _=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(r){case 1:return _.getInt8(d);case 2:return _.getInt16(d,!0);case 3:{const u=_.getUint16(d,!0)+_.getUint8(d+2)*65536;return u|(u&8388608)*510}case 4:return _.getInt32(d,!0);case 5:{const u=_.getUint8(d+4);return(u|(u&128)*33554430)*4294967296+_.getUint32(d,!0)}case 6:{const u=_.getUint16(d+4,!0);return(u|(u&32768)*131070)*4294967296+_.getUint32(d,!0)}}@throwRangeError(\"byteLength must be >= 1 and <= 6\")})\n"; +const char* const s_jsBufferPrototypeReadIntLECode = "(function (d,_){\"use strict\";const u=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(_){case 1:return u.getInt8(d);case 2:return u.getInt16(d,!0);case 3:{const r=u.getUint16(d,!0)+u.getUint8(d+2)*65536;return r|(r&8388608)*510}case 4:return u.getInt32(d,!0);case 5:{const r=u.getUint8(d+4);return(r|(r&128)*33554430)*4294967296+u.getUint32(d,!0)}case 6:{const r=u.getUint16(d+4,!0);return(r|(r&32768)*131070)*4294967296+u.getUint32(d,!0)}}@throwRangeError(\"byteLength must be >= 1 and <= 6\")})\n"; // readIntBE const JSC::ConstructAbility s_jsBufferPrototypeReadIntBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1038,7 +1038,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteFloatLECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteFloatLECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteFloatLECodeLength = 137; static const JSC::Intrinsic s_jsBufferPrototypeWriteFloatLECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteFloatLECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setFloat32(c,d,!0),c+4})\n"; +const char* const s_jsBufferPrototypeWriteFloatLECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setFloat32(d,c,!0),d+4})\n"; // writeFloatBE const JSC::ConstructAbility s_jsBufferPrototypeWriteFloatBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1046,7 +1046,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteFloatBECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteFloatBECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteFloatBECodeLength = 137; static const JSC::Intrinsic s_jsBufferPrototypeWriteFloatBECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteFloatBECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setFloat32(c,d,!1),c+4})\n"; +const char* const s_jsBufferPrototypeWriteFloatBECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setFloat32(d,c,!1),d+4})\n"; // writeDoubleLE const JSC::ConstructAbility s_jsBufferPrototypeWriteDoubleLECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1142,7 +1142,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeBase64WriteCodeConstructorKind = J const JSC::ImplementationVisibility s_jsBufferPrototypeBase64WriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeBase64WriteCodeLength = 67; static const JSC::Intrinsic s_jsBufferPrototypeBase64WriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeBase64WriteCode = "(function (a,d,r){\"use strict\";return this.write(a,d,r,\"base64\")})\n"; +const char* const s_jsBufferPrototypeBase64WriteCode = "(function (a,r,d){\"use strict\";return this.write(a,r,d,\"base64\")})\n"; // base64urlWrite const JSC::ConstructAbility s_jsBufferPrototypeBase64urlWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1150,7 +1150,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeBase64urlWriteCodeConstructorKind const JSC::ImplementationVisibility s_jsBufferPrototypeBase64urlWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeBase64urlWriteCodeLength = 70; static const JSC::Intrinsic s_jsBufferPrototypeBase64urlWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeBase64urlWriteCode = "(function (a,d,r){\"use strict\";return this.write(a,d,r,\"base64url\")})\n"; +const char* const s_jsBufferPrototypeBase64urlWriteCode = "(function (d,a,r){\"use strict\";return this.write(d,a,r,\"base64url\")})\n"; // hexWrite const JSC::ConstructAbility s_jsBufferPrototypeHexWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1238,7 +1238,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeSliceCodeConstructorKind = JSC::Co const JSC::ImplementationVisibility s_jsBufferPrototypeSliceCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeSliceCodeLength = 260; static const JSC::Intrinsic s_jsBufferPrototypeSliceCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeSliceCode = "(function (p,m){\"use strict\";var{buffer:c,byteOffset:k,byteLength:v}=this;function q(z,i){if(z=@trunc(z),z===0||@isNaN(z))return 0;else if(z<0)return z+=i,z>0\?z:0;else return zw\?x-w:0)})\n"; +const char* const s_jsBufferPrototypeSliceCode = "(function (p,q){\"use strict\";var{buffer:m,byteOffset:v,byteLength:c}=this;function w(z,k){if(z=@trunc(z),z===0||@isNaN(z))return 0;else if(z<0)return z+=k,z>0\?z:0;else return zi\?x-i:0)})\n"; // parent const JSC::ConstructAbility s_jsBufferPrototypeParentCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1312,7 +1312,7 @@ const JSC::ConstructorKind s_readableByteStreamControllerByobRequestCodeConstruc const JSC::ImplementationVisibility s_readableByteStreamControllerByobRequestCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamControllerByobRequestCodeLength = 523; static const JSC::Intrinsic s_readableByteStreamControllerByobRequestCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamControllerByobRequestCode = "(function (){\"use strict\";if(!@isReadableByteStreamController(this))throw @makeGetterTypeError(\"ReadableByteStreamController\",\"byobRequest\");var _=@getByIdDirectPrivate(this,\"byobRequest\");if(_===@undefined){var a=@getByIdDirectPrivate(this,\"pendingPullIntos\");const l=a.peek();if(l){const m=new @Uint8Array(l.buffer,l.byteOffset+l.bytesFilled,l.byteLength-l.bytesFilled);@putByIdDirectPrivate(this,\"byobRequest\",new @ReadableStreamBYOBRequest(this,m,@isReadableStream))}}return @getByIdDirectPrivate(this,\"byobRequest\")})\n"; +const char* const s_readableByteStreamControllerByobRequestCode = "(function (){\"use strict\";if(!@isReadableByteStreamController(this))throw @makeGetterTypeError(\"ReadableByteStreamController\",\"byobRequest\");var _=@getByIdDirectPrivate(this,\"byobRequest\");if(_===@undefined){var l=@getByIdDirectPrivate(this,\"pendingPullIntos\");const m=l.peek();if(m){const a=new @Uint8Array(m.buffer,m.byteOffset+m.bytesFilled,m.byteLength-m.bytesFilled);@putByIdDirectPrivate(this,\"byobRequest\",new @ReadableStreamBYOBRequest(this,a,@isReadableStream))}}return @getByIdDirectPrivate(this,\"byobRequest\")})\n"; // desiredSize const JSC::ConstructAbility s_readableByteStreamControllerDesiredSizeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1338,7 +1338,7 @@ const JSC::ConstructorKind s_consoleObjectAsyncIteratorCodeConstructorKind = JSC const JSC::ImplementationVisibility s_consoleObjectAsyncIteratorCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_consoleObjectAsyncIteratorCodeLength = 577; static const JSC::Intrinsic s_consoleObjectAsyncIteratorCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_consoleObjectAsyncIteratorCode = "(function (){\"use strict\";const j=async function*w(){var _=@Bun.stdin.stream().getReader(),B=new globalThis.TextDecoder(\"utf-8\",{fatal:!1}),m,D=@Bun.indexOfLine;try{while(!0){var F,q,G;const L=_.readMany();if(@isPromise(L))({done:F,value:q}=await L);else({done:F,value:q}=L);if(F){if(G)yield B.decode(G);return}var H;for(let M of q){if(H=M,G)H=@Buffer.concat([G,M]),G=null;var J=0,K=D(H,J);while(K!==-1)yield B.decode(H.subarray(J,K)),J=K+1,K=D(H,J);G=H.subarray(J)}}}catch(L){m=L}finally{if(_.releaseLock(),m)throw m}},z=globalThis.Symbol.asyncIterator;return this[z]=j,j()})\n"; +const char* const s_consoleObjectAsyncIteratorCode = "(function (){\"use strict\";const j=async function*z(){var D=@Bun.stdin.stream().getReader(),F=new globalThis.TextDecoder(\"utf-8\",{fatal:!1}),G,H=@Bun.indexOfLine;try{while(!0){var J,K,w;const L=D.readMany();if(@isPromise(L))({done:J,value:K}=await L);else({done:J,value:K}=L);if(J){if(w)yield F.decode(w);return}var _;for(let M of K){if(_=M,w)_=@Buffer.concat([w,M]),w=null;var q=0,A=H(_,q);while(A!==-1)yield F.decode(_.subarray(q,A)),q=A+1,A=H(_,q);w=_.subarray(q)}}}catch(L){G=L}finally{if(D.releaseLock(),G)throw G}},m=globalThis.Symbol.asyncIterator;return this[m]=j,j()})\n"; // write const JSC::ConstructAbility s_consoleObjectWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1346,7 +1346,7 @@ const JSC::ConstructorKind s_consoleObjectWriteCodeConstructorKind = JSC::Constr const JSC::ImplementationVisibility s_consoleObjectWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_consoleObjectWriteCodeLength = 310; static const JSC::Intrinsic s_consoleObjectWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_consoleObjectWriteCode = "(function (d){\"use strict\";var _=@getByIdDirectPrivate(this,\"writer\");if(!_){var b=@toLength(d\?.length\?\?0);_=@Bun.stdout.writer({highWaterMark:b>65536\?b:65536}),@putByIdDirectPrivate(this,\"writer\",_)}var c=_.write(d);const f=@argumentCount();for(var a=1;a65536\?_:65536}),@putByIdDirectPrivate(this,\"writer\",d)}var b=d.write(a);const c=@argumentCount();for(var f=1;f@promiseInvokeOrNoopMethod(f,w,[C]),D=(x)=>@promiseInvokeOrNoopMethod(f,B,[x]);@putByIdDirectPrivate(C,\"pullAlgorithm\",q),@putByIdDirectPrivate(C,\"cancelAlgorithm\",D),@putByIdDirectPrivate(C,\"pull\",@readableStreamDefaultControllerPull),@putByIdDirectPrivate(C,\"cancel\",@readableStreamDefaultControllerCancel),@putByIdDirectPrivate(_,\"readableStreamController\",C),@readableStreamDefaultControllerStart(C)})\n"; +const char* const s_readableStreamInternalsSetupReadableStreamDefaultControllerCode = "(function (_,w,f,b,q,v,x){\"use strict\";const B=new @ReadableStreamDefaultController(_,w,f,b,@isReadableStream),C=()=>@promiseInvokeOrNoopMethod(w,v,[B]),j=(D)=>@promiseInvokeOrNoopMethod(w,x,[D]);@putByIdDirectPrivate(B,\"pullAlgorithm\",C),@putByIdDirectPrivate(B,\"cancelAlgorithm\",j),@putByIdDirectPrivate(B,\"pull\",@readableStreamDefaultControllerPull),@putByIdDirectPrivate(B,\"cancel\",@readableStreamDefaultControllerCancel),@putByIdDirectPrivate(_,\"readableStreamController\",B),@readableStreamDefaultControllerStart(B)})\n"; // createReadableStreamController const JSC::ConstructAbility s_readableStreamInternalsCreateReadableStreamControllerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1412,7 +1412,7 @@ const JSC::ConstructorKind s_readableStreamInternalsCreateReadableStreamControll const JSC::ImplementationVisibility s_readableStreamInternalsCreateReadableStreamControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsCreateReadableStreamControllerCodeLength = 671; static const JSC::Intrinsic s_readableStreamInternalsCreateReadableStreamControllerCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsCreateReadableStreamControllerCode = "(function (w,C,A){\"use strict\";const b=C.type,f=@toString(b);if(f===\"bytes\"){if(A.highWaterMark===@undefined)A.highWaterMark=0;if(A.size!==@undefined)@throwRangeError(\"Strategy for a ReadableByteStreamController cannot have a size\");@putByIdDirectPrivate(w,\"readableStreamController\",new @ReadableByteStreamController(w,C,A.highWaterMark,@isReadableStream))}else if(f===\"direct\"){var v=A\?.highWaterMark;@initializeArrayBufferStream.@call(w,C,v)}else if(b===@undefined){if(A.highWaterMark===@undefined)A.highWaterMark=1;@setupReadableStreamDefaultController(w,C,A.size,A.highWaterMark,C.start,C.pull,C.cancel)}else @throwRangeError(\"Invalid type for underlying source\")})\n"; +const char* const s_readableStreamInternalsCreateReadableStreamControllerCode = "(function (f,v,w){\"use strict\";const A=v.type,C=@toString(A);if(C===\"bytes\"){if(w.highWaterMark===@undefined)w.highWaterMark=0;if(w.size!==@undefined)@throwRangeError(\"Strategy for a ReadableByteStreamController cannot have a size\");@putByIdDirectPrivate(f,\"readableStreamController\",new @ReadableByteStreamController(f,v,w.highWaterMark,@isReadableStream))}else if(C===\"direct\"){var b=w\?.highWaterMark;@initializeArrayBufferStream.@call(f,v,b)}else if(A===@undefined){if(w.highWaterMark===@undefined)w.highWaterMark=1;@setupReadableStreamDefaultController(f,v,w.size,w.highWaterMark,v.start,v.pull,v.cancel)}else @throwRangeError(\"Invalid type for underlying source\")})\n"; // readableStreamDefaultControllerStart const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerStartCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1420,7 +1420,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControl const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerStartCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamDefaultControllerStartCodeLength = 465; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultControllerStartCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamDefaultControllerStartCode = "(function (B){\"use strict\";if(@getByIdDirectPrivate(B,\"started\")!==-1)return;const a=@getByIdDirectPrivate(B,\"underlyingSource\"),p=a.start;@putByIdDirectPrivate(B,\"started\",0),@promiseInvokeOrNoopMethodNoCatch(a,p,[B]).@then(()=>{@putByIdDirectPrivate(B,\"started\",1),@assert(!@getByIdDirectPrivate(B,\"pulling\")),@assert(!@getByIdDirectPrivate(B,\"pullAgain\")),@readableStreamDefaultControllerCallPullIfNeeded(B)},(m)=>{@readableStreamDefaultControllerError(B,m)})})\n"; +const char* const s_readableStreamInternalsReadableStreamDefaultControllerStartCode = "(function (m){\"use strict\";if(@getByIdDirectPrivate(m,\"started\")!==-1)return;const B=@getByIdDirectPrivate(m,\"underlyingSource\"),a=B.start;@putByIdDirectPrivate(m,\"started\",0),@promiseInvokeOrNoopMethodNoCatch(B,a,[m]).@then(()=>{@putByIdDirectPrivate(m,\"started\",1),@assert(!@getByIdDirectPrivate(m,\"pulling\")),@assert(!@getByIdDirectPrivate(m,\"pullAgain\")),@readableStreamDefaultControllerCallPullIfNeeded(m)},(p)=>{@readableStreamDefaultControllerError(m,p)})})\n"; // readableStreamPipeToWritableStream const JSC::ConstructAbility s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1428,7 +1428,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamPipeToWritable const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeLength = 1631; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamPipeToWritableStreamCode = "(function (D,w,_,x,f,z){\"use strict\";if(@assert(@isReadableStream(D)),@assert(@isWritableStream(w)),@assert(!@isReadableStreamLocked(D)),@assert(!@isWritableStreamLocked(w)),@assert(z===@undefined||@isAbortSignal(z)),@getByIdDirectPrivate(D,\"underlyingByteSource\")!==@undefined)return @Promise.@reject(\"Piping to a readable bytestream is not supported\");let E={source:D,destination:w,preventAbort:x,preventCancel:f,preventClose:_,signal:z};if(E.reader=@acquireReadableStreamDefaultReader(D),E.writer=@acquireWritableStreamDefaultWriter(w),@putByIdDirectPrivate(D,\"disturbed\",!0),E.finalized=!1,E.shuttingDown=!1,E.promiseCapability=@newPromiseCapability(@Promise),E.pendingReadPromiseCapability=@newPromiseCapability(@Promise),E.pendingReadPromiseCapability.@resolve.@call(),E.pendingWritePromise=@Promise.@resolve(),z!==@undefined){const B=(F)=>{if(E.finalized)return;@pipeToShutdownWithAction(E,()=>{const G=!E.preventAbort&&@getByIdDirectPrivate(E.destination,\"state\")===\"writable\"\?@writableStreamAbort(E.destination,F):@Promise.@resolve(),I=!E.preventCancel&&@getByIdDirectPrivate(E.source,\"state\")===@streamReadable\?@readableStreamCancel(E.source,F):@Promise.@resolve();let J=@newPromiseCapability(@Promise),K=!0,L=()=>{if(K){K=!1;return}J.@resolve.@call()},k=(q)=>{J.@reject.@call(@undefined,q)};return G.@then(L,k),I.@then(L,k),J.@promise},F)};if(@whenSignalAborted(z,B))return E.promiseCapability.@promise}return @pipeToErrorsMustBePropagatedForward(E),@pipeToErrorsMustBePropagatedBackward(E),@pipeToClosingMustBePropagatedForward(E),@pipeToClosingMustBePropagatedBackward(E),@pipeToLoop(E),E.promiseCapability.@promise})\n"; +const char* const s_readableStreamInternalsReadableStreamPipeToWritableStreamCode = "(function (f,q,w,x,F,G){\"use strict\";if(@assert(@isReadableStream(f)),@assert(@isWritableStream(q)),@assert(!@isReadableStreamLocked(f)),@assert(!@isWritableStreamLocked(q)),@assert(G===@undefined||@isAbortSignal(G)),@getByIdDirectPrivate(f,\"underlyingByteSource\")!==@undefined)return @Promise.@reject(\"Piping to a readable bytestream is not supported\");let _={source:f,destination:q,preventAbort:x,preventCancel:F,preventClose:w,signal:G};if(_.reader=@acquireReadableStreamDefaultReader(f),_.writer=@acquireWritableStreamDefaultWriter(q),@putByIdDirectPrivate(f,\"disturbed\",!0),_.finalized=!1,_.shuttingDown=!1,_.promiseCapability=@newPromiseCapability(@Promise),_.pendingReadPromiseCapability=@newPromiseCapability(@Promise),_.pendingReadPromiseCapability.@resolve.@call(),_.pendingWritePromise=@Promise.@resolve(),G!==@undefined){const H=(I)=>{if(_.finalized)return;@pipeToShutdownWithAction(_,()=>{const E=!_.preventAbort&&@getByIdDirectPrivate(_.destination,\"state\")===\"writable\"\?@writableStreamAbort(_.destination,I):@Promise.@resolve(),z=!_.preventCancel&&@getByIdDirectPrivate(_.source,\"state\")===@streamReadable\?@readableStreamCancel(_.source,I):@Promise.@resolve();let B=@newPromiseCapability(@Promise),K=!0,T=()=>{if(K){K=!1;return}B.@resolve.@call()},L=(k)=>{B.@reject.@call(@undefined,k)};return E.@then(T,L),z.@then(T,L),B.@promise},I)};if(@whenSignalAborted(G,H))return _.promiseCapability.@promise}return @pipeToErrorsMustBePropagatedForward(_),@pipeToErrorsMustBePropagatedBackward(_),@pipeToClosingMustBePropagatedForward(_),@pipeToClosingMustBePropagatedBackward(_),@pipeToLoop(_),_.promiseCapability.@promise})\n"; // pipeToLoop const JSC::ConstructAbility s_readableStreamInternalsPipeToLoopCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1484,7 +1484,7 @@ const JSC::ConstructorKind s_readableStreamInternalsPipeToShutdownWithActionCode const JSC::ImplementationVisibility s_readableStreamInternalsPipeToShutdownWithActionCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsPipeToShutdownWithActionCodeLength = 458; static const JSC::Intrinsic s_readableStreamInternalsPipeToShutdownWithActionCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsPipeToShutdownWithActionCode = "(function (_,m){\"use strict\";if(_.shuttingDown)return;_.shuttingDown=!0;const g=arguments.length>2,h=arguments[2],b=()=>{m().@then(()=>{if(g)@pipeToFinalize(_,h);else @pipeToFinalize(_)},(d)=>{@pipeToFinalize(_,d)})};if(@getByIdDirectPrivate(_.destination,\"state\")===\"writable\"&&!@writableStreamCloseQueuedOrInFlight(_.destination)){_.pendingReadPromiseCapability.@promise.@then(()=>{_.pendingWritePromise.@then(b,b)},(j)=>@pipeToFinalize(_,j));return}b()})\n"; +const char* const s_readableStreamInternalsPipeToShutdownWithActionCode = "(function (m,b){\"use strict\";if(m.shuttingDown)return;m.shuttingDown=!0;const d=arguments.length>2,g=arguments[2],j=()=>{b().@then(()=>{if(d)@pipeToFinalize(m,g);else @pipeToFinalize(m)},(h)=>{@pipeToFinalize(m,h)})};if(@getByIdDirectPrivate(m.destination,\"state\")===\"writable\"&&!@writableStreamCloseQueuedOrInFlight(m.destination)){m.pendingReadPromiseCapability.@promise.@then(()=>{m.pendingWritePromise.@then(j,j)},(_)=>@pipeToFinalize(m,_));return}j()})\n"; // pipeToShutdown const JSC::ConstructAbility s_readableStreamInternalsPipeToShutdownCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1492,7 +1492,7 @@ const JSC::ConstructorKind s_readableStreamInternalsPipeToShutdownCodeConstructo const JSC::ImplementationVisibility s_readableStreamInternalsPipeToShutdownCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsPipeToShutdownCodeLength = 411; static const JSC::Intrinsic s_readableStreamInternalsPipeToShutdownCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsPipeToShutdownCode = "(function (_){\"use strict\";if(_.shuttingDown)return;_.shuttingDown=!0;const m=arguments.length>1,u=arguments[1],d=()=>{if(m)@pipeToFinalize(_,u);else @pipeToFinalize(_)};if(@getByIdDirectPrivate(_.destination,\"state\")===\"writable\"&&!@writableStreamCloseQueuedOrInFlight(_.destination)){_.pendingReadPromiseCapability.@promise.@then(()=>{_.pendingWritePromise.@then(d,d)},(I)=>@pipeToFinalize(_,I));return}d()})\n"; +const char* const s_readableStreamInternalsPipeToShutdownCode = "(function (_){\"use strict\";if(_.shuttingDown)return;_.shuttingDown=!0;const d=arguments.length>1,m=arguments[1],u=()=>{if(d)@pipeToFinalize(_,m);else @pipeToFinalize(_)};if(@getByIdDirectPrivate(_.destination,\"state\")===\"writable\"&&!@writableStreamCloseQueuedOrInFlight(_.destination)){_.pendingReadPromiseCapability.@promise.@then(()=>{_.pendingWritePromise.@then(u,u)},(I)=>@pipeToFinalize(_,I));return}u()})\n"; // pipeToFinalize const JSC::ConstructAbility s_readableStreamInternalsPipeToFinalizeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1516,7 +1516,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamTeePullFunctio const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamTeePullFunctionCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamTeePullFunctionCodeLength = 764; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamTeePullFunctionCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamTeePullFunctionCode = "(function (i,m,_){\"use strict\";return function(){@Promise.prototype.@then.@call(@readableStreamDefaultReaderRead(m),function(f){if(@assert(@isObject(f)),@assert(typeof f.done===\"boolean\"),f.done&&!i.closedOrErrored){if(!i.canceled1)@readableStreamDefaultControllerClose(i.branch1.@readableStreamController);if(!i.canceled2)@readableStreamDefaultControllerClose(i.branch2.@readableStreamController);if(i.closedOrErrored=!0,!i.canceled1||!i.canceled2)i.cancelPromiseCapability.@resolve.@call()}if(i.closedOrErrored)return;if(!i.canceled1)@readableStreamDefaultControllerEnqueue(i.branch1.@readableStreamController,f.value);if(!i.canceled2)@readableStreamDefaultControllerEnqueue(i.branch2.@readableStreamController,_\?@structuredCloneForStream(f.value):f.value)})}})\n"; +const char* const s_readableStreamInternalsReadableStreamTeePullFunctionCode = "(function (i,_,f){\"use strict\";return function(){@Promise.prototype.@then.@call(@readableStreamDefaultReaderRead(_),function(m){if(@assert(@isObject(m)),@assert(typeof m.done===\"boolean\"),m.done&&!i.closedOrErrored){if(!i.canceled1)@readableStreamDefaultControllerClose(i.branch1.@readableStreamController);if(!i.canceled2)@readableStreamDefaultControllerClose(i.branch2.@readableStreamController);if(i.closedOrErrored=!0,!i.canceled1||!i.canceled2)i.cancelPromiseCapability.@resolve.@call()}if(i.closedOrErrored)return;if(!i.canceled1)@readableStreamDefaultControllerEnqueue(i.branch1.@readableStreamController,m.value);if(!i.canceled2)@readableStreamDefaultControllerEnqueue(i.branch2.@readableStreamController,f\?@structuredCloneForStream(m.value):m.value)})}})\n"; // readableStreamTeeBranch1CancelFunction const JSC::ConstructAbility s_readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1524,7 +1524,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamTeeBranch1Canc const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCodeLength = 258; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCode = "(function (c,i){\"use strict\";return function(d){if(c.canceled1=!0,c.reason1=d,c.canceled2)@readableStreamCancel(i,[c.reason1,c.reason2]).@then(c.cancelPromiseCapability.@resolve,c.cancelPromiseCapability.@reject);return c.cancelPromiseCapability.@promise}})\n"; +const char* const s_readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCode = "(function (c,d){\"use strict\";return function(i){if(c.canceled1=!0,c.reason1=i,c.canceled2)@readableStreamCancel(d,[c.reason1,c.reason2]).@then(c.cancelPromiseCapability.@resolve,c.cancelPromiseCapability.@reject);return c.cancelPromiseCapability.@promise}})\n"; // readableStreamTeeBranch2CancelFunction const JSC::ConstructAbility s_readableStreamInternalsReadableStreamTeeBranch2CancelFunctionCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1564,7 +1564,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadDirectStreamCodeConstruc const JSC::ImplementationVisibility s_readableStreamInternalsReadDirectStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadDirectStreamCodeLength = 900; static const JSC::Intrinsic s_readableStreamInternalsReadDirectStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadDirectStreamCode = "(function (j,w,_){\"use strict\";@putByIdDirectPrivate(j,\"underlyingSource\",@undefined),@putByIdDirectPrivate(j,\"start\",@undefined);function x(q,A){if(A&&_\?.cancel){try{var B=_.cancel(A);@markPromiseAsHandled(B)}catch(v){}_=@undefined}if(q){if(@putByIdDirectPrivate(q,\"readableStreamController\",@undefined),@putByIdDirectPrivate(q,\"reader\",@undefined),A)@putByIdDirectPrivate(q,\"state\",@streamErrored),@putByIdDirectPrivate(q,\"storedError\",A);else @putByIdDirectPrivate(q,\"state\",@streamClosed);q=@undefined}}if(!_.pull){x();return}if(!@isCallable(_.pull)){x(),@throwTypeError(\"pull is not a function\");return}@putByIdDirectPrivate(j,\"readableStreamController\",w);const f=@getByIdDirectPrivate(j,\"highWaterMark\");w.start({highWaterMark:!f||f<64\?64:f}),@startDirectStream.@call(w,j,_.pull,x),@putByIdDirectPrivate(j,\"reader\",{});var z=_.pull(w);if(w=@undefined,z&&@isPromise(z))return z.@then(()=>{})})\n"; +const char* const s_readableStreamInternalsReadDirectStreamCode = "(function (_,f,j){\"use strict\";@putByIdDirectPrivate(_,\"underlyingSource\",@undefined),@putByIdDirectPrivate(_,\"start\",@undefined);function q(x,z){if(z&&j\?.cancel){try{var A=j.cancel(z);@markPromiseAsHandled(A)}catch(B){}j=@undefined}if(x){if(@putByIdDirectPrivate(x,\"readableStreamController\",@undefined),@putByIdDirectPrivate(x,\"reader\",@undefined),z)@putByIdDirectPrivate(x,\"state\",@streamErrored),@putByIdDirectPrivate(x,\"storedError\",z);else @putByIdDirectPrivate(x,\"state\",@streamClosed);x=@undefined}}if(!j.pull){q();return}if(!@isCallable(j.pull)){q(),@throwTypeError(\"pull is not a function\");return}@putByIdDirectPrivate(_,\"readableStreamController\",f);const v=@getByIdDirectPrivate(_,\"highWaterMark\");f.start({highWaterMark:!v||v<64\?64:v}),@startDirectStream.@call(f,_,j.pull,q),@putByIdDirectPrivate(_,\"reader\",{});var w=j.pull(f);if(f=@undefined,w&&@isPromise(w))return w.@then(()=>{})})\n"; // assignToStream const JSC::ConstructAbility s_readableStreamInternalsAssignToStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1572,7 +1572,7 @@ const JSC::ConstructorKind s_readableStreamInternalsAssignToStreamCodeConstructo const JSC::ImplementationVisibility s_readableStreamInternalsAssignToStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Private; const int s_readableStreamInternalsAssignToStreamCodeLength = 221; static const JSC::Intrinsic s_readableStreamInternalsAssignToStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsAssignToStreamCode = "(function (h,_){\"use strict\";var b=@getByIdDirectPrivate(h,\"underlyingSource\");if(b)try{return @readDirectStream(h,_,b)}catch(f){throw f}finally{b=@undefined,h=@undefined,_=@undefined}return @readStreamIntoSink(h,_,!0)})\n"; +const char* const s_readableStreamInternalsAssignToStreamCode = "(function (_,b){\"use strict\";var f=@getByIdDirectPrivate(_,\"underlyingSource\");if(f)try{return @readDirectStream(_,b,f)}catch(h){throw h}finally{f=@undefined,_=@undefined,b=@undefined}return @readStreamIntoSink(_,b,!0)})\n"; // readStreamIntoSink const JSC::ConstructAbility s_readableStreamInternalsReadStreamIntoSinkCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1580,7 +1580,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadStreamIntoSinkCodeConstr const JSC::ImplementationVisibility s_readableStreamInternalsReadStreamIntoSinkCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadStreamIntoSinkCodeLength = 1395; static const JSC::Intrinsic s_readableStreamInternalsReadStreamIntoSinkCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadStreamIntoSinkCode = "(async function (f,I,q){\"use strict\";var z=!1,A=!1;try{var B=f.getReader(),D=B.readMany();if(D&&@isPromise(D))D=await D;if(D.done)return z=!0,I.end();var E=D.value.length;const J=@getByIdDirectPrivate(f,\"highWaterMark\");if(q)@startDirectStream.@call(I,f,@undefined,()=>!A&&@markPromiseAsHandled(f.cancel()));I.start({highWaterMark:J||0});for(var F=0,G=D.value,_=D.value.length;F<_;F++)I.write(G[F]);var c=@getByIdDirectPrivate(f,\"state\");if(c===@streamClosed)return z=!0,I.end();while(!0){var{value:P,done:x}=await B.read();if(x)return z=!0,I.end();I.write(P)}}catch(J){A=!0;try{B=@undefined;const K=f.cancel(J);@markPromiseAsHandled(K)}catch(K){}if(I&&!z){z=!0;try{I.close(J)}catch(K){throw new globalThis.AggregateError([J,K])}}throw J}finally{if(B){try{B.releaseLock()}catch(K){}B=@undefined}I=@undefined;var c=@getByIdDirectPrivate(f,\"state\");if(f){var H=@getByIdDirectPrivate(f,\"readableStreamController\");if(H){if(@getByIdDirectPrivate(H,\"underlyingSource\"))@putByIdDirectPrivate(H,\"underlyingSource\",@undefined);if(@getByIdDirectPrivate(H,\"controlledReadableStream\"))@putByIdDirectPrivate(H,\"controlledReadableStream\",@undefined);if(@putByIdDirectPrivate(f,\"readableStreamController\",null),@getByIdDirectPrivate(f,\"underlyingSource\"))@putByIdDirectPrivate(f,\"underlyingSource\",@undefined);H=@undefined}if(!A&&c!==@streamClosed&&c!==@streamErrored)@readableStreamClose(f);f=@undefined}}})\n"; +const char* const s_readableStreamInternalsReadStreamIntoSinkCode = "(async function (_,E,c){\"use strict\";var f=!1,B=!1;try{var D=_.getReader(),F=D.readMany();if(F&&@isPromise(F))F=await F;if(F.done)return f=!0,E.end();var G=F.value.length;const q=@getByIdDirectPrivate(_,\"highWaterMark\");if(c)@startDirectStream.@call(E,_,@undefined,()=>!B&&@markPromiseAsHandled(_.cancel()));E.start({highWaterMark:q||0});for(var H=0,I=F.value,J=F.value.length;H{var j=@createFulfilledPromise({value:b,done:!1});return b=@undefined,@readableStreamClose(v),v=@undefined,j}}else if(this._pendingRead){var y=this._pendingRead;this._pendingRead=@undefined,@putByIdDirectPrivate(this,\"pull\",@noopDoneFunction),@fulfillPromise(y,{value:@undefined,done:!0})}@readableStreamClose(v)})\n"; +const char* const s_readableStreamInternalsOnCloseDirectStreamCode = "(function (c){\"use strict\";var v=this.@controlledReadableStream;if(!v||@getByIdDirectPrivate(v,\"state\")!==@streamReadable)return;if(this._deferClose!==0){this._deferClose=1,this._deferCloseReason=c;return}if(@putByIdDirectPrivate(v,\"state\",@streamClosing),typeof this.@underlyingSource.close===\"function\")try{this.@underlyingSource.close.@call(this.@underlyingSource,c)}catch(j){}var b;try{b=this.@sink.end(),@putByIdDirectPrivate(this,\"sink\",@undefined)}catch(j){if(this._pendingRead){var y=this._pendingRead;this._pendingRead=@undefined,@rejectPromise(y,j)}@readableStreamError(v,j);return}this.error=this.flush=this.write=this.close=this.end=@onReadableStreamDirectControllerClosed;var S=@getByIdDirectPrivate(v,\"reader\");if(S&&@isReadableStreamDefaultReader(S)){var C=this._pendingRead;if(C&&@isPromise(C)&&b\?.byteLength){this._pendingRead=@undefined,@fulfillPromise(C,{value:b,done:!1}),@readableStreamClose(v);return}}if(b\?.byteLength){var B=@getByIdDirectPrivate(S,\"readRequests\");if(B\?.isNotEmpty()){@readableStreamFulfillReadRequest(v,b,!1),@readableStreamClose(v);return}@putByIdDirectPrivate(v,\"state\",@streamReadable),this.@pull=()=>{var j=@createFulfilledPromise({value:b,done:!1});return b=@undefined,@readableStreamClose(v),v=@undefined,j}}else if(this._pendingRead){var y=this._pendingRead;this._pendingRead=@undefined,@putByIdDirectPrivate(this,\"pull\",@noopDoneFunction),@fulfillPromise(y,{value:@undefined,done:!0})}@readableStreamClose(v)})\n"; // onFlushDirectStream const JSC::ConstructAbility s_readableStreamInternalsOnFlushDirectStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1636,7 +1636,7 @@ const JSC::ConstructorKind s_readableStreamInternalsOnFlushDirectStreamCodeConst const JSC::ImplementationVisibility s_readableStreamInternalsOnFlushDirectStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsOnFlushDirectStreamCodeLength = 591; static const JSC::Intrinsic s_readableStreamInternalsOnFlushDirectStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsOnFlushDirectStreamCode = "(function (){\"use strict\";var c=this.@controlledReadableStream,B=@getByIdDirectPrivate(c,\"reader\");if(!B||!@isReadableStreamDefaultReader(B))return;var b=this._pendingRead;if(this._pendingRead=@undefined,b&&@isPromise(b)){var i=this.@sink.flush();if(i\?.byteLength)this._pendingRead=@getByIdDirectPrivate(c,\"readRequests\")\?.shift(),@fulfillPromise(b,{value:i,done:!1});else this._pendingRead=b}else if(@getByIdDirectPrivate(c,\"readRequests\")\?.isNotEmpty()){var i=this.@sink.flush();if(i\?.byteLength)@readableStreamFulfillReadRequest(c,i,!1)}else if(this._deferFlush===-1)this._deferFlush=1})\n"; +const char* const s_readableStreamInternalsOnFlushDirectStreamCode = "(function (){\"use strict\";var c=this.@controlledReadableStream,b=@getByIdDirectPrivate(c,\"reader\");if(!b||!@isReadableStreamDefaultReader(b))return;var i=this._pendingRead;if(this._pendingRead=@undefined,i&&@isPromise(i)){var B=this.@sink.flush();if(B\?.byteLength)this._pendingRead=@getByIdDirectPrivate(c,\"readRequests\")\?.shift(),@fulfillPromise(i,{value:B,done:!1});else this._pendingRead=i}else if(@getByIdDirectPrivate(c,\"readRequests\")\?.isNotEmpty()){var B=this.@sink.flush();if(B\?.byteLength)@readableStreamFulfillReadRequest(c,B,!1)}else if(this._deferFlush===-1)this._deferFlush=1})\n"; // createTextStream const JSC::ConstructAbility s_readableStreamInternalsCreateTextStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1644,7 +1644,7 @@ const JSC::ConstructorKind s_readableStreamInternalsCreateTextStreamCodeConstruc const JSC::ImplementationVisibility s_readableStreamInternalsCreateTextStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsCreateTextStreamCodeLength = 984; static const JSC::Intrinsic s_readableStreamInternalsCreateTextStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsCreateTextStreamCode = "(function (j){\"use strict\";var x,w=[],z=!1,_=!1,A=\"\",q=@toLength(0),C=@newPromiseCapability(@Promise),E=!1;return x={start(){},write(v){if(typeof v===\"string\"){var F=@toLength(v.length);if(F>0)A+=v,z=!0,q+=F;return F}if(!v||!(@ArrayBuffer.@isView(v)||v instanceof @ArrayBuffer))@throwTypeError(\"Expected text, ArrayBuffer or ArrayBufferView\");const G=@toLength(v.byteLength);if(G>0)if(_=!0,A.length>0)@arrayPush(w,A,v),A=\"\";else @arrayPush(w,v);return q+=G,G},flush(){return 0},end(){if(E)return\"\";return x.fulfill()},fulfill(){E=!0;const v=x.finishInternal();return @fulfillPromise(C.@promise,v),v},finishInternal(){if(!z&&!_)return\"\";if(z&&!_)return A;if(_&&!z)return new globalThis.TextDecoder().decode(@Bun.concatArrayBuffers(w));var v=new @Bun.ArrayBufferSink;v.start({highWaterMark:q,asUint8Array:!0});for(let F of w)v.write(F);if(w.length=0,A.length>0)v.write(A),A=\"\";return new globalThis.TextDecoder().decode(v.end())},close(){try{if(!E)E=!0,x.fulfill()}catch(v){}}},[x,C]})\n"; +const char* const s_readableStreamInternalsCreateTextStreamCode = "(function (_){\"use strict\";var j,q=[],x=!1,v=!1,z=\"\",C=@toLength(0),E=@newPromiseCapability(@Promise),F=!1;return j={start(){},write(G){if(typeof G===\"string\"){var A=@toLength(G.length);if(A>0)z+=G,x=!0,C+=A;return A}if(!G||!(@ArrayBuffer.@isView(G)||G instanceof @ArrayBuffer))@throwTypeError(\"Expected text, ArrayBuffer or ArrayBufferView\");const w=@toLength(G.byteLength);if(w>0)if(v=!0,z.length>0)@arrayPush(q,z,G),z=\"\";else @arrayPush(q,G);return C+=w,w},flush(){return 0},end(){if(F)return\"\";return j.fulfill()},fulfill(){F=!0;const G=j.finishInternal();return @fulfillPromise(E.@promise,G),G},finishInternal(){if(!x&&!v)return\"\";if(x&&!v)return z;if(v&&!x)return new globalThis.TextDecoder().decode(@Bun.concatArrayBuffers(q));var G=new @Bun.ArrayBufferSink;G.start({highWaterMark:C,asUint8Array:!0});for(let A of q)G.write(A);if(q.length=0,z.length>0)G.write(z),z=\"\";return new globalThis.TextDecoder().decode(G.end())},close(){try{if(!F)F=!0,j.fulfill()}catch(G){}}},[j,E]})\n"; // initializeTextStream const JSC::ConstructAbility s_readableStreamInternalsInitializeTextStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1652,7 +1652,7 @@ const JSC::ConstructorKind s_readableStreamInternalsInitializeTextStreamCodeCons const JSC::ImplementationVisibility s_readableStreamInternalsInitializeTextStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsInitializeTextStreamCodeLength = 578; static const JSC::Intrinsic s_readableStreamInternalsInitializeTextStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsInitializeTextStreamCode = "(function (_,m){\"use strict\";var[p,b]=@createTextStream(m),f={@underlyingSource:_,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:p,close:@onCloseDirectStream,write:p.write,error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};return @putByIdDirectPrivate(this,\"readableStreamController\",f),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined),b})\n"; +const char* const s_readableStreamInternalsInitializeTextStreamCode = "(function (_,m){\"use strict\";var[b,f]=@createTextStream(m),p={@underlyingSource:_,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:b,close:@onCloseDirectStream,write:b.write,error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};return @putByIdDirectPrivate(this,\"readableStreamController\",p),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined),f})\n"; // initializeArrayStream const JSC::ConstructAbility s_readableStreamInternalsInitializeArrayStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1660,7 +1660,7 @@ const JSC::ConstructorKind s_readableStreamInternalsInitializeArrayStreamCodeCon const JSC::ImplementationVisibility s_readableStreamInternalsInitializeArrayStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsInitializeArrayStreamCodeLength = 797; static const JSC::Intrinsic s_readableStreamInternalsInitializeArrayStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsInitializeArrayStreamCode = "(function (_,b){\"use strict\";var j=[],t=@newPromiseCapability(@Promise),p=!1;function d(){return p=!0,t.@resolve.@call(@undefined,j),j}var m={start(){},write(v){return @arrayPush(j,v),v.byteLength||v.length},flush(){return 0},end(){if(p)return[];return d()},close(){if(!p)d()}},q={@underlyingSource:_,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:m,close:@onCloseDirectStream,write:m.write,error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};return @putByIdDirectPrivate(this,\"readableStreamController\",q),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined),t})\n"; +const char* const s_readableStreamInternalsInitializeArrayStreamCode = "(function (p,b){\"use strict\";var d=[],j=@newPromiseCapability(@Promise),_=!1;function m(){return _=!0,j.@resolve.@call(@undefined,d),d}var t={start(){},write(v){return @arrayPush(d,v),v.byteLength||v.length},flush(){return 0},end(){if(_)return[];return m()},close(){if(!_)m()}},q={@underlyingSource:p,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:t,close:@onCloseDirectStream,write:t.write,error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};return @putByIdDirectPrivate(this,\"readableStreamController\",q),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined),j})\n"; // initializeArrayBufferStream const JSC::ConstructAbility s_readableStreamInternalsInitializeArrayBufferStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1756,7 +1756,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamCloseCodeConst const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamCloseCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamCloseCodeLength = 617; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamCloseCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamCloseCode = "(function (_){\"use strict\";if(@assert(@getByIdDirectPrivate(_,\"state\")===@streamReadable),@putByIdDirectPrivate(_,\"state\",@streamClosed),!@getByIdDirectPrivate(_,\"reader\"))return;if(@isReadableStreamDefaultReader(@getByIdDirectPrivate(_,\"reader\"))){const i=@getByIdDirectPrivate(@getByIdDirectPrivate(_,\"reader\"),\"readRequests\");if(i.isNotEmpty()){@putByIdDirectPrivate(@getByIdDirectPrivate(_,\"reader\"),\"readRequests\",@createFIFO());for(var d=i.shift();d;d=i.shift())@fulfillPromise(d,{value:@undefined,done:!0})}}@getByIdDirectPrivate(@getByIdDirectPrivate(_,\"reader\"),\"closedPromiseCapability\").@resolve.@call()})\n"; +const char* const s_readableStreamInternalsReadableStreamCloseCode = "(function (_){\"use strict\";if(@assert(@getByIdDirectPrivate(_,\"state\")===@streamReadable),@putByIdDirectPrivate(_,\"state\",@streamClosed),!@getByIdDirectPrivate(_,\"reader\"))return;if(@isReadableStreamDefaultReader(@getByIdDirectPrivate(_,\"reader\"))){const d=@getByIdDirectPrivate(@getByIdDirectPrivate(_,\"reader\"),\"readRequests\");if(d.isNotEmpty()){@putByIdDirectPrivate(@getByIdDirectPrivate(_,\"reader\"),\"readRequests\",@createFIFO());for(var i=d.shift();i;i=d.shift())@fulfillPromise(i,{value:@undefined,done:!0})}}@getByIdDirectPrivate(@getByIdDirectPrivate(_,\"reader\"),\"closedPromiseCapability\").@resolve.@call()})\n"; // readableStreamFulfillReadRequest const JSC::ConstructAbility s_readableStreamInternalsReadableStreamFulfillReadRequestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1772,7 +1772,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControl const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeLength = 659; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCode = "(function (_,d){\"use strict\";const E=@getByIdDirectPrivate(_,\"controlledReadableStream\");if(@assert(@readableStreamDefaultControllerCanCloseOrEnqueue(_)),@isReadableStreamLocked(E)&&@getByIdDirectPrivate(@getByIdDirectPrivate(E,\"reader\"),\"readRequests\")\?.isNotEmpty()){@readableStreamFulfillReadRequest(E,d,!1),@readableStreamDefaultControllerCallPullIfNeeded(_);return}try{let D=1;if(@getByIdDirectPrivate(_,\"strategy\").size!==@undefined)D=@getByIdDirectPrivate(_,\"strategy\").size(d);@enqueueValueWithSize(@getByIdDirectPrivate(_,\"queue\"),d,D)}catch(D){throw @readableStreamDefaultControllerError(_,D),D}@readableStreamDefaultControllerCallPullIfNeeded(_)})\n"; +const char* const s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCode = "(function (_,d){\"use strict\";const D=@getByIdDirectPrivate(_,\"controlledReadableStream\");if(@assert(@readableStreamDefaultControllerCanCloseOrEnqueue(_)),@isReadableStreamLocked(D)&&@getByIdDirectPrivate(@getByIdDirectPrivate(D,\"reader\"),\"readRequests\")\?.isNotEmpty()){@readableStreamFulfillReadRequest(D,d,!1),@readableStreamDefaultControllerCallPullIfNeeded(_);return}try{let E=1;if(@getByIdDirectPrivate(_,\"strategy\").size!==@undefined)E=@getByIdDirectPrivate(_,\"strategy\").size(d);@enqueueValueWithSize(@getByIdDirectPrivate(_,\"queue\"),d,E)}catch(E){throw @readableStreamDefaultControllerError(_,E),E}@readableStreamDefaultControllerCallPullIfNeeded(_)})\n"; // readableStreamDefaultReaderRead const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultReaderReadCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1780,7 +1780,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultReaderR const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultReaderReadCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamDefaultReaderReadCodeLength = 491; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultReaderReadCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamDefaultReaderReadCode = "(function (i){\"use strict\";const n=@getByIdDirectPrivate(i,\"ownerReadableStream\");@assert(!!n);const y=@getByIdDirectPrivate(n,\"state\");if(@putByIdDirectPrivate(n,\"disturbed\",!0),y===@streamClosed)return @createFulfilledPromise({value:@undefined,done:!0});if(y===@streamErrored)return @Promise.@reject(@getByIdDirectPrivate(n,\"storedError\"));return @assert(y===@streamReadable),@getByIdDirectPrivate(n,\"readableStreamController\").@pull(@getByIdDirectPrivate(n,\"readableStreamController\"))})\n"; +const char* const s_readableStreamInternalsReadableStreamDefaultReaderReadCode = "(function (i){\"use strict\";const y=@getByIdDirectPrivate(i,\"ownerReadableStream\");@assert(!!y);const n=@getByIdDirectPrivate(y,\"state\");if(@putByIdDirectPrivate(y,\"disturbed\",!0),n===@streamClosed)return @createFulfilledPromise({value:@undefined,done:!0});if(n===@streamErrored)return @Promise.@reject(@getByIdDirectPrivate(y,\"storedError\"));return @assert(n===@streamReadable),@getByIdDirectPrivate(y,\"readableStreamController\").@pull(@getByIdDirectPrivate(y,\"readableStreamController\"))})\n"; // readableStreamAddReadRequest const JSC::ConstructAbility s_readableStreamInternalsReadableStreamAddReadRequestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1820,7 +1820,7 @@ const JSC::ConstructorKind s_readableStreamInternalsLazyLoadStreamCodeConstructo const JSC::ImplementationVisibility s_readableStreamInternalsLazyLoadStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsLazyLoadStreamCodeLength = 1589; static const JSC::Intrinsic s_readableStreamInternalsLazyLoadStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsLazyLoadStreamCode = "(function (Q,G){\"use strict\";var N=@getByIdDirectPrivate(Q,\"bunNativeType\"),H=@getByIdDirectPrivate(Q,\"bunNativePtr\"),I=@lazyStreamPrototypeMap.@get(N);if(I===@undefined){let m=function(D){var{c:p,v:z}=this;this.c=@undefined,this.v=@undefined,X(D,p,z)},M=function(D){try{D.close()}catch(p){globalThis.reportError(p)}},_=function(D,p,z,A){A[0]=!1;var E;try{E=f(D,z,A)}catch(F){return p.error(F)}return X(E,p,z)};var j=m,P=M,q=_,[f,b,J,x,K,O,U]=@lazyLoad(N),W=[!1],X;X=function D(p,z,A){if(p&&@isPromise(p))return p.then(m.bind({c:z,v:A}),(E)=>z.error(E));else if(typeof p===\"number\")if(A&&A.byteLength===p&&A.buffer===z.byobRequest\?.view\?.buffer)z.byobRequest.respondWithNewView(A);else z.byobRequest.respond(p);else if(p.constructor===@Uint8Array)z.enqueue(p);if(W[0]||p===!1)@enqueueJob(M,z),W[0]=!1};const B=K\?new FinalizationRegistry(K):null;I=class D{constructor(p,z,A){if(this.#f=p,this.#b={},this.pull=this.#j.bind(this),this.cancel=this.#m.bind(this),this.autoAllocateChunkSize=z,A!==@undefined)this.start=(E)=>{E.enqueue(A)};if(B)B.register(this,p,this.#b)}#b;pull;cancel;start;#f;type=\"bytes\";autoAllocateChunkSize=0;static startSync=b;#j(p){var z=this.#f;if(!z){p.close();return}_(z,p,p.byobRequest.view,W)}#m(p){var z=this.#f;B&&B.unregister(this.#b),O&&O(z,!1),J(z,p)}static deinit=K;static drain=U},@lazyStreamPrototypeMap.@set(N,I)}const Y=I.startSync(H,G);var Z;const{drain:y,deinit:L}=I;if(y)Z=y(H);if(Y===0){if(K&&H&&@enqueueJob(K,H),(Z\?.byteLength\?\?0)>0)return{start(m){m.enqueue(Z),m.close()},type:\"bytes\"};return{start(m){m.close()},type:\"bytes\"}}return new I(H,Y,Z)})\n"; +const char* const s_readableStreamInternalsLazyLoadStreamCode = "(function (N,J){\"use strict\";var M=@getByIdDirectPrivate(N,\"bunNativeType\"),K=@getByIdDirectPrivate(N,\"bunNativePtr\"),L=@lazyStreamPrototypeMap.@get(M);if(L===@undefined){let q=function(x){var{c:H,v:z}=this;this.c=@undefined,this.v=@undefined,j(x,H,z)},G=function(x){try{x.close()}catch(H){globalThis.reportError(H)}},_=function(x,H,z,A){A[0]=!1;var y;try{y=b(x,z,A)}catch(I){return H.error(I)}return j(y,H,z)};var Y=q,Z=G,F=_,[b,B,O,P,f,D,Q]=@lazyLoad(M),U=[!1],j;j=function x(H,z,A){if(H&&@isPromise(H))return H.then(q.bind({c:z,v:A}),(y)=>z.error(y));else if(typeof H===\"number\")if(A&&A.byteLength===H&&A.buffer===z.byobRequest\?.view\?.buffer)z.byobRequest.respondWithNewView(A);else z.byobRequest.respond(H);else if(H.constructor===@Uint8Array)z.enqueue(H);if(U[0]||H===!1)@enqueueJob(G,z),U[0]=!1};const p=f\?new FinalizationRegistry(f):null;L=class x{constructor(H,z,A){if(this.#f=H,this.#b={},this.pull=this.#j.bind(this),this.cancel=this.#m.bind(this),this.autoAllocateChunkSize=z,A!==@undefined)this.start=(y)=>{y.enqueue(A)};if(p)p.register(this,H,this.#b)}#b;pull;cancel;start;#f;type=\"bytes\";autoAllocateChunkSize=0;static startSync=B;#j(H){var z=this.#f;if(!z){H.close();return}_(z,H,H.byobRequest.view,U)}#m(H){var z=this.#f;p&&p.unregister(this.#b),D&&D(z,!1),O(z,H)}static deinit=f;static drain=Q},@lazyStreamPrototypeMap.@set(M,L)}const E=L.startSync(K,J);var W;const{drain:X,deinit:m}=L;if(X)W=X(K);if(E===0){if(f&&K&&@enqueueJob(f,K),(W\?.byteLength\?\?0)>0)return{start(q){q.enqueue(W),q.close()},type:\"bytes\"};return{start(q){q.close()},type:\"bytes\"}}return new L(K,E,W)})\n"; // readableStreamIntoArray const JSC::ConstructAbility s_readableStreamInternalsReadableStreamIntoArrayCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1828,7 +1828,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamIntoArrayCodeC const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamIntoArrayCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamIntoArrayCodeLength = 247; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamIntoArrayCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamIntoArrayCode = "(function (f){\"use strict\";var p=f.getReader(),g=p.readMany();async function b(_){if(_.done)return[];var j=_.value||[];while(!0){var q=await p.read();if(q.done)break;j=j.concat(q.value)}return j}if(g&&@isPromise(g))return g.@then(b);return b(g)})\n"; +const char* const s_readableStreamInternalsReadableStreamIntoArrayCode = "(function (_){\"use strict\";var b=_.getReader(),g=b.readMany();async function j(q){if(q.done)return[];var f=q.value||[];while(!0){var p=await b.read();if(p.done)break;f=f.concat(p.value)}return f}if(g&&@isPromise(g))return g.@then(j);return j(g)})\n"; // readableStreamIntoText const JSC::ConstructAbility s_readableStreamInternalsReadableStreamIntoTextCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1844,7 +1844,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamToArrayBufferD const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeLength = 727; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamToArrayBufferDirectCode = "(function (j,w){\"use strict\";var _=new @Bun.ArrayBufferSink;@putByIdDirectPrivate(j,\"underlyingSource\",@undefined);var x=@getByIdDirectPrivate(j,\"highWaterMark\");_.start(x\?{highWaterMark:x}:{});var O=@newPromiseCapability(@Promise),z=!1,q=w.pull,A=w.close,B={start(){},close(C){if(!z){if(z=!0,A)A();@fulfillPromise(O.@promise,_.end())}},end(){if(!z){if(z=!0,A)A();@fulfillPromise(O.@promise,_.end())}},flush(){return 0},write:_.write.bind(_)},v=!1;try{const C=q(B);if(C&&@isObject(C)&&@isPromise(C))return async function(D,F,G){while(!z)await G(D);return await F}(B,promise,q);return O.@promise}catch(C){return v=!0,@readableStreamError(j,C),@Promise.@reject(C)}finally{if(!v&&j)@readableStreamClose(j);B=A=_=q=j=@undefined}})\n"; +const char* const s_readableStreamInternalsReadableStreamToArrayBufferDirectCode = "(function (O,_){\"use strict\";var q=new @Bun.ArrayBufferSink;@putByIdDirectPrivate(O,\"underlyingSource\",@undefined);var x=@getByIdDirectPrivate(O,\"highWaterMark\");q.start(x\?{highWaterMark:x}:{});var v=@newPromiseCapability(@Promise),A=!1,z=_.pull,B=_.close,C={start(){},close(F){if(!A){if(A=!0,B)B();@fulfillPromise(v.@promise,q.end())}},end(){if(!A){if(A=!0,B)B();@fulfillPromise(v.@promise,q.end())}},flush(){return 0},write:q.write.bind(q)},D=!1;try{const F=z(C);if(F&&@isObject(F)&&@isPromise(F))return async function(G,j,w){while(!A)await w(G);return await j}(C,promise,z);return v.@promise}catch(F){return D=!0,@readableStreamError(O,F),@Promise.@reject(F)}finally{if(!D&&O)@readableStreamClose(O);C=B=q=z=O=@undefined}})\n"; // readableStreamToTextDirect const JSC::ConstructAbility s_readableStreamInternalsReadableStreamToTextDirectCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1852,7 +1852,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamToTextDirectCo const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamToTextDirectCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamToTextDirectCodeLength = 278; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamToTextDirectCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamToTextDirectCode = "(async function (_,f){\"use strict\";const h=@initializeTextStream.@call(_,f,@undefined);var j=_.getReader();while(@getByIdDirectPrivate(_,\"state\")===@streamReadable){var k=await j.read();if(k.done)break}try{j.releaseLock()}catch(p){}return j=@undefined,_=@undefined,h.@promise})\n"; +const char* const s_readableStreamInternalsReadableStreamToTextDirectCode = "(async function (f,h){\"use strict\";const j=@initializeTextStream.@call(f,h,@undefined);var k=f.getReader();while(@getByIdDirectPrivate(f,\"state\")===@streamReadable){var p=await k.read();if(p.done)break}try{k.releaseLock()}catch(_){}return k=@undefined,f=@undefined,j.@promise})\n"; // readableStreamToArrayDirect const JSC::ConstructAbility s_readableStreamInternalsReadableStreamToArrayDirectCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1860,7 +1860,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamToArrayDirectC const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamToArrayDirectCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamToArrayDirectCodeLength = 354; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamToArrayDirectCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamToArrayDirectCode = "(async function (_,j){\"use strict\";const k=@initializeArrayStream.@call(_,j,@undefined);j=@undefined;var p=_.getReader();try{while(@getByIdDirectPrivate(_,\"state\")===@streamReadable){var q=await p.read();if(q.done)break}try{p.releaseLock()}catch(f){}return p=@undefined,@Promise.@resolve(k.@promise)}catch(f){throw f}finally{_=@undefined,p=@undefined}})\n"; +const char* const s_readableStreamInternalsReadableStreamToArrayDirectCode = "(async function (_,p){\"use strict\";const j=@initializeArrayStream.@call(_,p,@undefined);p=@undefined;var q=_.getReader();try{while(@getByIdDirectPrivate(_,\"state\")===@streamReadable){var k=await q.read();if(k.done)break}try{q.releaseLock()}catch(f){}return q=@undefined,@Promise.@resolve(j.@promise)}catch(f){throw f}finally{_=@undefined,q=@undefined}})\n"; // readableStreamDefineLazyIterators const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1868,7 +1868,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefineLazyIter const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeLength = 516; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamDefineLazyIteratorsCode = "(function (k){\"use strict\";var z=globalThis.Symbol.asyncIterator,D=async function*B(G,x){var i=G.getReader(),w;try{while(!0){var q,h;const j=i.readMany();if(@isPromise(j))({done:q,value:h}=await j);else({done:q,value:h}=j);if(q)return;yield*h}}catch(j){w=j}finally{if(i.releaseLock(),!x)G.cancel(w);if(w)throw w}},F=function B(){return D(this,!1)},g=function B({preventCancel:G=!1}={preventCancel:!1}){return D(this,G)};return @Object.@defineProperty(k,z,{value:F}),@Object.@defineProperty(k,\"values\",{value:g}),k})\n"; +const char* const s_readableStreamInternalsReadableStreamDefineLazyIteratorsCode = "(function (k){\"use strict\";var g=globalThis.Symbol.asyncIterator,i=async function*D(q,F){var w=q.getReader(),G;try{while(!0){var x,h;const z=w.readMany();if(@isPromise(z))({done:x,value:h}=await z);else({done:x,value:h}=z);if(x)return;yield*h}}catch(z){G=z}finally{if(w.releaseLock(),!F)q.cancel(G);if(G)throw G}},B=function D(){return i(this,!1)},j=function D({preventCancel:q=!1}={preventCancel:!1}){return i(this,q)};return @Object.@defineProperty(k,g,{value:B}),@Object.@defineProperty(k,\"values\",{value:j}),k})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ @@ -1894,7 +1894,7 @@ const JSC::ConstructorKind s_transformStreamDefaultControllerDesiredSizeCodeCons const JSC::ImplementationVisibility s_transformStreamDefaultControllerDesiredSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamDefaultControllerDesiredSizeCodeLength = 339; static const JSC::Intrinsic s_transformStreamDefaultControllerDesiredSizeCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamDefaultControllerDesiredSizeCode = "(function (){\"use strict\";if(!@isTransformStreamDefaultController(this))throw @makeThisTypeError(\"TransformStreamDefaultController\",\"enqueue\");const _=@getByIdDirectPrivate(this,\"stream\"),i=@getByIdDirectPrivate(_,\"readable\"),u=@getByIdDirectPrivate(i,\"readableStreamController\");return @readableStreamDefaultControllerGetDesiredSize(u)})\n"; +const char* const s_transformStreamDefaultControllerDesiredSizeCode = "(function (){\"use strict\";if(!@isTransformStreamDefaultController(this))throw @makeThisTypeError(\"TransformStreamDefaultController\",\"enqueue\");const _=@getByIdDirectPrivate(this,\"stream\"),u=@getByIdDirectPrivate(_,\"readable\"),i=@getByIdDirectPrivate(u,\"readableStreamController\");return @readableStreamDefaultControllerGetDesiredSize(i)})\n"; // enqueue const JSC::ConstructAbility s_transformStreamDefaultControllerEnqueueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1986,7 +1986,7 @@ const JSC::ConstructorKind s_jsBufferConstructorFromCodeConstructorKind = JSC::C const JSC::ImplementationVisibility s_jsBufferConstructorFromCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferConstructorFromCodeLength = 1107; static const JSC::Intrinsic s_jsBufferConstructorFromCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferConstructorFromCode = "(function (n){\"use strict\";if(@isUndefinedOrNull(n))@throwTypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object.\");if(typeof n===\"string\"||typeof n===\"object\"&&(@isTypedArrayView(n)||n instanceof @ArrayBuffer||n instanceof SharedArrayBuffer||n instanceof String))switch(@argumentCount()){case 1:return new @Buffer(n);case 2:return new @Buffer(n,@argument(1));default:return new @Buffer(n,@argument(1),@argument(2))}var f=@toObject(n,\"The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object.\");if(!@isJSArray(f)){const d=@tryGetByIdWithWellKnownSymbol(n,\"toPrimitive\");if(d){const u=d.@call(n,\"string\");if(typeof u===\"string\")switch(@argumentCount()){case 1:return new @Buffer(u);case 2:return new @Buffer(u,@argument(1));default:return new @Buffer(u,@argument(1),@argument(2))}}if(!(\"length\"in f)||@isCallable(f))@throwTypeError(\"The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object.\")}return new @Buffer(@Uint8Array.from(f).buffer)})\n"; +const char* const s_jsBufferConstructorFromCode = "(function (n){\"use strict\";if(@isUndefinedOrNull(n))@throwTypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object.\");if(typeof n===\"string\"||typeof n===\"object\"&&(@isTypedArrayView(n)||n instanceof @ArrayBuffer||n instanceof SharedArrayBuffer||n instanceof String))switch(@argumentCount()){case 1:return new @Buffer(n);case 2:return new @Buffer(n,@argument(1));default:return new @Buffer(n,@argument(1),@argument(2))}var d=@toObject(n,\"The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object.\");if(!@isJSArray(d)){const f=@tryGetByIdWithWellKnownSymbol(n,\"toPrimitive\");if(f){const u=f.@call(n,\"string\");if(typeof u===\"string\")switch(@argumentCount()){case 1:return new @Buffer(u);case 2:return new @Buffer(u,@argument(1));default:return new @Buffer(u,@argument(1),@argument(2))}}if(!(\"length\"in d)||@isCallable(d))@throwTypeError(\"The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object.\")}return new @Buffer(@Uint8Array.from(d).buffer)})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ @@ -2020,7 +2020,7 @@ const JSC::ConstructorKind s_readableStreamDefaultReaderReadManyCodeConstructorK const JSC::ImplementationVisibility s_readableStreamDefaultReaderReadManyCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamDefaultReaderReadManyCodeLength = 2598; static const JSC::Intrinsic s_readableStreamDefaultReaderReadManyCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamDefaultReaderReadManyCode = "(function (){\"use strict\";if(!@isReadableStreamDefaultReader(this))@throwTypeError(\"ReadableStreamDefaultReader.readMany() should not be called directly\");const T=@getByIdDirectPrivate(this,\"ownerReadableStream\");if(!T)@throwTypeError(\"readMany() called on a reader owned by no readable stream\");const C=@getByIdDirectPrivate(T,\"state\");if(@putByIdDirectPrivate(T,\"disturbed\",!0),C===@streamClosed)return{value:[],size:0,done:!0};else if(C===@streamErrored)throw @getByIdDirectPrivate(T,\"storedError\");var H=@getByIdDirectPrivate(T,\"readableStreamController\"),E=@getByIdDirectPrivate(H,\"queue\");if(!E)return H.@pull(H).@then(function({done:Q,value:w}){return Q\?{done:!0,value:[],size:0}:{value:[w],size:1,done:!1}});const F=E.content;var B=E.size,_=F.toArray(!1),I=_.length;if(I>0){var k=@newArrayWithSize(I);if(@isReadableByteStreamController(H)){{const Q=_[0];if(!(@ArrayBuffer.@isView(Q)||Q instanceof @ArrayBuffer))@putByValDirect(k,0,new @Uint8Array(Q.buffer,Q.byteOffset,Q.byteLength));else @putByValDirect(k,0,Q)}for(var N=1;N{if(Q.done)return{value:[],size:0,done:!0};var w=@getByIdDirectPrivate(T,\"readableStreamController\"),d=@getByIdDirectPrivate(w,\"queue\"),J=[Q.value].concat(d.content.toArray(!1)),x=J.length;if(@isReadableByteStreamController(w))for(var K=0;K0){var j=@newArrayWithSize(S);if(@isReadableByteStreamController(J)){{const k=I[0];if(!(@ArrayBuffer.@isView(k)||k instanceof @ArrayBuffer))@putByValDirect(j,0,new @Uint8Array(k.buffer,k.byteOffset,k.byteLength));else @putByValDirect(j,0,k)}for(var _=1;_{if(k.done)return{value:[],size:0,done:!0};var K=@getByIdDirectPrivate(Q,\"readableStreamController\"),N=@getByIdDirectPrivate(K,\"queue\"),O=[k.value].concat(N.content.toArray(!1)),x=O.length;if(@isReadableByteStreamController(K))for(var d=0;d0}shift(){var{_head:w,_tail:x,_list:z,_capacityMask:k}=this;if(w===x)return @undefined;var A=z[w];if(@putByValDirect(z,w,@undefined),w=this._head=w+1&k,w<2&&x>1e4&&x<=z.length>>>2)this._shrinkArray();return A}peek(){if(this._head===this._tail)return @undefined;return this._list[this._head]}push(w){var x=this._tail;if(@putByValDirect(this._list,x,w),this._tail=x+1&this._capacityMask,this._tail===this._head)this._growArray()}toArray(w){var x=this._list,z=@toLength(x.length);if(w||this._head>this._tail){var k=@toLength(this._head),A=@toLength(this._tail),B=@toLength(z-k+A),E=@newArrayWithSize(B),v=0;for(var F=k;F>>=1,this._capacityMask>>>=1}}return new g})\n"; +const char* const s_streamInternalsCreateFIFOCode = "(function (){\"use strict\";var b=@Array.prototype.slice;class z{constructor(){this._head=0,this._tail=0,this._capacityMask=3,this._list=@newArrayWithSize(4)}_head;_tail;_capacityMask;_list;size(){if(this._head===this._tail)return 0;if(this._head0}shift(){var{_head:v,_tail:x,_list:k,_capacityMask:w}=this;if(v===x)return @undefined;var A=k[v];if(@putByValDirect(k,v,@undefined),v=this._head=v+1&w,v<2&&x>1e4&&x<=k.length>>>2)this._shrinkArray();return A}peek(){if(this._head===this._tail)return @undefined;return this._list[this._head]}push(v){var x=this._tail;if(@putByValDirect(this._list,x,v),this._tail=x+1&this._capacityMask,this._tail===this._head)this._growArray()}toArray(v){var x=this._list,k=@toLength(x.length);if(v||this._head>this._tail){var w=@toLength(this._head),A=@toLength(this._tail),B=@toLength(k-w+A),E=@newArrayWithSize(B),g=0;for(var F=w;F>>=1,this._capacityMask>>>=1}}return new z})\n"; // newQueue const JSC::ConstructAbility s_streamInternalsNewQueueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2232,7 +2232,7 @@ const JSC::ConstructorKind s_importMetaObjectRequireESMCodeConstructorKind = JSC const JSC::ImplementationVisibility s_importMetaObjectRequireESMCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_importMetaObjectRequireESMCodeLength = 325; static const JSC::Intrinsic s_importMetaObjectRequireESMCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_importMetaObjectRequireESMCode = "(function (a){\"use strict\";var c=@Loader.registry.@get(a);if(!c||!c.evaluated)c=@loadCJS2ESM(a);if(!c||!c.evaluated||!c.module)@throwTypeError(`require() failed to evaluate module \"${a}\". This is an internal consistentency error.`);var _=@Loader.getModuleNamespaceObject(c.module);if(_[@commonJSSymbol]===0)return;return _})\n"; +const char* const s_importMetaObjectRequireESMCode = "(function (a){\"use strict\";var _=@Loader.registry.@get(a);if(!_||!_.evaluated)_=@loadCJS2ESM(a);if(!_||!_.evaluated||!_.module)@throwTypeError(`require() failed to evaluate module \"${a}\". This is an internal consistentency error.`);var c=@Loader.getModuleNamespaceObject(_.module);if(c[@commonJSSymbol]===0)return;return c})\n"; // internalRequire const JSC::ConstructAbility s_importMetaObjectInternalRequireCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2248,7 +2248,7 @@ const JSC::ConstructorKind s_importMetaObjectCreateRequireCacheCodeConstructorKi const JSC::ImplementationVisibility s_importMetaObjectCreateRequireCacheCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_importMetaObjectCreateRequireCacheCodeLength = 854; static const JSC::Intrinsic s_importMetaObjectCreateRequireCacheCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_importMetaObjectCreateRequireCacheCode = "(function (){\"use strict\";var f=new Map,u={};return new Proxy(u,{get(c,L){const h=@requireMap.@get(L);if(h)return h;const g=@Loader.registry.@get(L);if(g\?.evaluated){const _=@Loader.getModuleNamespaceObject(g.module),b=_[@commonJSSymbol]===0||_.default\?.[@commonJSSymbol]\?_.default:_,t=@createCommonJSModule(L,b,!0);return @requireMap.@set(L,t),t}return u[L]},set(c,L,h){return @requireMap.@set(L,h),!0},has(c,L){return @requireMap.@has(L)||@Loader.registry.@has(L)},deleteProperty(c,L){return f.@delete(L),@requireMap.@delete(L),@Loader.registry.@delete(L),!0},ownKeys(c){var L=[...@requireMap.@keys()];const h=[...@Loader.registry.@keys()];for(let g of h)if(!L.includes(g))@arrayPush(L,g);return L},getPrototypeOf(c){return null},getOwnPropertyDescriptor(c,L){if(@requireMap.@has(L)||@Loader.registry.@has(L))return{configurable:!0,enumerable:!0}}})})\n"; +const char* const s_importMetaObjectCreateRequireCacheCode = "(function (){\"use strict\";var _=new Map,f={};return new Proxy(f,{get(h,t){const u=@requireMap.@get(t);if(u)return u;const L=@Loader.registry.@get(t);if(L\?.evaluated){const b=@Loader.getModuleNamespaceObject(L.module),c=b[@commonJSSymbol]===0||b.default\?.[@commonJSSymbol]\?b.default:b,g=@createCommonJSModule(t,c,!0);return @requireMap.@set(t,g),g}return f[t]},set(h,t,u){return @requireMap.@set(t,u),!0},has(h,t){return @requireMap.@has(t)||@Loader.registry.@has(t)},deleteProperty(h,t){return _.@delete(t),@requireMap.@delete(t),@Loader.registry.@delete(t),!0},ownKeys(h){var t=[...@requireMap.@keys()];const u=[...@Loader.registry.@keys()];for(let L of u)if(!t.includes(L))@arrayPush(t,L);return t},getPrototypeOf(h){return null},getOwnPropertyDescriptor(h,t){if(@requireMap.@has(t)||@Loader.registry.@has(t))return{configurable:!0,enumerable:!0}}})})\n"; // require const JSC::ConstructAbility s_importMetaObjectRequireCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2432,7 +2432,7 @@ const JSC::ConstructorKind s_readableStreamInitializeReadableStreamCodeConstruct const JSC::ImplementationVisibility s_readableStreamInitializeReadableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInitializeReadableStreamCodeLength = 2065; static const JSC::Intrinsic s_readableStreamInitializeReadableStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInitializeReadableStreamCode = "(function (f,B){\"use strict\";if(f===@undefined)f={@bunNativeType:0,@bunNativePtr:0,@lazy:!1};if(B===@undefined)B={};if(!@isObject(f))@throwTypeError(\"ReadableStream constructor takes an object as first argument\");if(B!==@undefined&&!@isObject(B))@throwTypeError(\"ReadableStream constructor takes an object as second argument, if any\");@putByIdDirectPrivate(this,\"state\",@streamReadable),@putByIdDirectPrivate(this,\"reader\",@undefined),@putByIdDirectPrivate(this,\"storedError\",@undefined),@putByIdDirectPrivate(this,\"disturbed\",!1),@putByIdDirectPrivate(this,\"readableStreamController\",null),@putByIdDirectPrivate(this,\"bunNativeType\",@getByIdDirectPrivate(f,\"bunNativeType\")\?\?0),@putByIdDirectPrivate(this,\"bunNativePtr\",@getByIdDirectPrivate(f,\"bunNativePtr\")\?\?0);const b=f.type===\"direct\",m=!!f.@lazy,v=b||m;if(@getByIdDirectPrivate(f,\"pull\")!==@undefined&&!v){const I=@getByIdDirectPrivate(B,\"size\"),_=@getByIdDirectPrivate(B,\"highWaterMark\");return @putByIdDirectPrivate(this,\"highWaterMark\",_),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@setupReadableStreamDefaultController(this,f,I,_!==@undefined\?_:1,@getByIdDirectPrivate(f,\"start\"),@getByIdDirectPrivate(f,\"pull\"),@getByIdDirectPrivate(f,\"cancel\")),this}if(b)@putByIdDirectPrivate(this,\"underlyingSource\",f),@putByIdDirectPrivate(this,\"highWaterMark\",@getByIdDirectPrivate(B,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",()=>@createReadableStreamController(this,f,B));else if(v){const I=f.autoAllocateChunkSize;@putByIdDirectPrivate(this,\"highWaterMark\",@undefined),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"highWaterMark\",I||@getByIdDirectPrivate(B,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",()=>{const _=@lazyLoadStream(this,I);if(_)@createReadableStreamController(this,_,B)})}else @putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"highWaterMark\",@getByIdDirectPrivate(B,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",@undefined),@createReadableStreamController(this,f,B);return this})\n"; +const char* const s_readableStreamInitializeReadableStreamCode = "(function (f,m){\"use strict\";if(f===@undefined)f={@bunNativeType:0,@bunNativePtr:0,@lazy:!1};if(m===@undefined)m={};if(!@isObject(f))@throwTypeError(\"ReadableStream constructor takes an object as first argument\");if(m!==@undefined&&!@isObject(m))@throwTypeError(\"ReadableStream constructor takes an object as second argument, if any\");@putByIdDirectPrivate(this,\"state\",@streamReadable),@putByIdDirectPrivate(this,\"reader\",@undefined),@putByIdDirectPrivate(this,\"storedError\",@undefined),@putByIdDirectPrivate(this,\"disturbed\",!1),@putByIdDirectPrivate(this,\"readableStreamController\",null),@putByIdDirectPrivate(this,\"bunNativeType\",@getByIdDirectPrivate(f,\"bunNativeType\")\?\?0),@putByIdDirectPrivate(this,\"bunNativePtr\",@getByIdDirectPrivate(f,\"bunNativePtr\")\?\?0);const v=f.type===\"direct\",B=!!f.@lazy,b=v||B;if(@getByIdDirectPrivate(f,\"pull\")!==@undefined&&!b){const _=@getByIdDirectPrivate(m,\"size\"),I=@getByIdDirectPrivate(m,\"highWaterMark\");return @putByIdDirectPrivate(this,\"highWaterMark\",I),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@setupReadableStreamDefaultController(this,f,_,I!==@undefined\?I:1,@getByIdDirectPrivate(f,\"start\"),@getByIdDirectPrivate(f,\"pull\"),@getByIdDirectPrivate(f,\"cancel\")),this}if(v)@putByIdDirectPrivate(this,\"underlyingSource\",f),@putByIdDirectPrivate(this,\"highWaterMark\",@getByIdDirectPrivate(m,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",()=>@createReadableStreamController(this,f,m));else if(b){const _=f.autoAllocateChunkSize;@putByIdDirectPrivate(this,\"highWaterMark\",@undefined),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"highWaterMark\",_||@getByIdDirectPrivate(m,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",()=>{const I=@lazyLoadStream(this,_);if(I)@createReadableStreamController(this,I,m)})}else @putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"highWaterMark\",@getByIdDirectPrivate(m,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",@undefined),@createReadableStreamController(this,f,m);return this})\n"; // readableStreamToArray const JSC::ConstructAbility s_readableStreamReadableStreamToArrayCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2448,7 +2448,7 @@ const JSC::ConstructorKind s_readableStreamReadableStreamToTextCodeConstructorKi const JSC::ImplementationVisibility s_readableStreamReadableStreamToTextCodeImplementationVisibility = JSC::ImplementationVisibility::Private; const int s_readableStreamReadableStreamToTextCodeLength = 171; static const JSC::Intrinsic s_readableStreamReadableStreamToTextCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamReadableStreamToTextCode = "(function (_){\"use strict\";var p=@getByIdDirectPrivate(_,\"underlyingSource\");if(p!==@undefined)return @readableStreamToTextDirect(_,p);return @readableStreamIntoText(_)})\n"; +const char* const s_readableStreamReadableStreamToTextCode = "(function (p){\"use strict\";var _=@getByIdDirectPrivate(p,\"underlyingSource\");if(_!==@undefined)return @readableStreamToTextDirect(p,_);return @readableStreamIntoText(p)})\n"; // readableStreamToArrayBuffer const JSC::ConstructAbility s_readableStreamReadableStreamToArrayBufferCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2456,7 +2456,7 @@ const JSC::ConstructorKind s_readableStreamReadableStreamToArrayBufferCodeConstr const JSC::ImplementationVisibility s_readableStreamReadableStreamToArrayBufferCodeImplementationVisibility = JSC::ImplementationVisibility::Private; const int s_readableStreamReadableStreamToArrayBufferCodeLength = 270; static const JSC::Intrinsic s_readableStreamReadableStreamToArrayBufferCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamReadableStreamToArrayBufferCode = "(function (_){\"use strict\";var p=@getByIdDirectPrivate(_,\"underlyingSource\");if(p!==@undefined)return @readableStreamToArrayBufferDirect(_,p);var b=@Bun.readableStreamToArray(_);if(@isPromise(b))return b.then(@Bun.concatArrayBuffers);return @Bun.concatArrayBuffers(b)})\n"; +const char* const s_readableStreamReadableStreamToArrayBufferCode = "(function (_){\"use strict\";var b=@getByIdDirectPrivate(_,\"underlyingSource\");if(b!==@undefined)return @readableStreamToArrayBufferDirect(_,b);var p=@Bun.readableStreamToArray(_);if(@isPromise(p))return p.then(@Bun.concatArrayBuffers);return @Bun.concatArrayBuffers(p)})\n"; // readableStreamToJSON const JSC::ConstructAbility s_readableStreamReadableStreamToJSONCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2480,7 +2480,7 @@ const JSC::ConstructorKind s_readableStreamConsumeReadableStreamCodeConstructorK const JSC::ImplementationVisibility s_readableStreamConsumeReadableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Private; const int s_readableStreamConsumeReadableStreamCodeLength = 1603; static const JSC::Intrinsic s_readableStreamConsumeReadableStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamConsumeReadableStreamCode = "(function (q,w,x){\"use strict\";const A=globalThis.Symbol.for(\"Bun.consumeReadableStreamPrototype\");var F=globalThis[A];if(!F)F=globalThis[A]=[];var I=F[w];if(I===@undefined){var[j,J,K,L,G,_]=globalThis[globalThis.Symbol.for(\"Bun.lazy\")](w);I=class H{handleError;handleClosed;processResult;constructor(D,N){this.#_=N,this.#F=D,this.#$=!1,this.handleError=this._handleError.bind(this),this.handleClosed=this._handleClosed.bind(this),this.processResult=this._processResult.bind(this),D.closed.then(this.handleClosed,this.handleError)}_handleClosed(){if(this.#$)return;this.#$=!0;var D=this.#_;this.#_=0,L(D),_(D)}_handleError(D){if(this.#$)return;this.#$=!0;var N=this.#_;this.#_=0,J(N,D),_(N)}#_;#$=!1;#F;_handleReadMany({value:D,done:N,size:k}){if(N){this.handleClosed();return}if(this.#$)return;K(this.#_,D,N,k)}read(){if(!this.#_)return @throwTypeError(\"ReadableStreamSink is already closed\");return this.processResult(this.#F.read())}_processResult(D){if(D&&@isPromise(D)){if(@getPromiseInternalField(D,@promiseFieldFlags)&@promiseStateFulfilled){const k=@getPromiseInternalField(D,@promiseFieldReactionsOrResult);if(k)D=k}}if(D&&@isPromise(D))return D.then(this.processResult,this.handleError),null;if(D.done)return this.handleClosed(),0;else if(D.value)return D.value;else return-1}readMany(){if(!this.#_)return @throwTypeError(\"ReadableStreamSink is already closed\");return this.processResult(this.#F.readMany())}};const B=w+1;if(F.length{@putByIdDirectPrivate(R,\"started\",1),@assert(!@getByIdDirectPrivate(R,\"pulling\")),@assert(!@getByIdDirectPrivate(R,\"pullAgain\")),@readableByteStreamControllerCallPullIfNeeded(R)},(d)=>{if(@getByIdDirectPrivate(_,\"state\")===@streamReadable)@readableByteStreamControllerError(R,d)}),@putByIdDirectPrivate(this,\"cancel\",@readableByteStreamControllerCancel),@putByIdDirectPrivate(this,\"pull\",@readableByteStreamControllerPull),this})\n"; +const char* const s_readableByteStreamInternalsPrivateInitializeReadableByteStreamControllerCode = "(function (v,b,f){\"use strict\";if(!@isReadableStream(v))@throwTypeError(\"ReadableByteStreamController needs a ReadableStream\");if(@getByIdDirectPrivate(v,\"readableStreamController\")!==null)@throwTypeError(\"ReadableStream already has a controller\");@putByIdDirectPrivate(this,\"controlledReadableStream\",v),@putByIdDirectPrivate(this,\"underlyingByteSource\",b),@putByIdDirectPrivate(this,\"pullAgain\",!1),@putByIdDirectPrivate(this,\"pulling\",!1),@readableByteStreamControllerClearPendingPullIntos(this),@putByIdDirectPrivate(this,\"queue\",@newQueue()),@putByIdDirectPrivate(this,\"started\",0),@putByIdDirectPrivate(this,\"closeRequested\",!1);let p=@toNumber(f);if(@isNaN(p)||p<0)@throwRangeError(\"highWaterMark value is negative or not a number\");@putByIdDirectPrivate(this,\"strategyHWM\",p);let d=b.autoAllocateChunkSize;if(d!==@undefined){if(d=@toNumber(d),d<=0||d===@Infinity||d===-@Infinity)@throwRangeError(\"autoAllocateChunkSize value is negative or equal to positive or negative infinity\")}@putByIdDirectPrivate(this,\"autoAllocateChunkSize\",d),@putByIdDirectPrivate(this,\"pendingPullIntos\",@createFIFO());const _=this;return @promiseInvokeOrNoopNoCatch(@getByIdDirectPrivate(_,\"underlyingByteSource\"),\"start\",[_]).@then(()=>{@putByIdDirectPrivate(_,\"started\",1),@assert(!@getByIdDirectPrivate(_,\"pulling\")),@assert(!@getByIdDirectPrivate(_,\"pullAgain\")),@readableByteStreamControllerCallPullIfNeeded(_)},(R)=>{if(@getByIdDirectPrivate(v,\"state\")===@streamReadable)@readableByteStreamControllerError(_,R)}),@putByIdDirectPrivate(this,\"cancel\",@readableByteStreamControllerCancel),@putByIdDirectPrivate(this,\"pull\",@readableByteStreamControllerPull),this})\n"; // readableStreamByteStreamControllerStart const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamByteStreamControllerStartCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2676,7 +2676,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeLength = 248; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerCancelCode = "(function (a,p){\"use strict\";var u=@getByIdDirectPrivate(a,\"pendingPullIntos\"),_=u.peek();if(_)_.bytesFilled=0;return @putByIdDirectPrivate(a,\"queue\",@newQueue()),@promiseInvokeOrNoop(@getByIdDirectPrivate(a,\"underlyingByteSource\"),\"cancel\",[p])})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerCancelCode = "(function (a,u){\"use strict\";var p=@getByIdDirectPrivate(a,\"pendingPullIntos\"),_=p.peek();if(_)_.bytesFilled=0;return @putByIdDirectPrivate(a,\"queue\",@newQueue()),@promiseInvokeOrNoop(@getByIdDirectPrivate(a,\"underlyingByteSource\"),\"cancel\",[u])})\n"; // readableByteStreamControllerError const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2740,7 +2740,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerPullCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerPullCodeLength = 1005; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerPullCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerPullCode = "(function (_){\"use strict\";const P=@getByIdDirectPrivate(_,\"controlledReadableStream\");if(@assert(@readableStreamHasDefaultReader(P)),@getByIdDirectPrivate(_,\"queue\").content\?.isNotEmpty()){const R=@getByIdDirectPrivate(_,\"queue\").content.shift();@getByIdDirectPrivate(_,\"queue\").size-=R.byteLength,@readableByteStreamControllerHandleQueueDrain(_);let h;try{h=new @Uint8Array(R.buffer,R.byteOffset,R.byteLength)}catch(F){return @Promise.@reject(F)}return @createFulfilledPromise({value:h,done:!1})}if(@getByIdDirectPrivate(_,\"autoAllocateChunkSize\")!==@undefined){let R;try{R=@createUninitializedArrayBuffer(@getByIdDirectPrivate(_,\"autoAllocateChunkSize\"))}catch(F){return @Promise.@reject(F)}const h={buffer:R,byteOffset:0,byteLength:@getByIdDirectPrivate(_,\"autoAllocateChunkSize\"),bytesFilled:0,elementSize:1,ctor:@Uint8Array,readerType:\"default\"};@getByIdDirectPrivate(_,\"pendingPullIntos\").push(h)}const d=@readableStreamAddReadRequest(P);return @readableByteStreamControllerCallPullIfNeeded(_),d})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerPullCode = "(function (_){\"use strict\";const d=@getByIdDirectPrivate(_,\"controlledReadableStream\");if(@assert(@readableStreamHasDefaultReader(d)),@getByIdDirectPrivate(_,\"queue\").content\?.isNotEmpty()){const R=@getByIdDirectPrivate(_,\"queue\").content.shift();@getByIdDirectPrivate(_,\"queue\").size-=R.byteLength,@readableByteStreamControllerHandleQueueDrain(_);let F;try{F=new @Uint8Array(R.buffer,R.byteOffset,R.byteLength)}catch(P){return @Promise.@reject(P)}return @createFulfilledPromise({value:F,done:!1})}if(@getByIdDirectPrivate(_,\"autoAllocateChunkSize\")!==@undefined){let R;try{R=@createUninitializedArrayBuffer(@getByIdDirectPrivate(_,\"autoAllocateChunkSize\"))}catch(P){return @Promise.@reject(P)}const F={buffer:R,byteOffset:0,byteLength:@getByIdDirectPrivate(_,\"autoAllocateChunkSize\"),bytesFilled:0,elementSize:1,ctor:@Uint8Array,readerType:\"default\"};@getByIdDirectPrivate(_,\"pendingPullIntos\").push(F)}const h=@readableStreamAddReadRequest(d);return @readableByteStreamControllerCallPullIfNeeded(_),h})\n"; // readableByteStreamControllerShouldCallPull const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerShouldCallPullCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2780,7 +2780,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCodeLength = 1076; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCode = "(function (i,d){\"use strict\";const f=@getByIdDirectPrivate(i,\"controlledReadableStream\");switch(@assert(!@getByIdDirectPrivate(i,\"closeRequested\")),@assert(@getByIdDirectPrivate(f,\"state\")===@streamReadable),@getByIdDirectPrivate(f,\"reader\")\?@readableStreamReaderKind(@getByIdDirectPrivate(f,\"reader\")):0){case 1:{if(!@getByIdDirectPrivate(@getByIdDirectPrivate(f,\"reader\"),\"readRequests\")\?.isNotEmpty())@readableByteStreamControllerEnqueueChunk(i,@transferBufferToCurrentRealm(d.buffer),d.byteOffset,d.byteLength);else{@assert(!@getByIdDirectPrivate(i,\"queue\").content.size());const _=d.constructor===@Uint8Array\?d:new @Uint8Array(d.buffer,d.byteOffset,d.byteLength);@readableStreamFulfillReadRequest(f,_,!1)}break}case 2:{@readableByteStreamControllerEnqueueChunk(i,@transferBufferToCurrentRealm(d.buffer),d.byteOffset,d.byteLength),@readableByteStreamControllerProcessPullDescriptors(i);break}case 3:break;default:{@assert(!@isReadableStreamLocked(f)),@readableByteStreamControllerEnqueueChunk(i,@transferBufferToCurrentRealm(d.buffer),d.byteOffset,d.byteLength);break}}})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCode = "(function (i,f){\"use strict\";const d=@getByIdDirectPrivate(i,\"controlledReadableStream\");switch(@assert(!@getByIdDirectPrivate(i,\"closeRequested\")),@assert(@getByIdDirectPrivate(d,\"state\")===@streamReadable),@getByIdDirectPrivate(d,\"reader\")\?@readableStreamReaderKind(@getByIdDirectPrivate(d,\"reader\")):0){case 1:{if(!@getByIdDirectPrivate(@getByIdDirectPrivate(d,\"reader\"),\"readRequests\")\?.isNotEmpty())@readableByteStreamControllerEnqueueChunk(i,@transferBufferToCurrentRealm(f.buffer),f.byteOffset,f.byteLength);else{@assert(!@getByIdDirectPrivate(i,\"queue\").content.size());const _=f.constructor===@Uint8Array\?f:new @Uint8Array(f.buffer,f.byteOffset,f.byteLength);@readableStreamFulfillReadRequest(d,_,!1)}break}case 2:{@readableByteStreamControllerEnqueueChunk(i,@transferBufferToCurrentRealm(f.buffer),f.byteOffset,f.byteLength),@readableByteStreamControllerProcessPullDescriptors(i);break}case 3:break;default:{@assert(!@isReadableStreamLocked(d)),@readableByteStreamControllerEnqueueChunk(i,@transferBufferToCurrentRealm(f.buffer),f.byteOffset,f.byteLength);break}}})\n"; // readableByteStreamControllerEnqueueChunk const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2796,7 +2796,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCodeLength = 417; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCode = "(function (u,a){\"use strict\";@assert(@getByIdDirectPrivate(u,\"pendingPullIntos\").isNotEmpty());let d=@getByIdDirectPrivate(u,\"pendingPullIntos\").peek();if(d.byteOffset+d.bytesFilled!==a.byteOffset)@throwRangeError(\"Invalid value for view.byteOffset\");if(d.byteLength!==a.byteLength)@throwRangeError(\"Invalid value for view.byteLength\");d.buffer=a.buffer,@readableByteStreamControllerRespondInternal(u,a.byteLength)})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCode = "(function (u,d){\"use strict\";@assert(@getByIdDirectPrivate(u,\"pendingPullIntos\").isNotEmpty());let a=@getByIdDirectPrivate(u,\"pendingPullIntos\").peek();if(a.byteOffset+a.bytesFilled!==d.byteOffset)@throwRangeError(\"Invalid value for view.byteOffset\");if(a.byteLength!==d.byteLength)@throwRangeError(\"Invalid value for view.byteLength\");a.buffer=d.buffer,@readableByteStreamControllerRespondInternal(u,d.byteLength)})\n"; // readableByteStreamControllerRespond const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2812,7 +2812,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCodeLength = 464; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCode = "(function (d,u){\"use strict\";let k=@getByIdDirectPrivate(d,\"pendingPullIntos\").peek(),_=@getByIdDirectPrivate(d,\"controlledReadableStream\");if(@getByIdDirectPrivate(_,\"state\")===@streamClosed){if(u!==0)@throwTypeError(\"bytesWritten is different from 0 even though stream is closed\");@readableByteStreamControllerRespondInClosedState(d,k)}else @assert(@getByIdDirectPrivate(_,\"state\")===@streamReadable),@readableByteStreamControllerRespondInReadableState(d,u,k)})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCode = "(function (d,u){\"use strict\";let _=@getByIdDirectPrivate(d,\"pendingPullIntos\").peek(),k=@getByIdDirectPrivate(d,\"controlledReadableStream\");if(@getByIdDirectPrivate(k,\"state\")===@streamClosed){if(u!==0)@throwTypeError(\"bytesWritten is different from 0 even though stream is closed\");@readableByteStreamControllerRespondInClosedState(d,_)}else @assert(@getByIdDirectPrivate(k,\"state\")===@streamReadable),@readableByteStreamControllerRespondInReadableState(d,u,_)})\n"; // readableByteStreamControllerRespondInReadableState const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2820,7 +2820,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCodeLength = 799; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCode = "(function (w,R,_){\"use strict\";if(_.bytesFilled+R>_.byteLength)@throwRangeError(\"bytesWritten value is too great\");if(@assert(@getByIdDirectPrivate(w,\"pendingPullIntos\").isEmpty()||@getByIdDirectPrivate(w,\"pendingPullIntos\").peek()===_),@readableByteStreamControllerInvalidateBYOBRequest(w),_.bytesFilled+=R,_.bytesFilled<_.elementSize)return;@readableByteStreamControllerShiftPendingDescriptor(w);const g=_.bytesFilled%_.elementSize;if(g>0){const h=_.byteOffset+_.bytesFilled,f=@cloneArrayBuffer(_.buffer,h-g,g);@readableByteStreamControllerEnqueueChunk(w,f,0,f.byteLength)}_.buffer=@transferBufferToCurrentRealm(_.buffer),_.bytesFilled-=g,@readableByteStreamControllerCommitDescriptor(@getByIdDirectPrivate(w,\"controlledReadableStream\"),_),@readableByteStreamControllerProcessPullDescriptors(w)})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCode = "(function (w,h,g){\"use strict\";if(g.bytesFilled+h>g.byteLength)@throwRangeError(\"bytesWritten value is too great\");if(@assert(@getByIdDirectPrivate(w,\"pendingPullIntos\").isEmpty()||@getByIdDirectPrivate(w,\"pendingPullIntos\").peek()===g),@readableByteStreamControllerInvalidateBYOBRequest(w),g.bytesFilled+=h,g.bytesFilled0){const _=g.byteOffset+g.bytesFilled,f=@cloneArrayBuffer(g.buffer,_-R,R);@readableByteStreamControllerEnqueueChunk(w,f,0,f.byteLength)}g.buffer=@transferBufferToCurrentRealm(g.buffer),g.bytesFilled-=R,@readableByteStreamControllerCommitDescriptor(@getByIdDirectPrivate(w,\"controlledReadableStream\"),g),@readableByteStreamControllerProcessPullDescriptors(w)})\n"; // readableByteStreamControllerRespondInClosedState const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2828,7 +2828,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCodeLength = 502; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCode = "(function (a,_){\"use strict\";if(_.buffer=@transferBufferToCurrentRealm(_.buffer),@assert(_.bytesFilled===0),@readableStreamHasBYOBReader(@getByIdDirectPrivate(a,\"controlledReadableStream\")))while(@getByIdDirectPrivate(@getByIdDirectPrivate(@getByIdDirectPrivate(a,\"controlledReadableStream\"),\"reader\"),\"readIntoRequests\")\?.isNotEmpty()){let d=@readableByteStreamControllerShiftPendingDescriptor(a);@readableByteStreamControllerCommitDescriptor(@getByIdDirectPrivate(a,\"controlledReadableStream\"),d)}})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCode = "(function (a,d){\"use strict\";if(d.buffer=@transferBufferToCurrentRealm(d.buffer),@assert(d.bytesFilled===0),@readableStreamHasBYOBReader(@getByIdDirectPrivate(a,\"controlledReadableStream\")))while(@getByIdDirectPrivate(@getByIdDirectPrivate(@getByIdDirectPrivate(a,\"controlledReadableStream\"),\"reader\"),\"readIntoRequests\")\?.isNotEmpty()){let _=@readableByteStreamControllerShiftPendingDescriptor(a);@readableByteStreamControllerCommitDescriptor(@getByIdDirectPrivate(a,\"controlledReadableStream\"),_)}})\n"; // readableByteStreamControllerProcessPullDescriptors const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerProcessPullDescriptorsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2844,7 +2844,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeLength = 970; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCode = "(function (q,j){\"use strict\";const k=j.bytesFilled-j.bytesFilled%j.elementSize,v=@getByIdDirectPrivate(q,\"queue\").sizek)E=z-j.bytesFilled,G=!0;while(E>0){let H=@getByIdDirectPrivate(q,\"queue\").content.peek();const J=E0),@assert(j.bytesFilledj)z=w-_.bytesFilled,E=!0;while(z>0){let G=@getByIdDirectPrivate(q,\"queue\").content.peek();const H=z0),@assert(_.bytesFilled<_.elementSize);return E})\n"; // readableByteStreamControllerShiftPendingDescriptor const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerShiftPendingDescriptorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2852,7 +2852,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerShiftPendingDescriptorCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerShiftPendingDescriptorCodeLength = 150; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerShiftPendingDescriptorCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerShiftPendingDescriptorCode = "(function (u){\"use strict\";let _=@getByIdDirectPrivate(u,\"pendingPullIntos\").shift();return @readableByteStreamControllerInvalidateBYOBRequest(u),_})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerShiftPendingDescriptorCode = "(function (_){\"use strict\";let u=@getByIdDirectPrivate(_,\"pendingPullIntos\").shift();return @readableByteStreamControllerInvalidateBYOBRequest(_),u})\n"; // readableByteStreamControllerInvalidateBYOBRequest const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerInvalidateBYOBRequestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2900,7 +2900,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCodeLength = 1255; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCode = "(function (_,A){\"use strict\";const b=@getByIdDirectPrivate(_,\"controlledReadableStream\");let d=1;if(A.BYTES_PER_ELEMENT!==@undefined)d=A.BYTES_PER_ELEMENT;const k=A.constructor,E={buffer:A.buffer,byteOffset:A.byteOffset,byteLength:A.byteLength,bytesFilled:0,elementSize:d,ctor:k,readerType:\"byob\"};var L=@getByIdDirectPrivate(_,\"pendingPullIntos\");if(L\?.isNotEmpty())return E.buffer=@transferBufferToCurrentRealm(E.buffer),L.push(E),@readableStreamAddReadIntoRequest(b);if(@getByIdDirectPrivate(b,\"state\")===@streamClosed){const R=new k(E.buffer,E.byteOffset,0);return @createFulfilledPromise({value:R,done:!0})}if(@getByIdDirectPrivate(_,\"queue\").size>0){if(@readableByteStreamControllerFillDescriptorFromQueue(_,E)){const R=@readableByteStreamControllerConvertDescriptor(E);return @readableByteStreamControllerHandleQueueDrain(_),@createFulfilledPromise({value:R,done:!1})}if(@getByIdDirectPrivate(_,\"closeRequested\")){const R=@makeTypeError(\"Closing stream has been requested\");return @readableByteStreamControllerError(_,R),@Promise.@reject(R)}}E.buffer=@transferBufferToCurrentRealm(E.buffer),@getByIdDirectPrivate(_,\"pendingPullIntos\").push(E);const N=@readableStreamAddReadIntoRequest(b);return @readableByteStreamControllerCallPullIfNeeded(_),N})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCode = "(function (b,A){\"use strict\";const E=@getByIdDirectPrivate(b,\"controlledReadableStream\");let L=1;if(A.BYTES_PER_ELEMENT!==@undefined)L=A.BYTES_PER_ELEMENT;const d=A.constructor,N={buffer:A.buffer,byteOffset:A.byteOffset,byteLength:A.byteLength,bytesFilled:0,elementSize:L,ctor:d,readerType:\"byob\"};var _=@getByIdDirectPrivate(b,\"pendingPullIntos\");if(_\?.isNotEmpty())return N.buffer=@transferBufferToCurrentRealm(N.buffer),_.push(N),@readableStreamAddReadIntoRequest(E);if(@getByIdDirectPrivate(E,\"state\")===@streamClosed){const k=new d(N.buffer,N.byteOffset,0);return @createFulfilledPromise({value:k,done:!0})}if(@getByIdDirectPrivate(b,\"queue\").size>0){if(@readableByteStreamControllerFillDescriptorFromQueue(b,N)){const k=@readableByteStreamControllerConvertDescriptor(N);return @readableByteStreamControllerHandleQueueDrain(b),@createFulfilledPromise({value:k,done:!1})}if(@getByIdDirectPrivate(b,\"closeRequested\")){const k=@makeTypeError(\"Closing stream has been requested\");return @readableByteStreamControllerError(b,k),@Promise.@reject(k)}}N.buffer=@transferBufferToCurrentRealm(N.buffer),@getByIdDirectPrivate(b,\"pendingPullIntos\").push(N);const R=@readableStreamAddReadIntoRequest(E);return @readableByteStreamControllerCallPullIfNeeded(b),R})\n"; // readableStreamAddReadIntoRequest const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamAddReadIntoRequestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2952,7 +2952,7 @@ const JSC::ConstructorKind s_eventSourceGetEventSourceCodeConstructorKind = JSC: const JSC::ImplementationVisibility s_eventSourceGetEventSourceCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_eventSourceGetEventSourceCodeLength = 5477; static const JSC::Intrinsic s_eventSourceGetEventSourceCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_eventSourceGetEventSourceCode = "(function (){\"use strict\";class B extends EventTarget{#$;#j;#w;#A;#B;#F=!1;#G=null;#J=\"\";#K=\"\";#L=\"\";#M=!0;#O=0;#Q=0;#U=0;#V=null;static#W(W){W.#H()}static#X(W,Q){const F=W.data,G=F.#L\?`Last-Event-ID: ${F.#L}\\r\\n`:\"\",j=`GET ${Q.pathname}${Q.search} HTTP/1.1\\r\\nHost: bun\\r\\nContent-type: text/event-stream\\r\\nContent-length: 0\\r\\n${G}\\r\\n`,X=W.write(j);if(X!==j.length)F.#K=j.substring(X)}static#Y(W,Q,F){for(;;){if(F>=Q.length)return;let G=-1,j=Q.indexOf(\"\\r\\n\",F);const X=j+2;if(j>0)if(W.#O===0){const z=parseInt(Q.substring(F,j),16);if(z===0){W.#j=2,W.#G\?.end();return}G=X+z}else G=Q.length;else{if(W.#J.length===0){W.#J+=Q.substring(F);return}G=Q.length}let Y=Q.substring(X,G);F=G+2;let J=0,Z=Y.indexOf(\"\\n\\n\");if(Z==-1){W.#J+=Q.substring(X);return}if(W.#J.length)W.#J+=Y,Y=W.#J,W.#J=\"\";let K=!0;while(K){const z=Y.substring(J,Z);let L,w=\"\",A,H=0,M=-1;for(;;){let U=z.indexOf(\"\\n\",H);if(U===-1){if(H>=z.length)break;U=z.length}const V=z.substring(H,U);if(V.startsWith(\"data:\"))if(w.length)w+=`\\n${V.substring(5).trim()}`;else w=V.substring(5).trim();else if(V.startsWith(\"event:\"))L=V.substring(6).trim();else if(V.startsWith(\"id:\"))A=V.substring(3).trim();else if(V.startsWith(\"retry:\")){if(M=parseInt(V.substring(6).trim(),10),@isNaN(M))M=-1}H=U+1}if(W.#L=A||\"\",M>=0)W.#U=M;if(w||A||L)W.dispatchEvent(new MessageEvent(L||\"message\",{data:w||\"\",origin:W.#$.origin,source:W,lastEventId:A}));if(Y.length===Z+2){K=!1;break}const O=Y.indexOf(\"\\n\\n\",Z+1);if(O===-1)break;J=Z,Z=O}}}static#Z={open(W){const Q=W.data;if(Q.#G=W,!Q.#F)B.#X(W,Q.#$)},handshake(W,Q,F){const G=W.data;if(Q)B.#X(W,G.#$);else G.#j=2,G.dispatchEvent(new ErrorEvent(\"error\",{error:F})),W.end()},data(W,Q){const F=W.data;switch(F.#j){case 0:{let G=Q.toString();const j=G.indexOf(\"\\r\\n\\r\\n\");if(j===-1){F.#J+=G;return}if(F.#J.length)F.#J+=G,G=F.#J,F.#J=\"\";const X=G.substring(0,j),Y=X.indexOf(\"\\r\\n\");if(Y===-1){F.#j=2,F.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Invalid HTTP request\")})),W.end();return}const J=X.substring(0,Y);if(J!==\"HTTP/1.1 200 OK\"){F.#j=2,F.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(J)})),W.end();return}let Z=Y+1,K=!1,z=-1;for(;;){let w=X.indexOf(\"\\r\\n\",Z);if(w===-1){if(Z>=X.length){if(!K)F.#j=2,F.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's response has no MIME type and \"text/event-stream\" is required. Aborting the connection.`)})),W.end();return}w=X.length}const A=X.substring(Z+1,w),H=A.indexOf(\":\"),M=A.substring(0,H),O=M.localeCompare(\"content-type\",@undefined,{sensitivity:\"accent\"})===0;if(Z=w+1,O)if(A.endsWith(\" text/event-stream\"))K=!0;else{F.#j=2,F.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's response has a MIME type that is not \"text/event-stream\". Aborting the connection.`)})),W.end();return}else if(M.localeCompare(\"content-length\",@undefined,{sensitivity:\"accent\"})===0){if(z=parseInt(A.substring(H+1).trim(),10),@isNaN(z)||z<=0){F.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's Content-Length is invalid. Aborting the connection.`)})),W.end();return}if(K)break}else if(M.localeCompare(\"transfer-encoding\",@undefined,{sensitivity:\"accent\"})===0){if(A.substring(H+1).trim()!==\"chunked\"){F.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's Transfer-Encoding is invalid. Aborting the connection.`)})),W.end();return}if(z=0,K)break}}F.#O=z,F.#j=1,F.dispatchEvent(new Event(\"open\"));const L=G.substring(j+4);if(B.#Y(F,L,0),F.#O>0){if(F.#Q+=L.length,F.#Q>=F.#O)F.#j=2,W.end()}return}case 1:if(B.#Y(F,Q.toString(),2),F.#O>0){if(F.#Q+=Q.byteLength,F.#Q>=F.#O)F.#j=2,W.end()}return;default:break}},drain(W){const Q=W.data;if(Q.#j===0){const F=Q.#J;if(F.length){const G=W.write(F);if(G!==F.length)W.data.#K=F.substring(G);else W.data.#K=\"\"}}},close:B.#z,end(W){B.#z(W).dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Connection closed by server\")}))},timeout(W){B.#z(W).dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Timeout\")}))},binaryType:\"buffer\"};static#z(W){const Q=W.data;if(Q.#G=null,Q.#Q=0,Q.#j=2,Q.#M){if(Q.#V)clearTimeout(Q.#V);Q.#V=setTimeout(B.#W,Q.#U,Q)}return Q}constructor(W,Q=@undefined){super();const F=new URL(W);this.#F=F.protocol===\"https:\",this.#$=F,this.#j=2,process.nextTick(B.#W,this)}ref(){this.#V\?.ref(),this.#G\?.ref()}unref(){this.#V\?.unref(),this.#G\?.unref()}#H(){if(this.#j!==2)return;const W=this.#$,Q=this.#F;this.#j=0,@Bun.connect({data:this,socket:B.#Z,hostname:W.hostname,port:parseInt(W.port||(Q\?\"443\":\"80\"),10),tls:Q\?{requestCert:!0,rejectUnauthorized:!1}:!1}).catch((F)=>{if(super.dispatchEvent(new ErrorEvent(\"error\",{error:F})),this.#M){if(this.#V)this.#V.unref\?.();this.#V=setTimeout(B.#W,1000,this)}})}get url(){return this.#$.href}get readyState(){return this.#j}close(){this.#M=!1,this.#j=2,this.#G\?.unref(),this.#G\?.end()}get onopen(){return this.#B}get onerror(){return this.#w}get onmessage(){return this.#A}set onopen(W){if(this.#B)super.removeEventListener(\"close\",this.#B);super.addEventListener(\"open\",W),this.#B=W}set onerror(W){if(this.#w)super.removeEventListener(\"error\",this.#w);super.addEventListener(\"error\",W),this.#w=W}set onmessage(W){if(this.#A)super.removeEventListener(\"message\",this.#A);super.addEventListener(\"message\",W),this.#A=W}}return Object.defineProperty(B.prototype,\"CONNECTING\",{enumerable:!0,value:0}),Object.defineProperty(B.prototype,\"OPEN\",{enumerable:!0,value:1}),Object.defineProperty(B.prototype,\"CLOSED\",{enumerable:!0,value:2}),B[Symbol.for(\"CommonJS\")]=0,B})\n"; +const char* const s_eventSourceGetEventSourceCode = "(function (){\"use strict\";class A extends EventTarget{#$;#j;#w;#A;#B;#F=!1;#G=null;#J=\"\";#K=\"\";#L=\"\";#M=!0;#O=0;#Q=0;#U=0;#V=null;static#W(Q){Q.#H()}static#X(Q,U){const V=Q.data,B=V.#L\?`Last-Event-ID: ${V.#L}\\r\\n`:\"\",W=`GET ${U.pathname}${U.search} HTTP/1.1\\r\\nHost: bun\\r\\nContent-type: text/event-stream\\r\\nContent-length: 0\\r\\n${B}\\r\\n`,X=Q.write(W);if(X!==W.length)V.#K=W.substring(X)}static#Y(Q,U,V){for(;;){if(V>=U.length)return;let B=-1,W=U.indexOf(\"\\r\\n\",V);const X=W+2;if(W>0)if(Q.#O===0){const j=parseInt(U.substring(V,W),16);if(j===0){Q.#j=2,Q.#G\?.end();return}B=X+j}else B=U.length;else{if(Q.#J.length===0){Q.#J+=U.substring(V);return}B=U.length}let M=U.substring(X,B);V=B+2;let F=0,Y=M.indexOf(\"\\n\\n\");if(Y==-1){Q.#J+=U.substring(X);return}if(Q.#J.length)Q.#J+=M,M=Q.#J,Q.#J=\"\";let G=!0;while(G){const j=M.substring(F,Y);let J,Z=\"\",O,w=0,K=-1;for(;;){let L=j.indexOf(\"\\n\",w);if(L===-1){if(w>=j.length)break;L=j.length}const H=j.substring(w,L);if(H.startsWith(\"data:\"))if(Z.length)Z+=`\\n${H.substring(5).trim()}`;else Z=H.substring(5).trim();else if(H.startsWith(\"event:\"))J=H.substring(6).trim();else if(H.startsWith(\"id:\"))O=H.substring(3).trim();else if(H.startsWith(\"retry:\")){if(K=parseInt(H.substring(6).trim(),10),@isNaN(K))K=-1}w=L+1}if(Q.#L=O||\"\",K>=0)Q.#U=K;if(Z||O||J)Q.dispatchEvent(new MessageEvent(J||\"message\",{data:Z||\"\",origin:Q.#$.origin,source:Q,lastEventId:O}));if(M.length===Y+2){G=!1;break}const z=M.indexOf(\"\\n\\n\",Y+1);if(z===-1)break;F=Y,Y=z}}}static#Z={open(Q){const U=Q.data;if(U.#G=Q,!U.#F)A.#X(Q,U.#$)},handshake(Q,U,V){const B=Q.data;if(U)A.#X(Q,B.#$);else B.#j=2,B.dispatchEvent(new ErrorEvent(\"error\",{error:V})),Q.end()},data(Q,U){const V=Q.data;switch(V.#j){case 0:{let B=U.toString();const W=B.indexOf(\"\\r\\n\\r\\n\");if(W===-1){V.#J+=B;return}if(V.#J.length)V.#J+=B,B=V.#J,V.#J=\"\";const X=B.substring(0,W),M=X.indexOf(\"\\r\\n\");if(M===-1){V.#j=2,V.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Invalid HTTP request\")})),Q.end();return}const F=X.substring(0,M);if(F!==\"HTTP/1.1 200 OK\"){V.#j=2,V.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(F)})),Q.end();return}let Y=M+1,G=!1,j=-1;for(;;){let Z=X.indexOf(\"\\r\\n\",Y);if(Z===-1){if(Y>=X.length){if(!G)V.#j=2,V.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's response has no MIME type and \"text/event-stream\" is required. Aborting the connection.`)})),Q.end();return}Z=X.length}const O=X.substring(Y+1,Z),w=O.indexOf(\":\"),K=O.substring(0,w),z=K.localeCompare(\"content-type\",@undefined,{sensitivity:\"accent\"})===0;if(Y=Z+1,z)if(O.endsWith(\" text/event-stream\"))G=!0;else{V.#j=2,V.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's response has a MIME type that is not \"text/event-stream\". Aborting the connection.`)})),Q.end();return}else if(K.localeCompare(\"content-length\",@undefined,{sensitivity:\"accent\"})===0){if(j=parseInt(O.substring(w+1).trim(),10),@isNaN(j)||j<=0){V.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's Content-Length is invalid. Aborting the connection.`)})),Q.end();return}if(G)break}else if(K.localeCompare(\"transfer-encoding\",@undefined,{sensitivity:\"accent\"})===0){if(O.substring(w+1).trim()!==\"chunked\"){V.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's Transfer-Encoding is invalid. Aborting the connection.`)})),Q.end();return}if(j=0,G)break}}V.#O=j,V.#j=1,V.dispatchEvent(new Event(\"open\"));const J=B.substring(W+4);if(A.#Y(V,J,0),V.#O>0){if(V.#Q+=J.length,V.#Q>=V.#O)V.#j=2,Q.end()}return}case 1:if(A.#Y(V,U.toString(),2),V.#O>0){if(V.#Q+=U.byteLength,V.#Q>=V.#O)V.#j=2,Q.end()}return;default:break}},drain(Q){const U=Q.data;if(U.#j===0){const V=U.#J;if(V.length){const B=Q.write(V);if(B!==V.length)Q.data.#K=V.substring(B);else Q.data.#K=\"\"}}},close:A.#z,end(Q){A.#z(Q).dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Connection closed by server\")}))},timeout(Q){A.#z(Q).dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Timeout\")}))},binaryType:\"buffer\"};static#z(Q){const U=Q.data;if(U.#G=null,U.#Q=0,U.#j=2,U.#M){if(U.#V)clearTimeout(U.#V);U.#V=setTimeout(A.#W,U.#U,U)}return U}constructor(Q,U=@undefined){super();const V=new URL(Q);this.#F=V.protocol===\"https:\",this.#$=V,this.#j=2,process.nextTick(A.#W,this)}ref(){this.#V\?.ref(),this.#G\?.ref()}unref(){this.#V\?.unref(),this.#G\?.unref()}#H(){if(this.#j!==2)return;const Q=this.#$,U=this.#F;this.#j=0,@Bun.connect({data:this,socket:A.#Z,hostname:Q.hostname,port:parseInt(Q.port||(U\?\"443\":\"80\"),10),tls:U\?{requestCert:!0,rejectUnauthorized:!1}:!1}).catch((V)=>{if(super.dispatchEvent(new ErrorEvent(\"error\",{error:V})),this.#M){if(this.#V)this.#V.unref\?.();this.#V=setTimeout(A.#W,1000,this)}})}get url(){return this.#$.href}get readyState(){return this.#j}close(){this.#M=!1,this.#j=2,this.#G\?.unref(),this.#G\?.end()}get onopen(){return this.#B}get onerror(){return this.#w}get onmessage(){return this.#A}set onopen(Q){if(this.#B)super.removeEventListener(\"close\",this.#B);super.addEventListener(\"open\",Q),this.#B=Q}set onerror(Q){if(this.#w)super.removeEventListener(\"error\",this.#w);super.addEventListener(\"error\",Q),this.#w=Q}set onmessage(Q){if(this.#A)super.removeEventListener(\"message\",this.#A);super.addEventListener(\"message\",Q),this.#A=Q}}return Object.defineProperty(A.prototype,\"CONNECTING\",{enumerable:!0,value:0}),Object.defineProperty(A.prototype,\"OPEN\",{enumerable:!0,value:1}),Object.defineProperty(A.prototype,\"CLOSED\",{enumerable:!0,value:2}),A[Symbol.for(\"CommonJS\")]=0,A})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ diff --git a/src/js/out/modules/node/assert.js b/src/js/out/modules/node/assert.js index dbcaf0a02..4086ef8d5 100644 --- a/src/js/out/modules/node/assert.js +++ b/src/js/out/modules/node/assert.js @@ -1,53 +1,53 @@ -import J from"node:util";var f1=function(){throw new Error("CallTracker is not supported yet")},{Bun:j1}=globalThis[Symbol.for("Bun.lazy")]("primordials"),O=j1.deepEquals,N=(X,_)=>function(){return _||(0,X[Object.keys(X)[0]])((_={exports:{}}).exports,_),_.exports},z=N({"assert/build/internal/errors.js"(X,_){function u(H1){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?u=function(Q1){return typeof Q1}:u=function(Q1){return Q1&&typeof Symbol=="function"&&Q1.constructor===Symbol&&Q1!==Symbol.prototype?"symbol":typeof Q1},u(H1)}function n(H1,Q1){if(!(H1 instanceof Q1))throw new TypeError("Cannot call a class as a function")}function i(H1,Q1){return Q1&&(u(Q1)==="object"||typeof Q1=="function")?Q1:U(H1)}function U(H1){if(H1===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return H1}function p(H1){return p=Object.setPrototypeOf?Object.getPrototypeOf:function(Q1){return Q1.__proto__||Object.getPrototypeOf(Q1)},p(H1)}function l(H1,Q1){if(typeof Q1!="function"&&Q1!==null)throw new TypeError("Super expression must either be null or a function");H1.prototype=Object.create(Q1&&Q1.prototype,{constructor:{value:H1,writable:!0,configurable:!0}}),Q1&&c(H1,Q1)}function c(H1,Q1){return c=Object.setPrototypeOf||function(Z1,W){return Z1.__proto__=W,Z1},c(H1,Q1)}var o={},$,a;function t(H1,Q1,Z1){Z1||(Z1=Error);function W(z1,X1,U1){return typeof Q1=="string"?Q1:Q1(z1,X1,U1)}var J1=function(z1){l(X1,z1);function X1(U1,Y,$1){var K1;return n(this,X1),K1=i(this,p(X1).call(this,W(U1,Y,$1))),K1.code=H1,K1}return X1}(Z1);o[H1]=J1}function r(H1,Q1){if(Array.isArray(H1)){var Z1=H1.length;return H1=H1.map(function(W){return String(W)}),Z1>2?"one of ".concat(Q1," ").concat(H1.slice(0,Z1-1).join(", "),", or ")+H1[Z1-1]:Z1===2?"one of ".concat(Q1," ").concat(H1[0]," or ").concat(H1[1]):"of ".concat(Q1," ").concat(H1[0])}else return"of ".concat(Q1," ").concat(String(H1))}function s(H1,Q1,Z1){return H1.substr(!Z1||Z1<0?0:+Z1,Q1.length)===Q1}function K(H1,Q1,Z1){return(Z1===void 0||Z1>H1.length)&&(Z1=H1.length),H1.substring(Z1-Q1.length,Z1)===Q1}function e(H1,Q1,Z1){return typeof Z1!="number"&&(Z1=0),Z1+Q1.length>H1.length?!1:H1.indexOf(Q1,Z1)!==-1}t("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),t("ERR_INVALID_ARG_TYPE",function(H1,Q1,Z1){$===void 0&&($=F()),$(typeof H1=="string","'name' must be a string");var W;typeof Q1=="string"&&s(Q1,"not ")?(W="must not be",Q1=Q1.replace(/^not /,"")):W="must be";var J1;if(K(H1," argument"))J1="The ".concat(H1," ").concat(W," ").concat(r(Q1,"type"));else{var z1=e(H1,".")?"property":"argument";J1='The "'.concat(H1,'" ').concat(z1," ").concat(W," ").concat(r(Q1,"type"))}return J1+=". Received type ".concat(u(Z1)),J1},TypeError),t("ERR_INVALID_ARG_VALUE",function(H1,Q1){var Z1=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"is invalid",W=a.inspect(Q1);return W.length>128&&(W="".concat(W.slice(0,128),"...")),"The argument '".concat(H1,"' ").concat(Z1,". Received ").concat(W)},TypeError,RangeError),t("ERR_INVALID_RETURN_VALUE",function(H1,Q1,Z1){var W;return Z1&&Z1.constructor&&Z1.constructor.name?W="instance of ".concat(Z1.constructor.name):W="type ".concat(u(Z1)),"Expected ".concat(H1,' to be returned from the "').concat(Q1,'"')+" function but got ".concat(W,".")},TypeError),t("ERR_MISSING_ARGS",function(){for(var H1=arguments.length,Q1=new Array(H1),Z1=0;Z10,"At least one arg needs to be specified");var W="The ",J1=Q1.length;switch(Q1=Q1.map(function(z1){return'"'.concat(z1,'"')}),J1){case 1:W+="".concat(Q1[0]," argument");break;case 2:W+="".concat(Q1[0]," and ").concat(Q1[1]," arguments");break;default:W+=Q1.slice(0,J1-1).join(", "),W+=", and ".concat(Q1[J1-1]," arguments");break}return"".concat(W," must be specified")},TypeError),_.exports.codes=o}}),I=N({"assert/build/internal/assert/assertion_error.js"(X,_){function u(V1){for(var D1=1;D1V1.length)&&(M1=V1.length),V1.substring(M1-D1.length,M1)===D1}function J1(V1,D1){if(D1=Math.floor(D1),V1.length==0||D1==0)return"";var M1=V1.length*D1;for(D1=Math.floor(Math.log(D1)/Math.log(2));D1;)V1+=V1,D1--;return V1+=V1.substring(0,M1-V1.length),V1}var z1="",X1="",U1="",Y="",$1={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"},K1=10;function W1(V1){var D1=Object.keys(V1),M1=Object.create(Object.getPrototypeOf(V1));return D1.forEach(function(V){M1[V]=V1[V]}),Object.defineProperty(M1,"message",{value:V1.message}),M1}function Y1(V1){return H1(V1,{compact:!1,customInspect:!1,depth:1000,maxArrayLength:Infinity,showHidden:!1,breakLength:Infinity,showProxy:!1,sorted:!0,getters:!0})}function B(V1,D1,M1){var V="",q1="",v1=0,G1="",T1=!1,D=Y1(V1),w1=D.split(` -`),O1=Y1(D1).split(` -`),M=0,H="";if(M1==="strictEqual"&&e(V1)==="object"&&e(D1)==="object"&&V1!==null&&D1!==null&&(M1="strictEqualObject"),w1.length===1&&O1.length===1&&w1[0]!==O1[0]){var q=w1[0].length+O1[0].length;if(q<=K1){if((e(V1)!=="object"||V1===null)&&(e(D1)!=="object"||D1===null)&&(V1!==0||D1!==0))return"".concat($1[M1],` +import X1 from"node:util";var D1=function(){throw new Error("CallTracker is not supported yet")},{Bun:$1}=globalThis[Symbol.for("Bun.lazy")]("primordials"),z1=$1.deepEquals,W1=(H,Q)=>function(){return Q||(0,H[Object.keys(H)[0]])((Q={exports:{}}).exports,Q),Q.exports},Y1=W1({"assert/build/internal/errors.js"(H,Q){function Z(G){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Z=function(T){return typeof T}:Z=function(T){return T&&typeof Symbol=="function"&&T.constructor===Symbol&&T!==Symbol.prototype?"symbol":typeof T},Z(G)}function J(G,T){if(!(G instanceof T))throw new TypeError("Cannot call a class as a function")}function z(G,T){return T&&(Z(T)==="object"||typeof T=="function")?T:X(G)}function X(G){if(G===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return G}function U(G){return U=Object.setPrototypeOf?Object.getPrototypeOf:function(T){return T.__proto__||Object.getPrototypeOf(T)},U(G)}function $(G,T){if(typeof T!="function"&&T!==null)throw new TypeError("Super expression must either be null or a function");G.prototype=Object.create(T&&T.prototype,{constructor:{value:G,writable:!0,configurable:!0}}),T&&K(G,T)}function K(G,T){return K=Object.setPrototypeOf||function(w,O){return w.__proto__=O,w},K(G,T)}var W={},Y,B;function V(G,T,w){w||(w=Error);function O(N,I,P){return typeof T=="string"?T:T(N,I,P)}var F=function(N){$(I,N);function I(P,A,S){var j;return J(this,I),j=z(this,U(I).call(this,O(P,A,S))),j.code=G,j}return I}(w);W[G]=F}function D(G,T){if(Array.isArray(G)){var w=G.length;return G=G.map(function(O){return String(O)}),w>2?"one of ".concat(T," ").concat(G.slice(0,w-1).join(", "),", or ")+G[w-1]:w===2?"one of ".concat(T," ").concat(G[0]," or ").concat(G[1]):"of ".concat(T," ").concat(G[0])}else return"of ".concat(T," ").concat(String(G))}function M(G,T,w){return G.substr(!w||w<0?0:+w,T.length)===T}function q(G,T,w){return(w===void 0||w>G.length)&&(w=G.length),G.substring(w-T.length,w)===T}function v(G,T,w){return typeof w!="number"&&(w=0),w+T.length>G.length?!1:G.indexOf(T,w)!==-1}V("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),V("ERR_INVALID_ARG_TYPE",function(G,T,w){Y===void 0&&(Y=U1()),Y(typeof G=="string","'name' must be a string");var O;typeof T=="string"&&M(T,"not ")?(O="must not be",T=T.replace(/^not /,"")):O="must be";var F;if(q(G," argument"))F="The ".concat(G," ").concat(O," ").concat(D(T,"type"));else{var N=v(G,".")?"property":"argument";F='The "'.concat(G,'" ').concat(N," ").concat(O," ").concat(D(T,"type"))}return F+=". Received type ".concat(Z(w)),F},TypeError),V("ERR_INVALID_ARG_VALUE",function(G,T){var w=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"is invalid",O=B.inspect(T);return O.length>128&&(O="".concat(O.slice(0,128),"...")),"The argument '".concat(G,"' ").concat(w,". Received ").concat(O)},TypeError,RangeError),V("ERR_INVALID_RETURN_VALUE",function(G,T,w){var O;return w&&w.constructor&&w.constructor.name?O="instance of ".concat(w.constructor.name):O="type ".concat(Z(w)),"Expected ".concat(G,' to be returned from the "').concat(T,'"')+" function but got ".concat(O,".")},TypeError),V("ERR_MISSING_ARGS",function(){for(var G=arguments.length,T=new Array(G),w=0;w0,"At least one arg needs to be specified");var O="The ",F=T.length;switch(T=T.map(function(N){return'"'.concat(N,'"')}),F){case 1:O+="".concat(T[0]," argument");break;case 2:O+="".concat(T[0]," and ").concat(T[1]," arguments");break;default:O+=T.slice(0,F-1).join(", "),O+=", and ".concat(T[F-1]," arguments");break}return"".concat(O," must be specified")},TypeError),Q.exports.codes=W}}),B1=W1({"assert/build/internal/assert/assertion_error.js"(H,Q){function Z(L){for(var b=1;bL.length)&&(h=L.length),L.substring(h-b.length,h)===b}function F(L,b){if(b=Math.floor(b),L.length==0||b==0)return"";var h=L.length*b;for(b=Math.floor(Math.log(b)/Math.log(2));b;)L+=L,b--;return L+=L.substring(0,h-L.length),L}var N="",I="",P="",A="",S={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"},j=10;function R(L){var b=Object.keys(L),h=Object.create(Object.getPrototypeOf(L));return b.forEach(function(k){h[k]=L[k]}),Object.defineProperty(h,"message",{value:L.message}),h}function f(L){return G(L,{compact:!1,customInspect:!1,depth:1000,maxArrayLength:Infinity,showHidden:!1,breakLength:Infinity,showProxy:!1,sorted:!0,getters:!0})}function C(L,b,h){var k="",m="",x=0,y="",g=!1,d=f(L),_=d.split(` +`),u=f(b).split(` +`),n=0,i="";if(h==="strictEqual"&&v(L)==="object"&&v(b)==="object"&&L!==null&&b!==null&&(h="strictEqualObject"),_.length===1&&u.length===1&&_[0]!==u[0]){var p=_[0].length+u[0].length;if(p<=j){if((v(L)!=="object"||L===null)&&(v(b)!=="object"||b===null)&&(L!==0||b!==0))return"".concat(S[h],` -`)+"".concat(w1[0]," !== ").concat(O1[0],` -`)}else if(M1!=="strictEqualObject"){var F1=process.stderr&&process.stderr.isTTY?process.stderr.columns:80;if(q2&&(H=` - `.concat(J1(" ",M),"^"),M=0)}}}for(var N1=w1[w1.length-1],v=O1[O1.length-1];N1===v&&(M++<2?G1=` - `.concat(N1).concat(G1):V=N1,w1.pop(),O1.pop(),!(w1.length===0||O1.length===0));)N1=w1[w1.length-1],v=O1[O1.length-1];var Q=Math.max(w1.length,O1.length);if(Q===0){var G=D.split(` -`);if(G.length>30)for(G[26]="".concat(z1,"...").concat(Y);G.length>27;)G.pop();return"".concat($1.notIdentical,` +`)+"".concat(_[0]," !== ").concat(u[0],` +`)}else if(h!=="strictEqualObject"){var l=process.stderr&&process.stderr.isTTY?process.stderr.columns:80;if(p2&&(i=` + `.concat(F(" ",n),"^"),n=0)}}}for(var c=_[_.length-1],o=u[u.length-1];c===o&&(n++<2?y=` + `.concat(c).concat(y):k=c,_.pop(),u.pop(),!(_.length===0||u.length===0));)c=_[_.length-1],o=u[u.length-1];var a=Math.max(_.length,u.length);if(a===0){var t=d.split(` +`);if(t.length>30)for(t[26]="".concat(N,"...").concat(A);t.length>27;)t.pop();return"".concat(S.notIdentical,` -`).concat(G.join(` +`).concat(t.join(` `),` -`)}M>3&&(G1=` -`.concat(z1,"...").concat(Y).concat(G1),T1=!0),V!==""&&(G1=` - `.concat(V).concat(G1),V="");var I1=0,P1=$1[M1]+` -`.concat(X1,"+ actual").concat(Y," ").concat(U1,"- expected").concat(Y),T=" ".concat(z1,"...").concat(Y," Lines skipped");for(M=0;M1&&M>2&&(Z>4?(q1+=` -`.concat(z1,"...").concat(Y),T1=!0):Z>3&&(q1+=` - `.concat(O1[M-2]),I1++),q1+=` - `.concat(O1[M-1]),I1++),v1=M,V+=` -`.concat(U1,"-").concat(Y," ").concat(O1[M]),I1++;else if(O1.length1&&M>2&&(Z>4?(q1+=` -`.concat(z1,"...").concat(Y),T1=!0):Z>3&&(q1+=` - `.concat(w1[M-2]),I1++),q1+=` - `.concat(w1[M-1]),I1++),v1=M,q1+=` -`.concat(X1,"+").concat(Y," ").concat(w1[M]),I1++;else{var w=O1[M],A1=w1[M],S1=A1!==w&&(!W(A1,",")||A1.slice(0,-1)!==w);S1&&W(w,",")&&w.slice(0,-1)===A1&&(S1=!1,A1+=","),S1?(Z>1&&M>2&&(Z>4?(q1+=` -`.concat(z1,"...").concat(Y),T1=!0):Z>3&&(q1+=` - `.concat(w1[M-2]),I1++),q1+=` - `.concat(w1[M-1]),I1++),v1=M,q1+=` -`.concat(X1,"+").concat(Y," ").concat(A1),V+=` -`.concat(U1,"-").concat(Y," ").concat(w),I1+=2):(q1+=V,V="",(Z===1||M===0)&&(q1+=` - `.concat(A1),I1++))}if(I1>20&&M30)for(M[26]="".concat(z1,"...").concat(Y);M.length>27;)M.pop();M.length===1?V=l(this,K(D1).call(this,"".concat(O1," ").concat(M[0]))):V=l(this,K(D1).call(this,"".concat(O1,` +`)}n>3&&(y=` +`.concat(N,"...").concat(A).concat(y),g=!0),k!==""&&(y=` + `.concat(k).concat(y),k="");var r=0,s=S[h]+` +`.concat(I,"+ actual").concat(A," ").concat(P,"- expected").concat(A),e=" ".concat(N,"...").concat(A," Lines skipped");for(n=0;n1&&n>2&&(H1>4?(m+=` +`.concat(N,"...").concat(A),g=!0):H1>3&&(m+=` + `.concat(u[n-2]),r++),m+=` + `.concat(u[n-1]),r++),x=n,k+=` +`.concat(P,"-").concat(A," ").concat(u[n]),r++;else if(u.length1&&n>2&&(H1>4?(m+=` +`.concat(N,"...").concat(A),g=!0):H1>3&&(m+=` + `.concat(_[n-2]),r++),m+=` + `.concat(_[n-1]),r++),x=n,m+=` +`.concat(I,"+").concat(A," ").concat(_[n]),r++;else{var Q1=u[n],Z1=_[n],J1=Z1!==Q1&&(!O(Z1,",")||Z1.slice(0,-1)!==Q1);J1&&O(Q1,",")&&Q1.slice(0,-1)===Z1&&(J1=!1,Z1+=","),J1?(H1>1&&n>2&&(H1>4?(m+=` +`.concat(N,"...").concat(A),g=!0):H1>3&&(m+=` + `.concat(_[n-2]),r++),m+=` + `.concat(_[n-1]),r++),x=n,m+=` +`.concat(I,"+").concat(A," ").concat(Z1),k+=` +`.concat(P,"-").concat(A," ").concat(Q1),r+=2):(m+=k,k="",(H1===1||n===0)&&(m+=` + `.concat(Z1),r++))}if(r>20&&n30)for(n[26]="".concat(N,"...").concat(A);n.length>27;)n.pop();n.length===1?k=$(this,q(b).call(this,"".concat(u," ").concat(n[0]))):k=$(this,q(b).call(this,"".concat(u,` -`).concat(M.join(` +`).concat(n.join(` `),` -`)))}else{var H=Y1(T1),q="",F1=$1[v1];v1==="notDeepEqual"||v1==="notEqual"?(H="".concat($1[v1],` +`)))}else{var i=f(g),p="",l=S[x];x==="notDeepEqual"||x==="notEqual"?(i="".concat(S[x],` -`).concat(H),H.length>1024&&(H="".concat(H.slice(0,1021),"..."))):(q="".concat(Y1(D)),H.length>512&&(H="".concat(H.slice(0,509),"...")),q.length>512&&(q="".concat(q.slice(0,509),"...")),v1==="deepEqual"||v1==="equal"?H="".concat(F1,` +`).concat(i),i.length>1024&&(i="".concat(i.slice(0,1021),"..."))):(p="".concat(f(d)),i.length>512&&(i="".concat(i.slice(0,509),"...")),p.length>512&&(p="".concat(p.slice(0,509),"...")),x==="deepEqual"||x==="equal"?i="".concat(l,` -`).concat(H,` +`).concat(i,` should equal -`):q=" ".concat(v1," ").concat(q)),V=l(this,K(D1).call(this,"".concat(H).concat(q)))}return Error.stackTraceLimit=w1,V.generatedMessage=!q1,Object.defineProperty(c(V),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),V.code="ERR_ASSERTION",V.actual=T1,V.expected=D,V.operator=v1,Error.captureStackTrace&&Error.captureStackTrace(c(V),G1),V.stack,V.name="AssertionError",l(V)}return p(D1,[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:H1.custom,value:function(M1,V){return H1(this,u({},V,{customInspect:!1,depth:0}))}}]),D1}($(Error));_.exports=B1}}),F=N({"assert/build/assert.js"(X,_){function u(v1){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?u=function(G1){return typeof G1}:u=function(G1){return G1&&typeof Symbol=="function"&&G1.constructor===Symbol&&G1!==Symbol.prototype?"symbol":typeof G1},u(v1)}function n(v1,G1){if(!(v1 instanceof G1))throw new TypeError("Cannot call a class as a function")}var i=z(),U=i.codes,p=U.ERR_AMBIGUOUS_ARGUMENT,l=U.ERR_INVALID_ARG_TYPE,c=U.ERR_INVALID_ARG_VALUE,o=U.ERR_INVALID_RETURN_VALUE,$=U.ERR_MISSING_ARGS,a=I(),t=J,r=t.inspect,s=J.types,K=s.isPromise,e=s.isRegExp,H1=Object.assign,Q1=Object.is,Z1=new Map,W=!1,J1=_.exports=$1,z1={};function X1(v1){throw v1.message instanceof Error?v1.message:new a(v1)}function U1(v1,G1,T1,D,w1){var O1=arguments.length,M;if(O1===0)M="Failed";else if(O1===1)T1=v1,v1=void 0;else{if(W===!1){W=!0;var H=process.emitWarning?process.emitWarning:console.warn.bind(console);H("assert.fail() with more than one argument is deprecated. Please use assert.strictEqual() instead or only pass a message.","DeprecationWarning","DEP0094")}O1===2&&(D="!=")}if(T1 instanceof Error)throw T1;var q={actual:v1,expected:G1,operator:D===void 0?"fail":D,stackStartFn:w1||U1};T1!==void 0&&(q.message=T1);var F1=new a(q);throw M&&(F1.message=M,F1.generatedMessage=!0),F1}J1.fail=U1,J1.AssertionError=a;function Y(v1,G1,T1,D){if(!T1){var w1=!1;if(G1===0)w1=!0,D="No value argument passed to `assert.ok()`";else if(D instanceof Error)throw D;var O1=new a({actual:T1,expected:!0,message:D,operator:"==",stackStartFn:v1});throw O1.generatedMessage=w1,O1}}function $1(){for(var v1=arguments.length,G1=new Array(v1),T1=0;T11?T1-1:0),w1=1;w11?T1-1:0),w1=1;w11?T1-1:0),w1=1;w11?T1-1:0),w1=1;w11?g-1:0),_=1;_1?g-1:0),_=1;_1?g-1:0),_=1;_1?g-1:0),_=1;_{if(L.push({eventType:r,filename:a}),n){const E=n;n=null,E()}}),{async*[Symbol.asyncIterator](){let r=!1;while(!r){while(L.length){let a=L.shift();if(a.eventType==="close"){r=!0;break}if(a.eventType==="error")throw r=!0,a.filename;yield a}await new Promise((a)=>n=a)}}}}var V=Bun.fs(),_="::bunternal::",q={[_]:(i)=>{var S={[_]:function(L,n,r){var a;try{a=i.apply(V,r),r=void 0}catch(E){r=void 0,n(E);return}L(a)}}[_];return async function(...L){return await new Promise((n,r)=>{process.nextTick(S,n,r,L)})}}}[_],k=q(V.accessSync),X=q(V.appendFileSync),l=q(V.closeSync),b=q(V.copyFileSync),R=q(V.existsSync),h=q(V.chownSync),j=q(V.chmodSync),N=q(V.fchmodSync),A=q(V.fchownSync),B=q(V.fstatSync),d=q(V.fsyncSync),P=q(V.ftruncateSync),p=q(V.futimesSync),O=q(V.lchmodSync),o=q(V.lchownSync),K=q(V.linkSync),Z=q(V.lstatSync),C=q(V.mkdirSync),D=q(V.mkdtempSync),y=q(V.openSync),c=q(V.readSync),G=q(V.writeSync),U=q(V.readdirSync),m=q(V.readFileSync),Q=q(V.writeFileSync),H=q(V.readlinkSync),v=q(V.realpathSync),x=q(V.renameSync),F=q(V.statSync),$=q(V.symlinkSync),W=q(V.truncateSync),w=q(V.unlinkSync),t=q(V.utimesSync),Y=q(V.lutimesSync),g=q(V.rmSync),T=q(V.rmdirSync),I=(i,S,L)=>{return new Promise((n,r)=>{try{var a=V.writevSync(i,S,L)}catch(E){r(E);return}n({bytesWritten:a,buffers:S})})},J=(i,S,L)=>{return new Promise((n,r)=>{try{var a=V.readvSync(i,S,L)}catch(E){r(E);return}n({bytesRead:a,buffers:S})})},M={access:k,appendFile:X,close:l,copyFile:b,exists:R,chown:h,chmod:j,fchmod:N,fchown:A,fstat:B,fsync:d,ftruncate:P,futimes:p,lchmod:O,lchown:o,link:K,lstat:Z,mkdir:C,mkdtemp:D,open:y,read:c,write:G,readdir:U,readFile:m,writeFile:Q,readlink:H,realpath:v,rename:x,stat:F,symlink:$,truncate:W,unlink:w,utimes:t,lutimes:Y,rm:g,rmdir:T,watch:z,writev:I,readv:J,constants,[Symbol.for("CommonJS")]:0};export{I as writev,Q as writeFile,G as write,z as watch,t as utimes,w as unlink,W as truncate,$ as symlink,F as stat,T as rmdir,g as rm,x as rename,v as realpath,J as readv,H as readlink,U as readdir,m as readFile,c as read,y as open,D as mkdtemp,C as mkdir,Y as lutimes,Z as lstat,K as link,o as lchown,O as lchmod,p as futimes,P as ftruncate,d as fsync,B as fstat,A as fchown,N as fchmod,R as exists,M as default,b as copyFile,l as close,h as chown,j as chmod,X as appendFile,k as access}; +function J(S,q={}){const z=[];if(S instanceof URL)throw new TypeError("Watch URLs are not supported yet");else if(Buffer.isBuffer(S))S=S.toString();else if(typeof S!=="string")throw new TypeError("Expected path to be a string or Buffer");let A=null;if(typeof q==="string")q={encoding:q};return H.watch(S,q||{},(B,C)=>{if(z.push({eventType:B,filename:C}),A){const D=A;A=null,D()}}),{async*[Symbol.asyncIterator](){let B=!1;while(!B){while(z.length){let C=z.shift();if(C.eventType==="close"){B=!0;break}if(C.eventType==="error")throw B=!0,C.filename;yield C}await new Promise((C)=>A=C)}}}}var H=Bun.fs(),G="::bunternal::",I={[G]:(S)=>{var q={[G]:function(z,A,B){var C;try{C=S.apply(H,B),B=void 0}catch(D){B=void 0,A(D);return}z(C)}}[G];return async function(...z){return await new Promise((A,B)=>{process.nextTick(q,A,B,z)})}}}[G],K=I(H.accessSync),L=I(H.appendFileSync),M=I(H.closeSync),N=I(H.copyFileSync),O=I(H.existsSync),P=I(H.chownSync),Q=I(H.chmodSync),U=I(H.fchmodSync),V=I(H.fchownSync),X=I(H.fstatSync),Y=I(H.fsyncSync),Z=I(H.ftruncateSync),_=I(H.futimesSync),$=I(H.lchmodSync),T=I(H.lchownSync),W=I(H.linkSync),k=I(H.lstatSync),E=I(H.mkdirSync),x=I(H.mkdtempSync),F=I(H.openSync),R=I(H.readSync),g=I(H.writeSync),h=I(H.readdirSync),j=I(H.readFileSync),w=I(H.writeFileSync),b=I(H.readlinkSync),u=I(H.realpathSync),d=I(H.renameSync),c=I(H.statSync),v=I(H.symlinkSync),a=I(H.truncateSync),y=I(H.unlinkSync),l=I(H.utimesSync),p=I(H.lutimesSync),m=I(H.rmSync),n=I(H.rmdirSync),t=(S,q,z)=>{return new Promise((A,B)=>{try{var C=H.writevSync(S,q,z)}catch(D){B(D);return}A({bytesWritten:C,buffers:q})})},o=(S,q,z)=>{return new Promise((A,B)=>{try{var C=H.readvSync(S,q,z)}catch(D){B(D);return}A({bytesRead:C,buffers:q})})},r={access:K,appendFile:L,close:M,copyFile:N,exists:O,chown:P,chmod:Q,fchmod:U,fchown:V,fstat:X,fsync:Y,ftruncate:Z,futimes:_,lchmod:$,lchown:T,link:W,lstat:k,mkdir:E,mkdtemp:x,open:F,read:R,write:g,readdir:h,readFile:j,writeFile:w,readlink:b,realpath:u,rename:d,stat:c,symlink:v,truncate:a,unlink:y,utimes:l,lutimes:p,rm:m,rmdir:n,watch:J,writev:t,readv:o,constants,[Symbol.for("CommonJS")]:0};export{t as writev,w as writeFile,g as write,J as watch,l as utimes,y as unlink,a as truncate,v as symlink,c as stat,n as rmdir,m as rm,d as rename,u as realpath,o as readv,b as readlink,h as readdir,j as readFile,R as read,F as open,x as mkdtemp,E as mkdir,p as lutimes,k as lstat,W as link,T as lchown,$ as lchmod,_ as futimes,Z as ftruncate,Y as fsync,X as fstat,V as fchown,U as fchmod,O as exists,r as default,N as copyFile,M as close,P as chown,Q as chmod,L as appendFile,K as access}; diff --git a/src/js/out/modules/node/http.js b/src/js/out/modules/node/http.js index 0a84f42b7..955c83642 100644 --- a/src/js/out/modules/node/http.js +++ b/src/js/out/modules/node/http.js @@ -1,7 +1,9 @@ import {EventEmitter} from "node:events"; import {Readable, Writable, Duplex} from "node:stream"; import {isTypedArray} from "node:util/types"; -var isIPv6 = function(input) { +var checkInvalidHeaderChar = function(val) { + return RegExpPrototypeExec.call(headerCharRegex, val) !== null; +}, isIPv6 = function(input) { return new RegExp("^((?:(?:[0-9a-fA-F]{1,4}):){7}(?:(?:[0-9a-fA-F]{1,4})|:)|(?:(?:[0-9a-fA-F]{1,4}):){6}(?:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|:(?:[0-9a-fA-F]{1,4})|:)|(?:(?:[0-9a-fA-F]{1,4}):){5}(?::((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,2}|:)|(?:(?:[0-9a-fA-F]{1,4}):){4}(?:(:(?:[0-9a-fA-F]{1,4})){0,1}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,3}|:)|(?:(?:[0-9a-fA-F]{1,4}):){3}(?:(:(?:[0-9a-fA-F]{1,4})){0,2}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,4}|:)|(?:(?:[0-9a-fA-F]{1,4}):){2}(?:(:(?:[0-9a-fA-F]{1,4})){0,3}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,5}|:)|(?:(?:[0-9a-fA-F]{1,4}):){1}(?:(:(?:[0-9a-fA-F]{1,4})){0,4}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,6}|:)|(?::((?::(?:[0-9a-fA-F]{1,4})){0,5}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(?::(?:[0-9a-fA-F]{1,4})){1,7}|:)))(%[0-9a-zA-Z-.:]{1,})?$").test(input); }, isValidTLSArray = function(obj) { if (typeof obj === "string" || isTypedArray(obj) || obj instanceof ArrayBuffer || obj instanceof Blob) @@ -97,13 +99,20 @@ function get(url, options, cb) { const req = request(url, options, cb); return req.end(), req; } -var { URL } = globalThis, { newArrayWithSize, String, Object, Array } = globalThis[Symbol.for("Bun.lazy")]("primordials"), globalReportError = globalThis.reportError, setTimeout = globalThis.setTimeout, fetch = Bun.fetch, nop = () => { -}, __DEBUG__ = process.env.__DEBUG__, debug = __DEBUG__ ? (...args) => console.log("node:http", ...args) : nop, kEmptyObject = Object.freeze(Object.create(null)), kOutHeaders = Symbol.for("kOutHeaders"), kEndCalled = Symbol.for("kEndCalled"), kAbortController = Symbol.for("kAbortController"), kClearTimeout = Symbol("kClearTimeout"), kCorked = Symbol.for("kCorked"), searchParamsSymbol = Symbol.for("query"), StringPrototypeSlice = String.prototype.slice, StringPrototypeStartsWith = String.prototype.startsWith, StringPrototypeToUpperCase = String.prototype.toUpperCase, StringPrototypeIncludes = String.prototype.includes, StringPrototypeCharCodeAt = String.prototype.charCodeAt, StringPrototypeIndexOf = String.prototype.indexOf, ArrayIsArray = Array.isArray, RegExpPrototypeExec = RegExp.prototype.exec, ObjectAssign = Object.assign, ObjectPrototypeHasOwnProperty = Object.prototype.hasOwnProperty, INVALID_PATH_REGEX = /[^\u0021-\u00ff]/, NODE_HTTP_WARNING = "WARN: Agent is mostly unused in Bun's implementation of http. If you see strange behavior, this is probably the cause.", _globalAgent, _defaultHTTPSAgent, kInternalRequest = Symbol("kInternalRequest"), kInternalSocketData = Symbol.for("::bunternal::"), kEmptyBuffer = Buffer.alloc(0), FakeSocket = class Socket extends Duplex { +var headerCharRegex = /[^\t\x20-\x7e\x80-\xff]/, validateHeaderName = (name, label) => { + if (typeof name !== "string" || !name || !checkIsHttpToken(name)) + throw new Error("ERR_INVALID_HTTP_TOKEN"); +}, validateHeaderValue = (name, value) => { + if (value === void 0) + throw new Error("ERR_HTTP_INVALID_HEADER_VALUE"); + if (checkInvalidHeaderChar(value)) + throw new Error("ERR_INVALID_CHAR"); +}, { URL } = globalThis, { newArrayWithSize, String, Object, Array } = globalThis[Symbol.for("Bun.lazy")]("primordials"), globalReportError = globalThis.reportError, setTimeout = globalThis.setTimeout, fetch = Bun.fetch, nop = () => { +}, __DEBUG__ = process.env.__DEBUG__, debug = __DEBUG__ ? (...args) => console.log("node:http", ...args) : nop, kEmptyObject = Object.freeze(Object.create(null)), kOutHeaders = Symbol.for("kOutHeaders"), kEndCalled = Symbol.for("kEndCalled"), kAbortController = Symbol.for("kAbortController"), kClearTimeout = Symbol("kClearTimeout"), kCorked = Symbol.for("kCorked"), searchParamsSymbol = Symbol.for("query"), StringPrototypeSlice = String.prototype.slice, StringPrototypeStartsWith = String.prototype.startsWith, StringPrototypeToUpperCase = String.prototype.toUpperCase, StringPrototypeIncludes = String.prototype.includes, StringPrototypeCharCodeAt = String.prototype.charCodeAt, StringPrototypeIndexOf = String.prototype.indexOf, ArrayIsArray = Array.isArray, RegExpPrototypeExec = RegExp.prototype.exec, ObjectAssign = Object.assign, ObjectPrototypeHasOwnProperty = Object.prototype.hasOwnProperty, INVALID_PATH_REGEX = /[^\u0021-\u00ff]/, NODE_HTTP_WARNING = "WARN: Agent is mostly unused in Bun's implementation of http. If you see strange behavior, this is probably the cause.", _defaultHTTPSAgent, kInternalRequest = Symbol("kInternalRequest"), kInternalSocketData = Symbol.for("::bunternal::"), kEmptyBuffer = Buffer.alloc(0), FakeSocket = class Socket extends Duplex { bytesRead = 0; bytesWritten = 0; connecting = !1; remoteAddress = null; - localAddress = "127.0.0.1"; remotePort; timeout = 0; isServer = !1; @@ -183,7 +192,7 @@ class Agent extends EventEmitter { totalSocketCount; #fakeSocket; static get globalAgent() { - return _globalAgent ??= new Agent; + return globalAgent; } static get defaultMaxSockets() { return Infinity; @@ -235,6 +244,7 @@ class Server extends EventEmitter { #tls; #is_tls = !1; listening = !1; + serverName; constructor(options, callback) { super(); if (typeof options === "function") @@ -386,12 +396,14 @@ class Server extends EventEmitter { } } class IncomingMessage extends Readable { + method; + complete; constructor(req, defaultIncomingOpts) { const method = req.method; super(); const url = new URL(req.url); var { type = "request", [kInternalRequest]: nodeReq } = defaultIncomingOpts || {}; - this.#noBody = type === "request" ? method === "GET" || method === "HEAD" || method === "TRACE" || method === "CONNECT" || method === "OPTIONS" || (parseInt(req.headers.get("Content-Length") || "") || 0) === 0 : !1, this.#req = req, this.method = method, this.#type = type, this.complete = !!this.#noBody, this.#bodyStream = null; + this.#noBody = type === "request" ? method === "GET" || method === "HEAD" || method === "TRACE" || method === "CONNECT" || method === "OPTIONS" || (parseInt(req.headers.get("Content-Length") || "") || 0) === 0 : !1, this.#req = req, this.method = method, this.#type = type, this.complete = !!this.#noBody, this.#bodyStream = void 0; const socket = new FakeSocket; socket.remoteAddress = url.hostname, socket.remotePort = url.port, this.#fakeSocket = socket, this.url = url.pathname + url.search, this.#nodeReq = nodeReq, assignHeaders(this, req); } @@ -399,8 +411,8 @@ class IncomingMessage extends Readable { rawHeaders; _consuming = !1; _dumped = !1; - #bodyStream = null; - #fakeSocket = void 0; + #bodyStream; + #fakeSocket; #noBody = !1; #aborted = !1; #req; @@ -422,42 +434,42 @@ class IncomingMessage extends Readable { } callback(); } - #closeBodyStream() { - debug("closeBodyStream()"); - var bodyStream = this.#bodyStream; - if (bodyStream == null) - return; - this.complete = !0, this.#bodyStream = void 0, this.push(null); + async#consumeStream(reader) { + while (!0) { + var { done, value } = await reader.readMany(); + if (this.#aborted) + return; + if (done) { + this.push(null), this.destroy(); + break; + } + for (var v of value) + this.push(v); + } } _read(size) { if (this.#noBody) this.push(null), this.complete = !0; else if (this.#bodyStream == null) { - const contentLength = this.#req.headers.get("content-length"); - let remaining = contentLength ? parseInt(contentLength, 10) : 0; - if (this.#bodyStream = Readable.fromWeb(this.#req.body, { - highWaterMark: Number.isFinite(remaining) ? Math.min(remaining, 16384) : 16384 - }), remaining > 0 && Number.isSafeInteger(remaining)) - this.#bodyStream.on("data", (chunk) => { - if (debug("body size known", remaining), this.push(chunk), remaining -= chunk?.byteLength ?? 0, remaining <= 0) - this.#closeBodyStream(); - }); - else - this.#bodyStream.on("data", (chunk) => { - this.push(chunk); - }); - this.#bodyStream && this.#bodyStream.on("end", () => { - this.#closeBodyStream(); - }); + const reader = this.#req.body?.getReader(); + if (!reader) { + this.push(null); + return; + } + this.#bodyStream = reader, this.#consumeStream(reader); } } get aborted() { return this.#aborted; } - abort() { + #abort() { if (this.#aborted) return; - this.#aborted = !0, this.#closeBodyStream(); + this.#aborted = !0; + var bodyStream = this.#bodyStream; + if (!bodyStream) + return; + bodyStream.cancel(), this.complete = !0, this.#bodyStream = void 0, this.push(null); } get connection() { return this.#fakeSocket; @@ -495,6 +507,9 @@ class IncomingMessage extends Readable { } class OutgoingMessage extends Writable { + constructor() { + super(...arguments); + } #headers; headersSent = !1; sendDate = !0; @@ -758,7 +773,7 @@ class ClientRequest extends OutgoingMessage { #useDefaultPort; #joinDuplicateHeaders; #maxHeaderSize; - #agent = _globalAgent; + #agent = globalAgent; #path; #socketPath; #body = null; @@ -862,14 +877,12 @@ class ClientRequest extends OutgoingMessage { options = ObjectAssign(input || {}, options); var defaultAgent = options._defaultAgent || Agent.globalAgent; let protocol = options.protocol; - if (!protocol) { + if (!protocol) if (options.port === 443) protocol = "https:"; else protocol = defaultAgent.protocol || "http:"; - this.#protocol = protocol; - } - switch (this.#agent?.protocol) { + switch (this.#protocol = protocol, this.#agent?.protocol) { case void 0: break; case "http:": @@ -1055,9 +1068,7 @@ var tokenRegExp = /^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/, METHODS = [ 509: "Bandwidth Limit Exceeded", 510: "Not Extended", 511: "Network Authentication Required" -}; -_globalAgent ??= new Agent; -var defaultObject = { +}, globalAgent = new Agent, defaultObject = { Agent, Server, METHODS, @@ -1068,19 +1079,19 @@ var defaultObject = { request, get, maxHeaderSize: 16384, + validateHeaderName, + validateHeaderValue, setMaxIdleHTTPParsers(max) { debug(`${NODE_HTTP_WARNING}\n`, "setMaxIdleHTTPParsers() is a no-op"); }, - get globalAgent() { - return _globalAgent; - }, - set globalAgent(agent) { - }, + globalAgent, [Symbol.for("CommonJS")]: 0 }, http_default = defaultObject; export { + validateHeaderValue, + validateHeaderName, request, - _globalAgent as globalAgent, + globalAgent, get, http_default as default, createServer, diff --git a/src/js/out/modules/node/https.js b/src/js/out/modules/node/https.js index f6a4e25d0..4fbf284d5 100644 --- a/src/js/out/modules/node/https.js +++ b/src/js/out/modules/node/https.js @@ -1,5 +1,54 @@ -export * from "node:http"; -import {default as default2} from "node:http"; +import * as http from "node:http"; +var request2 = function(input, options, cb) { + if (input && typeof input === "object" && !(input instanceof URL)) + input.protocol ??= "https:"; + else if (typeof options === "object") + options.protocol ??= "https:"; + return http.request(input, options, cb); +}, get = function(input, options, cb) { + const req = request2(input, options, cb); + return req.end(), req; +}, { + Agent, + Server, + METHODS, + STATUS_CODES, + createServer, + ServerResponse, + IncomingMessage, + maxHeaderSize, + validateHeaderName, + validateHeaderValue, + globalAgent +} = http, defaultExport = { + Agent, + Server, + METHODS, + STATUS_CODES, + createServer, + ServerResponse, + IncomingMessage, + request: request2, + get, + maxHeaderSize, + validateHeaderName, + validateHeaderValue, + globalAgent +}; +var https_default = defaultExport; export { - default2 as default + validateHeaderValue, + validateHeaderName, + request2 as request, + maxHeaderSize, + globalAgent, + get, + https_default as default, + createServer, + ServerResponse, + Server, + STATUS_CODES, + METHODS, + IncomingMessage, + Agent }; diff --git a/src/js/private.d.ts b/src/js/private.d.ts index b689c208e..500048dd7 100644 --- a/src/js/private.d.ts +++ b/src/js/private.d.ts @@ -100,6 +100,7 @@ declare module "bun" { var main: string; var tty: Array<{ hasColors: boolean }>; var FFI: any; + var fetch: typeof globalThis.fetch; } declare var Loader: { diff --git a/test/js/node/http/node-http.test.ts b/test/js/node/http/node-http.test.ts index b1910a1f7..3e7da9d34 100644 --- a/test/js/node/http/node-http.test.ts +++ b/test/js/node/http/node-http.test.ts @@ -1,5 +1,14 @@ // @ts-nocheck -import { createServer, request, get, Agent, globalAgent, Server } from "node:http"; +import { + createServer, + request, + get, + Agent, + globalAgent, + Server, + validateHeaderName, + validateHeaderValue, +} from "node:http"; import { createTest } from "node-harness"; const { describe, expect, it, beforeAll, afterAll, createDoneDotAll } = createTest(import.meta.path); @@ -624,4 +633,16 @@ describe("node:http", () => { }); }); }); + + test("validateHeaderName", () => { + validateHeaderName("Foo"); + expect(() => validateHeaderName("foo:")).toThrow(); + expect(() => validateHeaderName("foo:bar")).toThrow(); + }); + + test("validateHeaderValue", () => { + validateHeaderValue("Foo", "Bar"); + expect(() => validateHeaderValue("Foo", undefined as any)).toThrow(); + expect(() => validateHeaderValue("Foo", "Bar\r")).toThrow(); + }); }); -- cgit v1.2.3 From 02f707f231622066782066ba2c88aefab7f49377 Mon Sep 17 00:00:00 2001 From: "Alex Lam S.L" Date: Sat, 1 Jul 2023 21:44:04 +0300 Subject: [jest] fix lifecycle hook execution order (#3461) * [jest] fix lifecycle hook execution order * strip `std.debug.assert()` from release build --- src/bun.js/test/jest.zig | 201 +++++++++++++++++++++--------------- test/js/bun/test/jest-hooks.test.ts | 31 ++++++ test/js/bun/test/test-test.test.ts | 6 +- 3 files changed, 153 insertions(+), 85 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/test/jest.zig b/src/bun.js/test/jest.zig index d53194e00..6e4cb827c 100644 --- a/src/bun.js/test/jest.zig +++ b/src/bun.js/test/jest.zig @@ -493,8 +493,7 @@ pub const Jest = struct { var filepath = Fs.FileSystem.instance.filename_store.append([]const u8, slice) catch unreachable; var scope = runner_.getOrPutFile(filepath); - DescribeScope.active = scope; - DescribeScope.module = scope; + scope.push(); return Bun__Jest__testModuleObject(ctx).asObjectRef(); } @@ -751,17 +750,23 @@ pub const DescribeScope = struct { } pub fn push(new: *DescribeScope) void { - if (comptime is_bindgen) return undefined; - if (new == DescribeScope.active) return; - - new.parent = DescribeScope.active; + if (comptime is_bindgen) return; + if (new.parent) |scope| { + if (comptime Environment.allow_assert) { + std.debug.assert(DescribeScope.active != new); + std.debug.assert(scope == DescribeScope.active); + } + } else if (DescribeScope.active) |scope| { + // calling Bun.jest() within (already active) module + if (scope.parent != null) return; + } DescribeScope.active = new; } pub fn pop(this: *DescribeScope) void { - if (comptime is_bindgen) return undefined; - if (DescribeScope.active == this) - DescribeScope.active = this.parent orelse DescribeScope.active; + if (comptime is_bindgen) return; + if (comptime Environment.allow_assert) std.debug.assert(DescribeScope.active == this); + DescribeScope.active = this.parent; } pub const LifecycleHook = enum { @@ -771,8 +776,7 @@ pub const DescribeScope = struct { afterAll, }; - pub threadlocal var active: *DescribeScope = undefined; - pub threadlocal var module: *DescribeScope = undefined; + pub threadlocal var active: ?*DescribeScope = null; const CallbackFn = *const fn ( *JSC.JSGlobalObject, @@ -781,21 +785,24 @@ pub const DescribeScope = struct { fn createCallback(comptime hook: LifecycleHook) CallbackFn { return struct { - const this_hook = hook; pub fn run( globalThis: *JSC.JSGlobalObject, callframe: *JSC.CallFrame, ) callconv(.C) JSC.JSValue { - const arguments_ = callframe.arguments(2); - const arguments = arguments_.ptr[0..arguments_.len]; - if (arguments.len == 0 or !arguments[0].isObject() or !arguments[0].isCallable(globalThis.vm())) { - globalThis.throwInvalidArgumentType(@tagName(this_hook), "callback", "function"); + const arguments = callframe.arguments(2); + if (arguments.len < 1) { + globalThis.throwNotEnoughArguments("callback", 1, arguments.len); + return .zero; + } + + const cb = arguments.ptr[0]; + if (!cb.isObject() or !cb.isCallable(globalThis.vm())) { + globalThis.throwInvalidArgumentType(@tagName(hook), "callback", "function"); return .zero; } - arguments[0].protect(); - const name = comptime @as(string, @tagName(this_hook)); - @field(DescribeScope.active, name).append(getAllocator(globalThis), arguments[0]) catch unreachable; + cb.protect(); + @field(DescribeScope.active.?, @tagName(hook)).append(getAllocator(globalThis), cb) catch unreachable; return JSC.JSValue.jsBoolean(true); } }.run; @@ -829,11 +836,24 @@ pub const DescribeScope = struct { pub const beforeAll = createCallback(.beforeAll); pub const beforeEach = createCallback(.beforeEach); - pub fn execCallback(this: *DescribeScope, globalObject: *JSC.JSGlobalObject, comptime hook: LifecycleHook) JSValue { - const name = comptime @as(string, @tagName(hook)); - var hooks: []JSC.JSValue = @field(this, name).items; - for (hooks, 0..) |cb, i| { - if (cb.isEmpty()) continue; + pub fn execCallback(this: *DescribeScope, globalObject: *JSC.JSGlobalObject, comptime hook: LifecycleHook) ?JSValue { + var hooks = &@field(this, @tagName(hook)); + defer { + if (comptime hook == .beforeAll or hook == .afterAll) { + hooks.clearAndFree(getAllocator(globalObject)); + } + } + + for (hooks.items) |cb| { + if (comptime Environment.allow_assert) { + std.debug.assert(cb.isObject()); + std.debug.assert(cb.isCallable(globalObject.vm())); + } + defer { + if (comptime hook == .beforeAll or hook == .afterAll) { + cb.unprotect(); + } + } const pending_test = Jest.runner.?.pending_test; // forbid `expect()` within hooks @@ -843,20 +863,23 @@ pub const DescribeScope = struct { Jest.runner.?.did_pending_test_fail = false; const vm = VirtualMachine.get(); - var result: JSC.JSValue = if (cb.getLength(globalObject) > 0) brk: { - this.done = false; - const done_func = JSC.NewFunctionWithData( - globalObject, - ZigString.static("done"), - 0, - DescribeScope.onDone, - false, - this, - ); - var result = cb.call(globalObject, &.{done_func}); - vm.waitFor(&this.done); - break :brk result; - } else cb.call(globalObject, &.{}); + var result: JSC.JSValue = switch (cb.getLength(globalObject)) { + 0 => cb.call(globalObject, &.{}), + else => brk: { + this.done = false; + const done_func = JSC.NewFunctionWithData( + globalObject, + ZigString.static("done"), + 0, + DescribeScope.onDone, + false, + this, + ); + var result = cb.call(globalObject, &.{done_func}); + vm.waitFor(&this.done); + break :brk result; + }, + }; if (result.asAnyPromise()) |promise| { if (promise.status(globalObject.vm()) == .Pending) { result.protect(); @@ -870,19 +893,30 @@ pub const DescribeScope = struct { Jest.runner.?.pending_test = pending_test; Jest.runner.?.did_pending_test_fail = orig_did_pending_test_fail; if (result.isAnyError()) return result; - - if (comptime hook == .beforeAll or hook == .afterAll) { - hooks[i] = JSC.JSValue.zero; - } } - return JSValue.zero; + return null; } pub fn runGlobalCallbacks(globalThis: *JSC.JSGlobalObject, comptime hook: LifecycleHook) ?JSValue { // global callbacks - for (@field(Jest.runner.?.global_callbacks, @tagName(hook)).items) |cb| { - if (cb.isEmpty()) continue; + var hooks = &@field(Jest.runner.?.global_callbacks, @tagName(hook)); + defer { + if (comptime hook == .beforeAll or hook == .afterAll) { + hooks.clearAndFree(getAllocator(globalThis)); + } + } + + for (hooks.items) |cb| { + if (comptime Environment.allow_assert) { + std.debug.assert(cb.isObject()); + std.debug.assert(cb.isCallable(globalThis.vm())); + } + defer { + if (comptime hook == .beforeAll or hook == .afterAll) { + cb.unprotect(); + } + } const pending_test = Jest.runner.?.pending_test; // forbid `expect()` within hooks @@ -909,28 +943,40 @@ pub const DescribeScope = struct { if (result.isAnyError()) return result; } - if (comptime hook == .beforeAll or hook == .afterAll) { - @field(Jest.runner.?.global_callbacks, @tagName(hook)).items.len = 0; - } - return null; } - pub fn runCallback(this: *DescribeScope, globalObject: *JSC.JSGlobalObject, comptime hook: LifecycleHook) JSValue { + fn runBeforeCallbacks(this: *DescribeScope, globalObject: *JSC.JSGlobalObject, comptime hook: LifecycleHook) ?JSValue { + if (this.parent) |scope| { + if (scope.runBeforeCallbacks(globalObject, hook)) |err| { + return err; + } + } + return this.execCallback(globalObject, hook); + } + + pub fn runCallback(this: *DescribeScope, globalObject: *JSC.JSGlobalObject, comptime hook: LifecycleHook) ?JSValue { + if (comptime hook == .afterAll or hook == .afterEach) { + var parent: ?*DescribeScope = this; + while (parent) |scope| { + if (scope.execCallback(globalObject, hook)) |err| { + return err; + } + parent = scope.parent; + } + } + if (runGlobalCallbacks(globalObject, hook)) |err| { return err; } - var parent = this.parent; - while (parent) |scope| { - const ret = scope.execCallback(globalObject, hook); - if (!ret.isEmpty()) { - return ret; + if (comptime hook == .beforeAll or hook == .beforeEach) { + if (this.runBeforeCallbacks(globalObject, hook)) |err| { + return err; } - parent = scope.parent; } - return this.execCallback(globalObject, hook); + return null; } pub fn call(globalThis: *JSGlobalObject, callframe: *CallFrame) callconv(.C) JSValue { @@ -961,11 +1007,8 @@ pub const DescribeScope = struct { if (comptime is_bindgen) return undefined; callback.protect(); defer callback.unprotect(); - var original_active = active; - defer active = original_active; - if (this != module) - this.parent = this.parent orelse active; - active = this; + this.push(); + defer this.pop(); if (callback == .zero) { this.runTests(globalObject); @@ -1019,8 +1062,7 @@ pub const DescribeScope = struct { var i: TestRunner.Test.ID = 0; if (!this.isAllSkipped()) { - const beforeAllCallback = this.runCallback(globalObject, .beforeAll); - if (!beforeAllCallback.isEmpty()) { + if (this.runCallback(globalObject, .beforeAll)) |_| { while (i < end) { Jest.runner.?.reportFailure(i + this.test_id_start, source.path.text, tests[i].label, 0, 0, this); i += 1; @@ -1051,9 +1093,8 @@ pub const DescribeScope = struct { this.pending_tests.unset(test_id); if (!skipped) { - const afterEach_result = this.runCallback(globalThis, .afterEach); - if (!afterEach_result.isEmpty()) { - globalThis.bunVM().runErrorHandler(afterEach_result, null); + if (this.runCallback(globalThis, .afterEach)) |err| { + globalThis.bunVM().runErrorHandler(err, null); } } @@ -1064,9 +1105,8 @@ pub const DescribeScope = struct { if (!this.isAllSkipped()) { // Run the afterAll callbacks, in reverse order // unless there were no tests for this scope - const afterAll_result = this.execCallback(globalThis, .afterAll); - if (!afterAll_result.isEmpty()) { - globalThis.bunVM().runErrorHandler(afterAll_result, null); + if (this.execCallback(globalThis, .afterAll)) |err| { + globalThis.bunVM().runErrorHandler(err, null); } } @@ -1146,7 +1186,6 @@ pub const TestRunnerTask = struct { // reset the global state for each test // prior to the run - DescribeScope.active = describe; expect.active_test_expectation_counter = .{}; jsc_vm.last_reported_error_for_dedupe = .zero; @@ -1178,11 +1217,9 @@ pub const TestRunnerTask = struct { this.needs_before_each = false; const label = test_.label; - const beforeEach = this.describe.runCallback(globalThis, .beforeEach); - - if (!beforeEach.isEmpty()) { + if (this.describe.runCallback(globalThis, .beforeEach)) |err| { Jest.runner.?.reportFailure(test_id, this.source_file_path, label, 0, 0, this.describe); - jsc_vm.runErrorHandler(beforeEach, null); + jsc_vm.runErrorHandler(err, null); return false; } } @@ -1210,7 +1247,7 @@ pub const TestRunnerTask = struct { } pub fn timeout(this: *TestRunnerTask) void { - std.debug.assert(!this.reported); + if (comptime Environment.allow_assert) std.debug.assert(!this.reported); this.ref.unref(this.globalThis.bunVM()); this.globalThis.throwTerminationException(); @@ -1223,7 +1260,7 @@ pub const TestRunnerTask = struct { switch (comptime from) { .promise => { - std.debug.assert(this.promise_state == .pending); + if (comptime Environment.allow_assert) std.debug.assert(this.promise_state == .pending); this.promise_state = .fulfilled; if (this.done_callback_state == .pending and result == .pass) { @@ -1231,7 +1268,7 @@ pub const TestRunnerTask = struct { } }, .callback => { - std.debug.assert(this.done_callback_state == .pending); + if (comptime Environment.allow_assert) std.debug.assert(this.done_callback_state == .pending); this.done_callback_state = .fulfilled; if (this.promise_state == .pending and result == .pass) { @@ -1239,7 +1276,7 @@ pub const TestRunnerTask = struct { } }, .sync => { - std.debug.assert(this.sync_state == .pending); + if (comptime Environment.allow_assert) std.debug.assert(this.sync_state == .pending); this.sync_state = .fulfilled; }, .timeout, .unhandledRejection => {}, @@ -1417,7 +1454,7 @@ inline fn createScope( return .zero; } - const parent = DescribeScope.active; + const parent = DescribeScope.active.?; const allocator = getAllocator(globalThis); const label = if (description == .zero) "" @@ -1502,8 +1539,8 @@ inline fn createIfScope( // In Github Actions, emit an annotation that renders the error and location. // https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-error-message pub fn printGithubAnnotation(exception: *JSC.ZigException) void { - const name = @field(exception, "name"); - const message = @field(exception, "message"); + const name = exception.name; + const message = exception.message; const frames = exception.stack.frames(); const top_frame = if (frames.len > 0) frames[0] else null; const dir = bun.getenvZ("GITHUB_WORKSPACE") orelse bun.fs.FileSystem.instance.top_level_dir; diff --git a/test/js/bun/test/jest-hooks.test.ts b/test/js/bun/test/jest-hooks.test.ts index c99dc7759..618cdc4c6 100644 --- a/test/js/bun/test/jest-hooks.test.ts +++ b/test/js/bun/test/jest-hooks.test.ts @@ -1,5 +1,36 @@ import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it } from "bun:test"; +let hooks_run: string[] = []; + +beforeAll(() => hooks_run.push("global beforeAll")); +beforeEach(() => hooks_run.push("global beforeEach")); +afterAll(() => hooks_run.push("global afterAll")); +afterEach(() => hooks_run.push("global afterEach")); + +describe("describe scope", () => { + beforeAll(() => hooks_run.push("describe beforeAll")); + beforeEach(() => hooks_run.push("describe beforeEach")); + afterAll(() => hooks_run.push("describe afterAll")); + afterEach(() => hooks_run.push("describe afterEach")); + + it("should run after beforeAll/beforeEach in the correct order", () => { + expect(hooks_run).toEqual(["global beforeAll", "describe beforeAll", "global beforeEach", "describe beforeEach"]); + }); + + it("should run after afterEach/afterAll in the correct order", () => { + expect(hooks_run).toEqual([ + "global beforeAll", + "describe beforeAll", + "global beforeEach", + "describe beforeEach", + "describe afterEach", + "global afterEach", + "global beforeEach", + "describe beforeEach", + ]); + }); +}); + describe("test jest hooks in bun-test", () => { describe("test beforeAll hook", () => { let animal = "tiger"; diff --git a/test/js/bun/test/test-test.test.ts b/test/js/bun/test/test-test.test.ts index 7ecfdef11..5f732bb82 100644 --- a/test/js/bun/test/test-test.test.ts +++ b/test/js/bun/test/test-test.test.ts @@ -540,18 +540,18 @@ beforeEach: #2 beforeEach: TEST-FILE beforeEach: one describe scope -- inside one describe scope -- +afterEach: one describe scope +afterEach: TEST-FILE afterEach: #1 afterEach: #2 -afterEach: TEST-FILE -afterEach: one describe scope afterAll: one describe scope beforeEach: #1 beforeEach: #2 beforeEach: TEST-FILE -- the top-level test -- +afterEach: TEST-FILE afterEach: #1 afterEach: #2 -afterEach: TEST-FILE afterAll: TEST-FILE afterAll: #1 afterAll: #2 -- cgit v1.2.3 From c794ea7ea76b1081f90759d494546cc67a86e318 Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Sat, 1 Jul 2023 13:31:12 -0700 Subject: Add test --- test/js/bun/util/error-gc-test.test.js | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'test/js') diff --git a/test/js/bun/util/error-gc-test.test.js b/test/js/bun/util/error-gc-test.test.js index 5f9134d4c..247bd68ef 100644 --- a/test/js/bun/util/error-gc-test.test.js +++ b/test/js/bun/util/error-gc-test.test.js @@ -33,3 +33,12 @@ test("error gc test #2", () => { Bun.gc(); } }); + +test("error gc test #2", () => { + for (let i = 0; i < 1000; i++) { + var err = new Error(); + Error.captureStackTrace(err); + Bun.inspect(err); + Bun.gc(); + } +}); -- cgit v1.2.3 From c033d55c47fc914a7725295aaf3304c177102a18 Mon Sep 17 00:00:00 2001 From: Dylan Conway <35280289+dylan-conway@users.noreply.github.com> Date: Sat, 1 Jul 2023 14:38:38 -0700 Subject: skip private class fields (#3484) --- src/bun.js/bindings/bindings.cpp | 12 ++++----- test/js/bun/test/expect.test.js | 56 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 6 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/bindings/bindings.cpp b/src/bun.js/bindings/bindings.cpp index be3408555..96fcde303 100644 --- a/src/bun.js/bindings/bindings.cpp +++ b/src/bun.js/bindings/bindings.cpp @@ -679,8 +679,8 @@ bool Bun__deepEquals(JSC__JSGlobalObject* globalObject, JSValue v1, JSValue v2, return false; } - JSC::PropertyNameArray a1(vm, PropertyNameMode::Symbols, PrivateSymbolMode::Include); - JSC::PropertyNameArray a2(vm, PropertyNameMode::Symbols, PrivateSymbolMode::Include); + JSC::PropertyNameArray a1(vm, PropertyNameMode::Symbols, PrivateSymbolMode::Exclude); + JSC::PropertyNameArray a2(vm, PropertyNameMode::Symbols, PrivateSymbolMode::Exclude); JSObject::getOwnPropertyNames(o1, globalObject, a1, DontEnumPropertiesMode::Exclude); JSObject::getOwnPropertyNames(o2, globalObject, a2, DontEnumPropertiesMode::Exclude); @@ -753,7 +753,7 @@ bool Bun__deepEquals(JSC__JSGlobalObject* globalObject, JSValue v1, JSValue v2, } o1Structure->forEachProperty(vm, [&](const PropertyTableEntry& entry) -> bool { - if (entry.attributes() & PropertyAttribute::DontEnum) { + if (entry.attributes() & PropertyAttribute::DontEnum || PropertyName(entry.key()).isPrivateName()) { return true; } count1++; @@ -787,7 +787,7 @@ bool Bun__deepEquals(JSC__JSGlobalObject* globalObject, JSValue v1, JSValue v2, if (result && o2Structure->id() != o1Structure->id()) { size_t remain = count1; o2Structure->forEachProperty(vm, [&](const PropertyTableEntry& entry) -> bool { - if (entry.attributes() & PropertyAttribute::DontEnum) { + if (entry.attributes() & PropertyAttribute::DontEnum || PropertyName(entry.key()).isPrivateName()) { return true; } @@ -815,8 +815,8 @@ bool Bun__deepEquals(JSC__JSGlobalObject* globalObject, JSValue v1, JSValue v2, } } - JSC::PropertyNameArray a1(vm, PropertyNameMode::StringsAndSymbols, PrivateSymbolMode::Include); - JSC::PropertyNameArray a2(vm, PropertyNameMode::StringsAndSymbols, PrivateSymbolMode::Include); + JSC::PropertyNameArray a1(vm, PropertyNameMode::StringsAndSymbols, PrivateSymbolMode::Exclude); + JSC::PropertyNameArray a2(vm, PropertyNameMode::StringsAndSymbols, PrivateSymbolMode::Exclude); o1->getPropertyNames(globalObject, a1, DontEnumPropertiesMode::Exclude); o2->getPropertyNames(globalObject, a2, DontEnumPropertiesMode::Exclude); diff --git a/test/js/bun/test/expect.test.js b/test/js/bun/test/expect.test.js index e7195d6f8..ed94b7e9a 100644 --- a/test/js/bun/test/expect.test.js +++ b/test/js/bun/test/expect.test.js @@ -1335,6 +1335,62 @@ describe("expect()", () => { expect([1, 2, 3, 4]).not.toEqual([1, 2, 3]); }); + test("toEqual() - private class fields", () => { + class A { + #three = 3; + set three(value) { + this.#three = value; + } + + get three() { + return this.#three; + } + } + + class B { + #three = 3; + set three(value) { + this.#three = value; + } + + get three() { + return this.#three; + } + } + + let a1 = new A(); + let a2 = new A(); + a1.three = 4; + expect(a1).toEqual(a2); + expect(a2).toEqual(a1); + + let a3 = new A(); + let a4 = new A(); + a3.three = 4; + // use indexed properties for slow path + a3[1] = 2; + a4[1] = 2; + expect(a3).toEqual(a4); + expect(a4).toEqual(a3); + + let b1 = new B(); + let a5 = new A(); + expect(b1).toEqual(a5); + expect(a5).toEqual(b1); + + b1.three = 4; + expect(b1).toEqual(a5); + expect(a5).toEqual(b1); + + b1[1] = 2; + expect(b1).not.toEqual(a5); + expect(a5).not.toEqual(b1); + + a5[1] = 2; + expect(b1).toEqual(a5); + expect(a5).toEqual(b1); + }); + test("properties with different circularity are not equal", () => { const a = {}; a.x = { y: a }; -- cgit v1.2.3 From 4720fa1207d374a2447d457ad478f9f8911b959a Mon Sep 17 00:00:00 2001 From: Ai Hoshino Date: Sun, 2 Jul 2023 08:01:52 +0800 Subject: [WIP]Fix calling `Buffer.toString` with `(offset, length, encoding)` (#3467) * Allow `toString` to be called with `(offset, length, encoding)`. Close: #3085 * handle undefined value * add tests for buffer.xxxSlice * fix parameters * fix offset and length --- src/bun.js/bindings/JSBuffer.cpp | 67 ++++++++++++++++++------------ src/js/builtins/JSBufferPrototype.ts | 32 +++++++-------- test/js/node/buffer.test.js | 79 ++++++++++++++++++++++++++++++++++++ 3 files changed, 135 insertions(+), 43 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/bindings/JSBuffer.cpp b/src/bun.js/bindings/JSBuffer.cpp index 00965da89..4b0e058dd 100644 --- a/src/bun.js/bindings/JSBuffer.cpp +++ b/src/bun.js/bindings/JSBuffer.cpp @@ -1436,43 +1436,56 @@ static inline JSC::EncodedJSValue jsBufferPrototypeFunction_toStringBody(JSC::JS if (length == 0) return JSC::JSValue::encode(JSC::jsEmptyString(vm)); - switch (callFrame->argumentCount()) { - case 0: { - break; - } - case 2: - case 3: - case 1: { - EnsureStillAliveScope arg1 = callFrame->uncheckedArgument(0); - if (!arg1.value().isUndefined()) { - encoding = parseEncoding(lexicalGlobalObject, scope, arg1.value()); + size_t argsCount = callFrame->argumentCount(); + + JSC::JSValue arg1 = callFrame->argument(0); + JSC::JSValue arg2 = callFrame->argument(1); + JSC::JSValue arg3 = callFrame->argument(2); + + // This method could be called in following forms: + // - toString() + // - toString(encoding) + // - toString(encoding, start) + // - toString(encoding, start, end) + // - toString(offset, length) + // - toString(offset, length, encoding) + if (argsCount == 0) + return jsBufferToString(vm, lexicalGlobalObject, castedThis, offset, length, encoding); + + if (arg1.isString()) { + encoding = parseEncoding(lexicalGlobalObject, scope, arg1); RETURN_IF_EXCEPTION(scope, JSC::JSValue::encode(jsUndefined())); - } - if (callFrame->argumentCount() == 1) - break; - } - // any - case 5: { - JSC::JSValue arg2 = callFrame->uncheckedArgument(1); - int32_t ioffset = arg2.toInt32(lexicalGlobalObject); + + if (!arg3.isUndefined()) { + // length is end + length = std::min(byteLength, static_cast(arg3.toInt32(lexicalGlobalObject))); + } + + int32_t istart = arg2.toInt32(lexicalGlobalObject); + if (istart < 0) { + throwTypeError(lexicalGlobalObject, scope, "Start must be a positive integer"_s); + return JSC::JSValue::encode(jsUndefined()); + } + offset = static_cast(istart); + length = (length > offset) ? (length - offset) : 0; + } else { + int32_t ioffset = arg1.toInt32(lexicalGlobalObject); if (ioffset < 0) { throwTypeError(lexicalGlobalObject, scope, "Offset must be a positive integer"_s); return JSC::JSValue::encode(jsUndefined()); } offset = static_cast(ioffset); + length = (length > offset) ? (length - offset) : 0; - if (callFrame->argumentCount() == 2) - break; - } + if (!arg3.isUndefined()) { + encoding = parseEncoding(lexicalGlobalObject, scope, arg3); + RETURN_IF_EXCEPTION(scope, JSC::JSValue::encode(jsUndefined())); + } - default: { - length = std::min(byteLength, static_cast(callFrame->argument(2).toInt32(lexicalGlobalObject))); - break; - } + if (!arg2.isUndefined()) + length = std::min(length, static_cast(arg2.toInt32(lexicalGlobalObject))); } - length -= std::min(offset, length); - return jsBufferToString(vm, lexicalGlobalObject, castedThis, offset, length, encoding); } diff --git a/src/js/builtins/JSBufferPrototype.ts b/src/js/builtins/JSBufferPrototype.ts index 97b25b9b2..f5d6a7bfb 100644 --- a/src/js/builtins/JSBufferPrototype.ts +++ b/src/js/builtins/JSBufferPrototype.ts @@ -427,29 +427,29 @@ export function hexWrite(this: BufferExt, text, offset, length) { return this.write(text, offset, length, "hex"); } -export function utf8Slice(this: BufferExt, offset, length) { - return this.toString(offset, length, "utf8"); +export function utf8Slice(this: BufferExt, start, end) { + return this.toString("utf8", start, end); } -export function ucs2Slice(this: BufferExt, offset, length) { - return this.toString(offset, length, "ucs2"); +export function ucs2Slice(this: BufferExt, start, end) { + return this.toString("ucs2", start, end); } -export function utf16leSlice(this: BufferExt, offset, length) { - return this.toString(offset, length, "utf16le"); +export function utf16leSlice(this: BufferExt, start, end) { + return this.toString("utf16le", start, end); } -export function latin1Slice(this: BufferExt, offset, length) { - return this.toString(offset, length, "latin1"); +export function latin1Slice(this: BufferExt, start, end) { + return this.toString("latin1", start, end); } -export function asciiSlice(this: BufferExt, offset, length) { - return this.toString(offset, length, "ascii"); +export function asciiSlice(this: BufferExt, start, end) { + return this.toString("ascii", start, end); } -export function base64Slice(this: BufferExt, offset, length) { - return this.toString(offset, length, "base64"); +export function base64Slice(this: BufferExt, start, end) { + return this.toString("base64", start, end); } -export function base64urlSlice(this: BufferExt, offset, length) { - return this.toString(offset, length, "base64url"); +export function base64urlSlice(this: BufferExt, start, end) { + return this.toString("base64url", start, end); } -export function hexSlice(this: BufferExt, offset, length) { - return this.toString(offset, length, "hex"); +export function hexSlice(this: BufferExt, start, end) { + return this.toString("hex", start, end); } export function toJSON(this: BufferExt) { diff --git a/test/js/node/buffer.test.js b/test/js/node/buffer.test.js index 697774e0a..e0d8f5486 100644 --- a/test/js/node/buffer.test.js +++ b/test/js/node/buffer.test.js @@ -2353,6 +2353,85 @@ it("Buffer.byteLength()", () => { } }); +it("Buffer.toString(encoding, start, end)", () => { + const buf = Buffer.from("0123456789", "utf8"); + + expect(buf.toString()).toStrictEqual("0123456789"); + expect(buf.toString("utf8")).toStrictEqual("0123456789"); + expect(buf.toString("utf8", 3)).toStrictEqual("3456789"); + expect(buf.toString("utf8", 3, 4)).toStrictEqual("3"); + + expect(buf.toString("utf8", 3, 100)).toStrictEqual("3456789"); + expect(buf.toString("utf8", 3, 1)).toStrictEqual(""); + expect(buf.toString("utf8", 100, 200)).toStrictEqual(""); + expect(buf.toString("utf8", 100, 1)).toStrictEqual(""); +}); + +it("Buffer.toString(offset, length, encoding)", () => { + const buf = Buffer.from("0123456789", "utf8"); + + expect(buf.toString(3, 6, "utf8")).toStrictEqual("345678"); + expect(buf.toString(3, 100, "utf8")).toStrictEqual("3456789"); + expect(buf.toString(100, 200, "utf8")).toStrictEqual(""); + expect(buf.toString(100, 50, "utf8")).toStrictEqual(""); +}); + +it("Buffer.asciiSlice())", () => { + const buf = Buffer.from("0123456789", "ascii"); + + expect(buf.asciiSlice()).toStrictEqual("0123456789"); + expect(buf.asciiSlice(3)).toStrictEqual("3456789"); + expect(buf.asciiSlice(3, 4)).toStrictEqual("3"); +}); + +it("Buffer.latin1Slice()", () => { + const buf = Buffer.from("âéö", "latin1"); + + expect(buf.latin1Slice()).toStrictEqual("âéö"); + expect(buf.latin1Slice(1)).toStrictEqual("éö"); + expect(buf.latin1Slice(1, 2)).toStrictEqual("é"); +}); + +it("Buffer.utf8Slice()", () => { + const buf = Buffer.from("あいうえお", "utf8"); + + expect(buf.utf8Slice()).toStrictEqual("あいうえお"); + expect(buf.utf8Slice(3)).toStrictEqual("いうえお"); + expect(buf.utf8Slice(3, 6)).toStrictEqual("い"); +}); + +it("Buffer.hexSlice()", () => { + const buf = Buffer.from("0123456789", "utf8"); + + expect(buf.hexSlice()).toStrictEqual("30313233343536373839"); + expect(buf.hexSlice(3)).toStrictEqual("33343536373839"); + expect(buf.hexSlice(3, 4)).toStrictEqual("33"); +}); + +it("Buffer.ucs2Slice()", () => { + const buf = Buffer.from("あいうえお", "ucs2"); + + expect(buf.ucs2Slice()).toStrictEqual("あいうえお"); + expect(buf.ucs2Slice(2)).toStrictEqual("いうえお"); + expect(buf.ucs2Slice(2, 6)).toStrictEqual("いう"); +}); + +it("Buffer.base64Slice()", () => { + const buf = Buffer.from("0123456789", "utf8"); + + expect(buf.base64Slice()).toStrictEqual("MDEyMzQ1Njc4OQ=="); + expect(buf.base64Slice(3)).toStrictEqual("MzQ1Njc4OQ=="); + expect(buf.base64Slice(3, 4)).toStrictEqual("Mw=="); +}); + +it("Buffer.base64urlSlice()", () => { + const buf = Buffer.from("0123456789", "utf8"); + + expect(buf.base64urlSlice()).toStrictEqual("MDEyMzQ1Njc4OQ"); + expect(buf.base64urlSlice(3)).toStrictEqual("MzQ1Njc4OQ"); + expect(buf.base64urlSlice(3, 4)).toStrictEqual("Mw"); +}); + it("should not crash on invalid UTF-8 byte sequence", () => { const buf = Buffer.from([0xc0, 0xfd]); expect(buf.length).toBe(2); -- cgit v1.2.3 From f00e2be548da21b9feaef178bb0ac22230801d6f Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Sat, 1 Jul 2023 17:37:44 -0700 Subject: Use `BunString` in `SystemError` (#3485) * Use `BunString` in SystemError * Use Bun::toStringRef when we will de-ref strings * Move `napi_create_error` to C++ to support `code` being a Symbol potentially * Update blob.zig * Make this test less flaky --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> --- src/bun.js/api/bun/dns_resolver.zig | 8 ++-- src/bun.js/api/bun/socket.zig | 12 ++--- src/bun.js/api/ffi.zig | 6 +-- src/bun.js/api/server.zig | 12 ++--- src/bun.js/bindings/BunString.cpp | 48 +++++++++++++++++--- src/bun.js/bindings/bindings.cpp | 66 +++++++++++++--------------- src/bun.js/bindings/bindings.zig | 8 ++-- src/bun.js/bindings/headers-handwritten.h | 12 +++-- src/bun.js/bindings/helpers.h | 4 +- src/bun.js/bindings/napi.cpp | 29 +++++++++--- src/bun.js/bindings/webcore/JSCloseEvent.cpp | 2 +- src/bun.js/node/node_os.zig | 32 +++++++------- src/bun.js/node/syscall.zig | 8 ++-- src/bun.js/webcore/blob.zig | 55 +++++++++++------------ src/bun.js/webcore/response.zig | 14 +++--- src/bun.js/webcore/streams.zig | 6 +-- src/bundler/bundle_v2.zig | 16 +++++-- src/http.zig | 5 ++- src/napi/napi.zig | 11 +---- test/js/bun/util/error-gc-test.test.js | 41 ++++++++++++++++- 20 files changed, 242 insertions(+), 153 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/api/bun/dns_resolver.zig b/src/bun.js/api/bun/dns_resolver.zig index fee834e5e..d0d4f5b7b 100644 --- a/src/bun.js/api/bun/dns_resolver.zig +++ b/src/bun.js/api/bun/dns_resolver.zig @@ -1925,8 +1925,8 @@ pub const DNSResolver = struct { .err => |err| { const system_error = JSC.SystemError{ .errno = -1, - .code = JSC.ZigString.init(err.code()), - .message = JSC.ZigString.init(err.label()), + .code = bun.String.static(err.code()), + .message = bun.String.static(err.label()), }; globalThis.throwValue(system_error.toErrorInstance(globalThis)); @@ -1972,8 +1972,8 @@ pub const DNSResolver = struct { .err => |err| { const system_error = JSC.SystemError{ .errno = -1, - .code = JSC.ZigString.init(err.code()), - .message = JSC.ZigString.init(err.label()), + .code = bun.String.static(err.code()), + .message = bun.String.static(err.label()), }; globalThis.throwValue(system_error.toErrorInstance(globalThis)); diff --git a/src/bun.js/api/bun/socket.zig b/src/bun.js/api/bun/socket.zig index 00e34a77d..69d6611cb 100644 --- a/src/bun.js/api/bun/socket.zig +++ b/src/bun.js/api/bun/socket.zig @@ -1022,8 +1022,8 @@ fn NewSocket(comptime ssl: bool) type { var globalObject = handlers.globalObject; const err = JSC.SystemError{ .errno = errno, - .message = ZigString.init("Failed to connect"), - .syscall = ZigString.init("connect"), + .message = bun.String.static("Failed to connect"), + .syscall = bun.String.static("connect"), }; if (callback == .zero) { @@ -1232,8 +1232,8 @@ fn NewSocket(comptime ssl: bool) type { const reason = if (ssl_error.reason == null) "" else ssl_error.reason[0..bun.len(ssl_error.reason)]; const fallback = JSC.SystemError{ - .code = ZigString.init(code), - .message = ZigString.init(reason), + .code = bun.String.create(code), + .message = bun.String.create(reason), }; authorization_error = fallback.toErrorInstance(globalObject); @@ -1409,8 +1409,8 @@ fn NewSocket(comptime ssl: bool) type { const reason = if (ssl_error.reason == null) "" else ssl_error.reason[0..bun.len(ssl_error.reason)]; const fallback = JSC.SystemError{ - .code = ZigString.init(code), - .message = ZigString.init(reason), + .code = bun.String.create(code), + .message = bun.String.create(reason), }; return fallback.toErrorInstance(globalObject); diff --git a/src/bun.js/api/ffi.zig b/src/bun.js/api/ffi.zig index e46e054ec..ba31b67ed 100644 --- a/src/bun.js/api/ffi.zig +++ b/src/bun.js/api/ffi.zig @@ -311,9 +311,9 @@ pub const FFI = struct { break :brk std.DynLib.open(backup_name) catch { // Then, if that fails, report an error. const system_error = JSC.SystemError{ - .code = ZigString.init(@tagName(JSC.Node.ErrorCode.ERR_DLOPEN_FAILED)), - .message = ZigString.init("Failed to open library. This is usually caused by a missing library or an invalid library path."), - .syscall = ZigString.init("dlopen"), + .code = bun.String.create(@tagName(JSC.Node.ErrorCode.ERR_DLOPEN_FAILED)), + .message = bun.String.create("Failed to open library. This is usually caused by a missing library or an invalid library path."), + .syscall = bun.String.create("dlopen"), }; return system_error.toErrorInstance(global); }; diff --git a/src/bun.js/api/server.zig b/src/bun.js/api/server.zig index 136737069..140e62ce4 100644 --- a/src/bun.js/api/server.zig +++ b/src/bun.js/api/server.zig @@ -1796,7 +1796,7 @@ fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, comp .syscall = .sendfile, }; var sys = err.withPathLike(file.pathlike).toSystemError(); - sys.message = ZigString.init("MacOS does not support sending non-regular files"); + sys.message = bun.String.static("MacOS does not support sending non-regular files"); this.runErrorHandler(sys.toErrorInstance( this.server.globalThis, )); @@ -1815,7 +1815,7 @@ fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, comp .syscall = .sendfile, }; var sys = err.withPathLike(file.pathlike).toSystemError(); - sys.message = ZigString.init("File must be regular or FIFO"); + sys.message = bun.String.static("File must be regular or FIFO"); this.runErrorHandler(sys.toErrorInstance( this.server.globalThis, )); @@ -2375,8 +2375,8 @@ fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, comp } const fallback = JSC.SystemError{ - .code = ZigString.init(@as(string, @tagName(JSC.Node.ErrorCode.ERR_UNHANDLED_ERROR))), - .message = ZigString.init("Unhandled error in ReadableStream"), + .code = bun.String.static(@as(string, @tagName(JSC.Node.ErrorCode.ERR_UNHANDLED_ERROR))), + .message = bun.String.static("Unhandled error in ReadableStream"), }; req.handleReject(fallback.toErrorInstance(globalThis)); } @@ -2422,8 +2422,8 @@ fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, comp if (stream.isLocked(this.server.globalThis)) { streamLog("was locked but it shouldn't be", .{}); var err = JSC.SystemError{ - .code = ZigString.init(@as(string, @tagName(JSC.Node.ErrorCode.ERR_STREAM_CANNOT_PIPE))), - .message = ZigString.init("Stream already used, please create a new one"), + .code = bun.String.static(@as(string, @tagName(JSC.Node.ErrorCode.ERR_STREAM_CANNOT_PIPE))), + .message = bun.String.static("Stream already used, please create a new one"), }; stream.value.unprotect(); this.runErrorHandler(err.toErrorInstance(this.server.globalThis)); diff --git a/src/bun.js/bindings/BunString.cpp b/src/bun.js/bindings/BunString.cpp index f590edd35..4c8ff384e 100644 --- a/src/bun.js/bindings/BunString.cpp +++ b/src/bun.js/bindings/BunString.cpp @@ -86,31 +86,69 @@ BunString toString(JSC::JSGlobalObject* globalObject, JSValue value) return fromJS(globalObject, value); } +BunString toStringRef(JSC::JSGlobalObject* globalObject, JSValue value) +{ + auto str = value.toWTFString(globalObject); + if (str.isEmpty()) { + return { BunStringTag::Empty }; + } + + str.impl()->ref(); + + return { BunStringTag::WTFStringImpl, { .wtf = str.impl() } }; +} + BunString toString(WTF::String& wtfString) { - if (wtfString.length() == 0) + if (wtfString.isEmpty()) return { BunStringTag::Empty }; return { BunStringTag::WTFStringImpl, { .wtf = wtfString.impl() } }; } BunString toString(const WTF::String& wtfString) { - if (wtfString.length() == 0) + if (wtfString.isEmpty()) return { BunStringTag::Empty }; return { BunStringTag::WTFStringImpl, { .wtf = wtfString.impl() } }; } BunString toString(WTF::StringImpl* wtfString) { - if (wtfString->length() == 0) + if (wtfString->isEmpty()) return { BunStringTag::Empty }; return { BunStringTag::WTFStringImpl, { .wtf = wtfString } }; } +BunString toStringRef(WTF::String& wtfString) +{ + if (wtfString.isEmpty()) + return { BunStringTag::Empty }; + + wtfString.impl()->ref(); + return { BunStringTag::WTFStringImpl, { .wtf = wtfString.impl() } }; +} +BunString toStringRef(const WTF::String& wtfString) +{ + if (wtfString.isEmpty()) + return { BunStringTag::Empty }; + + wtfString.impl()->ref(); + return { BunStringTag::WTFStringImpl, { .wtf = wtfString.impl() } }; +} +BunString toStringRef(WTF::StringImpl* wtfString) +{ + if (wtfString->isEmpty()) + return { BunStringTag::Empty }; + + wtfString->ref(); + + return { BunStringTag::WTFStringImpl, { .wtf = wtfString } }; +} + BunString fromString(WTF::String& wtfString) { - if (wtfString.length() == 0) + if (wtfString.isEmpty()) return { BunStringTag::Empty }; return { BunStringTag::WTFStringImpl, { .wtf = wtfString.impl() } }; @@ -118,7 +156,7 @@ BunString fromString(WTF::String& wtfString) BunString fromString(WTF::StringImpl* wtfString) { - if (wtfString->length() == 0) + if (wtfString->isEmpty()) return { BunStringTag::Empty }; return { BunStringTag::WTFStringImpl, { .wtf = wtfString } }; diff --git a/src/bun.js/bindings/bindings.cpp b/src/bun.js/bindings/bindings.cpp index 96fcde303..9f9b20c1e 100644 --- a/src/bun.js/bindings/bindings.cpp +++ b/src/bun.js/bindings/bindings.cpp @@ -1279,15 +1279,14 @@ JSC__JSValue SystemError__toErrorInstance(const SystemError* arg0, JSC__JSGlobalObject* globalObject) { - static const char* system_error_name = "SystemError"; SystemError err = *arg0; JSC::VM& vm = globalObject->vm(); auto scope = DECLARE_THROW_SCOPE(vm); JSC::JSValue message = JSC::jsUndefined(); - if (err.message.len > 0) { - message = Zig::toJSString(err.message, globalObject); + if (err.message.tag != BunStringTag::Empty) { + message = Bun::toJS(globalObject, err.message); } JSC::JSValue options = JSC::jsUndefined(); @@ -1297,8 +1296,8 @@ JSC__JSValue SystemError__toErrorInstance(const SystemError* arg0, auto clientData = WebCore::clientData(vm); - if (err.code.len > 0 && !(err.code.len == 1 and err.code.ptr[0] == 0)) { - JSC::JSValue code = Zig::toJSStringGC(err.code, globalObject); + if (err.code.tag != BunStringTag::Empty) { + JSC::JSValue code = Bun::toJS(globalObject, err.code); result->putDirect(vm, clientData->builtinNames().codePublicName(), code, JSC::PropertyAttribute::DontDelete | 0); @@ -1307,13 +1306,12 @@ JSC__JSValue SystemError__toErrorInstance(const SystemError* arg0, result->putDirect( vm, vm.propertyNames->name, - JSC::JSValue(JSC::jsOwnedString( - vm, WTF::String(WTF::StringImpl::createWithoutCopying(system_error_name, 11)))), + JSC::JSValue(jsString(vm, String("SystemError"_s))), JSC::PropertyAttribute::DontEnum | 0); } - if (err.path.len > 0) { - JSC::JSValue path = JSC::JSValue(Zig::toJSStringGC(err.path, globalObject)); + if (err.path.tag != BunStringTag::Empty) { + JSC::JSValue path = Bun::toJS(globalObject, err.path); result->putDirect(vm, clientData->builtinNames().pathPublicName(), path, JSC::PropertyAttribute::DontDelete | 0); } @@ -1324,8 +1322,8 @@ JSC__JSValue SystemError__toErrorInstance(const SystemError* arg0, JSC::PropertyAttribute::DontDelete | 0); } - if (err.syscall.len > 0) { - JSC::JSValue syscall = JSC::JSValue(Zig::toJSString(err.syscall, globalObject)); + if (err.syscall.tag != BunStringTag::Empty) { + JSC::JSValue syscall = Bun::toJS(globalObject, err.syscall); result->putDirect(vm, clientData->builtinNames().syscallPublicName(), syscall, JSC::PropertyAttribute::DontDelete | 0); } @@ -3303,11 +3301,8 @@ bool JSC__JSValue__stringIncludes(JSC__JSValue value, JSC__JSGlobalObject* globa static void populateStackFrameMetadata(JSC::VM& vm, const JSC::StackFrame* stackFrame, ZigStackFrame* frame) { - String str = stackFrame->sourceURL(vm); - if (!str.isEmpty()) - str.impl()->ref(); - frame->source_url = Bun::toString(str); + frame->source_url = Bun::toStringRef(stackFrame->sourceURL(vm)); if (stackFrame->isWasmFrame()) { frame->code_type = ZigStackFrameCodeWasm; @@ -3344,10 +3339,7 @@ static void populateStackFrameMetadata(JSC::VM& vm, const JSC::StackFrame* stack JSC::JSObject* callee = JSC::jsCast(calleeCell); - String displayName = JSC::getCalculatedDisplayName(vm, callee); - if (!displayName.isEmpty()) - displayName.impl()->ref(); - frame->function_name = Bun::toString(displayName); + frame->function_name = Bun::toStringRef(JSC::getCalculatedDisplayName(vm, callee)); } // Based on // https://github.com/mceSystems/node-jsc/blob/master/deps/jscshim/src/shim/JSCStackTrace.cpp#L298 @@ -3421,7 +3413,7 @@ static void populateStackFramePosition(const JSC::StackFrame* stackFrame, BunStr // Most of the time, when you look at a stack trace, you want a couple lines above - source_lines[0] = Bun::toString(sourceString.substring(lineStart, lineStop - lineStart).toStringWithoutCopying()); + source_lines[0] = Bun::toStringRef(sourceString.substring(lineStart, lineStop - lineStart).toStringWithoutCopying()); source_line_numbers[0] = line; if (lineStart > 0) { @@ -3438,7 +3430,7 @@ static void populateStackFramePosition(const JSC::StackFrame* stackFrame, BunStr } // We are at the beginning of the line - source_lines[source_line_i] = Bun::toString(sourceString.substring(byte_offset_in_source_string, end_of_line_offset - byte_offset_in_source_string + 1).toStringWithoutCopying()); + source_lines[source_line_i] = Bun::toStringRef(sourceString.substring(byte_offset_in_source_string, end_of_line_offset - byte_offset_in_source_string + 1).toStringWithoutCopying()); source_line_numbers[source_line_i] = line - source_line_i; source_line_i++; @@ -3526,30 +3518,32 @@ static void fromErrorInstance(ZigException* except, JSC::JSGlobalObject* global, except->code = 8; } if (except->code == SYNTAX_ERROR_CODE) { - except->message = Bun::toString(err->sanitizedMessageString(global)); + except->message = Bun::toStringRef(err->sanitizedMessageString(global)); } else if (JSC::JSValue message = obj->getIfPropertyExists(global, vm.propertyNames->message)) { - except->message = Bun::toString(global, message); + except->message = Bun::toStringRef(global, message); } else { - except->message = Bun::toString(err->sanitizedMessageString(global)); + except->message = Bun::toStringRef(err->sanitizedMessageString(global)); } - except->name = Bun::toString(err->sanitizedNameString(global)); + + except->name = Bun::toStringRef(err->sanitizedNameString(global)); + except->runtime_type = err->runtimeTypeForCause(); auto clientData = WebCore::clientData(vm); if (except->code != SYNTAX_ERROR_CODE) { if (JSC::JSValue syscall = obj->getIfPropertyExists(global, clientData->builtinNames().syscallPublicName())) { - except->syscall = Bun::toString(global, syscall); + except->syscall = Bun::toStringRef(global, syscall); } if (JSC::JSValue code = obj->getIfPropertyExists(global, clientData->builtinNames().codePublicName())) { - except->code_ = Bun::toString(global, code); + except->code_ = Bun::toStringRef(global, code); } if (JSC::JSValue path = obj->getIfPropertyExists(global, clientData->builtinNames().pathPublicName())) { - except->path = Bun::toString(global, path); + except->path = Bun::toStringRef(global, path); } if (JSC::JSValue fd = obj->getIfPropertyExists(global, Identifier::fromString(vm, "fd"_s))) { @@ -3565,7 +3559,7 @@ static void fromErrorInstance(ZigException* except, JSC::JSGlobalObject* global, if (getFromSourceURL) { if (JSC::JSValue sourceURL = obj->getIfPropertyExists(global, vm.propertyNames->sourceURL)) { - except->stack.frames_ptr[0].source_url = Bun::toString(global, sourceURL); + except->stack.frames_ptr[0].source_url = Bun::toStringRef(global, sourceURL); if (JSC::JSValue column = obj->getIfPropertyExists(global, vm.propertyNames->column)) { except->stack.frames_ptr[0].position.column_start = column.toInt32(global); @@ -3577,7 +3571,7 @@ static void fromErrorInstance(ZigException* except, JSC::JSGlobalObject* global, if (JSC::JSValue lineText = obj->getIfPropertyExists(global, JSC::Identifier::fromString(vm, "lineText"_s))) { if (JSC::JSString* jsStr = lineText.toStringOrNull(global)) { auto str = jsStr->value(global); - except->stack.source_lines_ptr[0] = Bun::toString(str); + except->stack.source_lines_ptr[0] = Bun::toStringRef(str); except->stack.source_lines_numbers[0] = except->stack.frames_ptr[0].position.line; except->stack.source_lines_len = 1; except->remapped = true; @@ -3600,7 +3594,7 @@ void exceptionFromString(ZigException* except, JSC::JSValue value, JSC::JSGlobal if (JSC::JSObject* obj = JSC::jsDynamicCast(value)) { if (obj->hasProperty(global, global->vm().propertyNames->name)) { auto name_str = obj->getIfPropertyExists(global, global->vm().propertyNames->name).toWTFString(global); - except->name = Bun::toString(name_str); + except->name = Bun::toStringRef(name_str); if (name_str == "Error"_s) { except->code = JSErrorCodeError; } else if (name_str == "EvalError"_s) { @@ -3622,14 +3616,14 @@ void exceptionFromString(ZigException* except, JSC::JSValue value, JSC::JSGlobal if (JSC::JSValue message = obj->getIfPropertyExists(global, global->vm().propertyNames->message)) { if (message) { - except->message = Bun::toString( + except->message = Bun::toStringRef( message.toWTFString(global)); } } if (JSC::JSValue sourceURL = obj->getIfPropertyExists(global, global->vm().propertyNames->sourceURL)) { if (sourceURL) { - except->stack.frames_ptr[0].source_url = Bun::toString( + except->stack.frames_ptr[0].source_url = Bun::toStringRef( sourceURL.toWTFString(global)); except->stack.frames_len = 1; } @@ -3658,7 +3652,7 @@ void exceptionFromString(ZigException* except, JSC::JSValue value, JSC::JSGlobal } scope.release(); - except->message = Bun::toString(str); + except->message = Bun::toStringRef(str); } void JSC__VM__releaseWeakRefs(JSC__VM* arg0) @@ -3768,8 +3762,8 @@ void JSC__JSValue__toZigException(JSC__JSValue JSValue0, JSC__JSGlobalObject* ar JSC::JSValue value = JSC::JSValue::decode(JSValue0); if (value == JSC::JSValue {}) { exception->code = JSErrorCodeError; - exception->name = Bun::toString("Error"_s); - exception->message = Bun::toString("Unknown error"_s); + exception->name = Bun::toStringRef("Error"_s); + exception->message = Bun::toStringRef("Unknown error"_s); return; } diff --git a/src/bun.js/bindings/bindings.zig b/src/bun.js/bindings/bindings.zig index 1c09378a8..777860d3c 100644 --- a/src/bun.js/bindings/bindings.zig +++ b/src/bun.js/bindings/bindings.zig @@ -1561,10 +1561,10 @@ pub const FetchHeaders = opaque { pub const SystemError = extern struct { errno: c_int = 0, /// label for errno - code: ZigString = ZigString.init(""), - message: ZigString = ZigString.init(""), - path: ZigString = ZigString.init(""), - syscall: ZigString = ZigString.init(""), + code: String = String.empty, + message: String = String.empty, + path: String = String.empty, + syscall: String = String.empty, fd: i32 = -1, pub fn Maybe(comptime Result: type) type { diff --git a/src/bun.js/bindings/headers-handwritten.h b/src/bun.js/bindings/headers-handwritten.h index c7429b633..90c8f86d2 100644 --- a/src/bun.js/bindings/headers-handwritten.h +++ b/src/bun.js/bindings/headers-handwritten.h @@ -84,10 +84,10 @@ typedef struct ErrorableResolvedSource { typedef struct SystemError { int errno_; - ZigString code; - ZigString message; - ZigString path; - ZigString syscall; + BunString code; + BunString message; + BunString path; + BunString syscall; int fd; } SystemError; @@ -246,6 +246,10 @@ BunString toString(WTF::String& wtfString); BunString toString(const WTF::String& wtfString); BunString toString(WTF::StringImpl* wtfString); +BunString toStringRef(JSC::JSGlobalObject* globalObject, JSC::JSValue value); +BunString toStringRef(WTF::String& wtfString); +BunString toStringRef(const WTF::String& wtfString); +BunString toStringRef(WTF::StringImpl* wtfString); } using Uint8Array_alias = JSC::JSUint8Array; diff --git a/src/bun.js/bindings/helpers.h b/src/bun.js/bindings/helpers.h index 402807f3d..00777c304 100644 --- a/src/bun.js/bindings/helpers.h +++ b/src/bun.js/bindings/helpers.h @@ -342,10 +342,10 @@ static const WTF::String toStringStatic(ZigString str) } if (isTaggedUTF16Ptr(str.ptr)) { - return WTF::String(WTF::ExternalStringImpl::createStatic(reinterpret_cast(untag(str.ptr)), str.len)); + return WTF::String(AtomStringImpl::add(reinterpret_cast(untag(str.ptr)), str.len)); } - return WTF::String(WTF::ExternalStringImpl::createStatic( + return WTF::String(AtomStringImpl::add( reinterpret_cast(untag(str.ptr)), str.len)); } diff --git a/src/bun.js/bindings/napi.cpp b/src/bun.js/bindings/napi.cpp index a859e3ac5..bb62cb2a0 100644 --- a/src/bun.js/bindings/napi.cpp +++ b/src/bun.js/bindings/napi.cpp @@ -554,7 +554,6 @@ extern "C" napi_status napi_wrap(napi_env env, auto* globalObject = toJS(env); auto& vm = globalObject->vm(); - auto* val = jsDynamicCast(value); @@ -572,7 +571,7 @@ extern "C" napi_status napi_wrap(napi_env env, auto clientData = WebCore::clientData(vm); auto* ref = new NapiRef(globalObject, 1); - ref->strongRef.set(globalObject->vm(), value.getObject()); + ref->strongRef.set(globalObject->vm(), value.getObject()); if (finalize_cb) { ref->finalizer.finalize_cb = finalize_cb; @@ -816,7 +815,7 @@ extern "C" napi_status napi_create_reference(napi_env env, napi_value value, } } - if(object) { + if (object) { object->napiRef = ref; } @@ -1029,7 +1028,26 @@ extern "C" napi_status napi_create_type_error(napi_env env, napi_value code, auto error = JSC::createTypeError(globalObject, messageValue.toWTFString(globalObject)); if (codeValue) { - error->putDirect(vm, Identifier::fromString(vm, "code"_s), codeValue, 0); + error->putDirect(vm, WebCore::builtinNames(vm).codePublicName(), codeValue, 0); + } + + *result = reinterpret_cast(JSC::JSValue::encode(error)); + return napi_ok; +} + +extern "C" napi_status napi_create_error(napi_env env, napi_value code, + napi_value msg, + napi_value* result) +{ + Zig::GlobalObject* globalObject = toJS(env); + JSC::VM& vm = globalObject->vm(); + + JSC::JSValue codeValue = JSC::JSValue::decode(reinterpret_cast(code)); + JSC::JSValue messageValue = JSC::JSValue::decode(reinterpret_cast(msg)); + + auto error = JSC::createError(globalObject, messageValue.toWTFString(globalObject)); + if (codeValue) { + error->putDirect(vm, WebCore::builtinNames(vm).codePublicName(), codeValue, 0); } *result = reinterpret_cast(JSC::JSValue::encode(error)); @@ -1474,7 +1492,8 @@ extern "C" napi_status napi_get_property_names(napi_env env, napi_value object, return napi_ok; } -extern "C" napi_status napi_create_object(napi_env env, napi_value* result){ +extern "C" napi_status napi_create_object(napi_env env, napi_value* result) +{ if (UNLIKELY(result == nullptr)) { return napi_invalid_arg; diff --git a/src/bun.js/bindings/webcore/JSCloseEvent.cpp b/src/bun.js/bindings/webcore/JSCloseEvent.cpp index be07cbcfe..ad7b6ed57 100644 --- a/src/bun.js/bindings/webcore/JSCloseEvent.cpp +++ b/src/bun.js/bindings/webcore/JSCloseEvent.cpp @@ -99,7 +99,7 @@ template<> CloseEvent::Init convertDictionary(JSGlobalObject& if (isNullOrUndefined) codeValue = jsUndefined(); else { - codeValue = object->get(&lexicalGlobalObject, Identifier::fromString(vm, "code"_s)); + codeValue = object->get(&lexicalGlobalObject, WebCore::builtinNames(vm).codePublicName()); RETURN_IF_EXCEPTION(throwScope, {}); } if (!codeValue.isUndefined()) { diff --git a/src/bun.js/node/node_os.zig b/src/bun.js/node/node_os.zig index f71143315..483acb3e2 100644 --- a/src/bun.js/node/node_os.zig +++ b/src/bun.js/node/node_os.zig @@ -78,8 +78,8 @@ pub const Os = struct { return if (comptime Environment.isLinux) cpusImplLinux(globalThis) catch { const err = JSC.SystemError{ - .message = JSC.ZigString.init("Failed to get cpu information"), - .code = JSC.ZigString.init(@as(string, @tagName(JSC.Node.ErrorCode.ERR_SYSTEM_ERROR))), + .message = bun.String.static("Failed to get cpu information"), + .code = bun.String.static(@as(string, @tagName(JSC.Node.ErrorCode.ERR_SYSTEM_ERROR))), }; globalThis.vm().throwError(globalThis, err.toErrorInstance(globalThis)); @@ -88,8 +88,8 @@ pub const Os = struct { else if (comptime Environment.isMac) cpusImplDarwin(globalThis) catch { const err = JSC.SystemError{ - .message = JSC.ZigString.init("Failed to get cpu information"), - .code = JSC.ZigString.init(@as(string, @tagName(JSC.Node.ErrorCode.ERR_SYSTEM_ERROR))), + .message = bun.String.static("Failed to get cpu information"), + .code = bun.String.static(@as(string, @tagName(JSC.Node.ErrorCode.ERR_SYSTEM_ERROR))), }; globalThis.vm().throwError(globalThis, err.toErrorInstance(globalThis)); @@ -318,11 +318,11 @@ pub const Os = struct { //info.put(globalThis, JSC.ZigString.static("syscall"), JSC.ZigString.init("uv_os_getpriority").withEncoding().toValueGC(globalThis)); const err = JSC.SystemError{ - .message = JSC.ZigString.init("A system error occurred: uv_os_getpriority returned ESRCH (no such process)"), - .code = JSC.ZigString.init(@as(string, @tagName(JSC.Node.ErrorCode.ERR_SYSTEM_ERROR))), + .message = bun.String.static("A system error occurred: uv_os_getpriority returned ESRCH (no such process)"), + .code = bun.String.static(@as(string, @tagName(JSC.Node.ErrorCode.ERR_SYSTEM_ERROR))), //.info = info, .errno = -3, - .syscall = JSC.ZigString.init("uv_os_getpriority"), + .syscall = bun.String.static("uv_os_getpriority"), }; globalThis.vm().throwError(globalThis, err.toErrorInstance(globalThis)); @@ -377,10 +377,10 @@ pub const Os = struct { const rc = C.getifaddrs(&interface_start); if (rc != 0) { const err = JSC.SystemError{ - .message = JSC.ZigString.init("A system error occurred: getifaddrs returned an error"), - .code = JSC.ZigString.init(@as(string, @tagName(JSC.Node.ErrorCode.ERR_SYSTEM_ERROR))), + .message = bun.String.static("A system error occurred: getifaddrs returned an error"), + .code = bun.String.static(@as(string, @tagName(JSC.Node.ErrorCode.ERR_SYSTEM_ERROR))), .errno = @intFromEnum(std.os.errno(rc)), - .syscall = JSC.ZigString.init("getifaddrs"), + .syscall = bun.String.static("getifaddrs"), }; globalThis.vm().throwError(globalThis, err.toErrorInstance(globalThis)); @@ -591,11 +591,11 @@ pub const Os = struct { switch (errcode) { .SRCH => { const err = JSC.SystemError{ - .message = JSC.ZigString.init("A system error occurred: uv_os_setpriority returned ESRCH (no such process)"), - .code = JSC.ZigString.init(@as(string, @tagName(JSC.Node.ErrorCode.ERR_SYSTEM_ERROR))), + .message = bun.String.static("A system error occurred: uv_os_setpriority returned ESRCH (no such process)"), + .code = bun.String.static(@as(string, @tagName(JSC.Node.ErrorCode.ERR_SYSTEM_ERROR))), //.info = info, .errno = -3, - .syscall = JSC.ZigString.init("uv_os_setpriority"), + .syscall = bun.String.static("uv_os_setpriority"), }; globalThis.vm().throwError(globalThis, err.toErrorInstance(globalThis)); @@ -603,11 +603,11 @@ pub const Os = struct { }, .ACCES => { const err = JSC.SystemError{ - .message = JSC.ZigString.init("A system error occurred: uv_os_setpriority returned EACCESS (permission denied)"), - .code = JSC.ZigString.init(@as(string, @tagName(JSC.Node.ErrorCode.ERR_SYSTEM_ERROR))), + .message = bun.String.static("A system error occurred: uv_os_setpriority returned EACCESS (permission denied)"), + .code = bun.String.static(@as(string, @tagName(JSC.Node.ErrorCode.ERR_SYSTEM_ERROR))), //.info = info, .errno = -13, - .syscall = JSC.ZigString.init("uv_os_setpriority"), + .syscall = bun.String.static("uv_os_setpriority"), }; globalThis.vm().throwError(globalThis, err.toErrorInstance(globalThis)); diff --git a/src/bun.js/node/syscall.zig b/src/bun.js/node/syscall.zig index 48c5b1305..5ff0b2f44 100644 --- a/src/bun.js/node/syscall.zig +++ b/src/bun.js/node/syscall.zig @@ -873,20 +873,20 @@ pub const Error = struct { pub fn toSystemError(this: Error) SystemError { var err = SystemError{ .errno = @as(c_int, this.errno) * -1, - .syscall = JSC.ZigString.init(@tagName(this.syscall)), + .syscall = bun.String.static(@tagName(this.syscall)), }; // errno label if (this.errno > 0 and this.errno < C.SystemErrno.max) { const system_errno = @enumFromInt(C.SystemErrno, this.errno); - err.code = JSC.ZigString.init(@tagName(system_errno)); + err.code = bun.String.static(@tagName(system_errno)); if (C.SystemErrno.labels.get(system_errno)) |label| { - err.message = JSC.ZigString.init(label); + err.message = bun.String.static(label); } } if (this.path.len > 0) { - err.path = JSC.ZigString.init(this.path); + err.path = bun.String.create(this.path); } if (this.fd != -1) { diff --git a/src/bun.js/webcore/blob.zig b/src/bun.js/webcore/blob.zig index faf503a3f..86b5414e3 100644 --- a/src/bun.js/webcore/blob.zig +++ b/src/bun.js/webcore/blob.zig @@ -1194,9 +1194,6 @@ pub const Blob = struct { .syscall = .open, }).toSystemError(); - // assert we never end up reusing the memory - std.debug.assert(@intFromPtr(this.system_error.?.path.slice().ptr) != @intFromPtr(path_buffer)); - callback(this, null_fd); return; }; @@ -1359,12 +1356,13 @@ pub const Blob = struct { return; } else if (this.store == null) { bun.default_allocator.destroy(this); - cb(cb_ctx, ResultType{ .err = SystemError{ - .code = ZigString.init("INTERNAL_ERROR"), - .path = ZigString.Empty, - .message = ZigString.init("assertion failure - store should not be null"), - .syscall = ZigString.init("read"), - } }); + cb(cb_ctx, ResultType{ + .err = SystemError{ + .code = bun.String.static("INTERNAL_ERROR"), + .message = bun.String.static("assertion failure - store should not be null"), + .syscall = bun.String.static("read"), + }, + }); return; } @@ -1396,12 +1394,12 @@ pub const Blob = struct { }).toSystemError(); } else { this.system_error = JSC.SystemError{ - .code = ZigString.init(bun.asByteSlice(@errorName(err))), + .code = bun.String.static(bun.asByteSlice(@errorName(err))), .path = if (this.file_store.pathlike == .path) - ZigString.init(this.file_store.pathlike.path.slice()) + bun.String.create(this.file_store.pathlike.path.slice()) else - ZigString.Empty, - .syscall = ZigString.init("read"), + bun.String.empty, + .syscall = bun.String.static("read"), }; this.errno = err; @@ -1458,13 +1456,13 @@ pub const Blob = struct { if (std.os.S.ISDIR(stat.mode)) { this.errno = error.EISDIR; this.system_error = JSC.SystemError{ - .code = ZigString.init("EISDIR"), + .code = bun.String.static("EISDIR"), .path = if (this.file_store.pathlike == .path) - ZigString.init(this.file_store.pathlike.path.slice()) + bun.String.create(this.file_store.pathlike.path.slice()) else - ZigString.Empty, - .message = ZigString.init("Directories cannot be read like files"), - .syscall = ZigString.init("read"), + bun.String.empty, + .message = bun.String.static("Directories cannot be read like files"), + .syscall = bun.String.static("read"), }; return; } @@ -1643,8 +1641,8 @@ pub const Blob = struct { this.wrote += @truncate(SizeType, result catch |errno| { this.errno = errno; this.system_error = this.system_error orelse JSC.SystemError{ - .code = ZigString.init(bun.asByteSlice(@errorName(errno))), - .syscall = ZigString.init("write"), + .code = bun.String.static(bun.asByteSlice(@errorName(errno))), + .syscall = bun.String.static("write"), }; this.wrote = 0; @@ -1703,13 +1701,13 @@ pub const Blob = struct { const unsupported_directory_error = SystemError{ .errno = @intCast(c_int, @intFromEnum(bun.C.SystemErrno.EISDIR)), - .message = ZigString.init("That doesn't work on folders"), - .syscall = ZigString.init("fstat"), + .message = bun.String.static("That doesn't work on folders"), + .syscall = bun.String.static("fstat"), }; const unsupported_non_regular_file_error = SystemError{ .errno = @intCast(c_int, @intFromEnum(bun.C.SystemErrno.ENOTSUP)), - .message = ZigString.init("Non-regular files aren't supported yet"), - .syscall = ZigString.init("fstat"), + .message = bun.String.static("Non-regular files aren't supported yet"), + .syscall = bun.String.static("fstat"), }; // blocking, but off the main thread @@ -1777,13 +1775,12 @@ pub const Blob = struct { pub fn reject(this: *CopyFile, promise: *JSC.JSPromise) void { var globalThis = this.globalThis; var system_error: SystemError = this.system_error orelse SystemError{}; - if (this.source_file_store.pathlike == .path and system_error.path.len == 0) { - system_error.path = ZigString.init(this.source_file_store.pathlike.path.slice()); - system_error.path.mark(); + if (this.source_file_store.pathlike == .path and system_error.path.isEmpty()) { + system_error.path = bun.String.create(this.source_file_store.pathlike.path.slice()); } - if (system_error.message.len == 0) { - system_error.message = ZigString.init("Failed to copy file"); + if (system_error.message.isEmpty()) { + system_error.message = bun.String.static("Failed to copy file"); } var instance = system_error.toErrorInstance(this.globalThis); diff --git a/src/bun.js/webcore/response.zig b/src/bun.js/webcore/response.zig index b4ea08579..e888ffa5a 100644 --- a/src/bun.js/webcore/response.zig +++ b/src/bun.js/webcore/response.zig @@ -777,15 +777,15 @@ pub const Fetch = struct { } const fetch_error = JSC.SystemError{ - .code = ZigString.init(@errorName(this.result.fail)), + .code = bun.String.static(@errorName(this.result.fail)), .message = switch (this.result.fail) { - error.ConnectionClosed => ZigString.init("The socket connection was closed unexpectedly. For more information, pass `verbose: true` in the second argument to fetch()"), - error.FailedToOpenSocket => ZigString.init("Was there a typo in the url or port?"), - error.TooManyRedirects => ZigString.init("The response redirected too many times. For more information, pass `verbose: true` in the second argument to fetch()"), - error.ConnectionRefused => ZigString.init("Unable to connect. Is the computer able to access the url?"), - else => ZigString.init("fetch() failed. For more information, pass `verbose: true` in the second argument to fetch()"), + error.ConnectionClosed => bun.String.static("The socket connection was closed unexpectedly. For more information, pass `verbose: true` in the second argument to fetch()"), + error.FailedToOpenSocket => bun.String.static("Was there a typo in the url or port?"), + error.TooManyRedirects => bun.String.static("The response redirected too many times. For more information, pass `verbose: true` in the second argument to fetch()"), + error.ConnectionRefused => bun.String.static("Unable to connect. Is the computer able to access the url?"), + else => bun.String.static("fetch() failed. For more information, pass `verbose: true` in the second argument to fetch()"), }, - .path = ZigString.init(this.http.?.url.href), + .path = bun.String.create(this.http.?.url.href), }; return fetch_error.toErrorInstance(this.global_this); diff --git a/src/bun.js/webcore/streams.zig b/src/bun.js/webcore/streams.zig index 5986afac7..343ce37ab 100644 --- a/src/bun.js/webcore/streams.zig +++ b/src/bun.js/webcore/streams.zig @@ -1964,10 +1964,10 @@ pub fn NewJSSink(comptime SinkType: type, comptime name_: []const u8) type { pub const message = std.fmt.comptimePrint("{s} is not constructable", .{SinkType.name}); }; const err = JSC.SystemError{ - .message = ZigString.init(Static.message), - .code = ZigString.init(@as(string, @tagName(JSC.Node.ErrorCode.ERR_ILLEGAL_CONSTRUCTOR))), + .message = bun.String.static(Static.message), + .code = bun.String.static(@as(string, @tagName(JSC.Node.ErrorCode.ERR_ILLEGAL_CONSTRUCTOR))), }; - globalThis.vm().throwError(globalThis, err.toErrorInstance(globalThis)); + globalThis.throwValue(err.toErrorInstance(globalThis)); return JSC.JSValue.jsUndefined(); } diff --git a/src/bundler/bundle_v2.zig b/src/bundler/bundle_v2.zig index 814e49a20..f534e4184 100644 --- a/src/bundler/bundle_v2.zig +++ b/src/bundler/bundle_v2.zig @@ -9174,8 +9174,10 @@ const LinkerContext = struct { }, )) { .err => |err| { + var message = err.toSystemError().message.toUTF8(bun.default_allocator); + defer message.deinit(); c.log.addErrorFmt(null, Logger.Loc.Empty, bun.default_allocator, "{} writing sourcemap for chunk {}", .{ - bun.fmt.quote(err.toSystemError().message.slice()), + bun.fmt.quote(message.slice()), bun.fmt.quote(chunk.final_rel_path), }) catch unreachable; return error.WriteFailed; @@ -9242,8 +9244,10 @@ const LinkerContext = struct { }, )) { .err => |err| { + var message = err.toSystemError().message.toUTF8(bun.default_allocator); + defer message.deinit(); c.log.addErrorFmt(null, Logger.Loc.Empty, bun.default_allocator, "{} writing chunk {}", .{ - bun.fmt.quote(err.toSystemError().message.slice()), + bun.fmt.quote(message.slice()), bun.fmt.quote(chunk.final_rel_path), }) catch unreachable; return error.WriteFailed; @@ -9309,8 +9313,10 @@ const LinkerContext = struct { }, )) { .err => |err| { + const utf8 = err.toSystemError().message.toUTF8(bun.default_allocator); + defer utf8.deinit(); c.log.addErrorFmt(null, Logger.Loc.Empty, bun.default_allocator, "{} writing chunk {}", .{ - bun.fmt.quote(err.toSystemError().message.slice()), + bun.fmt.quote(utf8.slice()), bun.fmt.quote(components_manifest_path), }) catch unreachable; return error.WriteFailed; @@ -9383,8 +9389,10 @@ const LinkerContext = struct { }, )) { .err => |err| { + const utf8 = err.toSystemError().message.toUTF8(bun.default_allocator); + defer utf8.deinit(); c.log.addErrorFmt(null, Logger.Loc.Empty, bun.default_allocator, "{} writing file {}", .{ - bun.fmt.quote(err.toSystemError().message.slice()), + bun.fmt.quote(utf8.slice()), bun.fmt.quote(src.src_path.text), }) catch unreachable; return error.WriteFailed; diff --git a/src/http.zig b/src/http.zig index 80718db2f..b1d97c382 100644 --- a/src/http.zig +++ b/src/http.zig @@ -684,8 +684,9 @@ pub const RequestContext = struct { if (erro == error.EBADF or erro == error.ECONNABORTED or erro == error.ECONNREFUSED) { return error.SocketClosed; } - - Output.prettyErrorln("send() error: {s}", .{err.toSystemError().message.slice()}); + const msg = err.toSystemError().message.toUTF8(bun.default_allocator); + defer msg.deinit(); + Output.prettyErrorln("send() error: {s}", .{msg.slice()}); return erro; }, diff --git a/src/napi/napi.zig b/src/napi/napi.zig index 0973ca559..439319489 100644 --- a/src/napi/napi.zig +++ b/src/napi/napi.zig @@ -303,16 +303,7 @@ pub export fn napi_create_string_utf16(env: napi_env, str: [*]const char16_t, le return .ok; } pub extern fn napi_create_symbol(env: napi_env, description: napi_value, result: *napi_value) napi_status; -pub export fn napi_create_error(env: napi_env, code: napi_value, msg: napi_value, result: *napi_value) napi_status { - log("napi_create_error: \"{any}\"", .{msg.getZigString(env)}); - const system_error = JSC.SystemError{ - .code = if (!code.isEmptyOrUndefinedOrNull()) code.getZigString(env) else ZigString.Empty, - .message = msg.getZigString(env), - }; - result.* = system_error.toErrorInstance(env); - return .ok; -} - +pub extern fn napi_create_error(env: napi_env, code: napi_value, msg: napi_value, result: *napi_value) napi_status; pub extern fn napi_create_type_error(env: napi_env, code: napi_value, msg: napi_value, result: *napi_value) napi_status; pub extern fn napi_create_range_error(env: napi_env, code: napi_value, msg: napi_value, result: *napi_value) napi_status; pub extern fn napi_typeof(env: napi_env, value: napi_value, result: *napi_valuetype) napi_status; diff --git a/test/js/bun/util/error-gc-test.test.js b/test/js/bun/util/error-gc-test.test.js index 247bd68ef..4a45346b6 100644 --- a/test/js/bun/util/error-gc-test.test.js +++ b/test/js/bun/util/error-gc-test.test.js @@ -1,5 +1,5 @@ import { test, expect } from "bun:test"; - +import { readFileSync } from "fs"; // This test checks that printing stack traces increments and decrements // reference-counted strings test("error gc test", () => { @@ -34,7 +34,7 @@ test("error gc test #2", () => { } }); -test("error gc test #2", () => { +test("error gc test #3", () => { for (let i = 0; i < 1000; i++) { var err = new Error(); Error.captureStackTrace(err); @@ -42,3 +42,40 @@ test("error gc test #2", () => { Bun.gc(); } }); + +// This test fails if: +// - it crashes +// - The test failure message gets a non-sensical error +test("error gc test #4", () => { + for (let i = 0; i < 1000; i++) { + let path = + // Use a long-enough string for it to be obvious if we leak memory + "/i/don/t/exist/tmp/i/don/t/exist/tmp/i/don/t/exist/tmp/i/don/t/exist/tmp/i/don/t/exist/tmp/i/don/t/exist/tmp/i/don/t/exist/tmp/ii/don/t/exist/tmp/i/don/t/exist/tmp/i/don/t/exist/tmp/i/don/t/exist/tmp/i/don/t/exist/tmp/i/don/t/exist/tmp/i/don/t/exist/tmp/ii/don/t/exist/tmp/i/don/t/exist/tmp/i/don/t/exist/tmp/i/don/t/exist/tmp/i/don/t/exist/tmp/i/don/t/exist/tmp/i/don/t/exist/tmp/i"; + try { + readFileSync(path); + throw new Error("unreachable"); + } catch (e) { + if (e.message === "unreachable") { + throw e; + } + + const inspected = Bun.inspect(e); + Bun.gc(true); + + // Deliberately avoid using .toContain() directly to avoid + // BunString shenanigins. + // + // Only JSC builtin functions to operate on the string after inspecting it. + // + if (!inspected.includes(path)) { + expect(inspected).toContain(path); + } + + if (!inspected.includes("ENOENT")) { + expect(inspected).toContain("ENOENT"); + } + } finally { + Bun.gc(true); + } + } +}); -- cgit v1.2.3 From af46a8ded1be0af1a1f4f638122ca6d0d7b62405 Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Sat, 1 Jul 2023 17:38:19 -0700 Subject: Make this test less flaky --- test/js/bun/spawn/spawn-streaming-stdin.test.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'test/js') diff --git a/test/js/bun/spawn/spawn-streaming-stdin.test.ts b/test/js/bun/spawn/spawn-streaming-stdin.test.ts index 27efa14ec..0c430b680 100644 --- a/test/js/bun/spawn/spawn-streaming-stdin.test.ts +++ b/test/js/bun/spawn/spawn-streaming-stdin.test.ts @@ -2,18 +2,22 @@ import { it, test, expect } from "bun:test"; import { spawn } from "bun"; import { bunExe, bunEnv, gcTick } from "harness"; import { closeSync, openSync } from "fs"; +import { tmpdir } from "node:os"; +import { join } from "path"; +import { unlinkSync } from "node:fs"; const N = 100; test("spawn can write to stdin multiple chunks", async () => { const maxFD = openSync("/dev/null", "w"); for (let i = 0; i < N; i++) { + const tmperr = join(tmpdir(), "stdin-repro-error.log." + i); var exited; await (async function () { const proc = spawn({ cmd: [bunExe(), import.meta.dir + "/stdin-repro.js"], stdout: "pipe", stdin: "pipe", - stderr: Bun.file("/tmp/out.log"), + stderr: Bun.file(tmperr), env: bunEnv, }); exited = proc.exited; @@ -45,6 +49,10 @@ test("spawn can write to stdin multiple chunks", async () => { await Promise.all([prom, prom2]); expect(Buffer.concat(chunks).toString().trim()).toBe("Wrote to stdin!\n".repeat(4).trim()); await proc.exited; + + try { + unlinkSync(tmperr); + } catch (e) {} })(); } @@ -54,4 +62,4 @@ test("spawn can write to stdin multiple chunks", async () => { // assert we didn't leak any file descriptors expect(newMaxFD).toBe(maxFD); -}); +}, 10_000); -- cgit v1.2.3 From c72c82b970eff579afedababad919b616acc51f7 Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Sat, 1 Jul 2023 21:08:26 -0700 Subject: Make this test less flaky --- test/js/bun/net/socket.test.ts | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'test/js') diff --git a/test/js/bun/net/socket.test.ts b/test/js/bun/net/socket.test.ts index 1da000834..5126067e6 100644 --- a/test/js/bun/net/socket.test.ts +++ b/test/js/bun/net/socket.test.ts @@ -105,7 +105,28 @@ it("should reject on connection error, calling both connectError() and rejecting }); it("should not leak memory when connect() fails", async () => { - await expectMaxObjectTypeCount(expect, "TCPSocket", 1, 100); + await (async () => { + var promises = new Array(100); + for (let i = 0; i < 100; i++) { + promises[i] = connect({ + hostname: "localhost", + port: 55555, + socket: { + connectError(socket, error) {}, + data() {}, + drain() {}, + close() {}, + end() {}, + error() {}, + open() {}, + }, + }); + } + await Promise.allSettled(promises); + promises.length = 0; + })(); + + await expectMaxObjectTypeCount(expect, "TCPSocket", 50, 100); }); // this also tests we mark the promise as handled if connectError() is called -- cgit v1.2.3 From 617226e5845181e1947671b3b7b96efad82555be Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Sat, 1 Jul 2023 21:10:43 -0700 Subject: Make this test less flaky --- test/js/web/fetch/fetch-leak-test-fixture.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test/js') diff --git a/test/js/web/fetch/fetch-leak-test-fixture.js b/test/js/web/fetch/fetch-leak-test-fixture.js index 07275a425..c83bbea83 100644 --- a/test/js/web/fetch/fetch-leak-test-fixture.js +++ b/test/js/web/fetch/fetch-leak-test-fixture.js @@ -29,6 +29,6 @@ await (async function runAll() { await Bun.sleep(10); Bun.gc(true); -if ((heapStats().objectTypeCounts.Response ?? 0) > 10) { +if ((heapStats().objectTypeCounts.Response ?? 0) > 1 + ((COUNT / 2) | 0)) { throw new Error("Too many Response objects: " + heapStats().objectTypeCounts.Response); } -- cgit v1.2.3 From 800103837626b93d867a72239eb2818dcc8f0821 Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Sat, 1 Jul 2023 22:43:59 -0700 Subject: Use exact versions in tests --- test/bun.lockb | Bin 140423 -> 139814 bytes test/internal/package-json-lint.test.ts | 42 +++++++++++++++++++++++++++++ test/js/third_party/esbuild/bun.lockb | Bin 8425 -> 9601 bytes test/js/third_party/esbuild/package.json | 4 +-- test/js/third_party/prisma/package.json | 4 +-- test/js/third_party/socket.io/package.json | 7 +++-- test/package.json | 38 +++++++++++++------------- 7 files changed, 68 insertions(+), 27 deletions(-) create mode 100644 test/internal/package-json-lint.test.ts (limited to 'test/js') diff --git a/test/bun.lockb b/test/bun.lockb index f8ea8e4c6..f30ca197a 100755 Binary files a/test/bun.lockb and b/test/bun.lockb differ diff --git a/test/internal/package-json-lint.test.ts b/test/internal/package-json-lint.test.ts new file mode 100644 index 000000000..5a1fae5f9 --- /dev/null +++ b/test/internal/package-json-lint.test.ts @@ -0,0 +1,42 @@ +import { test, expect, describe } from "bun:test"; +import { join } from "path"; +import { readdirSync, existsSync } from "fs"; +const base = join(import.meta.dir, "../"); + +const packageJSONDirs = [ + base, + ...readdirSync(join(import.meta.dir, "../", "js", "third_party")) + .map(a => join(import.meta.dir, "../", "js", "third_party", a)) + .filter(a => existsSync(join(a, "./package.json"))), +]; + +// For test reliability and security reasons +// We must use exact versions for third-party dependencies in our tests. +describe("package.json dependencies must be exact versions", async () => { + for (const dir of packageJSONDirs) { + test(join("test", dir.replace(base, ""), "package.json"), async () => { + const { + dependencies = {}, + devDependencies = {}, + peerDependencies = {}, + optionalDependencies = {}, + } = await Bun.file(join(dir, "./package.json")).json(); + + for (const [name, dep] of Object.entries(dependencies)) { + expect(dep).toMatch(/^([a-zA-Z0-9\.])+$/); + } + + for (const [name, dep] of Object.entries(devDependencies)) { + expect(dep).toMatch(/^([a-zA-Z0-9\.])+$/); + } + + for (const [name, dep] of Object.entries(peerDependencies)) { + expect(dep).toMatch(/^([a-zA-Z0-9\.])+$/); + } + + for (const [name, dep] of Object.entries(optionalDependencies)) { + expect(dep).toMatch(/^([a-zA-Z0-9\.])+$/); + } + }); + } +}); diff --git a/test/js/third_party/esbuild/bun.lockb b/test/js/third_party/esbuild/bun.lockb index f46c6aa5d..1fcce3837 100755 Binary files a/test/js/third_party/esbuild/bun.lockb and b/test/js/third_party/esbuild/bun.lockb differ diff --git a/test/js/third_party/esbuild/package.json b/test/js/third_party/esbuild/package.json index ad6bc55f6..46535bc29 100644 --- a/test/js/third_party/esbuild/package.json +++ b/test/js/third_party/esbuild/package.json @@ -1,6 +1,6 @@ { "type": "module", "dependencies": { - "esbuild": "^0.17.11" + "esbuild": "0.17.11" } -} \ No newline at end of file +} diff --git a/test/js/third_party/prisma/package.json b/test/js/third_party/prisma/package.json index 369bd42ba..ac8694e36 100644 --- a/test/js/third_party/prisma/package.json +++ b/test/js/third_party/prisma/package.json @@ -3,11 +3,11 @@ "module": "index.ts", "type": "module", "devDependencies": { - "bun-types": "^0.6.0", + "bun-types": "0.6.12", "prisma": "4.15.0" }, "peerDependencies": { - "typescript": "^5.0.0" + "typescript": "5.0.0" }, "dependencies": { "@prisma/client": "4.15.0" diff --git a/test/js/third_party/socket.io/package.json b/test/js/third_party/socket.io/package.json index edeb84845..af70e36a6 100644 --- a/test/js/third_party/socket.io/package.json +++ b/test/js/third_party/socket.io/package.json @@ -2,9 +2,8 @@ "name": "socket.io", "version": "1.0.0", "dependencies": { - "socket.io": "^4.6.1", - "socket.io-client": "^4.6.1", - "supertest": "^6.1.6", - "uWebSockets.js": "uNetworking/uWebSockets.js#v20.24.0" + "socket.io": "4.6.1", + "socket.io-client": "4.6.1", + "supertest": "6.1.6" } } diff --git a/test/package.json b/test/package.json index d4246ea43..116571879 100644 --- a/test/package.json +++ b/test/package.json @@ -1,29 +1,29 @@ { "name": "test", "devDependencies": { - "@types/dedent": "^0.7.0" + "@types/dedent": "0.7.0" }, "dependencies": { "@prisma/client": "4.15.0", - "@swc/core": "^1.3.38", - "@types/react": "^18.0.28", - "@types/react-dom": "^18.0.11", - "bktree-fast": "^0.0.7", - "body-parser": "^1.20.2", - "dedent": "^0.7.0", - "esbuild": "^0.18.6", - "express": "^4.18.2", - "iconv-lite": "^0.6.3", - "jest-extended": "^4.0.0", - "lodash": "^4.17.21", + "@swc/core": "1.3.38", + "@types/react": "18.0.28", + "@types/react-dom": "18.0.11", + "bktree-fast": "0.0.7", + "body-parser": "1.20.2", + "dedent": "0.7.0", + "esbuild": "0.18.6", + "express": "4.18.2", + "iconv-lite": "0.6.3", + "jest-extended": "4.0.0", + "lodash": "4.17.21", "prisma": "4.15.0", - "socket.io": "^4.6.1", - "socket.io-client": "^4.6.1", - "supertest": "^6.1.6", - "svelte": "^3.55.1", - "typescript": "^5.0.2", - "undici": "^5.20.0", - "vitest": "^0.32.2", + "socket.io": "4.6.1", + "socket.io-client": "4.6.1", + "supertest": "6.1.6", + "svelte": "3.55.1", + "typescript": "5.0.2", + "undici": "5.20.0", + "vitest": "0.32.2", "webpack": "5.88.0", "webpack-cli": "4.7.2" }, -- cgit v1.2.3 From b05879e9e2e9d52359eb91a1305c1e694169c030 Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Sun, 2 Jul 2023 01:06:40 -0700 Subject: Fixes #3489 (#3490) Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> --- src/bun.js/api/html_rewriter.zig | 35 ++++++++--------------------------- src/deps/lol-html.zig | 22 +++++++++++++++++++++- test/js/workerd/html-rewriter.test.js | 28 ++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+), 28 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/api/html_rewriter.zig b/src/bun.js/api/html_rewriter.zig index 5e14d5503..532e0ae1e 100644 --- a/src/bun.js/api/html_rewriter.zig +++ b/src/bun.js/api/html_rewriter.zig @@ -996,26 +996,14 @@ const getterWrap = JSC.getterWrap; const setterWrap = JSC.setterWrap; const wrap = JSC.wrapSync; -pub fn free_html_writer_string(_: ?*anyopaque, ptr: ?*anyopaque, len: usize) callconv(.C) void { - var str = LOLHTML.HTMLString{ .ptr = bun.cast([*]const u8, ptr.?), .len = len }; - str.deinit(); -} - fn throwLOLHTMLError(global: *JSGlobalObject) JSValue { - var err = LOLHTML.HTMLString.lastError(); - return ZigString.init(err.slice()).toErrorInstance(global); + const err = LOLHTML.HTMLString.lastError(); + defer err.deinit(); + return ZigString.fromUTF8(err.slice()).toErrorInstance(global); } fn htmlStringValue(input: LOLHTML.HTMLString, globalObject: *JSGlobalObject) JSValue { - var str = ZigString.init( - input.slice(), - ); - str.detectEncoding(); - - return str.toExternalValueWithCallback( - globalObject, - free_html_writer_string, - ); + return input.toJS(globalObject); } pub const TextChunk = struct { @@ -1328,7 +1316,7 @@ pub const Comment = struct { pub fn getText(this: *Comment, global: *JSGlobalObject) JSValue { if (this.comment == null) return JSValue.jsNull(); - return ZigString.init(this.comment.?.getText().slice()).withEncoding().toValueGC(global); + return this.comment.?.getText().toJS(global); } pub fn setText( @@ -1458,7 +1446,7 @@ pub const EndTag = struct { if (this.end_tag == null) return JSC.JSValue.jsUndefined(); - return ZigString.init(this.end_tag.?.getName().slice()).withEncoding().toValueGC(global); + return this.end_tag.?.getName().toJS(global); } pub fn setName( @@ -1696,19 +1684,12 @@ pub const Element = struct { var slice = name.toSlice(bun.default_allocator); defer slice.deinit(); - var attr = this.element.?.getAttribute(slice.slice()).slice(); + var attr = this.element.?.getAttribute(slice.slice()); if (attr.len == 0) return JSC.JSValue.jsNull(); - var str = ZigString.init( - attr, - ); - - return str.toExternalValueWithCallback( - globalObject, - free_html_writer_string, - ); + return attr.toJS(globalObject); } /// Returns a boolean indicating whether an attribute exists on the element. diff --git a/src/deps/lol-html.zig b/src/deps/lol-html.zig index 9c5345046..50dab9592 100644 --- a/src/deps/lol-html.zig +++ b/src/deps/lol-html.zig @@ -1,6 +1,6 @@ pub const Error = error{Fail}; const std = @import("std"); - +const bun = @import("root").bun; pub const MemorySettings = extern struct { preallocated_parsing_buffer_size: usize, max_allowed_memory_usage: usize, @@ -563,6 +563,26 @@ pub const HTMLString = extern struct { @setRuntimeSafety(false); return this.ptr[0..this.len]; } + + fn deinit_external(ctx: *anyopaque, ptr: *anyopaque, len: u32) callconv(.C) void { + _ = ctx; + auto_disable(); + lol_html_str_free(.{ .ptr = @ptrCast([*]const u8, ptr), .len = len }); + } + + pub fn toJS(this: HTMLString, globalThis: *bun.JSC.JSGlobalObject) bun.JSC.JSValue { + const bytes = this.slice(); + if (bun.strings.isAllASCII(bytes)) { + var external = bun.String.createExternal(bytes, true, @constCast(bytes.ptr), &deinit_external); + defer external.deref(); + return external.toJS(globalThis); + } + defer this.deinit(); + + var str = bun.String.create(bytes); + defer str.deref(); + return str.toJS(globalThis); + } }; pub const EndTag = opaque { diff --git a/test/js/workerd/html-rewriter.test.js b/test/js/workerd/html-rewriter.test.js index 3f7b7493d..aaf912aff 100644 --- a/test/js/workerd/html-rewriter.test.js +++ b/test/js/workerd/html-rewriter.test.js @@ -337,3 +337,31 @@ it("#3334 regression", async () => { } Bun.gc(true); }); + +it("#3489", async () => { + var el; + await new HTMLRewriter() + .on("p", { + element(element) { + el = element.getAttribute("id"); + }, + }) + .transform(new Response('

')) + .text(); + expect(el).toEqual("Šžõäöü"); +}); + +it("get attribute - ascii", async () => { + for (let i = 0; i < 10; i++) { + var el; + await new HTMLRewriter() + .on("p", { + element(element) { + el = element.getAttribute("id"); + }, + }) + .transform(new Response(`

`)) + .text(); + expect(el).toEqual("asciii"); + } +}); -- cgit v1.2.3 From c3f8593f8cb1571b41b8233e5ded98e3d3f99fb0 Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Sun, 2 Jul 2023 18:06:21 -0700 Subject: [node:buffer] Implement `isUtf8` and `isAscii` (#3498) Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> --- packages/bun-types/buffer.d.ts | 24 +++++++ src/bun.js/modules/BufferModule.h | 130 ++++++++++++++++++++++++++++++++++++++ test/js/node/buffer.test.js | 24 ++++++- 3 files changed, 177 insertions(+), 1 deletion(-) (limited to 'test/js') diff --git a/packages/bun-types/buffer.d.ts b/packages/bun-types/buffer.d.ts index eb7335871..fd7201677 100644 --- a/packages/bun-types/buffer.d.ts +++ b/packages/bun-types/buffer.d.ts @@ -2084,6 +2084,30 @@ declare module "buffer" { values(): IterableIterator; } var Buffer: BufferConstructor; + + /** + * This function returns `true` if `input` contains only valid UTF-8-encoded data, + * including the case in which `input` is empty. + * + * Throws if the `input` is a detached array buffer. + * @since Bun v0.6.13 + * @param input The input to validate. + */ + export function isUtf8( + input: TypedArray | ArrayBufferLike | DataView, + ): boolean; + + /** + * This function returns `true` if `input` contains only valid ASCII-encoded data, + * including the case in which `input` is empty. + * + * Throws if the `input` is a detached array buffer. + * @since Bun v0.6.13 + * @param input The input to validate. + */ + export function isAscii( + input: TypedArray | ArrayBufferLike | DataView, + ): boolean; } } declare module "node:buffer" { diff --git a/src/bun.js/modules/BufferModule.h b/src/bun.js/modules/BufferModule.h index a96fb18c8..6e6e39e9c 100644 --- a/src/bun.js/modules/BufferModule.h +++ b/src/bun.js/modules/BufferModule.h @@ -2,11 +2,127 @@ #include "../bindings/ZigGlobalObject.h" #include "JavaScriptCore/JSGlobalObject.h" #include "JavaScriptCore/ObjectConstructor.h" +#include "simdutf.h" namespace Zig { using namespace WebCore; using namespace JSC; +// TODO: Add DOMJIT fast path +JSC_DEFINE_HOST_FUNCTION(jsBufferConstructorFunction_isUtf8, + (JSC::JSGlobalObject * lexicalGlobalObject, + JSC::CallFrame *callframe)) { + auto throwScope = DECLARE_THROW_SCOPE(lexicalGlobalObject->vm()); + + auto buffer = callframe->argument(0); + auto *bufferView = JSC::jsDynamicCast(buffer); + const char *ptr = nullptr; + size_t byteLength = 0; + if (bufferView) { + if (UNLIKELY(bufferView->isDetached())) { + throwTypeError(lexicalGlobalObject, throwScope, + "ArrayBufferView is detached"_s); + return JSValue::encode({}); + } + + byteLength = bufferView->byteLength(); + + if (byteLength == 0) { + return JSValue::encode(jsBoolean(true)); + } + + ptr = reinterpret_cast(bufferView->vector()); + } else if (auto *arrayBuffer = + JSC::jsDynamicCast(buffer)) { + auto *impl = arrayBuffer->impl(); + + if (!impl) { + return JSValue::encode(jsBoolean(true)); + } + + if (UNLIKELY(impl->isDetached())) { + throwTypeError(lexicalGlobalObject, throwScope, + "ArrayBuffer is detached"_s); + return JSValue::encode({}); + } + + byteLength = impl->byteLength(); + + if (byteLength == 0) { + return JSValue::encode(jsBoolean(true)); + } + + ptr = reinterpret_cast(impl->data()); + } else { + throwVMError( + lexicalGlobalObject, throwScope, + createTypeError(lexicalGlobalObject, + "First argument must be an ArrayBufferView"_s)); + return JSValue::encode({}); + } + + RELEASE_AND_RETURN(throwScope, JSValue::encode(jsBoolean( + simdutf::validate_utf8(ptr, byteLength)))); +} + +// TODO: Add DOMJIT fast path +JSC_DEFINE_HOST_FUNCTION(jsBufferConstructorFunction_isAscii, + (JSC::JSGlobalObject * lexicalGlobalObject, + JSC::CallFrame *callframe)) { + auto throwScope = DECLARE_THROW_SCOPE(lexicalGlobalObject->vm()); + + auto buffer = callframe->argument(0); + auto *bufferView = JSC::jsDynamicCast(buffer); + const char *ptr = nullptr; + size_t byteLength = 0; + if (bufferView) { + + if (UNLIKELY(bufferView->isDetached())) { + throwTypeError(lexicalGlobalObject, throwScope, + "ArrayBufferView is detached"_s); + return JSValue::encode({}); + } + + byteLength = bufferView->byteLength(); + + if (byteLength == 0) { + return JSValue::encode(jsBoolean(true)); + } + + ptr = reinterpret_cast(bufferView->vector()); + } else if (auto *arrayBuffer = + JSC::jsDynamicCast(buffer)) { + auto *impl = arrayBuffer->impl(); + if (UNLIKELY(impl->isDetached())) { + throwTypeError(lexicalGlobalObject, throwScope, + "ArrayBuffer is detached"_s); + return JSValue::encode({}); + } + + if (!impl) { + return JSValue::encode(jsBoolean(true)); + } + + byteLength = impl->byteLength(); + + if (byteLength == 0) { + return JSValue::encode(jsBoolean(true)); + } + + ptr = reinterpret_cast(impl->data()); + } else { + throwVMError( + lexicalGlobalObject, throwScope, + createTypeError(lexicalGlobalObject, + "First argument must be an ArrayBufferView"_s)); + return JSValue::encode({}); + } + + RELEASE_AND_RETURN( + throwScope, + JSValue::encode(jsBoolean(simdutf::validate_ascii(ptr, byteLength)))); +} + JSC_DEFINE_HOST_FUNCTION(jsFunctionNotImplemented, (JSGlobalObject * globalObject, CallFrame *callFrame)) { @@ -106,6 +222,20 @@ inline void generateBufferSourceCode(JSC::JSGlobalObject *lexicalGlobalObject, exportProperty(JSC::Identifier::fromString(vm, "resolveObjectURL"_s), resolveObjectURL); + exportProperty(JSC::Identifier::fromString(vm, "isAscii"_s), + JSC::JSFunction::create(vm, globalObject, 1, "isAscii"_s, + jsBufferConstructorFunction_isAscii, + ImplementationVisibility::Public, + NoIntrinsic, + jsBufferConstructorFunction_isUtf8)); + + exportProperty(JSC::Identifier::fromString(vm, "isUtf8"_s), + JSC::JSFunction::create(vm, globalObject, 1, "isUtf8"_s, + jsBufferConstructorFunction_isUtf8, + ImplementationVisibility::Public, + NoIntrinsic, + jsBufferConstructorFunction_isUtf8)); + exportNames.append(vm.propertyNames->defaultKeyword); exportValues.append(defaultObject); } diff --git a/test/js/node/buffer.test.js b/test/js/node/buffer.test.js index e0d8f5486..99562fedd 100644 --- a/test/js/node/buffer.test.js +++ b/test/js/node/buffer.test.js @@ -1,4 +1,4 @@ -import { Buffer, SlowBuffer } from "buffer"; +import { Buffer, SlowBuffer, isAscii, isUtf8 } from "buffer"; import { describe, it, expect, beforeEach, afterEach } from "bun:test"; import { gc } from "harness"; @@ -7,6 +7,28 @@ const BufferModule = await import("buffer"); beforeEach(() => gc()); afterEach(() => gc()); +it("isAscii", () => { + expect(isAscii(new Buffer("abc"))).toBeTrue(); + expect(isAscii(new Buffer(""))).toBeTrue(); + expect(isAscii(new Buffer([32, 32, 128]))).toBeFalse(); + expect(isAscii(new Buffer("What did the 🦊 say?"))).toBeFalse(); + + expect(isAscii(new Buffer("").buffer)).toBeTrue(); + expect(isAscii(new Buffer([32, 32, 128]).buffer)).toBeFalse(); +}); + +it("isUtf8", () => { + expect(isUtf8(new Buffer("abc"))).toBeTrue(); + expect(isAscii(new Buffer(""))).toBeTrue(); + expect(isUtf8(new Buffer("What did the 🦊 say?"))).toBeTrue(); + expect(isUtf8(new Buffer([129, 129, 129]))).toBeFalse(); + + expect(isUtf8(new Buffer("abc").buffer)).toBeTrue(); + expect(isAscii(new Buffer("").buffer)).toBeTrue(); + expect(isUtf8(new Buffer("What did the 🦊 say?").buffer)).toBeTrue(); + expect(isUtf8(new Buffer([129, 129, 129]).buffer)).toBeFalse(); +}); + // https://github.com/oven-sh/bun/issues/2052 it("Buffer global is settable", () => { var prevBuffer = globalThis.Buffer; -- cgit v1.2.3 From eb90ce50c362149829590dc78db4d4d73fb2b36e Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Sun, 2 Jul 2023 20:16:52 -0700 Subject: Use fast path for Base64 in `btoa` (#3504) * Use fast path for Base64 in `atob` * Fix utf16, crash on linux --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> --- src/bun.js/bindings/ZigGlobalObject.cpp | 74 +++++++++++++++++++++++---------- test/js/web/util/atob.test.js | 9 ++-- 2 files changed, 56 insertions(+), 27 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/bindings/ZigGlobalObject.cpp b/src/bun.js/bindings/ZigGlobalObject.cpp index 7ba0f0b30..102e5e4e8 100644 --- a/src/bun.js/bindings/ZigGlobalObject.cpp +++ b/src/bun.js/bindings/ZigGlobalObject.cpp @@ -181,6 +181,8 @@ namespace JSCastingHelpers = JSC::JSCastingHelpers; #include "DOMWrapperWorld-class.h" #include "CommonJSModuleRecord.h" #include +#include +#include "simdutf.h" constexpr size_t DEFAULT_ERROR_STACK_TRACE_LIMIT = 10; @@ -194,6 +196,24 @@ constexpr size_t DEFAULT_ERROR_STACK_TRACE_LIMIT = 10; // #include static bool has_loaded_jsc = false; +namespace WebCore { +class Base64Utilities { +public: + static ExceptionOr atob(const String& encodedString) + { + if (encodedString.isNull()) + return String(); + + auto decodedData = base64Decode(encodedString, Base64DecodeMode::DefaultValidatePaddingAndIgnoreWhitespace); + if (!decodedData) + return Exception { InvalidCharacterError }; + + return String(decodedData->data(), decodedData->size()); + } +}; + +} + extern "C" void JSCInitialize(const char* envp[], size_t envc, void (*onCrash)(const char* ptr, size_t length)) { if (has_loaded_jsc) @@ -1164,53 +1184,65 @@ JSC_DEFINE_HOST_FUNCTION(functionBTOA, (JSC::JSGlobalObject * globalObject, JSC::CallFrame* callFrame)) { JSC::VM& vm = globalObject->vm(); + auto throwScope = DECLARE_THROW_SCOPE(globalObject->vm()); if (callFrame->argumentCount() == 0) { - auto scope = DECLARE_THROW_SCOPE(globalObject->vm()); - JSC::throwTypeError(globalObject, scope, "btoa requires 1 argument (a string)"_s); + JSC::throwTypeError(globalObject, throwScope, "btoa requires 1 argument (a string)"_s); return JSC::JSValue::encode(JSC::JSValue {}); } - const String& stringToEncode = callFrame->argument(0).toWTFString(globalObject); + JSValue arg0 = callFrame->uncheckedArgument(0); + WTF::String encodedString = arg0.toWTFString(globalObject); + RETURN_IF_EXCEPTION(throwScope, JSC::JSValue::encode(JSC::JSValue {})); - if (!stringToEncode || stringToEncode.isNull()) { - return JSC::JSValue::encode(JSC::jsString(vm, WTF::String())); + if (encodedString.isEmpty()) { + return JSC::JSValue::encode(JSC::jsEmptyString(vm)); } - if (!stringToEncode.isAllLatin1()) { - auto scope = DECLARE_THROW_SCOPE(globalObject->vm()); - throwException(globalObject, scope, createDOMException(globalObject, ExceptionCode::InvalidCharacterError)); + if (!encodedString.isAllLatin1()) { + throwException(globalObject, throwScope, createDOMException(globalObject, InvalidCharacterError)); return JSC::JSValue::encode(JSC::JSValue {}); } - return JSC::JSValue::encode(JSC::jsString(vm, WTF::base64EncodeToString(stringToEncode.latin1()))); + if (!encodedString.is8Bit()) { + LChar* ptr; + unsigned length = encodedString.length(); + auto dest = WTF::String::createUninitialized(length, ptr); + WTF::StringImpl::copyCharacters(ptr, encodedString.characters16(), length); + encodedString = WTFMove(dest); + } + + unsigned length = encodedString.length(); + RELEASE_AND_RETURN( + throwScope, + Bun__encoding__toString( + encodedString.characters8(), + length, + globalObject, + static_cast(WebCore::BufferEncodingType::base64))); } static JSC_DEFINE_HOST_FUNCTION(functionATOB, (JSC::JSGlobalObject * globalObject, JSC::CallFrame* callFrame)) { JSC::VM& vm = globalObject->vm(); + auto throwScope = DECLARE_THROW_SCOPE(globalObject->vm()); if (callFrame->argumentCount() == 0) { - auto scope = DECLARE_THROW_SCOPE(globalObject->vm()); - JSC::throwTypeError(globalObject, scope, "atob requires 1 argument (a string)"_s); + JSC::throwTypeError(globalObject, throwScope, "atob requires 1 argument (a string)"_s); return JSC::JSValue::encode(JSC::JSValue {}); } - const WTF::String& encodedString = callFrame->argument(0).toWTFString(globalObject); + WTF::String encodedString = callFrame->uncheckedArgument(0).toWTFString(globalObject); + RETURN_IF_EXCEPTION(throwScope, JSC::JSValue::encode(JSC::JSValue {})); - if (encodedString.isNull()) { - return JSC::JSValue::encode(JSC::jsEmptyString(vm)); - } - - auto decodedData = WTF::base64Decode(encodedString, Base64DecodeMode::DefaultValidatePaddingAndIgnoreWhitespace); - if (!decodedData) { - auto scope = DECLARE_THROW_SCOPE(globalObject->vm()); - throwException(globalObject, scope, createDOMException(globalObject, ExceptionCode::InvalidCharacterError)); + auto result = WebCore::Base64Utilities::atob(encodedString); + if (result.hasException()) { + throwException(globalObject, throwScope, createDOMException(*globalObject, result.releaseException())); return JSC::JSValue::encode(JSC::JSValue {}); } - return JSC::JSValue::encode(JSC::jsString(vm, WTF::String(decodedData->data(), decodedData->size()))); + RELEASE_AND_RETURN(throwScope, JSValue::encode(jsString(vm, result.releaseReturnValue()))); } static JSC_DEFINE_HOST_FUNCTION(functionHashCode, diff --git a/test/js/web/util/atob.test.js b/test/js/web/util/atob.test.js index 4945829e1..20c029f14 100644 --- a/test/js/web/util/atob.test.js +++ b/test/js/web/util/atob.test.js @@ -60,18 +60,15 @@ it("btoa", () => { expect(btoa("abcde")).toBe("YWJjZGU="); expect(btoa("abcdef")).toBe("YWJjZGVm"); expect(typeof btoa).toBe("function"); - try { - btoa(); - throw new Error("Expected error"); - } catch (error) { - expect(error.name).toBe("TypeError"); - } + expect(() => btoa()).toThrow("btoa requires 1 argument (a string)"); var window = "[object Window]"; expect(btoa("")).toBe(""); expect(btoa(null)).toBe("bnVsbA=="); expect(btoa(undefined)).toBe("dW5kZWZpbmVk"); expect(btoa(window)).toBe("W29iamVjdCBXaW5kb3dd"); expect(btoa("éé")).toBe("6ek="); + // check for utf16 + expect(btoa("🧐éé".substring("🧐".length))).toBe("6ek="); expect(btoa("\u0080\u0081")).toBe("gIE="); expect(btoa(Bun)).toBe(btoa("[object Bun]")); }); -- cgit v1.2.3 From c21fadf9bcc939dcf7d949cda86c974481b5f609 Mon Sep 17 00:00:00 2001 From: dave caruso Date: Sun, 2 Jul 2023 23:24:15 -0400 Subject: set content-length 0 in some cases (#3503) --- src/http_client_async.zig | 3 +-- test/js/web/fetch/fetch.test.ts | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) (limited to 'test/js') diff --git a/src/http_client_async.zig b/src/http_client_async.zig index a1962a8b9..2cb534ed2 100644 --- a/src/http_client_async.zig +++ b/src/http_client_async.zig @@ -1629,7 +1629,6 @@ pub fn buildRequest(this: *HTTPClient, body_len: usize) picohttp.Request { var override_accept_encoding = false; var override_accept_header = false; var override_host_header = false; - var override_user_agent = false; for (header_names, 0..) |head, i| { @@ -1710,7 +1709,7 @@ pub fn buildRequest(this: *HTTPClient, body_len: usize) picohttp.Request { header_count += 1; } - if (body_len > 0) { + if (body_len > 0 or this.method.hasRequestBody()) { request_headers_buf[header_count] = .{ .name = content_length_header_name, .value = std.fmt.bufPrint(&this.request_content_len_buf, "{d}", .{body_len}) catch "0", diff --git a/test/js/web/fetch/fetch.test.ts b/test/js/web/fetch/fetch.test.ts index 4d529b231..6b87cc613 100644 --- a/test/js/web/fetch/fetch.test.ts +++ b/test/js/web/fetch/fetch.test.ts @@ -387,6 +387,25 @@ describe("fetch", () => { }).toThrow("fetch() request with GET/HEAD/OPTIONS method cannot have body."); }), ); + + it("content length is inferred", async () => { + startServer({ + fetch(req) { + return new Response(req.headers.get("content-length")); + }, + hostname: "localhost", + }); + + // POST with body + const url = `http://${server.hostname}:${server.port}`; + const response = await fetch(url, { method: "POST", body: "buntastic" }); + expect(response.status).toBe(200); + expect(await response.text()).toBe("9"); + + const response2 = await fetch(url, { method: "POST", body: "" }); + expect(response2.status).toBe(200); + expect(await response2.text()).toBe("0"); + }); }); it("simultaneous HTTPS fetch", async () => { -- cgit v1.2.3 From aa38e51afb73dab3071addc07f82fd96153ff450 Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Sun, 2 Jul 2023 22:09:50 -0700 Subject: Support mocking `new Date()` & `Date.now()` in bun:test (#3501) * Support changing the time * Bump WebKit * Update bun.lockb --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> --- .github/workflows/bun-linux-aarch64.yml | 2 +- .github/workflows/bun-linux-build.yml | 4 ++-- .github/workflows/bun-mac-aarch64.yml | 16 ++++++++-------- .github/workflows/bun-mac-x64-baseline.yml | 16 ++++++++-------- .github/workflows/bun-mac-x64.yml | 16 ++++++++-------- Dockerfile | 2 +- bun.lockb | Bin 72925 -> 72925 bytes package.json | 2 +- src/bun.js/WebKit | 2 +- src/bun.js/bindings/JSMockFunction.cpp | 24 ++++++++++++++++++++++++ src/bun.js/test/jest.zig | 5 +++++ test/js/bun/test/test-timers.test.ts | 11 +++++++++++ 12 files changed, 70 insertions(+), 30 deletions(-) create mode 100644 test/js/bun/test/test-timers.test.ts (limited to 'test/js') diff --git a/.github/workflows/bun-linux-aarch64.yml b/.github/workflows/bun-linux-aarch64.yml index 01714460b..13dddece4 100644 --- a/.github/workflows/bun-linux-aarch64.yml +++ b/.github/workflows/bun-linux-aarch64.yml @@ -36,7 +36,7 @@ jobs: arch: aarch64 build_arch: arm64 runner: linux-arm64 - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-linux-arm64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-3/bun-webkit-linux-arm64-lto.tar.gz" webkit_basename: "bun-webkit-linux-arm64-lto" build_machine_arch: aarch64 diff --git a/.github/workflows/bun-linux-build.yml b/.github/workflows/bun-linux-build.yml index 798ffaf33..e992770f1 100644 --- a/.github/workflows/bun-linux-build.yml +++ b/.github/workflows/bun-linux-build.yml @@ -46,7 +46,7 @@ jobs: arch: x86_64 build_arch: amd64 runner: big-ubuntu - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-linux-amd64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-3/bun-webkit-linux-amd64-lto.tar.gz" webkit_basename: "bun-webkit-linux-amd64-lto" build_machine_arch: x86_64 - cpu: nehalem @@ -54,7 +54,7 @@ jobs: arch: x86_64 build_arch: amd64 runner: big-ubuntu - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-linux-amd64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-3/bun-webkit-linux-amd64-lto.tar.gz" webkit_basename: "bun-webkit-linux-amd64-lto" build_machine_arch: x86_64 diff --git a/.github/workflows/bun-mac-aarch64.yml b/.github/workflows/bun-mac-aarch64.yml index f281783bd..484c7035b 100644 --- a/.github/workflows/bun-mac-aarch64.yml +++ b/.github/workflows/bun-mac-aarch64.yml @@ -117,7 +117,7 @@ jobs: # obj: bun-obj-darwin-x64-baseline # runner: macos-11 # artifact: bun-obj-darwin-x64-baseline - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-3/bun-webkit-macos-amd64-lto.tar.gz" # dependencies: true # compile_obj: false # - cpu: haswell @@ -126,7 +126,7 @@ jobs: # obj: bun-obj-darwin-x64 # runner: macos-11 # artifact: bun-obj-darwin-x64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-3/bun-webkit-macos-amd64-lto.tar.gz" # dependencies: true # compile_obj: false # - cpu: nehalem @@ -135,7 +135,7 @@ jobs: # obj: bun-obj-darwin-x64-baseline # runner: macos-11 # artifact: bun-obj-darwin-x64-baseline - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-3/bun-webkit-macos-amd64-lto.tar.gz" # dependencies: false # compile_obj: true # - cpu: haswell @@ -144,7 +144,7 @@ jobs: # obj: bun-obj-darwin-x64 # runner: macos-11 # artifact: bun-obj-darwin-x64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-3/bun-webkit-macos-amd64-lto.tar.gz" # dependencies: false # compile_obj: true - cpu: native @@ -152,7 +152,7 @@ jobs: tag: bun-darwin-aarch64 obj: bun-obj-darwin-aarch64 artifact: bun-obj-darwin-aarch64 - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-arm64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-3/bun-webkit-macos-arm64-lto.tar.gz" runner: macos-arm64 dependencies: true compile_obj: true @@ -257,7 +257,7 @@ jobs: # package: bun-darwin-x64 # runner: macos-11 # artifact: bun-obj-darwin-x64-baseline - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-3/bun-webkit-macos-amd64-lto.tar.gz" # - cpu: haswell # arch: x86_64 # tag: bun-darwin-x64 @@ -265,14 +265,14 @@ jobs: # package: bun-darwin-x64 # runner: macos-11 # artifact: bun-obj-darwin-x64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-3/bun-webkit-macos-amd64-lto.tar.gz" - cpu: native arch: aarch64 tag: bun-darwin-aarch64 obj: bun-obj-darwin-aarch64 package: bun-darwin-aarch64 artifact: bun-obj-darwin-aarch64 - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-arm64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-3/bun-webkit-macos-arm64-lto.tar.gz" runner: macos-arm64 steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/bun-mac-x64-baseline.yml b/.github/workflows/bun-mac-x64-baseline.yml index b5f79a757..fe8f0b396 100644 --- a/.github/workflows/bun-mac-x64-baseline.yml +++ b/.github/workflows/bun-mac-x64-baseline.yml @@ -117,7 +117,7 @@ jobs: obj: bun-obj-darwin-x64-baseline runner: macos-11 artifact: bun-obj-darwin-x64-baseline - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-3/bun-webkit-macos-amd64-lto.tar.gz" dependencies: true compile_obj: false # - cpu: haswell @@ -126,7 +126,7 @@ jobs: # obj: bun-obj-darwin-x64 # runner: macos-11 # artifact: bun-obj-darwin-x64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-3/bun-webkit-macos-amd64-lto.tar.gz" # dependencies: true # compile_obj: false - cpu: nehalem @@ -135,7 +135,7 @@ jobs: obj: bun-obj-darwin-x64-baseline runner: macos-11 artifact: bun-obj-darwin-x64-baseline - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-3/bun-webkit-macos-amd64-lto.tar.gz" dependencies: false compile_obj: true # - cpu: haswell @@ -144,7 +144,7 @@ jobs: # obj: bun-obj-darwin-x64 # runner: macos-11 # artifact: bun-obj-darwin-x64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-3/bun-webkit-macos-amd64-lto.tar.gz" # dependencies: false # compile_obj: true # - cpu: native @@ -152,7 +152,7 @@ jobs: # tag: bun-darwin-aarch64 # obj: bun-obj-darwin-aarch64 # artifact: bun-obj-darwin-aarch64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-3/bun-webkit-macos-amd64-lto.tar.gz" # runner: macos-arm64 # dependencies: true # compile_obj: true @@ -258,7 +258,7 @@ jobs: package: bun-darwin-x64 runner: macos-11 artifact: bun-obj-darwin-x64-baseline - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-3/bun-webkit-macos-amd64-lto.tar.gz" # - cpu: haswell # arch: x86_64 # tag: bun-darwin-x64 @@ -266,14 +266,14 @@ jobs: # package: bun-darwin-x64 # runner: macos-11 # artifact: bun-obj-darwin-x64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-3/bun-webkit-macos-amd64-lto.tar.gz" # - cpu: native # arch: aarch64 # tag: bun-darwin-aarch64 # obj: bun-obj-darwin-aarch64 # package: bun-darwin-aarch64 # artifact: bun-obj-darwin-aarch64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-3/bun-webkit-macos-amd64-lto.tar.gz" # runner: macos-arm64 steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/bun-mac-x64.yml b/.github/workflows/bun-mac-x64.yml index 8b30321f0..ae265adab 100644 --- a/.github/workflows/bun-mac-x64.yml +++ b/.github/workflows/bun-mac-x64.yml @@ -117,7 +117,7 @@ jobs: # obj: bun-obj-darwin-x64-baseline # runner: macos-11 # artifact: bun-obj-darwin-x64-baseline - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-3/bun-webkit-macos-amd64-lto.tar.gz" # dependencies: true # compile_obj: false - cpu: haswell @@ -126,7 +126,7 @@ jobs: obj: bun-obj-darwin-x64 runner: macos-11 artifact: bun-obj-darwin-x64 - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-3/bun-webkit-macos-amd64-lto.tar.gz" dependencies: true compile_obj: false # - cpu: nehalem @@ -135,7 +135,7 @@ jobs: # obj: bun-obj-darwin-x64-baseline # runner: macos-11 # artifact: bun-obj-darwin-x64-baseline - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-3/bun-webkit-macos-amd64-lto.tar.gz" # dependencies: false # compile_obj: true - cpu: haswell @@ -144,7 +144,7 @@ jobs: obj: bun-obj-darwin-x64 runner: macos-11 artifact: bun-obj-darwin-x64 - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-3/bun-webkit-macos-amd64-lto.tar.gz" dependencies: false compile_obj: true # - cpu: native @@ -152,7 +152,7 @@ jobs: # tag: bun-darwin-aarch64 # obj: bun-obj-darwin-aarch64 # artifact: bun-obj-darwin-aarch64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-arm64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-3/bun-webkit-macos-arm64-lto.tar.gz" # runner: macos-arm64 # dependencies: true # compile_obj: true @@ -260,7 +260,7 @@ jobs: # package: bun-darwin-x64 # runner: macos-11 # artifact: bun-obj-darwin-x64-baseline - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-3/bun-webkit-macos-amd64-lto.tar.gz" - cpu: haswell arch: x86_64 tag: bun-darwin-x64 @@ -268,14 +268,14 @@ jobs: package: bun-darwin-x64 runner: macos-11 artifact: bun-obj-darwin-x64 - webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-amd64-lto.tar.gz" + webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-3/bun-webkit-macos-amd64-lto.tar.gz" # - cpu: native # arch: aarch64 # tag: bun-darwin-aarch64 # obj: bun-obj-darwin-aarch64 # package: bun-darwin-aarch64 # artifact: bun-obj-darwin-aarch64 - # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-2/bun-webkit-macos-arm64-lto.tar.gz" + # webkit_url: "https://github.com/oven-sh/WebKit/releases/download/may20-3/bun-webkit-macos-arm64-lto.tar.gz" # runner: macos-arm64 steps: - uses: actions/checkout@v3 diff --git a/Dockerfile b/Dockerfile index 5f66a5e04..66c3360af 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,7 +10,7 @@ ARG ARCH=x86_64 ARG BUILD_MACHINE_ARCH=x86_64 ARG TRIPLET=${ARCH}-linux-gnu ARG BUILDARCH=amd64 -ARG WEBKIT_TAG=may20-2 +ARG WEBKIT_TAG=may20-3 ARG ZIG_TAG=jul1 ARG ZIG_VERSION="0.11.0-dev.3737+9eb008717" ARG WEBKIT_BASENAME="bun-webkit-linux-$BUILDARCH" diff --git a/bun.lockb b/bun.lockb index e53db751b..69f9ded0b 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/package.json b/package.json index 4fe213747..f4bd86e76 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "@types/react": "^18.0.25", "@typescript-eslint/eslint-plugin": "^5.31.0", "@typescript-eslint/parser": "^5.31.0", - "bun-webkit": "0.0.1-8a03cf746abef8a48c932ab25f8821390632f2e2" + "bun-webkit": "0.0.1-26c819733315f0ab64ae8e8e65b77d77d31211e1" }, "version": "0.0.0", "prettier": "./.prettierrc.cjs" diff --git a/src/bun.js/WebKit b/src/bun.js/WebKit index 8a03cf746..26c819733 160000 --- a/src/bun.js/WebKit +++ b/src/bun.js/WebKit @@ -1 +1 @@ -Subproject commit 8a03cf746abef8a48c932ab25f8821390632f2e2 +Subproject commit 26c819733315f0ab64ae8e8e65b77d77d31211e1 diff --git a/src/bun.js/bindings/JSMockFunction.cpp b/src/bun.js/bindings/JSMockFunction.cpp index 33922c2b7..0e24e761c 100644 --- a/src/bun.js/bindings/JSMockFunction.cpp +++ b/src/bun.js/bindings/JSMockFunction.cpp @@ -19,6 +19,7 @@ #include #include #include +#include namespace Bun { @@ -65,6 +66,29 @@ JSC_DECLARE_HOST_FUNCTION(jsMockFunctionMockRejectedValueOnce); JSC_DECLARE_HOST_FUNCTION(jsMockFunctionWithImplementationCleanup); JSC_DECLARE_HOST_FUNCTION(jsMockFunctionWithImplementation); +extern "C" EncodedJSValue JSMock__jsNow(JSC::JSGlobalObject* globalObject, JSC::CallFrame* callFrame) +{ + return JSValue::encode(jsNumber(globalObject->jsDateNow())); +} +extern "C" EncodedJSValue JSMock__jsSetSystemTime(JSC::JSGlobalObject* globalObject, JSC::CallFrame* callFrame) +{ + JSValue argument0 = callFrame->argument(0); + + if (auto* dateInstance = jsDynamicCast(argument0)) { + if (std::isnormal(dateInstance->internalNumber())) { + globalObject->overridenDateNow = dateInstance->internalNumber(); + } + return JSValue::encode(callFrame->thisValue()); + } + + if (argument0.isNumber() && argument0.asNumber() > 0) { + globalObject->overridenDateNow = argument0.asNumber(); + } + + globalObject->overridenDateNow = -1; + return JSValue::encode(callFrame->thisValue()); +} + uint64_t JSMockModule::s_nextInvocationId = 0; // This is taken from JSWeakSet diff --git a/src/bun.js/test/jest.zig b/src/bun.js/test/jest.zig index 6e4cb827c..727466835 100644 --- a/src/bun.js/test/jest.zig +++ b/src/bun.js/test/jest.zig @@ -440,6 +440,9 @@ pub const Jest = struct { jest.put(globalObject, ZigString.static("fn"), mockFn); jest.put(globalObject, ZigString.static("spyOn"), spyOn); jest.put(globalObject, ZigString.static("restoreAllMocks"), restoreAllMocks); + jest.put(globalObject, ZigString.static("now"), JSC.NewFunction(globalObject, ZigString.static("now"), 0, JSMock__jsNow, false)); + jest.put(globalObject, ZigString.static("setSystemTime"), JSC.NewFunction(globalObject, ZigString.static("setSystemTime"), 0, JSMock__jsSetSystemTime, false)); + module.put(globalObject, ZigString.static("jest"), jest); module.put(globalObject, ZigString.static("spyOn"), spyOn); @@ -455,6 +458,8 @@ pub const Jest = struct { extern fn Bun__Jest__testPreloadObject(*JSC.JSGlobalObject) JSC.JSValue; extern fn Bun__Jest__testModuleObject(*JSC.JSGlobalObject) JSC.JSValue; extern fn JSMock__jsMockFn(*JSC.JSGlobalObject, *JSC.CallFrame) JSC.JSValue; + extern fn JSMock__jsNow(*JSC.JSGlobalObject, *JSC.CallFrame) JSC.JSValue; + extern fn JSMock__jsSetSystemTime(*JSC.JSGlobalObject, *JSC.CallFrame) JSC.JSValue; extern fn JSMock__jsRestoreAllMocks(*JSC.JSGlobalObject, *JSC.CallFrame) JSC.JSValue; extern fn JSMock__jsSpyOn(*JSC.JSGlobalObject, *JSC.CallFrame) JSC.JSValue; diff --git a/test/js/bun/test/test-timers.test.ts b/test/js/bun/test/test-timers.test.ts new file mode 100644 index 000000000..64da0abda --- /dev/null +++ b/test/js/bun/test/test-timers.test.ts @@ -0,0 +1,11 @@ +test("we can go back in time", () => { + const dateNow = Date.now; + // jest.useFakeTimers(); + jest.setSystemTime(new Date("2020-01-01T00:00:00.000Z")); + expect(new Date().toISOString()).toBe("2020-01-01T00:00:00.000Z"); + expect(Date.now()).toBe(1577836800000); + expect(dateNow).toBe(Date.now); + + jest.setSystemTime(); + expect(new Date().toISOString()).not.toBe("2020-01-01T00:00:00.000Z"); +}); -- cgit v1.2.3 From f0a795b568b741f71945e1078b87355d3217cc23 Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Sun, 2 Jul 2023 22:42:13 -0700 Subject: Stub out `useFakeTimers` and `useRealTimers` --- packages/bun-types/bun-test.d.ts | 30 +++++++++++++++++++++++++++++ src/bun.js/bindings/JSMockFunction.cpp | 12 ++++++++++++ src/bun.js/test/jest.zig | 31 +++++++++++++++++++++++++++--- test/js/bun/test/test-timers.test.ts | 35 +++++++++++++++++++++++++--------- 4 files changed, 96 insertions(+), 12 deletions(-) (limited to 'test/js') diff --git a/packages/bun-types/bun-test.d.ts b/packages/bun-types/bun-test.d.ts index 156585766..5182f7e93 100644 --- a/packages/bun-types/bun-test.d.ts +++ b/packages/bun-types/bun-test.d.ts @@ -29,6 +29,36 @@ declare module "bun:test" { (Function: T): Mock; }; + /** + * Control the system time used by: + * - `Date.now()` + * - `new Date()` + * - `Intl.DateTimeFormat().format()` + * + * In the future, we may add support for more functions, but we haven't done that yet. + * + * @param now The time to set the system time to. If not provided, the system time will be reset. + * @returns `this` + * @since v0.6.13 + * + * ## Set Date to a specific time + * + * ```js + * import { setSystemTime } from 'bun:test'; + * + * setSystemTime(new Date('2020-01-01T00:00:00.000Z')); + * console.log(new Date().toISOString()); // 2020-01-01T00:00:00.000Z + * ``` + * ## Reset Date to the current time + * + * ```js + * import { setSystemTime } from 'bun:test'; + * + * setSystemTime(); + * ``` + */ + export function setSystemTime(now?: Date | number): ThisType; + interface Jest { restoreAllMocks(): void; fn(func?: T): Mock; diff --git a/src/bun.js/bindings/JSMockFunction.cpp b/src/bun.js/bindings/JSMockFunction.cpp index 0e24e761c..3a84f0139 100644 --- a/src/bun.js/bindings/JSMockFunction.cpp +++ b/src/bun.js/bindings/JSMockFunction.cpp @@ -66,6 +66,18 @@ JSC_DECLARE_HOST_FUNCTION(jsMockFunctionMockRejectedValueOnce); JSC_DECLARE_HOST_FUNCTION(jsMockFunctionWithImplementationCleanup); JSC_DECLARE_HOST_FUNCTION(jsMockFunctionWithImplementation); +// This is a stub. Exists so that the same code can be run in Jest +extern "C" EncodedJSValue JSMock__jsUseFakeTimers(JSC::JSGlobalObject* globalObject, JSC::CallFrame* callFrame) +{ + return JSValue::encode(callFrame->thisValue()); +} + +extern "C" EncodedJSValue JSMock__jsUseRealTimers(JSC::JSGlobalObject* globalObject, JSC::CallFrame* callFrame) +{ + globalObject->overridenDateNow = -1; + return JSValue::encode(callFrame->thisValue()); +} + extern "C" EncodedJSValue JSMock__jsNow(JSC::JSGlobalObject* globalObject, JSC::CallFrame* callFrame) { return JSValue::encode(jsNumber(globalObject->jsDateNow())); diff --git a/src/bun.js/test/jest.zig b/src/bun.js/test/jest.zig index 727466835..55600ded8 100644 --- a/src/bun.js/test/jest.zig +++ b/src/bun.js/test/jest.zig @@ -333,7 +333,7 @@ pub const Jest = struct { pub fn Bun__Jest__createTestModuleObject(globalObject: *JSC.JSGlobalObject) callconv(.C) JSC.JSValue { JSC.markBinding(@src()); - const module = JSC.JSValue.createEmptyObject(globalObject, 12); + const module = JSC.JSValue.createEmptyObject(globalObject, 13); const test_fn = JSC.NewFunction(globalObject, ZigString.static("test"), 2, TestScope.call, false); module.put( @@ -431,17 +431,40 @@ pub const Jest = struct { Expect.getConstructor(globalObject), ); + const setSystemTime = JSC.NewFunction(globalObject, ZigString.static("setSystemTime"), 0, JSMock__jsSetSystemTime, false); + module.put( + globalObject, + ZigString.static("setSystemTime"), + setSystemTime, + ); + const useFakeTimers = JSC.NewFunction(globalObject, ZigString.static("useFakeTimers"), 0, JSMock__jsUseFakeTimers, false); + const useRealTimers = JSC.NewFunction(globalObject, ZigString.static("useRealTimers"), 0, JSMock__jsUseRealTimers, false); + const mockFn = JSC.NewFunction(globalObject, ZigString.static("fn"), 1, JSMock__jsMockFn, false); const spyOn = JSC.NewFunction(globalObject, ZigString.static("spyOn"), 2, JSMock__jsSpyOn, false); const restoreAllMocks = JSC.NewFunction(globalObject, ZigString.static("restoreAllMocks"), 2, JSMock__jsRestoreAllMocks, false); module.put(globalObject, ZigString.static("mock"), mockFn); - const jest = JSValue.createEmptyObject(globalObject, 3); + const jest = JSValue.createEmptyObject(globalObject, 7); jest.put(globalObject, ZigString.static("fn"), mockFn); jest.put(globalObject, ZigString.static("spyOn"), spyOn); jest.put(globalObject, ZigString.static("restoreAllMocks"), restoreAllMocks); + jest.put( + globalObject, + ZigString.static("setSystemTime"), + setSystemTime, + ); + jest.put( + globalObject, + ZigString.static("useFakeTimers"), + useFakeTimers, + ); + jest.put( + globalObject, + ZigString.static("useRealTimers"), + useRealTimers, + ); jest.put(globalObject, ZigString.static("now"), JSC.NewFunction(globalObject, ZigString.static("now"), 0, JSMock__jsNow, false)); - jest.put(globalObject, ZigString.static("setSystemTime"), JSC.NewFunction(globalObject, ZigString.static("setSystemTime"), 0, JSMock__jsSetSystemTime, false)); module.put(globalObject, ZigString.static("jest"), jest); module.put(globalObject, ZigString.static("spyOn"), spyOn); @@ -462,6 +485,8 @@ pub const Jest = struct { extern fn JSMock__jsSetSystemTime(*JSC.JSGlobalObject, *JSC.CallFrame) JSC.JSValue; extern fn JSMock__jsRestoreAllMocks(*JSC.JSGlobalObject, *JSC.CallFrame) JSC.JSValue; extern fn JSMock__jsSpyOn(*JSC.JSGlobalObject, *JSC.CallFrame) JSC.JSValue; + extern fn JSMock__jsUseFakeTimers(*JSC.JSGlobalObject, *JSC.CallFrame) JSC.JSValue; + extern fn JSMock__jsUseRealTimers(*JSC.JSGlobalObject, *JSC.CallFrame) JSC.JSValue; pub fn call( _: void, diff --git a/test/js/bun/test/test-timers.test.ts b/test/js/bun/test/test-timers.test.ts index 64da0abda..963467dee 100644 --- a/test/js/bun/test/test-timers.test.ts +++ b/test/js/bun/test/test-timers.test.ts @@ -1,11 +1,28 @@ test("we can go back in time", () => { - const dateNow = Date.now; - // jest.useFakeTimers(); - jest.setSystemTime(new Date("2020-01-01T00:00:00.000Z")); - expect(new Date().toISOString()).toBe("2020-01-01T00:00:00.000Z"); - expect(Date.now()).toBe(1577836800000); - expect(dateNow).toBe(Date.now); - - jest.setSystemTime(); - expect(new Date().toISOString()).not.toBe("2020-01-01T00:00:00.000Z"); + const DateBeforeMocked = Date; + const orig = new Date(); + orig.setHours(0, 0, 0, 0); + jest.useFakeTimers(); + jest.setSystemTime(new Date("1995-12-19T00:00:00.000Z")); + + expect(new Date().toISOString()).toBe("1995-12-19T00:00:00.000Z"); + expect(Date.now()).toBe(819331200000); + + if (typeof Bun !== "undefined") { + // In bun, the Date object remains the same despite being mocked. + // This prevents a whole bunch of subtle bugs in tests. + expect(DateBeforeMocked).toBe(Date); + expect(DateBeforeMocked.now).toBe(Date.now); + + // Jest doesn't property mock new Intl.DateTimeFormat().format() + expect(new Intl.DateTimeFormat().format()).toBe("12/19/1995"); + } else { + expect(DateBeforeMocked).not.toBe(Date); + expect(DateBeforeMocked.now).not.toBe(Date.now); + } + + jest.useRealTimers(); + const now = new Date(); + now.setHours(0, 0, 0, 0); + expect(now.toISOString()).toBe(orig.toISOString()); }); -- cgit v1.2.3 From a7a01bd52f20e7908f06d4de9a1814902b838a4b Mon Sep 17 00:00:00 2001 From: Ciro Spaciari Date: Mon, 3 Jul 2023 16:19:50 -0300 Subject: [tls] add socket parameter, setServername and ALPNprotocols support (#3457) * add socket parameter support * refactor #socket * add test and more fixs * some fixes * bump uws * handlers fix * more fixes * fix node net and node tls tests * fix duplicate port * fix deinit on CallbackJobs * cleanup * add setImmediate repro * add test to setImmediate * this is necessary? * fix prependOnce on native listener * try to findout the error on nodemailer CI * show error message * Update bun.lockb * prettier * Use exact versions of packages * add alpnProtocol support * update * emit error when connect fails on net.Socket * format * fix _write and cleanup * fixup * fix connect, add alpn test * fix socket.io * add socket parameter to TLSSocket * add TLSSocket socket first parameter * fixup and _start * remove flask tests * fmt --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> --- src/bun.js/api/bun.zig | 2 + src/bun.js/api/bun/socket.zig | 544 +++++++++++++++++++-- src/bun.js/api/server.zig | 48 +- src/bun.js/api/sockets.classes.ts | 16 + src/bun.js/bindings/JSSink.cpp | 2 +- src/bun.js/bindings/JSSink.h | 2 +- src/bun.js/bindings/JSSinkLookupTable.h | 2 +- src/bun.js/bindings/ZigGeneratedClasses.cpp | 218 +++++++++ src/bun.js/bindings/generated_classes.zig | 26 + src/bun.js/bindings/webcore/JSEventEmitter.cpp | 2 +- src/deps/uws | 2 +- src/deps/uws.zig | 284 ++++++++++- src/js/node/net.js | 151 ++++-- src/js/node/tls.js | 351 ++++++++++++- src/js/out/modules/node/net.js | 118 +++-- src/js/out/modules/node/tls.js | 190 ++++++- test/bun.lockb | Bin 139814 -> 140524 bytes test/js/node/net/node-net-server.test.ts | 55 --- test/js/node/tls/node-tls-connect.test.ts | 32 ++ test/js/node/tls/node-tls-server.test.ts | 55 --- test/js/third_party/nodemailer/nodemailer.test.ts | 15 + test/js/third_party/nodemailer/package.json | 6 + .../nodemailer/process-nodemailer-fixture.js | 23 + test/js/web/timers/process-setImmediate-fixture.js | 9 + test/js/web/timers/setImmediate.test.js | 27 + test/package.json | 5 +- 26 files changed, 1888 insertions(+), 297 deletions(-) create mode 100644 test/js/node/tls/node-tls-connect.test.ts create mode 100644 test/js/third_party/nodemailer/nodemailer.test.ts create mode 100644 test/js/third_party/nodemailer/package.json create mode 100644 test/js/third_party/nodemailer/process-nodemailer-fixture.js create mode 100644 test/js/web/timers/process-setImmediate-fixture.js (limited to 'test/js') diff --git a/src/bun.js/api/bun.zig b/src/bun.js/api/bun.zig index 2e6381c74..1e5a5e004 100644 --- a/src/bun.js/api/bun.zig +++ b/src/bun.js/api/bun.zig @@ -3794,6 +3794,8 @@ pub const Timer = struct { result.then(globalThis, this, CallbackJob__onResolve, CallbackJob__onReject); }, } + } else { + this.deinit(); } } }; diff --git a/src/bun.js/api/bun/socket.zig b/src/bun.js/api/bun/socket.zig index 69d6611cb..329cc40e4 100644 --- a/src/bun.js/api/bun/socket.zig +++ b/src/bun.js/api/bun/socket.zig @@ -69,6 +69,11 @@ fn normalizeHost(input: anytype) @TypeOf(input) { const BinaryType = JSC.BinaryType; +const WrappedType = enum { + none, + tls, + tcp, +}; const Handlers = struct { onOpen: JSC.JSValue = .zero, onClose: JSC.JSValue = .zero, @@ -97,8 +102,8 @@ const Handlers = struct { handlers: *Handlers, socket_context: *uws.SocketContext, - pub fn exit(this: *Scope, ssl: bool) void { - this.handlers.markInactive(ssl, this.socket_context); + pub fn exit(this: *Scope, ssl: bool, wrapped: WrappedType) void { + this.handlers.markInactive(ssl, this.socket_context, wrapped); } }; @@ -123,19 +128,24 @@ const Handlers = struct { return true; } - pub fn markInactive(this: *Handlers, ssl: bool, ctx: *uws.SocketContext) void { + pub fn markInactive(this: *Handlers, ssl: bool, ctx: *uws.SocketContext, wrapped: WrappedType) void { Listener.log("markInactive", .{}); this.active_connections -= 1; - if (this.active_connections == 0 and this.is_server) { - var listen_socket: *Listener = @fieldParentPtr(Listener, "handlers", this); - // allow it to be GC'd once the last connection is closed and it's not listening anymore - if (listen_socket.listener == null) { - listen_socket.strong_self.clear(); + if (this.active_connections == 0) { + if (this.is_server) { + var listen_socket: *Listener = @fieldParentPtr(Listener, "handlers", this); + // allow it to be GC'd once the last connection is closed and it's not listening anymore + if (listen_socket.listener == null) { + listen_socket.strong_self.clear(); + } + } else { + this.unprotect(); + // will deinit when is not wrapped or when is the TCP wrapped connection + if (wrapped != .tls) { + ctx.deinit(ssl); + } + bun.default_allocator.destroy(this); } - } else if (this.active_connections == 0 and !this.is_server) { - this.unprotect(); - ctx.deinit(ssl); - bun.default_allocator.destroy(this); } } @@ -364,6 +374,7 @@ pub const Listener = struct { connection: UnixOrHost, socket_context: ?*uws.SocketContext = null, ssl: bool = false, + protos: ?[]const u8 = null, strong_data: JSC.Strong = .{}, strong_self: JSC.Strong = .{}, @@ -395,6 +406,19 @@ pub const Listener = struct { port: u16, }, + pub fn clone(this: UnixOrHost) UnixOrHost { + switch (this) { + .unix => |u| { + return .{ + .unix = (bun.default_allocator.dupe(u8, u) catch unreachable), + }; + }, + .host => |h| { + return .{ .host = .{ .host = (bun.default_allocator.dupe(u8, h.host) catch unreachable), .port = this.host.port } }; + }, + } + } + pub fn deinit(this: UnixOrHost) void { switch (this) { .unix => |u| { @@ -455,10 +479,12 @@ pub const Listener = struct { var socket_config = SocketConfig.fromJS(opts, globalObject, exception) orelse { return .zero; }; + var hostname_or_unix = socket_config.hostname_or_unix; var port = socket_config.port; var ssl = socket_config.ssl; var handlers = socket_config.handlers; + var protos: ?[]const u8 = null; const exclusive = socket_config.exclusive; handlers.is_server = true; @@ -496,6 +522,10 @@ pub const Listener = struct { }; if (ssl_enabled) { + if (ssl.?.protos) |p| { + protos = p[0..ssl.?.protos_len]; + } + uws.NewSocketHandler(true).configure( socket_context, true, @@ -593,6 +623,7 @@ pub const Listener = struct { .ssl = ssl_enabled, .socket_context = socket_context, .listener = listen_socket, + .protos = if (protos) |p| (bun.default_allocator.dupe(u8, p) catch unreachable) else null, }; socket.handlers.protect(); @@ -649,6 +680,8 @@ pub const Listener = struct { .handlers = &listener.handlers, .this_value = .zero, .socket = socket, + .protos = listener.protos, + .owned_protos = false, }; if (listener.strong_data.get()) |default_data| { const globalObject = listener.handlers.globalObject; @@ -715,6 +748,10 @@ pub const Listener = struct { this.handlers.unprotect(); this.connection.deinit(); + if (this.protos) |protos| { + this.protos = null; + bun.default_allocator.destroy(protos); + } bun.default_allocator.destroy(this); } @@ -775,13 +812,16 @@ pub const Listener = struct { const socket_config = SocketConfig.fromJS(opts, globalObject, exception) orelse { return .zero; }; + var hostname_or_unix = socket_config.hostname_or_unix; var port = socket_config.port; var ssl = socket_config.ssl; var handlers = socket_config.handlers; var default_data = socket_config.default_data; + var protos: ?[]const u8 = null; const ssl_enabled = ssl != null; + defer if (ssl != null) ssl.?.deinit(); handlers.protect(); @@ -797,6 +837,9 @@ pub const Listener = struct { }; if (ssl_enabled) { + if (ssl.?.protos) |p| { + protos = p[0..ssl.?.protos_len]; + } uws.NewSocketHandler(true).configure( socket_context, true, @@ -848,6 +891,7 @@ pub const Listener = struct { .this_value = .zero, .socket = undefined, .connection = connection, + .protos = if (protos) |p| (bun.default_allocator.dupe(u8, p) catch unreachable) else null, }; TLSSocket.dataSetCached(tls.getThisValue(globalObject), globalObject, default_data); @@ -871,6 +915,7 @@ pub const Listener = struct { .this_value = .zero, .socket = undefined, .connection = null, + .protos = null, }; TCPSocket.dataSetCached(tcp.getThisValue(globalObject), globalObject, default_data); @@ -898,11 +943,41 @@ fn JSSocketType(comptime ssl: bool) type { } } +fn selectALPNCallback( + _: ?*BoringSSL.SSL, + out: [*c][*c]const u8, + outlen: [*c]u8, + in: [*c]const u8, + inlen: c_uint, + arg: ?*anyopaque, +) callconv(.C) c_int { + const this = bun.cast(*TLSSocket, arg); + if (this.protos) |protos| { + if (protos.len == 0) { + return BoringSSL.SSL_TLSEXT_ERR_NOACK; + } + + const status = BoringSSL.SSL_select_next_proto(bun.cast([*c][*c]u8, out), outlen, protos.ptr, @intCast(c_uint, protos.len), in, inlen); + + // Previous versions of Node.js returned SSL_TLSEXT_ERR_NOACK if no protocol + // match was found. This would neither cause a fatal alert nor would it result + // in a useful ALPN response as part of the Server Hello message. + // We now return SSL_TLSEXT_ERR_ALERT_FATAL in that case as per Section 3.2 + // of RFC 7301, which causes a fatal no_application_protocol alert. + const expected = if (comptime BoringSSL.OPENSSL_NPN_NEGOTIATED == 1) BoringSSL.SSL_TLSEXT_ERR_OK else BoringSSL.SSL_TLSEXT_ERR_ALERT_FATAL; + + return if (status == expected) 1 else 0; + } else { + return BoringSSL.SSL_TLSEXT_ERR_NOACK; + } +} + fn NewSocket(comptime ssl: bool) type { return struct { pub const Socket = uws.NewSocketHandler(ssl); socket: Socket, detached: bool = false, + wrapped: WrappedType = .none, handlers: *Handlers, this_value: JSC.JSValue = .zero, poll_ref: JSC.PollRef = JSC.PollRef.init(), @@ -910,6 +985,8 @@ fn NewSocket(comptime ssl: bool) type { last_4: [4]u8 = .{ 0, 0, 0, 0 }, authorized: bool = false, connection: ?Listener.UnixOrHost = null, + protos: ?[]const u8, + owned_protos: bool = true, // TODO: switch to something that uses `visitAggregate` and have the // `Listener` keep a list of all the sockets JSValue in there @@ -1079,7 +1156,7 @@ fn NewSocket(comptime ssl: bool) type { var vm = this.handlers.vm; this.reffer.unref(vm); - this.handlers.markInactive(ssl, this.socket.context()); + this.handlers.markInactive(ssl, this.socket.context(), this.wrapped); this.poll_ref.unref(vm); this.has_pending_activity.store(false, .Release); } @@ -1091,25 +1168,35 @@ fn NewSocket(comptime ssl: bool) type { // Add SNI support for TLS (mongodb and others requires this) if (comptime ssl) { - if (this.connection) |connection| { - if (connection == .host) { - const host = normalizeHost(connection.host.host); - if (host.len > 0) { - var ssl_ptr: *BoringSSL.SSL = @ptrCast(*BoringSSL.SSL, socket.getNativeHandle()); - if (!ssl_ptr.isInitFinished()) { + var ssl_ptr: *BoringSSL.SSL = @ptrCast(*BoringSSL.SSL, socket.getNativeHandle()); + if (!ssl_ptr.isInitFinished()) { + if (this.connection) |connection| { + if (connection == .host) { + const host = normalizeHost(connection.host.host); + if (host.len > 0) { var host__ = default_allocator.dupeZ(u8, host) catch unreachable; defer default_allocator.free(host__); ssl_ptr.setHostname(host__); } } } + if (this.protos) |protos| { + if (this.handlers.is_server) { + BoringSSL.SSL_CTX_set_alpn_select_cb(BoringSSL.SSL_get_SSL_CTX(ssl_ptr), selectALPNCallback, bun.cast(*anyopaque, this)); + } else { + _ = BoringSSL.SSL_set_alpn_protos(ssl_ptr, protos.ptr, @intCast(c_uint, protos.len)); + } + } } } this.poll_ref.ref(this.handlers.vm); this.detached = false; this.socket = socket; - socket.ext(**anyopaque).?.* = bun.cast(**anyopaque, this); + + if (this.wrapped == .none) { + socket.ext(**anyopaque).?.* = bun.cast(**anyopaque, this); + } const handlers = this.handlers; const callback = handlers.onOpen; @@ -1174,7 +1261,7 @@ fn NewSocket(comptime ssl: bool) type { // the handlers must be kept alive for the duration of the function call // that way if we need to call the error handler, we can var scope = handlers.enter(socket.context()); - defer scope.exit(ssl); + defer scope.exit(ssl, this.wrapped); const globalObject = handlers.globalObject; const this_value = this.getThisValue(globalObject); @@ -1211,7 +1298,7 @@ fn NewSocket(comptime ssl: bool) type { // the handlers must be kept alive for the duration of the function call // that way if we need to call the error handler, we can var scope = handlers.enter(socket.context()); - defer scope.exit(ssl); + defer scope.exit(ssl, this.wrapped); const globalObject = handlers.globalObject; const this_value = this.getThisValue(globalObject); @@ -1255,7 +1342,6 @@ fn NewSocket(comptime ssl: bool) type { log("onClose", .{}); this.detached = true; defer this.markInactive(); - const handlers = this.handlers; this.poll_ref.unref(handlers.vm); @@ -1265,7 +1351,7 @@ fn NewSocket(comptime ssl: bool) type { // the handlers must be kept alive for the duration of the function call // that way if we need to call the error handler, we can var scope = handlers.enter(socket.context()); - defer scope.exit(ssl); + defer scope.exit(ssl, this.wrapped); var globalObject = handlers.globalObject; const this_value = this.getThisValue(globalObject); @@ -1295,7 +1381,7 @@ fn NewSocket(comptime ssl: bool) type { // the handlers must be kept alive for the duration of the function call // that way if we need to call the error handler, we can var scope = handlers.enter(socket.context()); - defer scope.exit(ssl); + defer scope.exit(ssl, this.wrapped); // const encoding = handlers.encoding; const result = callback.callWithThis(globalObject, this_value, &[_]JSValue{ @@ -1476,10 +1562,20 @@ fn NewSocket(comptime ssl: bool) type { } fn writeMaybeCorked(this: *This, buffer: []const u8, is_end: bool) i32 { - if (this.socket.isShutdown() or this.socket.isClosed()) { + if (this.detached or this.socket.isShutdown() or this.socket.isClosed()) { return -1; } // we don't cork yet but we might later + + if (comptime ssl) { + // TLS wrapped but in TCP mode + if (this.wrapped == .tcp) { + const res = this.socket.rawWrite(buffer, is_end); + log("write({d}, {any}) = {d}", .{ buffer.len, is_end, res }); + return res; + } + } + const res = this.socket.write(buffer, is_end); log("write({d}, {any}) = {d}", .{ buffer.len, is_end, res }); return res; @@ -1487,7 +1583,6 @@ fn NewSocket(comptime ssl: bool) type { fn writeOrEnd(this: *This, globalObject: *JSC.JSGlobalObject, args: []const JSC.JSValue, is_end: bool) WriteResult { if (args.len == 0) return .{ .success = .{} }; - if (args.ptr[0].asArrayBuffer(globalObject)) |array_buffer| { var slice = array_buffer.slice(); @@ -1681,9 +1776,6 @@ fn NewSocket(comptime ssl: bool) type { if (result.wrote == result.total) { this.socket.flush(); this.detached = true; - if (!this.socket.isClosed()) { - this.socket.close(0, null); - } this.markInactive(); } break :brk JSValue.jsNumber(result.wrote); @@ -1706,17 +1798,27 @@ fn NewSocket(comptime ssl: bool) type { pub fn finalize(this: *This) callconv(.C) void { log("finalize()", .{}); - if (this.detached) return; - this.detached = true; - if (!this.socket.isClosed()) { - this.socket.close(0, null); + if (!this.detached) { + this.detached = true; + if (!this.socket.isClosed()) { + this.socket.close(0, null); + } + this.markInactive(); + } + + this.poll_ref.unref(JSC.VirtualMachine.get()); + // need to deinit event without being attached + if (this.owned_protos) { + if (this.protos) |protos| { + this.protos = null; + default_allocator.free(protos); + } } + if (this.connection) |connection| { - connection.deinit(); this.connection = null; + connection.deinit(); } - this.markInactive(); - this.poll_ref.unref(JSC.VirtualMachine.get()); } pub fn reload(this: *This, globalObject: *JSC.JSGlobalObject, callframe: *JSC.CallFrame) callconv(.C) JSValue { @@ -1756,8 +1858,376 @@ fn NewSocket(comptime ssl: bool) type { return JSValue.jsUndefined(); } + + pub fn getALPNProtocol( + this: *This, + globalObject: *JSC.JSGlobalObject, + ) callconv(.C) JSValue { + if (comptime ssl == false) { + return JSValue.jsBoolean(false); + } + + if (this.detached) { + return JSValue.jsBoolean(false); + } + + var alpn_proto: [*c]const u8 = null; + var alpn_proto_len: u32 = 0; + + var ssl_ptr: *BoringSSL.SSL = @ptrCast(*BoringSSL.SSL, this.socket.getNativeHandle()); + BoringSSL.SSL_get0_alpn_selected(ssl_ptr, &alpn_proto, &alpn_proto_len); + if (alpn_proto == null or alpn_proto_len == 0) { + return JSValue.jsBoolean(false); + } + + const slice = alpn_proto[0..alpn_proto_len]; + if (strings.eql(slice, "h2")) { + return ZigString.static("h2").toValue(globalObject); + } + if (strings.eql(slice, "http/1.1")) { + return ZigString.static("http/1.1").toValue(globalObject); + } + return ZigString.fromUTF8(slice).toValueGC(globalObject); + } + + pub fn setServername( + this: *This, + globalObject: *JSC.JSGlobalObject, + callframe: *JSC.CallFrame, + ) callconv(.C) JSValue { + if (comptime ssl == false) { + return JSValue.jsUndefined(); + } + if (this.detached) { + return JSValue.jsUndefined(); + } + + if (this.handlers.is_server) { + globalObject.throw("Cannot issue SNI from a TLS server-side socket", .{}); + return .zero; + } + + const args = callframe.arguments(1); + if (args.len < 1) { + globalObject.throw("Expected 1 argument", .{}); + return .zero; + } + + const server_name = args.ptr[0]; + if (!server_name.isString()) { + globalObject.throw("Expected \"serverName\" to be a string", .{}); + return .zero; + } + + const slice = server_name.getZigString(globalObject).toSlice(bun.default_allocator); + defer slice.deinit(); + const host = normalizeHost(slice.slice()); + if (host.len > 0) { + var ssl_ptr: *BoringSSL.SSL = @ptrCast(*BoringSSL.SSL, this.socket.getNativeHandle()); + if (ssl_ptr.isInitFinished()) { + // match node.js exceptions + globalObject.throw("Already started.", .{}); + return .zero; + } + var host__ = default_allocator.dupeZ(u8, host) catch unreachable; + defer default_allocator.free(host__); + ssl_ptr.setHostname(host__); + } + + return JSValue.jsUndefined(); + } + + pub fn open( + this: *This, + _: *JSC.JSGlobalObject, + _: *JSC.CallFrame, + ) callconv(.C) JSValue { + JSC.markBinding(@src()); + this.socket.open(!this.handlers.is_server); + return JSValue.jsUndefined(); + } + + // this invalidates the current socket returning 2 new sockets + // one for non-TLS and another for TLS + // handlers for non-TLS are preserved + pub fn wrapTLS( + this: *This, + globalObject: *JSC.JSGlobalObject, + callframe: *JSC.CallFrame, + ) callconv(.C) JSValue { + JSC.markBinding(@src()); + if (comptime ssl) { + return JSValue.jsUndefined(); + } + + if (this.detached) { + return JSValue.jsUndefined(); + } + + const args = callframe.arguments(1); + + if (args.len < 1) { + globalObject.throw("Expected 1 arguments", .{}); + return .zero; + } + + var exception: JSC.C.JSValueRef = null; + + const opts = args.ptr[0]; + if (opts.isEmptyOrUndefinedOrNull() or opts.isBoolean() or !opts.isObject()) { + globalObject.throw("Expected options object", .{}); + return .zero; + } + + var socket_obj = opts.get(globalObject, "socket") orelse { + globalObject.throw("Expected \"socket\" option", .{}); + return .zero; + }; + + var handlers = Handlers.fromJS(globalObject, socket_obj, &exception) orelse { + globalObject.throwValue(exception.?.value()); + return .zero; + }; + + var ssl_opts: ?JSC.API.ServerConfig.SSLConfig = null; + + if (opts.getTruthy(globalObject, "tls")) |tls| { + if (tls.isBoolean()) { + if (tls.toBoolean()) { + ssl_opts = JSC.API.ServerConfig.SSLConfig.zero; + } + } else { + if (JSC.API.ServerConfig.SSLConfig.inJS(globalObject, tls, &exception)) |ssl_config| { + ssl_opts = ssl_config; + } else if (exception != null) { + return .zero; + } + } + } + + if (ssl_opts == null) { + globalObject.throw("Expected \"tls\" option", .{}); + return .zero; + } + + var default_data = JSValue.zero; + if (opts.getTruthy(globalObject, "data")) |default_data_value| { + default_data = default_data_value; + default_data.ensureStillAlive(); + } + + var socket_config = ssl_opts.?; + defer socket_config.deinit(); + const options = socket_config.asUSockets(); + + const protos = socket_config.protos; + const protos_len = socket_config.protos_len; + + const ext_size = @sizeOf(WrappedSocket); + + var tls = handlers.vm.allocator.create(TLSSocket) catch @panic("OOM"); + var handlers_ptr = handlers.vm.allocator.create(Handlers) catch @panic("OOM"); + handlers_ptr.* = handlers; + handlers_ptr.is_server = this.handlers.is_server; + handlers_ptr.protect(); + + tls.* = .{ + .handlers = handlers_ptr, + .this_value = .zero, + .socket = undefined, + .connection = if (this.connection) |c| c.clone() else null, + .wrapped = .tls, + .protos = if (protos) |p| (bun.default_allocator.dupe(u8, p[0..protos_len]) catch unreachable) else null, + }; + + var tls_js_value = tls.getThisValue(globalObject); + TLSSocket.dataSetCached(tls_js_value, globalObject, default_data); + + const TCPHandler = NewWrappedHandler(false); + + // reconfigure context to use the new wrapper handlers + Socket.unsafeConfigure(this.socket.context(), true, true, WrappedSocket, TCPHandler); + const old_context = this.socket.context(); + const TLSHandler = NewWrappedHandler(true); + const new_socket = this.socket.wrapTLS( + options, + ext_size, + true, + WrappedSocket, + TLSHandler, + ) orelse { + handlers_ptr.unprotect(); + handlers.vm.allocator.destroy(handlers_ptr); + bun.default_allocator.destroy(tls); + return JSValue.jsUndefined(); + }; + tls.socket = new_socket; + + var raw = handlers.vm.allocator.create(TLSSocket) catch @panic("OOM"); + var raw_handlers_ptr = handlers.vm.allocator.create(Handlers) catch @panic("OOM"); + this.handlers.unprotect(); + + var cloned_handlers: Handlers = .{ + .vm = globalObject.bunVM(), + .globalObject = globalObject, + .onOpen = this.handlers.onOpen, + .onClose = this.handlers.onClose, + .onData = this.handlers.onData, + .onWritable = this.handlers.onWritable, + .onTimeout = this.handlers.onTimeout, + .onConnectError = this.handlers.onConnectError, + .onEnd = this.handlers.onEnd, + .onError = this.handlers.onError, + .onHandshake = this.handlers.onHandshake, + .binary_type = this.handlers.binary_type, + }; + + raw_handlers_ptr.* = cloned_handlers; + raw_handlers_ptr.is_server = this.handlers.is_server; + raw_handlers_ptr.protect(); + raw.* = .{ + .handlers = raw_handlers_ptr, + .this_value = .zero, + .socket = new_socket, + .connection = if (this.connection) |c| c.clone() else null, + .wrapped = .tcp, + .protos = null, + }; + + var raw_js_value = raw.getThisValue(globalObject); + if (JSSocketType(ssl).dataGetCached(this.getThisValue(globalObject))) |raw_default_data| { + raw_default_data.ensureStillAlive(); + TLSSocket.dataSetCached(raw_js_value, globalObject, raw_default_data); + } + // marks both as active + raw.markActive(); + // this will keep tls alive until socket.open() is called to start TLS certificate and the handshake process + // open is not immediately called because we need to set bunSocketInternal + tls.markActive(); + + // mark both instances on socket data + new_socket.ext(WrappedSocket).?.* = .{ .tcp = raw, .tls = tls }; + + //detach and invalidate the old instance + this.detached = true; + if (this.reffer.has) { + var vm = this.handlers.vm; + this.reffer.unref(vm); + old_context.deinit(ssl); + bun.default_allocator.destroy(this.handlers); + this.poll_ref.unref(vm); + this.has_pending_activity.store(false, .Release); + } + + const array = JSC.JSValue.createEmptyArray(globalObject, 2); + array.putIndex(globalObject, 0, raw_js_value); + array.putIndex(globalObject, 1, tls_js_value); + return array; + } }; } pub const TCPSocket = NewSocket(false); pub const TLSSocket = NewSocket(true); + +pub const WrappedSocket = extern struct { + // both shares the same socket but one behaves as TLS and the other as TCP + tls: *TLSSocket, + tcp: *TLSSocket, +}; + +pub fn NewWrappedHandler(comptime tls: bool) type { + const Socket = uws.NewSocketHandler(true); + return struct { + pub fn onOpen( + this: WrappedSocket, + socket: Socket, + ) void { + // only TLS will call onOpen + if (comptime tls) { + TLSSocket.onOpen(this.tls, socket); + } + } + + pub fn onEnd( + this: WrappedSocket, + socket: Socket, + ) void { + if (comptime tls) { + TLSSocket.onEnd(this.tls, socket); + } else { + TLSSocket.onEnd(this.tcp, socket); + } + } + + pub fn onHandshake( + this: WrappedSocket, + socket: Socket, + success: i32, + ssl_error: uws.us_bun_verify_error_t, + ) void { + // only TLS will call onHandshake + if (comptime tls) { + TLSSocket.onHandshake(this.tls, socket, success, ssl_error); + } + } + + pub fn onClose( + this: WrappedSocket, + socket: Socket, + err: c_int, + data: ?*anyopaque, + ) void { + if (comptime tls) { + TLSSocket.onClose(this.tls, socket, err, data); + } else { + TLSSocket.onClose(this.tcp, socket, err, data); + } + } + + pub fn onData( + this: WrappedSocket, + socket: Socket, + data: []const u8, + ) void { + if (comptime tls) { + TLSSocket.onData(this.tls, socket, data); + } else { + TLSSocket.onData(this.tcp, socket, data); + } + } + + pub fn onWritable( + this: WrappedSocket, + socket: Socket, + ) void { + if (comptime tls) { + TLSSocket.onWritable(this.tls, socket); + } else { + TLSSocket.onWritable(this.tcp, socket); + } + } + pub fn onTimeout( + this: WrappedSocket, + socket: Socket, + ) void { + if (comptime tls) { + TLSSocket.onTimeout(this.tls, socket); + } else { + TLSSocket.onTimeout(this.tcp, socket); + } + } + + pub fn onConnectError( + this: WrappedSocket, + socket: Socket, + errno: c_int, + ) void { + if (comptime tls) { + TLSSocket.onConnectError(this.tls, socket, errno); + } else { + TLSSocket.onConnectError(this.tcp, socket, errno); + } + } + }; +} diff --git a/src/bun.js/api/server.zig b/src/bun.js/api/server.zig index 140e62ce4..f52c08301 100644 --- a/src/bun.js/api/server.zig +++ b/src/bun.js/api/server.zig @@ -163,6 +163,8 @@ pub const ServerConfig = struct { request_cert: i32 = 0, reject_unauthorized: i32 = 0, ssl_ciphers: [*c]const u8 = null, + protos: [*c]const u8 = null, + protos_len: usize = 0, const log = Output.scoped(.SSLConfig, false); @@ -215,6 +217,7 @@ pub const ServerConfig = struct { "dh_params_file_name", "passphrase", "ssl_ciphers", + "protos", }; inline for (fields) |field| { @@ -270,6 +273,9 @@ pub const ServerConfig = struct { pub fn inJS(global: *JSC.JSGlobalObject, obj: JSC.JSValue, exception: JSC.C.ExceptionRef) ?SSLConfig { var result = zero; + var arena: @import("root").bun.ArenaAllocator = @import("root").bun.ArenaAllocator.init(bun.default_allocator); + defer arena.deinit(); + if (!obj.isObject()) { JSC.throwInvalidArguments("tls option expects an object", .{}, global, exception); return null; @@ -301,7 +307,6 @@ pub const ServerConfig = struct { var i: u32 = 0; var valid_count: u32 = 0; - var arena: @import("root").bun.ArenaAllocator = @import("root").bun.ArenaAllocator.init(bun.default_allocator); while (i < count) : (i += 1) { const item = js_obj.getIndex(global, i); if (JSC.Node.StringOrBuffer.fromJS(global, arena.allocator(), item, exception)) |sb| { @@ -317,7 +322,6 @@ pub const ServerConfig = struct { valid_count += 1; any = true; } else { - arena.deinit(); // mark and free all CA's result.cert = native_array; result.deinit(); @@ -325,7 +329,6 @@ pub const ServerConfig = struct { } } else { global.throwInvalidArguments("key argument must be an string, Buffer, TypedArray, BunFile or an array containing string, Buffer, TypedArray or BunFile", .{}); - arena.deinit(); // mark and free all keys result.key = native_array; result.deinit(); @@ -333,8 +336,6 @@ pub const ServerConfig = struct { } } - arena.deinit(); - if (valid_count == 0) { bun.default_allocator.free(native_array); } else { @@ -356,7 +357,6 @@ pub const ServerConfig = struct { } } else { const native_array = bun.default_allocator.alloc([*c]const u8, 1) catch unreachable; - var arena: @import("root").bun.ArenaAllocator = @import("root").bun.ArenaAllocator.init(bun.default_allocator); if (JSC.Node.StringOrBuffer.fromJS(global, arena.allocator(), js_obj, exception)) |sb| { const sliced = sb.slice(); if (sliced.len > 0) { @@ -369,14 +369,11 @@ pub const ServerConfig = struct { } } else { global.throwInvalidArguments("key argument must be an string, Buffer, TypedArray, BunFile or an array containing string, Buffer, TypedArray or BunFile", .{}); - arena.deinit(); // mark and free all certs result.key = native_array; result.deinit(); return null; } - - arena.deinit(); } } @@ -394,6 +391,22 @@ pub const ServerConfig = struct { } } + if (obj.getTruthy(global, "ALPNProtocols")) |protocols| { + if (JSC.Node.StringOrBuffer.fromJS(global, arena.allocator(), protocols, exception)) |sb| { + const sliced = sb.slice(); + if (sliced.len > 0) { + result.protos = bun.default_allocator.dupeZ(u8, sliced) catch unreachable; + result.protos_len = sliced.len; + } + + any = true; + } else { + global.throwInvalidArguments("ALPNProtocols argument must be an string, Buffer or TypedArray", .{}); + result.deinit(); + return null; + } + } + if (obj.getTruthy(global, "cert")) |js_obj| { if (js_obj.jsType().isArray()) { const count = js_obj.getLength(global); @@ -403,7 +416,6 @@ pub const ServerConfig = struct { var i: u32 = 0; var valid_count: u32 = 0; - var arena: @import("root").bun.ArenaAllocator = @import("root").bun.ArenaAllocator.init(bun.default_allocator); while (i < count) : (i += 1) { const item = js_obj.getIndex(global, i); if (JSC.Node.StringOrBuffer.fromJS(global, arena.allocator(), item, exception)) |sb| { @@ -419,7 +431,6 @@ pub const ServerConfig = struct { valid_count += 1; any = true; } else { - arena.deinit(); // mark and free all CA's result.cert = native_array; result.deinit(); @@ -427,7 +438,6 @@ pub const ServerConfig = struct { } } else { global.throwInvalidArguments("cert argument must be an string, Buffer, TypedArray, BunFile or an array containing string, Buffer, TypedArray or BunFile", .{}); - arena.deinit(); // mark and free all certs result.cert = native_array; result.deinit(); @@ -435,8 +445,6 @@ pub const ServerConfig = struct { } } - arena.deinit(); - if (valid_count == 0) { bun.default_allocator.free(native_array); } else { @@ -458,7 +466,6 @@ pub const ServerConfig = struct { } } else { const native_array = bun.default_allocator.alloc([*c]const u8, 1) catch unreachable; - var arena: @import("root").bun.ArenaAllocator = @import("root").bun.ArenaAllocator.init(bun.default_allocator); if (JSC.Node.StringOrBuffer.fromJS(global, arena.allocator(), js_obj, exception)) |sb| { const sliced = sb.slice(); if (sliced.len > 0) { @@ -471,14 +478,11 @@ pub const ServerConfig = struct { } } else { global.throwInvalidArguments("cert argument must be an string, Buffer, TypedArray, BunFile or an array containing string, Buffer, TypedArray or BunFile", .{}); - arena.deinit(); // mark and free all certs result.cert = native_array; result.deinit(); return null; } - - arena.deinit(); } } @@ -518,7 +522,6 @@ pub const ServerConfig = struct { var i: u32 = 0; var valid_count: u32 = 0; - var arena: @import("root").bun.ArenaAllocator = @import("root").bun.ArenaAllocator.init(bun.default_allocator); while (i < count) : (i += 1) { const item = js_obj.getIndex(global, i); if (JSC.Node.StringOrBuffer.fromJS(global, arena.allocator(), item, exception)) |sb| { @@ -534,7 +537,6 @@ pub const ServerConfig = struct { valid_count += 1; any = true; } else { - arena.deinit(); // mark and free all CA's result.cert = native_array; result.deinit(); @@ -542,7 +544,6 @@ pub const ServerConfig = struct { } } else { global.throwInvalidArguments("ca argument must be an string, Buffer, TypedArray, BunFile or an array containing string, Buffer, TypedArray or BunFile", .{}); - arena.deinit(); // mark and free all CA's result.cert = native_array; result.deinit(); @@ -550,8 +551,6 @@ pub const ServerConfig = struct { } } - arena.deinit(); - if (valid_count == 0) { bun.default_allocator.free(native_array); } else { @@ -573,7 +572,6 @@ pub const ServerConfig = struct { } } else { const native_array = bun.default_allocator.alloc([*c]const u8, 1) catch unreachable; - var arena: @import("root").bun.ArenaAllocator = @import("root").bun.ArenaAllocator.init(bun.default_allocator); if (JSC.Node.StringOrBuffer.fromJS(global, arena.allocator(), js_obj, exception)) |sb| { const sliced = sb.slice(); if (sliced.len > 0) { @@ -586,13 +584,11 @@ pub const ServerConfig = struct { } } else { JSC.throwInvalidArguments("ca argument must be an string, Buffer, TypedArray, BunFile or an array containing string, Buffer, TypedArray or BunFile", .{}, global, exception); - arena.deinit(); // mark and free all certs result.ca = native_array; result.deinit(); return null; } - arena.deinit(); } } diff --git a/src/bun.js/api/sockets.classes.ts b/src/bun.js/api/sockets.classes.ts index da07741a3..0c7847e19 100644 --- a/src/bun.js/api/sockets.classes.ts +++ b/src/bun.js/api/sockets.classes.ts @@ -15,10 +15,21 @@ function generate(ssl) { authorized: { getter: "getAuthorized", }, + alpnProtocol: { + getter: "getALPNProtocol", + }, write: { fn: "write", length: 3, }, + wrapTLS: { + fn: "wrapTLS", + length: 1, + }, + open: { + fn: "open", + length: 0, + }, end: { fn: "end", length: 3, @@ -82,6 +93,11 @@ function generate(ssl) { fn: "reload", length: 1, }, + + setServername: { + fn: "setServername", + length: 1, + }, }, finalize: true, construct: true, diff --git a/src/bun.js/bindings/JSSink.cpp b/src/bun.js/bindings/JSSink.cpp index 19bf05599..5f99d3792 100644 --- a/src/bun.js/bindings/JSSink.cpp +++ b/src/bun.js/bindings/JSSink.cpp @@ -1,6 +1,6 @@ // AUTO-GENERATED FILE. DO NOT EDIT. -// Generated by 'make generate-sink' at 2023-06-25T17:34:54.187Z +// Generated by 'make generate-sink' at 2023-07-02T16:19:51.440Z // To regenerate this file, run: // // make generate-sink diff --git a/src/bun.js/bindings/JSSink.h b/src/bun.js/bindings/JSSink.h index 9bf5554c4..41d7065dc 100644 --- a/src/bun.js/bindings/JSSink.h +++ b/src/bun.js/bindings/JSSink.h @@ -1,6 +1,6 @@ // AUTO-GENERATED FILE. DO NOT EDIT. -// Generated by 'make generate-sink' at 2023-06-25T17:34:54.186Z +// Generated by 'make generate-sink' at 2023-07-02T16:19:51.438Z // #pragma once diff --git a/src/bun.js/bindings/JSSinkLookupTable.h b/src/bun.js/bindings/JSSinkLookupTable.h index f8518bc5e..e4ed81629 100644 --- a/src/bun.js/bindings/JSSinkLookupTable.h +++ b/src/bun.js/bindings/JSSinkLookupTable.h @@ -1,4 +1,4 @@ -// Automatically generated from src/bun.js/bindings/JSSink.cpp using /Users/silas/Workspace/opensource/bun/src/bun.js/WebKit/Source/JavaScriptCore/create_hash_table. DO NOT EDIT! +// Automatically generated from src/bun.js/bindings/JSSink.cpp using /home/cirospaciari/Repos/bun/src/bun.js/WebKit/Source/JavaScriptCore/create_hash_table. DO NOT EDIT! diff --git a/src/bun.js/bindings/ZigGeneratedClasses.cpp b/src/bun.js/bindings/ZigGeneratedClasses.cpp index b7461b5f0..866970e4d 100644 --- a/src/bun.js/bindings/ZigGeneratedClasses.cpp +++ b/src/bun.js/bindings/ZigGeneratedClasses.cpp @@ -16872,6 +16872,9 @@ extern "C" void* TCPSocketClass__construct(JSC::JSGlobalObject*, JSC::CallFrame* JSC_DECLARE_CUSTOM_GETTER(jsTCPSocketConstructor); extern "C" void TCPSocketClass__finalize(void*); +extern "C" JSC::EncodedJSValue TCPSocketPrototype__getALPNProtocol(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject); +JSC_DECLARE_CUSTOM_GETTER(TCPSocketPrototype__alpnProtocolGetterWrap); + extern "C" JSC::EncodedJSValue TCPSocketPrototype__getAuthorized(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject); JSC_DECLARE_CUSTOM_GETTER(TCPSocketPrototype__authorizedGetterWrap); @@ -16896,6 +16899,9 @@ JSC_DECLARE_CUSTOM_GETTER(TCPSocketPrototype__listenerGetterWrap); extern "C" JSC::EncodedJSValue TCPSocketPrototype__getLocalPort(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject); JSC_DECLARE_CUSTOM_GETTER(TCPSocketPrototype__localPortGetterWrap); +extern "C" EncodedJSValue TCPSocketPrototype__open(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame); +JSC_DECLARE_HOST_FUNCTION(TCPSocketPrototype__openCallback); + extern "C" JSC::EncodedJSValue TCPSocketPrototype__getReadyState(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject); JSC_DECLARE_CUSTOM_GETTER(TCPSocketPrototype__readyStateGetterWrap); @@ -16908,6 +16914,9 @@ JSC_DECLARE_HOST_FUNCTION(TCPSocketPrototype__reloadCallback); extern "C" JSC::EncodedJSValue TCPSocketPrototype__getRemoteAddress(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject); JSC_DECLARE_CUSTOM_GETTER(TCPSocketPrototype__remoteAddressGetterWrap); +extern "C" EncodedJSValue TCPSocketPrototype__setServername(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame); +JSC_DECLARE_HOST_FUNCTION(TCPSocketPrototype__setServernameCallback); + extern "C" EncodedJSValue TCPSocketPrototype__shutdown(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame); JSC_DECLARE_HOST_FUNCTION(TCPSocketPrototype__shutdownCallback); @@ -16917,12 +16926,16 @@ JSC_DECLARE_HOST_FUNCTION(TCPSocketPrototype__timeoutCallback); extern "C" EncodedJSValue TCPSocketPrototype__unref(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame); JSC_DECLARE_HOST_FUNCTION(TCPSocketPrototype__unrefCallback); +extern "C" EncodedJSValue TCPSocketPrototype__wrapTLS(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame); +JSC_DECLARE_HOST_FUNCTION(TCPSocketPrototype__wrapTLSCallback); + extern "C" EncodedJSValue TCPSocketPrototype__write(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame); JSC_DECLARE_HOST_FUNCTION(TCPSocketPrototype__writeCallback); STATIC_ASSERT_ISO_SUBSPACE_SHARABLE(JSTCPSocketPrototype, JSTCPSocketPrototype::Base); static const HashTableValue JSTCPSocketPrototypeTableValues[] = { + { "alpnProtocol"_s, static_cast(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::GetterSetterType, TCPSocketPrototype__alpnProtocolGetterWrap, 0 } }, { "authorized"_s, static_cast(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::GetterSetterType, TCPSocketPrototype__authorizedGetterWrap, 0 } }, { "data"_s, static_cast(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::GetterSetterType, TCPSocketPrototype__dataGetterWrap, TCPSocketPrototype__dataSetterWrap } }, { "end"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, TCPSocketPrototype__endCallback, 3 } }, @@ -16930,13 +16943,16 @@ static const HashTableValue JSTCPSocketPrototypeTableValues[] = { { "getAuthorizationError"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, TCPSocketPrototype__getAuthorizationErrorCallback, 0 } }, { "listener"_s, static_cast(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::GetterSetterType, TCPSocketPrototype__listenerGetterWrap, 0 } }, { "localPort"_s, static_cast(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::GetterSetterType, TCPSocketPrototype__localPortGetterWrap, 0 } }, + { "open"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, TCPSocketPrototype__openCallback, 0 } }, { "readyState"_s, static_cast(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::GetterSetterType, TCPSocketPrototype__readyStateGetterWrap, 0 } }, { "ref"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, TCPSocketPrototype__refCallback, 0 } }, { "reload"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, TCPSocketPrototype__reloadCallback, 1 } }, { "remoteAddress"_s, static_cast(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::GetterSetterType, TCPSocketPrototype__remoteAddressGetterWrap, 0 } }, + { "setServername"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, TCPSocketPrototype__setServernameCallback, 1 } }, { "shutdown"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, TCPSocketPrototype__shutdownCallback, 1 } }, { "timeout"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, TCPSocketPrototype__timeoutCallback, 1 } }, { "unref"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, TCPSocketPrototype__unrefCallback, 0 } }, + { "wrapTLS"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, TCPSocketPrototype__wrapTLSCallback, 1 } }, { "write"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, TCPSocketPrototype__writeCallback, 3 } } }; @@ -16954,6 +16970,18 @@ JSC_DEFINE_CUSTOM_GETTER(jsTCPSocketConstructor, (JSGlobalObject * lexicalGlobal return JSValue::encode(globalObject->JSTCPSocketConstructor()); } +JSC_DEFINE_CUSTOM_GETTER(TCPSocketPrototype__alpnProtocolGetterWrap, (JSGlobalObject * lexicalGlobalObject, EncodedJSValue thisValue, PropertyName attributeName)) +{ + auto& vm = lexicalGlobalObject->vm(); + Zig::GlobalObject* globalObject = reinterpret_cast(lexicalGlobalObject); + auto throwScope = DECLARE_THROW_SCOPE(vm); + JSTCPSocket* thisObject = jsCast(JSValue::decode(thisValue)); + JSC::EnsureStillAliveScope thisArg = JSC::EnsureStillAliveScope(thisObject); + JSC::EncodedJSValue result = TCPSocketPrototype__getALPNProtocol(thisObject->wrapped(), globalObject); + RETURN_IF_EXCEPTION(throwScope, {}); + RELEASE_AND_RETURN(throwScope, result); +} + JSC_DEFINE_CUSTOM_GETTER(TCPSocketPrototype__authorizedGetterWrap, (JSGlobalObject * lexicalGlobalObject, EncodedJSValue thisValue, PropertyName attributeName)) { auto& vm = lexicalGlobalObject->vm(); @@ -17113,6 +17141,33 @@ JSC_DEFINE_CUSTOM_GETTER(TCPSocketPrototype__localPortGetterWrap, (JSGlobalObjec RELEASE_AND_RETURN(throwScope, result); } +JSC_DEFINE_HOST_FUNCTION(TCPSocketPrototype__openCallback, (JSGlobalObject * lexicalGlobalObject, CallFrame* callFrame)) +{ + auto& vm = lexicalGlobalObject->vm(); + + JSTCPSocket* thisObject = jsDynamicCast(callFrame->thisValue()); + + if (UNLIKELY(!thisObject)) { + auto throwScope = DECLARE_THROW_SCOPE(vm); + return throwVMTypeError(lexicalGlobalObject, throwScope); + } + + JSC::EnsureStillAliveScope thisArg = JSC::EnsureStillAliveScope(thisObject); + +#ifdef BUN_DEBUG + /** View the file name of the JS file that called this function + * from a debugger */ + SourceOrigin sourceOrigin = callFrame->callerSourceOrigin(vm); + const char* fileName = sourceOrigin.string().utf8().data(); + static const char* lastFileName = nullptr; + if (lastFileName != fileName) { + lastFileName = fileName; + } +#endif + + return TCPSocketPrototype__open(thisObject->wrapped(), lexicalGlobalObject, callFrame); +} + JSC_DEFINE_CUSTOM_GETTER(TCPSocketPrototype__readyStateGetterWrap, (JSGlobalObject * lexicalGlobalObject, EncodedJSValue thisValue, PropertyName attributeName)) { auto& vm = lexicalGlobalObject->vm(); @@ -17210,6 +17265,33 @@ extern "C" EncodedJSValue TCPSocketPrototype__remoteAddressGetCachedValue(JSC::E return JSValue::encode(thisObject->m_remoteAddress.get()); } +JSC_DEFINE_HOST_FUNCTION(TCPSocketPrototype__setServernameCallback, (JSGlobalObject * lexicalGlobalObject, CallFrame* callFrame)) +{ + auto& vm = lexicalGlobalObject->vm(); + + JSTCPSocket* thisObject = jsDynamicCast(callFrame->thisValue()); + + if (UNLIKELY(!thisObject)) { + auto throwScope = DECLARE_THROW_SCOPE(vm); + return throwVMTypeError(lexicalGlobalObject, throwScope); + } + + JSC::EnsureStillAliveScope thisArg = JSC::EnsureStillAliveScope(thisObject); + +#ifdef BUN_DEBUG + /** View the file name of the JS file that called this function + * from a debugger */ + SourceOrigin sourceOrigin = callFrame->callerSourceOrigin(vm); + const char* fileName = sourceOrigin.string().utf8().data(); + static const char* lastFileName = nullptr; + if (lastFileName != fileName) { + lastFileName = fileName; + } +#endif + + return TCPSocketPrototype__setServername(thisObject->wrapped(), lexicalGlobalObject, callFrame); +} + JSC_DEFINE_HOST_FUNCTION(TCPSocketPrototype__shutdownCallback, (JSGlobalObject * lexicalGlobalObject, CallFrame* callFrame)) { auto& vm = lexicalGlobalObject->vm(); @@ -17291,6 +17373,33 @@ JSC_DEFINE_HOST_FUNCTION(TCPSocketPrototype__unrefCallback, (JSGlobalObject * le return TCPSocketPrototype__unref(thisObject->wrapped(), lexicalGlobalObject, callFrame); } +JSC_DEFINE_HOST_FUNCTION(TCPSocketPrototype__wrapTLSCallback, (JSGlobalObject * lexicalGlobalObject, CallFrame* callFrame)) +{ + auto& vm = lexicalGlobalObject->vm(); + + JSTCPSocket* thisObject = jsDynamicCast(callFrame->thisValue()); + + if (UNLIKELY(!thisObject)) { + auto throwScope = DECLARE_THROW_SCOPE(vm); + return throwVMTypeError(lexicalGlobalObject, throwScope); + } + + JSC::EnsureStillAliveScope thisArg = JSC::EnsureStillAliveScope(thisObject); + +#ifdef BUN_DEBUG + /** View the file name of the JS file that called this function + * from a debugger */ + SourceOrigin sourceOrigin = callFrame->callerSourceOrigin(vm); + const char* fileName = sourceOrigin.string().utf8().data(); + static const char* lastFileName = nullptr; + if (lastFileName != fileName) { + lastFileName = fileName; + } +#endif + + return TCPSocketPrototype__wrapTLS(thisObject->wrapped(), lexicalGlobalObject, callFrame); +} + JSC_DEFINE_HOST_FUNCTION(TCPSocketPrototype__writeCallback, (JSGlobalObject * lexicalGlobalObject, CallFrame* callFrame)) { auto& vm = lexicalGlobalObject->vm(); @@ -17479,6 +17588,9 @@ extern "C" void* TLSSocketClass__construct(JSC::JSGlobalObject*, JSC::CallFrame* JSC_DECLARE_CUSTOM_GETTER(jsTLSSocketConstructor); extern "C" void TLSSocketClass__finalize(void*); +extern "C" JSC::EncodedJSValue TLSSocketPrototype__getALPNProtocol(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject); +JSC_DECLARE_CUSTOM_GETTER(TLSSocketPrototype__alpnProtocolGetterWrap); + extern "C" JSC::EncodedJSValue TLSSocketPrototype__getAuthorized(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject); JSC_DECLARE_CUSTOM_GETTER(TLSSocketPrototype__authorizedGetterWrap); @@ -17503,6 +17615,9 @@ JSC_DECLARE_CUSTOM_GETTER(TLSSocketPrototype__listenerGetterWrap); extern "C" JSC::EncodedJSValue TLSSocketPrototype__getLocalPort(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject); JSC_DECLARE_CUSTOM_GETTER(TLSSocketPrototype__localPortGetterWrap); +extern "C" EncodedJSValue TLSSocketPrototype__open(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame); +JSC_DECLARE_HOST_FUNCTION(TLSSocketPrototype__openCallback); + extern "C" JSC::EncodedJSValue TLSSocketPrototype__getReadyState(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject); JSC_DECLARE_CUSTOM_GETTER(TLSSocketPrototype__readyStateGetterWrap); @@ -17515,6 +17630,9 @@ JSC_DECLARE_HOST_FUNCTION(TLSSocketPrototype__reloadCallback); extern "C" JSC::EncodedJSValue TLSSocketPrototype__getRemoteAddress(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject); JSC_DECLARE_CUSTOM_GETTER(TLSSocketPrototype__remoteAddressGetterWrap); +extern "C" EncodedJSValue TLSSocketPrototype__setServername(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame); +JSC_DECLARE_HOST_FUNCTION(TLSSocketPrototype__setServernameCallback); + extern "C" EncodedJSValue TLSSocketPrototype__shutdown(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame); JSC_DECLARE_HOST_FUNCTION(TLSSocketPrototype__shutdownCallback); @@ -17524,12 +17642,16 @@ JSC_DECLARE_HOST_FUNCTION(TLSSocketPrototype__timeoutCallback); extern "C" EncodedJSValue TLSSocketPrototype__unref(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame); JSC_DECLARE_HOST_FUNCTION(TLSSocketPrototype__unrefCallback); +extern "C" EncodedJSValue TLSSocketPrototype__wrapTLS(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame); +JSC_DECLARE_HOST_FUNCTION(TLSSocketPrototype__wrapTLSCallback); + extern "C" EncodedJSValue TLSSocketPrototype__write(void* ptr, JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame); JSC_DECLARE_HOST_FUNCTION(TLSSocketPrototype__writeCallback); STATIC_ASSERT_ISO_SUBSPACE_SHARABLE(JSTLSSocketPrototype, JSTLSSocketPrototype::Base); static const HashTableValue JSTLSSocketPrototypeTableValues[] = { + { "alpnProtocol"_s, static_cast(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::GetterSetterType, TLSSocketPrototype__alpnProtocolGetterWrap, 0 } }, { "authorized"_s, static_cast(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::GetterSetterType, TLSSocketPrototype__authorizedGetterWrap, 0 } }, { "data"_s, static_cast(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::GetterSetterType, TLSSocketPrototype__dataGetterWrap, TLSSocketPrototype__dataSetterWrap } }, { "end"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, TLSSocketPrototype__endCallback, 3 } }, @@ -17537,13 +17659,16 @@ static const HashTableValue JSTLSSocketPrototypeTableValues[] = { { "getAuthorizationError"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, TLSSocketPrototype__getAuthorizationErrorCallback, 0 } }, { "listener"_s, static_cast(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::GetterSetterType, TLSSocketPrototype__listenerGetterWrap, 0 } }, { "localPort"_s, static_cast(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::GetterSetterType, TLSSocketPrototype__localPortGetterWrap, 0 } }, + { "open"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, TLSSocketPrototype__openCallback, 0 } }, { "readyState"_s, static_cast(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::GetterSetterType, TLSSocketPrototype__readyStateGetterWrap, 0 } }, { "ref"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, TLSSocketPrototype__refCallback, 0 } }, { "reload"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, TLSSocketPrototype__reloadCallback, 1 } }, { "remoteAddress"_s, static_cast(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::GetterSetterType, TLSSocketPrototype__remoteAddressGetterWrap, 0 } }, + { "setServername"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, TLSSocketPrototype__setServernameCallback, 1 } }, { "shutdown"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, TLSSocketPrototype__shutdownCallback, 1 } }, { "timeout"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, TLSSocketPrototype__timeoutCallback, 1 } }, { "unref"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, TLSSocketPrototype__unrefCallback, 0 } }, + { "wrapTLS"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, TLSSocketPrototype__wrapTLSCallback, 1 } }, { "write"_s, static_cast(JSC::PropertyAttribute::Function | PropertyAttribute::DontDelete), NoIntrinsic, { HashTableValue::NativeFunctionType, TLSSocketPrototype__writeCallback, 3 } } }; @@ -17561,6 +17686,18 @@ JSC_DEFINE_CUSTOM_GETTER(jsTLSSocketConstructor, (JSGlobalObject * lexicalGlobal return JSValue::encode(globalObject->JSTLSSocketConstructor()); } +JSC_DEFINE_CUSTOM_GETTER(TLSSocketPrototype__alpnProtocolGetterWrap, (JSGlobalObject * lexicalGlobalObject, EncodedJSValue thisValue, PropertyName attributeName)) +{ + auto& vm = lexicalGlobalObject->vm(); + Zig::GlobalObject* globalObject = reinterpret_cast(lexicalGlobalObject); + auto throwScope = DECLARE_THROW_SCOPE(vm); + JSTLSSocket* thisObject = jsCast(JSValue::decode(thisValue)); + JSC::EnsureStillAliveScope thisArg = JSC::EnsureStillAliveScope(thisObject); + JSC::EncodedJSValue result = TLSSocketPrototype__getALPNProtocol(thisObject->wrapped(), globalObject); + RETURN_IF_EXCEPTION(throwScope, {}); + RELEASE_AND_RETURN(throwScope, result); +} + JSC_DEFINE_CUSTOM_GETTER(TLSSocketPrototype__authorizedGetterWrap, (JSGlobalObject * lexicalGlobalObject, EncodedJSValue thisValue, PropertyName attributeName)) { auto& vm = lexicalGlobalObject->vm(); @@ -17720,6 +17857,33 @@ JSC_DEFINE_CUSTOM_GETTER(TLSSocketPrototype__localPortGetterWrap, (JSGlobalObjec RELEASE_AND_RETURN(throwScope, result); } +JSC_DEFINE_HOST_FUNCTION(TLSSocketPrototype__openCallback, (JSGlobalObject * lexicalGlobalObject, CallFrame* callFrame)) +{ + auto& vm = lexicalGlobalObject->vm(); + + JSTLSSocket* thisObject = jsDynamicCast(callFrame->thisValue()); + + if (UNLIKELY(!thisObject)) { + auto throwScope = DECLARE_THROW_SCOPE(vm); + return throwVMTypeError(lexicalGlobalObject, throwScope); + } + + JSC::EnsureStillAliveScope thisArg = JSC::EnsureStillAliveScope(thisObject); + +#ifdef BUN_DEBUG + /** View the file name of the JS file that called this function + * from a debugger */ + SourceOrigin sourceOrigin = callFrame->callerSourceOrigin(vm); + const char* fileName = sourceOrigin.string().utf8().data(); + static const char* lastFileName = nullptr; + if (lastFileName != fileName) { + lastFileName = fileName; + } +#endif + + return TLSSocketPrototype__open(thisObject->wrapped(), lexicalGlobalObject, callFrame); +} + JSC_DEFINE_CUSTOM_GETTER(TLSSocketPrototype__readyStateGetterWrap, (JSGlobalObject * lexicalGlobalObject, EncodedJSValue thisValue, PropertyName attributeName)) { auto& vm = lexicalGlobalObject->vm(); @@ -17817,6 +17981,33 @@ extern "C" EncodedJSValue TLSSocketPrototype__remoteAddressGetCachedValue(JSC::E return JSValue::encode(thisObject->m_remoteAddress.get()); } +JSC_DEFINE_HOST_FUNCTION(TLSSocketPrototype__setServernameCallback, (JSGlobalObject * lexicalGlobalObject, CallFrame* callFrame)) +{ + auto& vm = lexicalGlobalObject->vm(); + + JSTLSSocket* thisObject = jsDynamicCast(callFrame->thisValue()); + + if (UNLIKELY(!thisObject)) { + auto throwScope = DECLARE_THROW_SCOPE(vm); + return throwVMTypeError(lexicalGlobalObject, throwScope); + } + + JSC::EnsureStillAliveScope thisArg = JSC::EnsureStillAliveScope(thisObject); + +#ifdef BUN_DEBUG + /** View the file name of the JS file that called this function + * from a debugger */ + SourceOrigin sourceOrigin = callFrame->callerSourceOrigin(vm); + const char* fileName = sourceOrigin.string().utf8().data(); + static const char* lastFileName = nullptr; + if (lastFileName != fileName) { + lastFileName = fileName; + } +#endif + + return TLSSocketPrototype__setServername(thisObject->wrapped(), lexicalGlobalObject, callFrame); +} + JSC_DEFINE_HOST_FUNCTION(TLSSocketPrototype__shutdownCallback, (JSGlobalObject * lexicalGlobalObject, CallFrame* callFrame)) { auto& vm = lexicalGlobalObject->vm(); @@ -17898,6 +18089,33 @@ JSC_DEFINE_HOST_FUNCTION(TLSSocketPrototype__unrefCallback, (JSGlobalObject * le return TLSSocketPrototype__unref(thisObject->wrapped(), lexicalGlobalObject, callFrame); } +JSC_DEFINE_HOST_FUNCTION(TLSSocketPrototype__wrapTLSCallback, (JSGlobalObject * lexicalGlobalObject, CallFrame* callFrame)) +{ + auto& vm = lexicalGlobalObject->vm(); + + JSTLSSocket* thisObject = jsDynamicCast(callFrame->thisValue()); + + if (UNLIKELY(!thisObject)) { + auto throwScope = DECLARE_THROW_SCOPE(vm); + return throwVMTypeError(lexicalGlobalObject, throwScope); + } + + JSC::EnsureStillAliveScope thisArg = JSC::EnsureStillAliveScope(thisObject); + +#ifdef BUN_DEBUG + /** View the file name of the JS file that called this function + * from a debugger */ + SourceOrigin sourceOrigin = callFrame->callerSourceOrigin(vm); + const char* fileName = sourceOrigin.string().utf8().data(); + static const char* lastFileName = nullptr; + if (lastFileName != fileName) { + lastFileName = fileName; + } +#endif + + return TLSSocketPrototype__wrapTLS(thisObject->wrapped(), lexicalGlobalObject, callFrame); +} + JSC_DEFINE_HOST_FUNCTION(TLSSocketPrototype__writeCallback, (JSGlobalObject * lexicalGlobalObject, CallFrame* callFrame)) { auto& vm = lexicalGlobalObject->vm(); diff --git a/src/bun.js/bindings/generated_classes.zig b/src/bun.js/bindings/generated_classes.zig index 04a72d7ed..a220b6814 100644 --- a/src/bun.js/bindings/generated_classes.zig +++ b/src/bun.js/bindings/generated_classes.zig @@ -4426,6 +4426,9 @@ pub const JSTCPSocket = struct { @compileLog("TCPSocket.finalize is not a finalizer"); } + if (@TypeOf(TCPSocket.getALPNProtocol) != GetterType) + @compileLog("Expected TCPSocket.getALPNProtocol to be a getter"); + if (@TypeOf(TCPSocket.getAuthorized) != GetterType) @compileLog("Expected TCPSocket.getAuthorized to be a getter"); @@ -4446,6 +4449,8 @@ pub const JSTCPSocket = struct { if (@TypeOf(TCPSocket.getLocalPort) != GetterType) @compileLog("Expected TCPSocket.getLocalPort to be a getter"); + if (@TypeOf(TCPSocket.open) != CallbackType) + @compileLog("Expected TCPSocket.open to be a callback but received " ++ @typeName(@TypeOf(TCPSocket.open))); if (@TypeOf(TCPSocket.getReadyState) != GetterType) @compileLog("Expected TCPSocket.getReadyState to be a getter"); @@ -4456,18 +4461,23 @@ pub const JSTCPSocket = struct { if (@TypeOf(TCPSocket.getRemoteAddress) != GetterType) @compileLog("Expected TCPSocket.getRemoteAddress to be a getter"); + if (@TypeOf(TCPSocket.setServername) != CallbackType) + @compileLog("Expected TCPSocket.setServername to be a callback but received " ++ @typeName(@TypeOf(TCPSocket.setServername))); if (@TypeOf(TCPSocket.shutdown) != CallbackType) @compileLog("Expected TCPSocket.shutdown to be a callback but received " ++ @typeName(@TypeOf(TCPSocket.shutdown))); if (@TypeOf(TCPSocket.timeout) != CallbackType) @compileLog("Expected TCPSocket.timeout to be a callback but received " ++ @typeName(@TypeOf(TCPSocket.timeout))); if (@TypeOf(TCPSocket.unref) != CallbackType) @compileLog("Expected TCPSocket.unref to be a callback but received " ++ @typeName(@TypeOf(TCPSocket.unref))); + if (@TypeOf(TCPSocket.wrapTLS) != CallbackType) + @compileLog("Expected TCPSocket.wrapTLS to be a callback but received " ++ @typeName(@TypeOf(TCPSocket.wrapTLS))); if (@TypeOf(TCPSocket.write) != CallbackType) @compileLog("Expected TCPSocket.write to be a callback but received " ++ @typeName(@TypeOf(TCPSocket.write))); if (!JSC.is_bindgen) { @export(TCPSocket.end, .{ .name = "TCPSocketPrototype__end" }); @export(TCPSocket.finalize, .{ .name = "TCPSocketClass__finalize" }); @export(TCPSocket.flush, .{ .name = "TCPSocketPrototype__flush" }); + @export(TCPSocket.getALPNProtocol, .{ .name = "TCPSocketPrototype__getALPNProtocol" }); @export(TCPSocket.getAuthorizationError, .{ .name = "TCPSocketPrototype__getAuthorizationError" }); @export(TCPSocket.getAuthorized, .{ .name = "TCPSocketPrototype__getAuthorized" }); @export(TCPSocket.getData, .{ .name = "TCPSocketPrototype__getData" }); @@ -4476,12 +4486,15 @@ pub const JSTCPSocket = struct { @export(TCPSocket.getReadyState, .{ .name = "TCPSocketPrototype__getReadyState" }); @export(TCPSocket.getRemoteAddress, .{ .name = "TCPSocketPrototype__getRemoteAddress" }); @export(TCPSocket.hasPendingActivity, .{ .name = "TCPSocket__hasPendingActivity" }); + @export(TCPSocket.open, .{ .name = "TCPSocketPrototype__open" }); @export(TCPSocket.ref, .{ .name = "TCPSocketPrototype__ref" }); @export(TCPSocket.reload, .{ .name = "TCPSocketPrototype__reload" }); @export(TCPSocket.setData, .{ .name = "TCPSocketPrototype__setData" }); + @export(TCPSocket.setServername, .{ .name = "TCPSocketPrototype__setServername" }); @export(TCPSocket.shutdown, .{ .name = "TCPSocketPrototype__shutdown" }); @export(TCPSocket.timeout, .{ .name = "TCPSocketPrototype__timeout" }); @export(TCPSocket.unref, .{ .name = "TCPSocketPrototype__unref" }); + @export(TCPSocket.wrapTLS, .{ .name = "TCPSocketPrototype__wrapTLS" }); @export(TCPSocket.write, .{ .name = "TCPSocketPrototype__write" }); } } @@ -4581,6 +4594,9 @@ pub const JSTLSSocket = struct { @compileLog("TLSSocket.finalize is not a finalizer"); } + if (@TypeOf(TLSSocket.getALPNProtocol) != GetterType) + @compileLog("Expected TLSSocket.getALPNProtocol to be a getter"); + if (@TypeOf(TLSSocket.getAuthorized) != GetterType) @compileLog("Expected TLSSocket.getAuthorized to be a getter"); @@ -4601,6 +4617,8 @@ pub const JSTLSSocket = struct { if (@TypeOf(TLSSocket.getLocalPort) != GetterType) @compileLog("Expected TLSSocket.getLocalPort to be a getter"); + if (@TypeOf(TLSSocket.open) != CallbackType) + @compileLog("Expected TLSSocket.open to be a callback but received " ++ @typeName(@TypeOf(TLSSocket.open))); if (@TypeOf(TLSSocket.getReadyState) != GetterType) @compileLog("Expected TLSSocket.getReadyState to be a getter"); @@ -4611,18 +4629,23 @@ pub const JSTLSSocket = struct { if (@TypeOf(TLSSocket.getRemoteAddress) != GetterType) @compileLog("Expected TLSSocket.getRemoteAddress to be a getter"); + if (@TypeOf(TLSSocket.setServername) != CallbackType) + @compileLog("Expected TLSSocket.setServername to be a callback but received " ++ @typeName(@TypeOf(TLSSocket.setServername))); if (@TypeOf(TLSSocket.shutdown) != CallbackType) @compileLog("Expected TLSSocket.shutdown to be a callback but received " ++ @typeName(@TypeOf(TLSSocket.shutdown))); if (@TypeOf(TLSSocket.timeout) != CallbackType) @compileLog("Expected TLSSocket.timeout to be a callback but received " ++ @typeName(@TypeOf(TLSSocket.timeout))); if (@TypeOf(TLSSocket.unref) != CallbackType) @compileLog("Expected TLSSocket.unref to be a callback but received " ++ @typeName(@TypeOf(TLSSocket.unref))); + if (@TypeOf(TLSSocket.wrapTLS) != CallbackType) + @compileLog("Expected TLSSocket.wrapTLS to be a callback but received " ++ @typeName(@TypeOf(TLSSocket.wrapTLS))); if (@TypeOf(TLSSocket.write) != CallbackType) @compileLog("Expected TLSSocket.write to be a callback but received " ++ @typeName(@TypeOf(TLSSocket.write))); if (!JSC.is_bindgen) { @export(TLSSocket.end, .{ .name = "TLSSocketPrototype__end" }); @export(TLSSocket.finalize, .{ .name = "TLSSocketClass__finalize" }); @export(TLSSocket.flush, .{ .name = "TLSSocketPrototype__flush" }); + @export(TLSSocket.getALPNProtocol, .{ .name = "TLSSocketPrototype__getALPNProtocol" }); @export(TLSSocket.getAuthorizationError, .{ .name = "TLSSocketPrototype__getAuthorizationError" }); @export(TLSSocket.getAuthorized, .{ .name = "TLSSocketPrototype__getAuthorized" }); @export(TLSSocket.getData, .{ .name = "TLSSocketPrototype__getData" }); @@ -4631,12 +4654,15 @@ pub const JSTLSSocket = struct { @export(TLSSocket.getReadyState, .{ .name = "TLSSocketPrototype__getReadyState" }); @export(TLSSocket.getRemoteAddress, .{ .name = "TLSSocketPrototype__getRemoteAddress" }); @export(TLSSocket.hasPendingActivity, .{ .name = "TLSSocket__hasPendingActivity" }); + @export(TLSSocket.open, .{ .name = "TLSSocketPrototype__open" }); @export(TLSSocket.ref, .{ .name = "TLSSocketPrototype__ref" }); @export(TLSSocket.reload, .{ .name = "TLSSocketPrototype__reload" }); @export(TLSSocket.setData, .{ .name = "TLSSocketPrototype__setData" }); + @export(TLSSocket.setServername, .{ .name = "TLSSocketPrototype__setServername" }); @export(TLSSocket.shutdown, .{ .name = "TLSSocketPrototype__shutdown" }); @export(TLSSocket.timeout, .{ .name = "TLSSocketPrototype__timeout" }); @export(TLSSocket.unref, .{ .name = "TLSSocketPrototype__unref" }); + @export(TLSSocket.wrapTLS, .{ .name = "TLSSocketPrototype__wrapTLS" }); @export(TLSSocket.write, .{ .name = "TLSSocketPrototype__write" }); } } diff --git a/src/bun.js/bindings/webcore/JSEventEmitter.cpp b/src/bun.js/bindings/webcore/JSEventEmitter.cpp index 1957b404b..231ae0db4 100644 --- a/src/bun.js/bindings/webcore/JSEventEmitter.cpp +++ b/src/bun.js/bindings/webcore/JSEventEmitter.cpp @@ -149,7 +149,7 @@ static const HashTableValue JSEventEmitterPrototypeTableValues[] = { { "on"_s, static_cast(JSC::PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, jsEventEmitterPrototypeFunction_addListener, 2 } }, { "once"_s, static_cast(JSC::PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, jsEventEmitterPrototypeFunction_addOnceListener, 2 } }, { "prependListener"_s, static_cast(JSC::PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, jsEventEmitterPrototypeFunction_prependListener, 2 } }, - { "prependOnce"_s, static_cast(JSC::PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, jsEventEmitterPrototypeFunction_prependOnceListener, 2 } }, + { "prependOnceListener"_s, static_cast(JSC::PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, jsEventEmitterPrototypeFunction_prependOnceListener, 2 } }, { "removeListener"_s, static_cast(JSC::PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, jsEventEmitterPrototypeFunction_removeListener, 2 } }, { "off"_s, static_cast(JSC::PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, jsEventEmitterPrototypeFunction_removeListener, 2 } }, { "removeAllListeners"_s, static_cast(JSC::PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, jsEventEmitterPrototypeFunction_removeAllListeners, 1 } }, diff --git a/src/deps/uws b/src/deps/uws index d82c4a95d..875948226 160000 --- a/src/deps/uws +++ b/src/deps/uws @@ -1 +1 @@ -Subproject commit d82c4a95de3af01614ecb12bfff821611b4cc6b7 +Subproject commit 875948226eede72861a5170212ff6b43c4b7d7f9 diff --git a/src/deps/uws.zig b/src/deps/uws.zig index 8ebe04ac0..5dbe4f5d8 100644 --- a/src/deps/uws.zig +++ b/src/deps/uws.zig @@ -40,6 +40,129 @@ pub fn NewSocketHandler(comptime ssl: bool) type { return us_socket_timeout(comptime ssl_int, this.socket, seconds); } + pub fn open(this: ThisSocket, is_client: bool) void { + _ = us_socket_open(comptime ssl_int, this.socket, @intFromBool(is_client), null, 0); + } + + // Note: this assumes that the socket is non-TLS and will be adopted and wrapped with a new TLS context + // context ext will not be copied to the new context, new context will contain us_wrapped_socket_context_t on ext + pub fn wrapTLS( + this: ThisSocket, + options: us_bun_socket_context_options_t, + socket_ext_size: i32, + comptime deref: bool, + comptime ContextType: type, + comptime Fields: anytype, + ) ?NewSocketHandler(true) { + const Type = comptime if (@TypeOf(Fields) != type) @TypeOf(Fields) else Fields; + const TLSSocket = NewSocketHandler(true); + const SocketHandler = struct { + const alignment = if (ContextType == anyopaque) + @sizeOf(usize) + else + std.meta.alignment(ContextType); + const deref_ = deref; + const ValueType = if (deref) ContextType else *ContextType; + fn getValue(socket: *Socket) ValueType { + if (comptime ContextType == anyopaque) { + return us_socket_ext(1, socket).?; + } + + if (comptime deref_) { + return (TLSSocket{ .socket = socket }).ext(ContextType).?.*; + } + + return (TLSSocket{ .socket = socket }).ext(ContextType).?; + } + + pub fn on_open(socket: *Socket, is_client: i32, _: [*c]u8, _: i32) callconv(.C) ?*Socket { + if (comptime @hasDecl(Fields, "onCreate")) { + if (is_client == 0) { + Fields.onCreate( + TLSSocket{ .socket = socket }, + ); + } + } + Fields.onOpen( + getValue(socket), + TLSSocket{ .socket = socket }, + ); + return socket; + } + pub fn on_close(socket: *Socket, code: i32, reason: ?*anyopaque) callconv(.C) ?*Socket { + Fields.onClose( + getValue(socket), + TLSSocket{ .socket = socket }, + code, + reason, + ); + return socket; + } + pub fn on_data(socket: *Socket, buf: ?[*]u8, len: i32) callconv(.C) ?*Socket { + Fields.onData( + getValue(socket), + TLSSocket{ .socket = socket }, + buf.?[0..@intCast(usize, len)], + ); + return socket; + } + pub fn on_writable(socket: *Socket) callconv(.C) ?*Socket { + Fields.onWritable( + getValue(socket), + TLSSocket{ .socket = socket }, + ); + return socket; + } + pub fn on_timeout(socket: *Socket) callconv(.C) ?*Socket { + Fields.onTimeout( + getValue(socket), + TLSSocket{ .socket = socket }, + ); + return socket; + } + pub fn on_connect_error(socket: *Socket, code: i32) callconv(.C) ?*Socket { + Fields.onConnectError( + getValue(socket), + TLSSocket{ .socket = socket }, + code, + ); + return socket; + } + pub fn on_end(socket: *Socket) callconv(.C) ?*Socket { + Fields.onEnd( + getValue(socket), + TLSSocket{ .socket = socket }, + ); + return socket; + } + pub fn on_handshake(socket: *Socket, success: i32, verify_error: us_bun_verify_error_t, _: ?*anyopaque) callconv(.C) void { + Fields.onHandshake(getValue(socket), TLSSocket{ .socket = socket }, success, verify_error); + } + }; + + var events: us_socket_events_t = .{}; + + if (comptime @hasDecl(Type, "onOpen") and @typeInfo(@TypeOf(Type.onOpen)) != .Null) + events.on_open = SocketHandler.on_open; + if (comptime @hasDecl(Type, "onClose") and @typeInfo(@TypeOf(Type.onClose)) != .Null) + events.on_close = SocketHandler.on_close; + if (comptime @hasDecl(Type, "onData") and @typeInfo(@TypeOf(Type.onData)) != .Null) + events.on_data = SocketHandler.on_data; + if (comptime @hasDecl(Type, "onWritable") and @typeInfo(@TypeOf(Type.onWritable)) != .Null) + events.on_writable = SocketHandler.on_writable; + if (comptime @hasDecl(Type, "onTimeout") and @typeInfo(@TypeOf(Type.onTimeout)) != .Null) + events.on_timeout = SocketHandler.on_timeout; + if (comptime @hasDecl(Type, "onConnectError") and @typeInfo(@TypeOf(Type.onConnectError)) != .Null) + events.on_connect_error = SocketHandler.on_connect_error; + if (comptime @hasDecl(Type, "onEnd") and @typeInfo(@TypeOf(Type.onEnd)) != .Null) + events.on_end = SocketHandler.on_end; + if (comptime @hasDecl(Type, "onHandshake") and @typeInfo(@TypeOf(Type.onHandshake)) != .Null) + events.on_handshake = SocketHandler.on_handshake; + + const socket = us_socket_wrap_with_tls(ssl_int, this.socket, options, events, socket_ext_size) orelse return null; + return NewSocketHandler(true).from(socket); + } + pub fn getNativeHandle(this: ThisSocket) *NativeSocketHandleType(ssl) { return @ptrCast(*NativeSocketHandleType(ssl), us_socket_get_native_handle(comptime ssl_int, this.socket).?); } @@ -95,6 +218,17 @@ pub fn NewSocketHandler(comptime ssl: bool) type { @as(i32, @intFromBool(msg_more)), ); } + + pub fn rawWrite(this: ThisSocket, data: []const u8, msg_more: bool) i32 { + return us_socket_raw_write( + comptime ssl_int, + this.socket, + data.ptr, + // truncate to 31 bits since sign bit exists + @intCast(i32, @truncate(u31, data.len)), + @as(i32, @intFromBool(msg_more)), + ); + } pub fn shutdown(this: ThisSocket) void { debug("us_socket_shutdown({d})", .{@intFromPtr(this.socket)}); return us_socket_shutdown( @@ -241,13 +375,126 @@ pub fn NewSocketHandler(comptime ssl: bool) type { return socket_; } + pub fn unsafeConfigure( + ctx: *SocketContext, + comptime ssl_type: bool, + comptime deref: bool, + comptime ContextType: type, + comptime Fields: anytype, + ) void { + const SocketHandlerType = NewSocketHandler(ssl_type); + const ssl_type_int: i32 = @intFromBool(ssl_type); + const Type = comptime if (@TypeOf(Fields) != type) @TypeOf(Fields) else Fields; + + const SocketHandler = struct { + const alignment = if (ContextType == anyopaque) + @sizeOf(usize) + else + std.meta.alignment(ContextType); + const deref_ = deref; + const ValueType = if (deref) ContextType else *ContextType; + fn getValue(socket: *Socket) ValueType { + if (comptime ContextType == anyopaque) { + return us_socket_ext(ssl_type_int, socket).?; + } + + if (comptime deref_) { + return (SocketHandlerType{ .socket = socket }).ext(ContextType).?.*; + } + + return (SocketHandlerType{ .socket = socket }).ext(ContextType).?; + } + + pub fn on_open(socket: *Socket, is_client: i32, _: [*c]u8, _: i32) callconv(.C) ?*Socket { + if (comptime @hasDecl(Fields, "onCreate")) { + if (is_client == 0) { + Fields.onCreate( + SocketHandlerType{ .socket = socket }, + ); + } + } + Fields.onOpen( + getValue(socket), + SocketHandlerType{ .socket = socket }, + ); + return socket; + } + pub fn on_close(socket: *Socket, code: i32, reason: ?*anyopaque) callconv(.C) ?*Socket { + Fields.onClose( + getValue(socket), + SocketHandlerType{ .socket = socket }, + code, + reason, + ); + return socket; + } + pub fn on_data(socket: *Socket, buf: ?[*]u8, len: i32) callconv(.C) ?*Socket { + Fields.onData( + getValue(socket), + SocketHandlerType{ .socket = socket }, + buf.?[0..@intCast(usize, len)], + ); + return socket; + } + pub fn on_writable(socket: *Socket) callconv(.C) ?*Socket { + Fields.onWritable( + getValue(socket), + SocketHandlerType{ .socket = socket }, + ); + return socket; + } + pub fn on_timeout(socket: *Socket) callconv(.C) ?*Socket { + Fields.onTimeout( + getValue(socket), + SocketHandlerType{ .socket = socket }, + ); + return socket; + } + pub fn on_connect_error(socket: *Socket, code: i32) callconv(.C) ?*Socket { + Fields.onConnectError( + getValue(socket), + SocketHandlerType{ .socket = socket }, + code, + ); + return socket; + } + pub fn on_end(socket: *Socket) callconv(.C) ?*Socket { + Fields.onEnd( + getValue(socket), + SocketHandlerType{ .socket = socket }, + ); + return socket; + } + pub fn on_handshake(socket: *Socket, success: i32, verify_error: us_bun_verify_error_t, _: ?*anyopaque) callconv(.C) void { + Fields.onHandshake(getValue(socket), SocketHandlerType{ .socket = socket }, success, verify_error); + } + }; + + if (comptime @hasDecl(Type, "onOpen") and @typeInfo(@TypeOf(Type.onOpen)) != .Null) + us_socket_context_on_open(ssl_int, ctx, SocketHandler.on_open); + if (comptime @hasDecl(Type, "onClose") and @typeInfo(@TypeOf(Type.onClose)) != .Null) + us_socket_context_on_close(ssl_int, ctx, SocketHandler.on_close); + if (comptime @hasDecl(Type, "onData") and @typeInfo(@TypeOf(Type.onData)) != .Null) + us_socket_context_on_data(ssl_int, ctx, SocketHandler.on_data); + if (comptime @hasDecl(Type, "onWritable") and @typeInfo(@TypeOf(Type.onWritable)) != .Null) + us_socket_context_on_writable(ssl_int, ctx, SocketHandler.on_writable); + if (comptime @hasDecl(Type, "onTimeout") and @typeInfo(@TypeOf(Type.onTimeout)) != .Null) + us_socket_context_on_timeout(ssl_int, ctx, SocketHandler.on_timeout); + if (comptime @hasDecl(Type, "onConnectError") and @typeInfo(@TypeOf(Type.onConnectError)) != .Null) + us_socket_context_on_connect_error(ssl_int, ctx, SocketHandler.on_connect_error); + if (comptime @hasDecl(Type, "onEnd") and @typeInfo(@TypeOf(Type.onEnd)) != .Null) + us_socket_context_on_end(ssl_int, ctx, SocketHandler.on_end); + if (comptime @hasDecl(Type, "onHandshake") and @typeInfo(@TypeOf(Type.onHandshake)) != .Null) + us_socket_context_on_handshake(ssl_int, ctx, SocketHandler.on_handshake, null); + } + pub fn configure( ctx: *SocketContext, comptime deref: bool, comptime ContextType: type, comptime Fields: anytype, ) void { - const @"type" = comptime if (@TypeOf(Fields) != type) @TypeOf(Fields) else Fields; + const Type = comptime if (@TypeOf(Fields) != type) @TypeOf(Fields) else Fields; const SocketHandler = struct { const alignment = if (ContextType == anyopaque) @@ -333,21 +580,21 @@ pub fn NewSocketHandler(comptime ssl: bool) type { } }; - if (comptime @hasDecl(@"type", "onOpen") and @typeInfo(@TypeOf(@"type".onOpen)) != .Null) + if (comptime @hasDecl(Type, "onOpen") and @typeInfo(@TypeOf(Type.onOpen)) != .Null) us_socket_context_on_open(ssl_int, ctx, SocketHandler.on_open); - if (comptime @hasDecl(@"type", "onClose") and @typeInfo(@TypeOf(@"type".onClose)) != .Null) + if (comptime @hasDecl(Type, "onClose") and @typeInfo(@TypeOf(Type.onClose)) != .Null) us_socket_context_on_close(ssl_int, ctx, SocketHandler.on_close); - if (comptime @hasDecl(@"type", "onData") and @typeInfo(@TypeOf(@"type".onData)) != .Null) + if (comptime @hasDecl(Type, "onData") and @typeInfo(@TypeOf(Type.onData)) != .Null) us_socket_context_on_data(ssl_int, ctx, SocketHandler.on_data); - if (comptime @hasDecl(@"type", "onWritable") and @typeInfo(@TypeOf(@"type".onWritable)) != .Null) + if (comptime @hasDecl(Type, "onWritable") and @typeInfo(@TypeOf(Type.onWritable)) != .Null) us_socket_context_on_writable(ssl_int, ctx, SocketHandler.on_writable); - if (comptime @hasDecl(@"type", "onTimeout") and @typeInfo(@TypeOf(@"type".onTimeout)) != .Null) + if (comptime @hasDecl(Type, "onTimeout") and @typeInfo(@TypeOf(Type.onTimeout)) != .Null) us_socket_context_on_timeout(ssl_int, ctx, SocketHandler.on_timeout); - if (comptime @hasDecl(@"type", "onConnectError") and @typeInfo(@TypeOf(@"type".onConnectError)) != .Null) + if (comptime @hasDecl(Type, "onConnectError") and @typeInfo(@TypeOf(Type.onConnectError)) != .Null) us_socket_context_on_connect_error(ssl_int, ctx, SocketHandler.on_connect_error); - if (comptime @hasDecl(@"type", "onEnd") and @typeInfo(@TypeOf(@"type".onEnd)) != .Null) + if (comptime @hasDecl(Type, "onEnd") and @typeInfo(@TypeOf(Type.onEnd)) != .Null) us_socket_context_on_end(ssl_int, ctx, SocketHandler.on_end); - if (comptime @hasDecl(@"type", "onHandshake") and @typeInfo(@TypeOf(@"type".onHandshake)) != .Null) + if (comptime @hasDecl(Type, "onHandshake") and @typeInfo(@TypeOf(Type.onHandshake)) != .Null) us_socket_context_on_handshake(ssl_int, ctx, SocketHandler.on_handshake, null); } @@ -659,6 +906,20 @@ pub const us_bun_verify_error_t = extern struct { reason: [*c]const u8 = null, }; +pub const us_socket_events_t = extern struct { + on_open: ?*const fn (*Socket, i32, [*c]u8, i32) callconv(.C) ?*Socket = null, + on_data: ?*const fn (*Socket, [*c]u8, i32) callconv(.C) ?*Socket = null, + on_writable: ?*const fn (*Socket) callconv(.C) ?*Socket = null, + on_close: ?*const fn (*Socket, i32, ?*anyopaque) callconv(.C) ?*Socket = null, + + on_timeout: ?*const fn (*Socket) callconv(.C) ?*Socket = null, + on_long_timeout: ?*const fn (*Socket) callconv(.C) ?*Socket = null, + on_end: ?*const fn (*Socket) callconv(.C) ?*Socket = null, + on_connect_error: ?*const fn (*Socket, i32) callconv(.C) ?*Socket = null, + on_handshake: ?*const fn (*Socket, i32, us_bun_verify_error_t, ?*anyopaque) callconv(.C) void = null, +}; + +pub extern fn us_socket_wrap_with_tls(ssl: i32, s: *Socket, options: us_bun_socket_context_options_t, events: us_socket_events_t, socket_ext_size: i32) ?*Socket; extern fn us_socket_verify_error(ssl: i32, context: *Socket) us_bun_verify_error_t; extern fn SocketContextimestamp(ssl: i32, context: ?*SocketContext) c_ushort; pub extern fn us_socket_context_add_server_name(ssl: i32, context: ?*SocketContext, hostname_pattern: [*c]const u8, options: us_socket_context_options_t, ?*anyopaque) void; @@ -777,11 +1038,16 @@ extern fn us_socket_ext(ssl: i32, s: ?*Socket) ?*anyopaque; extern fn us_socket_context(ssl: i32, s: ?*Socket) ?*SocketContext; extern fn us_socket_flush(ssl: i32, s: ?*Socket) void; extern fn us_socket_write(ssl: i32, s: ?*Socket, data: [*c]const u8, length: i32, msg_more: i32) i32; +extern fn us_socket_raw_write(ssl: i32, s: ?*Socket, data: [*c]const u8, length: i32, msg_more: i32) i32; extern fn us_socket_shutdown(ssl: i32, s: ?*Socket) void; extern fn us_socket_shutdown_read(ssl: i32, s: ?*Socket) void; extern fn us_socket_is_shut_down(ssl: i32, s: ?*Socket) i32; extern fn us_socket_is_closed(ssl: i32, s: ?*Socket) i32; extern fn us_socket_close(ssl: i32, s: ?*Socket, code: i32, reason: ?*anyopaque) ?*Socket; +// if a TLS socket calls this, it will start SSL instance and call open event will also do TLS handshake if required +// will have no effect if the socket is closed or is not TLS +extern fn us_socket_open(ssl: i32, s: ?*Socket, is_client: i32, ip: [*c]const u8, ip_length: i32) ?*Socket; + extern fn us_socket_local_port(ssl: i32, s: ?*Socket) i32; extern fn us_socket_remote_address(ssl: i32, s: ?*Socket, buf: [*c]u8, length: [*c]i32) void; pub const uws_app_s = opaque {}; diff --git a/src/js/node/net.js b/src/js/node/net.js index 430a0dfa2..1b7742dd1 100644 --- a/src/js/node/net.js +++ b/src/js/node/net.js @@ -64,6 +64,7 @@ const bunTlsSymbol = Symbol.for("::buntls::"); const bunSocketServerHandlers = Symbol.for("::bunsocket_serverhandlers::"); const bunSocketServerConnections = Symbol.for("::bunnetserverconnections::"); const bunSocketServerOptions = Symbol.for("::bunnetserveroptions::"); +const bunSocketInternal = Symbol.for("::bunnetsocketinternal::"); var SocketClass; const Socket = (function (InternalSocket) { @@ -117,7 +118,7 @@ const Socket = (function (InternalSocket) { const self = socket.data; socket.timeout(self.timeout); socket.ref(); - self.#socket = socket; + self[bunSocketInternal] = socket; self.connecting = false; self.emit("connect", self); Socket.#Drain(socket); @@ -164,7 +165,7 @@ const Socket = (function (InternalSocket) { if (self.#closed) return; self.#closed = true; //socket cannot be used after close - self.#socket = null; + self[bunSocketInternal] = null; const queue = self.#readQueue; if (queue.isEmpty()) { if (self.push(null)) return; @@ -289,23 +290,33 @@ const Socket = (function (InternalSocket) { localAddress = "127.0.0.1"; #readQueue = createFIFO(); remotePort; - #socket; + [bunSocketInternal] = null; timeout = 0; #writeCallback; #writeChunk; #pendingRead; isServer = false; + _handle; + _parent; + _parentWrap; + #socket; constructor(options) { - const { signal, write, read, allowHalfOpen = false, ...opts } = options || {}; + const { socket, signal, write, read, allowHalfOpen = false, ...opts } = options || {}; super({ ...opts, allowHalfOpen, readable: true, writable: true, }); + this._handle = this; + this._parent = this; + this._parentWrap = this; this.#pendingRead = undefined; + if (socket instanceof Socket) { + this.#socket = socket; + } signal?.once("abort", () => this.destroy()); this.once("connect", () => this.emit("ready")); } @@ -327,7 +338,7 @@ const Socket = (function (InternalSocket) { socket.data = this; socket.timeout(this.timeout); socket.ref(); - this.#socket = socket; + this[bunSocketInternal] = socket; this.connecting = false; this.emit("connect", this); Socket.#Drain(socket); @@ -335,6 +346,7 @@ const Socket = (function (InternalSocket) { connect(port, host, connectListener) { var path; + var connection = this.#socket; if (typeof port === "string") { path = port; port = undefined; @@ -357,6 +369,7 @@ const Socket = (function (InternalSocket) { port, host, path, + socket, // TODOs localAddress, localPort, @@ -371,7 +384,11 @@ const Socket = (function (InternalSocket) { pauseOnConnect, servername, } = port; + this.servername = servername; + if (socket) { + connection = socket; + } } if (!pauseOnConnect) { @@ -399,41 +416,117 @@ const Socket = (function (InternalSocket) { } else { tls.rejectUnauthorized = rejectUnauthorized; tls.requestCert = true; + if (!connection && tls.socket) { + connection = tls.socket; + } + } + } + if (connection) { + if ( + typeof connection !== "object" || + !(connection instanceof Socket) || + typeof connection[bunTlsSymbol] === "function" + ) { + throw new TypeError("socket must be an instance of net.Socket"); } } - this.authorized = false; this.secureConnecting = true; this._secureEstablished = false; this._securePending = true; if (connectListener) this.on("secureConnect", connectListener); } else if (connectListener) this.on("connect", connectListener); - bunConnect( - path - ? { + // start using existing connection + + if (connection) { + const socket = connection[bunSocketInternal]; + + if (socket) { + const result = socket.wrapTLS({ + data: this, + tls, + socket: Socket.#Handlers, + }); + if (result) { + const [raw, tls] = result; + // replace socket + connection[bunSocketInternal] = raw; + raw.timeout(raw.timeout); + raw.connecting = false; + // set new socket + this[bunSocketInternal] = tls; + tls.timeout(tls.timeout); + tls.connecting = true; + this[bunSocketInternal] = socket; + // start tls + tls.open(); + } else { + this[bunSocketInternal] = null; + throw new Error("Invalid socket"); + } + } else { + // wait to be connected + connection.once("connect", () => { + const socket = connection[bunSocketInternal]; + if (!socket) return; + + const result = socket.wrapTLS({ data: this, - unix: path, - socket: Socket.#Handlers, tls, - } - : { - data: this, - hostname: host || "localhost", - port: port, socket: Socket.#Handlers, - tls, - }, - ); + }); + + if (result) { + const [raw, tls] = result; + // replace socket + connection[bunSocketInternal] = raw; + raw.timeout(raw.timeout); + raw.connecting = false; + // set new socket + this[bunSocketInternal] = tls; + tls.timeout(tls.timeout); + tls.connecting = true; + this[bunSocketInternal] = socket; + // start tls + tls.open(); + } else { + this[bunSocketInternal] = null; + throw new Error("Invalid socket"); + } + }); + } + } else if (path) { + // start using unix socket + bunConnect({ + data: this, + unix: path, + socket: Socket.#Handlers, + tls, + }).catch(error => { + this.emit("error", error); + }); + } else { + // default start + bunConnect({ + data: this, + hostname: host || "localhost", + port: port, + socket: Socket.#Handlers, + tls, + }).catch(error => { + this.emit("error", error); + }); + } return this; } _destroy(err, callback) { - this.#socket?.end(); + this[bunSocketInternal]?.end(); callback(err); } _final(callback) { - this.#socket?.end(); + this[bunSocketInternal]?.end(); callback(); } @@ -446,7 +539,7 @@ const Socket = (function (InternalSocket) { } get localPort() { - return this.#socket?.localPort; + return this[bunSocketInternal]?.localPort; } get pending() { @@ -472,11 +565,11 @@ const Socket = (function (InternalSocket) { } ref() { - this.#socket?.ref(); + this[bunSocketInternal]?.ref(); } get remoteAddress() { - return this.#socket?.remoteAddress; + return this[bunSocketInternal]?.remoteAddress; } get remoteFamily() { @@ -484,7 +577,7 @@ const Socket = (function (InternalSocket) { } resetAndDestroy() { - this.#socket?.end(); + this[bunSocketInternal]?.end(); } setKeepAlive(enable = false, initialDelay = 0) { @@ -498,19 +591,19 @@ const Socket = (function (InternalSocket) { } setTimeout(timeout, callback) { - this.#socket?.timeout(timeout); + this[bunSocketInternal]?.timeout(timeout); this.timeout = timeout; if (callback) this.once("timeout", callback); return this; } unref() { - this.#socket?.unref(); + this[bunSocketInternal]?.unref(); } _write(chunk, encoding, callback) { - if (typeof chunk == "string" && encoding !== "utf8") chunk = Buffer.from(chunk, encoding); - var written = this.#socket?.write(chunk); + if (typeof chunk == "string" && encoding !== "ascii") chunk = Buffer.from(chunk, encoding); + var written = this[bunSocketInternal]?.write(chunk); if (written == chunk.length) { callback(); } else if (this.#writeCallback) { diff --git a/src/js/node/tls.js b/src/js/node/tls.js index 356c25cbd..310a36620 100644 --- a/src/js/node/tls.js +++ b/src/js/node/tls.js @@ -1,9 +1,30 @@ // Hardcoded module "node:tls" -import { isTypedArray } from "util/types"; +import { isArrayBufferView, isTypedArray } from "util/types"; import net, { Server as NetServer } from "node:net"; const InternalTCPSocket = net[Symbol.for("::bunternal::")]; - +const bunSocketInternal = Symbol.for("::bunnetsocketinternal::"); + +const { RegExp, Array, String } = globalThis[Symbol.for("Bun.lazy")]("primordials"); +const SymbolReplace = Symbol.replace; +const RegExpPrototypeSymbolReplace = RegExp.prototype[SymbolReplace]; +const RegExpPrototypeExec = RegExp.prototype.exec; + +const StringPrototypeStartsWith = String.prototype.startsWith; +const StringPrototypeSlice = String.prototype.slice; +const StringPrototypeIncludes = String.prototype.includes; +const StringPrototypeSplit = String.prototype.split; +const StringPrototypeIndexOf = String.prototype.indexOf; +const StringPrototypeSubstring = String.prototype.substring; +const StringPrototypeEndsWith = String.prototype.endsWith; + +const ArrayPrototypeIncludes = Array.prototype.includes; +const ArrayPrototypeJoin = Array.prototype.join; +const ArrayPrototypeForEach = Array.prototype.forEach; +const ArrayPrototypePush = Array.prototype.push; +const ArrayPrototypeSome = Array.prototype.some; +const ArrayPrototypeReduce = Array.prototype.reduce; function parseCertString() { + // Removed since JAN 2022 Node v18.0.0+ https://github.com/nodejs/node/pull/41479 throwNotImplemented("Not implemented"); } @@ -18,6 +39,164 @@ function isValidTLSArray(obj) { } } +function unfqdn(host) { + return RegExpPrototypeSymbolReplace(/[.]$/, host, ""); +} + +function splitHost(host) { + return StringPrototypeSplit.call(RegExpPrototypeSymbolReplace(/[A-Z]/g, unfqdn(host), toLowerCase), "."); +} + +function check(hostParts, pattern, wildcards) { + // Empty strings, null, undefined, etc. never match. + if (!pattern) return false; + + const patternParts = splitHost(pattern); + + if (hostParts.length !== patternParts.length) return false; + + // Pattern has empty components, e.g. "bad..example.com". + if (ArrayPrototypeIncludes.call(patternParts, "")) return false; + + // RFC 6125 allows IDNA U-labels (Unicode) in names but we have no + // good way to detect their encoding or normalize them so we simply + // reject them. Control characters and blanks are rejected as well + // because nothing good can come from accepting them. + const isBad = s => RegExpPrototypeExec.call(/[^\u0021-\u007F]/u, s) !== null; + if (ArrayPrototypeSome.call(patternParts, isBad)) return false; + + // Check host parts from right to left first. + for (let i = hostParts.length - 1; i > 0; i -= 1) { + if (hostParts[i] !== patternParts[i]) return false; + } + + const hostSubdomain = hostParts[0]; + const patternSubdomain = patternParts[0]; + const patternSubdomainParts = StringPrototypeSplit.call(patternSubdomain, "*"); + + // Short-circuit when the subdomain does not contain a wildcard. + // RFC 6125 does not allow wildcard substitution for components + // containing IDNA A-labels (Punycode) so match those verbatim. + if (patternSubdomainParts.length === 1 || StringPrototypeIncludes.call(patternSubdomain, "xn--")) + return hostSubdomain === patternSubdomain; + + if (!wildcards) return false; + + // More than one wildcard is always wrong. + if (patternSubdomainParts.length > 2) return false; + + // *.tld wildcards are not allowed. + if (patternParts.length <= 2) return false; + + const { 0: prefix, 1: suffix } = patternSubdomainParts; + + if (prefix.length + suffix.length > hostSubdomain.length) return false; + + if (!StringPrototypeStartsWith.call(hostSubdomain, prefix)) return false; + + if (!StringPrototypeEndsWith.call(hostSubdomain, suffix)) return false; + + return true; +} + +// This pattern is used to determine the length of escaped sequences within +// the subject alt names string. It allows any valid JSON string literal. +// This MUST match the JSON specification (ECMA-404 / RFC8259) exactly. +const jsonStringPattern = + // eslint-disable-next-line no-control-regex + /^"(?:[^"\\\u0000-\u001f]|\\(?:["\\/bfnrt]|u[0-9a-fA-F]{4}))*"/; + +function splitEscapedAltNames(altNames) { + const result = []; + let currentToken = ""; + let offset = 0; + while (offset !== altNames.length) { + const nextSep = StringPrototypeIndexOf.call(altNames, ", ", offset); + const nextQuote = StringPrototypeIndexOf.call(altNames, '"', offset); + if (nextQuote !== -1 && (nextSep === -1 || nextQuote < nextSep)) { + // There is a quote character and there is no separator before the quote. + currentToken += StringPrototypeSubstring.call(altNames, offset, nextQuote); + const match = RegExpPrototypeExec.call(jsonStringPattern, StringPrototypeSubstring.call(altNames, nextQuote)); + if (!match) { + let error = new SyntaxError("ERR_TLS_CERT_ALTNAME_FORMAT: Invalid subject alternative name string"); + error.name = ERR_TLS_CERT_ALTNAME_FORMAT; + throw error; + } + currentToken += JSON.parse(match[0]); + offset = nextQuote + match[0].length; + } else if (nextSep !== -1) { + // There is a separator and no quote before it. + currentToken += StringPrototypeSubstring.call(altNames, offset, nextSep); + ArrayPrototypePush.call(result, currentToken); + currentToken = ""; + offset = nextSep + 2; + } else { + currentToken += StringPrototypeSubstring.call(altNames, offset); + offset = altNames.length; + } + } + ArrayPrototypePush.call(result, currentToken); + return result; +} +function checkServerIdentity(hostname, cert) { + const subject = cert.subject; + const altNames = cert.subjectaltname; + const dnsNames = []; + const ips = []; + + hostname = "" + hostname; + + if (altNames) { + const splitAltNames = StringPrototypeIncludes.call(altNames, '"') + ? splitEscapedAltNames(altNames) + : StringPrototypeSplit.call(altNames, ", "); + ArrayPrototypeForEach.call(splitAltNames, name => { + if (StringPrototypeStartsWith.call(name, "DNS:")) { + ArrayPrototypePush.call(dnsNames, StringPrototypeSlice.call(name, 4)); + } else if (StringPrototypeStartsWith.call(name, "IP Address:")) { + ArrayPrototypePush.call(ips, canonicalizeIP(StringPrototypeSlice.call(name, 11))); + } + }); + } + + let valid = false; + let reason = "Unknown reason"; + + hostname = unfqdn(hostname); // Remove trailing dot for error messages. + + if (net.isIP(hostname)) { + valid = ArrayPrototypeIncludes.call(ips, canonicalizeIP(hostname)); + if (!valid) reason = `IP: ${hostname} is not in the cert's list: ` + ArrayPrototypeJoin.call(ips, ", "); + } else if (dnsNames.length > 0 || subject?.CN) { + const hostParts = splitHost(hostname); + const wildcard = pattern => check(hostParts, pattern, true); + + if (dnsNames.length > 0) { + valid = ArrayPrototypeSome.call(dnsNames, wildcard); + if (!valid) reason = `Host: ${hostname}. is not in the cert's altnames: ${altNames}`; + } else { + // Match against Common Name only if no supported identifiers exist. + const cn = subject.CN; + + if (ArrayIsArray(cn)) valid = ArrayPrototypeSome.call(cn, wildcard); + else if (cn) valid = wildcard(cn); + + if (!valid) reason = `Host: ${hostname}. is not cert's CN: ${cn}`; + } + } else { + reason = "Cert does not contain a DNS name"; + } + + if (!valid) { + let error = new Error(`ERR_TLS_CERT_ALTNAME_INVALID: Hostname/IP does not match certificate's altnames: ${reason}`); + error.name = "ERR_TLS_CERT_ALTNAME_INVALID"; + error.reason = reason; + error.host = host; + error.cert = cert; + return error; + } +} + var InternalSecureContext = class SecureContext { context; @@ -83,6 +262,36 @@ function createSecureContext(options) { return new SecureContext(options); } +// Translate some fields from the handle's C-friendly format into more idiomatic +// javascript object representations before passing them back to the user. Can +// be used on any cert object, but changing the name would be semver-major. +function translatePeerCertificate(c) { + if (!c) return null; + + if (c.issuerCertificate != null && c.issuerCertificate !== c) { + c.issuerCertificate = translatePeerCertificate(c.issuerCertificate); + } + if (c.infoAccess != null) { + const info = c.infoAccess; + c.infoAccess = { __proto__: null }; + + // XXX: More key validation? + RegExpPrototypeSymbolReplace(/([^\n:]*):([^\n]*)(?:\n|$)/g, info, (all, key, val) => { + if (val.charCodeAt(0) === 0x22) { + // The translatePeerCertificate function is only + // used on internally created legacy certificate + // objects, and any value that contains a quote + // will always be a valid JSON string literal, + // so this should never throw. + val = JSONParse(val); + } + if (key in c.infoAccess) ArrayPrototypePush.call(c.infoAccess[key], val); + else c.infoAccess[key] = [val]; + }); + } + return c; +} + const buntls = Symbol.for("::buntls::"); var SocketClass; @@ -107,8 +316,22 @@ const TLSSocket = (function (InternalTLSSocket) { })( class TLSSocket extends InternalTCPSocket { #secureContext; - constructor(options) { - super(options); + ALPNProtocols; + #socket; + + constructor(socket, options) { + super(socket instanceof InternalTCPSocket ? options : options || socket); + options = options || socket || {}; + if (typeof options === "object") { + const { ALPNProtocols } = options; + if (ALPNProtocols) { + convertALPNProtocols(ALPNProtocols, this); + } + if (socket instanceof InternalTCPSocket) { + this.#socket = socket; + } + } + this.#secureContext = options.secureContext || createSecureContext(options); this.authorized = false; this.secureConnecting = true; @@ -123,28 +346,52 @@ const TLSSocket = (function (InternalTLSSocket) { secureConnecting = false; _SNICallback; servername; - alpnProtocol; authorized = false; authorizationError; encrypted = true; - exportKeyingMaterial() { - throw Error("Not implented in Bun yet"); + _start() { + // some frameworks uses this _start internal implementation is suposed to start TLS handshake + // on Bun we auto start this after on_open callback and when wrapping we start it after the socket is attached to the net.Socket/tls.Socket } - setMaxSendFragment() { + + exportKeyingMaterial(length, label, context) { + //SSL_export_keying_material throw Error("Not implented in Bun yet"); } - setServername() { + setMaxSendFragment(size) { + // SSL_set_max_send_fragment throw Error("Not implented in Bun yet"); } + setServername(name) { + if (this.isServer) { + let error = new Error("ERR_TLS_SNI_FROM_SERVER: Cannot issue SNI from a TLS server-side socket"); + error.name = "ERR_TLS_SNI_FROM_SERVER"; + throw error; + } + // if the socket is detached we can't set the servername but we set this property so when open will auto set to it + this.servername = name; + this[bunSocketInternal]?.setServername(name); + } setSession() { throw Error("Not implented in Bun yet"); } getPeerCertificate() { + // need to implement peerCertificate on socket.zig + // const cert = this[bunSocketInternal]?.peerCertificate; + // if(cert) { + // return translatePeerCertificate(cert); + // } throw Error("Not implented in Bun yet"); } getCertificate() { + // need to implement certificate on socket.zig + // const cert = this[bunSocketInternal]?.certificate; + // if(cert) { + // It's not a peer cert, but the formatting is identical. + // return translatePeerCertificate(cert); + // } throw Error("Not implented in Bun yet"); } getPeerX509Certificate() { @@ -154,16 +401,17 @@ const TLSSocket = (function (InternalTLSSocket) { throw Error("Not implented in Bun yet"); } - [buntls](port, host) { - var { servername } = this; - if (servername) { - return { - serverName: typeof servername === "string" ? servername : host, - ...this.#secureContext, - }; - } + get alpnProtocol() { + return this[bunSocketInternal]?.alpnProtocol; + } - return true; + [buntls](port, host) { + return { + socket: this.#socket, + ALPNProtocols: this.ALPNProtocols, + serverName: this.servername || host || "localhost", + ...this.#secureContext, + }; } }, ); @@ -177,9 +425,12 @@ class Server extends NetServer { _rejectUnauthorized; _requestCert; servername; + ALPNProtocols; + #checkServerIdentity; constructor(options, secureConnectionListener) { super(options, secureConnectionListener); + this.#checkServerIdentity = options?.checkServerIdentity || checkServerIdentity; this.setSecureContext(options); } emit(event, args) { @@ -197,6 +448,12 @@ class Server extends NetServer { options = options.context; } if (options) { + const { ALPNProtocols } = options; + + if (ALPNProtocols) { + convertALPNProtocols(ALPNProtocols, this); + } + let key = options.key; if (key) { if (!isValidTLSArray(key)) { @@ -277,6 +534,8 @@ class Server extends NetServer { // Client always is NONE on set_verify rejectUnauthorized: isClient ? false : this._rejectUnauthorized, requestCert: isClient ? false : this._requestCert, + ALPNProtocols: this.ALPNProtocols, + checkServerIdentity: this.#checkServerIdentity, }, SocketClass, ]; @@ -296,6 +555,11 @@ const CLIENT_RENEG_LIMIT = 3, DEFAULT_MAX_VERSION = "TLSv1.3", createConnection = (port, host, connectListener) => { if (typeof port === "object") { + port.checkServerIdentity || checkServerIdentity; + const { ALPNProtocols } = port; + if (ALPNProtocols) { + convertALPNProtocols(ALPNProtocols, port); + } // port is option pass Socket options and let connect handle connection options return new TLSSocket(port).connect(port, host, connectListener); } @@ -312,7 +576,55 @@ function getCurves() { return; } -function convertALPNProtocols(protocols, out) {} +// Convert protocols array into valid OpenSSL protocols list +// ("\x06spdy/2\x08http/1.1\x08http/1.0") +function convertProtocols(protocols) { + const lens = new Array(protocols.length); + const buff = Buffer.allocUnsafe( + ArrayPrototypeReduce.call( + protocols, + (p, c, i) => { + const len = Buffer.byteLength(c); + if (len > 255) { + throw new RangeError( + "The byte length of the protocol at index " + `${i} exceeds the maximum length.`, + "<= 255", + len, + true, + ); + } + lens[i] = len; + return p + 1 + len; + }, + 0, + ), + ); + + let offset = 0; + for (let i = 0, c = protocols.length; i < c; i++) { + buff[offset++] = lens[i]; + buff.write(protocols[i], offset); + offset += lens[i]; + } + + return buff; +} + +function convertALPNProtocols(protocols, out) { + // If protocols is Array - translate it into buffer + if (Array.isArray(protocols)) { + out.ALPNProtocols = convertProtocols(protocols); + } else if (isTypedArray(protocols)) { + // Copy new buffer not to be modified by user. + out.ALPNProtocols = Buffer.from(protocols); + } else if (isArrayBufferView(protocols)) { + out.ALPNProtocols = Buffer.from( + protocols.buffer.slice(protocols.byteOffset, protocols.byteOffset + protocols.byteLength), + ); + } else if (Buffer.isBuffer(protocols)) { + out.ALPNProtocols = protocols; + } +} var exports = { [Symbol.for("CommonJS")]: 0, @@ -351,6 +663,7 @@ export { getCurves, parseCertString, SecureContext, + checkServerIdentity, Server, TLSSocket, exports as default, diff --git a/src/js/out/modules/node/net.js b/src/js/out/modules/node/net.js index 164ec6677..c34f86b04 100644 --- a/src/js/out/modules/node/net.js +++ b/src/js/out/modules/node/net.js @@ -26,7 +26,7 @@ var isIPv4 = function(s) { self.emit("listening"); }, createServer = function(options, connectionListener) { return new Server(options, connectionListener); -}, v4Seg = "(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])", v4Str = `(${v4Seg}[.]){3}${v4Seg}`, IPv4Reg = new RegExp(`^${v4Str}$`), v6Seg = "(?:[0-9a-fA-F]{1,4})", IPv6Reg = new RegExp("^(" + `(?:${v6Seg}:){7}(?:${v6Seg}|:)|` + `(?:${v6Seg}:){6}(?:${v4Str}|:${v6Seg}|:)|` + `(?:${v6Seg}:){5}(?::${v4Str}|(:${v6Seg}){1,2}|:)|` + `(?:${v6Seg}:){4}(?:(:${v6Seg}){0,1}:${v4Str}|(:${v6Seg}){1,3}|:)|` + `(?:${v6Seg}:){3}(?:(:${v6Seg}){0,2}:${v4Str}|(:${v6Seg}){1,4}|:)|` + `(?:${v6Seg}:){2}(?:(:${v6Seg}){0,3}:${v4Str}|(:${v6Seg}){1,5}|:)|` + `(?:${v6Seg}:){1}(?:(:${v6Seg}){0,4}:${v4Str}|(:${v6Seg}){1,6}|:)|` + `(?::((?::${v6Seg}){0,5}:${v4Str}|(?::${v6Seg}){1,7}|:))` + ")(%[0-9a-zA-Z-.:]{1,})?$"), { Bun, createFIFO, Object } = globalThis[Symbol.for("Bun.lazy")]("primordials"), { connect: bunConnect } = Bun, { setTimeout } = globalThis, bunTlsSymbol = Symbol.for("::buntls::"), bunSocketServerHandlers = Symbol.for("::bunsocket_serverhandlers::"), bunSocketServerConnections = Symbol.for("::bunnetserverconnections::"), bunSocketServerOptions = Symbol.for("::bunnetserveroptions::"), SocketClass, Socket = function(InternalSocket) { +}, v4Seg = "(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])", v4Str = `(${v4Seg}[.]){3}${v4Seg}`, IPv4Reg = new RegExp(`^${v4Str}$`), v6Seg = "(?:[0-9a-fA-F]{1,4})", IPv6Reg = new RegExp("^(" + `(?:${v6Seg}:){7}(?:${v6Seg}|:)|` + `(?:${v6Seg}:){6}(?:${v4Str}|:${v6Seg}|:)|` + `(?:${v6Seg}:){5}(?::${v4Str}|(:${v6Seg}){1,2}|:)|` + `(?:${v6Seg}:){4}(?:(:${v6Seg}){0,1}:${v4Str}|(:${v6Seg}){1,3}|:)|` + `(?:${v6Seg}:){3}(?:(:${v6Seg}){0,2}:${v4Str}|(:${v6Seg}){1,4}|:)|` + `(?:${v6Seg}:){2}(?:(:${v6Seg}){0,3}:${v4Str}|(:${v6Seg}){1,5}|:)|` + `(?:${v6Seg}:){1}(?:(:${v6Seg}){0,4}:${v4Str}|(:${v6Seg}){1,6}|:)|` + `(?::((?::${v6Seg}){0,5}:${v4Str}|(?::${v6Seg}){1,7}|:))` + ")(%[0-9a-zA-Z-.:]{1,})?$"), { Bun, createFIFO, Object } = globalThis[Symbol.for("Bun.lazy")]("primordials"), { connect: bunConnect } = Bun, { setTimeout } = globalThis, bunTlsSymbol = Symbol.for("::buntls::"), bunSocketServerHandlers = Symbol.for("::bunsocket_serverhandlers::"), bunSocketServerConnections = Symbol.for("::bunnetserverconnections::"), bunSocketServerOptions = Symbol.for("::bunnetserveroptions::"), bunSocketInternal = Symbol.for("::bunnetsocketinternal::"), SocketClass, Socket = function(InternalSocket) { return SocketClass = InternalSocket, Object.defineProperty(SocketClass.prototype, Symbol.toStringTag, { value: "Socket", enumerable: !1 @@ -62,7 +62,7 @@ var isIPv4 = function(s) { }, open(socket) { const self = socket.data; - socket.timeout(self.timeout), socket.ref(), self.#socket = socket, self.connecting = !1, self.emit("connect", self), Socket2.#Drain(socket); + socket.timeout(self.timeout), socket.ref(), self[bunSocketInternal] = socket, self.connecting = !1, self.emit("connect", self), Socket2.#Drain(socket); }, handshake(socket, success, verifyError) { const { data: self } = socket; @@ -87,7 +87,7 @@ var isIPv4 = function(s) { const self = socket.data; if (self.#closed) return; - self.#closed = !0, self.#socket = null; + self.#closed = !0, self[bunSocketInternal] = null; const queue = self.#readQueue; if (queue.isEmpty()) { if (self.push(null)) @@ -163,21 +163,27 @@ var isIPv4 = function(s) { localAddress = "127.0.0.1"; #readQueue = createFIFO(); remotePort; - #socket; + [bunSocketInternal] = null; timeout = 0; #writeCallback; #writeChunk; #pendingRead; isServer = !1; + _handle; + _parent; + _parentWrap; + #socket; constructor(options) { - const { signal, write, read, allowHalfOpen = !1, ...opts } = options || {}; + const { socket, signal, write, read, allowHalfOpen = !1, ...opts } = options || {}; super({ ...opts, allowHalfOpen, readable: !0, writable: !0 }); - this.#pendingRead = void 0, signal?.once("abort", () => this.destroy()), this.once("connect", () => this.emit("ready")); + if (this._handle = this, this._parent = this, this._parentWrap = this, this.#pendingRead = void 0, socket instanceof Socket2) + this.#socket = socket; + signal?.once("abort", () => this.destroy()), this.once("connect", () => this.emit("ready")); } address() { return { @@ -190,10 +196,10 @@ var isIPv4 = function(s) { return this.writableLength; } #attach(port, socket) { - this.remotePort = port, socket.data = this, socket.timeout(this.timeout), socket.ref(), this.#socket = socket, this.connecting = !1, this.emit("connect", this), Socket2.#Drain(socket); + this.remotePort = port, socket.data = this, socket.timeout(this.timeout), socket.ref(), this[bunSocketInternal] = socket, this.connecting = !1, this.emit("connect", this), Socket2.#Drain(socket); } connect(port, host, connectListener) { - var path; + var path, connection = this.#socket; if (typeof port === "string") { if (path = port, port = void 0, typeof host === "function") connectListener = host, host = void 0; @@ -207,6 +213,7 @@ var isIPv4 = function(s) { port, host, path, + socket, localAddress, localPort, family, @@ -220,7 +227,8 @@ var isIPv4 = function(s) { pauseOnConnect, servername } = port; - this.servername = servername; + if (this.servername = servername, socket) + connection = socket; } if (!pauseOnConnect) this.resume(); @@ -228,36 +236,78 @@ var isIPv4 = function(s) { const bunTLS = this[bunTlsSymbol]; var tls = void 0; if (typeof bunTLS === "function") { - if (tls = bunTLS.call(this, port, host, !0), this._requestCert = !0, this._rejectUnauthorized = rejectUnauthorized, tls) + if (tls = bunTLS.call(this, port, host, !0), this._requestCert = !0, this._rejectUnauthorized = rejectUnauthorized, tls) { if (typeof tls !== "object") tls = { rejectUnauthorized, requestCert: !0 }; - else - tls.rejectUnauthorized = rejectUnauthorized, tls.requestCert = !0; + else if (tls.rejectUnauthorized = rejectUnauthorized, tls.requestCert = !0, !connection && tls.socket) + connection = tls.socket; + } + if (connection) { + if (typeof connection !== "object" || !(connection instanceof Socket2) || typeof connection[bunTlsSymbol] === "function") + throw new TypeError("socket must be an instance of net.Socket"); + } if (this.authorized = !1, this.secureConnecting = !0, this._secureEstablished = !1, this._securePending = !0, connectListener) this.on("secureConnect", connectListener); } else if (connectListener) this.on("connect", connectListener); - return bunConnect(path ? { - data: this, - unix: path, - socket: Socket2.#Handlers, - tls - } : { - data: this, - hostname: host || "localhost", - port, - socket: Socket2.#Handlers, - tls - }), this; + if (connection) { + const socket2 = connection[bunSocketInternal]; + if (socket2) { + const result = socket2.wrapTLS({ + data: this, + tls, + socket: Socket2.#Handlers + }); + if (result) { + const [raw, tls2] = result; + connection[bunSocketInternal] = raw, raw.timeout(raw.timeout), raw.connecting = !1, this[bunSocketInternal] = tls2, tls2.timeout(tls2.timeout), tls2.connecting = !0, this[bunSocketInternal] = socket2, tls2.open(); + } else + throw this[bunSocketInternal] = null, new Error("Invalid socket"); + } else + connection.once("connect", () => { + const socket3 = connection[bunSocketInternal]; + if (!socket3) + return; + const result = socket3.wrapTLS({ + data: this, + tls, + socket: Socket2.#Handlers + }); + if (result) { + const [raw, tls2] = result; + connection[bunSocketInternal] = raw, raw.timeout(raw.timeout), raw.connecting = !1, this[bunSocketInternal] = tls2, tls2.timeout(tls2.timeout), tls2.connecting = !0, this[bunSocketInternal] = socket3, tls2.open(); + } else + throw this[bunSocketInternal] = null, new Error("Invalid socket"); + }); + } else if (path) + bunConnect({ + data: this, + unix: path, + socket: Socket2.#Handlers, + tls + }).catch((error) => { + this.emit("error", error); + }); + else + bunConnect({ + data: this, + hostname: host || "localhost", + port, + socket: Socket2.#Handlers, + tls + }).catch((error) => { + this.emit("error", error); + }); + return this; } _destroy(err, callback) { - this.#socket?.end(), callback(err); + this[bunSocketInternal]?.end(), callback(err); } _final(callback) { - this.#socket?.end(), callback(); + this[bunSocketInternal]?.end(), callback(); } get localAddress() { return "127.0.0.1"; @@ -266,7 +316,7 @@ var isIPv4 = function(s) { return "IPv4"; } get localPort() { - return this.#socket?.localPort; + return this[bunSocketInternal]?.localPort; } get pending() { return this.connecting; @@ -289,16 +339,16 @@ var isIPv4 = function(s) { return this.writable ? "writeOnly" : "closed"; } ref() { - this.#socket?.ref(); + this[bunSocketInternal]?.ref(); } get remoteAddress() { - return this.#socket?.remoteAddress; + return this[bunSocketInternal]?.remoteAddress; } get remoteFamily() { return "IPv4"; } resetAndDestroy() { - this.#socket?.end(); + this[bunSocketInternal]?.end(); } setKeepAlive(enable = !1, initialDelay = 0) { return this; @@ -307,17 +357,17 @@ var isIPv4 = function(s) { return this; } setTimeout(timeout, callback) { - if (this.#socket?.timeout(timeout), this.timeout = timeout, callback) + if (this[bunSocketInternal]?.timeout(timeout), this.timeout = timeout, callback) this.once("timeout", callback); return this; } unref() { - this.#socket?.unref(); + this[bunSocketInternal]?.unref(); } _write(chunk, encoding, callback) { - if (typeof chunk == "string" && encoding !== "utf8") + if (typeof chunk == "string" && encoding !== "ascii") chunk = Buffer.from(chunk, encoding); - var written = this.#socket?.write(chunk); + var written = this[bunSocketInternal]?.write(chunk); if (written == chunk.length) callback(); else if (this.#writeCallback) diff --git a/src/js/out/modules/node/tls.js b/src/js/out/modules/node/tls.js index 4cceadc7f..ca8a13270 100644 --- a/src/js/out/modules/node/tls.js +++ b/src/js/out/modules/node/tls.js @@ -1,4 +1,4 @@ -import {isTypedArray} from "node:util/types"; +import {isArrayBufferView, isTypedArray} from "node:util/types"; import net, {Server as NetServer} from "node:net"; var parseCertString = function() { throwNotImplemented("Not implemented"); @@ -11,18 +11,127 @@ var parseCertString = function() { return !1; return !0; } +}, unfqdn = function(host2) { + return RegExpPrototypeSymbolReplace(/[.]$/, host2, ""); +}, splitHost = function(host2) { + return StringPrototypeSplit.call(RegExpPrototypeSymbolReplace(/[A-Z]/g, unfqdn(host2), toLowerCase), "."); +}, check = function(hostParts, pattern, wildcards) { + if (!pattern) + return !1; + const patternParts = splitHost(pattern); + if (hostParts.length !== patternParts.length) + return !1; + if (ArrayPrototypeIncludes.call(patternParts, "")) + return !1; + const isBad = (s) => RegExpPrototypeExec.call(/[^\u0021-\u007F]/u, s) !== null; + if (ArrayPrototypeSome.call(patternParts, isBad)) + return !1; + for (let i = hostParts.length - 1;i > 0; i -= 1) + if (hostParts[i] !== patternParts[i]) + return !1; + const hostSubdomain = hostParts[0], patternSubdomain = patternParts[0], patternSubdomainParts = StringPrototypeSplit.call(patternSubdomain, "*"); + if (patternSubdomainParts.length === 1 || StringPrototypeIncludes.call(patternSubdomain, "xn--")) + return hostSubdomain === patternSubdomain; + if (!wildcards) + return !1; + if (patternSubdomainParts.length > 2) + return !1; + if (patternParts.length <= 2) + return !1; + const { 0: prefix, 1: suffix } = patternSubdomainParts; + if (prefix.length + suffix.length > hostSubdomain.length) + return !1; + if (!StringPrototypeStartsWith.call(hostSubdomain, prefix)) + return !1; + if (!StringPrototypeEndsWith.call(hostSubdomain, suffix)) + return !1; + return !0; +}, splitEscapedAltNames = function(altNames) { + const result = []; + let currentToken = "", offset = 0; + while (offset !== altNames.length) { + const nextSep = StringPrototypeIndexOf.call(altNames, ", ", offset), nextQuote = StringPrototypeIndexOf.call(altNames, '"', offset); + if (nextQuote !== -1 && (nextSep === -1 || nextQuote < nextSep)) { + currentToken += StringPrototypeSubstring.call(altNames, offset, nextQuote); + const match = RegExpPrototypeExec.call(jsonStringPattern, StringPrototypeSubstring.call(altNames, nextQuote)); + if (!match) { + let error = new SyntaxError("ERR_TLS_CERT_ALTNAME_FORMAT: Invalid subject alternative name string"); + throw error.name = ERR_TLS_CERT_ALTNAME_FORMAT, error; + } + currentToken += JSON.parse(match[0]), offset = nextQuote + match[0].length; + } else if (nextSep !== -1) + currentToken += StringPrototypeSubstring.call(altNames, offset, nextSep), ArrayPrototypePush.call(result, currentToken), currentToken = "", offset = nextSep + 2; + else + currentToken += StringPrototypeSubstring.call(altNames, offset), offset = altNames.length; + } + return ArrayPrototypePush.call(result, currentToken), result; +}, checkServerIdentity = function(hostname, cert) { + const { subject, subjectaltname: altNames } = cert, dnsNames = [], ips = []; + if (hostname = "" + hostname, altNames) { + const splitAltNames = StringPrototypeIncludes.call(altNames, '"') ? splitEscapedAltNames(altNames) : StringPrototypeSplit.call(altNames, ", "); + ArrayPrototypeForEach.call(splitAltNames, (name) => { + if (StringPrototypeStartsWith.call(name, "DNS:")) + ArrayPrototypePush.call(dnsNames, StringPrototypeSlice.call(name, 4)); + else if (StringPrototypeStartsWith.call(name, "IP Address:")) + ArrayPrototypePush.call(ips, canonicalizeIP(StringPrototypeSlice.call(name, 11))); + }); + } + let valid = !1, reason = "Unknown reason"; + if (hostname = unfqdn(hostname), net.isIP(hostname)) { + if (valid = ArrayPrototypeIncludes.call(ips, canonicalizeIP(hostname)), !valid) + reason = `IP: ${hostname} is not in the cert's list: ` + ArrayPrototypeJoin.call(ips, ", "); + } else if (dnsNames.length > 0 || subject?.CN) { + const hostParts = splitHost(hostname), wildcard = (pattern) => check(hostParts, pattern, !0); + if (dnsNames.length > 0) { + if (valid = ArrayPrototypeSome.call(dnsNames, wildcard), !valid) + reason = `Host: ${hostname}. is not in the cert's altnames: ${altNames}`; + } else { + const cn = subject.CN; + if (ArrayIsArray(cn)) + valid = ArrayPrototypeSome.call(cn, wildcard); + else if (cn) + valid = wildcard(cn); + if (!valid) + reason = `Host: ${hostname}. is not cert's CN: ${cn}`; + } + } else + reason = "Cert does not contain a DNS name"; + if (!valid) { + let error = new Error(`ERR_TLS_CERT_ALTNAME_INVALID: Hostname/IP does not match certificate's altnames: ${reason}`); + return error.name = "ERR_TLS_CERT_ALTNAME_INVALID", error.reason = reason, error.host = host, error.cert = cert, error; + } }, SecureContext = function(options) { return new InternalSecureContext(options); }, createSecureContext = function(options) { return new SecureContext(options); -}, createServer = function(options, connectionListener) { +}; +var createServer = function(options, connectionListener) { return new Server(options, connectionListener); }, getCiphers = function() { return DEFAULT_CIPHERS.split(":"); }, getCurves = function() { return; +}, convertProtocols = function(protocols) { + const lens = new Array(protocols.length), buff = Buffer.allocUnsafe(ArrayPrototypeReduce.call(protocols, (p, c, i) => { + const len = Buffer.byteLength(c); + if (len > 255) + throw new RangeError("The byte length of the protocol at index " + `${i} exceeds the maximum length.`, "<= 255", len, !0); + return lens[i] = len, p + 1 + len; + }, 0)); + let offset = 0; + for (let i = 0, c = protocols.length;i < c; i++) + buff[offset++] = lens[i], buff.write(protocols[i], offset), offset += lens[i]; + return buff; }, convertALPNProtocols = function(protocols, out) { -}, InternalTCPSocket = net[Symbol.for("::bunternal::")], InternalSecureContext = class SecureContext2 { + if (Array.isArray(protocols)) + out.ALPNProtocols = convertProtocols(protocols); + else if (isTypedArray(protocols)) + out.ALPNProtocols = Buffer.from(protocols); + else if (isArrayBufferView(protocols)) + out.ALPNProtocols = Buffer.from(protocols.buffer.slice(protocols.byteOffset, protocols.byteOffset + protocols.byteLength)); + else if (Buffer.isBuffer(protocols)) + out.ALPNProtocols = protocols; +}, InternalTCPSocket = net[Symbol.for("::bunternal::")], bunSocketInternal = Symbol.for("::bunnetsocketinternal::"), { RegExp, Array, String } = globalThis[Symbol.for("Bun.lazy")]("primordials"), SymbolReplace = Symbol.replace, RegExpPrototypeSymbolReplace = RegExp.prototype[SymbolReplace], RegExpPrototypeExec = RegExp.prototype.exec, StringPrototypeStartsWith = String.prototype.startsWith, StringPrototypeSlice = String.prototype.slice, StringPrototypeIncludes = String.prototype.includes, StringPrototypeSplit = String.prototype.split, StringPrototypeIndexOf = String.prototype.indexOf, StringPrototypeSubstring = String.prototype.substring, StringPrototypeEndsWith = String.prototype.endsWith, ArrayPrototypeIncludes = Array.prototype.includes, ArrayPrototypeJoin = Array.prototype.join, ArrayPrototypeForEach = Array.prototype.forEach, ArrayPrototypePush = Array.prototype.push, ArrayPrototypeSome = Array.prototype.some, ArrayPrototypeReduce = Array.prototype.reduce, jsonStringPattern = /^"(?:[^"\\\u0000-\u001f]|\\(?:["\\/bfnrt]|u[0-9a-fA-F]{4}))*"/, InternalSecureContext = class SecureContext2 { context; constructor(options) { const context = {}; @@ -73,8 +182,17 @@ var parseCertString = function() { }); }(class TLSSocket2 extends InternalTCPSocket { #secureContext; - constructor(options) { - super(options); + ALPNProtocols; + #socket; + constructor(socket, options) { + super(socket instanceof InternalTCPSocket ? options : options || socket); + if (options = options || socket || {}, typeof options === "object") { + const { ALPNProtocols } = options; + if (ALPNProtocols) + convertALPNProtocols(ALPNProtocols, this); + if (socket instanceof InternalTCPSocket) + this.#socket = socket; + } this.#secureContext = options.secureContext || createSecureContext(options), this.authorized = !1, this.secureConnecting = !0, this._secureEstablished = !1, this._securePending = !0; } _secureEstablished = !1; @@ -84,19 +202,24 @@ var parseCertString = function() { secureConnecting = !1; _SNICallback; servername; - alpnProtocol; authorized = !1; authorizationError; encrypted = !0; - exportKeyingMaterial() { - throw Error("Not implented in Bun yet"); + _start() { } - setMaxSendFragment() { + exportKeyingMaterial(length, label, context) { throw Error("Not implented in Bun yet"); } - setServername() { + setMaxSendFragment(size) { throw Error("Not implented in Bun yet"); } + setServername(name) { + if (this.isServer) { + let error = new Error("ERR_TLS_SNI_FROM_SERVER: Cannot issue SNI from a TLS server-side socket"); + throw error.name = "ERR_TLS_SNI_FROM_SERVER", error; + } + this.servername = name, this[bunSocketInternal]?.setServername(name); + } setSession() { throw Error("Not implented in Bun yet"); } @@ -112,14 +235,16 @@ var parseCertString = function() { getX509Certificate() { throw Error("Not implented in Bun yet"); } - [buntls](port, host) { - var { servername } = this; - if (servername) - return { - serverName: typeof servername === "string" ? servername : host, - ...this.#secureContext - }; - return !0; + get alpnProtocol() { + return this[bunSocketInternal]?.alpnProtocol; + } + [buntls](port, host2) { + return { + socket: this.#socket, + ALPNProtocols: this.ALPNProtocols, + serverName: this.servername || host2 || "localhost", + ...this.#secureContext + }; } }); @@ -132,9 +257,11 @@ class Server extends NetServer { _rejectUnauthorized; _requestCert; servername; + ALPNProtocols; + #checkServerIdentity; constructor(options, secureConnectionListener) { super(options, secureConnectionListener); - this.setSecureContext(options); + this.#checkServerIdentity = options?.checkServerIdentity || checkServerIdentity, this.setSecureContext(options); } emit(event, args) { if (super.emit(event, args), event === "connection") @@ -146,6 +273,9 @@ class Server extends NetServer { if (options instanceof InternalSecureContext) options = options.context; if (options) { + const { ALPNProtocols } = options; + if (ALPNProtocols) + convertALPNProtocols(ALPNProtocols, this); let key = options.key; if (key) { if (!isValidTLSArray(key)) @@ -194,26 +324,33 @@ class Server extends NetServer { setTicketKeys() { throw Error("Not implented in Bun yet"); } - [buntls](port, host, isClient) { + [buntls](port, host2, isClient) { return [ { - serverName: this.servername || host || "localhost", + serverName: this.servername || host2 || "localhost", key: this.key, cert: this.cert, ca: this.ca, passphrase: this.passphrase, secureOptions: this.secureOptions, rejectUnauthorized: isClient ? !1 : this._rejectUnauthorized, - requestCert: isClient ? !1 : this._requestCert + requestCert: isClient ? !1 : this._requestCert, + ALPNProtocols: this.ALPNProtocols, + checkServerIdentity: this.#checkServerIdentity }, SocketClass ]; } } -var CLIENT_RENEG_LIMIT = 3, CLIENT_RENEG_WINDOW = 600, DEFAULT_ECDH_CURVE = "auto", DEFAULT_CIPHERS = "DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256", DEFAULT_MIN_VERSION = "TLSv1.2", DEFAULT_MAX_VERSION = "TLSv1.3", createConnection = (port, host, connectListener) => { - if (typeof port === "object") - return new TLSSocket(port).connect(port, host, connectListener); - return new TLSSocket().connect(port, host, connectListener); +var CLIENT_RENEG_LIMIT = 3, CLIENT_RENEG_WINDOW = 600, DEFAULT_ECDH_CURVE = "auto", DEFAULT_CIPHERS = "DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256", DEFAULT_MIN_VERSION = "TLSv1.2", DEFAULT_MAX_VERSION = "TLSv1.3", createConnection = (port, host2, connectListener) => { + if (typeof port === "object") { + port.checkServerIdentity; + const { ALPNProtocols } = port; + if (ALPNProtocols) + convertALPNProtocols(ALPNProtocols, port); + return new TLSSocket(port).connect(port, host2, connectListener); + } + return new TLSSocket().connect(port, host2, connectListener); }, connect = createConnection, exports = { [Symbol.for("CommonJS")]: 0, CLIENT_RENEG_LIMIT, @@ -244,6 +381,7 @@ export { createConnection, convertALPNProtocols, connect, + checkServerIdentity, TLSSocket, Server, SecureContext, diff --git a/test/bun.lockb b/test/bun.lockb index f30ca197a..e3a2abdfa 100755 Binary files a/test/bun.lockb and b/test/bun.lockb differ diff --git a/test/js/node/net/node-net-server.test.ts b/test/js/node/net/node-net-server.test.ts index 398959bd6..3cdaa17e1 100644 --- a/test/js/node/net/node-net-server.test.ts +++ b/test/js/node/net/node-net-server.test.ts @@ -181,61 +181,6 @@ describe("net.createServer listen", () => { ); }); - it("should listen on the correct port", done => { - const { mustCall, mustNotCall } = createCallCheckCtx(done); - - const server: Server = createServer(); - - let timeout: Timer; - const closeAndFail = () => { - clearTimeout(timeout); - server.close(); - mustNotCall()(); - }; - server.on("error", closeAndFail); - timeout = setTimeout(closeAndFail, 100); - - server.listen( - 49027, - mustCall(() => { - const address = server.address() as AddressInfo; - expect(address.address).toStrictEqual("::"); - expect(address.port).toStrictEqual(49027); - expect(address.family).toStrictEqual("IPv6"); - server.close(); - done(); - }), - ); - }); - - it("should listen on the correct port with IPV4", done => { - const { mustCall, mustNotCall } = createCallCheckCtx(done); - - const server: Server = createServer(); - - let timeout: Timer; - const closeAndFail = () => { - clearTimeout(timeout); - server.close(); - mustNotCall()(); - }; - server.on("error", closeAndFail); - timeout = setTimeout(closeAndFail, 100); - - server.listen( - 49026, - "0.0.0.0", - mustCall(() => { - const address = server.address() as AddressInfo; - expect(address.address).toStrictEqual("0.0.0.0"); - expect(address.port).toStrictEqual(49026); - expect(address.family).toStrictEqual("IPv4"); - server.close(); - done(); - }), - ); - }); - it("should listen on unix domain socket", done => { const { mustCall, mustNotCall } = createCallCheckCtx(done); diff --git a/test/js/node/tls/node-tls-connect.test.ts b/test/js/node/tls/node-tls-connect.test.ts new file mode 100644 index 000000000..791dba88a --- /dev/null +++ b/test/js/node/tls/node-tls-connect.test.ts @@ -0,0 +1,32 @@ +import { TLSSocket, connect } from "tls"; + +it("should work with alpnProtocols", done => { + try { + let socket: TLSSocket | null = connect({ + ALPNProtocols: ["http/1.1"], + host: "bun.sh", + servername: "bun.sh", + port: 443, + rejectUnauthorized: false, + }); + + const timeout = setTimeout(() => { + socket?.end(); + done("timeout"); + }, 3000); + + socket.on("error", err => { + clearTimeout(timeout); + done(err); + }); + + socket.on("secureConnect", () => { + clearTimeout(timeout); + done(socket?.alpnProtocol === "http/1.1" ? undefined : "alpnProtocol is not http/1.1"); + socket?.end(); + socket = null; + }); + } catch (err) { + done(err); + } +}); diff --git a/test/js/node/tls/node-tls-server.test.ts b/test/js/node/tls/node-tls-server.test.ts index 6879d0927..2a6101b9f 100644 --- a/test/js/node/tls/node-tls-server.test.ts +++ b/test/js/node/tls/node-tls-server.test.ts @@ -195,61 +195,6 @@ describe("tls.createServer listen", () => { ); }); - it("should listen on the correct port", done => { - const { mustCall, mustNotCall } = createCallCheckCtx(done); - - const server: Server = createServer(COMMON_CERT); - - let timeout: Timer; - const closeAndFail = () => { - clearTimeout(timeout); - server.close(); - mustNotCall()(); - }; - server.on("error", closeAndFail); - timeout = setTimeout(closeAndFail, 100); - - server.listen( - 49027, - mustCall(() => { - const address = server.address() as AddressInfo; - expect(address.address).toStrictEqual("::"); - expect(address.port).toStrictEqual(49027); - expect(address.family).toStrictEqual("IPv6"); - server.close(); - done(); - }), - ); - }); - - it("should listen on the correct port with IPV4", done => { - const { mustCall, mustNotCall } = createCallCheckCtx(done); - - const server: Server = createServer(COMMON_CERT); - - let timeout: Timer; - const closeAndFail = () => { - clearTimeout(timeout); - server.close(); - mustNotCall()(); - }; - server.on("error", closeAndFail); - timeout = setTimeout(closeAndFail, 100); - - server.listen( - 49026, - "0.0.0.0", - mustCall(() => { - const address = server.address() as AddressInfo; - expect(address.address).toStrictEqual("0.0.0.0"); - expect(address.port).toStrictEqual(49026); - expect(address.family).toStrictEqual("IPv4"); - server.close(); - done(); - }), - ); - }); - it("should listen on unix domain socket", done => { const { mustCall, mustNotCall } = createCallCheckCtx(done); diff --git a/test/js/third_party/nodemailer/nodemailer.test.ts b/test/js/third_party/nodemailer/nodemailer.test.ts new file mode 100644 index 000000000..265112608 --- /dev/null +++ b/test/js/third_party/nodemailer/nodemailer.test.ts @@ -0,0 +1,15 @@ +import { test, expect, describe } from "bun:test"; +import { bunRun } from "harness"; +import path from "path"; + +describe("nodemailer", () => { + test("basic smtp", async () => { + try { + const info = bunRun(path.join(import.meta.dir, "process-nodemailer-fixture.js")); + expect(info.stdout).toBe("true"); + expect(info.stderr || "").toBe(""); + } catch (err: any) { + expect(err?.message || err).toBe(""); + } + }, 10000); +}); diff --git a/test/js/third_party/nodemailer/package.json b/test/js/third_party/nodemailer/package.json new file mode 100644 index 000000000..08e98074f --- /dev/null +++ b/test/js/third_party/nodemailer/package.json @@ -0,0 +1,6 @@ +{ + "name": "nodemailer", + "dependencies": { + "nodemailer": "6.9.3" + } +} diff --git a/test/js/third_party/nodemailer/process-nodemailer-fixture.js b/test/js/third_party/nodemailer/process-nodemailer-fixture.js new file mode 100644 index 000000000..a54735f26 --- /dev/null +++ b/test/js/third_party/nodemailer/process-nodemailer-fixture.js @@ -0,0 +1,23 @@ +import nodemailer from "nodemailer"; +const account = await nodemailer.createTestAccount(); +const transporter = nodemailer.createTransport({ + host: account.smtp.host, + port: account.smtp.port, + secure: account.smtp.secure, + auth: { + user: account.user, // generated ethereal user + pass: account.pass, // generated ethereal password + }, +}); + +// send mail with defined transport object +let info = await transporter.sendMail({ + from: '"Fred Foo 👻" ', // sender address + to: "example@gmail.com", // list of receivers + subject: "Hello ✔", // Subject line + text: "Hello world?", // plain text body + html: "Hello world?", // html body +}); +const url = nodemailer.getTestMessageUrl(info); +console.log(typeof url === "string" && url.length > 0); +transporter.close(); diff --git a/test/js/web/timers/process-setImmediate-fixture.js b/test/js/web/timers/process-setImmediate-fixture.js new file mode 100644 index 000000000..6ffd91c8d --- /dev/null +++ b/test/js/web/timers/process-setImmediate-fixture.js @@ -0,0 +1,9 @@ +setImmediate(() => { + console.log("setImmediate"); + return { + a: 1, + b: 2, + c: 3, + d: 4, + }; +}); diff --git a/test/js/web/timers/setImmediate.test.js b/test/js/web/timers/setImmediate.test.js index 9cd6fa1c9..d00224e0f 100644 --- a/test/js/web/timers/setImmediate.test.js +++ b/test/js/web/timers/setImmediate.test.js @@ -1,4 +1,6 @@ import { it, expect } from "bun:test"; +import { bunExe, bunEnv } from "harness"; +import path from "path"; it("setImmediate", async () => { var lastID = -1; @@ -45,3 +47,28 @@ it("clearImmediate", async () => { }); expect(called).toBe(false); }); + +it("setImmediate should not keep the process alive forever", async () => { + let process = null; + const success = async () => { + process = Bun.spawn({ + cmd: [bunExe(), "run", path.join(import.meta.dir, "process-setImmediate-fixture.js")], + stdout: "ignore", + env: { + ...bunEnv, + NODE_ENV: undefined, + }, + }); + await process.exited; + process = null; + return true; + }; + + const fail = async () => { + await Bun.sleep(500); + process?.kill(); + return false; + }; + + expect(await Promise.race([success(), fail()])).toBe(true); +}); diff --git a/test/package.json b/test/package.json index 116571879..db0053874 100644 --- a/test/package.json +++ b/test/package.json @@ -16,9 +16,10 @@ "iconv-lite": "0.6.3", "jest-extended": "4.0.0", "lodash": "4.17.21", + "nodemailer": "6.9.3", "prisma": "4.15.0", - "socket.io": "4.6.1", - "socket.io-client": "4.6.1", + "socket.io": "4.7.1", + "socket.io-client": "4.7.1", "supertest": "6.1.6", "svelte": "3.55.1", "typescript": "5.0.2", -- cgit v1.2.3 From 034577c9dad2486324e3bd65907794dd9a3ee217 Mon Sep 17 00:00:00 2001 From: Ciro Spaciari Date: Mon, 3 Jul 2023 18:08:49 -0300 Subject: [fix] patch fs.watch sym link (#3481) * oopsie * add tests --------- Co-authored-by: Jarred Sumner --- src/bun.js/node/node_fs_watcher.zig | 2 +- test/js/node/watch/fs.watch.test.js | 55 +++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 1 deletion(-) (limited to 'test/js') diff --git a/src/bun.js/node/node_fs_watcher.zig b/src/bun.js/node/node_fs_watcher.zig index b1f4ec8a9..d0af350c0 100644 --- a/src/bun.js/node/node_fs_watcher.zig +++ b/src/bun.js/node/node_fs_watcher.zig @@ -802,7 +802,7 @@ pub const FSWatcher = struct { result.fd = file.handle; const _stat = try file.stat(); - result.is_file = _stat.kind == .directory; + result.is_file = _stat.kind != .directory; }, .directory => { const dir = (try std.fs.openIterableDirAbsoluteZ(absolute_path_z, .{ diff --git a/test/js/node/watch/fs.watch.test.js b/test/js/node/watch/fs.watch.test.js index 33d05df29..faf6a8546 100644 --- a/test/js/node/watch/fs.watch.test.js +++ b/test/js/node/watch/fs.watch.test.js @@ -19,6 +19,8 @@ const testDir = tempDirWithFiles("watch", { "url.txt": "hello", "close.txt": "hello", "close-close.txt": "hello", + "sym-sync.txt": "hello", + "sym.txt": "hello", [encodingFileName]: "hello", }); @@ -341,6 +343,36 @@ describe("fs.watch", () => { watcher.once("close", () => reject()); }); }); + + test("should work with symlink", async () => { + const filepath = path.join(testDir, "sym-symlink2.txt"); + await fs.promises.symlink(path.join(testDir, "sym-sync.txt"), filepath); + + const interval = repeat(() => { + fs.writeFileSync(filepath, "hello"); + }); + + const promise = new Promise((resolve, reject) => { + let timeout = null; + const watcher = fs.watch(filepath, event => { + clearTimeout(timeout); + clearInterval(interval); + try { + resolve(event); + } catch (e) { + reject(e); + } finally { + watcher.close(); + } + }); + setTimeout(() => { + clearInterval(interval); + watcher?.close(); + reject("timeout"); + }, 3000); + }); + expect(promise).resolves.toBe("change"); + }); }); describe("fs.promises.watch", () => { @@ -464,4 +496,27 @@ describe("fs.promises.watch", () => { } })(); }); + + test("should work with symlink", async () => { + const filepath = path.join(testDir, "sym-symlink.txt"); + await fs.promises.symlink(path.join(testDir, "sym.txt"), filepath); + + const watcher = fs.promises.watch(filepath); + const interval = repeat(() => { + fs.writeFileSync(filepath, "hello"); + }); + + const promise = (async () => { + try { + for await (const event of watcher) { + return event.eventType; + } + } catch (e) { + expect("unreacheable").toBe(false); + } finally { + clearInterval(interval); + } + })(); + expect(promise).resolves.toBe("change"); + }); }); -- cgit v1.2.3 From b26b0d886ce2f9898833e8efa16b71952c39b615 Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Mon, 3 Jul 2023 15:56:58 -0700 Subject: Fix napi bug --- src/napi/napi.zig | 42 +++++++++++++++++++++++-------- test/js/third_party/prisma/prisma.test.ts | 2 +- 2 files changed, 32 insertions(+), 12 deletions(-) (limited to 'test/js') diff --git a/src/napi/napi.zig b/src/napi/napi.zig index d9c7b5993..dc2cb602e 100644 --- a/src/napi/napi.zig +++ b/src/napi/napi.zig @@ -340,18 +340,22 @@ inline fn maybeAppendNull(ptr: anytype, doit: bool) void { ptr.* = 0; } } -pub export fn napi_get_value_string_latin1(env: napi_env, value: napi_value, buf_ptr: [*c]u8, bufsize: usize, result: *usize) napi_status { +pub export fn napi_get_value_string_latin1(env: napi_env, value: napi_value, buf_ptr: [*c]u8, bufsize: usize, result_ptr: ?*usize) napi_status { log("napi_get_value_string_latin1", .{}); defer value.ensureStillAlive(); const str = value.toBunString(env); var buf = buf_ptr orelse { - result.* = str.latin1ByteLength(); + if (result_ptr) |result| { + result.* = str.latin1ByteLength(); + } return .ok; }; if (str.isEmpty()) { - result.* = 0; + if (result_ptr) |result| { + result.* = 0; + } buf[0] = 0; return .ok; @@ -362,13 +366,21 @@ pub export fn napi_get_value_string_latin1(env: napi_env, value: napi_value, buf if (bufsize == 0) { buf_ = bun.sliceTo(buf_ptr, 0); if (buf_.len == 0) { - result.* = 0; + if (result_ptr) |result| { + result.* = 0; + } return .ok; } } - const to_copy = str.encodeInto(buf_, .latin1) catch unreachable; - // if zero terminated, report the length of the string without the null - result.* = to_copy; + const written = str.encodeInto(buf_, .latin1) catch unreachable; + const max_buf_len = if (bufsize == 0) buf_.len else bufsize; + + if (result_ptr) |result| { + result.* = written; + } else if (written < max_buf_len) { + buf[written] = 0; + } + return .ok; } @@ -417,9 +429,12 @@ pub export fn napi_get_value_string_utf8(env: napi_env, value: napi_value, buf_p } const written = str.encodeInto(buf_, .utf8) catch unreachable; + const max_buf_len = if (bufsize == 0) buf_.len else bufsize; if (result_ptr) |result| { result.* = written; + } else if (written < max_buf_len) { + buf[written] = 0; } log("napi_get_value_string_utf8: {s}", .{buf[0..written]}); @@ -458,11 +473,16 @@ pub export fn napi_get_value_string_utf16(env: napi_env, value: napi_value, buf_ return .ok; } } - const to_copy = (str.encodeInto(std.mem.sliceAsBytes(buf_), .utf16le) catch unreachable) >> 1; - buf[to_copy] = 0; - // if zero terminated, report the length of the string without the null + + const max_buf_len = if (bufsize == 0) buf_.len else bufsize; + const written = (str.encodeInto(std.mem.sliceAsBytes(buf_), .utf16le) catch unreachable) >> 1; + if (result_ptr) |result| { - result.* = to_copy; + result.* = written; + // We should only write to the buffer is no result pointer is provided. + // If we perform both operations, + } else if (written < max_buf_len) { + buf[written] = 0; } return .ok; diff --git a/test/js/third_party/prisma/prisma.test.ts b/test/js/third_party/prisma/prisma.test.ts index abe6f0635..2c87a9fcb 100644 --- a/test/js/third_party/prisma/prisma.test.ts +++ b/test/js/third_party/prisma/prisma.test.ts @@ -10,7 +10,7 @@ function* TestIDGenerator() { } const test_id = TestIDGenerator(); -["sqlite", "postgres", "mongodb"].forEach(async type => { +["sqlite" /*"postgres", "mongodb"*/].forEach(async type => { let Client: typeof PrismaClient; try { -- cgit v1.2.3 From 3345a7fc3c81f914000fd5a3c5a24f920a70386a Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Mon, 3 Jul 2023 20:53:41 -0700 Subject: Allow zero length WebSocket client & server messages (#3488) * Allow zero length WebSocket client & server messages * Add test * Clean this up a little * Clean up these tests a little * Hopefully fix the test failure in release build * Don't copy into the receive buffer * Less flaky --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> --- src/bun.js/api/server.zig | 53 ----- src/bun.js/bindings/ZigGlobalObject.cpp | 26 +++ src/bun.js/bindings/ZigGlobalObject.h | 2 + src/bun.js/bindings/bindings.zig | 17 ++ src/bun.js/bindings/webcore/WebSocket.cpp | 27 ++- src/bun.js/bindings/webcore/WebSocket.h | 28 +-- src/http/websocket_http_client.zig | 172 +++++++++------ test/js/bun/websocket/websocket-server.test.ts | 292 +++++++++++++++---------- test/js/web/websocket/websocket.test.js | 34 ++- 9 files changed, 391 insertions(+), 260 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/api/server.zig b/src/bun.js/api/server.zig index f52c08301..9625ff693 100644 --- a/src/bun.js/api/server.zig +++ b/src/bun.js/api/server.zig @@ -3560,11 +3560,6 @@ pub const ServerWebSocket = struct { if (message_value.asArrayBuffer(globalThis)) |array_buffer| { const buffer = array_buffer.slice(); - if (buffer.len == 0) { - globalThis.throw("publish requires a non-empty message", .{}); - return .zero; - } - const result = if (!publish_to_self) this.websocket.publish(topic_slice.slice(), buffer, .binary, compress) else @@ -3580,9 +3575,6 @@ pub const ServerWebSocket = struct { { var string_slice = message_value.toSlice(globalThis, bun.default_allocator); defer string_slice.deinit(); - if (string_slice.len == 0) { - return JSValue.jsNumber(0); - } const buffer = string_slice.slice(); @@ -3634,10 +3626,6 @@ pub const ServerWebSocket = struct { var topic_slice = topic_value.toSlice(globalThis, bun.default_allocator); defer topic_slice.deinit(); - if (topic_slice.len == 0) { - globalThis.throw("publishText requires a non-empty topic", .{}); - return .zero; - } const compress = args.len > 1 and compress_value.toBoolean(); @@ -3648,9 +3636,6 @@ pub const ServerWebSocket = struct { var string_slice = message_value.toSlice(globalThis, bun.default_allocator); defer string_slice.deinit(); - if (string_slice.len == 0) { - return JSValue.jsNumber(0); - } const buffer = string_slice.slice(); @@ -3715,10 +3700,6 @@ pub const ServerWebSocket = struct { }; const buffer = array_buffer.slice(); - if (buffer.len == 0) { - return JSC.JSValue.jsNumber(0); - } - const result = if (!publish_to_self) this.websocket.publish(topic_slice.slice(), buffer, .binary, compress) else @@ -3883,10 +3864,6 @@ pub const ServerWebSocket = struct { } if (message_value.asArrayBuffer(globalThis)) |buffer| { - if (buffer.len == 0) { - return JSValue.jsNumber(0); - } - switch (this.websocket.send(buffer.slice(), .binary, compress, true)) { .backpressure => { log("send() backpressure ({d} bytes)", .{buffer.len}); @@ -3906,9 +3883,6 @@ pub const ServerWebSocket = struct { { var string_slice = message_value.toSlice(globalThis, bun.default_allocator); defer string_slice.deinit(); - if (string_slice.len == 0) { - return JSValue.jsNumber(0); - } const buffer = string_slice.slice(); switch (this.websocket.send(buffer, .text, compress, true)) { @@ -3960,9 +3934,6 @@ pub const ServerWebSocket = struct { var string_slice = message_value.toSlice(globalThis, bun.default_allocator); defer string_slice.deinit(); - if (string_slice.len == 0) { - return JSValue.jsNumber(0); - } const buffer = string_slice.slice(); switch (this.websocket.send(buffer, .text, compress, true)) { @@ -3994,9 +3965,6 @@ pub const ServerWebSocket = struct { var string_slice = message_str.toSlice(globalThis, bun.default_allocator); defer string_slice.deinit(); - if (string_slice.len == 0) { - return JSValue.jsNumber(0); - } const buffer = string_slice.slice(); switch (this.websocket.send(buffer, .text, compress, true)) { @@ -4043,10 +4011,6 @@ pub const ServerWebSocket = struct { return .zero; }; - if (buffer.len == 0) { - return JSValue.jsNumber(0); - } - switch (this.websocket.send(buffer.slice(), .binary, compress, true)) { .backpressure => { log("sendBinary() backpressure ({d} bytes)", .{buffer.len}); @@ -4076,10 +4040,6 @@ pub const ServerWebSocket = struct { const buffer = array_buffer.slice(); - if (buffer.len == 0) { - return JSValue.jsNumber(0); - } - switch (this.websocket.send(buffer, .binary, compress, true)) { .backpressure => { log("sendBinary() backpressure ({d} bytes)", .{buffer.len}); @@ -4416,17 +4376,7 @@ pub fn NewServer(comptime ssl_enabled_: bool, comptime debug_mode_: bool) type { const compress = (compress_value orelse JSValue.jsBoolean(true)).toBoolean(); - if (message_value.isEmptyOrUndefinedOrNull()) { - JSC.JSError(this.vm.allocator, "publish requires a non-empty message", .{}, globalThis, exception); - return .zero; - } - if (message_value.asArrayBuffer(globalThis)) |buffer| { - if (buffer.len == 0) { - JSC.JSError(this.vm.allocator, "publish requires a non-empty message", .{}, globalThis, exception); - return .zero; - } - return JSValue.jsNumber( // if 0, return 0 // else return number of bytes sent @@ -4437,9 +4387,6 @@ pub fn NewServer(comptime ssl_enabled_: bool, comptime debug_mode_: bool) type { { var string_slice = message_value.toSlice(globalThis, bun.default_allocator); defer string_slice.deinit(); - if (string_slice.len == 0) { - return JSValue.jsNumber(0); - } const buffer = string_slice.slice(); return JSValue.jsNumber( diff --git a/src/bun.js/bindings/ZigGlobalObject.cpp b/src/bun.js/bindings/ZigGlobalObject.cpp index c00670289..b3236a4a2 100644 --- a/src/bun.js/bindings/ZigGlobalObject.cpp +++ b/src/bun.js/bindings/ZigGlobalObject.cpp @@ -1021,6 +1021,20 @@ JSC_DEFINE_HOST_FUNCTION(functionBunSleepThenCallback, return JSC::JSValue::encode(promise); } +using MicrotaskCallback = void (*)(void*); + +JSC_DEFINE_HOST_FUNCTION(functionNativeMicrotaskTrampoline, + (JSC::JSGlobalObject * globalObject, JSC::CallFrame* callFrame)) +{ + JSCell* cellPtr = callFrame->uncheckedArgument(0).asCell(); + JSCell* callbackPtr = callFrame->uncheckedArgument(1).asCell(); + + void* cell = reinterpret_cast(cellPtr); + auto* callback = reinterpret_cast(callbackPtr); + callback(cell); + return JSValue::encode(jsUndefined()); +} + JSC_DEFINE_HOST_FUNCTION(functionBunSleep, (JSC::JSGlobalObject * globalObject, JSC::CallFrame* callFrame)) { @@ -3027,6 +3041,11 @@ void GlobalObject::finishCreation(VM& vm) init.set(JSFunction::create(init.vm, init.owner, 4, "performMicrotaskVariadic"_s, jsFunctionPerformMicrotaskVariadic, ImplementationVisibility::Public)); }); + m_nativeMicrotaskTrampoline.initLater( + [](const Initializer& init) { + init.set(JSFunction::create(init.vm, init.owner, 2, ""_s, functionNativeMicrotaskTrampoline, ImplementationVisibility::Public)); + }); + m_navigatorObject.initLater( [](const Initializer& init) { int cpuCount = 0; @@ -4225,6 +4244,7 @@ void GlobalObject::visitChildrenImpl(JSCell* cell, Visitor& visitor) thisObject->m_JSFileSinkControllerPrototype.visit(visitor); thisObject->m_JSHTTPSResponseControllerPrototype.visit(visitor); thisObject->m_navigatorObject.visit(visitor); + thisObject->m_nativeMicrotaskTrampoline.visit(visitor); thisObject->m_performanceObject.visit(visitor); thisObject->m_primordialsObject.visit(visitor); thisObject->m_processEnvObject.visit(visitor); @@ -4387,6 +4407,12 @@ extern "C" void JSC__JSGlobalObject__reload(JSC__JSGlobalObject* arg0) globalObject->reload(); } +extern "C" void JSC__JSGlobalObject__queueMicrotaskCallback(Zig::GlobalObject* globalObject, void* ptr, MicrotaskCallback callback) +{ + JSFunction* function = globalObject->nativeMicrotaskTrampoline(); + globalObject->queueMicrotask(function, JSValue(reinterpret_cast(ptr)), JSValue(reinterpret_cast(callback)), jsUndefined(), jsUndefined()); +} + JSC::Identifier GlobalObject::moduleLoaderResolve(JSGlobalObject* globalObject, JSModuleLoader* loader, JSValue key, JSValue referrer, JSValue origin) diff --git a/src/bun.js/bindings/ZigGlobalObject.h b/src/bun.js/bindings/ZigGlobalObject.h index a5b802ced..da6ba92a0 100644 --- a/src/bun.js/bindings/ZigGlobalObject.h +++ b/src/bun.js/bindings/ZigGlobalObject.h @@ -369,6 +369,7 @@ public: mutable WriteBarrier m_thenables[promiseFunctionsSize + 1]; JSObject* navigatorObject(); + JSFunction* nativeMicrotaskTrampoline() { return m_nativeMicrotaskTrampoline.getInitializedOnMainThread(this); } void trackFFIFunction(JSC::JSFunction* function) { @@ -466,6 +467,7 @@ private: */ LazyProperty m_pendingVirtualModuleResultStructure; LazyProperty m_performMicrotaskFunction; + LazyProperty m_nativeMicrotaskTrampoline; LazyProperty m_performMicrotaskVariadicFunction; LazyProperty m_emitReadableNextTickFunction; LazyProperty m_lazyReadableStreamPrototypeMap; diff --git a/src/bun.js/bindings/bindings.zig b/src/bun.js/bindings/bindings.zig index 277172b81..07882d857 100644 --- a/src/bun.js/bindings/bindings.zig +++ b/src/bun.js/bindings/bindings.zig @@ -2732,6 +2732,23 @@ pub const JSGlobalObject = extern struct { this.vm().throwError(this, this.createErrorInstance(Output.prettyFmt(fmt, false), args)); } } + extern fn JSC__JSGlobalObject__queueMicrotaskCallback(*JSGlobalObject, *anyopaque, Function: *const (fn (*anyopaque) callconv(.C) void)) void; + pub fn queueMicrotaskCallback( + this: *JSGlobalObject, + ctx_val: anytype, + comptime Function: fn (ctx: @TypeOf(ctx_val)) void, + ) void { + JSC.markBinding(@src()); + const Fn = Function; + const ContextType = @TypeOf(ctx_val); + const Wrapper = struct { + pub fn call(p: *anyopaque) callconv(.C) void { + Fn(bun.cast(ContextType, p)); + } + }; + + JSC__JSGlobalObject__queueMicrotaskCallback(this, ctx_val, &Wrapper.call); + } pub fn queueMicrotask( this: *JSGlobalObject, diff --git a/src/bun.js/bindings/webcore/WebSocket.cpp b/src/bun.js/bindings/webcore/WebSocket.cpp index a346175df..1d6392f44 100644 --- a/src/bun.js/bindings/webcore/WebSocket.cpp +++ b/src/bun.js/bindings/webcore/WebSocket.cpp @@ -458,8 +458,8 @@ ExceptionOr WebSocket::send(const String& message) return {}; } - if (message.length() > 0) - this->sendWebSocketString(message); + // 0-length is allowed + this->sendWebSocketString(message); return {}; } @@ -477,8 +477,8 @@ ExceptionOr WebSocket::send(ArrayBuffer& binaryData) } char* data = static_cast(binaryData.data()); size_t length = binaryData.byteLength(); - if (length > 0) - this->sendWebSocketData(data, length); + // 0-length is allowed + this->sendWebSocketData(data, length); return {}; } @@ -498,8 +498,8 @@ ExceptionOr WebSocket::send(ArrayBufferView& arrayBufferView) auto buffer = arrayBufferView.unsharedBuffer().get(); char* baseAddress = reinterpret_cast(buffer->data()) + arrayBufferView.byteOffset(); size_t length = arrayBufferView.byteLength(); - if (length > 0) - this->sendWebSocketData(baseAddress, length); + // 0-length is allowed + this->sendWebSocketData(baseAddress, length); return {}; } @@ -1232,14 +1232,19 @@ extern "C" void WebSocket__didCloseWithErrorCode(WebCore::WebSocket* webSocket, extern "C" void WebSocket__didReceiveText(WebCore::WebSocket* webSocket, bool clone, const ZigString* str) { - WTF::String wtf_str = Zig::toString(*str); - if (clone) { - wtf_str = wtf_str.isolatedCopy(); - } - + WTF::String wtf_str = clone ? Zig::toStringCopy(*str) : Zig::toString(*str); webSocket->didReceiveMessage(WTFMove(wtf_str)); } extern "C" void WebSocket__didReceiveBytes(WebCore::WebSocket* webSocket, uint8_t* bytes, size_t len) { webSocket->didReceiveBinaryData({ bytes, len }); } + +extern "C" void WebSocket__incrementPendingActivity(WebCore::WebSocket* webSocket) +{ + webSocket->incPendingActivityCount(); +} +extern "C" void WebSocket__decrementPendingActivity(WebCore::WebSocket* webSocket) +{ + webSocket->decPendingActivityCount(); +} \ No newline at end of file diff --git a/src/bun.js/bindings/webcore/WebSocket.h b/src/bun.js/bindings/webcore/WebSocket.h index 42261cfc4..846bd186b 100644 --- a/src/bun.js/bindings/webcore/WebSocket.h +++ b/src/bun.js/bindings/webcore/WebSocket.h @@ -111,6 +111,20 @@ public: return m_hasPendingActivity.load(); } + void incPendingActivityCount() + { + m_pendingActivityCount++; + ref(); + updateHasPendingActivity(); + } + + void decPendingActivityCount() + { + m_pendingActivityCount--; + deref(); + updateHasPendingActivity(); + } + private: typedef union AnyWebSocket { WebSocketClient* client; @@ -147,20 +161,6 @@ private: void sendWebSocketString(const String& message); void sendWebSocketData(const char* data, size_t length); - void incPendingActivityCount() - { - m_pendingActivityCount++; - ref(); - updateHasPendingActivity(); - } - - void decPendingActivityCount() - { - m_pendingActivityCount--; - deref(); - updateHasPendingActivity(); - } - void failAsynchronously(); enum class BinaryType { Blob, diff --git a/src/http/websocket_http_client.zig b/src/http/websocket_http_client.zig index ee0fb9c77..a3ae8c3ba 100644 --- a/src/http/websocket_http_client.zig +++ b/src/http/websocket_http_client.zig @@ -145,6 +145,15 @@ const CppWebSocket = opaque { pub const didCloseWithErrorCode = WebSocket__didCloseWithErrorCode; pub const didReceiveText = WebSocket__didReceiveText; pub const didReceiveBytes = WebSocket__didReceiveBytes; + extern fn WebSocket__incrementPendingActivity(websocket_context: *CppWebSocket) void; + extern fn WebSocket__decrementPendingActivity(websocket_context: *CppWebSocket) void; + pub fn ref(this: *CppWebSocket) void { + WebSocket__incrementPendingActivity(this); + } + + pub fn unref(this: *CppWebSocket) void { + WebSocket__decrementPendingActivity(this); + } }; const body_buf_len = 16384 - 16; @@ -163,8 +172,7 @@ pub fn NewHTTPUpgradeClient(comptime ssl: bool) type { to_send: []const u8 = "", read_length: usize = 0, headers_buf: [128]PicoHTTP.Header = undefined, - body_buf: ?*BodyBuf = null, - body_written: usize = 0, + body: std.ArrayListUnmanaged(u8) = .{}, websocket_protocol: u64 = 0, hostname: [:0]const u8 = "", poll_ref: JSC.PollRef = .{}, @@ -280,10 +288,7 @@ pub fn NewHTTPUpgradeClient(comptime ssl: bool) type { this.poll_ref.unrefOnNextTick(JSC.VirtualMachine.get()); this.clearInput(); - if (this.body_buf) |buf| { - this.body_buf = null; - buf.release(); - } + this.body.clearAndFree(bun.default_allocator); } pub fn cancel(this: *HTTPClient) callconv(.C) void { this.clearData(); @@ -355,14 +360,6 @@ pub fn NewHTTPUpgradeClient(comptime ssl: bool) type { this.to_send = this.input_body_buf[@intCast(usize, wrote)..]; } - fn getBody(this: *HTTPClient) *BodyBufBytes { - if (this.body_buf == null) { - this.body_buf = BodyBufPool.get(bun.default_allocator); - } - - return &this.body_buf.?.data; - } - pub fn handleData(this: *HTTPClient, socket: Socket, data: []const u8) void { log("onData", .{}); std.debug.assert(socket.socket == this.tcp.socket); @@ -374,43 +371,37 @@ pub fn NewHTTPUpgradeClient(comptime ssl: bool) type { if (comptime Environment.allow_assert) std.debug.assert(!socket.isShutdown()); - var body = this.getBody(); - var remain = body[this.body_written..]; - const is_first = this.body_written == 0; + var body = data; + if (this.body.items.len > 0) { + this.body.appendSlice(bun.default_allocator, data) catch @panic("out of memory"); + body = this.body.items; + } + + const is_first = this.body.items.len == 0; if (is_first) { // fail early if we receive a non-101 status code - if (!strings.hasPrefixComptime(data, "HTTP/1.1 101 ")) { + if (!strings.hasPrefixComptime(body, "HTTP/1.1 101 ")) { this.terminate(ErrorCode.expected_101_status_code); return; } } - const to_write = remain[0..@min(remain.len, data.len)]; - if (data.len > 0 and to_write.len > 0) { - @memcpy(remain[0..to_write.len], data[0..to_write.len]); - this.body_written += to_write.len; - } - - const overflow = data[to_write.len..]; - - const available_to_read = body[0..this.body_written]; - const response = PicoHTTP.Response.parse(available_to_read, &this.headers_buf) catch |err| { + const response = PicoHTTP.Response.parse(body, &this.headers_buf) catch |err| { switch (err) { error.Malformed_HTTP_Response => { this.terminate(ErrorCode.invalid_response); return; }, error.ShortRead => { - if (overflow.len > 0) { - this.terminate(ErrorCode.headers_too_large); - return; + if (this.body.items.len == 0) { + this.body.appendSlice(bun.default_allocator, data) catch @panic("out of memory"); } return; }, } }; - this.processResponse(response, available_to_read[@intCast(usize, response.bytes_read)..]); + this.processResponse(response, body[@intCast(usize, response.bytes_read)..]); } pub fn handleEnd(this: *HTTPClient, socket: Socket) void { @@ -420,8 +411,6 @@ pub fn NewHTTPUpgradeClient(comptime ssl: bool) type { } pub fn processResponse(this: *HTTPClient, response: PicoHTTP.Response, remain_buf: []const u8) void { - std.debug.assert(this.body_written > 0); - var upgrade_header = PicoHTTP.Header{ .name = "", .value = "" }; var connection_header = PicoHTTP.Header{ .name = "", .value = "" }; var websocket_accept_header = PicoHTTP.Header{ .name = "", .value = "" }; @@ -524,7 +513,7 @@ pub fn NewHTTPUpgradeClient(comptime ssl: bool) type { this.terminate(ErrorCode.invalid_response); return; }; - if (remain_buf.len > 0) @memcpy(overflow[0..remain_buf.len], remain_buf); + @memcpy(overflow, remain_buf); } this.clearData(); @@ -866,6 +855,8 @@ pub fn NewWebSocketClient(comptime ssl: bool) type { globalThis: *JSC.JSGlobalObject, poll_ref: JSC.PollRef = JSC.PollRef.init(), + initial_data_handler: ?*InitialDataHandler = null, + pub const name = if (ssl) "WebSocketClientTLS" else "WebSocketClient"; pub const shim = JSC.Shimmer("Bun", name, @This()); @@ -927,6 +918,8 @@ pub fn NewWebSocketClient(comptime ssl: bool) type { JSC.markBinding(@src()); if (this.outgoing_websocket) |ws| { this.outgoing_websocket = null; + log("fail ({s})", .{@tagName(code)}); + ws.didCloseWithErrorCode(code); } @@ -937,7 +930,7 @@ pub fn NewWebSocketClient(comptime ssl: bool) type { _ = socket; _ = ssl_error; JSC.markBinding(@src()); - log("WebSocket.onHandshake({d})", .{success}); + log("onHandshake({d})", .{success}); JSC.markBinding(@src()); if (success == 0) { if (this.outgoing_websocket) |ws| { @@ -1044,6 +1037,24 @@ pub fn NewWebSocketClient(comptime ssl: bool) type { } pub fn handleData(this: *WebSocket, socket: Socket, data_: []const u8) void { + // Due to scheduling, it is possible for the websocket onData + // handler to run with additional data before the microtask queue is + // drained. + if (this.initial_data_handler) |initial_handler| { + // This calls `handleData` + // We deliberately do not set this.initial_data_handler to null here, that's done in handleWithoutDeinit. + // We do not free the memory here since the lifetime is managed by the microtask queue (it should free when called from there) + initial_handler.handleWithoutDeinit(); + + // handleWithoutDeinit is supposed to clear the handler from WebSocket* + // to prevent an infinite loop + std.debug.assert(this.initial_data_handler == null); + + // If we disconnected for any reason in the re-entrant case, we should just ignore the data + if (this.outgoing_websocket == null or this.tcp.isShutdown() or this.tcp.isClosed()) + return; + } + var data = data_; var receive_state = this.receive_state; var terminated = false; @@ -1141,6 +1152,30 @@ pub fn NewWebSocketClient(comptime ssl: bool) type { terminated = true; break; } + + // Handle when the payload length is 0, but it is a message + // + // This should become + // + // - ArrayBuffer(0) + // - "" + // - Buffer(0) (etc) + // + if (receive_body_remain == 0 and receive_state == .need_body and is_final) { + _ = this.consume( + "", + receive_body_remain, + last_receive_data_type, + is_final, + ); + + // Return to the header state to read the next frame + receive_state = .need_header; + is_fragmented = false; + + // Bail out if there's nothing left to read + if (data.len == 0) break; + } }, .need_mask => { this.terminate(.unexpected_mask_from_server); @@ -1201,6 +1236,7 @@ pub fn NewWebSocketClient(comptime ssl: bool) type { if (data.len == 0) break; }, .need_body => { + // Empty messages are valid, but we handle that earlier in the flow. if (receive_body_remain == 0 and data.len > 0) { this.terminate(ErrorCode.expected_control_frame); terminated = true; @@ -1434,9 +1470,6 @@ pub fn NewWebSocketClient(comptime ssl: bool) type { return; } - if (len == 0) - return; - const slice = ptr[0..len]; const bytes = Copy{ .bytes = slice }; // fast path: small frame, no backpressure, attempt to send without allocating @@ -1460,9 +1493,7 @@ pub fn NewWebSocketClient(comptime ssl: bool) type { return; } - if (str.len == 0) { - return; - } + // Note: 0 is valid { var inline_buf: [stack_frame_size]u8 = undefined; @@ -1525,6 +1556,33 @@ pub fn NewWebSocketClient(comptime ssl: bool) type { this.sendCloseWithBody(this.tcp, code, null, 0); } + const InitialDataHandler = struct { + adopted: ?*WebSocket, + ws: *CppWebSocket, + slice: []u8, + + pub const Handle = JSC.AnyTask.New(@This(), handle); + + pub fn handleWithoutDeinit(this: *@This()) void { + var this_socket = this.adopted orelse return; + this.adopted = null; + this_socket.initial_data_handler = null; + var ws = this.ws; + defer ws.unref(); + + if (this_socket.outgoing_websocket != null) + this_socket.handleData(this_socket.tcp, this.slice); + } + + pub fn handle(this: *@This()) void { + defer { + bun.default_allocator.free(this.slice); + bun.default_allocator.destroy(this); + } + this.handleWithoutDeinit(); + } + }; + pub fn init( outgoing: *CppWebSocket, input_socket: *anyopaque, @@ -1554,33 +1612,19 @@ pub fn NewWebSocketClient(comptime ssl: bool) type { var buffered_slice: []u8 = buffered_data[0..buffered_data_len]; if (buffered_slice.len > 0) { - const InitialDataHandler = struct { - adopted: *WebSocket, - slice: []u8, - task: JSC.AnyTask = undefined, - - pub const Handle = JSC.AnyTask.New(@This(), handle); - - pub fn handle(this: *@This()) void { - defer { - bun.default_allocator.free(this.slice); - bun.default_allocator.destroy(this); - } - - this.adopted.receive_buffer.ensureUnusedCapacity(this.slice.len) catch return; - var writable = this.adopted.receive_buffer.writableSlice(0); - @memcpy(writable[0..this.slice.len], this.slice); - - this.adopted.handleData(this.adopted.tcp, writable); - } - }; var initial_data = bun.default_allocator.create(InitialDataHandler) catch unreachable; initial_data.* = .{ .adopted = adopted, .slice = buffered_slice, + .ws = outgoing, }; - initial_data.task = InitialDataHandler.Handle.init(initial_data); - globalThis.bunVM().eventLoop().enqueueTask(JSC.Task.init(&initial_data.task)); + + // Use a higher-priority callback for the initial onData handler + globalThis.queueMicrotaskCallback(initial_data, InitialDataHandler.handle); + + // We need to ref the outgoing websocket so that it doesn't get finalized + // before the initial data handler is called + outgoing.ref(); } return @ptrCast( *anyopaque, diff --git a/test/js/bun/websocket/websocket-server.test.ts b/test/js/bun/websocket/websocket-server.test.ts index 2c2352f91..7913147f9 100644 --- a/test/js/bun/websocket/websocket-server.test.ts +++ b/test/js/bun/websocket/websocket-server.test.ts @@ -3,6 +3,77 @@ import { gcTick } from "harness"; import { serve, ServerWebSocket } from "bun"; describe("websocket server", () => { + it("send & receive empty messages", done => { + const serverReceived: any[] = []; + const clientReceived: any[] = []; + var clientDone = false; + var serverDone = false; + + let server = Bun.serve({ + websocket: { + open(ws) { + ws.send(""); + ws.send(new ArrayBuffer(0)); + }, + message(ws, data) { + serverReceived.push(data); + + if (serverReceived.length === 2) { + if (serverReceived.find(d => d === "") === undefined) { + done(new Error("expected empty string")); + } + + if (!serverReceived.find(d => d.byteLength === 0)) { + done(new Error("expected empty Buffer")); + } + + serverDone = true; + + if (clientDone && serverDone) { + z.close(); + server.stop(true); + done(); + } + } + }, + close() {}, + }, + fetch(req, server) { + if (!server.upgrade(req)) { + return new Response(null, { status: 404 }); + } + }, + port: 0, + }); + + let z = new WebSocket(`ws://${server.hostname}:${server.port}`); + z.onmessage = e => { + clientReceived.push(e.data); + + if (clientReceived.length === 2) { + if (clientReceived.find(d => d === "") === undefined) { + done(new Error("expected empty string")); + } + + if (!clientReceived.find(d => d.byteLength === 0)) { + done(new Error("expected empty Buffer")); + } + + clientDone = true; + if (clientDone && serverDone) { + server.stop(true); + z.close(); + + done(); + } + } + }; + z.addEventListener("open", () => { + z.send(""); + z.send(new Buffer(0)); + }); + }); + it("remoteAddress works", done => { let server = Bun.serve({ websocket: { @@ -859,16 +930,13 @@ describe("websocket server", () => { const server = serve({ port: 0, websocket: { - open(ws) { - server.stop(); - }, + open(ws) {}, message(ws, msg) { ws.send(sendQueue[serverCounter++] + " "); - gcTick(); + serverCounter % 10 === 0 && gcTick(); }, }, fetch(req, server) { - server.stop(); if ( server.upgrade(req, { data: { count: 0 }, @@ -879,32 +947,39 @@ describe("websocket server", () => { return new Response("noooooo hello world"); }, }); + try { + await new Promise((resolve, reject) => { + const websocket = new WebSocket(`ws://${server.hostname}:${server.port}`); + websocket.onerror = e => { + reject(e); + }; - await new Promise((resolve, reject) => { - const websocket = new WebSocket(`ws://${server.hostname}:${server.port}`); - websocket.onerror = e => { - reject(e); - }; + websocket.onopen = () => { + server.stop(); + websocket.send("first"); + }; - var counter = 0; - websocket.onopen = () => websocket.send("first"); - websocket.onmessage = e => { - try { - const expected = sendQueue[clientCounter++] + " "; - expect(e.data).toBe(expected); - websocket.send("next"); - if (clientCounter === sendQueue.length) { + websocket.onmessage = e => { + try { + const expected = sendQueue[clientCounter++] + " "; + expect(e.data).toBe(expected); + websocket.send("next"); + if (clientCounter === sendQueue.length) { + websocket.close(); + resolve(); + } + } catch (r) { + reject(r); + console.error(r); websocket.close(); - resolve(); } - } catch (r) { - reject(r); - console.error(r); - websocket.close(); - } - }; - }); - server.stop(true); + }; + }); + } catch (e) { + throw e; + } finally { + server.stop(true); + } }); // this test sends 100 messages to 10 connected clients via pubsub @@ -913,20 +988,15 @@ describe("websocket server", () => { var sendQueue: any[] = []; for (var i = 0; i < 100; i++) { sendQueue.push(ropey + " " + i); - gcTick(); } + var serverCounter = 0; var clientCount = 0; const server = serve({ port: 0, websocket: { - // FIXME: update this test to not rely on publishToSelf: true, - publishToSelf: true, - open(ws) { - server.stop(); ws.subscribe("test"); - gcTick(); if (!ws.isSubscribed("test")) { throw new Error("not subscribed"); } @@ -936,15 +1006,15 @@ describe("websocket server", () => { } ws.subscribe("test"); clientCount++; - if (clientCount === 10) setTimeout(() => ws.publish("test", "hello world"), 1); + if (clientCount === 10) { + setTimeout(() => server.publish("test", "hello world"), 1); + } }, message(ws, msg) { - if (serverCounter < sendQueue.length) ws.publish("test", sendQueue[serverCounter++] + " "); + if (serverCounter < sendQueue.length) server.publish("test", sendQueue[serverCounter++] + " "); }, }, fetch(req) { - gcTick(); - server.stop(); if ( server.upgrade(req, { data: { count: 0 }, @@ -954,89 +1024,89 @@ describe("websocket server", () => { return new Response("noooooo hello world"); }, }); + try { + const connections = new Array(10); + const websockets = new Array(connections.length); + var doneCounter = 0; + await new Promise(done => { + for (var i = 0; i < connections.length; i++) { + var j = i; + var resolve: (_?: unknown) => void, + reject: (_?: unknown) => void, + resolveConnection: (_?: unknown) => void, + rejectConnection: (_?: unknown) => void; + connections[j] = new Promise((res, rej) => { + resolveConnection = res; + rejectConnection = rej; + }); + websockets[j] = new Promise((res, rej) => { + resolve = res; + reject = rej; + }); + const websocket = new WebSocket(`ws://${server.hostname}:${server.port}`); + websocket.onerror = e => { + reject(e); + }; + websocket.onclose = () => { + doneCounter++; + if (doneCounter === connections.length) { + done(); + } + }; + var hasOpened = false; + websocket.onopen = () => { + if (!hasOpened) { + hasOpened = true; + resolve(websocket); + } + }; - const connections = new Array(10); - const websockets = new Array(connections.length); - var doneCounter = 0; - await new Promise(done => { - for (var i = 0; i < connections.length; i++) { - var j = i; - var resolve: (_?: unknown) => void, - reject: (_?: unknown) => void, - resolveConnection: (_?: unknown) => void, - rejectConnection: (_?: unknown) => void; - connections[j] = new Promise((res, rej) => { - resolveConnection = res; - rejectConnection = rej; - }); - websockets[j] = new Promise((res, rej) => { - resolve = res; - reject = rej; - }); - gcTick(); - const websocket = new WebSocket(`ws://${server.hostname}:${server.port}`); - websocket.onerror = e => { - reject(e); - }; - websocket.onclose = () => { - doneCounter++; - if (doneCounter === connections.length) { - done(); - } - }; - var hasOpened = false; - websocket.onopen = () => { - if (!hasOpened) { - hasOpened = true; - resolve(websocket); - } - }; - - let clientCounter = -1; - var hasSentThisTick = false; - - websocket.onmessage = e => { - gcTick(); - - if (!hasOpened) { - hasOpened = true; - resolve(websocket); - } + let clientCounter = -1; + var hasSentThisTick = false; - if (e.data === "hello world") { - clientCounter = 0; - websocket.send("first"); - return; - } + websocket.onmessage = e => { + if (!hasOpened) { + hasOpened = true; + resolve(websocket); + } - try { - expect(!!sendQueue.find(a => a + " " === e.data)).toBe(true); - - if (!hasSentThisTick) { - websocket.send("second"); - hasSentThisTick = true; - queueMicrotask(() => { - hasSentThisTick = false; - }); + if (e.data === "hello world") { + clientCounter = 0; + websocket.send("first"); + return; } - gcTick(); + try { + expect(!!sendQueue.find(a => a + " " === e.data)).toBe(true); + + if (!hasSentThisTick) { + websocket.send("second"); + hasSentThisTick = true; + queueMicrotask(() => { + hasSentThisTick = false; + }); + } - if (clientCounter++ === sendQueue.length - 1) { + if (clientCounter++ === sendQueue.length - 1) { + websocket.close(); + resolveConnection(); + } + } catch (r) { + console.error(r); websocket.close(); - resolveConnection(); + rejectConnection(r); } - } catch (r) { - console.error(r); - websocket.close(); - rejectConnection(r); - gcTick(); - } - }; - } - }); + }; + } + }); + } catch (e) { + throw e; + } finally { + server.stop(true); + gcTick(); + } + expect(serverCounter).toBe(sendQueue.length); - server.stop(true); }, 30_000); it("can close with reason and code #2631", done => { let timeout: any; diff --git a/test/js/web/websocket/websocket.test.js b/test/js/web/websocket/websocket.test.js index 867b86123..76ff16ecb 100644 --- a/test/js/web/websocket/websocket.test.js +++ b/test/js/web/websocket/websocket.test.js @@ -6,16 +6,33 @@ const TEST_WEBSOCKET_HOST = process.env.TEST_WEBSOCKET_HOST || "wss://ws.postman describe("WebSocket", () => { it("should connect", async () => { - const ws = new WebSocket(TEST_WEBSOCKET_HOST); - await new Promise((resolve, reject) => { + const server = Bun.serve({ + port: 0, + fetch(req, server) { + if (server.upgrade(req)) { + server.stop(); + return; + } + + return new Response(); + }, + websocket: { + open(ws) {}, + message(ws) { + ws.close(); + }, + }, + }); + const ws = new WebSocket(`ws://${server.hostname}:${server.port}`, {}); + await new Promise(resolve => { ws.onopen = resolve; - ws.onerror = reject; }); - var closed = new Promise((resolve, reject) => { + var closed = new Promise(resolve => { ws.onclose = resolve; }); ws.close(); await closed; + server.stop(true); }); it("should connect over https", async () => { @@ -59,17 +76,18 @@ describe("WebSocket", () => { const server = Bun.serve({ port: 0, fetch(req, server) { - server.stop(); done(); + server.stop(); return new Response(); }, websocket: { - open(ws) { + open(ws) {}, + message(ws) { ws.close(); }, }, }); - const ws = new WebSocket(`http://${server.hostname}:${server.port}`, {}); + new WebSocket(`http://${server.hostname}:${server.port}`, {}); }); describe("nodebuffer", () => { it("should support 'nodebuffer' binaryType", done => { @@ -93,6 +111,7 @@ describe("WebSocket", () => { expect(ws.binaryType).toBe("nodebuffer"); Bun.gc(true); ws.onmessage = ({ data }) => { + ws.close(); expect(Buffer.isBuffer(data)).toBe(true); expect(data).toEqual(new Uint8Array([1, 2, 3])); server.stop(true); @@ -117,6 +136,7 @@ describe("WebSocket", () => { ws.sendBinary(new Uint8Array([1, 2, 3])); setTimeout(() => { client.onmessage = ({ data }) => { + client.close(); expect(Buffer.isBuffer(data)).toBe(true); expect(data).toEqual(new Uint8Array([1, 2, 3])); server.stop(true); -- cgit v1.2.3 From bc7b5165beba1388a39215ccfa8e848e4982f1ed Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Tue, 4 Jul 2023 01:51:09 -0700 Subject: less flaky --- test/js/bun/websocket/websocket-server.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test/js') diff --git a/test/js/bun/websocket/websocket-server.test.ts b/test/js/bun/websocket/websocket-server.test.ts index 7913147f9..a7b9b1777 100644 --- a/test/js/bun/websocket/websocket-server.test.ts +++ b/test/js/bun/websocket/websocket-server.test.ts @@ -920,7 +920,7 @@ describe("websocket server", () => { it("send rope strings", async () => { var ropey = "hello world".repeat(10); var sendQueue: any[] = []; - for (var i = 0; i < 100; i++) { + for (var i = 0; i < 20; i++) { sendQueue.push(ropey + " " + i); } -- cgit v1.2.3 From 491e8f7e00aaf710f2fcd480a96cb002541de013 Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Tue, 4 Jul 2023 04:14:06 -0700 Subject: bump --- test/bun.lockb | Bin 140524 -> 141113 bytes test/js/third_party/socket.io/package.json | 2 +- test/package.json | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) (limited to 'test/js') diff --git a/test/bun.lockb b/test/bun.lockb index e3a2abdfa..c35182d46 100755 Binary files a/test/bun.lockb and b/test/bun.lockb differ diff --git a/test/js/third_party/socket.io/package.json b/test/js/third_party/socket.io/package.json index af70e36a6..e54aa3de9 100644 --- a/test/js/third_party/socket.io/package.json +++ b/test/js/third_party/socket.io/package.json @@ -4,6 +4,6 @@ "dependencies": { "socket.io": "4.6.1", "socket.io-client": "4.6.1", - "supertest": "6.1.6" + "supertest": "6.3.3" } } diff --git a/test/package.json b/test/package.json index db0053874..d26875126 100644 --- a/test/package.json +++ b/test/package.json @@ -20,7 +20,7 @@ "prisma": "4.15.0", "socket.io": "4.7.1", "socket.io-client": "4.7.1", - "supertest": "6.1.6", + "supertest": "6.3.3", "svelte": "3.55.1", "typescript": "5.0.2", "undici": "5.20.0", -- cgit v1.2.3 From 31f7f9e2dc1504a93467f07eb2dd3bb7b94dbc0b Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Tue, 4 Jul 2023 04:15:22 -0700 Subject: reduce count --- test/js/bun/websocket/websocket-server.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'test/js') diff --git a/test/js/bun/websocket/websocket-server.test.ts b/test/js/bun/websocket/websocket-server.test.ts index a7b9b1777..7a79f9f5f 100644 --- a/test/js/bun/websocket/websocket-server.test.ts +++ b/test/js/bun/websocket/websocket-server.test.ts @@ -982,11 +982,11 @@ describe("websocket server", () => { } }); - // this test sends 100 messages to 10 connected clients via pubsub + // this test sends 50 messages to 10 connected clients via pubsub it("pub/sub", async () => { var ropey = "hello world".repeat(10); var sendQueue: any[] = []; - for (var i = 0; i < 100; i++) { + for (var i = 0; i < 50; i++) { sendQueue.push(ropey + " " + i); } -- cgit v1.2.3 From c2755f770cb0d6296c82a6f6d633d62307449028 Mon Sep 17 00:00:00 2001 From: Ai Hoshino Date: Wed, 5 Jul 2023 06:38:44 +0800 Subject: Add alias for readBigUInt64BE ... (#3514) * Add alias for `readBigUInt64BE` ... Close: https://github.com/oven-sh/bun/issues/3338 * add some tests for `readBigUint64BE` alias * format code --- src/bun.js/bindings/JSBuffer.cpp | 17 +++++++++++---- test/js/node/buffer.test.js | 45 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 4 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/bindings/JSBuffer.cpp b/src/bun.js/bindings/JSBuffer.cpp index 87e1d4048..08475735b 100644 --- a/src/bun.js/bindings/JSBuffer.cpp +++ b/src/bun.js/bindings/JSBuffer.cpp @@ -1877,11 +1877,17 @@ static const HashTableValue JSBufferPrototypeTableValues[] { "readUInt8"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeReadUInt8CodeGenerator, 1 } }, { "readUIntBE"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeReadUIntBECodeGenerator, 1 } }, { "readUIntLE"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeReadUIntLECodeGenerator, 1 } }, + // name alias + { "readUintBE"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeReadUIntBECodeGenerator, 1 } }, + { "readUintLE"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeReadUIntLECodeGenerator, 1 } }, + { "readUint8"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeReadUInt8CodeGenerator, 1 } }, { "readUint16BE"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeReadUInt16BECodeGenerator, 1 } }, { "readUint16LE"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeReadUInt16LECodeGenerator, 1 } }, { "readUint32BE"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeReadUInt32BECodeGenerator, 1 } }, { "readUint32LE"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeReadUInt32LECodeGenerator, 1 } }, - { "readUint8"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeReadUInt8CodeGenerator, 1 } }, + { "readBigUint64BE"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeReadBigUInt64BECodeGenerator, 1 } }, + { "readBigUint64LE"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeReadBigUInt64LECodeGenerator, 1 } }, + { "slice"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeSliceCodeGenerator, 2 } }, { "subarray"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeSliceCodeGenerator, 2 } }, { "swap16"_s, static_cast(JSC::PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, jsBufferPrototypeFunction_swap16, 0 } }, @@ -1901,8 +1907,6 @@ static const HashTableValue JSBufferPrototypeTableValues[] { "writeBigInt64LE"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeWriteBigInt64LECodeGenerator, 1 } }, { "writeBigUInt64BE"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeWriteBigUInt64BECodeGenerator, 1 } }, { "writeBigUInt64LE"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeWriteBigUInt64LECodeGenerator, 1 } }, - { "writeBigUint64BE"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeWriteBigUInt64BECodeGenerator, 1 } }, - { "writeBigUint64LE"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeWriteBigUInt64LECodeGenerator, 1 } }, { "writeDouble"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeWriteDoubleLECodeGenerator, 1 } }, { "writeDoubleBE"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeWriteDoubleBECodeGenerator, 1 } }, { "writeDoubleLE"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeWriteDoubleLECodeGenerator, 1 } }, @@ -1925,13 +1929,18 @@ static const HashTableValue JSBufferPrototypeTableValues[] { "writeUInt8"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeWriteUInt8CodeGenerator, 1 } }, { "writeUIntBE"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeWriteUIntBECodeGenerator, 1 } }, { "writeUIntLE"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeWriteUIntLECodeGenerator, 1 } }, + // name alias + { "writeUintBE"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeWriteUIntBECodeGenerator, 1 } }, + { "writeUintLE"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeWriteUIntLECodeGenerator, 1 } }, + { "writeUint8"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeWriteUInt8CodeGenerator, 1 } }, { "writeUint16"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeWriteUInt16LECodeGenerator, 1 } }, { "writeUint16BE"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeWriteUInt16BECodeGenerator, 1 } }, { "writeUint16LE"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeWriteUInt16LECodeGenerator, 1 } }, { "writeUint32"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeWriteUInt32LECodeGenerator, 1 } }, { "writeUint32BE"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeWriteUInt32BECodeGenerator, 1 } }, { "writeUint32LE"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeWriteUInt32LECodeGenerator, 1 } }, - { "writeUint8"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeWriteUInt8CodeGenerator, 1 } }, + { "writeBigUint64BE"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeWriteBigUInt64BECodeGenerator, 1 } }, + { "writeBigUint64LE"_s, static_cast(JSC::PropertyAttribute::Builtin), NoIntrinsic, { HashTableValue::BuiltinGeneratorType, jsBufferPrototypeWriteBigUInt64LECodeGenerator, 1 } }, }; void JSBufferPrototype::finishCreation(VM& vm, JSC::JSGlobalObject* globalThis) diff --git a/test/js/node/buffer.test.js b/test/js/node/buffer.test.js index 99562fedd..cfd114423 100644 --- a/test/js/node/buffer.test.js +++ b/test/js/node/buffer.test.js @@ -2493,3 +2493,48 @@ it("inspect() should exist", () => { expect(Buffer.prototype.inspect).toBeInstanceOf(Function); expect(new Buffer("123").inspect()).toBe(Bun.inspect(new Buffer("123"))); }); + +it("read alias", () => { + var buf = new Buffer(1024); + var data = new DataView(buf.buffer); + + data.setUint8(0, 200, false); + + expect(buf.readUint8(0)).toBe(buf.readUInt8(0)); + expect(buf.readUintBE(0, 4)).toBe(buf.readUIntBE(0, 4)); + expect(buf.readUintLE(0, 4)).toBe(buf.readUIntLE(0, 4)); + expect(buf.readUint16BE(0)).toBe(buf.readUInt16BE(0)); + expect(buf.readUint16LE(0)).toBe(buf.readUInt16LE(0)); + expect(buf.readUint32BE(0)).toBe(buf.readUInt32BE(0)); + expect(buf.readUint32LE(0)).toBe(buf.readUInt32LE(0)); + expect(buf.readBigUint64BE(0)).toBe(buf.readBigUInt64BE(0)); + expect(buf.readBigUint64LE(0)).toBe(buf.readBigUInt64LE(0)); +}); + +it("write alias", () => { + var buf = new Buffer(1024); + var buf2 = new Buffer(1024); + + function reset() { + new Uint8Array(buf.buffer).fill(0); + new Uint8Array(buf2.buffer).fill(0); + } + + function shouldBeSame(name, name2, ...args) { + buf[name].call(buf, ...args); + buf2[name2].call(buf2, ...args); + + expect(buf).toStrictEqual(buf2); + reset(); + } + + shouldBeSame("writeUint8", "writeUInt8", 10); + shouldBeSame("writeUintBE", "writeUIntBE", 10, 0, 4); + shouldBeSame("writeUintLE", "writeUIntLE", 10, 0, 4); + shouldBeSame("writeUint16BE", "writeUInt16BE", 1000); + shouldBeSame("writeUint16LE", "writeUInt16LE", 1000); + shouldBeSame("writeUint32BE", "writeUInt32BE", 1000); + shouldBeSame("writeUint32LE", "writeUInt32LE", 1000); + shouldBeSame("writeBigUint64BE", "writeBigUInt64BE", BigInt(1000)); + shouldBeSame("writeBigUint64LE", "writeBigUInt64LE", BigInt(1000)); +}); -- cgit v1.2.3 From 979e99940374289e21332a0a7214889648e7397b Mon Sep 17 00:00:00 2001 From: Ciro Spaciari Date: Tue, 4 Jul 2023 19:40:26 -0300 Subject: [tls] fix servername (#3513) * fix servername * add postgres tls tests * update test packages * add basic CRUD test --- src/bun.js/api/bun/socket.zig | 48 +++++++++++++++++++---- test/js/third_party/postgres/package.json | 8 ++++ test/js/third_party/postgres/postgres.test.ts | 56 +++++++++++++++++++++++++++ test/package.json | 5 ++- 4 files changed, 109 insertions(+), 8 deletions(-) create mode 100644 test/js/third_party/postgres/package.json create mode 100644 test/js/third_party/postgres/postgres.test.ts (limited to 'test/js') diff --git a/src/bun.js/api/bun/socket.zig b/src/bun.js/api/bun/socket.zig index 329cc40e4..12a4cffc8 100644 --- a/src/bun.js/api/bun/socket.zig +++ b/src/bun.js/api/bun/socket.zig @@ -820,6 +820,7 @@ pub const Listener = struct { var default_data = socket_config.default_data; var protos: ?[]const u8 = null; + var server_name: ?[]const u8 = null; const ssl_enabled = ssl != null; defer if (ssl != null) ssl.?.deinit(); @@ -840,6 +841,9 @@ pub const Listener = struct { if (ssl.?.protos) |p| { protos = p[0..ssl.?.protos_len]; } + if (ssl.?.server_name) |s| { + server_name = bun.default_allocator.dupe(u8, s[0..bun.len(s)]) catch unreachable; + } uws.NewSocketHandler(true).configure( socket_context, true, @@ -892,6 +896,7 @@ pub const Listener = struct { .socket = undefined, .connection = connection, .protos = if (protos) |p| (bun.default_allocator.dupe(u8, p) catch unreachable) else null, + .server_name = server_name, }; TLSSocket.dataSetCached(tls.getThisValue(globalObject), globalObject, default_data); @@ -916,6 +921,7 @@ pub const Listener = struct { .socket = undefined, .connection = null, .protos = null, + .server_name = null, }; TCPSocket.dataSetCached(tcp.getThisValue(globalObject), globalObject, default_data); @@ -987,6 +993,7 @@ fn NewSocket(comptime ssl: bool) type { connection: ?Listener.UnixOrHost = null, protos: ?[]const u8, owned_protos: bool = true, + server_name: ?[]const u8 = null, // TODO: switch to something that uses `visitAggregate` and have the // `Listener` keep a list of all the sockets JSValue in there @@ -1170,7 +1177,14 @@ fn NewSocket(comptime ssl: bool) type { if (comptime ssl) { var ssl_ptr: *BoringSSL.SSL = @ptrCast(*BoringSSL.SSL, socket.getNativeHandle()); if (!ssl_ptr.isInitFinished()) { - if (this.connection) |connection| { + if (this.server_name) |server_name| { + const host = normalizeHost(server_name); + if (host.len > 0) { + var host__ = default_allocator.dupeZ(u8, host) catch unreachable; + defer default_allocator.free(host__); + ssl_ptr.setHostname(host__); + } + } else if (this.connection) |connection| { if (connection == .host) { const host = normalizeHost(connection.host.host); if (host.len > 0) { @@ -1248,6 +1262,8 @@ fn NewSocket(comptime ssl: bool) type { pub fn onEnd(this: *This, socket: Socket) void { JSC.markBinding(@src()); log("onEnd", .{}); + if (this.detached) return; + this.detached = true; defer this.markInactive(); @@ -1815,6 +1831,11 @@ fn NewSocket(comptime ssl: bool) type { } } + if (this.server_name) |server_name| { + this.server_name = null; + default_allocator.free(server_name); + } + if (this.connection) |connection| { this.connection = null; connection.deinit(); @@ -1898,9 +1919,6 @@ fn NewSocket(comptime ssl: bool) type { if (comptime ssl == false) { return JSValue.jsUndefined(); } - if (this.detached) { - return JSValue.jsUndefined(); - } if (this.handlers.is_server) { globalObject.throw("Cannot issue SNI from a TLS server-side socket", .{}); @@ -1919,9 +1937,20 @@ fn NewSocket(comptime ssl: bool) type { return .zero; } - const slice = server_name.getZigString(globalObject).toSlice(bun.default_allocator); - defer slice.deinit(); - const host = normalizeHost(slice.slice()); + const slice = server_name.getZigString(globalObject).toOwnedSlice(bun.default_allocator) catch unreachable; + if (this.server_name) |old| { + this.server_name = slice; + default_allocator.free(old); + } else { + this.server_name = slice; + } + + if (this.detached) { + // will be attached onOpen + return JSValue.jsUndefined(); + } + + const host = normalizeHost(@as([]const u8, slice)); if (host.len > 0) { var ssl_ptr: *BoringSSL.SSL = @ptrCast(*BoringSSL.SSL, this.socket.getNativeHandle()); if (ssl_ptr.isInitFinished()) { @@ -2040,6 +2069,10 @@ fn NewSocket(comptime ssl: bool) type { .protos = if (protos) |p| (bun.default_allocator.dupe(u8, p[0..protos_len]) catch unreachable) else null, }; + if (socket_config.server_name) |server_name| { + tls.server_name = bun.default_allocator.dupe(u8, server_name[0..bun.len(server_name)]) catch unreachable; + } + var tls_js_value = tls.getThisValue(globalObject); TLSSocket.dataSetCached(tls_js_value, globalObject, default_data); @@ -2061,6 +2094,7 @@ fn NewSocket(comptime ssl: bool) type { bun.default_allocator.destroy(tls); return JSValue.jsUndefined(); }; + tls.socket = new_socket; var raw = handlers.vm.allocator.create(TLSSocket) catch @panic("OOM"); diff --git a/test/js/third_party/postgres/package.json b/test/js/third_party/postgres/package.json new file mode 100644 index 000000000..90809f48f --- /dev/null +++ b/test/js/third_party/postgres/package.json @@ -0,0 +1,8 @@ +{ + "name": "postgres", + "dependencies": { + "pg": "8.11.1", + "postgres": "3.3.5", + "pg-connection-string": "2.6.1" + } +} diff --git a/test/js/third_party/postgres/postgres.test.ts b/test/js/third_party/postgres/postgres.test.ts new file mode 100644 index 000000000..490192ae7 --- /dev/null +++ b/test/js/third_party/postgres/postgres.test.ts @@ -0,0 +1,56 @@ +import { test, expect, describe } from "bun:test"; +import { Pool } from "pg"; +import { parse } from "pg-connection-string"; +import postgres from "postgres"; + +const CONNECTION_STRING = process.env.TLS_POSTGRES_DATABASE_URL; + +const it = CONNECTION_STRING ? test : test.skip; + +describe("pg", () => { + it("should connect using TLS", async () => { + const pool = new Pool(parse(CONNECTION_STRING as string)); + try { + const { rows } = await pool.query("SELECT version()", []); + const [{ version }] = rows; + + expect(version).toMatch(/PostgreSQL/); + } finally { + pool.end(); + } + }); +}); + +describe("postgres", () => { + it("should connect using TLS", async () => { + const sql = postgres(CONNECTION_STRING as string); + try { + const [{ version }] = await sql`SELECT version()`; + expect(version).toMatch(/PostgreSQL/); + } finally { + sql.end(); + } + }); + + it("should insert, select and delete", async () => { + const sql = postgres(CONNECTION_STRING as string); + try { + await sql`CREATE TABLE IF NOT EXISTS users ( + user_id serial PRIMARY KEY, + username VARCHAR ( 50 ) NOT NULL + );`; + + const [{ user_id, username }] = await sql`insert into users (username) values ('bun') returning *`; + expect(username).toBe("bun"); + + const [{ user_id: user_id2, username: username2 }] = await sql`select * from users where user_id = ${user_id}`; + expect(username2).toBe("bun"); + expect(user_id2).toBe(user_id); + + const [{ username: username3 }] = await sql`delete from users where user_id = ${user_id} returning *`; + expect(username3).toBe("bun"); + } finally { + sql.end(); + } + }); +}); diff --git a/test/package.json b/test/package.json index d26875126..5529d3f20 100644 --- a/test/package.json +++ b/test/package.json @@ -26,7 +26,10 @@ "undici": "5.20.0", "vitest": "0.32.2", "webpack": "5.88.0", - "webpack-cli": "4.7.2" + "webpack-cli": "4.7.2", + "pg": "8.11.1", + "postgres": "3.3.5", + "pg-connection-string": "2.6.1" }, "private": true, "scripts": { -- cgit v1.2.3 From 3a93ddfab35841f242db0cdf472ce941bfa94984 Mon Sep 17 00:00:00 2001 From: Ciro Spaciari Date: Tue, 4 Jul 2023 19:41:37 -0300 Subject: use sengrid account on nodemailer test (#3517) --- test/js/third_party/nodemailer/nodemailer.test.ts | 8 ++++++-- .../nodemailer/process-nodemailer-fixture.js | 21 +++++++++------------ 2 files changed, 15 insertions(+), 14 deletions(-) (limited to 'test/js') diff --git a/test/js/third_party/nodemailer/nodemailer.test.ts b/test/js/third_party/nodemailer/nodemailer.test.ts index 265112608..36a229524 100644 --- a/test/js/third_party/nodemailer/nodemailer.test.ts +++ b/test/js/third_party/nodemailer/nodemailer.test.ts @@ -2,10 +2,14 @@ import { test, expect, describe } from "bun:test"; import { bunRun } from "harness"; import path from "path"; +const it = process.env.SMTP_SENDGRID_KEY && process.env.SMTP_SENDGRID_SENDER ? test : test.skip; describe("nodemailer", () => { - test("basic smtp", async () => { + it("basic smtp", async () => { try { - const info = bunRun(path.join(import.meta.dir, "process-nodemailer-fixture.js")); + const info = bunRun(path.join(import.meta.dir, "process-nodemailer-fixture.js"), { + SMTP_SENDGRID_SENDER: process.env.SMTP_SENDGRID_SENDER as string, + SMTP_SENDGRID_KEY: process.env.SMTP_SENDGRID_KEY as string, + }); expect(info.stdout).toBe("true"); expect(info.stderr || "").toBe(""); } catch (err: any) { diff --git a/test/js/third_party/nodemailer/process-nodemailer-fixture.js b/test/js/third_party/nodemailer/process-nodemailer-fixture.js index a54735f26..49ab6a516 100644 --- a/test/js/third_party/nodemailer/process-nodemailer-fixture.js +++ b/test/js/third_party/nodemailer/process-nodemailer-fixture.js @@ -1,23 +1,20 @@ -import nodemailer from "nodemailer"; -const account = await nodemailer.createTestAccount(); +const nodemailer = require("nodemailer"); const transporter = nodemailer.createTransport({ - host: account.smtp.host, - port: account.smtp.port, - secure: account.smtp.secure, + host: "smtp.sendgrid.net", + port: 587, + secure: false, auth: { - user: account.user, // generated ethereal user - pass: account.pass, // generated ethereal password + user: "apikey", // generated ethereal user + pass: process.env.SMTP_SENDGRID_KEY, // generated ethereal password }, }); // send mail with defined transport object let info = await transporter.sendMail({ - from: '"Fred Foo 👻" ', // sender address - to: "example@gmail.com", // list of receivers + from: process.env.SMTP_SENDGRID_SENDER, // sender address + to: process.env.SMTP_SENDGRID_SENDER, // list of receivers subject: "Hello ✔", // Subject line text: "Hello world?", // plain text body html: "Hello world?", // html body }); -const url = nodemailer.getTestMessageUrl(info); -console.log(typeof url === "string" && url.length > 0); -transporter.close(); +console.log(typeof info?.messageId === "string"); -- cgit v1.2.3 From a7f5a91cfbf93a31cc53974a6c27185e57a57f64 Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Wed, 5 Jul 2023 00:08:59 -0700 Subject: Fixes #3520 (#3522) * Fixes #3520 * Update html_rewriter.zig --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> --- src/bun.js/api/html_rewriter.zig | 26 ++++++++------------------ src/deps/lol-html.zig | 11 ++++++----- test/js/workerd/html-rewriter.test.js | 23 +++++++++++++++++++++++ 3 files changed, 37 insertions(+), 23 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/api/html_rewriter.zig b/src/bun.js/api/html_rewriter.zig index 532e0ae1e..b309e07d7 100644 --- a/src/bun.js/api/html_rewriter.zig +++ b/src/bun.js/api/html_rewriter.zig @@ -1558,27 +1558,16 @@ pub const AttributeIterator = struct { return JSC.JSValue.jsNull(); }; - // TODO: don't clone here const value = attribute.value(); const name = attribute.name(); - defer name.deinit(); - defer value.deinit(); - var strs = [2]ZigString{ - ZigString.init(name.slice()), - ZigString.init(value.slice()), - }; - - var valid_strs: []ZigString = strs[0..2]; - - var array = JSC.JSValue.createStringArray( + return bun.String.toJSArray( globalObject, - valid_strs.ptr, - valid_strs.len, - true, + &[_]bun.String{ + name.toString(), + value.toString(), + }, ); - - return array; } }; pub const Element = struct { @@ -1864,8 +1853,9 @@ pub const Element = struct { pub fn getNamespaceURI(this: *Element, globalObject: *JSGlobalObject) JSValue { if (this.element == null) return JSValue.jsUndefined(); - - return ZigString.init(std.mem.span(this.element.?.namespaceURI())).toValueGC(globalObject); + var str = bun.String.create(std.mem.span(this.element.?.namespaceURI())); + defer str.deref(); + return str.toJS(globalObject); } pub fn getAttributes(this: *Element, globalObject: *JSGlobalObject) JSValue { diff --git a/src/deps/lol-html.zig b/src/deps/lol-html.zig index 50dab9592..bac422fb0 100644 --- a/src/deps/lol-html.zig +++ b/src/deps/lol-html.zig @@ -570,16 +570,17 @@ pub const HTMLString = extern struct { lol_html_str_free(.{ .ptr = @ptrCast([*]const u8, ptr), .len = len }); } - pub fn toJS(this: HTMLString, globalThis: *bun.JSC.JSGlobalObject) bun.JSC.JSValue { + pub fn toString(this: HTMLString) bun.String { const bytes = this.slice(); if (bun.strings.isAllASCII(bytes)) { - var external = bun.String.createExternal(bytes, true, @constCast(bytes.ptr), &deinit_external); - defer external.deref(); - return external.toJS(globalThis); + return bun.String.createExternal(bytes, true, @constCast(bytes.ptr), &deinit_external); } defer this.deinit(); + return bun.String.create(bytes); + } - var str = bun.String.create(bytes); + pub fn toJS(this: HTMLString, globalThis: *bun.JSC.JSGlobalObject) bun.JSC.JSValue { + var str = this.toString(); defer str.deref(); return str.toJS(globalThis); } diff --git a/test/js/workerd/html-rewriter.test.js b/test/js/workerd/html-rewriter.test.js index aaf912aff..44961df3b 100644 --- a/test/js/workerd/html-rewriter.test.js +++ b/test/js/workerd/html-rewriter.test.js @@ -365,3 +365,26 @@ it("get attribute - ascii", async () => { expect(el).toEqual("asciii"); } }); + +it("#3520", async () => { + const pairs = []; + + await new HTMLRewriter() + .on("p", { + element(element) { + for (const pair of element.attributes) { + pairs.push(pair); + } + }, + }) + .transform(new Response('

')) + .text(); + + expect(pairs).toEqual([ + ["šž", "Õäöü"], + ["ab", "Õäöü"], + ["šž", "Õäöü"], + ["šž", "dc"], + ["šž", "🕵🏻"], + ]); +}); -- cgit v1.2.3 From 3aaec120e7ac26b3904895d2783a08352b63201a Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Wed, 5 Jul 2023 03:46:10 -0700 Subject: Fixes #3512 (#3526) * Fixes #3512 * Fix `clearTimeout` and `clearInterval` not cancelling jobs same-tick --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> --- packages/bun-types/timers.d.ts | 4 +- src/bun.js/api/bun.zig | 100 ++++++++++++++++------- test/js/node/timers/node-timers.test.ts | 13 +-- test/js/web/timers/setTimeout-unref-fixture-2.js | 9 ++ test/js/web/timers/setTimeout-unref-fixture-3.js | 7 ++ test/js/web/timers/setTimeout-unref-fixture-4.js | 5 ++ test/js/web/timers/setTimeout-unref-fixture-5.js | 5 ++ test/js/web/timers/setTimeout-unref-fixture.js | 12 +++ test/js/web/timers/setTimeout.test.js | 51 +++++++++++- 9 files changed, 168 insertions(+), 38 deletions(-) create mode 100644 test/js/web/timers/setTimeout-unref-fixture-2.js create mode 100644 test/js/web/timers/setTimeout-unref-fixture-3.js create mode 100644 test/js/web/timers/setTimeout-unref-fixture-4.js create mode 100644 test/js/web/timers/setTimeout-unref-fixture-5.js create mode 100644 test/js/web/timers/setTimeout-unref-fixture.js (limited to 'test/js') diff --git a/packages/bun-types/timers.d.ts b/packages/bun-types/timers.d.ts index ab1e29953..0d2f3e745 100644 --- a/packages/bun-types/timers.d.ts +++ b/packages/bun-types/timers.d.ts @@ -11,8 +11,8 @@ declare module "timers" { class Timer { - ref(): void; - unref(): void; + ref(): Timer; + unref(): Timer; hasRef(): boolean; } diff --git a/src/bun.js/api/bun.zig b/src/bun.js/api/bun.zig index 1e5a5e004..fbf567446 100644 --- a/src/bun.js/api/bun.zig +++ b/src/bun.js/api/bun.zig @@ -3715,21 +3715,32 @@ pub const Timer = struct { const kind = this.kind; var map: *TimeoutMap = vm.timer.maps.get(kind); - // This doesn't deinit the timer - // Timers are deinit'd separately - // We do need to handle when the timer is cancelled after the job has been enqueued - if (kind != .setInterval) { - if (map.fetchSwapRemove(this.id) == null) { - // if the timeout was cancelled, don't run the callback - this.deinit(); - return; - } - } else { - if (!map.contains(this.id)) { - // if the interval was cancelled, don't run the callback - this.deinit(); - return; + const should_cancel_job = brk: { + // This doesn't deinit the timer + // Timers are deinit'd separately + // We do need to handle when the timer is cancelled after the job has been enqueued + if (kind != .setInterval) { + if (map.get(this.id)) |tombstone_or_timer| { + break :brk tombstone_or_timer != null; + } else { + // clearTimeout has been called + break :brk true; + } + } else { + if (map.get(this.id)) |tombstone_or_timer| { + // .refresh() was called after CallbackJob enqueued + break :brk tombstone_or_timer == null; + } } + + break :brk false; + }; + + if (should_cancel_job) { + this.deinit(); + return; + } else if (kind != .setInterval) { + _ = map.swapRemove(this.id); } var args_buf: [8]JSC.JSValue = undefined; @@ -3825,10 +3836,29 @@ pub const Timer = struct { return timer_js; } - pub fn doRef(this: *TimerObject, _: *JSC.JSGlobalObject, _: *JSC.CallFrame) callconv(.C) JSValue { + pub fn doRef(this: *TimerObject, globalObject: *JSC.JSGlobalObject, callframe: *JSC.CallFrame) callconv(.C) JSValue { + const this_value = callframe.this(); + this_value.ensureStillAlive(); if (this.ref_count > 0) this.ref_count +|= 1; - return JSValue.jsUndefined(); + + var vm = globalObject.bunVM(); + switch (this.kind) { + .setTimeout, .setImmediate, .setInterval => { + if (vm.timer.maps.get(this.kind).getPtr(this.id)) |val_| { + if (val_.*) |*val| { + val.poll_ref.ref(vm); + + if (val.did_unref_timer) { + val.did_unref_timer = false; + vm.uws_event_loop.?.num_polls += 1; + } + } + } + }, + } + + return this_value; } pub fn doRefresh(this: *TimerObject, globalThis: *JSC.JSGlobalObject, callframe: *JSC.CallFrame) callconv(.C) JSValue { @@ -3924,20 +3954,27 @@ pub const Timer = struct { return JSValue.jsUndefined(); } - pub fn doUnref(this: *TimerObject, globalObject: *JSC.JSGlobalObject, _: *JSC.CallFrame) callconv(.C) JSValue { + pub fn doUnref(this: *TimerObject, globalObject: *JSC.JSGlobalObject, callframe: *JSC.CallFrame) callconv(.C) JSValue { + const this_value = callframe.this(); + this_value.ensureStillAlive(); this.ref_count -|= 1; - if (this.ref_count == 0) { - switch (this.kind) { - .setTimeout, .setImmediate => { - _ = clearTimeout(globalObject, JSValue.jsNumber(this.id)); - }, - .setInterval => { - _ = clearInterval(globalObject, JSValue.jsNumber(this.id)); - }, - } + var vm = globalObject.bunVM(); + switch (this.kind) { + .setTimeout, .setImmediate, .setInterval => { + if (vm.timer.maps.get(this.kind).getPtr(this.id)) |val_| { + if (val_.*) |*val| { + val.poll_ref.unref(vm); + + if (!val.did_unref_timer) { + val.did_unref_timer = true; + vm.uws_event_loop.?.num_polls -= 1; + } + } + } + }, } - return JSValue.jsUndefined(); + return this_value; } pub fn hasRef(this: *TimerObject, globalObject: *JSC.JSGlobalObject, _: *JSC.CallFrame) callconv(.C) JSValue { return JSValue.jsBoolean(this.ref_count > 0 and globalObject.bunVM().timer.maps.get(this.kind).contains(this.id)); @@ -3959,6 +3996,7 @@ pub const Timer = struct { callback: JSC.Strong = .{}, globalThis: *JSC.JSGlobalObject, timer: *uws.Timer, + did_unref_timer: bool = false, poll_ref: JSC.PollRef = JSC.PollRef.init(), arguments: JSC.Strong = .{}, @@ -4060,8 +4098,14 @@ pub const Timer = struct { var vm = this.globalThis.bunVM(); - this.poll_ref.unrefOnNextTick(vm); + this.poll_ref.unref(vm); + this.timer.deinit(); + if (this.did_unref_timer) { + // balance double-unrefing + vm.uws_event_loop.?.num_polls += 1; + } + this.callback.deinit(); this.arguments.deinit(); } diff --git a/test/js/node/timers/node-timers.test.ts b/test/js/node/timers/node-timers.test.ts index e6fa48010..412eabc22 100644 --- a/test/js/node/timers/node-timers.test.ts +++ b/test/js/node/timers/node-timers.test.ts @@ -1,17 +1,18 @@ import { describe, test } from "bun:test"; -import { setTimeout, clearTimeout, setInterval, setImmediate } from "node:timers"; +import { setTimeout, clearTimeout, setInterval, clearInterval, setImmediate } from "node:timers"; -for (const fn of [setTimeout, setInterval, setImmediate]) { +for (const fn of [setTimeout, setInterval]) { describe(fn.name, () => { test("unref is possible", done => { const timer = fn(() => { done(new Error("should not be called")); - }, 1); - fn(() => { + }, 1).unref(); + const other = fn(() => { + clearInterval(other); done(); }, 2); - timer.unref(); - if (fn !== setImmediate) clearTimeout(timer); + if (fn === setTimeout) clearTimeout(timer); + if (fn === setInterval) clearInterval(timer); }); }); } diff --git a/test/js/web/timers/setTimeout-unref-fixture-2.js b/test/js/web/timers/setTimeout-unref-fixture-2.js new file mode 100644 index 000000000..6a78f13cd --- /dev/null +++ b/test/js/web/timers/setTimeout-unref-fixture-2.js @@ -0,0 +1,9 @@ +setTimeout(() => { + console.log("TEST FAILED!"); +}, 100) + .ref() + .unref(); + +setTimeout(() => { + // this one should always run +}, 1); diff --git a/test/js/web/timers/setTimeout-unref-fixture-3.js b/test/js/web/timers/setTimeout-unref-fixture-3.js new file mode 100644 index 000000000..41808f5fc --- /dev/null +++ b/test/js/web/timers/setTimeout-unref-fixture-3.js @@ -0,0 +1,7 @@ +setTimeout(() => { + setTimeout(() => {}, 999_999); +}, 100).unref(); + +setTimeout(() => { + // this one should always run +}, 1); diff --git a/test/js/web/timers/setTimeout-unref-fixture-4.js b/test/js/web/timers/setTimeout-unref-fixture-4.js new file mode 100644 index 000000000..9968f3b36 --- /dev/null +++ b/test/js/web/timers/setTimeout-unref-fixture-4.js @@ -0,0 +1,5 @@ +setTimeout(() => { + console.log("TEST PASSED!"); +}, 1) + .unref() + .ref(); diff --git a/test/js/web/timers/setTimeout-unref-fixture-5.js b/test/js/web/timers/setTimeout-unref-fixture-5.js new file mode 100644 index 000000000..e5caa1be4 --- /dev/null +++ b/test/js/web/timers/setTimeout-unref-fixture-5.js @@ -0,0 +1,5 @@ +setTimeout(() => { + console.log("TEST FAILED!"); +}, 100) + .ref() + .unref(); diff --git a/test/js/web/timers/setTimeout-unref-fixture.js b/test/js/web/timers/setTimeout-unref-fixture.js new file mode 100644 index 000000000..97a0f78a2 --- /dev/null +++ b/test/js/web/timers/setTimeout-unref-fixture.js @@ -0,0 +1,12 @@ +const timer = setTimeout(() => {}, 999_999_999); +if (timer.unref() !== timer) throw new Error("Expected timer.unref() === timer"); + +var ranCount = 0; +const going2Refresh = setTimeout(() => { + if (ranCount < 1) going2Refresh.refresh(); + ranCount++; + + if (ranCount === 2) { + console.log("SUCCESS"); + } +}, 1); diff --git a/test/js/web/timers/setTimeout.test.js b/test/js/web/timers/setTimeout.test.js index dbe89dea8..eef6bbae0 100644 --- a/test/js/web/timers/setTimeout.test.js +++ b/test/js/web/timers/setTimeout.test.js @@ -1,5 +1,7 @@ +import { spawnSync } from "bun"; import { it, expect } from "bun:test"; - +import { bunEnv, bunExe } from "harness"; +import path from "node:path"; it("setTimeout", async () => { var lastID = -1; const result = await new Promise((resolve, reject) => { @@ -172,11 +174,56 @@ it.skip("order of setTimeouts", done => { Promise.resolve().then(maybeDone(() => nums.push(1))); }); +it("setTimeout -> refresh", () => { + const { exitCode, stdout } = spawnSync({ + cmd: [bunExe(), path.join(import.meta.dir, "setTimeout-unref-fixture.js")], + env: bunEnv, + }); + expect(exitCode).toBe(0); + expect(stdout.toString()).toBe("SUCCESS\n"); +}); + +it("setTimeout -> unref -> ref works", () => { + const { exitCode, stdout } = spawnSync({ + cmd: [bunExe(), path.join(import.meta.dir, "setTimeout-unref-fixture-4.js")], + env: bunEnv, + }); + expect(exitCode).toBe(0); + expect(stdout.toString()).toBe("TEST PASSED!\n"); +}); + +it("setTimeout -> ref -> unref works, even if there is another timer", () => { + const { exitCode, stdout } = spawnSync({ + cmd: [bunExe(), path.join(import.meta.dir, "setTimeout-unref-fixture-2.js")], + env: bunEnv, + }); + expect(exitCode).toBe(0); + expect(stdout.toString()).toBe(""); +}); + +it("setTimeout -> ref -> unref works", () => { + const { exitCode, stdout } = spawnSync({ + cmd: [bunExe(), path.join(import.meta.dir, "setTimeout-unref-fixture-5.js")], + env: bunEnv, + }); + expect(exitCode).toBe(0); + expect(stdout.toString()).toBe(""); +}); + +it("setTimeout -> unref doesn't keep event loop alive forever", () => { + const { exitCode, stdout } = spawnSync({ + cmd: [bunExe(), path.join(import.meta.dir, "setTimeout-unref-fixture-3.js")], + env: bunEnv, + }); + expect(exitCode).toBe(0); + expect(stdout.toString()).toBe(""); +}); + it("setTimeout should refresh N times", done => { let count = 0; let timer = setTimeout(() => { count++; - timer.refresh(); + expect(timer.refresh()).toBe(timer); }, 50); setTimeout(() => { -- cgit v1.2.3 From 95ddfcc4377350b1d604c39c36562bde45fad2a9 Mon Sep 17 00:00:00 2001 From: Ciro Spaciari Date: Thu, 6 Jul 2023 16:01:16 -0300 Subject: fix query without slash (#3547) --- src/url.zig | 20 ++++++++++---------- test/js/web/fetch/fetch.test.ts | 4 ++++ 2 files changed, 14 insertions(+), 10 deletions(-) (limited to 'test/js') diff --git a/src/url.zig b/src/url.zig index 66c4ff015..af13b139c 100644 --- a/src/url.zig +++ b/src/url.zig @@ -348,8 +348,8 @@ pub const URL = struct { url.username = str[0..i]; return i + 1; }, - // if we reach a slash, there's no username - '/' => { + // if we reach a slash or "?", there's no username + '?', '/' => { return null; }, else => {}, @@ -374,8 +374,8 @@ pub const URL = struct { if (Environment.allow_assert) std.debug.assert(str[i..].len < 2 or std.mem.readIntNative(u16, str[i..][0..2]) != std.mem.readIntNative(u16, "//")); return i + 1; }, - // if we reach a slash, there's no password - '/' => { + // if we reach a slash or "?", there's no password + '?', '/' => { return null; }, else => {}, @@ -402,8 +402,8 @@ pub const URL = struct { ipv6_i = if (ipv6_i == null and str[i] == ']') i else ipv6_i; colon_i = if (ipv6_i != null and colon_i == null and str[i] == ':') i else colon_i; switch (str[i]) { - // alright, we found the slash - '/' => { + // alright, we found the slash or "?" + '?', '/' => { break; }, else => {}, @@ -421,8 +421,8 @@ pub const URL = struct { } } else { - // look for the first "/" - // if we have a slash, anything before that is the host + // look for the first "/" or "?" + // if we have a slash or "?", anything before that is the host // anything before the colon is the hostname // anything after the colon but before the slash is the port // the origin is the scheme before the slash @@ -432,8 +432,8 @@ pub const URL = struct { colon_i = if (colon_i == null and str[i] == ':') i else colon_i; switch (str[i]) { - // alright, we found the slash - '/' => { + // alright, we found the slash or "?" + '?', '/' => { break; }, else => {}, diff --git a/test/js/web/fetch/fetch.test.ts b/test/js/web/fetch/fetch.test.ts index 6b87cc613..768818420 100644 --- a/test/js/web/fetch/fetch.test.ts +++ b/test/js/web/fetch/fetch.test.ts @@ -1175,6 +1175,10 @@ it("#2794", () => { expect(typeof Bun.fetch.bind).toBe("function"); }); +it("#3545", () => { + expect(() => fetch("http://example.com?a=b")).not.toThrow(); +}); + it("invalid header doesnt crash", () => { expect(() => fetch("http://example.com", { -- cgit v1.2.3 From 4d2c86fd5cb29ed0c76e5763de7f935e15ea0414 Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Thu, 6 Jul 2023 17:08:01 -0700 Subject: Add util.toUSVString --- src/js/node/util.js | 5 +++++ src/js/out/modules/node/util.js | 6 +++++- test/js/node/util/util.test.js | 17 +++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) (limited to 'test/js') diff --git a/src/js/node/util.js b/src/js/node/util.js index 8f20a4bc1..2ec4aadb9 100644 --- a/src/js/node/util.js +++ b/src/js/node/util.js @@ -552,6 +552,9 @@ function callbackify(original) { } export var TextDecoder = globalThis.TextDecoder; export var TextEncoder = globalThis.TextEncoder; +var toUSVString = input => { + return (input + "").toWellFormed(); +}; Object.assign(cjs_exports, { format, @@ -577,6 +580,7 @@ Object.assign(cjs_exports, { isBuffer, log, inherits, + toUSVString, promisify, callbackify, isDeepStrictEqual, @@ -609,4 +613,5 @@ export { promisify, callbackify, isDeepStrictEqual, + toUSVString, }; diff --git a/src/js/out/modules/node/util.js b/src/js/out/modules/node/util.js index 48b22871f..eade9e0d9 100644 --- a/src/js/out/modules/node/util.js +++ b/src/js/out/modules/node/util.js @@ -386,7 +386,9 @@ var isRegExp2 = types.isRegExp, isDate2 = types.isDate, isError = types.isNative return Object.defineProperties(fn, getOwnPropertyDescriptors(original)); }; promisify.custom = kCustomPromisifiedSymbol; -var { TextDecoder, TextEncoder } = globalThis; +var { TextDecoder, TextEncoder } = globalThis, toUSVString = (input) => { + return (input + "").toWellFormed(); +}; Object.assign(cjs_exports, { format, deprecate, @@ -411,6 +413,7 @@ Object.assign(cjs_exports, { isBuffer, log, inherits, + toUSVString, promisify, callbackify, isDeepStrictEqual, @@ -420,6 +423,7 @@ Object.assign(cjs_exports, { }); export { default2 as types, + toUSVString, promisify, log, isUndefined, diff --git a/test/js/node/util/util.test.js b/test/js/node/util/util.test.js index 45ecffda8..741b27d19 100644 --- a/test/js/node/util/util.test.js +++ b/test/js/node/util/util.test.js @@ -36,6 +36,23 @@ const deepStrictEqual = (...args) => { // Tests adapted from https://github.com/nodejs/node/blob/main/test/parallel/test-util.js describe("util", () => { + it("toUSVString", () => { + const strings = [ + // Lone high surrogate + "ab\uD800", + "ab\uD800c", + // Lone low surrogate + "\uDFFFab", + "c\uDFFFab", + // Well-formed + "abc", + "ab\uD83D\uDE04c", + ]; + const outputs = ["ab�", "ab�c", "�ab", "c�ab", "abc", "ab😄c"]; + for (let i = 0; i < strings.length; i++) { + expect(util.toUSVString(strings[i])).toBe(outputs[i]); + } + }); describe("isArray", () => { it("all cases", () => { strictEqual(util.isArray([]), true); -- cgit v1.2.3 From 0ecdbf4793f19b3244a3e099bd47e3e81e993811 Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Fri, 7 Jul 2023 00:33:43 -0700 Subject: [node:fs] `read`, `write` - support large numbers and BigInt (#3556) Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> --- src/bun.js/bindings/bindings.zig | 5 ++-- src/bun.js/node/node_fs.zig | 50 +++++++++++++++++++------------------- test/js/node/fs/fs.test.ts | 52 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 80 insertions(+), 27 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/bindings/bindings.zig b/src/bun.js/bindings/bindings.zig index 07882d857..c8d0515e9 100644 --- a/src/bun.js/bindings/bindings.zig +++ b/src/bun.js/bindings/bindings.zig @@ -3445,6 +3445,7 @@ pub const JSValue = enum(JSValueReprInt) { c_int => @intCast(c_int, toInt32(this)), ?AnyPromise => asAnyPromise(this), u52 => @truncate(u52, @intCast(u64, @max(this.toInt64(), 0))), + i52 => @truncate(i52, @intCast(i52, this.toInt64())), u64 => toUInt64NoTruncate(this), u8 => @truncate(u8, toU32(this)), i16 => @truncate(i16, toInt32(this)), @@ -4620,11 +4621,11 @@ pub const JSValue = enum(JSValueReprInt) { } pub inline fn toU16(this: JSValue) u16 { - return @truncate(u16, this.toU32()); + return @truncate(u16, @max(this.toInt32(), 0)); } pub inline fn toU32(this: JSValue) u32 { - return @intCast(u32, @max(this.toInt32(), 0)); + return @intCast(u32, @min(@max(this.toInt64(), 0), std.math.maxInt(u32))); } /// This function supports: diff --git a/src/bun.js/node/node_fs.zig b/src/bun.js/node/node_fs.zig index fa33a575b..74a41c5bd 100644 --- a/src/bun.js/node/node_fs.zig +++ b/src/bun.js/node/node_fs.zig @@ -35,7 +35,7 @@ const Mode = JSC.Node.Mode; const uid_t = std.os.uid_t; const gid_t = std.os.gid_t; /// u63 to allow one null bit -const ReadPosition = u63; +const ReadPosition = i64; const Stats = JSC.Node.Stats; const Dirent = JSC.Node.Dirent; @@ -1524,7 +1524,7 @@ pub const Arguments = struct { // fs.write(fd, string[, position[, encoding]], callback) .string => { if (current.isNumber()) { - args.position = current.toU32(); + args.position = current.to(i52); arguments.eat(); current = arguments.next() orelse break :parse; } @@ -1540,18 +1540,18 @@ pub const Arguments = struct { break :parse; } - if (!current.isNumber()) break :parse; - args.offset = current.toU32(); + if (!(current.isNumber() or current.isBigInt())) break :parse; + args.offset = current.to(u52); arguments.eat(); current = arguments.next() orelse break :parse; - if (!current.isNumber()) break :parse; - args.length = current.toU32(); + if (!(current.isNumber() or current.isBigInt())) break :parse; + args.length = current.to(u52); arguments.eat(); current = arguments.next() orelse break :parse; - if (!current.isNumber()) break :parse; - args.position = current.toU32(); + if (!(current.isNumber() or current.isBigInt())) break :parse; + args.position = current.to(i52); arguments.eat(); }, } @@ -1631,8 +1631,8 @@ pub const Arguments = struct { if (arguments.next()) |current| { arguments.eat(); - if (current.isNumber()) { - args.offset = current.toU32(); + if (current.isNumber() or current.isBigInt()) { + args.offset = current.to(u52); if (arguments.remaining.len < 2) { JSC.throwInvalidArguments( @@ -1644,8 +1644,8 @@ pub const Arguments = struct { return null; } - - args.length = arguments.remaining[0].toU32(); + if (arguments.remaining[0].isNumber() or arguments.remaining[0].isBigInt()) + args.length = arguments.remaining[0].to(u52); if (args.length == 0) { JSC.throwInvalidArguments( @@ -1658,26 +1658,26 @@ pub const Arguments = struct { return null; } - const position: i32 = if (arguments.remaining[1].isNumber()) - arguments.remaining[1].toInt32() - else - -1; + if (arguments.remaining[1].isNumber() or arguments.remaining[1].isBigInt()) + args.position = @intCast(ReadPosition, arguments.remaining[1].to(i52)); - args.position = if (position > -1) @intCast(ReadPosition, position) else null; arguments.remaining = arguments.remaining[2..]; } else if (current.isObject()) { - if (current.getIfPropertyExists(ctx.ptr(), "offset")) |num| { - args.offset = num.toU32(); + if (current.getTruthy(ctx.ptr(), "offset")) |num| { + if (num.isNumber() or num.isBigInt()) { + args.offset = num.to(u52); + } } - if (current.getIfPropertyExists(ctx.ptr(), "length")) |num| { - args.length = num.toU32(); + if (current.getTruthy(ctx.ptr(), "length")) |num| { + if (num.isNumber() or num.isBigInt()) { + args.length = num.to(u52); + } } - if (current.getIfPropertyExists(ctx.ptr(), "position")) |num| { - const position: i32 = if (num.isEmptyOrUndefinedOrNull()) -1 else num.coerce(i32, ctx); - if (position > -1) { - args.position = @intCast(ReadPosition, position); + if (current.getTruthy(ctx.ptr(), "position")) |num| { + if (num.isNumber() or num.isBigInt()) { + args.position = num.to(i52); } } } diff --git a/test/js/node/fs/fs.test.ts b/test/js/node/fs/fs.test.ts index 272522fc0..3b1688c15 100644 --- a/test/js/node/fs/fs.test.ts +++ b/test/js/node/fs/fs.test.ts @@ -278,6 +278,41 @@ it("readdirSync throws when given a file path with trailing slash", () => { describe("readSync", () => { const firstFourBytes = new Uint32Array(new TextEncoder().encode("File").buffer)[0]; + + it("works on large files", () => { + const dest = join(tmpdir(), "readSync-large-file.txt"); + rmSync(dest, { force: true }); + + const writefd = openSync(dest, "w"); + writeSync(writefd, Buffer.from([0x10]), 0, 1, 4_900_000_000); + closeSync(writefd); + + const fd = openSync(dest, "r"); + const out = Buffer.alloc(1); + const bytes = readSync(fd, out, 0, 1, 4_900_000_000); + expect(bytes).toBe(1); + expect(out[0]).toBe(0x10); + closeSync(fd); + rmSync(dest, { force: true }); + }); + + it("works with bigint on read", () => { + const dest = join(tmpdir(), "readSync-large-file-bigint.txt"); + rmSync(dest, { force: true }); + + const writefd = openSync(dest, "w"); + writeSync(writefd, Buffer.from([0x10]), 0, 1, 400); + closeSync(writefd); + + const fd = openSync(dest, "r"); + const out = Buffer.alloc(1); + const bytes = readSync(fd, out, 0, 1, 400n as any); + expect(bytes).toBe(1); + expect(out[0]).toBe(0x10); + closeSync(fd); + rmSync(dest, { force: true }); + }); + it("works with a position set to 0", () => { const fd = openSync(import.meta.dir + "/readFileSync.txt", "r"); const four = new Uint8Array(4); @@ -367,6 +402,23 @@ it("preadv", () => { }); describe("writeSync", () => { + it("works with bigint", () => { + const dest = join(tmpdir(), "writeSync-large-file-bigint.txt"); + rmSync(dest, { force: true }); + + const writefd = openSync(dest, "w"); + writeSync(writefd, Buffer.from([0x10]), 0, 1, 400n as any); + closeSync(writefd); + + const fd = openSync(dest, "r"); + const out = Buffer.alloc(1); + const bytes = readSync(fd, out, 0, 1, 400 as any); + expect(bytes).toBe(1); + expect(out[0]).toBe(0x10); + closeSync(fd); + rmSync(dest, { force: true }); + }); + it("works with a position set to 0", () => { const fd = openSync(import.meta.dir + "/writeFileSync.txt", "w+"); const four = new Uint8Array(4); -- cgit v1.2.3 From affd06d05cc756df33854bc1d56e2284ff22b22d Mon Sep 17 00:00:00 2001 From: Colin McDonnell Date: Fri, 7 Jul 2023 15:10:33 -0700 Subject: Update types, partially fix `typecheck` (#3551) * Update types * Remove caret --- packages/bun-types/assert.d.ts | 6 +- packages/bun-types/ffi.d.ts | 1 + packages/bun-types/fs.d.ts | 213 ++++++---- packages/bun-types/globals.d.ts | 21 +- packages/bun-types/http.d.ts | 18 + packages/bun-types/tests/fs.test-d.ts | 9 + src/js/builtins/ReadableStreamDefaultReader.ts | 4 +- src/js/builtins/ReadableStreamInternals.ts | 1 + src/js/builtins/StreamInternals.ts | 2 +- src/js/builtins/TransformStream.ts | 1 + src/js/builtins/TransformStreamInternals.ts | 1 + src/js/builtins/WritableStreamDefaultWriter.ts | 1 + src/js/builtins/WritableStreamInternals.ts | 9 +- src/js/builtins/builtins.d.ts | 6 +- src/js/bun/ffi.ts | 8 +- src/js/node/trace_events.ts | 2 + src/js/private.d.ts | 3 +- test/bun.lockb | Bin 141113 -> 148733 bytes test/js/node/watch/fs.watch.test.js | 522 ------------------------- test/js/node/watch/fs.watch.test.ts | 522 +++++++++++++++++++++++++ test/js/third_party/socket.io/support/util.ts | 1 + test/js/web/html/FormData.test.ts | 19 +- test/js/web/html/URLSearchParams.test.ts | 5 + test/package.json | 9 +- test/tsconfig.json | 34 +- tsconfig.json | 9 +- 26 files changed, 749 insertions(+), 678 deletions(-) delete mode 100644 test/js/node/watch/fs.watch.test.js create mode 100644 test/js/node/watch/fs.watch.test.ts (limited to 'test/js') diff --git a/packages/bun-types/assert.d.ts b/packages/bun-types/assert.d.ts index ae3b54ff2..658e7df5b 100644 --- a/packages/bun-types/assert.d.ts +++ b/packages/bun-types/assert.d.ts @@ -931,7 +931,11 @@ declare module "assert" { * instance of an `Error` then it will be thrown instead of the `AssertionError`. */ // FIXME: assert.doesNotMatch is typed, but not in the browserify polyfill? - // function doesNotMatch(value: string, regExp: RegExp, message?: string | Error): void; + function doesNotMatch( + value: string, + regExp: RegExp, + message?: string | Error, + ): void; const strict: Omit< typeof assert, diff --git a/packages/bun-types/ffi.d.ts b/packages/bun-types/ffi.d.ts index 3e7e91534..9705e810b 100644 --- a/packages/bun-types/ffi.d.ts +++ b/packages/bun-types/ffi.d.ts @@ -344,6 +344,7 @@ declare module "bun:ffi" { * */ u64_fast = 16, + function = 17, } type UNTYPED = never; diff --git a/packages/bun-types/fs.d.ts b/packages/bun-types/fs.d.ts index 5dfb2c7f2..379e0ef25 100644 --- a/packages/bun-types/fs.d.ts +++ b/packages/bun-types/fs.d.ts @@ -3932,100 +3932,141 @@ declare module "fs" { } export interface FSWatcher extends EventEmitter { - /** - * Stop watching for changes on the given `fs.FSWatcher`. Once stopped, the `fs.FSWatcher` object is no longer usable. - * @since v0.6.8 - */ - close(): void; - - /** - * When called, requests that the Node.js event loop not exit so long as the is active. Calling watcher.ref() multiple times will have no effect. - */ - ref(): void; - - /** - * When called, the active object will not require the Node.js event loop to remain active. If there is no other activity keeping the event loop running, the process may exit before the object's callback is invoked. Calling watcher.unref() multiple times will have no effect. - */ - unref(): void; - - /** - * events.EventEmitter - * 1. change - * 2. error - */ - addListener(event: string, listener: (...args: any[]) => void): this; - addListener(event: 'change', listener: (eventType: string, filename: string | Buffer) => void): this; - addListener(event: 'error', listener: (error: Error) => void): this; - addListener(event: 'close', listener: () => void): this; - on(event: string, listener: (...args: any[]) => void): this; - on(event: 'change', listener: (eventType: string, filename: string | Buffer) => void): this; - on(event: 'error', listener: (error: Error) => void): this; - on(event: 'close', listener: () => void): this; - once(event: string, listener: (...args: any[]) => void): this; - once(event: 'change', listener: (eventType: string, filename: string | Buffer) => void): this; - once(event: 'error', listener: (error: Error) => void): this; - once(event: 'close', listener: () => void): this; - prependListener(event: string, listener: (...args: any[]) => void): this; - prependListener(event: 'change', listener: (eventType: string, filename: string | Buffer) => void): this; - prependListener(event: 'error', listener: (error: Error) => void): this; - prependListener(event: 'close', listener: () => void): this; - prependOnceListener(event: string, listener: (...args: any[]) => void): this; - prependOnceListener(event: 'change', listener: (eventType: string, filename: string | Buffer) => void): this; - prependOnceListener(event: 'error', listener: (error: Error) => void): this; - prependOnceListener(event: 'close', listener: () => void): this; - } - /** - * Watch for changes on `filename`, where `filename` is either a file or a - * directory. - * - * The second argument is optional. If `options` is provided as a string, it - * specifies the `encoding`. Otherwise `options` should be passed as an object. - * - * The listener callback gets two arguments `(eventType, filename)`. `eventType`is either `'rename'` or `'change'`, and `filename` is the name of the file - * which triggered the event. - * - * On most platforms, `'rename'` is emitted whenever a filename appears or - * disappears in the directory. - * - * The listener callback is attached to the `'change'` event fired by `fs.FSWatcher`, but it is not the same thing as the `'change'` value of`eventType`. - * - * If a `signal` is passed, aborting the corresponding AbortController will close - * the returned `fs.FSWatcher`. + /** + * Stop watching for changes on the given `fs.FSWatcher`. Once stopped, the `fs.FSWatcher` object is no longer usable. * @since v0.6.8 - * @param listener */ - export function watch( - filename: PathLike, - options: - | (WatchOptions & { - encoding: 'buffer'; - }) - | 'buffer', - listener?: WatchListener - ): FSWatcher; + close(): void; + /** - * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. - * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. - * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options. - * If `encoding` is not supplied, the default of `'utf8'` is used. - * If `persistent` is not supplied, the default of `true` is used. - * If `recursive` is not supplied, the default of `false` is used. + * When called, requests that the Node.js event loop not exit so long as the is active. Calling watcher.ref() multiple times will have no effect. */ - export function watch(filename: PathLike, options?: WatchOptions | BufferEncoding | null, listener?: WatchListener): FSWatcher; + ref(): void; + /** - * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. - * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. - * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options. - * If `encoding` is not supplied, the default of `'utf8'` is used. - * If `persistent` is not supplied, the default of `true` is used. - * If `recursive` is not supplied, the default of `false` is used. + * When called, the active object will not require the Node.js event loop to remain active. If there is no other activity keeping the event loop running, the process may exit before the object's callback is invoked. Calling watcher.unref() multiple times will have no effect. */ - export function watch(filename: PathLike, options: WatchOptions | string, listener?: WatchListener): FSWatcher; + unref(): void; + /** - * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. - * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * events.EventEmitter + * 1. change + * 2. error */ - export function watch(filename: PathLike, listener?: WatchListener): FSWatcher; + addListener(event: string, listener: (...args: any[]) => void): this; + addListener( + event: "change", + listener: (eventType: string, filename: string | Buffer) => void, + ): this; + addListener(event: "error", listener: (error: Error) => void): this; + addListener(event: "close", listener: () => void): this; + on(event: string, listener: (...args: any[]) => void): this; + on( + event: "change", + listener: (eventType: string, filename: string | Buffer) => void, + ): this; + on(event: "error", listener: (error: Error) => void): this; + on(event: "close", listener: () => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once( + event: "change", + listener: (eventType: string, filename: string | Buffer) => void, + ): this; + once(event: "error", listener: (error: Error) => void): this; + once(event: "close", listener: () => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener( + event: "change", + listener: (eventType: string, filename: string | Buffer) => void, + ): this; + prependListener(event: "error", listener: (error: Error) => void): this; + prependListener(event: "close", listener: () => void): this; + prependOnceListener( + event: string, + listener: (...args: any[]) => void, + ): this; + prependOnceListener( + event: "change", + listener: (eventType: string, filename: string | Buffer) => void, + ): this; + prependOnceListener(event: "error", listener: (error: Error) => void): this; + prependOnceListener(event: "close", listener: () => void): this; + } + + type WatchOptions = { + encoding?: BufferEncoding; + persistent?: boolean; + recursive?: boolean; + signal?: AbortSignal; + }; + type WatchEventType = "rename" | "change" | "error" | "close"; + type WatchListener = ( + event: WatchEventType, + filename: T | Error | undefined, + ) => void; + /** + * Watch for changes on `filename`, where `filename` is either a file or a + * directory. + * + * The second argument is optional. If `options` is provided as a string, it + * specifies the `encoding`. Otherwise `options` should be passed as an object. + * + * The listener callback gets two arguments `(eventType, filename)`. `eventType`is either `'rename'` or `'change'`, and `filename` is the name of the file + * which triggered the event. + * + * On most platforms, `'rename'` is emitted whenever a filename appears or + * disappears in the directory. + * + * The listener callback is attached to the `'change'` event fired by `fs.FSWatcher`, but it is not the same thing as the `'change'` value of`eventType`. + * + * If a `signal` is passed, aborting the corresponding AbortController will close + * the returned `fs.FSWatcher`. + * @since v0.6.8 + * @param listener + */ + export function watch( + filename: PathLike, + options: + | (WatchOptions & { + encoding: "buffer"; + }) + | "buffer", + listener?: WatchListener, + ): FSWatcher; + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `persistent` is not supplied, the default of `true` is used. + * If `recursive` is not supplied, the default of `false` is used. + */ + export function watch( + filename: PathLike, + options?: WatchOptions | BufferEncoding | null, + listener?: WatchListener, + ): FSWatcher; + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `persistent` is not supplied, the default of `true` is used. + * If `recursive` is not supplied, the default of `false` is used. + */ + export function watch( + filename: PathLike, + options: WatchOptions | string, + listener?: WatchListener, + ): FSWatcher; + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + */ + export function watch( + filename: PathLike, + listener?: WatchListener, + ): FSWatcher; } declare module "node:fs" { diff --git a/packages/bun-types/globals.d.ts b/packages/bun-types/globals.d.ts index 5784f91c2..da412b211 100644 --- a/packages/bun-types/globals.d.ts +++ b/packages/bun-types/globals.d.ts @@ -1401,34 +1401,33 @@ declare function clearTimeout(id?: number | Timer): void; declare function clearImmediate(id?: number | Timer): void; // declare function createImageBitmap(image: ImageBitmapSource, options?: ImageBitmapOptions): Promise; // declare function createImageBitmap(image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise; + /** * Send a HTTP(s) request * - * @param url URL string + * @param request Request object * @param init A structured value that contains settings for the fetch() request. * * @returns A promise that resolves to {@link Response} object. * * */ - -declare function fetch( - url: string | URL | Request, - init?: FetchRequestInit, -): Promise; - +// tslint:disable-next-line:unified-signatures +declare function fetch(request: Request, init?: RequestInit): Promise; /** * Send a HTTP(s) request * - * @param request Request object + * @param url URL string * @param init A structured value that contains settings for the fetch() request. * * @returns A promise that resolves to {@link Response} object. * * */ -// tslint:disable-next-line:unified-signatures -declare function fetch(request: Request, init?: RequestInit): Promise; +declare function fetch( + url: string | URL | Request, + init?: FetchRequestInit, +): Promise; declare function queueMicrotask(callback: (...args: any[]) => void): void; /** @@ -1951,7 +1950,7 @@ interface URLSearchParams { ): void; /** Returns a string containing a query string suitable for use in a URL. Does not include the question mark. */ toString(): string; - [Symbol.iterator](): IterableIterator<[string, FormDataEntryValue]>; + [Symbol.iterator](): IterableIterator<[string, string]>; } declare var URLSearchParams: { diff --git a/packages/bun-types/http.d.ts b/packages/bun-types/http.d.ts index 710fea4f4..118cf7ac1 100644 --- a/packages/bun-types/http.d.ts +++ b/packages/bun-types/http.d.ts @@ -1785,6 +1785,24 @@ declare module "http" { callback?: (res: IncomingMessage) => void, ): ClientRequest; + /** + * Performs the low-level validations on the provided name that are done when `res.setHeader(name, value)` is called. + * Passing illegal value as name will result in a TypeError being thrown, identified by `code: 'ERR_INVALID_HTTP_TOKEN'`. + * @param name Header name + * @since v14.3.0 + */ + function validateHeaderName(name: string): void; + /** + * Performs the low-level validations on the provided value that are done when `res.setHeader(name, value)` is called. + * Passing illegal value as value will result in a TypeError being thrown. + * - Undefined value error is identified by `code: 'ERR_HTTP_INVALID_HEADER_VALUE'`. + * - Invalid value character error is identified by `code: 'ERR_INVALID_CHAR'`. + * @param name Header name + * @param value Header value + * @since v14.3.0 + */ + function validateHeaderValue(name: string, value: string): void; + let globalAgent: Agent; /** diff --git a/packages/bun-types/tests/fs.test-d.ts b/packages/bun-types/tests/fs.test-d.ts index 1ef14a2f8..3acfafa76 100644 --- a/packages/bun-types/tests/fs.test-d.ts +++ b/packages/bun-types/tests/fs.test-d.ts @@ -1,6 +1,15 @@ +import { watch } from "node:fs"; import * as tsd from "tsd"; import * as fs from "fs"; import { exists } from "fs/promises"; tsd.expectType>(exists("/etc/passwd")); tsd.expectType>(fs.promises.exists("/etc/passwd")); + +// file path +watch(".", (eventType, filename) => { + console.log(`event type = ${eventType}`); + if (filename) { + console.log(`filename = ${filename}`); + } +}); diff --git a/src/js/builtins/ReadableStreamDefaultReader.ts b/src/js/builtins/ReadableStreamDefaultReader.ts index 70c6df8c3..a5654d834 100644 --- a/src/js/builtins/ReadableStreamDefaultReader.ts +++ b/src/js/builtins/ReadableStreamDefaultReader.ts @@ -75,7 +75,7 @@ export function readMany(this: ReadableStreamDefaultReader): ReadableStreamDefau var length = values.length; if (length > 0) { - var outValues = $newArrayWithSize(length); + var outValues = $newArrayWithSize(length); if ($isReadableByteStreamController(controller)) { { const buf = values[0]; @@ -150,7 +150,7 @@ export function readMany(this: ReadableStreamDefaultReader): ReadableStreamDefau var pullResult = controller.$pull(controller); if (pullResult && $isPromise(pullResult)) { - return pullResult.$then(onPullMany); + return pullResult.$then(onPullMany) as any; } return onPullMany(pullResult); diff --git a/src/js/builtins/ReadableStreamInternals.ts b/src/js/builtins/ReadableStreamInternals.ts index 0c4e816f4..a9d67aa06 100644 --- a/src/js/builtins/ReadableStreamInternals.ts +++ b/src/js/builtins/ReadableStreamInternals.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* * Copyright (C) 2015 Canon Inc. All rights reserved. * Copyright (C) 2015 Igalia. diff --git a/src/js/builtins/StreamInternals.ts b/src/js/builtins/StreamInternals.ts index b42dc2f57..7bb262951 100644 --- a/src/js/builtins/StreamInternals.ts +++ b/src/js/builtins/StreamInternals.ts @@ -184,7 +184,7 @@ export function createFIFO() { this._capacityMask = (this._capacityMask << 1) | 1; } - shrinkArray() { + _shrinkArray() { this._list.length >>>= 1; this._capacityMask >>>= 1; } diff --git a/src/js/builtins/TransformStream.ts b/src/js/builtins/TransformStream.ts index 54467db39..2a124d4e1 100644 --- a/src/js/builtins/TransformStream.ts +++ b/src/js/builtins/TransformStream.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* * Copyright (C) 2020 Apple Inc. All rights reserved. * diff --git a/src/js/builtins/TransformStreamInternals.ts b/src/js/builtins/TransformStreamInternals.ts index 9994d1282..9da403e71 100644 --- a/src/js/builtins/TransformStreamInternals.ts +++ b/src/js/builtins/TransformStreamInternals.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* * Copyright (C) 2020 Apple Inc. All rights reserved. * diff --git a/src/js/builtins/WritableStreamDefaultWriter.ts b/src/js/builtins/WritableStreamDefaultWriter.ts index 795b43892..50b2cd13f 100644 --- a/src/js/builtins/WritableStreamDefaultWriter.ts +++ b/src/js/builtins/WritableStreamDefaultWriter.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* * Copyright (C) 2020 Apple Inc. All rights reserved. * diff --git a/src/js/builtins/WritableStreamInternals.ts b/src/js/builtins/WritableStreamInternals.ts index f436a285e..2008dab1c 100644 --- a/src/js/builtins/WritableStreamInternals.ts +++ b/src/js/builtins/WritableStreamInternals.ts @@ -610,16 +610,17 @@ export function setUpWritableStreamDefaultControllerFromUnderlyingSink( highWaterMark, sizeAlgorithm, ) { + // @ts-ignore const controller = new $WritableStreamDefaultController(); - let startAlgorithm = () => {}; - let writeAlgorithm = () => { + let startAlgorithm: (...args: any[]) => any = () => {}; + let writeAlgorithm: (...args: any[]) => any = () => { return Promise.$resolve(); }; - let closeAlgorithm = () => { + let closeAlgorithm: (...args: any[]) => any = () => { return Promise.$resolve(); }; - let abortAlgorithm = () => { + let abortAlgorithm: (...args: any[]) => any = () => { return Promise.$resolve(); }; diff --git a/src/js/builtins/builtins.d.ts b/src/js/builtins/builtins.d.ts index 2de8d8206..9b32ea45e 100644 --- a/src/js/builtins/builtins.d.ts +++ b/src/js/builtins/builtins.d.ts @@ -57,6 +57,9 @@ declare function $getPromiseInternalField( promise: Promise, key: K, ): PromiseFieldToValue; +declare function $fulfillPromise(...args: any[]): TODO; +declare function $evaluateCommonJSModule(...args: any[]): TODO; +declare function $loadCJS2ESM(...args: any[]): TODO; declare function $getGeneratorInternalField(): TODO; declare function $getAsyncGeneratorInternalField(): TODO; declare function $getAbstractModuleRecordInternalField(): TODO; @@ -229,7 +232,7 @@ declare function $createFIFO(): TODO; declare function $createNativeReadableStream(): TODO; declare function $createReadableStream(): TODO; declare function $createUninitializedArrayBuffer(size: number): ArrayBuffer; -declare function $createWritableStreamFromInternal(): TODO; +declare function $createWritableStreamFromInternal(...args: any[]): TODO; declare function $cwd(): TODO; declare function $data(): TODO; declare function $dataView(): TODO; @@ -330,6 +333,7 @@ declare function $read(): TODO; declare function $readIntoRequests(): TODO; declare function $readRequests(): TODO; declare function $readable(): TODO; +declare function $readableByteStreamControllerGetDesiredSize(...args: any): TODO; declare function $readableStreamController(): TODO; declare function $readableStreamToArray(): TODO; declare function $reader(): TODO; diff --git a/src/js/bun/ffi.ts b/src/js/bun/ffi.ts index 7abfe5078..1272e7450 100644 --- a/src/js/bun/ffi.ts +++ b/src/js/bun/ffi.ts @@ -239,7 +239,7 @@ ffiWrappers[FFIType.function] = function functionType(val) { }; function FFIBuilder(params, returnType, functionToCall, name) { - const hasReturnType = typeof FFIType[returnType] === "number" && FFIType[returnType] !== FFIType.void; + const hasReturnType = typeof FFIType[returnType] === "number" && FFIType[returnType as string] !== FFIType.void; var paramNames = new Array(params.length); var args = new Array(params.length); for (let i = 0; i < params.length; i++) { @@ -255,7 +255,7 @@ function FFIBuilder(params, returnType, functionToCall, name) { var code = `functionToCall(${args.join(", ")})`; if (hasReturnType) { - if (FFIType[returnType] === FFIType.cstring) { + if (FFIType[returnType as string] === FFIType.cstring) { code = `return (${cstringReturnType.toString()})(${code})`; } else { code = `return ${code}`; @@ -328,7 +328,7 @@ export function dlopen(path, options) { for (let key in result.symbols) { var symbol = result.symbols[key]; - if (options[key]?.args?.length || FFIType[options[key]?.returns] === FFIType.cstring) { + if (options[key]?.args?.length || FFIType[options[key]?.returns as string] === FFIType.cstring) { result.symbols[key] = FFIBuilder( options[key].args ?? [], options[key].returns ?? FFIType.void, @@ -354,7 +354,7 @@ export function linkSymbols(options) { for (let key in result.symbols) { var symbol = result.symbols[key]; - if (options[key]?.args?.length || FFIType[options[key]?.returns] === FFIType.cstring) { + if (options[key]?.args?.length || FFIType[options[key]?.returns as string] === FFIType.cstring) { result.symbols[key] = FFIBuilder(options[key].args ?? [], options[key].returns ?? FFIType.void, symbol, key); } else { // consistentcy diff --git a/src/js/node/trace_events.ts b/src/js/node/trace_events.ts index 789c41222..7edcc57d0 100644 --- a/src/js/node/trace_events.ts +++ b/src/js/node/trace_events.ts @@ -13,10 +13,12 @@ function ERR_INVALID_ARG_TYPE(name, type, value) { function createTracing(opts) { if (typeof opts !== "object" || opts == null) { + // @ts-ignore throw new ERR_INVALID_ARG_TYPE("options", "Object", opts); } // TODO: validate categories + // @ts-ignore return new Tracing(opts); } diff --git a/src/js/private.d.ts b/src/js/private.d.ts index 500048dd7..d59c6aad8 100644 --- a/src/js/private.d.ts +++ b/src/js/private.d.ts @@ -7,9 +7,8 @@ declare function $bundleError(error: string); type BunFSWatchOptions = { encoding?: BufferEncoding; persistent?: boolean; recursive?: boolean; signal?: AbortSignal }; - type BunWatchEventType = "rename" | "change" | "error" | "close"; -type BunWatchListener = (event: WatchEventType, filename: T | Error | undefined) => void; +type BunWatchListener = (event: WatchEventType, filename: T | undefined) => void; interface BunFSWatcher { /** diff --git a/test/bun.lockb b/test/bun.lockb index c35182d46..01afbfa4e 100755 Binary files a/test/bun.lockb and b/test/bun.lockb differ diff --git a/test/js/node/watch/fs.watch.test.js b/test/js/node/watch/fs.watch.test.js deleted file mode 100644 index faf6a8546..000000000 --- a/test/js/node/watch/fs.watch.test.js +++ /dev/null @@ -1,522 +0,0 @@ -import fs from "fs"; -import path from "path"; -import { tempDirWithFiles, bunRun, bunRunAsScript } from "harness"; -import { pathToFileURL } from "bun"; - -import { describe, expect, test } from "bun:test"; -// Because macOS (and possibly other operating systems) can return a watcher -// before it is actually watching, we need to repeat the operation to avoid -// a race condition. -function repeat(fn) { - const interval = setInterval(fn, 20); - return interval; -} -const encodingFileName = `新建文夹件.txt`; -const testDir = tempDirWithFiles("watch", { - "watch.txt": "hello", - "relative.txt": "hello", - "abort.txt": "hello", - "url.txt": "hello", - "close.txt": "hello", - "close-close.txt": "hello", - "sym-sync.txt": "hello", - "sym.txt": "hello", - [encodingFileName]: "hello", -}); - -describe("fs.watch", () => { - test("non-persistent watcher should not block the event loop", done => { - try { - // https://github.com/joyent/node/issues/2293 - non-persistent watcher should not block the event loop - bunRun(path.join(import.meta.dir, "fixtures", "persistent.js")); - done(); - } catch (e) { - done(e); - } - }); - - test("watcher should close and not block the event loop", done => { - try { - bunRun(path.join(import.meta.dir, "fixtures", "close.js")); - done(); - } catch (e) { - done(e); - } - }); - - test("unref watcher should not block the event loop", done => { - try { - bunRun(path.join(import.meta.dir, "fixtures", "unref.js")); - done(); - } catch (e) { - done(e); - } - }); - - test("should work with relative files", done => { - try { - bunRunAsScript(testDir, path.join(import.meta.dir, "fixtures", "relative.js")); - done(); - } catch (e) { - done(e); - } - }); - - test("add file/folder to folder", done => { - let count = 0; - const root = path.join(testDir, "add-directory"); - try { - fs.mkdirSync(root); - } catch {} - let err = undefined; - const watcher = fs.watch(root, { signal: AbortSignal.timeout(3000) }); - watcher.on("change", (event, filename) => { - count++; - try { - expect(event).toBe("rename"); - expect(["new-file.txt", "new-folder.txt"]).toContain(filename); - if (count >= 2) { - watcher.close(); - } - } catch (e) { - err = e; - watcher.close(); - } - }); - - watcher.on("error", e => (err = e)); - watcher.on("close", () => { - clearInterval(interval); - done(err); - }); - - const interval = repeat(() => { - fs.writeFileSync(path.join(root, "new-file.txt"), "hello"); - fs.mkdirSync(path.join(root, "new-folder.txt")); - fs.rmdirSync(path.join(root, "new-folder.txt")); - }); - }); - - test("add file/folder to subfolder", done => { - let count = 0; - const root = path.join(testDir, "add-subdirectory"); - try { - fs.mkdirSync(root); - } catch {} - const subfolder = path.join(root, "subfolder"); - fs.mkdirSync(subfolder); - const watcher = fs.watch(root, { recursive: true, signal: AbortSignal.timeout(3000) }); - let err = undefined; - watcher.on("change", (event, filename) => { - const basename = path.basename(filename); - - if (basename === "subfolder") return; - count++; - try { - expect(event).toBe("rename"); - expect(["new-file.txt", "new-folder.txt"]).toContain(basename); - if (count >= 2) { - watcher.close(); - } - } catch (e) { - err = e; - watcher.close(); - } - }); - watcher.on("error", e => (err = e)); - watcher.on("close", () => { - clearInterval(interval); - done(err); - }); - - const interval = repeat(() => { - fs.writeFileSync(path.join(subfolder, "new-file.txt"), "hello"); - fs.mkdirSync(path.join(subfolder, "new-folder.txt")); - fs.rmdirSync(path.join(subfolder, "new-folder.txt")); - }); - }); - - test("should emit event when file is deleted", done => { - const testsubdir = tempDirWithFiles("subdir", { - "deleted.txt": "hello", - }); - const filepath = path.join(testsubdir, "deleted.txt"); - let err = undefined; - const watcher = fs.watch(testsubdir, function (event, filename) { - try { - expect(event).toBe("rename"); - expect(filename).toBe("deleted.txt"); - } catch (e) { - err = e; - } finally { - clearInterval(interval); - watcher.close(); - } - }); - - watcher.once("close", () => { - done(err); - }); - - const interval = repeat(() => { - fs.rmSync(filepath, { force: true }); - const fd = fs.openSync(filepath, "w"); - fs.closeSync(fd); - }); - }); - - test("should emit 'change' event when file is modified", done => { - const filepath = path.join(testDir, "watch.txt"); - - const watcher = fs.watch(filepath); - let err = undefined; - watcher.on("change", function (event, filename) { - try { - expect(event).toBe("change"); - expect(filename).toBe("watch.txt"); - } catch (e) { - err = e; - } finally { - clearInterval(interval); - watcher.close(); - } - }); - - watcher.once("close", () => { - done(err); - }); - - const interval = repeat(() => { - fs.writeFileSync(filepath, "world"); - }); - }); - - test("should error on invalid path", done => { - try { - fs.watch(path.join(testDir, "404.txt")); - done(new Error("should not reach here")); - } catch (err) { - expect(err).toBeInstanceOf(Error); - expect(err.code).toBe("ENOENT"); - expect(err.syscall).toBe("watch"); - done(); - } - }); - - const encodings = ["utf8", "buffer", "hex", "ascii", "base64", "utf16le", "ucs2", "latin1", "binary"]; - - test(`should work with encodings ${encodings.join(", ")}`, async () => { - const watchers = []; - const filepath = path.join(testDir, encodingFileName); - - const promises = []; - encodings.forEach(name => { - const encoded_filename = - name !== "buffer" ? Buffer.from(encodingFileName, "utf8").toString(name) : Buffer.from(encodingFileName); - - promises.push( - new Promise((resolve, reject) => { - watchers.push( - fs.watch(filepath, { encoding: name }, (event, filename) => { - try { - expect(event).toBe("change"); - - if (name !== "buffer") { - expect(filename).toBe(encoded_filename); - } else { - expect(filename).toBeInstanceOf(Buffer); - expect(filename.toString("utf8")).toBe(encodingFileName); - } - - resolve(); - } catch (e) { - reject(e); - } - }), - ); - }), - ); - }); - - const interval = repeat(() => { - fs.writeFileSync(filepath, "world"); - }); - - try { - await Promise.all(promises); - } finally { - clearInterval(interval); - watchers.forEach(watcher => watcher.close()); - } - }); - - test("should work with url", done => { - const filepath = path.join(testDir, "url.txt"); - try { - const watcher = fs.watch(pathToFileURL(filepath)); - let err = undefined; - watcher.on("change", function (event, filename) { - try { - expect(event).toBe("change"); - expect(filename).toBe("url.txt"); - } catch (e) { - err = e; - } finally { - clearInterval(interval); - watcher.close(); - } - }); - - watcher.once("close", () => { - done(err); - }); - - const interval = repeat(() => { - fs.writeFileSync(filepath, "world"); - }); - } catch (e) { - done(e); - } - }); - - test("calling close from error event should not throw", done => { - const filepath = path.join(testDir, "close.txt"); - try { - const ac = new AbortController(); - const watcher = fs.watch(pathToFileURL(filepath), { signal: ac.signal }); - watcher.once("error", () => { - try { - watcher.close(); - done(); - } catch (e) { - done("Should not error when calling close from error event"); - } - }); - ac.abort(); - } catch (e) { - done(e); - } - }); - - test("calling close from close event should not throw", done => { - const filepath = path.join(testDir, "close-close.txt"); - try { - const ac = new AbortController(); - const watcher = fs.watch(pathToFileURL(filepath), { signal: ac.signal }); - - watcher.once("close", () => { - try { - watcher.close(); - done(); - } catch (e) { - done("Should not error when calling close from close event"); - } - }); - - ac.abort(); - } catch (e) { - done(e); - } - }); - - test("Signal aborted after creating the watcher", async () => { - const filepath = path.join(testDir, "abort.txt"); - - const ac = new AbortController(); - const promise = new Promise((resolve, reject) => { - const watcher = fs.watch(filepath, { signal: ac.signal }); - watcher.once("error", err => (err.message === "The operation was aborted." ? resolve() : reject(err))); - watcher.once("close", () => reject()); - }); - await Bun.sleep(10); - ac.abort(); - await promise; - }); - - test("Signal aborted before creating the watcher", async () => { - const filepath = path.join(testDir, "abort.txt"); - - const signal = AbortSignal.abort(); - await new Promise((resolve, reject) => { - const watcher = fs.watch(filepath, { signal }); - watcher.once("error", err => (err.message === "The operation was aborted." ? resolve() : reject(err))); - watcher.once("close", () => reject()); - }); - }); - - test("should work with symlink", async () => { - const filepath = path.join(testDir, "sym-symlink2.txt"); - await fs.promises.symlink(path.join(testDir, "sym-sync.txt"), filepath); - - const interval = repeat(() => { - fs.writeFileSync(filepath, "hello"); - }); - - const promise = new Promise((resolve, reject) => { - let timeout = null; - const watcher = fs.watch(filepath, event => { - clearTimeout(timeout); - clearInterval(interval); - try { - resolve(event); - } catch (e) { - reject(e); - } finally { - watcher.close(); - } - }); - setTimeout(() => { - clearInterval(interval); - watcher?.close(); - reject("timeout"); - }, 3000); - }); - expect(promise).resolves.toBe("change"); - }); -}); - -describe("fs.promises.watch", () => { - test("add file/folder to folder", async () => { - let count = 0; - const root = path.join(testDir, "add-promise-directory"); - try { - fs.mkdirSync(root); - } catch {} - let success = false; - let err = undefined; - try { - const ac = new AbortController(); - const watcher = fs.promises.watch(root, { signal: ac.signal }); - - const interval = repeat(() => { - fs.writeFileSync(path.join(root, "new-file.txt"), "hello"); - fs.mkdirSync(path.join(root, "new-folder.txt")); - fs.rmdirSync(path.join(root, "new-folder.txt")); - }); - - for await (const event of watcher) { - count++; - try { - expect(event.eventType).toBe("rename"); - expect(["new-file.txt", "new-folder.txt"]).toContain(event.filename); - - if (count >= 2) { - success = true; - clearInterval(interval); - ac.abort(); - } - } catch (e) { - err = e; - clearInterval(interval); - ac.abort(); - } - } - } catch (e) { - if (!success) { - throw err || e; - } - } - }); - - test("add file/folder to subfolder", async () => { - let count = 0; - const root = path.join(testDir, "add-promise-subdirectory"); - try { - fs.mkdirSync(root); - } catch {} - const subfolder = path.join(root, "subfolder"); - fs.mkdirSync(subfolder); - let success = false; - let err = undefined; - - try { - const ac = new AbortController(); - const watcher = fs.promises.watch(root, { recursive: true, signal: ac.signal }); - - const interval = repeat(() => { - fs.writeFileSync(path.join(subfolder, "new-file.txt"), "hello"); - fs.mkdirSync(path.join(subfolder, "new-folder.txt")); - fs.rmdirSync(path.join(subfolder, "new-folder.txt")); - }); - for await (const event of watcher) { - const basename = path.basename(event.filename); - if (basename === "subfolder") continue; - - count++; - try { - expect(event.eventType).toBe("rename"); - expect(["new-file.txt", "new-folder.txt"]).toContain(basename); - - if (count >= 2) { - success = true; - clearInterval(interval); - ac.abort(); - } - } catch (e) { - err = e; - clearInterval(interval); - ac.abort(); - } - } - } catch (e) { - if (!success) { - throw err || e; - } - } - }); - - test("Signal aborted after creating the watcher", async () => { - const filepath = path.join(testDir, "abort.txt"); - - const ac = new AbortController(); - const watcher = fs.promises.watch(filepath, { signal: ac.signal }); - - const promise = (async () => { - try { - for await (const _ of watcher); - } catch (e) { - expect(e.message).toBe("The operation was aborted."); - } - })(); - await Bun.sleep(10); - ac.abort(); - await promise; - }); - - test("Signal aborted before creating the watcher", async () => { - const filepath = path.join(testDir, "abort.txt"); - - const signal = AbortSignal.abort(); - const watcher = fs.promises.watch(filepath, { signal }); - await (async () => { - try { - for await (const _ of watcher); - } catch (e) { - expect(e.message).toBe("The operation was aborted."); - } - })(); - }); - - test("should work with symlink", async () => { - const filepath = path.join(testDir, "sym-symlink.txt"); - await fs.promises.symlink(path.join(testDir, "sym.txt"), filepath); - - const watcher = fs.promises.watch(filepath); - const interval = repeat(() => { - fs.writeFileSync(filepath, "hello"); - }); - - const promise = (async () => { - try { - for await (const event of watcher) { - return event.eventType; - } - } catch (e) { - expect("unreacheable").toBe(false); - } finally { - clearInterval(interval); - } - })(); - expect(promise).resolves.toBe("change"); - }); -}); diff --git a/test/js/node/watch/fs.watch.test.ts b/test/js/node/watch/fs.watch.test.ts new file mode 100644 index 000000000..aa7959bed --- /dev/null +++ b/test/js/node/watch/fs.watch.test.ts @@ -0,0 +1,522 @@ +import fs, { FSWatcher } from "node:fs"; +import path from "path"; +import { tempDirWithFiles, bunRun, bunRunAsScript } from "harness"; +import { pathToFileURL } from "bun"; + +import { describe, expect, test } from "bun:test"; +// Because macOS (and possibly other operating systems) can return a watcher +// before it is actually watching, we need to repeat the operation to avoid +// a race condition. +function repeat(fn: any) { + const interval = setInterval(fn, 20); + return interval; +} +const encodingFileName = `新建文夹件.txt`; +const testDir = tempDirWithFiles("watch", { + "watch.txt": "hello", + "relative.txt": "hello", + "abort.txt": "hello", + "url.txt": "hello", + "close.txt": "hello", + "close-close.txt": "hello", + "sym-sync.txt": "hello", + "sym.txt": "hello", + [encodingFileName]: "hello", +}); + +describe("fs.watch", () => { + test("non-persistent watcher should not block the event loop", done => { + try { + // https://github.com/joyent/node/issues/2293 - non-persistent watcher should not block the event loop + bunRun(path.join(import.meta.dir, "fixtures", "persistent.js")); + done(); + } catch (e: any) { + done(e); + } + }); + + test("watcher should close and not block the event loop", done => { + try { + bunRun(path.join(import.meta.dir, "fixtures", "close.js")); + done(); + } catch (e: any) { + done(e); + } + }); + + test("unref watcher should not block the event loop", done => { + try { + bunRun(path.join(import.meta.dir, "fixtures", "unref.js")); + done(); + } catch (e: any) { + done(e); + } + }); + + test("should work with relative files", done => { + try { + bunRunAsScript(testDir, path.join(import.meta.dir, "fixtures", "relative.js")); + done(); + } catch (e: any) { + done(e); + } + }); + + test("add file/folder to folder", done => { + let count = 0; + const root = path.join(testDir, "add-directory"); + try { + fs.mkdirSync(root); + } catch {} + let err: Error | undefined = undefined; + const watcher = fs.watch(root, { signal: AbortSignal.timeout(3000) }); + watcher.on("change", (event, filename) => { + count++; + try { + expect(event).toBe("rename"); + expect(["new-file.txt", "new-folder.txt"]).toContain(filename); + if (count >= 2) { + watcher.close(); + } + } catch (e: any) { + err = e; + watcher.close(); + } + }); + + watcher.on("error", e => (err = e)); + watcher.on("close", () => { + clearInterval(interval); + done(err); + }); + + const interval = repeat(() => { + fs.writeFileSync(path.join(root, "new-file.txt"), "hello"); + fs.mkdirSync(path.join(root, "new-folder.txt")); + fs.rmdirSync(path.join(root, "new-folder.txt")); + }); + }); + + test("add file/folder to subfolder", done => { + let count = 0; + const root = path.join(testDir, "add-subdirectory"); + try { + fs.mkdirSync(root); + } catch {} + const subfolder = path.join(root, "subfolder"); + fs.mkdirSync(subfolder); + const watcher = fs.watch(root, { recursive: true, signal: AbortSignal.timeout(3000) }); + let err: Error | undefined = undefined; + watcher.on("change", (event, filename) => { + const basename = path.basename(filename as string); + + if (basename === "subfolder") return; + count++; + try { + expect(event).toBe("rename"); + expect(["new-file.txt", "new-folder.txt"]).toContain(basename); + if (count >= 2) { + watcher.close(); + } + } catch (e: any) { + err = e; + watcher.close(); + } + }); + watcher.on("error", e => (err = e)); + watcher.on("close", () => { + clearInterval(interval); + done(err); + }); + + const interval = repeat(() => { + fs.writeFileSync(path.join(subfolder, "new-file.txt"), "hello"); + fs.mkdirSync(path.join(subfolder, "new-folder.txt")); + fs.rmdirSync(path.join(subfolder, "new-folder.txt")); + }); + }); + + test("should emit event when file is deleted", done => { + const testsubdir = tempDirWithFiles("subdir", { + "deleted.txt": "hello", + }); + const filepath = path.join(testsubdir, "deleted.txt"); + let err: Error | undefined = undefined; + const watcher = fs.watch(testsubdir, function (event, filename) { + try { + expect(event).toBe("rename"); + expect(filename).toBe("deleted.txt"); + } catch (e: any) { + err = e; + } finally { + clearInterval(interval); + watcher.close(); + } + }); + + watcher.once("close", () => { + done(err); + }); + + const interval = repeat(() => { + fs.rmSync(filepath, { force: true }); + const fd = fs.openSync(filepath, "w"); + fs.closeSync(fd); + }); + }); + + test("should emit 'change' event when file is modified", done => { + const filepath = path.join(testDir, "watch.txt"); + + const watcher = fs.watch(filepath); + let err: Error | undefined = undefined; + watcher.on("change", function (event, filename) { + try { + expect(event).toBe("change"); + expect(filename).toBe("watch.txt"); + } catch (e: any) { + err = e; + } finally { + clearInterval(interval); + watcher.close(); + } + }); + + watcher.once("close", () => { + done(err); + }); + + const interval = repeat(() => { + fs.writeFileSync(filepath, "world"); + }); + }); + + test("should error on invalid path", done => { + try { + fs.watch(path.join(testDir, "404.txt")); + done(new Error("should not reach here")); + } catch (err: any) { + expect(err).toBeInstanceOf(Error); + expect(err.code).toBe("ENOENT"); + expect(err.syscall).toBe("watch"); + done(); + } + }); + + const encodings = ["utf8", "buffer", "hex", "ascii", "base64", "utf16le", "ucs2", "latin1", "binary"] as const; + + test(`should work with encodings ${encodings.join(", ")}`, async () => { + const watchers: FSWatcher[] = []; + const filepath = path.join(testDir, encodingFileName); + + const promises: Promise[] = []; + encodings.forEach(name => { + const encoded_filename = + name !== "buffer" ? Buffer.from(encodingFileName, "utf8").toString(name) : Buffer.from(encodingFileName); + + promises.push( + new Promise((resolve, reject) => { + watchers.push( + fs.watch(filepath, { encoding: name }, (event, filename) => { + try { + expect(event).toBe("change"); + + if (name !== "buffer") { + expect(filename).toBe(encoded_filename); + } else { + expect(filename).toBeInstanceOf(Buffer); + expect((filename as any as Buffer)!.toString("utf8")).toBe(encodingFileName); + } + + resolve(undefined); + } catch (e: any) { + reject(e); + } + }), + ); + }), + ); + }); + + const interval = repeat(() => { + fs.writeFileSync(filepath, "world"); + }); + + try { + await Promise.all(promises); + } finally { + clearInterval(interval); + watchers.forEach(watcher => watcher.close()); + } + }); + + test("should work with url", done => { + const filepath = path.join(testDir, "url.txt"); + try { + const watcher = fs.watch(pathToFileURL(filepath)); + let err: Error | undefined = undefined; + watcher.on("change", function (event, filename) { + try { + expect(event).toBe("change"); + expect(filename).toBe("url.txt"); + } catch (e: any) { + err = e; + } finally { + clearInterval(interval); + watcher.close(); + } + }); + + watcher.once("close", () => { + done(err); + }); + + const interval = repeat(() => { + fs.writeFileSync(filepath, "world"); + }); + } catch (e: any) { + done(e); + } + }); + + test("calling close from error event should not throw", done => { + const filepath = path.join(testDir, "close.txt"); + try { + const ac = new AbortController(); + const watcher = fs.watch(pathToFileURL(filepath), { signal: ac.signal }); + watcher.once("error", () => { + try { + watcher.close(); + done(); + } catch (e: any) { + done("Should not error when calling close from error event"); + } + }); + ac.abort(); + } catch (e: any) { + done(e); + } + }); + + test("calling close from close event should not throw", done => { + const filepath = path.join(testDir, "close-close.txt"); + try { + const ac = new AbortController(); + const watcher = fs.watch(pathToFileURL(filepath), { signal: ac.signal }); + + watcher.once("close", () => { + try { + watcher.close(); + done(); + } catch (e: any) { + done("Should not error when calling close from close event"); + } + }); + + ac.abort(); + } catch (e: any) { + done(e); + } + }); + + test("Signal aborted after creating the watcher", async () => { + const filepath = path.join(testDir, "abort.txt"); + + const ac = new AbortController(); + const promise = new Promise((resolve, reject) => { + const watcher = fs.watch(filepath, { signal: ac.signal }); + watcher.once("error", err => (err.message === "The operation was aborted." ? resolve(undefined) : reject(err))); + watcher.once("close", () => reject()); + }); + await Bun.sleep(10); + ac.abort(); + await promise; + }); + + test("Signal aborted before creating the watcher", async () => { + const filepath = path.join(testDir, "abort.txt"); + + const signal = AbortSignal.abort(); + await new Promise((resolve, reject) => { + const watcher = fs.watch(filepath, { signal }); + watcher.once("error", err => (err.message === "The operation was aborted." ? resolve(undefined) : reject(err))); + watcher.once("close", () => reject()); + }); + }); + + test("should work with symlink", async () => { + const filepath = path.join(testDir, "sym-symlink2.txt"); + await fs.promises.symlink(path.join(testDir, "sym-sync.txt"), filepath); + + const interval = repeat(() => { + fs.writeFileSync(filepath, "hello"); + }); + + const promise = new Promise((resolve, reject) => { + let timeout: any = null; + const watcher = fs.watch(filepath, event => { + clearTimeout(timeout); + clearInterval(interval); + try { + resolve(event); + } catch (e: any) { + reject(e); + } finally { + watcher.close(); + } + }); + setTimeout(() => { + clearInterval(interval); + watcher?.close(); + reject("timeout"); + }, 3000); + }); + expect(promise).resolves.toBe("change"); + }); +}); + +describe("fs.promises.watch", () => { + test("add file/folder to folder", async () => { + let count = 0; + const root = path.join(testDir, "add-promise-directory"); + try { + fs.mkdirSync(root); + } catch {} + let success = false; + let err: Error | undefined = undefined; + try { + const ac = new AbortController(); + const watcher = fs.promises.watch(root, { signal: ac.signal }); + + const interval = repeat(() => { + fs.writeFileSync(path.join(root, "new-file.txt"), "hello"); + fs.mkdirSync(path.join(root, "new-folder.txt")); + fs.rmdirSync(path.join(root, "new-folder.txt")); + }); + + for await (const event of watcher) { + count++; + try { + expect(event.eventType).toBe("rename"); + expect(["new-file.txt", "new-folder.txt"]).toContain(event.filename); + + if (count >= 2) { + success = true; + clearInterval(interval); + ac.abort(); + } + } catch (e: any) { + err = e; + clearInterval(interval); + ac.abort(); + } + } + } catch (e: any) { + if (!success) { + throw err || e; + } + } + }); + + test("add file/folder to subfolder", async () => { + let count = 0; + const root = path.join(testDir, "add-promise-subdirectory"); + try { + fs.mkdirSync(root); + } catch {} + const subfolder = path.join(root, "subfolder"); + fs.mkdirSync(subfolder); + let success = false; + let err: Error | undefined = undefined; + + try { + const ac = new AbortController(); + const watcher = fs.promises.watch(root, { recursive: true, signal: ac.signal }); + + const interval = repeat(() => { + fs.writeFileSync(path.join(subfolder, "new-file.txt"), "hello"); + fs.mkdirSync(path.join(subfolder, "new-folder.txt")); + fs.rmdirSync(path.join(subfolder, "new-folder.txt")); + }); + for await (const event of watcher) { + const basename = path.basename(event.filename!); + if (basename === "subfolder") continue; + + count++; + try { + expect(event.eventType).toBe("rename"); + expect(["new-file.txt", "new-folder.txt"]).toContain(basename); + + if (count >= 2) { + success = true; + clearInterval(interval); + ac.abort(); + } + } catch (e: any) { + err = e; + clearInterval(interval); + ac.abort(); + } + } + } catch (e: any) { + if (!success) { + throw err || e; + } + } + }); + + test("Signal aborted after creating the watcher", async () => { + const filepath = path.join(testDir, "abort.txt"); + + const ac = new AbortController(); + const watcher = fs.promises.watch(filepath, { signal: ac.signal }); + + const promise = (async () => { + try { + for await (const _ of watcher); + } catch (e: any) { + expect(e.message).toBe("The operation was aborted."); + } + })(); + await Bun.sleep(10); + ac.abort(); + await promise; + }); + + test("Signal aborted before creating the watcher", async () => { + const filepath = path.join(testDir, "abort.txt"); + + const signal = AbortSignal.abort(); + const watcher = fs.promises.watch(filepath, { signal }); + await (async () => { + try { + for await (const _ of watcher); + } catch (e: any) { + expect(e.message).toBe("The operation was aborted."); + } + })(); + }); + + test("should work with symlink", async () => { + const filepath = path.join(testDir, "sym-symlink.txt"); + await fs.promises.symlink(path.join(testDir, "sym.txt"), filepath); + + const watcher = fs.promises.watch(filepath); + const interval = repeat(() => { + fs.writeFileSync(filepath, "hello"); + }); + + const promise = (async () => { + try { + for await (const event of watcher) { + return event.eventType; + } + } catch (e: any) { + expect("unreacheable").toBe(false); + } finally { + clearInterval(interval); + } + })(); + expect(promise).resolves.toBe("change"); + }); +}); diff --git a/test/js/third_party/socket.io/support/util.ts b/test/js/third_party/socket.io/support/util.ts index 597b40d65..b5f515568 100644 --- a/test/js/third_party/socket.io/support/util.ts +++ b/test/js/third_party/socket.io/support/util.ts @@ -1,3 +1,4 @@ +// @ts-nocheck import type { Server } from "socket.io"; import request from "supertest"; diff --git a/test/js/web/html/FormData.test.ts b/test/js/web/html/FormData.test.ts index cbaf5aaa7..45b4f2f5a 100644 --- a/test/js/web/html/FormData.test.ts +++ b/test/js/web/html/FormData.test.ts @@ -301,17 +301,18 @@ describe("FormData", () => { expect(await (body.get("foo") as Blob).text()).toBe("baz"); server.stop(true); }); - + type FetchReqArgs = [request: Request, init?: RequestInit]; + type FetchURLArgs = [url: string | URL | Request, init?: FetchRequestInit]; for (let useRequestConstructor of [true, false]) { describe(useRequestConstructor ? "Request constructor" : "fetch()", () => { - function send(args: Parameters) { + function send(args: FetchReqArgs | FetchURLArgs) { if (useRequestConstructor) { - return fetch(new Request(...args)); + return fetch(new Request(...(args as FetchReqArgs))); } else { - return fetch(...args); + return fetch(...(args as FetchURLArgs)); } } - for (let headers of [{}, undefined, { headers: { X: "Y" } }]) { + for (let headers of [{} as {}, undefined, { headers: { X: "Y" } }]) { describe("headers: " + Bun.inspect(headers).replaceAll(/([\n ])/gim, ""), () => { it("send on HTTP server with FormData & Blob (roundtrip)", async () => { let contentType = ""; @@ -330,11 +331,10 @@ describe("FormData", () => { form.append("bar", "baz"); // @ts-ignore - const reqBody = [ + const reqBody: FetchURLArgs = [ `http://${server.hostname}:${server.port}`, { body: form, - headers, method: "POST", }, @@ -364,7 +364,6 @@ describe("FormData", () => { form.append("foo", file); form.append("bar", "baz"); - // @ts-ignore const reqBody = [ `http://${server.hostname}:${server.port}`, { @@ -374,7 +373,7 @@ describe("FormData", () => { method: "POST", }, ]; - const res = await send(reqBody); + const res = await send(reqBody as FetchURLArgs); const body = await res.formData(); expect(await (body.get("foo") as Blob).text()).toBe(text); expect(contentType).toContain("multipart/form-data"); @@ -410,7 +409,7 @@ describe("FormData", () => { method: "POST", }, ]; - const res = await send(reqBody); + const res = await send(reqBody as FetchURLArgs); const body = await res.formData(); expect(contentType).toContain("multipart/form-data"); expect(body.get("foo")).toBe("boop"); diff --git a/test/js/web/html/URLSearchParams.test.ts b/test/js/web/html/URLSearchParams.test.ts index 120bb2321..41c42c25d 100644 --- a/test/js/web/html/URLSearchParams.test.ts +++ b/test/js/web/html/URLSearchParams.test.ts @@ -7,15 +7,20 @@ describe("URLSearchParams", () => { params.append("foo", "bar"); params.append("foo", "boop"); params.append("bar", "baz"); + // @ts-ignore expect(params.length).toBe(3); params.delete("foo"); + // @ts-ignore expect(params.length).toBe(1); params.append("foo", "bar"); + // @ts-ignore expect(params.length).toBe(2); params.delete("foo"); params.delete("foo"); + // @ts-ignore expect(params.length).toBe(1); params.delete("bar"); + // @ts-ignore expect(params.length).toBe(0); }); diff --git a/test/package.json b/test/package.json index 5529d3f20..75f8d35e3 100644 --- a/test/package.json +++ b/test/package.json @@ -8,6 +8,7 @@ "@swc/core": "1.3.38", "@types/react": "18.0.28", "@types/react-dom": "18.0.11", + "@types/supertest": "2.0.12", "bktree-fast": "0.0.7", "body-parser": "1.20.2", "dedent": "0.7.0", @@ -17,6 +18,9 @@ "jest-extended": "4.0.0", "lodash": "4.17.21", "nodemailer": "6.9.3", + "pg": "8.11.1", + "pg-connection-string": "2.6.1", + "postgres": "3.3.5", "prisma": "4.15.0", "socket.io": "4.7.1", "socket.io-client": "4.7.1", @@ -26,10 +30,7 @@ "undici": "5.20.0", "vitest": "0.32.2", "webpack": "5.88.0", - "webpack-cli": "4.7.2", - "pg": "8.11.1", - "postgres": "3.3.5", - "pg-connection-string": "2.6.1" + "webpack-cli": "4.7.2" }, "private": true, "scripts": { diff --git a/test/tsconfig.json b/test/tsconfig.json index 67f706cdf..a5e77bf59 100644 --- a/test/tsconfig.json +++ b/test/tsconfig.json @@ -1,13 +1,8 @@ { - "include": [ - ".", - "../packages/bun-types/index.d.ts" - ], + "include": [".", "../packages/bun-types/index.d.ts"], "compilerOptions": { "noEmit": true, - "lib": [ - "ESNext" - ], + "lib": ["ESNext"], "module": "ESNext", "target": "ESNext", "moduleResolution": "bundler", @@ -23,25 +18,14 @@ "resolveJsonModule": true, "baseUrl": ".", "paths": { - "harness": [ - "harness.ts" - ], - "mkfifo": [ - "mkfifo.ts" - ], - "node-harness": [ - "js/node/harness.ts" - ], - "deno:harness": [ - "js/deno/harness.ts" - ], - "foo/bar": [ - "js/bun/resolve/baz.js" - ], - "@faasjs/*": [ - "js/bun/resolve/*.js" - ] + "harness": ["harness.ts"], + "mkfifo": ["mkfifo.ts"], + "node-harness": ["js/node/harness.ts"], + "deno:harness": ["js/deno/harness.ts"], + "foo/bar": ["js/bun/resolve/baz.js"], + "@faasjs/*": ["js/bun/resolve/*.js"] } }, + "exclude": ["bundler/fixtures", "snapshots", "js/deno"] } diff --git a/tsconfig.json b/tsconfig.json index 0ee640ea0..d8be0da03 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,12 +6,10 @@ // "skipLibCheck": true, "allowJs": true }, - "include": [ - ".", - "packages/bun-types/index.d.ts" - ], + "include": [".", "packages/bun-types/index.d.ts"], "exclude": [ "src/test", + // "src/js/builtins", "packages", "bench", "examples/*/*", @@ -21,5 +19,6 @@ "src/bun.js/WebKit", "src/api/demo", "node_modules" - ] + ], + "files": ["src/js/builtins/builtins.d.ts"] } -- cgit v1.2.3 From c0cf7b4501efe579f0cbd6c2118c00df2ebc6a13 Mon Sep 17 00:00:00 2001 From: Ai Hoshino Date: Sat, 8 Jul 2023 06:10:49 +0800 Subject: fix decoding invalid UTF-8 input (#3563) * fix decoding invalid UTF-8 input Close: https://github.com/oven-sh/bun/issues/3562 * add unittest --- src/bun.js/bindings/JSStringDecoder.cpp | 4 ++-- test/js/node/string_decoder/string-decoder.test.js | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/bindings/JSStringDecoder.cpp b/src/bun.js/bindings/JSStringDecoder.cpp index 5ec258522..b8c2dd50c 100644 --- a/src/bun.js/bindings/JSStringDecoder.cpp +++ b/src/bun.js/bindings/JSStringDecoder.cpp @@ -129,7 +129,7 @@ uint8_t JSStringDecoder::utf8CheckIncomplete(uint8_t* bufPtr, uint32_t length, u m_lastNeed = nb - 1; return nb; } - if (--j < i || nb == -2) + if (j == 0 || --j < i || nb == -2) return 0; nb = utf8CheckByte(bufPtr[j]); if (nb >= 0) { @@ -137,7 +137,7 @@ uint8_t JSStringDecoder::utf8CheckIncomplete(uint8_t* bufPtr, uint32_t length, u m_lastNeed = nb - 2; return nb; } - if (--j < i || nb == -2) + if (j == 0 || --j < i || nb == -2) return 0; nb = utf8CheckByte(bufPtr[j]); if (nb >= 0) { diff --git a/test/js/node/string_decoder/string-decoder.test.js b/test/js/node/string_decoder/string-decoder.test.js index f37326678..aba73401a 100644 --- a/test/js/node/string_decoder/string-decoder.test.js +++ b/test/js/node/string_decoder/string-decoder.test.js @@ -241,3 +241,12 @@ for (const StringDecoder of [FakeStringDecoderCall, RealStringDecoder]) { }); }); } + +it("invalid utf-8 input, pr #3562", () => { + const decoder = new RealStringDecoder("utf-8"); + let output = ""; + output += decoder.write(Buffer.from("B9", "hex")); + output += decoder.write(Buffer.from("A9", "hex")); + output += decoder.end(); + expect(output).toStrictEqual("\uFFFD\uFFFD"); +}); -- cgit v1.2.3 From aa8b832ef61ada31176d248e716074ff22bb9dee Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Sat, 8 Jul 2023 14:26:19 -0700 Subject: Implement `process.on("beforeExit", cb)` and `process.on("exit", cb)` (#3576) * Support `process.on('beforeExit')` and `process.on('exit')` * [bun:sqlite] Always call sqlite3_close on exit * Update process.test.js --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> --- src/bun.js/bindings/Process.cpp | 189 +++++++++++++++++---- src/bun.js/bindings/ZigGlobalObject.h | 2 + src/bun.js/bindings/sqlite/JSSQLStatement.cpp | 86 +++++++--- src/bun.js/bindings/sqlite/JSSQLStatement.h | 15 -- src/bun.js/javascript.zig | 50 ++++++ src/bun.js/node/types.zig | 4 +- src/bun_js.zig | 14 +- test/js/node/process/process-exit-fixture.js | 16 ++ test/js/node/process/process-exitCode-fixture.js | 7 + test/js/node/process/process-exitCode-with-exit.js | 8 + .../node/process/process-onBeforeExit-fixture.js | 7 + .../node/process/process-onBeforeExit-keepAlive.js | 18 ++ test/js/node/process/process.test.js | 64 ++++++- 13 files changed, 402 insertions(+), 78 deletions(-) create mode 100644 test/js/node/process/process-exit-fixture.js create mode 100644 test/js/node/process/process-exitCode-fixture.js create mode 100644 test/js/node/process/process-exitCode-with-exit.js create mode 100644 test/js/node/process/process-onBeforeExit-fixture.js create mode 100644 test/js/node/process/process-onBeforeExit-keepAlive.js (limited to 'test/js') diff --git a/src/bun.js/bindings/Process.cpp b/src/bun.js/bindings/Process.cpp index 6320deaf1..1d6b5d33a 100644 --- a/src/bun.js/bindings/Process.cpp +++ b/src/bun.js/bindings/Process.cpp @@ -42,6 +42,35 @@ static JSC_DECLARE_CUSTOM_GETTER(Process_getPID); static JSC_DECLARE_CUSTOM_GETTER(Process_getPPID); static JSC_DECLARE_HOST_FUNCTION(Process_functionCwd); +static bool processIsExiting = false; + +extern "C" uint8_t Bun__getExitCode(void*); +extern "C" uint8_t Bun__setExitCode(void*, uint8_t); +extern "C" void* Bun__getVM(); +extern "C" Zig::GlobalObject* Bun__getDefaultGlobal(); + +static void dispatchExitInternal(JSC::JSGlobalObject* globalObject, Process* process, int exitCode) +{ + + if (processIsExiting) + return; + processIsExiting = true; + auto& emitter = process->wrapped(); + auto& vm = globalObject->vm(); + + if (vm.hasTerminationRequest() || vm.hasExceptionsAfterHandlingTraps()) + return; + + auto event = Identifier::fromString(vm, "exit"_s); + if (!emitter.hasEventListeners(event)) { + return; + } + process->putDirect(vm, Identifier::fromString(vm, "_exiting"_s), jsBoolean(true), 0); + + MarkedArgumentBuffer arguments; + arguments.append(jsNumber(exitCode)); + emitter.emit(event, arguments); +} static JSValue constructStdioWriteStream(JSC::JSGlobalObject* globalObject, int fd) { @@ -324,6 +353,29 @@ JSC_DEFINE_HOST_FUNCTION(Process_functionUmask, extern "C" uint64_t Bun__readOriginTimer(void*); extern "C" double Bun__readOriginTimerStart(void*); +// https://github.com/nodejs/node/blob/1936160c31afc9780e4365de033789f39b7cbc0c/src/api/hooks.cc#L49 +extern "C" void Process__dispatchOnBeforeExit(Zig::GlobalObject* globalObject, uint8_t exitCode) +{ + if (!globalObject->hasProcessObject()) { + return; + } + + auto* process = jsCast(globalObject->processObject()); + MarkedArgumentBuffer arguments; + arguments.append(jsNumber(exitCode)); + process->wrapped().emit(Identifier::fromString(globalObject->vm(), "beforeExit"_s), arguments); +} + +extern "C" void Process__dispatchOnExit(Zig::GlobalObject* globalObject, uint8_t exitCode) +{ + if (!globalObject->hasProcessObject()) { + return; + } + + auto* process = jsCast(globalObject->processObject()); + dispatchExitInternal(globalObject, process, exitCode); +} + JSC_DEFINE_HOST_FUNCTION(Process_functionUptime, (JSC::JSGlobalObject * globalObject, JSC::CallFrame* callFrame)) { @@ -336,14 +388,38 @@ JSC_DEFINE_HOST_FUNCTION(Process_functionUptime, JSC_DEFINE_HOST_FUNCTION(Process_functionExit, (JSC::JSGlobalObject * globalObject, JSC::CallFrame* callFrame)) { - if (callFrame->argumentCount() == 0) { - // TODO: exitCode - Bun__Process__exit(globalObject, 0); + auto throwScope = DECLARE_THROW_SCOPE(globalObject->vm()); + uint8_t exitCode = 0; + JSValue arg0 = callFrame->argument(0); + if (arg0.isNumber()) { + if (!arg0.isInt32()) { + throwRangeError(globalObject, throwScope, "The \"code\" argument must be an integer"_s); + return JSC::JSValue::encode(JSC::JSValue {}); + } + + int extiCode32 = arg0.toInt32(globalObject); + RETURN_IF_EXCEPTION(throwScope, JSC::JSValue::encode(JSC::JSValue {})); + + if (extiCode32 < 0 || extiCode32 > 127) { + throwRangeError(globalObject, throwScope, "The \"code\" argument must be an integer between 0 and 127"_s); + return JSC::JSValue::encode(JSC::JSValue {}); + } + + exitCode = static_cast(extiCode32); + } else if (!arg0.isUndefinedOrNull()) { + throwTypeError(globalObject, throwScope, "The \"code\" argument must be an integer"_s); + return JSC::JSValue::encode(JSC::JSValue {}); } else { - Bun__Process__exit(globalObject, callFrame->argument(0).toInt32(globalObject)); + exitCode = Bun__getExitCode(Bun__getVM()); + } + + auto* zigGlobal = jsDynamicCast(globalObject); + if (UNLIKELY(!zigGlobal)) { + zigGlobal = Bun__getDefaultGlobal(); } - return JSC::JSValue::encode(JSC::jsUndefined()); + Process__dispatchOnExit(zigGlobal, exitCode); + Bun__Process__exit(zigGlobal, exitCode); } extern "C" uint64_t Bun__readOriginTimer(void*); @@ -391,18 +467,15 @@ JSC_DEFINE_HOST_FUNCTION(Process_functionHRTime, array->setIndexQuickly(vm, 1, JSC::jsNumber(nanoseconds)); return JSC::JSValue::encode(JSC::JSValue(array)); } -static JSC_DECLARE_HOST_FUNCTION(Process_functionHRTimeBigInt); -static JSC_DEFINE_HOST_FUNCTION(Process_functionHRTimeBigInt, +JSC_DEFINE_HOST_FUNCTION(Process_functionHRTimeBigInt, (JSC::JSGlobalObject * globalObject_, JSC::CallFrame* callFrame)) { Zig::GlobalObject* globalObject = reinterpret_cast(globalObject_); return JSC::JSValue::encode(JSValue(JSC::JSBigInt::createFrom(globalObject, Bun__readOriginTimer(globalObject->bunVM())))); } -static JSC_DECLARE_HOST_FUNCTION(Process_functionChdir); - -static JSC_DEFINE_HOST_FUNCTION(Process_functionChdir, +JSC_DEFINE_HOST_FUNCTION(Process_functionChdir, (JSC::JSGlobalObject * globalObject, JSC::CallFrame* callFrame)) { auto scope = DECLARE_THROW_SCOPE(globalObject->vm()); @@ -611,6 +684,46 @@ JSC_DEFINE_CUSTOM_GETTER(Process_lazyExecArgvGetter, (JSC::JSGlobalObject * glob return ret; } +JSC_DEFINE_CUSTOM_GETTER(Process__getExitCode, (JSC::JSGlobalObject * lexicalGlobalObject, JSC::EncodedJSValue thisValue, JSC::PropertyName name)) +{ + Process* process = jsDynamicCast(JSValue::decode(thisValue)); + if (!process) { + return JSValue::encode(jsUndefined()); + } + + return JSValue::encode(jsNumber(Bun__getExitCode(jsCast(process->globalObject())->bunVM()))); +} +JSC_DEFINE_CUSTOM_SETTER(Process__setExitCode, (JSC::JSGlobalObject * lexicalGlobalObject, JSC::EncodedJSValue thisValue, JSC::EncodedJSValue value, JSC::PropertyName)) +{ + Process* process = jsDynamicCast(JSValue::decode(thisValue)); + if (!process) { + return false; + } + + auto throwScope = DECLARE_THROW_SCOPE(process->vm()); + JSValue exitCode = JSValue::decode(value); + if (!exitCode.isNumber()) { + throwTypeError(lexicalGlobalObject, throwScope, "exitCode must be a number"_s); + return false; + } + + if (!exitCode.isInt32()) { + throwRangeError(lexicalGlobalObject, throwScope, "The \"code\" argument must be an integer"_s); + return JSC::JSValue::encode(JSC::JSValue {}); + } + + int exitCodeInt = exitCode.toInt32(lexicalGlobalObject); + RETURN_IF_EXCEPTION(throwScope, false); + if (exitCodeInt < 0 || exitCodeInt > 127) { + throwRangeError(lexicalGlobalObject, throwScope, "exitCode must be between 0 and 127"_s); + return false; + } + + void* ptr = jsCast(process->globalObject())->bunVM(); + Bun__setExitCode(ptr, static_cast(exitCodeInt)); + return true; +} + JSC_DEFINE_CUSTOM_GETTER(Process_lazyExecPathGetter, (JSC::JSGlobalObject * globalObject, JSC::EncodedJSValue thisValue, JSC::PropertyName name)) { JSC::JSObject* thisObject = JSValue::decode(thisValue).getObject(); @@ -677,39 +790,42 @@ void Process::finishCreation(JSC::VM& vm) vm, clientData->builtinNames().versionsPublicName(), JSC::CustomGetterSetter::create(vm, Process_getVersionsLazy, Process_setVersionsLazy), 0); // this should be transpiled out, but just incase - this->putDirect(this->vm(), JSC::Identifier::fromString(this->vm(), "browser"_s), - JSC::JSValue(false)); + this->putDirect(vm, JSC::Identifier::fromString(vm, "browser"_s), + JSC::JSValue(false), PropertyAttribute::DontEnum | 0); - this->putDirect(this->vm(), JSC::Identifier::fromString(this->vm(), "exitCode"_s), - JSC::JSValue(JSC::jsNumber(0))); + this->putDirectCustomAccessor(vm, JSC::Identifier::fromString(vm, "exitCode"_s), + JSC::CustomGetterSetter::create(vm, + Process__getExitCode, + Process__setExitCode), + 0); - this->putDirect(this->vm(), clientData->builtinNames().versionPublicName(), - JSC::jsString(this->vm(), makeString("v", REPORTED_NODE_VERSION))); + this->putDirect(vm, clientData->builtinNames().versionPublicName(), + JSC::jsString(vm, makeString("v", REPORTED_NODE_VERSION))); // this gives some way of identifying at runtime whether the SSR is happening in node or not. // this should probably be renamed to what the name of the bundler is, instead of "notNodeJS" // but it must be something that won't evaluate to truthy in Node.js - this->putDirect(this->vm(), JSC::Identifier::fromString(this->vm(), "isBun"_s), JSC::JSValue(true)); + this->putDirect(vm, JSC::Identifier::fromString(vm, "isBun"_s), JSC::JSValue(true)); #if defined(__APPLE__) - this->putDirect(this->vm(), JSC::Identifier::fromString(this->vm(), "platform"_s), - JSC::jsString(this->vm(), makeAtomString("darwin"))); + this->putDirect(vm, JSC::Identifier::fromString(vm, "platform"_s), + JSC::jsString(vm, makeAtomString("darwin"))); #else - this->putDirect(this->vm(), JSC::Identifier::fromString(this->vm(), "platform"_s), - JSC::jsString(this->vm(), makeAtomString("linux"))); + this->putDirect(vm, JSC::Identifier::fromString(vm, "platform"_s), + JSC::jsString(vm, makeAtomString("linux"))); #endif #if defined(__x86_64__) - this->putDirect(this->vm(), JSC::Identifier::fromString(this->vm(), "arch"_s), - JSC::jsString(this->vm(), makeAtomString("x64"))); + this->putDirect(vm, JSC::Identifier::fromString(vm, "arch"_s), + JSC::jsString(vm, makeAtomString("x64"))); #elif defined(__i386__) - this->putDirect(this->vm(), JSC::Identifier::fromString(this->vm(), "arch"_s), - JSC::jsString(this->vm(), makeAtomString("x86"))); + this->putDirect(vm, JSC::Identifier::fromString(vm, "arch"_s), + JSC::jsString(vm, makeAtomString("x86"))); #elif defined(__arm__) - this->putDirect(this->vm(), JSC::Identifier::fromString(this->vm(), "arch"_s), - JSC::jsString(this->vm(), makeAtomString("arm"))); + this->putDirect(vm, JSC::Identifier::fromString(vm, "arch"_s), + JSC::jsString(vm, makeAtomString("arm"))); #elif defined(__aarch64__) - this->putDirect(this->vm(), JSC::Identifier::fromString(this->vm(), "arch"_s), - JSC::jsString(this->vm(), makeAtomString("arm64"))); + this->putDirect(vm, JSC::Identifier::fromString(vm, "arch"_s), + JSC::jsString(vm, makeAtomString("arm64"))); #endif JSC::JSFunction* hrtime = JSC::JSFunction::create(vm, globalObject, 0, @@ -719,7 +835,7 @@ void Process::finishCreation(JSC::VM& vm) MAKE_STATIC_STRING_IMPL("bigint"), Process_functionHRTimeBigInt, ImplementationVisibility::Public); hrtime->putDirect(vm, JSC::Identifier::fromString(vm, "bigint"_s), hrtimeBigInt); - this->putDirect(this->vm(), JSC::Identifier::fromString(this->vm(), "hrtime"_s), hrtime); + this->putDirect(vm, JSC::Identifier::fromString(vm, "hrtime"_s), hrtime); this->putDirectCustomAccessor(vm, JSC::PropertyName(JSC::Identifier::fromString(vm, "release"_s)), JSC::CustomGetterSetter::create(vm, Process_getterRelease, Process_setterRelease), 0); @@ -733,7 +849,10 @@ void Process::finishCreation(JSC::VM& vm) this->putDirectCustomAccessor(vm, JSC::PropertyName(JSC::Identifier::fromString(vm, "stdin"_s)), JSC::CustomGetterSetter::create(vm, Process_lazyStdinGetter, Process_defaultSetter), 0); - this->putDirectNativeFunction(vm, globalObject, JSC::Identifier::fromString(this->vm(), "abort"_s), + this->putDirectNativeFunction(vm, globalObject, JSC::Identifier::fromString(vm, "abort"_s), + 0, Process_functionAbort, ImplementationVisibility::Public, NoIntrinsic, 0); + + this->putDirectNativeFunction(vm, globalObject, JSC::Identifier::fromString(vm, "abort"_s), 0, Process_functionAbort, ImplementationVisibility::Public, NoIntrinsic, 0); this->putDirectCustomAccessor(vm, JSC::PropertyName(JSC::Identifier::fromString(vm, "argv0"_s)), @@ -745,13 +864,13 @@ void Process::finishCreation(JSC::VM& vm) this->putDirectCustomAccessor(vm, JSC::PropertyName(JSC::Identifier::fromString(vm, "execArgv"_s)), JSC::CustomGetterSetter::create(vm, Process_lazyExecArgvGetter, Process_defaultSetter), 0); - this->putDirectNativeFunction(vm, globalObject, JSC::Identifier::fromString(this->vm(), "uptime"_s), + this->putDirectNativeFunction(vm, globalObject, JSC::Identifier::fromString(vm, "uptime"_s), 0, Process_functionUptime, ImplementationVisibility::Public, NoIntrinsic, 0); - this->putDirectNativeFunction(vm, globalObject, JSC::Identifier::fromString(this->vm(), "umask"_s), + this->putDirectNativeFunction(vm, globalObject, JSC::Identifier::fromString(vm, "umask"_s), 1, Process_functionUmask, ImplementationVisibility::Public, NoIntrinsic, 0); - this->putDirectBuiltinFunction(vm, globalObject, JSC::Identifier::fromString(this->vm(), "binding"_s), + this->putDirectBuiltinFunction(vm, globalObject, JSC::Identifier::fromString(vm, "binding"_s), processObjectInternalsBindingCodeGenerator(vm), 0); @@ -788,7 +907,7 @@ void Process::finishCreation(JSC::VM& vm) config->putDirect(vm, JSC::Identifier::fromString(vm, "variables"_s), variables, 0); this->putDirect(vm, JSC::Identifier::fromString(vm, "config"_s), config, 0); - this->putDirectNativeFunction(vm, globalObject, JSC::Identifier::fromString(this->vm(), "emitWarning"_s), + this->putDirectNativeFunction(vm, globalObject, JSC::Identifier::fromString(vm, "emitWarning"_s), 1, Process_emitWarning, ImplementationVisibility::Public, NoIntrinsic, 0); JSC::JSFunction* requireDotMainFunction = JSFunction::create( diff --git a/src/bun.js/bindings/ZigGlobalObject.h b/src/bun.js/bindings/ZigGlobalObject.h index da6ba92a0..f44212da1 100644 --- a/src/bun.js/bindings/ZigGlobalObject.h +++ b/src/bun.js/bindings/ZigGlobalObject.h @@ -270,6 +270,8 @@ public: JSWeakMap* vmModuleContextMap() { return m_vmModuleContextMap.getInitializedOnMainThread(this); } + bool hasProcessObject() const { return m_processObject.isInitialized(); } + JSC::JSObject* processObject() { return m_processObject.getInitializedOnMainThread(this); diff --git a/src/bun.js/bindings/sqlite/JSSQLStatement.cpp b/src/bun.js/bindings/sqlite/JSSQLStatement.cpp index a6855fd19..61ac91ba7 100644 --- a/src/bun.js/bindings/sqlite/JSSQLStatement.cpp +++ b/src/bun.js/bindings/sqlite/JSSQLStatement.cpp @@ -107,6 +107,50 @@ static JSC_DECLARE_HOST_FUNCTION(jsSQLStatementDeserialize); return JSValue::encode(jsUndefined()); \ } +class VersionSqlite3 { +public: + explicit VersionSqlite3(sqlite3* db) + : db(db) + , version(0) + { + } + sqlite3* db; + std::atomic version; +}; + +class SQLiteSingleton { +public: + Vector databases; + Vector> schema_versions; +}; + +static SQLiteSingleton* _instance = nullptr; + +static Vector& databases() +{ + if (!_instance) { + _instance = new SQLiteSingleton(); + _instance->databases = Vector(); + _instance->databases.reserveInitialCapacity(4); + _instance->schema_versions = Vector>(); + } + + return _instance->databases; +} + +extern "C" void Bun__closeAllSQLiteDatabasesForTermination() +{ + if (!_instance) { + return; + } + auto& dbs = _instance->databases; + + for (auto& db : dbs) { + if (db->db) + sqlite3_close_v2(db->db); + } +} + namespace WebCore { using namespace JSC; @@ -272,10 +316,6 @@ void JSSQLStatement::destroy(JSC::JSCell* cell) void JSSQLStatementConstructor::destroy(JSC::JSCell* cell) { - JSSQLStatementConstructor* thisObject = static_cast(cell); - for (auto version_db : thisObject->databases) { - delete version_db; - } } static inline bool rebindValue(JSC::JSGlobalObject* lexicalGlobalObject, sqlite3_stmt* stmt, int i, JSC::JSValue value, JSC::ThrowScope& scope, bool clone) @@ -547,8 +587,8 @@ JSC_DEFINE_HOST_FUNCTION(jsSQLStatementDeserialize, (JSC::JSGlobalObject * lexic return JSValue::encode(JSC::jsUndefined()); } - auto count = thisObject->databases.size(); - thisObject->databases.append(new VersionSqlite3(db)); + auto count = databases().size(); + databases().append(new VersionSqlite3(db)); RELEASE_AND_RETURN(scope, JSValue::encode(jsNumber(count))); } @@ -565,12 +605,12 @@ JSC_DEFINE_HOST_FUNCTION(jsSQLStatementSerialize, (JSC::JSGlobalObject * lexical } int32_t dbIndex = callFrame->argument(0).toInt32(lexicalGlobalObject); - if (UNLIKELY(dbIndex < 0 || dbIndex >= thisObject->databases.size())) { + if (UNLIKELY(dbIndex < 0 || dbIndex >= databases().size())) { throwException(lexicalGlobalObject, scope, createError(lexicalGlobalObject, "Invalid database handle"_s)); return JSValue::encode(JSC::jsUndefined()); } - sqlite3* db = thisObject->databases[dbIndex]->db; + sqlite3* db = databases()[dbIndex]->db; if (UNLIKELY(!db)) { throwException(lexicalGlobalObject, scope, createError(lexicalGlobalObject, "Can't do this on a closed database"_s)); return JSValue::encode(JSC::jsUndefined()); @@ -606,7 +646,7 @@ JSC_DEFINE_HOST_FUNCTION(jsSQLStatementLoadExtensionFunction, (JSC::JSGlobalObje } int32_t dbIndex = callFrame->argument(0).toInt32(lexicalGlobalObject); - if (UNLIKELY(dbIndex < 0 || dbIndex >= thisObject->databases.size())) { + if (UNLIKELY(dbIndex < 0 || dbIndex >= databases().size())) { throwException(lexicalGlobalObject, scope, createError(lexicalGlobalObject, "Invalid database handle"_s)); return JSValue::encode(JSC::jsUndefined()); } @@ -620,7 +660,7 @@ JSC_DEFINE_HOST_FUNCTION(jsSQLStatementLoadExtensionFunction, (JSC::JSGlobalObje auto extensionString = extension.toWTFString(lexicalGlobalObject); RETURN_IF_EXCEPTION(scope, {}); - sqlite3* db = thisObject->databases[dbIndex]->db; + sqlite3* db = databases()[dbIndex]->db; if (UNLIKELY(!db)) { throwException(lexicalGlobalObject, scope, createError(lexicalGlobalObject, "Can't do this on a closed database"_s)); return JSValue::encode(JSC::jsUndefined()); @@ -661,11 +701,11 @@ JSC_DEFINE_HOST_FUNCTION(jsSQLStatementExecuteFunction, (JSC::JSGlobalObject * l } int32_t handle = callFrame->argument(0).toInt32(lexicalGlobalObject); - if (thisObject->databases.size() < handle) { + if (databases().size() < handle) { throwException(lexicalGlobalObject, scope, createError(lexicalGlobalObject, "Invalid database handle"_s)); return JSValue::encode(JSC::jsUndefined()); } - sqlite3* db = thisObject->databases[handle]->db; + sqlite3* db = databases()[handle]->db; if (UNLIKELY(!db)) { throwException(lexicalGlobalObject, scope, createError(lexicalGlobalObject, "Database has closed"_s)); @@ -724,7 +764,7 @@ JSC_DEFINE_HOST_FUNCTION(jsSQLStatementExecuteFunction, (JSC::JSGlobalObject * l rc = sqlite3_step(statement); if (!sqlite3_stmt_readonly(statement)) { - thisObject->databases[handle]->version++; + databases()[handle]->version++; } while (rc == SQLITE_ROW) { @@ -765,12 +805,12 @@ JSC_DEFINE_HOST_FUNCTION(jsSQLStatementIsInTransactionFunction, (JSC::JSGlobalOb int32_t handle = dbNumber.toInt32(lexicalGlobalObject); - if (handle < 0 || handle > thisObject->databases.size()) { + if (handle < 0 || handle > databases().size()) { throwException(lexicalGlobalObject, scope, createRangeError(lexicalGlobalObject, "Invalid database handle"_s)); return JSValue::encode(JSC::jsUndefined()); } - sqlite3* db = thisObject->databases[handle]->db; + sqlite3* db = databases()[handle]->db; if (UNLIKELY(!db)) { throwException(lexicalGlobalObject, scope, createError(lexicalGlobalObject, "Database has closed"_s)); @@ -803,12 +843,12 @@ JSC_DEFINE_HOST_FUNCTION(jsSQLStatementPrepareStatementFunction, (JSC::JSGlobalO } int32_t handle = dbNumber.toInt32(lexicalGlobalObject); - if (handle < 0 || handle > thisObject->databases.size()) { + if (handle < 0 || handle > databases().size()) { throwException(lexicalGlobalObject, scope, createRangeError(lexicalGlobalObject, "Invalid database handle"_s)); return JSValue::encode(JSC::jsUndefined()); } - sqlite3* db = thisObject->databases[handle]->db; + sqlite3* db = databases()[handle]->db; if (!db) { throwException(lexicalGlobalObject, scope, createRangeError(lexicalGlobalObject, "Cannot use a closed database"_s)); return JSValue::encode(JSC::jsUndefined()); @@ -848,7 +888,7 @@ JSC_DEFINE_HOST_FUNCTION(jsSQLStatementPrepareStatementFunction, (JSC::JSGlobalO auto* structure = JSSQLStatement::createStructure(vm, lexicalGlobalObject, lexicalGlobalObject->objectPrototype()); // auto* structure = JSSQLStatement::createStructure(vm, globalObject(), thisObject->getDirect(vm, vm.propertyNames->prototype)); JSSQLStatement* sqlStatement = JSSQLStatement::create( - structure, reinterpret_cast(lexicalGlobalObject), statement, thisObject->databases[handle]); + structure, reinterpret_cast(lexicalGlobalObject), statement, databases()[handle]); if (bindings.isObject()) { auto* castedThis = sqlStatement; DO_REBIND(bindings) @@ -924,8 +964,8 @@ JSC_DEFINE_HOST_FUNCTION(jsSQLStatementOpenStatementFunction, (JSC::JSGlobalObje status = sqlite3_db_config(db, SQLITE_DBCONFIG_DEFENSIVE, 1, NULL); assert(status == SQLITE_OK); - auto count = constructor->databases.size(); - constructor->databases.append(new VersionSqlite3(db)); + auto count = databases().size(); + databases().append(new VersionSqlite3(db)); RELEASE_AND_RETURN(scope, JSValue::encode(jsNumber(count))); } @@ -956,12 +996,12 @@ JSC_DEFINE_HOST_FUNCTION(jsSQLStatementCloseStatementFunction, (JSC::JSGlobalObj int dbIndex = dbNumber.toInt32(lexicalGlobalObject); - if (dbIndex < 0 || dbIndex >= constructor->databases.size()) { + if (dbIndex < 0 || dbIndex >= databases().size()) { throwException(lexicalGlobalObject, scope, createError(lexicalGlobalObject, "Invalid database handle"_s)); return JSValue::encode(jsUndefined()); } - sqlite3* db = constructor->databases[dbIndex]->db; + sqlite3* db = databases()[dbIndex]->db; // no-op if already closed if (!db) { return JSValue::encode(jsUndefined()); @@ -973,7 +1013,7 @@ JSC_DEFINE_HOST_FUNCTION(jsSQLStatementCloseStatementFunction, (JSC::JSGlobalObj return JSValue::encode(jsUndefined()); } - constructor->databases[dbIndex]->db = nullptr; + databases()[dbIndex]->db = nullptr; return JSValue::encode(jsUndefined()); } diff --git a/src/bun.js/bindings/sqlite/JSSQLStatement.h b/src/bun.js/bindings/sqlite/JSSQLStatement.h index e63b99fbb..8566fcdd9 100644 --- a/src/bun.js/bindings/sqlite/JSSQLStatement.h +++ b/src/bun.js/bindings/sqlite/JSSQLStatement.h @@ -47,17 +47,6 @@ namespace WebCore { -class VersionSqlite3 { -public: - explicit VersionSqlite3(sqlite3* db) - : db(db) - , version(0) - { - } - sqlite3* db; - std::atomic version; -}; - class JSSQLStatementConstructor final : public JSC::JSFunction { public: using Base = JSC::JSFunction; @@ -82,13 +71,9 @@ public: return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info()); } - Vector databases; - Vector> schema_versions; - private: JSSQLStatementConstructor(JSC::VM& vm, NativeExecutable* native, JSGlobalObject* globalObject, JSC::Structure* structure) : Base(vm, native, globalObject, structure) - , databases() { } diff --git a/src/bun.js/javascript.zig b/src/bun.js/javascript.zig index b696c6cf2..7d2435823 100644 --- a/src/bun.js/javascript.zig +++ b/src/bun.js/javascript.zig @@ -334,6 +334,33 @@ pub export fn Bun__onDidAppendPlugin(jsc_vm: *VirtualMachine, globalObject: *JSG jsc_vm.bundler.linker.plugin_runner = &jsc_vm.plugin_runner.?; } +pub const ExitHandler = struct { + exit_code: u8 = 0, + + pub export fn Bun__getExitCode(vm: *VirtualMachine) u8 { + return vm.exit_handler.exit_code; + } + + pub export fn Bun__setExitCode(vm: *VirtualMachine, code: u8) void { + vm.exit_handler.exit_code = code; + } + + extern fn Process__dispatchOnBeforeExit(*JSC.JSGlobalObject, code: u8) void; + extern fn Process__dispatchOnExit(*JSC.JSGlobalObject, code: u8) void; + extern fn Bun__closeAllSQLiteDatabasesForTermination() void; + + pub fn dispatchOnExit(this: *ExitHandler) void { + var vm = @fieldParentPtr(VirtualMachine, "exit_handler", this); + Process__dispatchOnExit(vm.global, this.exit_code); + Bun__closeAllSQLiteDatabasesForTermination(); + } + + pub fn dispatchOnBeforeExit(this: *ExitHandler) void { + var vm = @fieldParentPtr(VirtualMachine, "exit_handler", this); + Process__dispatchOnBeforeExit(vm.global, this.exit_code); + } +}; + /// TODO: rename this to ScriptExecutionContext /// This is the shared global state for a single JS instance execution /// Today, Bun is one VM per thread, so the name "VirtualMachine" sort of makes sense @@ -376,6 +403,7 @@ pub const VirtualMachine = struct { plugin_runner: ?PluginRunner = null, is_main_thread: bool = false, last_reported_error_for_dedupe: JSValue = .zero, + exit_handler: ExitHandler = .{}, /// Do not access this field directly /// It exists in the VirtualMachine struct so that @@ -620,7 +648,29 @@ pub const VirtualMachine = struct { loop.run(); } + pub fn onBeforeExit(this: *VirtualMachine) void { + this.exit_handler.dispatchOnBeforeExit(); + var dispatch = false; + while (true) { + while (this.eventLoop().tasks.count > 0 or this.active_tasks > 0 or this.uws_event_loop.?.active > 0) : (dispatch = true) { + this.tick(); + this.eventLoop().autoTickActive(); + } + + if (dispatch) { + this.exit_handler.dispatchOnBeforeExit(); + dispatch = false; + + if (this.eventLoop().tasks.count > 0 or this.active_tasks > 0 or this.uws_event_loop.?.active > 0) continue; + } + + break; + } + } + pub fn onExit(this: *VirtualMachine) void { + this.exit_handler.dispatchOnExit(); + var rare_data = this.rare_data orelse return; var hook = rare_data.cleanup_hook orelse return; hook.execute(); diff --git a/src/bun.js/node/types.zig b/src/bun.js/node/types.zig index 96d04636e..553b292d6 100644 --- a/src/bun.js/node/types.zig +++ b/src/bun.js/node/types.zig @@ -2202,7 +2202,9 @@ pub const Process = struct { } } - pub fn exit(_: *JSC.JSGlobalObject, code: i32) callconv(.C) void { + pub fn exit(globalObject: *JSC.JSGlobalObject, code: i32) callconv(.C) void { + globalObject.bunVM().onExit(); + std.os.exit(@truncate(u8, @intCast(u32, @max(code, 0)))); } diff --git a/src/bun_js.zig b/src/bun_js.zig index 63ffe0611..72b7f8de9 100644 --- a/src/bun_js.zig +++ b/src/bun_js.zig @@ -248,6 +248,8 @@ pub const Run = struct { vm.eventLoop().tick(); vm.eventLoop().tickPossiblyForever(); } else { + vm.exit_handler.exit_code = 1; + vm.onExit(); Global.exit(1); } } @@ -279,6 +281,8 @@ pub const Run = struct { vm.eventLoop().tick(); vm.eventLoop().tickPossiblyForever(); } else { + vm.exit_handler.exit_code = 1; + vm.onExit(); Global.exit(1); } } @@ -315,6 +319,8 @@ pub const Run = struct { vm.eventLoop().autoTickActive(); } + vm.onBeforeExit(); + if (this.vm.pending_internal_promise.status(vm.global.vm()) == .Rejected and prev_promise != this.vm.pending_internal_promise) { prev_promise = this.vm.pending_internal_promise; vm.onUnhandledError(this.vm.global, this.vm.pending_internal_promise.result(vm.global.vm())); @@ -332,6 +338,8 @@ pub const Run = struct { vm.tick(); vm.eventLoop().autoTickActive(); } + + vm.onBeforeExit(); } if (vm.log.msgs.items.len > 0) { @@ -347,10 +355,14 @@ pub const Run = struct { vm.onUnhandledRejection = &onUnhandledRejectionBeforeClose; vm.global.handleRejectedPromises(); + if (this.any_unhandled and this.vm.exit_handler.exit_code == 0) { + this.vm.exit_handler.exit_code = 1; + } + const exit_code = this.vm.exit_handler.exit_code; vm.onExit(); if (!JSC.is_bindgen) JSC.napi.fixDeadCodeElimination(); - Global.exit(@intFromBool(this.any_unhandled)); + Global.exit(exit_code); } }; diff --git a/test/js/node/process/process-exit-fixture.js b/test/js/node/process/process-exit-fixture.js new file mode 100644 index 000000000..c5a492285 --- /dev/null +++ b/test/js/node/process/process-exit-fixture.js @@ -0,0 +1,16 @@ +process.on("beforeExit", () => { + throw new Error("process.on('beforeExit') called"); +}); + +if (process._exiting) { + throw new Error("process._exiting should be undefined"); +} + +process.on("exit", () => { + if (!process._exiting) { + throw new Error("process.on('exit') called with process._exiting false"); + } + console.log("PASS"); +}); + +process.exit(0); diff --git a/test/js/node/process/process-exitCode-fixture.js b/test/js/node/process/process-exitCode-fixture.js new file mode 100644 index 000000000..2d5182d93 --- /dev/null +++ b/test/js/node/process/process-exitCode-fixture.js @@ -0,0 +1,7 @@ +process.exitCode = Number(process.argv.at(-1)); +process.on("exit", code => { + if (code !== process.exitCode) { + throw new Error("process.exitCode should be " + process.exitCode); + } + console.log("PASS"); +}); diff --git a/test/js/node/process/process-exitCode-with-exit.js b/test/js/node/process/process-exitCode-with-exit.js new file mode 100644 index 000000000..610975bc2 --- /dev/null +++ b/test/js/node/process/process-exitCode-with-exit.js @@ -0,0 +1,8 @@ +process.exitCode = Number(process.argv.at(-1)); +process.on("exit", code => { + if (code !== process.exitCode) { + throw new Error("process.exitCode should be " + process.exitCode); + } + console.log("PASS"); +}); +process.exit(); diff --git a/test/js/node/process/process-onBeforeExit-fixture.js b/test/js/node/process/process-onBeforeExit-fixture.js new file mode 100644 index 000000000..8cbdcebf0 --- /dev/null +++ b/test/js/node/process/process-onBeforeExit-fixture.js @@ -0,0 +1,7 @@ +process.on("beforeExit", () => { + console.log("beforeExit"); +}); + +process.on("exit", () => { + console.log("exit"); +}); diff --git a/test/js/node/process/process-onBeforeExit-keepAlive.js b/test/js/node/process/process-onBeforeExit-keepAlive.js new file mode 100644 index 000000000..45b20b763 --- /dev/null +++ b/test/js/node/process/process-onBeforeExit-keepAlive.js @@ -0,0 +1,18 @@ +let counter = 0; +process.on("beforeExit", () => { + if (process._exiting) { + throw new Error("process._exiting should be undefined"); + } + + console.log("beforeExit:", counter); + if (!counter++) { + setTimeout(() => {}, 1); + } +}); + +process.on("exit", () => { + if (!process._exiting) { + throw new Error("process.on('exit') called with process._exiting false"); + } + console.log("exit:", counter); +}); diff --git a/test/js/node/process/process.test.js b/test/js/node/process/process.test.js index 61ac3839c..c4701f664 100644 --- a/test/js/node/process/process.test.js +++ b/test/js/node/process/process.test.js @@ -1,8 +1,8 @@ -import { resolveSync, which } from "bun"; +import { resolveSync, spawnSync, which } from "bun"; import { describe, expect, it } from "bun:test"; import { existsSync, readFileSync, realpathSync } from "fs"; -import { bunExe } from "harness"; -import { basename, resolve } from "path"; +import { bunEnv, bunExe } from "harness"; +import { basename, join, resolve } from "path"; it("process", () => { // this property isn't implemented yet but it should at least return a string @@ -233,3 +233,61 @@ it("process.argv in testing", () => { // assert we aren't creating a new process.argv each call expect(process.argv).toBe(process.argv); }); + +describe("process.exitCode", () => { + it("validates int", () => { + expect(() => (process.exitCode = "potato")).toThrow("exitCode must be a number"); + expect(() => (process.exitCode = 1.2)).toThrow('The "code" argument must be an integer'); + expect(() => (process.exitCode = NaN)).toThrow('The "code" argument must be an integer'); + expect(() => (process.exitCode = Infinity)).toThrow('The "code" argument must be an integer'); + expect(() => (process.exitCode = -Infinity)).toThrow('The "code" argument must be an integer'); + expect(() => (process.exitCode = -1)).toThrow("exitCode must be between 0 and 127"); + }); + + it("works with implicit process.exit", () => { + const { exitCode, stdout } = spawnSync({ + cmd: [bunExe(), join(import.meta.dir, "process-exitCode-with-exit.js"), "42"], + env: bunEnv, + }); + expect(exitCode).toBe(42); + expect(stdout.toString().trim()).toBe("PASS"); + }); + + it("works with explicit process.exit", () => { + const { exitCode, stdout } = spawnSync({ + cmd: [bunExe(), join(import.meta.dir, "process-exitCode-fixture.js"), "42"], + env: bunEnv, + }); + expect(exitCode).toBe(42); + expect(stdout.toString().trim()).toBe("PASS"); + }); +}); + +it("process.exit", () => { + const { exitCode, stdout } = spawnSync({ + cmd: [bunExe(), join(import.meta.dir, "process-exit-fixture.js")], + env: bunEnv, + }); + expect(exitCode).toBe(0); + expect(stdout.toString().trim()).toBe("PASS"); +}); + +describe("process.onBeforeExit", () => { + it("emitted", () => { + const { exitCode, stdout } = spawnSync({ + cmd: [bunExe(), join(import.meta.dir, "process-onBeforeExit-fixture.js")], + env: bunEnv, + }); + expect(exitCode).toBe(0); + expect(stdout.toString().trim()).toBe("beforeExit\nexit"); + }); + + it("works with explicit process.exit", () => { + const { exitCode, stdout } = spawnSync({ + cmd: [bunExe(), join(import.meta.dir, "process-onBeforeExit-keepAlive.js")], + env: bunEnv, + }); + expect(exitCode).toBe(0); + expect(stdout.toString().trim()).toBe("beforeExit: 0\nbeforeExit: 1\nexit: 2"); + }); +}); -- cgit v1.2.3 From 565d1689e9f2c1f6b657f14b07fa9b95e50a5a56 Mon Sep 17 00:00:00 2001 From: Ai Hoshino Date: Sun, 9 Jul 2023 22:20:52 +0800 Subject: fix metadata bits of uuid (`randomUUID()`) (#3583) * fix uuid version Close: https://github.com/oven-sh/bun/issues/3575 * add unittest * small fix * avoid unnecessary copying --- src/bun.js/rare_data.zig | 8 ++++++-- src/bun.js/uuid.zig | 10 ++++++++++ src/bun.js/webcore.zig | 11 ++++------- src/bun.js/webcore/blob.zig | 2 +- src/http/websocket_http_client.zig | 2 +- test/js/web/web-globals.test.js | 19 +++++++++++++++++++ 6 files changed, 41 insertions(+), 11 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/rare_data.zig b/src/bun.js/rare_data.zig index ddda96bf4..3b29896a4 100644 --- a/src/bun.js/rare_data.zig +++ b/src/bun.js/rare_data.zig @@ -9,6 +9,7 @@ const std = @import("std"); const BoringSSL = @import("root").bun.BoringSSL; const bun = @import("root").bun; const WebSocketClientMask = @import("../http/websocket_http_client.zig").Mask; +const UUID = @import("./uuid.zig"); boring_ssl_engine: ?*BoringSSL.ENGINE = null, editor_context: EditorContext = EditorContext{}, @@ -47,13 +48,16 @@ pub fn filePolls(this: *RareData, vm: *JSC.VirtualMachine) *JSC.FilePoll.HiveArr }; } -pub fn nextUUID(this: *RareData) [16]u8 { +pub fn nextUUID(this: *RareData) UUID { if (this.entropy_cache == null) { this.entropy_cache = default_allocator.create(EntropyCache) catch unreachable; this.entropy_cache.?.init(); } - return this.entropy_cache.?.get(); + this.entropy_cache.?.fill(); + + const bytes = this.entropy_cache.?.get(); + return UUID.initWith(&bytes); } pub fn entropySlice(this: *RareData, len: usize) []u8 { diff --git a/src/bun.js/uuid.zig b/src/bun.js/uuid.zig index e8bdff661..e38ed567f 100644 --- a/src/bun.js/uuid.zig +++ b/src/bun.js/uuid.zig @@ -18,6 +18,16 @@ pub fn init() UUID { uuid.bytes[6] = (uuid.bytes[6] & 0x0f) | 0x40; // Variant 1 uuid.bytes[8] = (uuid.bytes[8] & 0x3f) | 0x80; + + return uuid; +} + +pub fn initWith(bytes: *const [16]u8) UUID { + var uuid = UUID{ .bytes = bytes.* }; + + uuid.bytes[6] = (uuid.bytes[6] & 0x0f) | 0x40; + uuid.bytes[8] = (uuid.bytes[8] & 0x3f) | 0x80; + return uuid; } diff --git a/src/bun.js/webcore.zig b/src/bun.js/webcore.zig index fd69b0262..8cb9ec80a 100644 --- a/src/bun.js/webcore.zig +++ b/src/bun.js/webcore.zig @@ -366,7 +366,6 @@ pub const Prompt = struct { }; pub const Crypto = struct { - const UUID = @import("./uuid.zig"); const BoringSSL = @import("root").bun.BoringSSL; pub const Class = JSC.NewClass( void, @@ -693,9 +692,8 @@ pub const Crypto = struct { _: []const JSC.JSValue, ) JSC.JSValue { var out: [36]u8 = undefined; - const uuid: UUID = .{ - .bytes = globalThis.bunVM().rareData().nextUUID(), - }; + const uuid = globalThis.bunVM().rareData().nextUUID(); + uuid.print(&out); return JSC.ZigString.init(&out).toValueGC(globalThis); } @@ -723,9 +721,8 @@ pub const Crypto = struct { _: *anyopaque, ) callconv(.C) JSC.JSValue { var out: [36]u8 = undefined; - const uuid: UUID = .{ - .bytes = globalThis.bunVM().rareData().nextUUID(), - }; + const uuid = globalThis.bunVM().rareData().nextUUID(); + uuid.print(&out); return JSC.ZigString.init(&out).toValueGC(globalThis); } diff --git a/src/bun.js/webcore/blob.zig b/src/bun.js/webcore/blob.zig index 86b5414e3..ef2520049 100644 --- a/src/bun.js/webcore/blob.zig +++ b/src/bun.js/webcore/blob.zig @@ -249,7 +249,7 @@ pub const Blob = struct { var hex_buf: [70]u8 = undefined; const boundary = brk: { - var random = globalThis.bunVM().rareData().nextUUID(); + var random = globalThis.bunVM().rareData().nextUUID().bytes; var formatter = std.fmt.fmtSliceHexLower(&random); break :brk std.fmt.bufPrint(&hex_buf, "-WebkitFormBoundary{any}", .{formatter}) catch unreachable; }; diff --git a/src/http/websocket_http_client.zig b/src/http/websocket_http_client.zig index f495af3b7..ae8e40763 100644 --- a/src/http/websocket_http_client.zig +++ b/src/http/websocket_http_client.zig @@ -60,7 +60,7 @@ fn buildRequestBody( extra_headers: NonUTF8Headers, ) std.mem.Allocator.Error![]u8 { const allocator = vm.allocator; - const input_rand_buf = vm.rareData().nextUUID(); + const input_rand_buf = vm.rareData().nextUUID().bytes; const temp_buf_size = comptime std.base64.standard.Encoder.calcSize(16); var encoded_buf: [temp_buf_size]u8 = undefined; const accept_key = std.base64.standard.Encoder.encode(&encoded_buf, &input_rand_buf); diff --git a/test/js/web/web-globals.test.js b/test/js/web/web-globals.test.js index b7a243190..d687a1290 100644 --- a/test/js/web/web-globals.test.js +++ b/test/js/web/web-globals.test.js @@ -138,6 +138,25 @@ it("crypto.randomUUID", () => { }); }); +it("crypto.randomUUID version, issues#3575", () => { + var uuid = crypto.randomUUID(); + + function validate(uuid) { + const regex = + /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; + return typeof uuid === "string" && regex.test(uuid); + } + function version(uuid) { + if (!validate(uuid)) { + throw TypeError("Invalid UUID"); + } + + return parseInt(uuid.slice(14, 15), 16); + } + + expect(version(uuid)).toBe(4); +}); + it("URL.prototype.origin", () => { const url = new URL("https://html.spec.whatwg.org/"); const { origin, host, hostname } = url; -- cgit v1.2.3 From 2f5e4fffe9554fcc7afa6980b3af6b33bc3a3a5e Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Sun, 9 Jul 2023 21:50:19 -0700 Subject: Implement process.memoryUsage() and process.cpuUsage() (#3586) * Implement process.memoryUsage() and process.cpuUsage() * Avoid mi_process_info * Update bench * Update Process.cpp * fixup * More tests + linux fixup * Skip it for now since it seems less accurate --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> --- bench/snippets/process-info.mjs | 33 ++ src/bun.js/bindings/Process.cpp | 388 ++++++++++++++++++++- src/bun.js/bindings/Process.h | 18 + src/bun.js/bindings/Process.lut.h | 97 +++--- .../bindings/webcore/DOMClientIsoSubspaces.h | 1 + src/bun.js/bindings/webcore/DOMIsoSubspaces.h | 1 + test/js/node/process/process.test.js | 142 +++++++- 7 files changed, 620 insertions(+), 60 deletions(-) create mode 100644 bench/snippets/process-info.mjs (limited to 'test/js') diff --git a/bench/snippets/process-info.mjs b/bench/snippets/process-info.mjs new file mode 100644 index 000000000..0366472e5 --- /dev/null +++ b/bench/snippets/process-info.mjs @@ -0,0 +1,33 @@ +import { bench, run } from "./runner.mjs"; +import { performance } from "perf_hooks"; + +bench("process.memoryUsage()", () => { + process.memoryUsage(); +}); + +bench("process.memoryUsage.rss()", () => { + process.memoryUsage.rss(); +}); + +bench("process.cpuUsage()", () => { + process.cpuUsage(); +}); + +const init = process.cpuUsage(); +bench("process.cpuUsage(delta)", () => { + process.cpuUsage(init); +}); + +bench("performance.now()", () => { + performance.now(); +}); + +bench("process.hrtime()", () => { + process.hrtime(); +}); + +bench("process.hrtime.bigint()", () => { + process.hrtime.bigint(); +}); + +await run(); diff --git a/src/bun.js/bindings/Process.cpp b/src/bun.js/bindings/Process.cpp index 8d94594cc..7d7bdd982 100644 --- a/src/bun.js/bindings/Process.cpp +++ b/src/bun.js/bindings/Process.cpp @@ -12,8 +12,24 @@ #include "ZigConsoleClient.h" #include #include +#include +#include +#include + #pragma mark - Node.js Process +#if defined(__APPLE__) +#include +#include +#endif + +#if defined(__linux__) +#include +#include +#include +#include +#endif + #if !defined(_MSC_VER) #include // setuid, getuid #endif @@ -335,9 +351,12 @@ extern "C" uint64_t Bun__readOriginTimer(void*); JSC_DEFINE_HOST_FUNCTION(Process_functionHRTime, (JSC::JSGlobalObject * globalObject_, JSC::CallFrame* callFrame)) { + Zig::GlobalObject* globalObject = reinterpret_cast(globalObject_); auto& vm = globalObject->vm(); + auto throwScope = DECLARE_THROW_SCOPE(vm); + uint64_t time = Bun__readOriginTimer(globalObject->bunVM()); int64_t seconds = static_cast(time / 1000000000); int64_t nanoseconds = time % 1000000000; @@ -346,7 +365,6 @@ JSC_DEFINE_HOST_FUNCTION(Process_functionHRTime, JSC::JSValue arg0 = callFrame->uncheckedArgument(0); if (!arg0.isUndefinedOrNull()) { JSArray* relativeArray = JSC::jsDynamicCast(arg0); - auto throwScope = DECLARE_THROW_SCOPE(vm); if ((!relativeArray && !arg0.isUndefinedOrNull()) || relativeArray->length() < 2) { JSC::throwTypeError(globalObject, throwScope, "hrtime() argument must be an array or undefined"_s); return JSC::JSValue::encode(JSC::JSValue {}); @@ -366,14 +384,28 @@ JSC_DEFINE_HOST_FUNCTION(Process_functionHRTime, seconds--; nanoseconds += 1000000000; } - throwScope.release(); } } - auto* array = JSArray::create(vm, globalObject->originalArrayStructureForIndexingType(ArrayWithContiguous), 2); - array->setIndexQuickly(vm, 0, JSC::jsNumber(seconds)); - array->setIndexQuickly(vm, 1, JSC::jsNumber(nanoseconds)); - return JSC::JSValue::encode(JSC::JSValue(array)); + JSC::JSArray* array = nullptr; + { + JSC::ObjectInitializationScope initializationScope(vm); + if ((array = JSC::JSArray::tryCreateUninitializedRestricted( + initializationScope, nullptr, + globalObject->arrayStructureForIndexingTypeDuringAllocation(JSC::ArrayWithContiguous), + 2))) { + + array->initializeIndex(initializationScope, 0, JSC::jsNumber(seconds)); + array->initializeIndex(initializationScope, 1, JSC::jsNumber(nanoseconds)); + } + } + + if (UNLIKELY(!array)) { + JSC::throwOutOfMemoryError(globalObject, throwScope); + return JSC::JSValue::encode(JSC::JSValue {}); + } + + RELEASE_AND_RETURN(throwScope, JSC::JSValue::encode(array)); } JSC_DEFINE_HOST_FUNCTION(Process_functionHRTimeBigInt, @@ -680,10 +712,10 @@ static JSValue constructProcessHrtimeObject(VM& vm, JSObject* processObject) { auto* globalObject = processObject->globalObject(); JSC::JSFunction* hrtime = JSC::JSFunction::create(vm, globalObject, 0, - MAKE_STATIC_STRING_IMPL("hrtime"), Process_functionHRTime, ImplementationVisibility::Public); + String("hrtime"_s), Process_functionHRTime, ImplementationVisibility::Public); JSC::JSFunction* hrtimeBigInt = JSC::JSFunction::create(vm, globalObject, 0, - MAKE_STATIC_STRING_IMPL("bigint"), Process_functionHRTimeBigInt, ImplementationVisibility::Public); + String("bigint"_s), Process_functionHRTimeBigInt, ImplementationVisibility::Public); hrtime->putDirect(vm, JSC::Identifier::fromString(vm, "bigint"_s), hrtimeBigInt); @@ -945,6 +977,317 @@ JSC_DEFINE_HOST_FUNCTION(Process_functionReallyExit, (JSGlobalObject * globalObj __builtin_unreachable(); } +template +void Process::visitChildrenImpl(JSCell* cell, Visitor& visitor) +{ + Process* thisObject = jsCast(cell); + ASSERT_GC_OBJECT_INHERITS(thisObject, info()); + Base::visitChildren(thisObject, visitor); + thisObject->cpuUsageStructure.visit(visitor); + thisObject->memoryUsageStructure.visit(visitor); +} + +DEFINE_VISIT_CHILDREN(Process); + +static Structure* constructCPUUsageStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject) +{ + JSC::Structure* structure = globalObject->structureCache().emptyObjectStructureForPrototype(globalObject, globalObject->objectPrototype(), 2); + PropertyOffset offset; + structure = structure->addPropertyTransition( + vm, + structure, + JSC::Identifier::fromString(vm, "user"_s), + 0, + offset); + structure = structure->addPropertyTransition( + vm, + structure, + JSC::Identifier::fromString(vm, "system"_s), + 0, + offset); + return structure; +} +static Structure* constructMemoryUsageStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject) +{ + JSC::Structure* structure = globalObject->structureCache().emptyObjectStructureForPrototype(globalObject, globalObject->objectPrototype(), 5); + PropertyOffset offset; + structure = structure->addPropertyTransition( + vm, + structure, + JSC::Identifier::fromString(vm, "rss"_s), + 0, + offset); + structure = structure->addPropertyTransition( + vm, + structure, + JSC::Identifier::fromString(vm, "heapTotal"_s), + 0, + offset); + structure = structure->addPropertyTransition( + vm, + structure, + JSC::Identifier::fromString(vm, "heapUsed"_s), + 0, + offset); + structure = structure->addPropertyTransition( + vm, + structure, + JSC::Identifier::fromString(vm, "external"_s), + 0, + offset); + structure = structure->addPropertyTransition( + vm, + structure, + JSC::Identifier::fromString(vm, "arrayBuffers"_s), + 0, + offset); + + return structure; +} + +static Process* getProcessObject(JSC::JSGlobalObject* lexicalGlobalObject, JSValue thisValue) +{ + Process* process = jsDynamicCast(thisValue); + + // Handle "var memoryUsage = process.memoryUsage; memoryUsage()" + if (UNLIKELY(!process)) { + // Handle calling this function from inside a node:vm + Zig::GlobalObject* zigGlobalObject = jsDynamicCast(lexicalGlobalObject); + + if (UNLIKELY(!zigGlobalObject)) { + zigGlobalObject = Bun__getDefaultGlobal(); + } + + return jsCast(zigGlobalObject->processObject()); + } + + return process; +} + +JSC_DEFINE_HOST_FUNCTION(Process_functionCpuUsage, + (JSC::JSGlobalObject * globalObject, JSC::CallFrame* callFrame)) +{ + JSC::VM& vm = globalObject->vm(); + auto throwScope = DECLARE_THROW_SCOPE(vm); + struct rusage rusage; + if (getrusage(RUSAGE_SELF, &rusage) != 0) { + SystemError error; + error.errno_ = errno; + error.syscall = Bun::toString("getrusage"_s); + error.message = Bun::toString("Failed to get CPU usage"_s); + throwException(globalObject, throwScope, JSValue::decode(SystemError__toErrorInstance(&error, globalObject))); + return JSValue::encode(jsUndefined()); + } + + auto* process = getProcessObject(globalObject, callFrame->thisValue()); + + Structure* cpuUsageStructure = process->cpuUsageStructure.getInitializedOnMainThread(process); + + constexpr double MICROS_PER_SEC = 1000000.0; + + double user = MICROS_PER_SEC * rusage.ru_utime.tv_sec + rusage.ru_utime.tv_usec; + double system = MICROS_PER_SEC * rusage.ru_stime.tv_sec + rusage.ru_stime.tv_usec; + + if (callFrame->argumentCount() > 0) { + JSValue comparatorValue = callFrame->argument(0); + if (!comparatorValue.isUndefined()) { + if (UNLIKELY(!comparatorValue.isObject())) { + throwTypeError(globalObject, throwScope, "Expected an object as the first argument"_s); + return JSC::JSValue::encode(JSC::jsUndefined()); + } + + JSC::JSObject* comparator = comparatorValue.getObject(); + JSValue userValue; + JSValue systemValue; + + if (LIKELY(comparator->structureID() == cpuUsageStructure->id())) { + userValue = comparator->getDirect(0); + systemValue = comparator->getDirect(1); + } else { + userValue = comparator->getIfPropertyExists(globalObject, JSC::Identifier::fromString(vm, "user"_s)); + RETURN_IF_EXCEPTION(throwScope, JSC::JSValue::encode(JSC::jsUndefined())); + + systemValue = comparator->getIfPropertyExists(globalObject, JSC::Identifier::fromString(vm, "system"_s)); + RETURN_IF_EXCEPTION(throwScope, JSC::JSValue::encode(JSC::jsUndefined())); + } + + if (UNLIKELY(!userValue || !userValue.isNumber())) { + throwTypeError(globalObject, throwScope, "Expected a number for the user property"_s); + return JSC::JSValue::encode(JSC::jsUndefined()); + } + + if (UNLIKELY(!systemValue || !systemValue.isNumber())) { + throwTypeError(globalObject, throwScope, "Expected a number for the system property"_s); + return JSC::JSValue::encode(JSC::jsUndefined()); + } + + double userComparator = userValue.asNumber(); + double systemComparator = systemValue.asNumber(); + + user -= userComparator; + system -= systemComparator; + } + } + + JSC::JSObject* result = JSC::constructEmptyObject(vm, cpuUsageStructure); + RETURN_IF_EXCEPTION(throwScope, JSC::JSValue::encode(JSC::jsUndefined())); + + result->putDirectOffset(vm, 0, JSC::jsNumber(user)); + result->putDirectOffset(vm, 1, JSC::jsNumber(system)); + + RELEASE_AND_RETURN(throwScope, JSC::JSValue::encode(result)); +} + +static int getRSS(size_t* rss) +{ +#if defined(__APPLE__) + mach_msg_type_number_t count; + task_basic_info_data_t info; + kern_return_t err; + + count = TASK_BASIC_INFO_COUNT; + err = task_info(mach_task_self(), + TASK_BASIC_INFO, + reinterpret_cast(&info), + &count); + + if (err == KERN_SUCCESS) { + *rss = (size_t)info.resident_size; + return 0; + } + + return -1; +#elif defined(__linux__) + // Taken from libuv. + char buf[1024]; + const char* s; + ssize_t n; + long val; + int fd; + int i; + + do + fd = open("/proc/self/stat", O_RDONLY); + while (fd == -1 && errno == EINTR); + + if (fd == -1) + return errno; + + do + n = read(fd, buf, sizeof(buf) - 1); + while (n == -1 && errno == EINTR); + + int closeErrno = 0; + do { + closeErrno = close(fd); + } while (closeErrno == -1 && errno == EINTR); + + if (n == -1) + return errno; + buf[n] = '\0'; + + s = strchr(buf, ' '); + if (s == NULL) + goto err; + + s += 1; + if (*s != '(') + goto err; + + s = strchr(s, ')'); + if (s == NULL) + goto err; + + for (i = 1; i <= 22; i++) { + s = strchr(s + 1, ' '); + if (s == NULL) + goto err; + } + + errno = 0; + val = strtol(s, NULL, 10); + if (errno != 0) + goto err; + if (val < 0) + goto err; + + *rss = val * getpagesize(); + return 0; + +err: + return EINVAL; +#else +#error "Unsupported platform" +#endif +} + +JSC_DEFINE_HOST_FUNCTION(Process_functionMemoryUsage, + (JSC::JSGlobalObject * globalObject, JSC::CallFrame* callFrame)) +{ + JSC::VM& vm = globalObject->vm(); + auto throwScope = DECLARE_THROW_SCOPE(vm); + auto* process = getProcessObject(globalObject, callFrame->thisValue()); + + size_t current_rss = 0; + if (getRSS(¤t_rss) != 0) { + SystemError error; + error.errno_ = errno; + error.syscall = Bun::toString("memoryUsage"_s); + error.message = Bun::toString("Failed to get memory usage"_s); + throwException(globalObject, throwScope, JSValue::decode(SystemError__toErrorInstance(&error, globalObject))); + return JSC::JSValue::encode(JSC::JSValue {}); + } + + JSC::JSObject* result = JSC::constructEmptyObject(vm, process->memoryUsageStructure.getInitializedOnMainThread(process)); + if (UNLIKELY(throwScope.exception())) { + return JSC::JSValue::encode(JSC::JSValue {}); + } + + // Node.js: + // { + // rss: 4935680, + // heapTotal: 1826816, + // heapUsed: 650472, + // external: 49879, + // arrayBuffers: 9386 + // } + + result->putDirectOffset(vm, 0, JSC::jsNumber(current_rss)); + result->putDirectOffset(vm, 1, JSC::jsNumber(vm.heap.blockBytesAllocated())); + + // heap.size() loops through every cell... + // TODO: add a binding for heap.sizeAfterLastCollection() + result->putDirectOffset(vm, 2, JSC::jsNumber(vm.heap.sizeAfterLastEdenCollection())); + + result->putDirectOffset(vm, 3, JSC::jsNumber(vm.heap.externalMemorySize())); + + // We report 0 for this because m_arrayBuffers in JSC::Heap is private and we need to add a binding + // If we use objectTypeCounts(), it's hideously slow because it loops through every single object in the heap + // TODO: add a binding for m_arrayBuffers, registerWrapper() in TypedArrayController doesn't work + result->putDirectOffset(vm, 4, JSC::jsNumber(0)); + + RELEASE_AND_RETURN(throwScope, JSC::JSValue::encode(result)); +} + +JSC_DEFINE_HOST_FUNCTION(Process_functionMemoryUsageRSS, + (JSC::JSGlobalObject * globalObject, JSC::CallFrame* callFrame)) +{ + JSC::VM& vm = globalObject->vm(); + auto throwScope = DECLARE_THROW_SCOPE(vm); + + size_t current_rss = 0; + if (getRSS(¤t_rss) != 0) { + SystemError error; + error.errno_ = errno; + error.syscall = Bun::toString("memoryUsage"_s); + error.message = Bun::toString("Failed to get memory usage"_s); + throwException(globalObject, throwScope, JSValue::decode(SystemError__toErrorInstance(&error, globalObject))); + return JSC::JSValue::encode(JSC::JSValue {}); + } + + RELEASE_AND_RETURN(throwScope, JSValue::encode(jsNumber(current_rss))); +} + JSC_DEFINE_HOST_FUNCTION(Process_functionOpenStdin, (JSGlobalObject * globalObject, CallFrame* callFrame)) { auto& vm = globalObject->vm(); @@ -1010,6 +1353,19 @@ static JSValue Process_stubEmptySet(VM& vm, JSObject* processObject) return JSSet::create(vm, globalObject->setStructure()); } +static JSValue constructMemoryUsage(VM& vm, JSObject* processObject) +{ + auto* globalObject = processObject->globalObject(); + JSC::JSFunction* memoryUsage = JSC::JSFunction::create(vm, globalObject, 0, + String("memoryUsage"_s), Process_functionMemoryUsage, ImplementationVisibility::Public); + + JSC::JSFunction* rss = JSC::JSFunction::create(vm, globalObject, 0, + String("rss"_s), Process_functionMemoryUsageRSS, ImplementationVisibility::Public); + + memoryUsage->putDirect(vm, JSC::Identifier::fromString(vm, "rss"_s), rss, JSC::PropertyAttribute::Function | 0); + return memoryUsage; +} + static JSValue constructFeatures(VM& vm, JSObject* processObject) { // { @@ -1133,16 +1489,16 @@ JSC_DEFINE_HOST_FUNCTION(Process_functionCwd, browser constructBrowser PropertyCallback chdir Process_functionChdir Function 1 config constructProcessConfigObject PropertyCallback - debugPort processDebugPort CustomAccessor - exitCode processExitCode CustomAccessor - title processTitle CustomAccessor + cpuUsage Process_functionCpuUsage Function 1 cwd Process_functionCwd Function 1 + debugPort processDebugPort CustomAccessor dlopen Process_functionDlopen Function 1 emitWarning Process_emitWarning Function 1 env constructEnv PropertyCallback execArgv constructExecArgv PropertyCallback execPath constructExecPath PropertyCallback exit Process_functionExit Function 1 + exitCode processExitCode CustomAccessor features constructFeatures PropertyCallback getActiveResourcesInfo Process_stubFunctionReturningArray Function 0 getegid Process_functiongetegid Function 0 @@ -1153,6 +1509,7 @@ JSC_DEFINE_HOST_FUNCTION(Process_functionCwd, hrtime constructProcessHrtimeObject PropertyCallback isBun constructIsBun PropertyCallback mainModule JSBuiltin ReadOnly|Builtin|Accessor|Function 0 + memoryUsage constructMemoryUsage PropertyCallback moduleLoadList Process_stubEmptyArray PropertyCallback nextTick Process_functionNextTick Function 1 openStdin Process_functionOpenStdin Function 0 @@ -1166,6 +1523,7 @@ JSC_DEFINE_HOST_FUNCTION(Process_functionCwd, stderr constructStderr PropertyCallback stdin constructStdin PropertyCallback stdout constructStdout PropertyCallback + title processTitle CustomAccessor umask Process_functionUmask Function 1 uptime Process_functionUptime Function 1 version constructVersion PropertyCallback @@ -1192,6 +1550,14 @@ void Process::finishCreation(JSC::VM& vm) { Base::finishCreation(vm); + this->cpuUsageStructure.initLater([](const JSC::LazyProperty::Initializer& init) { + init.set(constructCPUUsageStructure(init.vm, init.owner->globalObject())); + }); + + this->memoryUsageStructure.initLater([](const JSC::LazyProperty::Initializer& init) { + init.set(constructMemoryUsageStructure(init.vm, init.owner->globalObject())); + }); + this->putDirect(vm, vm.propertyNames->toStringTagSymbol, jsString(vm, String("process"_s)), 0); } diff --git a/src/bun.js/bindings/Process.h b/src/bun.js/bindings/Process.h index 8b703b8b1..fbad9b1ff 100644 --- a/src/bun.js/bindings/Process.h +++ b/src/bun.js/bindings/Process.h @@ -45,6 +45,24 @@ public: return accessor; } + LazyProperty cpuUsageStructure; + LazyProperty memoryUsageStructure; + + DECLARE_VISIT_CHILDREN; + + template + static JSC::GCClient::IsoSubspace* subspaceFor(JSC::VM& vm) + { + if constexpr (mode == JSC::SubspaceAccess::Concurrently) + return nullptr; + return WebCore::subspaceForImpl( + vm, + [](auto& spaces) { return spaces.m_clientSubspaceForProcessObject.get(); }, + [](auto& spaces, auto&& space) { spaces.m_clientSubspaceForProcessObject = std::forward(space); }, + [](auto& spaces) { return spaces.m_subspaceForProcessObject.get(); }, + [](auto& spaces, auto&& space) { spaces.m_subspaceForProcessObject = std::forward(space); }); + } + void finishCreation(JSC::VM& vm); }; diff --git a/src/bun.js/bindings/Process.lut.h b/src/bun.js/bindings/Process.lut.h index 5c0bd2c5a..81eb1b7b9 100644 --- a/src/bun.js/bindings/Process.lut.h +++ b/src/bun.js/bindings/Process.lut.h @@ -1,6 +1,6 @@ // File generated via `make generate-builtins` -static const struct CompactHashIndex processObjectTableIndex[141] = { - { 42, -1 }, +static const struct CompactHashIndex processObjectTableIndex[142] = { + { 43, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, @@ -11,12 +11,12 @@ static const struct CompactHashIndex processObjectTableIndex[141] = { { -1, -1 }, { -1, -1 }, { -1, -1 }, - { 16, 130 }, + { 15, 129 }, { -1, -1 }, { -1, -1 }, - { 19, 137 }, + { 18, 138 }, { -1, -1 }, - { 43, -1 }, + { 45, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, @@ -33,37 +33,37 @@ static const struct CompactHashIndex processObjectTableIndex[141] = { { -1, -1 }, { -1, -1 }, { -1, -1 }, - { 3, 140 }, + { 3, 141 }, { 1, 128 }, { -1, -1 }, - { 57, -1 }, - { -1, -1 }, + { 59, -1 }, { -1, -1 }, + { 10, -1 }, { -1, -1 }, { -1, -1 }, - { 30, -1 }, + { 31, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, - { 50, -1 }, + { 52, -1 }, { 27, -1 }, - { 10, -1 }, + { 12, -1 }, { -1, -1 }, - { 11, -1 }, + { 19, -1 }, { -1, -1 }, - { 15, 136 }, + { 14, 137 }, { -1, -1 }, - { 35, -1 }, + { 36, -1 }, { -1, -1 }, - { 37, -1 }, - { 53, -1 }, - { 34, -1 }, - { 6, 138 }, + { 38, -1 }, + { 55, -1 }, + { 35, -1 }, + { 6, 139 }, { -1, -1 }, - { 49, -1 }, + { 51, -1 }, { 4, -1 }, - { 45, -1 }, + { 47, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, @@ -75,23 +75,23 @@ static const struct CompactHashIndex processObjectTableIndex[141] = { { -1, -1 }, { -1, -1 }, { -1, -1 }, - { 39, -1 }, + { 40, -1 }, { -1, -1 }, - { 36, -1 }, + { 37, -1 }, { -1, -1 }, { 0, -1 }, - { 12, 129 }, - { 17, 131 }, - { 38, -1 }, + { 26, 135 }, + { 16, 130 }, + { 39, -1 }, { -1, -1 }, { 23, -1 }, - { 13, -1 }, + { 11, -1 }, { -1, -1 }, { -1, -1 }, - { 56, -1 }, + { 58, -1 }, { -1, -1 }, { -1, -1 }, - { 47, -1 }, + { 30, 136 }, { -1, -1 }, { 29, -1 }, { 22, -1 }, @@ -105,45 +105,46 @@ static const struct CompactHashIndex processObjectTableIndex[141] = { { 5, -1 }, { -1, -1 }, { -1, -1 }, - { 46, -1 }, + { 48, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, - { 14, 132 }, + { 13, 131 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, { 9, -1 }, - { 25, 134 }, + { 25, 133 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, - { 21, 135 }, + { 21, 134 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, - { 44, 139 }, + { 46, 140 }, { -1, -1 }, - { 18, -1 }, + { 17, -1 }, { 8, -1 }, - { 26, -1 }, { 28, -1 }, - { 31, 133 }, - { 32, -1 }, + { 32, 132 }, { 33, -1 }, - { 40, -1 }, + { 34, -1 }, { 41, -1 }, - { 48, -1 }, - { 51, -1 }, - { 52, -1 }, + { 42, -1 }, + { 44, -1 }, + { 49, -1 }, + { 50, -1 }, + { 53, -1 }, { 54, -1 }, - { 55, -1 }, + { 56, -1 }, + { 57, -1 }, }; -static const struct HashTableValue processObjectTableValues[58] = { +static const struct HashTableValue processObjectTableValues[60] = { { "abort"_s, static_cast(PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, Process_functionAbort, 1 } }, { "allowedNodeEnvironmentFlags"_s, static_cast(PropertyAttribute::PropertyCallback), NoIntrinsic, { HashTableValue::LazyPropertyType, Process_stubEmptySet } }, { "arch"_s, static_cast(PropertyAttribute::PropertyCallback), NoIntrinsic, { HashTableValue::LazyPropertyType, constructArch } }, @@ -154,16 +155,16 @@ static const struct HashTableValue processObjectTableValues[58] = { { "browser"_s, static_cast(PropertyAttribute::PropertyCallback), NoIntrinsic, { HashTableValue::LazyPropertyType, constructBrowser } }, { "chdir"_s, static_cast(PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, Process_functionChdir, 1 } }, { "config"_s, static_cast(PropertyAttribute::PropertyCallback), NoIntrinsic, { HashTableValue::LazyPropertyType, constructProcessConfigObject } }, - { "debugPort"_s, static_cast(PropertyAttribute::CustomAccessor), NoIntrinsic, { HashTableValue::GetterSetterType, processDebugPort, setProcessDebugPort } }, - { "exitCode"_s, static_cast(PropertyAttribute::CustomAccessor), NoIntrinsic, { HashTableValue::GetterSetterType, processExitCode, setProcessExitCode } }, - { "title"_s, static_cast(PropertyAttribute::CustomAccessor), NoIntrinsic, { HashTableValue::GetterSetterType, processTitle, setProcessTitle } }, + { "cpuUsage"_s, static_cast(PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, Process_functionCpuUsage, 1 } }, { "cwd"_s, static_cast(PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, Process_functionCwd, 1 } }, + { "debugPort"_s, static_cast(PropertyAttribute::CustomAccessor), NoIntrinsic, { HashTableValue::GetterSetterType, processDebugPort, setProcessDebugPort } }, { "dlopen"_s, static_cast(PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, Process_functionDlopen, 1 } }, { "emitWarning"_s, static_cast(PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, Process_emitWarning, 1 } }, { "env"_s, static_cast(PropertyAttribute::PropertyCallback), NoIntrinsic, { HashTableValue::LazyPropertyType, constructEnv } }, { "execArgv"_s, static_cast(PropertyAttribute::PropertyCallback), NoIntrinsic, { HashTableValue::LazyPropertyType, constructExecArgv } }, { "execPath"_s, static_cast(PropertyAttribute::PropertyCallback), NoIntrinsic, { HashTableValue::LazyPropertyType, constructExecPath } }, { "exit"_s, static_cast(PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, Process_functionExit, 1 } }, + { "exitCode"_s, static_cast(PropertyAttribute::CustomAccessor), NoIntrinsic, { HashTableValue::GetterSetterType, processExitCode, setProcessExitCode } }, { "features"_s, static_cast(PropertyAttribute::PropertyCallback), NoIntrinsic, { HashTableValue::LazyPropertyType, constructFeatures } }, { "getActiveResourcesInfo"_s, static_cast(PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, Process_stubFunctionReturningArray, 0 } }, { "getegid"_s, static_cast(PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, Process_functiongetegid, 0 } }, @@ -174,6 +175,7 @@ static const struct HashTableValue processObjectTableValues[58] = { { "hrtime"_s, static_cast(PropertyAttribute::PropertyCallback), NoIntrinsic, { HashTableValue::LazyPropertyType, constructProcessHrtimeObject } }, { "isBun"_s, static_cast(PropertyAttribute::PropertyCallback), NoIntrinsic, { HashTableValue::LazyPropertyType, constructIsBun } }, { "mainModule"_s, ((static_cast(PropertyAttribute::ReadOnly|PropertyAttribute::Builtin|PropertyAttribute::Accessor|PropertyAttribute::Function)) & ~PropertyAttribute::Function) | PropertyAttribute::Builtin, NoIntrinsic, { HashTableValue::BuiltinGeneratorType, processObjectMainModuleCodeGenerator, 0 } }, + { "memoryUsage"_s, static_cast(PropertyAttribute::PropertyCallback), NoIntrinsic, { HashTableValue::LazyPropertyType, constructMemoryUsage } }, { "moduleLoadList"_s, static_cast(PropertyAttribute::PropertyCallback), NoIntrinsic, { HashTableValue::LazyPropertyType, Process_stubEmptyArray } }, { "nextTick"_s, static_cast(PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, Process_functionNextTick, 1 } }, { "openStdin"_s, static_cast(PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, Process_functionOpenStdin, 0 } }, @@ -187,6 +189,7 @@ static const struct HashTableValue processObjectTableValues[58] = { { "stderr"_s, static_cast(PropertyAttribute::PropertyCallback), NoIntrinsic, { HashTableValue::LazyPropertyType, constructStderr } }, { "stdin"_s, static_cast(PropertyAttribute::PropertyCallback), NoIntrinsic, { HashTableValue::LazyPropertyType, constructStdin } }, { "stdout"_s, static_cast(PropertyAttribute::PropertyCallback), NoIntrinsic, { HashTableValue::LazyPropertyType, constructStdout } }, + { "title"_s, static_cast(PropertyAttribute::CustomAccessor), NoIntrinsic, { HashTableValue::GetterSetterType, processTitle, setProcessTitle } }, { "umask"_s, static_cast(PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, Process_functionUmask, 1 } }, { "uptime"_s, static_cast(PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, Process_functionUptime, 1 } }, { "version"_s, static_cast(PropertyAttribute::PropertyCallback), NoIntrinsic, { HashTableValue::LazyPropertyType, constructVersion } }, @@ -205,4 +208,4 @@ static const struct HashTableValue processObjectTableValues[58] = { }; static const struct HashTable processObjectTable = - { 58, 127, true, nullptr, processObjectTableValues, processObjectTableIndex }; + { 60, 127, true, nullptr, processObjectTableValues, processObjectTableIndex }; diff --git a/src/bun.js/bindings/webcore/DOMClientIsoSubspaces.h b/src/bun.js/bindings/webcore/DOMClientIsoSubspaces.h index 65875d091..82a2c6a24 100644 --- a/src/bun.js/bindings/webcore/DOMClientIsoSubspaces.h +++ b/src/bun.js/bindings/webcore/DOMClientIsoSubspaces.h @@ -38,6 +38,7 @@ public: std::unique_ptr m_clientSubspaceForJSMockImplementation; std::unique_ptr m_clientSubspaceForJSMockFunction; std::unique_ptr m_clientSubspaceForMockWithImplementationCleanupData; + std::unique_ptr m_clientSubspaceForProcessObject; #include "ZigGeneratedClasses+DOMClientIsoSubspaces.h" /* --- bun --- */ diff --git a/src/bun.js/bindings/webcore/DOMIsoSubspaces.h b/src/bun.js/bindings/webcore/DOMIsoSubspaces.h index 433832450..f1b290d25 100644 --- a/src/bun.js/bindings/webcore/DOMIsoSubspaces.h +++ b/src/bun.js/bindings/webcore/DOMIsoSubspaces.h @@ -38,6 +38,7 @@ public: std::unique_ptr m_subspaceForJSMockImplementation; std::unique_ptr m_subspaceForJSMockFunction; std::unique_ptr m_subspaceForMockWithImplementationCleanupData; + std::unique_ptr m_subspaceForProcessObject; #include "ZigGeneratedClasses+DOMIsoSubspaces.h" /*-- BUN --*/ diff --git a/test/js/node/process/process.test.js b/test/js/node/process/process.test.js index c4701f664..e038383de 100644 --- a/test/js/node/process/process.test.js +++ b/test/js/node/process/process.test.js @@ -162,7 +162,8 @@ it("process.umask()", () => { expect(process.umask()).toBe(orig); }); -const versions = existsSync(import.meta.dir + "/../../src/generated_versions_list.zig"); +const generated_versions_list = join(import.meta.dir, "../../../../src/generated_versions_list.zig"); +const versions = existsSync(generated_versions_list); (versions ? it : it.skip)("process.versions", () => { // Generate a list of all the versions in the versions object // example: @@ -178,7 +179,7 @@ const versions = existsSync(import.meta.dir + "/../../src/generated_versions_lis // pub const c_ares = "0e7a5dee0fbb04080750cf6eabbe89d8bae87faa"; // pub const usockets = "fafc241e8664243fc0c51d69684d5d02b9805134"; const versions = Object.fromEntries( - readFileSync(import.meta.dir + "/../../src/generated_versions_list.zig", "utf8") + readFileSync(generated_versions_list, "utf8") .split("\n") .filter(line => line.startsWith("pub const") && !line.includes("zig") && line.includes(' = "')) .map(line => line.split(" = ")) @@ -291,3 +292,140 @@ describe("process.onBeforeExit", () => { expect(stdout.toString().trim()).toBe("beforeExit: 0\nbeforeExit: 1\nexit: 2"); }); }); + +it("process.memoryUsage", () => { + expect(process.memoryUsage()).toEqual({ + rss: expect.any(Number), + heapTotal: expect.any(Number), + heapUsed: expect.any(Number), + external: expect.any(Number), + arrayBuffers: expect.any(Number), + }); +}); + +it("process.memoryUsage.rss", () => { + expect(process.memoryUsage.rss()).toEqual(expect.any(Number)); +}); + +describe("process.cpuUsage", () => { + it("works", () => { + expect(process.cpuUsage()).toEqual({ + user: expect.any(Number), + system: expect.any(Number), + }); + }); + + it("works with diff", () => { + const init = process.cpuUsage(); + for (let i = 0; i < 1000; i++) {} + const delta = process.cpuUsage(init); + expect(delta.user).toBeGreaterThan(0); + expect(delta.system).toBeGreaterThan(0); + }); + + it("works with diff of different structure", () => { + const init = { + user: 0, + system: 0, + }; + for (let i = 0; i < 1000; i++) {} + const delta = process.cpuUsage(init); + expect(delta.user).toBeGreaterThan(0); + expect(delta.system).toBeGreaterThan(0); + }); + + it("throws on invalid property", () => { + const fixtures = [ + {}, + { user: null }, + { user: {} }, + { user: "potato" }, + + { user: 123 }, + { user: 123, system: null }, + { user: 123, system: "potato" }, + ]; + for (const fixture of fixtures) { + expect(() => process.cpuUsage(fixture)).toThrow(); + } + }); + + // Skipped on Linux because it seems to not change as often as on macOS + it.skipIf(process.platform === "linux")("increases monotonically", () => { + const init = process.cpuUsage(); + for (let i = 0; i < 10000; i++) {} + const another = process.cpuUsage(); + expect(another.user).toBeGreaterThan(init.user); + expect(another.system).toBeGreaterThan(init.system); + }); +}); + +it("process.getegid", () => { + expect(typeof process.getegid()).toBe("number"); +}); +it("process.geteuid", () => { + expect(typeof process.geteuid()).toBe("number"); +}); +it("process.getgid", () => { + expect(typeof process.getgid()).toBe("number"); +}); +it("process.getgroups", () => { + expect(process.getgroups()).toBeInstanceOf(Array); + expect(process.getgroups().length).toBeGreaterThan(0); +}); +it("process.getuid", () => { + expect(typeof process.getuid()).toBe("number"); +}); + +it("process.getuid", () => { + expect(typeof process.getuid()).toBe("number"); +}); + +const undefinedStubs = [ + "_debugEnd", + "_debugProcess", + "_fatalException", + "_linkedBinding", + "_rawDebug", + "_startProfilerIdleNotifier", + "_stopProfilerIdleNotifier", + "_tickCallback", +]; + +for (const stub of undefinedStubs) { + it(`process.${stub}`, () => { + expect(process[stub]()).toBeUndefined(); + }); +} + +const arrayStubs = ["getActiveResourcesInfo", "_getActiveRequests", "_getActiveHandles"]; + +for (const stub of arrayStubs) { + it(`process.${stub}`, () => { + expect(process[stub]()).toBeInstanceOf(Array); + }); +} + +const emptyObjectStubs = ["_preload_modules"]; +const emptySetStubs = ["allowedNodeEnvironmentFlags"]; +const emptyArrayStubs = ["moduleLoadList"]; + +for (const stub of emptyObjectStubs) { + it(`process.${stub}`, () => { + expect(process[stub]).toEqual({}); + }); +} + +for (const stub of emptySetStubs) { + it(`process.${stub}`, () => { + expect(process[stub]).toBeInstanceOf(Set); + expect(process[stub].size).toBe(0); + }); +} + +for (const stub of emptyArrayStubs) { + it(`process.${stub}`, () => { + expect(process[stub]).toBeInstanceOf(Array); + expect(process[stub]).toHaveLength(0); + }); +} -- cgit v1.2.3 From 963d4311e614ac197427104b9cf265bbe2a890af Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Sun, 9 Jul 2023 22:36:24 -0700 Subject: Fixes #3530 (#3587) * Fixes #3530 * Handle OOM * Add test --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> --- src/bun.js/bindings/BunString.cpp | 23 +++++++++++++++++ src/bun.js/node/types.zig | 30 +++++++++++++++++----- src/bun.js/webcore/encoding.zig | 36 ++++++++++++--------------- src/string.zig | 26 +++++++++++++++++++ test/js/node/crypto/node-crypto.test.js | 44 +++++++++++++++++++++++++++++++++ 5 files changed, 133 insertions(+), 26 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/bindings/BunString.cpp b/src/bun.js/bindings/BunString.cpp index 4c8ff384e..21541d711 100644 --- a/src/bun.js/bindings/BunString.cpp +++ b/src/bun.js/bindings/BunString.cpp @@ -169,6 +169,29 @@ extern "C" JSC::EncodedJSValue BunString__toJS(JSC::JSGlobalObject* globalObject return JSValue::encode(Bun::toJS(globalObject, *bunString)); } +extern "C" BunString BunString__fromUTF16Unitialized(size_t length) +{ + unsigned utf16Length = length; + UChar* ptr; + auto impl = WTF::StringImpl::createUninitialized(utf16Length, ptr); + if (UNLIKELY(!ptr)) + return { BunStringTag::Dead }; + + impl->ref(); + return { BunStringTag::WTFStringImpl, { .wtf = &impl.leakRef() } }; +} + +extern "C" BunString BunString__fromLatin1Unitialized(size_t length) +{ + unsigned latin1Length = length; + LChar* ptr; + auto impl = WTF::StringImpl::createUninitialized(latin1Length, ptr); + if (UNLIKELY(!ptr)) + return { BunStringTag::Dead }; + impl->ref(); + return { BunStringTag::WTFStringImpl, { .wtf = &impl.leakRef() } }; +} + extern "C" BunString BunString__fromUTF8(const char* bytes, size_t length) { if (simdutf::validate_utf8(bytes, length)) { diff --git a/src/bun.js/node/types.zig b/src/bun.js/node/types.zig index 553b292d6..642039ba5 100644 --- a/src/bun.js/node/types.zig +++ b/src/bun.js/node/types.zig @@ -541,9 +541,18 @@ pub const Encoding = enum(u8) { const result = JSC.ZigString.init(out).toValueGC(globalThis); return result; }, - else => { - globalThis.throwInvalidArguments("Unexpected encoding", .{}); - return JSC.JSValue.zero; + .buffer => { + return JSC.ArrayBuffer.createBuffer(globalThis, input); + }, + + inline else => |enc| { + const res = JSC.WebCore.Encoder.toString(input.ptr, size, globalThis, enc); + if (res.isError()) { + globalThis.throwValue(res); + return .zero; + } + + return res; }, } } @@ -571,9 +580,18 @@ pub const Encoding = enum(u8) { const result = JSC.ZigString.init(out).toValueGC(globalThis); return result; }, - else => { - globalThis.throwInvalidArguments("Unexpected encoding", .{}); - return JSC.JSValue.zero; + .buffer => { + return JSC.ArrayBuffer.createBuffer(globalThis, input); + }, + inline else => |enc| { + const res = JSC.WebCore.Encoder.toString(input.ptr, input.len, globalThis, enc); + + if (res.isError()) { + globalThis.throwValue(res); + return .zero; + } + + return res; }, } } diff --git a/src/bun.js/webcore/encoding.zig b/src/bun.js/webcore/encoding.zig index bb1180acb..dd47ccc29 100644 --- a/src/bun.js/webcore/encoding.zig +++ b/src/bun.js/webcore/encoding.zig @@ -829,23 +829,18 @@ pub const Encoder = struct { return ZigString.init(input).toValueGC(global); } - if (input.len < 512) { - var buf: [512]u8 = undefined; - var to = buf[0..input.len]; - strings.copyLatin1IntoASCII(to, input); - return ZigString.init(to).toValueGC(global); - } - - var to = allocator.alloc(u8, len) catch return ZigString.init("Out of memory").toErrorInstance(global); - strings.copyLatin1IntoASCII(to, input); - return ZigString.init(to).toExternalValue(global); + var str = bun.String.createUninitialized(.latin1, len) orelse return ZigString.init("Out of memory").toErrorInstance(global); + defer str.deref(); + strings.copyLatin1IntoASCII(@constCast(str.latin1()), input); + return str.toJS(global); }, .latin1 => { - var to = allocator.alloc(u8, len) catch return ZigString.init("Out of memory").toErrorInstance(global); + var str = bun.String.createUninitialized(.latin1, len) orelse return ZigString.init("Out of memory").toErrorInstance(global); + defer str.deref(); - @memcpy(to, input_ptr[0..to.len]); + @memcpy(@constCast(str.latin1()), input_ptr[0..len]); - return ZigString.init(to).toExternalValue(global); + return str.toJS(global); }, .buffer, .utf8 => { const converted = strings.toUTF16Alloc(allocator, input, false) catch return ZigString.init("Out of memory").toErrorInstance(global); @@ -861,21 +856,22 @@ pub const Encoder = struct { // Avoid incomplete characters if (len / 2 == 0) return ZigString.Empty.toValue(global); - var output = allocator.alloc(u16, len / 2) catch return ZigString.init("Out of memory").toErrorInstance(global); - var output_bytes = std.mem.sliceAsBytes(output); + var output = bun.String.createUninitialized(.utf16, len / 2) orelse return ZigString.init("Out of memory").toErrorInstance(global); + defer output.deref(); + var output_bytes = std.mem.sliceAsBytes(@constCast(output.utf16())); output_bytes[output_bytes.len - 1] = 0; @memcpy(output_bytes, input_ptr[0..output_bytes.len]); - return ZigString.toExternalU16(output.ptr, output.len, global); + return output.toJS(global); }, .hex => { - var output = allocator.alloc(u8, input.len * 2) catch return ZigString.init("Out of memory").toErrorInstance(global); + var str = bun.String.createUninitialized(.latin1, len * 2) orelse return ZigString.init("Out of memory").toErrorInstance(global); + defer str.deref(); + var output = @constCast(str.latin1()); const wrote = strings.encodeBytesToHex(output, input); std.debug.assert(wrote == output.len); - var val = ZigString.init(output); - val.mark(); - return val.toExternalValue(global); + return str.toJS(global); }, .base64url => { diff --git a/src/string.zig b/src/string.zig index 166a0a6f7..5f107197f 100644 --- a/src/string.zig +++ b/src/string.zig @@ -257,6 +257,8 @@ pub const String = extern struct { extern fn BunString__fromLatin1(bytes: [*]const u8, len: usize) String; extern fn BunString__fromBytes(bytes: [*]const u8, len: usize) String; + extern fn BunString__fromLatin1Unitialized(len: usize) String; + extern fn BunString__fromUTF16Unitialized(len: usize) String; pub fn toOwnedSlice(this: String, allocator: std.mem.Allocator) ![]u8 { switch (this.tag) { @@ -278,6 +280,30 @@ pub const String = extern struct { } } + pub fn createUninitializedLatin1(len: usize) String { + JSC.markBinding(@src()); + return BunString__fromLatin1Unitialized(len); + } + + pub fn createUninitializedUTF16(len: usize) String { + JSC.markBinding(@src()); + return BunString__fromUTF16Unitialized(len); + } + + pub fn createUninitialized(comptime kind: @Type(.EnumLiteral), len: usize) ?String { + const without_check = switch (comptime kind) { + .latin1 => createUninitializedLatin1(len), + .utf16 => createUninitializedUTF16(len), + else => @compileError("Invalid string kind"), + }; + + if (without_check.tag == .Dead) { + return null; + } + + return without_check; + } + pub fn createLatin1(bytes: []const u8) String { JSC.markBinding(@src()); return BunString__fromLatin1(bytes.ptr, bytes.len); diff --git a/test/js/node/crypto/node-crypto.test.js b/test/js/node/crypto/node-crypto.test.js index 5a68540cf..2489f96c7 100644 --- a/test/js/node/crypto/node-crypto.test.js +++ b/test/js/node/crypto/node-crypto.test.js @@ -43,6 +43,50 @@ describe("createHash", () => { expect(Buffer.isBuffer(hash.digest())).toBeTrue(); }); + const otherEncodings = { + ucs2: [ + 11626, 2466, 37699, 38942, 64564, 53010, 48101, 47943, 44761, 18499, 12442, 26994, 46434, 62582, 39395, 20542, + ], + latin1: [ + 106, 45, 162, 9, 67, 147, 30, 152, 52, 252, 18, 207, 229, 187, 71, 187, 217, 174, 67, 72, 154, 48, 114, 105, 98, + 181, 118, 244, 227, 153, 62, 80, + ], + binary: [ + 106, 45, 162, 9, 67, 147, 30, 152, 52, 252, 18, 207, 229, 187, 71, 187, 217, 174, 67, 72, 154, 48, 114, 105, 98, + 181, 118, 244, 227, 153, 62, 80, + ], + base64: [ + 97, 105, 50, 105, 67, 85, 79, 84, 72, 112, 103, 48, 47, 66, 76, 80, 53, 98, 116, 72, 117, 57, 109, 117, 81, 48, + 105, 97, 77, 72, 74, 112, 89, 114, 86, 50, 57, 79, 79, 90, 80, 108, 65, 61, + ], + hex: [ + 54, 97, 50, 100, 97, 50, 48, 57, 52, 51, 57, 51, 49, 101, 57, 56, 51, 52, 102, 99, 49, 50, 99, 102, 101, 53, 98, + 98, 52, 55, 98, 98, 100, 57, 97, 101, 52, 51, 52, 56, 57, 97, 51, 48, 55, 50, 54, 57, 54, 50, 98, 53, 55, 54, 102, + 52, 101, 51, 57, 57, 51, 101, 53, 48, + ], + ascii: [ + 106, 45, 34, 9, 67, 19, 30, 24, 52, 124, 18, 79, 101, 59, 71, 59, 89, 46, 67, 72, 26, 48, 114, 105, 98, 53, 118, + 116, 99, 25, 62, 80, + ], + utf8: [ + 106, 45, 65533, 9, 67, 65533, 30, 65533, 52, 65533, 18, 65533, 65533, 71, 65533, 1646, 67, 72, 65533, 48, 114, + 105, 98, 65533, 118, 65533, 65533, 62, 80, + ], + }; + + for (let encoding in otherEncodings) { + it("digest " + encoding, () => { + const hash = crypto.createHash("sha256"); + hash.update("some data to hash"); + expect( + hash + .digest(encoding) + .split("") + .map(a => a.charCodeAt(0)), + ).toEqual(otherEncodings[encoding]); + }); + } + it("stream (sync)", () => { const hash = crypto.createHash("sha256"); hash.write("some data to hash"); -- cgit v1.2.3 From 438d54f1869a11a7219f6e93c3bb05f6c52ee27b Mon Sep 17 00:00:00 2001 From: Hanaasagi Date: Mon, 10 Jul 2023 22:04:39 +0900 Subject: add tests --- test/js/node/http/node-http.test.ts | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'test/js') diff --git a/test/js/node/http/node-http.test.ts b/test/js/node/http/node-http.test.ts index 3e7da9d34..167cb9883 100644 --- a/test/js/node/http/node-http.test.ts +++ b/test/js/node/http/node-http.test.ts @@ -146,6 +146,29 @@ describe("node:http", () => { res.end("Path correct!\n"); return; } + if (reqUrl.pathname === "/customWriteHead") { + function createWriteHead(prevWriteHead, listener) { + let fired = false; + return function writeHead() { + if (!fired) { + fired = true; + listener.call(this); + } + return prevWriteHead.apply(this, arguments); + }; + } + + function addPoweredBy() { + if (!this.getHeader("X-Powered-By")) { + this.setHeader("X-Powered-By", "Bun"); + } + } + + res.writeHead = createWriteHead(res.writeHead, addPoweredBy); + res.setHeader("Content-Type", "text/plain"); + res.end("Hello World"); + return; + } } res.writeHead(200, { "Content-Type": "text/plain" }); @@ -507,6 +530,16 @@ describe("node:http", () => { req.end(); }); }); + it("re-implemented writeHead, issue#3585", done => { + runTest(done, (server, serverPort, done) => { + const req = request(`http://localhost:${serverPort}/customWriteHead`, res => { + expect(res.headers["content-type"]).toBe("text/plain"); + expect(res.headers["x-powered-by"]).toBe("Bun"); + done(); + }); + req.end(); + }); + }); }); describe("signal", () => { -- cgit v1.2.3 From 4af4b508a1027ee837f69d4fed5a246629714398 Mon Sep 17 00:00:00 2001 From: Ciro Spaciari Date: Mon, 10 Jul 2023 21:14:37 -0300 Subject: feat(crypto) add getCurves (#3598) * add getCurves * add nodefallbacks * update docs * oops --- docs/runtime/nodejs-apis.md | 2 +- src/js/node/crypto.js | 36 +++++++++++++++++++++++++++++++++++- src/js/out/modules/node/crypto.js | 8 ++++---- src/node-fallbacks/crypto.js | 22 ++++++++++++++++++++++ test/js/node/crypto/crypto.test.ts | 9 ++++++++- 5 files changed, 70 insertions(+), 7 deletions(-) (limited to 'test/js') diff --git a/docs/runtime/nodejs-apis.md b/docs/runtime/nodejs-apis.md index 5f798fc39..3dfe76b97 100644 --- a/docs/runtime/nodejs-apis.md +++ b/docs/runtime/nodejs-apis.md @@ -51,7 +51,7 @@ This page is updated regularly to reflect compatibility status of the latest ver - {% anchor id="node_crypto" %} [`node:crypto`](https://nodejs.org/api/crypto.html) {% /anchor %} - 🟡 -- Missing `crypto.Certificate` `crypto.ECDH` `crypto.KeyObject` `crypto.X509Certificate` `crypto.checkPrime{Sync}` `crypto.createPrivateKey` `crypto.createPublicKey` `crypto.createSecretKey` `crypto.diffieHellman` `crypto.generateKey{Sync}` `crypto.generateKeyPair{Sync}` `crypto.generatePrime{Sync}` `crypto.getCipherInfo` `crypto.getCurves` `crypto.{get|set}Fips` `crypto.hkdf` `crypto.hkdfSync` `crypto.secureHeapUsed` `crypto.setEngine` `crypto.sign` `crypto.verify` +- Missing `crypto.Certificate` `crypto.ECDH` `crypto.KeyObject` `crypto.X509Certificate` `crypto.checkPrime{Sync}` `crypto.createPrivateKey` `crypto.createPublicKey` `crypto.createSecretKey` `crypto.diffieHellman` `crypto.generateKey{Sync}` `crypto.generateKeyPair{Sync}` `crypto.generatePrime{Sync}` `crypto.getCipherInfo` `crypto.{get|set}Fips` `crypto.hkdf` `crypto.hkdfSync` `crypto.secureHeapUsed` `crypto.setEngine` `crypto.sign` `crypto.verify` --- diff --git a/src/js/node/crypto.js b/src/js/node/crypto.js index e75182429..20e052e3e 100644 --- a/src/js/node/crypto.js +++ b/src/js/node/crypto.js @@ -23802,12 +23802,35 @@ timingSafeEqual && Object.defineProperty(scryptSync, "name", { value: "::bunternal::", })); + +const harcoded_curves = [ + "p192", + "p224", + "p256", + "p384", + "p521", + "curve25519", + "ed25519", + "secp256k1", + "secp224r1", + "prime256v1", + "prime192v1", + "ed25519", + "secp384r1", + "secp521r1", +]; + +function getCurves() { + return harcoded_curves; +} + var webcrypto = crypto; __export(crypto_exports, { DEFAULT_ENCODING: () => DEFAULT_ENCODING, getRandomValues: () => getRandomValues, randomUUID: () => randomUUID, randomInt: () => randomInt, + getCurves: () => getCurves, scrypt: () => scrypt, scryptSync: () => scryptSync, timingSafeEqual: () => timingSafeEqual, @@ -23856,6 +23879,17 @@ export const { createCredentials, constants, } = crypto_exports; -export { DEFAULT_ENCODING, getRandomValues, randomUUID, randomInt, scrypt, scryptSync, timingSafeEqual, webcrypto }; + +export { + DEFAULT_ENCODING, + getRandomValues, + getCurves, + randomUUID, + randomInt, + scrypt, + scryptSync, + timingSafeEqual, + webcrypto, +}; export default crypto_exports; /*! safe-buffer. MIT License. Feross Aboukhadijeh */ diff --git a/src/js/out/modules/node/crypto.js b/src/js/out/modules/node/crypto.js index eda9d4cc9..fe812ee61 100644 --- a/src/js/out/modules/node/crypto.js +++ b/src/js/out/modules/node/crypto.js @@ -1,4 +1,4 @@ -import{StringDecoder as bQ} from"node:string_decoder";import*as r$ from"node:buffer";import*as A$ from"node:stream";var hQ=Object.defineProperty;var dQ=Object.getOwnPropertyNames;var lQ=536870888,g0=globalThis.Buffer,H$=globalThis.crypto,i$=H$;var S0=(N,_)=>function(){return _||(0,N[dQ(N)[0]])((_={exports:{}}).exports,_),_.exports},oQ=(N,_)=>{for(var k in _)hQ(N,k,{get:_[k],enumerable:!0})};var N0=S0({"node_modules/safe-buffer/index.js"(N,_){var k=r$,j=k.Buffer;function F(X,C){for(var P in X)C[P]=X[P]}j.from&&j.alloc&&j.allocUnsafe&&j.allocUnsafeSlow?_.exports=k:(F(k,N),N.Buffer=z);function z(X,C,P){return j(X,C,P)}z.prototype=Object.create(j.prototype),F(j,z),z.from=function(X,C,P){if(typeof X=="number")throw new TypeError("Argument must not be a number");return j(X,C,P)},z.alloc=function(X,C,P){if(typeof X!="number")throw new TypeError("Argument must be a number");var T=j(X);return C!==void 0?typeof P=="string"?T.fill(C,P):T.fill(C):T.fill(0),T},z.allocUnsafe=function(X){if(typeof X!="number")throw new TypeError("Argument must be a number");return j(X)},z.allocUnsafeSlow=function(X){if(typeof X!="number")throw new TypeError("Argument must be a number");return k.SlowBuffer(X)}}}),L$=S0({"node_modules/randombytes/browser.js"(N,_){var k=65536,j=4294967295;function F(){throw new Error(`Secure random number generation is not supported by this browser. -Use Chrome, Firefox or Internet Explorer 11`)}var z=N0().Buffer,X=i$;X&&X.getRandomValues?_.exports=C:_.exports=F;function C(P,T){if(P>j)throw new RangeError("requested too many random bytes");var W=z.allocUnsafe(P);if(P>0)if(P>k)for(var J=0;J=this._blockSize;){for(var W=this._blockOffset;W0;++J)this._length[J]+=H,H=this._length[J]/4294967296|0,H>0&&(this._length[J]-=4294967296*H);return this},z.prototype._update=function(){throw new Error("_update is not implemented")},z.prototype.digest=function(X){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var C=this._digest();X!==void 0&&(C=C.toString(X)),this._block.fill(0),this._blockOffset=0;for(var P=0;P<4;++P)this._length[P]=0;return C},z.prototype._digest=function(){throw new Error("_digest is not implemented")},_.exports=z}}),QQ=S0({"node_modules/md5.js/index.js"(N,_){var k=B0(),j=$Q(),F=N0().Buffer,z=new Array(16);function X(){j.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}k(X,j),X.prototype._update=function(){for(var H=z,D=0;D<16;++D)H[D]=this._block.readInt32LE(D*4);var E=this._a,L=this._b,M=this._c,v=this._d;E=P(E,L,M,v,H[0],3614090360,7),v=P(v,E,L,M,H[1],3905402710,12),M=P(M,v,E,L,H[2],606105819,17),L=P(L,M,v,E,H[3],3250441966,22),E=P(E,L,M,v,H[4],4118548399,7),v=P(v,E,L,M,H[5],1200080426,12),M=P(M,v,E,L,H[6],2821735955,17),L=P(L,M,v,E,H[7],4249261313,22),E=P(E,L,M,v,H[8],1770035416,7),v=P(v,E,L,M,H[9],2336552879,12),M=P(M,v,E,L,H[10],4294925233,17),L=P(L,M,v,E,H[11],2304563134,22),E=P(E,L,M,v,H[12],1804603682,7),v=P(v,E,L,M,H[13],4254626195,12),M=P(M,v,E,L,H[14],2792965006,17),L=P(L,M,v,E,H[15],1236535329,22),E=T(E,L,M,v,H[1],4129170786,5),v=T(v,E,L,M,H[6],3225465664,9),M=T(M,v,E,L,H[11],643717713,14),L=T(L,M,v,E,H[0],3921069994,20),E=T(E,L,M,v,H[5],3593408605,5),v=T(v,E,L,M,H[10],38016083,9),M=T(M,v,E,L,H[15],3634488961,14),L=T(L,M,v,E,H[4],3889429448,20),E=T(E,L,M,v,H[9],568446438,5),v=T(v,E,L,M,H[14],3275163606,9),M=T(M,v,E,L,H[3],4107603335,14),L=T(L,M,v,E,H[8],1163531501,20),E=T(E,L,M,v,H[13],2850285829,5),v=T(v,E,L,M,H[2],4243563512,9),M=T(M,v,E,L,H[7],1735328473,14),L=T(L,M,v,E,H[12],2368359562,20),E=W(E,L,M,v,H[5],4294588738,4),v=W(v,E,L,M,H[8],2272392833,11),M=W(M,v,E,L,H[11],1839030562,16),L=W(L,M,v,E,H[14],4259657740,23),E=W(E,L,M,v,H[1],2763975236,4),v=W(v,E,L,M,H[4],1272893353,11),M=W(M,v,E,L,H[7],4139469664,16),L=W(L,M,v,E,H[10],3200236656,23),E=W(E,L,M,v,H[13],681279174,4),v=W(v,E,L,M,H[0],3936430074,11),M=W(M,v,E,L,H[3],3572445317,16),L=W(L,M,v,E,H[6],76029189,23),E=W(E,L,M,v,H[9],3654602809,4),v=W(v,E,L,M,H[12],3873151461,11),M=W(M,v,E,L,H[15],530742520,16),L=W(L,M,v,E,H[2],3299628645,23),E=J(E,L,M,v,H[0],4096336452,6),v=J(v,E,L,M,H[7],1126891415,10),M=J(M,v,E,L,H[14],2878612391,15),L=J(L,M,v,E,H[5],4237533241,21),E=J(E,L,M,v,H[12],1700485571,6),v=J(v,E,L,M,H[3],2399980690,10),M=J(M,v,E,L,H[10],4293915773,15),L=J(L,M,v,E,H[1],2240044497,21),E=J(E,L,M,v,H[8],1873313359,6),v=J(v,E,L,M,H[15],4264355552,10),M=J(M,v,E,L,H[6],2734768916,15),L=J(L,M,v,E,H[13],1309151649,21),E=J(E,L,M,v,H[4],4149444226,6),v=J(v,E,L,M,H[11],3174756917,10),M=J(M,v,E,L,H[2],718787259,15),L=J(L,M,v,E,H[9],3951481745,21),this._a=this._a+E|0,this._b=this._b+L|0,this._c=this._c+M|0,this._d=this._d+v|0},X.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var H=F.allocUnsafe(16);return H.writeInt32LE(this._a,0),H.writeInt32LE(this._b,4),H.writeInt32LE(this._c,8),H.writeInt32LE(this._d,12),H};function C(H,D){return H<>>32-D}function P(H,D,E,L,M,v,q){return C(H+(D&E|~D&L)+M+v|0,q)+D|0}function T(H,D,E,L,M,v,q){return C(H+(D&L|E&~L)+M+v|0,q)+D|0}function W(H,D,E,L,M,v,q){return C(H+(D^E^L)+M+v|0,q)+D|0}function J(H,D,E,L,M,v,q){return C(H+(E^(D|~L))+M+v|0,q)+D|0}_.exports=X}}),YQ=S0({"node_modules/ripemd160/index.js"(N,_){var k=g0,j=B0(),F=$Q(),z=new Array(16),X=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],C=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],P=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],T=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],W=[0,1518500249,1859775393,2400959708,2840853838],J=[1352829926,1548603684,1836072691,2053994217,0];function H(){F.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}j(H,F),H.prototype._update=function(){for(var g=z,y=0;y<16;++y)g[y]=this._block.readInt32LE(y*4);for(var w=this._a|0,f=this._b|0,b=this._c|0,u=this._d|0,Y0=this._e|0,p=this._a|0,v0=this._b|0,$=this._c|0,Y=this._d|0,G=this._e|0,Z=0;Z<80;Z+=1){var V,I;Z<16?(V=E(w,f,b,u,Y0,g[X[Z]],W[0],P[Z]),I=q(p,v0,$,Y,G,g[C[Z]],J[0],T[Z])):Z<32?(V=L(w,f,b,u,Y0,g[X[Z]],W[1],P[Z]),I=v(p,v0,$,Y,G,g[C[Z]],J[1],T[Z])):Z<48?(V=M(w,f,b,u,Y0,g[X[Z]],W[2],P[Z]),I=M(p,v0,$,Y,G,g[C[Z]],J[2],T[Z])):Z<64?(V=v(w,f,b,u,Y0,g[X[Z]],W[3],P[Z]),I=L(p,v0,$,Y,G,g[C[Z]],J[3],T[Z])):(V=q(w,f,b,u,Y0,g[X[Z]],W[4],P[Z]),I=E(p,v0,$,Y,G,g[C[Z]],J[4],T[Z])),w=Y0,Y0=u,u=D(b,10),b=f,f=V,p=G,G=Y,Y=D($,10),$=v0,v0=I}var O=this._b+b+Y|0;this._b=this._c+u+G|0,this._c=this._d+Y0+p|0,this._d=this._e+w+v0|0,this._e=this._a+f+$|0,this._a=O},H.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var g=k.alloc?k.alloc(20):new k(20);return g.writeInt32LE(this._a,0),g.writeInt32LE(this._b,4),g.writeInt32LE(this._c,8),g.writeInt32LE(this._d,12),g.writeInt32LE(this._e,16),g};function D(g,y){return g<>>32-y}function E(g,y,w,f,b,u,Y0,p){return D(g+(y^w^f)+u+Y0|0,p)+b|0}function L(g,y,w,f,b,u,Y0,p){return D(g+(y&w|~y&f)+u+Y0|0,p)+b|0}function M(g,y,w,f,b,u,Y0,p){return D(g+((y|~w)^f)+u+Y0|0,p)+b|0}function v(g,y,w,f,b,u,Y0,p){return D(g+(y&f|w&~f)+u+Y0|0,p)+b|0}function q(g,y,w,f,b,u,Y0,p){return D(g+(y^(w|~f))+u+Y0|0,p)+b|0}_.exports=H}}),R$=S0({"node_modules/sha.js/hash.js"(N,_){var k=N0().Buffer;function j(F,z){this._block=k.alloc(F),this._finalSize=z,this._blockSize=F,this._len=0}j.prototype.update=function(F,z){typeof F=="string"&&(z=z||"utf8",F=k.from(F,z));for(var X=this._block,C=this._blockSize,P=F.length,T=this._len,W=0;W=this._finalSize&&(this._update(this._block),this._block.fill(0));var X=this._len*8;if(X<=4294967295)this._block.writeUInt32BE(X,this._blockSize-4);else{var C=(X&4294967295)>>>0,P=(X-C)/4294967296;this._block.writeUInt32BE(P,this._blockSize-8),this._block.writeUInt32BE(C,this._blockSize-4)}this._update(this._block);var T=this._hash();return F?T.toString(F):T},j.prototype._update=function(){throw new Error("_update must be implemented by subclass")},_.exports=j}}),uQ=S0({"node_modules/sha.js/sha.js"(N,_){var k=B0(),j=R$(),F=N0().Buffer,z=[1518500249,1859775393,-1894007588,-899497514],X=new Array(80);function C(){this.init(),this._w=X,j.call(this,64,56)}k(C,j),C.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function P(J){return J<<5|J>>>27}function T(J){return J<<30|J>>>2}function W(J,H,D,E){return J===0?H&D|~H&E:J===2?H&D|H&E|D&E:H^D^E}C.prototype._update=function(J){for(var H=this._w,D=this._a|0,E=this._b|0,L=this._c|0,M=this._d|0,v=this._e|0,q=0;q<16;++q)H[q]=J.readInt32BE(q*4);for(;q<80;++q)H[q]=H[q-3]^H[q-8]^H[q-14]^H[q-16];for(var g=0;g<80;++g){var y=~~(g/20),w=P(D)+W(y,E,L,M)+v+H[g]+z[y]|0;v=M,M=L,L=T(E),E=D,D=w}this._a=D+this._a|0,this._b=E+this._b|0,this._c=L+this._c|0,this._d=M+this._d|0,this._e=v+this._e|0},C.prototype._hash=function(){var J=F.allocUnsafe(20);return J.writeInt32BE(this._a|0,0),J.writeInt32BE(this._b|0,4),J.writeInt32BE(this._c|0,8),J.writeInt32BE(this._d|0,12),J.writeInt32BE(this._e|0,16),J},_.exports=C}}),nQ=S0({"node_modules/sha.js/sha1.js"(N,_){var k=B0(),j=R$(),F=N0().Buffer,z=[1518500249,1859775393,-1894007588,-899497514],X=new Array(80);function C(){this.init(),this._w=X,j.call(this,64,56)}k(C,j),C.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function P(H){return H<<1|H>>>31}function T(H){return H<<5|H>>>27}function W(H){return H<<30|H>>>2}function J(H,D,E,L){return H===0?D&E|~D&L:H===2?D&E|D&L|E&L:D^E^L}C.prototype._update=function(H){for(var D=this._w,E=this._a|0,L=this._b|0,M=this._c|0,v=this._d|0,q=this._e|0,g=0;g<16;++g)D[g]=H.readInt32BE(g*4);for(;g<80;++g)D[g]=P(D[g-3]^D[g-8]^D[g-14]^D[g-16]);for(var y=0;y<80;++y){var w=~~(y/20),f=T(E)+J(w,L,M,v)+q+D[y]+z[w]|0;q=v,v=M,M=W(L),L=E,E=f}this._a=E+this._a|0,this._b=L+this._b|0,this._c=M+this._c|0,this._d=v+this._d|0,this._e=q+this._e|0},C.prototype._hash=function(){var H=F.allocUnsafe(20);return H.writeInt32BE(this._a|0,0),H.writeInt32BE(this._b|0,4),H.writeInt32BE(this._c|0,8),H.writeInt32BE(this._d|0,12),H.writeInt32BE(this._e|0,16),H},_.exports=C}}),ZQ=S0({"node_modules/sha.js/sha256.js"(N,_){var k=B0(),j=R$(),F=N0().Buffer,z=[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],X=new Array(64);function C(){this.init(),this._w=X,j.call(this,64,56)}k(C,j),C.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function P(E,L,M){return M^E&(L^M)}function T(E,L,M){return E&L|M&(E|L)}function W(E){return(E>>>2|E<<30)^(E>>>13|E<<19)^(E>>>22|E<<10)}function J(E){return(E>>>6|E<<26)^(E>>>11|E<<21)^(E>>>25|E<<7)}function H(E){return(E>>>7|E<<25)^(E>>>18|E<<14)^E>>>3}function D(E){return(E>>>17|E<<15)^(E>>>19|E<<13)^E>>>10}C.prototype._update=function(E){for(var L=this._w,M=this._a|0,v=this._b|0,q=this._c|0,g=this._d|0,y=this._e|0,w=this._f|0,f=this._g|0,b=this._h|0,u=0;u<16;++u)L[u]=E.readInt32BE(u*4);for(;u<64;++u)L[u]=D(L[u-2])+L[u-7]+H(L[u-15])+L[u-16]|0;for(var Y0=0;Y0<64;++Y0){var p=b+J(y)+P(y,w,f)+z[Y0]+L[Y0]|0,v0=W(M)+T(M,v,q)|0;b=f,f=w,w=y,y=g+p|0,g=q,q=v,v=M,M=p+v0|0}this._a=M+this._a|0,this._b=v+this._b|0,this._c=q+this._c|0,this._d=g+this._d|0,this._e=y+this._e|0,this._f=w+this._f|0,this._g=f+this._g|0,this._h=b+this._h|0},C.prototype._hash=function(){var E=F.allocUnsafe(32);return E.writeInt32BE(this._a,0),E.writeInt32BE(this._b,4),E.writeInt32BE(this._c,8),E.writeInt32BE(this._d,12),E.writeInt32BE(this._e,16),E.writeInt32BE(this._f,20),E.writeInt32BE(this._g,24),E.writeInt32BE(this._h,28),E},_.exports=C}}),sQ=S0({"node_modules/sha.js/sha224.js"(N,_){var k=B0(),j=ZQ(),F=R$(),z=N0().Buffer,X=new Array(64);function C(){this.init(),this._w=X,F.call(this,64,56)}k(C,j),C.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},C.prototype._hash=function(){var P=z.allocUnsafe(28);return P.writeInt32BE(this._a,0),P.writeInt32BE(this._b,4),P.writeInt32BE(this._c,8),P.writeInt32BE(this._d,12),P.writeInt32BE(this._e,16),P.writeInt32BE(this._f,20),P.writeInt32BE(this._g,24),P},_.exports=C}}),GQ=S0({"node_modules/sha.js/sha512.js"(N,_){var k=B0(),j=R$(),F=N0().Buffer,z=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],X=new Array(160);function C(){this.init(),this._w=X,j.call(this,128,112)}k(C,j),C.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function P(v,q,g){return g^v&(q^g)}function T(v,q,g){return v&q|g&(v|q)}function W(v,q){return(v>>>28|q<<4)^(q>>>2|v<<30)^(q>>>7|v<<25)}function J(v,q){return(v>>>14|q<<18)^(v>>>18|q<<14)^(q>>>9|v<<23)}function H(v,q){return(v>>>1|q<<31)^(v>>>8|q<<24)^v>>>7}function D(v,q){return(v>>>1|q<<31)^(v>>>8|q<<24)^(v>>>7|q<<25)}function E(v,q){return(v>>>19|q<<13)^(q>>>29|v<<3)^v>>>6}function L(v,q){return(v>>>19|q<<13)^(q>>>29|v<<3)^(v>>>6|q<<26)}function M(v,q){return v>>>0>>0?1:0}C.prototype._update=function(v){for(var q=this._w,g=this._ah|0,y=this._bh|0,w=this._ch|0,f=this._dh|0,b=this._eh|0,u=this._fh|0,Y0=this._gh|0,p=this._hh|0,v0=this._al|0,$=this._bl|0,Y=this._cl|0,G=this._dl|0,Z=this._el|0,V=this._fl|0,I=this._gl|0,O=this._hl|0,U=0;U<32;U+=2)q[U]=v.readInt32BE(U*4),q[U+1]=v.readInt32BE(U*4+4);for(;U<160;U+=2){var Q=q[U-30],K=q[U-30+1],R=H(Q,K),A=D(K,Q);Q=q[U-4],K=q[U-4+1];var S=E(Q,K),x=L(K,Q),B=q[U-14],c=q[U-14+1],q0=q[U-32],h=q[U-32+1],d=A+c|0,_0=R+B+M(d,A)|0;d=d+x|0,_0=_0+S+M(d,x)|0,d=d+h|0,_0=_0+q0+M(d,h)|0,q[U]=_0,q[U+1]=d}for(var l=0;l<160;l+=2){_0=q[l],d=q[l+1];var n=T(g,y,w),y0=T(v0,$,Y),t=W(g,v0),s=W(v0,g),w0=J(b,Z),m=J(Z,b),r=z[l],$$=z[l+1],i=P(b,u,Y0),e=P(Z,V,I),x0=O+m|0,o=p+w0+M(x0,O)|0;x0=x0+e|0,o=o+i+M(x0,e)|0,x0=x0+$$|0,o=o+r+M(x0,$$)|0,x0=x0+d|0,o=o+_0+M(x0,d)|0;var a=s+y0|0,p0=t+n+M(a,s)|0;p=Y0,O=I,Y0=u,I=V,u=b,V=Z,Z=G+x0|0,b=f+o+M(Z,G)|0,f=w,G=Y,w=y,Y=$,y=g,$=v0,v0=x0+a|0,g=o+p0+M(v0,x0)|0}this._al=this._al+v0|0,this._bl=this._bl+$|0,this._cl=this._cl+Y|0,this._dl=this._dl+G|0,this._el=this._el+Z|0,this._fl=this._fl+V|0,this._gl=this._gl+I|0,this._hl=this._hl+O|0,this._ah=this._ah+g+M(this._al,v0)|0,this._bh=this._bh+y+M(this._bl,$)|0,this._ch=this._ch+w+M(this._cl,Y)|0,this._dh=this._dh+f+M(this._dl,G)|0,this._eh=this._eh+b+M(this._el,Z)|0,this._fh=this._fh+u+M(this._fl,V)|0,this._gh=this._gh+Y0+M(this._gl,I)|0,this._hh=this._hh+p+M(this._hl,O)|0},C.prototype._hash=function(){var v=F.allocUnsafe(64);function q(g,y,w){v.writeInt32BE(g,w),v.writeInt32BE(y,w+4)}return q(this._ah,this._al,0),q(this._bh,this._bl,8),q(this._ch,this._cl,16),q(this._dh,this._dl,24),q(this._eh,this._el,32),q(this._fh,this._fl,40),q(this._gh,this._gl,48),q(this._hh,this._hl,56),v},_.exports=C}}),tQ=S0({"node_modules/sha.js/sha384.js"(N,_){var k=B0(),j=GQ(),F=R$(),z=N0().Buffer,X=new Array(160);function C(){this.init(),this._w=X,F.call(this,128,112)}k(C,j),C.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},C.prototype._hash=function(){var P=z.allocUnsafe(48);function T(W,J,H){P.writeInt32BE(W,H),P.writeInt32BE(J,H+4)}return T(this._ah,this._al,0),T(this._bh,this._bl,8),T(this._ch,this._cl,16),T(this._dh,this._dl,24),T(this._eh,this._el,32),T(this._fh,this._fl,40),P},_.exports=C}}),VQ=S0({"node_modules/sha.js/index.js"(k,_){var k=_.exports=function(j){j=j.toLowerCase();var F=k[j];if(!F)throw new Error(j+" is not supported (we accept pull requests)");return new F};k.sha=uQ(),k.sha1=nQ(),k.sha224=sQ(),k.sha256=ZQ(),k.sha384=tQ(),k.sha512=GQ()}}),C$=S0({"node_modules/cipher-base/index.js"(N,_){var k=N0().Buffer,j=B0();function F(z){A$.Transform.call(this),this.hashMode=typeof z=="string",this.hashMode?this[z]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}j(F,A$.Transform),F.prototype.update=function(z,X,C){typeof z=="string"&&(z=k.from(z,X));var P=this._update(z);return this.hashMode?this:(C&&(P=this._toString(P,C)),P)},F.prototype.setAutoPadding=function(){},F.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},F.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},F.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},F.prototype._transform=function(z,X,C){var P;try{this.hashMode?this._update(z):this.push(this._update(z))}catch(T){P=T}finally{C(P)}},F.prototype._flush=function(z){var X;try{this.push(this.__final())}catch(C){X=C}z(X)},F.prototype._finalOrDigest=function(z){var X=this.__final()||k.alloc(0);return z&&(X=this._toString(X,z,!0)),X},F.prototype._toString=function(z,X,C){if(this._decoder||(this._decoder=new bQ(X),this._encoding=X),this._encoding!==X)throw new Error("can't switch encodings");var P=this._decoder.write(z);return C&&(P+=this._decoder.end()),P},_.exports=F}}),M$=S0({"node_modules/create-hash/browser.js"(N,_){const k=function z(X,C){this._options=C,this._hasher=new mY(X,C),this._finalized=!1};k.prototype=Object.create(A$.Transform.prototype),k.prototype.update=function z(X,C){return this._checkFinalized(),this._hasher.update(X,C),this},k.prototype.digest=function z(X,C){return this._checkFinalized(),this._finalized=!0,this._hasher.digest(X,C)},k.prototype._checkFinalized=function z(){if(this._finalized){var X=new Error("Digest already called");throw X.code="ERR_CRYPTO_HASH_FINALIZED",X}},k.prototype.copy=function z(){const X=Object.create(k.prototype);return X._options=this._options,X._hasher=this._hasher.copy(),X._finalized=this._finalized,X};const j={__proto__:A$.Transform.prototype,...k.prototype,_transform(z,X,C){this.update(z,X),C&&C()},_flush(z){this.push(this.digest()),z()}},F=["_events","_eventsCount","_final","_maxListeners","_maxListeners","_read","_undestroy","_writableState","_write","_writev","addListener","asIndexedPairs","closed","compose","constructor","cork","destroy","destroyed","drop","emit","end","errored","eventNames","every","filter","find","flatMap","forEach","getMaxListeners","hasOwnProperty","isPaused","isPrototypeOf","iterator","listenerCount","listeners","map","off","on","once","pause","pipe","prependListener","prependOnceListener","propertyIsEnumerable","push","rawListeners","read","readable","readableAborted","readableBuffer","readableDidRead","readableEncoding","readableEnded","readableFlowing","readableHighWaterMark","readableLength","readableObjectMode","reduce","removeAllListeners","removeListener","resume","setDefaultEncoding","setEncoding","setMaxListeners","some","take","toArray","toLocaleString","toString","uncork","unpipe","unshift","valueOf","wrap","writable","writableBuffer","writableCorked","writableEnded","writableFinished","writableHighWaterMark","writableLength","writableNeedDrain","writableObjectMode","write"];for(let z of F)Object.defineProperty(k.prototype,z,{get(){return Object.setPrototypeOf(this,j),A$.Transform.call(this,this._options),this[z]},enumerable:!1,configurable:!0});_.exports=function z(X){return new k(X)},_.exports.createHash=_.exports,_.exports.Hash=k}}),mQ=S0({"node_modules/create-hmac/legacy.js"(N,_){var k=B0(),j=N0().Buffer,F=C$(),z=j.alloc(128),X=64;function C(P,T){F.call(this,"digest"),typeof T=="string"&&(T=j.from(T)),this._alg=P,this._key=T,T.length>X?T=P(T):T.lengthD){var E=J==="rmd160"?new C:P(J);H=E.update(H).digest()}else H.lengthk||F!==F)throw new TypeError("Bad key length")}}}),OQ=S0({"node_modules/pbkdf2/lib/default-encoding.js"(N,_){var k;global.process&&global.process.browser?k="utf-8":global.process&&global.process.version?(j=parseInt(process.version.split(".")[0].slice(1),10),k=j>=6?"utf-8":"binary"):k="utf-8";var j;_.exports=k}}),JQ=S0({"node_modules/pbkdf2/lib/to-buffer.js"(N,_){var k=N0().Buffer;_.exports=function(j,F,z){if(k.isBuffer(j))return j;if(typeof j=="string")return k.from(j,F);if(ArrayBuffer.isView(j))return k.from(j.buffer);throw new TypeError(z+" must be a string, a Buffer, a typed array or a DataView")}}}),FQ=S0({"node_modules/pbkdf2/lib/sync-browser.js"(N,_){var k=UQ(),j=YQ(),F=VQ(),z=N0().Buffer,X=IQ(),C=OQ(),P=JQ(),T=z.alloc(128),W={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function J(E,L,M){var v=H(E),q=E==="sha512"||E==="sha384"?128:64;L.length>q?L=v(L):L.length>>0},N.writeUInt32BE=function(F,z,X){F[0+X]=z>>>24,F[1+X]=z>>>16&255,F[2+X]=z>>>8&255,F[3+X]=z&255},N.ip=function(F,z,X,C){for(var P=0,T=0,W=6;W>=0;W-=2){for(var J=0;J<=24;J+=8)P<<=1,P|=z>>>J+W&1;for(var J=0;J<=24;J+=8)P<<=1,P|=F>>>J+W&1}for(var W=6;W>=0;W-=2){for(var J=1;J<=25;J+=8)T<<=1,T|=z>>>J+W&1;for(var J=1;J<=25;J+=8)T<<=1,T|=F>>>J+W&1}X[C+0]=P>>>0,X[C+1]=T>>>0},N.rip=function(F,z,X,C){for(var P=0,T=0,W=0;W<4;W++)for(var J=24;J>=0;J-=8)P<<=1,P|=z>>>J+W&1,P<<=1,P|=F>>>J+W&1;for(var W=4;W<8;W++)for(var J=24;J>=0;J-=8)T<<=1,T|=z>>>J+W&1,T<<=1,T|=F>>>J+W&1;X[C+0]=P>>>0,X[C+1]=T>>>0},N.pc1=function(F,z,X,C){for(var P=0,T=0,W=7;W>=5;W--){for(var J=0;J<=24;J+=8)P<<=1,P|=z>>J+W&1;for(var J=0;J<=24;J+=8)P<<=1,P|=F>>J+W&1}for(var J=0;J<=24;J+=8)P<<=1,P|=z>>J+W&1;for(var W=1;W<=3;W++){for(var J=0;J<=24;J+=8)T<<=1,T|=z>>J+W&1;for(var J=0;J<=24;J+=8)T<<=1,T|=F>>J+W&1}for(var J=0;J<=24;J+=8)T<<=1,T|=F>>J+W&1;X[C+0]=P>>>0,X[C+1]=T>>>0},N.r28shl=function(F,z){return F<>>28-z};var _=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];N.pc2=function(F,z,X,C){for(var P=0,T=0,W=_.length>>>1,J=0;J>>_[J]&1;for(var J=W;J<_.length;J++)T<<=1,T|=z>>>_[J]&1;X[C+0]=P>>>0,X[C+1]=T>>>0},N.expand=function(F,z,X){var C=0,P=0;C=(F&1)<<5|F>>>27;for(var T=23;T>=15;T-=4)C<<=6,C|=F>>>T&63;for(var T=11;T>=3;T-=4)P|=F>>>T&63,P<<=6;P|=(F&31)<<1|F>>>31,z[X+0]=C>>>0,z[X+1]=P>>>0};var k=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];N.substitute=function(F,z){for(var X=0,C=0;C<4;C++){var P=F>>>18-C*6&63,T=k[C*64+P];X<<=4,X|=T}for(var C=0;C<4;C++){var P=z>>>18-C*6&63,T=k[256+C*64+P];X<<=4,X|=T}return X>>>0};var j=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];N.permute=function(F){for(var z=0,X=0;X>>j[X]&1;return z>>>0},N.padSplit=function(F,z,X){for(var C=F.toString(2);C.length0;C--)z+=this._buffer(F,z),X+=this._flushBuffer(P,X);return z+=this._buffer(F,z),P},j.prototype.final=function(F){var z;F&&(z=this.update(F));var X;return this.type==="encrypt"?X=this._finalEncrypt():X=this._finalDecrypt(),z?z.concat(X):X},j.prototype._pad=function(F,z){if(z===0)return!1;for(;z>>1];J=F.r28shl(J,E),H=F.r28shl(H,E),F.pc2(J,H,T.keys,D)}},C.prototype._update=function(T,W,J,H){var D=this._desState,E=F.readUInt32BE(T,W),L=F.readUInt32BE(T,W+4);F.ip(E,L,D.tmp,0),E=D.tmp[0],L=D.tmp[1],this.type==="encrypt"?this._encrypt(D,E,L,D.tmp,0):this._decrypt(D,E,L,D.tmp,0),E=D.tmp[0],L=D.tmp[1],F.writeUInt32BE(J,E,H),F.writeUInt32BE(J,L,H+4)},C.prototype._pad=function(T,W){for(var J=T.length-W,H=W;H>>0,E=w}F.rip(L,E,H,D)},C.prototype._decrypt=function(T,W,J,H,D){for(var E=J,L=W,M=T.keys.length-2;M>=0;M-=2){var v=T.keys[M],q=T.keys[M+1];F.expand(E,T.tmp,0),v^=T.tmp[0],q^=T.tmp[1];var g=F.substitute(v,q),y=F.permute(g),w=E;E=(L^y)>>>0,L=w}F.rip(E,L,H,D)}}}),rQ=S0({"node_modules/des.js/lib/des/cbc.js"(N){var _=W$(),k=B0(),j={};function F(X){_.equal(X.length,8,"Invalid IV length"),this.iv=new Array(8);for(var C=0;C>P%8,F._prev=j(F._prev,X?J:H);return W}function j(F,z){var X=F.length,C=-1,P=_.allocUnsafe(F.length);for(F=_.concat([F,_.from([z])]);++C>7;return P}N.encrypt=function(F,z,X){for(var C=z.length,P=_.allocUnsafe(C),T=-1;++T>>24]^L[g>>>16&255]^M[y>>>8&255]^v[w&255]^W[p++],b=E[g>>>24]^L[y>>>16&255]^M[w>>>8&255]^v[q&255]^W[p++],u=E[y>>>24]^L[w>>>16&255]^M[q>>>8&255]^v[g&255]^W[p++],Y0=E[w>>>24]^L[q>>>16&255]^M[g>>>8&255]^v[y&255]^W[p++],q=f,g=b,y=u,w=Y0;return f=(H[q>>>24]<<24|H[g>>>16&255]<<16|H[y>>>8&255]<<8|H[w&255])^W[p++],b=(H[g>>>24]<<24|H[y>>>16&255]<<16|H[w>>>8&255]<<8|H[q&255])^W[p++],u=(H[y>>>24]<<24|H[w>>>16&255]<<16|H[q>>>8&255]<<8|H[g&255])^W[p++],Y0=(H[w>>>24]<<24|H[q>>>16&255]<<16|H[g>>>8&255]<<8|H[y&255])^W[p++],f=f>>>0,b=b>>>0,u=u>>>0,Y0=Y0>>>0,[f,b,u,Y0]}var X=[0,1,2,4,8,16,32,64,128,27,54],C=function(){for(var T=new Array(256),W=0;W<256;W++)W<128?T[W]=W<<1:T[W]=W<<1^283;for(var J=[],H=[],D=[[],[],[],[]],E=[[],[],[],[]],L=0,M=0,v=0;v<256;++v){var q=M^M<<1^M<<2^M<<3^M<<4;q=q>>>8^q&255^99,J[L]=q,H[q]=L;var g=T[L],y=T[g],w=T[y],f=T[q]*257^q*16843008;D[0][L]=f<<24|f>>>8,D[1][L]=f<<16|f>>>16,D[2][L]=f<<8|f>>>24,D[3][L]=f,f=w*16843009^y*65537^g*257^L*16843008,E[0][q]=f<<24|f>>>8,E[1][q]=f<<16|f>>>16,E[2][q]=f<<8|f>>>24,E[3][q]=f,L===0?L=M=1:(L=g^T[T[T[w^g]]],M^=T[T[M]])}return{SBOX:J,INV_SBOX:H,SUB_MIX:D,INV_SUB_MIX:E}}();function P(T){this._key=j(T),this._reset()}P.blockSize=16,P.keySize=32,P.prototype.blockSize=P.blockSize,P.prototype.keySize=P.keySize,P.prototype._reset=function(){for(var T=this._key,W=T.length,J=W+6,H=(J+1)*4,D=[],E=0;E>>24,L=C.SBOX[L>>>24]<<24|C.SBOX[L>>>16&255]<<16|C.SBOX[L>>>8&255]<<8|C.SBOX[L&255],L^=X[E/W|0]<<24):W>6&&E%W===4&&(L=C.SBOX[L>>>24]<<24|C.SBOX[L>>>16&255]<<16|C.SBOX[L>>>8&255]<<8|C.SBOX[L&255]),D[E]=D[E-W]^L}for(var M=[],v=0;v>>24]]^C.INV_SUB_MIX[1][C.SBOX[g>>>16&255]]^C.INV_SUB_MIX[2][C.SBOX[g>>>8&255]]^C.INV_SUB_MIX[3][C.SBOX[g&255]]}this._nRounds=J,this._keySchedule=D,this._invKeySchedule=M},P.prototype.encryptBlockRaw=function(T){return T=j(T),z(T,this._keySchedule,C.SUB_MIX,C.SBOX,this._nRounds)},P.prototype.encryptBlock=function(T){var W=this.encryptBlockRaw(T),J=k.allocUnsafe(16);return J.writeUInt32BE(W[0],0),J.writeUInt32BE(W[1],4),J.writeUInt32BE(W[2],8),J.writeUInt32BE(W[3],12),J},P.prototype.decryptBlock=function(T){T=j(T);var W=T[1];T[1]=T[3],T[3]=W;var J=z(T,this._invKeySchedule,C.INV_SUB_MIX,C.INV_SBOX,this._nRounds),H=k.allocUnsafe(16);return H.writeUInt32BE(J[0],0),H.writeUInt32BE(J[3],4),H.writeUInt32BE(J[2],8),H.writeUInt32BE(J[1],12),H},P.prototype.scrub=function(){F(this._keySchedule),F(this._invKeySchedule),F(this._key)},_.exports.AES=P}}),KY=S0({"node_modules/browserify-aes/ghash.js"(N,_){var k=N0().Buffer,j=k.alloc(16,0);function F(C){return[C.readUInt32BE(0),C.readUInt32BE(4),C.readUInt32BE(8),C.readUInt32BE(12)]}function z(C){var P=k.allocUnsafe(16);return P.writeUInt32BE(C[0]>>>0,0),P.writeUInt32BE(C[1]>>>0,4),P.writeUInt32BE(C[2]>>>0,8),P.writeUInt32BE(C[3]>>>0,12),P}function X(C){this.h=C,this.state=k.alloc(16,0),this.cache=k.allocUnsafe(0)}X.prototype.ghash=function(C){for(var P=-1;++P0;T--)C[T]=C[T]>>>1|(C[T-1]&1)<<31;C[0]=C[0]>>>1,J&&(C[0]=C[0]^225<<24)}this.state=z(P)},X.prototype.update=function(C){this.cache=k.concat([this.cache,C]);for(var P;this.cache.length>=16;)P=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(P)},X.prototype.final=function(C,P){return this.cache.length&&this.ghash(k.concat([this.cache,j],16)),this.ghash(z([0,C,0,P])),this.state},_.exports=X}}),DQ=S0({"node_modules/browserify-aes/authCipher.js"(N,_){var k=q$(),j=N0().Buffer,F=C$(),z=B0(),X=KY(),C=S$(),P=EQ();function T(H,D){var E=0;H.length!==D.length&&E++;for(var L=Math.min(H.length,D.length),M=0;M0||P>0;){var D=new j;D.update(H),D.update(z),X&&D.update(X),H=D.digest();var E=0;if(T>0){var L=W.length-T;E=Math.min(T,H.length),H.copy(W,L,0,E),T-=E}if(E0){var M=J.length-P,v=Math.min(P,H.length-E);H.copy(J,M,E,E+v),P-=v}}return H.fill(0),{key:W,iv:J}}_.exports=F}}),IY=S0({"node_modules/browserify-aes/encrypter.js"(N){var _=w$(),k=DQ(),j=N0().Buffer,F=CQ(),z=C$(),X=q$(),C=j$(),P=B0();function T(E,L,M){z.call(this),this._cache=new J,this._cipher=new X.AES(L),this._prev=j.from(M),this._mode=E,this._autopadding=!0}P(T,z),T.prototype._update=function(E){this._cache.add(E);for(var L,M,v=[];L=this._cache.get();)M=this._mode.encrypt(this,L),v.push(M);return j.concat(v)};var W=j.alloc(16,16);T.prototype._final=function(){var E=this._cache.flush();if(this._autopadding)return E=this._mode.encrypt(this,E),this._cipher.scrub(),E;if(!E.equals(W))throw this._cipher.scrub(),new Error("data not multiple of block length")},T.prototype.setAutoPadding=function(E){return this._autopadding=!!E,this};function J(){this.cache=j.allocUnsafe(0)}J.prototype.add=function(E){this.cache=j.concat([this.cache,E])},J.prototype.get=function(){if(this.cache.length>15){var E=this.cache.slice(0,16);return this.cache=this.cache.slice(16),E}return null},J.prototype.flush=function(){for(var E=16-this.cache.length,L=j.allocUnsafe(E),M=-1;++M16)return L=this.cache.slice(0,16),this.cache=this.cache.slice(16),L}else if(this.cache.length>=16)return L=this.cache.slice(0,16),this.cache=this.cache.slice(16),L;return null},W.prototype.flush=function(){if(this.cache.length)return this.cache};function J(E){var L=E[15];if(L<1||L>16)throw new Error("unable to decrypt data");for(var M=-1;++M0?$:Y},X.min=function($,Y){return $.cmp(Y)<0?$:Y},X.prototype._init=function($,Y,G){if(typeof $=="number")return this._initNumber($,Y,G);if(typeof $=="object")return this._initArray($,Y,G);Y==="hex"&&(Y=16),F(Y===(Y|0)&&Y>=2&&Y<=36),$=$.toString().replace(/\s+/g,"");var Z=0;$[0]==="-"&&(Z++,this.negative=1),Z<$.length&&(Y===16?this._parseHex($,Z,G):(this._parseBase($,Y,Z),G==="le"&&this._initArray(this.toArray(),Y,G)))},X.prototype._initNumber=function($,Y,G){$<0&&(this.negative=1,$=-$),$<67108864?(this.words=[$&67108863],this.length=1):$<4503599627370496?(this.words=[$&67108863,$/67108864&67108863],this.length=2):(F($<9007199254740992),this.words=[$&67108863,$/67108864&67108863,1],this.length=3),G==="le"&&this._initArray(this.toArray(),Y,G)},X.prototype._initArray=function($,Y,G){if(F(typeof $.length=="number"),$.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil($.length/3),this.words=new Array(this.length);for(var Z=0;Z=0;Z-=3)I=$[Z]|$[Z-1]<<8|$[Z-2]<<16,this.words[V]|=I<>>26-O&67108863,O+=24,O>=26&&(O-=26,V++);else if(G==="le")for(Z=0,V=0;Z<$.length;Z+=3)I=$[Z]|$[Z+1]<<8|$[Z+2]<<16,this.words[V]|=I<>>26-O&67108863,O+=24,O>=26&&(O-=26,V++);return this.strip()};function P($,Y){var G=$.charCodeAt(Y);return G>=65&&G<=70?G-55:G>=97&&G<=102?G-87:G-48&15}function T($,Y,G){var Z=P($,G);return G-1>=Y&&(Z|=P($,G-1)<<4),Z}X.prototype._parseHex=function($,Y,G){this.length=Math.ceil(($.length-Y)/6),this.words=new Array(this.length);for(var Z=0;Z=Y;Z-=2)O=T($,Y,Z)<=18?(V-=18,I+=1,this.words[I]|=O>>>26):V+=8;else{var U=$.length-Y;for(Z=U%2===0?Y+1:Y;Z<$.length;Z+=2)O=T($,Y,Z)<=18?(V-=18,I+=1,this.words[I]|=O>>>26):V+=8}this.strip()};function W($,Y,G,Z){for(var V=0,I=Math.min($.length,G),O=Y;O=49?V+=U-49+10:U>=17?V+=U-17+10:V+=U}return V}X.prototype._parseBase=function($,Y,G){this.words=[0],this.length=1;for(var Z=0,V=1;V<=67108863;V*=Y)Z++;Z--,V=V/Y|0;for(var I=$.length-G,O=I%Z,U=Math.min(I,I-O)+G,Q=0,K=G;K1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},X.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},X.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],H=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],D=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];X.prototype.toString=function($,Y){$=$||10,Y=Y|0||1;var G;if($===16||$==="hex"){G="";for(var Z=0,V=0,I=0;I>>24-Z&16777215,V!==0||I!==this.length-1?G=J[6-U.length]+U+G:G=U+G,Z+=2,Z>=26&&(Z-=26,I--)}for(V!==0&&(G=V.toString(16)+G);G.length%Y!==0;)G="0"+G;return this.negative!==0&&(G="-"+G),G}if($===($|0)&&$>=2&&$<=36){var Q=H[$],K=D[$];G="";var R=this.clone();for(R.negative=0;!R.isZero();){var A=R.modn(K).toString($);R=R.idivn(K),R.isZero()?G=A+G:G=J[Q-A.length]+A+G}for(this.isZero()&&(G="0"+G);G.length%Y!==0;)G="0"+G;return this.negative!==0&&(G="-"+G),G}F(!1,"Base should be between 2 and 36")},X.prototype.toNumber=function(){var $=this.words[0];return this.length===2?$+=this.words[1]*67108864:this.length===3&&this.words[2]===1?$+=4503599627370496+this.words[1]*67108864:this.length>2&&F(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-$:$},X.prototype.toJSON=function(){return this.toString(16)},X.prototype.toBuffer=function($,Y){return F(typeof C<"u"),this.toArrayLike(C,$,Y)},X.prototype.toArray=function($,Y){return this.toArrayLike(Array,$,Y)},X.prototype.toArrayLike=function($,Y,G){var Z=this.byteLength(),V=G||Math.max(1,Z);F(Z<=V,"byte array longer than desired length"),F(V>0,"Requested array length <= 0"),this.strip();var I=Y==="le",O=new $(V),U,Q,K=this.clone();if(I){for(Q=0;!K.isZero();Q++)U=K.andln(255),K.iushrn(8),O[Q]=U;for(;Q=4096&&(G+=13,Y>>>=13),Y>=64&&(G+=7,Y>>>=7),Y>=8&&(G+=4,Y>>>=4),Y>=2&&(G+=2,Y>>>=2),G+Y},X.prototype._zeroBits=function($){if($===0)return 26;var Y=$,G=0;return(Y&8191)===0&&(G+=13,Y>>>=13),(Y&127)===0&&(G+=7,Y>>>=7),(Y&15)===0&&(G+=4,Y>>>=4),(Y&3)===0&&(G+=2,Y>>>=2),(Y&1)===0&&G++,G},X.prototype.bitLength=function(){var $=this.words[this.length-1],Y=this._countBits($);return(this.length-1)*26+Y};function E($){for(var Y=new Array($.bitLength()),G=0;G>>V}return Y}X.prototype.zeroBits=function(){if(this.isZero())return 0;for(var $=0,Y=0;Y$.length?this.clone().ior($):$.clone().ior(this)},X.prototype.uor=function($){return this.length>$.length?this.clone().iuor($):$.clone().iuor(this)},X.prototype.iuand=function($){var Y;this.length>$.length?Y=$:Y=this;for(var G=0;G$.length?this.clone().iand($):$.clone().iand(this)},X.prototype.uand=function($){return this.length>$.length?this.clone().iuand($):$.clone().iuand(this)},X.prototype.iuxor=function($){var Y,G;this.length>$.length?(Y=this,G=$):(Y=$,G=this);for(var Z=0;Z$.length?this.clone().ixor($):$.clone().ixor(this)},X.prototype.uxor=function($){return this.length>$.length?this.clone().iuxor($):$.clone().iuxor(this)},X.prototype.inotn=function($){F(typeof $=="number"&&$>=0);var Y=Math.ceil($/26)|0,G=$%26;this._expand(Y),G>0&&Y--;for(var Z=0;Z0&&(this.words[Z]=~this.words[Z]&67108863>>26-G),this.strip()},X.prototype.notn=function($){return this.clone().inotn($)},X.prototype.setn=function($,Y){F(typeof $=="number"&&$>=0);var G=$/26|0,Z=$%26;return this._expand(G+1),Y?this.words[G]=this.words[G]|1<$.length?(G=this,Z=$):(G=$,Z=this);for(var V=0,I=0;I>>26;for(;V!==0&&I>>26;if(this.length=G.length,V!==0)this.words[this.length]=V,this.length++;else if(G!==this)for(;I$.length?this.clone().iadd($):$.clone().iadd(this)},X.prototype.isub=function($){if($.negative!==0){$.negative=0;var Y=this.iadd($);return $.negative=1,Y._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd($),this.negative=1,this._normSign();var G=this.cmp($);if(G===0)return this.negative=0,this.length=1,this.words[0]=0,this;var Z,V;G>0?(Z=this,V=$):(Z=$,V=this);for(var I=0,O=0;O>26,this.words[O]=Y&67108863;for(;I!==0&&O>26,this.words[O]=Y&67108863;if(I===0&&O>>26,A=Q&67108863,S=Math.min(K,Y.length-1),x=Math.max(0,K-$.length+1);x<=S;x++){var B=K-x|0;V=$.words[B]|0,I=Y.words[x]|0,O=V*I+A,R+=O/67108864|0,A=O&67108863}G.words[K]=A|0,Q=R|0}return Q!==0?G.words[K]=Q|0:G.length--,G.strip()}var M=function($,Y,G){var Z=$.words,V=Y.words,I=G.words,O=0,U,Q,K,R=Z[0]|0,A=R&8191,S=R>>>13,x=Z[1]|0,B=x&8191,c=x>>>13,q0=Z[2]|0,h=q0&8191,d=q0>>>13,_0=Z[3]|0,l=_0&8191,n=_0>>>13,y0=Z[4]|0,t=y0&8191,s=y0>>>13,w0=Z[5]|0,m=w0&8191,r=w0>>>13,$$=Z[6]|0,i=$$&8191,e=$$>>>13,x0=Z[7]|0,o=x0&8191,a=x0>>>13,p0=Z[8]|0,$0=p0&8191,Q0=p0>>>13,Y$=Z[9]|0,Z0=Y$&8191,G0=Y$>>>13,Z$=V[0]|0,V0=Z$&8191,U0=Z$>>>13,G$=V[1]|0,X0=G$&8191,K0=G$>>>13,V$=V[2]|0,I0=V$&8191,O0=V$>>>13,U$=V[3]|0,J0=U$&8191,F0=U$>>>13,X$=V[4]|0,A0=X$&8191,H0=X$>>>13,K$=V[5]|0,W0=K$&8191,E0=K$>>>13,I$=V[6]|0,T0=I$&8191,D0=I$>>>13,O$=V[7]|0,C0=O$&8191,L0=O$>>>13,J$=V[8]|0,R0=J$&8191,P0=J$>>>13,F$=V[9]|0,z0=F$&8191,M0=F$>>>13;G.negative=$.negative^Y.negative,G.length=19,U=Math.imul(A,V0),Q=Math.imul(A,U0),Q=Q+Math.imul(S,V0)|0,K=Math.imul(S,U0);var Q$=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,U=Math.imul(B,V0),Q=Math.imul(B,U0),Q=Q+Math.imul(c,V0)|0,K=Math.imul(c,U0),U=U+Math.imul(A,X0)|0,Q=Q+Math.imul(A,K0)|0,Q=Q+Math.imul(S,X0)|0,K=K+Math.imul(S,K0)|0;var j0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(j0>>>26)|0,j0&=67108863,U=Math.imul(h,V0),Q=Math.imul(h,U0),Q=Q+Math.imul(d,V0)|0,K=Math.imul(d,U0),U=U+Math.imul(B,X0)|0,Q=Q+Math.imul(B,K0)|0,Q=Q+Math.imul(c,X0)|0,K=K+Math.imul(c,K0)|0,U=U+Math.imul(A,I0)|0,Q=Q+Math.imul(A,O0)|0,Q=Q+Math.imul(S,I0)|0,K=K+Math.imul(S,O0)|0;var k0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(k0>>>26)|0,k0&=67108863,U=Math.imul(l,V0),Q=Math.imul(l,U0),Q=Q+Math.imul(n,V0)|0,K=Math.imul(n,U0),U=U+Math.imul(h,X0)|0,Q=Q+Math.imul(h,K0)|0,Q=Q+Math.imul(d,X0)|0,K=K+Math.imul(d,K0)|0,U=U+Math.imul(B,I0)|0,Q=Q+Math.imul(B,O0)|0,Q=Q+Math.imul(c,I0)|0,K=K+Math.imul(c,O0)|0,U=U+Math.imul(A,J0)|0,Q=Q+Math.imul(A,F0)|0,Q=Q+Math.imul(S,J0)|0,K=K+Math.imul(S,F0)|0;var f0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(f0>>>26)|0,f0&=67108863,U=Math.imul(t,V0),Q=Math.imul(t,U0),Q=Q+Math.imul(s,V0)|0,K=Math.imul(s,U0),U=U+Math.imul(l,X0)|0,Q=Q+Math.imul(l,K0)|0,Q=Q+Math.imul(n,X0)|0,K=K+Math.imul(n,K0)|0,U=U+Math.imul(h,I0)|0,Q=Q+Math.imul(h,O0)|0,Q=Q+Math.imul(d,I0)|0,K=K+Math.imul(d,O0)|0,U=U+Math.imul(B,J0)|0,Q=Q+Math.imul(B,F0)|0,Q=Q+Math.imul(c,J0)|0,K=K+Math.imul(c,F0)|0,U=U+Math.imul(A,A0)|0,Q=Q+Math.imul(A,H0)|0,Q=Q+Math.imul(S,A0)|0,K=K+Math.imul(S,H0)|0;var c0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(c0>>>26)|0,c0&=67108863,U=Math.imul(m,V0),Q=Math.imul(m,U0),Q=Q+Math.imul(r,V0)|0,K=Math.imul(r,U0),U=U+Math.imul(t,X0)|0,Q=Q+Math.imul(t,K0)|0,Q=Q+Math.imul(s,X0)|0,K=K+Math.imul(s,K0)|0,U=U+Math.imul(l,I0)|0,Q=Q+Math.imul(l,O0)|0,Q=Q+Math.imul(n,I0)|0,K=K+Math.imul(n,O0)|0,U=U+Math.imul(h,J0)|0,Q=Q+Math.imul(h,F0)|0,Q=Q+Math.imul(d,J0)|0,K=K+Math.imul(d,F0)|0,U=U+Math.imul(B,A0)|0,Q=Q+Math.imul(B,H0)|0,Q=Q+Math.imul(c,A0)|0,K=K+Math.imul(c,H0)|0,U=U+Math.imul(A,W0)|0,Q=Q+Math.imul(A,E0)|0,Q=Q+Math.imul(S,W0)|0,K=K+Math.imul(S,E0)|0;var h0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(h0>>>26)|0,h0&=67108863,U=Math.imul(i,V0),Q=Math.imul(i,U0),Q=Q+Math.imul(e,V0)|0,K=Math.imul(e,U0),U=U+Math.imul(m,X0)|0,Q=Q+Math.imul(m,K0)|0,Q=Q+Math.imul(r,X0)|0,K=K+Math.imul(r,K0)|0,U=U+Math.imul(t,I0)|0,Q=Q+Math.imul(t,O0)|0,Q=Q+Math.imul(s,I0)|0,K=K+Math.imul(s,O0)|0,U=U+Math.imul(l,J0)|0,Q=Q+Math.imul(l,F0)|0,Q=Q+Math.imul(n,J0)|0,K=K+Math.imul(n,F0)|0,U=U+Math.imul(h,A0)|0,Q=Q+Math.imul(h,H0)|0,Q=Q+Math.imul(d,A0)|0,K=K+Math.imul(d,H0)|0,U=U+Math.imul(B,W0)|0,Q=Q+Math.imul(B,E0)|0,Q=Q+Math.imul(c,W0)|0,K=K+Math.imul(c,E0)|0,U=U+Math.imul(A,T0)|0,Q=Q+Math.imul(A,D0)|0,Q=Q+Math.imul(S,T0)|0,K=K+Math.imul(S,D0)|0;var d0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(d0>>>26)|0,d0&=67108863,U=Math.imul(o,V0),Q=Math.imul(o,U0),Q=Q+Math.imul(a,V0)|0,K=Math.imul(a,U0),U=U+Math.imul(i,X0)|0,Q=Q+Math.imul(i,K0)|0,Q=Q+Math.imul(e,X0)|0,K=K+Math.imul(e,K0)|0,U=U+Math.imul(m,I0)|0,Q=Q+Math.imul(m,O0)|0,Q=Q+Math.imul(r,I0)|0,K=K+Math.imul(r,O0)|0,U=U+Math.imul(t,J0)|0,Q=Q+Math.imul(t,F0)|0,Q=Q+Math.imul(s,J0)|0,K=K+Math.imul(s,F0)|0,U=U+Math.imul(l,A0)|0,Q=Q+Math.imul(l,H0)|0,Q=Q+Math.imul(n,A0)|0,K=K+Math.imul(n,H0)|0,U=U+Math.imul(h,W0)|0,Q=Q+Math.imul(h,E0)|0,Q=Q+Math.imul(d,W0)|0,K=K+Math.imul(d,E0)|0,U=U+Math.imul(B,T0)|0,Q=Q+Math.imul(B,D0)|0,Q=Q+Math.imul(c,T0)|0,K=K+Math.imul(c,D0)|0,U=U+Math.imul(A,C0)|0,Q=Q+Math.imul(A,L0)|0,Q=Q+Math.imul(S,C0)|0,K=K+Math.imul(S,L0)|0;var b0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(b0>>>26)|0,b0&=67108863,U=Math.imul($0,V0),Q=Math.imul($0,U0),Q=Q+Math.imul(Q0,V0)|0,K=Math.imul(Q0,U0),U=U+Math.imul(o,X0)|0,Q=Q+Math.imul(o,K0)|0,Q=Q+Math.imul(a,X0)|0,K=K+Math.imul(a,K0)|0,U=U+Math.imul(i,I0)|0,Q=Q+Math.imul(i,O0)|0,Q=Q+Math.imul(e,I0)|0,K=K+Math.imul(e,O0)|0,U=U+Math.imul(m,J0)|0,Q=Q+Math.imul(m,F0)|0,Q=Q+Math.imul(r,J0)|0,K=K+Math.imul(r,F0)|0,U=U+Math.imul(t,A0)|0,Q=Q+Math.imul(t,H0)|0,Q=Q+Math.imul(s,A0)|0,K=K+Math.imul(s,H0)|0,U=U+Math.imul(l,W0)|0,Q=Q+Math.imul(l,E0)|0,Q=Q+Math.imul(n,W0)|0,K=K+Math.imul(n,E0)|0,U=U+Math.imul(h,T0)|0,Q=Q+Math.imul(h,D0)|0,Q=Q+Math.imul(d,T0)|0,K=K+Math.imul(d,D0)|0,U=U+Math.imul(B,C0)|0,Q=Q+Math.imul(B,L0)|0,Q=Q+Math.imul(c,C0)|0,K=K+Math.imul(c,L0)|0,U=U+Math.imul(A,R0)|0,Q=Q+Math.imul(A,P0)|0,Q=Q+Math.imul(S,R0)|0,K=K+Math.imul(S,P0)|0;var l0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(l0>>>26)|0,l0&=67108863,U=Math.imul(Z0,V0),Q=Math.imul(Z0,U0),Q=Q+Math.imul(G0,V0)|0,K=Math.imul(G0,U0),U=U+Math.imul($0,X0)|0,Q=Q+Math.imul($0,K0)|0,Q=Q+Math.imul(Q0,X0)|0,K=K+Math.imul(Q0,K0)|0,U=U+Math.imul(o,I0)|0,Q=Q+Math.imul(o,O0)|0,Q=Q+Math.imul(a,I0)|0,K=K+Math.imul(a,O0)|0,U=U+Math.imul(i,J0)|0,Q=Q+Math.imul(i,F0)|0,Q=Q+Math.imul(e,J0)|0,K=K+Math.imul(e,F0)|0,U=U+Math.imul(m,A0)|0,Q=Q+Math.imul(m,H0)|0,Q=Q+Math.imul(r,A0)|0,K=K+Math.imul(r,H0)|0,U=U+Math.imul(t,W0)|0,Q=Q+Math.imul(t,E0)|0,Q=Q+Math.imul(s,W0)|0,K=K+Math.imul(s,E0)|0,U=U+Math.imul(l,T0)|0,Q=Q+Math.imul(l,D0)|0,Q=Q+Math.imul(n,T0)|0,K=K+Math.imul(n,D0)|0,U=U+Math.imul(h,C0)|0,Q=Q+Math.imul(h,L0)|0,Q=Q+Math.imul(d,C0)|0,K=K+Math.imul(d,L0)|0,U=U+Math.imul(B,R0)|0,Q=Q+Math.imul(B,P0)|0,Q=Q+Math.imul(c,R0)|0,K=K+Math.imul(c,P0)|0,U=U+Math.imul(A,z0)|0,Q=Q+Math.imul(A,M0)|0,Q=Q+Math.imul(S,z0)|0,K=K+Math.imul(S,M0)|0;var o0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(o0>>>26)|0,o0&=67108863,U=Math.imul(Z0,X0),Q=Math.imul(Z0,K0),Q=Q+Math.imul(G0,X0)|0,K=Math.imul(G0,K0),U=U+Math.imul($0,I0)|0,Q=Q+Math.imul($0,O0)|0,Q=Q+Math.imul(Q0,I0)|0,K=K+Math.imul(Q0,O0)|0,U=U+Math.imul(o,J0)|0,Q=Q+Math.imul(o,F0)|0,Q=Q+Math.imul(a,J0)|0,K=K+Math.imul(a,F0)|0,U=U+Math.imul(i,A0)|0,Q=Q+Math.imul(i,H0)|0,Q=Q+Math.imul(e,A0)|0,K=K+Math.imul(e,H0)|0,U=U+Math.imul(m,W0)|0,Q=Q+Math.imul(m,E0)|0,Q=Q+Math.imul(r,W0)|0,K=K+Math.imul(r,E0)|0,U=U+Math.imul(t,T0)|0,Q=Q+Math.imul(t,D0)|0,Q=Q+Math.imul(s,T0)|0,K=K+Math.imul(s,D0)|0,U=U+Math.imul(l,C0)|0,Q=Q+Math.imul(l,L0)|0,Q=Q+Math.imul(n,C0)|0,K=K+Math.imul(n,L0)|0,U=U+Math.imul(h,R0)|0,Q=Q+Math.imul(h,P0)|0,Q=Q+Math.imul(d,R0)|0,K=K+Math.imul(d,P0)|0,U=U+Math.imul(B,z0)|0,Q=Q+Math.imul(B,M0)|0,Q=Q+Math.imul(c,z0)|0,K=K+Math.imul(c,M0)|0;var u0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(u0>>>26)|0,u0&=67108863,U=Math.imul(Z0,I0),Q=Math.imul(Z0,O0),Q=Q+Math.imul(G0,I0)|0,K=Math.imul(G0,O0),U=U+Math.imul($0,J0)|0,Q=Q+Math.imul($0,F0)|0,Q=Q+Math.imul(Q0,J0)|0,K=K+Math.imul(Q0,F0)|0,U=U+Math.imul(o,A0)|0,Q=Q+Math.imul(o,H0)|0,Q=Q+Math.imul(a,A0)|0,K=K+Math.imul(a,H0)|0,U=U+Math.imul(i,W0)|0,Q=Q+Math.imul(i,E0)|0,Q=Q+Math.imul(e,W0)|0,K=K+Math.imul(e,E0)|0,U=U+Math.imul(m,T0)|0,Q=Q+Math.imul(m,D0)|0,Q=Q+Math.imul(r,T0)|0,K=K+Math.imul(r,D0)|0,U=U+Math.imul(t,C0)|0,Q=Q+Math.imul(t,L0)|0,Q=Q+Math.imul(s,C0)|0,K=K+Math.imul(s,L0)|0,U=U+Math.imul(l,R0)|0,Q=Q+Math.imul(l,P0)|0,Q=Q+Math.imul(n,R0)|0,K=K+Math.imul(n,P0)|0,U=U+Math.imul(h,z0)|0,Q=Q+Math.imul(h,M0)|0,Q=Q+Math.imul(d,z0)|0,K=K+Math.imul(d,M0)|0;var n0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(n0>>>26)|0,n0&=67108863,U=Math.imul(Z0,J0),Q=Math.imul(Z0,F0),Q=Q+Math.imul(G0,J0)|0,K=Math.imul(G0,F0),U=U+Math.imul($0,A0)|0,Q=Q+Math.imul($0,H0)|0,Q=Q+Math.imul(Q0,A0)|0,K=K+Math.imul(Q0,H0)|0,U=U+Math.imul(o,W0)|0,Q=Q+Math.imul(o,E0)|0,Q=Q+Math.imul(a,W0)|0,K=K+Math.imul(a,E0)|0,U=U+Math.imul(i,T0)|0,Q=Q+Math.imul(i,D0)|0,Q=Q+Math.imul(e,T0)|0,K=K+Math.imul(e,D0)|0,U=U+Math.imul(m,C0)|0,Q=Q+Math.imul(m,L0)|0,Q=Q+Math.imul(r,C0)|0,K=K+Math.imul(r,L0)|0,U=U+Math.imul(t,R0)|0,Q=Q+Math.imul(t,P0)|0,Q=Q+Math.imul(s,R0)|0,K=K+Math.imul(s,P0)|0,U=U+Math.imul(l,z0)|0,Q=Q+Math.imul(l,M0)|0,Q=Q+Math.imul(n,z0)|0,K=K+Math.imul(n,M0)|0;var s0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(s0>>>26)|0,s0&=67108863,U=Math.imul(Z0,A0),Q=Math.imul(Z0,H0),Q=Q+Math.imul(G0,A0)|0,K=Math.imul(G0,H0),U=U+Math.imul($0,W0)|0,Q=Q+Math.imul($0,E0)|0,Q=Q+Math.imul(Q0,W0)|0,K=K+Math.imul(Q0,E0)|0,U=U+Math.imul(o,T0)|0,Q=Q+Math.imul(o,D0)|0,Q=Q+Math.imul(a,T0)|0,K=K+Math.imul(a,D0)|0,U=U+Math.imul(i,C0)|0,Q=Q+Math.imul(i,L0)|0,Q=Q+Math.imul(e,C0)|0,K=K+Math.imul(e,L0)|0,U=U+Math.imul(m,R0)|0,Q=Q+Math.imul(m,P0)|0,Q=Q+Math.imul(r,R0)|0,K=K+Math.imul(r,P0)|0,U=U+Math.imul(t,z0)|0,Q=Q+Math.imul(t,M0)|0,Q=Q+Math.imul(s,z0)|0,K=K+Math.imul(s,M0)|0;var t0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(t0>>>26)|0,t0&=67108863,U=Math.imul(Z0,W0),Q=Math.imul(Z0,E0),Q=Q+Math.imul(G0,W0)|0,K=Math.imul(G0,E0),U=U+Math.imul($0,T0)|0,Q=Q+Math.imul($0,D0)|0,Q=Q+Math.imul(Q0,T0)|0,K=K+Math.imul(Q0,D0)|0,U=U+Math.imul(o,C0)|0,Q=Q+Math.imul(o,L0)|0,Q=Q+Math.imul(a,C0)|0,K=K+Math.imul(a,L0)|0,U=U+Math.imul(i,R0)|0,Q=Q+Math.imul(i,P0)|0,Q=Q+Math.imul(e,R0)|0,K=K+Math.imul(e,P0)|0,U=U+Math.imul(m,z0)|0,Q=Q+Math.imul(m,M0)|0,Q=Q+Math.imul(r,z0)|0,K=K+Math.imul(r,M0)|0;var m0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(m0>>>26)|0,m0&=67108863,U=Math.imul(Z0,T0),Q=Math.imul(Z0,D0),Q=Q+Math.imul(G0,T0)|0,K=Math.imul(G0,D0),U=U+Math.imul($0,C0)|0,Q=Q+Math.imul($0,L0)|0,Q=Q+Math.imul(Q0,C0)|0,K=K+Math.imul(Q0,L0)|0,U=U+Math.imul(o,R0)|0,Q=Q+Math.imul(o,P0)|0,Q=Q+Math.imul(a,R0)|0,K=K+Math.imul(a,P0)|0,U=U+Math.imul(i,z0)|0,Q=Q+Math.imul(i,M0)|0,Q=Q+Math.imul(e,z0)|0,K=K+Math.imul(e,M0)|0;var a0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(a0>>>26)|0,a0&=67108863,U=Math.imul(Z0,C0),Q=Math.imul(Z0,L0),Q=Q+Math.imul(G0,C0)|0,K=Math.imul(G0,L0),U=U+Math.imul($0,R0)|0,Q=Q+Math.imul($0,P0)|0,Q=Q+Math.imul(Q0,R0)|0,K=K+Math.imul(Q0,P0)|0,U=U+Math.imul(o,z0)|0,Q=Q+Math.imul(o,M0)|0,Q=Q+Math.imul(a,z0)|0,K=K+Math.imul(a,M0)|0;var e0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(e0>>>26)|0,e0&=67108863,U=Math.imul(Z0,R0),Q=Math.imul(Z0,P0),Q=Q+Math.imul(G0,R0)|0,K=Math.imul(G0,P0),U=U+Math.imul($0,z0)|0,Q=Q+Math.imul($0,M0)|0,Q=Q+Math.imul(Q0,z0)|0,K=K+Math.imul(Q0,M0)|0;var r0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(r0>>>26)|0,r0&=67108863,U=Math.imul(Z0,z0),Q=Math.imul(Z0,M0),Q=Q+Math.imul(G0,z0)|0,K=Math.imul(G0,M0);var i0=(O+U|0)+((Q&8191)<<13)|0;return O=(K+(Q>>>13)|0)+(i0>>>26)|0,i0&=67108863,I[0]=Q$,I[1]=j0,I[2]=k0,I[3]=f0,I[4]=c0,I[5]=h0,I[6]=d0,I[7]=b0,I[8]=l0,I[9]=o0,I[10]=u0,I[11]=n0,I[12]=s0,I[13]=t0,I[14]=m0,I[15]=a0,I[16]=e0,I[17]=r0,I[18]=i0,O!==0&&(I[19]=O,G.length++),G};Math.imul||(M=L);function v($,Y,G){G.negative=Y.negative^$.negative,G.length=$.length+Y.length;for(var Z=0,V=0,I=0;I>>26)|0,V+=O>>>26,O&=67108863}G.words[I]=U,Z=O,O=V}return Z!==0?G.words[I]=Z:G.length--,G.strip()}function q($,Y,G){var Z=new g;return Z.mulp($,Y,G)}X.prototype.mulTo=function($,Y){var G,Z=this.length+$.length;return this.length===10&&$.length===10?G=M(this,$,Y):Z<63?G=L(this,$,Y):Z<1024?G=v(this,$,Y):G=q(this,$,Y),G};function g($,Y){this.x=$,this.y=Y}g.prototype.makeRBT=function($){for(var Y=new Array($),G=X.prototype._countBits($)-1,Z=0;Z<$;Z++)Y[Z]=this.revBin(Z,G,$);return Y},g.prototype.revBin=function($,Y,G){if($===0||$===G-1)return $;for(var Z=0,V=0;V>=1;return Z},g.prototype.permute=function($,Y,G,Z,V,I){for(var O=0;O>>1)V++;return 1<>>13,G[2*I+1]=V&8191,V=V>>>13;for(I=2*Y;I>=26,Y+=Z/67108864|0,Y+=V>>>26,this.words[G]=V&67108863}return Y!==0&&(this.words[G]=Y,this.length++),this},X.prototype.muln=function($){return this.clone().imuln($)},X.prototype.sqr=function(){return this.mul(this)},X.prototype.isqr=function(){return this.imul(this.clone())},X.prototype.pow=function($){var Y=E($);if(Y.length===0)return new X(1);for(var G=this,Z=0;Z=0);var Y=$%26,G=($-Y)/26,Z=67108863>>>26-Y<<26-Y,V;if(Y!==0){var I=0;for(V=0;V>>26-Y}I&&(this.words[V]=I,this.length++)}if(G!==0){for(V=this.length-1;V>=0;V--)this.words[V+G]=this.words[V];for(V=0;V=0);var Z;Y?Z=(Y-Y%26)/26:Z=0;var V=$%26,I=Math.min(($-V)/26,this.length),O=67108863^67108863>>>V<I)for(this.length-=I,Q=0;Q=0&&(K!==0||Q>=Z);Q--){var R=this.words[Q]|0;this.words[Q]=K<<26-V|R>>>V,K=R&O}return U&&K!==0&&(U.words[U.length++]=K),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},X.prototype.ishrn=function($,Y,G){return F(this.negative===0),this.iushrn($,Y,G)},X.prototype.shln=function($){return this.clone().ishln($)},X.prototype.ushln=function($){return this.clone().iushln($)},X.prototype.shrn=function($){return this.clone().ishrn($)},X.prototype.ushrn=function($){return this.clone().iushrn($)},X.prototype.testn=function($){F(typeof $=="number"&&$>=0);var Y=$%26,G=($-Y)/26,Z=1<=0);var Y=$%26,G=($-Y)/26;if(F(this.negative===0,"imaskn works only with positive numbers"),this.length<=G)return this;if(Y!==0&&G++,this.length=Math.min(G,this.length),Y!==0){var Z=67108863^67108863>>>Y<=67108864;Y++)this.words[Y]-=67108864,Y===this.length-1?this.words[Y+1]=1:this.words[Y+1]++;return this.length=Math.max(this.length,Y+1),this},X.prototype.isubn=function($){if(F(typeof $=="number"),F($<67108864),$<0)return this.iaddn(-$);if(this.negative!==0)return this.negative=0,this.iaddn($),this.negative=1,this;if(this.words[0]-=$,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var Y=0;Y>26)-(U/67108864|0),this.words[V+G]=I&67108863}for(;V>26,this.words[V+G]=I&67108863;if(O===0)return this.strip();for(F(O===-1),O=0,V=0;V>26,this.words[V]=I&67108863;return this.negative=1,this.strip()},X.prototype._wordDiv=function($,Y){var G=this.length-$.length,Z=this.clone(),V=$,I=V.words[V.length-1]|0,O=this._countBits(I);G=26-O,G!==0&&(V=V.ushln(G),Z.iushln(G),I=V.words[V.length-1]|0);var U=Z.length-V.length,Q;if(Y!=="mod"){Q=new X(null),Q.length=U+1,Q.words=new Array(Q.length);for(var K=0;K=0;A--){var S=(Z.words[V.length+A]|0)*67108864+(Z.words[V.length+A-1]|0);for(S=Math.min(S/I|0,67108863),Z._ishlnsubmul(V,S,A);Z.negative!==0;)S--,Z.negative=0,Z._ishlnsubmul(V,1,A),Z.isZero()||(Z.negative^=1);Q&&(Q.words[A]=S)}return Q&&Q.strip(),Z.strip(),Y!=="div"&&G!==0&&Z.iushrn(G),{div:Q||null,mod:Z}},X.prototype.divmod=function($,Y,G){if(F(!$.isZero()),this.isZero())return{div:new X(0),mod:new X(0)};var Z,V,I;return this.negative!==0&&$.negative===0?(I=this.neg().divmod($,Y),Y!=="mod"&&(Z=I.div.neg()),Y!=="div"&&(V=I.mod.neg(),G&&V.negative!==0&&V.iadd($)),{div:Z,mod:V}):this.negative===0&&$.negative!==0?(I=this.divmod($.neg(),Y),Y!=="mod"&&(Z=I.div.neg()),{div:Z,mod:I.mod}):(this.negative&$.negative)!==0?(I=this.neg().divmod($.neg(),Y),Y!=="div"&&(V=I.mod.neg(),G&&V.negative!==0&&V.isub($)),{div:I.div,mod:V}):$.length>this.length||this.cmp($)<0?{div:new X(0),mod:this}:$.length===1?Y==="div"?{div:this.divn($.words[0]),mod:null}:Y==="mod"?{div:null,mod:new X(this.modn($.words[0]))}:{div:this.divn($.words[0]),mod:new X(this.modn($.words[0]))}:this._wordDiv($,Y)},X.prototype.div=function($){return this.divmod($,"div",!1).div},X.prototype.mod=function($){return this.divmod($,"mod",!1).mod},X.prototype.umod=function($){return this.divmod($,"mod",!0).mod},X.prototype.divRound=function($){var Y=this.divmod($);if(Y.mod.isZero())return Y.div;var G=Y.div.negative!==0?Y.mod.isub($):Y.mod,Z=$.ushrn(1),V=$.andln(1),I=G.cmp(Z);return I<0||V===1&&I===0?Y.div:Y.div.negative!==0?Y.div.isubn(1):Y.div.iaddn(1)},X.prototype.modn=function($){F($<=67108863);for(var Y=(1<<26)%$,G=0,Z=this.length-1;Z>=0;Z--)G=(Y*G+(this.words[Z]|0))%$;return G},X.prototype.idivn=function($){F($<=67108863);for(var Y=0,G=this.length-1;G>=0;G--){var Z=(this.words[G]|0)+Y*67108864;this.words[G]=Z/$|0,Y=Z%$}return this.strip()},X.prototype.divn=function($){return this.clone().idivn($)},X.prototype.egcd=function($){F($.negative===0),F(!$.isZero());var Y=this,G=$.clone();Y.negative!==0?Y=Y.umod($):Y=Y.clone();for(var Z=new X(1),V=new X(0),I=new X(0),O=new X(1),U=0;Y.isEven()&&G.isEven();)Y.iushrn(1),G.iushrn(1),++U;for(var Q=G.clone(),K=Y.clone();!Y.isZero();){for(var R=0,A=1;(Y.words[0]&A)===0&&R<26;++R,A<<=1);if(R>0)for(Y.iushrn(R);R-- >0;)(Z.isOdd()||V.isOdd())&&(Z.iadd(Q),V.isub(K)),Z.iushrn(1),V.iushrn(1);for(var S=0,x=1;(G.words[0]&x)===0&&S<26;++S,x<<=1);if(S>0)for(G.iushrn(S);S-- >0;)(I.isOdd()||O.isOdd())&&(I.iadd(Q),O.isub(K)),I.iushrn(1),O.iushrn(1);Y.cmp(G)>=0?(Y.isub(G),Z.isub(I),V.isub(O)):(G.isub(Y),I.isub(Z),O.isub(V))}return{a:I,b:O,gcd:G.iushln(U)}},X.prototype._invmp=function($){F($.negative===0),F(!$.isZero());var Y=this,G=$.clone();Y.negative!==0?Y=Y.umod($):Y=Y.clone();for(var Z=new X(1),V=new X(0),I=G.clone();Y.cmpn(1)>0&&G.cmpn(1)>0;){for(var O=0,U=1;(Y.words[0]&U)===0&&O<26;++O,U<<=1);if(O>0)for(Y.iushrn(O);O-- >0;)Z.isOdd()&&Z.iadd(I),Z.iushrn(1);for(var Q=0,K=1;(G.words[0]&K)===0&&Q<26;++Q,K<<=1);if(Q>0)for(G.iushrn(Q);Q-- >0;)V.isOdd()&&V.iadd(I),V.iushrn(1);Y.cmp(G)>=0?(Y.isub(G),Z.isub(V)):(G.isub(Y),V.isub(Z))}var R;return Y.cmpn(1)===0?R=Z:R=V,R.cmpn(0)<0&&R.iadd($),R},X.prototype.gcd=function($){if(this.isZero())return $.abs();if($.isZero())return this.abs();var Y=this.clone(),G=$.clone();Y.negative=0,G.negative=0;for(var Z=0;Y.isEven()&&G.isEven();Z++)Y.iushrn(1),G.iushrn(1);do{for(;Y.isEven();)Y.iushrn(1);for(;G.isEven();)G.iushrn(1);var V=Y.cmp(G);if(V<0){var I=Y;Y=G,G=I}else if(V===0||G.cmpn(1)===0)break;Y.isub(G)}while(!0);return G.iushln(Z)},X.prototype.invm=function($){return this.egcd($).a.umod($)},X.prototype.isEven=function(){return(this.words[0]&1)===0},X.prototype.isOdd=function(){return(this.words[0]&1)===1},X.prototype.andln=function($){return this.words[0]&$},X.prototype.bincn=function($){F(typeof $=="number");var Y=$%26,G=($-Y)/26,Z=1<>>26,O&=67108863,this.words[I]=O}return V!==0&&(this.words[I]=V,this.length++),this},X.prototype.isZero=function(){return this.length===1&&this.words[0]===0},X.prototype.cmpn=function($){var Y=$<0;if(this.negative!==0&&!Y)return-1;if(this.negative===0&&Y)return 1;this.strip();var G;if(this.length>1)G=1;else{Y&&($=-$),F($<=67108863,"Number is too big");var Z=this.words[0]|0;G=Z===$?0:Z<$?-1:1}return this.negative!==0?-G|0:G},X.prototype.cmp=function($){if(this.negative!==0&&$.negative===0)return-1;if(this.negative===0&&$.negative!==0)return 1;var Y=this.ucmp($);return this.negative!==0?-Y|0:Y},X.prototype.ucmp=function($){if(this.length>$.length)return 1;if(this.length<$.length)return-1;for(var Y=0,G=this.length-1;G>=0;G--){var Z=this.words[G]|0,V=$.words[G]|0;if(Z!==V){ZV&&(Y=1);break}}return Y},X.prototype.gtn=function($){return this.cmpn($)===1},X.prototype.gt=function($){return this.cmp($)===1},X.prototype.gten=function($){return this.cmpn($)>=0},X.prototype.gte=function($){return this.cmp($)>=0},X.prototype.ltn=function($){return this.cmpn($)===-1},X.prototype.lt=function($){return this.cmp($)===-1},X.prototype.lten=function($){return this.cmpn($)<=0},X.prototype.lte=function($){return this.cmp($)<=0},X.prototype.eqn=function($){return this.cmpn($)===0},X.prototype.eq=function($){return this.cmp($)===0},X.red=function($){return new p($)},X.prototype.toRed=function($){return F(!this.red,"Already a number in reduction context"),F(this.negative===0,"red works only with positives"),$.convertTo(this)._forceRed($)},X.prototype.fromRed=function(){return F(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},X.prototype._forceRed=function($){return this.red=$,this},X.prototype.forceRed=function($){return F(!this.red,"Already a number in reduction context"),this._forceRed($)},X.prototype.redAdd=function($){return F(this.red,"redAdd works only with red numbers"),this.red.add(this,$)},X.prototype.redIAdd=function($){return F(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,$)},X.prototype.redSub=function($){return F(this.red,"redSub works only with red numbers"),this.red.sub(this,$)},X.prototype.redISub=function($){return F(this.red,"redISub works only with red numbers"),this.red.isub(this,$)},X.prototype.redShl=function($){return F(this.red,"redShl works only with red numbers"),this.red.shl(this,$)},X.prototype.redMul=function($){return F(this.red,"redMul works only with red numbers"),this.red._verify2(this,$),this.red.mul(this,$)},X.prototype.redIMul=function($){return F(this.red,"redMul works only with red numbers"),this.red._verify2(this,$),this.red.imul(this,$)},X.prototype.redSqr=function(){return F(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},X.prototype.redISqr=function(){return F(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},X.prototype.redSqrt=function(){return F(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},X.prototype.redInvm=function(){return F(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},X.prototype.redNeg=function(){return F(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},X.prototype.redPow=function($){return F(this.red&&!$.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,$)};var y={k256:null,p224:null,p192:null,p25519:null};function w($,Y){this.name=$,this.p=new X(Y,16),this.n=this.p.bitLength(),this.k=new X(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}w.prototype._tmp=function(){var $=new X(null);return $.words=new Array(Math.ceil(this.n/13)),$},w.prototype.ireduce=function($){var Y=$,G;do this.split(Y,this.tmp),Y=this.imulK(Y),Y=Y.iadd(this.tmp),G=Y.bitLength();while(G>this.n);var Z=G0?Y.isub(this.p):Y.strip!==void 0?Y.strip():Y._strip(),Y},w.prototype.split=function($,Y){$.iushrn(this.n,0,Y)},w.prototype.imulK=function($){return $.imul(this.k)};function f(){w.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}z(f,w),f.prototype.split=function($,Y){for(var G=4194303,Z=Math.min($.length,9),V=0;V>>22,I=O}I>>>=22,$.words[V-10]=I,I===0&&$.length>10?$.length-=10:$.length-=9},f.prototype.imulK=function($){$.words[$.length]=0,$.words[$.length+1]=0,$.length+=2;for(var Y=0,G=0;G<$.length;G++){var Z=$.words[G]|0;Y+=Z*977,$.words[G]=Y&67108863,Y=Z*64+(Y/67108864|0)}return $.words[$.length-1]===0&&($.length--,$.words[$.length-1]===0&&$.length--),$};function b(){w.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}z(b,w);function u(){w.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}z(u,w);function Y0(){w.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}z(Y0,w),Y0.prototype.imulK=function($){for(var Y=0,G=0;G<$.length;G++){var Z=($.words[G]|0)*19+Y,V=Z&67108863;Z>>>=26,$.words[G]=V,Y=Z}return Y!==0&&($.words[$.length++]=Y),$},X._prime=function($){if(y[$])return y[$];var Y;if($==="k256")Y=new f;else if($==="p224")Y=new b;else if($==="p192")Y=new u;else if($==="p25519")Y=new Y0;else throw new Error("Unknown prime "+$);return y[$]=Y,Y};function p($){if(typeof $=="string"){var Y=X._prime($);this.m=Y.p,this.prime=Y}else F($.gtn(1),"modulus must be greater than 1"),this.m=$,this.prime=null}p.prototype._verify1=function($){F($.negative===0,"red works only with positives"),F($.red,"red works only with red numbers")},p.prototype._verify2=function($,Y){F(($.negative|Y.negative)===0,"red works only with positives"),F($.red&&$.red===Y.red,"red works only with red numbers")},p.prototype.imod=function($){return this.prime?this.prime.ireduce($)._forceRed(this):$.umod(this.m)._forceRed(this)},p.prototype.neg=function($){return $.isZero()?$.clone():this.m.sub($)._forceRed(this)},p.prototype.add=function($,Y){this._verify2($,Y);var G=$.add(Y);return G.cmp(this.m)>=0&&G.isub(this.m),G._forceRed(this)},p.prototype.iadd=function($,Y){this._verify2($,Y);var G=$.iadd(Y);return G.cmp(this.m)>=0&&G.isub(this.m),G},p.prototype.sub=function($,Y){this._verify2($,Y);var G=$.sub(Y);return G.cmpn(0)<0&&G.iadd(this.m),G._forceRed(this)},p.prototype.isub=function($,Y){this._verify2($,Y);var G=$.isub(Y);return G.cmpn(0)<0&&G.iadd(this.m),G},p.prototype.shl=function($,Y){return this._verify1($),this.imod($.ushln(Y))},p.prototype.imul=function($,Y){return this._verify2($,Y),this.imod($.imul(Y))},p.prototype.mul=function($,Y){return this._verify2($,Y),this.imod($.mul(Y))},p.prototype.isqr=function($){return this.imul($,$.clone())},p.prototype.sqr=function($){return this.mul($,$)},p.prototype.sqrt=function($){if($.isZero())return $.clone();var Y=this.m.andln(3);if(F(Y%2===1),Y===3){var G=this.m.add(new X(1)).iushrn(2);return this.pow($,G)}for(var Z=this.m.subn(1),V=0;!Z.isZero()&&Z.andln(1)===0;)V++,Z.iushrn(1);F(!Z.isZero());var I=new X(1).toRed(this),O=I.redNeg(),U=this.m.subn(1).iushrn(1),Q=this.m.bitLength();for(Q=new X(2*Q*Q).toRed(this);this.pow(Q,U).cmp(O)!==0;)Q.redIAdd(O);for(var K=this.pow(Q,Z),R=this.pow($,Z.addn(1).iushrn(1)),A=this.pow($,Z),S=V;A.cmp(I)!==0;){for(var x=A,B=0;x.cmp(I)!==0;B++)x=x.redSqr();F(B=0;V--){for(var K=Y.words[V],R=Q-1;R>=0;R--){var A=K>>R&1;if(I!==Z[0]&&(I=this.sqr(I)),A===0&&O===0){U=0;continue}O<<=1,O|=A,U++,!(U!==G&&(V!==0||R!==0))&&(I=this.mul(I,Z[O]),U=0,O=0)}Q=26}return I},p.prototype.convertTo=function($){var Y=$.umod(this.m);return Y===$?Y.clone():Y},p.prototype.convertFrom=function($){var Y=$.clone();return Y.red=null,Y},X.mont=function($){return new v0($)};function v0($){p.call(this,$),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new X(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}z(v0,p),v0.prototype.convertTo=function($){return this.imod($.ushln(this.shift))},v0.prototype.convertFrom=function($){var Y=this.imod($.mul(this.rinv));return Y.red=null,Y},v0.prototype.imul=function($,Y){if($.isZero()||Y.isZero())return $.words[0]=0,$.length=1,$;var G=$.imul(Y),Z=G.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),V=G.isub(Z).iushrn(this.shift),I=V;return V.cmp(this.m)>=0?I=V.isub(this.m):V.cmpn(0)<0&&(I=V.iadd(this.m)),I._forceRed(this)},v0.prototype.mul=function($,Y){if($.isZero()||Y.isZero())return new X(0)._forceRed(this);var G=$.mul(Y),Z=G.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),V=G.isub(Z).iushrn(this.shift),I=V;return V.cmp(this.m)>=0?I=V.isub(this.m):V.cmpn(0)<0&&(I=V.iadd(this.m)),I._forceRed(this)},v0.prototype.invm=function($){var Y=this.imod($._invmp(this.m).mul(this.r2));return Y._forceRed(this)}})(typeof _>"u"||_,N)}}),AY=S0({"node_modules/miller-rabin/node_modules/bn.js/lib/bn.js"(N,_){(function(k,j){function F($,Y){if(!$)throw new Error(Y||"Assertion failed")}function z($,Y){$.super_=Y;var G=function(){};G.prototype=Y.prototype,$.prototype=new G,$.prototype.constructor=$}function X($,Y,G){if(X.isBN($))return $;this.negative=0,this.words=null,this.length=0,this.red=null,$!==null&&((Y==="le"||Y==="be")&&(G=Y,Y=10),this._init($||0,Y||10,G||"be"))}typeof k=="object"?k.exports=X:j.BN=X,X.BN=X,X.wordSize=26;var C=g0;X.isBN=function($){return $ instanceof X?!0:$!==null&&typeof $=="object"&&$.constructor.wordSize===X.wordSize&&Array.isArray($.words)},X.max=function($,Y){return $.cmp(Y)>0?$:Y},X.min=function($,Y){return $.cmp(Y)<0?$:Y},X.prototype._init=function($,Y,G){if(typeof $=="number")return this._initNumber($,Y,G);if(typeof $=="object")return this._initArray($,Y,G);Y==="hex"&&(Y=16),F(Y===(Y|0)&&Y>=2&&Y<=36),$=$.toString().replace(/\s+/g,"");var Z=0;$[0]==="-"&&(Z++,this.negative=1),Z<$.length&&(Y===16?this._parseHex($,Z,G):(this._parseBase($,Y,Z),G==="le"&&this._initArray(this.toArray(),Y,G)))},X.prototype._initNumber=function($,Y,G){$<0&&(this.negative=1,$=-$),$<67108864?(this.words=[$&67108863],this.length=1):$<4503599627370496?(this.words=[$&67108863,$/67108864&67108863],this.length=2):(F($<9007199254740992),this.words=[$&67108863,$/67108864&67108863,1],this.length=3),G==="le"&&this._initArray(this.toArray(),Y,G)},X.prototype._initArray=function($,Y,G){if(F(typeof $.length=="number"),$.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil($.length/3),this.words=new Array(this.length);for(var Z=0;Z=0;Z-=3)I=$[Z]|$[Z-1]<<8|$[Z-2]<<16,this.words[V]|=I<>>26-O&67108863,O+=24,O>=26&&(O-=26,V++);else if(G==="le")for(Z=0,V=0;Z<$.length;Z+=3)I=$[Z]|$[Z+1]<<8|$[Z+2]<<16,this.words[V]|=I<>>26-O&67108863,O+=24,O>=26&&(O-=26,V++);return this.strip()};function P($,Y){var G=$.charCodeAt(Y);return G>=65&&G<=70?G-55:G>=97&&G<=102?G-87:G-48&15}function T($,Y,G){var Z=P($,G);return G-1>=Y&&(Z|=P($,G-1)<<4),Z}X.prototype._parseHex=function($,Y,G){this.length=Math.ceil(($.length-Y)/6),this.words=new Array(this.length);for(var Z=0;Z=Y;Z-=2)O=T($,Y,Z)<=18?(V-=18,I+=1,this.words[I]|=O>>>26):V+=8;else{var U=$.length-Y;for(Z=U%2===0?Y+1:Y;Z<$.length;Z+=2)O=T($,Y,Z)<=18?(V-=18,I+=1,this.words[I]|=O>>>26):V+=8}this.strip()};function W($,Y,G,Z){for(var V=0,I=Math.min($.length,G),O=Y;O=49?V+=U-49+10:U>=17?V+=U-17+10:V+=U}return V}X.prototype._parseBase=function($,Y,G){this.words=[0],this.length=1;for(var Z=0,V=1;V<=67108863;V*=Y)Z++;Z--,V=V/Y|0;for(var I=$.length-G,O=I%Z,U=Math.min(I,I-O)+G,Q=0,K=G;K1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},X.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},X.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],H=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],D=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];X.prototype.toString=function($,Y){$=$||10,Y=Y|0||1;var G;if($===16||$==="hex"){G="";for(var Z=0,V=0,I=0;I>>24-Z&16777215,V!==0||I!==this.length-1?G=J[6-U.length]+U+G:G=U+G,Z+=2,Z>=26&&(Z-=26,I--)}for(V!==0&&(G=V.toString(16)+G);G.length%Y!==0;)G="0"+G;return this.negative!==0&&(G="-"+G),G}if($===($|0)&&$>=2&&$<=36){var Q=H[$],K=D[$];G="";var R=this.clone();for(R.negative=0;!R.isZero();){var A=R.modn(K).toString($);R=R.idivn(K),R.isZero()?G=A+G:G=J[Q-A.length]+A+G}for(this.isZero()&&(G="0"+G);G.length%Y!==0;)G="0"+G;return this.negative!==0&&(G="-"+G),G}F(!1,"Base should be between 2 and 36")},X.prototype.toNumber=function(){var $=this.words[0];return this.length===2?$+=this.words[1]*67108864:this.length===3&&this.words[2]===1?$+=4503599627370496+this.words[1]*67108864:this.length>2&&F(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-$:$},X.prototype.toJSON=function(){return this.toString(16)},X.prototype.toBuffer=function($,Y){return F(typeof C<"u"),this.toArrayLike(C,$,Y)},X.prototype.toArray=function($,Y){return this.toArrayLike(Array,$,Y)},X.prototype.toArrayLike=function($,Y,G){var Z=this.byteLength(),V=G||Math.max(1,Z);F(Z<=V,"byte array longer than desired length"),F(V>0,"Requested array length <= 0"),this.strip();var I=Y==="le",O=new $(V),U,Q,K=this.clone();if(I){for(Q=0;!K.isZero();Q++)U=K.andln(255),K.iushrn(8),O[Q]=U;for(;Q=4096&&(G+=13,Y>>>=13),Y>=64&&(G+=7,Y>>>=7),Y>=8&&(G+=4,Y>>>=4),Y>=2&&(G+=2,Y>>>=2),G+Y},X.prototype._zeroBits=function($){if($===0)return 26;var Y=$,G=0;return(Y&8191)===0&&(G+=13,Y>>>=13),(Y&127)===0&&(G+=7,Y>>>=7),(Y&15)===0&&(G+=4,Y>>>=4),(Y&3)===0&&(G+=2,Y>>>=2),(Y&1)===0&&G++,G},X.prototype.bitLength=function(){var $=this.words[this.length-1],Y=this._countBits($);return(this.length-1)*26+Y};function E($){for(var Y=new Array($.bitLength()),G=0;G>>V}return Y}X.prototype.zeroBits=function(){if(this.isZero())return 0;for(var $=0,Y=0;Y$.length?this.clone().ior($):$.clone().ior(this)},X.prototype.uor=function($){return this.length>$.length?this.clone().iuor($):$.clone().iuor(this)},X.prototype.iuand=function($){var Y;this.length>$.length?Y=$:Y=this;for(var G=0;G$.length?this.clone().iand($):$.clone().iand(this)},X.prototype.uand=function($){return this.length>$.length?this.clone().iuand($):$.clone().iuand(this)},X.prototype.iuxor=function($){var Y,G;this.length>$.length?(Y=this,G=$):(Y=$,G=this);for(var Z=0;Z$.length?this.clone().ixor($):$.clone().ixor(this)},X.prototype.uxor=function($){return this.length>$.length?this.clone().iuxor($):$.clone().iuxor(this)},X.prototype.inotn=function($){F(typeof $=="number"&&$>=0);var Y=Math.ceil($/26)|0,G=$%26;this._expand(Y),G>0&&Y--;for(var Z=0;Z0&&(this.words[Z]=~this.words[Z]&67108863>>26-G),this.strip()},X.prototype.notn=function($){return this.clone().inotn($)},X.prototype.setn=function($,Y){F(typeof $=="number"&&$>=0);var G=$/26|0,Z=$%26;return this._expand(G+1),Y?this.words[G]=this.words[G]|1<$.length?(G=this,Z=$):(G=$,Z=this);for(var V=0,I=0;I>>26;for(;V!==0&&I>>26;if(this.length=G.length,V!==0)this.words[this.length]=V,this.length++;else if(G!==this)for(;I$.length?this.clone().iadd($):$.clone().iadd(this)},X.prototype.isub=function($){if($.negative!==0){$.negative=0;var Y=this.iadd($);return $.negative=1,Y._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd($),this.negative=1,this._normSign();var G=this.cmp($);if(G===0)return this.negative=0,this.length=1,this.words[0]=0,this;var Z,V;G>0?(Z=this,V=$):(Z=$,V=this);for(var I=0,O=0;O>26,this.words[O]=Y&67108863;for(;I!==0&&O>26,this.words[O]=Y&67108863;if(I===0&&O>>26,A=Q&67108863,S=Math.min(K,Y.length-1),x=Math.max(0,K-$.length+1);x<=S;x++){var B=K-x|0;V=$.words[B]|0,I=Y.words[x]|0,O=V*I+A,R+=O/67108864|0,A=O&67108863}G.words[K]=A|0,Q=R|0}return Q!==0?G.words[K]=Q|0:G.length--,G.strip()}var M=function($,Y,G){var Z=$.words,V=Y.words,I=G.words,O=0,U,Q,K,R=Z[0]|0,A=R&8191,S=R>>>13,x=Z[1]|0,B=x&8191,c=x>>>13,q0=Z[2]|0,h=q0&8191,d=q0>>>13,_0=Z[3]|0,l=_0&8191,n=_0>>>13,y0=Z[4]|0,t=y0&8191,s=y0>>>13,w0=Z[5]|0,m=w0&8191,r=w0>>>13,$$=Z[6]|0,i=$$&8191,e=$$>>>13,x0=Z[7]|0,o=x0&8191,a=x0>>>13,p0=Z[8]|0,$0=p0&8191,Q0=p0>>>13,Y$=Z[9]|0,Z0=Y$&8191,G0=Y$>>>13,Z$=V[0]|0,V0=Z$&8191,U0=Z$>>>13,G$=V[1]|0,X0=G$&8191,K0=G$>>>13,V$=V[2]|0,I0=V$&8191,O0=V$>>>13,U$=V[3]|0,J0=U$&8191,F0=U$>>>13,X$=V[4]|0,A0=X$&8191,H0=X$>>>13,K$=V[5]|0,W0=K$&8191,E0=K$>>>13,I$=V[6]|0,T0=I$&8191,D0=I$>>>13,O$=V[7]|0,C0=O$&8191,L0=O$>>>13,J$=V[8]|0,R0=J$&8191,P0=J$>>>13,F$=V[9]|0,z0=F$&8191,M0=F$>>>13;G.negative=$.negative^Y.negative,G.length=19,U=Math.imul(A,V0),Q=Math.imul(A,U0),Q=Q+Math.imul(S,V0)|0,K=Math.imul(S,U0);var Q$=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,U=Math.imul(B,V0),Q=Math.imul(B,U0),Q=Q+Math.imul(c,V0)|0,K=Math.imul(c,U0),U=U+Math.imul(A,X0)|0,Q=Q+Math.imul(A,K0)|0,Q=Q+Math.imul(S,X0)|0,K=K+Math.imul(S,K0)|0;var j0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(j0>>>26)|0,j0&=67108863,U=Math.imul(h,V0),Q=Math.imul(h,U0),Q=Q+Math.imul(d,V0)|0,K=Math.imul(d,U0),U=U+Math.imul(B,X0)|0,Q=Q+Math.imul(B,K0)|0,Q=Q+Math.imul(c,X0)|0,K=K+Math.imul(c,K0)|0,U=U+Math.imul(A,I0)|0,Q=Q+Math.imul(A,O0)|0,Q=Q+Math.imul(S,I0)|0,K=K+Math.imul(S,O0)|0;var k0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(k0>>>26)|0,k0&=67108863,U=Math.imul(l,V0),Q=Math.imul(l,U0),Q=Q+Math.imul(n,V0)|0,K=Math.imul(n,U0),U=U+Math.imul(h,X0)|0,Q=Q+Math.imul(h,K0)|0,Q=Q+Math.imul(d,X0)|0,K=K+Math.imul(d,K0)|0,U=U+Math.imul(B,I0)|0,Q=Q+Math.imul(B,O0)|0,Q=Q+Math.imul(c,I0)|0,K=K+Math.imul(c,O0)|0,U=U+Math.imul(A,J0)|0,Q=Q+Math.imul(A,F0)|0,Q=Q+Math.imul(S,J0)|0,K=K+Math.imul(S,F0)|0;var f0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(f0>>>26)|0,f0&=67108863,U=Math.imul(t,V0),Q=Math.imul(t,U0),Q=Q+Math.imul(s,V0)|0,K=Math.imul(s,U0),U=U+Math.imul(l,X0)|0,Q=Q+Math.imul(l,K0)|0,Q=Q+Math.imul(n,X0)|0,K=K+Math.imul(n,K0)|0,U=U+Math.imul(h,I0)|0,Q=Q+Math.imul(h,O0)|0,Q=Q+Math.imul(d,I0)|0,K=K+Math.imul(d,O0)|0,U=U+Math.imul(B,J0)|0,Q=Q+Math.imul(B,F0)|0,Q=Q+Math.imul(c,J0)|0,K=K+Math.imul(c,F0)|0,U=U+Math.imul(A,A0)|0,Q=Q+Math.imul(A,H0)|0,Q=Q+Math.imul(S,A0)|0,K=K+Math.imul(S,H0)|0;var c0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(c0>>>26)|0,c0&=67108863,U=Math.imul(m,V0),Q=Math.imul(m,U0),Q=Q+Math.imul(r,V0)|0,K=Math.imul(r,U0),U=U+Math.imul(t,X0)|0,Q=Q+Math.imul(t,K0)|0,Q=Q+Math.imul(s,X0)|0,K=K+Math.imul(s,K0)|0,U=U+Math.imul(l,I0)|0,Q=Q+Math.imul(l,O0)|0,Q=Q+Math.imul(n,I0)|0,K=K+Math.imul(n,O0)|0,U=U+Math.imul(h,J0)|0,Q=Q+Math.imul(h,F0)|0,Q=Q+Math.imul(d,J0)|0,K=K+Math.imul(d,F0)|0,U=U+Math.imul(B,A0)|0,Q=Q+Math.imul(B,H0)|0,Q=Q+Math.imul(c,A0)|0,K=K+Math.imul(c,H0)|0,U=U+Math.imul(A,W0)|0,Q=Q+Math.imul(A,E0)|0,Q=Q+Math.imul(S,W0)|0,K=K+Math.imul(S,E0)|0;var h0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(h0>>>26)|0,h0&=67108863,U=Math.imul(i,V0),Q=Math.imul(i,U0),Q=Q+Math.imul(e,V0)|0,K=Math.imul(e,U0),U=U+Math.imul(m,X0)|0,Q=Q+Math.imul(m,K0)|0,Q=Q+Math.imul(r,X0)|0,K=K+Math.imul(r,K0)|0,U=U+Math.imul(t,I0)|0,Q=Q+Math.imul(t,O0)|0,Q=Q+Math.imul(s,I0)|0,K=K+Math.imul(s,O0)|0,U=U+Math.imul(l,J0)|0,Q=Q+Math.imul(l,F0)|0,Q=Q+Math.imul(n,J0)|0,K=K+Math.imul(n,F0)|0,U=U+Math.imul(h,A0)|0,Q=Q+Math.imul(h,H0)|0,Q=Q+Math.imul(d,A0)|0,K=K+Math.imul(d,H0)|0,U=U+Math.imul(B,W0)|0,Q=Q+Math.imul(B,E0)|0,Q=Q+Math.imul(c,W0)|0,K=K+Math.imul(c,E0)|0,U=U+Math.imul(A,T0)|0,Q=Q+Math.imul(A,D0)|0,Q=Q+Math.imul(S,T0)|0,K=K+Math.imul(S,D0)|0;var d0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(d0>>>26)|0,d0&=67108863,U=Math.imul(o,V0),Q=Math.imul(o,U0),Q=Q+Math.imul(a,V0)|0,K=Math.imul(a,U0),U=U+Math.imul(i,X0)|0,Q=Q+Math.imul(i,K0)|0,Q=Q+Math.imul(e,X0)|0,K=K+Math.imul(e,K0)|0,U=U+Math.imul(m,I0)|0,Q=Q+Math.imul(m,O0)|0,Q=Q+Math.imul(r,I0)|0,K=K+Math.imul(r,O0)|0,U=U+Math.imul(t,J0)|0,Q=Q+Math.imul(t,F0)|0,Q=Q+Math.imul(s,J0)|0,K=K+Math.imul(s,F0)|0,U=U+Math.imul(l,A0)|0,Q=Q+Math.imul(l,H0)|0,Q=Q+Math.imul(n,A0)|0,K=K+Math.imul(n,H0)|0,U=U+Math.imul(h,W0)|0,Q=Q+Math.imul(h,E0)|0,Q=Q+Math.imul(d,W0)|0,K=K+Math.imul(d,E0)|0,U=U+Math.imul(B,T0)|0,Q=Q+Math.imul(B,D0)|0,Q=Q+Math.imul(c,T0)|0,K=K+Math.imul(c,D0)|0,U=U+Math.imul(A,C0)|0,Q=Q+Math.imul(A,L0)|0,Q=Q+Math.imul(S,C0)|0,K=K+Math.imul(S,L0)|0;var b0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(b0>>>26)|0,b0&=67108863,U=Math.imul($0,V0),Q=Math.imul($0,U0),Q=Q+Math.imul(Q0,V0)|0,K=Math.imul(Q0,U0),U=U+Math.imul(o,X0)|0,Q=Q+Math.imul(o,K0)|0,Q=Q+Math.imul(a,X0)|0,K=K+Math.imul(a,K0)|0,U=U+Math.imul(i,I0)|0,Q=Q+Math.imul(i,O0)|0,Q=Q+Math.imul(e,I0)|0,K=K+Math.imul(e,O0)|0,U=U+Math.imul(m,J0)|0,Q=Q+Math.imul(m,F0)|0,Q=Q+Math.imul(r,J0)|0,K=K+Math.imul(r,F0)|0,U=U+Math.imul(t,A0)|0,Q=Q+Math.imul(t,H0)|0,Q=Q+Math.imul(s,A0)|0,K=K+Math.imul(s,H0)|0,U=U+Math.imul(l,W0)|0,Q=Q+Math.imul(l,E0)|0,Q=Q+Math.imul(n,W0)|0,K=K+Math.imul(n,E0)|0,U=U+Math.imul(h,T0)|0,Q=Q+Math.imul(h,D0)|0,Q=Q+Math.imul(d,T0)|0,K=K+Math.imul(d,D0)|0,U=U+Math.imul(B,C0)|0,Q=Q+Math.imul(B,L0)|0,Q=Q+Math.imul(c,C0)|0,K=K+Math.imul(c,L0)|0,U=U+Math.imul(A,R0)|0,Q=Q+Math.imul(A,P0)|0,Q=Q+Math.imul(S,R0)|0,K=K+Math.imul(S,P0)|0;var l0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(l0>>>26)|0,l0&=67108863,U=Math.imul(Z0,V0),Q=Math.imul(Z0,U0),Q=Q+Math.imul(G0,V0)|0,K=Math.imul(G0,U0),U=U+Math.imul($0,X0)|0,Q=Q+Math.imul($0,K0)|0,Q=Q+Math.imul(Q0,X0)|0,K=K+Math.imul(Q0,K0)|0,U=U+Math.imul(o,I0)|0,Q=Q+Math.imul(o,O0)|0,Q=Q+Math.imul(a,I0)|0,K=K+Math.imul(a,O0)|0,U=U+Math.imul(i,J0)|0,Q=Q+Math.imul(i,F0)|0,Q=Q+Math.imul(e,J0)|0,K=K+Math.imul(e,F0)|0,U=U+Math.imul(m,A0)|0,Q=Q+Math.imul(m,H0)|0,Q=Q+Math.imul(r,A0)|0,K=K+Math.imul(r,H0)|0,U=U+Math.imul(t,W0)|0,Q=Q+Math.imul(t,E0)|0,Q=Q+Math.imul(s,W0)|0,K=K+Math.imul(s,E0)|0,U=U+Math.imul(l,T0)|0,Q=Q+Math.imul(l,D0)|0,Q=Q+Math.imul(n,T0)|0,K=K+Math.imul(n,D0)|0,U=U+Math.imul(h,C0)|0,Q=Q+Math.imul(h,L0)|0,Q=Q+Math.imul(d,C0)|0,K=K+Math.imul(d,L0)|0,U=U+Math.imul(B,R0)|0,Q=Q+Math.imul(B,P0)|0,Q=Q+Math.imul(c,R0)|0,K=K+Math.imul(c,P0)|0,U=U+Math.imul(A,z0)|0,Q=Q+Math.imul(A,M0)|0,Q=Q+Math.imul(S,z0)|0,K=K+Math.imul(S,M0)|0;var o0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(o0>>>26)|0,o0&=67108863,U=Math.imul(Z0,X0),Q=Math.imul(Z0,K0),Q=Q+Math.imul(G0,X0)|0,K=Math.imul(G0,K0),U=U+Math.imul($0,I0)|0,Q=Q+Math.imul($0,O0)|0,Q=Q+Math.imul(Q0,I0)|0,K=K+Math.imul(Q0,O0)|0,U=U+Math.imul(o,J0)|0,Q=Q+Math.imul(o,F0)|0,Q=Q+Math.imul(a,J0)|0,K=K+Math.imul(a,F0)|0,U=U+Math.imul(i,A0)|0,Q=Q+Math.imul(i,H0)|0,Q=Q+Math.imul(e,A0)|0,K=K+Math.imul(e,H0)|0,U=U+Math.imul(m,W0)|0,Q=Q+Math.imul(m,E0)|0,Q=Q+Math.imul(r,W0)|0,K=K+Math.imul(r,E0)|0,U=U+Math.imul(t,T0)|0,Q=Q+Math.imul(t,D0)|0,Q=Q+Math.imul(s,T0)|0,K=K+Math.imul(s,D0)|0,U=U+Math.imul(l,C0)|0,Q=Q+Math.imul(l,L0)|0,Q=Q+Math.imul(n,C0)|0,K=K+Math.imul(n,L0)|0,U=U+Math.imul(h,R0)|0,Q=Q+Math.imul(h,P0)|0,Q=Q+Math.imul(d,R0)|0,K=K+Math.imul(d,P0)|0,U=U+Math.imul(B,z0)|0,Q=Q+Math.imul(B,M0)|0,Q=Q+Math.imul(c,z0)|0,K=K+Math.imul(c,M0)|0;var u0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(u0>>>26)|0,u0&=67108863,U=Math.imul(Z0,I0),Q=Math.imul(Z0,O0),Q=Q+Math.imul(G0,I0)|0,K=Math.imul(G0,O0),U=U+Math.imul($0,J0)|0,Q=Q+Math.imul($0,F0)|0,Q=Q+Math.imul(Q0,J0)|0,K=K+Math.imul(Q0,F0)|0,U=U+Math.imul(o,A0)|0,Q=Q+Math.imul(o,H0)|0,Q=Q+Math.imul(a,A0)|0,K=K+Math.imul(a,H0)|0,U=U+Math.imul(i,W0)|0,Q=Q+Math.imul(i,E0)|0,Q=Q+Math.imul(e,W0)|0,K=K+Math.imul(e,E0)|0,U=U+Math.imul(m,T0)|0,Q=Q+Math.imul(m,D0)|0,Q=Q+Math.imul(r,T0)|0,K=K+Math.imul(r,D0)|0,U=U+Math.imul(t,C0)|0,Q=Q+Math.imul(t,L0)|0,Q=Q+Math.imul(s,C0)|0,K=K+Math.imul(s,L0)|0,U=U+Math.imul(l,R0)|0,Q=Q+Math.imul(l,P0)|0,Q=Q+Math.imul(n,R0)|0,K=K+Math.imul(n,P0)|0,U=U+Math.imul(h,z0)|0,Q=Q+Math.imul(h,M0)|0,Q=Q+Math.imul(d,z0)|0,K=K+Math.imul(d,M0)|0;var n0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(n0>>>26)|0,n0&=67108863,U=Math.imul(Z0,J0),Q=Math.imul(Z0,F0),Q=Q+Math.imul(G0,J0)|0,K=Math.imul(G0,F0),U=U+Math.imul($0,A0)|0,Q=Q+Math.imul($0,H0)|0,Q=Q+Math.imul(Q0,A0)|0,K=K+Math.imul(Q0,H0)|0,U=U+Math.imul(o,W0)|0,Q=Q+Math.imul(o,E0)|0,Q=Q+Math.imul(a,W0)|0,K=K+Math.imul(a,E0)|0,U=U+Math.imul(i,T0)|0,Q=Q+Math.imul(i,D0)|0,Q=Q+Math.imul(e,T0)|0,K=K+Math.imul(e,D0)|0,U=U+Math.imul(m,C0)|0,Q=Q+Math.imul(m,L0)|0,Q=Q+Math.imul(r,C0)|0,K=K+Math.imul(r,L0)|0,U=U+Math.imul(t,R0)|0,Q=Q+Math.imul(t,P0)|0,Q=Q+Math.imul(s,R0)|0,K=K+Math.imul(s,P0)|0,U=U+Math.imul(l,z0)|0,Q=Q+Math.imul(l,M0)|0,Q=Q+Math.imul(n,z0)|0,K=K+Math.imul(n,M0)|0;var s0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(s0>>>26)|0,s0&=67108863,U=Math.imul(Z0,A0),Q=Math.imul(Z0,H0),Q=Q+Math.imul(G0,A0)|0,K=Math.imul(G0,H0),U=U+Math.imul($0,W0)|0,Q=Q+Math.imul($0,E0)|0,Q=Q+Math.imul(Q0,W0)|0,K=K+Math.imul(Q0,E0)|0,U=U+Math.imul(o,T0)|0,Q=Q+Math.imul(o,D0)|0,Q=Q+Math.imul(a,T0)|0,K=K+Math.imul(a,D0)|0,U=U+Math.imul(i,C0)|0,Q=Q+Math.imul(i,L0)|0,Q=Q+Math.imul(e,C0)|0,K=K+Math.imul(e,L0)|0,U=U+Math.imul(m,R0)|0,Q=Q+Math.imul(m,P0)|0,Q=Q+Math.imul(r,R0)|0,K=K+Math.imul(r,P0)|0,U=U+Math.imul(t,z0)|0,Q=Q+Math.imul(t,M0)|0,Q=Q+Math.imul(s,z0)|0,K=K+Math.imul(s,M0)|0;var t0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(t0>>>26)|0,t0&=67108863,U=Math.imul(Z0,W0),Q=Math.imul(Z0,E0),Q=Q+Math.imul(G0,W0)|0,K=Math.imul(G0,E0),U=U+Math.imul($0,T0)|0,Q=Q+Math.imul($0,D0)|0,Q=Q+Math.imul(Q0,T0)|0,K=K+Math.imul(Q0,D0)|0,U=U+Math.imul(o,C0)|0,Q=Q+Math.imul(o,L0)|0,Q=Q+Math.imul(a,C0)|0,K=K+Math.imul(a,L0)|0,U=U+Math.imul(i,R0)|0,Q=Q+Math.imul(i,P0)|0,Q=Q+Math.imul(e,R0)|0,K=K+Math.imul(e,P0)|0,U=U+Math.imul(m,z0)|0,Q=Q+Math.imul(m,M0)|0,Q=Q+Math.imul(r,z0)|0,K=K+Math.imul(r,M0)|0;var m0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(m0>>>26)|0,m0&=67108863,U=Math.imul(Z0,T0),Q=Math.imul(Z0,D0),Q=Q+Math.imul(G0,T0)|0,K=Math.imul(G0,D0),U=U+Math.imul($0,C0)|0,Q=Q+Math.imul($0,L0)|0,Q=Q+Math.imul(Q0,C0)|0,K=K+Math.imul(Q0,L0)|0,U=U+Math.imul(o,R0)|0,Q=Q+Math.imul(o,P0)|0,Q=Q+Math.imul(a,R0)|0,K=K+Math.imul(a,P0)|0,U=U+Math.imul(i,z0)|0,Q=Q+Math.imul(i,M0)|0,Q=Q+Math.imul(e,z0)|0,K=K+Math.imul(e,M0)|0;var a0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(a0>>>26)|0,a0&=67108863,U=Math.imul(Z0,C0),Q=Math.imul(Z0,L0),Q=Q+Math.imul(G0,C0)|0,K=Math.imul(G0,L0),U=U+Math.imul($0,R0)|0,Q=Q+Math.imul($0,P0)|0,Q=Q+Math.imul(Q0,R0)|0,K=K+Math.imul(Q0,P0)|0,U=U+Math.imul(o,z0)|0,Q=Q+Math.imul(o,M0)|0,Q=Q+Math.imul(a,z0)|0,K=K+Math.imul(a,M0)|0;var e0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(e0>>>26)|0,e0&=67108863,U=Math.imul(Z0,R0),Q=Math.imul(Z0,P0),Q=Q+Math.imul(G0,R0)|0,K=Math.imul(G0,P0),U=U+Math.imul($0,z0)|0,Q=Q+Math.imul($0,M0)|0,Q=Q+Math.imul(Q0,z0)|0,K=K+Math.imul(Q0,M0)|0;var r0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(r0>>>26)|0,r0&=67108863,U=Math.imul(Z0,z0),Q=Math.imul(Z0,M0),Q=Q+Math.imul(G0,z0)|0,K=Math.imul(G0,M0);var i0=(O+U|0)+((Q&8191)<<13)|0;return O=(K+(Q>>>13)|0)+(i0>>>26)|0,i0&=67108863,I[0]=Q$,I[1]=j0,I[2]=k0,I[3]=f0,I[4]=c0,I[5]=h0,I[6]=d0,I[7]=b0,I[8]=l0,I[9]=o0,I[10]=u0,I[11]=n0,I[12]=s0,I[13]=t0,I[14]=m0,I[15]=a0,I[16]=e0,I[17]=r0,I[18]=i0,O!==0&&(I[19]=O,G.length++),G};Math.imul||(M=L);function v($,Y,G){G.negative=Y.negative^$.negative,G.length=$.length+Y.length;for(var Z=0,V=0,I=0;I>>26)|0,V+=O>>>26,O&=67108863}G.words[I]=U,Z=O,O=V}return Z!==0?G.words[I]=Z:G.length--,G.strip()}function q($,Y,G){var Z=new g;return Z.mulp($,Y,G)}X.prototype.mulTo=function($,Y){var G,Z=this.length+$.length;return this.length===10&&$.length===10?G=M(this,$,Y):Z<63?G=L(this,$,Y):Z<1024?G=v(this,$,Y):G=q(this,$,Y),G};function g($,Y){this.x=$,this.y=Y}g.prototype.makeRBT=function($){for(var Y=new Array($),G=X.prototype._countBits($)-1,Z=0;Z<$;Z++)Y[Z]=this.revBin(Z,G,$);return Y},g.prototype.revBin=function($,Y,G){if($===0||$===G-1)return $;for(var Z=0,V=0;V>=1;return Z},g.prototype.permute=function($,Y,G,Z,V,I){for(var O=0;O>>1)V++;return 1<>>13,G[2*I+1]=V&8191,V=V>>>13;for(I=2*Y;I>=26,Y+=Z/67108864|0,Y+=V>>>26,this.words[G]=V&67108863}return Y!==0&&(this.words[G]=Y,this.length++),this},X.prototype.muln=function($){return this.clone().imuln($)},X.prototype.sqr=function(){return this.mul(this)},X.prototype.isqr=function(){return this.imul(this.clone())},X.prototype.pow=function($){var Y=E($);if(Y.length===0)return new X(1);for(var G=this,Z=0;Z=0);var Y=$%26,G=($-Y)/26,Z=67108863>>>26-Y<<26-Y,V;if(Y!==0){var I=0;for(V=0;V>>26-Y}I&&(this.words[V]=I,this.length++)}if(G!==0){for(V=this.length-1;V>=0;V--)this.words[V+G]=this.words[V];for(V=0;V=0);var Z;Y?Z=(Y-Y%26)/26:Z=0;var V=$%26,I=Math.min(($-V)/26,this.length),O=67108863^67108863>>>V<I)for(this.length-=I,Q=0;Q=0&&(K!==0||Q>=Z);Q--){var R=this.words[Q]|0;this.words[Q]=K<<26-V|R>>>V,K=R&O}return U&&K!==0&&(U.words[U.length++]=K),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},X.prototype.ishrn=function($,Y,G){return F(this.negative===0),this.iushrn($,Y,G)},X.prototype.shln=function($){return this.clone().ishln($)},X.prototype.ushln=function($){return this.clone().iushln($)},X.prototype.shrn=function($){return this.clone().ishrn($)},X.prototype.ushrn=function($){return this.clone().iushrn($)},X.prototype.testn=function($){F(typeof $=="number"&&$>=0);var Y=$%26,G=($-Y)/26,Z=1<=0);var Y=$%26,G=($-Y)/26;if(F(this.negative===0,"imaskn works only with positive numbers"),this.length<=G)return this;if(Y!==0&&G++,this.length=Math.min(G,this.length),Y!==0){var Z=67108863^67108863>>>Y<=67108864;Y++)this.words[Y]-=67108864,Y===this.length-1?this.words[Y+1]=1:this.words[Y+1]++;return this.length=Math.max(this.length,Y+1),this},X.prototype.isubn=function($){if(F(typeof $=="number"),F($<67108864),$<0)return this.iaddn(-$);if(this.negative!==0)return this.negative=0,this.iaddn($),this.negative=1,this;if(this.words[0]-=$,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var Y=0;Y>26)-(U/67108864|0),this.words[V+G]=I&67108863}for(;V>26,this.words[V+G]=I&67108863;if(O===0)return this.strip();for(F(O===-1),O=0,V=0;V>26,this.words[V]=I&67108863;return this.negative=1,this.strip()},X.prototype._wordDiv=function($,Y){var G=this.length-$.length,Z=this.clone(),V=$,I=V.words[V.length-1]|0,O=this._countBits(I);G=26-O,G!==0&&(V=V.ushln(G),Z.iushln(G),I=V.words[V.length-1]|0);var U=Z.length-V.length,Q;if(Y!=="mod"){Q=new X(null),Q.length=U+1,Q.words=new Array(Q.length);for(var K=0;K=0;A--){var S=(Z.words[V.length+A]|0)*67108864+(Z.words[V.length+A-1]|0);for(S=Math.min(S/I|0,67108863),Z._ishlnsubmul(V,S,A);Z.negative!==0;)S--,Z.negative=0,Z._ishlnsubmul(V,1,A),Z.isZero()||(Z.negative^=1);Q&&(Q.words[A]=S)}return Q&&Q.strip(),Z.strip(),Y!=="div"&&G!==0&&Z.iushrn(G),{div:Q||null,mod:Z}},X.prototype.divmod=function($,Y,G){if(F(!$.isZero()),this.isZero())return{div:new X(0),mod:new X(0)};var Z,V,I;return this.negative!==0&&$.negative===0?(I=this.neg().divmod($,Y),Y!=="mod"&&(Z=I.div.neg()),Y!=="div"&&(V=I.mod.neg(),G&&V.negative!==0&&V.iadd($)),{div:Z,mod:V}):this.negative===0&&$.negative!==0?(I=this.divmod($.neg(),Y),Y!=="mod"&&(Z=I.div.neg()),{div:Z,mod:I.mod}):(this.negative&$.negative)!==0?(I=this.neg().divmod($.neg(),Y),Y!=="div"&&(V=I.mod.neg(),G&&V.negative!==0&&V.isub($)),{div:I.div,mod:V}):$.length>this.length||this.cmp($)<0?{div:new X(0),mod:this}:$.length===1?Y==="div"?{div:this.divn($.words[0]),mod:null}:Y==="mod"?{div:null,mod:new X(this.modn($.words[0]))}:{div:this.divn($.words[0]),mod:new X(this.modn($.words[0]))}:this._wordDiv($,Y)},X.prototype.div=function($){return this.divmod($,"div",!1).div},X.prototype.mod=function($){return this.divmod($,"mod",!1).mod},X.prototype.umod=function($){return this.divmod($,"mod",!0).mod},X.prototype.divRound=function($){var Y=this.divmod($);if(Y.mod.isZero())return Y.div;var G=Y.div.negative!==0?Y.mod.isub($):Y.mod,Z=$.ushrn(1),V=$.andln(1),I=G.cmp(Z);return I<0||V===1&&I===0?Y.div:Y.div.negative!==0?Y.div.isubn(1):Y.div.iaddn(1)},X.prototype.modn=function($){F($<=67108863);for(var Y=(1<<26)%$,G=0,Z=this.length-1;Z>=0;Z--)G=(Y*G+(this.words[Z]|0))%$;return G},X.prototype.idivn=function($){F($<=67108863);for(var Y=0,G=this.length-1;G>=0;G--){var Z=(this.words[G]|0)+Y*67108864;this.words[G]=Z/$|0,Y=Z%$}return this.strip()},X.prototype.divn=function($){return this.clone().idivn($)},X.prototype.egcd=function($){F($.negative===0),F(!$.isZero());var Y=this,G=$.clone();Y.negative!==0?Y=Y.umod($):Y=Y.clone();for(var Z=new X(1),V=new X(0),I=new X(0),O=new X(1),U=0;Y.isEven()&&G.isEven();)Y.iushrn(1),G.iushrn(1),++U;for(var Q=G.clone(),K=Y.clone();!Y.isZero();){for(var R=0,A=1;(Y.words[0]&A)===0&&R<26;++R,A<<=1);if(R>0)for(Y.iushrn(R);R-- >0;)(Z.isOdd()||V.isOdd())&&(Z.iadd(Q),V.isub(K)),Z.iushrn(1),V.iushrn(1);for(var S=0,x=1;(G.words[0]&x)===0&&S<26;++S,x<<=1);if(S>0)for(G.iushrn(S);S-- >0;)(I.isOdd()||O.isOdd())&&(I.iadd(Q),O.isub(K)),I.iushrn(1),O.iushrn(1);Y.cmp(G)>=0?(Y.isub(G),Z.isub(I),V.isub(O)):(G.isub(Y),I.isub(Z),O.isub(V))}return{a:I,b:O,gcd:G.iushln(U)}},X.prototype._invmp=function($){F($.negative===0),F(!$.isZero());var Y=this,G=$.clone();Y.negative!==0?Y=Y.umod($):Y=Y.clone();for(var Z=new X(1),V=new X(0),I=G.clone();Y.cmpn(1)>0&&G.cmpn(1)>0;){for(var O=0,U=1;(Y.words[0]&U)===0&&O<26;++O,U<<=1);if(O>0)for(Y.iushrn(O);O-- >0;)Z.isOdd()&&Z.iadd(I),Z.iushrn(1);for(var Q=0,K=1;(G.words[0]&K)===0&&Q<26;++Q,K<<=1);if(Q>0)for(G.iushrn(Q);Q-- >0;)V.isOdd()&&V.iadd(I),V.iushrn(1);Y.cmp(G)>=0?(Y.isub(G),Z.isub(V)):(G.isub(Y),V.isub(Z))}var R;return Y.cmpn(1)===0?R=Z:R=V,R.cmpn(0)<0&&R.iadd($),R},X.prototype.gcd=function($){if(this.isZero())return $.abs();if($.isZero())return this.abs();var Y=this.clone(),G=$.clone();Y.negative=0,G.negative=0;for(var Z=0;Y.isEven()&&G.isEven();Z++)Y.iushrn(1),G.iushrn(1);do{for(;Y.isEven();)Y.iushrn(1);for(;G.isEven();)G.iushrn(1);var V=Y.cmp(G);if(V<0){var I=Y;Y=G,G=I}else if(V===0||G.cmpn(1)===0)break;Y.isub(G)}while(!0);return G.iushln(Z)},X.prototype.invm=function($){return this.egcd($).a.umod($)},X.prototype.isEven=function(){return(this.words[0]&1)===0},X.prototype.isOdd=function(){return(this.words[0]&1)===1},X.prototype.andln=function($){return this.words[0]&$},X.prototype.bincn=function($){F(typeof $=="number");var Y=$%26,G=($-Y)/26,Z=1<>>26,O&=67108863,this.words[I]=O}return V!==0&&(this.words[I]=V,this.length++),this},X.prototype.isZero=function(){return this.length===1&&this.words[0]===0},X.prototype.cmpn=function($){var Y=$<0;if(this.negative!==0&&!Y)return-1;if(this.negative===0&&Y)return 1;this.strip();var G;if(this.length>1)G=1;else{Y&&($=-$),F($<=67108863,"Number is too big");var Z=this.words[0]|0;G=Z===$?0:Z<$?-1:1}return this.negative!==0?-G|0:G},X.prototype.cmp=function($){if(this.negative!==0&&$.negative===0)return-1;if(this.negative===0&&$.negative!==0)return 1;var Y=this.ucmp($);return this.negative!==0?-Y|0:Y},X.prototype.ucmp=function($){if(this.length>$.length)return 1;if(this.length<$.length)return-1;for(var Y=0,G=this.length-1;G>=0;G--){var Z=this.words[G]|0,V=$.words[G]|0;if(Z!==V){ZV&&(Y=1);break}}return Y},X.prototype.gtn=function($){return this.cmpn($)===1},X.prototype.gt=function($){return this.cmp($)===1},X.prototype.gten=function($){return this.cmpn($)>=0},X.prototype.gte=function($){return this.cmp($)>=0},X.prototype.ltn=function($){return this.cmpn($)===-1},X.prototype.lt=function($){return this.cmp($)===-1},X.prototype.lten=function($){return this.cmpn($)<=0},X.prototype.lte=function($){return this.cmp($)<=0},X.prototype.eqn=function($){return this.cmpn($)===0},X.prototype.eq=function($){return this.cmp($)===0},X.red=function($){return new p($)},X.prototype.toRed=function($){return F(!this.red,"Already a number in reduction context"),F(this.negative===0,"red works only with positives"),$.convertTo(this)._forceRed($)},X.prototype.fromRed=function(){return F(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},X.prototype._forceRed=function($){return this.red=$,this},X.prototype.forceRed=function($){return F(!this.red,"Already a number in reduction context"),this._forceRed($)},X.prototype.redAdd=function($){return F(this.red,"redAdd works only with red numbers"),this.red.add(this,$)},X.prototype.redIAdd=function($){return F(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,$)},X.prototype.redSub=function($){return F(this.red,"redSub works only with red numbers"),this.red.sub(this,$)},X.prototype.redISub=function($){return F(this.red,"redISub works only with red numbers"),this.red.isub(this,$)},X.prototype.redShl=function($){return F(this.red,"redShl works only with red numbers"),this.red.shl(this,$)},X.prototype.redMul=function($){return F(this.red,"redMul works only with red numbers"),this.red._verify2(this,$),this.red.mul(this,$)},X.prototype.redIMul=function($){return F(this.red,"redMul works only with red numbers"),this.red._verify2(this,$),this.red.imul(this,$)},X.prototype.redSqr=function(){return F(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},X.prototype.redISqr=function(){return F(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},X.prototype.redSqrt=function(){return F(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},X.prototype.redInvm=function(){return F(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},X.prototype.redNeg=function(){return F(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},X.prototype.redPow=function($){return F(this.red&&!$.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,$)};var y={k256:null,p224:null,p192:null,p25519:null};function w($,Y){this.name=$,this.p=new X(Y,16),this.n=this.p.bitLength(),this.k=new X(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}w.prototype._tmp=function(){var $=new X(null);return $.words=new Array(Math.ceil(this.n/13)),$},w.prototype.ireduce=function($){var Y=$,G;do this.split(Y,this.tmp),Y=this.imulK(Y),Y=Y.iadd(this.tmp),G=Y.bitLength();while(G>this.n);var Z=G0?Y.isub(this.p):Y.strip!==void 0?Y.strip():Y._strip(),Y},w.prototype.split=function($,Y){$.iushrn(this.n,0,Y)},w.prototype.imulK=function($){return $.imul(this.k)};function f(){w.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}z(f,w),f.prototype.split=function($,Y){for(var G=4194303,Z=Math.min($.length,9),V=0;V>>22,I=O}I>>>=22,$.words[V-10]=I,I===0&&$.length>10?$.length-=10:$.length-=9},f.prototype.imulK=function($){$.words[$.length]=0,$.words[$.length+1]=0,$.length+=2;for(var Y=0,G=0;G<$.length;G++){var Z=$.words[G]|0;Y+=Z*977,$.words[G]=Y&67108863,Y=Z*64+(Y/67108864|0)}return $.words[$.length-1]===0&&($.length--,$.words[$.length-1]===0&&$.length--),$};function b(){w.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}z(b,w);function u(){w.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}z(u,w);function Y0(){w.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}z(Y0,w),Y0.prototype.imulK=function($){for(var Y=0,G=0;G<$.length;G++){var Z=($.words[G]|0)*19+Y,V=Z&67108863;Z>>>=26,$.words[G]=V,Y=Z}return Y!==0&&($.words[$.length++]=Y),$},X._prime=function($){if(y[$])return y[$];var Y;if($==="k256")Y=new f;else if($==="p224")Y=new b;else if($==="p192")Y=new u;else if($==="p25519")Y=new Y0;else throw new Error("Unknown prime "+$);return y[$]=Y,Y};function p($){if(typeof $=="string"){var Y=X._prime($);this.m=Y.p,this.prime=Y}else F($.gtn(1),"modulus must be greater than 1"),this.m=$,this.prime=null}p.prototype._verify1=function($){F($.negative===0,"red works only with positives"),F($.red,"red works only with red numbers")},p.prototype._verify2=function($,Y){F(($.negative|Y.negative)===0,"red works only with positives"),F($.red&&$.red===Y.red,"red works only with red numbers")},p.prototype.imod=function($){return this.prime?this.prime.ireduce($)._forceRed(this):$.umod(this.m)._forceRed(this)},p.prototype.neg=function($){return $.isZero()?$.clone():this.m.sub($)._forceRed(this)},p.prototype.add=function($,Y){this._verify2($,Y);var G=$.add(Y);return G.cmp(this.m)>=0&&G.isub(this.m),G._forceRed(this)},p.prototype.iadd=function($,Y){this._verify2($,Y);var G=$.iadd(Y);return G.cmp(this.m)>=0&&G.isub(this.m),G},p.prototype.sub=function($,Y){this._verify2($,Y);var G=$.sub(Y);return G.cmpn(0)<0&&G.iadd(this.m),G._forceRed(this)},p.prototype.isub=function($,Y){this._verify2($,Y);var G=$.isub(Y);return G.cmpn(0)<0&&G.iadd(this.m),G},p.prototype.shl=function($,Y){return this._verify1($),this.imod($.ushln(Y))},p.prototype.imul=function($,Y){return this._verify2($,Y),this.imod($.imul(Y))},p.prototype.mul=function($,Y){return this._verify2($,Y),this.imod($.mul(Y))},p.prototype.isqr=function($){return this.imul($,$.clone())},p.prototype.sqr=function($){return this.mul($,$)},p.prototype.sqrt=function($){if($.isZero())return $.clone();var Y=this.m.andln(3);if(F(Y%2===1),Y===3){var G=this.m.add(new X(1)).iushrn(2);return this.pow($,G)}for(var Z=this.m.subn(1),V=0;!Z.isZero()&&Z.andln(1)===0;)V++,Z.iushrn(1);F(!Z.isZero());var I=new X(1).toRed(this),O=I.redNeg(),U=this.m.subn(1).iushrn(1),Q=this.m.bitLength();for(Q=new X(2*Q*Q).toRed(this);this.pow(Q,U).cmp(O)!==0;)Q.redIAdd(O);for(var K=this.pow(Q,Z),R=this.pow($,Z.addn(1).iushrn(1)),A=this.pow($,Z),S=V;A.cmp(I)!==0;){for(var x=A,B=0;x.cmp(I)!==0;B++)x=x.redSqr();F(B=0;V--){for(var K=Y.words[V],R=Q-1;R>=0;R--){var A=K>>R&1;if(I!==Z[0]&&(I=this.sqr(I)),A===0&&O===0){U=0;continue}O<<=1,O|=A,U++,!(U!==G&&(V!==0||R!==0))&&(I=this.mul(I,Z[O]),U=0,O=0)}Q=26}return I},p.prototype.convertTo=function($){var Y=$.umod(this.m);return Y===$?Y.clone():Y},p.prototype.convertFrom=function($){var Y=$.clone();return Y.red=null,Y},X.mont=function($){return new v0($)};function v0($){p.call(this,$),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new X(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}z(v0,p),v0.prototype.convertTo=function($){return this.imod($.ushln(this.shift))},v0.prototype.convertFrom=function($){var Y=this.imod($.mul(this.rinv));return Y.red=null,Y},v0.prototype.imul=function($,Y){if($.isZero()||Y.isZero())return $.words[0]=0,$.length=1,$;var G=$.imul(Y),Z=G.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),V=G.isub(Z).iushrn(this.shift),I=V;return V.cmp(this.m)>=0?I=V.isub(this.m):V.cmpn(0)<0&&(I=V.iadd(this.m)),I._forceRed(this)},v0.prototype.mul=function($,Y){if($.isZero()||Y.isZero())return new X(0)._forceRed(this);var G=$.mul(Y),Z=G.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),V=G.isub(Z).iushrn(this.shift),I=V;return V.cmp(this.m)>=0?I=V.isub(this.m):V.cmpn(0)<0&&(I=V.iadd(this.m)),I._forceRed(this)},v0.prototype.invm=function($){var Y=this.imod($._invmp(this.m).mul(this.r2));return Y._forceRed(this)}})(typeof _>"u"||_,N)}}),VZ=S0({"(disabled):node_modules/crypto-browserify/index.js"(){}}),f$=S0({"node_modules/brorand/index.js"(N,_){var k;_.exports=function(F){return k||(k=new j(null)),k.generate(F)};function j(F){this.rand=F}_.exports.Rand=j,j.prototype.generate=function(F){return this._rand(F)},j.prototype._rand=function(F){var z=new g0(F);return H$.getRandomValues(z),z}}}),RQ=S0({"node_modules/miller-rabin/lib/mr.js"(N,_){var k=AY(),j=f$();function F(z){this.rand=z||new j.Rand}_.exports=F,F.create=function(z){return new F(z)},F.prototype._randbelow=function(z){var X=z.bitLength(),C=Math.ceil(X/8);do var P=new k(this.rand.generate(C));while(P.cmp(z)>=0);return P},F.prototype._randrange=function(z,X){var C=X.sub(z);return z.add(this._randbelow(C))},F.prototype.test=function(z,X,C){var P=z.bitLength(),T=k.mont(z),W=new k(1).toRed(T);X||(X=Math.max(1,P/48|0));for(var J=z.subn(1),H=0;!J.testn(H);H++);for(var D=z.shrn(H),E=J.toRed(T),L=!0;X>0;X--){var M=this._randrange(new k(2),J);C&&C(M);var v=M.toRed(T).redPow(D);if(!(v.cmp(W)===0||v.cmp(E)===0)){for(var q=1;q0;X--){var E=this._randrange(new k(2),W),L=z.gcd(E);if(L.cmpn(1)!==0)return L;var M=E.toRed(P).redPow(H);if(!(M.cmp(T)===0||M.cmp(D)===0)){for(var v=1;vb;)Y0.ishrn(1);if(Y0.isEven()&&Y0.iadd(C),Y0.testn(1)||Y0.iadd(P),u.cmp(P)){if(!u.cmp(T))for(;Y0.mod(H).cmp(D);)Y0.iadd(M)}else for(;Y0.mod(F).cmp(L);)Y0.iadd(M);if(p=Y0.shrn(1),y(p)&&y(Y0)&&w(p)&&w(Y0)&&X.test(p)&&X.test(Y0))return Y0}}}}),HY=S0({"node_modules/diffie-hellman/lib/primes.json"(N,_){_.exports={modp1:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},modp2:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},modp5:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},modp14:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},modp15:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},modp16:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},modp17:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},modp18:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}}}),WY=S0({"node_modules/diffie-hellman/lib/dh.js"(N,_){var k=LQ(),j=RQ(),F=new j,z=new k(24),X=new k(11),C=new k(10),P=new k(3),T=new k(7),W=PQ(),J=L$();_.exports=M;function H(q,g){return g=g||"utf8",g0.isBuffer(q)||(q=new g0(q,g)),this._pub=new k(q),this}function D(q,g){return g=g||"utf8",g0.isBuffer(q)||(q=new g0(q,g)),this._priv=new k(q),this}var E={};function L(q,g){var y=g.toString("hex"),w=[y,q.toString(16)].join("_");if(w in E)return E[w];var f=0;if(q.isEven()||!W.simpleSieve||!W.fermatTest(q)||!F.test(q))return f+=1,y==="02"||y==="05"?f+=8:f+=4,E[w]=f,f;F.test(q.shrn(1))||(f+=2);var b;switch(y){case"02":q.mod(z).cmp(X)&&(f+=8);break;case"05":b=q.mod(C),b.cmp(P)&&b.cmp(T)&&(f+=8);break;default:f+=4}return E[w]=f,f}function M(q,g,y){this.setGenerator(g),this.__prime=new k(q),this._prime=k.mont(this.__prime),this._primeLen=q.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,y?(this.setPublicKey=H,this.setPrivateKey=D):this._primeCode=8}Object.defineProperty(M.prototype,"verifyError",{enumerable:!0,get:function(){return typeof this._primeCode!="number"&&(this._primeCode=L(this.__prime,this.__gen)),this._primeCode}}),M.prototype.generateKeys=function(){return this._priv||(this._priv=new k(J(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},M.prototype.computeSecret=function(q){q=new k(q),q=q.toRed(this._prime);var g=q.redPow(this._priv).fromRed(),y=new g0(g.toArray()),w=this.getPrime();if(y.length0?Z:V},X.min=function(Z,V){return Z.cmp(V)<0?Z:V},X.prototype._init=function(Z,V,I){if(typeof Z=="number")return this._initNumber(Z,V,I);if(typeof Z=="object")return this._initArray(Z,V,I);V==="hex"&&(V=16),F(V===(V|0)&&V>=2&&V<=36),Z=Z.toString().replace(/\s+/g,"");var O=0;Z[0]==="-"&&(O++,this.negative=1),O=0;O-=3)Q=Z[O]|Z[O-1]<<8|Z[O-2]<<16,this.words[U]|=Q<>>26-K&67108863,K+=24,K>=26&&(K-=26,U++);else if(I==="le")for(O=0,U=0;O>>26-K&67108863,K+=24,K>=26&&(K-=26,U++);return this._strip()};function P(Z,V){var I=Z.charCodeAt(V);if(I>=48&&I<=57)return I-48;if(I>=65&&I<=70)return I-55;if(I>=97&&I<=102)return I-87;F(!1,"Invalid character in "+Z)}function T(Z,V,I){var O=P(Z,I);return I-1>=V&&(O|=P(Z,I-1)<<4),O}X.prototype._parseHex=function(Z,V,I){this.length=Math.ceil((Z.length-V)/6),this.words=new Array(this.length);for(var O=0;O=V;O-=2)K=T(Z,V,O)<=18?(U-=18,Q+=1,this.words[Q]|=K>>>26):U+=8;else{var R=Z.length-V;for(O=R%2===0?V+1:V;O=18?(U-=18,Q+=1,this.words[Q]|=K>>>26):U+=8}this._strip()};function W(Z,V,I,O){for(var U=0,Q=0,K=Math.min(Z.length,I),R=V;R=49?Q=A-49+10:A>=17?Q=A-17+10:Q=A,F(A>=0&&Q1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},X.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{X.prototype[Symbol.for("nodejs.util.inspect.custom")]=H}catch{X.prototype.inspect=H}else X.prototype.inspect=H;function H(){return(this.red?""}var D=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],E=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],L=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];X.prototype.toString=function(Z,V){Z=Z||10,V=V|0||1;var I;if(Z===16||Z==="hex"){I="";for(var O=0,U=0,Q=0;Q>>24-O&16777215,O+=2,O>=26&&(O-=26,Q--),U!==0||Q!==this.length-1?I=D[6-R.length]+R+I:I=R+I}for(U!==0&&(I=U.toString(16)+I);I.length%V!==0;)I="0"+I;return this.negative!==0&&(I="-"+I),I}if(Z===(Z|0)&&Z>=2&&Z<=36){var A=E[Z],S=L[Z];I="";var x=this.clone();for(x.negative=0;!x.isZero();){var B=x.modrn(S).toString(Z);x=x.idivn(S),x.isZero()?I=B+I:I=D[A-B.length]+B+I}for(this.isZero()&&(I="0"+I);I.length%V!==0;)I="0"+I;return this.negative!==0&&(I="-"+I),I}F(!1,"Base should be between 2 and 36")},X.prototype.toNumber=function(){var Z=this.words[0];return this.length===2?Z+=this.words[1]*67108864:this.length===3&&this.words[2]===1?Z+=4503599627370496+this.words[1]*67108864:this.length>2&&F(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-Z:Z},X.prototype.toJSON=function(){return this.toString(16,2)},C&&(X.prototype.toBuffer=function(Z,V){return this.toArrayLike(C,Z,V)}),X.prototype.toArray=function(Z,V){return this.toArrayLike(Array,Z,V)};var M=function(Z,V){return Z.allocUnsafe?Z.allocUnsafe(V):new Z(V)};X.prototype.toArrayLike=function(Z,V,I){this._strip();var O=this.byteLength(),U=I||Math.max(1,O);F(O<=U,"byte array longer than desired length"),F(U>0,"Requested array length <= 0");var Q=M(Z,U),K=V==="le"?"LE":"BE";return this["_toArrayLike"+K](Q,O),Q},X.prototype._toArrayLikeLE=function(Z,V){for(var I=0,O=0,U=0,Q=0;U>8&255),I>16&255),Q===6?(I>24&255),O=0,Q=0):(O=K>>>24,Q+=2)}if(I=0&&(Z[I--]=K>>8&255),I>=0&&(Z[I--]=K>>16&255),Q===6?(I>=0&&(Z[I--]=K>>24&255),O=0,Q=0):(O=K>>>24,Q+=2)}if(I>=0)for(Z[I--]=O;I>=0;)Z[I--]=0},Math.clz32?X.prototype._countBits=function(Z){return 32-Math.clz32(Z)}:X.prototype._countBits=function(Z){var V=Z,I=0;return V>=4096&&(I+=13,V>>>=13),V>=64&&(I+=7,V>>>=7),V>=8&&(I+=4,V>>>=4),V>=2&&(I+=2,V>>>=2),I+V},X.prototype._zeroBits=function(Z){if(Z===0)return 26;var V=Z,I=0;return(V&8191)===0&&(I+=13,V>>>=13),(V&127)===0&&(I+=7,V>>>=7),(V&15)===0&&(I+=4,V>>>=4),(V&3)===0&&(I+=2,V>>>=2),(V&1)===0&&I++,I},X.prototype.bitLength=function(){var Z=this.words[this.length-1],V=this._countBits(Z);return(this.length-1)*26+V};function v(Z){for(var V=new Array(Z.bitLength()),I=0;I>>U&1}return V}X.prototype.zeroBits=function(){if(this.isZero())return 0;for(var Z=0,V=0;VZ.length?this.clone().ior(Z):Z.clone().ior(this)},X.prototype.uor=function(Z){return this.length>Z.length?this.clone().iuor(Z):Z.clone().iuor(this)},X.prototype.iuand=function(Z){var V;this.length>Z.length?V=Z:V=this;for(var I=0;IZ.length?this.clone().iand(Z):Z.clone().iand(this)},X.prototype.uand=function(Z){return this.length>Z.length?this.clone().iuand(Z):Z.clone().iuand(this)},X.prototype.iuxor=function(Z){var V,I;this.length>Z.length?(V=this,I=Z):(V=Z,I=this);for(var O=0;OZ.length?this.clone().ixor(Z):Z.clone().ixor(this)},X.prototype.uxor=function(Z){return this.length>Z.length?this.clone().iuxor(Z):Z.clone().iuxor(this)},X.prototype.inotn=function(Z){F(typeof Z=="number"&&Z>=0);var V=Math.ceil(Z/26)|0,I=Z%26;this._expand(V),I>0&&V--;for(var O=0;O0&&(this.words[O]=~this.words[O]&67108863>>26-I),this._strip()},X.prototype.notn=function(Z){return this.clone().inotn(Z)},X.prototype.setn=function(Z,V){F(typeof Z=="number"&&Z>=0);var I=Z/26|0,O=Z%26;return this._expand(I+1),V?this.words[I]=this.words[I]|1<Z.length?(I=this,O=Z):(I=Z,O=this);for(var U=0,Q=0;Q>>26;for(;U!==0&&Q>>26;if(this.length=I.length,U!==0)this.words[this.length]=U,this.length++;else if(I!==this)for(;QZ.length?this.clone().iadd(Z):Z.clone().iadd(this)},X.prototype.isub=function(Z){if(Z.negative!==0){Z.negative=0;var V=this.iadd(Z);return Z.negative=1,V._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(Z),this.negative=1,this._normSign();var I=this.cmp(Z);if(I===0)return this.negative=0,this.length=1,this.words[0]=0,this;var O,U;I>0?(O=this,U=Z):(O=Z,U=this);for(var Q=0,K=0;K>26,this.words[K]=V&67108863;for(;Q!==0&&K>26,this.words[K]=V&67108863;if(Q===0&&K>>26,B=A&67108863,c=Math.min(S,V.length-1),q0=Math.max(0,S-Z.length+1);q0<=c;q0++){var h=S-q0|0;U=Z.words[h]|0,Q=V.words[q0]|0,K=U*Q+B,x+=K/67108864|0,B=K&67108863}I.words[S]=B|0,A=x|0}return A!==0?I.words[S]=A|0:I.length--,I._strip()}var g=function(Z,V,I){var O=Z.words,U=V.words,Q=I.words,K=0,R,A,S,x=O[0]|0,B=x&8191,c=x>>>13,q0=O[1]|0,h=q0&8191,d=q0>>>13,_0=O[2]|0,l=_0&8191,n=_0>>>13,y0=O[3]|0,t=y0&8191,s=y0>>>13,w0=O[4]|0,m=w0&8191,r=w0>>>13,$$=O[5]|0,i=$$&8191,e=$$>>>13,x0=O[6]|0,o=x0&8191,a=x0>>>13,p0=O[7]|0,$0=p0&8191,Q0=p0>>>13,Y$=O[8]|0,Z0=Y$&8191,G0=Y$>>>13,Z$=O[9]|0,V0=Z$&8191,U0=Z$>>>13,G$=U[0]|0,X0=G$&8191,K0=G$>>>13,V$=U[1]|0,I0=V$&8191,O0=V$>>>13,U$=U[2]|0,J0=U$&8191,F0=U$>>>13,X$=U[3]|0,A0=X$&8191,H0=X$>>>13,K$=U[4]|0,W0=K$&8191,E0=K$>>>13,I$=U[5]|0,T0=I$&8191,D0=I$>>>13,O$=U[6]|0,C0=O$&8191,L0=O$>>>13,J$=U[7]|0,R0=J$&8191,P0=J$>>>13,F$=U[8]|0,z0=F$&8191,M0=F$>>>13,Q$=U[9]|0,j0=Q$&8191,k0=Q$>>>13;I.negative=Z.negative^V.negative,I.length=19,R=Math.imul(B,X0),A=Math.imul(B,K0),A=A+Math.imul(c,X0)|0,S=Math.imul(c,K0);var f0=(K+R|0)+((A&8191)<<13)|0;K=(S+(A>>>13)|0)+(f0>>>26)|0,f0&=67108863,R=Math.imul(h,X0),A=Math.imul(h,K0),A=A+Math.imul(d,X0)|0,S=Math.imul(d,K0),R=R+Math.imul(B,I0)|0,A=A+Math.imul(B,O0)|0,A=A+Math.imul(c,I0)|0,S=S+Math.imul(c,O0)|0;var c0=(K+R|0)+((A&8191)<<13)|0;K=(S+(A>>>13)|0)+(c0>>>26)|0,c0&=67108863,R=Math.imul(l,X0),A=Math.imul(l,K0),A=A+Math.imul(n,X0)|0,S=Math.imul(n,K0),R=R+Math.imul(h,I0)|0,A=A+Math.imul(h,O0)|0,A=A+Math.imul(d,I0)|0,S=S+Math.imul(d,O0)|0,R=R+Math.imul(B,J0)|0,A=A+Math.imul(B,F0)|0,A=A+Math.imul(c,J0)|0,S=S+Math.imul(c,F0)|0;var h0=(K+R|0)+((A&8191)<<13)|0;K=(S+(A>>>13)|0)+(h0>>>26)|0,h0&=67108863,R=Math.imul(t,X0),A=Math.imul(t,K0),A=A+Math.imul(s,X0)|0,S=Math.imul(s,K0),R=R+Math.imul(l,I0)|0,A=A+Math.imul(l,O0)|0,A=A+Math.imul(n,I0)|0,S=S+Math.imul(n,O0)|0,R=R+Math.imul(h,J0)|0,A=A+Math.imul(h,F0)|0,A=A+Math.imul(d,J0)|0,S=S+Math.imul(d,F0)|0,R=R+Math.imul(B,A0)|0,A=A+Math.imul(B,H0)|0,A=A+Math.imul(c,A0)|0,S=S+Math.imul(c,H0)|0;var d0=(K+R|0)+((A&8191)<<13)|0;K=(S+(A>>>13)|0)+(d0>>>26)|0,d0&=67108863,R=Math.imul(m,X0),A=Math.imul(m,K0),A=A+Math.imul(r,X0)|0,S=Math.imul(r,K0),R=R+Math.imul(t,I0)|0,A=A+Math.imul(t,O0)|0,A=A+Math.imul(s,I0)|0,S=S+Math.imul(s,O0)|0,R=R+Math.imul(l,J0)|0,A=A+Math.imul(l,F0)|0,A=A+Math.imul(n,J0)|0,S=S+Math.imul(n,F0)|0,R=R+Math.imul(h,A0)|0,A=A+Math.imul(h,H0)|0,A=A+Math.imul(d,A0)|0,S=S+Math.imul(d,H0)|0,R=R+Math.imul(B,W0)|0,A=A+Math.imul(B,E0)|0,A=A+Math.imul(c,W0)|0,S=S+Math.imul(c,E0)|0;var b0=(K+R|0)+((A&8191)<<13)|0;K=(S+(A>>>13)|0)+(b0>>>26)|0,b0&=67108863,R=Math.imul(i,X0),A=Math.imul(i,K0),A=A+Math.imul(e,X0)|0,S=Math.imul(e,K0),R=R+Math.imul(m,I0)|0,A=A+Math.imul(m,O0)|0,A=A+Math.imul(r,I0)|0,S=S+Math.imul(r,O0)|0,R=R+Math.imul(t,J0)|0,A=A+Math.imul(t,F0)|0,A=A+Math.imul(s,J0)|0,S=S+Math.imul(s,F0)|0,R=R+Math.imul(l,A0)|0,A=A+Math.imul(l,H0)|0,A=A+Math.imul(n,A0)|0,S=S+Math.imul(n,H0)|0,R=R+Math.imul(h,W0)|0,A=A+Math.imul(h,E0)|0,A=A+Math.imul(d,W0)|0,S=S+Math.imul(d,E0)|0,R=R+Math.imul(B,T0)|0,A=A+Math.imul(B,D0)|0,A=A+Math.imul(c,T0)|0,S=S+Math.imul(c,D0)|0;var l0=(K+R|0)+((A&8191)<<13)|0;K=(S+(A>>>13)|0)+(l0>>>26)|0,l0&=67108863,R=Math.imul(o,X0),A=Math.imul(o,K0),A=A+Math.imul(a,X0)|0,S=Math.imul(a,K0),R=R+Math.imul(i,I0)|0,A=A+Math.imul(i,O0)|0,A=A+Math.imul(e,I0)|0,S=S+Math.imul(e,O0)|0,R=R+Math.imul(m,J0)|0,A=A+Math.imul(m,F0)|0,A=A+Math.imul(r,J0)|0,S=S+Math.imul(r,F0)|0,R=R+Math.imul(t,A0)|0,A=A+Math.imul(t,H0)|0,A=A+Math.imul(s,A0)|0,S=S+Math.imul(s,H0)|0,R=R+Math.imul(l,W0)|0,A=A+Math.imul(l,E0)|0,A=A+Math.imul(n,W0)|0,S=S+Math.imul(n,E0)|0,R=R+Math.imul(h,T0)|0,A=A+Math.imul(h,D0)|0,A=A+Math.imul(d,T0)|0,S=S+Math.imul(d,D0)|0,R=R+Math.imul(B,C0)|0,A=A+Math.imul(B,L0)|0,A=A+Math.imul(c,C0)|0,S=S+Math.imul(c,L0)|0;var o0=(K+R|0)+((A&8191)<<13)|0;K=(S+(A>>>13)|0)+(o0>>>26)|0,o0&=67108863,R=Math.imul($0,X0),A=Math.imul($0,K0),A=A+Math.imul(Q0,X0)|0,S=Math.imul(Q0,K0),R=R+Math.imul(o,I0)|0,A=A+Math.imul(o,O0)|0,A=A+Math.imul(a,I0)|0,S=S+Math.imul(a,O0)|0,R=R+Math.imul(i,J0)|0,A=A+Math.imul(i,F0)|0,A=A+Math.imul(e,J0)|0,S=S+Math.imul(e,F0)|0,R=R+Math.imul(m,A0)|0,A=A+Math.imul(m,H0)|0,A=A+Math.imul(r,A0)|0,S=S+Math.imul(r,H0)|0,R=R+Math.imul(t,W0)|0,A=A+Math.imul(t,E0)|0,A=A+Math.imul(s,W0)|0,S=S+Math.imul(s,E0)|0,R=R+Math.imul(l,T0)|0,A=A+Math.imul(l,D0)|0,A=A+Math.imul(n,T0)|0,S=S+Math.imul(n,D0)|0,R=R+Math.imul(h,C0)|0,A=A+Math.imul(h,L0)|0,A=A+Math.imul(d,C0)|0,S=S+Math.imul(d,L0)|0,R=R+Math.imul(B,R0)|0,A=A+Math.imul(B,P0)|0,A=A+Math.imul(c,R0)|0,S=S+Math.imul(c,P0)|0;var u0=(K+R|0)+((A&8191)<<13)|0;K=(S+(A>>>13)|0)+(u0>>>26)|0,u0&=67108863,R=Math.imul(Z0,X0),A=Math.imul(Z0,K0),A=A+Math.imul(G0,X0)|0,S=Math.imul(G0,K0),R=R+Math.imul($0,I0)|0,A=A+Math.imul($0,O0)|0,A=A+Math.imul(Q0,I0)|0,S=S+Math.imul(Q0,O0)|0,R=R+Math.imul(o,J0)|0,A=A+Math.imul(o,F0)|0,A=A+Math.imul(a,J0)|0,S=S+Math.imul(a,F0)|0,R=R+Math.imul(i,A0)|0,A=A+Math.imul(i,H0)|0,A=A+Math.imul(e,A0)|0,S=S+Math.imul(e,H0)|0,R=R+Math.imul(m,W0)|0,A=A+Math.imul(m,E0)|0,A=A+Math.imul(r,W0)|0,S=S+Math.imul(r,E0)|0,R=R+Math.imul(t,T0)|0,A=A+Math.imul(t,D0)|0,A=A+Math.imul(s,T0)|0,S=S+Math.imul(s,D0)|0,R=R+Math.imul(l,C0)|0,A=A+Math.imul(l,L0)|0,A=A+Math.imul(n,C0)|0,S=S+Math.imul(n,L0)|0,R=R+Math.imul(h,R0)|0,A=A+Math.imul(h,P0)|0,A=A+Math.imul(d,R0)|0,S=S+Math.imul(d,P0)|0,R=R+Math.imul(B,z0)|0,A=A+Math.imul(B,M0)|0,A=A+Math.imul(c,z0)|0,S=S+Math.imul(c,M0)|0;var n0=(K+R|0)+((A&8191)<<13)|0;K=(S+(A>>>13)|0)+(n0>>>26)|0,n0&=67108863,R=Math.imul(V0,X0),A=Math.imul(V0,K0),A=A+Math.imul(U0,X0)|0,S=Math.imul(U0,K0),R=R+Math.imul(Z0,I0)|0,A=A+Math.imul(Z0,O0)|0,A=A+Math.imul(G0,I0)|0,S=S+Math.imul(G0,O0)|0,R=R+Math.imul($0,J0)|0,A=A+Math.imul($0,F0)|0,A=A+Math.imul(Q0,J0)|0,S=S+Math.imul(Q0,F0)|0,R=R+Math.imul(o,A0)|0,A=A+Math.imul(o,H0)|0,A=A+Math.imul(a,A0)|0,S=S+Math.imul(a,H0)|0,R=R+Math.imul(i,W0)|0,A=A+Math.imul(i,E0)|0,A=A+Math.imul(e,W0)|0,S=S+Math.imul(e,E0)|0,R=R+Math.imul(m,T0)|0,A=A+Math.imul(m,D0)|0,A=A+Math.imul(r,T0)|0,S=S+Math.imul(r,D0)|0,R=R+Math.imul(t,C0)|0,A=A+Math.imul(t,L0)|0,A=A+Math.imul(s,C0)|0,S=S+Math.imul(s,L0)|0,R=R+Math.imul(l,R0)|0,A=A+Math.imul(l,P0)|0,A=A+Math.imul(n,R0)|0,S=S+Math.imul(n,P0)|0,R=R+Math.imul(h,z0)|0,A=A+Math.imul(h,M0)|0,A=A+Math.imul(d,z0)|0,S=S+Math.imul(d,M0)|0,R=R+Math.imul(B,j0)|0,A=A+Math.imul(B,k0)|0,A=A+Math.imul(c,j0)|0,S=S+Math.imul(c,k0)|0;var s0=(K+R|0)+((A&8191)<<13)|0;K=(S+(A>>>13)|0)+(s0>>>26)|0,s0&=67108863,R=Math.imul(V0,I0),A=Math.imul(V0,O0),A=A+Math.imul(U0,I0)|0,S=Math.imul(U0,O0),R=R+Math.imul(Z0,J0)|0,A=A+Math.imul(Z0,F0)|0,A=A+Math.imul(G0,J0)|0,S=S+Math.imul(G0,F0)|0,R=R+Math.imul($0,A0)|0,A=A+Math.imul($0,H0)|0,A=A+Math.imul(Q0,A0)|0,S=S+Math.imul(Q0,H0)|0,R=R+Math.imul(o,W0)|0,A=A+Math.imul(o,E0)|0,A=A+Math.imul(a,W0)|0,S=S+Math.imul(a,E0)|0,R=R+Math.imul(i,T0)|0,A=A+Math.imul(i,D0)|0,A=A+Math.imul(e,T0)|0,S=S+Math.imul(e,D0)|0,R=R+Math.imul(m,C0)|0,A=A+Math.imul(m,L0)|0,A=A+Math.imul(r,C0)|0,S=S+Math.imul(r,L0)|0,R=R+Math.imul(t,R0)|0,A=A+Math.imul(t,P0)|0,A=A+Math.imul(s,R0)|0,S=S+Math.imul(s,P0)|0,R=R+Math.imul(l,z0)|0,A=A+Math.imul(l,M0)|0,A=A+Math.imul(n,z0)|0,S=S+Math.imul(n,M0)|0,R=R+Math.imul(h,j0)|0,A=A+Math.imul(h,k0)|0,A=A+Math.imul(d,j0)|0,S=S+Math.imul(d,k0)|0;var t0=(K+R|0)+((A&8191)<<13)|0;K=(S+(A>>>13)|0)+(t0>>>26)|0,t0&=67108863,R=Math.imul(V0,J0),A=Math.imul(V0,F0),A=A+Math.imul(U0,J0)|0,S=Math.imul(U0,F0),R=R+Math.imul(Z0,A0)|0,A=A+Math.imul(Z0,H0)|0,A=A+Math.imul(G0,A0)|0,S=S+Math.imul(G0,H0)|0,R=R+Math.imul($0,W0)|0,A=A+Math.imul($0,E0)|0,A=A+Math.imul(Q0,W0)|0,S=S+Math.imul(Q0,E0)|0,R=R+Math.imul(o,T0)|0,A=A+Math.imul(o,D0)|0,A=A+Math.imul(a,T0)|0,S=S+Math.imul(a,D0)|0,R=R+Math.imul(i,C0)|0,A=A+Math.imul(i,L0)|0,A=A+Math.imul(e,C0)|0,S=S+Math.imul(e,L0)|0,R=R+Math.imul(m,R0)|0,A=A+Math.imul(m,P0)|0,A=A+Math.imul(r,R0)|0,S=S+Math.imul(r,P0)|0,R=R+Math.imul(t,z0)|0,A=A+Math.imul(t,M0)|0,A=A+Math.imul(s,z0)|0,S=S+Math.imul(s,M0)|0,R=R+Math.imul(l,j0)|0,A=A+Math.imul(l,k0)|0,A=A+Math.imul(n,j0)|0,S=S+Math.imul(n,k0)|0;var m0=(K+R|0)+((A&8191)<<13)|0;K=(S+(A>>>13)|0)+(m0>>>26)|0,m0&=67108863,R=Math.imul(V0,A0),A=Math.imul(V0,H0),A=A+Math.imul(U0,A0)|0,S=Math.imul(U0,H0),R=R+Math.imul(Z0,W0)|0,A=A+Math.imul(Z0,E0)|0,A=A+Math.imul(G0,W0)|0,S=S+Math.imul(G0,E0)|0,R=R+Math.imul($0,T0)|0,A=A+Math.imul($0,D0)|0,A=A+Math.imul(Q0,T0)|0,S=S+Math.imul(Q0,D0)|0,R=R+Math.imul(o,C0)|0,A=A+Math.imul(o,L0)|0,A=A+Math.imul(a,C0)|0,S=S+Math.imul(a,L0)|0,R=R+Math.imul(i,R0)|0,A=A+Math.imul(i,P0)|0,A=A+Math.imul(e,R0)|0,S=S+Math.imul(e,P0)|0,R=R+Math.imul(m,z0)|0,A=A+Math.imul(m,M0)|0,A=A+Math.imul(r,z0)|0,S=S+Math.imul(r,M0)|0,R=R+Math.imul(t,j0)|0,A=A+Math.imul(t,k0)|0,A=A+Math.imul(s,j0)|0,S=S+Math.imul(s,k0)|0;var a0=(K+R|0)+((A&8191)<<13)|0;K=(S+(A>>>13)|0)+(a0>>>26)|0,a0&=67108863,R=Math.imul(V0,W0),A=Math.imul(V0,E0),A=A+Math.imul(U0,W0)|0,S=Math.imul(U0,E0),R=R+Math.imul(Z0,T0)|0,A=A+Math.imul(Z0,D0)|0,A=A+Math.imul(G0,T0)|0,S=S+Math.imul(G0,D0)|0,R=R+Math.imul($0,C0)|0,A=A+Math.imul($0,L0)|0,A=A+Math.imul(Q0,C0)|0,S=S+Math.imul(Q0,L0)|0,R=R+Math.imul(o,R0)|0,A=A+Math.imul(o,P0)|0,A=A+Math.imul(a,R0)|0,S=S+Math.imul(a,P0)|0,R=R+Math.imul(i,z0)|0,A=A+Math.imul(i,M0)|0,A=A+Math.imul(e,z0)|0,S=S+Math.imul(e,M0)|0,R=R+Math.imul(m,j0)|0,A=A+Math.imul(m,k0)|0,A=A+Math.imul(r,j0)|0,S=S+Math.imul(r,k0)|0;var e0=(K+R|0)+((A&8191)<<13)|0;K=(S+(A>>>13)|0)+(e0>>>26)|0,e0&=67108863,R=Math.imul(V0,T0),A=Math.imul(V0,D0),A=A+Math.imul(U0,T0)|0,S=Math.imul(U0,D0),R=R+Math.imul(Z0,C0)|0,A=A+Math.imul(Z0,L0)|0,A=A+Math.imul(G0,C0)|0,S=S+Math.imul(G0,L0)|0,R=R+Math.imul($0,R0)|0,A=A+Math.imul($0,P0)|0,A=A+Math.imul(Q0,R0)|0,S=S+Math.imul(Q0,P0)|0,R=R+Math.imul(o,z0)|0,A=A+Math.imul(o,M0)|0,A=A+Math.imul(a,z0)|0,S=S+Math.imul(a,M0)|0,R=R+Math.imul(i,j0)|0,A=A+Math.imul(i,k0)|0,A=A+Math.imul(e,j0)|0,S=S+Math.imul(e,k0)|0;var r0=(K+R|0)+((A&8191)<<13)|0;K=(S+(A>>>13)|0)+(r0>>>26)|0,r0&=67108863,R=Math.imul(V0,C0),A=Math.imul(V0,L0),A=A+Math.imul(U0,C0)|0,S=Math.imul(U0,L0),R=R+Math.imul(Z0,R0)|0,A=A+Math.imul(Z0,P0)|0,A=A+Math.imul(G0,R0)|0,S=S+Math.imul(G0,P0)|0,R=R+Math.imul($0,z0)|0,A=A+Math.imul($0,M0)|0,A=A+Math.imul(Q0,z0)|0,S=S+Math.imul(Q0,M0)|0,R=R+Math.imul(o,j0)|0,A=A+Math.imul(o,k0)|0,A=A+Math.imul(a,j0)|0,S=S+Math.imul(a,k0)|0;var i0=(K+R|0)+((A&8191)<<13)|0;K=(S+(A>>>13)|0)+(i0>>>26)|0,i0&=67108863,R=Math.imul(V0,R0),A=Math.imul(V0,P0),A=A+Math.imul(U0,R0)|0,S=Math.imul(U0,P0),R=R+Math.imul(Z0,z0)|0,A=A+Math.imul(Z0,M0)|0,A=A+Math.imul(G0,z0)|0,S=S+Math.imul(G0,M0)|0,R=R+Math.imul($0,j0)|0,A=A+Math.imul($0,k0)|0,A=A+Math.imul(Q0,j0)|0,S=S+Math.imul(Q0,k0)|0;var _$=(K+R|0)+((A&8191)<<13)|0;K=(S+(A>>>13)|0)+(_$>>>26)|0,_$&=67108863,R=Math.imul(V0,z0),A=Math.imul(V0,M0),A=A+Math.imul(U0,z0)|0,S=Math.imul(U0,M0),R=R+Math.imul(Z0,j0)|0,A=A+Math.imul(Z0,k0)|0,A=A+Math.imul(G0,j0)|0,S=S+Math.imul(G0,k0)|0;var N$=(K+R|0)+((A&8191)<<13)|0;K=(S+(A>>>13)|0)+(N$>>>26)|0,N$&=67108863,R=Math.imul(V0,j0),A=Math.imul(V0,k0),A=A+Math.imul(U0,j0)|0,S=Math.imul(U0,k0);var x$=(K+R|0)+((A&8191)<<13)|0;return K=(S+(A>>>13)|0)+(x$>>>26)|0,x$&=67108863,Q[0]=f0,Q[1]=c0,Q[2]=h0,Q[3]=d0,Q[4]=b0,Q[5]=l0,Q[6]=o0,Q[7]=u0,Q[8]=n0,Q[9]=s0,Q[10]=t0,Q[11]=m0,Q[12]=a0,Q[13]=e0,Q[14]=r0,Q[15]=i0,Q[16]=_$,Q[17]=N$,Q[18]=x$,K!==0&&(Q[19]=K,I.length++),I};Math.imul||(g=q);function y(Z,V,I){I.negative=V.negative^Z.negative,I.length=Z.length+V.length;for(var O=0,U=0,Q=0;Q>>26)|0,U+=K>>>26,K&=67108863}I.words[Q]=R,O=K,K=U}return O!==0?I.words[Q]=O:I.length--,I._strip()}function w(Z,V,I){return y(Z,V,I)}X.prototype.mulTo=function(Z,V){var I,O=this.length+Z.length;return this.length===10&&Z.length===10?I=g(this,Z,V):O<63?I=q(this,Z,V):O<1024?I=y(this,Z,V):I=w(this,Z,V),I};function f(Z,V){this.x=Z,this.y=V}f.prototype.makeRBT=function(Z){for(var V=new Array(Z),I=X.prototype._countBits(Z)-1,O=0;O>=1;return O},f.prototype.permute=function(Z,V,I,O,U,Q){for(var K=0;K>>1)U++;return 1<>>13,I[2*Q+1]=U&8191,U=U>>>13;for(Q=2*V;Q>=26,I+=U/67108864|0,I+=Q>>>26,this.words[O]=Q&67108863}return I!==0&&(this.words[O]=I,this.length++),V?this.ineg():this},X.prototype.muln=function(Z){return this.clone().imuln(Z)},X.prototype.sqr=function(){return this.mul(this)},X.prototype.isqr=function(){return this.imul(this.clone())},X.prototype.pow=function(Z){var V=v(Z);if(V.length===0)return new X(1);for(var I=this,O=0;O=0);var V=Z%26,I=(Z-V)/26,O=67108863>>>26-V<<26-V,U;if(V!==0){var Q=0;for(U=0;U>>26-V}Q&&(this.words[U]=Q,this.length++)}if(I!==0){for(U=this.length-1;U>=0;U--)this.words[U+I]=this.words[U];for(U=0;U=0);var O;V?O=(V-V%26)/26:O=0;var U=Z%26,Q=Math.min((Z-U)/26,this.length),K=67108863^67108863>>>U<Q)for(this.length-=Q,A=0;A=0&&(S!==0||A>=O);A--){var x=this.words[A]|0;this.words[A]=S<<26-U|x>>>U,S=x&K}return R&&S!==0&&(R.words[R.length++]=S),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},X.prototype.ishrn=function(Z,V,I){return F(this.negative===0),this.iushrn(Z,V,I)},X.prototype.shln=function(Z){return this.clone().ishln(Z)},X.prototype.ushln=function(Z){return this.clone().iushln(Z)},X.prototype.shrn=function(Z){return this.clone().ishrn(Z)},X.prototype.ushrn=function(Z){return this.clone().iushrn(Z)},X.prototype.testn=function(Z){F(typeof Z=="number"&&Z>=0);var V=Z%26,I=(Z-V)/26,O=1<=0);var V=Z%26,I=(Z-V)/26;if(F(this.negative===0,"imaskn works only with positive numbers"),this.length<=I)return this;if(V!==0&&I++,this.length=Math.min(I,this.length),V!==0){var O=67108863^67108863>>>V<=67108864;V++)this.words[V]-=67108864,V===this.length-1?this.words[V+1]=1:this.words[V+1]++;return this.length=Math.max(this.length,V+1),this},X.prototype.isubn=function(Z){if(F(typeof Z=="number"),F(Z<67108864),Z<0)return this.iaddn(-Z);if(this.negative!==0)return this.negative=0,this.iaddn(Z),this.negative=1,this;if(this.words[0]-=Z,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var V=0;V>26)-(R/67108864|0),this.words[U+I]=Q&67108863}for(;U>26,this.words[U+I]=Q&67108863;if(K===0)return this._strip();for(F(K===-1),K=0,U=0;U>26,this.words[U]=Q&67108863;return this.negative=1,this._strip()},X.prototype._wordDiv=function(Z,V){var I=this.length-Z.length,O=this.clone(),U=Z,Q=U.words[U.length-1]|0,K=this._countBits(Q);I=26-K,I!==0&&(U=U.ushln(I),O.iushln(I),Q=U.words[U.length-1]|0);var R=O.length-U.length,A;if(V!=="mod"){A=new X(null),A.length=R+1,A.words=new Array(A.length);for(var S=0;S=0;B--){var c=(O.words[U.length+B]|0)*67108864+(O.words[U.length+B-1]|0);for(c=Math.min(c/Q|0,67108863),O._ishlnsubmul(U,c,B);O.negative!==0;)c--,O.negative=0,O._ishlnsubmul(U,1,B),O.isZero()||(O.negative^=1);A&&(A.words[B]=c)}return A&&A._strip(),O._strip(),V!=="div"&&I!==0&&O.iushrn(I),{div:A||null,mod:O}},X.prototype.divmod=function(Z,V,I){if(F(!Z.isZero()),this.isZero())return{div:new X(0),mod:new X(0)};var O,U,Q;return this.negative!==0&&Z.negative===0?(Q=this.neg().divmod(Z,V),V!=="mod"&&(O=Q.div.neg()),V!=="div"&&(U=Q.mod.neg(),I&&U.negative!==0&&U.iadd(Z)),{div:O,mod:U}):this.negative===0&&Z.negative!==0?(Q=this.divmod(Z.neg(),V),V!=="mod"&&(O=Q.div.neg()),{div:O,mod:Q.mod}):(this.negative&Z.negative)!==0?(Q=this.neg().divmod(Z.neg(),V),V!=="div"&&(U=Q.mod.neg(),I&&U.negative!==0&&U.isub(Z)),{div:Q.div,mod:U}):Z.length>this.length||this.cmp(Z)<0?{div:new X(0),mod:this}:Z.length===1?V==="div"?{div:this.divn(Z.words[0]),mod:null}:V==="mod"?{div:null,mod:new X(this.modrn(Z.words[0]))}:{div:this.divn(Z.words[0]),mod:new X(this.modrn(Z.words[0]))}:this._wordDiv(Z,V)},X.prototype.div=function(Z){return this.divmod(Z,"div",!1).div},X.prototype.mod=function(Z){return this.divmod(Z,"mod",!1).mod},X.prototype.umod=function(Z){return this.divmod(Z,"mod",!0).mod},X.prototype.divRound=function(Z){var V=this.divmod(Z);if(V.mod.isZero())return V.div;var I=V.div.negative!==0?V.mod.isub(Z):V.mod,O=Z.ushrn(1),U=Z.andln(1),Q=I.cmp(O);return Q<0||U===1&&Q===0?V.div:V.div.negative!==0?V.div.isubn(1):V.div.iaddn(1)},X.prototype.modrn=function(Z){var V=Z<0;V&&(Z=-Z),F(Z<=67108863);for(var I=(1<<26)%Z,O=0,U=this.length-1;U>=0;U--)O=(I*O+(this.words[U]|0))%Z;return V?-O:O},X.prototype.modn=function(Z){return this.modrn(Z)},X.prototype.idivn=function(Z){var V=Z<0;V&&(Z=-Z),F(Z<=67108863);for(var I=0,O=this.length-1;O>=0;O--){var U=(this.words[O]|0)+I*67108864;this.words[O]=U/Z|0,I=U%Z}return this._strip(),V?this.ineg():this},X.prototype.divn=function(Z){return this.clone().idivn(Z)},X.prototype.egcd=function(Z){F(Z.negative===0),F(!Z.isZero());var V=this,I=Z.clone();V.negative!==0?V=V.umod(Z):V=V.clone();for(var O=new X(1),U=new X(0),Q=new X(0),K=new X(1),R=0;V.isEven()&&I.isEven();)V.iushrn(1),I.iushrn(1),++R;for(var A=I.clone(),S=V.clone();!V.isZero();){for(var x=0,B=1;(V.words[0]&B)===0&&x<26;++x,B<<=1);if(x>0)for(V.iushrn(x);x-- >0;)(O.isOdd()||U.isOdd())&&(O.iadd(A),U.isub(S)),O.iushrn(1),U.iushrn(1);for(var c=0,q0=1;(I.words[0]&q0)===0&&c<26;++c,q0<<=1);if(c>0)for(I.iushrn(c);c-- >0;)(Q.isOdd()||K.isOdd())&&(Q.iadd(A),K.isub(S)),Q.iushrn(1),K.iushrn(1);V.cmp(I)>=0?(V.isub(I),O.isub(Q),U.isub(K)):(I.isub(V),Q.isub(O),K.isub(U))}return{a:Q,b:K,gcd:I.iushln(R)}},X.prototype._invmp=function(Z){F(Z.negative===0),F(!Z.isZero());var V=this,I=Z.clone();V.negative!==0?V=V.umod(Z):V=V.clone();for(var O=new X(1),U=new X(0),Q=I.clone();V.cmpn(1)>0&&I.cmpn(1)>0;){for(var K=0,R=1;(V.words[0]&R)===0&&K<26;++K,R<<=1);if(K>0)for(V.iushrn(K);K-- >0;)O.isOdd()&&O.iadd(Q),O.iushrn(1);for(var A=0,S=1;(I.words[0]&S)===0&&A<26;++A,S<<=1);if(A>0)for(I.iushrn(A);A-- >0;)U.isOdd()&&U.iadd(Q),U.iushrn(1);V.cmp(I)>=0?(V.isub(I),O.isub(U)):(I.isub(V),U.isub(O))}var x;return V.cmpn(1)===0?x=O:x=U,x.cmpn(0)<0&&x.iadd(Z),x},X.prototype.gcd=function(Z){if(this.isZero())return Z.abs();if(Z.isZero())return this.abs();var V=this.clone(),I=Z.clone();V.negative=0,I.negative=0;for(var O=0;V.isEven()&&I.isEven();O++)V.iushrn(1),I.iushrn(1);do{for(;V.isEven();)V.iushrn(1);for(;I.isEven();)I.iushrn(1);var U=V.cmp(I);if(U<0){var Q=V;V=I,I=Q}else if(U===0||I.cmpn(1)===0)break;V.isub(I)}while(!0);return I.iushln(O)},X.prototype.invm=function(Z){return this.egcd(Z).a.umod(Z)},X.prototype.isEven=function(){return(this.words[0]&1)===0},X.prototype.isOdd=function(){return(this.words[0]&1)===1},X.prototype.andln=function(Z){return this.words[0]&Z},X.prototype.bincn=function(Z){F(typeof Z=="number");var V=Z%26,I=(Z-V)/26,O=1<>>26,K&=67108863,this.words[Q]=K}return U!==0&&(this.words[Q]=U,this.length++),this},X.prototype.isZero=function(){return this.length===1&&this.words[0]===0},X.prototype.cmpn=function(Z){var V=Z<0;if(this.negative!==0&&!V)return-1;if(this.negative===0&&V)return 1;this._strip();var I;if(this.length>1)I=1;else{V&&(Z=-Z),F(Z<=67108863,"Number is too big");var O=this.words[0]|0;I=O===Z?0:OZ.length)return 1;if(this.length=0;I--){var O=this.words[I]|0,U=Z.words[I]|0;if(O!==U){OU&&(V=1);break}}return V},X.prototype.gtn=function(Z){return this.cmpn(Z)===1},X.prototype.gt=function(Z){return this.cmp(Z)===1},X.prototype.gten=function(Z){return this.cmpn(Z)>=0},X.prototype.gte=function(Z){return this.cmp(Z)>=0},X.prototype.ltn=function(Z){return this.cmpn(Z)===-1},X.prototype.lt=function(Z){return this.cmp(Z)===-1},X.prototype.lten=function(Z){return this.cmpn(Z)<=0},X.prototype.lte=function(Z){return this.cmp(Z)<=0},X.prototype.eqn=function(Z){return this.cmpn(Z)===0},X.prototype.eq=function(Z){return this.cmp(Z)===0},X.red=function(Z){return new Y(Z)},X.prototype.toRed=function(Z){return F(!this.red,"Already a number in reduction context"),F(this.negative===0,"red works only with positives"),Z.convertTo(this)._forceRed(Z)},X.prototype.fromRed=function(){return F(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},X.prototype._forceRed=function(Z){return this.red=Z,this},X.prototype.forceRed=function(Z){return F(!this.red,"Already a number in reduction context"),this._forceRed(Z)},X.prototype.redAdd=function(Z){return F(this.red,"redAdd works only with red numbers"),this.red.add(this,Z)},X.prototype.redIAdd=function(Z){return F(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,Z)},X.prototype.redSub=function(Z){return F(this.red,"redSub works only with red numbers"),this.red.sub(this,Z)},X.prototype.redISub=function(Z){return F(this.red,"redISub works only with red numbers"),this.red.isub(this,Z)},X.prototype.redShl=function(Z){return F(this.red,"redShl works only with red numbers"),this.red.shl(this,Z)},X.prototype.redMul=function(Z){return F(this.red,"redMul works only with red numbers"),this.red._verify2(this,Z),this.red.mul(this,Z)},X.prototype.redIMul=function(Z){return F(this.red,"redMul works only with red numbers"),this.red._verify2(this,Z),this.red.imul(this,Z)},X.prototype.redSqr=function(){return F(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},X.prototype.redISqr=function(){return F(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},X.prototype.redSqrt=function(){return F(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},X.prototype.redInvm=function(){return F(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},X.prototype.redNeg=function(){return F(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},X.prototype.redPow=function(Z){return F(this.red&&!Z.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,Z)};var b={k256:null,p224:null,p192:null,p25519:null};function u(Z,V){this.name=Z,this.p=new X(V,16),this.n=this.p.bitLength(),this.k=new X(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}u.prototype._tmp=function(){var Z=new X(null);return Z.words=new Array(Math.ceil(this.n/13)),Z},u.prototype.ireduce=function(Z){var V=Z,I;do this.split(V,this.tmp),V=this.imulK(V),V=V.iadd(this.tmp),I=V.bitLength();while(I>this.n);var O=I0?V.isub(this.p):V.strip!==void 0?V.strip():V._strip(),V},u.prototype.split=function(Z,V){Z.iushrn(this.n,0,V)},u.prototype.imulK=function(Z){return Z.imul(this.k)};function Y0(){u.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}z(Y0,u),Y0.prototype.split=function(Z,V){for(var I=4194303,O=Math.min(Z.length,9),U=0;U>>22,Q=K}Q>>>=22,Z.words[U-10]=Q,Q===0&&Z.length>10?Z.length-=10:Z.length-=9},Y0.prototype.imulK=function(Z){Z.words[Z.length]=0,Z.words[Z.length+1]=0,Z.length+=2;for(var V=0,I=0;I>>=26,Z.words[I]=U,V=O}return V!==0&&(Z.words[Z.length++]=V),Z},X._prime=function(Z){if(b[Z])return b[Z];var V;if(Z==="k256")V=new Y0;else if(Z==="p224")V=new p;else if(Z==="p192")V=new v0;else if(Z==="p25519")V=new $;else throw new Error("Unknown prime "+Z);return b[Z]=V,V};function Y(Z){if(typeof Z=="string"){var V=X._prime(Z);this.m=V.p,this.prime=V}else F(Z.gtn(1),"modulus must be greater than 1"),this.m=Z,this.prime=null}Y.prototype._verify1=function(Z){F(Z.negative===0,"red works only with positives"),F(Z.red,"red works only with red numbers")},Y.prototype._verify2=function(Z,V){F((Z.negative|V.negative)===0,"red works only with positives"),F(Z.red&&Z.red===V.red,"red works only with red numbers")},Y.prototype.imod=function(Z){return this.prime?this.prime.ireduce(Z)._forceRed(this):(J(Z,Z.umod(this.m)._forceRed(this)),Z)},Y.prototype.neg=function(Z){return Z.isZero()?Z.clone():this.m.sub(Z)._forceRed(this)},Y.prototype.add=function(Z,V){this._verify2(Z,V);var I=Z.add(V);return I.cmp(this.m)>=0&&I.isub(this.m),I._forceRed(this)},Y.prototype.iadd=function(Z,V){this._verify2(Z,V);var I=Z.iadd(V);return I.cmp(this.m)>=0&&I.isub(this.m),I},Y.prototype.sub=function(Z,V){this._verify2(Z,V);var I=Z.sub(V);return I.cmpn(0)<0&&I.iadd(this.m),I._forceRed(this)},Y.prototype.isub=function(Z,V){this._verify2(Z,V);var I=Z.isub(V);return I.cmpn(0)<0&&I.iadd(this.m),I},Y.prototype.shl=function(Z,V){return this._verify1(Z),this.imod(Z.ushln(V))},Y.prototype.imul=function(Z,V){return this._verify2(Z,V),this.imod(Z.imul(V))},Y.prototype.mul=function(Z,V){return this._verify2(Z,V),this.imod(Z.mul(V))},Y.prototype.isqr=function(Z){return this.imul(Z,Z.clone())},Y.prototype.sqr=function(Z){return this.mul(Z,Z)},Y.prototype.sqrt=function(Z){if(Z.isZero())return Z.clone();var V=this.m.andln(3);if(F(V%2===1),V===3){var I=this.m.add(new X(1)).iushrn(2);return this.pow(Z,I)}for(var O=this.m.subn(1),U=0;!O.isZero()&&O.andln(1)===0;)U++,O.iushrn(1);F(!O.isZero());var Q=new X(1).toRed(this),K=Q.redNeg(),R=this.m.subn(1).iushrn(1),A=this.m.bitLength();for(A=new X(2*A*A).toRed(this);this.pow(A,R).cmp(K)!==0;)A.redIAdd(K);for(var S=this.pow(A,O),x=this.pow(Z,O.addn(1).iushrn(1)),B=this.pow(Z,O),c=U;B.cmp(Q)!==0;){for(var q0=B,h=0;q0.cmp(Q)!==0;h++)q0=q0.redSqr();F(h=0;U--){for(var S=V.words[U],x=A-1;x>=0;x--){var B=S>>x&1;if(Q!==O[0]&&(Q=this.sqr(Q)),B===0&&K===0){R=0;continue}K<<=1,K|=B,R++,!(R!==I&&(U!==0||x!==0))&&(Q=this.mul(Q,O[K]),R=0,K=0)}A=26}return Q},Y.prototype.convertTo=function(Z){var V=Z.umod(this.m);return V===Z?V.clone():V},Y.prototype.convertFrom=function(Z){var V=Z.clone();return V.red=null,V},X.mont=function(Z){return new G(Z)};function G(Z){Y.call(this,Z),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new X(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}z(G,Y),G.prototype.convertTo=function(Z){return this.imod(Z.ushln(this.shift))},G.prototype.convertFrom=function(Z){var V=this.imod(Z.mul(this.rinv));return V.red=null,V},G.prototype.imul=function(Z,V){if(Z.isZero()||V.isZero())return Z.words[0]=0,Z.length=1,Z;var I=Z.imul(V),O=I.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),U=I.isub(O).iushrn(this.shift),Q=U;return U.cmp(this.m)>=0?Q=U.isub(this.m):U.cmpn(0)<0&&(Q=U.iadd(this.m)),Q._forceRed(this)},G.prototype.mul=function(Z,V){if(Z.isZero()||V.isZero())return new X(0)._forceRed(this);var I=Z.mul(V),O=I.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),U=I.isub(O).iushrn(this.shift),Q=U;return U.cmp(this.m)>=0?Q=U.isub(this.m):U.cmpn(0)<0&&(Q=U.iadd(this.m)),Q._forceRed(this)},G.prototype.invm=function(Z){var V=this.imod(Z._invmp(this.m).mul(this.r2));return V._forceRed(this)}})(typeof _>"u"||_,N)}}),h$=S0({"node_modules/browserify-rsa/index.js"(N,_){var k=c$(),j=L$();function F(C){var P=z(C),T=P.toRed(k.mont(C.modulus)).redPow(new k(C.publicExponent)).fromRed();return{blinder:T,unblinder:P.invm(C.modulus)}}function z(C){var P=C.modulus.byteLength(),T;do T=new k(j(P));while(T.cmp(C.modulus)>=0||!T.umod(C.prime1)||!T.umod(C.prime2));return T}function X(C,P){var T=F(P),W=P.modulus.byteLength(),J=new k(C).mul(T.blinder).umod(P.modulus),H=J.toRed(k.mont(P.prime1)),D=J.toRed(k.mont(P.prime2)),E=P.coefficient,L=P.prime1,M=P.prime2,v=H.redPow(P.exponent1).fromRed(),q=D.redPow(P.exponent2).fromRed(),g=v.isub(q).imul(E).umod(L).imul(M);return q.iadd(g).imul(T.unblinder).umod(P.modulus).toArrayLike(g0,"be",W)}X.getr=z,_.exports=X}}),TY=S0({"node_modules/elliptic/package.json"(N,_){_.exports={name:"elliptic",version:"6.5.4",description:"EC cryptography",main:"lib/elliptic.js",files:["lib"],scripts:{lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},repository:{type:"git",url:"git@github.com:indutny/elliptic"},keywords:["EC","Elliptic","curve","Cryptography"],author:"Fedor Indutny ",license:"MIT",bugs:{url:"https://github.com/indutny/elliptic/issues"},homepage:"https://github.com/indutny/elliptic",devDependencies:{brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},dependencies:{"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"}}}}),D$=S0({"node_modules/elliptic/node_modules/bn.js/lib/bn.js"(N,_){(function(k,j){function F($,Y){if(!$)throw new Error(Y||"Assertion failed")}function z($,Y){$.super_=Y;var G=function(){};G.prototype=Y.prototype,$.prototype=new G,$.prototype.constructor=$}function X($,Y,G){if(X.isBN($))return $;this.negative=0,this.words=null,this.length=0,this.red=null,$!==null&&((Y==="le"||Y==="be")&&(G=Y,Y=10),this._init($||0,Y||10,G||"be"))}typeof k=="object"?k.exports=X:j.BN=X,X.BN=X,X.wordSize=26;var C=g0;X.isBN=function($){return $ instanceof X?!0:$!==null&&typeof $=="object"&&$.constructor.wordSize===X.wordSize&&Array.isArray($.words)},X.max=function($,Y){return $.cmp(Y)>0?$:Y},X.min=function($,Y){return $.cmp(Y)<0?$:Y},X.prototype._init=function($,Y,G){if(typeof $=="number")return this._initNumber($,Y,G);if(typeof $=="object")return this._initArray($,Y,G);Y==="hex"&&(Y=16),F(Y===(Y|0)&&Y>=2&&Y<=36),$=$.toString().replace(/\s+/g,"");var Z=0;$[0]==="-"&&(Z++,this.negative=1),Z<$.length&&(Y===16?this._parseHex($,Z,G):(this._parseBase($,Y,Z),G==="le"&&this._initArray(this.toArray(),Y,G)))},X.prototype._initNumber=function($,Y,G){$<0&&(this.negative=1,$=-$),$<67108864?(this.words=[$&67108863],this.length=1):$<4503599627370496?(this.words=[$&67108863,$/67108864&67108863],this.length=2):(F($<9007199254740992),this.words=[$&67108863,$/67108864&67108863,1],this.length=3),G==="le"&&this._initArray(this.toArray(),Y,G)},X.prototype._initArray=function($,Y,G){if(F(typeof $.length=="number"),$.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil($.length/3),this.words=new Array(this.length);for(var Z=0;Z=0;Z-=3)I=$[Z]|$[Z-1]<<8|$[Z-2]<<16,this.words[V]|=I<>>26-O&67108863,O+=24,O>=26&&(O-=26,V++);else if(G==="le")for(Z=0,V=0;Z<$.length;Z+=3)I=$[Z]|$[Z+1]<<8|$[Z+2]<<16,this.words[V]|=I<>>26-O&67108863,O+=24,O>=26&&(O-=26,V++);return this.strip()};function P($,Y){var G=$.charCodeAt(Y);return G>=65&&G<=70?G-55:G>=97&&G<=102?G-87:G-48&15}function T($,Y,G){var Z=P($,G);return G-1>=Y&&(Z|=P($,G-1)<<4),Z}X.prototype._parseHex=function($,Y,G){this.length=Math.ceil(($.length-Y)/6),this.words=new Array(this.length);for(var Z=0;Z=Y;Z-=2)O=T($,Y,Z)<=18?(V-=18,I+=1,this.words[I]|=O>>>26):V+=8;else{var U=$.length-Y;for(Z=U%2===0?Y+1:Y;Z<$.length;Z+=2)O=T($,Y,Z)<=18?(V-=18,I+=1,this.words[I]|=O>>>26):V+=8}this.strip()};function W($,Y,G,Z){for(var V=0,I=Math.min($.length,G),O=Y;O=49?V+=U-49+10:U>=17?V+=U-17+10:V+=U}return V}X.prototype._parseBase=function($,Y,G){this.words=[0],this.length=1;for(var Z=0,V=1;V<=67108863;V*=Y)Z++;Z--,V=V/Y|0;for(var I=$.length-G,O=I%Z,U=Math.min(I,I-O)+G,Q=0,K=G;K1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},X.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},X.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],H=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],D=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];X.prototype.toString=function($,Y){$=$||10,Y=Y|0||1;var G;if($===16||$==="hex"){G="";for(var Z=0,V=0,I=0;I>>24-Z&16777215,V!==0||I!==this.length-1?G=J[6-U.length]+U+G:G=U+G,Z+=2,Z>=26&&(Z-=26,I--)}for(V!==0&&(G=V.toString(16)+G);G.length%Y!==0;)G="0"+G;return this.negative!==0&&(G="-"+G),G}if($===($|0)&&$>=2&&$<=36){var Q=H[$],K=D[$];G="";var R=this.clone();for(R.negative=0;!R.isZero();){var A=R.modn(K).toString($);R=R.idivn(K),R.isZero()?G=A+G:G=J[Q-A.length]+A+G}for(this.isZero()&&(G="0"+G);G.length%Y!==0;)G="0"+G;return this.negative!==0&&(G="-"+G),G}F(!1,"Base should be between 2 and 36")},X.prototype.toNumber=function(){var $=this.words[0];return this.length===2?$+=this.words[1]*67108864:this.length===3&&this.words[2]===1?$+=4503599627370496+this.words[1]*67108864:this.length>2&&F(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-$:$},X.prototype.toJSON=function(){return this.toString(16)},X.prototype.toBuffer=function($,Y){return F(typeof C<"u"),this.toArrayLike(C,$,Y)},X.prototype.toArray=function($,Y){return this.toArrayLike(Array,$,Y)},X.prototype.toArrayLike=function($,Y,G){var Z=this.byteLength(),V=G||Math.max(1,Z);F(Z<=V,"byte array longer than desired length"),F(V>0,"Requested array length <= 0"),this.strip();var I=Y==="le",O=new $(V),U,Q,K=this.clone();if(I){for(Q=0;!K.isZero();Q++)U=K.andln(255),K.iushrn(8),O[Q]=U;for(;Q=4096&&(G+=13,Y>>>=13),Y>=64&&(G+=7,Y>>>=7),Y>=8&&(G+=4,Y>>>=4),Y>=2&&(G+=2,Y>>>=2),G+Y},X.prototype._zeroBits=function($){if($===0)return 26;var Y=$,G=0;return(Y&8191)===0&&(G+=13,Y>>>=13),(Y&127)===0&&(G+=7,Y>>>=7),(Y&15)===0&&(G+=4,Y>>>=4),(Y&3)===0&&(G+=2,Y>>>=2),(Y&1)===0&&G++,G},X.prototype.bitLength=function(){var $=this.words[this.length-1],Y=this._countBits($);return(this.length-1)*26+Y};function E($){for(var Y=new Array($.bitLength()),G=0;G>>V}return Y}X.prototype.zeroBits=function(){if(this.isZero())return 0;for(var $=0,Y=0;Y$.length?this.clone().ior($):$.clone().ior(this)},X.prototype.uor=function($){return this.length>$.length?this.clone().iuor($):$.clone().iuor(this)},X.prototype.iuand=function($){var Y;this.length>$.length?Y=$:Y=this;for(var G=0;G$.length?this.clone().iand($):$.clone().iand(this)},X.prototype.uand=function($){return this.length>$.length?this.clone().iuand($):$.clone().iuand(this)},X.prototype.iuxor=function($){var Y,G;this.length>$.length?(Y=this,G=$):(Y=$,G=this);for(var Z=0;Z$.length?this.clone().ixor($):$.clone().ixor(this)},X.prototype.uxor=function($){return this.length>$.length?this.clone().iuxor($):$.clone().iuxor(this)},X.prototype.inotn=function($){F(typeof $=="number"&&$>=0);var Y=Math.ceil($/26)|0,G=$%26;this._expand(Y),G>0&&Y--;for(var Z=0;Z0&&(this.words[Z]=~this.words[Z]&67108863>>26-G),this.strip()},X.prototype.notn=function($){return this.clone().inotn($)},X.prototype.setn=function($,Y){F(typeof $=="number"&&$>=0);var G=$/26|0,Z=$%26;return this._expand(G+1),Y?this.words[G]=this.words[G]|1<$.length?(G=this,Z=$):(G=$,Z=this);for(var V=0,I=0;I>>26;for(;V!==0&&I>>26;if(this.length=G.length,V!==0)this.words[this.length]=V,this.length++;else if(G!==this)for(;I$.length?this.clone().iadd($):$.clone().iadd(this)},X.prototype.isub=function($){if($.negative!==0){$.negative=0;var Y=this.iadd($);return $.negative=1,Y._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd($),this.negative=1,this._normSign();var G=this.cmp($);if(G===0)return this.negative=0,this.length=1,this.words[0]=0,this;var Z,V;G>0?(Z=this,V=$):(Z=$,V=this);for(var I=0,O=0;O>26,this.words[O]=Y&67108863;for(;I!==0&&O>26,this.words[O]=Y&67108863;if(I===0&&O>>26,A=Q&67108863,S=Math.min(K,Y.length-1),x=Math.max(0,K-$.length+1);x<=S;x++){var B=K-x|0;V=$.words[B]|0,I=Y.words[x]|0,O=V*I+A,R+=O/67108864|0,A=O&67108863}G.words[K]=A|0,Q=R|0}return Q!==0?G.words[K]=Q|0:G.length--,G.strip()}var M=function($,Y,G){var Z=$.words,V=Y.words,I=G.words,O=0,U,Q,K,R=Z[0]|0,A=R&8191,S=R>>>13,x=Z[1]|0,B=x&8191,c=x>>>13,q0=Z[2]|0,h=q0&8191,d=q0>>>13,_0=Z[3]|0,l=_0&8191,n=_0>>>13,y0=Z[4]|0,t=y0&8191,s=y0>>>13,w0=Z[5]|0,m=w0&8191,r=w0>>>13,$$=Z[6]|0,i=$$&8191,e=$$>>>13,x0=Z[7]|0,o=x0&8191,a=x0>>>13,p0=Z[8]|0,$0=p0&8191,Q0=p0>>>13,Y$=Z[9]|0,Z0=Y$&8191,G0=Y$>>>13,Z$=V[0]|0,V0=Z$&8191,U0=Z$>>>13,G$=V[1]|0,X0=G$&8191,K0=G$>>>13,V$=V[2]|0,I0=V$&8191,O0=V$>>>13,U$=V[3]|0,J0=U$&8191,F0=U$>>>13,X$=V[4]|0,A0=X$&8191,H0=X$>>>13,K$=V[5]|0,W0=K$&8191,E0=K$>>>13,I$=V[6]|0,T0=I$&8191,D0=I$>>>13,O$=V[7]|0,C0=O$&8191,L0=O$>>>13,J$=V[8]|0,R0=J$&8191,P0=J$>>>13,F$=V[9]|0,z0=F$&8191,M0=F$>>>13;G.negative=$.negative^Y.negative,G.length=19,U=Math.imul(A,V0),Q=Math.imul(A,U0),Q=Q+Math.imul(S,V0)|0,K=Math.imul(S,U0);var Q$=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,U=Math.imul(B,V0),Q=Math.imul(B,U0),Q=Q+Math.imul(c,V0)|0,K=Math.imul(c,U0),U=U+Math.imul(A,X0)|0,Q=Q+Math.imul(A,K0)|0,Q=Q+Math.imul(S,X0)|0,K=K+Math.imul(S,K0)|0;var j0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(j0>>>26)|0,j0&=67108863,U=Math.imul(h,V0),Q=Math.imul(h,U0),Q=Q+Math.imul(d,V0)|0,K=Math.imul(d,U0),U=U+Math.imul(B,X0)|0,Q=Q+Math.imul(B,K0)|0,Q=Q+Math.imul(c,X0)|0,K=K+Math.imul(c,K0)|0,U=U+Math.imul(A,I0)|0,Q=Q+Math.imul(A,O0)|0,Q=Q+Math.imul(S,I0)|0,K=K+Math.imul(S,O0)|0;var k0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(k0>>>26)|0,k0&=67108863,U=Math.imul(l,V0),Q=Math.imul(l,U0),Q=Q+Math.imul(n,V0)|0,K=Math.imul(n,U0),U=U+Math.imul(h,X0)|0,Q=Q+Math.imul(h,K0)|0,Q=Q+Math.imul(d,X0)|0,K=K+Math.imul(d,K0)|0,U=U+Math.imul(B,I0)|0,Q=Q+Math.imul(B,O0)|0,Q=Q+Math.imul(c,I0)|0,K=K+Math.imul(c,O0)|0,U=U+Math.imul(A,J0)|0,Q=Q+Math.imul(A,F0)|0,Q=Q+Math.imul(S,J0)|0,K=K+Math.imul(S,F0)|0;var f0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(f0>>>26)|0,f0&=67108863,U=Math.imul(t,V0),Q=Math.imul(t,U0),Q=Q+Math.imul(s,V0)|0,K=Math.imul(s,U0),U=U+Math.imul(l,X0)|0,Q=Q+Math.imul(l,K0)|0,Q=Q+Math.imul(n,X0)|0,K=K+Math.imul(n,K0)|0,U=U+Math.imul(h,I0)|0,Q=Q+Math.imul(h,O0)|0,Q=Q+Math.imul(d,I0)|0,K=K+Math.imul(d,O0)|0,U=U+Math.imul(B,J0)|0,Q=Q+Math.imul(B,F0)|0,Q=Q+Math.imul(c,J0)|0,K=K+Math.imul(c,F0)|0,U=U+Math.imul(A,A0)|0,Q=Q+Math.imul(A,H0)|0,Q=Q+Math.imul(S,A0)|0,K=K+Math.imul(S,H0)|0;var c0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(c0>>>26)|0,c0&=67108863,U=Math.imul(m,V0),Q=Math.imul(m,U0),Q=Q+Math.imul(r,V0)|0,K=Math.imul(r,U0),U=U+Math.imul(t,X0)|0,Q=Q+Math.imul(t,K0)|0,Q=Q+Math.imul(s,X0)|0,K=K+Math.imul(s,K0)|0,U=U+Math.imul(l,I0)|0,Q=Q+Math.imul(l,O0)|0,Q=Q+Math.imul(n,I0)|0,K=K+Math.imul(n,O0)|0,U=U+Math.imul(h,J0)|0,Q=Q+Math.imul(h,F0)|0,Q=Q+Math.imul(d,J0)|0,K=K+Math.imul(d,F0)|0,U=U+Math.imul(B,A0)|0,Q=Q+Math.imul(B,H0)|0,Q=Q+Math.imul(c,A0)|0,K=K+Math.imul(c,H0)|0,U=U+Math.imul(A,W0)|0,Q=Q+Math.imul(A,E0)|0,Q=Q+Math.imul(S,W0)|0,K=K+Math.imul(S,E0)|0;var h0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(h0>>>26)|0,h0&=67108863,U=Math.imul(i,V0),Q=Math.imul(i,U0),Q=Q+Math.imul(e,V0)|0,K=Math.imul(e,U0),U=U+Math.imul(m,X0)|0,Q=Q+Math.imul(m,K0)|0,Q=Q+Math.imul(r,X0)|0,K=K+Math.imul(r,K0)|0,U=U+Math.imul(t,I0)|0,Q=Q+Math.imul(t,O0)|0,Q=Q+Math.imul(s,I0)|0,K=K+Math.imul(s,O0)|0,U=U+Math.imul(l,J0)|0,Q=Q+Math.imul(l,F0)|0,Q=Q+Math.imul(n,J0)|0,K=K+Math.imul(n,F0)|0,U=U+Math.imul(h,A0)|0,Q=Q+Math.imul(h,H0)|0,Q=Q+Math.imul(d,A0)|0,K=K+Math.imul(d,H0)|0,U=U+Math.imul(B,W0)|0,Q=Q+Math.imul(B,E0)|0,Q=Q+Math.imul(c,W0)|0,K=K+Math.imul(c,E0)|0,U=U+Math.imul(A,T0)|0,Q=Q+Math.imul(A,D0)|0,Q=Q+Math.imul(S,T0)|0,K=K+Math.imul(S,D0)|0;var d0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(d0>>>26)|0,d0&=67108863,U=Math.imul(o,V0),Q=Math.imul(o,U0),Q=Q+Math.imul(a,V0)|0,K=Math.imul(a,U0),U=U+Math.imul(i,X0)|0,Q=Q+Math.imul(i,K0)|0,Q=Q+Math.imul(e,X0)|0,K=K+Math.imul(e,K0)|0,U=U+Math.imul(m,I0)|0,Q=Q+Math.imul(m,O0)|0,Q=Q+Math.imul(r,I0)|0,K=K+Math.imul(r,O0)|0,U=U+Math.imul(t,J0)|0,Q=Q+Math.imul(t,F0)|0,Q=Q+Math.imul(s,J0)|0,K=K+Math.imul(s,F0)|0,U=U+Math.imul(l,A0)|0,Q=Q+Math.imul(l,H0)|0,Q=Q+Math.imul(n,A0)|0,K=K+Math.imul(n,H0)|0,U=U+Math.imul(h,W0)|0,Q=Q+Math.imul(h,E0)|0,Q=Q+Math.imul(d,W0)|0,K=K+Math.imul(d,E0)|0,U=U+Math.imul(B,T0)|0,Q=Q+Math.imul(B,D0)|0,Q=Q+Math.imul(c,T0)|0,K=K+Math.imul(c,D0)|0,U=U+Math.imul(A,C0)|0,Q=Q+Math.imul(A,L0)|0,Q=Q+Math.imul(S,C0)|0,K=K+Math.imul(S,L0)|0;var b0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(b0>>>26)|0,b0&=67108863,U=Math.imul($0,V0),Q=Math.imul($0,U0),Q=Q+Math.imul(Q0,V0)|0,K=Math.imul(Q0,U0),U=U+Math.imul(o,X0)|0,Q=Q+Math.imul(o,K0)|0,Q=Q+Math.imul(a,X0)|0,K=K+Math.imul(a,K0)|0,U=U+Math.imul(i,I0)|0,Q=Q+Math.imul(i,O0)|0,Q=Q+Math.imul(e,I0)|0,K=K+Math.imul(e,O0)|0,U=U+Math.imul(m,J0)|0,Q=Q+Math.imul(m,F0)|0,Q=Q+Math.imul(r,J0)|0,K=K+Math.imul(r,F0)|0,U=U+Math.imul(t,A0)|0,Q=Q+Math.imul(t,H0)|0,Q=Q+Math.imul(s,A0)|0,K=K+Math.imul(s,H0)|0,U=U+Math.imul(l,W0)|0,Q=Q+Math.imul(l,E0)|0,Q=Q+Math.imul(n,W0)|0,K=K+Math.imul(n,E0)|0,U=U+Math.imul(h,T0)|0,Q=Q+Math.imul(h,D0)|0,Q=Q+Math.imul(d,T0)|0,K=K+Math.imul(d,D0)|0,U=U+Math.imul(B,C0)|0,Q=Q+Math.imul(B,L0)|0,Q=Q+Math.imul(c,C0)|0,K=K+Math.imul(c,L0)|0,U=U+Math.imul(A,R0)|0,Q=Q+Math.imul(A,P0)|0,Q=Q+Math.imul(S,R0)|0,K=K+Math.imul(S,P0)|0;var l0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(l0>>>26)|0,l0&=67108863,U=Math.imul(Z0,V0),Q=Math.imul(Z0,U0),Q=Q+Math.imul(G0,V0)|0,K=Math.imul(G0,U0),U=U+Math.imul($0,X0)|0,Q=Q+Math.imul($0,K0)|0,Q=Q+Math.imul(Q0,X0)|0,K=K+Math.imul(Q0,K0)|0,U=U+Math.imul(o,I0)|0,Q=Q+Math.imul(o,O0)|0,Q=Q+Math.imul(a,I0)|0,K=K+Math.imul(a,O0)|0,U=U+Math.imul(i,J0)|0,Q=Q+Math.imul(i,F0)|0,Q=Q+Math.imul(e,J0)|0,K=K+Math.imul(e,F0)|0,U=U+Math.imul(m,A0)|0,Q=Q+Math.imul(m,H0)|0,Q=Q+Math.imul(r,A0)|0,K=K+Math.imul(r,H0)|0,U=U+Math.imul(t,W0)|0,Q=Q+Math.imul(t,E0)|0,Q=Q+Math.imul(s,W0)|0,K=K+Math.imul(s,E0)|0,U=U+Math.imul(l,T0)|0,Q=Q+Math.imul(l,D0)|0,Q=Q+Math.imul(n,T0)|0,K=K+Math.imul(n,D0)|0,U=U+Math.imul(h,C0)|0,Q=Q+Math.imul(h,L0)|0,Q=Q+Math.imul(d,C0)|0,K=K+Math.imul(d,L0)|0,U=U+Math.imul(B,R0)|0,Q=Q+Math.imul(B,P0)|0,Q=Q+Math.imul(c,R0)|0,K=K+Math.imul(c,P0)|0,U=U+Math.imul(A,z0)|0,Q=Q+Math.imul(A,M0)|0,Q=Q+Math.imul(S,z0)|0,K=K+Math.imul(S,M0)|0;var o0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(o0>>>26)|0,o0&=67108863,U=Math.imul(Z0,X0),Q=Math.imul(Z0,K0),Q=Q+Math.imul(G0,X0)|0,K=Math.imul(G0,K0),U=U+Math.imul($0,I0)|0,Q=Q+Math.imul($0,O0)|0,Q=Q+Math.imul(Q0,I0)|0,K=K+Math.imul(Q0,O0)|0,U=U+Math.imul(o,J0)|0,Q=Q+Math.imul(o,F0)|0,Q=Q+Math.imul(a,J0)|0,K=K+Math.imul(a,F0)|0,U=U+Math.imul(i,A0)|0,Q=Q+Math.imul(i,H0)|0,Q=Q+Math.imul(e,A0)|0,K=K+Math.imul(e,H0)|0,U=U+Math.imul(m,W0)|0,Q=Q+Math.imul(m,E0)|0,Q=Q+Math.imul(r,W0)|0,K=K+Math.imul(r,E0)|0,U=U+Math.imul(t,T0)|0,Q=Q+Math.imul(t,D0)|0,Q=Q+Math.imul(s,T0)|0,K=K+Math.imul(s,D0)|0,U=U+Math.imul(l,C0)|0,Q=Q+Math.imul(l,L0)|0,Q=Q+Math.imul(n,C0)|0,K=K+Math.imul(n,L0)|0,U=U+Math.imul(h,R0)|0,Q=Q+Math.imul(h,P0)|0,Q=Q+Math.imul(d,R0)|0,K=K+Math.imul(d,P0)|0,U=U+Math.imul(B,z0)|0,Q=Q+Math.imul(B,M0)|0,Q=Q+Math.imul(c,z0)|0,K=K+Math.imul(c,M0)|0;var u0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(u0>>>26)|0,u0&=67108863,U=Math.imul(Z0,I0),Q=Math.imul(Z0,O0),Q=Q+Math.imul(G0,I0)|0,K=Math.imul(G0,O0),U=U+Math.imul($0,J0)|0,Q=Q+Math.imul($0,F0)|0,Q=Q+Math.imul(Q0,J0)|0,K=K+Math.imul(Q0,F0)|0,U=U+Math.imul(o,A0)|0,Q=Q+Math.imul(o,H0)|0,Q=Q+Math.imul(a,A0)|0,K=K+Math.imul(a,H0)|0,U=U+Math.imul(i,W0)|0,Q=Q+Math.imul(i,E0)|0,Q=Q+Math.imul(e,W0)|0,K=K+Math.imul(e,E0)|0,U=U+Math.imul(m,T0)|0,Q=Q+Math.imul(m,D0)|0,Q=Q+Math.imul(r,T0)|0,K=K+Math.imul(r,D0)|0,U=U+Math.imul(t,C0)|0,Q=Q+Math.imul(t,L0)|0,Q=Q+Math.imul(s,C0)|0,K=K+Math.imul(s,L0)|0,U=U+Math.imul(l,R0)|0,Q=Q+Math.imul(l,P0)|0,Q=Q+Math.imul(n,R0)|0,K=K+Math.imul(n,P0)|0,U=U+Math.imul(h,z0)|0,Q=Q+Math.imul(h,M0)|0,Q=Q+Math.imul(d,z0)|0,K=K+Math.imul(d,M0)|0;var n0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(n0>>>26)|0,n0&=67108863,U=Math.imul(Z0,J0),Q=Math.imul(Z0,F0),Q=Q+Math.imul(G0,J0)|0,K=Math.imul(G0,F0),U=U+Math.imul($0,A0)|0,Q=Q+Math.imul($0,H0)|0,Q=Q+Math.imul(Q0,A0)|0,K=K+Math.imul(Q0,H0)|0,U=U+Math.imul(o,W0)|0,Q=Q+Math.imul(o,E0)|0,Q=Q+Math.imul(a,W0)|0,K=K+Math.imul(a,E0)|0,U=U+Math.imul(i,T0)|0,Q=Q+Math.imul(i,D0)|0,Q=Q+Math.imul(e,T0)|0,K=K+Math.imul(e,D0)|0,U=U+Math.imul(m,C0)|0,Q=Q+Math.imul(m,L0)|0,Q=Q+Math.imul(r,C0)|0,K=K+Math.imul(r,L0)|0,U=U+Math.imul(t,R0)|0,Q=Q+Math.imul(t,P0)|0,Q=Q+Math.imul(s,R0)|0,K=K+Math.imul(s,P0)|0,U=U+Math.imul(l,z0)|0,Q=Q+Math.imul(l,M0)|0,Q=Q+Math.imul(n,z0)|0,K=K+Math.imul(n,M0)|0;var s0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(s0>>>26)|0,s0&=67108863,U=Math.imul(Z0,A0),Q=Math.imul(Z0,H0),Q=Q+Math.imul(G0,A0)|0,K=Math.imul(G0,H0),U=U+Math.imul($0,W0)|0,Q=Q+Math.imul($0,E0)|0,Q=Q+Math.imul(Q0,W0)|0,K=K+Math.imul(Q0,E0)|0,U=U+Math.imul(o,T0)|0,Q=Q+Math.imul(o,D0)|0,Q=Q+Math.imul(a,T0)|0,K=K+Math.imul(a,D0)|0,U=U+Math.imul(i,C0)|0,Q=Q+Math.imul(i,L0)|0,Q=Q+Math.imul(e,C0)|0,K=K+Math.imul(e,L0)|0,U=U+Math.imul(m,R0)|0,Q=Q+Math.imul(m,P0)|0,Q=Q+Math.imul(r,R0)|0,K=K+Math.imul(r,P0)|0,U=U+Math.imul(t,z0)|0,Q=Q+Math.imul(t,M0)|0,Q=Q+Math.imul(s,z0)|0,K=K+Math.imul(s,M0)|0;var t0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(t0>>>26)|0,t0&=67108863,U=Math.imul(Z0,W0),Q=Math.imul(Z0,E0),Q=Q+Math.imul(G0,W0)|0,K=Math.imul(G0,E0),U=U+Math.imul($0,T0)|0,Q=Q+Math.imul($0,D0)|0,Q=Q+Math.imul(Q0,T0)|0,K=K+Math.imul(Q0,D0)|0,U=U+Math.imul(o,C0)|0,Q=Q+Math.imul(o,L0)|0,Q=Q+Math.imul(a,C0)|0,K=K+Math.imul(a,L0)|0,U=U+Math.imul(i,R0)|0,Q=Q+Math.imul(i,P0)|0,Q=Q+Math.imul(e,R0)|0,K=K+Math.imul(e,P0)|0,U=U+Math.imul(m,z0)|0,Q=Q+Math.imul(m,M0)|0,Q=Q+Math.imul(r,z0)|0,K=K+Math.imul(r,M0)|0;var m0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(m0>>>26)|0,m0&=67108863,U=Math.imul(Z0,T0),Q=Math.imul(Z0,D0),Q=Q+Math.imul(G0,T0)|0,K=Math.imul(G0,D0),U=U+Math.imul($0,C0)|0,Q=Q+Math.imul($0,L0)|0,Q=Q+Math.imul(Q0,C0)|0,K=K+Math.imul(Q0,L0)|0,U=U+Math.imul(o,R0)|0,Q=Q+Math.imul(o,P0)|0,Q=Q+Math.imul(a,R0)|0,K=K+Math.imul(a,P0)|0,U=U+Math.imul(i,z0)|0,Q=Q+Math.imul(i,M0)|0,Q=Q+Math.imul(e,z0)|0,K=K+Math.imul(e,M0)|0;var a0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(a0>>>26)|0,a0&=67108863,U=Math.imul(Z0,C0),Q=Math.imul(Z0,L0),Q=Q+Math.imul(G0,C0)|0,K=Math.imul(G0,L0),U=U+Math.imul($0,R0)|0,Q=Q+Math.imul($0,P0)|0,Q=Q+Math.imul(Q0,R0)|0,K=K+Math.imul(Q0,P0)|0,U=U+Math.imul(o,z0)|0,Q=Q+Math.imul(o,M0)|0,Q=Q+Math.imul(a,z0)|0,K=K+Math.imul(a,M0)|0;var e0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(e0>>>26)|0,e0&=67108863,U=Math.imul(Z0,R0),Q=Math.imul(Z0,P0),Q=Q+Math.imul(G0,R0)|0,K=Math.imul(G0,P0),U=U+Math.imul($0,z0)|0,Q=Q+Math.imul($0,M0)|0,Q=Q+Math.imul(Q0,z0)|0,K=K+Math.imul(Q0,M0)|0;var r0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(r0>>>26)|0,r0&=67108863,U=Math.imul(Z0,z0),Q=Math.imul(Z0,M0),Q=Q+Math.imul(G0,z0)|0,K=Math.imul(G0,M0);var i0=(O+U|0)+((Q&8191)<<13)|0;return O=(K+(Q>>>13)|0)+(i0>>>26)|0,i0&=67108863,I[0]=Q$,I[1]=j0,I[2]=k0,I[3]=f0,I[4]=c0,I[5]=h0,I[6]=d0,I[7]=b0,I[8]=l0,I[9]=o0,I[10]=u0,I[11]=n0,I[12]=s0,I[13]=t0,I[14]=m0,I[15]=a0,I[16]=e0,I[17]=r0,I[18]=i0,O!==0&&(I[19]=O,G.length++),G};Math.imul||(M=L);function v($,Y,G){G.negative=Y.negative^$.negative,G.length=$.length+Y.length;for(var Z=0,V=0,I=0;I>>26)|0,V+=O>>>26,O&=67108863}G.words[I]=U,Z=O,O=V}return Z!==0?G.words[I]=Z:G.length--,G.strip()}function q($,Y,G){var Z=new g;return Z.mulp($,Y,G)}X.prototype.mulTo=function($,Y){var G,Z=this.length+$.length;return this.length===10&&$.length===10?G=M(this,$,Y):Z<63?G=L(this,$,Y):Z<1024?G=v(this,$,Y):G=q(this,$,Y),G};function g($,Y){this.x=$,this.y=Y}g.prototype.makeRBT=function($){for(var Y=new Array($),G=X.prototype._countBits($)-1,Z=0;Z<$;Z++)Y[Z]=this.revBin(Z,G,$);return Y},g.prototype.revBin=function($,Y,G){if($===0||$===G-1)return $;for(var Z=0,V=0;V>=1;return Z},g.prototype.permute=function($,Y,G,Z,V,I){for(var O=0;O>>1)V++;return 1<>>13,G[2*I+1]=V&8191,V=V>>>13;for(I=2*Y;I>=26,Y+=Z/67108864|0,Y+=V>>>26,this.words[G]=V&67108863}return Y!==0&&(this.words[G]=Y,this.length++),this},X.prototype.muln=function($){return this.clone().imuln($)},X.prototype.sqr=function(){return this.mul(this)},X.prototype.isqr=function(){return this.imul(this.clone())},X.prototype.pow=function($){var Y=E($);if(Y.length===0)return new X(1);for(var G=this,Z=0;Z=0);var Y=$%26,G=($-Y)/26,Z=67108863>>>26-Y<<26-Y,V;if(Y!==0){var I=0;for(V=0;V>>26-Y}I&&(this.words[V]=I,this.length++)}if(G!==0){for(V=this.length-1;V>=0;V--)this.words[V+G]=this.words[V];for(V=0;V=0);var Z;Y?Z=(Y-Y%26)/26:Z=0;var V=$%26,I=Math.min(($-V)/26,this.length),O=67108863^67108863>>>V<I)for(this.length-=I,Q=0;Q=0&&(K!==0||Q>=Z);Q--){var R=this.words[Q]|0;this.words[Q]=K<<26-V|R>>>V,K=R&O}return U&&K!==0&&(U.words[U.length++]=K),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},X.prototype.ishrn=function($,Y,G){return F(this.negative===0),this.iushrn($,Y,G)},X.prototype.shln=function($){return this.clone().ishln($)},X.prototype.ushln=function($){return this.clone().iushln($)},X.prototype.shrn=function($){return this.clone().ishrn($)},X.prototype.ushrn=function($){return this.clone().iushrn($)},X.prototype.testn=function($){F(typeof $=="number"&&$>=0);var Y=$%26,G=($-Y)/26,Z=1<=0);var Y=$%26,G=($-Y)/26;if(F(this.negative===0,"imaskn works only with positive numbers"),this.length<=G)return this;if(Y!==0&&G++,this.length=Math.min(G,this.length),Y!==0){var Z=67108863^67108863>>>Y<=67108864;Y++)this.words[Y]-=67108864,Y===this.length-1?this.words[Y+1]=1:this.words[Y+1]++;return this.length=Math.max(this.length,Y+1),this},X.prototype.isubn=function($){if(F(typeof $=="number"),F($<67108864),$<0)return this.iaddn(-$);if(this.negative!==0)return this.negative=0,this.iaddn($),this.negative=1,this;if(this.words[0]-=$,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var Y=0;Y>26)-(U/67108864|0),this.words[V+G]=I&67108863}for(;V>26,this.words[V+G]=I&67108863;if(O===0)return this.strip();for(F(O===-1),O=0,V=0;V>26,this.words[V]=I&67108863;return this.negative=1,this.strip()},X.prototype._wordDiv=function($,Y){var G=this.length-$.length,Z=this.clone(),V=$,I=V.words[V.length-1]|0,O=this._countBits(I);G=26-O,G!==0&&(V=V.ushln(G),Z.iushln(G),I=V.words[V.length-1]|0);var U=Z.length-V.length,Q;if(Y!=="mod"){Q=new X(null),Q.length=U+1,Q.words=new Array(Q.length);for(var K=0;K=0;A--){var S=(Z.words[V.length+A]|0)*67108864+(Z.words[V.length+A-1]|0);for(S=Math.min(S/I|0,67108863),Z._ishlnsubmul(V,S,A);Z.negative!==0;)S--,Z.negative=0,Z._ishlnsubmul(V,1,A),Z.isZero()||(Z.negative^=1);Q&&(Q.words[A]=S)}return Q&&Q.strip(),Z.strip(),Y!=="div"&&G!==0&&Z.iushrn(G),{div:Q||null,mod:Z}},X.prototype.divmod=function($,Y,G){if(F(!$.isZero()),this.isZero())return{div:new X(0),mod:new X(0)};var Z,V,I;return this.negative!==0&&$.negative===0?(I=this.neg().divmod($,Y),Y!=="mod"&&(Z=I.div.neg()),Y!=="div"&&(V=I.mod.neg(),G&&V.negative!==0&&V.iadd($)),{div:Z,mod:V}):this.negative===0&&$.negative!==0?(I=this.divmod($.neg(),Y),Y!=="mod"&&(Z=I.div.neg()),{div:Z,mod:I.mod}):(this.negative&$.negative)!==0?(I=this.neg().divmod($.neg(),Y),Y!=="div"&&(V=I.mod.neg(),G&&V.negative!==0&&V.isub($)),{div:I.div,mod:V}):$.length>this.length||this.cmp($)<0?{div:new X(0),mod:this}:$.length===1?Y==="div"?{div:this.divn($.words[0]),mod:null}:Y==="mod"?{div:null,mod:new X(this.modn($.words[0]))}:{div:this.divn($.words[0]),mod:new X(this.modn($.words[0]))}:this._wordDiv($,Y)},X.prototype.div=function($){return this.divmod($,"div",!1).div},X.prototype.mod=function($){return this.divmod($,"mod",!1).mod},X.prototype.umod=function($){return this.divmod($,"mod",!0).mod},X.prototype.divRound=function($){var Y=this.divmod($);if(Y.mod.isZero())return Y.div;var G=Y.div.negative!==0?Y.mod.isub($):Y.mod,Z=$.ushrn(1),V=$.andln(1),I=G.cmp(Z);return I<0||V===1&&I===0?Y.div:Y.div.negative!==0?Y.div.isubn(1):Y.div.iaddn(1)},X.prototype.modn=function($){F($<=67108863);for(var Y=(1<<26)%$,G=0,Z=this.length-1;Z>=0;Z--)G=(Y*G+(this.words[Z]|0))%$;return G},X.prototype.idivn=function($){F($<=67108863);for(var Y=0,G=this.length-1;G>=0;G--){var Z=(this.words[G]|0)+Y*67108864;this.words[G]=Z/$|0,Y=Z%$}return this.strip()},X.prototype.divn=function($){return this.clone().idivn($)},X.prototype.egcd=function($){F($.negative===0),F(!$.isZero());var Y=this,G=$.clone();Y.negative!==0?Y=Y.umod($):Y=Y.clone();for(var Z=new X(1),V=new X(0),I=new X(0),O=new X(1),U=0;Y.isEven()&&G.isEven();)Y.iushrn(1),G.iushrn(1),++U;for(var Q=G.clone(),K=Y.clone();!Y.isZero();){for(var R=0,A=1;(Y.words[0]&A)===0&&R<26;++R,A<<=1);if(R>0)for(Y.iushrn(R);R-- >0;)(Z.isOdd()||V.isOdd())&&(Z.iadd(Q),V.isub(K)),Z.iushrn(1),V.iushrn(1);for(var S=0,x=1;(G.words[0]&x)===0&&S<26;++S,x<<=1);if(S>0)for(G.iushrn(S);S-- >0;)(I.isOdd()||O.isOdd())&&(I.iadd(Q),O.isub(K)),I.iushrn(1),O.iushrn(1);Y.cmp(G)>=0?(Y.isub(G),Z.isub(I),V.isub(O)):(G.isub(Y),I.isub(Z),O.isub(V))}return{a:I,b:O,gcd:G.iushln(U)}},X.prototype._invmp=function($){F($.negative===0),F(!$.isZero());var Y=this,G=$.clone();Y.negative!==0?Y=Y.umod($):Y=Y.clone();for(var Z=new X(1),V=new X(0),I=G.clone();Y.cmpn(1)>0&&G.cmpn(1)>0;){for(var O=0,U=1;(Y.words[0]&U)===0&&O<26;++O,U<<=1);if(O>0)for(Y.iushrn(O);O-- >0;)Z.isOdd()&&Z.iadd(I),Z.iushrn(1);for(var Q=0,K=1;(G.words[0]&K)===0&&Q<26;++Q,K<<=1);if(Q>0)for(G.iushrn(Q);Q-- >0;)V.isOdd()&&V.iadd(I),V.iushrn(1);Y.cmp(G)>=0?(Y.isub(G),Z.isub(V)):(G.isub(Y),V.isub(Z))}var R;return Y.cmpn(1)===0?R=Z:R=V,R.cmpn(0)<0&&R.iadd($),R},X.prototype.gcd=function($){if(this.isZero())return $.abs();if($.isZero())return this.abs();var Y=this.clone(),G=$.clone();Y.negative=0,G.negative=0;for(var Z=0;Y.isEven()&&G.isEven();Z++)Y.iushrn(1),G.iushrn(1);do{for(;Y.isEven();)Y.iushrn(1);for(;G.isEven();)G.iushrn(1);var V=Y.cmp(G);if(V<0){var I=Y;Y=G,G=I}else if(V===0||G.cmpn(1)===0)break;Y.isub(G)}while(!0);return G.iushln(Z)},X.prototype.invm=function($){return this.egcd($).a.umod($)},X.prototype.isEven=function(){return(this.words[0]&1)===0},X.prototype.isOdd=function(){return(this.words[0]&1)===1},X.prototype.andln=function($){return this.words[0]&$},X.prototype.bincn=function($){F(typeof $=="number");var Y=$%26,G=($-Y)/26,Z=1<>>26,O&=67108863,this.words[I]=O}return V!==0&&(this.words[I]=V,this.length++),this},X.prototype.isZero=function(){return this.length===1&&this.words[0]===0},X.prototype.cmpn=function($){var Y=$<0;if(this.negative!==0&&!Y)return-1;if(this.negative===0&&Y)return 1;this.strip();var G;if(this.length>1)G=1;else{Y&&($=-$),F($<=67108863,"Number is too big");var Z=this.words[0]|0;G=Z===$?0:Z<$?-1:1}return this.negative!==0?-G|0:G},X.prototype.cmp=function($){if(this.negative!==0&&$.negative===0)return-1;if(this.negative===0&&$.negative!==0)return 1;var Y=this.ucmp($);return this.negative!==0?-Y|0:Y},X.prototype.ucmp=function($){if(this.length>$.length)return 1;if(this.length<$.length)return-1;for(var Y=0,G=this.length-1;G>=0;G--){var Z=this.words[G]|0,V=$.words[G]|0;if(Z!==V){ZV&&(Y=1);break}}return Y},X.prototype.gtn=function($){return this.cmpn($)===1},X.prototype.gt=function($){return this.cmp($)===1},X.prototype.gten=function($){return this.cmpn($)>=0},X.prototype.gte=function($){return this.cmp($)>=0},X.prototype.ltn=function($){return this.cmpn($)===-1},X.prototype.lt=function($){return this.cmp($)===-1},X.prototype.lten=function($){return this.cmpn($)<=0},X.prototype.lte=function($){return this.cmp($)<=0},X.prototype.eqn=function($){return this.cmpn($)===0},X.prototype.eq=function($){return this.cmp($)===0},X.red=function($){return new p($)},X.prototype.toRed=function($){return F(!this.red,"Already a number in reduction context"),F(this.negative===0,"red works only with positives"),$.convertTo(this)._forceRed($)},X.prototype.fromRed=function(){return F(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},X.prototype._forceRed=function($){return this.red=$,this},X.prototype.forceRed=function($){return F(!this.red,"Already a number in reduction context"),this._forceRed($)},X.prototype.redAdd=function($){return F(this.red,"redAdd works only with red numbers"),this.red.add(this,$)},X.prototype.redIAdd=function($){return F(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,$)},X.prototype.redSub=function($){return F(this.red,"redSub works only with red numbers"),this.red.sub(this,$)},X.prototype.redISub=function($){return F(this.red,"redISub works only with red numbers"),this.red.isub(this,$)},X.prototype.redShl=function($){return F(this.red,"redShl works only with red numbers"),this.red.shl(this,$)},X.prototype.redMul=function($){return F(this.red,"redMul works only with red numbers"),this.red._verify2(this,$),this.red.mul(this,$)},X.prototype.redIMul=function($){return F(this.red,"redMul works only with red numbers"),this.red._verify2(this,$),this.red.imul(this,$)},X.prototype.redSqr=function(){return F(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},X.prototype.redISqr=function(){return F(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},X.prototype.redSqrt=function(){return F(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},X.prototype.redInvm=function(){return F(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},X.prototype.redNeg=function(){return F(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},X.prototype.redPow=function($){return F(this.red&&!$.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,$)};var y={k256:null,p224:null,p192:null,p25519:null};function w($,Y){this.name=$,this.p=new X(Y,16),this.n=this.p.bitLength(),this.k=new X(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}w.prototype._tmp=function(){var $=new X(null);return $.words=new Array(Math.ceil(this.n/13)),$},w.prototype.ireduce=function($){var Y=$,G;do this.split(Y,this.tmp),Y=this.imulK(Y),Y=Y.iadd(this.tmp),G=Y.bitLength();while(G>this.n);var Z=G0?Y.isub(this.p):Y.strip!==void 0?Y.strip():Y._strip(),Y},w.prototype.split=function($,Y){$.iushrn(this.n,0,Y)},w.prototype.imulK=function($){return $.imul(this.k)};function f(){w.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}z(f,w),f.prototype.split=function($,Y){for(var G=4194303,Z=Math.min($.length,9),V=0;V>>22,I=O}I>>>=22,$.words[V-10]=I,I===0&&$.length>10?$.length-=10:$.length-=9},f.prototype.imulK=function($){$.words[$.length]=0,$.words[$.length+1]=0,$.length+=2;for(var Y=0,G=0;G<$.length;G++){var Z=$.words[G]|0;Y+=Z*977,$.words[G]=Y&67108863,Y=Z*64+(Y/67108864|0)}return $.words[$.length-1]===0&&($.length--,$.words[$.length-1]===0&&$.length--),$};function b(){w.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}z(b,w);function u(){w.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}z(u,w);function Y0(){w.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}z(Y0,w),Y0.prototype.imulK=function($){for(var Y=0,G=0;G<$.length;G++){var Z=($.words[G]|0)*19+Y,V=Z&67108863;Z>>>=26,$.words[G]=V,Y=Z}return Y!==0&&($.words[$.length++]=Y),$},X._prime=function($){if(y[$])return y[$];var Y;if($==="k256")Y=new f;else if($==="p224")Y=new b;else if($==="p192")Y=new u;else if($==="p25519")Y=new Y0;else throw new Error("Unknown prime "+$);return y[$]=Y,Y};function p($){if(typeof $=="string"){var Y=X._prime($);this.m=Y.p,this.prime=Y}else F($.gtn(1),"modulus must be greater than 1"),this.m=$,this.prime=null}p.prototype._verify1=function($){F($.negative===0,"red works only with positives"),F($.red,"red works only with red numbers")},p.prototype._verify2=function($,Y){F(($.negative|Y.negative)===0,"red works only with positives"),F($.red&&$.red===Y.red,"red works only with red numbers")},p.prototype.imod=function($){return this.prime?this.prime.ireduce($)._forceRed(this):$.umod(this.m)._forceRed(this)},p.prototype.neg=function($){return $.isZero()?$.clone():this.m.sub($)._forceRed(this)},p.prototype.add=function($,Y){this._verify2($,Y);var G=$.add(Y);return G.cmp(this.m)>=0&&G.isub(this.m),G._forceRed(this)},p.prototype.iadd=function($,Y){this._verify2($,Y);var G=$.iadd(Y);return G.cmp(this.m)>=0&&G.isub(this.m),G},p.prototype.sub=function($,Y){this._verify2($,Y);var G=$.sub(Y);return G.cmpn(0)<0&&G.iadd(this.m),G._forceRed(this)},p.prototype.isub=function($,Y){this._verify2($,Y);var G=$.isub(Y);return G.cmpn(0)<0&&G.iadd(this.m),G},p.prototype.shl=function($,Y){return this._verify1($),this.imod($.ushln(Y))},p.prototype.imul=function($,Y){return this._verify2($,Y),this.imod($.imul(Y))},p.prototype.mul=function($,Y){return this._verify2($,Y),this.imod($.mul(Y))},p.prototype.isqr=function($){return this.imul($,$.clone())},p.prototype.sqr=function($){return this.mul($,$)},p.prototype.sqrt=function($){if($.isZero())return $.clone();var Y=this.m.andln(3);if(F(Y%2===1),Y===3){var G=this.m.add(new X(1)).iushrn(2);return this.pow($,G)}for(var Z=this.m.subn(1),V=0;!Z.isZero()&&Z.andln(1)===0;)V++,Z.iushrn(1);F(!Z.isZero());var I=new X(1).toRed(this),O=I.redNeg(),U=this.m.subn(1).iushrn(1),Q=this.m.bitLength();for(Q=new X(2*Q*Q).toRed(this);this.pow(Q,U).cmp(O)!==0;)Q.redIAdd(O);for(var K=this.pow(Q,Z),R=this.pow($,Z.addn(1).iushrn(1)),A=this.pow($,Z),S=V;A.cmp(I)!==0;){for(var x=A,B=0;x.cmp(I)!==0;B++)x=x.redSqr();F(B=0;V--){for(var K=Y.words[V],R=Q-1;R>=0;R--){var A=K>>R&1;if(I!==Z[0]&&(I=this.sqr(I)),A===0&&O===0){U=0;continue}O<<=1,O|=A,U++,!(U!==G&&(V!==0||R!==0))&&(I=this.mul(I,Z[O]),U=0,O=0)}Q=26}return I},p.prototype.convertTo=function($){var Y=$.umod(this.m);return Y===$?Y.clone():Y},p.prototype.convertFrom=function($){var Y=$.clone();return Y.red=null,Y},X.mont=function($){return new v0($)};function v0($){p.call(this,$),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new X(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}z(v0,p),v0.prototype.convertTo=function($){return this.imod($.ushln(this.shift))},v0.prototype.convertFrom=function($){var Y=this.imod($.mul(this.rinv));return Y.red=null,Y},v0.prototype.imul=function($,Y){if($.isZero()||Y.isZero())return $.words[0]=0,$.length=1,$;var G=$.imul(Y),Z=G.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),V=G.isub(Z).iushrn(this.shift),I=V;return V.cmp(this.m)>=0?I=V.isub(this.m):V.cmpn(0)<0&&(I=V.iadd(this.m)),I._forceRed(this)},v0.prototype.mul=function($,Y){if($.isZero()||Y.isZero())return new X(0)._forceRed(this);var G=$.mul(Y),Z=G.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),V=G.isub(Z).iushrn(this.shift),I=V;return V.cmp(this.m)>=0?I=V.isub(this.m):V.cmpn(0)<0&&(I=V.iadd(this.m)),I._forceRed(this)},v0.prototype.invm=function($){var Y=this.imod($._invmp(this.m).mul(this.r2));return Y._forceRed(this)}})(typeof _>"u"||_,N)}}),zQ=S0({"node_modules/minimalistic-crypto-utils/lib/utils.js"(N){var _=N;function k(z,X){if(Array.isArray(z))return z.slice();if(!z)return[];var C=[];if(typeof z!="string"){for(var P=0;P>8,J=T&255;W?C.push(W,J):C.push(J)}return C}_.toArray=k;function j(z){return z.length===1?"0"+z:z}_.zero2=j;function F(z){for(var X="",C=0;C(E>>1)-1?v=(E>>1)-q:v=q,L.isubn(v)):v=0,D[M]=v,L.iushrn(1)}return D}_.getNAF=z;function X(W,J){var H=[[],[]];W=W.clone(),J=J.clone();for(var D=0,E=0,L;W.cmpn(-D)>0||J.cmpn(-E)>0;){var M=W.andln(3)+D&3,v=J.andln(3)+E&3;M===3&&(M=-1),v===3&&(v=-1);var q;(M&1)===0?q=0:(L=W.andln(7)+D&7,(L===3||L===5)&&v===2?q=-M:q=M),H[0].push(q);var g;(v&1)===0?g=0:(L=J.andln(7)+E&7,(L===3||L===5)&&M===2?g=-v:g=v),H[1].push(g),2*D===q+1&&(D=1-D),2*E===g+1&&(E=1-E),W.iushrn(1),J.iushrn(1)}return H}_.getJSF=X;function C(W,J,H){var D="_"+J;W.prototype[J]=function(){return this[D]!==void 0?this[D]:this[D]=H.call(this)}}_.cachedProperty=C;function P(W){return typeof W=="string"?_.toArray(W,"hex"):W}_.parseBytes=P;function T(W){return new k(W,"hex","le")}_.intFromLE=T}}),k$=S0({"node_modules/elliptic/lib/elliptic/curve/base.js"(N,_){var k=D$(),j=E$(),F=j.getNAF,z=j.getJSF,X=j.assert;function C(T,W){this.type=T,this.p=new k(W.p,16),this.red=W.prime?k.red(W.prime):k.mont(this.p),this.zero=new k(0).toRed(this.red),this.one=new k(1).toRed(this.red),this.two=new k(2).toRed(this.red),this.n=W.n&&new k(W.n,16),this.g=W.g&&this.pointFromJSON(W.g,W.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var J=this.n&&this.p.div(this.n);!J||J.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}_.exports=C,C.prototype.point=function(){throw new Error("Not implemented")},C.prototype.validate=function(){throw new Error("Not implemented")},C.prototype._fixedNafMul=function(T,W){X(T.precomputed);var J=T._getDoubles(),H=F(W,1,this._bitLength),D=(1<=L;v--)M=(M<<1)+H[v];E.push(M)}for(var q=this.jpoint(null,null,null),g=this.jpoint(null,null,null),y=D;y>0;y--){for(L=0;L=0;M--){for(var v=0;M>=0&&E[M]===0;M--)v++;if(M>=0&&v++,L=L.dblp(v),M<0)break;var q=E[M];X(q!==0),T.type==="affine"?q>0?L=L.mixedAdd(D[q-1>>1]):L=L.mixedAdd(D[-q-1>>1].neg()):q>0?L=L.add(D[q-1>>1]):L=L.add(D[-q-1>>1].neg())}return T.type==="affine"?L.toP():L},C.prototype._wnafMulAdd=function(T,W,J,H,D){var E=this._wnafT1,L=this._wnafT2,M=this._wnafT3,v=0,q,g,y;for(q=0;q=1;q-=2){var f=q-1,b=q;if(E[f]!==1||E[b]!==1){M[f]=F(J[f],E[f],this._bitLength),M[b]=F(J[b],E[b],this._bitLength),v=Math.max(M[f].length,v),v=Math.max(M[b].length,v);continue}var u=[W[f],null,null,W[b]];W[f].y.cmp(W[b].y)===0?(u[1]=W[f].add(W[b]),u[2]=W[f].toJ().mixedAdd(W[b].neg())):W[f].y.cmp(W[b].y.redNeg())===0?(u[1]=W[f].toJ().mixedAdd(W[b]),u[2]=W[f].add(W[b].neg())):(u[1]=W[f].toJ().mixedAdd(W[b]),u[2]=W[f].toJ().mixedAdd(W[b].neg()));var Y0=[-3,-1,-5,-7,0,7,5,1,3],p=z(J[f],J[b]);for(v=Math.max(p[0].length,v),M[f]=new Array(v),M[b]=new Array(v),g=0;g=0;q--){for(var Z=0;q>=0;){var V=!0;for(g=0;g=0&&Z++,Y=Y.dblp(Z),q<0)break;for(g=0;g0?y=L[g][I-1>>1]:I<0&&(y=L[g][-I-1>>1].neg()),y.type==="affine"?Y=Y.mixedAdd(y):Y=Y.add(y))}}for(q=0;q=Math.ceil((T.bitLength()+1)/W.step):!1},P.prototype._getDoubles=function(T,W){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var J=[this],H=this,D=0;D=0&&(f=q,b=g),y.negative&&(y=y.neg(),w=w.neg()),f.negative&&(f=f.neg(),b=b.neg()),[{a:y,b:w},{a:f,b}]},C.prototype._endoSplit=function(W){var J=this.endo.basis,H=J[0],D=J[1],E=D.b.mul(W).divRound(this.n),L=H.b.neg().mul(W).divRound(this.n),M=E.mul(H.a),v=L.mul(D.a),q=E.mul(H.b),g=L.mul(D.b),y=W.sub(M).sub(v),w=q.add(g).neg();return{k1:y,k2:w}},C.prototype.pointFromX=function(W,J){W=new j(W,16),W.red||(W=W.toRed(this.red));var H=W.redSqr().redMul(W).redIAdd(W.redMul(this.a)).redIAdd(this.b),D=H.redSqrt();if(D.redSqr().redSub(H).cmp(this.zero)!==0)throw new Error("invalid point");var E=D.fromRed().isOdd();return(J&&!E||!J&&E)&&(D=D.redNeg()),this.point(W,D)},C.prototype.validate=function(W){if(W.inf)return!0;var{x:J,y:H}=W,D=this.a.redMul(J),E=J.redSqr().redMul(J).redIAdd(D).redIAdd(this.b);return H.redSqr().redISub(E).cmpn(0)===0},C.prototype._endoWnafMulAdd=function(W,J,H){for(var D=this._endoWnafT1,E=this._endoWnafT2,L=0;L":""},P.prototype.isInfinity=function(){return this.inf},P.prototype.add=function(W){if(this.inf)return W;if(W.inf)return this;if(this.eq(W))return this.dbl();if(this.neg().eq(W))return this.curve.point(null,null);if(this.x.cmp(W.x)===0)return this.curve.point(null,null);var J=this.y.redSub(W.y);J.cmpn(0)!==0&&(J=J.redMul(this.x.redSub(W.x).redInvm()));var H=J.redSqr().redISub(this.x).redISub(W.x),D=J.redMul(this.x.redSub(H)).redISub(this.y);return this.curve.point(H,D)},P.prototype.dbl=function(){if(this.inf)return this;var W=this.y.redAdd(this.y);if(W.cmpn(0)===0)return this.curve.point(null,null);var J=this.curve.a,H=this.x.redSqr(),D=W.redInvm(),E=H.redAdd(H).redIAdd(H).redIAdd(J).redMul(D),L=E.redSqr().redISub(this.x.redAdd(this.x)),M=E.redMul(this.x.redSub(L)).redISub(this.y);return this.curve.point(L,M)},P.prototype.getX=function(){return this.x.fromRed()},P.prototype.getY=function(){return this.y.fromRed()},P.prototype.mul=function(W){return W=new j(W,16),this.isInfinity()?this:this._hasDoubles(W)?this.curve._fixedNafMul(this,W):this.curve.endo?this.curve._endoWnafMulAdd([this],[W]):this.curve._wnafMul(this,W)},P.prototype.mulAdd=function(W,J,H){var D=[this,J],E=[W,H];return this.curve.endo?this.curve._endoWnafMulAdd(D,E):this.curve._wnafMulAdd(1,D,E,2)},P.prototype.jmulAdd=function(W,J,H){var D=[this,J],E=[W,H];return this.curve.endo?this.curve._endoWnafMulAdd(D,E,!0):this.curve._wnafMulAdd(1,D,E,2,!0)},P.prototype.eq=function(W){return this===W||this.inf===W.inf&&(this.inf||this.x.cmp(W.x)===0&&this.y.cmp(W.y)===0)},P.prototype.neg=function(W){if(this.inf)return this;var J=this.curve.point(this.x,this.y.redNeg());if(W&&this.precomputed){var H=this.precomputed,D=function(E){return E.neg()};J.precomputed={naf:H.naf&&{wnd:H.naf.wnd,points:H.naf.points.map(D)},doubles:H.doubles&&{step:H.doubles.step,points:H.doubles.points.map(D)}}}return J},P.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var W=this.curve.jpoint(this.x,this.y,this.curve.one);return W};function T(W,J,H,D){z.BasePoint.call(this,W,"jacobian"),J===null&&H===null&&D===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new j(0)):(this.x=new j(J,16),this.y=new j(H,16),this.z=new j(D,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}F(T,z.BasePoint),C.prototype.jpoint=function(W,J,H){return new T(this,W,J,H)},T.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var W=this.z.redInvm(),J=W.redSqr(),H=this.x.redMul(J),D=this.y.redMul(J).redMul(W);return this.curve.point(H,D)},T.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},T.prototype.add=function(W){if(this.isInfinity())return W;if(W.isInfinity())return this;var J=W.z.redSqr(),H=this.z.redSqr(),D=this.x.redMul(J),E=W.x.redMul(H),L=this.y.redMul(J.redMul(W.z)),M=W.y.redMul(H.redMul(this.z)),v=D.redSub(E),q=L.redSub(M);if(v.cmpn(0)===0)return q.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var g=v.redSqr(),y=g.redMul(v),w=D.redMul(g),f=q.redSqr().redIAdd(y).redISub(w).redISub(w),b=q.redMul(w.redISub(f)).redISub(L.redMul(y)),u=this.z.redMul(W.z).redMul(v);return this.curve.jpoint(f,b,u)},T.prototype.mixedAdd=function(W){if(this.isInfinity())return W.toJ();if(W.isInfinity())return this;var J=this.z.redSqr(),H=this.x,D=W.x.redMul(J),E=this.y,L=W.y.redMul(J).redMul(this.z),M=H.redSub(D),v=E.redSub(L);if(M.cmpn(0)===0)return v.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var q=M.redSqr(),g=q.redMul(M),y=H.redMul(q),w=v.redSqr().redIAdd(g).redISub(y).redISub(y),f=v.redMul(y.redISub(w)).redISub(E.redMul(g)),b=this.z.redMul(M);return this.curve.jpoint(w,f,b)},T.prototype.dblp=function(W){if(W===0)return this;if(this.isInfinity())return this;if(!W)return this.dbl();var J;if(this.curve.zeroA||this.curve.threeA){var H=this;for(J=0;J=0)return!1;if(H.redIAdd(E),this.x.cmp(H)===0)return!0}},T.prototype.inspect=function(){return this.isInfinity()?"":""},T.prototype.isInfinity=function(){return this.z.cmpn(0)===0}}}),CY=S0({"node_modules/elliptic/lib/elliptic/curve/mont.js"(N,_){var k=D$(),j=B0(),F=k$(),z=E$();function X(P){F.call(this,"mont",P),this.a=new k(P.a,16).toRed(this.red),this.b=new k(P.b,16).toRed(this.red),this.i4=new k(4).toRed(this.red).redInvm(),this.two=new k(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}j(X,F),_.exports=X,X.prototype.validate=function(P){var T=P.normalize().x,W=T.redSqr(),J=W.redMul(T).redAdd(W.redMul(this.a)).redAdd(T),H=J.redSqrt();return H.redSqr().cmp(J)===0};function C(P,T,W){F.BasePoint.call(this,P,"projective"),T===null&&W===null?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new k(T,16),this.z=new k(W,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}j(C,F.BasePoint),X.prototype.decodePoint=function(P,T){return this.point(z.toArray(P,T),1)},X.prototype.point=function(P,T){return new C(this,P,T)},X.prototype.pointFromJSON=function(P){return C.fromJSON(this,P)},C.prototype.precompute=function(){},C.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},C.fromJSON=function(P,T){return new C(P,T[0],T[1]||P.one)},C.prototype.inspect=function(){return this.isInfinity()?"":""},C.prototype.isInfinity=function(){return this.z.cmpn(0)===0},C.prototype.dbl=function(){var P=this.x.redAdd(this.z),T=P.redSqr(),W=this.x.redSub(this.z),J=W.redSqr(),H=T.redSub(J),D=T.redMul(J),E=H.redMul(J.redAdd(this.curve.a24.redMul(H)));return this.curve.point(D,E)},C.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},C.prototype.diffAdd=function(P,T){var W=this.x.redAdd(this.z),J=this.x.redSub(this.z),H=P.x.redAdd(P.z),D=P.x.redSub(P.z),E=D.redMul(W),L=H.redMul(J),M=T.z.redMul(E.redAdd(L).redSqr()),v=T.x.redMul(E.redISub(L).redSqr());return this.curve.point(M,v)},C.prototype.mul=function(P){for(var T=P.clone(),W=this,J=this.curve.point(null,null),H=this,D=[];T.cmpn(0)!==0;T.iushrn(1))D.push(T.andln(1));for(var E=D.length-1;E>=0;E--)D[E]===0?(W=W.diffAdd(J,H),J=J.dbl()):(J=W.diffAdd(J,H),W=W.dbl());return J},C.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},C.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},C.prototype.eq=function(P){return this.getX().cmp(P.getX())===0},C.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},C.prototype.getX=function(){return this.normalize(),this.x.fromRed()}}}),LY=S0({"node_modules/elliptic/lib/elliptic/curve/edwards.js"(N,_){var k=E$(),j=D$(),F=B0(),z=k$(),X=k.assert;function C(T){this.twisted=(T.a|0)!==1,this.mOneA=this.twisted&&(T.a|0)===-1,this.extended=this.mOneA,z.call(this,"edwards",T),this.a=new j(T.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new j(T.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new j(T.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),X(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(T.c|0)===1}F(C,z),_.exports=C,C.prototype._mulA=function(T){return this.mOneA?T.redNeg():this.a.redMul(T)},C.prototype._mulC=function(T){return this.oneC?T:this.c.redMul(T)},C.prototype.jpoint=function(T,W,J,H){return this.point(T,W,J,H)},C.prototype.pointFromX=function(T,W){T=new j(T,16),T.red||(T=T.toRed(this.red));var J=T.redSqr(),H=this.c2.redSub(this.a.redMul(J)),D=this.one.redSub(this.c2.redMul(this.d).redMul(J)),E=H.redMul(D.redInvm()),L=E.redSqrt();if(L.redSqr().redSub(E).cmp(this.zero)!==0)throw new Error("invalid point");var M=L.fromRed().isOdd();return(W&&!M||!W&&M)&&(L=L.redNeg()),this.point(T,L)},C.prototype.pointFromY=function(T,W){T=new j(T,16),T.red||(T=T.toRed(this.red));var J=T.redSqr(),H=J.redSub(this.c2),D=J.redMul(this.d).redMul(this.c2).redSub(this.a),E=H.redMul(D.redInvm());if(E.cmp(this.zero)===0){if(W)throw new Error("invalid point");return this.point(this.zero,T)}var L=E.redSqrt();if(L.redSqr().redSub(E).cmp(this.zero)!==0)throw new Error("invalid point");return L.fromRed().isOdd()!==W&&(L=L.redNeg()),this.point(L,T)},C.prototype.validate=function(T){if(T.isInfinity())return!0;T.normalize();var W=T.x.redSqr(),J=T.y.redSqr(),H=W.redMul(this.a).redAdd(J),D=this.c2.redMul(this.one.redAdd(this.d.redMul(W).redMul(J)));return H.cmp(D)===0};function P(T,W,J,H,D){z.BasePoint.call(this,T,"projective"),W===null&&J===null&&H===null?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new j(W,16),this.y=new j(J,16),this.z=H?new j(H,16):this.curve.one,this.t=D&&new j(D,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}F(P,z.BasePoint),C.prototype.pointFromJSON=function(T){return P.fromJSON(this,T)},C.prototype.point=function(T,W,J,H){return new P(this,T,W,J,H)},P.fromJSON=function(T,W){return new P(T,W[0],W[1],W[2])},P.prototype.inspect=function(){return this.isInfinity()?"":""},P.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)},P.prototype._extDbl=function(){var T=this.x.redSqr(),W=this.y.redSqr(),J=this.z.redSqr();J=J.redIAdd(J);var H=this.curve._mulA(T),D=this.x.redAdd(this.y).redSqr().redISub(T).redISub(W),E=H.redAdd(W),L=E.redSub(J),M=H.redSub(W),v=D.redMul(L),q=E.redMul(M),g=D.redMul(M),y=L.redMul(E);return this.curve.point(v,q,y,g)},P.prototype._projDbl=function(){var T=this.x.redAdd(this.y).redSqr(),W=this.x.redSqr(),J=this.y.redSqr(),H,D,E,L,M,v;if(this.curve.twisted){L=this.curve._mulA(W);var q=L.redAdd(J);this.zOne?(H=T.redSub(W).redSub(J).redMul(q.redSub(this.curve.two)),D=q.redMul(L.redSub(J)),E=q.redSqr().redSub(q).redSub(q)):(M=this.z.redSqr(),v=q.redSub(M).redISub(M),H=T.redSub(W).redISub(J).redMul(v),D=q.redMul(L.redSub(J)),E=q.redMul(v))}else L=W.redAdd(J),M=this.curve._mulC(this.z).redSqr(),v=L.redSub(M).redSub(M),H=this.curve._mulC(T.redISub(L)).redMul(v),D=this.curve._mulC(L).redMul(W.redISub(J)),E=L.redMul(v);return this.curve.point(H,D,E)},P.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},P.prototype._extAdd=function(T){var W=this.y.redSub(this.x).redMul(T.y.redSub(T.x)),J=this.y.redAdd(this.x).redMul(T.y.redAdd(T.x)),H=this.t.redMul(this.curve.dd).redMul(T.t),D=this.z.redMul(T.z.redAdd(T.z)),E=J.redSub(W),L=D.redSub(H),M=D.redAdd(H),v=J.redAdd(W),q=E.redMul(L),g=M.redMul(v),y=E.redMul(v),w=L.redMul(M);return this.curve.point(q,g,w,y)},P.prototype._projAdd=function(T){var W=this.z.redMul(T.z),J=W.redSqr(),H=this.x.redMul(T.x),D=this.y.redMul(T.y),E=this.curve.d.redMul(H).redMul(D),L=J.redSub(E),M=J.redAdd(E),v=this.x.redAdd(this.y).redMul(T.x.redAdd(T.y)).redISub(H).redISub(D),q=W.redMul(L).redMul(v),g,y;return this.curve.twisted?(g=W.redMul(M).redMul(D.redSub(this.curve._mulA(H))),y=L.redMul(M)):(g=W.redMul(M).redMul(D.redSub(H)),y=this.curve._mulC(L).redMul(M)),this.curve.point(q,g,y)},P.prototype.add=function(T){return this.isInfinity()?T:T.isInfinity()?this:this.curve.extended?this._extAdd(T):this._projAdd(T)},P.prototype.mul=function(T){return this._hasDoubles(T)?this.curve._fixedNafMul(this,T):this.curve._wnafMul(this,T)},P.prototype.mulAdd=function(T,W,J){return this.curve._wnafMulAdd(1,[this,W],[T,J],2,!1)},P.prototype.jmulAdd=function(T,W,J){return this.curve._wnafMulAdd(1,[this,W],[T,J],2,!0)},P.prototype.normalize=function(){if(this.zOne)return this;var T=this.z.redInvm();return this.x=this.x.redMul(T),this.y=this.y.redMul(T),this.t&&(this.t=this.t.redMul(T)),this.z=this.curve.one,this.zOne=!0,this},P.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},P.prototype.getX=function(){return this.normalize(),this.x.fromRed()},P.prototype.getY=function(){return this.normalize(),this.y.fromRed()},P.prototype.eq=function(T){return this===T||this.getX().cmp(T.getX())===0&&this.getY().cmp(T.getY())===0},P.prototype.eqXToP=function(T){var W=T.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(W)===0)return!0;for(var J=T.clone(),H=this.curve.redN.redMul(this.z);;){if(J.iadd(this.curve.n),J.cmp(this.curve.p)>=0)return!1;if(W.redIAdd(H),this.x.cmp(W)===0)return!0}},P.prototype.toP=P.prototype.normalize,P.prototype.mixedAdd=P.prototype.add}}),MQ=S0({"node_modules/elliptic/lib/elliptic/curve/index.js"(N){var _=N;_.base=k$(),_.short=DY(),_.mont=CY(),_.edwards=LY()}}),T$=S0({"node_modules/hash.js/lib/hash/utils.js"(N){var _=W$(),k=B0();N.inherits=k;function j(Y,G){return(Y.charCodeAt(G)&64512)!==55296||G<0||G+1>=Y.length?!1:(Y.charCodeAt(G+1)&64512)===56320}function F(Y,G){if(Array.isArray(Y))return Y.slice();if(!Y)return[];var Z=[];if(typeof Y=="string")if(G){if(G==="hex")for(Y=Y.replace(/[^a-z0-9]+/gi,""),Y.length%2!==0&&(Y="0"+Y),I=0;I>6|192,Z[V++]=O&63|128):j(Y,I)?(O=65536+((O&1023)<<10)+(Y.charCodeAt(++I)&1023),Z[V++]=O>>18|240,Z[V++]=O>>12&63|128,Z[V++]=O>>6&63|128,Z[V++]=O&63|128):(Z[V++]=O>>12|224,Z[V++]=O>>6&63|128,Z[V++]=O&63|128)}else for(I=0;I>>24|Y>>>8&65280|Y<<8&16711680|(Y&255)<<24;return G>>>0}N.htonl=X;function C(Y,G){for(var Z="",V=0;V>>0}return O}N.join32=W;function J(Y,G){for(var Z=new Array(Y.length*4),V=0,I=0;V>>24,Z[I+1]=O>>>16&255,Z[I+2]=O>>>8&255,Z[I+3]=O&255):(Z[I+3]=O>>>24,Z[I+2]=O>>>16&255,Z[I+1]=O>>>8&255,Z[I]=O&255)}return Z}N.split32=J;function H(Y,G){return Y>>>G|Y<<32-G}N.rotr32=H;function D(Y,G){return Y<>>32-G}N.rotl32=D;function E(Y,G){return Y+G>>>0}N.sum32=E;function L(Y,G,Z){return Y+G+Z>>>0}N.sum32_3=L;function M(Y,G,Z,V){return Y+G+Z+V>>>0}N.sum32_4=M;function v(Y,G,Z,V,I){return Y+G+Z+V+I>>>0}N.sum32_5=v;function q(Y,G,Z,V){var I=Y[G],O=Y[G+1],U=V+O>>>0,Q=(U>>0,Y[G+1]=U}N.sum64=q;function g(Y,G,Z,V){var I=G+V>>>0,O=(I>>0}N.sum64_hi=g;function y(Y,G,Z,V){var I=G+V;return I>>>0}N.sum64_lo=y;function w(Y,G,Z,V,I,O,U,Q){var K=0,R=G;R=R+V>>>0,K+=R>>0,K+=R>>0,K+=R>>0}N.sum64_4_hi=w;function f(Y,G,Z,V,I,O,U,Q){var K=G+V+O+Q;return K>>>0}N.sum64_4_lo=f;function b(Y,G,Z,V,I,O,U,Q,K,R){var A=0,S=G;S=S+V>>>0,A+=S>>0,A+=S>>0,A+=S>>0,A+=S>>0}N.sum64_5_hi=b;function u(Y,G,Z,V,I,O,U,Q,K,R){var A=G+V+O+Q+R;return A>>>0}N.sum64_5_lo=u;function Y0(Y,G,Z){var V=G<<32-Z|Y>>>Z;return V>>>0}N.rotr64_hi=Y0;function p(Y,G,Z){var V=Y<<32-Z|G>>>Z;return V>>>0}N.rotr64_lo=p;function v0(Y,G,Z){return Y>>>Z}N.shr64_hi=v0;function $(Y,G,Z){var V=Y<<32-Z|G>>>Z;return V>>>0}N.shr64_lo=$}}),v$=S0({"node_modules/hash.js/lib/hash/common.js"(N){var _=T$(),k=W$();function j(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}N.BlockHash=j,j.prototype.update=function(F,z){if(F=_.toArray(F,z),this.pending?this.pending=this.pending.concat(F):this.pending=F,this.pendingTotal+=F.length,this.pending.length>=this._delta8){F=this.pending;var X=F.length%this._delta8;this.pending=F.slice(F.length-X,F.length),this.pending.length===0&&(this.pending=null),F=_.join32(F,0,F.length-X,this.endian);for(var C=0;C>>24&255,C[P++]=F>>>16&255,C[P++]=F>>>8&255,C[P++]=F&255}else for(C[P++]=F&255,C[P++]=F>>>8&255,C[P++]=F>>>16&255,C[P++]=F>>>24&255,C[P++]=0,C[P++]=0,C[P++]=0,C[P++]=0,T=8;T>>3}N.g0_256=T;function W(J){return k(J,17)^k(J,19)^J>>>10}N.g1_256=W}}),RY=S0({"node_modules/hash.js/lib/hash/sha/1.js"(N,_){var k=T$(),j=v$(),F=SQ(),z=k.rotl32,X=k.sum32,C=k.sum32_5,P=F.ft_1,T=j.BlockHash,W=[1518500249,1859775393,2400959708,3395469782];function J(){if(!(this instanceof J))return new J;T.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}k.inherits(J,T),_.exports=J,J.blockSize=512,J.outSize=160,J.hmacStrength=80,J.padLength=64,J.prototype._update=function(H,D){for(var E=this.W,L=0;L<16;L++)E[L]=H[D+L];for(;Lthis.blockSize&&(z=new this.Hash().update(z).digest()),j(z.length<=this.blockSize);for(var X=z.length;X=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(C,P,T)}_.exports=z,z.prototype._init=function(X,C,P){var T=X.concat(C).concat(P);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var W=0;W=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(X.concat(P||[])),this._reseed=1},z.prototype.generate=function(X,C,P,T){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");typeof C!="string"&&(T=P,P=C,C=null),P&&(P=j.toArray(P,T||"hex"),this._update(P));for(var W=[];W.length"}}}),gY=S0({"node_modules/elliptic/lib/elliptic/ec/signature.js"(N,_){var k=D$(),j=E$(),F=j.assert;function z(W,J){if(W instanceof z)return W;this._importDER(W,J)||(F(W.r&&W.s,"Signature without r or s"),this.r=new k(W.r,16),this.s=new k(W.s,16),W.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=W.recoveryParam)}_.exports=z;function X(){this.place=0}function C(W,J){var H=W[J.place++];if(!(H&128))return H;var D=H&15;if(D===0||D>4)return!1;for(var E=0,L=0,M=J.place;L>>=0;return E<=127?!1:(J.place=M,E)}function P(W){for(var J=0,H=W.length-1;!W[J]&&!(W[J+1]&128)&&J>>3);for(W.push(H|128);--H;)W.push(J>>>(H<<3)&255);W.push(J)}z.prototype.toDER=function(W){var J=this.r.toArray(),H=this.s.toArray();for(J[0]&128&&(J=[0].concat(J)),H[0]&128&&(H=[0].concat(H)),J=P(J),H=P(H);!H[0]&&!(H[1]&128);)H=H.slice(1);var D=[2];T(D,J.length),D=D.concat(J),D.push(2),T(D,H.length);var E=D.concat(H),L=[48];return T(L,E.length),L=L.concat(E),j.encode(L,W)}}}),_Y=S0({"node_modules/elliptic/lib/elliptic/ec/index.js"(N,_){var k=D$(),j=jY(),F=E$(),z=b$(),X=f$(),C=F.assert,P=kY(),T=gY();function W(J){if(!(this instanceof W))return new W(J);typeof J=="string"&&(C(Object.prototype.hasOwnProperty.call(z,J),"Unknown curve "+J),J=z[J]),J instanceof z.PresetCurve&&(J={curve:J}),this.curve=J.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=J.curve.g,this.g.precompute(J.curve.n.bitLength()+1),this.hash=J.hash||J.curve.hash}_.exports=W,W.prototype.keyPair=function(J){return new P(this,J)},W.prototype.keyFromPrivate=function(J,H){return P.fromPrivate(this,J,H)},W.prototype.keyFromPublic=function(J,H){return P.fromPublic(this,J,H)},W.prototype.genKeyPair=function(J){J||(J={});for(var H=new j({hash:this.hash,pers:J.pers,persEnc:J.persEnc||"utf8",entropy:J.entropy||X(this.hash.hmacStrength),entropyEnc:J.entropy&&J.entropyEnc||"utf8",nonce:this.n.toArray()}),D=this.n.byteLength(),E=this.n.sub(new k(2));;){var L=new k(H.generate(D));if(!(L.cmp(E)>0))return L.iaddn(1),this.keyFromPrivate(L)}},W.prototype._truncateToN=function(J,H){var D=J.byteLength()*8-this.n.bitLength();return D>0&&(J=J.ushrn(D)),!H&&J.cmp(this.n)>=0?J.sub(this.n):J},W.prototype.sign=function(J,H,D,E){typeof D=="object"&&(E=D,D=null),E||(E={}),H=this.keyFromPrivate(H,D),J=this._truncateToN(new k(J,16));for(var L=this.n.byteLength(),M=H.getPrivate().toArray("be",L),v=J.toArray("be",L),q=new j({hash:this.hash,entropy:M,nonce:v,pers:E.pers,persEnc:E.persEnc||"utf8"}),g=this.n.sub(new k(1)),y=0;;y++){var w=E.k?E.k(y):new k(q.generate(this.n.byteLength()));if(w=this._truncateToN(w,!0),!(w.cmpn(1)<=0||w.cmp(g)>=0)){var f=this.g.mul(w);if(!f.isInfinity()){var b=f.getX(),u=b.umod(this.n);if(u.cmpn(0)!==0){var Y0=w.invm(this.n).mul(u.mul(H.getPrivate()).iadd(J));if(Y0=Y0.umod(this.n),Y0.cmpn(0)!==0){var p=(f.getY().isOdd()?1:0)|(b.cmp(u)!==0?2:0);return E.canonical&&Y0.cmp(this.nh)>0&&(Y0=this.n.sub(Y0),p^=1),new T({r:u,s:Y0,recoveryParam:p})}}}}}},W.prototype.verify=function(J,H,D,E){J=this._truncateToN(new k(J,16)),D=this.keyFromPublic(D,E),H=new T(H,"hex");var{r:L,s:M}=H;if(L.cmpn(1)<0||L.cmp(this.n)>=0||M.cmpn(1)<0||M.cmp(this.n)>=0)return!1;var v=M.invm(this.n),q=v.mul(J).umod(this.n),g=v.mul(L).umod(this.n),y;return this.curve._maxwellTrick?(y=this.g.jmulAdd(q,D.getPublic(),g),y.isInfinity()?!1:y.eqXToP(L)):(y=this.g.mulAdd(q,D.getPublic(),g),y.isInfinity()?!1:y.getX().umod(this.n).cmp(L)===0)},W.prototype.recoverPubKey=function(J,H,D,E){C((3&D)===D,"The recovery param is more than two bits"),H=new T(H,E);var L=this.n,M=new k(J),v=H.r,q=H.s,g=D&1,y=D>>1;if(v.cmp(this.curve.p.umod(this.curve.n))>=0&&y)throw new Error("Unable to find sencond key candinate");y?v=this.curve.pointFromX(v.add(this.curve.n),g):v=this.curve.pointFromX(v,g);var w=H.r.invm(L),f=L.sub(M).mul(w).umod(L),b=q.mul(w).umod(L);return this.g.mulAdd(f,v,b)},W.prototype.getKeyRecoveryParam=function(J,H,D,E){if(H=new T(H,E),H.recoveryParam!==null)return H.recoveryParam;for(var L=0;L<4;L++){var M;try{M=this.recoverPubKey(J,H,L)}catch{continue}if(M.eq(D))return L}throw new Error("Unable to find valid recovery factor")}}}),NY=S0({"node_modules/elliptic/lib/elliptic/eddsa/key.js"(N,_){var k=E$(),j=k.assert,F=k.parseBytes,z=k.cachedProperty;function X(C,P){this.eddsa=C,this._secret=F(P.secret),C.isPoint(P.pub)?this._pub=P.pub:this._pubBytes=F(P.pub)}X.fromPublic=function(C,P){return P instanceof X?P:new X(C,{pub:P})},X.fromSecret=function(C,P){return P instanceof X?P:new X(C,{secret:P})},X.prototype.secret=function(){return this._secret},z(X,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())}),z(X,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())}),z(X,"privBytes",function(){var C=this.eddsa,P=this.hash(),T=C.encodingLength-1,W=P.slice(0,C.encodingLength);return W[0]&=248,W[T]&=127,W[T]|=64,W}),z(X,"priv",function(){return this.eddsa.decodeInt(this.privBytes())}),z(X,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()}),z(X,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)}),X.prototype.sign=function(C){return j(this._secret,"KeyPair can only verify"),this.eddsa.sign(C,this)},X.prototype.verify=function(C,P){return this.eddsa.verify(C,P,this)},X.prototype.getSecret=function(C){return j(this._secret,"KeyPair is public only"),k.encode(this.secret(),C)},X.prototype.getPublic=function(C){return k.encode(this.pubBytes(),C)},_.exports=X}}),xY=S0({"node_modules/elliptic/lib/elliptic/eddsa/signature.js"(N,_){var k=D$(),j=E$(),F=j.assert,z=j.cachedProperty,X=j.parseBytes;function C(P,T){this.eddsa=P,typeof T!="object"&&(T=X(T)),Array.isArray(T)&&(T={R:T.slice(0,P.encodingLength),S:T.slice(P.encodingLength)}),F(T.R&&T.S,"Signature without R or S"),P.isPoint(T.R)&&(this._R=T.R),T.S instanceof k&&(this._S=T.S),this._Rencoded=Array.isArray(T.R)?T.R:T.Rencoded,this._Sencoded=Array.isArray(T.S)?T.S:T.Sencoded}z(C,"S",function(){return this.eddsa.decodeInt(this.Sencoded())}),z(C,"R",function(){return this.eddsa.decodePoint(this.Rencoded())}),z(C,"Rencoded",function(){return this.eddsa.encodePoint(this.R())}),z(C,"Sencoded",function(){return this.eddsa.encodeInt(this.S())}),C.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},C.prototype.toHex=function(){return j.encode(this.toBytes(),"hex").toUpperCase()},_.exports=C}}),BY=S0({"node_modules/elliptic/lib/elliptic/eddsa/index.js"(N,_){var k=d$(),j=b$(),F=E$(),z=F.assert,X=F.parseBytes,C=NY(),P=xY();function T(W){if(z(W==="ed25519","only tested with ed25519 so far"),!(this instanceof T))return new T(W);W=j[W].curve,this.curve=W,this.g=W.g,this.g.precompute(W.n.bitLength()+1),this.pointClass=W.point().constructor,this.encodingLength=Math.ceil(W.n.bitLength()/8),this.hash=k.sha512}_.exports=T,T.prototype.sign=function(W,J){W=X(W);var H=this.keyFromSecret(J),D=this.hashInt(H.messagePrefix(),W),E=this.g.mul(D),L=this.encodePoint(E),M=this.hashInt(L,H.pubBytes(),W).mul(H.priv()),v=D.add(M).umod(this.curve.n);return this.makeSignature({R:E,S:v,Rencoded:L})},T.prototype.verify=function(W,J,H){W=X(W),J=this.makeSignature(J);var D=this.keyFromPublic(H),E=this.hashInt(J.Rencoded(),D.pubBytes(),W),L=this.g.mul(J.S()),M=J.R().add(D.pub().mul(E));return M.eq(L)},T.prototype.hashInt=function(){for(var W=this.hash(),J=0;J0?$:Y},X.min=function($,Y){return $.cmp(Y)<0?$:Y},X.prototype._init=function($,Y,G){if(typeof $=="number")return this._initNumber($,Y,G);if(typeof $=="object")return this._initArray($,Y,G);Y==="hex"&&(Y=16),F(Y===(Y|0)&&Y>=2&&Y<=36),$=$.toString().replace(/\s+/g,"");var Z=0;$[0]==="-"&&(Z++,this.negative=1),Z<$.length&&(Y===16?this._parseHex($,Z,G):(this._parseBase($,Y,Z),G==="le"&&this._initArray(this.toArray(),Y,G)))},X.prototype._initNumber=function($,Y,G){$<0&&(this.negative=1,$=-$),$<67108864?(this.words=[$&67108863],this.length=1):$<4503599627370496?(this.words=[$&67108863,$/67108864&67108863],this.length=2):(F($<9007199254740992),this.words=[$&67108863,$/67108864&67108863,1],this.length=3),G==="le"&&this._initArray(this.toArray(),Y,G)},X.prototype._initArray=function($,Y,G){if(F(typeof $.length=="number"),$.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil($.length/3),this.words=new Array(this.length);for(var Z=0;Z=0;Z-=3)I=$[Z]|$[Z-1]<<8|$[Z-2]<<16,this.words[V]|=I<>>26-O&67108863,O+=24,O>=26&&(O-=26,V++);else if(G==="le")for(Z=0,V=0;Z<$.length;Z+=3)I=$[Z]|$[Z+1]<<8|$[Z+2]<<16,this.words[V]|=I<>>26-O&67108863,O+=24,O>=26&&(O-=26,V++);return this.strip()};function P($,Y){var G=$.charCodeAt(Y);return G>=65&&G<=70?G-55:G>=97&&G<=102?G-87:G-48&15}function T($,Y,G){var Z=P($,G);return G-1>=Y&&(Z|=P($,G-1)<<4),Z}X.prototype._parseHex=function($,Y,G){this.length=Math.ceil(($.length-Y)/6),this.words=new Array(this.length);for(var Z=0;Z=Y;Z-=2)O=T($,Y,Z)<=18?(V-=18,I+=1,this.words[I]|=O>>>26):V+=8;else{var U=$.length-Y;for(Z=U%2===0?Y+1:Y;Z<$.length;Z+=2)O=T($,Y,Z)<=18?(V-=18,I+=1,this.words[I]|=O>>>26):V+=8}this.strip()};function W($,Y,G,Z){for(var V=0,I=Math.min($.length,G),O=Y;O=49?V+=U-49+10:U>=17?V+=U-17+10:V+=U}return V}X.prototype._parseBase=function($,Y,G){this.words=[0],this.length=1;for(var Z=0,V=1;V<=67108863;V*=Y)Z++;Z--,V=V/Y|0;for(var I=$.length-G,O=I%Z,U=Math.min(I,I-O)+G,Q=0,K=G;K1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},X.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},X.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],H=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],D=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];X.prototype.toString=function($,Y){$=$||10,Y=Y|0||1;var G;if($===16||$==="hex"){G="";for(var Z=0,V=0,I=0;I>>24-Z&16777215,V!==0||I!==this.length-1?G=J[6-U.length]+U+G:G=U+G,Z+=2,Z>=26&&(Z-=26,I--)}for(V!==0&&(G=V.toString(16)+G);G.length%Y!==0;)G="0"+G;return this.negative!==0&&(G="-"+G),G}if($===($|0)&&$>=2&&$<=36){var Q=H[$],K=D[$];G="";var R=this.clone();for(R.negative=0;!R.isZero();){var A=R.modn(K).toString($);R=R.idivn(K),R.isZero()?G=A+G:G=J[Q-A.length]+A+G}for(this.isZero()&&(G="0"+G);G.length%Y!==0;)G="0"+G;return this.negative!==0&&(G="-"+G),G}F(!1,"Base should be between 2 and 36")},X.prototype.toNumber=function(){var $=this.words[0];return this.length===2?$+=this.words[1]*67108864:this.length===3&&this.words[2]===1?$+=4503599627370496+this.words[1]*67108864:this.length>2&&F(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-$:$},X.prototype.toJSON=function(){return this.toString(16)},X.prototype.toBuffer=function($,Y){return F(typeof C<"u"),this.toArrayLike(C,$,Y)},X.prototype.toArray=function($,Y){return this.toArrayLike(Array,$,Y)},X.prototype.toArrayLike=function($,Y,G){var Z=this.byteLength(),V=G||Math.max(1,Z);F(Z<=V,"byte array longer than desired length"),F(V>0,"Requested array length <= 0"),this.strip();var I=Y==="le",O=new $(V),U,Q,K=this.clone();if(I){for(Q=0;!K.isZero();Q++)U=K.andln(255),K.iushrn(8),O[Q]=U;for(;Q=4096&&(G+=13,Y>>>=13),Y>=64&&(G+=7,Y>>>=7),Y>=8&&(G+=4,Y>>>=4),Y>=2&&(G+=2,Y>>>=2),G+Y},X.prototype._zeroBits=function($){if($===0)return 26;var Y=$,G=0;return(Y&8191)===0&&(G+=13,Y>>>=13),(Y&127)===0&&(G+=7,Y>>>=7),(Y&15)===0&&(G+=4,Y>>>=4),(Y&3)===0&&(G+=2,Y>>>=2),(Y&1)===0&&G++,G},X.prototype.bitLength=function(){var $=this.words[this.length-1],Y=this._countBits($);return(this.length-1)*26+Y};function E($){for(var Y=new Array($.bitLength()),G=0;G>>V}return Y}X.prototype.zeroBits=function(){if(this.isZero())return 0;for(var $=0,Y=0;Y$.length?this.clone().ior($):$.clone().ior(this)},X.prototype.uor=function($){return this.length>$.length?this.clone().iuor($):$.clone().iuor(this)},X.prototype.iuand=function($){var Y;this.length>$.length?Y=$:Y=this;for(var G=0;G$.length?this.clone().iand($):$.clone().iand(this)},X.prototype.uand=function($){return this.length>$.length?this.clone().iuand($):$.clone().iuand(this)},X.prototype.iuxor=function($){var Y,G;this.length>$.length?(Y=this,G=$):(Y=$,G=this);for(var Z=0;Z$.length?this.clone().ixor($):$.clone().ixor(this)},X.prototype.uxor=function($){return this.length>$.length?this.clone().iuxor($):$.clone().iuxor(this)},X.prototype.inotn=function($){F(typeof $=="number"&&$>=0);var Y=Math.ceil($/26)|0,G=$%26;this._expand(Y),G>0&&Y--;for(var Z=0;Z0&&(this.words[Z]=~this.words[Z]&67108863>>26-G),this.strip()},X.prototype.notn=function($){return this.clone().inotn($)},X.prototype.setn=function($,Y){F(typeof $=="number"&&$>=0);var G=$/26|0,Z=$%26;return this._expand(G+1),Y?this.words[G]=this.words[G]|1<$.length?(G=this,Z=$):(G=$,Z=this);for(var V=0,I=0;I>>26;for(;V!==0&&I>>26;if(this.length=G.length,V!==0)this.words[this.length]=V,this.length++;else if(G!==this)for(;I$.length?this.clone().iadd($):$.clone().iadd(this)},X.prototype.isub=function($){if($.negative!==0){$.negative=0;var Y=this.iadd($);return $.negative=1,Y._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd($),this.negative=1,this._normSign();var G=this.cmp($);if(G===0)return this.negative=0,this.length=1,this.words[0]=0,this;var Z,V;G>0?(Z=this,V=$):(Z=$,V=this);for(var I=0,O=0;O>26,this.words[O]=Y&67108863;for(;I!==0&&O>26,this.words[O]=Y&67108863;if(I===0&&O>>26,A=Q&67108863,S=Math.min(K,Y.length-1),x=Math.max(0,K-$.length+1);x<=S;x++){var B=K-x|0;V=$.words[B]|0,I=Y.words[x]|0,O=V*I+A,R+=O/67108864|0,A=O&67108863}G.words[K]=A|0,Q=R|0}return Q!==0?G.words[K]=Q|0:G.length--,G.strip()}var M=function($,Y,G){var Z=$.words,V=Y.words,I=G.words,O=0,U,Q,K,R=Z[0]|0,A=R&8191,S=R>>>13,x=Z[1]|0,B=x&8191,c=x>>>13,q0=Z[2]|0,h=q0&8191,d=q0>>>13,_0=Z[3]|0,l=_0&8191,n=_0>>>13,y0=Z[4]|0,t=y0&8191,s=y0>>>13,w0=Z[5]|0,m=w0&8191,r=w0>>>13,$$=Z[6]|0,i=$$&8191,e=$$>>>13,x0=Z[7]|0,o=x0&8191,a=x0>>>13,p0=Z[8]|0,$0=p0&8191,Q0=p0>>>13,Y$=Z[9]|0,Z0=Y$&8191,G0=Y$>>>13,Z$=V[0]|0,V0=Z$&8191,U0=Z$>>>13,G$=V[1]|0,X0=G$&8191,K0=G$>>>13,V$=V[2]|0,I0=V$&8191,O0=V$>>>13,U$=V[3]|0,J0=U$&8191,F0=U$>>>13,X$=V[4]|0,A0=X$&8191,H0=X$>>>13,K$=V[5]|0,W0=K$&8191,E0=K$>>>13,I$=V[6]|0,T0=I$&8191,D0=I$>>>13,O$=V[7]|0,C0=O$&8191,L0=O$>>>13,J$=V[8]|0,R0=J$&8191,P0=J$>>>13,F$=V[9]|0,z0=F$&8191,M0=F$>>>13;G.negative=$.negative^Y.negative,G.length=19,U=Math.imul(A,V0),Q=Math.imul(A,U0),Q=Q+Math.imul(S,V0)|0,K=Math.imul(S,U0);var Q$=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,U=Math.imul(B,V0),Q=Math.imul(B,U0),Q=Q+Math.imul(c,V0)|0,K=Math.imul(c,U0),U=U+Math.imul(A,X0)|0,Q=Q+Math.imul(A,K0)|0,Q=Q+Math.imul(S,X0)|0,K=K+Math.imul(S,K0)|0;var j0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(j0>>>26)|0,j0&=67108863,U=Math.imul(h,V0),Q=Math.imul(h,U0),Q=Q+Math.imul(d,V0)|0,K=Math.imul(d,U0),U=U+Math.imul(B,X0)|0,Q=Q+Math.imul(B,K0)|0,Q=Q+Math.imul(c,X0)|0,K=K+Math.imul(c,K0)|0,U=U+Math.imul(A,I0)|0,Q=Q+Math.imul(A,O0)|0,Q=Q+Math.imul(S,I0)|0,K=K+Math.imul(S,O0)|0;var k0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(k0>>>26)|0,k0&=67108863,U=Math.imul(l,V0),Q=Math.imul(l,U0),Q=Q+Math.imul(n,V0)|0,K=Math.imul(n,U0),U=U+Math.imul(h,X0)|0,Q=Q+Math.imul(h,K0)|0,Q=Q+Math.imul(d,X0)|0,K=K+Math.imul(d,K0)|0,U=U+Math.imul(B,I0)|0,Q=Q+Math.imul(B,O0)|0,Q=Q+Math.imul(c,I0)|0,K=K+Math.imul(c,O0)|0,U=U+Math.imul(A,J0)|0,Q=Q+Math.imul(A,F0)|0,Q=Q+Math.imul(S,J0)|0,K=K+Math.imul(S,F0)|0;var f0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(f0>>>26)|0,f0&=67108863,U=Math.imul(t,V0),Q=Math.imul(t,U0),Q=Q+Math.imul(s,V0)|0,K=Math.imul(s,U0),U=U+Math.imul(l,X0)|0,Q=Q+Math.imul(l,K0)|0,Q=Q+Math.imul(n,X0)|0,K=K+Math.imul(n,K0)|0,U=U+Math.imul(h,I0)|0,Q=Q+Math.imul(h,O0)|0,Q=Q+Math.imul(d,I0)|0,K=K+Math.imul(d,O0)|0,U=U+Math.imul(B,J0)|0,Q=Q+Math.imul(B,F0)|0,Q=Q+Math.imul(c,J0)|0,K=K+Math.imul(c,F0)|0,U=U+Math.imul(A,A0)|0,Q=Q+Math.imul(A,H0)|0,Q=Q+Math.imul(S,A0)|0,K=K+Math.imul(S,H0)|0;var c0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(c0>>>26)|0,c0&=67108863,U=Math.imul(m,V0),Q=Math.imul(m,U0),Q=Q+Math.imul(r,V0)|0,K=Math.imul(r,U0),U=U+Math.imul(t,X0)|0,Q=Q+Math.imul(t,K0)|0,Q=Q+Math.imul(s,X0)|0,K=K+Math.imul(s,K0)|0,U=U+Math.imul(l,I0)|0,Q=Q+Math.imul(l,O0)|0,Q=Q+Math.imul(n,I0)|0,K=K+Math.imul(n,O0)|0,U=U+Math.imul(h,J0)|0,Q=Q+Math.imul(h,F0)|0,Q=Q+Math.imul(d,J0)|0,K=K+Math.imul(d,F0)|0,U=U+Math.imul(B,A0)|0,Q=Q+Math.imul(B,H0)|0,Q=Q+Math.imul(c,A0)|0,K=K+Math.imul(c,H0)|0,U=U+Math.imul(A,W0)|0,Q=Q+Math.imul(A,E0)|0,Q=Q+Math.imul(S,W0)|0,K=K+Math.imul(S,E0)|0;var h0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(h0>>>26)|0,h0&=67108863,U=Math.imul(i,V0),Q=Math.imul(i,U0),Q=Q+Math.imul(e,V0)|0,K=Math.imul(e,U0),U=U+Math.imul(m,X0)|0,Q=Q+Math.imul(m,K0)|0,Q=Q+Math.imul(r,X0)|0,K=K+Math.imul(r,K0)|0,U=U+Math.imul(t,I0)|0,Q=Q+Math.imul(t,O0)|0,Q=Q+Math.imul(s,I0)|0,K=K+Math.imul(s,O0)|0,U=U+Math.imul(l,J0)|0,Q=Q+Math.imul(l,F0)|0,Q=Q+Math.imul(n,J0)|0,K=K+Math.imul(n,F0)|0,U=U+Math.imul(h,A0)|0,Q=Q+Math.imul(h,H0)|0,Q=Q+Math.imul(d,A0)|0,K=K+Math.imul(d,H0)|0,U=U+Math.imul(B,W0)|0,Q=Q+Math.imul(B,E0)|0,Q=Q+Math.imul(c,W0)|0,K=K+Math.imul(c,E0)|0,U=U+Math.imul(A,T0)|0,Q=Q+Math.imul(A,D0)|0,Q=Q+Math.imul(S,T0)|0,K=K+Math.imul(S,D0)|0;var d0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(d0>>>26)|0,d0&=67108863,U=Math.imul(o,V0),Q=Math.imul(o,U0),Q=Q+Math.imul(a,V0)|0,K=Math.imul(a,U0),U=U+Math.imul(i,X0)|0,Q=Q+Math.imul(i,K0)|0,Q=Q+Math.imul(e,X0)|0,K=K+Math.imul(e,K0)|0,U=U+Math.imul(m,I0)|0,Q=Q+Math.imul(m,O0)|0,Q=Q+Math.imul(r,I0)|0,K=K+Math.imul(r,O0)|0,U=U+Math.imul(t,J0)|0,Q=Q+Math.imul(t,F0)|0,Q=Q+Math.imul(s,J0)|0,K=K+Math.imul(s,F0)|0,U=U+Math.imul(l,A0)|0,Q=Q+Math.imul(l,H0)|0,Q=Q+Math.imul(n,A0)|0,K=K+Math.imul(n,H0)|0,U=U+Math.imul(h,W0)|0,Q=Q+Math.imul(h,E0)|0,Q=Q+Math.imul(d,W0)|0,K=K+Math.imul(d,E0)|0,U=U+Math.imul(B,T0)|0,Q=Q+Math.imul(B,D0)|0,Q=Q+Math.imul(c,T0)|0,K=K+Math.imul(c,D0)|0,U=U+Math.imul(A,C0)|0,Q=Q+Math.imul(A,L0)|0,Q=Q+Math.imul(S,C0)|0,K=K+Math.imul(S,L0)|0;var b0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(b0>>>26)|0,b0&=67108863,U=Math.imul($0,V0),Q=Math.imul($0,U0),Q=Q+Math.imul(Q0,V0)|0,K=Math.imul(Q0,U0),U=U+Math.imul(o,X0)|0,Q=Q+Math.imul(o,K0)|0,Q=Q+Math.imul(a,X0)|0,K=K+Math.imul(a,K0)|0,U=U+Math.imul(i,I0)|0,Q=Q+Math.imul(i,O0)|0,Q=Q+Math.imul(e,I0)|0,K=K+Math.imul(e,O0)|0,U=U+Math.imul(m,J0)|0,Q=Q+Math.imul(m,F0)|0,Q=Q+Math.imul(r,J0)|0,K=K+Math.imul(r,F0)|0,U=U+Math.imul(t,A0)|0,Q=Q+Math.imul(t,H0)|0,Q=Q+Math.imul(s,A0)|0,K=K+Math.imul(s,H0)|0,U=U+Math.imul(l,W0)|0,Q=Q+Math.imul(l,E0)|0,Q=Q+Math.imul(n,W0)|0,K=K+Math.imul(n,E0)|0,U=U+Math.imul(h,T0)|0,Q=Q+Math.imul(h,D0)|0,Q=Q+Math.imul(d,T0)|0,K=K+Math.imul(d,D0)|0,U=U+Math.imul(B,C0)|0,Q=Q+Math.imul(B,L0)|0,Q=Q+Math.imul(c,C0)|0,K=K+Math.imul(c,L0)|0,U=U+Math.imul(A,R0)|0,Q=Q+Math.imul(A,P0)|0,Q=Q+Math.imul(S,R0)|0,K=K+Math.imul(S,P0)|0;var l0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(l0>>>26)|0,l0&=67108863,U=Math.imul(Z0,V0),Q=Math.imul(Z0,U0),Q=Q+Math.imul(G0,V0)|0,K=Math.imul(G0,U0),U=U+Math.imul($0,X0)|0,Q=Q+Math.imul($0,K0)|0,Q=Q+Math.imul(Q0,X0)|0,K=K+Math.imul(Q0,K0)|0,U=U+Math.imul(o,I0)|0,Q=Q+Math.imul(o,O0)|0,Q=Q+Math.imul(a,I0)|0,K=K+Math.imul(a,O0)|0,U=U+Math.imul(i,J0)|0,Q=Q+Math.imul(i,F0)|0,Q=Q+Math.imul(e,J0)|0,K=K+Math.imul(e,F0)|0,U=U+Math.imul(m,A0)|0,Q=Q+Math.imul(m,H0)|0,Q=Q+Math.imul(r,A0)|0,K=K+Math.imul(r,H0)|0,U=U+Math.imul(t,W0)|0,Q=Q+Math.imul(t,E0)|0,Q=Q+Math.imul(s,W0)|0,K=K+Math.imul(s,E0)|0,U=U+Math.imul(l,T0)|0,Q=Q+Math.imul(l,D0)|0,Q=Q+Math.imul(n,T0)|0,K=K+Math.imul(n,D0)|0,U=U+Math.imul(h,C0)|0,Q=Q+Math.imul(h,L0)|0,Q=Q+Math.imul(d,C0)|0,K=K+Math.imul(d,L0)|0,U=U+Math.imul(B,R0)|0,Q=Q+Math.imul(B,P0)|0,Q=Q+Math.imul(c,R0)|0,K=K+Math.imul(c,P0)|0,U=U+Math.imul(A,z0)|0,Q=Q+Math.imul(A,M0)|0,Q=Q+Math.imul(S,z0)|0,K=K+Math.imul(S,M0)|0;var o0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(o0>>>26)|0,o0&=67108863,U=Math.imul(Z0,X0),Q=Math.imul(Z0,K0),Q=Q+Math.imul(G0,X0)|0,K=Math.imul(G0,K0),U=U+Math.imul($0,I0)|0,Q=Q+Math.imul($0,O0)|0,Q=Q+Math.imul(Q0,I0)|0,K=K+Math.imul(Q0,O0)|0,U=U+Math.imul(o,J0)|0,Q=Q+Math.imul(o,F0)|0,Q=Q+Math.imul(a,J0)|0,K=K+Math.imul(a,F0)|0,U=U+Math.imul(i,A0)|0,Q=Q+Math.imul(i,H0)|0,Q=Q+Math.imul(e,A0)|0,K=K+Math.imul(e,H0)|0,U=U+Math.imul(m,W0)|0,Q=Q+Math.imul(m,E0)|0,Q=Q+Math.imul(r,W0)|0,K=K+Math.imul(r,E0)|0,U=U+Math.imul(t,T0)|0,Q=Q+Math.imul(t,D0)|0,Q=Q+Math.imul(s,T0)|0,K=K+Math.imul(s,D0)|0,U=U+Math.imul(l,C0)|0,Q=Q+Math.imul(l,L0)|0,Q=Q+Math.imul(n,C0)|0,K=K+Math.imul(n,L0)|0,U=U+Math.imul(h,R0)|0,Q=Q+Math.imul(h,P0)|0,Q=Q+Math.imul(d,R0)|0,K=K+Math.imul(d,P0)|0,U=U+Math.imul(B,z0)|0,Q=Q+Math.imul(B,M0)|0,Q=Q+Math.imul(c,z0)|0,K=K+Math.imul(c,M0)|0;var u0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(u0>>>26)|0,u0&=67108863,U=Math.imul(Z0,I0),Q=Math.imul(Z0,O0),Q=Q+Math.imul(G0,I0)|0,K=Math.imul(G0,O0),U=U+Math.imul($0,J0)|0,Q=Q+Math.imul($0,F0)|0,Q=Q+Math.imul(Q0,J0)|0,K=K+Math.imul(Q0,F0)|0,U=U+Math.imul(o,A0)|0,Q=Q+Math.imul(o,H0)|0,Q=Q+Math.imul(a,A0)|0,K=K+Math.imul(a,H0)|0,U=U+Math.imul(i,W0)|0,Q=Q+Math.imul(i,E0)|0,Q=Q+Math.imul(e,W0)|0,K=K+Math.imul(e,E0)|0,U=U+Math.imul(m,T0)|0,Q=Q+Math.imul(m,D0)|0,Q=Q+Math.imul(r,T0)|0,K=K+Math.imul(r,D0)|0,U=U+Math.imul(t,C0)|0,Q=Q+Math.imul(t,L0)|0,Q=Q+Math.imul(s,C0)|0,K=K+Math.imul(s,L0)|0,U=U+Math.imul(l,R0)|0,Q=Q+Math.imul(l,P0)|0,Q=Q+Math.imul(n,R0)|0,K=K+Math.imul(n,P0)|0,U=U+Math.imul(h,z0)|0,Q=Q+Math.imul(h,M0)|0,Q=Q+Math.imul(d,z0)|0,K=K+Math.imul(d,M0)|0;var n0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(n0>>>26)|0,n0&=67108863,U=Math.imul(Z0,J0),Q=Math.imul(Z0,F0),Q=Q+Math.imul(G0,J0)|0,K=Math.imul(G0,F0),U=U+Math.imul($0,A0)|0,Q=Q+Math.imul($0,H0)|0,Q=Q+Math.imul(Q0,A0)|0,K=K+Math.imul(Q0,H0)|0,U=U+Math.imul(o,W0)|0,Q=Q+Math.imul(o,E0)|0,Q=Q+Math.imul(a,W0)|0,K=K+Math.imul(a,E0)|0,U=U+Math.imul(i,T0)|0,Q=Q+Math.imul(i,D0)|0,Q=Q+Math.imul(e,T0)|0,K=K+Math.imul(e,D0)|0,U=U+Math.imul(m,C0)|0,Q=Q+Math.imul(m,L0)|0,Q=Q+Math.imul(r,C0)|0,K=K+Math.imul(r,L0)|0,U=U+Math.imul(t,R0)|0,Q=Q+Math.imul(t,P0)|0,Q=Q+Math.imul(s,R0)|0,K=K+Math.imul(s,P0)|0,U=U+Math.imul(l,z0)|0,Q=Q+Math.imul(l,M0)|0,Q=Q+Math.imul(n,z0)|0,K=K+Math.imul(n,M0)|0;var s0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(s0>>>26)|0,s0&=67108863,U=Math.imul(Z0,A0),Q=Math.imul(Z0,H0),Q=Q+Math.imul(G0,A0)|0,K=Math.imul(G0,H0),U=U+Math.imul($0,W0)|0,Q=Q+Math.imul($0,E0)|0,Q=Q+Math.imul(Q0,W0)|0,K=K+Math.imul(Q0,E0)|0,U=U+Math.imul(o,T0)|0,Q=Q+Math.imul(o,D0)|0,Q=Q+Math.imul(a,T0)|0,K=K+Math.imul(a,D0)|0,U=U+Math.imul(i,C0)|0,Q=Q+Math.imul(i,L0)|0,Q=Q+Math.imul(e,C0)|0,K=K+Math.imul(e,L0)|0,U=U+Math.imul(m,R0)|0,Q=Q+Math.imul(m,P0)|0,Q=Q+Math.imul(r,R0)|0,K=K+Math.imul(r,P0)|0,U=U+Math.imul(t,z0)|0,Q=Q+Math.imul(t,M0)|0,Q=Q+Math.imul(s,z0)|0,K=K+Math.imul(s,M0)|0;var t0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(t0>>>26)|0,t0&=67108863,U=Math.imul(Z0,W0),Q=Math.imul(Z0,E0),Q=Q+Math.imul(G0,W0)|0,K=Math.imul(G0,E0),U=U+Math.imul($0,T0)|0,Q=Q+Math.imul($0,D0)|0,Q=Q+Math.imul(Q0,T0)|0,K=K+Math.imul(Q0,D0)|0,U=U+Math.imul(o,C0)|0,Q=Q+Math.imul(o,L0)|0,Q=Q+Math.imul(a,C0)|0,K=K+Math.imul(a,L0)|0,U=U+Math.imul(i,R0)|0,Q=Q+Math.imul(i,P0)|0,Q=Q+Math.imul(e,R0)|0,K=K+Math.imul(e,P0)|0,U=U+Math.imul(m,z0)|0,Q=Q+Math.imul(m,M0)|0,Q=Q+Math.imul(r,z0)|0,K=K+Math.imul(r,M0)|0;var m0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(m0>>>26)|0,m0&=67108863,U=Math.imul(Z0,T0),Q=Math.imul(Z0,D0),Q=Q+Math.imul(G0,T0)|0,K=Math.imul(G0,D0),U=U+Math.imul($0,C0)|0,Q=Q+Math.imul($0,L0)|0,Q=Q+Math.imul(Q0,C0)|0,K=K+Math.imul(Q0,L0)|0,U=U+Math.imul(o,R0)|0,Q=Q+Math.imul(o,P0)|0,Q=Q+Math.imul(a,R0)|0,K=K+Math.imul(a,P0)|0,U=U+Math.imul(i,z0)|0,Q=Q+Math.imul(i,M0)|0,Q=Q+Math.imul(e,z0)|0,K=K+Math.imul(e,M0)|0;var a0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(a0>>>26)|0,a0&=67108863,U=Math.imul(Z0,C0),Q=Math.imul(Z0,L0),Q=Q+Math.imul(G0,C0)|0,K=Math.imul(G0,L0),U=U+Math.imul($0,R0)|0,Q=Q+Math.imul($0,P0)|0,Q=Q+Math.imul(Q0,R0)|0,K=K+Math.imul(Q0,P0)|0,U=U+Math.imul(o,z0)|0,Q=Q+Math.imul(o,M0)|0,Q=Q+Math.imul(a,z0)|0,K=K+Math.imul(a,M0)|0;var e0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(e0>>>26)|0,e0&=67108863,U=Math.imul(Z0,R0),Q=Math.imul(Z0,P0),Q=Q+Math.imul(G0,R0)|0,K=Math.imul(G0,P0),U=U+Math.imul($0,z0)|0,Q=Q+Math.imul($0,M0)|0,Q=Q+Math.imul(Q0,z0)|0,K=K+Math.imul(Q0,M0)|0;var r0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(r0>>>26)|0,r0&=67108863,U=Math.imul(Z0,z0),Q=Math.imul(Z0,M0),Q=Q+Math.imul(G0,z0)|0,K=Math.imul(G0,M0);var i0=(O+U|0)+((Q&8191)<<13)|0;return O=(K+(Q>>>13)|0)+(i0>>>26)|0,i0&=67108863,I[0]=Q$,I[1]=j0,I[2]=k0,I[3]=f0,I[4]=c0,I[5]=h0,I[6]=d0,I[7]=b0,I[8]=l0,I[9]=o0,I[10]=u0,I[11]=n0,I[12]=s0,I[13]=t0,I[14]=m0,I[15]=a0,I[16]=e0,I[17]=r0,I[18]=i0,O!==0&&(I[19]=O,G.length++),G};Math.imul||(M=L);function v($,Y,G){G.negative=Y.negative^$.negative,G.length=$.length+Y.length;for(var Z=0,V=0,I=0;I>>26)|0,V+=O>>>26,O&=67108863}G.words[I]=U,Z=O,O=V}return Z!==0?G.words[I]=Z:G.length--,G.strip()}function q($,Y,G){var Z=new g;return Z.mulp($,Y,G)}X.prototype.mulTo=function($,Y){var G,Z=this.length+$.length;return this.length===10&&$.length===10?G=M(this,$,Y):Z<63?G=L(this,$,Y):Z<1024?G=v(this,$,Y):G=q(this,$,Y),G};function g($,Y){this.x=$,this.y=Y}g.prototype.makeRBT=function($){for(var Y=new Array($),G=X.prototype._countBits($)-1,Z=0;Z<$;Z++)Y[Z]=this.revBin(Z,G,$);return Y},g.prototype.revBin=function($,Y,G){if($===0||$===G-1)return $;for(var Z=0,V=0;V>=1;return Z},g.prototype.permute=function($,Y,G,Z,V,I){for(var O=0;O>>1)V++;return 1<>>13,G[2*I+1]=V&8191,V=V>>>13;for(I=2*Y;I>=26,Y+=Z/67108864|0,Y+=V>>>26,this.words[G]=V&67108863}return Y!==0&&(this.words[G]=Y,this.length++),this},X.prototype.muln=function($){return this.clone().imuln($)},X.prototype.sqr=function(){return this.mul(this)},X.prototype.isqr=function(){return this.imul(this.clone())},X.prototype.pow=function($){var Y=E($);if(Y.length===0)return new X(1);for(var G=this,Z=0;Z=0);var Y=$%26,G=($-Y)/26,Z=67108863>>>26-Y<<26-Y,V;if(Y!==0){var I=0;for(V=0;V>>26-Y}I&&(this.words[V]=I,this.length++)}if(G!==0){for(V=this.length-1;V>=0;V--)this.words[V+G]=this.words[V];for(V=0;V=0);var Z;Y?Z=(Y-Y%26)/26:Z=0;var V=$%26,I=Math.min(($-V)/26,this.length),O=67108863^67108863>>>V<I)for(this.length-=I,Q=0;Q=0&&(K!==0||Q>=Z);Q--){var R=this.words[Q]|0;this.words[Q]=K<<26-V|R>>>V,K=R&O}return U&&K!==0&&(U.words[U.length++]=K),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},X.prototype.ishrn=function($,Y,G){return F(this.negative===0),this.iushrn($,Y,G)},X.prototype.shln=function($){return this.clone().ishln($)},X.prototype.ushln=function($){return this.clone().iushln($)},X.prototype.shrn=function($){return this.clone().ishrn($)},X.prototype.ushrn=function($){return this.clone().iushrn($)},X.prototype.testn=function($){F(typeof $=="number"&&$>=0);var Y=$%26,G=($-Y)/26,Z=1<=0);var Y=$%26,G=($-Y)/26;if(F(this.negative===0,"imaskn works only with positive numbers"),this.length<=G)return this;if(Y!==0&&G++,this.length=Math.min(G,this.length),Y!==0){var Z=67108863^67108863>>>Y<=67108864;Y++)this.words[Y]-=67108864,Y===this.length-1?this.words[Y+1]=1:this.words[Y+1]++;return this.length=Math.max(this.length,Y+1),this},X.prototype.isubn=function($){if(F(typeof $=="number"),F($<67108864),$<0)return this.iaddn(-$);if(this.negative!==0)return this.negative=0,this.iaddn($),this.negative=1,this;if(this.words[0]-=$,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var Y=0;Y>26)-(U/67108864|0),this.words[V+G]=I&67108863}for(;V>26,this.words[V+G]=I&67108863;if(O===0)return this.strip();for(F(O===-1),O=0,V=0;V>26,this.words[V]=I&67108863;return this.negative=1,this.strip()},X.prototype._wordDiv=function($,Y){var G=this.length-$.length,Z=this.clone(),V=$,I=V.words[V.length-1]|0,O=this._countBits(I);G=26-O,G!==0&&(V=V.ushln(G),Z.iushln(G),I=V.words[V.length-1]|0);var U=Z.length-V.length,Q;if(Y!=="mod"){Q=new X(null),Q.length=U+1,Q.words=new Array(Q.length);for(var K=0;K=0;A--){var S=(Z.words[V.length+A]|0)*67108864+(Z.words[V.length+A-1]|0);for(S=Math.min(S/I|0,67108863),Z._ishlnsubmul(V,S,A);Z.negative!==0;)S--,Z.negative=0,Z._ishlnsubmul(V,1,A),Z.isZero()||(Z.negative^=1);Q&&(Q.words[A]=S)}return Q&&Q.strip(),Z.strip(),Y!=="div"&&G!==0&&Z.iushrn(G),{div:Q||null,mod:Z}},X.prototype.divmod=function($,Y,G){if(F(!$.isZero()),this.isZero())return{div:new X(0),mod:new X(0)};var Z,V,I;return this.negative!==0&&$.negative===0?(I=this.neg().divmod($,Y),Y!=="mod"&&(Z=I.div.neg()),Y!=="div"&&(V=I.mod.neg(),G&&V.negative!==0&&V.iadd($)),{div:Z,mod:V}):this.negative===0&&$.negative!==0?(I=this.divmod($.neg(),Y),Y!=="mod"&&(Z=I.div.neg()),{div:Z,mod:I.mod}):(this.negative&$.negative)!==0?(I=this.neg().divmod($.neg(),Y),Y!=="div"&&(V=I.mod.neg(),G&&V.negative!==0&&V.isub($)),{div:I.div,mod:V}):$.length>this.length||this.cmp($)<0?{div:new X(0),mod:this}:$.length===1?Y==="div"?{div:this.divn($.words[0]),mod:null}:Y==="mod"?{div:null,mod:new X(this.modn($.words[0]))}:{div:this.divn($.words[0]),mod:new X(this.modn($.words[0]))}:this._wordDiv($,Y)},X.prototype.div=function($){return this.divmod($,"div",!1).div},X.prototype.mod=function($){return this.divmod($,"mod",!1).mod},X.prototype.umod=function($){return this.divmod($,"mod",!0).mod},X.prototype.divRound=function($){var Y=this.divmod($);if(Y.mod.isZero())return Y.div;var G=Y.div.negative!==0?Y.mod.isub($):Y.mod,Z=$.ushrn(1),V=$.andln(1),I=G.cmp(Z);return I<0||V===1&&I===0?Y.div:Y.div.negative!==0?Y.div.isubn(1):Y.div.iaddn(1)},X.prototype.modn=function($){F($<=67108863);for(var Y=(1<<26)%$,G=0,Z=this.length-1;Z>=0;Z--)G=(Y*G+(this.words[Z]|0))%$;return G},X.prototype.idivn=function($){F($<=67108863);for(var Y=0,G=this.length-1;G>=0;G--){var Z=(this.words[G]|0)+Y*67108864;this.words[G]=Z/$|0,Y=Z%$}return this.strip()},X.prototype.divn=function($){return this.clone().idivn($)},X.prototype.egcd=function($){F($.negative===0),F(!$.isZero());var Y=this,G=$.clone();Y.negative!==0?Y=Y.umod($):Y=Y.clone();for(var Z=new X(1),V=new X(0),I=new X(0),O=new X(1),U=0;Y.isEven()&&G.isEven();)Y.iushrn(1),G.iushrn(1),++U;for(var Q=G.clone(),K=Y.clone();!Y.isZero();){for(var R=0,A=1;(Y.words[0]&A)===0&&R<26;++R,A<<=1);if(R>0)for(Y.iushrn(R);R-- >0;)(Z.isOdd()||V.isOdd())&&(Z.iadd(Q),V.isub(K)),Z.iushrn(1),V.iushrn(1);for(var S=0,x=1;(G.words[0]&x)===0&&S<26;++S,x<<=1);if(S>0)for(G.iushrn(S);S-- >0;)(I.isOdd()||O.isOdd())&&(I.iadd(Q),O.isub(K)),I.iushrn(1),O.iushrn(1);Y.cmp(G)>=0?(Y.isub(G),Z.isub(I),V.isub(O)):(G.isub(Y),I.isub(Z),O.isub(V))}return{a:I,b:O,gcd:G.iushln(U)}},X.prototype._invmp=function($){F($.negative===0),F(!$.isZero());var Y=this,G=$.clone();Y.negative!==0?Y=Y.umod($):Y=Y.clone();for(var Z=new X(1),V=new X(0),I=G.clone();Y.cmpn(1)>0&&G.cmpn(1)>0;){for(var O=0,U=1;(Y.words[0]&U)===0&&O<26;++O,U<<=1);if(O>0)for(Y.iushrn(O);O-- >0;)Z.isOdd()&&Z.iadd(I),Z.iushrn(1);for(var Q=0,K=1;(G.words[0]&K)===0&&Q<26;++Q,K<<=1);if(Q>0)for(G.iushrn(Q);Q-- >0;)V.isOdd()&&V.iadd(I),V.iushrn(1);Y.cmp(G)>=0?(Y.isub(G),Z.isub(V)):(G.isub(Y),V.isub(Z))}var R;return Y.cmpn(1)===0?R=Z:R=V,R.cmpn(0)<0&&R.iadd($),R},X.prototype.gcd=function($){if(this.isZero())return $.abs();if($.isZero())return this.abs();var Y=this.clone(),G=$.clone();Y.negative=0,G.negative=0;for(var Z=0;Y.isEven()&&G.isEven();Z++)Y.iushrn(1),G.iushrn(1);do{for(;Y.isEven();)Y.iushrn(1);for(;G.isEven();)G.iushrn(1);var V=Y.cmp(G);if(V<0){var I=Y;Y=G,G=I}else if(V===0||G.cmpn(1)===0)break;Y.isub(G)}while(!0);return G.iushln(Z)},X.prototype.invm=function($){return this.egcd($).a.umod($)},X.prototype.isEven=function(){return(this.words[0]&1)===0},X.prototype.isOdd=function(){return(this.words[0]&1)===1},X.prototype.andln=function($){return this.words[0]&$},X.prototype.bincn=function($){F(typeof $=="number");var Y=$%26,G=($-Y)/26,Z=1<>>26,O&=67108863,this.words[I]=O}return V!==0&&(this.words[I]=V,this.length++),this},X.prototype.isZero=function(){return this.length===1&&this.words[0]===0},X.prototype.cmpn=function($){var Y=$<0;if(this.negative!==0&&!Y)return-1;if(this.negative===0&&Y)return 1;this.strip();var G;if(this.length>1)G=1;else{Y&&($=-$),F($<=67108863,"Number is too big");var Z=this.words[0]|0;G=Z===$?0:Z<$?-1:1}return this.negative!==0?-G|0:G},X.prototype.cmp=function($){if(this.negative!==0&&$.negative===0)return-1;if(this.negative===0&&$.negative!==0)return 1;var Y=this.ucmp($);return this.negative!==0?-Y|0:Y},X.prototype.ucmp=function($){if(this.length>$.length)return 1;if(this.length<$.length)return-1;for(var Y=0,G=this.length-1;G>=0;G--){var Z=this.words[G]|0,V=$.words[G]|0;if(Z!==V){ZV&&(Y=1);break}}return Y},X.prototype.gtn=function($){return this.cmpn($)===1},X.prototype.gt=function($){return this.cmp($)===1},X.prototype.gten=function($){return this.cmpn($)>=0},X.prototype.gte=function($){return this.cmp($)>=0},X.prototype.ltn=function($){return this.cmpn($)===-1},X.prototype.lt=function($){return this.cmp($)===-1},X.prototype.lten=function($){return this.cmpn($)<=0},X.prototype.lte=function($){return this.cmp($)<=0},X.prototype.eqn=function($){return this.cmpn($)===0},X.prototype.eq=function($){return this.cmp($)===0},X.red=function($){return new p($)},X.prototype.toRed=function($){return F(!this.red,"Already a number in reduction context"),F(this.negative===0,"red works only with positives"),$.convertTo(this)._forceRed($)},X.prototype.fromRed=function(){return F(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},X.prototype._forceRed=function($){return this.red=$,this},X.prototype.forceRed=function($){return F(!this.red,"Already a number in reduction context"),this._forceRed($)},X.prototype.redAdd=function($){return F(this.red,"redAdd works only with red numbers"),this.red.add(this,$)},X.prototype.redIAdd=function($){return F(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,$)},X.prototype.redSub=function($){return F(this.red,"redSub works only with red numbers"),this.red.sub(this,$)},X.prototype.redISub=function($){return F(this.red,"redISub works only with red numbers"),this.red.isub(this,$)},X.prototype.redShl=function($){return F(this.red,"redShl works only with red numbers"),this.red.shl(this,$)},X.prototype.redMul=function($){return F(this.red,"redMul works only with red numbers"),this.red._verify2(this,$),this.red.mul(this,$)},X.prototype.redIMul=function($){return F(this.red,"redMul works only with red numbers"),this.red._verify2(this,$),this.red.imul(this,$)},X.prototype.redSqr=function(){return F(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},X.prototype.redISqr=function(){return F(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},X.prototype.redSqrt=function(){return F(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},X.prototype.redInvm=function(){return F(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},X.prototype.redNeg=function(){return F(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},X.prototype.redPow=function($){return F(this.red&&!$.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,$)};var y={k256:null,p224:null,p192:null,p25519:null};function w($,Y){this.name=$,this.p=new X(Y,16),this.n=this.p.bitLength(),this.k=new X(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}w.prototype._tmp=function(){var $=new X(null);return $.words=new Array(Math.ceil(this.n/13)),$},w.prototype.ireduce=function($){var Y=$,G;do this.split(Y,this.tmp),Y=this.imulK(Y),Y=Y.iadd(this.tmp),G=Y.bitLength();while(G>this.n);var Z=G0?Y.isub(this.p):Y.strip!==void 0?Y.strip():Y._strip(),Y},w.prototype.split=function($,Y){$.iushrn(this.n,0,Y)},w.prototype.imulK=function($){return $.imul(this.k)};function f(){w.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}z(f,w),f.prototype.split=function($,Y){for(var G=4194303,Z=Math.min($.length,9),V=0;V>>22,I=O}I>>>=22,$.words[V-10]=I,I===0&&$.length>10?$.length-=10:$.length-=9},f.prototype.imulK=function($){$.words[$.length]=0,$.words[$.length+1]=0,$.length+=2;for(var Y=0,G=0;G<$.length;G++){var Z=$.words[G]|0;Y+=Z*977,$.words[G]=Y&67108863,Y=Z*64+(Y/67108864|0)}return $.words[$.length-1]===0&&($.length--,$.words[$.length-1]===0&&$.length--),$};function b(){w.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}z(b,w);function u(){w.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}z(u,w);function Y0(){w.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}z(Y0,w),Y0.prototype.imulK=function($){for(var Y=0,G=0;G<$.length;G++){var Z=($.words[G]|0)*19+Y,V=Z&67108863;Z>>>=26,$.words[G]=V,Y=Z}return Y!==0&&($.words[$.length++]=Y),$},X._prime=function($){if(y[$])return y[$];var Y;if($==="k256")Y=new f;else if($==="p224")Y=new b;else if($==="p192")Y=new u;else if($==="p25519")Y=new Y0;else throw new Error("Unknown prime "+$);return y[$]=Y,Y};function p($){if(typeof $=="string"){var Y=X._prime($);this.m=Y.p,this.prime=Y}else F($.gtn(1),"modulus must be greater than 1"),this.m=$,this.prime=null}p.prototype._verify1=function($){F($.negative===0,"red works only with positives"),F($.red,"red works only with red numbers")},p.prototype._verify2=function($,Y){F(($.negative|Y.negative)===0,"red works only with positives"),F($.red&&$.red===Y.red,"red works only with red numbers")},p.prototype.imod=function($){return this.prime?this.prime.ireduce($)._forceRed(this):$.umod(this.m)._forceRed(this)},p.prototype.neg=function($){return $.isZero()?$.clone():this.m.sub($)._forceRed(this)},p.prototype.add=function($,Y){this._verify2($,Y);var G=$.add(Y);return G.cmp(this.m)>=0&&G.isub(this.m),G._forceRed(this)},p.prototype.iadd=function($,Y){this._verify2($,Y);var G=$.iadd(Y);return G.cmp(this.m)>=0&&G.isub(this.m),G},p.prototype.sub=function($,Y){this._verify2($,Y);var G=$.sub(Y);return G.cmpn(0)<0&&G.iadd(this.m),G._forceRed(this)},p.prototype.isub=function($,Y){this._verify2($,Y);var G=$.isub(Y);return G.cmpn(0)<0&&G.iadd(this.m),G},p.prototype.shl=function($,Y){return this._verify1($),this.imod($.ushln(Y))},p.prototype.imul=function($,Y){return this._verify2($,Y),this.imod($.imul(Y))},p.prototype.mul=function($,Y){return this._verify2($,Y),this.imod($.mul(Y))},p.prototype.isqr=function($){return this.imul($,$.clone())},p.prototype.sqr=function($){return this.mul($,$)},p.prototype.sqrt=function($){if($.isZero())return $.clone();var Y=this.m.andln(3);if(F(Y%2===1),Y===3){var G=this.m.add(new X(1)).iushrn(2);return this.pow($,G)}for(var Z=this.m.subn(1),V=0;!Z.isZero()&&Z.andln(1)===0;)V++,Z.iushrn(1);F(!Z.isZero());var I=new X(1).toRed(this),O=I.redNeg(),U=this.m.subn(1).iushrn(1),Q=this.m.bitLength();for(Q=new X(2*Q*Q).toRed(this);this.pow(Q,U).cmp(O)!==0;)Q.redIAdd(O);for(var K=this.pow(Q,Z),R=this.pow($,Z.addn(1).iushrn(1)),A=this.pow($,Z),S=V;A.cmp(I)!==0;){for(var x=A,B=0;x.cmp(I)!==0;B++)x=x.redSqr();F(B=0;V--){for(var K=Y.words[V],R=Q-1;R>=0;R--){var A=K>>R&1;if(I!==Z[0]&&(I=this.sqr(I)),A===0&&O===0){U=0;continue}O<<=1,O|=A,U++,!(U!==G&&(V!==0||R!==0))&&(I=this.mul(I,Z[O]),U=0,O=0)}Q=26}return I},p.prototype.convertTo=function($){var Y=$.umod(this.m);return Y===$?Y.clone():Y},p.prototype.convertFrom=function($){var Y=$.clone();return Y.red=null,Y},X.mont=function($){return new v0($)};function v0($){p.call(this,$),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new X(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}z(v0,p),v0.prototype.convertTo=function($){return this.imod($.ushln(this.shift))},v0.prototype.convertFrom=function($){var Y=this.imod($.mul(this.rinv));return Y.red=null,Y},v0.prototype.imul=function($,Y){if($.isZero()||Y.isZero())return $.words[0]=0,$.length=1,$;var G=$.imul(Y),Z=G.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),V=G.isub(Z).iushrn(this.shift),I=V;return V.cmp(this.m)>=0?I=V.isub(this.m):V.cmpn(0)<0&&(I=V.iadd(this.m)),I._forceRed(this)},v0.prototype.mul=function($,Y){if($.isZero()||Y.isZero())return new X(0)._forceRed(this);var G=$.mul(Y),Z=G.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),V=G.isub(Z).iushrn(this.shift),I=V;return V.cmp(this.m)>=0?I=V.isub(this.m):V.cmpn(0)<0&&(I=V.iadd(this.m)),I._forceRed(this)},v0.prototype.invm=function($){var Y=this.imod($._invmp(this.m).mul(this.r2));return Y._forceRed(this)}})(typeof _>"u"||_,N)}}),o$=S0({"node_modules/safer-buffer/safer.js"(N,_){var k=r$,j=g0,F={},z;for(z in k)!k.hasOwnProperty(z)||z==="SlowBuffer"||z==="Buffer"||(F[z]=k[z]);var X=F.Buffer={};for(z in j)!j.hasOwnProperty(z)||z==="allocUnsafe"||z==="allocUnsafeSlow"||(X[z]=j[z]);if(F.Buffer.prototype=j.prototype,(!X.from||X.from===Uint8Array.from)&&(X.from=function(C,P,T){if(typeof C=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof C);if(C&&typeof C.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof C);return j(C,P,T)}),X.alloc||(X.alloc=function(C,P,T){if(typeof C!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof C);if(C<0||C>=2*(1<<30))throw new RangeError('The value "'+C+'" is invalid for option "size"');var W=j(C);return!P||P.length===0?W.fill(0):typeof T=="string"?W.fill(P,T):W.fill(P),W}),!F.kStringMaxLength)try{F.kStringMaxLength=lQ}catch{}F.constants||(F.constants={MAX_LENGTH:F.kMaxLength},F.kStringMaxLength&&(F.constants.MAX_STRING_LENGTH=F.kStringMaxLength)),_.exports=F}}),u$=S0({"node_modules/asn1.js/lib/asn1/base/reporter.js"(N){var _=B0();function k(F){this._reporterState={obj:null,path:[],options:F||{},errors:[]}}N.Reporter=k,k.prototype.isError=function(F){return F instanceof j},k.prototype.save=function(){let F=this._reporterState;return{obj:F.obj,pathLen:F.path.length}},k.prototype.restore=function(F){let z=this._reporterState;z.obj=F.obj,z.path=z.path.slice(0,F.pathLen)},k.prototype.enterKey=function(F){return this._reporterState.path.push(F)},k.prototype.exitKey=function(F){let z=this._reporterState;z.path=z.path.slice(0,F-1)},k.prototype.leaveKey=function(F,z,X){let C=this._reporterState;this.exitKey(F),C.obj!==null&&(C.obj[z]=X)},k.prototype.path=function(){return this._reporterState.path.join("/")},k.prototype.enterObject=function(){let F=this._reporterState,z=F.obj;return F.obj={},z},k.prototype.leaveObject=function(F){let z=this._reporterState,X=z.obj;return z.obj=F,X},k.prototype.error=function(F){let z,X=this._reporterState,C=F instanceof j;if(C?z=F:z=new j(X.path.map(function(P){return"["+JSON.stringify(P)+"]"}).join(""),F.message||F,F.stack),!X.options.partial)throw z;return C||X.errors.push(z),z},k.prototype.wrapResult=function(F){let z=this._reporterState;return z.options.partial?{result:this.isError(F)?null:F,errors:z.errors}:F};function j(F,z){this.path=F,this.rethrow(z)}_(j,Error),j.prototype.rethrow=function(F){if(this.message=F+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,j),!this.stack)try{throw new Error(this.message)}catch(z){this.stack=z.stack}return this}}}),P$=S0({"node_modules/asn1.js/lib/asn1/base/buffer.js"(N){var _=B0(),k=u$().Reporter,j=o$().Buffer;function F(X,C){if(k.call(this,C),!j.isBuffer(X)){this.error("Input not Buffer");return}this.base=X,this.offset=0,this.length=X.length}_(F,k),N.DecoderBuffer=F,F.isDecoderBuffer=function(X){return X instanceof F?!0:typeof X=="object"&&j.isBuffer(X.base)&&X.constructor.name==="DecoderBuffer"&&typeof X.offset=="number"&&typeof X.length=="number"&&typeof X.save=="function"&&typeof X.restore=="function"&&typeof X.isEmpty=="function"&&typeof X.readUInt8=="function"&&typeof X.skip=="function"&&typeof X.raw=="function"},F.prototype.save=function(){return{offset:this.offset,reporter:k.prototype.save.call(this)}},F.prototype.restore=function(X){let C=new F(this.base);return C.offset=X.offset,C.length=this.offset,this.offset=X.offset,k.prototype.restore.call(this,X.reporter),C},F.prototype.isEmpty=function(){return this.offset===this.length},F.prototype.readUInt8=function(X){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(X||"DecoderBuffer overrun")},F.prototype.skip=function(X,C){if(!(this.offset+X<=this.length))return this.error(C||"DecoderBuffer overrun");let P=new F(this.base);return P._reporterState=this._reporterState,P.offset=this.offset,P.length=this.offset+X,this.offset+=X,P},F.prototype.raw=function(X){return this.base.slice(X?X.offset:this.offset,this.length)};function z(X,C){if(Array.isArray(X))this.length=0,this.value=X.map(function(P){return z.isEncoderBuffer(P)||(P=new z(P,C)),this.length+=P.length,P},this);else if(typeof X=="number"){if(!(0<=X&&X<=255))return C.error("non-byte EncoderBuffer value");this.value=X,this.length=1}else if(typeof X=="string")this.value=X,this.length=j.byteLength(X);else if(j.isBuffer(X))this.value=X,this.length=X.length;else return C.error("Unsupported type: "+typeof X)}N.EncoderBuffer=z,z.isEncoderBuffer=function(X){return X instanceof z?!0:typeof X=="object"&&X.constructor.name==="EncoderBuffer"&&typeof X.length=="number"&&typeof X.join=="function"},z.prototype.join=function(X,C){return X||(X=j.alloc(this.length)),C||(C=0),this.length===0||(Array.isArray(this.value)?this.value.forEach(function(P){P.join(X,C),C+=P.length}):(typeof this.value=="number"?X[C]=this.value:typeof this.value=="string"?X.write(this.value,C):j.isBuffer(this.value)&&this.value.copy(X,C),C+=this.length)),X}}}),n$=S0({"node_modules/asn1.js/lib/asn1/base/node.js"(N,_){var k=u$().Reporter,j=P$().EncoderBuffer,F=P$().DecoderBuffer,z=W$(),X=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],C=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(X),P=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];function T(J,H,D){let E={};this._baseState=E,E.name=D,E.enc=J,E.parent=H||null,E.children=null,E.tag=null,E.args=null,E.reverseArgs=null,E.choice=null,E.optional=!1,E.any=!1,E.obj=!1,E.use=null,E.useDecoder=null,E.key=null,E.default=null,E.explicit=null,E.implicit=null,E.contains=null,E.parent||(E.children=[],this._wrap())}_.exports=T;var W=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];T.prototype.clone=function(){let J=this._baseState,H={};W.forEach(function(E){H[E]=J[E]});let D=new this.constructor(H.parent);return D._baseState=H,D},T.prototype._wrap=function(){let J=this._baseState;C.forEach(function(H){this[H]=function(){let D=new this.constructor(this);return J.children.push(D),D[H].apply(D,arguments)}},this)},T.prototype._init=function(J){let H=this._baseState;z(H.parent===null),J.call(this),H.children=H.children.filter(function(D){return D._baseState.parent===this},this),z.equal(H.children.length,1,"Root node can have only one child")},T.prototype._useArgs=function(J){let H=this._baseState,D=J.filter(function(E){return E instanceof this.constructor},this);J=J.filter(function(E){return!(E instanceof this.constructor)},this),D.length!==0&&(z(H.children===null),H.children=D,D.forEach(function(E){E._baseState.parent=this},this)),J.length!==0&&(z(H.args===null),H.args=J,H.reverseArgs=J.map(function(E){if(typeof E!="object"||E.constructor!==Object)return E;let L={};return Object.keys(E).forEach(function(M){M==(M|0)&&(M|=0);let v=E[M];L[v]=M}),L}))},P.forEach(function(J){T.prototype[J]=function(){let H=this._baseState;throw new Error(J+" not implemented for encoding: "+H.enc)}}),X.forEach(function(J){T.prototype[J]=function(){let H=this._baseState,D=Array.prototype.slice.call(arguments);return z(H.tag===null),H.tag=J,this._useArgs(D),this}}),T.prototype.use=function(J){z(J);let H=this._baseState;return z(H.use===null),H.use=J,this},T.prototype.optional=function(){let J=this._baseState;return J.optional=!0,this},T.prototype.def=function(J){let H=this._baseState;return z(H.default===null),H.default=J,H.optional=!0,this},T.prototype.explicit=function(J){let H=this._baseState;return z(H.explicit===null&&H.implicit===null),H.explicit=J,this},T.prototype.implicit=function(J){let H=this._baseState;return z(H.explicit===null&&H.implicit===null),H.implicit=J,this},T.prototype.obj=function(){let J=this._baseState,H=Array.prototype.slice.call(arguments);return J.obj=!0,H.length!==0&&this._useArgs(H),this},T.prototype.key=function(J){let H=this._baseState;return z(H.key===null),H.key=J,this},T.prototype.any=function(){let J=this._baseState;return J.any=!0,this},T.prototype.choice=function(J){let H=this._baseState;return z(H.choice===null),H.choice=J,this._useArgs(Object.keys(J).map(function(D){return J[D]})),this},T.prototype.contains=function(J){let H=this._baseState;return z(H.use===null),H.contains=J,this},T.prototype._decode=function(J,H){let D=this._baseState;if(D.parent===null)return J.wrapResult(D.children[0]._decode(J,H));let E=D.default,L=!0,M=null;if(D.key!==null&&(M=J.enterKey(D.key)),D.optional){let q=null;if(D.explicit!==null?q=D.explicit:D.implicit!==null?q=D.implicit:D.tag!==null&&(q=D.tag),q===null&&!D.any){let g=J.save();try{D.choice===null?this._decodeGeneric(D.tag,J,H):this._decodeChoice(J,H),L=!0}catch{L=!1}J.restore(g)}else if(L=this._peekTag(J,q,D.any),J.isError(L))return L}let v;if(D.obj&&L&&(v=J.enterObject()),L){if(D.explicit!==null){let g=this._decodeTag(J,D.explicit);if(J.isError(g))return g;J=g}let q=J.offset;if(D.use===null&&D.choice===null){let g;D.any&&(g=J.save());let y=this._decodeTag(J,D.implicit!==null?D.implicit:D.tag,D.any);if(J.isError(y))return y;D.any?E=J.raw(g):J=y}if(H&&H.track&&D.tag!==null&&H.track(J.path(),q,J.length,"tagged"),H&&H.track&&D.tag!==null&&H.track(J.path(),J.offset,J.length,"content"),D.any||(D.choice===null?E=this._decodeGeneric(D.tag,J,H):E=this._decodeChoice(J,H)),J.isError(E))return E;if(!D.any&&D.choice===null&&D.children!==null&&D.children.forEach(function(g){g._decode(J,H)}),D.contains&&(D.tag==="octstr"||D.tag==="bitstr")){let g=new F(E);E=this._getUse(D.contains,J._reporterState.obj)._decode(g,H)}}return D.obj&&L&&(E=J.leaveObject(v)),D.key!==null&&(E!==null||L===!0)?J.leaveKey(M,D.key,E):M!==null&&J.exitKey(M),E},T.prototype._decodeGeneric=function(J,H,D){let E=this._baseState;return J==="seq"||J==="set"?null:J==="seqof"||J==="setof"?this._decodeList(H,J,E.args[0],D):/str$/.test(J)?this._decodeStr(H,J,D):J==="objid"&&E.args?this._decodeObjid(H,E.args[0],E.args[1],D):J==="objid"?this._decodeObjid(H,null,null,D):J==="gentime"||J==="utctime"?this._decodeTime(H,J,D):J==="null_"?this._decodeNull(H,D):J==="bool"?this._decodeBool(H,D):J==="objDesc"?this._decodeStr(H,J,D):J==="int"||J==="enum"?this._decodeInt(H,E.args&&E.args[0],D):E.use!==null?this._getUse(E.use,H._reporterState.obj)._decode(H,D):H.error("unknown tag: "+J)},T.prototype._getUse=function(J,H){let D=this._baseState;return D.useDecoder=this._use(J,H),z(D.useDecoder._baseState.parent===null),D.useDecoder=D.useDecoder._baseState.children[0],D.implicit!==D.useDecoder._baseState.implicit&&(D.useDecoder=D.useDecoder.clone(),D.useDecoder._baseState.implicit=D.implicit),D.useDecoder},T.prototype._decodeChoice=function(J,H){let D=this._baseState,E=null,L=!1;return Object.keys(D.choice).some(function(M){let v=J.save(),q=D.choice[M];try{let g=q._decode(J,H);if(J.isError(g))return!1;E={type:M,value:g},L=!0}catch{return J.restore(v),!1}return!0},this),L?E:J.error("Choice not matched")},T.prototype._createEncoderBuffer=function(J){return new j(J,this.reporter)},T.prototype._encode=function(J,H,D){let E=this._baseState;if(E.default!==null&&E.default===J)return;let L=this._encodeValue(J,H,D);if(L!==void 0&&!this._skipDefault(L,H,D))return L},T.prototype._encodeValue=function(J,H,D){let E=this._baseState;if(E.parent===null)return E.children[0]._encode(J,H||new k);let L=null;if(this.reporter=H,E.optional&&J===void 0)if(E.default!==null)J=E.default;else return;let M=null,v=!1;if(E.any)L=this._createEncoderBuffer(J);else if(E.choice)L=this._encodeChoice(J,H);else if(E.contains)M=this._getUse(E.contains,D)._encode(J,H),v=!0;else if(E.children)M=E.children.map(function(q){if(q._baseState.tag==="null_")return q._encode(null,H,J);if(q._baseState.key===null)return H.error("Child should have a key");let g=H.enterKey(q._baseState.key);if(typeof J!="object")return H.error("Child expected, but input is not object");let y=q._encode(J[q._baseState.key],H,J);return H.leaveKey(g),y},this).filter(function(q){return q}),M=this._createEncoderBuffer(M);else if(E.tag==="seqof"||E.tag==="setof"){if(!(E.args&&E.args.length===1))return H.error("Too many args for : "+E.tag);if(!Array.isArray(J))return H.error("seqof/setof, but data is not Array");let q=this.clone();q._baseState.implicit=null,M=this._createEncoderBuffer(J.map(function(g){let y=this._baseState;return this._getUse(y.args[0],J)._encode(g,H)},q))}else E.use!==null?L=this._getUse(E.use,D)._encode(J,H):(M=this._encodePrimitive(E.tag,J),v=!0);if(!E.any&&E.choice===null){let q=E.implicit!==null?E.implicit:E.tag,g=E.implicit===null?"universal":"context";q===null?E.use===null&&H.error("Tag could be omitted only for .use()"):E.use===null&&(L=this._encodeComposite(q,v,g,M))}return E.explicit!==null&&(L=this._encodeComposite(E.explicit,!1,"context",L)),L},T.prototype._encodeChoice=function(J,H){let D=this._baseState,E=D.choice[J.type];return E||z(!1,J.type+" not found in "+JSON.stringify(Object.keys(D.choice))),E._encode(J.value,H)},T.prototype._encodePrimitive=function(J,H){let D=this._baseState;if(/str$/.test(J))return this._encodeStr(H,J);if(J==="objid"&&D.args)return this._encodeObjid(H,D.reverseArgs[0],D.args[1]);if(J==="objid")return this._encodeObjid(H,null,null);if(J==="gentime"||J==="utctime")return this._encodeTime(H,J);if(J==="null_")return this._encodeNull();if(J==="int"||J==="enum")return this._encodeInt(H,D.args&&D.reverseArgs[0]);if(J==="bool")return this._encodeBool(H);if(J==="objDesc")return this._encodeStr(H,J);throw new Error("Unsupported tag: "+J)},T.prototype._isNumstr=function(J){return/^[0-9 ]*$/.test(J)},T.prototype._isPrintstr=function(J){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(J)}}}),s$=S0({"node_modules/asn1.js/lib/asn1/constants/der.js"(N){function _(k){let j={};return Object.keys(k).forEach(function(F){(F|0)==F&&(F=F|0);let z=k[F];j[z]=F}),j}N.tagClass={0:"universal",1:"application",2:"context",3:"private"},N.tagClassByName=_(N.tagClass),N.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},N.tagByName=_(N.tag)}}),kQ=S0({"node_modules/asn1.js/lib/asn1/encoders/der.js"(N,_){var k=B0(),j=o$().Buffer,F=n$(),z=s$();function X(W){this.enc="der",this.name=W.name,this.entity=W,this.tree=new C,this.tree._init(W.body)}_.exports=X,X.prototype.encode=function(W,J){return this.tree._encode(W,J).join()};function C(W){F.call(this,"der",W)}k(C,F),C.prototype._encodeComposite=function(W,J,H,D){let E=T(W,J,H,this.reporter);if(D.length<128){let v=j.alloc(2);return v[0]=E,v[1]=D.length,this._createEncoderBuffer([v,D])}let L=1;for(let v=D.length;v>=256;v>>=8)L++;let M=j.alloc(2+L);M[0]=E,M[1]=128|L;for(let v=1+L,q=D.length;q>0;v--,q>>=8)M[v]=q&255;return this._createEncoderBuffer([M,D])},C.prototype._encodeStr=function(W,J){if(J==="bitstr")return this._createEncoderBuffer([W.unused|0,W.data]);if(J==="bmpstr"){let H=j.alloc(W.length*2);for(let D=0;D=40)return this.reporter.error("Second objid identifier OOB");W.splice(0,2,W[0]*40+W[1])}let D=0;for(let M=0;M=128;v>>=7)D++}let E=j.alloc(D),L=E.length-1;for(let M=W.length-1;M>=0;M--){let v=W[M];for(E[L--]=v&127;(v>>=7)>0;)E[L--]=128|v&127}return this._createEncoderBuffer(E)};function P(W){return W<10?"0"+W:W}C.prototype._encodeTime=function(W,J){let H,D=new Date(W);return J==="gentime"?H=[P(D.getUTCFullYear()),P(D.getUTCMonth()+1),P(D.getUTCDate()),P(D.getUTCHours()),P(D.getUTCMinutes()),P(D.getUTCSeconds()),"Z"].join(""):J==="utctime"?H=[P(D.getUTCFullYear()%100),P(D.getUTCMonth()+1),P(D.getUTCDate()),P(D.getUTCHours()),P(D.getUTCMinutes()),P(D.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+J+" time is not supported yet"),this._encodeStr(H,"octstr")},C.prototype._encodeNull=function(){return this._createEncoderBuffer("")},C.prototype._encodeInt=function(W,J){if(typeof W=="string"){if(!J)return this.reporter.error("String int or enum given, but no values map");if(!J.hasOwnProperty(W))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(W));W=J[W]}if(typeof W!="number"&&!j.isBuffer(W)){let E=W.toArray();!W.sign&&E[0]&128&&E.unshift(0),W=j.from(E)}if(j.isBuffer(W)){let E=W.length;W.length===0&&E++;let L=j.alloc(E);return W.copy(L),W.length===0&&(L[0]=0),this._createEncoderBuffer(L)}if(W<128)return this._createEncoderBuffer(W);if(W<256)return this._createEncoderBuffer([0,W]);let H=1;for(let E=W;E>=256;E>>=8)H++;let D=new Array(H);for(let E=D.length-1;E>=0;E--)D[E]=W&255,W>>=8;return D[0]&128&&D.unshift(0),this._createEncoderBuffer(j.from(D))},C.prototype._encodeBool=function(W){return this._createEncoderBuffer(W?255:0)},C.prototype._use=function(W,J){return typeof W=="function"&&(W=W(J)),W._getEncoder("der").tree},C.prototype._skipDefault=function(W,J,H){let D=this._baseState,E;if(D.default===null)return!1;let L=W.join();if(D.defaultBuffer===void 0&&(D.defaultBuffer=this._encodeValue(D.default,J,H).join()),L.length!==D.defaultBuffer.length)return!1;for(E=0;E=31?D.error("Multi-octet tag encoding unsupported"):(J||(E|=32),E|=z.tagClassByName[H||"universal"]<<6,E)}}}),yY=S0({"node_modules/asn1.js/lib/asn1/encoders/pem.js"(N,_){var k=B0(),j=kQ();function F(z){j.call(this,z),this.enc="pem"}k(F,j),_.exports=F,F.prototype.encode=function(z,X){let C=j.prototype.encode.call(this,z).toString("base64"),P=["-----BEGIN "+X.label+"-----"];for(let T=0;T>6],L=(D&32)===0;if((D&31)===31){let v=D;for(D=0;(v&128)===128;){if(v=J.readUInt8(H),J.isError(v))return v;D<<=7,D|=v&127}}else D&=31;let M=X.tag[D];return{cls:E,primitive:L,tag:D,tagStr:M}}function W(J,H,D){let E=J.readUInt8(D);if(J.isError(E))return E;if(!H&&E===128)return null;if((E&128)===0)return E;let L=E&127;if(L>4)return J.error("length octect is too long");E=0;for(let M=0;M0&&y.ishrn(w),y}function L(q,g){q=E(q,g),q=q.mod(g);var y=k.from(q.toArray());if(y.length=H)throw new Error("invalid sig")}_.exports=C}}),nY=S0({"node_modules/browserify-sign/browser/index.js"(N,_){var k=N0().Buffer,j=M$(),F=B0(),z=oY(),X=uY(),C=KQ();Object.keys(C).forEach(function(H){C[H].id=k.from(C[H].id,"hex"),C[H.toLowerCase()]=C[H]});function P(H){A$.Writable.call(this);var D=C[H];if(!D)throw new Error("Unknown message digest");this._hashType=D.hash,this._hash=j(D.hash),this._tag=D.id,this._signType=D.sign}F(P,A$.Writable),P.prototype._write=function(H,D,E){this._hash.update(H),E()},P.prototype.update=function(H,D){return typeof H=="string"&&(H=k.from(H,D)),this._hash.update(H),this},P.prototype.sign=function(H,D){this.end();var E=this._hash.digest(),L=z(E,H,this._hashType,this._signType,this._tag);return D?L.toString(D):L};function T(H){A$.Writable.call(this);var D=C[H];if(!D)throw new Error("Unknown message digest");this._hash=j(D.hash),this._tag=D.id,this._signType=D.sign}F(T,A$.Writable),T.prototype._write=function(H,D,E){this._hash.update(H),E()},T.prototype.update=function(H,D){return typeof H=="string"&&(H=k.from(H,D)),this._hash.update(H),this},T.prototype.verify=function(H,D,E){typeof D=="string"&&(D=k.from(D,E)),this.end();var L=this._hash.digest();return X(D,L,H,this._signType,this._tag)};function W(H){return new P(H)}function J(H){return new T(H)}_.exports={Sign:W,Verify:J,createSign:W,createVerify:J}}}),sY=S0({"node_modules/create-ecdh/node_modules/bn.js/lib/bn.js"(N,_){(function(k,j){function F($,Y){if(!$)throw new Error(Y||"Assertion failed")}function z($,Y){$.super_=Y;var G=function(){};G.prototype=Y.prototype,$.prototype=new G,$.prototype.constructor=$}function X($,Y,G){if(X.isBN($))return $;this.negative=0,this.words=null,this.length=0,this.red=null,$!==null&&((Y==="le"||Y==="be")&&(G=Y,Y=10),this._init($||0,Y||10,G||"be"))}typeof k=="object"?k.exports=X:j.BN=X,X.BN=X,X.wordSize=26;var C=g0;X.isBN=function($){return $ instanceof X?!0:$!==null&&typeof $=="object"&&$.constructor.wordSize===X.wordSize&&Array.isArray($.words)},X.max=function($,Y){return $.cmp(Y)>0?$:Y},X.min=function($,Y){return $.cmp(Y)<0?$:Y},X.prototype._init=function($,Y,G){if(typeof $=="number")return this._initNumber($,Y,G);if(typeof $=="object")return this._initArray($,Y,G);Y==="hex"&&(Y=16),F(Y===(Y|0)&&Y>=2&&Y<=36),$=$.toString().replace(/\s+/g,"");var Z=0;$[0]==="-"&&(Z++,this.negative=1),Z<$.length&&(Y===16?this._parseHex($,Z,G):(this._parseBase($,Y,Z),G==="le"&&this._initArray(this.toArray(),Y,G)))},X.prototype._initNumber=function($,Y,G){$<0&&(this.negative=1,$=-$),$<67108864?(this.words=[$&67108863],this.length=1):$<4503599627370496?(this.words=[$&67108863,$/67108864&67108863],this.length=2):(F($<9007199254740992),this.words=[$&67108863,$/67108864&67108863,1],this.length=3),G==="le"&&this._initArray(this.toArray(),Y,G)},X.prototype._initArray=function($,Y,G){if(F(typeof $.length=="number"),$.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil($.length/3),this.words=new Array(this.length);for(var Z=0;Z=0;Z-=3)I=$[Z]|$[Z-1]<<8|$[Z-2]<<16,this.words[V]|=I<>>26-O&67108863,O+=24,O>=26&&(O-=26,V++);else if(G==="le")for(Z=0,V=0;Z<$.length;Z+=3)I=$[Z]|$[Z+1]<<8|$[Z+2]<<16,this.words[V]|=I<>>26-O&67108863,O+=24,O>=26&&(O-=26,V++);return this.strip()};function P($,Y){var G=$.charCodeAt(Y);return G>=65&&G<=70?G-55:G>=97&&G<=102?G-87:G-48&15}function T($,Y,G){var Z=P($,G);return G-1>=Y&&(Z|=P($,G-1)<<4),Z}X.prototype._parseHex=function($,Y,G){this.length=Math.ceil(($.length-Y)/6),this.words=new Array(this.length);for(var Z=0;Z=Y;Z-=2)O=T($,Y,Z)<=18?(V-=18,I+=1,this.words[I]|=O>>>26):V+=8;else{var U=$.length-Y;for(Z=U%2===0?Y+1:Y;Z<$.length;Z+=2)O=T($,Y,Z)<=18?(V-=18,I+=1,this.words[I]|=O>>>26):V+=8}this.strip()};function W($,Y,G,Z){for(var V=0,I=Math.min($.length,G),O=Y;O=49?V+=U-49+10:U>=17?V+=U-17+10:V+=U}return V}X.prototype._parseBase=function($,Y,G){this.words=[0],this.length=1;for(var Z=0,V=1;V<=67108863;V*=Y)Z++;Z--,V=V/Y|0;for(var I=$.length-G,O=I%Z,U=Math.min(I,I-O)+G,Q=0,K=G;K1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},X.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},X.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],H=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],D=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];X.prototype.toString=function($,Y){$=$||10,Y=Y|0||1;var G;if($===16||$==="hex"){G="";for(var Z=0,V=0,I=0;I>>24-Z&16777215,V!==0||I!==this.length-1?G=J[6-U.length]+U+G:G=U+G,Z+=2,Z>=26&&(Z-=26,I--)}for(V!==0&&(G=V.toString(16)+G);G.length%Y!==0;)G="0"+G;return this.negative!==0&&(G="-"+G),G}if($===($|0)&&$>=2&&$<=36){var Q=H[$],K=D[$];G="";var R=this.clone();for(R.negative=0;!R.isZero();){var A=R.modn(K).toString($);R=R.idivn(K),R.isZero()?G=A+G:G=J[Q-A.length]+A+G}for(this.isZero()&&(G="0"+G);G.length%Y!==0;)G="0"+G;return this.negative!==0&&(G="-"+G),G}F(!1,"Base should be between 2 and 36")},X.prototype.toNumber=function(){var $=this.words[0];return this.length===2?$+=this.words[1]*67108864:this.length===3&&this.words[2]===1?$+=4503599627370496+this.words[1]*67108864:this.length>2&&F(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-$:$},X.prototype.toJSON=function(){return this.toString(16)},X.prototype.toBuffer=function($,Y){return F(typeof C<"u"),this.toArrayLike(C,$,Y)},X.prototype.toArray=function($,Y){return this.toArrayLike(Array,$,Y)},X.prototype.toArrayLike=function($,Y,G){var Z=this.byteLength(),V=G||Math.max(1,Z);F(Z<=V,"byte array longer than desired length"),F(V>0,"Requested array length <= 0"),this.strip();var I=Y==="le",O=new $(V),U,Q,K=this.clone();if(I){for(Q=0;!K.isZero();Q++)U=K.andln(255),K.iushrn(8),O[Q]=U;for(;Q=4096&&(G+=13,Y>>>=13),Y>=64&&(G+=7,Y>>>=7),Y>=8&&(G+=4,Y>>>=4),Y>=2&&(G+=2,Y>>>=2),G+Y},X.prototype._zeroBits=function($){if($===0)return 26;var Y=$,G=0;return(Y&8191)===0&&(G+=13,Y>>>=13),(Y&127)===0&&(G+=7,Y>>>=7),(Y&15)===0&&(G+=4,Y>>>=4),(Y&3)===0&&(G+=2,Y>>>=2),(Y&1)===0&&G++,G},X.prototype.bitLength=function(){var $=this.words[this.length-1],Y=this._countBits($);return(this.length-1)*26+Y};function E($){for(var Y=new Array($.bitLength()),G=0;G>>V}return Y}X.prototype.zeroBits=function(){if(this.isZero())return 0;for(var $=0,Y=0;Y$.length?this.clone().ior($):$.clone().ior(this)},X.prototype.uor=function($){return this.length>$.length?this.clone().iuor($):$.clone().iuor(this)},X.prototype.iuand=function($){var Y;this.length>$.length?Y=$:Y=this;for(var G=0;G$.length?this.clone().iand($):$.clone().iand(this)},X.prototype.uand=function($){return this.length>$.length?this.clone().iuand($):$.clone().iuand(this)},X.prototype.iuxor=function($){var Y,G;this.length>$.length?(Y=this,G=$):(Y=$,G=this);for(var Z=0;Z$.length?this.clone().ixor($):$.clone().ixor(this)},X.prototype.uxor=function($){return this.length>$.length?this.clone().iuxor($):$.clone().iuxor(this)},X.prototype.inotn=function($){F(typeof $=="number"&&$>=0);var Y=Math.ceil($/26)|0,G=$%26;this._expand(Y),G>0&&Y--;for(var Z=0;Z0&&(this.words[Z]=~this.words[Z]&67108863>>26-G),this.strip()},X.prototype.notn=function($){return this.clone().inotn($)},X.prototype.setn=function($,Y){F(typeof $=="number"&&$>=0);var G=$/26|0,Z=$%26;return this._expand(G+1),Y?this.words[G]=this.words[G]|1<$.length?(G=this,Z=$):(G=$,Z=this);for(var V=0,I=0;I>>26;for(;V!==0&&I>>26;if(this.length=G.length,V!==0)this.words[this.length]=V,this.length++;else if(G!==this)for(;I$.length?this.clone().iadd($):$.clone().iadd(this)},X.prototype.isub=function($){if($.negative!==0){$.negative=0;var Y=this.iadd($);return $.negative=1,Y._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd($),this.negative=1,this._normSign();var G=this.cmp($);if(G===0)return this.negative=0,this.length=1,this.words[0]=0,this;var Z,V;G>0?(Z=this,V=$):(Z=$,V=this);for(var I=0,O=0;O>26,this.words[O]=Y&67108863;for(;I!==0&&O>26,this.words[O]=Y&67108863;if(I===0&&O>>26,A=Q&67108863,S=Math.min(K,Y.length-1),x=Math.max(0,K-$.length+1);x<=S;x++){var B=K-x|0;V=$.words[B]|0,I=Y.words[x]|0,O=V*I+A,R+=O/67108864|0,A=O&67108863}G.words[K]=A|0,Q=R|0}return Q!==0?G.words[K]=Q|0:G.length--,G.strip()}var M=function($,Y,G){var Z=$.words,V=Y.words,I=G.words,O=0,U,Q,K,R=Z[0]|0,A=R&8191,S=R>>>13,x=Z[1]|0,B=x&8191,c=x>>>13,q0=Z[2]|0,h=q0&8191,d=q0>>>13,_0=Z[3]|0,l=_0&8191,n=_0>>>13,y0=Z[4]|0,t=y0&8191,s=y0>>>13,w0=Z[5]|0,m=w0&8191,r=w0>>>13,$$=Z[6]|0,i=$$&8191,e=$$>>>13,x0=Z[7]|0,o=x0&8191,a=x0>>>13,p0=Z[8]|0,$0=p0&8191,Q0=p0>>>13,Y$=Z[9]|0,Z0=Y$&8191,G0=Y$>>>13,Z$=V[0]|0,V0=Z$&8191,U0=Z$>>>13,G$=V[1]|0,X0=G$&8191,K0=G$>>>13,V$=V[2]|0,I0=V$&8191,O0=V$>>>13,U$=V[3]|0,J0=U$&8191,F0=U$>>>13,X$=V[4]|0,A0=X$&8191,H0=X$>>>13,K$=V[5]|0,W0=K$&8191,E0=K$>>>13,I$=V[6]|0,T0=I$&8191,D0=I$>>>13,O$=V[7]|0,C0=O$&8191,L0=O$>>>13,J$=V[8]|0,R0=J$&8191,P0=J$>>>13,F$=V[9]|0,z0=F$&8191,M0=F$>>>13;G.negative=$.negative^Y.negative,G.length=19,U=Math.imul(A,V0),Q=Math.imul(A,U0),Q=Q+Math.imul(S,V0)|0,K=Math.imul(S,U0);var Q$=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,U=Math.imul(B,V0),Q=Math.imul(B,U0),Q=Q+Math.imul(c,V0)|0,K=Math.imul(c,U0),U=U+Math.imul(A,X0)|0,Q=Q+Math.imul(A,K0)|0,Q=Q+Math.imul(S,X0)|0,K=K+Math.imul(S,K0)|0;var j0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(j0>>>26)|0,j0&=67108863,U=Math.imul(h,V0),Q=Math.imul(h,U0),Q=Q+Math.imul(d,V0)|0,K=Math.imul(d,U0),U=U+Math.imul(B,X0)|0,Q=Q+Math.imul(B,K0)|0,Q=Q+Math.imul(c,X0)|0,K=K+Math.imul(c,K0)|0,U=U+Math.imul(A,I0)|0,Q=Q+Math.imul(A,O0)|0,Q=Q+Math.imul(S,I0)|0,K=K+Math.imul(S,O0)|0;var k0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(k0>>>26)|0,k0&=67108863,U=Math.imul(l,V0),Q=Math.imul(l,U0),Q=Q+Math.imul(n,V0)|0,K=Math.imul(n,U0),U=U+Math.imul(h,X0)|0,Q=Q+Math.imul(h,K0)|0,Q=Q+Math.imul(d,X0)|0,K=K+Math.imul(d,K0)|0,U=U+Math.imul(B,I0)|0,Q=Q+Math.imul(B,O0)|0,Q=Q+Math.imul(c,I0)|0,K=K+Math.imul(c,O0)|0,U=U+Math.imul(A,J0)|0,Q=Q+Math.imul(A,F0)|0,Q=Q+Math.imul(S,J0)|0,K=K+Math.imul(S,F0)|0;var f0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(f0>>>26)|0,f0&=67108863,U=Math.imul(t,V0),Q=Math.imul(t,U0),Q=Q+Math.imul(s,V0)|0,K=Math.imul(s,U0),U=U+Math.imul(l,X0)|0,Q=Q+Math.imul(l,K0)|0,Q=Q+Math.imul(n,X0)|0,K=K+Math.imul(n,K0)|0,U=U+Math.imul(h,I0)|0,Q=Q+Math.imul(h,O0)|0,Q=Q+Math.imul(d,I0)|0,K=K+Math.imul(d,O0)|0,U=U+Math.imul(B,J0)|0,Q=Q+Math.imul(B,F0)|0,Q=Q+Math.imul(c,J0)|0,K=K+Math.imul(c,F0)|0,U=U+Math.imul(A,A0)|0,Q=Q+Math.imul(A,H0)|0,Q=Q+Math.imul(S,A0)|0,K=K+Math.imul(S,H0)|0;var c0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(c0>>>26)|0,c0&=67108863,U=Math.imul(m,V0),Q=Math.imul(m,U0),Q=Q+Math.imul(r,V0)|0,K=Math.imul(r,U0),U=U+Math.imul(t,X0)|0,Q=Q+Math.imul(t,K0)|0,Q=Q+Math.imul(s,X0)|0,K=K+Math.imul(s,K0)|0,U=U+Math.imul(l,I0)|0,Q=Q+Math.imul(l,O0)|0,Q=Q+Math.imul(n,I0)|0,K=K+Math.imul(n,O0)|0,U=U+Math.imul(h,J0)|0,Q=Q+Math.imul(h,F0)|0,Q=Q+Math.imul(d,J0)|0,K=K+Math.imul(d,F0)|0,U=U+Math.imul(B,A0)|0,Q=Q+Math.imul(B,H0)|0,Q=Q+Math.imul(c,A0)|0,K=K+Math.imul(c,H0)|0,U=U+Math.imul(A,W0)|0,Q=Q+Math.imul(A,E0)|0,Q=Q+Math.imul(S,W0)|0,K=K+Math.imul(S,E0)|0;var h0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(h0>>>26)|0,h0&=67108863,U=Math.imul(i,V0),Q=Math.imul(i,U0),Q=Q+Math.imul(e,V0)|0,K=Math.imul(e,U0),U=U+Math.imul(m,X0)|0,Q=Q+Math.imul(m,K0)|0,Q=Q+Math.imul(r,X0)|0,K=K+Math.imul(r,K0)|0,U=U+Math.imul(t,I0)|0,Q=Q+Math.imul(t,O0)|0,Q=Q+Math.imul(s,I0)|0,K=K+Math.imul(s,O0)|0,U=U+Math.imul(l,J0)|0,Q=Q+Math.imul(l,F0)|0,Q=Q+Math.imul(n,J0)|0,K=K+Math.imul(n,F0)|0,U=U+Math.imul(h,A0)|0,Q=Q+Math.imul(h,H0)|0,Q=Q+Math.imul(d,A0)|0,K=K+Math.imul(d,H0)|0,U=U+Math.imul(B,W0)|0,Q=Q+Math.imul(B,E0)|0,Q=Q+Math.imul(c,W0)|0,K=K+Math.imul(c,E0)|0,U=U+Math.imul(A,T0)|0,Q=Q+Math.imul(A,D0)|0,Q=Q+Math.imul(S,T0)|0,K=K+Math.imul(S,D0)|0;var d0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(d0>>>26)|0,d0&=67108863,U=Math.imul(o,V0),Q=Math.imul(o,U0),Q=Q+Math.imul(a,V0)|0,K=Math.imul(a,U0),U=U+Math.imul(i,X0)|0,Q=Q+Math.imul(i,K0)|0,Q=Q+Math.imul(e,X0)|0,K=K+Math.imul(e,K0)|0,U=U+Math.imul(m,I0)|0,Q=Q+Math.imul(m,O0)|0,Q=Q+Math.imul(r,I0)|0,K=K+Math.imul(r,O0)|0,U=U+Math.imul(t,J0)|0,Q=Q+Math.imul(t,F0)|0,Q=Q+Math.imul(s,J0)|0,K=K+Math.imul(s,F0)|0,U=U+Math.imul(l,A0)|0,Q=Q+Math.imul(l,H0)|0,Q=Q+Math.imul(n,A0)|0,K=K+Math.imul(n,H0)|0,U=U+Math.imul(h,W0)|0,Q=Q+Math.imul(h,E0)|0,Q=Q+Math.imul(d,W0)|0,K=K+Math.imul(d,E0)|0,U=U+Math.imul(B,T0)|0,Q=Q+Math.imul(B,D0)|0,Q=Q+Math.imul(c,T0)|0,K=K+Math.imul(c,D0)|0,U=U+Math.imul(A,C0)|0,Q=Q+Math.imul(A,L0)|0,Q=Q+Math.imul(S,C0)|0,K=K+Math.imul(S,L0)|0;var b0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(b0>>>26)|0,b0&=67108863,U=Math.imul($0,V0),Q=Math.imul($0,U0),Q=Q+Math.imul(Q0,V0)|0,K=Math.imul(Q0,U0),U=U+Math.imul(o,X0)|0,Q=Q+Math.imul(o,K0)|0,Q=Q+Math.imul(a,X0)|0,K=K+Math.imul(a,K0)|0,U=U+Math.imul(i,I0)|0,Q=Q+Math.imul(i,O0)|0,Q=Q+Math.imul(e,I0)|0,K=K+Math.imul(e,O0)|0,U=U+Math.imul(m,J0)|0,Q=Q+Math.imul(m,F0)|0,Q=Q+Math.imul(r,J0)|0,K=K+Math.imul(r,F0)|0,U=U+Math.imul(t,A0)|0,Q=Q+Math.imul(t,H0)|0,Q=Q+Math.imul(s,A0)|0,K=K+Math.imul(s,H0)|0,U=U+Math.imul(l,W0)|0,Q=Q+Math.imul(l,E0)|0,Q=Q+Math.imul(n,W0)|0,K=K+Math.imul(n,E0)|0,U=U+Math.imul(h,T0)|0,Q=Q+Math.imul(h,D0)|0,Q=Q+Math.imul(d,T0)|0,K=K+Math.imul(d,D0)|0,U=U+Math.imul(B,C0)|0,Q=Q+Math.imul(B,L0)|0,Q=Q+Math.imul(c,C0)|0,K=K+Math.imul(c,L0)|0,U=U+Math.imul(A,R0)|0,Q=Q+Math.imul(A,P0)|0,Q=Q+Math.imul(S,R0)|0,K=K+Math.imul(S,P0)|0;var l0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(l0>>>26)|0,l0&=67108863,U=Math.imul(Z0,V0),Q=Math.imul(Z0,U0),Q=Q+Math.imul(G0,V0)|0,K=Math.imul(G0,U0),U=U+Math.imul($0,X0)|0,Q=Q+Math.imul($0,K0)|0,Q=Q+Math.imul(Q0,X0)|0,K=K+Math.imul(Q0,K0)|0,U=U+Math.imul(o,I0)|0,Q=Q+Math.imul(o,O0)|0,Q=Q+Math.imul(a,I0)|0,K=K+Math.imul(a,O0)|0,U=U+Math.imul(i,J0)|0,Q=Q+Math.imul(i,F0)|0,Q=Q+Math.imul(e,J0)|0,K=K+Math.imul(e,F0)|0,U=U+Math.imul(m,A0)|0,Q=Q+Math.imul(m,H0)|0,Q=Q+Math.imul(r,A0)|0,K=K+Math.imul(r,H0)|0,U=U+Math.imul(t,W0)|0,Q=Q+Math.imul(t,E0)|0,Q=Q+Math.imul(s,W0)|0,K=K+Math.imul(s,E0)|0,U=U+Math.imul(l,T0)|0,Q=Q+Math.imul(l,D0)|0,Q=Q+Math.imul(n,T0)|0,K=K+Math.imul(n,D0)|0,U=U+Math.imul(h,C0)|0,Q=Q+Math.imul(h,L0)|0,Q=Q+Math.imul(d,C0)|0,K=K+Math.imul(d,L0)|0,U=U+Math.imul(B,R0)|0,Q=Q+Math.imul(B,P0)|0,Q=Q+Math.imul(c,R0)|0,K=K+Math.imul(c,P0)|0,U=U+Math.imul(A,z0)|0,Q=Q+Math.imul(A,M0)|0,Q=Q+Math.imul(S,z0)|0,K=K+Math.imul(S,M0)|0;var o0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(o0>>>26)|0,o0&=67108863,U=Math.imul(Z0,X0),Q=Math.imul(Z0,K0),Q=Q+Math.imul(G0,X0)|0,K=Math.imul(G0,K0),U=U+Math.imul($0,I0)|0,Q=Q+Math.imul($0,O0)|0,Q=Q+Math.imul(Q0,I0)|0,K=K+Math.imul(Q0,O0)|0,U=U+Math.imul(o,J0)|0,Q=Q+Math.imul(o,F0)|0,Q=Q+Math.imul(a,J0)|0,K=K+Math.imul(a,F0)|0,U=U+Math.imul(i,A0)|0,Q=Q+Math.imul(i,H0)|0,Q=Q+Math.imul(e,A0)|0,K=K+Math.imul(e,H0)|0,U=U+Math.imul(m,W0)|0,Q=Q+Math.imul(m,E0)|0,Q=Q+Math.imul(r,W0)|0,K=K+Math.imul(r,E0)|0,U=U+Math.imul(t,T0)|0,Q=Q+Math.imul(t,D0)|0,Q=Q+Math.imul(s,T0)|0,K=K+Math.imul(s,D0)|0,U=U+Math.imul(l,C0)|0,Q=Q+Math.imul(l,L0)|0,Q=Q+Math.imul(n,C0)|0,K=K+Math.imul(n,L0)|0,U=U+Math.imul(h,R0)|0,Q=Q+Math.imul(h,P0)|0,Q=Q+Math.imul(d,R0)|0,K=K+Math.imul(d,P0)|0,U=U+Math.imul(B,z0)|0,Q=Q+Math.imul(B,M0)|0,Q=Q+Math.imul(c,z0)|0,K=K+Math.imul(c,M0)|0;var u0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(u0>>>26)|0,u0&=67108863,U=Math.imul(Z0,I0),Q=Math.imul(Z0,O0),Q=Q+Math.imul(G0,I0)|0,K=Math.imul(G0,O0),U=U+Math.imul($0,J0)|0,Q=Q+Math.imul($0,F0)|0,Q=Q+Math.imul(Q0,J0)|0,K=K+Math.imul(Q0,F0)|0,U=U+Math.imul(o,A0)|0,Q=Q+Math.imul(o,H0)|0,Q=Q+Math.imul(a,A0)|0,K=K+Math.imul(a,H0)|0,U=U+Math.imul(i,W0)|0,Q=Q+Math.imul(i,E0)|0,Q=Q+Math.imul(e,W0)|0,K=K+Math.imul(e,E0)|0,U=U+Math.imul(m,T0)|0,Q=Q+Math.imul(m,D0)|0,Q=Q+Math.imul(r,T0)|0,K=K+Math.imul(r,D0)|0,U=U+Math.imul(t,C0)|0,Q=Q+Math.imul(t,L0)|0,Q=Q+Math.imul(s,C0)|0,K=K+Math.imul(s,L0)|0,U=U+Math.imul(l,R0)|0,Q=Q+Math.imul(l,P0)|0,Q=Q+Math.imul(n,R0)|0,K=K+Math.imul(n,P0)|0,U=U+Math.imul(h,z0)|0,Q=Q+Math.imul(h,M0)|0,Q=Q+Math.imul(d,z0)|0,K=K+Math.imul(d,M0)|0;var n0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(n0>>>26)|0,n0&=67108863,U=Math.imul(Z0,J0),Q=Math.imul(Z0,F0),Q=Q+Math.imul(G0,J0)|0,K=Math.imul(G0,F0),U=U+Math.imul($0,A0)|0,Q=Q+Math.imul($0,H0)|0,Q=Q+Math.imul(Q0,A0)|0,K=K+Math.imul(Q0,H0)|0,U=U+Math.imul(o,W0)|0,Q=Q+Math.imul(o,E0)|0,Q=Q+Math.imul(a,W0)|0,K=K+Math.imul(a,E0)|0,U=U+Math.imul(i,T0)|0,Q=Q+Math.imul(i,D0)|0,Q=Q+Math.imul(e,T0)|0,K=K+Math.imul(e,D0)|0,U=U+Math.imul(m,C0)|0,Q=Q+Math.imul(m,L0)|0,Q=Q+Math.imul(r,C0)|0,K=K+Math.imul(r,L0)|0,U=U+Math.imul(t,R0)|0,Q=Q+Math.imul(t,P0)|0,Q=Q+Math.imul(s,R0)|0,K=K+Math.imul(s,P0)|0,U=U+Math.imul(l,z0)|0,Q=Q+Math.imul(l,M0)|0,Q=Q+Math.imul(n,z0)|0,K=K+Math.imul(n,M0)|0;var s0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(s0>>>26)|0,s0&=67108863,U=Math.imul(Z0,A0),Q=Math.imul(Z0,H0),Q=Q+Math.imul(G0,A0)|0,K=Math.imul(G0,H0),U=U+Math.imul($0,W0)|0,Q=Q+Math.imul($0,E0)|0,Q=Q+Math.imul(Q0,W0)|0,K=K+Math.imul(Q0,E0)|0,U=U+Math.imul(o,T0)|0,Q=Q+Math.imul(o,D0)|0,Q=Q+Math.imul(a,T0)|0,K=K+Math.imul(a,D0)|0,U=U+Math.imul(i,C0)|0,Q=Q+Math.imul(i,L0)|0,Q=Q+Math.imul(e,C0)|0,K=K+Math.imul(e,L0)|0,U=U+Math.imul(m,R0)|0,Q=Q+Math.imul(m,P0)|0,Q=Q+Math.imul(r,R0)|0,K=K+Math.imul(r,P0)|0,U=U+Math.imul(t,z0)|0,Q=Q+Math.imul(t,M0)|0,Q=Q+Math.imul(s,z0)|0,K=K+Math.imul(s,M0)|0;var t0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(t0>>>26)|0,t0&=67108863,U=Math.imul(Z0,W0),Q=Math.imul(Z0,E0),Q=Q+Math.imul(G0,W0)|0,K=Math.imul(G0,E0),U=U+Math.imul($0,T0)|0,Q=Q+Math.imul($0,D0)|0,Q=Q+Math.imul(Q0,T0)|0,K=K+Math.imul(Q0,D0)|0,U=U+Math.imul(o,C0)|0,Q=Q+Math.imul(o,L0)|0,Q=Q+Math.imul(a,C0)|0,K=K+Math.imul(a,L0)|0,U=U+Math.imul(i,R0)|0,Q=Q+Math.imul(i,P0)|0,Q=Q+Math.imul(e,R0)|0,K=K+Math.imul(e,P0)|0,U=U+Math.imul(m,z0)|0,Q=Q+Math.imul(m,M0)|0,Q=Q+Math.imul(r,z0)|0,K=K+Math.imul(r,M0)|0;var m0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(m0>>>26)|0,m0&=67108863,U=Math.imul(Z0,T0),Q=Math.imul(Z0,D0),Q=Q+Math.imul(G0,T0)|0,K=Math.imul(G0,D0),U=U+Math.imul($0,C0)|0,Q=Q+Math.imul($0,L0)|0,Q=Q+Math.imul(Q0,C0)|0,K=K+Math.imul(Q0,L0)|0,U=U+Math.imul(o,R0)|0,Q=Q+Math.imul(o,P0)|0,Q=Q+Math.imul(a,R0)|0,K=K+Math.imul(a,P0)|0,U=U+Math.imul(i,z0)|0,Q=Q+Math.imul(i,M0)|0,Q=Q+Math.imul(e,z0)|0,K=K+Math.imul(e,M0)|0;var a0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(a0>>>26)|0,a0&=67108863,U=Math.imul(Z0,C0),Q=Math.imul(Z0,L0),Q=Q+Math.imul(G0,C0)|0,K=Math.imul(G0,L0),U=U+Math.imul($0,R0)|0,Q=Q+Math.imul($0,P0)|0,Q=Q+Math.imul(Q0,R0)|0,K=K+Math.imul(Q0,P0)|0,U=U+Math.imul(o,z0)|0,Q=Q+Math.imul(o,M0)|0,Q=Q+Math.imul(a,z0)|0,K=K+Math.imul(a,M0)|0;var e0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(e0>>>26)|0,e0&=67108863,U=Math.imul(Z0,R0),Q=Math.imul(Z0,P0),Q=Q+Math.imul(G0,R0)|0,K=Math.imul(G0,P0),U=U+Math.imul($0,z0)|0,Q=Q+Math.imul($0,M0)|0,Q=Q+Math.imul(Q0,z0)|0,K=K+Math.imul(Q0,M0)|0;var r0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(r0>>>26)|0,r0&=67108863,U=Math.imul(Z0,z0),Q=Math.imul(Z0,M0),Q=Q+Math.imul(G0,z0)|0,K=Math.imul(G0,M0);var i0=(O+U|0)+((Q&8191)<<13)|0;return O=(K+(Q>>>13)|0)+(i0>>>26)|0,i0&=67108863,I[0]=Q$,I[1]=j0,I[2]=k0,I[3]=f0,I[4]=c0,I[5]=h0,I[6]=d0,I[7]=b0,I[8]=l0,I[9]=o0,I[10]=u0,I[11]=n0,I[12]=s0,I[13]=t0,I[14]=m0,I[15]=a0,I[16]=e0,I[17]=r0,I[18]=i0,O!==0&&(I[19]=O,G.length++),G};Math.imul||(M=L);function v($,Y,G){G.negative=Y.negative^$.negative,G.length=$.length+Y.length;for(var Z=0,V=0,I=0;I>>26)|0,V+=O>>>26,O&=67108863}G.words[I]=U,Z=O,O=V}return Z!==0?G.words[I]=Z:G.length--,G.strip()}function q($,Y,G){var Z=new g;return Z.mulp($,Y,G)}X.prototype.mulTo=function($,Y){var G,Z=this.length+$.length;return this.length===10&&$.length===10?G=M(this,$,Y):Z<63?G=L(this,$,Y):Z<1024?G=v(this,$,Y):G=q(this,$,Y),G};function g($,Y){this.x=$,this.y=Y}g.prototype.makeRBT=function($){for(var Y=new Array($),G=X.prototype._countBits($)-1,Z=0;Z<$;Z++)Y[Z]=this.revBin(Z,G,$);return Y},g.prototype.revBin=function($,Y,G){if($===0||$===G-1)return $;for(var Z=0,V=0;V>=1;return Z},g.prototype.permute=function($,Y,G,Z,V,I){for(var O=0;O>>1)V++;return 1<>>13,G[2*I+1]=V&8191,V=V>>>13;for(I=2*Y;I>=26,Y+=Z/67108864|0,Y+=V>>>26,this.words[G]=V&67108863}return Y!==0&&(this.words[G]=Y,this.length++),this},X.prototype.muln=function($){return this.clone().imuln($)},X.prototype.sqr=function(){return this.mul(this)},X.prototype.isqr=function(){return this.imul(this.clone())},X.prototype.pow=function($){var Y=E($);if(Y.length===0)return new X(1);for(var G=this,Z=0;Z=0);var Y=$%26,G=($-Y)/26,Z=67108863>>>26-Y<<26-Y,V;if(Y!==0){var I=0;for(V=0;V>>26-Y}I&&(this.words[V]=I,this.length++)}if(G!==0){for(V=this.length-1;V>=0;V--)this.words[V+G]=this.words[V];for(V=0;V=0);var Z;Y?Z=(Y-Y%26)/26:Z=0;var V=$%26,I=Math.min(($-V)/26,this.length),O=67108863^67108863>>>V<I)for(this.length-=I,Q=0;Q=0&&(K!==0||Q>=Z);Q--){var R=this.words[Q]|0;this.words[Q]=K<<26-V|R>>>V,K=R&O}return U&&K!==0&&(U.words[U.length++]=K),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},X.prototype.ishrn=function($,Y,G){return F(this.negative===0),this.iushrn($,Y,G)},X.prototype.shln=function($){return this.clone().ishln($)},X.prototype.ushln=function($){return this.clone().iushln($)},X.prototype.shrn=function($){return this.clone().ishrn($)},X.prototype.ushrn=function($){return this.clone().iushrn($)},X.prototype.testn=function($){F(typeof $=="number"&&$>=0);var Y=$%26,G=($-Y)/26,Z=1<=0);var Y=$%26,G=($-Y)/26;if(F(this.negative===0,"imaskn works only with positive numbers"),this.length<=G)return this;if(Y!==0&&G++,this.length=Math.min(G,this.length),Y!==0){var Z=67108863^67108863>>>Y<=67108864;Y++)this.words[Y]-=67108864,Y===this.length-1?this.words[Y+1]=1:this.words[Y+1]++;return this.length=Math.max(this.length,Y+1),this},X.prototype.isubn=function($){if(F(typeof $=="number"),F($<67108864),$<0)return this.iaddn(-$);if(this.negative!==0)return this.negative=0,this.iaddn($),this.negative=1,this;if(this.words[0]-=$,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var Y=0;Y>26)-(U/67108864|0),this.words[V+G]=I&67108863}for(;V>26,this.words[V+G]=I&67108863;if(O===0)return this.strip();for(F(O===-1),O=0,V=0;V>26,this.words[V]=I&67108863;return this.negative=1,this.strip()},X.prototype._wordDiv=function($,Y){var G=this.length-$.length,Z=this.clone(),V=$,I=V.words[V.length-1]|0,O=this._countBits(I);G=26-O,G!==0&&(V=V.ushln(G),Z.iushln(G),I=V.words[V.length-1]|0);var U=Z.length-V.length,Q;if(Y!=="mod"){Q=new X(null),Q.length=U+1,Q.words=new Array(Q.length);for(var K=0;K=0;A--){var S=(Z.words[V.length+A]|0)*67108864+(Z.words[V.length+A-1]|0);for(S=Math.min(S/I|0,67108863),Z._ishlnsubmul(V,S,A);Z.negative!==0;)S--,Z.negative=0,Z._ishlnsubmul(V,1,A),Z.isZero()||(Z.negative^=1);Q&&(Q.words[A]=S)}return Q&&Q.strip(),Z.strip(),Y!=="div"&&G!==0&&Z.iushrn(G),{div:Q||null,mod:Z}},X.prototype.divmod=function($,Y,G){if(F(!$.isZero()),this.isZero())return{div:new X(0),mod:new X(0)};var Z,V,I;return this.negative!==0&&$.negative===0?(I=this.neg().divmod($,Y),Y!=="mod"&&(Z=I.div.neg()),Y!=="div"&&(V=I.mod.neg(),G&&V.negative!==0&&V.iadd($)),{div:Z,mod:V}):this.negative===0&&$.negative!==0?(I=this.divmod($.neg(),Y),Y!=="mod"&&(Z=I.div.neg()),{div:Z,mod:I.mod}):(this.negative&$.negative)!==0?(I=this.neg().divmod($.neg(),Y),Y!=="div"&&(V=I.mod.neg(),G&&V.negative!==0&&V.isub($)),{div:I.div,mod:V}):$.length>this.length||this.cmp($)<0?{div:new X(0),mod:this}:$.length===1?Y==="div"?{div:this.divn($.words[0]),mod:null}:Y==="mod"?{div:null,mod:new X(this.modn($.words[0]))}:{div:this.divn($.words[0]),mod:new X(this.modn($.words[0]))}:this._wordDiv($,Y)},X.prototype.div=function($){return this.divmod($,"div",!1).div},X.prototype.mod=function($){return this.divmod($,"mod",!1).mod},X.prototype.umod=function($){return this.divmod($,"mod",!0).mod},X.prototype.divRound=function($){var Y=this.divmod($);if(Y.mod.isZero())return Y.div;var G=Y.div.negative!==0?Y.mod.isub($):Y.mod,Z=$.ushrn(1),V=$.andln(1),I=G.cmp(Z);return I<0||V===1&&I===0?Y.div:Y.div.negative!==0?Y.div.isubn(1):Y.div.iaddn(1)},X.prototype.modn=function($){F($<=67108863);for(var Y=(1<<26)%$,G=0,Z=this.length-1;Z>=0;Z--)G=(Y*G+(this.words[Z]|0))%$;return G},X.prototype.idivn=function($){F($<=67108863);for(var Y=0,G=this.length-1;G>=0;G--){var Z=(this.words[G]|0)+Y*67108864;this.words[G]=Z/$|0,Y=Z%$}return this.strip()},X.prototype.divn=function($){return this.clone().idivn($)},X.prototype.egcd=function($){F($.negative===0),F(!$.isZero());var Y=this,G=$.clone();Y.negative!==0?Y=Y.umod($):Y=Y.clone();for(var Z=new X(1),V=new X(0),I=new X(0),O=new X(1),U=0;Y.isEven()&&G.isEven();)Y.iushrn(1),G.iushrn(1),++U;for(var Q=G.clone(),K=Y.clone();!Y.isZero();){for(var R=0,A=1;(Y.words[0]&A)===0&&R<26;++R,A<<=1);if(R>0)for(Y.iushrn(R);R-- >0;)(Z.isOdd()||V.isOdd())&&(Z.iadd(Q),V.isub(K)),Z.iushrn(1),V.iushrn(1);for(var S=0,x=1;(G.words[0]&x)===0&&S<26;++S,x<<=1);if(S>0)for(G.iushrn(S);S-- >0;)(I.isOdd()||O.isOdd())&&(I.iadd(Q),O.isub(K)),I.iushrn(1),O.iushrn(1);Y.cmp(G)>=0?(Y.isub(G),Z.isub(I),V.isub(O)):(G.isub(Y),I.isub(Z),O.isub(V))}return{a:I,b:O,gcd:G.iushln(U)}},X.prototype._invmp=function($){F($.negative===0),F(!$.isZero());var Y=this,G=$.clone();Y.negative!==0?Y=Y.umod($):Y=Y.clone();for(var Z=new X(1),V=new X(0),I=G.clone();Y.cmpn(1)>0&&G.cmpn(1)>0;){for(var O=0,U=1;(Y.words[0]&U)===0&&O<26;++O,U<<=1);if(O>0)for(Y.iushrn(O);O-- >0;)Z.isOdd()&&Z.iadd(I),Z.iushrn(1);for(var Q=0,K=1;(G.words[0]&K)===0&&Q<26;++Q,K<<=1);if(Q>0)for(G.iushrn(Q);Q-- >0;)V.isOdd()&&V.iadd(I),V.iushrn(1);Y.cmp(G)>=0?(Y.isub(G),Z.isub(V)):(G.isub(Y),V.isub(Z))}var R;return Y.cmpn(1)===0?R=Z:R=V,R.cmpn(0)<0&&R.iadd($),R},X.prototype.gcd=function($){if(this.isZero())return $.abs();if($.isZero())return this.abs();var Y=this.clone(),G=$.clone();Y.negative=0,G.negative=0;for(var Z=0;Y.isEven()&&G.isEven();Z++)Y.iushrn(1),G.iushrn(1);do{for(;Y.isEven();)Y.iushrn(1);for(;G.isEven();)G.iushrn(1);var V=Y.cmp(G);if(V<0){var I=Y;Y=G,G=I}else if(V===0||G.cmpn(1)===0)break;Y.isub(G)}while(!0);return G.iushln(Z)},X.prototype.invm=function($){return this.egcd($).a.umod($)},X.prototype.isEven=function(){return(this.words[0]&1)===0},X.prototype.isOdd=function(){return(this.words[0]&1)===1},X.prototype.andln=function($){return this.words[0]&$},X.prototype.bincn=function($){F(typeof $=="number");var Y=$%26,G=($-Y)/26,Z=1<>>26,O&=67108863,this.words[I]=O}return V!==0&&(this.words[I]=V,this.length++),this},X.prototype.isZero=function(){return this.length===1&&this.words[0]===0},X.prototype.cmpn=function($){var Y=$<0;if(this.negative!==0&&!Y)return-1;if(this.negative===0&&Y)return 1;this.strip();var G;if(this.length>1)G=1;else{Y&&($=-$),F($<=67108863,"Number is too big");var Z=this.words[0]|0;G=Z===$?0:Z<$?-1:1}return this.negative!==0?-G|0:G},X.prototype.cmp=function($){if(this.negative!==0&&$.negative===0)return-1;if(this.negative===0&&$.negative!==0)return 1;var Y=this.ucmp($);return this.negative!==0?-Y|0:Y},X.prototype.ucmp=function($){if(this.length>$.length)return 1;if(this.length<$.length)return-1;for(var Y=0,G=this.length-1;G>=0;G--){var Z=this.words[G]|0,V=$.words[G]|0;if(Z!==V){ZV&&(Y=1);break}}return Y},X.prototype.gtn=function($){return this.cmpn($)===1},X.prototype.gt=function($){return this.cmp($)===1},X.prototype.gten=function($){return this.cmpn($)>=0},X.prototype.gte=function($){return this.cmp($)>=0},X.prototype.ltn=function($){return this.cmpn($)===-1},X.prototype.lt=function($){return this.cmp($)===-1},X.prototype.lten=function($){return this.cmpn($)<=0},X.prototype.lte=function($){return this.cmp($)<=0},X.prototype.eqn=function($){return this.cmpn($)===0},X.prototype.eq=function($){return this.cmp($)===0},X.red=function($){return new p($)},X.prototype.toRed=function($){return F(!this.red,"Already a number in reduction context"),F(this.negative===0,"red works only with positives"),$.convertTo(this)._forceRed($)},X.prototype.fromRed=function(){return F(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},X.prototype._forceRed=function($){return this.red=$,this},X.prototype.forceRed=function($){return F(!this.red,"Already a number in reduction context"),this._forceRed($)},X.prototype.redAdd=function($){return F(this.red,"redAdd works only with red numbers"),this.red.add(this,$)},X.prototype.redIAdd=function($){return F(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,$)},X.prototype.redSub=function($){return F(this.red,"redSub works only with red numbers"),this.red.sub(this,$)},X.prototype.redISub=function($){return F(this.red,"redISub works only with red numbers"),this.red.isub(this,$)},X.prototype.redShl=function($){return F(this.red,"redShl works only with red numbers"),this.red.shl(this,$)},X.prototype.redMul=function($){return F(this.red,"redMul works only with red numbers"),this.red._verify2(this,$),this.red.mul(this,$)},X.prototype.redIMul=function($){return F(this.red,"redMul works only with red numbers"),this.red._verify2(this,$),this.red.imul(this,$)},X.prototype.redSqr=function(){return F(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},X.prototype.redISqr=function(){return F(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},X.prototype.redSqrt=function(){return F(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},X.prototype.redInvm=function(){return F(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},X.prototype.redNeg=function(){return F(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},X.prototype.redPow=function($){return F(this.red&&!$.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,$)};var y={k256:null,p224:null,p192:null,p25519:null};function w($,Y){this.name=$,this.p=new X(Y,16),this.n=this.p.bitLength(),this.k=new X(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}w.prototype._tmp=function(){var $=new X(null);return $.words=new Array(Math.ceil(this.n/13)),$},w.prototype.ireduce=function($){var Y=$,G;do this.split(Y,this.tmp),Y=this.imulK(Y),Y=Y.iadd(this.tmp),G=Y.bitLength();while(G>this.n);var Z=G0?Y.isub(this.p):Y.strip!==void 0?Y.strip():Y._strip(),Y},w.prototype.split=function($,Y){$.iushrn(this.n,0,Y)},w.prototype.imulK=function($){return $.imul(this.k)};function f(){w.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}z(f,w),f.prototype.split=function($,Y){for(var G=4194303,Z=Math.min($.length,9),V=0;V>>22,I=O}I>>>=22,$.words[V-10]=I,I===0&&$.length>10?$.length-=10:$.length-=9},f.prototype.imulK=function($){$.words[$.length]=0,$.words[$.length+1]=0,$.length+=2;for(var Y=0,G=0;G<$.length;G++){var Z=$.words[G]|0;Y+=Z*977,$.words[G]=Y&67108863,Y=Z*64+(Y/67108864|0)}return $.words[$.length-1]===0&&($.length--,$.words[$.length-1]===0&&$.length--),$};function b(){w.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}z(b,w);function u(){w.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}z(u,w);function Y0(){w.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}z(Y0,w),Y0.prototype.imulK=function($){for(var Y=0,G=0;G<$.length;G++){var Z=($.words[G]|0)*19+Y,V=Z&67108863;Z>>>=26,$.words[G]=V,Y=Z}return Y!==0&&($.words[$.length++]=Y),$},X._prime=function($){if(y[$])return y[$];var Y;if($==="k256")Y=new f;else if($==="p224")Y=new b;else if($==="p192")Y=new u;else if($==="p25519")Y=new Y0;else throw new Error("Unknown prime "+$);return y[$]=Y,Y};function p($){if(typeof $=="string"){var Y=X._prime($);this.m=Y.p,this.prime=Y}else F($.gtn(1),"modulus must be greater than 1"),this.m=$,this.prime=null}p.prototype._verify1=function($){F($.negative===0,"red works only with positives"),F($.red,"red works only with red numbers")},p.prototype._verify2=function($,Y){F(($.negative|Y.negative)===0,"red works only with positives"),F($.red&&$.red===Y.red,"red works only with red numbers")},p.prototype.imod=function($){return this.prime?this.prime.ireduce($)._forceRed(this):$.umod(this.m)._forceRed(this)},p.prototype.neg=function($){return $.isZero()?$.clone():this.m.sub($)._forceRed(this)},p.prototype.add=function($,Y){this._verify2($,Y);var G=$.add(Y);return G.cmp(this.m)>=0&&G.isub(this.m),G._forceRed(this)},p.prototype.iadd=function($,Y){this._verify2($,Y);var G=$.iadd(Y);return G.cmp(this.m)>=0&&G.isub(this.m),G},p.prototype.sub=function($,Y){this._verify2($,Y);var G=$.sub(Y);return G.cmpn(0)<0&&G.iadd(this.m),G._forceRed(this)},p.prototype.isub=function($,Y){this._verify2($,Y);var G=$.isub(Y);return G.cmpn(0)<0&&G.iadd(this.m),G},p.prototype.shl=function($,Y){return this._verify1($),this.imod($.ushln(Y))},p.prototype.imul=function($,Y){return this._verify2($,Y),this.imod($.imul(Y))},p.prototype.mul=function($,Y){return this._verify2($,Y),this.imod($.mul(Y))},p.prototype.isqr=function($){return this.imul($,$.clone())},p.prototype.sqr=function($){return this.mul($,$)},p.prototype.sqrt=function($){if($.isZero())return $.clone();var Y=this.m.andln(3);if(F(Y%2===1),Y===3){var G=this.m.add(new X(1)).iushrn(2);return this.pow($,G)}for(var Z=this.m.subn(1),V=0;!Z.isZero()&&Z.andln(1)===0;)V++,Z.iushrn(1);F(!Z.isZero());var I=new X(1).toRed(this),O=I.redNeg(),U=this.m.subn(1).iushrn(1),Q=this.m.bitLength();for(Q=new X(2*Q*Q).toRed(this);this.pow(Q,U).cmp(O)!==0;)Q.redIAdd(O);for(var K=this.pow(Q,Z),R=this.pow($,Z.addn(1).iushrn(1)),A=this.pow($,Z),S=V;A.cmp(I)!==0;){for(var x=A,B=0;x.cmp(I)!==0;B++)x=x.redSqr();F(B=0;V--){for(var K=Y.words[V],R=Q-1;R>=0;R--){var A=K>>R&1;if(I!==Z[0]&&(I=this.sqr(I)),A===0&&O===0){U=0;continue}O<<=1,O|=A,U++,!(U!==G&&(V!==0||R!==0))&&(I=this.mul(I,Z[O]),U=0,O=0)}Q=26}return I},p.prototype.convertTo=function($){var Y=$.umod(this.m);return Y===$?Y.clone():Y},p.prototype.convertFrom=function($){var Y=$.clone();return Y.red=null,Y},X.mont=function($){return new v0($)};function v0($){p.call(this,$),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new X(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}z(v0,p),v0.prototype.convertTo=function($){return this.imod($.ushln(this.shift))},v0.prototype.convertFrom=function($){var Y=this.imod($.mul(this.rinv));return Y.red=null,Y},v0.prototype.imul=function($,Y){if($.isZero()||Y.isZero())return $.words[0]=0,$.length=1,$;var G=$.imul(Y),Z=G.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),V=G.isub(Z).iushrn(this.shift),I=V;return V.cmp(this.m)>=0?I=V.isub(this.m):V.cmpn(0)<0&&(I=V.iadd(this.m)),I._forceRed(this)},v0.prototype.mul=function($,Y){if($.isZero()||Y.isZero())return new X(0)._forceRed(this);var G=$.mul(Y),Z=G.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),V=G.isub(Z).iushrn(this.shift),I=V;return V.cmp(this.m)>=0?I=V.isub(this.m):V.cmpn(0)<0&&(I=V.iadd(this.m)),I._forceRed(this)},v0.prototype.invm=function($){var Y=this.imod($._invmp(this.m).mul(this.r2));return Y._forceRed(this)}})(typeof _>"u"||_,N)}}),tY=S0({"node_modules/create-ecdh/browser.js"(N,_){var k=l$(),j=sY();_.exports=function(C){return new z(C)};var F={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};F.p224=F.secp224r1,F.p256=F.secp256r1=F.prime256v1,F.p192=F.secp192r1=F.prime192v1,F.p384=F.secp384r1,F.p521=F.secp521r1;function z(C){this.curveType=F[C],this.curveType||(this.curveType={name:C}),this.curve=new k.ec(this.curveType.name),this.keys=void 0}z.prototype.generateKeys=function(C,P){return this.keys=this.curve.genKeyPair(),this.getPublicKey(C,P)},z.prototype.computeSecret=function(C,P,T){P=P||"utf8",g0.isBuffer(C)||(C=new g0(C,P));var W=this.curve.keyFromPublic(C).getPublic(),J=W.mul(this.keys.getPrivate()).getX();return X(J,T,this.curveType.byteLength)},z.prototype.getPublicKey=function(C,P){var T=this.keys.getPublic(P==="compressed",!0);return P==="hybrid"&&(T[T.length-1]%2?T[0]=7:T[0]=6),X(T,C)},z.prototype.getPrivateKey=function(C){return X(this.keys.getPrivate(),C)},z.prototype.setPublicKey=function(C,P){return P=P||"utf8",g0.isBuffer(C)||(C=new g0(C,P)),this.keys._importPublic(C),this},z.prototype.setPrivateKey=function(C,P){P=P||"utf8",g0.isBuffer(C)||(C=new g0(C,P));var T=new j(C);return T=T.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(T),this};function X(C,P,T){Array.isArray(C)||(C=C.toArray());var W=new g0(C);if(T&&W.length0?$:Y},X.min=function($,Y){return $.cmp(Y)<0?$:Y},X.prototype._init=function($,Y,G){if(typeof $=="number")return this._initNumber($,Y,G);if(typeof $=="object")return this._initArray($,Y,G);Y==="hex"&&(Y=16),F(Y===(Y|0)&&Y>=2&&Y<=36),$=$.toString().replace(/\s+/g,"");var Z=0;$[0]==="-"&&(Z++,this.negative=1),Z<$.length&&(Y===16?this._parseHex($,Z,G):(this._parseBase($,Y,Z),G==="le"&&this._initArray(this.toArray(),Y,G)))},X.prototype._initNumber=function($,Y,G){$<0&&(this.negative=1,$=-$),$<67108864?(this.words=[$&67108863],this.length=1):$<4503599627370496?(this.words=[$&67108863,$/67108864&67108863],this.length=2):(F($<9007199254740992),this.words=[$&67108863,$/67108864&67108863,1],this.length=3),G==="le"&&this._initArray(this.toArray(),Y,G)},X.prototype._initArray=function($,Y,G){if(F(typeof $.length=="number"),$.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil($.length/3),this.words=new Array(this.length);for(var Z=0;Z=0;Z-=3)I=$[Z]|$[Z-1]<<8|$[Z-2]<<16,this.words[V]|=I<>>26-O&67108863,O+=24,O>=26&&(O-=26,V++);else if(G==="le")for(Z=0,V=0;Z<$.length;Z+=3)I=$[Z]|$[Z+1]<<8|$[Z+2]<<16,this.words[V]|=I<>>26-O&67108863,O+=24,O>=26&&(O-=26,V++);return this.strip()};function P($,Y){var G=$.charCodeAt(Y);return G>=65&&G<=70?G-55:G>=97&&G<=102?G-87:G-48&15}function T($,Y,G){var Z=P($,G);return G-1>=Y&&(Z|=P($,G-1)<<4),Z}X.prototype._parseHex=function($,Y,G){this.length=Math.ceil(($.length-Y)/6),this.words=new Array(this.length);for(var Z=0;Z=Y;Z-=2)O=T($,Y,Z)<=18?(V-=18,I+=1,this.words[I]|=O>>>26):V+=8;else{var U=$.length-Y;for(Z=U%2===0?Y+1:Y;Z<$.length;Z+=2)O=T($,Y,Z)<=18?(V-=18,I+=1,this.words[I]|=O>>>26):V+=8}this.strip()};function W($,Y,G,Z){for(var V=0,I=Math.min($.length,G),O=Y;O=49?V+=U-49+10:U>=17?V+=U-17+10:V+=U}return V}X.prototype._parseBase=function($,Y,G){this.words=[0],this.length=1;for(var Z=0,V=1;V<=67108863;V*=Y)Z++;Z--,V=V/Y|0;for(var I=$.length-G,O=I%Z,U=Math.min(I,I-O)+G,Q=0,K=G;K1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},X.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},X.prototype.inspect=function(){return(this.red?""};var J=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],H=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],D=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];X.prototype.toString=function($,Y){$=$||10,Y=Y|0||1;var G;if($===16||$==="hex"){G="";for(var Z=0,V=0,I=0;I>>24-Z&16777215,V!==0||I!==this.length-1?G=J[6-U.length]+U+G:G=U+G,Z+=2,Z>=26&&(Z-=26,I--)}for(V!==0&&(G=V.toString(16)+G);G.length%Y!==0;)G="0"+G;return this.negative!==0&&(G="-"+G),G}if($===($|0)&&$>=2&&$<=36){var Q=H[$],K=D[$];G="";var R=this.clone();for(R.negative=0;!R.isZero();){var A=R.modn(K).toString($);R=R.idivn(K),R.isZero()?G=A+G:G=J[Q-A.length]+A+G}for(this.isZero()&&(G="0"+G);G.length%Y!==0;)G="0"+G;return this.negative!==0&&(G="-"+G),G}F(!1,"Base should be between 2 and 36")},X.prototype.toNumber=function(){var $=this.words[0];return this.length===2?$+=this.words[1]*67108864:this.length===3&&this.words[2]===1?$+=4503599627370496+this.words[1]*67108864:this.length>2&&F(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-$:$},X.prototype.toJSON=function(){return this.toString(16)},X.prototype.toBuffer=function($,Y){return F(typeof C<"u"),this.toArrayLike(C,$,Y)},X.prototype.toArray=function($,Y){return this.toArrayLike(Array,$,Y)},X.prototype.toArrayLike=function($,Y,G){var Z=this.byteLength(),V=G||Math.max(1,Z);F(Z<=V,"byte array longer than desired length"),F(V>0,"Requested array length <= 0"),this.strip();var I=Y==="le",O=new $(V),U,Q,K=this.clone();if(I){for(Q=0;!K.isZero();Q++)U=K.andln(255),K.iushrn(8),O[Q]=U;for(;Q=4096&&(G+=13,Y>>>=13),Y>=64&&(G+=7,Y>>>=7),Y>=8&&(G+=4,Y>>>=4),Y>=2&&(G+=2,Y>>>=2),G+Y},X.prototype._zeroBits=function($){if($===0)return 26;var Y=$,G=0;return(Y&8191)===0&&(G+=13,Y>>>=13),(Y&127)===0&&(G+=7,Y>>>=7),(Y&15)===0&&(G+=4,Y>>>=4),(Y&3)===0&&(G+=2,Y>>>=2),(Y&1)===0&&G++,G},X.prototype.bitLength=function(){var $=this.words[this.length-1],Y=this._countBits($);return(this.length-1)*26+Y};function E($){for(var Y=new Array($.bitLength()),G=0;G>>V}return Y}X.prototype.zeroBits=function(){if(this.isZero())return 0;for(var $=0,Y=0;Y$.length?this.clone().ior($):$.clone().ior(this)},X.prototype.uor=function($){return this.length>$.length?this.clone().iuor($):$.clone().iuor(this)},X.prototype.iuand=function($){var Y;this.length>$.length?Y=$:Y=this;for(var G=0;G$.length?this.clone().iand($):$.clone().iand(this)},X.prototype.uand=function($){return this.length>$.length?this.clone().iuand($):$.clone().iuand(this)},X.prototype.iuxor=function($){var Y,G;this.length>$.length?(Y=this,G=$):(Y=$,G=this);for(var Z=0;Z$.length?this.clone().ixor($):$.clone().ixor(this)},X.prototype.uxor=function($){return this.length>$.length?this.clone().iuxor($):$.clone().iuxor(this)},X.prototype.inotn=function($){F(typeof $=="number"&&$>=0);var Y=Math.ceil($/26)|0,G=$%26;this._expand(Y),G>0&&Y--;for(var Z=0;Z0&&(this.words[Z]=~this.words[Z]&67108863>>26-G),this.strip()},X.prototype.notn=function($){return this.clone().inotn($)},X.prototype.setn=function($,Y){F(typeof $=="number"&&$>=0);var G=$/26|0,Z=$%26;return this._expand(G+1),Y?this.words[G]=this.words[G]|1<$.length?(G=this,Z=$):(G=$,Z=this);for(var V=0,I=0;I>>26;for(;V!==0&&I>>26;if(this.length=G.length,V!==0)this.words[this.length]=V,this.length++;else if(G!==this)for(;I$.length?this.clone().iadd($):$.clone().iadd(this)},X.prototype.isub=function($){if($.negative!==0){$.negative=0;var Y=this.iadd($);return $.negative=1,Y._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd($),this.negative=1,this._normSign();var G=this.cmp($);if(G===0)return this.negative=0,this.length=1,this.words[0]=0,this;var Z,V;G>0?(Z=this,V=$):(Z=$,V=this);for(var I=0,O=0;O>26,this.words[O]=Y&67108863;for(;I!==0&&O>26,this.words[O]=Y&67108863;if(I===0&&O>>26,A=Q&67108863,S=Math.min(K,Y.length-1),x=Math.max(0,K-$.length+1);x<=S;x++){var B=K-x|0;V=$.words[B]|0,I=Y.words[x]|0,O=V*I+A,R+=O/67108864|0,A=O&67108863}G.words[K]=A|0,Q=R|0}return Q!==0?G.words[K]=Q|0:G.length--,G.strip()}var M=function($,Y,G){var Z=$.words,V=Y.words,I=G.words,O=0,U,Q,K,R=Z[0]|0,A=R&8191,S=R>>>13,x=Z[1]|0,B=x&8191,c=x>>>13,q0=Z[2]|0,h=q0&8191,d=q0>>>13,_0=Z[3]|0,l=_0&8191,n=_0>>>13,y0=Z[4]|0,t=y0&8191,s=y0>>>13,w0=Z[5]|0,m=w0&8191,r=w0>>>13,$$=Z[6]|0,i=$$&8191,e=$$>>>13,x0=Z[7]|0,o=x0&8191,a=x0>>>13,p0=Z[8]|0,$0=p0&8191,Q0=p0>>>13,Y$=Z[9]|0,Z0=Y$&8191,G0=Y$>>>13,Z$=V[0]|0,V0=Z$&8191,U0=Z$>>>13,G$=V[1]|0,X0=G$&8191,K0=G$>>>13,V$=V[2]|0,I0=V$&8191,O0=V$>>>13,U$=V[3]|0,J0=U$&8191,F0=U$>>>13,X$=V[4]|0,A0=X$&8191,H0=X$>>>13,K$=V[5]|0,W0=K$&8191,E0=K$>>>13,I$=V[6]|0,T0=I$&8191,D0=I$>>>13,O$=V[7]|0,C0=O$&8191,L0=O$>>>13,J$=V[8]|0,R0=J$&8191,P0=J$>>>13,F$=V[9]|0,z0=F$&8191,M0=F$>>>13;G.negative=$.negative^Y.negative,G.length=19,U=Math.imul(A,V0),Q=Math.imul(A,U0),Q=Q+Math.imul(S,V0)|0,K=Math.imul(S,U0);var Q$=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(Q$>>>26)|0,Q$&=67108863,U=Math.imul(B,V0),Q=Math.imul(B,U0),Q=Q+Math.imul(c,V0)|0,K=Math.imul(c,U0),U=U+Math.imul(A,X0)|0,Q=Q+Math.imul(A,K0)|0,Q=Q+Math.imul(S,X0)|0,K=K+Math.imul(S,K0)|0;var j0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(j0>>>26)|0,j0&=67108863,U=Math.imul(h,V0),Q=Math.imul(h,U0),Q=Q+Math.imul(d,V0)|0,K=Math.imul(d,U0),U=U+Math.imul(B,X0)|0,Q=Q+Math.imul(B,K0)|0,Q=Q+Math.imul(c,X0)|0,K=K+Math.imul(c,K0)|0,U=U+Math.imul(A,I0)|0,Q=Q+Math.imul(A,O0)|0,Q=Q+Math.imul(S,I0)|0,K=K+Math.imul(S,O0)|0;var k0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(k0>>>26)|0,k0&=67108863,U=Math.imul(l,V0),Q=Math.imul(l,U0),Q=Q+Math.imul(n,V0)|0,K=Math.imul(n,U0),U=U+Math.imul(h,X0)|0,Q=Q+Math.imul(h,K0)|0,Q=Q+Math.imul(d,X0)|0,K=K+Math.imul(d,K0)|0,U=U+Math.imul(B,I0)|0,Q=Q+Math.imul(B,O0)|0,Q=Q+Math.imul(c,I0)|0,K=K+Math.imul(c,O0)|0,U=U+Math.imul(A,J0)|0,Q=Q+Math.imul(A,F0)|0,Q=Q+Math.imul(S,J0)|0,K=K+Math.imul(S,F0)|0;var f0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(f0>>>26)|0,f0&=67108863,U=Math.imul(t,V0),Q=Math.imul(t,U0),Q=Q+Math.imul(s,V0)|0,K=Math.imul(s,U0),U=U+Math.imul(l,X0)|0,Q=Q+Math.imul(l,K0)|0,Q=Q+Math.imul(n,X0)|0,K=K+Math.imul(n,K0)|0,U=U+Math.imul(h,I0)|0,Q=Q+Math.imul(h,O0)|0,Q=Q+Math.imul(d,I0)|0,K=K+Math.imul(d,O0)|0,U=U+Math.imul(B,J0)|0,Q=Q+Math.imul(B,F0)|0,Q=Q+Math.imul(c,J0)|0,K=K+Math.imul(c,F0)|0,U=U+Math.imul(A,A0)|0,Q=Q+Math.imul(A,H0)|0,Q=Q+Math.imul(S,A0)|0,K=K+Math.imul(S,H0)|0;var c0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(c0>>>26)|0,c0&=67108863,U=Math.imul(m,V0),Q=Math.imul(m,U0),Q=Q+Math.imul(r,V0)|0,K=Math.imul(r,U0),U=U+Math.imul(t,X0)|0,Q=Q+Math.imul(t,K0)|0,Q=Q+Math.imul(s,X0)|0,K=K+Math.imul(s,K0)|0,U=U+Math.imul(l,I0)|0,Q=Q+Math.imul(l,O0)|0,Q=Q+Math.imul(n,I0)|0,K=K+Math.imul(n,O0)|0,U=U+Math.imul(h,J0)|0,Q=Q+Math.imul(h,F0)|0,Q=Q+Math.imul(d,J0)|0,K=K+Math.imul(d,F0)|0,U=U+Math.imul(B,A0)|0,Q=Q+Math.imul(B,H0)|0,Q=Q+Math.imul(c,A0)|0,K=K+Math.imul(c,H0)|0,U=U+Math.imul(A,W0)|0,Q=Q+Math.imul(A,E0)|0,Q=Q+Math.imul(S,W0)|0,K=K+Math.imul(S,E0)|0;var h0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(h0>>>26)|0,h0&=67108863,U=Math.imul(i,V0),Q=Math.imul(i,U0),Q=Q+Math.imul(e,V0)|0,K=Math.imul(e,U0),U=U+Math.imul(m,X0)|0,Q=Q+Math.imul(m,K0)|0,Q=Q+Math.imul(r,X0)|0,K=K+Math.imul(r,K0)|0,U=U+Math.imul(t,I0)|0,Q=Q+Math.imul(t,O0)|0,Q=Q+Math.imul(s,I0)|0,K=K+Math.imul(s,O0)|0,U=U+Math.imul(l,J0)|0,Q=Q+Math.imul(l,F0)|0,Q=Q+Math.imul(n,J0)|0,K=K+Math.imul(n,F0)|0,U=U+Math.imul(h,A0)|0,Q=Q+Math.imul(h,H0)|0,Q=Q+Math.imul(d,A0)|0,K=K+Math.imul(d,H0)|0,U=U+Math.imul(B,W0)|0,Q=Q+Math.imul(B,E0)|0,Q=Q+Math.imul(c,W0)|0,K=K+Math.imul(c,E0)|0,U=U+Math.imul(A,T0)|0,Q=Q+Math.imul(A,D0)|0,Q=Q+Math.imul(S,T0)|0,K=K+Math.imul(S,D0)|0;var d0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(d0>>>26)|0,d0&=67108863,U=Math.imul(o,V0),Q=Math.imul(o,U0),Q=Q+Math.imul(a,V0)|0,K=Math.imul(a,U0),U=U+Math.imul(i,X0)|0,Q=Q+Math.imul(i,K0)|0,Q=Q+Math.imul(e,X0)|0,K=K+Math.imul(e,K0)|0,U=U+Math.imul(m,I0)|0,Q=Q+Math.imul(m,O0)|0,Q=Q+Math.imul(r,I0)|0,K=K+Math.imul(r,O0)|0,U=U+Math.imul(t,J0)|0,Q=Q+Math.imul(t,F0)|0,Q=Q+Math.imul(s,J0)|0,K=K+Math.imul(s,F0)|0,U=U+Math.imul(l,A0)|0,Q=Q+Math.imul(l,H0)|0,Q=Q+Math.imul(n,A0)|0,K=K+Math.imul(n,H0)|0,U=U+Math.imul(h,W0)|0,Q=Q+Math.imul(h,E0)|0,Q=Q+Math.imul(d,W0)|0,K=K+Math.imul(d,E0)|0,U=U+Math.imul(B,T0)|0,Q=Q+Math.imul(B,D0)|0,Q=Q+Math.imul(c,T0)|0,K=K+Math.imul(c,D0)|0,U=U+Math.imul(A,C0)|0,Q=Q+Math.imul(A,L0)|0,Q=Q+Math.imul(S,C0)|0,K=K+Math.imul(S,L0)|0;var b0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(b0>>>26)|0,b0&=67108863,U=Math.imul($0,V0),Q=Math.imul($0,U0),Q=Q+Math.imul(Q0,V0)|0,K=Math.imul(Q0,U0),U=U+Math.imul(o,X0)|0,Q=Q+Math.imul(o,K0)|0,Q=Q+Math.imul(a,X0)|0,K=K+Math.imul(a,K0)|0,U=U+Math.imul(i,I0)|0,Q=Q+Math.imul(i,O0)|0,Q=Q+Math.imul(e,I0)|0,K=K+Math.imul(e,O0)|0,U=U+Math.imul(m,J0)|0,Q=Q+Math.imul(m,F0)|0,Q=Q+Math.imul(r,J0)|0,K=K+Math.imul(r,F0)|0,U=U+Math.imul(t,A0)|0,Q=Q+Math.imul(t,H0)|0,Q=Q+Math.imul(s,A0)|0,K=K+Math.imul(s,H0)|0,U=U+Math.imul(l,W0)|0,Q=Q+Math.imul(l,E0)|0,Q=Q+Math.imul(n,W0)|0,K=K+Math.imul(n,E0)|0,U=U+Math.imul(h,T0)|0,Q=Q+Math.imul(h,D0)|0,Q=Q+Math.imul(d,T0)|0,K=K+Math.imul(d,D0)|0,U=U+Math.imul(B,C0)|0,Q=Q+Math.imul(B,L0)|0,Q=Q+Math.imul(c,C0)|0,K=K+Math.imul(c,L0)|0,U=U+Math.imul(A,R0)|0,Q=Q+Math.imul(A,P0)|0,Q=Q+Math.imul(S,R0)|0,K=K+Math.imul(S,P0)|0;var l0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(l0>>>26)|0,l0&=67108863,U=Math.imul(Z0,V0),Q=Math.imul(Z0,U0),Q=Q+Math.imul(G0,V0)|0,K=Math.imul(G0,U0),U=U+Math.imul($0,X0)|0,Q=Q+Math.imul($0,K0)|0,Q=Q+Math.imul(Q0,X0)|0,K=K+Math.imul(Q0,K0)|0,U=U+Math.imul(o,I0)|0,Q=Q+Math.imul(o,O0)|0,Q=Q+Math.imul(a,I0)|0,K=K+Math.imul(a,O0)|0,U=U+Math.imul(i,J0)|0,Q=Q+Math.imul(i,F0)|0,Q=Q+Math.imul(e,J0)|0,K=K+Math.imul(e,F0)|0,U=U+Math.imul(m,A0)|0,Q=Q+Math.imul(m,H0)|0,Q=Q+Math.imul(r,A0)|0,K=K+Math.imul(r,H0)|0,U=U+Math.imul(t,W0)|0,Q=Q+Math.imul(t,E0)|0,Q=Q+Math.imul(s,W0)|0,K=K+Math.imul(s,E0)|0,U=U+Math.imul(l,T0)|0,Q=Q+Math.imul(l,D0)|0,Q=Q+Math.imul(n,T0)|0,K=K+Math.imul(n,D0)|0,U=U+Math.imul(h,C0)|0,Q=Q+Math.imul(h,L0)|0,Q=Q+Math.imul(d,C0)|0,K=K+Math.imul(d,L0)|0,U=U+Math.imul(B,R0)|0,Q=Q+Math.imul(B,P0)|0,Q=Q+Math.imul(c,R0)|0,K=K+Math.imul(c,P0)|0,U=U+Math.imul(A,z0)|0,Q=Q+Math.imul(A,M0)|0,Q=Q+Math.imul(S,z0)|0,K=K+Math.imul(S,M0)|0;var o0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(o0>>>26)|0,o0&=67108863,U=Math.imul(Z0,X0),Q=Math.imul(Z0,K0),Q=Q+Math.imul(G0,X0)|0,K=Math.imul(G0,K0),U=U+Math.imul($0,I0)|0,Q=Q+Math.imul($0,O0)|0,Q=Q+Math.imul(Q0,I0)|0,K=K+Math.imul(Q0,O0)|0,U=U+Math.imul(o,J0)|0,Q=Q+Math.imul(o,F0)|0,Q=Q+Math.imul(a,J0)|0,K=K+Math.imul(a,F0)|0,U=U+Math.imul(i,A0)|0,Q=Q+Math.imul(i,H0)|0,Q=Q+Math.imul(e,A0)|0,K=K+Math.imul(e,H0)|0,U=U+Math.imul(m,W0)|0,Q=Q+Math.imul(m,E0)|0,Q=Q+Math.imul(r,W0)|0,K=K+Math.imul(r,E0)|0,U=U+Math.imul(t,T0)|0,Q=Q+Math.imul(t,D0)|0,Q=Q+Math.imul(s,T0)|0,K=K+Math.imul(s,D0)|0,U=U+Math.imul(l,C0)|0,Q=Q+Math.imul(l,L0)|0,Q=Q+Math.imul(n,C0)|0,K=K+Math.imul(n,L0)|0,U=U+Math.imul(h,R0)|0,Q=Q+Math.imul(h,P0)|0,Q=Q+Math.imul(d,R0)|0,K=K+Math.imul(d,P0)|0,U=U+Math.imul(B,z0)|0,Q=Q+Math.imul(B,M0)|0,Q=Q+Math.imul(c,z0)|0,K=K+Math.imul(c,M0)|0;var u0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(u0>>>26)|0,u0&=67108863,U=Math.imul(Z0,I0),Q=Math.imul(Z0,O0),Q=Q+Math.imul(G0,I0)|0,K=Math.imul(G0,O0),U=U+Math.imul($0,J0)|0,Q=Q+Math.imul($0,F0)|0,Q=Q+Math.imul(Q0,J0)|0,K=K+Math.imul(Q0,F0)|0,U=U+Math.imul(o,A0)|0,Q=Q+Math.imul(o,H0)|0,Q=Q+Math.imul(a,A0)|0,K=K+Math.imul(a,H0)|0,U=U+Math.imul(i,W0)|0,Q=Q+Math.imul(i,E0)|0,Q=Q+Math.imul(e,W0)|0,K=K+Math.imul(e,E0)|0,U=U+Math.imul(m,T0)|0,Q=Q+Math.imul(m,D0)|0,Q=Q+Math.imul(r,T0)|0,K=K+Math.imul(r,D0)|0,U=U+Math.imul(t,C0)|0,Q=Q+Math.imul(t,L0)|0,Q=Q+Math.imul(s,C0)|0,K=K+Math.imul(s,L0)|0,U=U+Math.imul(l,R0)|0,Q=Q+Math.imul(l,P0)|0,Q=Q+Math.imul(n,R0)|0,K=K+Math.imul(n,P0)|0,U=U+Math.imul(h,z0)|0,Q=Q+Math.imul(h,M0)|0,Q=Q+Math.imul(d,z0)|0,K=K+Math.imul(d,M0)|0;var n0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(n0>>>26)|0,n0&=67108863,U=Math.imul(Z0,J0),Q=Math.imul(Z0,F0),Q=Q+Math.imul(G0,J0)|0,K=Math.imul(G0,F0),U=U+Math.imul($0,A0)|0,Q=Q+Math.imul($0,H0)|0,Q=Q+Math.imul(Q0,A0)|0,K=K+Math.imul(Q0,H0)|0,U=U+Math.imul(o,W0)|0,Q=Q+Math.imul(o,E0)|0,Q=Q+Math.imul(a,W0)|0,K=K+Math.imul(a,E0)|0,U=U+Math.imul(i,T0)|0,Q=Q+Math.imul(i,D0)|0,Q=Q+Math.imul(e,T0)|0,K=K+Math.imul(e,D0)|0,U=U+Math.imul(m,C0)|0,Q=Q+Math.imul(m,L0)|0,Q=Q+Math.imul(r,C0)|0,K=K+Math.imul(r,L0)|0,U=U+Math.imul(t,R0)|0,Q=Q+Math.imul(t,P0)|0,Q=Q+Math.imul(s,R0)|0,K=K+Math.imul(s,P0)|0,U=U+Math.imul(l,z0)|0,Q=Q+Math.imul(l,M0)|0,Q=Q+Math.imul(n,z0)|0,K=K+Math.imul(n,M0)|0;var s0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(s0>>>26)|0,s0&=67108863,U=Math.imul(Z0,A0),Q=Math.imul(Z0,H0),Q=Q+Math.imul(G0,A0)|0,K=Math.imul(G0,H0),U=U+Math.imul($0,W0)|0,Q=Q+Math.imul($0,E0)|0,Q=Q+Math.imul(Q0,W0)|0,K=K+Math.imul(Q0,E0)|0,U=U+Math.imul(o,T0)|0,Q=Q+Math.imul(o,D0)|0,Q=Q+Math.imul(a,T0)|0,K=K+Math.imul(a,D0)|0,U=U+Math.imul(i,C0)|0,Q=Q+Math.imul(i,L0)|0,Q=Q+Math.imul(e,C0)|0,K=K+Math.imul(e,L0)|0,U=U+Math.imul(m,R0)|0,Q=Q+Math.imul(m,P0)|0,Q=Q+Math.imul(r,R0)|0,K=K+Math.imul(r,P0)|0,U=U+Math.imul(t,z0)|0,Q=Q+Math.imul(t,M0)|0,Q=Q+Math.imul(s,z0)|0,K=K+Math.imul(s,M0)|0;var t0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(t0>>>26)|0,t0&=67108863,U=Math.imul(Z0,W0),Q=Math.imul(Z0,E0),Q=Q+Math.imul(G0,W0)|0,K=Math.imul(G0,E0),U=U+Math.imul($0,T0)|0,Q=Q+Math.imul($0,D0)|0,Q=Q+Math.imul(Q0,T0)|0,K=K+Math.imul(Q0,D0)|0,U=U+Math.imul(o,C0)|0,Q=Q+Math.imul(o,L0)|0,Q=Q+Math.imul(a,C0)|0,K=K+Math.imul(a,L0)|0,U=U+Math.imul(i,R0)|0,Q=Q+Math.imul(i,P0)|0,Q=Q+Math.imul(e,R0)|0,K=K+Math.imul(e,P0)|0,U=U+Math.imul(m,z0)|0,Q=Q+Math.imul(m,M0)|0,Q=Q+Math.imul(r,z0)|0,K=K+Math.imul(r,M0)|0;var m0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(m0>>>26)|0,m0&=67108863,U=Math.imul(Z0,T0),Q=Math.imul(Z0,D0),Q=Q+Math.imul(G0,T0)|0,K=Math.imul(G0,D0),U=U+Math.imul($0,C0)|0,Q=Q+Math.imul($0,L0)|0,Q=Q+Math.imul(Q0,C0)|0,K=K+Math.imul(Q0,L0)|0,U=U+Math.imul(o,R0)|0,Q=Q+Math.imul(o,P0)|0,Q=Q+Math.imul(a,R0)|0,K=K+Math.imul(a,P0)|0,U=U+Math.imul(i,z0)|0,Q=Q+Math.imul(i,M0)|0,Q=Q+Math.imul(e,z0)|0,K=K+Math.imul(e,M0)|0;var a0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(a0>>>26)|0,a0&=67108863,U=Math.imul(Z0,C0),Q=Math.imul(Z0,L0),Q=Q+Math.imul(G0,C0)|0,K=Math.imul(G0,L0),U=U+Math.imul($0,R0)|0,Q=Q+Math.imul($0,P0)|0,Q=Q+Math.imul(Q0,R0)|0,K=K+Math.imul(Q0,P0)|0,U=U+Math.imul(o,z0)|0,Q=Q+Math.imul(o,M0)|0,Q=Q+Math.imul(a,z0)|0,K=K+Math.imul(a,M0)|0;var e0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(e0>>>26)|0,e0&=67108863,U=Math.imul(Z0,R0),Q=Math.imul(Z0,P0),Q=Q+Math.imul(G0,R0)|0,K=Math.imul(G0,P0),U=U+Math.imul($0,z0)|0,Q=Q+Math.imul($0,M0)|0,Q=Q+Math.imul(Q0,z0)|0,K=K+Math.imul(Q0,M0)|0;var r0=(O+U|0)+((Q&8191)<<13)|0;O=(K+(Q>>>13)|0)+(r0>>>26)|0,r0&=67108863,U=Math.imul(Z0,z0),Q=Math.imul(Z0,M0),Q=Q+Math.imul(G0,z0)|0,K=Math.imul(G0,M0);var i0=(O+U|0)+((Q&8191)<<13)|0;return O=(K+(Q>>>13)|0)+(i0>>>26)|0,i0&=67108863,I[0]=Q$,I[1]=j0,I[2]=k0,I[3]=f0,I[4]=c0,I[5]=h0,I[6]=d0,I[7]=b0,I[8]=l0,I[9]=o0,I[10]=u0,I[11]=n0,I[12]=s0,I[13]=t0,I[14]=m0,I[15]=a0,I[16]=e0,I[17]=r0,I[18]=i0,O!==0&&(I[19]=O,G.length++),G};Math.imul||(M=L);function v($,Y,G){G.negative=Y.negative^$.negative,G.length=$.length+Y.length;for(var Z=0,V=0,I=0;I>>26)|0,V+=O>>>26,O&=67108863}G.words[I]=U,Z=O,O=V}return Z!==0?G.words[I]=Z:G.length--,G.strip()}function q($,Y,G){var Z=new g;return Z.mulp($,Y,G)}X.prototype.mulTo=function($,Y){var G,Z=this.length+$.length;return this.length===10&&$.length===10?G=M(this,$,Y):Z<63?G=L(this,$,Y):Z<1024?G=v(this,$,Y):G=q(this,$,Y),G};function g($,Y){this.x=$,this.y=Y}g.prototype.makeRBT=function($){for(var Y=new Array($),G=X.prototype._countBits($)-1,Z=0;Z<$;Z++)Y[Z]=this.revBin(Z,G,$);return Y},g.prototype.revBin=function($,Y,G){if($===0||$===G-1)return $;for(var Z=0,V=0;V>=1;return Z},g.prototype.permute=function($,Y,G,Z,V,I){for(var O=0;O>>1)V++;return 1<>>13,G[2*I+1]=V&8191,V=V>>>13;for(I=2*Y;I>=26,Y+=Z/67108864|0,Y+=V>>>26,this.words[G]=V&67108863}return Y!==0&&(this.words[G]=Y,this.length++),this},X.prototype.muln=function($){return this.clone().imuln($)},X.prototype.sqr=function(){return this.mul(this)},X.prototype.isqr=function(){return this.imul(this.clone())},X.prototype.pow=function($){var Y=E($);if(Y.length===0)return new X(1);for(var G=this,Z=0;Z=0);var Y=$%26,G=($-Y)/26,Z=67108863>>>26-Y<<26-Y,V;if(Y!==0){var I=0;for(V=0;V>>26-Y}I&&(this.words[V]=I,this.length++)}if(G!==0){for(V=this.length-1;V>=0;V--)this.words[V+G]=this.words[V];for(V=0;V=0);var Z;Y?Z=(Y-Y%26)/26:Z=0;var V=$%26,I=Math.min(($-V)/26,this.length),O=67108863^67108863>>>V<I)for(this.length-=I,Q=0;Q=0&&(K!==0||Q>=Z);Q--){var R=this.words[Q]|0;this.words[Q]=K<<26-V|R>>>V,K=R&O}return U&&K!==0&&(U.words[U.length++]=K),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},X.prototype.ishrn=function($,Y,G){return F(this.negative===0),this.iushrn($,Y,G)},X.prototype.shln=function($){return this.clone().ishln($)},X.prototype.ushln=function($){return this.clone().iushln($)},X.prototype.shrn=function($){return this.clone().ishrn($)},X.prototype.ushrn=function($){return this.clone().iushrn($)},X.prototype.testn=function($){F(typeof $=="number"&&$>=0);var Y=$%26,G=($-Y)/26,Z=1<=0);var Y=$%26,G=($-Y)/26;if(F(this.negative===0,"imaskn works only with positive numbers"),this.length<=G)return this;if(Y!==0&&G++,this.length=Math.min(G,this.length),Y!==0){var Z=67108863^67108863>>>Y<=67108864;Y++)this.words[Y]-=67108864,Y===this.length-1?this.words[Y+1]=1:this.words[Y+1]++;return this.length=Math.max(this.length,Y+1),this},X.prototype.isubn=function($){if(F(typeof $=="number"),F($<67108864),$<0)return this.iaddn(-$);if(this.negative!==0)return this.negative=0,this.iaddn($),this.negative=1,this;if(this.words[0]-=$,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var Y=0;Y>26)-(U/67108864|0),this.words[V+G]=I&67108863}for(;V>26,this.words[V+G]=I&67108863;if(O===0)return this.strip();for(F(O===-1),O=0,V=0;V>26,this.words[V]=I&67108863;return this.negative=1,this.strip()},X.prototype._wordDiv=function($,Y){var G=this.length-$.length,Z=this.clone(),V=$,I=V.words[V.length-1]|0,O=this._countBits(I);G=26-O,G!==0&&(V=V.ushln(G),Z.iushln(G),I=V.words[V.length-1]|0);var U=Z.length-V.length,Q;if(Y!=="mod"){Q=new X(null),Q.length=U+1,Q.words=new Array(Q.length);for(var K=0;K=0;A--){var S=(Z.words[V.length+A]|0)*67108864+(Z.words[V.length+A-1]|0);for(S=Math.min(S/I|0,67108863),Z._ishlnsubmul(V,S,A);Z.negative!==0;)S--,Z.negative=0,Z._ishlnsubmul(V,1,A),Z.isZero()||(Z.negative^=1);Q&&(Q.words[A]=S)}return Q&&Q.strip(),Z.strip(),Y!=="div"&&G!==0&&Z.iushrn(G),{div:Q||null,mod:Z}},X.prototype.divmod=function($,Y,G){if(F(!$.isZero()),this.isZero())return{div:new X(0),mod:new X(0)};var Z,V,I;return this.negative!==0&&$.negative===0?(I=this.neg().divmod($,Y),Y!=="mod"&&(Z=I.div.neg()),Y!=="div"&&(V=I.mod.neg(),G&&V.negative!==0&&V.iadd($)),{div:Z,mod:V}):this.negative===0&&$.negative!==0?(I=this.divmod($.neg(),Y),Y!=="mod"&&(Z=I.div.neg()),{div:Z,mod:I.mod}):(this.negative&$.negative)!==0?(I=this.neg().divmod($.neg(),Y),Y!=="div"&&(V=I.mod.neg(),G&&V.negative!==0&&V.isub($)),{div:I.div,mod:V}):$.length>this.length||this.cmp($)<0?{div:new X(0),mod:this}:$.length===1?Y==="div"?{div:this.divn($.words[0]),mod:null}:Y==="mod"?{div:null,mod:new X(this.modn($.words[0]))}:{div:this.divn($.words[0]),mod:new X(this.modn($.words[0]))}:this._wordDiv($,Y)},X.prototype.div=function($){return this.divmod($,"div",!1).div},X.prototype.mod=function($){return this.divmod($,"mod",!1).mod},X.prototype.umod=function($){return this.divmod($,"mod",!0).mod},X.prototype.divRound=function($){var Y=this.divmod($);if(Y.mod.isZero())return Y.div;var G=Y.div.negative!==0?Y.mod.isub($):Y.mod,Z=$.ushrn(1),V=$.andln(1),I=G.cmp(Z);return I<0||V===1&&I===0?Y.div:Y.div.negative!==0?Y.div.isubn(1):Y.div.iaddn(1)},X.prototype.modn=function($){F($<=67108863);for(var Y=(1<<26)%$,G=0,Z=this.length-1;Z>=0;Z--)G=(Y*G+(this.words[Z]|0))%$;return G},X.prototype.idivn=function($){F($<=67108863);for(var Y=0,G=this.length-1;G>=0;G--){var Z=(this.words[G]|0)+Y*67108864;this.words[G]=Z/$|0,Y=Z%$}return this.strip()},X.prototype.divn=function($){return this.clone().idivn($)},X.prototype.egcd=function($){F($.negative===0),F(!$.isZero());var Y=this,G=$.clone();Y.negative!==0?Y=Y.umod($):Y=Y.clone();for(var Z=new X(1),V=new X(0),I=new X(0),O=new X(1),U=0;Y.isEven()&&G.isEven();)Y.iushrn(1),G.iushrn(1),++U;for(var Q=G.clone(),K=Y.clone();!Y.isZero();){for(var R=0,A=1;(Y.words[0]&A)===0&&R<26;++R,A<<=1);if(R>0)for(Y.iushrn(R);R-- >0;)(Z.isOdd()||V.isOdd())&&(Z.iadd(Q),V.isub(K)),Z.iushrn(1),V.iushrn(1);for(var S=0,x=1;(G.words[0]&x)===0&&S<26;++S,x<<=1);if(S>0)for(G.iushrn(S);S-- >0;)(I.isOdd()||O.isOdd())&&(I.iadd(Q),O.isub(K)),I.iushrn(1),O.iushrn(1);Y.cmp(G)>=0?(Y.isub(G),Z.isub(I),V.isub(O)):(G.isub(Y),I.isub(Z),O.isub(V))}return{a:I,b:O,gcd:G.iushln(U)}},X.prototype._invmp=function($){F($.negative===0),F(!$.isZero());var Y=this,G=$.clone();Y.negative!==0?Y=Y.umod($):Y=Y.clone();for(var Z=new X(1),V=new X(0),I=G.clone();Y.cmpn(1)>0&&G.cmpn(1)>0;){for(var O=0,U=1;(Y.words[0]&U)===0&&O<26;++O,U<<=1);if(O>0)for(Y.iushrn(O);O-- >0;)Z.isOdd()&&Z.iadd(I),Z.iushrn(1);for(var Q=0,K=1;(G.words[0]&K)===0&&Q<26;++Q,K<<=1);if(Q>0)for(G.iushrn(Q);Q-- >0;)V.isOdd()&&V.iadd(I),V.iushrn(1);Y.cmp(G)>=0?(Y.isub(G),Z.isub(V)):(G.isub(Y),V.isub(Z))}var R;return Y.cmpn(1)===0?R=Z:R=V,R.cmpn(0)<0&&R.iadd($),R},X.prototype.gcd=function($){if(this.isZero())return $.abs();if($.isZero())return this.abs();var Y=this.clone(),G=$.clone();Y.negative=0,G.negative=0;for(var Z=0;Y.isEven()&&G.isEven();Z++)Y.iushrn(1),G.iushrn(1);do{for(;Y.isEven();)Y.iushrn(1);for(;G.isEven();)G.iushrn(1);var V=Y.cmp(G);if(V<0){var I=Y;Y=G,G=I}else if(V===0||G.cmpn(1)===0)break;Y.isub(G)}while(!0);return G.iushln(Z)},X.prototype.invm=function($){return this.egcd($).a.umod($)},X.prototype.isEven=function(){return(this.words[0]&1)===0},X.prototype.isOdd=function(){return(this.words[0]&1)===1},X.prototype.andln=function($){return this.words[0]&$},X.prototype.bincn=function($){F(typeof $=="number");var Y=$%26,G=($-Y)/26,Z=1<>>26,O&=67108863,this.words[I]=O}return V!==0&&(this.words[I]=V,this.length++),this},X.prototype.isZero=function(){return this.length===1&&this.words[0]===0},X.prototype.cmpn=function($){var Y=$<0;if(this.negative!==0&&!Y)return-1;if(this.negative===0&&Y)return 1;this.strip();var G;if(this.length>1)G=1;else{Y&&($=-$),F($<=67108863,"Number is too big");var Z=this.words[0]|0;G=Z===$?0:Z<$?-1:1}return this.negative!==0?-G|0:G},X.prototype.cmp=function($){if(this.negative!==0&&$.negative===0)return-1;if(this.negative===0&&$.negative!==0)return 1;var Y=this.ucmp($);return this.negative!==0?-Y|0:Y},X.prototype.ucmp=function($){if(this.length>$.length)return 1;if(this.length<$.length)return-1;for(var Y=0,G=this.length-1;G>=0;G--){var Z=this.words[G]|0,V=$.words[G]|0;if(Z!==V){ZV&&(Y=1);break}}return Y},X.prototype.gtn=function($){return this.cmpn($)===1},X.prototype.gt=function($){return this.cmp($)===1},X.prototype.gten=function($){return this.cmpn($)>=0},X.prototype.gte=function($){return this.cmp($)>=0},X.prototype.ltn=function($){return this.cmpn($)===-1},X.prototype.lt=function($){return this.cmp($)===-1},X.prototype.lten=function($){return this.cmpn($)<=0},X.prototype.lte=function($){return this.cmp($)<=0},X.prototype.eqn=function($){return this.cmpn($)===0},X.prototype.eq=function($){return this.cmp($)===0},X.red=function($){return new p($)},X.prototype.toRed=function($){return F(!this.red,"Already a number in reduction context"),F(this.negative===0,"red works only with positives"),$.convertTo(this)._forceRed($)},X.prototype.fromRed=function(){return F(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},X.prototype._forceRed=function($){return this.red=$,this},X.prototype.forceRed=function($){return F(!this.red,"Already a number in reduction context"),this._forceRed($)},X.prototype.redAdd=function($){return F(this.red,"redAdd works only with red numbers"),this.red.add(this,$)},X.prototype.redIAdd=function($){return F(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,$)},X.prototype.redSub=function($){return F(this.red,"redSub works only with red numbers"),this.red.sub(this,$)},X.prototype.redISub=function($){return F(this.red,"redISub works only with red numbers"),this.red.isub(this,$)},X.prototype.redShl=function($){return F(this.red,"redShl works only with red numbers"),this.red.shl(this,$)},X.prototype.redMul=function($){return F(this.red,"redMul works only with red numbers"),this.red._verify2(this,$),this.red.mul(this,$)},X.prototype.redIMul=function($){return F(this.red,"redMul works only with red numbers"),this.red._verify2(this,$),this.red.imul(this,$)},X.prototype.redSqr=function(){return F(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},X.prototype.redISqr=function(){return F(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},X.prototype.redSqrt=function(){return F(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},X.prototype.redInvm=function(){return F(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},X.prototype.redNeg=function(){return F(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},X.prototype.redPow=function($){return F(this.red&&!$.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,$)};var y={k256:null,p224:null,p192:null,p25519:null};function w($,Y){this.name=$,this.p=new X(Y,16),this.n=this.p.bitLength(),this.k=new X(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}w.prototype._tmp=function(){var $=new X(null);return $.words=new Array(Math.ceil(this.n/13)),$},w.prototype.ireduce=function($){var Y=$,G;do this.split(Y,this.tmp),Y=this.imulK(Y),Y=Y.iadd(this.tmp),G=Y.bitLength();while(G>this.n);var Z=G0?Y.isub(this.p):Y.strip!==void 0?Y.strip():Y._strip(),Y},w.prototype.split=function($,Y){$.iushrn(this.n,0,Y)},w.prototype.imulK=function($){return $.imul(this.k)};function f(){w.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}z(f,w),f.prototype.split=function($,Y){for(var G=4194303,Z=Math.min($.length,9),V=0;V>>22,I=O}I>>>=22,$.words[V-10]=I,I===0&&$.length>10?$.length-=10:$.length-=9},f.prototype.imulK=function($){$.words[$.length]=0,$.words[$.length+1]=0,$.length+=2;for(var Y=0,G=0;G<$.length;G++){var Z=$.words[G]|0;Y+=Z*977,$.words[G]=Y&67108863,Y=Z*64+(Y/67108864|0)}return $.words[$.length-1]===0&&($.length--,$.words[$.length-1]===0&&$.length--),$};function b(){w.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}z(b,w);function u(){w.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}z(u,w);function Y0(){w.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}z(Y0,w),Y0.prototype.imulK=function($){for(var Y=0,G=0;G<$.length;G++){var Z=($.words[G]|0)*19+Y,V=Z&67108863;Z>>>=26,$.words[G]=V,Y=Z}return Y!==0&&($.words[$.length++]=Y),$},X._prime=function($){if(y[$])return y[$];var Y;if($==="k256")Y=new f;else if($==="p224")Y=new b;else if($==="p192")Y=new u;else if($==="p25519")Y=new Y0;else throw new Error("Unknown prime "+$);return y[$]=Y,Y};function p($){if(typeof $=="string"){var Y=X._prime($);this.m=Y.p,this.prime=Y}else F($.gtn(1),"modulus must be greater than 1"),this.m=$,this.prime=null}p.prototype._verify1=function($){F($.negative===0,"red works only with positives"),F($.red,"red works only with red numbers")},p.prototype._verify2=function($,Y){F(($.negative|Y.negative)===0,"red works only with positives"),F($.red&&$.red===Y.red,"red works only with red numbers")},p.prototype.imod=function($){return this.prime?this.prime.ireduce($)._forceRed(this):$.umod(this.m)._forceRed(this)},p.prototype.neg=function($){return $.isZero()?$.clone():this.m.sub($)._forceRed(this)},p.prototype.add=function($,Y){this._verify2($,Y);var G=$.add(Y);return G.cmp(this.m)>=0&&G.isub(this.m),G._forceRed(this)},p.prototype.iadd=function($,Y){this._verify2($,Y);var G=$.iadd(Y);return G.cmp(this.m)>=0&&G.isub(this.m),G},p.prototype.sub=function($,Y){this._verify2($,Y);var G=$.sub(Y);return G.cmpn(0)<0&&G.iadd(this.m),G._forceRed(this)},p.prototype.isub=function($,Y){this._verify2($,Y);var G=$.isub(Y);return G.cmpn(0)<0&&G.iadd(this.m),G},p.prototype.shl=function($,Y){return this._verify1($),this.imod($.ushln(Y))},p.prototype.imul=function($,Y){return this._verify2($,Y),this.imod($.imul(Y))},p.prototype.mul=function($,Y){return this._verify2($,Y),this.imod($.mul(Y))},p.prototype.isqr=function($){return this.imul($,$.clone())},p.prototype.sqr=function($){return this.mul($,$)},p.prototype.sqrt=function($){if($.isZero())return $.clone();var Y=this.m.andln(3);if(F(Y%2===1),Y===3){var G=this.m.add(new X(1)).iushrn(2);return this.pow($,G)}for(var Z=this.m.subn(1),V=0;!Z.isZero()&&Z.andln(1)===0;)V++,Z.iushrn(1);F(!Z.isZero());var I=new X(1).toRed(this),O=I.redNeg(),U=this.m.subn(1).iushrn(1),Q=this.m.bitLength();for(Q=new X(2*Q*Q).toRed(this);this.pow(Q,U).cmp(O)!==0;)Q.redIAdd(O);for(var K=this.pow(Q,Z),R=this.pow($,Z.addn(1).iushrn(1)),A=this.pow($,Z),S=V;A.cmp(I)!==0;){for(var x=A,B=0;x.cmp(I)!==0;B++)x=x.redSqr();F(B=0;V--){for(var K=Y.words[V],R=Q-1;R>=0;R--){var A=K>>R&1;if(I!==Z[0]&&(I=this.sqr(I)),A===0&&O===0){U=0;continue}O<<=1,O|=A,U++,!(U!==G&&(V!==0||R!==0))&&(I=this.mul(I,Z[O]),U=0,O=0)}Q=26}return I},p.prototype.convertTo=function($){var Y=$.umod(this.m);return Y===$?Y.clone():Y},p.prototype.convertFrom=function($){var Y=$.clone();return Y.red=null,Y},X.mont=function($){return new v0($)};function v0($){p.call(this,$),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new X(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}z(v0,p),v0.prototype.convertTo=function($){return this.imod($.ushln(this.shift))},v0.prototype.convertFrom=function($){var Y=this.imod($.mul(this.rinv));return Y.red=null,Y},v0.prototype.imul=function($,Y){if($.isZero()||Y.isZero())return $.words[0]=0,$.length=1,$;var G=$.imul(Y),Z=G.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),V=G.isub(Z).iushrn(this.shift),I=V;return V.cmp(this.m)>=0?I=V.isub(this.m):V.cmpn(0)<0&&(I=V.iadd(this.m)),I._forceRed(this)},v0.prototype.mul=function($,Y){if($.isZero()||Y.isZero())return new X(0)._forceRed(this);var G=$.mul(Y),Z=G.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),V=G.isub(Z).iushrn(this.shift),I=V;return V.cmp(this.m)>=0?I=V.isub(this.m):V.cmpn(0)<0&&(I=V.iadd(this.m)),I._forceRed(this)},v0.prototype.invm=function($){var Y=this.imod($._invmp(this.m).mul(this.r2));return Y._forceRed(this)}})(typeof _>"u"||_,N)}}),{CryptoHasher:mY}=globalThis.Bun,pQ=S0({"node_modules/public-encrypt/withPublic.js"(N,_){var k=t$(),j=N0().Buffer;function F(z,X){return j.from(z.toRed(k.mont(X.modulus)).redPow(new k(X.publicExponent)).fromRed().toArray())}_.exports=F}}),aY=S0({"node_modules/public-encrypt/publicEncrypt.js"(N,_){var k=g$(),j=L$(),F=M$(),z=yQ(),X=wQ(),C=t$(),P=pQ(),T=h$(),W=N0().Buffer;_.exports=function(E,L,M){var v;E.padding?v=E.padding:M?v=1:v=4;var q=k(E),g;if(v===4)g=J(q,L);else if(v===1)g=H(q,L,M);else if(v===3){if(g=new C(L),g.cmp(q.modulus)>=0)throw new Error("data too long for modulus")}else throw new Error("unknown padding");return M?T(g,q):P(g,q)};function J(E,L){var M=E.modulus.byteLength(),v=L.length,q=F("sha1").update(W.alloc(0)).digest(),g=q.length,y=2*g;if(v>M-y-2)throw new Error("message too long");var w=W.alloc(M-v-y-2),f=M-g-1,b=j(g),u=X(W.concat([q,w,W.alloc(1,1),L],f),z(b,f)),Y0=X(b,z(u,g));return new C(W.concat([W.alloc(1),Y0,u],M))}function H(E,L,M){var v=L.length,q=E.modulus.byteLength();if(v>q-11)throw new Error("message too long");var g;return M?g=W.alloc(q-v-3,255):g=D(q-v-3),new C(W.concat([W.from([0,M?1:2]),g,W.alloc(1),L],q))}function D(E){for(var L=W.allocUnsafe(E),M=0,v=j(E*2),q=0,g;Mq||new z(E).cmp(v.modulus)>=0)throw new Error("decryption error");var g;L?g=P(new z(E),v):g=X(E,v);var y=T.alloc(q-g.length);if(g=T.concat([y,g],q),M===4)return W(v,g);if(M===1)return J(v,g,L);if(M===3)return g;throw new Error("unknown padding")};function W(D,E){var L=D.modulus.byteLength(),M=C("sha1").update(T.alloc(0)).digest(),v=M.length;if(E[0]!==0)throw new Error("decryption error");var q=E.slice(1,v+1),g=E.slice(v+1),y=F(q,j(g,v)),w=F(g,j(y,L-v-1));if(H(M,w.slice(0,v)))throw new Error("decryption error");for(var f=v;w[f]===0;)f++;if(w[f++]!==1)throw new Error("decryption error");return w.slice(f)}function J(D,E,L){for(var M=E.slice(0,2),v=2,q=0;E[v++]!==0;)if(v>=E.length){q++;break}var g=E.slice(2,v-1);if((M.toString("hex")!=="0002"&&!L||M.toString("hex")!=="0001"&&L)&&q++,g.length<8&&q++,q)throw new Error("decryption error");return E.slice(v)}function H(D,E){D=T.from(D),E=T.from(E);var L=0,M=D.length;D.length!==E.length&&(L++,M=Math.min(D.length,E.length));for(var v=-1;++vz||J<0)throw new TypeError("offset must be a uint32");if(J>F||J>H)throw new RangeError("offset out of range")}function C(J,H,D){if(typeof J!="number"||J!==J)throw new TypeError("size must be a number");if(J>z||J<0)throw new TypeError("size must be a uint32");if(J+H>D||J>F)throw new RangeError("buffer too small")}N.randomFill=P,N.randomFillSync=W;function P(J,H,D,E){if(!j.isBuffer(J)&&!(J instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if(typeof H=="function")E=H,H=0,D=J.length;else if(typeof D=="function")E=D,D=J.length-H;else if(typeof E!="function")throw new TypeError('"cb" argument must be a function');return X(H,J.length),C(D,H,J.length),T(J,H,D,E)}function T(J,H,D,E){if(E){k(D,function(M,v){if(M)return E(M);v.copy(J,H),E(null,J)});return}var L=k(D);return L.copy(J,H),J}function W(J,H,D){if(typeof H>"u"&&(H=0),!j.isBuffer(J)&&!(J instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return X(H,J.length),D===void 0&&(D=J.length-H),C(D,H,J.length),T(J,H,D)}}}),$Z=S0({"node_modules/crypto-browserify/index.js"(N){N.randomBytes=N.rng=N.pseudoRandomBytes=N.prng=L$(),N.createHash=M$(),N.Hash=N.createHash.Hash,N.createHmac=N.Hmac=XQ();var _=aQ(),k=Object.keys(_),j=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(k);N.getHashes=function(){return j};var F=AQ();N.pbkdf2=F.pbkdf2,N.pbkdf2Sync=F.pbkdf2Sync;var z=FY();N.Cipher=z.Cipher,N.createCipher=z.createCipher,N.Cipheriv=z.Cipheriv,N.createCipheriv=z.createCipheriv,N.Decipher=z.Decipher,N.createDecipher=z.createDecipher,N.Decipheriv=z.Decipheriv,N.createDecipheriv=z.createDecipheriv,N.getCiphers=z.getCiphers,N.listCiphers=z.listCiphers;var X=EY();N.DiffieHellmanGroup=X.DiffieHellmanGroup,N.createDiffieHellmanGroup=X.createDiffieHellmanGroup,N.getDiffieHellman=X.getDiffieHellman,N.createDiffieHellman=X.createDiffieHellman,N.DiffieHellman=X.DiffieHellman;var C=nY();N.createSign=C.createSign,N.Sign=C.Sign,N.createVerify=C.createVerify,N.Verify=C.Verify,N.createECDH=tY();var P=rY();N.publicEncrypt=P.publicEncrypt,N.privateEncrypt=P.privateEncrypt,N.publicDecrypt=P.publicDecrypt,N.privateDecrypt=P.privateDecrypt,N.getRandomValues=(W)=>H$.getRandomValues(W);var T=iY();N.randomFill=T.randomFill,N.randomFillSync=T.randomFillSync,N.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join(` -`))},N.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}}}),m$={...$Z(),[Symbol.for("CommonJS")]:0},z$="buffer",QZ=(N)=>H$.getRandomValues(N),YZ=()=>H$.randomUUID(),ZZ=(...N)=>H$.randomInt(...N),B$="timingSafeEqual"in H$?(N,_)=>{let{byteLength:k}=N,{byteLength:j}=_;if(typeof k!="number"||typeof j!="number")throw new TypeError("Input must be an array buffer view");if(k!==j)throw new RangeError("Input buffers must have the same length");return H$.timingSafeEqual(N,_)}:void 0,fQ="scryptSync"in H$?(N,_,k,j)=>{let F=H$.scryptSync(N,_,k,j);return z$!=="buffer"?new g0(F).toString(z$):new g0(F)}:void 0,cQ="scryptSync"in H$?function(N,_,k,j,F){if(typeof j=="function"&&(F=j,j=void 0),typeof F!="function"){var z=new TypeError("callback must be a function");throw z.code="ERR_INVALID_CALLBACK",z}try{let X=H$.scryptSync(N,_,k,j);process.nextTick(F,null,z$!=="buffer"?new g0(X).toString(z$):new g0(X))}catch(X){throw X}}:void 0;B$&&(Object.defineProperty(B$,"name",{value:"::bunternal::"}),Object.defineProperty(cQ,"name",{value:"::bunternal::"}),Object.defineProperty(fQ,"name",{value:"::bunternal::"}));var e$=H$;oQ(m$,{DEFAULT_ENCODING:()=>z$,getRandomValues:()=>QZ,randomUUID:()=>YZ,randomInt:()=>ZZ,scrypt:()=>cQ,scryptSync:()=>fQ,timingSafeEqual:()=>B$,webcrypto:()=>e$,subtle:()=>e$.subtle});var{randomBytes:UZ,rng:XZ,pseudoRandomBytes:KZ,prng:IZ,Hash:OZ,createHash:JZ,createHmac:FZ,Hmac:AZ,getHashes:HZ,pbkdf2:WZ,pbkdf2Sync:EZ,Cipher:TZ,createCipher:DZ,Cipheriv:CZ,createCipheriv:LZ,Decipher:RZ,createDecipher:PZ,Decipheriv:zZ,createDecipheriv:MZ,getCiphers:SZ,listCiphers:vZ,DiffieHellmanGroup:qZ,createDiffieHellmanGroup:jZ,getDiffieHellman:kZ,createDiffieHellman:gZ,DiffieHellman:_Z,createSign:NZ,Sign:xZ,createVerify:BZ,Verify:yZ,createECDH:wZ,publicEncrypt:pZ,privateEncrypt:fZ,publicDecrypt:cZ,privateDecrypt:hZ,randomFill:dZ,randomFillSync:bZ,createCredentials:lZ,constants:oZ}=m$;var nZ=m$;/*! safe-buffer. MIT License. Feross Aboukhadijeh */export{e$ as webcrypto,B$ as timingSafeEqual,fQ as scryptSync,cQ as scrypt,XZ as rng,YZ as randomUUID,ZZ as randomInt,bZ as randomFillSync,dZ as randomFill,UZ as randomBytes,pZ as publicEncrypt,cZ as publicDecrypt,KZ as pseudoRandomBytes,IZ as prng,fZ as privateEncrypt,hZ as privateDecrypt,EZ as pbkdf2Sync,WZ as pbkdf2,vZ as listCiphers,QZ as getRandomValues,HZ as getHashes,kZ as getDiffieHellman,SZ as getCiphers,nZ as default,BZ as createVerify,NZ as createSign,FZ as createHmac,JZ as createHash,wZ as createECDH,jZ as createDiffieHellmanGroup,gZ as createDiffieHellman,MZ as createDecipheriv,PZ as createDecipher,lZ as createCredentials,LZ as createCipheriv,DZ as createCipher,oZ as constants,yZ as Verify,xZ as Sign,AZ as Hmac,OZ as Hash,qZ as DiffieHellmanGroup,_Z as DiffieHellman,zZ as Decipheriv,RZ as Decipher,z$ as DEFAULT_ENCODING,CZ as Cipheriv,TZ as Cipher}; +import{StringDecoder as BQ} from"node:string_decoder";import*as P0 from"node:buffer";import*as R0 from"node:stream";var PZ=function(){return RZ};var xQ=Object.defineProperty;var J=Object.getOwnPropertyNames;var yQ=536870888,G0=globalThis.Buffer,qQ=globalThis.crypto,wQ=qQ;var pQ=(t0,m0)=>function(){return m0||(0,t0[J(t0)[0]])((m0={exports:{}}).exports,m0),m0.exports},fQ=(t0,m0)=>{for(var a0 in m0)xQ(t0,a0,{get:m0[a0],enumerable:!0})};var cQ=pQ({"node_modules/safe-buffer/index.js"(t0,m0){var a0=P0,e0=a0.Buffer;function r0($$,Q$){for(var $ in $$)Q$[$]=$$[$]}e0.from&&e0.alloc&&e0.allocUnsafe&&e0.allocUnsafeSlow?m0.exports=a0:(r0(a0,t0),t0.Buffer=i0);function i0($$,Q$,$){return e0($$,Q$,$)}i0.prototype=Object.create(e0.prototype),r0(e0,i0),i0.from=function($$,Q$,$){if(typeof $$=="number")throw new TypeError("Argument must not be a number");return e0($$,Q$,$)},i0.alloc=function($$,Q$,$){if(typeof $$!="number")throw new TypeError("Argument must be a number");var N=e0($$);return Q$!==void 0?typeof $=="string"?N.fill(Q$,$):N.fill(Q$):N.fill(0),N},i0.allocUnsafe=function($$){if(typeof $$!="number")throw new TypeError("Argument must be a number");return e0($$)},i0.allocUnsafeSlow=function($$){if(typeof $$!="number")throw new TypeError("Argument must be a number");return a0.SlowBuffer($$)}}}),hQ=pQ({"node_modules/randombytes/browser.js"(t0,m0){var a0=65536,e0=4294967295;function r0(){throw new Error(`Secure random number generation is not supported by this browser. +Use Chrome, Firefox or Internet Explorer 11`)}var i0=cQ().Buffer,$$=wQ;$$&&$$.getRandomValues?m0.exports=Q$:m0.exports=r0;function Q$($,N){if($>e0)throw new RangeError("requested too many random bytes");var Y$=i0.allocUnsafe($);if($>0)if($>a0)for(var O0=0;O0<$;O0+=a0)$$.getRandomValues(Y$.slice(O0,O0+a0));else $$.getRandomValues(Y$);return typeof N=="function"?process.nextTick(function(){N(null,Y$)}):Y$}}}),dQ=pQ({"node_modules/inherits/inherits_browser.js"(t0,m0){typeof Object.create=="function"?m0.exports=function(a0,e0){e0&&(a0.super_=e0,a0.prototype=Object.create(e0.prototype,{constructor:{value:a0,enumerable:!1,writable:!0,configurable:!0}}))}:m0.exports=function(a0,e0){if(e0){a0.super_=e0;var r0=function(){};r0.prototype=e0.prototype,a0.prototype=new r0,a0.prototype.constructor=a0}}}}),F=pQ({"node_modules/hash-base/index.js"(t0,m0){var a0=cQ().Buffer,e0=dQ();function r0($$,Q$){if(!a0.isBuffer($$)&&typeof $$!="string")throw new TypeError(Q$+" must be a string or a buffer")}function i0($$){R0.Transform.call(this),this._block=a0.allocUnsafe($$),this._blockSize=$$,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}e0(i0,R0.Transform),i0.prototype._transform=function($$,Q$,$){var N=null;try{this.update($$,Q$)}catch(Y$){N=Y$}$(N)},i0.prototype._flush=function($$){var Q$=null;try{this.push(this.digest())}catch($){Q$=$}$$(Q$)},i0.prototype.update=function($$,Q$){if(r0($$,"Data"),this._finalized)throw new Error("Digest already called");a0.isBuffer($$)||($$=a0.from($$,Q$));for(var $=this._block,N=0;this._blockOffset+$$.length-N>=this._blockSize;){for(var Y$=this._blockOffset;Y$0;++O0)this._length[O0]+=Z$,Z$=this._length[O0]/4294967296|0,Z$>0&&(this._length[O0]-=4294967296*Z$);return this},i0.prototype._update=function(){throw new Error("_update is not implemented")},i0.prototype.digest=function($$){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var Q$=this._digest();$$!==void 0&&(Q$=Q$.toString($$)),this._block.fill(0),this._blockOffset=0;for(var $=0;$<4;++$)this._length[$]=0;return Q$},i0.prototype._digest=function(){throw new Error("_digest is not implemented")},m0.exports=i0}}),_=pQ({"node_modules/md5.js/index.js"(t0,m0){var a0=dQ(),e0=F(),r0=cQ().Buffer,i0=new Array(16);function $$(){e0.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}a0($$,e0),$$.prototype._update=function(){for(var Z$=i0,G$=0;G$<16;++G$)Z$[G$]=this._block.readInt32LE(G$*4);var V$=this._a,U$=this._b,X$=this._c,K$=this._d;V$=$(V$,U$,X$,K$,Z$[0],3614090360,7),K$=$(K$,V$,U$,X$,Z$[1],3905402710,12),X$=$(X$,K$,V$,U$,Z$[2],606105819,17),U$=$(U$,X$,K$,V$,Z$[3],3250441966,22),V$=$(V$,U$,X$,K$,Z$[4],4118548399,7),K$=$(K$,V$,U$,X$,Z$[5],1200080426,12),X$=$(X$,K$,V$,U$,Z$[6],2821735955,17),U$=$(U$,X$,K$,V$,Z$[7],4249261313,22),V$=$(V$,U$,X$,K$,Z$[8],1770035416,7),K$=$(K$,V$,U$,X$,Z$[9],2336552879,12),X$=$(X$,K$,V$,U$,Z$[10],4294925233,17),U$=$(U$,X$,K$,V$,Z$[11],2304563134,22),V$=$(V$,U$,X$,K$,Z$[12],1804603682,7),K$=$(K$,V$,U$,X$,Z$[13],4254626195,12),X$=$(X$,K$,V$,U$,Z$[14],2792965006,17),U$=$(U$,X$,K$,V$,Z$[15],1236535329,22),V$=N(V$,U$,X$,K$,Z$[1],4129170786,5),K$=N(K$,V$,U$,X$,Z$[6],3225465664,9),X$=N(X$,K$,V$,U$,Z$[11],643717713,14),U$=N(U$,X$,K$,V$,Z$[0],3921069994,20),V$=N(V$,U$,X$,K$,Z$[5],3593408605,5),K$=N(K$,V$,U$,X$,Z$[10],38016083,9),X$=N(X$,K$,V$,U$,Z$[15],3634488961,14),U$=N(U$,X$,K$,V$,Z$[4],3889429448,20),V$=N(V$,U$,X$,K$,Z$[9],568446438,5),K$=N(K$,V$,U$,X$,Z$[14],3275163606,9),X$=N(X$,K$,V$,U$,Z$[3],4107603335,14),U$=N(U$,X$,K$,V$,Z$[8],1163531501,20),V$=N(V$,U$,X$,K$,Z$[13],2850285829,5),K$=N(K$,V$,U$,X$,Z$[2],4243563512,9),X$=N(X$,K$,V$,U$,Z$[7],1735328473,14),U$=N(U$,X$,K$,V$,Z$[12],2368359562,20),V$=Y$(V$,U$,X$,K$,Z$[5],4294588738,4),K$=Y$(K$,V$,U$,X$,Z$[8],2272392833,11),X$=Y$(X$,K$,V$,U$,Z$[11],1839030562,16),U$=Y$(U$,X$,K$,V$,Z$[14],4259657740,23),V$=Y$(V$,U$,X$,K$,Z$[1],2763975236,4),K$=Y$(K$,V$,U$,X$,Z$[4],1272893353,11),X$=Y$(X$,K$,V$,U$,Z$[7],4139469664,16),U$=Y$(U$,X$,K$,V$,Z$[10],3200236656,23),V$=Y$(V$,U$,X$,K$,Z$[13],681279174,4),K$=Y$(K$,V$,U$,X$,Z$[0],3936430074,11),X$=Y$(X$,K$,V$,U$,Z$[3],3572445317,16),U$=Y$(U$,X$,K$,V$,Z$[6],76029189,23),V$=Y$(V$,U$,X$,K$,Z$[9],3654602809,4),K$=Y$(K$,V$,U$,X$,Z$[12],3873151461,11),X$=Y$(X$,K$,V$,U$,Z$[15],530742520,16),U$=Y$(U$,X$,K$,V$,Z$[2],3299628645,23),V$=O0(V$,U$,X$,K$,Z$[0],4096336452,6),K$=O0(K$,V$,U$,X$,Z$[7],1126891415,10),X$=O0(X$,K$,V$,U$,Z$[14],2878612391,15),U$=O0(U$,X$,K$,V$,Z$[5],4237533241,21),V$=O0(V$,U$,X$,K$,Z$[12],1700485571,6),K$=O0(K$,V$,U$,X$,Z$[3],2399980690,10),X$=O0(X$,K$,V$,U$,Z$[10],4293915773,15),U$=O0(U$,X$,K$,V$,Z$[1],2240044497,21),V$=O0(V$,U$,X$,K$,Z$[8],1873313359,6),K$=O0(K$,V$,U$,X$,Z$[15],4264355552,10),X$=O0(X$,K$,V$,U$,Z$[6],2734768916,15),U$=O0(U$,X$,K$,V$,Z$[13],1309151649,21),V$=O0(V$,U$,X$,K$,Z$[4],4149444226,6),K$=O0(K$,V$,U$,X$,Z$[11],3174756917,10),X$=O0(X$,K$,V$,U$,Z$[2],718787259,15),U$=O0(U$,X$,K$,V$,Z$[9],3951481745,21),this._a=this._a+V$|0,this._b=this._b+U$|0,this._c=this._c+X$|0,this._d=this._d+K$|0},$$.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var Z$=r0.allocUnsafe(16);return Z$.writeInt32LE(this._a,0),Z$.writeInt32LE(this._b,4),Z$.writeInt32LE(this._c,8),Z$.writeInt32LE(this._d,12),Z$};function Q$(Z$,G$){return Z$<>>32-G$}function $(Z$,G$,V$,U$,X$,K$,I$){return Q$(Z$+(G$&V$|~G$&U$)+X$+K$|0,I$)+G$|0}function N(Z$,G$,V$,U$,X$,K$,I$){return Q$(Z$+(G$&U$|V$&~U$)+X$+K$|0,I$)+G$|0}function Y$(Z$,G$,V$,U$,X$,K$,I$){return Q$(Z$+(G$^V$^U$)+X$+K$|0,I$)+G$|0}function O0(Z$,G$,V$,U$,X$,K$,I$){return Q$(Z$+(V$^(G$|~U$))+X$+K$|0,I$)+G$|0}m0.exports=$$}}),V0=pQ({"node_modules/ripemd160/index.js"(t0,m0){var a0=G0,e0=dQ(),r0=F(),i0=new Array(16),$$=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],Q$=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],$=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],N=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],Y$=[0,1518500249,1859775393,2400959708,2840853838],O0=[1352829926,1548603684,1836072691,2053994217,0];function Z$(){r0.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}e0(Z$,r0),Z$.prototype._update=function(){for(var Q=i0,x=0;x<16;++x)Q[x]=this._block.readInt32LE(x*4);for(var O$=this._a|0,J0=this._b|0,J$=this._c|0,F$=this._d|0,A$=this._e|0,H$=this._a|0,W$=this._b|0,E$=this._c|0,T$=this._d|0,Y=this._e|0,f=0;f<80;f+=1){var D$,F0;f<16?(D$=V$(O$,J0,J$,F$,A$,Q[$$[f]],Y$[0],$[f]),F0=I$(H$,W$,E$,T$,Y,Q[Q$[f]],O0[0],N[f])):f<32?(D$=U$(O$,J0,J$,F$,A$,Q[$$[f]],Y$[1],$[f]),F0=K$(H$,W$,E$,T$,Y,Q[Q$[f]],O0[1],N[f])):f<48?(D$=X$(O$,J0,J$,F$,A$,Q[$$[f]],Y$[2],$[f]),F0=X$(H$,W$,E$,T$,Y,Q[Q$[f]],O0[2],N[f])):f<64?(D$=K$(O$,J0,J$,F$,A$,Q[$$[f]],Y$[3],$[f]),F0=U$(H$,W$,E$,T$,Y,Q[Q$[f]],O0[3],N[f])):(D$=I$(O$,J0,J$,F$,A$,Q[$$[f]],Y$[4],$[f]),F0=V$(H$,W$,E$,T$,Y,Q[Q$[f]],O0[4],N[f])),O$=A$,A$=F$,F$=G$(J$,10),J$=J0,J0=D$,H$=Y,Y=T$,T$=G$(E$,10),E$=W$,W$=F0}var C$=this._b+J$+T$|0;this._b=this._c+F$+Y|0,this._c=this._d+A$+H$|0,this._d=this._e+O$+W$|0,this._e=this._a+J0+E$|0,this._a=C$},Z$.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var Q=a0.alloc?a0.alloc(20):new a0(20);return Q.writeInt32LE(this._a,0),Q.writeInt32LE(this._b,4),Q.writeInt32LE(this._c,8),Q.writeInt32LE(this._d,12),Q.writeInt32LE(this._e,16),Q};function G$(Q,x){return Q<>>32-x}function V$(Q,x,O$,J0,J$,F$,A$,H$){return G$(Q+(x^O$^J0)+F$+A$|0,H$)+J$|0}function U$(Q,x,O$,J0,J$,F$,A$,H$){return G$(Q+(x&O$|~x&J0)+F$+A$|0,H$)+J$|0}function X$(Q,x,O$,J0,J$,F$,A$,H$){return G$(Q+((x|~O$)^J0)+F$+A$|0,H$)+J$|0}function K$(Q,x,O$,J0,J$,F$,A$,H$){return G$(Q+(x&J0|O$&~J0)+F$+A$|0,H$)+J$|0}function I$(Q,x,O$,J0,J$,F$,A$,H$){return G$(Q+(x^(O$|~J0))+F$+A$|0,H$)+J$|0}m0.exports=Z$}}),z0=pQ({"node_modules/sha.js/hash.js"(t0,m0){var a0=cQ().Buffer;function e0(r0,i0){this._block=a0.alloc(r0),this._finalSize=i0,this._blockSize=r0,this._len=0}e0.prototype.update=function(r0,i0){typeof r0=="string"&&(i0=i0||"utf8",r0=a0.from(r0,i0));for(var $$=this._block,Q$=this._blockSize,$=r0.length,N=this._len,Y$=0;Y$<$;){for(var O0=N%Q$,Z$=Math.min($-Y$,Q$-O0),G$=0;G$=this._finalSize&&(this._update(this._block),this._block.fill(0));var $$=this._len*8;if($$<=4294967295)this._block.writeUInt32BE($$,this._blockSize-4);else{var Q$=($$&4294967295)>>>0,$=($$-Q$)/4294967296;this._block.writeUInt32BE($,this._blockSize-8),this._block.writeUInt32BE(Q$,this._blockSize-4)}this._update(this._block);var N=this._hash();return r0?N.toString(r0):N},e0.prototype._update=function(){throw new Error("_update must be implemented by subclass")},m0.exports=e0}}),bQ=pQ({"node_modules/sha.js/sha.js"(t0,m0){var a0=dQ(),e0=z0(),r0=cQ().Buffer,i0=[1518500249,1859775393,-1894007588,-899497514],$$=new Array(80);function Q$(){this.init(),this._w=$$,e0.call(this,64,56)}a0(Q$,e0),Q$.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function $(O0){return O0<<5|O0>>>27}function N(O0){return O0<<30|O0>>>2}function Y$(O0,Z$,G$,V$){return O0===0?Z$&G$|~Z$&V$:O0===2?Z$&G$|Z$&V$|G$&V$:Z$^G$^V$}Q$.prototype._update=function(O0){for(var Z$=this._w,G$=this._a|0,V$=this._b|0,U$=this._c|0,X$=this._d|0,K$=this._e|0,I$=0;I$<16;++I$)Z$[I$]=O0.readInt32BE(I$*4);for(;I$<80;++I$)Z$[I$]=Z$[I$-3]^Z$[I$-8]^Z$[I$-14]^Z$[I$-16];for(var Q=0;Q<80;++Q){var x=~~(Q/20),O$=$(G$)+Y$(x,V$,U$,X$)+K$+Z$[Q]+i0[x]|0;K$=X$,X$=U$,U$=N(V$),V$=G$,G$=O$}this._a=G$+this._a|0,this._b=V$+this._b|0,this._c=U$+this._c|0,this._d=X$+this._d|0,this._e=K$+this._e|0},Q$.prototype._hash=function(){var O0=r0.allocUnsafe(20);return O0.writeInt32BE(this._a|0,0),O0.writeInt32BE(this._b|0,4),O0.writeInt32BE(this._c|0,8),O0.writeInt32BE(this._d|0,12),O0.writeInt32BE(this._e|0,16),O0},m0.exports=Q$}}),lQ=pQ({"node_modules/sha.js/sha1.js"(t0,m0){var a0=dQ(),e0=z0(),r0=cQ().Buffer,i0=[1518500249,1859775393,-1894007588,-899497514],$$=new Array(80);function Q$(){this.init(),this._w=$$,e0.call(this,64,56)}a0(Q$,e0),Q$.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function $(Z$){return Z$<<1|Z$>>>31}function N(Z$){return Z$<<5|Z$>>>27}function Y$(Z$){return Z$<<30|Z$>>>2}function O0(Z$,G$,V$,U$){return Z$===0?G$&V$|~G$&U$:Z$===2?G$&V$|G$&U$|V$&U$:G$^V$^U$}Q$.prototype._update=function(Z$){for(var G$=this._w,V$=this._a|0,U$=this._b|0,X$=this._c|0,K$=this._d|0,I$=this._e|0,Q=0;Q<16;++Q)G$[Q]=Z$.readInt32BE(Q*4);for(;Q<80;++Q)G$[Q]=$(G$[Q-3]^G$[Q-8]^G$[Q-14]^G$[Q-16]);for(var x=0;x<80;++x){var O$=~~(x/20),J0=N(V$)+O0(O$,U$,X$,K$)+I$+G$[x]+i0[O$]|0;I$=K$,K$=X$,X$=Y$(U$),U$=V$,V$=J0}this._a=V$+this._a|0,this._b=U$+this._b|0,this._c=X$+this._c|0,this._d=K$+this._d|0,this._e=I$+this._e|0},Q$.prototype._hash=function(){var Z$=r0.allocUnsafe(20);return Z$.writeInt32BE(this._a|0,0),Z$.writeInt32BE(this._b|0,4),Z$.writeInt32BE(this._c|0,8),Z$.writeInt32BE(this._d|0,12),Z$.writeInt32BE(this._e|0,16),Z$},m0.exports=Q$}}),oQ=pQ({"node_modules/sha.js/sha256.js"(t0,m0){var a0=dQ(),e0=z0(),r0=cQ().Buffer,i0=[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],$$=new Array(64);function Q$(){this.init(),this._w=$$,e0.call(this,64,56)}a0(Q$,e0),Q$.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function $(V$,U$,X$){return X$^V$&(U$^X$)}function N(V$,U$,X$){return V$&U$|X$&(V$|U$)}function Y$(V$){return(V$>>>2|V$<<30)^(V$>>>13|V$<<19)^(V$>>>22|V$<<10)}function O0(V$){return(V$>>>6|V$<<26)^(V$>>>11|V$<<21)^(V$>>>25|V$<<7)}function Z$(V$){return(V$>>>7|V$<<25)^(V$>>>18|V$<<14)^V$>>>3}function G$(V$){return(V$>>>17|V$<<15)^(V$>>>19|V$<<13)^V$>>>10}Q$.prototype._update=function(V$){for(var U$=this._w,X$=this._a|0,K$=this._b|0,I$=this._c|0,Q=this._d|0,x=this._e|0,O$=this._f|0,J0=this._g|0,J$=this._h|0,F$=0;F$<16;++F$)U$[F$]=V$.readInt32BE(F$*4);for(;F$<64;++F$)U$[F$]=G$(U$[F$-2])+U$[F$-7]+Z$(U$[F$-15])+U$[F$-16]|0;for(var A$=0;A$<64;++A$){var H$=J$+O0(x)+$(x,O$,J0)+i0[A$]+U$[A$]|0,W$=Y$(X$)+N(X$,K$,I$)|0;J$=J0,J0=O$,O$=x,x=Q+H$|0,Q=I$,I$=K$,K$=X$,X$=H$+W$|0}this._a=X$+this._a|0,this._b=K$+this._b|0,this._c=I$+this._c|0,this._d=Q+this._d|0,this._e=x+this._e|0,this._f=O$+this._f|0,this._g=J0+this._g|0,this._h=J$+this._h|0},Q$.prototype._hash=function(){var V$=r0.allocUnsafe(32);return V$.writeInt32BE(this._a,0),V$.writeInt32BE(this._b,4),V$.writeInt32BE(this._c,8),V$.writeInt32BE(this._d,12),V$.writeInt32BE(this._e,16),V$.writeInt32BE(this._f,20),V$.writeInt32BE(this._g,24),V$.writeInt32BE(this._h,28),V$},m0.exports=Q$}}),uQ=pQ({"node_modules/sha.js/sha224.js"(t0,m0){var a0=dQ(),e0=oQ(),r0=z0(),i0=cQ().Buffer,$$=new Array(64);function Q$(){this.init(),this._w=$$,r0.call(this,64,56)}a0(Q$,e0),Q$.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},Q$.prototype._hash=function(){var $=i0.allocUnsafe(28);return $.writeInt32BE(this._a,0),$.writeInt32BE(this._b,4),$.writeInt32BE(this._c,8),$.writeInt32BE(this._d,12),$.writeInt32BE(this._e,16),$.writeInt32BE(this._f,20),$.writeInt32BE(this._g,24),$},m0.exports=Q$}}),nQ=pQ({"node_modules/sha.js/sha512.js"(t0,m0){var a0=dQ(),e0=z0(),r0=cQ().Buffer,i0=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],$$=new Array(160);function Q$(){this.init(),this._w=$$,e0.call(this,128,112)}a0(Q$,e0),Q$.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function $(K$,I$,Q){return Q^K$&(I$^Q)}function N(K$,I$,Q){return K$&I$|Q&(K$|I$)}function Y$(K$,I$){return(K$>>>28|I$<<4)^(I$>>>2|K$<<30)^(I$>>>7|K$<<25)}function O0(K$,I$){return(K$>>>14|I$<<18)^(K$>>>18|I$<<14)^(I$>>>9|K$<<23)}function Z$(K$,I$){return(K$>>>1|I$<<31)^(K$>>>8|I$<<24)^K$>>>7}function G$(K$,I$){return(K$>>>1|I$<<31)^(K$>>>8|I$<<24)^(K$>>>7|I$<<25)}function V$(K$,I$){return(K$>>>19|I$<<13)^(I$>>>29|K$<<3)^K$>>>6}function U$(K$,I$){return(K$>>>19|I$<<13)^(I$>>>29|K$<<3)^(K$>>>6|I$<<26)}function X$(K$,I$){return K$>>>0>>0?1:0}Q$.prototype._update=function(K$){for(var I$=this._w,Q=this._ah|0,x=this._bh|0,O$=this._ch|0,J0=this._dh|0,J$=this._eh|0,F$=this._fh|0,A$=this._gh|0,H$=this._hh|0,W$=this._al|0,E$=this._bl|0,T$=this._cl|0,Y=this._dl|0,f=this._el|0,D$=this._fl|0,F0=this._gl|0,C$=this._hl|0,L$=0;L$<32;L$+=2)I$[L$]=K$.readInt32BE(L$*4),I$[L$+1]=K$.readInt32BE(L$*4+4);for(;L$<160;L$+=2){var R$=I$[L$-30],P$=I$[L$-30+1],z$=Z$(R$,P$),M$=G$(P$,R$);R$=I$[L$-4],P$=I$[L$-4+1];var S$=V$(R$,P$),Z=U$(P$,R$),c=I$[L$-14],v$=I$[L$-14+1],A0=I$[L$-32],q$=I$[L$-32+1],j$=M$+v$|0,k$=z$+c+X$(j$,M$)|0;j$=j$+Z|0,k$=k$+S$+X$(j$,Z)|0,j$=j$+q$|0,k$=k$+A0+X$(j$,q$)|0,I$[L$]=k$,I$[L$+1]=j$}for(var g$=0;g$<160;g$+=2){k$=I$[g$],j$=I$[g$+1];var _$=N(Q,x,O$),N$=N(W$,E$,T$),x$=Y$(Q,W$),G=Y$(W$,Q),B=O0(J$,f),B$=O0(f,J$),H0=i0[g$],y$=i0[g$+1],w$=$(J$,F$,A$),p$=$(f,D$,F0),f$=C$+B$|0,c$=H$+B+X$(f$,C$)|0;f$=f$+p$|0,c$=c$+w$+X$(f$,p$)|0,f$=f$+y$|0,c$=c$+H0+X$(f$,y$)|0,f$=f$+j$|0,c$=c$+k$+X$(f$,j$)|0;var h$=G+N$|0,d$=x$+_$+X$(h$,G)|0;H$=A$,C$=F0,A$=F$,F0=D$,F$=J$,D$=f,f=Y+f$|0,J$=J0+c$+X$(f,Y)|0,J0=O$,Y=T$,O$=x,T$=E$,x=Q,E$=W$,W$=f$+h$|0,Q=c$+d$+X$(W$,f$)|0}this._al=this._al+W$|0,this._bl=this._bl+E$|0,this._cl=this._cl+T$|0,this._dl=this._dl+Y|0,this._el=this._el+f|0,this._fl=this._fl+D$|0,this._gl=this._gl+F0|0,this._hl=this._hl+C$|0,this._ah=this._ah+Q+X$(this._al,W$)|0,this._bh=this._bh+x+X$(this._bl,E$)|0,this._ch=this._ch+O$+X$(this._cl,T$)|0,this._dh=this._dh+J0+X$(this._dl,Y)|0,this._eh=this._eh+J$+X$(this._el,f)|0,this._fh=this._fh+F$+X$(this._fl,D$)|0,this._gh=this._gh+A$+X$(this._gl,F0)|0,this._hh=this._hh+H$+X$(this._hl,C$)|0},Q$.prototype._hash=function(){var K$=r0.allocUnsafe(64);function I$(Q,x,O$){K$.writeInt32BE(Q,O$),K$.writeInt32BE(x,O$+4)}return I$(this._ah,this._al,0),I$(this._bh,this._bl,8),I$(this._ch,this._cl,16),I$(this._dh,this._dl,24),I$(this._eh,this._el,32),I$(this._fh,this._fl,40),I$(this._gh,this._gl,48),I$(this._hh,this._hl,56),K$},m0.exports=Q$}}),sQ=pQ({"node_modules/sha.js/sha384.js"(t0,m0){var a0=dQ(),e0=nQ(),r0=z0(),i0=cQ().Buffer,$$=new Array(160);function Q$(){this.init(),this._w=$$,r0.call(this,128,112)}a0(Q$,e0),Q$.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},Q$.prototype._hash=function(){var $=i0.allocUnsafe(48);function N(Y$,O0,Z$){$.writeInt32BE(Y$,Z$),$.writeInt32BE(O0,Z$+4)}return N(this._ah,this._al,0),N(this._bh,this._bl,8),N(this._ch,this._cl,16),N(this._dh,this._dl,24),N(this._eh,this._el,32),N(this._fh,this._fl,40),$},m0.exports=Q$}}),tQ=pQ({"node_modules/sha.js/index.js"(a0,m0){var a0=m0.exports=function(e0){e0=e0.toLowerCase();var r0=a0[e0];if(!r0)throw new Error(e0+" is not supported (we accept pull requests)");return new r0};a0.sha=bQ(),a0.sha1=lQ(),a0.sha224=uQ(),a0.sha256=oQ(),a0.sha384=sQ(),a0.sha512=nQ()}}),A=pQ({"node_modules/cipher-base/index.js"(t0,m0){var a0=cQ().Buffer,e0=dQ();function r0(i0){R0.Transform.call(this),this.hashMode=typeof i0=="string",this.hashMode?this[i0]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}e0(r0,R0.Transform),r0.prototype.update=function(i0,$$,Q$){typeof i0=="string"&&(i0=a0.from(i0,$$));var $=this._update(i0);return this.hashMode?this:(Q$&&($=this._toString($,Q$)),$)},r0.prototype.setAutoPadding=function(){},r0.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},r0.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},r0.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},r0.prototype._transform=function(i0,$$,Q$){var $;try{this.hashMode?this._update(i0):this.push(this._update(i0))}catch(N){$=N}finally{Q$($)}},r0.prototype._flush=function(i0){var $$;try{this.push(this.__final())}catch(Q$){$$=Q$}i0($$)},r0.prototype._finalOrDigest=function(i0){var $$=this.__final()||a0.alloc(0);return i0&&($$=this._toString($$,i0,!0)),$$},r0.prototype._toString=function(i0,$$,Q$){if(this._decoder||(this._decoder=new BQ($$),this._encoding=$$),this._encoding!==$$)throw new Error("can't switch encodings");var $=this._decoder.write(i0);return Q$&&($+=this._decoder.end()),$},m0.exports=r0}}),w=pQ({"node_modules/create-hash/browser.js"(t0,m0){const a0=function i0($$,Q$){this._options=Q$,this._hasher=new AZ($$,Q$),this._finalized=!1};a0.prototype=Object.create(R0.Transform.prototype),a0.prototype.update=function i0($$,Q$){return this._checkFinalized(),this._hasher.update($$,Q$),this},a0.prototype.digest=function i0($$,Q$){return this._checkFinalized(),this._finalized=!0,this._hasher.digest($$,Q$)},a0.prototype._checkFinalized=function i0(){if(this._finalized){var $$=new Error("Digest already called");throw $$.code="ERR_CRYPTO_HASH_FINALIZED",$$}},a0.prototype.copy=function i0(){const $$=Object.create(a0.prototype);return $$._options=this._options,$$._hasher=this._hasher.copy(),$$._finalized=this._finalized,$$};const e0={__proto__:R0.Transform.prototype,...a0.prototype,_transform(i0,$$,Q$){this.update(i0,$$),Q$&&Q$()},_flush(i0){this.push(this.digest()),i0()}},r0=["_events","_eventsCount","_final","_maxListeners","_maxListeners","_read","_undestroy","_writableState","_write","_writev","addListener","asIndexedPairs","closed","compose","constructor","cork","destroy","destroyed","drop","emit","end","errored","eventNames","every","filter","find","flatMap","forEach","getMaxListeners","hasOwnProperty","isPaused","isPrototypeOf","iterator","listenerCount","listeners","map","off","on","once","pause","pipe","prependListener","prependOnceListener","propertyIsEnumerable","push","rawListeners","read","readable","readableAborted","readableBuffer","readableDidRead","readableEncoding","readableEnded","readableFlowing","readableHighWaterMark","readableLength","readableObjectMode","reduce","removeAllListeners","removeListener","resume","setDefaultEncoding","setEncoding","setMaxListeners","some","take","toArray","toLocaleString","toString","uncork","unpipe","unshift","valueOf","wrap","writable","writableBuffer","writableCorked","writableEnded","writableFinished","writableHighWaterMark","writableLength","writableNeedDrain","writableObjectMode","write"];for(let i0 of r0)Object.defineProperty(a0.prototype,i0,{get(){return Object.setPrototypeOf(this,e0),R0.Transform.call(this,this._options),this[i0]},enumerable:!1,configurable:!0});m0.exports=function i0($$){return new a0($$)},m0.exports.createHash=m0.exports,m0.exports.Hash=a0}}),mQ=pQ({"node_modules/create-hmac/legacy.js"(t0,m0){var a0=dQ(),e0=cQ().Buffer,r0=A(),i0=e0.alloc(128),$$=64;function Q$($,N){r0.call(this,"digest"),typeof N=="string"&&(N=e0.from(N)),this._alg=$,this._key=N,N.length>$$?N=$(N):N.length<$$&&(N=e0.concat([N,i0],$$));for(var Y$=this._ipad=e0.allocUnsafe($$),O0=this._opad=e0.allocUnsafe($$),Z$=0;Z$<$$;Z$++)Y$[Z$]=N[Z$]^54,O0[Z$]=N[Z$]^92;this._hash=[Y$]}a0(Q$,r0),Q$.prototype._update=function($){this._hash.push($)},Q$.prototype._final=function(){var $=this._alg(e0.concat(this._hash));return this._alg(e0.concat([this._opad,$]))},m0.exports=Q$}}),M0=pQ({"node_modules/create-hash/md5.js"(t0,m0){var a0=_();m0.exports=function(e0){return new a0().update(e0).digest()}}}),aQ=pQ({"node_modules/create-hmac/browser.js"(t0,m0){var a0=dQ(),e0=mQ(),r0=A(),i0=cQ().Buffer,$$=M0(),Q$=V0(),$=tQ(),N=i0.alloc(128);function Y$(O0,Z$){r0.call(this,"digest"),typeof Z$=="string"&&(Z$=i0.from(Z$));var G$=O0==="sha512"||O0==="sha384"?128:64;if(this._alg=O0,this._key=Z$,Z$.length>G$){var V$=O0==="rmd160"?new Q$:$(O0);Z$=V$.update(Z$).digest()}else Z$.lengtha0||r0!==r0)throw new TypeError("Bad key length")}}}),$Y=pQ({"node_modules/pbkdf2/lib/default-encoding.js"(t0,m0){var a0;global.process&&global.process.browser?a0="utf-8":global.process&&global.process.version?(e0=parseInt(process.version.split(".")[0].slice(1),10),a0=e0>=6?"utf-8":"binary"):a0="utf-8";var e0;m0.exports=a0}}),QY=pQ({"node_modules/pbkdf2/lib/to-buffer.js"(t0,m0){var a0=cQ().Buffer;m0.exports=function(e0,r0,i0){if(a0.isBuffer(e0))return e0;if(typeof e0=="string")return a0.from(e0,r0);if(ArrayBuffer.isView(e0))return a0.from(e0.buffer);throw new TypeError(i0+" must be a string, a Buffer, a typed array or a DataView")}}}),YY=pQ({"node_modules/pbkdf2/lib/sync-browser.js"(t0,m0){var a0=M0(),e0=V0(),r0=tQ(),i0=cQ().Buffer,$$=iQ(),Q$=$Y(),$=QY(),N=i0.alloc(128),Y$={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function O0(V$,U$,X$){var K$=Z$(V$),I$=V$==="sha512"||V$==="sha384"?128:64;U$.length>I$?U$=K$(U$):U$.length>>0},t0.writeUInt32BE=function(r0,i0,$$){r0[0+$$]=i0>>>24,r0[1+$$]=i0>>>16&255,r0[2+$$]=i0>>>8&255,r0[3+$$]=i0&255},t0.ip=function(r0,i0,$$,Q$){for(var $=0,N=0,Y$=6;Y$>=0;Y$-=2){for(var O0=0;O0<=24;O0+=8)$<<=1,$|=i0>>>O0+Y$&1;for(var O0=0;O0<=24;O0+=8)$<<=1,$|=r0>>>O0+Y$&1}for(var Y$=6;Y$>=0;Y$-=2){for(var O0=1;O0<=25;O0+=8)N<<=1,N|=i0>>>O0+Y$&1;for(var O0=1;O0<=25;O0+=8)N<<=1,N|=r0>>>O0+Y$&1}$$[Q$+0]=$>>>0,$$[Q$+1]=N>>>0},t0.rip=function(r0,i0,$$,Q$){for(var $=0,N=0,Y$=0;Y$<4;Y$++)for(var O0=24;O0>=0;O0-=8)$<<=1,$|=i0>>>O0+Y$&1,$<<=1,$|=r0>>>O0+Y$&1;for(var Y$=4;Y$<8;Y$++)for(var O0=24;O0>=0;O0-=8)N<<=1,N|=i0>>>O0+Y$&1,N<<=1,N|=r0>>>O0+Y$&1;$$[Q$+0]=$>>>0,$$[Q$+1]=N>>>0},t0.pc1=function(r0,i0,$$,Q$){for(var $=0,N=0,Y$=7;Y$>=5;Y$--){for(var O0=0;O0<=24;O0+=8)$<<=1,$|=i0>>O0+Y$&1;for(var O0=0;O0<=24;O0+=8)$<<=1,$|=r0>>O0+Y$&1}for(var O0=0;O0<=24;O0+=8)$<<=1,$|=i0>>O0+Y$&1;for(var Y$=1;Y$<=3;Y$++){for(var O0=0;O0<=24;O0+=8)N<<=1,N|=i0>>O0+Y$&1;for(var O0=0;O0<=24;O0+=8)N<<=1,N|=r0>>O0+Y$&1}for(var O0=0;O0<=24;O0+=8)N<<=1,N|=r0>>O0+Y$&1;$$[Q$+0]=$>>>0,$$[Q$+1]=N>>>0},t0.r28shl=function(r0,i0){return r0<>>28-i0};var m0=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];t0.pc2=function(r0,i0,$$,Q$){for(var $=0,N=0,Y$=m0.length>>>1,O0=0;O0>>m0[O0]&1;for(var O0=Y$;O0>>m0[O0]&1;$$[Q$+0]=$>>>0,$$[Q$+1]=N>>>0},t0.expand=function(r0,i0,$$){var Q$=0,$=0;Q$=(r0&1)<<5|r0>>>27;for(var N=23;N>=15;N-=4)Q$<<=6,Q$|=r0>>>N&63;for(var N=11;N>=3;N-=4)$|=r0>>>N&63,$<<=6;$|=(r0&31)<<1|r0>>>31,i0[$$+0]=Q$>>>0,i0[$$+1]=$>>>0};var a0=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];t0.substitute=function(r0,i0){for(var $$=0,Q$=0;Q$<4;Q$++){var $=r0>>>18-Q$*6&63,N=a0[Q$*64+$];$$<<=4,$$|=N}for(var Q$=0;Q$<4;Q$++){var $=i0>>>18-Q$*6&63,N=a0[256+Q$*64+$];$$<<=4,$$|=N}return $$>>>0};var e0=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];t0.permute=function(r0){for(var i0=0,$$=0;$$>>e0[$$]&1;return i0>>>0},t0.padSplit=function(r0,i0,$$){for(var Q$=r0.toString(2);Q$.length0;Q$--)i0+=this._buffer(r0,i0),$$+=this._flushBuffer($,$$);return i0+=this._buffer(r0,i0),$},e0.prototype.final=function(r0){var i0;r0&&(i0=this.update(r0));var $$;return this.type==="encrypt"?$$=this._finalEncrypt():$$=this._finalDecrypt(),i0?i0.concat($$):$$},e0.prototype._pad=function(r0,i0){if(i0===0)return!1;for(;i0>>1];O0=r0.r28shl(O0,V$),Z$=r0.r28shl(Z$,V$),r0.pc2(O0,Z$,N.keys,G$)}},Q$.prototype._update=function(N,Y$,O0,Z$){var G$=this._desState,V$=r0.readUInt32BE(N,Y$),U$=r0.readUInt32BE(N,Y$+4);r0.ip(V$,U$,G$.tmp,0),V$=G$.tmp[0],U$=G$.tmp[1],this.type==="encrypt"?this._encrypt(G$,V$,U$,G$.tmp,0):this._decrypt(G$,V$,U$,G$.tmp,0),V$=G$.tmp[0],U$=G$.tmp[1],r0.writeUInt32BE(O0,V$,Z$),r0.writeUInt32BE(O0,U$,Z$+4)},Q$.prototype._pad=function(N,Y$){for(var O0=N.length-Y$,Z$=Y$;Z$>>0,V$=O$}r0.rip(U$,V$,Z$,G$)},Q$.prototype._decrypt=function(N,Y$,O0,Z$,G$){for(var V$=O0,U$=Y$,X$=N.keys.length-2;X$>=0;X$-=2){var K$=N.keys[X$],I$=N.keys[X$+1];r0.expand(V$,N.tmp,0),K$^=N.tmp[0],I$^=N.tmp[1];var Q=r0.substitute(K$,I$),x=r0.permute(Q),O$=V$;V$=(U$^x)>>>0,U$=O$}r0.rip(V$,U$,Z$,G$)}}}),VY=pQ({"node_modules/des.js/lib/des/cbc.js"(t0){var m0=v0(),a0=dQ(),e0={};function r0($$){m0.equal($$.length,8,"Invalid IV length"),this.iv=new Array(8);for(var Q$=0;Q$>$%8,r0._prev=e0(r0._prev,$$?O0:Z$);return Y$}function e0(r0,i0){var $$=r0.length,Q$=-1,$=m0.allocUnsafe(r0.length);for(r0=m0.concat([r0,m0.from([i0])]);++Q$<$$;)$[Q$]=r0[Q$]<<1|r0[Q$+1]>>7;return $}t0.encrypt=function(r0,i0,$$){for(var Q$=i0.length,$=m0.allocUnsafe(Q$),N=-1;++N>>24]^U$[Q>>>16&255]^X$[x>>>8&255]^K$[O$&255]^Y$[H$++],J$=V$[Q>>>24]^U$[x>>>16&255]^X$[O$>>>8&255]^K$[I$&255]^Y$[H$++],F$=V$[x>>>24]^U$[O$>>>16&255]^X$[I$>>>8&255]^K$[Q&255]^Y$[H$++],A$=V$[O$>>>24]^U$[I$>>>16&255]^X$[Q>>>8&255]^K$[x&255]^Y$[H$++],I$=J0,Q=J$,x=F$,O$=A$;return J0=(Z$[I$>>>24]<<24|Z$[Q>>>16&255]<<16|Z$[x>>>8&255]<<8|Z$[O$&255])^Y$[H$++],J$=(Z$[Q>>>24]<<24|Z$[x>>>16&255]<<16|Z$[O$>>>8&255]<<8|Z$[I$&255])^Y$[H$++],F$=(Z$[x>>>24]<<24|Z$[O$>>>16&255]<<16|Z$[I$>>>8&255]<<8|Z$[Q&255])^Y$[H$++],A$=(Z$[O$>>>24]<<24|Z$[I$>>>16&255]<<16|Z$[Q>>>8&255]<<8|Z$[x&255])^Y$[H$++],J0=J0>>>0,J$=J$>>>0,F$=F$>>>0,A$=A$>>>0,[J0,J$,F$,A$]}var $$=[0,1,2,4,8,16,32,64,128,27,54],Q$=function(){for(var N=new Array(256),Y$=0;Y$<256;Y$++)Y$<128?N[Y$]=Y$<<1:N[Y$]=Y$<<1^283;for(var O0=[],Z$=[],G$=[[],[],[],[]],V$=[[],[],[],[]],U$=0,X$=0,K$=0;K$<256;++K$){var I$=X$^X$<<1^X$<<2^X$<<3^X$<<4;I$=I$>>>8^I$&255^99,O0[U$]=I$,Z$[I$]=U$;var Q=N[U$],x=N[Q],O$=N[x],J0=N[I$]*257^I$*16843008;G$[0][U$]=J0<<24|J0>>>8,G$[1][U$]=J0<<16|J0>>>16,G$[2][U$]=J0<<8|J0>>>24,G$[3][U$]=J0,J0=O$*16843009^x*65537^Q*257^U$*16843008,V$[0][I$]=J0<<24|J0>>>8,V$[1][I$]=J0<<16|J0>>>16,V$[2][I$]=J0<<8|J0>>>24,V$[3][I$]=J0,U$===0?U$=X$=1:(U$=Q^N[N[N[O$^Q]]],X$^=N[N[X$]])}return{SBOX:O0,INV_SBOX:Z$,SUB_MIX:G$,INV_SUB_MIX:V$}}();function $(N){this._key=e0(N),this._reset()}$.blockSize=16,$.keySize=32,$.prototype.blockSize=$.blockSize,$.prototype.keySize=$.keySize,$.prototype._reset=function(){for(var N=this._key,Y$=N.length,O0=Y$+6,Z$=(O0+1)*4,G$=[],V$=0;V$>>24,U$=Q$.SBOX[U$>>>24]<<24|Q$.SBOX[U$>>>16&255]<<16|Q$.SBOX[U$>>>8&255]<<8|Q$.SBOX[U$&255],U$^=$$[V$/Y$|0]<<24):Y$>6&&V$%Y$===4&&(U$=Q$.SBOX[U$>>>24]<<24|Q$.SBOX[U$>>>16&255]<<16|Q$.SBOX[U$>>>8&255]<<8|Q$.SBOX[U$&255]),G$[V$]=G$[V$-Y$]^U$}for(var X$=[],K$=0;K$>>24]]^Q$.INV_SUB_MIX[1][Q$.SBOX[Q>>>16&255]]^Q$.INV_SUB_MIX[2][Q$.SBOX[Q>>>8&255]]^Q$.INV_SUB_MIX[3][Q$.SBOX[Q&255]]}this._nRounds=O0,this._keySchedule=G$,this._invKeySchedule=X$},$.prototype.encryptBlockRaw=function(N){return N=e0(N),i0(N,this._keySchedule,Q$.SUB_MIX,Q$.SBOX,this._nRounds)},$.prototype.encryptBlock=function(N){var Y$=this.encryptBlockRaw(N),O0=a0.allocUnsafe(16);return O0.writeUInt32BE(Y$[0],0),O0.writeUInt32BE(Y$[1],4),O0.writeUInt32BE(Y$[2],8),O0.writeUInt32BE(Y$[3],12),O0},$.prototype.decryptBlock=function(N){N=e0(N);var Y$=N[1];N[1]=N[3],N[3]=Y$;var O0=i0(N,this._invKeySchedule,Q$.INV_SUB_MIX,Q$.INV_SBOX,this._nRounds),Z$=a0.allocUnsafe(16);return Z$.writeUInt32BE(O0[0],0),Z$.writeUInt32BE(O0[3],4),Z$.writeUInt32BE(O0[2],8),Z$.writeUInt32BE(O0[1],12),Z$},$.prototype.scrub=function(){r0(this._keySchedule),r0(this._invKeySchedule),r0(this._key)},m0.exports.AES=$}}),EY=pQ({"node_modules/browserify-aes/ghash.js"(t0,m0){var a0=cQ().Buffer,e0=a0.alloc(16,0);function r0(Q$){return[Q$.readUInt32BE(0),Q$.readUInt32BE(4),Q$.readUInt32BE(8),Q$.readUInt32BE(12)]}function i0(Q$){var $=a0.allocUnsafe(16);return $.writeUInt32BE(Q$[0]>>>0,0),$.writeUInt32BE(Q$[1]>>>0,4),$.writeUInt32BE(Q$[2]>>>0,8),$.writeUInt32BE(Q$[3]>>>0,12),$}function $$(Q$){this.h=Q$,this.state=a0.alloc(16,0),this.cache=a0.allocUnsafe(0)}$$.prototype.ghash=function(Q$){for(var $=-1;++$0;N--)Q$[N]=Q$[N]>>>1|(Q$[N-1]&1)<<31;Q$[0]=Q$[0]>>>1,O0&&(Q$[0]=Q$[0]^225<<24)}this.state=i0($)},$$.prototype.update=function(Q$){this.cache=a0.concat([this.cache,Q$]);for(var $;this.cache.length>=16;)$=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash($)},$$.prototype.final=function(Q$,$){return this.cache.length&&this.ghash(a0.concat([this.cache,e0],16)),this.ghash(i0([0,Q$,0,$])),this.state},m0.exports=$$}}),E=pQ({"node_modules/browserify-aes/authCipher.js"(t0,m0){var a0=WY(),e0=cQ().Buffer,r0=A(),i0=dQ(),$$=EY(),Q$=W(),$=FY();function N(Z$,G$){var V$=0;Z$.length!==G$.length&&V$++;for(var U$=Math.min(Z$.length,G$.length),X$=0;X$0||$>0;){var G$=new e0;G$.update(Z$),G$.update(i0),$$&&G$.update($$),Z$=G$.digest();var V$=0;if(N>0){var U$=Y$.length-N;V$=Math.min(N,Z$.length),Z$.copy(Y$,U$,0,V$),N-=V$}if(V$0){var X$=O0.length-$,K$=Math.min($,Z$.length-V$);Z$.copy(O0,X$,V$,V$+K$),$-=K$}}return Z$.fill(0),{key:Y$,iv:O0}}m0.exports=r0}}),g0=pQ({"node_modules/browserify-aes/encrypter.js"(t0){var m0=HY(),a0=E(),e0=cQ().Buffer,r0=s(),i0=A(),$$=WY(),Q$=k0(),$=dQ();function N(V$,U$,X$){i0.call(this),this._cache=new O0,this._cipher=new $$.AES(U$),this._prev=e0.from(X$),this._mode=V$,this._autopadding=!0}$(N,i0),N.prototype._update=function(V$){this._cache.add(V$);for(var U$,X$,K$=[];U$=this._cache.get();)X$=this._mode.encrypt(this,U$),K$.push(X$);return e0.concat(K$)};var Y$=e0.alloc(16,16);N.prototype._final=function(){var V$=this._cache.flush();if(this._autopadding)return V$=this._mode.encrypt(this,V$),this._cipher.scrub(),V$;if(!V$.equals(Y$))throw this._cipher.scrub(),new Error("data not multiple of block length")},N.prototype.setAutoPadding=function(V$){return this._autopadding=!!V$,this};function O0(){this.cache=e0.allocUnsafe(0)}O0.prototype.add=function(V$){this.cache=e0.concat([this.cache,V$])},O0.prototype.get=function(){if(this.cache.length>15){var V$=this.cache.slice(0,16);return this.cache=this.cache.slice(16),V$}return null},O0.prototype.flush=function(){for(var V$=16-this.cache.length,U$=e0.allocUnsafe(V$),X$=-1;++X$16)return U$=this.cache.slice(0,16),this.cache=this.cache.slice(16),U$}else if(this.cache.length>=16)return U$=this.cache.slice(0,16),this.cache=this.cache.slice(16),U$;return null},Y$.prototype.flush=function(){if(this.cache.length)return this.cache};function O0(V$){var U$=V$[15];if(U$<1||U$>16)throw new Error("unable to decrypt data");for(var X$=-1;++X$0?E$:T$},$$.min=function(E$,T$){return E$.cmp(T$)<0?E$:T$},$$.prototype._init=function(E$,T$,Y){if(typeof E$=="number")return this._initNumber(E$,T$,Y);if(typeof E$=="object")return this._initArray(E$,T$,Y);T$==="hex"&&(T$=16),r0(T$===(T$|0)&&T$>=2&&T$<=36),E$=E$.toString().replace(/\s+/g,"");var f=0;E$[0]==="-"&&(f++,this.negative=1),f=0;f-=3)F0=E$[f]|E$[f-1]<<8|E$[f-2]<<16,this.words[D$]|=F0<>>26-C$&67108863,C$+=24,C$>=26&&(C$-=26,D$++);else if(Y==="le")for(f=0,D$=0;f>>26-C$&67108863,C$+=24,C$>=26&&(C$-=26,D$++);return this.strip()};function $(E$,T$){var Y=E$.charCodeAt(T$);return Y>=65&&Y<=70?Y-55:Y>=97&&Y<=102?Y-87:Y-48&15}function N(E$,T$,Y){var f=$(E$,Y);return Y-1>=T$&&(f|=$(E$,Y-1)<<4),f}$$.prototype._parseHex=function(E$,T$,Y){this.length=Math.ceil((E$.length-T$)/6),this.words=new Array(this.length);for(var f=0;f=T$;f-=2)C$=N(E$,T$,f)<=18?(D$-=18,F0+=1,this.words[F0]|=C$>>>26):D$+=8;else{var L$=E$.length-T$;for(f=L$%2===0?T$+1:T$;f=18?(D$-=18,F0+=1,this.words[F0]|=C$>>>26):D$+=8}this.strip()};function Y$(E$,T$,Y,f){for(var D$=0,F0=Math.min(E$.length,Y),C$=T$;C$=49?D$+=L$-49+10:L$>=17?D$+=L$-17+10:D$+=L$}return D$}$$.prototype._parseBase=function(E$,T$,Y){this.words=[0],this.length=1;for(var f=0,D$=1;D$<=67108863;D$*=T$)f++;f--,D$=D$/T$|0;for(var F0=E$.length-Y,C$=F0%f,L$=Math.min(F0,F0-C$)+Y,R$=0,P$=Y;P$1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},$$.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},$$.prototype.inspect=function(){return(this.red?""};var O0=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],Z$=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],G$=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];$$.prototype.toString=function(E$,T$){E$=E$||10,T$=T$|0||1;var Y;if(E$===16||E$==="hex"){Y="";for(var f=0,D$=0,F0=0;F0>>24-f&16777215,D$!==0||F0!==this.length-1?Y=O0[6-L$.length]+L$+Y:Y=L$+Y,f+=2,f>=26&&(f-=26,F0--)}for(D$!==0&&(Y=D$.toString(16)+Y);Y.length%T$!==0;)Y="0"+Y;return this.negative!==0&&(Y="-"+Y),Y}if(E$===(E$|0)&&E$>=2&&E$<=36){var R$=Z$[E$],P$=G$[E$];Y="";var z$=this.clone();for(z$.negative=0;!z$.isZero();){var M$=z$.modn(P$).toString(E$);z$=z$.idivn(P$),z$.isZero()?Y=M$+Y:Y=O0[R$-M$.length]+M$+Y}for(this.isZero()&&(Y="0"+Y);Y.length%T$!==0;)Y="0"+Y;return this.negative!==0&&(Y="-"+Y),Y}r0(!1,"Base should be between 2 and 36")},$$.prototype.toNumber=function(){var E$=this.words[0];return this.length===2?E$+=this.words[1]*67108864:this.length===3&&this.words[2]===1?E$+=4503599627370496+this.words[1]*67108864:this.length>2&&r0(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-E$:E$},$$.prototype.toJSON=function(){return this.toString(16)},$$.prototype.toBuffer=function(E$,T$){return r0(typeof Q$<"u"),this.toArrayLike(Q$,E$,T$)},$$.prototype.toArray=function(E$,T$){return this.toArrayLike(Array,E$,T$)},$$.prototype.toArrayLike=function(E$,T$,Y){var f=this.byteLength(),D$=Y||Math.max(1,f);r0(f<=D$,"byte array longer than desired length"),r0(D$>0,"Requested array length <= 0"),this.strip();var F0=T$==="le",C$=new E$(D$),L$,R$,P$=this.clone();if(F0){for(R$=0;!P$.isZero();R$++)L$=P$.andln(255),P$.iushrn(8),C$[R$]=L$;for(;R$=4096&&(Y+=13,T$>>>=13),T$>=64&&(Y+=7,T$>>>=7),T$>=8&&(Y+=4,T$>>>=4),T$>=2&&(Y+=2,T$>>>=2),Y+T$},$$.prototype._zeroBits=function(E$){if(E$===0)return 26;var T$=E$,Y=0;return(T$&8191)===0&&(Y+=13,T$>>>=13),(T$&127)===0&&(Y+=7,T$>>>=7),(T$&15)===0&&(Y+=4,T$>>>=4),(T$&3)===0&&(Y+=2,T$>>>=2),(T$&1)===0&&Y++,Y},$$.prototype.bitLength=function(){var E$=this.words[this.length-1],T$=this._countBits(E$);return(this.length-1)*26+T$};function V$(E$){for(var T$=new Array(E$.bitLength()),Y=0;Y>>D$}return T$}$$.prototype.zeroBits=function(){if(this.isZero())return 0;for(var E$=0,T$=0;T$E$.length?this.clone().ior(E$):E$.clone().ior(this)},$$.prototype.uor=function(E$){return this.length>E$.length?this.clone().iuor(E$):E$.clone().iuor(this)},$$.prototype.iuand=function(E$){var T$;this.length>E$.length?T$=E$:T$=this;for(var Y=0;YE$.length?this.clone().iand(E$):E$.clone().iand(this)},$$.prototype.uand=function(E$){return this.length>E$.length?this.clone().iuand(E$):E$.clone().iuand(this)},$$.prototype.iuxor=function(E$){var T$,Y;this.length>E$.length?(T$=this,Y=E$):(T$=E$,Y=this);for(var f=0;fE$.length?this.clone().ixor(E$):E$.clone().ixor(this)},$$.prototype.uxor=function(E$){return this.length>E$.length?this.clone().iuxor(E$):E$.clone().iuxor(this)},$$.prototype.inotn=function(E$){r0(typeof E$=="number"&&E$>=0);var T$=Math.ceil(E$/26)|0,Y=E$%26;this._expand(T$),Y>0&&T$--;for(var f=0;f0&&(this.words[f]=~this.words[f]&67108863>>26-Y),this.strip()},$$.prototype.notn=function(E$){return this.clone().inotn(E$)},$$.prototype.setn=function(E$,T$){r0(typeof E$=="number"&&E$>=0);var Y=E$/26|0,f=E$%26;return this._expand(Y+1),T$?this.words[Y]=this.words[Y]|1<E$.length?(Y=this,f=E$):(Y=E$,f=this);for(var D$=0,F0=0;F0>>26;for(;D$!==0&&F0>>26;if(this.length=Y.length,D$!==0)this.words[this.length]=D$,this.length++;else if(Y!==this)for(;F0E$.length?this.clone().iadd(E$):E$.clone().iadd(this)},$$.prototype.isub=function(E$){if(E$.negative!==0){E$.negative=0;var T$=this.iadd(E$);return E$.negative=1,T$._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(E$),this.negative=1,this._normSign();var Y=this.cmp(E$);if(Y===0)return this.negative=0,this.length=1,this.words[0]=0,this;var f,D$;Y>0?(f=this,D$=E$):(f=E$,D$=this);for(var F0=0,C$=0;C$>26,this.words[C$]=T$&67108863;for(;F0!==0&&C$>26,this.words[C$]=T$&67108863;if(F0===0&&C$>>26,M$=R$&67108863,S$=Math.min(P$,T$.length-1),Z=Math.max(0,P$-E$.length+1);Z<=S$;Z++){var c=P$-Z|0;D$=E$.words[c]|0,F0=T$.words[Z]|0,C$=D$*F0+M$,z$+=C$/67108864|0,M$=C$&67108863}Y.words[P$]=M$|0,R$=z$|0}return R$!==0?Y.words[P$]=R$|0:Y.length--,Y.strip()}var X$=function(E$,T$,Y){var f=E$.words,D$=T$.words,F0=Y.words,C$=0,L$,R$,P$,z$=f[0]|0,M$=z$&8191,S$=z$>>>13,Z=f[1]|0,c=Z&8191,v$=Z>>>13,A0=f[2]|0,q$=A0&8191,j$=A0>>>13,k$=f[3]|0,g$=k$&8191,_$=k$>>>13,N$=f[4]|0,x$=N$&8191,G=N$>>>13,B=f[5]|0,B$=B&8191,H0=B>>>13,y$=f[6]|0,w$=y$&8191,p$=y$>>>13,f$=f[7]|0,c$=f$&8191,h$=f$>>>13,d$=f[8]|0,V=d$&8191,h=d$>>>13,W0=f[9]|0,E0=W0&8191,b$=W0>>>13,l$=D$[0]|0,o$=l$&8191,u$=l$>>>13,n$=D$[1]|0,s$=n$&8191,t$=n$>>>13,U=D$[2]|0,d=U&8191,m$=U>>>13,T0=D$[3]|0,a$=T0&8191,e$=T0>>>13,r$=D$[4]|0,i$=r$&8191,$Q=r$>>>13,QQ=D$[5]|0,YQ=QQ&8191,X=QQ>>>13,b=D$[6]|0,ZQ=b&8191,D0=b>>>13,GQ=D$[7]|0,VQ=GQ&8191,UQ=GQ>>>13,XQ=D$[8]|0,KQ=XQ&8191,IQ=XQ>>>13,OQ=D$[9]|0,K=OQ&8191,l=OQ>>>13;Y.negative=E$.negative^T$.negative,Y.length=19,L$=Math.imul(M$,o$),R$=Math.imul(M$,u$),R$=R$+Math.imul(S$,o$)|0,P$=Math.imul(S$,u$);var JQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(JQ>>>26)|0,JQ&=67108863,L$=Math.imul(c,o$),R$=Math.imul(c,u$),R$=R$+Math.imul(v$,o$)|0,P$=Math.imul(v$,u$),L$=L$+Math.imul(M$,s$)|0,R$=R$+Math.imul(M$,t$)|0,R$=R$+Math.imul(S$,s$)|0,P$=P$+Math.imul(S$,t$)|0;var C0=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(C0>>>26)|0,C0&=67108863,L$=Math.imul(q$,o$),R$=Math.imul(q$,u$),R$=R$+Math.imul(j$,o$)|0,P$=Math.imul(j$,u$),L$=L$+Math.imul(c,s$)|0,R$=R$+Math.imul(c,t$)|0,R$=R$+Math.imul(v$,s$)|0,P$=P$+Math.imul(v$,t$)|0,L$=L$+Math.imul(M$,d)|0,R$=R$+Math.imul(M$,m$)|0,R$=R$+Math.imul(S$,d)|0,P$=P$+Math.imul(S$,m$)|0;var FQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(FQ>>>26)|0,FQ&=67108863,L$=Math.imul(g$,o$),R$=Math.imul(g$,u$),R$=R$+Math.imul(_$,o$)|0,P$=Math.imul(_$,u$),L$=L$+Math.imul(q$,s$)|0,R$=R$+Math.imul(q$,t$)|0,R$=R$+Math.imul(j$,s$)|0,P$=P$+Math.imul(j$,t$)|0,L$=L$+Math.imul(c,d)|0,R$=R$+Math.imul(c,m$)|0,R$=R$+Math.imul(v$,d)|0,P$=P$+Math.imul(v$,m$)|0,L$=L$+Math.imul(M$,a$)|0,R$=R$+Math.imul(M$,e$)|0,R$=R$+Math.imul(S$,a$)|0,P$=P$+Math.imul(S$,e$)|0;var AQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(AQ>>>26)|0,AQ&=67108863,L$=Math.imul(x$,o$),R$=Math.imul(x$,u$),R$=R$+Math.imul(G,o$)|0,P$=Math.imul(G,u$),L$=L$+Math.imul(g$,s$)|0,R$=R$+Math.imul(g$,t$)|0,R$=R$+Math.imul(_$,s$)|0,P$=P$+Math.imul(_$,t$)|0,L$=L$+Math.imul(q$,d)|0,R$=R$+Math.imul(q$,m$)|0,R$=R$+Math.imul(j$,d)|0,P$=P$+Math.imul(j$,m$)|0,L$=L$+Math.imul(c,a$)|0,R$=R$+Math.imul(c,e$)|0,R$=R$+Math.imul(v$,a$)|0,P$=P$+Math.imul(v$,e$)|0,L$=L$+Math.imul(M$,i$)|0,R$=R$+Math.imul(M$,$Q)|0,R$=R$+Math.imul(S$,i$)|0,P$=P$+Math.imul(S$,$Q)|0;var HQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(HQ>>>26)|0,HQ&=67108863,L$=Math.imul(B$,o$),R$=Math.imul(B$,u$),R$=R$+Math.imul(H0,o$)|0,P$=Math.imul(H0,u$),L$=L$+Math.imul(x$,s$)|0,R$=R$+Math.imul(x$,t$)|0,R$=R$+Math.imul(G,s$)|0,P$=P$+Math.imul(G,t$)|0,L$=L$+Math.imul(g$,d)|0,R$=R$+Math.imul(g$,m$)|0,R$=R$+Math.imul(_$,d)|0,P$=P$+Math.imul(_$,m$)|0,L$=L$+Math.imul(q$,a$)|0,R$=R$+Math.imul(q$,e$)|0,R$=R$+Math.imul(j$,a$)|0,P$=P$+Math.imul(j$,e$)|0,L$=L$+Math.imul(c,i$)|0,R$=R$+Math.imul(c,$Q)|0,R$=R$+Math.imul(v$,i$)|0,P$=P$+Math.imul(v$,$Q)|0,L$=L$+Math.imul(M$,YQ)|0,R$=R$+Math.imul(M$,X)|0,R$=R$+Math.imul(S$,YQ)|0,P$=P$+Math.imul(S$,X)|0;var WQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(WQ>>>26)|0,WQ&=67108863,L$=Math.imul(w$,o$),R$=Math.imul(w$,u$),R$=R$+Math.imul(p$,o$)|0,P$=Math.imul(p$,u$),L$=L$+Math.imul(B$,s$)|0,R$=R$+Math.imul(B$,t$)|0,R$=R$+Math.imul(H0,s$)|0,P$=P$+Math.imul(H0,t$)|0,L$=L$+Math.imul(x$,d)|0,R$=R$+Math.imul(x$,m$)|0,R$=R$+Math.imul(G,d)|0,P$=P$+Math.imul(G,m$)|0,L$=L$+Math.imul(g$,a$)|0,R$=R$+Math.imul(g$,e$)|0,R$=R$+Math.imul(_$,a$)|0,P$=P$+Math.imul(_$,e$)|0,L$=L$+Math.imul(q$,i$)|0,R$=R$+Math.imul(q$,$Q)|0,R$=R$+Math.imul(j$,i$)|0,P$=P$+Math.imul(j$,$Q)|0,L$=L$+Math.imul(c,YQ)|0,R$=R$+Math.imul(c,X)|0,R$=R$+Math.imul(v$,YQ)|0,P$=P$+Math.imul(v$,X)|0,L$=L$+Math.imul(M$,ZQ)|0,R$=R$+Math.imul(M$,D0)|0,R$=R$+Math.imul(S$,ZQ)|0,P$=P$+Math.imul(S$,D0)|0;var EQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(EQ>>>26)|0,EQ&=67108863,L$=Math.imul(c$,o$),R$=Math.imul(c$,u$),R$=R$+Math.imul(h$,o$)|0,P$=Math.imul(h$,u$),L$=L$+Math.imul(w$,s$)|0,R$=R$+Math.imul(w$,t$)|0,R$=R$+Math.imul(p$,s$)|0,P$=P$+Math.imul(p$,t$)|0,L$=L$+Math.imul(B$,d)|0,R$=R$+Math.imul(B$,m$)|0,R$=R$+Math.imul(H0,d)|0,P$=P$+Math.imul(H0,m$)|0,L$=L$+Math.imul(x$,a$)|0,R$=R$+Math.imul(x$,e$)|0,R$=R$+Math.imul(G,a$)|0,P$=P$+Math.imul(G,e$)|0,L$=L$+Math.imul(g$,i$)|0,R$=R$+Math.imul(g$,$Q)|0,R$=R$+Math.imul(_$,i$)|0,P$=P$+Math.imul(_$,$Q)|0,L$=L$+Math.imul(q$,YQ)|0,R$=R$+Math.imul(q$,X)|0,R$=R$+Math.imul(j$,YQ)|0,P$=P$+Math.imul(j$,X)|0,L$=L$+Math.imul(c,ZQ)|0,R$=R$+Math.imul(c,D0)|0,R$=R$+Math.imul(v$,ZQ)|0,P$=P$+Math.imul(v$,D0)|0,L$=L$+Math.imul(M$,VQ)|0,R$=R$+Math.imul(M$,UQ)|0,R$=R$+Math.imul(S$,VQ)|0,P$=P$+Math.imul(S$,UQ)|0;var TQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(TQ>>>26)|0,TQ&=67108863,L$=Math.imul(V,o$),R$=Math.imul(V,u$),R$=R$+Math.imul(h,o$)|0,P$=Math.imul(h,u$),L$=L$+Math.imul(c$,s$)|0,R$=R$+Math.imul(c$,t$)|0,R$=R$+Math.imul(h$,s$)|0,P$=P$+Math.imul(h$,t$)|0,L$=L$+Math.imul(w$,d)|0,R$=R$+Math.imul(w$,m$)|0,R$=R$+Math.imul(p$,d)|0,P$=P$+Math.imul(p$,m$)|0,L$=L$+Math.imul(B$,a$)|0,R$=R$+Math.imul(B$,e$)|0,R$=R$+Math.imul(H0,a$)|0,P$=P$+Math.imul(H0,e$)|0,L$=L$+Math.imul(x$,i$)|0,R$=R$+Math.imul(x$,$Q)|0,R$=R$+Math.imul(G,i$)|0,P$=P$+Math.imul(G,$Q)|0,L$=L$+Math.imul(g$,YQ)|0,R$=R$+Math.imul(g$,X)|0,R$=R$+Math.imul(_$,YQ)|0,P$=P$+Math.imul(_$,X)|0,L$=L$+Math.imul(q$,ZQ)|0,R$=R$+Math.imul(q$,D0)|0,R$=R$+Math.imul(j$,ZQ)|0,P$=P$+Math.imul(j$,D0)|0,L$=L$+Math.imul(c,VQ)|0,R$=R$+Math.imul(c,UQ)|0,R$=R$+Math.imul(v$,VQ)|0,P$=P$+Math.imul(v$,UQ)|0,L$=L$+Math.imul(M$,KQ)|0,R$=R$+Math.imul(M$,IQ)|0,R$=R$+Math.imul(S$,KQ)|0,P$=P$+Math.imul(S$,IQ)|0;var DQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(DQ>>>26)|0,DQ&=67108863,L$=Math.imul(E0,o$),R$=Math.imul(E0,u$),R$=R$+Math.imul(b$,o$)|0,P$=Math.imul(b$,u$),L$=L$+Math.imul(V,s$)|0,R$=R$+Math.imul(V,t$)|0,R$=R$+Math.imul(h,s$)|0,P$=P$+Math.imul(h,t$)|0,L$=L$+Math.imul(c$,d)|0,R$=R$+Math.imul(c$,m$)|0,R$=R$+Math.imul(h$,d)|0,P$=P$+Math.imul(h$,m$)|0,L$=L$+Math.imul(w$,a$)|0,R$=R$+Math.imul(w$,e$)|0,R$=R$+Math.imul(p$,a$)|0,P$=P$+Math.imul(p$,e$)|0,L$=L$+Math.imul(B$,i$)|0,R$=R$+Math.imul(B$,$Q)|0,R$=R$+Math.imul(H0,i$)|0,P$=P$+Math.imul(H0,$Q)|0,L$=L$+Math.imul(x$,YQ)|0,R$=R$+Math.imul(x$,X)|0,R$=R$+Math.imul(G,YQ)|0,P$=P$+Math.imul(G,X)|0,L$=L$+Math.imul(g$,ZQ)|0,R$=R$+Math.imul(g$,D0)|0,R$=R$+Math.imul(_$,ZQ)|0,P$=P$+Math.imul(_$,D0)|0,L$=L$+Math.imul(q$,VQ)|0,R$=R$+Math.imul(q$,UQ)|0,R$=R$+Math.imul(j$,VQ)|0,P$=P$+Math.imul(j$,UQ)|0,L$=L$+Math.imul(c,KQ)|0,R$=R$+Math.imul(c,IQ)|0,R$=R$+Math.imul(v$,KQ)|0,P$=P$+Math.imul(v$,IQ)|0,L$=L$+Math.imul(M$,K)|0,R$=R$+Math.imul(M$,l)|0,R$=R$+Math.imul(S$,K)|0,P$=P$+Math.imul(S$,l)|0;var I=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(I>>>26)|0,I&=67108863,L$=Math.imul(E0,s$),R$=Math.imul(E0,t$),R$=R$+Math.imul(b$,s$)|0,P$=Math.imul(b$,t$),L$=L$+Math.imul(V,d)|0,R$=R$+Math.imul(V,m$)|0,R$=R$+Math.imul(h,d)|0,P$=P$+Math.imul(h,m$)|0,L$=L$+Math.imul(c$,a$)|0,R$=R$+Math.imul(c$,e$)|0,R$=R$+Math.imul(h$,a$)|0,P$=P$+Math.imul(h$,e$)|0,L$=L$+Math.imul(w$,i$)|0,R$=R$+Math.imul(w$,$Q)|0,R$=R$+Math.imul(p$,i$)|0,P$=P$+Math.imul(p$,$Q)|0,L$=L$+Math.imul(B$,YQ)|0,R$=R$+Math.imul(B$,X)|0,R$=R$+Math.imul(H0,YQ)|0,P$=P$+Math.imul(H0,X)|0,L$=L$+Math.imul(x$,ZQ)|0,R$=R$+Math.imul(x$,D0)|0,R$=R$+Math.imul(G,ZQ)|0,P$=P$+Math.imul(G,D0)|0,L$=L$+Math.imul(g$,VQ)|0,R$=R$+Math.imul(g$,UQ)|0,R$=R$+Math.imul(_$,VQ)|0,P$=P$+Math.imul(_$,UQ)|0,L$=L$+Math.imul(q$,KQ)|0,R$=R$+Math.imul(q$,IQ)|0,R$=R$+Math.imul(j$,KQ)|0,P$=P$+Math.imul(j$,IQ)|0,L$=L$+Math.imul(c,K)|0,R$=R$+Math.imul(c,l)|0,R$=R$+Math.imul(v$,K)|0,P$=P$+Math.imul(v$,l)|0;var o=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(o>>>26)|0,o&=67108863,L$=Math.imul(E0,d),R$=Math.imul(E0,m$),R$=R$+Math.imul(b$,d)|0,P$=Math.imul(b$,m$),L$=L$+Math.imul(V,a$)|0,R$=R$+Math.imul(V,e$)|0,R$=R$+Math.imul(h,a$)|0,P$=P$+Math.imul(h,e$)|0,L$=L$+Math.imul(c$,i$)|0,R$=R$+Math.imul(c$,$Q)|0,R$=R$+Math.imul(h$,i$)|0,P$=P$+Math.imul(h$,$Q)|0,L$=L$+Math.imul(w$,YQ)|0,R$=R$+Math.imul(w$,X)|0,R$=R$+Math.imul(p$,YQ)|0,P$=P$+Math.imul(p$,X)|0,L$=L$+Math.imul(B$,ZQ)|0,R$=R$+Math.imul(B$,D0)|0,R$=R$+Math.imul(H0,ZQ)|0,P$=P$+Math.imul(H0,D0)|0,L$=L$+Math.imul(x$,VQ)|0,R$=R$+Math.imul(x$,UQ)|0,R$=R$+Math.imul(G,VQ)|0,P$=P$+Math.imul(G,UQ)|0,L$=L$+Math.imul(g$,KQ)|0,R$=R$+Math.imul(g$,IQ)|0,R$=R$+Math.imul(_$,KQ)|0,P$=P$+Math.imul(_$,IQ)|0,L$=L$+Math.imul(q$,K)|0,R$=R$+Math.imul(q$,l)|0,R$=R$+Math.imul(j$,K)|0,P$=P$+Math.imul(j$,l)|0;var CQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(CQ>>>26)|0,CQ&=67108863,L$=Math.imul(E0,a$),R$=Math.imul(E0,e$),R$=R$+Math.imul(b$,a$)|0,P$=Math.imul(b$,e$),L$=L$+Math.imul(V,i$)|0,R$=R$+Math.imul(V,$Q)|0,R$=R$+Math.imul(h,i$)|0,P$=P$+Math.imul(h,$Q)|0,L$=L$+Math.imul(c$,YQ)|0,R$=R$+Math.imul(c$,X)|0,R$=R$+Math.imul(h$,YQ)|0,P$=P$+Math.imul(h$,X)|0,L$=L$+Math.imul(w$,ZQ)|0,R$=R$+Math.imul(w$,D0)|0,R$=R$+Math.imul(p$,ZQ)|0,P$=P$+Math.imul(p$,D0)|0,L$=L$+Math.imul(B$,VQ)|0,R$=R$+Math.imul(B$,UQ)|0,R$=R$+Math.imul(H0,VQ)|0,P$=P$+Math.imul(H0,UQ)|0,L$=L$+Math.imul(x$,KQ)|0,R$=R$+Math.imul(x$,IQ)|0,R$=R$+Math.imul(G,KQ)|0,P$=P$+Math.imul(G,IQ)|0,L$=L$+Math.imul(g$,K)|0,R$=R$+Math.imul(g$,l)|0,R$=R$+Math.imul(_$,K)|0,P$=P$+Math.imul(_$,l)|0;var L0=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(L0>>>26)|0,L0&=67108863,L$=Math.imul(E0,i$),R$=Math.imul(E0,$Q),R$=R$+Math.imul(b$,i$)|0,P$=Math.imul(b$,$Q),L$=L$+Math.imul(V,YQ)|0,R$=R$+Math.imul(V,X)|0,R$=R$+Math.imul(h,YQ)|0,P$=P$+Math.imul(h,X)|0,L$=L$+Math.imul(c$,ZQ)|0,R$=R$+Math.imul(c$,D0)|0,R$=R$+Math.imul(h$,ZQ)|0,P$=P$+Math.imul(h$,D0)|0,L$=L$+Math.imul(w$,VQ)|0,R$=R$+Math.imul(w$,UQ)|0,R$=R$+Math.imul(p$,VQ)|0,P$=P$+Math.imul(p$,UQ)|0,L$=L$+Math.imul(B$,KQ)|0,R$=R$+Math.imul(B$,IQ)|0,R$=R$+Math.imul(H0,KQ)|0,P$=P$+Math.imul(H0,IQ)|0,L$=L$+Math.imul(x$,K)|0,R$=R$+Math.imul(x$,l)|0,R$=R$+Math.imul(G,K)|0,P$=P$+Math.imul(G,l)|0;var LQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(LQ>>>26)|0,LQ&=67108863,L$=Math.imul(E0,YQ),R$=Math.imul(E0,X),R$=R$+Math.imul(b$,YQ)|0,P$=Math.imul(b$,X),L$=L$+Math.imul(V,ZQ)|0,R$=R$+Math.imul(V,D0)|0,R$=R$+Math.imul(h,ZQ)|0,P$=P$+Math.imul(h,D0)|0,L$=L$+Math.imul(c$,VQ)|0,R$=R$+Math.imul(c$,UQ)|0,R$=R$+Math.imul(h$,VQ)|0,P$=P$+Math.imul(h$,UQ)|0,L$=L$+Math.imul(w$,KQ)|0,R$=R$+Math.imul(w$,IQ)|0,R$=R$+Math.imul(p$,KQ)|0,P$=P$+Math.imul(p$,IQ)|0,L$=L$+Math.imul(B$,K)|0,R$=R$+Math.imul(B$,l)|0,R$=R$+Math.imul(H0,K)|0,P$=P$+Math.imul(H0,l)|0;var RQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(RQ>>>26)|0,RQ&=67108863,L$=Math.imul(E0,ZQ),R$=Math.imul(E0,D0),R$=R$+Math.imul(b$,ZQ)|0,P$=Math.imul(b$,D0),L$=L$+Math.imul(V,VQ)|0,R$=R$+Math.imul(V,UQ)|0,R$=R$+Math.imul(h,VQ)|0,P$=P$+Math.imul(h,UQ)|0,L$=L$+Math.imul(c$,KQ)|0,R$=R$+Math.imul(c$,IQ)|0,R$=R$+Math.imul(h$,KQ)|0,P$=P$+Math.imul(h$,IQ)|0,L$=L$+Math.imul(w$,K)|0,R$=R$+Math.imul(w$,l)|0,R$=R$+Math.imul(p$,K)|0,P$=P$+Math.imul(p$,l)|0;var PQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(PQ>>>26)|0,PQ&=67108863,L$=Math.imul(E0,VQ),R$=Math.imul(E0,UQ),R$=R$+Math.imul(b$,VQ)|0,P$=Math.imul(b$,UQ),L$=L$+Math.imul(V,KQ)|0,R$=R$+Math.imul(V,IQ)|0,R$=R$+Math.imul(h,KQ)|0,P$=P$+Math.imul(h,IQ)|0,L$=L$+Math.imul(c$,K)|0,R$=R$+Math.imul(c$,l)|0,R$=R$+Math.imul(h$,K)|0,P$=P$+Math.imul(h$,l)|0;var zQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(zQ>>>26)|0,zQ&=67108863,L$=Math.imul(E0,KQ),R$=Math.imul(E0,IQ),R$=R$+Math.imul(b$,KQ)|0,P$=Math.imul(b$,IQ),L$=L$+Math.imul(V,K)|0,R$=R$+Math.imul(V,l)|0,R$=R$+Math.imul(h,K)|0,P$=P$+Math.imul(h,l)|0;var MQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(MQ>>>26)|0,MQ&=67108863,L$=Math.imul(E0,K),R$=Math.imul(E0,l),R$=R$+Math.imul(b$,K)|0,P$=Math.imul(b$,l);var SQ=(C$+L$|0)+((R$&8191)<<13)|0;return C$=(P$+(R$>>>13)|0)+(SQ>>>26)|0,SQ&=67108863,F0[0]=JQ,F0[1]=C0,F0[2]=FQ,F0[3]=AQ,F0[4]=HQ,F0[5]=WQ,F0[6]=EQ,F0[7]=TQ,F0[8]=DQ,F0[9]=I,F0[10]=o,F0[11]=CQ,F0[12]=L0,F0[13]=LQ,F0[14]=RQ,F0[15]=PQ,F0[16]=zQ,F0[17]=MQ,F0[18]=SQ,C$!==0&&(F0[19]=C$,Y.length++),Y};Math.imul||(X$=U$);function K$(E$,T$,Y){Y.negative=T$.negative^E$.negative,Y.length=E$.length+T$.length;for(var f=0,D$=0,F0=0;F0>>26)|0,D$+=C$>>>26,C$&=67108863}Y.words[F0]=L$,f=C$,C$=D$}return f!==0?Y.words[F0]=f:Y.length--,Y.strip()}function I$(E$,T$,Y){var f=new Q;return f.mulp(E$,T$,Y)}$$.prototype.mulTo=function(E$,T$){var Y,f=this.length+E$.length;return this.length===10&&E$.length===10?Y=X$(this,E$,T$):f<63?Y=U$(this,E$,T$):f<1024?Y=K$(this,E$,T$):Y=I$(this,E$,T$),Y};function Q(E$,T$){this.x=E$,this.y=T$}Q.prototype.makeRBT=function(E$){for(var T$=new Array(E$),Y=$$.prototype._countBits(E$)-1,f=0;f>=1;return f},Q.prototype.permute=function(E$,T$,Y,f,D$,F0){for(var C$=0;C$>>1)D$++;return 1<>>13,Y[2*F0+1]=D$&8191,D$=D$>>>13;for(F0=2*T$;F0>=26,T$+=f/67108864|0,T$+=D$>>>26,this.words[Y]=D$&67108863}return T$!==0&&(this.words[Y]=T$,this.length++),this},$$.prototype.muln=function(E$){return this.clone().imuln(E$)},$$.prototype.sqr=function(){return this.mul(this)},$$.prototype.isqr=function(){return this.imul(this.clone())},$$.prototype.pow=function(E$){var T$=V$(E$);if(T$.length===0)return new $$(1);for(var Y=this,f=0;f=0);var T$=E$%26,Y=(E$-T$)/26,f=67108863>>>26-T$<<26-T$,D$;if(T$!==0){var F0=0;for(D$=0;D$>>26-T$}F0&&(this.words[D$]=F0,this.length++)}if(Y!==0){for(D$=this.length-1;D$>=0;D$--)this.words[D$+Y]=this.words[D$];for(D$=0;D$=0);var f;T$?f=(T$-T$%26)/26:f=0;var D$=E$%26,F0=Math.min((E$-D$)/26,this.length),C$=67108863^67108863>>>D$<F0)for(this.length-=F0,R$=0;R$=0&&(P$!==0||R$>=f);R$--){var z$=this.words[R$]|0;this.words[R$]=P$<<26-D$|z$>>>D$,P$=z$&C$}return L$&&P$!==0&&(L$.words[L$.length++]=P$),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},$$.prototype.ishrn=function(E$,T$,Y){return r0(this.negative===0),this.iushrn(E$,T$,Y)},$$.prototype.shln=function(E$){return this.clone().ishln(E$)},$$.prototype.ushln=function(E$){return this.clone().iushln(E$)},$$.prototype.shrn=function(E$){return this.clone().ishrn(E$)},$$.prototype.ushrn=function(E$){return this.clone().iushrn(E$)},$$.prototype.testn=function(E$){r0(typeof E$=="number"&&E$>=0);var T$=E$%26,Y=(E$-T$)/26,f=1<=0);var T$=E$%26,Y=(E$-T$)/26;if(r0(this.negative===0,"imaskn works only with positive numbers"),this.length<=Y)return this;if(T$!==0&&Y++,this.length=Math.min(Y,this.length),T$!==0){var f=67108863^67108863>>>T$<=67108864;T$++)this.words[T$]-=67108864,T$===this.length-1?this.words[T$+1]=1:this.words[T$+1]++;return this.length=Math.max(this.length,T$+1),this},$$.prototype.isubn=function(E$){if(r0(typeof E$=="number"),r0(E$<67108864),E$<0)return this.iaddn(-E$);if(this.negative!==0)return this.negative=0,this.iaddn(E$),this.negative=1,this;if(this.words[0]-=E$,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var T$=0;T$>26)-(L$/67108864|0),this.words[D$+Y]=F0&67108863}for(;D$>26,this.words[D$+Y]=F0&67108863;if(C$===0)return this.strip();for(r0(C$===-1),C$=0,D$=0;D$>26,this.words[D$]=F0&67108863;return this.negative=1,this.strip()},$$.prototype._wordDiv=function(E$,T$){var Y=this.length-E$.length,f=this.clone(),D$=E$,F0=D$.words[D$.length-1]|0,C$=this._countBits(F0);Y=26-C$,Y!==0&&(D$=D$.ushln(Y),f.iushln(Y),F0=D$.words[D$.length-1]|0);var L$=f.length-D$.length,R$;if(T$!=="mod"){R$=new $$(null),R$.length=L$+1,R$.words=new Array(R$.length);for(var P$=0;P$=0;M$--){var S$=(f.words[D$.length+M$]|0)*67108864+(f.words[D$.length+M$-1]|0);for(S$=Math.min(S$/F0|0,67108863),f._ishlnsubmul(D$,S$,M$);f.negative!==0;)S$--,f.negative=0,f._ishlnsubmul(D$,1,M$),f.isZero()||(f.negative^=1);R$&&(R$.words[M$]=S$)}return R$&&R$.strip(),f.strip(),T$!=="div"&&Y!==0&&f.iushrn(Y),{div:R$||null,mod:f}},$$.prototype.divmod=function(E$,T$,Y){if(r0(!E$.isZero()),this.isZero())return{div:new $$(0),mod:new $$(0)};var f,D$,F0;return this.negative!==0&&E$.negative===0?(F0=this.neg().divmod(E$,T$),T$!=="mod"&&(f=F0.div.neg()),T$!=="div"&&(D$=F0.mod.neg(),Y&&D$.negative!==0&&D$.iadd(E$)),{div:f,mod:D$}):this.negative===0&&E$.negative!==0?(F0=this.divmod(E$.neg(),T$),T$!=="mod"&&(f=F0.div.neg()),{div:f,mod:F0.mod}):(this.negative&E$.negative)!==0?(F0=this.neg().divmod(E$.neg(),T$),T$!=="div"&&(D$=F0.mod.neg(),Y&&D$.negative!==0&&D$.isub(E$)),{div:F0.div,mod:D$}):E$.length>this.length||this.cmp(E$)<0?{div:new $$(0),mod:this}:E$.length===1?T$==="div"?{div:this.divn(E$.words[0]),mod:null}:T$==="mod"?{div:null,mod:new $$(this.modn(E$.words[0]))}:{div:this.divn(E$.words[0]),mod:new $$(this.modn(E$.words[0]))}:this._wordDiv(E$,T$)},$$.prototype.div=function(E$){return this.divmod(E$,"div",!1).div},$$.prototype.mod=function(E$){return this.divmod(E$,"mod",!1).mod},$$.prototype.umod=function(E$){return this.divmod(E$,"mod",!0).mod},$$.prototype.divRound=function(E$){var T$=this.divmod(E$);if(T$.mod.isZero())return T$.div;var Y=T$.div.negative!==0?T$.mod.isub(E$):T$.mod,f=E$.ushrn(1),D$=E$.andln(1),F0=Y.cmp(f);return F0<0||D$===1&&F0===0?T$.div:T$.div.negative!==0?T$.div.isubn(1):T$.div.iaddn(1)},$$.prototype.modn=function(E$){r0(E$<=67108863);for(var T$=(1<<26)%E$,Y=0,f=this.length-1;f>=0;f--)Y=(T$*Y+(this.words[f]|0))%E$;return Y},$$.prototype.idivn=function(E$){r0(E$<=67108863);for(var T$=0,Y=this.length-1;Y>=0;Y--){var f=(this.words[Y]|0)+T$*67108864;this.words[Y]=f/E$|0,T$=f%E$}return this.strip()},$$.prototype.divn=function(E$){return this.clone().idivn(E$)},$$.prototype.egcd=function(E$){r0(E$.negative===0),r0(!E$.isZero());var T$=this,Y=E$.clone();T$.negative!==0?T$=T$.umod(E$):T$=T$.clone();for(var f=new $$(1),D$=new $$(0),F0=new $$(0),C$=new $$(1),L$=0;T$.isEven()&&Y.isEven();)T$.iushrn(1),Y.iushrn(1),++L$;for(var R$=Y.clone(),P$=T$.clone();!T$.isZero();){for(var z$=0,M$=1;(T$.words[0]&M$)===0&&z$<26;++z$,M$<<=1);if(z$>0)for(T$.iushrn(z$);z$-- >0;)(f.isOdd()||D$.isOdd())&&(f.iadd(R$),D$.isub(P$)),f.iushrn(1),D$.iushrn(1);for(var S$=0,Z=1;(Y.words[0]&Z)===0&&S$<26;++S$,Z<<=1);if(S$>0)for(Y.iushrn(S$);S$-- >0;)(F0.isOdd()||C$.isOdd())&&(F0.iadd(R$),C$.isub(P$)),F0.iushrn(1),C$.iushrn(1);T$.cmp(Y)>=0?(T$.isub(Y),f.isub(F0),D$.isub(C$)):(Y.isub(T$),F0.isub(f),C$.isub(D$))}return{a:F0,b:C$,gcd:Y.iushln(L$)}},$$.prototype._invmp=function(E$){r0(E$.negative===0),r0(!E$.isZero());var T$=this,Y=E$.clone();T$.negative!==0?T$=T$.umod(E$):T$=T$.clone();for(var f=new $$(1),D$=new $$(0),F0=Y.clone();T$.cmpn(1)>0&&Y.cmpn(1)>0;){for(var C$=0,L$=1;(T$.words[0]&L$)===0&&C$<26;++C$,L$<<=1);if(C$>0)for(T$.iushrn(C$);C$-- >0;)f.isOdd()&&f.iadd(F0),f.iushrn(1);for(var R$=0,P$=1;(Y.words[0]&P$)===0&&R$<26;++R$,P$<<=1);if(R$>0)for(Y.iushrn(R$);R$-- >0;)D$.isOdd()&&D$.iadd(F0),D$.iushrn(1);T$.cmp(Y)>=0?(T$.isub(Y),f.isub(D$)):(Y.isub(T$),D$.isub(f))}var z$;return T$.cmpn(1)===0?z$=f:z$=D$,z$.cmpn(0)<0&&z$.iadd(E$),z$},$$.prototype.gcd=function(E$){if(this.isZero())return E$.abs();if(E$.isZero())return this.abs();var T$=this.clone(),Y=E$.clone();T$.negative=0,Y.negative=0;for(var f=0;T$.isEven()&&Y.isEven();f++)T$.iushrn(1),Y.iushrn(1);do{for(;T$.isEven();)T$.iushrn(1);for(;Y.isEven();)Y.iushrn(1);var D$=T$.cmp(Y);if(D$<0){var F0=T$;T$=Y,Y=F0}else if(D$===0||Y.cmpn(1)===0)break;T$.isub(Y)}while(!0);return Y.iushln(f)},$$.prototype.invm=function(E$){return this.egcd(E$).a.umod(E$)},$$.prototype.isEven=function(){return(this.words[0]&1)===0},$$.prototype.isOdd=function(){return(this.words[0]&1)===1},$$.prototype.andln=function(E$){return this.words[0]&E$},$$.prototype.bincn=function(E$){r0(typeof E$=="number");var T$=E$%26,Y=(E$-T$)/26,f=1<>>26,C$&=67108863,this.words[F0]=C$}return D$!==0&&(this.words[F0]=D$,this.length++),this},$$.prototype.isZero=function(){return this.length===1&&this.words[0]===0},$$.prototype.cmpn=function(E$){var T$=E$<0;if(this.negative!==0&&!T$)return-1;if(this.negative===0&&T$)return 1;this.strip();var Y;if(this.length>1)Y=1;else{T$&&(E$=-E$),r0(E$<=67108863,"Number is too big");var f=this.words[0]|0;Y=f===E$?0:fE$.length)return 1;if(this.length=0;Y--){var f=this.words[Y]|0,D$=E$.words[Y]|0;if(f!==D$){fD$&&(T$=1);break}}return T$},$$.prototype.gtn=function(E$){return this.cmpn(E$)===1},$$.prototype.gt=function(E$){return this.cmp(E$)===1},$$.prototype.gten=function(E$){return this.cmpn(E$)>=0},$$.prototype.gte=function(E$){return this.cmp(E$)>=0},$$.prototype.ltn=function(E$){return this.cmpn(E$)===-1},$$.prototype.lt=function(E$){return this.cmp(E$)===-1},$$.prototype.lten=function(E$){return this.cmpn(E$)<=0},$$.prototype.lte=function(E$){return this.cmp(E$)<=0},$$.prototype.eqn=function(E$){return this.cmpn(E$)===0},$$.prototype.eq=function(E$){return this.cmp(E$)===0},$$.red=function(E$){return new H$(E$)},$$.prototype.toRed=function(E$){return r0(!this.red,"Already a number in reduction context"),r0(this.negative===0,"red works only with positives"),E$.convertTo(this)._forceRed(E$)},$$.prototype.fromRed=function(){return r0(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},$$.prototype._forceRed=function(E$){return this.red=E$,this},$$.prototype.forceRed=function(E$){return r0(!this.red,"Already a number in reduction context"),this._forceRed(E$)},$$.prototype.redAdd=function(E$){return r0(this.red,"redAdd works only with red numbers"),this.red.add(this,E$)},$$.prototype.redIAdd=function(E$){return r0(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,E$)},$$.prototype.redSub=function(E$){return r0(this.red,"redSub works only with red numbers"),this.red.sub(this,E$)},$$.prototype.redISub=function(E$){return r0(this.red,"redISub works only with red numbers"),this.red.isub(this,E$)},$$.prototype.redShl=function(E$){return r0(this.red,"redShl works only with red numbers"),this.red.shl(this,E$)},$$.prototype.redMul=function(E$){return r0(this.red,"redMul works only with red numbers"),this.red._verify2(this,E$),this.red.mul(this,E$)},$$.prototype.redIMul=function(E$){return r0(this.red,"redMul works only with red numbers"),this.red._verify2(this,E$),this.red.imul(this,E$)},$$.prototype.redSqr=function(){return r0(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},$$.prototype.redISqr=function(){return r0(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},$$.prototype.redSqrt=function(){return r0(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},$$.prototype.redInvm=function(){return r0(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},$$.prototype.redNeg=function(){return r0(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},$$.prototype.redPow=function(E$){return r0(this.red&&!E$.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,E$)};var x={k256:null,p224:null,p192:null,p25519:null};function O$(E$,T$){this.name=E$,this.p=new $$(T$,16),this.n=this.p.bitLength(),this.k=new $$(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}O$.prototype._tmp=function(){var E$=new $$(null);return E$.words=new Array(Math.ceil(this.n/13)),E$},O$.prototype.ireduce=function(E$){var T$=E$,Y;do this.split(T$,this.tmp),T$=this.imulK(T$),T$=T$.iadd(this.tmp),Y=T$.bitLength();while(Y>this.n);var f=Y0?T$.isub(this.p):T$.strip!==void 0?T$.strip():T$._strip(),T$},O$.prototype.split=function(E$,T$){E$.iushrn(this.n,0,T$)},O$.prototype.imulK=function(E$){return E$.imul(this.k)};function J0(){O$.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}i0(J0,O$),J0.prototype.split=function(E$,T$){for(var Y=4194303,f=Math.min(E$.length,9),D$=0;D$>>22,F0=C$}F0>>>=22,E$.words[D$-10]=F0,F0===0&&E$.length>10?E$.length-=10:E$.length-=9},J0.prototype.imulK=function(E$){E$.words[E$.length]=0,E$.words[E$.length+1]=0,E$.length+=2;for(var T$=0,Y=0;Y>>=26,E$.words[Y]=D$,T$=f}return T$!==0&&(E$.words[E$.length++]=T$),E$},$$._prime=function(E$){if(x[E$])return x[E$];var T$;if(E$==="k256")T$=new J0;else if(E$==="p224")T$=new J$;else if(E$==="p192")T$=new F$;else if(E$==="p25519")T$=new A$;else throw new Error("Unknown prime "+E$);return x[E$]=T$,T$};function H$(E$){if(typeof E$=="string"){var T$=$$._prime(E$);this.m=T$.p,this.prime=T$}else r0(E$.gtn(1),"modulus must be greater than 1"),this.m=E$,this.prime=null}H$.prototype._verify1=function(E$){r0(E$.negative===0,"red works only with positives"),r0(E$.red,"red works only with red numbers")},H$.prototype._verify2=function(E$,T$){r0((E$.negative|T$.negative)===0,"red works only with positives"),r0(E$.red&&E$.red===T$.red,"red works only with red numbers")},H$.prototype.imod=function(E$){return this.prime?this.prime.ireduce(E$)._forceRed(this):E$.umod(this.m)._forceRed(this)},H$.prototype.neg=function(E$){return E$.isZero()?E$.clone():this.m.sub(E$)._forceRed(this)},H$.prototype.add=function(E$,T$){this._verify2(E$,T$);var Y=E$.add(T$);return Y.cmp(this.m)>=0&&Y.isub(this.m),Y._forceRed(this)},H$.prototype.iadd=function(E$,T$){this._verify2(E$,T$);var Y=E$.iadd(T$);return Y.cmp(this.m)>=0&&Y.isub(this.m),Y},H$.prototype.sub=function(E$,T$){this._verify2(E$,T$);var Y=E$.sub(T$);return Y.cmpn(0)<0&&Y.iadd(this.m),Y._forceRed(this)},H$.prototype.isub=function(E$,T$){this._verify2(E$,T$);var Y=E$.isub(T$);return Y.cmpn(0)<0&&Y.iadd(this.m),Y},H$.prototype.shl=function(E$,T$){return this._verify1(E$),this.imod(E$.ushln(T$))},H$.prototype.imul=function(E$,T$){return this._verify2(E$,T$),this.imod(E$.imul(T$))},H$.prototype.mul=function(E$,T$){return this._verify2(E$,T$),this.imod(E$.mul(T$))},H$.prototype.isqr=function(E$){return this.imul(E$,E$.clone())},H$.prototype.sqr=function(E$){return this.mul(E$,E$)},H$.prototype.sqrt=function(E$){if(E$.isZero())return E$.clone();var T$=this.m.andln(3);if(r0(T$%2===1),T$===3){var Y=this.m.add(new $$(1)).iushrn(2);return this.pow(E$,Y)}for(var f=this.m.subn(1),D$=0;!f.isZero()&&f.andln(1)===0;)D$++,f.iushrn(1);r0(!f.isZero());var F0=new $$(1).toRed(this),C$=F0.redNeg(),L$=this.m.subn(1).iushrn(1),R$=this.m.bitLength();for(R$=new $$(2*R$*R$).toRed(this);this.pow(R$,L$).cmp(C$)!==0;)R$.redIAdd(C$);for(var P$=this.pow(R$,f),z$=this.pow(E$,f.addn(1).iushrn(1)),M$=this.pow(E$,f),S$=D$;M$.cmp(F0)!==0;){for(var Z=M$,c=0;Z.cmp(F0)!==0;c++)Z=Z.redSqr();r0(c=0;D$--){for(var P$=T$.words[D$],z$=R$-1;z$>=0;z$--){var M$=P$>>z$&1;if(F0!==f[0]&&(F0=this.sqr(F0)),M$===0&&C$===0){L$=0;continue}C$<<=1,C$|=M$,L$++,!(L$!==Y&&(D$!==0||z$!==0))&&(F0=this.mul(F0,f[C$]),L$=0,C$=0)}R$=26}return F0},H$.prototype.convertTo=function(E$){var T$=E$.umod(this.m);return T$===E$?T$.clone():T$},H$.prototype.convertFrom=function(E$){var T$=E$.clone();return T$.red=null,T$},$$.mont=function(E$){return new W$(E$)};function W$(E$){H$.call(this,E$),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new $$(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}i0(W$,H$),W$.prototype.convertTo=function(E$){return this.imod(E$.ushln(this.shift))},W$.prototype.convertFrom=function(E$){var T$=this.imod(E$.mul(this.rinv));return T$.red=null,T$},W$.prototype.imul=function(E$,T$){if(E$.isZero()||T$.isZero())return E$.words[0]=0,E$.length=1,E$;var Y=E$.imul(T$),f=Y.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),D$=Y.isub(f).iushrn(this.shift),F0=D$;return D$.cmp(this.m)>=0?F0=D$.isub(this.m):D$.cmpn(0)<0&&(F0=D$.iadd(this.m)),F0._forceRed(this)},W$.prototype.mul=function(E$,T$){if(E$.isZero()||T$.isZero())return new $$(0)._forceRed(this);var Y=E$.mul(T$),f=Y.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),D$=Y.isub(f).iushrn(this.shift),F0=D$;return D$.cmp(this.m)>=0?F0=D$.isub(this.m):D$.cmpn(0)<0&&(F0=D$.iadd(this.m)),F0._forceRed(this)},W$.prototype.invm=function(E$){var T$=this.imod(E$._invmp(this.m).mul(this.r2));return T$._forceRed(this)}})(typeof m0>"u"||m0,t0)}}),PY=pQ({"node_modules/miller-rabin/node_modules/bn.js/lib/bn.js"(t0,m0){(function(a0,e0){function r0(E$,T$){if(!E$)throw new Error(T$||"Assertion failed")}function i0(E$,T$){E$.super_=T$;var Y=function(){};Y.prototype=T$.prototype,E$.prototype=new Y,E$.prototype.constructor=E$}function $$(E$,T$,Y){if($$.isBN(E$))return E$;this.negative=0,this.words=null,this.length=0,this.red=null,E$!==null&&((T$==="le"||T$==="be")&&(Y=T$,T$=10),this._init(E$||0,T$||10,Y||"be"))}typeof a0=="object"?a0.exports=$$:e0.BN=$$,$$.BN=$$,$$.wordSize=26;var Q$=G0;$$.isBN=function(E$){return E$ instanceof $$?!0:E$!==null&&typeof E$=="object"&&E$.constructor.wordSize===$$.wordSize&&Array.isArray(E$.words)},$$.max=function(E$,T$){return E$.cmp(T$)>0?E$:T$},$$.min=function(E$,T$){return E$.cmp(T$)<0?E$:T$},$$.prototype._init=function(E$,T$,Y){if(typeof E$=="number")return this._initNumber(E$,T$,Y);if(typeof E$=="object")return this._initArray(E$,T$,Y);T$==="hex"&&(T$=16),r0(T$===(T$|0)&&T$>=2&&T$<=36),E$=E$.toString().replace(/\s+/g,"");var f=0;E$[0]==="-"&&(f++,this.negative=1),f=0;f-=3)F0=E$[f]|E$[f-1]<<8|E$[f-2]<<16,this.words[D$]|=F0<>>26-C$&67108863,C$+=24,C$>=26&&(C$-=26,D$++);else if(Y==="le")for(f=0,D$=0;f>>26-C$&67108863,C$+=24,C$>=26&&(C$-=26,D$++);return this.strip()};function $(E$,T$){var Y=E$.charCodeAt(T$);return Y>=65&&Y<=70?Y-55:Y>=97&&Y<=102?Y-87:Y-48&15}function N(E$,T$,Y){var f=$(E$,Y);return Y-1>=T$&&(f|=$(E$,Y-1)<<4),f}$$.prototype._parseHex=function(E$,T$,Y){this.length=Math.ceil((E$.length-T$)/6),this.words=new Array(this.length);for(var f=0;f=T$;f-=2)C$=N(E$,T$,f)<=18?(D$-=18,F0+=1,this.words[F0]|=C$>>>26):D$+=8;else{var L$=E$.length-T$;for(f=L$%2===0?T$+1:T$;f=18?(D$-=18,F0+=1,this.words[F0]|=C$>>>26):D$+=8}this.strip()};function Y$(E$,T$,Y,f){for(var D$=0,F0=Math.min(E$.length,Y),C$=T$;C$=49?D$+=L$-49+10:L$>=17?D$+=L$-17+10:D$+=L$}return D$}$$.prototype._parseBase=function(E$,T$,Y){this.words=[0],this.length=1;for(var f=0,D$=1;D$<=67108863;D$*=T$)f++;f--,D$=D$/T$|0;for(var F0=E$.length-Y,C$=F0%f,L$=Math.min(F0,F0-C$)+Y,R$=0,P$=Y;P$1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},$$.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},$$.prototype.inspect=function(){return(this.red?""};var O0=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],Z$=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],G$=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];$$.prototype.toString=function(E$,T$){E$=E$||10,T$=T$|0||1;var Y;if(E$===16||E$==="hex"){Y="";for(var f=0,D$=0,F0=0;F0>>24-f&16777215,D$!==0||F0!==this.length-1?Y=O0[6-L$.length]+L$+Y:Y=L$+Y,f+=2,f>=26&&(f-=26,F0--)}for(D$!==0&&(Y=D$.toString(16)+Y);Y.length%T$!==0;)Y="0"+Y;return this.negative!==0&&(Y="-"+Y),Y}if(E$===(E$|0)&&E$>=2&&E$<=36){var R$=Z$[E$],P$=G$[E$];Y="";var z$=this.clone();for(z$.negative=0;!z$.isZero();){var M$=z$.modn(P$).toString(E$);z$=z$.idivn(P$),z$.isZero()?Y=M$+Y:Y=O0[R$-M$.length]+M$+Y}for(this.isZero()&&(Y="0"+Y);Y.length%T$!==0;)Y="0"+Y;return this.negative!==0&&(Y="-"+Y),Y}r0(!1,"Base should be between 2 and 36")},$$.prototype.toNumber=function(){var E$=this.words[0];return this.length===2?E$+=this.words[1]*67108864:this.length===3&&this.words[2]===1?E$+=4503599627370496+this.words[1]*67108864:this.length>2&&r0(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-E$:E$},$$.prototype.toJSON=function(){return this.toString(16)},$$.prototype.toBuffer=function(E$,T$){return r0(typeof Q$<"u"),this.toArrayLike(Q$,E$,T$)},$$.prototype.toArray=function(E$,T$){return this.toArrayLike(Array,E$,T$)},$$.prototype.toArrayLike=function(E$,T$,Y){var f=this.byteLength(),D$=Y||Math.max(1,f);r0(f<=D$,"byte array longer than desired length"),r0(D$>0,"Requested array length <= 0"),this.strip();var F0=T$==="le",C$=new E$(D$),L$,R$,P$=this.clone();if(F0){for(R$=0;!P$.isZero();R$++)L$=P$.andln(255),P$.iushrn(8),C$[R$]=L$;for(;R$=4096&&(Y+=13,T$>>>=13),T$>=64&&(Y+=7,T$>>>=7),T$>=8&&(Y+=4,T$>>>=4),T$>=2&&(Y+=2,T$>>>=2),Y+T$},$$.prototype._zeroBits=function(E$){if(E$===0)return 26;var T$=E$,Y=0;return(T$&8191)===0&&(Y+=13,T$>>>=13),(T$&127)===0&&(Y+=7,T$>>>=7),(T$&15)===0&&(Y+=4,T$>>>=4),(T$&3)===0&&(Y+=2,T$>>>=2),(T$&1)===0&&Y++,Y},$$.prototype.bitLength=function(){var E$=this.words[this.length-1],T$=this._countBits(E$);return(this.length-1)*26+T$};function V$(E$){for(var T$=new Array(E$.bitLength()),Y=0;Y>>D$}return T$}$$.prototype.zeroBits=function(){if(this.isZero())return 0;for(var E$=0,T$=0;T$E$.length?this.clone().ior(E$):E$.clone().ior(this)},$$.prototype.uor=function(E$){return this.length>E$.length?this.clone().iuor(E$):E$.clone().iuor(this)},$$.prototype.iuand=function(E$){var T$;this.length>E$.length?T$=E$:T$=this;for(var Y=0;YE$.length?this.clone().iand(E$):E$.clone().iand(this)},$$.prototype.uand=function(E$){return this.length>E$.length?this.clone().iuand(E$):E$.clone().iuand(this)},$$.prototype.iuxor=function(E$){var T$,Y;this.length>E$.length?(T$=this,Y=E$):(T$=E$,Y=this);for(var f=0;fE$.length?this.clone().ixor(E$):E$.clone().ixor(this)},$$.prototype.uxor=function(E$){return this.length>E$.length?this.clone().iuxor(E$):E$.clone().iuxor(this)},$$.prototype.inotn=function(E$){r0(typeof E$=="number"&&E$>=0);var T$=Math.ceil(E$/26)|0,Y=E$%26;this._expand(T$),Y>0&&T$--;for(var f=0;f0&&(this.words[f]=~this.words[f]&67108863>>26-Y),this.strip()},$$.prototype.notn=function(E$){return this.clone().inotn(E$)},$$.prototype.setn=function(E$,T$){r0(typeof E$=="number"&&E$>=0);var Y=E$/26|0,f=E$%26;return this._expand(Y+1),T$?this.words[Y]=this.words[Y]|1<E$.length?(Y=this,f=E$):(Y=E$,f=this);for(var D$=0,F0=0;F0>>26;for(;D$!==0&&F0>>26;if(this.length=Y.length,D$!==0)this.words[this.length]=D$,this.length++;else if(Y!==this)for(;F0E$.length?this.clone().iadd(E$):E$.clone().iadd(this)},$$.prototype.isub=function(E$){if(E$.negative!==0){E$.negative=0;var T$=this.iadd(E$);return E$.negative=1,T$._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(E$),this.negative=1,this._normSign();var Y=this.cmp(E$);if(Y===0)return this.negative=0,this.length=1,this.words[0]=0,this;var f,D$;Y>0?(f=this,D$=E$):(f=E$,D$=this);for(var F0=0,C$=0;C$>26,this.words[C$]=T$&67108863;for(;F0!==0&&C$>26,this.words[C$]=T$&67108863;if(F0===0&&C$>>26,M$=R$&67108863,S$=Math.min(P$,T$.length-1),Z=Math.max(0,P$-E$.length+1);Z<=S$;Z++){var c=P$-Z|0;D$=E$.words[c]|0,F0=T$.words[Z]|0,C$=D$*F0+M$,z$+=C$/67108864|0,M$=C$&67108863}Y.words[P$]=M$|0,R$=z$|0}return R$!==0?Y.words[P$]=R$|0:Y.length--,Y.strip()}var X$=function(E$,T$,Y){var f=E$.words,D$=T$.words,F0=Y.words,C$=0,L$,R$,P$,z$=f[0]|0,M$=z$&8191,S$=z$>>>13,Z=f[1]|0,c=Z&8191,v$=Z>>>13,A0=f[2]|0,q$=A0&8191,j$=A0>>>13,k$=f[3]|0,g$=k$&8191,_$=k$>>>13,N$=f[4]|0,x$=N$&8191,G=N$>>>13,B=f[5]|0,B$=B&8191,H0=B>>>13,y$=f[6]|0,w$=y$&8191,p$=y$>>>13,f$=f[7]|0,c$=f$&8191,h$=f$>>>13,d$=f[8]|0,V=d$&8191,h=d$>>>13,W0=f[9]|0,E0=W0&8191,b$=W0>>>13,l$=D$[0]|0,o$=l$&8191,u$=l$>>>13,n$=D$[1]|0,s$=n$&8191,t$=n$>>>13,U=D$[2]|0,d=U&8191,m$=U>>>13,T0=D$[3]|0,a$=T0&8191,e$=T0>>>13,r$=D$[4]|0,i$=r$&8191,$Q=r$>>>13,QQ=D$[5]|0,YQ=QQ&8191,X=QQ>>>13,b=D$[6]|0,ZQ=b&8191,D0=b>>>13,GQ=D$[7]|0,VQ=GQ&8191,UQ=GQ>>>13,XQ=D$[8]|0,KQ=XQ&8191,IQ=XQ>>>13,OQ=D$[9]|0,K=OQ&8191,l=OQ>>>13;Y.negative=E$.negative^T$.negative,Y.length=19,L$=Math.imul(M$,o$),R$=Math.imul(M$,u$),R$=R$+Math.imul(S$,o$)|0,P$=Math.imul(S$,u$);var JQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(JQ>>>26)|0,JQ&=67108863,L$=Math.imul(c,o$),R$=Math.imul(c,u$),R$=R$+Math.imul(v$,o$)|0,P$=Math.imul(v$,u$),L$=L$+Math.imul(M$,s$)|0,R$=R$+Math.imul(M$,t$)|0,R$=R$+Math.imul(S$,s$)|0,P$=P$+Math.imul(S$,t$)|0;var C0=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(C0>>>26)|0,C0&=67108863,L$=Math.imul(q$,o$),R$=Math.imul(q$,u$),R$=R$+Math.imul(j$,o$)|0,P$=Math.imul(j$,u$),L$=L$+Math.imul(c,s$)|0,R$=R$+Math.imul(c,t$)|0,R$=R$+Math.imul(v$,s$)|0,P$=P$+Math.imul(v$,t$)|0,L$=L$+Math.imul(M$,d)|0,R$=R$+Math.imul(M$,m$)|0,R$=R$+Math.imul(S$,d)|0,P$=P$+Math.imul(S$,m$)|0;var FQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(FQ>>>26)|0,FQ&=67108863,L$=Math.imul(g$,o$),R$=Math.imul(g$,u$),R$=R$+Math.imul(_$,o$)|0,P$=Math.imul(_$,u$),L$=L$+Math.imul(q$,s$)|0,R$=R$+Math.imul(q$,t$)|0,R$=R$+Math.imul(j$,s$)|0,P$=P$+Math.imul(j$,t$)|0,L$=L$+Math.imul(c,d)|0,R$=R$+Math.imul(c,m$)|0,R$=R$+Math.imul(v$,d)|0,P$=P$+Math.imul(v$,m$)|0,L$=L$+Math.imul(M$,a$)|0,R$=R$+Math.imul(M$,e$)|0,R$=R$+Math.imul(S$,a$)|0,P$=P$+Math.imul(S$,e$)|0;var AQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(AQ>>>26)|0,AQ&=67108863,L$=Math.imul(x$,o$),R$=Math.imul(x$,u$),R$=R$+Math.imul(G,o$)|0,P$=Math.imul(G,u$),L$=L$+Math.imul(g$,s$)|0,R$=R$+Math.imul(g$,t$)|0,R$=R$+Math.imul(_$,s$)|0,P$=P$+Math.imul(_$,t$)|0,L$=L$+Math.imul(q$,d)|0,R$=R$+Math.imul(q$,m$)|0,R$=R$+Math.imul(j$,d)|0,P$=P$+Math.imul(j$,m$)|0,L$=L$+Math.imul(c,a$)|0,R$=R$+Math.imul(c,e$)|0,R$=R$+Math.imul(v$,a$)|0,P$=P$+Math.imul(v$,e$)|0,L$=L$+Math.imul(M$,i$)|0,R$=R$+Math.imul(M$,$Q)|0,R$=R$+Math.imul(S$,i$)|0,P$=P$+Math.imul(S$,$Q)|0;var HQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(HQ>>>26)|0,HQ&=67108863,L$=Math.imul(B$,o$),R$=Math.imul(B$,u$),R$=R$+Math.imul(H0,o$)|0,P$=Math.imul(H0,u$),L$=L$+Math.imul(x$,s$)|0,R$=R$+Math.imul(x$,t$)|0,R$=R$+Math.imul(G,s$)|0,P$=P$+Math.imul(G,t$)|0,L$=L$+Math.imul(g$,d)|0,R$=R$+Math.imul(g$,m$)|0,R$=R$+Math.imul(_$,d)|0,P$=P$+Math.imul(_$,m$)|0,L$=L$+Math.imul(q$,a$)|0,R$=R$+Math.imul(q$,e$)|0,R$=R$+Math.imul(j$,a$)|0,P$=P$+Math.imul(j$,e$)|0,L$=L$+Math.imul(c,i$)|0,R$=R$+Math.imul(c,$Q)|0,R$=R$+Math.imul(v$,i$)|0,P$=P$+Math.imul(v$,$Q)|0,L$=L$+Math.imul(M$,YQ)|0,R$=R$+Math.imul(M$,X)|0,R$=R$+Math.imul(S$,YQ)|0,P$=P$+Math.imul(S$,X)|0;var WQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(WQ>>>26)|0,WQ&=67108863,L$=Math.imul(w$,o$),R$=Math.imul(w$,u$),R$=R$+Math.imul(p$,o$)|0,P$=Math.imul(p$,u$),L$=L$+Math.imul(B$,s$)|0,R$=R$+Math.imul(B$,t$)|0,R$=R$+Math.imul(H0,s$)|0,P$=P$+Math.imul(H0,t$)|0,L$=L$+Math.imul(x$,d)|0,R$=R$+Math.imul(x$,m$)|0,R$=R$+Math.imul(G,d)|0,P$=P$+Math.imul(G,m$)|0,L$=L$+Math.imul(g$,a$)|0,R$=R$+Math.imul(g$,e$)|0,R$=R$+Math.imul(_$,a$)|0,P$=P$+Math.imul(_$,e$)|0,L$=L$+Math.imul(q$,i$)|0,R$=R$+Math.imul(q$,$Q)|0,R$=R$+Math.imul(j$,i$)|0,P$=P$+Math.imul(j$,$Q)|0,L$=L$+Math.imul(c,YQ)|0,R$=R$+Math.imul(c,X)|0,R$=R$+Math.imul(v$,YQ)|0,P$=P$+Math.imul(v$,X)|0,L$=L$+Math.imul(M$,ZQ)|0,R$=R$+Math.imul(M$,D0)|0,R$=R$+Math.imul(S$,ZQ)|0,P$=P$+Math.imul(S$,D0)|0;var EQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(EQ>>>26)|0,EQ&=67108863,L$=Math.imul(c$,o$),R$=Math.imul(c$,u$),R$=R$+Math.imul(h$,o$)|0,P$=Math.imul(h$,u$),L$=L$+Math.imul(w$,s$)|0,R$=R$+Math.imul(w$,t$)|0,R$=R$+Math.imul(p$,s$)|0,P$=P$+Math.imul(p$,t$)|0,L$=L$+Math.imul(B$,d)|0,R$=R$+Math.imul(B$,m$)|0,R$=R$+Math.imul(H0,d)|0,P$=P$+Math.imul(H0,m$)|0,L$=L$+Math.imul(x$,a$)|0,R$=R$+Math.imul(x$,e$)|0,R$=R$+Math.imul(G,a$)|0,P$=P$+Math.imul(G,e$)|0,L$=L$+Math.imul(g$,i$)|0,R$=R$+Math.imul(g$,$Q)|0,R$=R$+Math.imul(_$,i$)|0,P$=P$+Math.imul(_$,$Q)|0,L$=L$+Math.imul(q$,YQ)|0,R$=R$+Math.imul(q$,X)|0,R$=R$+Math.imul(j$,YQ)|0,P$=P$+Math.imul(j$,X)|0,L$=L$+Math.imul(c,ZQ)|0,R$=R$+Math.imul(c,D0)|0,R$=R$+Math.imul(v$,ZQ)|0,P$=P$+Math.imul(v$,D0)|0,L$=L$+Math.imul(M$,VQ)|0,R$=R$+Math.imul(M$,UQ)|0,R$=R$+Math.imul(S$,VQ)|0,P$=P$+Math.imul(S$,UQ)|0;var TQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(TQ>>>26)|0,TQ&=67108863,L$=Math.imul(V,o$),R$=Math.imul(V,u$),R$=R$+Math.imul(h,o$)|0,P$=Math.imul(h,u$),L$=L$+Math.imul(c$,s$)|0,R$=R$+Math.imul(c$,t$)|0,R$=R$+Math.imul(h$,s$)|0,P$=P$+Math.imul(h$,t$)|0,L$=L$+Math.imul(w$,d)|0,R$=R$+Math.imul(w$,m$)|0,R$=R$+Math.imul(p$,d)|0,P$=P$+Math.imul(p$,m$)|0,L$=L$+Math.imul(B$,a$)|0,R$=R$+Math.imul(B$,e$)|0,R$=R$+Math.imul(H0,a$)|0,P$=P$+Math.imul(H0,e$)|0,L$=L$+Math.imul(x$,i$)|0,R$=R$+Math.imul(x$,$Q)|0,R$=R$+Math.imul(G,i$)|0,P$=P$+Math.imul(G,$Q)|0,L$=L$+Math.imul(g$,YQ)|0,R$=R$+Math.imul(g$,X)|0,R$=R$+Math.imul(_$,YQ)|0,P$=P$+Math.imul(_$,X)|0,L$=L$+Math.imul(q$,ZQ)|0,R$=R$+Math.imul(q$,D0)|0,R$=R$+Math.imul(j$,ZQ)|0,P$=P$+Math.imul(j$,D0)|0,L$=L$+Math.imul(c,VQ)|0,R$=R$+Math.imul(c,UQ)|0,R$=R$+Math.imul(v$,VQ)|0,P$=P$+Math.imul(v$,UQ)|0,L$=L$+Math.imul(M$,KQ)|0,R$=R$+Math.imul(M$,IQ)|0,R$=R$+Math.imul(S$,KQ)|0,P$=P$+Math.imul(S$,IQ)|0;var DQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(DQ>>>26)|0,DQ&=67108863,L$=Math.imul(E0,o$),R$=Math.imul(E0,u$),R$=R$+Math.imul(b$,o$)|0,P$=Math.imul(b$,u$),L$=L$+Math.imul(V,s$)|0,R$=R$+Math.imul(V,t$)|0,R$=R$+Math.imul(h,s$)|0,P$=P$+Math.imul(h,t$)|0,L$=L$+Math.imul(c$,d)|0,R$=R$+Math.imul(c$,m$)|0,R$=R$+Math.imul(h$,d)|0,P$=P$+Math.imul(h$,m$)|0,L$=L$+Math.imul(w$,a$)|0,R$=R$+Math.imul(w$,e$)|0,R$=R$+Math.imul(p$,a$)|0,P$=P$+Math.imul(p$,e$)|0,L$=L$+Math.imul(B$,i$)|0,R$=R$+Math.imul(B$,$Q)|0,R$=R$+Math.imul(H0,i$)|0,P$=P$+Math.imul(H0,$Q)|0,L$=L$+Math.imul(x$,YQ)|0,R$=R$+Math.imul(x$,X)|0,R$=R$+Math.imul(G,YQ)|0,P$=P$+Math.imul(G,X)|0,L$=L$+Math.imul(g$,ZQ)|0,R$=R$+Math.imul(g$,D0)|0,R$=R$+Math.imul(_$,ZQ)|0,P$=P$+Math.imul(_$,D0)|0,L$=L$+Math.imul(q$,VQ)|0,R$=R$+Math.imul(q$,UQ)|0,R$=R$+Math.imul(j$,VQ)|0,P$=P$+Math.imul(j$,UQ)|0,L$=L$+Math.imul(c,KQ)|0,R$=R$+Math.imul(c,IQ)|0,R$=R$+Math.imul(v$,KQ)|0,P$=P$+Math.imul(v$,IQ)|0,L$=L$+Math.imul(M$,K)|0,R$=R$+Math.imul(M$,l)|0,R$=R$+Math.imul(S$,K)|0,P$=P$+Math.imul(S$,l)|0;var I=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(I>>>26)|0,I&=67108863,L$=Math.imul(E0,s$),R$=Math.imul(E0,t$),R$=R$+Math.imul(b$,s$)|0,P$=Math.imul(b$,t$),L$=L$+Math.imul(V,d)|0,R$=R$+Math.imul(V,m$)|0,R$=R$+Math.imul(h,d)|0,P$=P$+Math.imul(h,m$)|0,L$=L$+Math.imul(c$,a$)|0,R$=R$+Math.imul(c$,e$)|0,R$=R$+Math.imul(h$,a$)|0,P$=P$+Math.imul(h$,e$)|0,L$=L$+Math.imul(w$,i$)|0,R$=R$+Math.imul(w$,$Q)|0,R$=R$+Math.imul(p$,i$)|0,P$=P$+Math.imul(p$,$Q)|0,L$=L$+Math.imul(B$,YQ)|0,R$=R$+Math.imul(B$,X)|0,R$=R$+Math.imul(H0,YQ)|0,P$=P$+Math.imul(H0,X)|0,L$=L$+Math.imul(x$,ZQ)|0,R$=R$+Math.imul(x$,D0)|0,R$=R$+Math.imul(G,ZQ)|0,P$=P$+Math.imul(G,D0)|0,L$=L$+Math.imul(g$,VQ)|0,R$=R$+Math.imul(g$,UQ)|0,R$=R$+Math.imul(_$,VQ)|0,P$=P$+Math.imul(_$,UQ)|0,L$=L$+Math.imul(q$,KQ)|0,R$=R$+Math.imul(q$,IQ)|0,R$=R$+Math.imul(j$,KQ)|0,P$=P$+Math.imul(j$,IQ)|0,L$=L$+Math.imul(c,K)|0,R$=R$+Math.imul(c,l)|0,R$=R$+Math.imul(v$,K)|0,P$=P$+Math.imul(v$,l)|0;var o=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(o>>>26)|0,o&=67108863,L$=Math.imul(E0,d),R$=Math.imul(E0,m$),R$=R$+Math.imul(b$,d)|0,P$=Math.imul(b$,m$),L$=L$+Math.imul(V,a$)|0,R$=R$+Math.imul(V,e$)|0,R$=R$+Math.imul(h,a$)|0,P$=P$+Math.imul(h,e$)|0,L$=L$+Math.imul(c$,i$)|0,R$=R$+Math.imul(c$,$Q)|0,R$=R$+Math.imul(h$,i$)|0,P$=P$+Math.imul(h$,$Q)|0,L$=L$+Math.imul(w$,YQ)|0,R$=R$+Math.imul(w$,X)|0,R$=R$+Math.imul(p$,YQ)|0,P$=P$+Math.imul(p$,X)|0,L$=L$+Math.imul(B$,ZQ)|0,R$=R$+Math.imul(B$,D0)|0,R$=R$+Math.imul(H0,ZQ)|0,P$=P$+Math.imul(H0,D0)|0,L$=L$+Math.imul(x$,VQ)|0,R$=R$+Math.imul(x$,UQ)|0,R$=R$+Math.imul(G,VQ)|0,P$=P$+Math.imul(G,UQ)|0,L$=L$+Math.imul(g$,KQ)|0,R$=R$+Math.imul(g$,IQ)|0,R$=R$+Math.imul(_$,KQ)|0,P$=P$+Math.imul(_$,IQ)|0,L$=L$+Math.imul(q$,K)|0,R$=R$+Math.imul(q$,l)|0,R$=R$+Math.imul(j$,K)|0,P$=P$+Math.imul(j$,l)|0;var CQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(CQ>>>26)|0,CQ&=67108863,L$=Math.imul(E0,a$),R$=Math.imul(E0,e$),R$=R$+Math.imul(b$,a$)|0,P$=Math.imul(b$,e$),L$=L$+Math.imul(V,i$)|0,R$=R$+Math.imul(V,$Q)|0,R$=R$+Math.imul(h,i$)|0,P$=P$+Math.imul(h,$Q)|0,L$=L$+Math.imul(c$,YQ)|0,R$=R$+Math.imul(c$,X)|0,R$=R$+Math.imul(h$,YQ)|0,P$=P$+Math.imul(h$,X)|0,L$=L$+Math.imul(w$,ZQ)|0,R$=R$+Math.imul(w$,D0)|0,R$=R$+Math.imul(p$,ZQ)|0,P$=P$+Math.imul(p$,D0)|0,L$=L$+Math.imul(B$,VQ)|0,R$=R$+Math.imul(B$,UQ)|0,R$=R$+Math.imul(H0,VQ)|0,P$=P$+Math.imul(H0,UQ)|0,L$=L$+Math.imul(x$,KQ)|0,R$=R$+Math.imul(x$,IQ)|0,R$=R$+Math.imul(G,KQ)|0,P$=P$+Math.imul(G,IQ)|0,L$=L$+Math.imul(g$,K)|0,R$=R$+Math.imul(g$,l)|0,R$=R$+Math.imul(_$,K)|0,P$=P$+Math.imul(_$,l)|0;var L0=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(L0>>>26)|0,L0&=67108863,L$=Math.imul(E0,i$),R$=Math.imul(E0,$Q),R$=R$+Math.imul(b$,i$)|0,P$=Math.imul(b$,$Q),L$=L$+Math.imul(V,YQ)|0,R$=R$+Math.imul(V,X)|0,R$=R$+Math.imul(h,YQ)|0,P$=P$+Math.imul(h,X)|0,L$=L$+Math.imul(c$,ZQ)|0,R$=R$+Math.imul(c$,D0)|0,R$=R$+Math.imul(h$,ZQ)|0,P$=P$+Math.imul(h$,D0)|0,L$=L$+Math.imul(w$,VQ)|0,R$=R$+Math.imul(w$,UQ)|0,R$=R$+Math.imul(p$,VQ)|0,P$=P$+Math.imul(p$,UQ)|0,L$=L$+Math.imul(B$,KQ)|0,R$=R$+Math.imul(B$,IQ)|0,R$=R$+Math.imul(H0,KQ)|0,P$=P$+Math.imul(H0,IQ)|0,L$=L$+Math.imul(x$,K)|0,R$=R$+Math.imul(x$,l)|0,R$=R$+Math.imul(G,K)|0,P$=P$+Math.imul(G,l)|0;var LQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(LQ>>>26)|0,LQ&=67108863,L$=Math.imul(E0,YQ),R$=Math.imul(E0,X),R$=R$+Math.imul(b$,YQ)|0,P$=Math.imul(b$,X),L$=L$+Math.imul(V,ZQ)|0,R$=R$+Math.imul(V,D0)|0,R$=R$+Math.imul(h,ZQ)|0,P$=P$+Math.imul(h,D0)|0,L$=L$+Math.imul(c$,VQ)|0,R$=R$+Math.imul(c$,UQ)|0,R$=R$+Math.imul(h$,VQ)|0,P$=P$+Math.imul(h$,UQ)|0,L$=L$+Math.imul(w$,KQ)|0,R$=R$+Math.imul(w$,IQ)|0,R$=R$+Math.imul(p$,KQ)|0,P$=P$+Math.imul(p$,IQ)|0,L$=L$+Math.imul(B$,K)|0,R$=R$+Math.imul(B$,l)|0,R$=R$+Math.imul(H0,K)|0,P$=P$+Math.imul(H0,l)|0;var RQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(RQ>>>26)|0,RQ&=67108863,L$=Math.imul(E0,ZQ),R$=Math.imul(E0,D0),R$=R$+Math.imul(b$,ZQ)|0,P$=Math.imul(b$,D0),L$=L$+Math.imul(V,VQ)|0,R$=R$+Math.imul(V,UQ)|0,R$=R$+Math.imul(h,VQ)|0,P$=P$+Math.imul(h,UQ)|0,L$=L$+Math.imul(c$,KQ)|0,R$=R$+Math.imul(c$,IQ)|0,R$=R$+Math.imul(h$,KQ)|0,P$=P$+Math.imul(h$,IQ)|0,L$=L$+Math.imul(w$,K)|0,R$=R$+Math.imul(w$,l)|0,R$=R$+Math.imul(p$,K)|0,P$=P$+Math.imul(p$,l)|0;var PQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(PQ>>>26)|0,PQ&=67108863,L$=Math.imul(E0,VQ),R$=Math.imul(E0,UQ),R$=R$+Math.imul(b$,VQ)|0,P$=Math.imul(b$,UQ),L$=L$+Math.imul(V,KQ)|0,R$=R$+Math.imul(V,IQ)|0,R$=R$+Math.imul(h,KQ)|0,P$=P$+Math.imul(h,IQ)|0,L$=L$+Math.imul(c$,K)|0,R$=R$+Math.imul(c$,l)|0,R$=R$+Math.imul(h$,K)|0,P$=P$+Math.imul(h$,l)|0;var zQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(zQ>>>26)|0,zQ&=67108863,L$=Math.imul(E0,KQ),R$=Math.imul(E0,IQ),R$=R$+Math.imul(b$,KQ)|0,P$=Math.imul(b$,IQ),L$=L$+Math.imul(V,K)|0,R$=R$+Math.imul(V,l)|0,R$=R$+Math.imul(h,K)|0,P$=P$+Math.imul(h,l)|0;var MQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(MQ>>>26)|0,MQ&=67108863,L$=Math.imul(E0,K),R$=Math.imul(E0,l),R$=R$+Math.imul(b$,K)|0,P$=Math.imul(b$,l);var SQ=(C$+L$|0)+((R$&8191)<<13)|0;return C$=(P$+(R$>>>13)|0)+(SQ>>>26)|0,SQ&=67108863,F0[0]=JQ,F0[1]=C0,F0[2]=FQ,F0[3]=AQ,F0[4]=HQ,F0[5]=WQ,F0[6]=EQ,F0[7]=TQ,F0[8]=DQ,F0[9]=I,F0[10]=o,F0[11]=CQ,F0[12]=L0,F0[13]=LQ,F0[14]=RQ,F0[15]=PQ,F0[16]=zQ,F0[17]=MQ,F0[18]=SQ,C$!==0&&(F0[19]=C$,Y.length++),Y};Math.imul||(X$=U$);function K$(E$,T$,Y){Y.negative=T$.negative^E$.negative,Y.length=E$.length+T$.length;for(var f=0,D$=0,F0=0;F0>>26)|0,D$+=C$>>>26,C$&=67108863}Y.words[F0]=L$,f=C$,C$=D$}return f!==0?Y.words[F0]=f:Y.length--,Y.strip()}function I$(E$,T$,Y){var f=new Q;return f.mulp(E$,T$,Y)}$$.prototype.mulTo=function(E$,T$){var Y,f=this.length+E$.length;return this.length===10&&E$.length===10?Y=X$(this,E$,T$):f<63?Y=U$(this,E$,T$):f<1024?Y=K$(this,E$,T$):Y=I$(this,E$,T$),Y};function Q(E$,T$){this.x=E$,this.y=T$}Q.prototype.makeRBT=function(E$){for(var T$=new Array(E$),Y=$$.prototype._countBits(E$)-1,f=0;f>=1;return f},Q.prototype.permute=function(E$,T$,Y,f,D$,F0){for(var C$=0;C$>>1)D$++;return 1<>>13,Y[2*F0+1]=D$&8191,D$=D$>>>13;for(F0=2*T$;F0>=26,T$+=f/67108864|0,T$+=D$>>>26,this.words[Y]=D$&67108863}return T$!==0&&(this.words[Y]=T$,this.length++),this},$$.prototype.muln=function(E$){return this.clone().imuln(E$)},$$.prototype.sqr=function(){return this.mul(this)},$$.prototype.isqr=function(){return this.imul(this.clone())},$$.prototype.pow=function(E$){var T$=V$(E$);if(T$.length===0)return new $$(1);for(var Y=this,f=0;f=0);var T$=E$%26,Y=(E$-T$)/26,f=67108863>>>26-T$<<26-T$,D$;if(T$!==0){var F0=0;for(D$=0;D$>>26-T$}F0&&(this.words[D$]=F0,this.length++)}if(Y!==0){for(D$=this.length-1;D$>=0;D$--)this.words[D$+Y]=this.words[D$];for(D$=0;D$=0);var f;T$?f=(T$-T$%26)/26:f=0;var D$=E$%26,F0=Math.min((E$-D$)/26,this.length),C$=67108863^67108863>>>D$<F0)for(this.length-=F0,R$=0;R$=0&&(P$!==0||R$>=f);R$--){var z$=this.words[R$]|0;this.words[R$]=P$<<26-D$|z$>>>D$,P$=z$&C$}return L$&&P$!==0&&(L$.words[L$.length++]=P$),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},$$.prototype.ishrn=function(E$,T$,Y){return r0(this.negative===0),this.iushrn(E$,T$,Y)},$$.prototype.shln=function(E$){return this.clone().ishln(E$)},$$.prototype.ushln=function(E$){return this.clone().iushln(E$)},$$.prototype.shrn=function(E$){return this.clone().ishrn(E$)},$$.prototype.ushrn=function(E$){return this.clone().iushrn(E$)},$$.prototype.testn=function(E$){r0(typeof E$=="number"&&E$>=0);var T$=E$%26,Y=(E$-T$)/26,f=1<=0);var T$=E$%26,Y=(E$-T$)/26;if(r0(this.negative===0,"imaskn works only with positive numbers"),this.length<=Y)return this;if(T$!==0&&Y++,this.length=Math.min(Y,this.length),T$!==0){var f=67108863^67108863>>>T$<=67108864;T$++)this.words[T$]-=67108864,T$===this.length-1?this.words[T$+1]=1:this.words[T$+1]++;return this.length=Math.max(this.length,T$+1),this},$$.prototype.isubn=function(E$){if(r0(typeof E$=="number"),r0(E$<67108864),E$<0)return this.iaddn(-E$);if(this.negative!==0)return this.negative=0,this.iaddn(E$),this.negative=1,this;if(this.words[0]-=E$,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var T$=0;T$>26)-(L$/67108864|0),this.words[D$+Y]=F0&67108863}for(;D$>26,this.words[D$+Y]=F0&67108863;if(C$===0)return this.strip();for(r0(C$===-1),C$=0,D$=0;D$>26,this.words[D$]=F0&67108863;return this.negative=1,this.strip()},$$.prototype._wordDiv=function(E$,T$){var Y=this.length-E$.length,f=this.clone(),D$=E$,F0=D$.words[D$.length-1]|0,C$=this._countBits(F0);Y=26-C$,Y!==0&&(D$=D$.ushln(Y),f.iushln(Y),F0=D$.words[D$.length-1]|0);var L$=f.length-D$.length,R$;if(T$!=="mod"){R$=new $$(null),R$.length=L$+1,R$.words=new Array(R$.length);for(var P$=0;P$=0;M$--){var S$=(f.words[D$.length+M$]|0)*67108864+(f.words[D$.length+M$-1]|0);for(S$=Math.min(S$/F0|0,67108863),f._ishlnsubmul(D$,S$,M$);f.negative!==0;)S$--,f.negative=0,f._ishlnsubmul(D$,1,M$),f.isZero()||(f.negative^=1);R$&&(R$.words[M$]=S$)}return R$&&R$.strip(),f.strip(),T$!=="div"&&Y!==0&&f.iushrn(Y),{div:R$||null,mod:f}},$$.prototype.divmod=function(E$,T$,Y){if(r0(!E$.isZero()),this.isZero())return{div:new $$(0),mod:new $$(0)};var f,D$,F0;return this.negative!==0&&E$.negative===0?(F0=this.neg().divmod(E$,T$),T$!=="mod"&&(f=F0.div.neg()),T$!=="div"&&(D$=F0.mod.neg(),Y&&D$.negative!==0&&D$.iadd(E$)),{div:f,mod:D$}):this.negative===0&&E$.negative!==0?(F0=this.divmod(E$.neg(),T$),T$!=="mod"&&(f=F0.div.neg()),{div:f,mod:F0.mod}):(this.negative&E$.negative)!==0?(F0=this.neg().divmod(E$.neg(),T$),T$!=="div"&&(D$=F0.mod.neg(),Y&&D$.negative!==0&&D$.isub(E$)),{div:F0.div,mod:D$}):E$.length>this.length||this.cmp(E$)<0?{div:new $$(0),mod:this}:E$.length===1?T$==="div"?{div:this.divn(E$.words[0]),mod:null}:T$==="mod"?{div:null,mod:new $$(this.modn(E$.words[0]))}:{div:this.divn(E$.words[0]),mod:new $$(this.modn(E$.words[0]))}:this._wordDiv(E$,T$)},$$.prototype.div=function(E$){return this.divmod(E$,"div",!1).div},$$.prototype.mod=function(E$){return this.divmod(E$,"mod",!1).mod},$$.prototype.umod=function(E$){return this.divmod(E$,"mod",!0).mod},$$.prototype.divRound=function(E$){var T$=this.divmod(E$);if(T$.mod.isZero())return T$.div;var Y=T$.div.negative!==0?T$.mod.isub(E$):T$.mod,f=E$.ushrn(1),D$=E$.andln(1),F0=Y.cmp(f);return F0<0||D$===1&&F0===0?T$.div:T$.div.negative!==0?T$.div.isubn(1):T$.div.iaddn(1)},$$.prototype.modn=function(E$){r0(E$<=67108863);for(var T$=(1<<26)%E$,Y=0,f=this.length-1;f>=0;f--)Y=(T$*Y+(this.words[f]|0))%E$;return Y},$$.prototype.idivn=function(E$){r0(E$<=67108863);for(var T$=0,Y=this.length-1;Y>=0;Y--){var f=(this.words[Y]|0)+T$*67108864;this.words[Y]=f/E$|0,T$=f%E$}return this.strip()},$$.prototype.divn=function(E$){return this.clone().idivn(E$)},$$.prototype.egcd=function(E$){r0(E$.negative===0),r0(!E$.isZero());var T$=this,Y=E$.clone();T$.negative!==0?T$=T$.umod(E$):T$=T$.clone();for(var f=new $$(1),D$=new $$(0),F0=new $$(0),C$=new $$(1),L$=0;T$.isEven()&&Y.isEven();)T$.iushrn(1),Y.iushrn(1),++L$;for(var R$=Y.clone(),P$=T$.clone();!T$.isZero();){for(var z$=0,M$=1;(T$.words[0]&M$)===0&&z$<26;++z$,M$<<=1);if(z$>0)for(T$.iushrn(z$);z$-- >0;)(f.isOdd()||D$.isOdd())&&(f.iadd(R$),D$.isub(P$)),f.iushrn(1),D$.iushrn(1);for(var S$=0,Z=1;(Y.words[0]&Z)===0&&S$<26;++S$,Z<<=1);if(S$>0)for(Y.iushrn(S$);S$-- >0;)(F0.isOdd()||C$.isOdd())&&(F0.iadd(R$),C$.isub(P$)),F0.iushrn(1),C$.iushrn(1);T$.cmp(Y)>=0?(T$.isub(Y),f.isub(F0),D$.isub(C$)):(Y.isub(T$),F0.isub(f),C$.isub(D$))}return{a:F0,b:C$,gcd:Y.iushln(L$)}},$$.prototype._invmp=function(E$){r0(E$.negative===0),r0(!E$.isZero());var T$=this,Y=E$.clone();T$.negative!==0?T$=T$.umod(E$):T$=T$.clone();for(var f=new $$(1),D$=new $$(0),F0=Y.clone();T$.cmpn(1)>0&&Y.cmpn(1)>0;){for(var C$=0,L$=1;(T$.words[0]&L$)===0&&C$<26;++C$,L$<<=1);if(C$>0)for(T$.iushrn(C$);C$-- >0;)f.isOdd()&&f.iadd(F0),f.iushrn(1);for(var R$=0,P$=1;(Y.words[0]&P$)===0&&R$<26;++R$,P$<<=1);if(R$>0)for(Y.iushrn(R$);R$-- >0;)D$.isOdd()&&D$.iadd(F0),D$.iushrn(1);T$.cmp(Y)>=0?(T$.isub(Y),f.isub(D$)):(Y.isub(T$),D$.isub(f))}var z$;return T$.cmpn(1)===0?z$=f:z$=D$,z$.cmpn(0)<0&&z$.iadd(E$),z$},$$.prototype.gcd=function(E$){if(this.isZero())return E$.abs();if(E$.isZero())return this.abs();var T$=this.clone(),Y=E$.clone();T$.negative=0,Y.negative=0;for(var f=0;T$.isEven()&&Y.isEven();f++)T$.iushrn(1),Y.iushrn(1);do{for(;T$.isEven();)T$.iushrn(1);for(;Y.isEven();)Y.iushrn(1);var D$=T$.cmp(Y);if(D$<0){var F0=T$;T$=Y,Y=F0}else if(D$===0||Y.cmpn(1)===0)break;T$.isub(Y)}while(!0);return Y.iushln(f)},$$.prototype.invm=function(E$){return this.egcd(E$).a.umod(E$)},$$.prototype.isEven=function(){return(this.words[0]&1)===0},$$.prototype.isOdd=function(){return(this.words[0]&1)===1},$$.prototype.andln=function(E$){return this.words[0]&E$},$$.prototype.bincn=function(E$){r0(typeof E$=="number");var T$=E$%26,Y=(E$-T$)/26,f=1<>>26,C$&=67108863,this.words[F0]=C$}return D$!==0&&(this.words[F0]=D$,this.length++),this},$$.prototype.isZero=function(){return this.length===1&&this.words[0]===0},$$.prototype.cmpn=function(E$){var T$=E$<0;if(this.negative!==0&&!T$)return-1;if(this.negative===0&&T$)return 1;this.strip();var Y;if(this.length>1)Y=1;else{T$&&(E$=-E$),r0(E$<=67108863,"Number is too big");var f=this.words[0]|0;Y=f===E$?0:fE$.length)return 1;if(this.length=0;Y--){var f=this.words[Y]|0,D$=E$.words[Y]|0;if(f!==D$){fD$&&(T$=1);break}}return T$},$$.prototype.gtn=function(E$){return this.cmpn(E$)===1},$$.prototype.gt=function(E$){return this.cmp(E$)===1},$$.prototype.gten=function(E$){return this.cmpn(E$)>=0},$$.prototype.gte=function(E$){return this.cmp(E$)>=0},$$.prototype.ltn=function(E$){return this.cmpn(E$)===-1},$$.prototype.lt=function(E$){return this.cmp(E$)===-1},$$.prototype.lten=function(E$){return this.cmpn(E$)<=0},$$.prototype.lte=function(E$){return this.cmp(E$)<=0},$$.prototype.eqn=function(E$){return this.cmpn(E$)===0},$$.prototype.eq=function(E$){return this.cmp(E$)===0},$$.red=function(E$){return new H$(E$)},$$.prototype.toRed=function(E$){return r0(!this.red,"Already a number in reduction context"),r0(this.negative===0,"red works only with positives"),E$.convertTo(this)._forceRed(E$)},$$.prototype.fromRed=function(){return r0(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},$$.prototype._forceRed=function(E$){return this.red=E$,this},$$.prototype.forceRed=function(E$){return r0(!this.red,"Already a number in reduction context"),this._forceRed(E$)},$$.prototype.redAdd=function(E$){return r0(this.red,"redAdd works only with red numbers"),this.red.add(this,E$)},$$.prototype.redIAdd=function(E$){return r0(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,E$)},$$.prototype.redSub=function(E$){return r0(this.red,"redSub works only with red numbers"),this.red.sub(this,E$)},$$.prototype.redISub=function(E$){return r0(this.red,"redISub works only with red numbers"),this.red.isub(this,E$)},$$.prototype.redShl=function(E$){return r0(this.red,"redShl works only with red numbers"),this.red.shl(this,E$)},$$.prototype.redMul=function(E$){return r0(this.red,"redMul works only with red numbers"),this.red._verify2(this,E$),this.red.mul(this,E$)},$$.prototype.redIMul=function(E$){return r0(this.red,"redMul works only with red numbers"),this.red._verify2(this,E$),this.red.imul(this,E$)},$$.prototype.redSqr=function(){return r0(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},$$.prototype.redISqr=function(){return r0(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},$$.prototype.redSqrt=function(){return r0(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},$$.prototype.redInvm=function(){return r0(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},$$.prototype.redNeg=function(){return r0(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},$$.prototype.redPow=function(E$){return r0(this.red&&!E$.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,E$)};var x={k256:null,p224:null,p192:null,p25519:null};function O$(E$,T$){this.name=E$,this.p=new $$(T$,16),this.n=this.p.bitLength(),this.k=new $$(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}O$.prototype._tmp=function(){var E$=new $$(null);return E$.words=new Array(Math.ceil(this.n/13)),E$},O$.prototype.ireduce=function(E$){var T$=E$,Y;do this.split(T$,this.tmp),T$=this.imulK(T$),T$=T$.iadd(this.tmp),Y=T$.bitLength();while(Y>this.n);var f=Y0?T$.isub(this.p):T$.strip!==void 0?T$.strip():T$._strip(),T$},O$.prototype.split=function(E$,T$){E$.iushrn(this.n,0,T$)},O$.prototype.imulK=function(E$){return E$.imul(this.k)};function J0(){O$.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}i0(J0,O$),J0.prototype.split=function(E$,T$){for(var Y=4194303,f=Math.min(E$.length,9),D$=0;D$>>22,F0=C$}F0>>>=22,E$.words[D$-10]=F0,F0===0&&E$.length>10?E$.length-=10:E$.length-=9},J0.prototype.imulK=function(E$){E$.words[E$.length]=0,E$.words[E$.length+1]=0,E$.length+=2;for(var T$=0,Y=0;Y>>=26,E$.words[Y]=D$,T$=f}return T$!==0&&(E$.words[E$.length++]=T$),E$},$$._prime=function(E$){if(x[E$])return x[E$];var T$;if(E$==="k256")T$=new J0;else if(E$==="p224")T$=new J$;else if(E$==="p192")T$=new F$;else if(E$==="p25519")T$=new A$;else throw new Error("Unknown prime "+E$);return x[E$]=T$,T$};function H$(E$){if(typeof E$=="string"){var T$=$$._prime(E$);this.m=T$.p,this.prime=T$}else r0(E$.gtn(1),"modulus must be greater than 1"),this.m=E$,this.prime=null}H$.prototype._verify1=function(E$){r0(E$.negative===0,"red works only with positives"),r0(E$.red,"red works only with red numbers")},H$.prototype._verify2=function(E$,T$){r0((E$.negative|T$.negative)===0,"red works only with positives"),r0(E$.red&&E$.red===T$.red,"red works only with red numbers")},H$.prototype.imod=function(E$){return this.prime?this.prime.ireduce(E$)._forceRed(this):E$.umod(this.m)._forceRed(this)},H$.prototype.neg=function(E$){return E$.isZero()?E$.clone():this.m.sub(E$)._forceRed(this)},H$.prototype.add=function(E$,T$){this._verify2(E$,T$);var Y=E$.add(T$);return Y.cmp(this.m)>=0&&Y.isub(this.m),Y._forceRed(this)},H$.prototype.iadd=function(E$,T$){this._verify2(E$,T$);var Y=E$.iadd(T$);return Y.cmp(this.m)>=0&&Y.isub(this.m),Y},H$.prototype.sub=function(E$,T$){this._verify2(E$,T$);var Y=E$.sub(T$);return Y.cmpn(0)<0&&Y.iadd(this.m),Y._forceRed(this)},H$.prototype.isub=function(E$,T$){this._verify2(E$,T$);var Y=E$.isub(T$);return Y.cmpn(0)<0&&Y.iadd(this.m),Y},H$.prototype.shl=function(E$,T$){return this._verify1(E$),this.imod(E$.ushln(T$))},H$.prototype.imul=function(E$,T$){return this._verify2(E$,T$),this.imod(E$.imul(T$))},H$.prototype.mul=function(E$,T$){return this._verify2(E$,T$),this.imod(E$.mul(T$))},H$.prototype.isqr=function(E$){return this.imul(E$,E$.clone())},H$.prototype.sqr=function(E$){return this.mul(E$,E$)},H$.prototype.sqrt=function(E$){if(E$.isZero())return E$.clone();var T$=this.m.andln(3);if(r0(T$%2===1),T$===3){var Y=this.m.add(new $$(1)).iushrn(2);return this.pow(E$,Y)}for(var f=this.m.subn(1),D$=0;!f.isZero()&&f.andln(1)===0;)D$++,f.iushrn(1);r0(!f.isZero());var F0=new $$(1).toRed(this),C$=F0.redNeg(),L$=this.m.subn(1).iushrn(1),R$=this.m.bitLength();for(R$=new $$(2*R$*R$).toRed(this);this.pow(R$,L$).cmp(C$)!==0;)R$.redIAdd(C$);for(var P$=this.pow(R$,f),z$=this.pow(E$,f.addn(1).iushrn(1)),M$=this.pow(E$,f),S$=D$;M$.cmp(F0)!==0;){for(var Z=M$,c=0;Z.cmp(F0)!==0;c++)Z=Z.redSqr();r0(c=0;D$--){for(var P$=T$.words[D$],z$=R$-1;z$>=0;z$--){var M$=P$>>z$&1;if(F0!==f[0]&&(F0=this.sqr(F0)),M$===0&&C$===0){L$=0;continue}C$<<=1,C$|=M$,L$++,!(L$!==Y&&(D$!==0||z$!==0))&&(F0=this.mul(F0,f[C$]),L$=0,C$=0)}R$=26}return F0},H$.prototype.convertTo=function(E$){var T$=E$.umod(this.m);return T$===E$?T$.clone():T$},H$.prototype.convertFrom=function(E$){var T$=E$.clone();return T$.red=null,T$},$$.mont=function(E$){return new W$(E$)};function W$(E$){H$.call(this,E$),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new $$(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}i0(W$,H$),W$.prototype.convertTo=function(E$){return this.imod(E$.ushln(this.shift))},W$.prototype.convertFrom=function(E$){var T$=this.imod(E$.mul(this.rinv));return T$.red=null,T$},W$.prototype.imul=function(E$,T$){if(E$.isZero()||T$.isZero())return E$.words[0]=0,E$.length=1,E$;var Y=E$.imul(T$),f=Y.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),D$=Y.isub(f).iushrn(this.shift),F0=D$;return D$.cmp(this.m)>=0?F0=D$.isub(this.m):D$.cmpn(0)<0&&(F0=D$.iadd(this.m)),F0._forceRed(this)},W$.prototype.mul=function(E$,T$){if(E$.isZero()||T$.isZero())return new $$(0)._forceRed(this);var Y=E$.mul(T$),f=Y.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),D$=Y.isub(f).iushrn(this.shift),F0=D$;return D$.cmp(this.m)>=0?F0=D$.isub(this.m):D$.cmpn(0)<0&&(F0=D$.iadd(this.m)),F0._forceRed(this)},W$.prototype.invm=function(E$){var T$=this.imod(E$._invmp(this.m).mul(this.r2));return T$._forceRed(this)}})(typeof m0>"u"||m0,t0)}}),zY=pQ({"(disabled):node_modules/crypto-browserify/index.js"(){}}),T=pQ({"node_modules/brorand/index.js"(t0,m0){var a0;m0.exports=function(r0){return a0||(a0=new e0(null)),a0.generate(r0)};function e0(r0){this.rand=r0}m0.exports.Rand=e0,e0.prototype.generate=function(r0){return this._rand(r0)},e0.prototype._rand=function(r0){var i0=new G0(r0);return qQ.getRandomValues(i0),i0}}}),t=pQ({"node_modules/miller-rabin/lib/mr.js"(t0,m0){var a0=PY(),e0=T();function r0(i0){this.rand=i0||new e0.Rand}m0.exports=r0,r0.create=function(i0){return new r0(i0)},r0.prototype._randbelow=function(i0){var $$=i0.bitLength(),Q$=Math.ceil($$/8);do var $=new a0(this.rand.generate(Q$));while($.cmp(i0)>=0);return $},r0.prototype._randrange=function(i0,$$){var Q$=$$.sub(i0);return i0.add(this._randbelow(Q$))},r0.prototype.test=function(i0,$$,Q$){var $=i0.bitLength(),N=a0.mont(i0),Y$=new a0(1).toRed(N);$$||($$=Math.max(1,$/48|0));for(var O0=i0.subn(1),Z$=0;!O0.testn(Z$);Z$++);for(var G$=i0.shrn(Z$),V$=O0.toRed(N),U$=!0;$$>0;$$--){var X$=this._randrange(new a0(2),O0);Q$&&Q$(X$);var K$=X$.toRed(N).redPow(G$);if(!(K$.cmp(Y$)===0||K$.cmp(V$)===0)){for(var I$=1;I$0;$$--){var V$=this._randrange(new a0(2),Y$),U$=i0.gcd(V$);if(U$.cmpn(1)!==0)return U$;var X$=V$.toRed($).redPow(Z$);if(!(X$.cmp(N)===0||X$.cmp(G$)===0)){for(var K$=1;K$J$;)A$.ishrn(1);if(A$.isEven()&&A$.iadd(Q$),A$.testn(1)||A$.iadd($),F$.cmp($)){if(!F$.cmp(N))for(;A$.mod(Z$).cmp(G$);)A$.iadd(X$)}else for(;A$.mod(r0).cmp(U$);)A$.iadd(X$);if(H$=A$.shrn(1),x(H$)&&x(A$)&&O$(H$)&&O$(A$)&&$$.test(H$)&&$$.test(A$))return A$}}}}),N0=pQ({"node_modules/diffie-hellman/lib/primes.json"(t0,m0){m0.exports={modp1:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},modp2:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},modp5:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},modp14:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},modp15:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},modp16:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},modp17:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},modp18:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}}}),MY=pQ({"node_modules/diffie-hellman/lib/dh.js"(t0,m0){var a0=RY(),e0=t(),r0=new e0,i0=new a0(24),$$=new a0(11),Q$=new a0(10),$=new a0(3),N=new a0(7),Y$=_0(),O0=hQ();m0.exports=X$;function Z$(I$,Q){return Q=Q||"utf8",G0.isBuffer(I$)||(I$=new G0(I$,Q)),this._pub=new a0(I$),this}function G$(I$,Q){return Q=Q||"utf8",G0.isBuffer(I$)||(I$=new G0(I$,Q)),this._priv=new a0(I$),this}var V$={};function U$(I$,Q){var x=Q.toString("hex"),O$=[x,I$.toString(16)].join("_");if(O$ in V$)return V$[O$];var J0=0;if(I$.isEven()||!Y$.simpleSieve||!Y$.fermatTest(I$)||!r0.test(I$))return J0+=1,x==="02"||x==="05"?J0+=8:J0+=4,V$[O$]=J0,J0;r0.test(I$.shrn(1))||(J0+=2);var J$;switch(x){case"02":I$.mod(i0).cmp($$)&&(J0+=8);break;case"05":J$=I$.mod(Q$),J$.cmp($)&&J$.cmp(N)&&(J0+=8);break;default:J0+=4}return V$[O$]=J0,J0}function X$(I$,Q,x){this.setGenerator(Q),this.__prime=new a0(I$),this._prime=a0.mont(this.__prime),this._primeLen=I$.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,x?(this.setPublicKey=Z$,this.setPrivateKey=G$):this._primeCode=8}Object.defineProperty(X$.prototype,"verifyError",{enumerable:!0,get:function(){return typeof this._primeCode!="number"&&(this._primeCode=U$(this.__prime,this.__gen)),this._primeCode}}),X$.prototype.generateKeys=function(){return this._priv||(this._priv=new a0(O0(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},X$.prototype.computeSecret=function(I$){I$=new a0(I$),I$=I$.toRed(this._prime);var Q=I$.redPow(this._priv).fromRed(),x=new G0(Q.toArray()),O$=this.getPrime();if(x.length0?f:D$},$$.min=function(f,D$){return f.cmp(D$)<0?f:D$},$$.prototype._init=function(f,D$,F0){if(typeof f=="number")return this._initNumber(f,D$,F0);if(typeof f=="object")return this._initArray(f,D$,F0);D$==="hex"&&(D$=16),r0(D$===(D$|0)&&D$>=2&&D$<=36),f=f.toString().replace(/\s+/g,"");var C$=0;f[0]==="-"&&(C$++,this.negative=1),C$=0;C$-=3)R$=f[C$]|f[C$-1]<<8|f[C$-2]<<16,this.words[L$]|=R$<>>26-P$&67108863,P$+=24,P$>=26&&(P$-=26,L$++);else if(F0==="le")for(C$=0,L$=0;C$>>26-P$&67108863,P$+=24,P$>=26&&(P$-=26,L$++);return this._strip()};function $(f,D$){var F0=f.charCodeAt(D$);if(F0>=48&&F0<=57)return F0-48;if(F0>=65&&F0<=70)return F0-55;if(F0>=97&&F0<=102)return F0-87;r0(!1,"Invalid character in "+f)}function N(f,D$,F0){var C$=$(f,F0);return F0-1>=D$&&(C$|=$(f,F0-1)<<4),C$}$$.prototype._parseHex=function(f,D$,F0){this.length=Math.ceil((f.length-D$)/6),this.words=new Array(this.length);for(var C$=0;C$=D$;C$-=2)P$=N(f,D$,C$)<=18?(L$-=18,R$+=1,this.words[R$]|=P$>>>26):L$+=8;else{var z$=f.length-D$;for(C$=z$%2===0?D$+1:D$;C$=18?(L$-=18,R$+=1,this.words[R$]|=P$>>>26):L$+=8}this._strip()};function Y$(f,D$,F0,C$){for(var L$=0,R$=0,P$=Math.min(f.length,F0),z$=D$;z$=49?R$=M$-49+10:M$>=17?R$=M$-17+10:R$=M$,r0(M$>=0&&R$1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},$$.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{$$.prototype[Symbol.for("nodejs.util.inspect.custom")]=Z$}catch{$$.prototype.inspect=Z$}else $$.prototype.inspect=Z$;function Z$(){return(this.red?""}var G$=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],V$=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],U$=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];$$.prototype.toString=function(f,D$){f=f||10,D$=D$|0||1;var F0;if(f===16||f==="hex"){F0="";for(var C$=0,L$=0,R$=0;R$>>24-C$&16777215,C$+=2,C$>=26&&(C$-=26,R$--),L$!==0||R$!==this.length-1?F0=G$[6-z$.length]+z$+F0:F0=z$+F0}for(L$!==0&&(F0=L$.toString(16)+F0);F0.length%D$!==0;)F0="0"+F0;return this.negative!==0&&(F0="-"+F0),F0}if(f===(f|0)&&f>=2&&f<=36){var M$=V$[f],S$=U$[f];F0="";var Z=this.clone();for(Z.negative=0;!Z.isZero();){var c=Z.modrn(S$).toString(f);Z=Z.idivn(S$),Z.isZero()?F0=c+F0:F0=G$[M$-c.length]+c+F0}for(this.isZero()&&(F0="0"+F0);F0.length%D$!==0;)F0="0"+F0;return this.negative!==0&&(F0="-"+F0),F0}r0(!1,"Base should be between 2 and 36")},$$.prototype.toNumber=function(){var f=this.words[0];return this.length===2?f+=this.words[1]*67108864:this.length===3&&this.words[2]===1?f+=4503599627370496+this.words[1]*67108864:this.length>2&&r0(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-f:f},$$.prototype.toJSON=function(){return this.toString(16,2)},Q$&&($$.prototype.toBuffer=function(f,D$){return this.toArrayLike(Q$,f,D$)}),$$.prototype.toArray=function(f,D$){return this.toArrayLike(Array,f,D$)};var X$=function(f,D$){return f.allocUnsafe?f.allocUnsafe(D$):new f(D$)};$$.prototype.toArrayLike=function(f,D$,F0){this._strip();var C$=this.byteLength(),L$=F0||Math.max(1,C$);r0(C$<=L$,"byte array longer than desired length"),r0(L$>0,"Requested array length <= 0");var R$=X$(f,L$),P$=D$==="le"?"LE":"BE";return this["_toArrayLike"+P$](R$,C$),R$},$$.prototype._toArrayLikeLE=function(f,D$){for(var F0=0,C$=0,L$=0,R$=0;L$>8&255),F0>16&255),R$===6?(F0>24&255),C$=0,R$=0):(C$=P$>>>24,R$+=2)}if(F0=0&&(f[F0--]=P$>>8&255),F0>=0&&(f[F0--]=P$>>16&255),R$===6?(F0>=0&&(f[F0--]=P$>>24&255),C$=0,R$=0):(C$=P$>>>24,R$+=2)}if(F0>=0)for(f[F0--]=C$;F0>=0;)f[F0--]=0},Math.clz32?$$.prototype._countBits=function(f){return 32-Math.clz32(f)}:$$.prototype._countBits=function(f){var D$=f,F0=0;return D$>=4096&&(F0+=13,D$>>>=13),D$>=64&&(F0+=7,D$>>>=7),D$>=8&&(F0+=4,D$>>>=4),D$>=2&&(F0+=2,D$>>>=2),F0+D$},$$.prototype._zeroBits=function(f){if(f===0)return 26;var D$=f,F0=0;return(D$&8191)===0&&(F0+=13,D$>>>=13),(D$&127)===0&&(F0+=7,D$>>>=7),(D$&15)===0&&(F0+=4,D$>>>=4),(D$&3)===0&&(F0+=2,D$>>>=2),(D$&1)===0&&F0++,F0},$$.prototype.bitLength=function(){var f=this.words[this.length-1],D$=this._countBits(f);return(this.length-1)*26+D$};function K$(f){for(var D$=new Array(f.bitLength()),F0=0;F0>>L$&1}return D$}$$.prototype.zeroBits=function(){if(this.isZero())return 0;for(var f=0,D$=0;D$f.length?this.clone().ior(f):f.clone().ior(this)},$$.prototype.uor=function(f){return this.length>f.length?this.clone().iuor(f):f.clone().iuor(this)},$$.prototype.iuand=function(f){var D$;this.length>f.length?D$=f:D$=this;for(var F0=0;F0f.length?this.clone().iand(f):f.clone().iand(this)},$$.prototype.uand=function(f){return this.length>f.length?this.clone().iuand(f):f.clone().iuand(this)},$$.prototype.iuxor=function(f){var D$,F0;this.length>f.length?(D$=this,F0=f):(D$=f,F0=this);for(var C$=0;C$f.length?this.clone().ixor(f):f.clone().ixor(this)},$$.prototype.uxor=function(f){return this.length>f.length?this.clone().iuxor(f):f.clone().iuxor(this)},$$.prototype.inotn=function(f){r0(typeof f=="number"&&f>=0);var D$=Math.ceil(f/26)|0,F0=f%26;this._expand(D$),F0>0&&D$--;for(var C$=0;C$0&&(this.words[C$]=~this.words[C$]&67108863>>26-F0),this._strip()},$$.prototype.notn=function(f){return this.clone().inotn(f)},$$.prototype.setn=function(f,D$){r0(typeof f=="number"&&f>=0);var F0=f/26|0,C$=f%26;return this._expand(F0+1),D$?this.words[F0]=this.words[F0]|1<f.length?(F0=this,C$=f):(F0=f,C$=this);for(var L$=0,R$=0;R$>>26;for(;L$!==0&&R$>>26;if(this.length=F0.length,L$!==0)this.words[this.length]=L$,this.length++;else if(F0!==this)for(;R$f.length?this.clone().iadd(f):f.clone().iadd(this)},$$.prototype.isub=function(f){if(f.negative!==0){f.negative=0;var D$=this.iadd(f);return f.negative=1,D$._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(f),this.negative=1,this._normSign();var F0=this.cmp(f);if(F0===0)return this.negative=0,this.length=1,this.words[0]=0,this;var C$,L$;F0>0?(C$=this,L$=f):(C$=f,L$=this);for(var R$=0,P$=0;P$>26,this.words[P$]=D$&67108863;for(;R$!==0&&P$>26,this.words[P$]=D$&67108863;if(R$===0&&P$>>26,c=M$&67108863,v$=Math.min(S$,D$.length-1),A0=Math.max(0,S$-f.length+1);A0<=v$;A0++){var q$=S$-A0|0;L$=f.words[q$]|0,R$=D$.words[A0]|0,P$=L$*R$+c,Z+=P$/67108864|0,c=P$&67108863}F0.words[S$]=c|0,M$=Z|0}return M$!==0?F0.words[S$]=M$|0:F0.length--,F0._strip()}var Q=function(f,D$,F0){var C$=f.words,L$=D$.words,R$=F0.words,P$=0,z$,M$,S$,Z=C$[0]|0,c=Z&8191,v$=Z>>>13,A0=C$[1]|0,q$=A0&8191,j$=A0>>>13,k$=C$[2]|0,g$=k$&8191,_$=k$>>>13,N$=C$[3]|0,x$=N$&8191,G=N$>>>13,B=C$[4]|0,B$=B&8191,H0=B>>>13,y$=C$[5]|0,w$=y$&8191,p$=y$>>>13,f$=C$[6]|0,c$=f$&8191,h$=f$>>>13,d$=C$[7]|0,V=d$&8191,h=d$>>>13,W0=C$[8]|0,E0=W0&8191,b$=W0>>>13,l$=C$[9]|0,o$=l$&8191,u$=l$>>>13,n$=L$[0]|0,s$=n$&8191,t$=n$>>>13,U=L$[1]|0,d=U&8191,m$=U>>>13,T0=L$[2]|0,a$=T0&8191,e$=T0>>>13,r$=L$[3]|0,i$=r$&8191,$Q=r$>>>13,QQ=L$[4]|0,YQ=QQ&8191,X=QQ>>>13,b=L$[5]|0,ZQ=b&8191,D0=b>>>13,GQ=L$[6]|0,VQ=GQ&8191,UQ=GQ>>>13,XQ=L$[7]|0,KQ=XQ&8191,IQ=XQ>>>13,OQ=L$[8]|0,K=OQ&8191,l=OQ>>>13,JQ=L$[9]|0,C0=JQ&8191,FQ=JQ>>>13;F0.negative=f.negative^D$.negative,F0.length=19,z$=Math.imul(c,s$),M$=Math.imul(c,t$),M$=M$+Math.imul(v$,s$)|0,S$=Math.imul(v$,t$);var AQ=(P$+z$|0)+((M$&8191)<<13)|0;P$=(S$+(M$>>>13)|0)+(AQ>>>26)|0,AQ&=67108863,z$=Math.imul(q$,s$),M$=Math.imul(q$,t$),M$=M$+Math.imul(j$,s$)|0,S$=Math.imul(j$,t$),z$=z$+Math.imul(c,d)|0,M$=M$+Math.imul(c,m$)|0,M$=M$+Math.imul(v$,d)|0,S$=S$+Math.imul(v$,m$)|0;var HQ=(P$+z$|0)+((M$&8191)<<13)|0;P$=(S$+(M$>>>13)|0)+(HQ>>>26)|0,HQ&=67108863,z$=Math.imul(g$,s$),M$=Math.imul(g$,t$),M$=M$+Math.imul(_$,s$)|0,S$=Math.imul(_$,t$),z$=z$+Math.imul(q$,d)|0,M$=M$+Math.imul(q$,m$)|0,M$=M$+Math.imul(j$,d)|0,S$=S$+Math.imul(j$,m$)|0,z$=z$+Math.imul(c,a$)|0,M$=M$+Math.imul(c,e$)|0,M$=M$+Math.imul(v$,a$)|0,S$=S$+Math.imul(v$,e$)|0;var WQ=(P$+z$|0)+((M$&8191)<<13)|0;P$=(S$+(M$>>>13)|0)+(WQ>>>26)|0,WQ&=67108863,z$=Math.imul(x$,s$),M$=Math.imul(x$,t$),M$=M$+Math.imul(G,s$)|0,S$=Math.imul(G,t$),z$=z$+Math.imul(g$,d)|0,M$=M$+Math.imul(g$,m$)|0,M$=M$+Math.imul(_$,d)|0,S$=S$+Math.imul(_$,m$)|0,z$=z$+Math.imul(q$,a$)|0,M$=M$+Math.imul(q$,e$)|0,M$=M$+Math.imul(j$,a$)|0,S$=S$+Math.imul(j$,e$)|0,z$=z$+Math.imul(c,i$)|0,M$=M$+Math.imul(c,$Q)|0,M$=M$+Math.imul(v$,i$)|0,S$=S$+Math.imul(v$,$Q)|0;var EQ=(P$+z$|0)+((M$&8191)<<13)|0;P$=(S$+(M$>>>13)|0)+(EQ>>>26)|0,EQ&=67108863,z$=Math.imul(B$,s$),M$=Math.imul(B$,t$),M$=M$+Math.imul(H0,s$)|0,S$=Math.imul(H0,t$),z$=z$+Math.imul(x$,d)|0,M$=M$+Math.imul(x$,m$)|0,M$=M$+Math.imul(G,d)|0,S$=S$+Math.imul(G,m$)|0,z$=z$+Math.imul(g$,a$)|0,M$=M$+Math.imul(g$,e$)|0,M$=M$+Math.imul(_$,a$)|0,S$=S$+Math.imul(_$,e$)|0,z$=z$+Math.imul(q$,i$)|0,M$=M$+Math.imul(q$,$Q)|0,M$=M$+Math.imul(j$,i$)|0,S$=S$+Math.imul(j$,$Q)|0,z$=z$+Math.imul(c,YQ)|0,M$=M$+Math.imul(c,X)|0,M$=M$+Math.imul(v$,YQ)|0,S$=S$+Math.imul(v$,X)|0;var TQ=(P$+z$|0)+((M$&8191)<<13)|0;P$=(S$+(M$>>>13)|0)+(TQ>>>26)|0,TQ&=67108863,z$=Math.imul(w$,s$),M$=Math.imul(w$,t$),M$=M$+Math.imul(p$,s$)|0,S$=Math.imul(p$,t$),z$=z$+Math.imul(B$,d)|0,M$=M$+Math.imul(B$,m$)|0,M$=M$+Math.imul(H0,d)|0,S$=S$+Math.imul(H0,m$)|0,z$=z$+Math.imul(x$,a$)|0,M$=M$+Math.imul(x$,e$)|0,M$=M$+Math.imul(G,a$)|0,S$=S$+Math.imul(G,e$)|0,z$=z$+Math.imul(g$,i$)|0,M$=M$+Math.imul(g$,$Q)|0,M$=M$+Math.imul(_$,i$)|0,S$=S$+Math.imul(_$,$Q)|0,z$=z$+Math.imul(q$,YQ)|0,M$=M$+Math.imul(q$,X)|0,M$=M$+Math.imul(j$,YQ)|0,S$=S$+Math.imul(j$,X)|0,z$=z$+Math.imul(c,ZQ)|0,M$=M$+Math.imul(c,D0)|0,M$=M$+Math.imul(v$,ZQ)|0,S$=S$+Math.imul(v$,D0)|0;var DQ=(P$+z$|0)+((M$&8191)<<13)|0;P$=(S$+(M$>>>13)|0)+(DQ>>>26)|0,DQ&=67108863,z$=Math.imul(c$,s$),M$=Math.imul(c$,t$),M$=M$+Math.imul(h$,s$)|0,S$=Math.imul(h$,t$),z$=z$+Math.imul(w$,d)|0,M$=M$+Math.imul(w$,m$)|0,M$=M$+Math.imul(p$,d)|0,S$=S$+Math.imul(p$,m$)|0,z$=z$+Math.imul(B$,a$)|0,M$=M$+Math.imul(B$,e$)|0,M$=M$+Math.imul(H0,a$)|0,S$=S$+Math.imul(H0,e$)|0,z$=z$+Math.imul(x$,i$)|0,M$=M$+Math.imul(x$,$Q)|0,M$=M$+Math.imul(G,i$)|0,S$=S$+Math.imul(G,$Q)|0,z$=z$+Math.imul(g$,YQ)|0,M$=M$+Math.imul(g$,X)|0,M$=M$+Math.imul(_$,YQ)|0,S$=S$+Math.imul(_$,X)|0,z$=z$+Math.imul(q$,ZQ)|0,M$=M$+Math.imul(q$,D0)|0,M$=M$+Math.imul(j$,ZQ)|0,S$=S$+Math.imul(j$,D0)|0,z$=z$+Math.imul(c,VQ)|0,M$=M$+Math.imul(c,UQ)|0,M$=M$+Math.imul(v$,VQ)|0,S$=S$+Math.imul(v$,UQ)|0;var I=(P$+z$|0)+((M$&8191)<<13)|0;P$=(S$+(M$>>>13)|0)+(I>>>26)|0,I&=67108863,z$=Math.imul(V,s$),M$=Math.imul(V,t$),M$=M$+Math.imul(h,s$)|0,S$=Math.imul(h,t$),z$=z$+Math.imul(c$,d)|0,M$=M$+Math.imul(c$,m$)|0,M$=M$+Math.imul(h$,d)|0,S$=S$+Math.imul(h$,m$)|0,z$=z$+Math.imul(w$,a$)|0,M$=M$+Math.imul(w$,e$)|0,M$=M$+Math.imul(p$,a$)|0,S$=S$+Math.imul(p$,e$)|0,z$=z$+Math.imul(B$,i$)|0,M$=M$+Math.imul(B$,$Q)|0,M$=M$+Math.imul(H0,i$)|0,S$=S$+Math.imul(H0,$Q)|0,z$=z$+Math.imul(x$,YQ)|0,M$=M$+Math.imul(x$,X)|0,M$=M$+Math.imul(G,YQ)|0,S$=S$+Math.imul(G,X)|0,z$=z$+Math.imul(g$,ZQ)|0,M$=M$+Math.imul(g$,D0)|0,M$=M$+Math.imul(_$,ZQ)|0,S$=S$+Math.imul(_$,D0)|0,z$=z$+Math.imul(q$,VQ)|0,M$=M$+Math.imul(q$,UQ)|0,M$=M$+Math.imul(j$,VQ)|0,S$=S$+Math.imul(j$,UQ)|0,z$=z$+Math.imul(c,KQ)|0,M$=M$+Math.imul(c,IQ)|0,M$=M$+Math.imul(v$,KQ)|0,S$=S$+Math.imul(v$,IQ)|0;var o=(P$+z$|0)+((M$&8191)<<13)|0;P$=(S$+(M$>>>13)|0)+(o>>>26)|0,o&=67108863,z$=Math.imul(E0,s$),M$=Math.imul(E0,t$),M$=M$+Math.imul(b$,s$)|0,S$=Math.imul(b$,t$),z$=z$+Math.imul(V,d)|0,M$=M$+Math.imul(V,m$)|0,M$=M$+Math.imul(h,d)|0,S$=S$+Math.imul(h,m$)|0,z$=z$+Math.imul(c$,a$)|0,M$=M$+Math.imul(c$,e$)|0,M$=M$+Math.imul(h$,a$)|0,S$=S$+Math.imul(h$,e$)|0,z$=z$+Math.imul(w$,i$)|0,M$=M$+Math.imul(w$,$Q)|0,M$=M$+Math.imul(p$,i$)|0,S$=S$+Math.imul(p$,$Q)|0,z$=z$+Math.imul(B$,YQ)|0,M$=M$+Math.imul(B$,X)|0,M$=M$+Math.imul(H0,YQ)|0,S$=S$+Math.imul(H0,X)|0,z$=z$+Math.imul(x$,ZQ)|0,M$=M$+Math.imul(x$,D0)|0,M$=M$+Math.imul(G,ZQ)|0,S$=S$+Math.imul(G,D0)|0,z$=z$+Math.imul(g$,VQ)|0,M$=M$+Math.imul(g$,UQ)|0,M$=M$+Math.imul(_$,VQ)|0,S$=S$+Math.imul(_$,UQ)|0,z$=z$+Math.imul(q$,KQ)|0,M$=M$+Math.imul(q$,IQ)|0,M$=M$+Math.imul(j$,KQ)|0,S$=S$+Math.imul(j$,IQ)|0,z$=z$+Math.imul(c,K)|0,M$=M$+Math.imul(c,l)|0,M$=M$+Math.imul(v$,K)|0,S$=S$+Math.imul(v$,l)|0;var CQ=(P$+z$|0)+((M$&8191)<<13)|0;P$=(S$+(M$>>>13)|0)+(CQ>>>26)|0,CQ&=67108863,z$=Math.imul(o$,s$),M$=Math.imul(o$,t$),M$=M$+Math.imul(u$,s$)|0,S$=Math.imul(u$,t$),z$=z$+Math.imul(E0,d)|0,M$=M$+Math.imul(E0,m$)|0,M$=M$+Math.imul(b$,d)|0,S$=S$+Math.imul(b$,m$)|0,z$=z$+Math.imul(V,a$)|0,M$=M$+Math.imul(V,e$)|0,M$=M$+Math.imul(h,a$)|0,S$=S$+Math.imul(h,e$)|0,z$=z$+Math.imul(c$,i$)|0,M$=M$+Math.imul(c$,$Q)|0,M$=M$+Math.imul(h$,i$)|0,S$=S$+Math.imul(h$,$Q)|0,z$=z$+Math.imul(w$,YQ)|0,M$=M$+Math.imul(w$,X)|0,M$=M$+Math.imul(p$,YQ)|0,S$=S$+Math.imul(p$,X)|0,z$=z$+Math.imul(B$,ZQ)|0,M$=M$+Math.imul(B$,D0)|0,M$=M$+Math.imul(H0,ZQ)|0,S$=S$+Math.imul(H0,D0)|0,z$=z$+Math.imul(x$,VQ)|0,M$=M$+Math.imul(x$,UQ)|0,M$=M$+Math.imul(G,VQ)|0,S$=S$+Math.imul(G,UQ)|0,z$=z$+Math.imul(g$,KQ)|0,M$=M$+Math.imul(g$,IQ)|0,M$=M$+Math.imul(_$,KQ)|0,S$=S$+Math.imul(_$,IQ)|0,z$=z$+Math.imul(q$,K)|0,M$=M$+Math.imul(q$,l)|0,M$=M$+Math.imul(j$,K)|0,S$=S$+Math.imul(j$,l)|0,z$=z$+Math.imul(c,C0)|0,M$=M$+Math.imul(c,FQ)|0,M$=M$+Math.imul(v$,C0)|0,S$=S$+Math.imul(v$,FQ)|0;var L0=(P$+z$|0)+((M$&8191)<<13)|0;P$=(S$+(M$>>>13)|0)+(L0>>>26)|0,L0&=67108863,z$=Math.imul(o$,d),M$=Math.imul(o$,m$),M$=M$+Math.imul(u$,d)|0,S$=Math.imul(u$,m$),z$=z$+Math.imul(E0,a$)|0,M$=M$+Math.imul(E0,e$)|0,M$=M$+Math.imul(b$,a$)|0,S$=S$+Math.imul(b$,e$)|0,z$=z$+Math.imul(V,i$)|0,M$=M$+Math.imul(V,$Q)|0,M$=M$+Math.imul(h,i$)|0,S$=S$+Math.imul(h,$Q)|0,z$=z$+Math.imul(c$,YQ)|0,M$=M$+Math.imul(c$,X)|0,M$=M$+Math.imul(h$,YQ)|0,S$=S$+Math.imul(h$,X)|0,z$=z$+Math.imul(w$,ZQ)|0,M$=M$+Math.imul(w$,D0)|0,M$=M$+Math.imul(p$,ZQ)|0,S$=S$+Math.imul(p$,D0)|0,z$=z$+Math.imul(B$,VQ)|0,M$=M$+Math.imul(B$,UQ)|0,M$=M$+Math.imul(H0,VQ)|0,S$=S$+Math.imul(H0,UQ)|0,z$=z$+Math.imul(x$,KQ)|0,M$=M$+Math.imul(x$,IQ)|0,M$=M$+Math.imul(G,KQ)|0,S$=S$+Math.imul(G,IQ)|0,z$=z$+Math.imul(g$,K)|0,M$=M$+Math.imul(g$,l)|0,M$=M$+Math.imul(_$,K)|0,S$=S$+Math.imul(_$,l)|0,z$=z$+Math.imul(q$,C0)|0,M$=M$+Math.imul(q$,FQ)|0,M$=M$+Math.imul(j$,C0)|0,S$=S$+Math.imul(j$,FQ)|0;var LQ=(P$+z$|0)+((M$&8191)<<13)|0;P$=(S$+(M$>>>13)|0)+(LQ>>>26)|0,LQ&=67108863,z$=Math.imul(o$,a$),M$=Math.imul(o$,e$),M$=M$+Math.imul(u$,a$)|0,S$=Math.imul(u$,e$),z$=z$+Math.imul(E0,i$)|0,M$=M$+Math.imul(E0,$Q)|0,M$=M$+Math.imul(b$,i$)|0,S$=S$+Math.imul(b$,$Q)|0,z$=z$+Math.imul(V,YQ)|0,M$=M$+Math.imul(V,X)|0,M$=M$+Math.imul(h,YQ)|0,S$=S$+Math.imul(h,X)|0,z$=z$+Math.imul(c$,ZQ)|0,M$=M$+Math.imul(c$,D0)|0,M$=M$+Math.imul(h$,ZQ)|0,S$=S$+Math.imul(h$,D0)|0,z$=z$+Math.imul(w$,VQ)|0,M$=M$+Math.imul(w$,UQ)|0,M$=M$+Math.imul(p$,VQ)|0,S$=S$+Math.imul(p$,UQ)|0,z$=z$+Math.imul(B$,KQ)|0,M$=M$+Math.imul(B$,IQ)|0,M$=M$+Math.imul(H0,KQ)|0,S$=S$+Math.imul(H0,IQ)|0,z$=z$+Math.imul(x$,K)|0,M$=M$+Math.imul(x$,l)|0,M$=M$+Math.imul(G,K)|0,S$=S$+Math.imul(G,l)|0,z$=z$+Math.imul(g$,C0)|0,M$=M$+Math.imul(g$,FQ)|0,M$=M$+Math.imul(_$,C0)|0,S$=S$+Math.imul(_$,FQ)|0;var RQ=(P$+z$|0)+((M$&8191)<<13)|0;P$=(S$+(M$>>>13)|0)+(RQ>>>26)|0,RQ&=67108863,z$=Math.imul(o$,i$),M$=Math.imul(o$,$Q),M$=M$+Math.imul(u$,i$)|0,S$=Math.imul(u$,$Q),z$=z$+Math.imul(E0,YQ)|0,M$=M$+Math.imul(E0,X)|0,M$=M$+Math.imul(b$,YQ)|0,S$=S$+Math.imul(b$,X)|0,z$=z$+Math.imul(V,ZQ)|0,M$=M$+Math.imul(V,D0)|0,M$=M$+Math.imul(h,ZQ)|0,S$=S$+Math.imul(h,D0)|0,z$=z$+Math.imul(c$,VQ)|0,M$=M$+Math.imul(c$,UQ)|0,M$=M$+Math.imul(h$,VQ)|0,S$=S$+Math.imul(h$,UQ)|0,z$=z$+Math.imul(w$,KQ)|0,M$=M$+Math.imul(w$,IQ)|0,M$=M$+Math.imul(p$,KQ)|0,S$=S$+Math.imul(p$,IQ)|0,z$=z$+Math.imul(B$,K)|0,M$=M$+Math.imul(B$,l)|0,M$=M$+Math.imul(H0,K)|0,S$=S$+Math.imul(H0,l)|0,z$=z$+Math.imul(x$,C0)|0,M$=M$+Math.imul(x$,FQ)|0,M$=M$+Math.imul(G,C0)|0,S$=S$+Math.imul(G,FQ)|0;var PQ=(P$+z$|0)+((M$&8191)<<13)|0;P$=(S$+(M$>>>13)|0)+(PQ>>>26)|0,PQ&=67108863,z$=Math.imul(o$,YQ),M$=Math.imul(o$,X),M$=M$+Math.imul(u$,YQ)|0,S$=Math.imul(u$,X),z$=z$+Math.imul(E0,ZQ)|0,M$=M$+Math.imul(E0,D0)|0,M$=M$+Math.imul(b$,ZQ)|0,S$=S$+Math.imul(b$,D0)|0,z$=z$+Math.imul(V,VQ)|0,M$=M$+Math.imul(V,UQ)|0,M$=M$+Math.imul(h,VQ)|0,S$=S$+Math.imul(h,UQ)|0,z$=z$+Math.imul(c$,KQ)|0,M$=M$+Math.imul(c$,IQ)|0,M$=M$+Math.imul(h$,KQ)|0,S$=S$+Math.imul(h$,IQ)|0,z$=z$+Math.imul(w$,K)|0,M$=M$+Math.imul(w$,l)|0,M$=M$+Math.imul(p$,K)|0,S$=S$+Math.imul(p$,l)|0,z$=z$+Math.imul(B$,C0)|0,M$=M$+Math.imul(B$,FQ)|0,M$=M$+Math.imul(H0,C0)|0,S$=S$+Math.imul(H0,FQ)|0;var zQ=(P$+z$|0)+((M$&8191)<<13)|0;P$=(S$+(M$>>>13)|0)+(zQ>>>26)|0,zQ&=67108863,z$=Math.imul(o$,ZQ),M$=Math.imul(o$,D0),M$=M$+Math.imul(u$,ZQ)|0,S$=Math.imul(u$,D0),z$=z$+Math.imul(E0,VQ)|0,M$=M$+Math.imul(E0,UQ)|0,M$=M$+Math.imul(b$,VQ)|0,S$=S$+Math.imul(b$,UQ)|0,z$=z$+Math.imul(V,KQ)|0,M$=M$+Math.imul(V,IQ)|0,M$=M$+Math.imul(h,KQ)|0,S$=S$+Math.imul(h,IQ)|0,z$=z$+Math.imul(c$,K)|0,M$=M$+Math.imul(c$,l)|0,M$=M$+Math.imul(h$,K)|0,S$=S$+Math.imul(h$,l)|0,z$=z$+Math.imul(w$,C0)|0,M$=M$+Math.imul(w$,FQ)|0,M$=M$+Math.imul(p$,C0)|0,S$=S$+Math.imul(p$,FQ)|0;var MQ=(P$+z$|0)+((M$&8191)<<13)|0;P$=(S$+(M$>>>13)|0)+(MQ>>>26)|0,MQ&=67108863,z$=Math.imul(o$,VQ),M$=Math.imul(o$,UQ),M$=M$+Math.imul(u$,VQ)|0,S$=Math.imul(u$,UQ),z$=z$+Math.imul(E0,KQ)|0,M$=M$+Math.imul(E0,IQ)|0,M$=M$+Math.imul(b$,KQ)|0,S$=S$+Math.imul(b$,IQ)|0,z$=z$+Math.imul(V,K)|0,M$=M$+Math.imul(V,l)|0,M$=M$+Math.imul(h,K)|0,S$=S$+Math.imul(h,l)|0,z$=z$+Math.imul(c$,C0)|0,M$=M$+Math.imul(c$,FQ)|0,M$=M$+Math.imul(h$,C0)|0,S$=S$+Math.imul(h$,FQ)|0;var SQ=(P$+z$|0)+((M$&8191)<<13)|0;P$=(S$+(M$>>>13)|0)+(SQ>>>26)|0,SQ&=67108863,z$=Math.imul(o$,KQ),M$=Math.imul(o$,IQ),M$=M$+Math.imul(u$,KQ)|0,S$=Math.imul(u$,IQ),z$=z$+Math.imul(E0,K)|0,M$=M$+Math.imul(E0,l)|0,M$=M$+Math.imul(b$,K)|0,S$=S$+Math.imul(b$,l)|0,z$=z$+Math.imul(V,C0)|0,M$=M$+Math.imul(V,FQ)|0,M$=M$+Math.imul(h,C0)|0,S$=S$+Math.imul(h,FQ)|0;var vQ=(P$+z$|0)+((M$&8191)<<13)|0;P$=(S$+(M$>>>13)|0)+(vQ>>>26)|0,vQ&=67108863,z$=Math.imul(o$,K),M$=Math.imul(o$,l),M$=M$+Math.imul(u$,K)|0,S$=Math.imul(u$,l),z$=z$+Math.imul(E0,C0)|0,M$=M$+Math.imul(E0,FQ)|0,M$=M$+Math.imul(b$,C0)|0,S$=S$+Math.imul(b$,FQ)|0;var O=(P$+z$|0)+((M$&8191)<<13)|0;P$=(S$+(M$>>>13)|0)+(O>>>26)|0,O&=67108863,z$=Math.imul(o$,C0),M$=Math.imul(o$,FQ),M$=M$+Math.imul(u$,C0)|0,S$=Math.imul(u$,FQ);var g=(P$+z$|0)+((M$&8191)<<13)|0;return P$=(S$+(M$>>>13)|0)+(g>>>26)|0,g&=67108863,R$[0]=AQ,R$[1]=HQ,R$[2]=WQ,R$[3]=EQ,R$[4]=TQ,R$[5]=DQ,R$[6]=I,R$[7]=o,R$[8]=CQ,R$[9]=L0,R$[10]=LQ,R$[11]=RQ,R$[12]=PQ,R$[13]=zQ,R$[14]=MQ,R$[15]=SQ,R$[16]=vQ,R$[17]=O,R$[18]=g,P$!==0&&(R$[19]=P$,F0.length++),F0};Math.imul||(Q=I$);function x(f,D$,F0){F0.negative=D$.negative^f.negative,F0.length=f.length+D$.length;for(var C$=0,L$=0,R$=0;R$>>26)|0,L$+=P$>>>26,P$&=67108863}F0.words[R$]=z$,C$=P$,P$=L$}return C$!==0?F0.words[R$]=C$:F0.length--,F0._strip()}function O$(f,D$,F0){return x(f,D$,F0)}$$.prototype.mulTo=function(f,D$){var F0,C$=this.length+f.length;return this.length===10&&f.length===10?F0=Q(this,f,D$):C$<63?F0=I$(this,f,D$):C$<1024?F0=x(this,f,D$):F0=O$(this,f,D$),F0};function J0(f,D$){this.x=f,this.y=D$}J0.prototype.makeRBT=function(f){for(var D$=new Array(f),F0=$$.prototype._countBits(f)-1,C$=0;C$>=1;return C$},J0.prototype.permute=function(f,D$,F0,C$,L$,R$){for(var P$=0;P$>>1)L$++;return 1<>>13,F0[2*R$+1]=L$&8191,L$=L$>>>13;for(R$=2*D$;R$>=26,F0+=L$/67108864|0,F0+=R$>>>26,this.words[C$]=R$&67108863}return F0!==0&&(this.words[C$]=F0,this.length++),D$?this.ineg():this},$$.prototype.muln=function(f){return this.clone().imuln(f)},$$.prototype.sqr=function(){return this.mul(this)},$$.prototype.isqr=function(){return this.imul(this.clone())},$$.prototype.pow=function(f){var D$=K$(f);if(D$.length===0)return new $$(1);for(var F0=this,C$=0;C$=0);var D$=f%26,F0=(f-D$)/26,C$=67108863>>>26-D$<<26-D$,L$;if(D$!==0){var R$=0;for(L$=0;L$>>26-D$}R$&&(this.words[L$]=R$,this.length++)}if(F0!==0){for(L$=this.length-1;L$>=0;L$--)this.words[L$+F0]=this.words[L$];for(L$=0;L$=0);var C$;D$?C$=(D$-D$%26)/26:C$=0;var L$=f%26,R$=Math.min((f-L$)/26,this.length),P$=67108863^67108863>>>L$<R$)for(this.length-=R$,M$=0;M$=0&&(S$!==0||M$>=C$);M$--){var Z=this.words[M$]|0;this.words[M$]=S$<<26-L$|Z>>>L$,S$=Z&P$}return z$&&S$!==0&&(z$.words[z$.length++]=S$),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},$$.prototype.ishrn=function(f,D$,F0){return r0(this.negative===0),this.iushrn(f,D$,F0)},$$.prototype.shln=function(f){return this.clone().ishln(f)},$$.prototype.ushln=function(f){return this.clone().iushln(f)},$$.prototype.shrn=function(f){return this.clone().ishrn(f)},$$.prototype.ushrn=function(f){return this.clone().iushrn(f)},$$.prototype.testn=function(f){r0(typeof f=="number"&&f>=0);var D$=f%26,F0=(f-D$)/26,C$=1<=0);var D$=f%26,F0=(f-D$)/26;if(r0(this.negative===0,"imaskn works only with positive numbers"),this.length<=F0)return this;if(D$!==0&&F0++,this.length=Math.min(F0,this.length),D$!==0){var C$=67108863^67108863>>>D$<=67108864;D$++)this.words[D$]-=67108864,D$===this.length-1?this.words[D$+1]=1:this.words[D$+1]++;return this.length=Math.max(this.length,D$+1),this},$$.prototype.isubn=function(f){if(r0(typeof f=="number"),r0(f<67108864),f<0)return this.iaddn(-f);if(this.negative!==0)return this.negative=0,this.iaddn(f),this.negative=1,this;if(this.words[0]-=f,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var D$=0;D$>26)-(z$/67108864|0),this.words[L$+F0]=R$&67108863}for(;L$>26,this.words[L$+F0]=R$&67108863;if(P$===0)return this._strip();for(r0(P$===-1),P$=0,L$=0;L$>26,this.words[L$]=R$&67108863;return this.negative=1,this._strip()},$$.prototype._wordDiv=function(f,D$){var F0=this.length-f.length,C$=this.clone(),L$=f,R$=L$.words[L$.length-1]|0,P$=this._countBits(R$);F0=26-P$,F0!==0&&(L$=L$.ushln(F0),C$.iushln(F0),R$=L$.words[L$.length-1]|0);var z$=C$.length-L$.length,M$;if(D$!=="mod"){M$=new $$(null),M$.length=z$+1,M$.words=new Array(M$.length);for(var S$=0;S$=0;c--){var v$=(C$.words[L$.length+c]|0)*67108864+(C$.words[L$.length+c-1]|0);for(v$=Math.min(v$/R$|0,67108863),C$._ishlnsubmul(L$,v$,c);C$.negative!==0;)v$--,C$.negative=0,C$._ishlnsubmul(L$,1,c),C$.isZero()||(C$.negative^=1);M$&&(M$.words[c]=v$)}return M$&&M$._strip(),C$._strip(),D$!=="div"&&F0!==0&&C$.iushrn(F0),{div:M$||null,mod:C$}},$$.prototype.divmod=function(f,D$,F0){if(r0(!f.isZero()),this.isZero())return{div:new $$(0),mod:new $$(0)};var C$,L$,R$;return this.negative!==0&&f.negative===0?(R$=this.neg().divmod(f,D$),D$!=="mod"&&(C$=R$.div.neg()),D$!=="div"&&(L$=R$.mod.neg(),F0&&L$.negative!==0&&L$.iadd(f)),{div:C$,mod:L$}):this.negative===0&&f.negative!==0?(R$=this.divmod(f.neg(),D$),D$!=="mod"&&(C$=R$.div.neg()),{div:C$,mod:R$.mod}):(this.negative&f.negative)!==0?(R$=this.neg().divmod(f.neg(),D$),D$!=="div"&&(L$=R$.mod.neg(),F0&&L$.negative!==0&&L$.isub(f)),{div:R$.div,mod:L$}):f.length>this.length||this.cmp(f)<0?{div:new $$(0),mod:this}:f.length===1?D$==="div"?{div:this.divn(f.words[0]),mod:null}:D$==="mod"?{div:null,mod:new $$(this.modrn(f.words[0]))}:{div:this.divn(f.words[0]),mod:new $$(this.modrn(f.words[0]))}:this._wordDiv(f,D$)},$$.prototype.div=function(f){return this.divmod(f,"div",!1).div},$$.prototype.mod=function(f){return this.divmod(f,"mod",!1).mod},$$.prototype.umod=function(f){return this.divmod(f,"mod",!0).mod},$$.prototype.divRound=function(f){var D$=this.divmod(f);if(D$.mod.isZero())return D$.div;var F0=D$.div.negative!==0?D$.mod.isub(f):D$.mod,C$=f.ushrn(1),L$=f.andln(1),R$=F0.cmp(C$);return R$<0||L$===1&&R$===0?D$.div:D$.div.negative!==0?D$.div.isubn(1):D$.div.iaddn(1)},$$.prototype.modrn=function(f){var D$=f<0;D$&&(f=-f),r0(f<=67108863);for(var F0=(1<<26)%f,C$=0,L$=this.length-1;L$>=0;L$--)C$=(F0*C$+(this.words[L$]|0))%f;return D$?-C$:C$},$$.prototype.modn=function(f){return this.modrn(f)},$$.prototype.idivn=function(f){var D$=f<0;D$&&(f=-f),r0(f<=67108863);for(var F0=0,C$=this.length-1;C$>=0;C$--){var L$=(this.words[C$]|0)+F0*67108864;this.words[C$]=L$/f|0,F0=L$%f}return this._strip(),D$?this.ineg():this},$$.prototype.divn=function(f){return this.clone().idivn(f)},$$.prototype.egcd=function(f){r0(f.negative===0),r0(!f.isZero());var D$=this,F0=f.clone();D$.negative!==0?D$=D$.umod(f):D$=D$.clone();for(var C$=new $$(1),L$=new $$(0),R$=new $$(0),P$=new $$(1),z$=0;D$.isEven()&&F0.isEven();)D$.iushrn(1),F0.iushrn(1),++z$;for(var M$=F0.clone(),S$=D$.clone();!D$.isZero();){for(var Z=0,c=1;(D$.words[0]&c)===0&&Z<26;++Z,c<<=1);if(Z>0)for(D$.iushrn(Z);Z-- >0;)(C$.isOdd()||L$.isOdd())&&(C$.iadd(M$),L$.isub(S$)),C$.iushrn(1),L$.iushrn(1);for(var v$=0,A0=1;(F0.words[0]&A0)===0&&v$<26;++v$,A0<<=1);if(v$>0)for(F0.iushrn(v$);v$-- >0;)(R$.isOdd()||P$.isOdd())&&(R$.iadd(M$),P$.isub(S$)),R$.iushrn(1),P$.iushrn(1);D$.cmp(F0)>=0?(D$.isub(F0),C$.isub(R$),L$.isub(P$)):(F0.isub(D$),R$.isub(C$),P$.isub(L$))}return{a:R$,b:P$,gcd:F0.iushln(z$)}},$$.prototype._invmp=function(f){r0(f.negative===0),r0(!f.isZero());var D$=this,F0=f.clone();D$.negative!==0?D$=D$.umod(f):D$=D$.clone();for(var C$=new $$(1),L$=new $$(0),R$=F0.clone();D$.cmpn(1)>0&&F0.cmpn(1)>0;){for(var P$=0,z$=1;(D$.words[0]&z$)===0&&P$<26;++P$,z$<<=1);if(P$>0)for(D$.iushrn(P$);P$-- >0;)C$.isOdd()&&C$.iadd(R$),C$.iushrn(1);for(var M$=0,S$=1;(F0.words[0]&S$)===0&&M$<26;++M$,S$<<=1);if(M$>0)for(F0.iushrn(M$);M$-- >0;)L$.isOdd()&&L$.iadd(R$),L$.iushrn(1);D$.cmp(F0)>=0?(D$.isub(F0),C$.isub(L$)):(F0.isub(D$),L$.isub(C$))}var Z;return D$.cmpn(1)===0?Z=C$:Z=L$,Z.cmpn(0)<0&&Z.iadd(f),Z},$$.prototype.gcd=function(f){if(this.isZero())return f.abs();if(f.isZero())return this.abs();var D$=this.clone(),F0=f.clone();D$.negative=0,F0.negative=0;for(var C$=0;D$.isEven()&&F0.isEven();C$++)D$.iushrn(1),F0.iushrn(1);do{for(;D$.isEven();)D$.iushrn(1);for(;F0.isEven();)F0.iushrn(1);var L$=D$.cmp(F0);if(L$<0){var R$=D$;D$=F0,F0=R$}else if(L$===0||F0.cmpn(1)===0)break;D$.isub(F0)}while(!0);return F0.iushln(C$)},$$.prototype.invm=function(f){return this.egcd(f).a.umod(f)},$$.prototype.isEven=function(){return(this.words[0]&1)===0},$$.prototype.isOdd=function(){return(this.words[0]&1)===1},$$.prototype.andln=function(f){return this.words[0]&f},$$.prototype.bincn=function(f){r0(typeof f=="number");var D$=f%26,F0=(f-D$)/26,C$=1<>>26,P$&=67108863,this.words[R$]=P$}return L$!==0&&(this.words[R$]=L$,this.length++),this},$$.prototype.isZero=function(){return this.length===1&&this.words[0]===0},$$.prototype.cmpn=function(f){var D$=f<0;if(this.negative!==0&&!D$)return-1;if(this.negative===0&&D$)return 1;this._strip();var F0;if(this.length>1)F0=1;else{D$&&(f=-f),r0(f<=67108863,"Number is too big");var C$=this.words[0]|0;F0=C$===f?0:C$f.length)return 1;if(this.length=0;F0--){var C$=this.words[F0]|0,L$=f.words[F0]|0;if(C$!==L$){C$L$&&(D$=1);break}}return D$},$$.prototype.gtn=function(f){return this.cmpn(f)===1},$$.prototype.gt=function(f){return this.cmp(f)===1},$$.prototype.gten=function(f){return this.cmpn(f)>=0},$$.prototype.gte=function(f){return this.cmp(f)>=0},$$.prototype.ltn=function(f){return this.cmpn(f)===-1},$$.prototype.lt=function(f){return this.cmp(f)===-1},$$.prototype.lten=function(f){return this.cmpn(f)<=0},$$.prototype.lte=function(f){return this.cmp(f)<=0},$$.prototype.eqn=function(f){return this.cmpn(f)===0},$$.prototype.eq=function(f){return this.cmp(f)===0},$$.red=function(f){return new T$(f)},$$.prototype.toRed=function(f){return r0(!this.red,"Already a number in reduction context"),r0(this.negative===0,"red works only with positives"),f.convertTo(this)._forceRed(f)},$$.prototype.fromRed=function(){return r0(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},$$.prototype._forceRed=function(f){return this.red=f,this},$$.prototype.forceRed=function(f){return r0(!this.red,"Already a number in reduction context"),this._forceRed(f)},$$.prototype.redAdd=function(f){return r0(this.red,"redAdd works only with red numbers"),this.red.add(this,f)},$$.prototype.redIAdd=function(f){return r0(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,f)},$$.prototype.redSub=function(f){return r0(this.red,"redSub works only with red numbers"),this.red.sub(this,f)},$$.prototype.redISub=function(f){return r0(this.red,"redISub works only with red numbers"),this.red.isub(this,f)},$$.prototype.redShl=function(f){return r0(this.red,"redShl works only with red numbers"),this.red.shl(this,f)},$$.prototype.redMul=function(f){return r0(this.red,"redMul works only with red numbers"),this.red._verify2(this,f),this.red.mul(this,f)},$$.prototype.redIMul=function(f){return r0(this.red,"redMul works only with red numbers"),this.red._verify2(this,f),this.red.imul(this,f)},$$.prototype.redSqr=function(){return r0(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},$$.prototype.redISqr=function(){return r0(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},$$.prototype.redSqrt=function(){return r0(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},$$.prototype.redInvm=function(){return r0(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},$$.prototype.redNeg=function(){return r0(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},$$.prototype.redPow=function(f){return r0(this.red&&!f.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,f)};var J$={k256:null,p224:null,p192:null,p25519:null};function F$(f,D$){this.name=f,this.p=new $$(D$,16),this.n=this.p.bitLength(),this.k=new $$(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}F$.prototype._tmp=function(){var f=new $$(null);return f.words=new Array(Math.ceil(this.n/13)),f},F$.prototype.ireduce=function(f){var D$=f,F0;do this.split(D$,this.tmp),D$=this.imulK(D$),D$=D$.iadd(this.tmp),F0=D$.bitLength();while(F0>this.n);var C$=F00?D$.isub(this.p):D$.strip!==void 0?D$.strip():D$._strip(),D$},F$.prototype.split=function(f,D$){f.iushrn(this.n,0,D$)},F$.prototype.imulK=function(f){return f.imul(this.k)};function A$(){F$.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}i0(A$,F$),A$.prototype.split=function(f,D$){for(var F0=4194303,C$=Math.min(f.length,9),L$=0;L$>>22,R$=P$}R$>>>=22,f.words[L$-10]=R$,R$===0&&f.length>10?f.length-=10:f.length-=9},A$.prototype.imulK=function(f){f.words[f.length]=0,f.words[f.length+1]=0,f.length+=2;for(var D$=0,F0=0;F0>>=26,f.words[F0]=L$,D$=C$}return D$!==0&&(f.words[f.length++]=D$),f},$$._prime=function(f){if(J$[f])return J$[f];var D$;if(f==="k256")D$=new A$;else if(f==="p224")D$=new H$;else if(f==="p192")D$=new W$;else if(f==="p25519")D$=new E$;else throw new Error("Unknown prime "+f);return J$[f]=D$,D$};function T$(f){if(typeof f=="string"){var D$=$$._prime(f);this.m=D$.p,this.prime=D$}else r0(f.gtn(1),"modulus must be greater than 1"),this.m=f,this.prime=null}T$.prototype._verify1=function(f){r0(f.negative===0,"red works only with positives"),r0(f.red,"red works only with red numbers")},T$.prototype._verify2=function(f,D$){r0((f.negative|D$.negative)===0,"red works only with positives"),r0(f.red&&f.red===D$.red,"red works only with red numbers")},T$.prototype.imod=function(f){return this.prime?this.prime.ireduce(f)._forceRed(this):(O0(f,f.umod(this.m)._forceRed(this)),f)},T$.prototype.neg=function(f){return f.isZero()?f.clone():this.m.sub(f)._forceRed(this)},T$.prototype.add=function(f,D$){this._verify2(f,D$);var F0=f.add(D$);return F0.cmp(this.m)>=0&&F0.isub(this.m),F0._forceRed(this)},T$.prototype.iadd=function(f,D$){this._verify2(f,D$);var F0=f.iadd(D$);return F0.cmp(this.m)>=0&&F0.isub(this.m),F0},T$.prototype.sub=function(f,D$){this._verify2(f,D$);var F0=f.sub(D$);return F0.cmpn(0)<0&&F0.iadd(this.m),F0._forceRed(this)},T$.prototype.isub=function(f,D$){this._verify2(f,D$);var F0=f.isub(D$);return F0.cmpn(0)<0&&F0.iadd(this.m),F0},T$.prototype.shl=function(f,D$){return this._verify1(f),this.imod(f.ushln(D$))},T$.prototype.imul=function(f,D$){return this._verify2(f,D$),this.imod(f.imul(D$))},T$.prototype.mul=function(f,D$){return this._verify2(f,D$),this.imod(f.mul(D$))},T$.prototype.isqr=function(f){return this.imul(f,f.clone())},T$.prototype.sqr=function(f){return this.mul(f,f)},T$.prototype.sqrt=function(f){if(f.isZero())return f.clone();var D$=this.m.andln(3);if(r0(D$%2===1),D$===3){var F0=this.m.add(new $$(1)).iushrn(2);return this.pow(f,F0)}for(var C$=this.m.subn(1),L$=0;!C$.isZero()&&C$.andln(1)===0;)L$++,C$.iushrn(1);r0(!C$.isZero());var R$=new $$(1).toRed(this),P$=R$.redNeg(),z$=this.m.subn(1).iushrn(1),M$=this.m.bitLength();for(M$=new $$(2*M$*M$).toRed(this);this.pow(M$,z$).cmp(P$)!==0;)M$.redIAdd(P$);for(var S$=this.pow(M$,C$),Z=this.pow(f,C$.addn(1).iushrn(1)),c=this.pow(f,C$),v$=L$;c.cmp(R$)!==0;){for(var A0=c,q$=0;A0.cmp(R$)!==0;q$++)A0=A0.redSqr();r0(q$=0;L$--){for(var S$=D$.words[L$],Z=M$-1;Z>=0;Z--){var c=S$>>Z&1;if(R$!==C$[0]&&(R$=this.sqr(R$)),c===0&&P$===0){z$=0;continue}P$<<=1,P$|=c,z$++,!(z$!==F0&&(L$!==0||Z!==0))&&(R$=this.mul(R$,C$[P$]),z$=0,P$=0)}M$=26}return R$},T$.prototype.convertTo=function(f){var D$=f.umod(this.m);return D$===f?D$.clone():D$},T$.prototype.convertFrom=function(f){var D$=f.clone();return D$.red=null,D$},$$.mont=function(f){return new Y(f)};function Y(f){T$.call(this,f),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new $$(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}i0(Y,T$),Y.prototype.convertTo=function(f){return this.imod(f.ushln(this.shift))},Y.prototype.convertFrom=function(f){var D$=this.imod(f.mul(this.rinv));return D$.red=null,D$},Y.prototype.imul=function(f,D$){if(f.isZero()||D$.isZero())return f.words[0]=0,f.length=1,f;var F0=f.imul(D$),C$=F0.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),L$=F0.isub(C$).iushrn(this.shift),R$=L$;return L$.cmp(this.m)>=0?R$=L$.isub(this.m):L$.cmpn(0)<0&&(R$=L$.iadd(this.m)),R$._forceRed(this)},Y.prototype.mul=function(f,D$){if(f.isZero()||D$.isZero())return new $$(0)._forceRed(this);var F0=f.mul(D$),C$=F0.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),L$=F0.isub(C$).iushrn(this.shift),R$=L$;return L$.cmp(this.m)>=0?R$=L$.isub(this.m):L$.cmpn(0)<0&&(R$=L$.iadd(this.m)),R$._forceRed(this)},Y.prototype.invm=function(f){var D$=this.imod(f._invmp(this.m).mul(this.r2));return D$._forceRed(this)}})(typeof m0>"u"||m0,t0)}}),qY=pQ({"node_modules/browserify-rsa/index.js"(t0,m0){var a0=vY(),e0=hQ();function r0(Q$){var $=i0(Q$),N=$.toRed(a0.mont(Q$.modulus)).redPow(new a0(Q$.publicExponent)).fromRed();return{blinder:N,unblinder:$.invm(Q$.modulus)}}function i0(Q$){var $=Q$.modulus.byteLength(),N;do N=new a0(e0($));while(N.cmp(Q$.modulus)>=0||!N.umod(Q$.prime1)||!N.umod(Q$.prime2));return N}function $$(Q$,$){var N=r0($),Y$=$.modulus.byteLength(),O0=new a0(Q$).mul(N.blinder).umod($.modulus),Z$=O0.toRed(a0.mont($.prime1)),G$=O0.toRed(a0.mont($.prime2)),V$=$.coefficient,U$=$.prime1,X$=$.prime2,K$=Z$.redPow($.exponent1).fromRed(),I$=G$.redPow($.exponent2).fromRed(),Q=K$.isub(I$).imul(V$).umod(U$).imul(X$);return I$.iadd(Q).imul(N.unblinder).umod($.modulus).toArrayLike(G0,"be",Y$)}$$.getr=i0,m0.exports=$$}}),jY=pQ({"node_modules/elliptic/package.json"(t0,m0){m0.exports={name:"elliptic",version:"6.5.4",description:"EC cryptography",main:"lib/elliptic.js",files:["lib"],scripts:{lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},repository:{type:"git",url:"git@github.com:indutny/elliptic"},keywords:["EC","Elliptic","curve","Cryptography"],author:"Fedor Indutny ",license:"MIT",bugs:{url:"https://github.com/indutny/elliptic/issues"},homepage:"https://github.com/indutny/elliptic",devDependencies:{brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},dependencies:{"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"}}}}),kY=pQ({"node_modules/elliptic/node_modules/bn.js/lib/bn.js"(t0,m0){(function(a0,e0){function r0(E$,T$){if(!E$)throw new Error(T$||"Assertion failed")}function i0(E$,T$){E$.super_=T$;var Y=function(){};Y.prototype=T$.prototype,E$.prototype=new Y,E$.prototype.constructor=E$}function $$(E$,T$,Y){if($$.isBN(E$))return E$;this.negative=0,this.words=null,this.length=0,this.red=null,E$!==null&&((T$==="le"||T$==="be")&&(Y=T$,T$=10),this._init(E$||0,T$||10,Y||"be"))}typeof a0=="object"?a0.exports=$$:e0.BN=$$,$$.BN=$$,$$.wordSize=26;var Q$=G0;$$.isBN=function(E$){return E$ instanceof $$?!0:E$!==null&&typeof E$=="object"&&E$.constructor.wordSize===$$.wordSize&&Array.isArray(E$.words)},$$.max=function(E$,T$){return E$.cmp(T$)>0?E$:T$},$$.min=function(E$,T$){return E$.cmp(T$)<0?E$:T$},$$.prototype._init=function(E$,T$,Y){if(typeof E$=="number")return this._initNumber(E$,T$,Y);if(typeof E$=="object")return this._initArray(E$,T$,Y);T$==="hex"&&(T$=16),r0(T$===(T$|0)&&T$>=2&&T$<=36),E$=E$.toString().replace(/\s+/g,"");var f=0;E$[0]==="-"&&(f++,this.negative=1),f=0;f-=3)F0=E$[f]|E$[f-1]<<8|E$[f-2]<<16,this.words[D$]|=F0<>>26-C$&67108863,C$+=24,C$>=26&&(C$-=26,D$++);else if(Y==="le")for(f=0,D$=0;f>>26-C$&67108863,C$+=24,C$>=26&&(C$-=26,D$++);return this.strip()};function $(E$,T$){var Y=E$.charCodeAt(T$);return Y>=65&&Y<=70?Y-55:Y>=97&&Y<=102?Y-87:Y-48&15}function N(E$,T$,Y){var f=$(E$,Y);return Y-1>=T$&&(f|=$(E$,Y-1)<<4),f}$$.prototype._parseHex=function(E$,T$,Y){this.length=Math.ceil((E$.length-T$)/6),this.words=new Array(this.length);for(var f=0;f=T$;f-=2)C$=N(E$,T$,f)<=18?(D$-=18,F0+=1,this.words[F0]|=C$>>>26):D$+=8;else{var L$=E$.length-T$;for(f=L$%2===0?T$+1:T$;f=18?(D$-=18,F0+=1,this.words[F0]|=C$>>>26):D$+=8}this.strip()};function Y$(E$,T$,Y,f){for(var D$=0,F0=Math.min(E$.length,Y),C$=T$;C$=49?D$+=L$-49+10:L$>=17?D$+=L$-17+10:D$+=L$}return D$}$$.prototype._parseBase=function(E$,T$,Y){this.words=[0],this.length=1;for(var f=0,D$=1;D$<=67108863;D$*=T$)f++;f--,D$=D$/T$|0;for(var F0=E$.length-Y,C$=F0%f,L$=Math.min(F0,F0-C$)+Y,R$=0,P$=Y;P$1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},$$.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},$$.prototype.inspect=function(){return(this.red?""};var O0=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],Z$=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],G$=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];$$.prototype.toString=function(E$,T$){E$=E$||10,T$=T$|0||1;var Y;if(E$===16||E$==="hex"){Y="";for(var f=0,D$=0,F0=0;F0>>24-f&16777215,D$!==0||F0!==this.length-1?Y=O0[6-L$.length]+L$+Y:Y=L$+Y,f+=2,f>=26&&(f-=26,F0--)}for(D$!==0&&(Y=D$.toString(16)+Y);Y.length%T$!==0;)Y="0"+Y;return this.negative!==0&&(Y="-"+Y),Y}if(E$===(E$|0)&&E$>=2&&E$<=36){var R$=Z$[E$],P$=G$[E$];Y="";var z$=this.clone();for(z$.negative=0;!z$.isZero();){var M$=z$.modn(P$).toString(E$);z$=z$.idivn(P$),z$.isZero()?Y=M$+Y:Y=O0[R$-M$.length]+M$+Y}for(this.isZero()&&(Y="0"+Y);Y.length%T$!==0;)Y="0"+Y;return this.negative!==0&&(Y="-"+Y),Y}r0(!1,"Base should be between 2 and 36")},$$.prototype.toNumber=function(){var E$=this.words[0];return this.length===2?E$+=this.words[1]*67108864:this.length===3&&this.words[2]===1?E$+=4503599627370496+this.words[1]*67108864:this.length>2&&r0(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-E$:E$},$$.prototype.toJSON=function(){return this.toString(16)},$$.prototype.toBuffer=function(E$,T$){return r0(typeof Q$<"u"),this.toArrayLike(Q$,E$,T$)},$$.prototype.toArray=function(E$,T$){return this.toArrayLike(Array,E$,T$)},$$.prototype.toArrayLike=function(E$,T$,Y){var f=this.byteLength(),D$=Y||Math.max(1,f);r0(f<=D$,"byte array longer than desired length"),r0(D$>0,"Requested array length <= 0"),this.strip();var F0=T$==="le",C$=new E$(D$),L$,R$,P$=this.clone();if(F0){for(R$=0;!P$.isZero();R$++)L$=P$.andln(255),P$.iushrn(8),C$[R$]=L$;for(;R$=4096&&(Y+=13,T$>>>=13),T$>=64&&(Y+=7,T$>>>=7),T$>=8&&(Y+=4,T$>>>=4),T$>=2&&(Y+=2,T$>>>=2),Y+T$},$$.prototype._zeroBits=function(E$){if(E$===0)return 26;var T$=E$,Y=0;return(T$&8191)===0&&(Y+=13,T$>>>=13),(T$&127)===0&&(Y+=7,T$>>>=7),(T$&15)===0&&(Y+=4,T$>>>=4),(T$&3)===0&&(Y+=2,T$>>>=2),(T$&1)===0&&Y++,Y},$$.prototype.bitLength=function(){var E$=this.words[this.length-1],T$=this._countBits(E$);return(this.length-1)*26+T$};function V$(E$){for(var T$=new Array(E$.bitLength()),Y=0;Y>>D$}return T$}$$.prototype.zeroBits=function(){if(this.isZero())return 0;for(var E$=0,T$=0;T$E$.length?this.clone().ior(E$):E$.clone().ior(this)},$$.prototype.uor=function(E$){return this.length>E$.length?this.clone().iuor(E$):E$.clone().iuor(this)},$$.prototype.iuand=function(E$){var T$;this.length>E$.length?T$=E$:T$=this;for(var Y=0;YE$.length?this.clone().iand(E$):E$.clone().iand(this)},$$.prototype.uand=function(E$){return this.length>E$.length?this.clone().iuand(E$):E$.clone().iuand(this)},$$.prototype.iuxor=function(E$){var T$,Y;this.length>E$.length?(T$=this,Y=E$):(T$=E$,Y=this);for(var f=0;fE$.length?this.clone().ixor(E$):E$.clone().ixor(this)},$$.prototype.uxor=function(E$){return this.length>E$.length?this.clone().iuxor(E$):E$.clone().iuxor(this)},$$.prototype.inotn=function(E$){r0(typeof E$=="number"&&E$>=0);var T$=Math.ceil(E$/26)|0,Y=E$%26;this._expand(T$),Y>0&&T$--;for(var f=0;f0&&(this.words[f]=~this.words[f]&67108863>>26-Y),this.strip()},$$.prototype.notn=function(E$){return this.clone().inotn(E$)},$$.prototype.setn=function(E$,T$){r0(typeof E$=="number"&&E$>=0);var Y=E$/26|0,f=E$%26;return this._expand(Y+1),T$?this.words[Y]=this.words[Y]|1<E$.length?(Y=this,f=E$):(Y=E$,f=this);for(var D$=0,F0=0;F0>>26;for(;D$!==0&&F0>>26;if(this.length=Y.length,D$!==0)this.words[this.length]=D$,this.length++;else if(Y!==this)for(;F0E$.length?this.clone().iadd(E$):E$.clone().iadd(this)},$$.prototype.isub=function(E$){if(E$.negative!==0){E$.negative=0;var T$=this.iadd(E$);return E$.negative=1,T$._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(E$),this.negative=1,this._normSign();var Y=this.cmp(E$);if(Y===0)return this.negative=0,this.length=1,this.words[0]=0,this;var f,D$;Y>0?(f=this,D$=E$):(f=E$,D$=this);for(var F0=0,C$=0;C$>26,this.words[C$]=T$&67108863;for(;F0!==0&&C$>26,this.words[C$]=T$&67108863;if(F0===0&&C$>>26,M$=R$&67108863,S$=Math.min(P$,T$.length-1),Z=Math.max(0,P$-E$.length+1);Z<=S$;Z++){var c=P$-Z|0;D$=E$.words[c]|0,F0=T$.words[Z]|0,C$=D$*F0+M$,z$+=C$/67108864|0,M$=C$&67108863}Y.words[P$]=M$|0,R$=z$|0}return R$!==0?Y.words[P$]=R$|0:Y.length--,Y.strip()}var X$=function(E$,T$,Y){var f=E$.words,D$=T$.words,F0=Y.words,C$=0,L$,R$,P$,z$=f[0]|0,M$=z$&8191,S$=z$>>>13,Z=f[1]|0,c=Z&8191,v$=Z>>>13,A0=f[2]|0,q$=A0&8191,j$=A0>>>13,k$=f[3]|0,g$=k$&8191,_$=k$>>>13,N$=f[4]|0,x$=N$&8191,G=N$>>>13,B=f[5]|0,B$=B&8191,H0=B>>>13,y$=f[6]|0,w$=y$&8191,p$=y$>>>13,f$=f[7]|0,c$=f$&8191,h$=f$>>>13,d$=f[8]|0,V=d$&8191,h=d$>>>13,W0=f[9]|0,E0=W0&8191,b$=W0>>>13,l$=D$[0]|0,o$=l$&8191,u$=l$>>>13,n$=D$[1]|0,s$=n$&8191,t$=n$>>>13,U=D$[2]|0,d=U&8191,m$=U>>>13,T0=D$[3]|0,a$=T0&8191,e$=T0>>>13,r$=D$[4]|0,i$=r$&8191,$Q=r$>>>13,QQ=D$[5]|0,YQ=QQ&8191,X=QQ>>>13,b=D$[6]|0,ZQ=b&8191,D0=b>>>13,GQ=D$[7]|0,VQ=GQ&8191,UQ=GQ>>>13,XQ=D$[8]|0,KQ=XQ&8191,IQ=XQ>>>13,OQ=D$[9]|0,K=OQ&8191,l=OQ>>>13;Y.negative=E$.negative^T$.negative,Y.length=19,L$=Math.imul(M$,o$),R$=Math.imul(M$,u$),R$=R$+Math.imul(S$,o$)|0,P$=Math.imul(S$,u$);var JQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(JQ>>>26)|0,JQ&=67108863,L$=Math.imul(c,o$),R$=Math.imul(c,u$),R$=R$+Math.imul(v$,o$)|0,P$=Math.imul(v$,u$),L$=L$+Math.imul(M$,s$)|0,R$=R$+Math.imul(M$,t$)|0,R$=R$+Math.imul(S$,s$)|0,P$=P$+Math.imul(S$,t$)|0;var C0=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(C0>>>26)|0,C0&=67108863,L$=Math.imul(q$,o$),R$=Math.imul(q$,u$),R$=R$+Math.imul(j$,o$)|0,P$=Math.imul(j$,u$),L$=L$+Math.imul(c,s$)|0,R$=R$+Math.imul(c,t$)|0,R$=R$+Math.imul(v$,s$)|0,P$=P$+Math.imul(v$,t$)|0,L$=L$+Math.imul(M$,d)|0,R$=R$+Math.imul(M$,m$)|0,R$=R$+Math.imul(S$,d)|0,P$=P$+Math.imul(S$,m$)|0;var FQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(FQ>>>26)|0,FQ&=67108863,L$=Math.imul(g$,o$),R$=Math.imul(g$,u$),R$=R$+Math.imul(_$,o$)|0,P$=Math.imul(_$,u$),L$=L$+Math.imul(q$,s$)|0,R$=R$+Math.imul(q$,t$)|0,R$=R$+Math.imul(j$,s$)|0,P$=P$+Math.imul(j$,t$)|0,L$=L$+Math.imul(c,d)|0,R$=R$+Math.imul(c,m$)|0,R$=R$+Math.imul(v$,d)|0,P$=P$+Math.imul(v$,m$)|0,L$=L$+Math.imul(M$,a$)|0,R$=R$+Math.imul(M$,e$)|0,R$=R$+Math.imul(S$,a$)|0,P$=P$+Math.imul(S$,e$)|0;var AQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(AQ>>>26)|0,AQ&=67108863,L$=Math.imul(x$,o$),R$=Math.imul(x$,u$),R$=R$+Math.imul(G,o$)|0,P$=Math.imul(G,u$),L$=L$+Math.imul(g$,s$)|0,R$=R$+Math.imul(g$,t$)|0,R$=R$+Math.imul(_$,s$)|0,P$=P$+Math.imul(_$,t$)|0,L$=L$+Math.imul(q$,d)|0,R$=R$+Math.imul(q$,m$)|0,R$=R$+Math.imul(j$,d)|0,P$=P$+Math.imul(j$,m$)|0,L$=L$+Math.imul(c,a$)|0,R$=R$+Math.imul(c,e$)|0,R$=R$+Math.imul(v$,a$)|0,P$=P$+Math.imul(v$,e$)|0,L$=L$+Math.imul(M$,i$)|0,R$=R$+Math.imul(M$,$Q)|0,R$=R$+Math.imul(S$,i$)|0,P$=P$+Math.imul(S$,$Q)|0;var HQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(HQ>>>26)|0,HQ&=67108863,L$=Math.imul(B$,o$),R$=Math.imul(B$,u$),R$=R$+Math.imul(H0,o$)|0,P$=Math.imul(H0,u$),L$=L$+Math.imul(x$,s$)|0,R$=R$+Math.imul(x$,t$)|0,R$=R$+Math.imul(G,s$)|0,P$=P$+Math.imul(G,t$)|0,L$=L$+Math.imul(g$,d)|0,R$=R$+Math.imul(g$,m$)|0,R$=R$+Math.imul(_$,d)|0,P$=P$+Math.imul(_$,m$)|0,L$=L$+Math.imul(q$,a$)|0,R$=R$+Math.imul(q$,e$)|0,R$=R$+Math.imul(j$,a$)|0,P$=P$+Math.imul(j$,e$)|0,L$=L$+Math.imul(c,i$)|0,R$=R$+Math.imul(c,$Q)|0,R$=R$+Math.imul(v$,i$)|0,P$=P$+Math.imul(v$,$Q)|0,L$=L$+Math.imul(M$,YQ)|0,R$=R$+Math.imul(M$,X)|0,R$=R$+Math.imul(S$,YQ)|0,P$=P$+Math.imul(S$,X)|0;var WQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(WQ>>>26)|0,WQ&=67108863,L$=Math.imul(w$,o$),R$=Math.imul(w$,u$),R$=R$+Math.imul(p$,o$)|0,P$=Math.imul(p$,u$),L$=L$+Math.imul(B$,s$)|0,R$=R$+Math.imul(B$,t$)|0,R$=R$+Math.imul(H0,s$)|0,P$=P$+Math.imul(H0,t$)|0,L$=L$+Math.imul(x$,d)|0,R$=R$+Math.imul(x$,m$)|0,R$=R$+Math.imul(G,d)|0,P$=P$+Math.imul(G,m$)|0,L$=L$+Math.imul(g$,a$)|0,R$=R$+Math.imul(g$,e$)|0,R$=R$+Math.imul(_$,a$)|0,P$=P$+Math.imul(_$,e$)|0,L$=L$+Math.imul(q$,i$)|0,R$=R$+Math.imul(q$,$Q)|0,R$=R$+Math.imul(j$,i$)|0,P$=P$+Math.imul(j$,$Q)|0,L$=L$+Math.imul(c,YQ)|0,R$=R$+Math.imul(c,X)|0,R$=R$+Math.imul(v$,YQ)|0,P$=P$+Math.imul(v$,X)|0,L$=L$+Math.imul(M$,ZQ)|0,R$=R$+Math.imul(M$,D0)|0,R$=R$+Math.imul(S$,ZQ)|0,P$=P$+Math.imul(S$,D0)|0;var EQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(EQ>>>26)|0,EQ&=67108863,L$=Math.imul(c$,o$),R$=Math.imul(c$,u$),R$=R$+Math.imul(h$,o$)|0,P$=Math.imul(h$,u$),L$=L$+Math.imul(w$,s$)|0,R$=R$+Math.imul(w$,t$)|0,R$=R$+Math.imul(p$,s$)|0,P$=P$+Math.imul(p$,t$)|0,L$=L$+Math.imul(B$,d)|0,R$=R$+Math.imul(B$,m$)|0,R$=R$+Math.imul(H0,d)|0,P$=P$+Math.imul(H0,m$)|0,L$=L$+Math.imul(x$,a$)|0,R$=R$+Math.imul(x$,e$)|0,R$=R$+Math.imul(G,a$)|0,P$=P$+Math.imul(G,e$)|0,L$=L$+Math.imul(g$,i$)|0,R$=R$+Math.imul(g$,$Q)|0,R$=R$+Math.imul(_$,i$)|0,P$=P$+Math.imul(_$,$Q)|0,L$=L$+Math.imul(q$,YQ)|0,R$=R$+Math.imul(q$,X)|0,R$=R$+Math.imul(j$,YQ)|0,P$=P$+Math.imul(j$,X)|0,L$=L$+Math.imul(c,ZQ)|0,R$=R$+Math.imul(c,D0)|0,R$=R$+Math.imul(v$,ZQ)|0,P$=P$+Math.imul(v$,D0)|0,L$=L$+Math.imul(M$,VQ)|0,R$=R$+Math.imul(M$,UQ)|0,R$=R$+Math.imul(S$,VQ)|0,P$=P$+Math.imul(S$,UQ)|0;var TQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(TQ>>>26)|0,TQ&=67108863,L$=Math.imul(V,o$),R$=Math.imul(V,u$),R$=R$+Math.imul(h,o$)|0,P$=Math.imul(h,u$),L$=L$+Math.imul(c$,s$)|0,R$=R$+Math.imul(c$,t$)|0,R$=R$+Math.imul(h$,s$)|0,P$=P$+Math.imul(h$,t$)|0,L$=L$+Math.imul(w$,d)|0,R$=R$+Math.imul(w$,m$)|0,R$=R$+Math.imul(p$,d)|0,P$=P$+Math.imul(p$,m$)|0,L$=L$+Math.imul(B$,a$)|0,R$=R$+Math.imul(B$,e$)|0,R$=R$+Math.imul(H0,a$)|0,P$=P$+Math.imul(H0,e$)|0,L$=L$+Math.imul(x$,i$)|0,R$=R$+Math.imul(x$,$Q)|0,R$=R$+Math.imul(G,i$)|0,P$=P$+Math.imul(G,$Q)|0,L$=L$+Math.imul(g$,YQ)|0,R$=R$+Math.imul(g$,X)|0,R$=R$+Math.imul(_$,YQ)|0,P$=P$+Math.imul(_$,X)|0,L$=L$+Math.imul(q$,ZQ)|0,R$=R$+Math.imul(q$,D0)|0,R$=R$+Math.imul(j$,ZQ)|0,P$=P$+Math.imul(j$,D0)|0,L$=L$+Math.imul(c,VQ)|0,R$=R$+Math.imul(c,UQ)|0,R$=R$+Math.imul(v$,VQ)|0,P$=P$+Math.imul(v$,UQ)|0,L$=L$+Math.imul(M$,KQ)|0,R$=R$+Math.imul(M$,IQ)|0,R$=R$+Math.imul(S$,KQ)|0,P$=P$+Math.imul(S$,IQ)|0;var DQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(DQ>>>26)|0,DQ&=67108863,L$=Math.imul(E0,o$),R$=Math.imul(E0,u$),R$=R$+Math.imul(b$,o$)|0,P$=Math.imul(b$,u$),L$=L$+Math.imul(V,s$)|0,R$=R$+Math.imul(V,t$)|0,R$=R$+Math.imul(h,s$)|0,P$=P$+Math.imul(h,t$)|0,L$=L$+Math.imul(c$,d)|0,R$=R$+Math.imul(c$,m$)|0,R$=R$+Math.imul(h$,d)|0,P$=P$+Math.imul(h$,m$)|0,L$=L$+Math.imul(w$,a$)|0,R$=R$+Math.imul(w$,e$)|0,R$=R$+Math.imul(p$,a$)|0,P$=P$+Math.imul(p$,e$)|0,L$=L$+Math.imul(B$,i$)|0,R$=R$+Math.imul(B$,$Q)|0,R$=R$+Math.imul(H0,i$)|0,P$=P$+Math.imul(H0,$Q)|0,L$=L$+Math.imul(x$,YQ)|0,R$=R$+Math.imul(x$,X)|0,R$=R$+Math.imul(G,YQ)|0,P$=P$+Math.imul(G,X)|0,L$=L$+Math.imul(g$,ZQ)|0,R$=R$+Math.imul(g$,D0)|0,R$=R$+Math.imul(_$,ZQ)|0,P$=P$+Math.imul(_$,D0)|0,L$=L$+Math.imul(q$,VQ)|0,R$=R$+Math.imul(q$,UQ)|0,R$=R$+Math.imul(j$,VQ)|0,P$=P$+Math.imul(j$,UQ)|0,L$=L$+Math.imul(c,KQ)|0,R$=R$+Math.imul(c,IQ)|0,R$=R$+Math.imul(v$,KQ)|0,P$=P$+Math.imul(v$,IQ)|0,L$=L$+Math.imul(M$,K)|0,R$=R$+Math.imul(M$,l)|0,R$=R$+Math.imul(S$,K)|0,P$=P$+Math.imul(S$,l)|0;var I=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(I>>>26)|0,I&=67108863,L$=Math.imul(E0,s$),R$=Math.imul(E0,t$),R$=R$+Math.imul(b$,s$)|0,P$=Math.imul(b$,t$),L$=L$+Math.imul(V,d)|0,R$=R$+Math.imul(V,m$)|0,R$=R$+Math.imul(h,d)|0,P$=P$+Math.imul(h,m$)|0,L$=L$+Math.imul(c$,a$)|0,R$=R$+Math.imul(c$,e$)|0,R$=R$+Math.imul(h$,a$)|0,P$=P$+Math.imul(h$,e$)|0,L$=L$+Math.imul(w$,i$)|0,R$=R$+Math.imul(w$,$Q)|0,R$=R$+Math.imul(p$,i$)|0,P$=P$+Math.imul(p$,$Q)|0,L$=L$+Math.imul(B$,YQ)|0,R$=R$+Math.imul(B$,X)|0,R$=R$+Math.imul(H0,YQ)|0,P$=P$+Math.imul(H0,X)|0,L$=L$+Math.imul(x$,ZQ)|0,R$=R$+Math.imul(x$,D0)|0,R$=R$+Math.imul(G,ZQ)|0,P$=P$+Math.imul(G,D0)|0,L$=L$+Math.imul(g$,VQ)|0,R$=R$+Math.imul(g$,UQ)|0,R$=R$+Math.imul(_$,VQ)|0,P$=P$+Math.imul(_$,UQ)|0,L$=L$+Math.imul(q$,KQ)|0,R$=R$+Math.imul(q$,IQ)|0,R$=R$+Math.imul(j$,KQ)|0,P$=P$+Math.imul(j$,IQ)|0,L$=L$+Math.imul(c,K)|0,R$=R$+Math.imul(c,l)|0,R$=R$+Math.imul(v$,K)|0,P$=P$+Math.imul(v$,l)|0;var o=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(o>>>26)|0,o&=67108863,L$=Math.imul(E0,d),R$=Math.imul(E0,m$),R$=R$+Math.imul(b$,d)|0,P$=Math.imul(b$,m$),L$=L$+Math.imul(V,a$)|0,R$=R$+Math.imul(V,e$)|0,R$=R$+Math.imul(h,a$)|0,P$=P$+Math.imul(h,e$)|0,L$=L$+Math.imul(c$,i$)|0,R$=R$+Math.imul(c$,$Q)|0,R$=R$+Math.imul(h$,i$)|0,P$=P$+Math.imul(h$,$Q)|0,L$=L$+Math.imul(w$,YQ)|0,R$=R$+Math.imul(w$,X)|0,R$=R$+Math.imul(p$,YQ)|0,P$=P$+Math.imul(p$,X)|0,L$=L$+Math.imul(B$,ZQ)|0,R$=R$+Math.imul(B$,D0)|0,R$=R$+Math.imul(H0,ZQ)|0,P$=P$+Math.imul(H0,D0)|0,L$=L$+Math.imul(x$,VQ)|0,R$=R$+Math.imul(x$,UQ)|0,R$=R$+Math.imul(G,VQ)|0,P$=P$+Math.imul(G,UQ)|0,L$=L$+Math.imul(g$,KQ)|0,R$=R$+Math.imul(g$,IQ)|0,R$=R$+Math.imul(_$,KQ)|0,P$=P$+Math.imul(_$,IQ)|0,L$=L$+Math.imul(q$,K)|0,R$=R$+Math.imul(q$,l)|0,R$=R$+Math.imul(j$,K)|0,P$=P$+Math.imul(j$,l)|0;var CQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(CQ>>>26)|0,CQ&=67108863,L$=Math.imul(E0,a$),R$=Math.imul(E0,e$),R$=R$+Math.imul(b$,a$)|0,P$=Math.imul(b$,e$),L$=L$+Math.imul(V,i$)|0,R$=R$+Math.imul(V,$Q)|0,R$=R$+Math.imul(h,i$)|0,P$=P$+Math.imul(h,$Q)|0,L$=L$+Math.imul(c$,YQ)|0,R$=R$+Math.imul(c$,X)|0,R$=R$+Math.imul(h$,YQ)|0,P$=P$+Math.imul(h$,X)|0,L$=L$+Math.imul(w$,ZQ)|0,R$=R$+Math.imul(w$,D0)|0,R$=R$+Math.imul(p$,ZQ)|0,P$=P$+Math.imul(p$,D0)|0,L$=L$+Math.imul(B$,VQ)|0,R$=R$+Math.imul(B$,UQ)|0,R$=R$+Math.imul(H0,VQ)|0,P$=P$+Math.imul(H0,UQ)|0,L$=L$+Math.imul(x$,KQ)|0,R$=R$+Math.imul(x$,IQ)|0,R$=R$+Math.imul(G,KQ)|0,P$=P$+Math.imul(G,IQ)|0,L$=L$+Math.imul(g$,K)|0,R$=R$+Math.imul(g$,l)|0,R$=R$+Math.imul(_$,K)|0,P$=P$+Math.imul(_$,l)|0;var L0=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(L0>>>26)|0,L0&=67108863,L$=Math.imul(E0,i$),R$=Math.imul(E0,$Q),R$=R$+Math.imul(b$,i$)|0,P$=Math.imul(b$,$Q),L$=L$+Math.imul(V,YQ)|0,R$=R$+Math.imul(V,X)|0,R$=R$+Math.imul(h,YQ)|0,P$=P$+Math.imul(h,X)|0,L$=L$+Math.imul(c$,ZQ)|0,R$=R$+Math.imul(c$,D0)|0,R$=R$+Math.imul(h$,ZQ)|0,P$=P$+Math.imul(h$,D0)|0,L$=L$+Math.imul(w$,VQ)|0,R$=R$+Math.imul(w$,UQ)|0,R$=R$+Math.imul(p$,VQ)|0,P$=P$+Math.imul(p$,UQ)|0,L$=L$+Math.imul(B$,KQ)|0,R$=R$+Math.imul(B$,IQ)|0,R$=R$+Math.imul(H0,KQ)|0,P$=P$+Math.imul(H0,IQ)|0,L$=L$+Math.imul(x$,K)|0,R$=R$+Math.imul(x$,l)|0,R$=R$+Math.imul(G,K)|0,P$=P$+Math.imul(G,l)|0;var LQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(LQ>>>26)|0,LQ&=67108863,L$=Math.imul(E0,YQ),R$=Math.imul(E0,X),R$=R$+Math.imul(b$,YQ)|0,P$=Math.imul(b$,X),L$=L$+Math.imul(V,ZQ)|0,R$=R$+Math.imul(V,D0)|0,R$=R$+Math.imul(h,ZQ)|0,P$=P$+Math.imul(h,D0)|0,L$=L$+Math.imul(c$,VQ)|0,R$=R$+Math.imul(c$,UQ)|0,R$=R$+Math.imul(h$,VQ)|0,P$=P$+Math.imul(h$,UQ)|0,L$=L$+Math.imul(w$,KQ)|0,R$=R$+Math.imul(w$,IQ)|0,R$=R$+Math.imul(p$,KQ)|0,P$=P$+Math.imul(p$,IQ)|0,L$=L$+Math.imul(B$,K)|0,R$=R$+Math.imul(B$,l)|0,R$=R$+Math.imul(H0,K)|0,P$=P$+Math.imul(H0,l)|0;var RQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(RQ>>>26)|0,RQ&=67108863,L$=Math.imul(E0,ZQ),R$=Math.imul(E0,D0),R$=R$+Math.imul(b$,ZQ)|0,P$=Math.imul(b$,D0),L$=L$+Math.imul(V,VQ)|0,R$=R$+Math.imul(V,UQ)|0,R$=R$+Math.imul(h,VQ)|0,P$=P$+Math.imul(h,UQ)|0,L$=L$+Math.imul(c$,KQ)|0,R$=R$+Math.imul(c$,IQ)|0,R$=R$+Math.imul(h$,KQ)|0,P$=P$+Math.imul(h$,IQ)|0,L$=L$+Math.imul(w$,K)|0,R$=R$+Math.imul(w$,l)|0,R$=R$+Math.imul(p$,K)|0,P$=P$+Math.imul(p$,l)|0;var PQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(PQ>>>26)|0,PQ&=67108863,L$=Math.imul(E0,VQ),R$=Math.imul(E0,UQ),R$=R$+Math.imul(b$,VQ)|0,P$=Math.imul(b$,UQ),L$=L$+Math.imul(V,KQ)|0,R$=R$+Math.imul(V,IQ)|0,R$=R$+Math.imul(h,KQ)|0,P$=P$+Math.imul(h,IQ)|0,L$=L$+Math.imul(c$,K)|0,R$=R$+Math.imul(c$,l)|0,R$=R$+Math.imul(h$,K)|0,P$=P$+Math.imul(h$,l)|0;var zQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(zQ>>>26)|0,zQ&=67108863,L$=Math.imul(E0,KQ),R$=Math.imul(E0,IQ),R$=R$+Math.imul(b$,KQ)|0,P$=Math.imul(b$,IQ),L$=L$+Math.imul(V,K)|0,R$=R$+Math.imul(V,l)|0,R$=R$+Math.imul(h,K)|0,P$=P$+Math.imul(h,l)|0;var MQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(MQ>>>26)|0,MQ&=67108863,L$=Math.imul(E0,K),R$=Math.imul(E0,l),R$=R$+Math.imul(b$,K)|0,P$=Math.imul(b$,l);var SQ=(C$+L$|0)+((R$&8191)<<13)|0;return C$=(P$+(R$>>>13)|0)+(SQ>>>26)|0,SQ&=67108863,F0[0]=JQ,F0[1]=C0,F0[2]=FQ,F0[3]=AQ,F0[4]=HQ,F0[5]=WQ,F0[6]=EQ,F0[7]=TQ,F0[8]=DQ,F0[9]=I,F0[10]=o,F0[11]=CQ,F0[12]=L0,F0[13]=LQ,F0[14]=RQ,F0[15]=PQ,F0[16]=zQ,F0[17]=MQ,F0[18]=SQ,C$!==0&&(F0[19]=C$,Y.length++),Y};Math.imul||(X$=U$);function K$(E$,T$,Y){Y.negative=T$.negative^E$.negative,Y.length=E$.length+T$.length;for(var f=0,D$=0,F0=0;F0>>26)|0,D$+=C$>>>26,C$&=67108863}Y.words[F0]=L$,f=C$,C$=D$}return f!==0?Y.words[F0]=f:Y.length--,Y.strip()}function I$(E$,T$,Y){var f=new Q;return f.mulp(E$,T$,Y)}$$.prototype.mulTo=function(E$,T$){var Y,f=this.length+E$.length;return this.length===10&&E$.length===10?Y=X$(this,E$,T$):f<63?Y=U$(this,E$,T$):f<1024?Y=K$(this,E$,T$):Y=I$(this,E$,T$),Y};function Q(E$,T$){this.x=E$,this.y=T$}Q.prototype.makeRBT=function(E$){for(var T$=new Array(E$),Y=$$.prototype._countBits(E$)-1,f=0;f>=1;return f},Q.prototype.permute=function(E$,T$,Y,f,D$,F0){for(var C$=0;C$>>1)D$++;return 1<>>13,Y[2*F0+1]=D$&8191,D$=D$>>>13;for(F0=2*T$;F0>=26,T$+=f/67108864|0,T$+=D$>>>26,this.words[Y]=D$&67108863}return T$!==0&&(this.words[Y]=T$,this.length++),this},$$.prototype.muln=function(E$){return this.clone().imuln(E$)},$$.prototype.sqr=function(){return this.mul(this)},$$.prototype.isqr=function(){return this.imul(this.clone())},$$.prototype.pow=function(E$){var T$=V$(E$);if(T$.length===0)return new $$(1);for(var Y=this,f=0;f=0);var T$=E$%26,Y=(E$-T$)/26,f=67108863>>>26-T$<<26-T$,D$;if(T$!==0){var F0=0;for(D$=0;D$>>26-T$}F0&&(this.words[D$]=F0,this.length++)}if(Y!==0){for(D$=this.length-1;D$>=0;D$--)this.words[D$+Y]=this.words[D$];for(D$=0;D$=0);var f;T$?f=(T$-T$%26)/26:f=0;var D$=E$%26,F0=Math.min((E$-D$)/26,this.length),C$=67108863^67108863>>>D$<F0)for(this.length-=F0,R$=0;R$=0&&(P$!==0||R$>=f);R$--){var z$=this.words[R$]|0;this.words[R$]=P$<<26-D$|z$>>>D$,P$=z$&C$}return L$&&P$!==0&&(L$.words[L$.length++]=P$),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},$$.prototype.ishrn=function(E$,T$,Y){return r0(this.negative===0),this.iushrn(E$,T$,Y)},$$.prototype.shln=function(E$){return this.clone().ishln(E$)},$$.prototype.ushln=function(E$){return this.clone().iushln(E$)},$$.prototype.shrn=function(E$){return this.clone().ishrn(E$)},$$.prototype.ushrn=function(E$){return this.clone().iushrn(E$)},$$.prototype.testn=function(E$){r0(typeof E$=="number"&&E$>=0);var T$=E$%26,Y=(E$-T$)/26,f=1<=0);var T$=E$%26,Y=(E$-T$)/26;if(r0(this.negative===0,"imaskn works only with positive numbers"),this.length<=Y)return this;if(T$!==0&&Y++,this.length=Math.min(Y,this.length),T$!==0){var f=67108863^67108863>>>T$<=67108864;T$++)this.words[T$]-=67108864,T$===this.length-1?this.words[T$+1]=1:this.words[T$+1]++;return this.length=Math.max(this.length,T$+1),this},$$.prototype.isubn=function(E$){if(r0(typeof E$=="number"),r0(E$<67108864),E$<0)return this.iaddn(-E$);if(this.negative!==0)return this.negative=0,this.iaddn(E$),this.negative=1,this;if(this.words[0]-=E$,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var T$=0;T$>26)-(L$/67108864|0),this.words[D$+Y]=F0&67108863}for(;D$>26,this.words[D$+Y]=F0&67108863;if(C$===0)return this.strip();for(r0(C$===-1),C$=0,D$=0;D$>26,this.words[D$]=F0&67108863;return this.negative=1,this.strip()},$$.prototype._wordDiv=function(E$,T$){var Y=this.length-E$.length,f=this.clone(),D$=E$,F0=D$.words[D$.length-1]|0,C$=this._countBits(F0);Y=26-C$,Y!==0&&(D$=D$.ushln(Y),f.iushln(Y),F0=D$.words[D$.length-1]|0);var L$=f.length-D$.length,R$;if(T$!=="mod"){R$=new $$(null),R$.length=L$+1,R$.words=new Array(R$.length);for(var P$=0;P$=0;M$--){var S$=(f.words[D$.length+M$]|0)*67108864+(f.words[D$.length+M$-1]|0);for(S$=Math.min(S$/F0|0,67108863),f._ishlnsubmul(D$,S$,M$);f.negative!==0;)S$--,f.negative=0,f._ishlnsubmul(D$,1,M$),f.isZero()||(f.negative^=1);R$&&(R$.words[M$]=S$)}return R$&&R$.strip(),f.strip(),T$!=="div"&&Y!==0&&f.iushrn(Y),{div:R$||null,mod:f}},$$.prototype.divmod=function(E$,T$,Y){if(r0(!E$.isZero()),this.isZero())return{div:new $$(0),mod:new $$(0)};var f,D$,F0;return this.negative!==0&&E$.negative===0?(F0=this.neg().divmod(E$,T$),T$!=="mod"&&(f=F0.div.neg()),T$!=="div"&&(D$=F0.mod.neg(),Y&&D$.negative!==0&&D$.iadd(E$)),{div:f,mod:D$}):this.negative===0&&E$.negative!==0?(F0=this.divmod(E$.neg(),T$),T$!=="mod"&&(f=F0.div.neg()),{div:f,mod:F0.mod}):(this.negative&E$.negative)!==0?(F0=this.neg().divmod(E$.neg(),T$),T$!=="div"&&(D$=F0.mod.neg(),Y&&D$.negative!==0&&D$.isub(E$)),{div:F0.div,mod:D$}):E$.length>this.length||this.cmp(E$)<0?{div:new $$(0),mod:this}:E$.length===1?T$==="div"?{div:this.divn(E$.words[0]),mod:null}:T$==="mod"?{div:null,mod:new $$(this.modn(E$.words[0]))}:{div:this.divn(E$.words[0]),mod:new $$(this.modn(E$.words[0]))}:this._wordDiv(E$,T$)},$$.prototype.div=function(E$){return this.divmod(E$,"div",!1).div},$$.prototype.mod=function(E$){return this.divmod(E$,"mod",!1).mod},$$.prototype.umod=function(E$){return this.divmod(E$,"mod",!0).mod},$$.prototype.divRound=function(E$){var T$=this.divmod(E$);if(T$.mod.isZero())return T$.div;var Y=T$.div.negative!==0?T$.mod.isub(E$):T$.mod,f=E$.ushrn(1),D$=E$.andln(1),F0=Y.cmp(f);return F0<0||D$===1&&F0===0?T$.div:T$.div.negative!==0?T$.div.isubn(1):T$.div.iaddn(1)},$$.prototype.modn=function(E$){r0(E$<=67108863);for(var T$=(1<<26)%E$,Y=0,f=this.length-1;f>=0;f--)Y=(T$*Y+(this.words[f]|0))%E$;return Y},$$.prototype.idivn=function(E$){r0(E$<=67108863);for(var T$=0,Y=this.length-1;Y>=0;Y--){var f=(this.words[Y]|0)+T$*67108864;this.words[Y]=f/E$|0,T$=f%E$}return this.strip()},$$.prototype.divn=function(E$){return this.clone().idivn(E$)},$$.prototype.egcd=function(E$){r0(E$.negative===0),r0(!E$.isZero());var T$=this,Y=E$.clone();T$.negative!==0?T$=T$.umod(E$):T$=T$.clone();for(var f=new $$(1),D$=new $$(0),F0=new $$(0),C$=new $$(1),L$=0;T$.isEven()&&Y.isEven();)T$.iushrn(1),Y.iushrn(1),++L$;for(var R$=Y.clone(),P$=T$.clone();!T$.isZero();){for(var z$=0,M$=1;(T$.words[0]&M$)===0&&z$<26;++z$,M$<<=1);if(z$>0)for(T$.iushrn(z$);z$-- >0;)(f.isOdd()||D$.isOdd())&&(f.iadd(R$),D$.isub(P$)),f.iushrn(1),D$.iushrn(1);for(var S$=0,Z=1;(Y.words[0]&Z)===0&&S$<26;++S$,Z<<=1);if(S$>0)for(Y.iushrn(S$);S$-- >0;)(F0.isOdd()||C$.isOdd())&&(F0.iadd(R$),C$.isub(P$)),F0.iushrn(1),C$.iushrn(1);T$.cmp(Y)>=0?(T$.isub(Y),f.isub(F0),D$.isub(C$)):(Y.isub(T$),F0.isub(f),C$.isub(D$))}return{a:F0,b:C$,gcd:Y.iushln(L$)}},$$.prototype._invmp=function(E$){r0(E$.negative===0),r0(!E$.isZero());var T$=this,Y=E$.clone();T$.negative!==0?T$=T$.umod(E$):T$=T$.clone();for(var f=new $$(1),D$=new $$(0),F0=Y.clone();T$.cmpn(1)>0&&Y.cmpn(1)>0;){for(var C$=0,L$=1;(T$.words[0]&L$)===0&&C$<26;++C$,L$<<=1);if(C$>0)for(T$.iushrn(C$);C$-- >0;)f.isOdd()&&f.iadd(F0),f.iushrn(1);for(var R$=0,P$=1;(Y.words[0]&P$)===0&&R$<26;++R$,P$<<=1);if(R$>0)for(Y.iushrn(R$);R$-- >0;)D$.isOdd()&&D$.iadd(F0),D$.iushrn(1);T$.cmp(Y)>=0?(T$.isub(Y),f.isub(D$)):(Y.isub(T$),D$.isub(f))}var z$;return T$.cmpn(1)===0?z$=f:z$=D$,z$.cmpn(0)<0&&z$.iadd(E$),z$},$$.prototype.gcd=function(E$){if(this.isZero())return E$.abs();if(E$.isZero())return this.abs();var T$=this.clone(),Y=E$.clone();T$.negative=0,Y.negative=0;for(var f=0;T$.isEven()&&Y.isEven();f++)T$.iushrn(1),Y.iushrn(1);do{for(;T$.isEven();)T$.iushrn(1);for(;Y.isEven();)Y.iushrn(1);var D$=T$.cmp(Y);if(D$<0){var F0=T$;T$=Y,Y=F0}else if(D$===0||Y.cmpn(1)===0)break;T$.isub(Y)}while(!0);return Y.iushln(f)},$$.prototype.invm=function(E$){return this.egcd(E$).a.umod(E$)},$$.prototype.isEven=function(){return(this.words[0]&1)===0},$$.prototype.isOdd=function(){return(this.words[0]&1)===1},$$.prototype.andln=function(E$){return this.words[0]&E$},$$.prototype.bincn=function(E$){r0(typeof E$=="number");var T$=E$%26,Y=(E$-T$)/26,f=1<>>26,C$&=67108863,this.words[F0]=C$}return D$!==0&&(this.words[F0]=D$,this.length++),this},$$.prototype.isZero=function(){return this.length===1&&this.words[0]===0},$$.prototype.cmpn=function(E$){var T$=E$<0;if(this.negative!==0&&!T$)return-1;if(this.negative===0&&T$)return 1;this.strip();var Y;if(this.length>1)Y=1;else{T$&&(E$=-E$),r0(E$<=67108863,"Number is too big");var f=this.words[0]|0;Y=f===E$?0:fE$.length)return 1;if(this.length=0;Y--){var f=this.words[Y]|0,D$=E$.words[Y]|0;if(f!==D$){fD$&&(T$=1);break}}return T$},$$.prototype.gtn=function(E$){return this.cmpn(E$)===1},$$.prototype.gt=function(E$){return this.cmp(E$)===1},$$.prototype.gten=function(E$){return this.cmpn(E$)>=0},$$.prototype.gte=function(E$){return this.cmp(E$)>=0},$$.prototype.ltn=function(E$){return this.cmpn(E$)===-1},$$.prototype.lt=function(E$){return this.cmp(E$)===-1},$$.prototype.lten=function(E$){return this.cmpn(E$)<=0},$$.prototype.lte=function(E$){return this.cmp(E$)<=0},$$.prototype.eqn=function(E$){return this.cmpn(E$)===0},$$.prototype.eq=function(E$){return this.cmp(E$)===0},$$.red=function(E$){return new H$(E$)},$$.prototype.toRed=function(E$){return r0(!this.red,"Already a number in reduction context"),r0(this.negative===0,"red works only with positives"),E$.convertTo(this)._forceRed(E$)},$$.prototype.fromRed=function(){return r0(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},$$.prototype._forceRed=function(E$){return this.red=E$,this},$$.prototype.forceRed=function(E$){return r0(!this.red,"Already a number in reduction context"),this._forceRed(E$)},$$.prototype.redAdd=function(E$){return r0(this.red,"redAdd works only with red numbers"),this.red.add(this,E$)},$$.prototype.redIAdd=function(E$){return r0(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,E$)},$$.prototype.redSub=function(E$){return r0(this.red,"redSub works only with red numbers"),this.red.sub(this,E$)},$$.prototype.redISub=function(E$){return r0(this.red,"redISub works only with red numbers"),this.red.isub(this,E$)},$$.prototype.redShl=function(E$){return r0(this.red,"redShl works only with red numbers"),this.red.shl(this,E$)},$$.prototype.redMul=function(E$){return r0(this.red,"redMul works only with red numbers"),this.red._verify2(this,E$),this.red.mul(this,E$)},$$.prototype.redIMul=function(E$){return r0(this.red,"redMul works only with red numbers"),this.red._verify2(this,E$),this.red.imul(this,E$)},$$.prototype.redSqr=function(){return r0(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},$$.prototype.redISqr=function(){return r0(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},$$.prototype.redSqrt=function(){return r0(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},$$.prototype.redInvm=function(){return r0(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},$$.prototype.redNeg=function(){return r0(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},$$.prototype.redPow=function(E$){return r0(this.red&&!E$.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,E$)};var x={k256:null,p224:null,p192:null,p25519:null};function O$(E$,T$){this.name=E$,this.p=new $$(T$,16),this.n=this.p.bitLength(),this.k=new $$(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}O$.prototype._tmp=function(){var E$=new $$(null);return E$.words=new Array(Math.ceil(this.n/13)),E$},O$.prototype.ireduce=function(E$){var T$=E$,Y;do this.split(T$,this.tmp),T$=this.imulK(T$),T$=T$.iadd(this.tmp),Y=T$.bitLength();while(Y>this.n);var f=Y0?T$.isub(this.p):T$.strip!==void 0?T$.strip():T$._strip(),T$},O$.prototype.split=function(E$,T$){E$.iushrn(this.n,0,T$)},O$.prototype.imulK=function(E$){return E$.imul(this.k)};function J0(){O$.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}i0(J0,O$),J0.prototype.split=function(E$,T$){for(var Y=4194303,f=Math.min(E$.length,9),D$=0;D$>>22,F0=C$}F0>>>=22,E$.words[D$-10]=F0,F0===0&&E$.length>10?E$.length-=10:E$.length-=9},J0.prototype.imulK=function(E$){E$.words[E$.length]=0,E$.words[E$.length+1]=0,E$.length+=2;for(var T$=0,Y=0;Y>>=26,E$.words[Y]=D$,T$=f}return T$!==0&&(E$.words[E$.length++]=T$),E$},$$._prime=function(E$){if(x[E$])return x[E$];var T$;if(E$==="k256")T$=new J0;else if(E$==="p224")T$=new J$;else if(E$==="p192")T$=new F$;else if(E$==="p25519")T$=new A$;else throw new Error("Unknown prime "+E$);return x[E$]=T$,T$};function H$(E$){if(typeof E$=="string"){var T$=$$._prime(E$);this.m=T$.p,this.prime=T$}else r0(E$.gtn(1),"modulus must be greater than 1"),this.m=E$,this.prime=null}H$.prototype._verify1=function(E$){r0(E$.negative===0,"red works only with positives"),r0(E$.red,"red works only with red numbers")},H$.prototype._verify2=function(E$,T$){r0((E$.negative|T$.negative)===0,"red works only with positives"),r0(E$.red&&E$.red===T$.red,"red works only with red numbers")},H$.prototype.imod=function(E$){return this.prime?this.prime.ireduce(E$)._forceRed(this):E$.umod(this.m)._forceRed(this)},H$.prototype.neg=function(E$){return E$.isZero()?E$.clone():this.m.sub(E$)._forceRed(this)},H$.prototype.add=function(E$,T$){this._verify2(E$,T$);var Y=E$.add(T$);return Y.cmp(this.m)>=0&&Y.isub(this.m),Y._forceRed(this)},H$.prototype.iadd=function(E$,T$){this._verify2(E$,T$);var Y=E$.iadd(T$);return Y.cmp(this.m)>=0&&Y.isub(this.m),Y},H$.prototype.sub=function(E$,T$){this._verify2(E$,T$);var Y=E$.sub(T$);return Y.cmpn(0)<0&&Y.iadd(this.m),Y._forceRed(this)},H$.prototype.isub=function(E$,T$){this._verify2(E$,T$);var Y=E$.isub(T$);return Y.cmpn(0)<0&&Y.iadd(this.m),Y},H$.prototype.shl=function(E$,T$){return this._verify1(E$),this.imod(E$.ushln(T$))},H$.prototype.imul=function(E$,T$){return this._verify2(E$,T$),this.imod(E$.imul(T$))},H$.prototype.mul=function(E$,T$){return this._verify2(E$,T$),this.imod(E$.mul(T$))},H$.prototype.isqr=function(E$){return this.imul(E$,E$.clone())},H$.prototype.sqr=function(E$){return this.mul(E$,E$)},H$.prototype.sqrt=function(E$){if(E$.isZero())return E$.clone();var T$=this.m.andln(3);if(r0(T$%2===1),T$===3){var Y=this.m.add(new $$(1)).iushrn(2);return this.pow(E$,Y)}for(var f=this.m.subn(1),D$=0;!f.isZero()&&f.andln(1)===0;)D$++,f.iushrn(1);r0(!f.isZero());var F0=new $$(1).toRed(this),C$=F0.redNeg(),L$=this.m.subn(1).iushrn(1),R$=this.m.bitLength();for(R$=new $$(2*R$*R$).toRed(this);this.pow(R$,L$).cmp(C$)!==0;)R$.redIAdd(C$);for(var P$=this.pow(R$,f),z$=this.pow(E$,f.addn(1).iushrn(1)),M$=this.pow(E$,f),S$=D$;M$.cmp(F0)!==0;){for(var Z=M$,c=0;Z.cmp(F0)!==0;c++)Z=Z.redSqr();r0(c=0;D$--){for(var P$=T$.words[D$],z$=R$-1;z$>=0;z$--){var M$=P$>>z$&1;if(F0!==f[0]&&(F0=this.sqr(F0)),M$===0&&C$===0){L$=0;continue}C$<<=1,C$|=M$,L$++,!(L$!==Y&&(D$!==0||z$!==0))&&(F0=this.mul(F0,f[C$]),L$=0,C$=0)}R$=26}return F0},H$.prototype.convertTo=function(E$){var T$=E$.umod(this.m);return T$===E$?T$.clone():T$},H$.prototype.convertFrom=function(E$){var T$=E$.clone();return T$.red=null,T$},$$.mont=function(E$){return new W$(E$)};function W$(E$){H$.call(this,E$),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new $$(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}i0(W$,H$),W$.prototype.convertTo=function(E$){return this.imod(E$.ushln(this.shift))},W$.prototype.convertFrom=function(E$){var T$=this.imod(E$.mul(this.rinv));return T$.red=null,T$},W$.prototype.imul=function(E$,T$){if(E$.isZero()||T$.isZero())return E$.words[0]=0,E$.length=1,E$;var Y=E$.imul(T$),f=Y.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),D$=Y.isub(f).iushrn(this.shift),F0=D$;return D$.cmp(this.m)>=0?F0=D$.isub(this.m):D$.cmpn(0)<0&&(F0=D$.iadd(this.m)),F0._forceRed(this)},W$.prototype.mul=function(E$,T$){if(E$.isZero()||T$.isZero())return new $$(0)._forceRed(this);var Y=E$.mul(T$),f=Y.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),D$=Y.isub(f).iushrn(this.shift),F0=D$;return D$.cmp(this.m)>=0?F0=D$.isub(this.m):D$.cmpn(0)<0&&(F0=D$.iadd(this.m)),F0._forceRed(this)},W$.prototype.invm=function(E$){var T$=this.imod(E$._invmp(this.m).mul(this.r2));return T$._forceRed(this)}})(typeof m0>"u"||m0,t0)}}),gY=pQ({"node_modules/minimalistic-crypto-utils/lib/utils.js"(t0){var m0=t0;function a0(i0,$$){if(Array.isArray(i0))return i0.slice();if(!i0)return[];var Q$=[];if(typeof i0!="string"){for(var $=0;$>8,O0=N&255;Y$?Q$.push(Y$,O0):Q$.push(O0)}return Q$}m0.toArray=a0;function e0(i0){return i0.length===1?"0"+i0:i0}m0.zero2=e0;function r0(i0){for(var $$="",Q$=0;Q$(V$>>1)-1?K$=(V$>>1)-I$:K$=I$,U$.isubn(K$)):K$=0,G$[X$]=K$,U$.iushrn(1)}return G$}m0.getNAF=i0;function $$(Y$,O0){var Z$=[[],[]];Y$=Y$.clone(),O0=O0.clone();for(var G$=0,V$=0,U$;Y$.cmpn(-G$)>0||O0.cmpn(-V$)>0;){var X$=Y$.andln(3)+G$&3,K$=O0.andln(3)+V$&3;X$===3&&(X$=-1),K$===3&&(K$=-1);var I$;(X$&1)===0?I$=0:(U$=Y$.andln(7)+G$&7,(U$===3||U$===5)&&K$===2?I$=-X$:I$=X$),Z$[0].push(I$);var Q;(K$&1)===0?Q=0:(U$=O0.andln(7)+V$&7,(U$===3||U$===5)&&X$===2?Q=-K$:Q=K$),Z$[1].push(Q),2*G$===I$+1&&(G$=1-G$),2*V$===Q+1&&(V$=1-V$),Y$.iushrn(1),O0.iushrn(1)}return Z$}m0.getJSF=$$;function Q$(Y$,O0,Z$){var G$="_"+O0;Y$.prototype[O0]=function(){return this[G$]!==void 0?this[G$]:this[G$]=Z$.call(this)}}m0.cachedProperty=Q$;function $(Y$){return typeof Y$=="string"?m0.toArray(Y$,"hex"):Y$}m0.parseBytes=$;function N(Y$){return new a0(Y$,"hex","le")}m0.intFromLE=N}}),m=pQ({"node_modules/elliptic/lib/elliptic/curve/base.js"(t0,m0){var a0=kY(),e0=D(),r0=e0.getNAF,i0=e0.getJSF,$$=e0.assert;function Q$(N,Y$){this.type=N,this.p=new a0(Y$.p,16),this.red=Y$.prime?a0.red(Y$.prime):a0.mont(this.p),this.zero=new a0(0).toRed(this.red),this.one=new a0(1).toRed(this.red),this.two=new a0(2).toRed(this.red),this.n=Y$.n&&new a0(Y$.n,16),this.g=Y$.g&&this.pointFromJSON(Y$.g,Y$.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var O0=this.n&&this.p.div(this.n);!O0||O0.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}m0.exports=Q$,Q$.prototype.point=function(){throw new Error("Not implemented")},Q$.prototype.validate=function(){throw new Error("Not implemented")},Q$.prototype._fixedNafMul=function(N,Y$){$$(N.precomputed);var O0=N._getDoubles(),Z$=r0(Y$,1,this._bitLength),G$=(1<=U$;K$--)X$=(X$<<1)+Z$[K$];V$.push(X$)}for(var I$=this.jpoint(null,null,null),Q=this.jpoint(null,null,null),x=G$;x>0;x--){for(U$=0;U$=0;X$--){for(var K$=0;X$>=0&&V$[X$]===0;X$--)K$++;if(X$>=0&&K$++,U$=U$.dblp(K$),X$<0)break;var I$=V$[X$];$$(I$!==0),N.type==="affine"?I$>0?U$=U$.mixedAdd(G$[I$-1>>1]):U$=U$.mixedAdd(G$[-I$-1>>1].neg()):I$>0?U$=U$.add(G$[I$-1>>1]):U$=U$.add(G$[-I$-1>>1].neg())}return N.type==="affine"?U$.toP():U$},Q$.prototype._wnafMulAdd=function(N,Y$,O0,Z$,G$){var V$=this._wnafT1,U$=this._wnafT2,X$=this._wnafT3,K$=0,I$,Q,x;for(I$=0;I$=1;I$-=2){var J0=I$-1,J$=I$;if(V$[J0]!==1||V$[J$]!==1){X$[J0]=r0(O0[J0],V$[J0],this._bitLength),X$[J$]=r0(O0[J$],V$[J$],this._bitLength),K$=Math.max(X$[J0].length,K$),K$=Math.max(X$[J$].length,K$);continue}var F$=[Y$[J0],null,null,Y$[J$]];Y$[J0].y.cmp(Y$[J$].y)===0?(F$[1]=Y$[J0].add(Y$[J$]),F$[2]=Y$[J0].toJ().mixedAdd(Y$[J$].neg())):Y$[J0].y.cmp(Y$[J$].y.redNeg())===0?(F$[1]=Y$[J0].toJ().mixedAdd(Y$[J$]),F$[2]=Y$[J0].add(Y$[J$].neg())):(F$[1]=Y$[J0].toJ().mixedAdd(Y$[J$]),F$[2]=Y$[J0].toJ().mixedAdd(Y$[J$].neg()));var A$=[-3,-1,-5,-7,0,7,5,1,3],H$=i0(O0[J0],O0[J$]);for(K$=Math.max(H$[0].length,K$),X$[J0]=new Array(K$),X$[J$]=new Array(K$),Q=0;Q=0;I$--){for(var f=0;I$>=0;){var D$=!0;for(Q=0;Q=0&&f++,T$=T$.dblp(f),I$<0)break;for(Q=0;Q0?x=U$[Q][F0-1>>1]:F0<0&&(x=U$[Q][-F0-1>>1].neg()),x.type==="affine"?T$=T$.mixedAdd(x):T$=T$.add(x))}}for(I$=0;I$=Math.ceil((N.bitLength()+1)/Y$.step):!1},$.prototype._getDoubles=function(N,Y$){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var O0=[this],Z$=this,G$=0;G$=0&&(J0=I$,J$=Q),x.negative&&(x=x.neg(),O$=O$.neg()),J0.negative&&(J0=J0.neg(),J$=J$.neg()),[{a:x,b:O$},{a:J0,b:J$}]},Q$.prototype._endoSplit=function(Y$){var O0=this.endo.basis,Z$=O0[0],G$=O0[1],V$=G$.b.mul(Y$).divRound(this.n),U$=Z$.b.neg().mul(Y$).divRound(this.n),X$=V$.mul(Z$.a),K$=U$.mul(G$.a),I$=V$.mul(Z$.b),Q=U$.mul(G$.b),x=Y$.sub(X$).sub(K$),O$=I$.add(Q).neg();return{k1:x,k2:O$}},Q$.prototype.pointFromX=function(Y$,O0){Y$=new e0(Y$,16),Y$.red||(Y$=Y$.toRed(this.red));var Z$=Y$.redSqr().redMul(Y$).redIAdd(Y$.redMul(this.a)).redIAdd(this.b),G$=Z$.redSqrt();if(G$.redSqr().redSub(Z$).cmp(this.zero)!==0)throw new Error("invalid point");var V$=G$.fromRed().isOdd();return(O0&&!V$||!O0&&V$)&&(G$=G$.redNeg()),this.point(Y$,G$)},Q$.prototype.validate=function(Y$){if(Y$.inf)return!0;var{x:O0,y:Z$}=Y$,G$=this.a.redMul(O0),V$=O0.redSqr().redMul(O0).redIAdd(G$).redIAdd(this.b);return Z$.redSqr().redISub(V$).cmpn(0)===0},Q$.prototype._endoWnafMulAdd=function(Y$,O0,Z$){for(var G$=this._endoWnafT1,V$=this._endoWnafT2,U$=0;U$":""},$.prototype.isInfinity=function(){return this.inf},$.prototype.add=function(Y$){if(this.inf)return Y$;if(Y$.inf)return this;if(this.eq(Y$))return this.dbl();if(this.neg().eq(Y$))return this.curve.point(null,null);if(this.x.cmp(Y$.x)===0)return this.curve.point(null,null);var O0=this.y.redSub(Y$.y);O0.cmpn(0)!==0&&(O0=O0.redMul(this.x.redSub(Y$.x).redInvm()));var Z$=O0.redSqr().redISub(this.x).redISub(Y$.x),G$=O0.redMul(this.x.redSub(Z$)).redISub(this.y);return this.curve.point(Z$,G$)},$.prototype.dbl=function(){if(this.inf)return this;var Y$=this.y.redAdd(this.y);if(Y$.cmpn(0)===0)return this.curve.point(null,null);var O0=this.curve.a,Z$=this.x.redSqr(),G$=Y$.redInvm(),V$=Z$.redAdd(Z$).redIAdd(Z$).redIAdd(O0).redMul(G$),U$=V$.redSqr().redISub(this.x.redAdd(this.x)),X$=V$.redMul(this.x.redSub(U$)).redISub(this.y);return this.curve.point(U$,X$)},$.prototype.getX=function(){return this.x.fromRed()},$.prototype.getY=function(){return this.y.fromRed()},$.prototype.mul=function(Y$){return Y$=new e0(Y$,16),this.isInfinity()?this:this._hasDoubles(Y$)?this.curve._fixedNafMul(this,Y$):this.curve.endo?this.curve._endoWnafMulAdd([this],[Y$]):this.curve._wnafMul(this,Y$)},$.prototype.mulAdd=function(Y$,O0,Z$){var G$=[this,O0],V$=[Y$,Z$];return this.curve.endo?this.curve._endoWnafMulAdd(G$,V$):this.curve._wnafMulAdd(1,G$,V$,2)},$.prototype.jmulAdd=function(Y$,O0,Z$){var G$=[this,O0],V$=[Y$,Z$];return this.curve.endo?this.curve._endoWnafMulAdd(G$,V$,!0):this.curve._wnafMulAdd(1,G$,V$,2,!0)},$.prototype.eq=function(Y$){return this===Y$||this.inf===Y$.inf&&(this.inf||this.x.cmp(Y$.x)===0&&this.y.cmp(Y$.y)===0)},$.prototype.neg=function(Y$){if(this.inf)return this;var O0=this.curve.point(this.x,this.y.redNeg());if(Y$&&this.precomputed){var Z$=this.precomputed,G$=function(V$){return V$.neg()};O0.precomputed={naf:Z$.naf&&{wnd:Z$.naf.wnd,points:Z$.naf.points.map(G$)},doubles:Z$.doubles&&{step:Z$.doubles.step,points:Z$.doubles.points.map(G$)}}}return O0},$.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var Y$=this.curve.jpoint(this.x,this.y,this.curve.one);return Y$};function N(Y$,O0,Z$,G$){i0.BasePoint.call(this,Y$,"jacobian"),O0===null&&Z$===null&&G$===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new e0(0)):(this.x=new e0(O0,16),this.y=new e0(Z$,16),this.z=new e0(G$,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}r0(N,i0.BasePoint),Q$.prototype.jpoint=function(Y$,O0,Z$){return new N(this,Y$,O0,Z$)},N.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var Y$=this.z.redInvm(),O0=Y$.redSqr(),Z$=this.x.redMul(O0),G$=this.y.redMul(O0).redMul(Y$);return this.curve.point(Z$,G$)},N.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},N.prototype.add=function(Y$){if(this.isInfinity())return Y$;if(Y$.isInfinity())return this;var O0=Y$.z.redSqr(),Z$=this.z.redSqr(),G$=this.x.redMul(O0),V$=Y$.x.redMul(Z$),U$=this.y.redMul(O0.redMul(Y$.z)),X$=Y$.y.redMul(Z$.redMul(this.z)),K$=G$.redSub(V$),I$=U$.redSub(X$);if(K$.cmpn(0)===0)return I$.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var Q=K$.redSqr(),x=Q.redMul(K$),O$=G$.redMul(Q),J0=I$.redSqr().redIAdd(x).redISub(O$).redISub(O$),J$=I$.redMul(O$.redISub(J0)).redISub(U$.redMul(x)),F$=this.z.redMul(Y$.z).redMul(K$);return this.curve.jpoint(J0,J$,F$)},N.prototype.mixedAdd=function(Y$){if(this.isInfinity())return Y$.toJ();if(Y$.isInfinity())return this;var O0=this.z.redSqr(),Z$=this.x,G$=Y$.x.redMul(O0),V$=this.y,U$=Y$.y.redMul(O0).redMul(this.z),X$=Z$.redSub(G$),K$=V$.redSub(U$);if(X$.cmpn(0)===0)return K$.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var I$=X$.redSqr(),Q=I$.redMul(X$),x=Z$.redMul(I$),O$=K$.redSqr().redIAdd(Q).redISub(x).redISub(x),J0=K$.redMul(x.redISub(O$)).redISub(V$.redMul(Q)),J$=this.z.redMul(X$);return this.curve.jpoint(O$,J0,J$)},N.prototype.dblp=function(Y$){if(Y$===0)return this;if(this.isInfinity())return this;if(!Y$)return this.dbl();var O0;if(this.curve.zeroA||this.curve.threeA){var Z$=this;for(O0=0;O0=0)return!1;if(Z$.redIAdd(V$),this.x.cmp(Z$)===0)return!0}},N.prototype.inspect=function(){return this.isInfinity()?"":""},N.prototype.isInfinity=function(){return this.z.cmpn(0)===0}}}),B0=pQ({"node_modules/elliptic/lib/elliptic/curve/mont.js"(t0,m0){var a0=kY(),e0=dQ(),r0=m(),i0=D();function $$($){r0.call(this,"mont",$),this.a=new a0($.a,16).toRed(this.red),this.b=new a0($.b,16).toRed(this.red),this.i4=new a0(4).toRed(this.red).redInvm(),this.two=new a0(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}e0($$,r0),m0.exports=$$,$$.prototype.validate=function($){var N=$.normalize().x,Y$=N.redSqr(),O0=Y$.redMul(N).redAdd(Y$.redMul(this.a)).redAdd(N),Z$=O0.redSqrt();return Z$.redSqr().cmp(O0)===0};function Q$($,N,Y$){r0.BasePoint.call(this,$,"projective"),N===null&&Y$===null?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new a0(N,16),this.z=new a0(Y$,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}e0(Q$,r0.BasePoint),$$.prototype.decodePoint=function($,N){return this.point(i0.toArray($,N),1)},$$.prototype.point=function($,N){return new Q$(this,$,N)},$$.prototype.pointFromJSON=function($){return Q$.fromJSON(this,$)},Q$.prototype.precompute=function(){},Q$.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},Q$.fromJSON=function($,N){return new Q$($,N[0],N[1]||$.one)},Q$.prototype.inspect=function(){return this.isInfinity()?"":""},Q$.prototype.isInfinity=function(){return this.z.cmpn(0)===0},Q$.prototype.dbl=function(){var $=this.x.redAdd(this.z),N=$.redSqr(),Y$=this.x.redSub(this.z),O0=Y$.redSqr(),Z$=N.redSub(O0),G$=N.redMul(O0),V$=Z$.redMul(O0.redAdd(this.curve.a24.redMul(Z$)));return this.curve.point(G$,V$)},Q$.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},Q$.prototype.diffAdd=function($,N){var Y$=this.x.redAdd(this.z),O0=this.x.redSub(this.z),Z$=$.x.redAdd($.z),G$=$.x.redSub($.z),V$=G$.redMul(Y$),U$=Z$.redMul(O0),X$=N.z.redMul(V$.redAdd(U$).redSqr()),K$=N.x.redMul(V$.redISub(U$).redSqr());return this.curve.point(X$,K$)},Q$.prototype.mul=function($){for(var N=$.clone(),Y$=this,O0=this.curve.point(null,null),Z$=this,G$=[];N.cmpn(0)!==0;N.iushrn(1))G$.push(N.andln(1));for(var V$=G$.length-1;V$>=0;V$--)G$[V$]===0?(Y$=Y$.diffAdd(O0,Z$),O0=O0.dbl()):(O0=Y$.diffAdd(O0,Z$),Y$=Y$.dbl());return O0},Q$.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},Q$.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},Q$.prototype.eq=function($){return this.getX().cmp($.getX())===0},Q$.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},Q$.prototype.getX=function(){return this.normalize(),this.x.fromRed()}}}),_Y=pQ({"node_modules/elliptic/lib/elliptic/curve/edwards.js"(t0,m0){var a0=D(),e0=kY(),r0=dQ(),i0=m(),$$=a0.assert;function Q$(N){this.twisted=(N.a|0)!==1,this.mOneA=this.twisted&&(N.a|0)===-1,this.extended=this.mOneA,i0.call(this,"edwards",N),this.a=new e0(N.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new e0(N.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new e0(N.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),$$(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(N.c|0)===1}r0(Q$,i0),m0.exports=Q$,Q$.prototype._mulA=function(N){return this.mOneA?N.redNeg():this.a.redMul(N)},Q$.prototype._mulC=function(N){return this.oneC?N:this.c.redMul(N)},Q$.prototype.jpoint=function(N,Y$,O0,Z$){return this.point(N,Y$,O0,Z$)},Q$.prototype.pointFromX=function(N,Y$){N=new e0(N,16),N.red||(N=N.toRed(this.red));var O0=N.redSqr(),Z$=this.c2.redSub(this.a.redMul(O0)),G$=this.one.redSub(this.c2.redMul(this.d).redMul(O0)),V$=Z$.redMul(G$.redInvm()),U$=V$.redSqrt();if(U$.redSqr().redSub(V$).cmp(this.zero)!==0)throw new Error("invalid point");var X$=U$.fromRed().isOdd();return(Y$&&!X$||!Y$&&X$)&&(U$=U$.redNeg()),this.point(N,U$)},Q$.prototype.pointFromY=function(N,Y$){N=new e0(N,16),N.red||(N=N.toRed(this.red));var O0=N.redSqr(),Z$=O0.redSub(this.c2),G$=O0.redMul(this.d).redMul(this.c2).redSub(this.a),V$=Z$.redMul(G$.redInvm());if(V$.cmp(this.zero)===0){if(Y$)throw new Error("invalid point");return this.point(this.zero,N)}var U$=V$.redSqrt();if(U$.redSqr().redSub(V$).cmp(this.zero)!==0)throw new Error("invalid point");return U$.fromRed().isOdd()!==Y$&&(U$=U$.redNeg()),this.point(U$,N)},Q$.prototype.validate=function(N){if(N.isInfinity())return!0;N.normalize();var Y$=N.x.redSqr(),O0=N.y.redSqr(),Z$=Y$.redMul(this.a).redAdd(O0),G$=this.c2.redMul(this.one.redAdd(this.d.redMul(Y$).redMul(O0)));return Z$.cmp(G$)===0};function $(N,Y$,O0,Z$,G$){i0.BasePoint.call(this,N,"projective"),Y$===null&&O0===null&&Z$===null?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new e0(Y$,16),this.y=new e0(O0,16),this.z=Z$?new e0(Z$,16):this.curve.one,this.t=G$&&new e0(G$,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}r0($,i0.BasePoint),Q$.prototype.pointFromJSON=function(N){return $.fromJSON(this,N)},Q$.prototype.point=function(N,Y$,O0,Z$){return new $(this,N,Y$,O0,Z$)},$.fromJSON=function(N,Y$){return new $(N,Y$[0],Y$[1],Y$[2])},$.prototype.inspect=function(){return this.isInfinity()?"":""},$.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)},$.prototype._extDbl=function(){var N=this.x.redSqr(),Y$=this.y.redSqr(),O0=this.z.redSqr();O0=O0.redIAdd(O0);var Z$=this.curve._mulA(N),G$=this.x.redAdd(this.y).redSqr().redISub(N).redISub(Y$),V$=Z$.redAdd(Y$),U$=V$.redSub(O0),X$=Z$.redSub(Y$),K$=G$.redMul(U$),I$=V$.redMul(X$),Q=G$.redMul(X$),x=U$.redMul(V$);return this.curve.point(K$,I$,x,Q)},$.prototype._projDbl=function(){var N=this.x.redAdd(this.y).redSqr(),Y$=this.x.redSqr(),O0=this.y.redSqr(),Z$,G$,V$,U$,X$,K$;if(this.curve.twisted){U$=this.curve._mulA(Y$);var I$=U$.redAdd(O0);this.zOne?(Z$=N.redSub(Y$).redSub(O0).redMul(I$.redSub(this.curve.two)),G$=I$.redMul(U$.redSub(O0)),V$=I$.redSqr().redSub(I$).redSub(I$)):(X$=this.z.redSqr(),K$=I$.redSub(X$).redISub(X$),Z$=N.redSub(Y$).redISub(O0).redMul(K$),G$=I$.redMul(U$.redSub(O0)),V$=I$.redMul(K$))}else U$=Y$.redAdd(O0),X$=this.curve._mulC(this.z).redSqr(),K$=U$.redSub(X$).redSub(X$),Z$=this.curve._mulC(N.redISub(U$)).redMul(K$),G$=this.curve._mulC(U$).redMul(Y$.redISub(O0)),V$=U$.redMul(K$);return this.curve.point(Z$,G$,V$)},$.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},$.prototype._extAdd=function(N){var Y$=this.y.redSub(this.x).redMul(N.y.redSub(N.x)),O0=this.y.redAdd(this.x).redMul(N.y.redAdd(N.x)),Z$=this.t.redMul(this.curve.dd).redMul(N.t),G$=this.z.redMul(N.z.redAdd(N.z)),V$=O0.redSub(Y$),U$=G$.redSub(Z$),X$=G$.redAdd(Z$),K$=O0.redAdd(Y$),I$=V$.redMul(U$),Q=X$.redMul(K$),x=V$.redMul(K$),O$=U$.redMul(X$);return this.curve.point(I$,Q,O$,x)},$.prototype._projAdd=function(N){var Y$=this.z.redMul(N.z),O0=Y$.redSqr(),Z$=this.x.redMul(N.x),G$=this.y.redMul(N.y),V$=this.curve.d.redMul(Z$).redMul(G$),U$=O0.redSub(V$),X$=O0.redAdd(V$),K$=this.x.redAdd(this.y).redMul(N.x.redAdd(N.y)).redISub(Z$).redISub(G$),I$=Y$.redMul(U$).redMul(K$),Q,x;return this.curve.twisted?(Q=Y$.redMul(X$).redMul(G$.redSub(this.curve._mulA(Z$))),x=U$.redMul(X$)):(Q=Y$.redMul(X$).redMul(G$.redSub(Z$)),x=this.curve._mulC(U$).redMul(X$)),this.curve.point(I$,Q,x)},$.prototype.add=function(N){return this.isInfinity()?N:N.isInfinity()?this:this.curve.extended?this._extAdd(N):this._projAdd(N)},$.prototype.mul=function(N){return this._hasDoubles(N)?this.curve._fixedNafMul(this,N):this.curve._wnafMul(this,N)},$.prototype.mulAdd=function(N,Y$,O0){return this.curve._wnafMulAdd(1,[this,Y$],[N,O0],2,!1)},$.prototype.jmulAdd=function(N,Y$,O0){return this.curve._wnafMulAdd(1,[this,Y$],[N,O0],2,!0)},$.prototype.normalize=function(){if(this.zOne)return this;var N=this.z.redInvm();return this.x=this.x.redMul(N),this.y=this.y.redMul(N),this.t&&(this.t=this.t.redMul(N)),this.z=this.curve.one,this.zOne=!0,this},$.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},$.prototype.getX=function(){return this.normalize(),this.x.fromRed()},$.prototype.getY=function(){return this.normalize(),this.y.fromRed()},$.prototype.eq=function(N){return this===N||this.getX().cmp(N.getX())===0&&this.getY().cmp(N.getY())===0},$.prototype.eqXToP=function(N){var Y$=N.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(Y$)===0)return!0;for(var O0=N.clone(),Z$=this.curve.redN.redMul(this.z);;){if(O0.iadd(this.curve.n),O0.cmp(this.curve.p)>=0)return!1;if(Y$.redIAdd(Z$),this.x.cmp(Y$)===0)return!0}},$.prototype.toP=$.prototype.normalize,$.prototype.mixedAdd=$.prototype.add}}),NY=pQ({"node_modules/elliptic/lib/elliptic/curve/index.js"(t0){var m0=t0;m0.base=m(),m0.short=x0(),m0.mont=B0(),m0.edwards=_Y()}}),xY=pQ({"node_modules/hash.js/lib/hash/utils.js"(t0){var m0=v0(),a0=dQ();t0.inherits=a0;function e0(T$,Y){return(T$.charCodeAt(Y)&64512)!==55296||Y<0||Y+1>=T$.length?!1:(T$.charCodeAt(Y+1)&64512)===56320}function r0(T$,Y){if(Array.isArray(T$))return T$.slice();if(!T$)return[];var f=[];if(typeof T$=="string")if(Y){if(Y==="hex")for(T$=T$.replace(/[^a-z0-9]+/gi,""),T$.length%2!==0&&(T$="0"+T$),F0=0;F0>6|192,f[D$++]=C$&63|128):e0(T$,F0)?(C$=65536+((C$&1023)<<10)+(T$.charCodeAt(++F0)&1023),f[D$++]=C$>>18|240,f[D$++]=C$>>12&63|128,f[D$++]=C$>>6&63|128,f[D$++]=C$&63|128):(f[D$++]=C$>>12|224,f[D$++]=C$>>6&63|128,f[D$++]=C$&63|128)}else for(F0=0;F0>>24|T$>>>8&65280|T$<<8&16711680|(T$&255)<<24;return Y>>>0}t0.htonl=$$;function Q$(T$,Y){for(var f="",D$=0;D$>>0}return C$}t0.join32=Y$;function O0(T$,Y){for(var f=new Array(T$.length*4),D$=0,F0=0;D$>>24,f[F0+1]=C$>>>16&255,f[F0+2]=C$>>>8&255,f[F0+3]=C$&255):(f[F0+3]=C$>>>24,f[F0+2]=C$>>>16&255,f[F0+1]=C$>>>8&255,f[F0]=C$&255)}return f}t0.split32=O0;function Z$(T$,Y){return T$>>>Y|T$<<32-Y}t0.rotr32=Z$;function G$(T$,Y){return T$<>>32-Y}t0.rotl32=G$;function V$(T$,Y){return T$+Y>>>0}t0.sum32=V$;function U$(T$,Y,f){return T$+Y+f>>>0}t0.sum32_3=U$;function X$(T$,Y,f,D$){return T$+Y+f+D$>>>0}t0.sum32_4=X$;function K$(T$,Y,f,D$,F0){return T$+Y+f+D$+F0>>>0}t0.sum32_5=K$;function I$(T$,Y,f,D$){var F0=T$[Y],C$=T$[Y+1],L$=D$+C$>>>0,R$=(L$>>0,T$[Y+1]=L$}t0.sum64=I$;function Q(T$,Y,f,D$){var F0=Y+D$>>>0,C$=(F0>>0}t0.sum64_hi=Q;function x(T$,Y,f,D$){var F0=Y+D$;return F0>>>0}t0.sum64_lo=x;function O$(T$,Y,f,D$,F0,C$,L$,R$){var P$=0,z$=Y;z$=z$+D$>>>0,P$+=z$>>0,P$+=z$>>0,P$+=z$>>0}t0.sum64_4_hi=O$;function J0(T$,Y,f,D$,F0,C$,L$,R$){var P$=Y+D$+C$+R$;return P$>>>0}t0.sum64_4_lo=J0;function J$(T$,Y,f,D$,F0,C$,L$,R$,P$,z$){var M$=0,S$=Y;S$=S$+D$>>>0,M$+=S$>>0,M$+=S$>>0,M$+=S$>>0,M$+=S$>>0}t0.sum64_5_hi=J$;function F$(T$,Y,f,D$,F0,C$,L$,R$,P$,z$){var M$=Y+D$+C$+R$+z$;return M$>>>0}t0.sum64_5_lo=F$;function A$(T$,Y,f){var D$=Y<<32-f|T$>>>f;return D$>>>0}t0.rotr64_hi=A$;function H$(T$,Y,f){var D$=T$<<32-f|Y>>>f;return D$>>>0}t0.rotr64_lo=H$;function W$(T$,Y,f){return T$>>>f}t0.shr64_hi=W$;function E$(T$,Y,f){var D$=T$<<32-f|Y>>>f;return D$>>>0}t0.shr64_lo=E$}}),BY=pQ({"node_modules/hash.js/lib/hash/common.js"(t0){var m0=xY(),a0=v0();function e0(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t0.BlockHash=e0,e0.prototype.update=function(r0,i0){if(r0=m0.toArray(r0,i0),this.pending?this.pending=this.pending.concat(r0):this.pending=r0,this.pendingTotal+=r0.length,this.pending.length>=this._delta8){r0=this.pending;var $$=r0.length%this._delta8;this.pending=r0.slice(r0.length-$$,r0.length),this.pending.length===0&&(this.pending=null),r0=m0.join32(r0,0,r0.length-$$,this.endian);for(var Q$=0;Q$>>24&255,Q$[$++]=r0>>>16&255,Q$[$++]=r0>>>8&255,Q$[$++]=r0&255}else for(Q$[$++]=r0&255,Q$[$++]=r0>>>8&255,Q$[$++]=r0>>>16&255,Q$[$++]=r0>>>24&255,Q$[$++]=0,Q$[$++]=0,Q$[$++]=0,Q$[$++]=0,N=8;N>>3}t0.g0_256=N;function Y$(O0){return a0(O0,17)^a0(O0,19)^O0>>>10}t0.g1_256=Y$}}),wY=pQ({"node_modules/hash.js/lib/hash/sha/1.js"(t0,m0){var a0=xY(),e0=BY(),r0=yY(),i0=a0.rotl32,$$=a0.sum32,Q$=a0.sum32_5,$=r0.ft_1,N=e0.BlockHash,Y$=[1518500249,1859775393,2400959708,3395469782];function O0(){if(!(this instanceof O0))return new O0;N.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}a0.inherits(O0,N),m0.exports=O0,O0.blockSize=512,O0.outSize=160,O0.hmacStrength=80,O0.padLength=64,O0.prototype._update=function(Z$,G$){for(var V$=this.W,U$=0;U$<16;U$++)V$[U$]=Z$[G$+U$];for(;U$this.blockSize&&(i0=new this.Hash().update(i0).digest()),e0(i0.length<=this.blockSize);for(var $$=i0.length;$$=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(Q$,$,N)}m0.exports=i0,i0.prototype._init=function($$,Q$,$){var N=$$.concat(Q$).concat($);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var Y$=0;Y$=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update($$.concat($||[])),this._reseed=1},i0.prototype.generate=function($$,Q$,$,N){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");typeof Q$!="string"&&(N=$,$=Q$,Q$=null),$&&($=e0.toArray($,N||"hex"),this._update($));for(var Y$=[];Y$.length<$$;)this.V=this._hmac().update(this.V).digest(),Y$=Y$.concat(this.V);var O0=Y$.slice(0,$$);return this._update($),this._reseed++,e0.encode(O0,Q$)}}}),oY=pQ({"node_modules/elliptic/lib/elliptic/ec/key.js"(t0,m0){var a0=kY(),e0=D(),r0=e0.assert;function i0($$,Q$){this.ec=$$,this.priv=null,this.pub=null,Q$.priv&&this._importPrivate(Q$.priv,Q$.privEnc),Q$.pub&&this._importPublic(Q$.pub,Q$.pubEnc)}m0.exports=i0,i0.fromPublic=function($$,Q$,$){return Q$ instanceof i0?Q$:new i0($$,{pub:Q$,pubEnc:$})},i0.fromPrivate=function($$,Q$,$){return Q$ instanceof i0?Q$:new i0($$,{priv:Q$,privEnc:$})},i0.prototype.validate=function(){var $$=this.getPublic();return $$.isInfinity()?{result:!1,reason:"Invalid public key"}:$$.validate()?$$.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},i0.prototype.getPublic=function($$,Q$){return typeof $$=="string"&&(Q$=$$,$$=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),Q$?this.pub.encode(Q$,$$):this.pub},i0.prototype.getPrivate=function($$){return $$==="hex"?this.priv.toString(16,2):this.priv},i0.prototype._importPrivate=function($$,Q$){this.priv=new a0($$,Q$||16),this.priv=this.priv.umod(this.ec.curve.n)},i0.prototype._importPublic=function($$,Q$){if($$.x||$$.y){this.ec.curve.type==="mont"?r0($$.x,"Need x coordinate"):(this.ec.curve.type==="short"||this.ec.curve.type==="edwards")&&r0($$.x&&$$.y,"Need both x and y coordinate"),this.pub=this.ec.curve.point($$.x,$$.y);return}this.pub=this.ec.curve.decodePoint($$,Q$)},i0.prototype.derive=function($$){return $$.validate()||r0($$.validate(),"public point not validated"),$$.mul(this.priv).getX()},i0.prototype.sign=function($$,Q$,$){return this.ec.sign($$,this,Q$,$)},i0.prototype.verify=function($$,Q$){return this.ec.verify($$,Q$,this)},i0.prototype.inspect=function(){return""}}}),L=pQ({"node_modules/elliptic/lib/elliptic/ec/signature.js"(t0,m0){var a0=kY(),e0=D(),r0=e0.assert;function i0(Y$,O0){if(Y$ instanceof i0)return Y$;this._importDER(Y$,O0)||(r0(Y$.r&&Y$.s,"Signature without r or s"),this.r=new a0(Y$.r,16),this.s=new a0(Y$.s,16),Y$.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=Y$.recoveryParam)}m0.exports=i0;function $$(){this.place=0}function Q$(Y$,O0){var Z$=Y$[O0.place++];if(!(Z$&128))return Z$;var G$=Z$&15;if(G$===0||G$>4)return!1;for(var V$=0,U$=0,X$=O0.place;U$>>=0;return V$<=127?!1:(O0.place=X$,V$)}function $(Y$){for(var O0=0,Z$=Y$.length-1;!Y$[O0]&&!(Y$[O0+1]&128)&&O0>>3);for(Y$.push(Z$|128);--Z$;)Y$.push(O0>>>(Z$<<3)&255);Y$.push(O0)}i0.prototype.toDER=function(Y$){var O0=this.r.toArray(),Z$=this.s.toArray();for(O0[0]&128&&(O0=[0].concat(O0)),Z$[0]&128&&(Z$=[0].concat(Z$)),O0=$(O0),Z$=$(Z$);!Z$[0]&&!(Z$[1]&128);)Z$=Z$.slice(1);var G$=[2];N(G$,O0.length),G$=G$.concat(O0),G$.push(2),N(G$,Z$.length);var V$=G$.concat(Z$),U$=[48];return N(U$,V$.length),U$=U$.concat(V$),e0.encode(U$,Y$)}}}),e=pQ({"node_modules/elliptic/lib/elliptic/ec/index.js"(t0,m0){var a0=kY(),e0=lY(),r0=D(),i0=bY(),$$=T(),Q$=r0.assert,$=oY(),N=L();function Y$(O0){if(!(this instanceof Y$))return new Y$(O0);typeof O0=="string"&&(Q$(Object.prototype.hasOwnProperty.call(i0,O0),"Unknown curve "+O0),O0=i0[O0]),O0 instanceof i0.PresetCurve&&(O0={curve:O0}),this.curve=O0.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=O0.curve.g,this.g.precompute(O0.curve.n.bitLength()+1),this.hash=O0.hash||O0.curve.hash}m0.exports=Y$,Y$.prototype.keyPair=function(O0){return new $(this,O0)},Y$.prototype.keyFromPrivate=function(O0,Z$){return $.fromPrivate(this,O0,Z$)},Y$.prototype.keyFromPublic=function(O0,Z$){return $.fromPublic(this,O0,Z$)},Y$.prototype.genKeyPair=function(O0){O0||(O0={});for(var Z$=new e0({hash:this.hash,pers:O0.pers,persEnc:O0.persEnc||"utf8",entropy:O0.entropy||$$(this.hash.hmacStrength),entropyEnc:O0.entropy&&O0.entropyEnc||"utf8",nonce:this.n.toArray()}),G$=this.n.byteLength(),V$=this.n.sub(new a0(2));;){var U$=new a0(Z$.generate(G$));if(!(U$.cmp(V$)>0))return U$.iaddn(1),this.keyFromPrivate(U$)}},Y$.prototype._truncateToN=function(O0,Z$){var G$=O0.byteLength()*8-this.n.bitLength();return G$>0&&(O0=O0.ushrn(G$)),!Z$&&O0.cmp(this.n)>=0?O0.sub(this.n):O0},Y$.prototype.sign=function(O0,Z$,G$,V$){typeof G$=="object"&&(V$=G$,G$=null),V$||(V$={}),Z$=this.keyFromPrivate(Z$,G$),O0=this._truncateToN(new a0(O0,16));for(var U$=this.n.byteLength(),X$=Z$.getPrivate().toArray("be",U$),K$=O0.toArray("be",U$),I$=new e0({hash:this.hash,entropy:X$,nonce:K$,pers:V$.pers,persEnc:V$.persEnc||"utf8"}),Q=this.n.sub(new a0(1)),x=0;;x++){var O$=V$.k?V$.k(x):new a0(I$.generate(this.n.byteLength()));if(O$=this._truncateToN(O$,!0),!(O$.cmpn(1)<=0||O$.cmp(Q)>=0)){var J0=this.g.mul(O$);if(!J0.isInfinity()){var J$=J0.getX(),F$=J$.umod(this.n);if(F$.cmpn(0)!==0){var A$=O$.invm(this.n).mul(F$.mul(Z$.getPrivate()).iadd(O0));if(A$=A$.umod(this.n),A$.cmpn(0)!==0){var H$=(J0.getY().isOdd()?1:0)|(J$.cmp(F$)!==0?2:0);return V$.canonical&&A$.cmp(this.nh)>0&&(A$=this.n.sub(A$),H$^=1),new N({r:F$,s:A$,recoveryParam:H$})}}}}}},Y$.prototype.verify=function(O0,Z$,G$,V$){O0=this._truncateToN(new a0(O0,16)),G$=this.keyFromPublic(G$,V$),Z$=new N(Z$,"hex");var{r:U$,s:X$}=Z$;if(U$.cmpn(1)<0||U$.cmp(this.n)>=0||X$.cmpn(1)<0||X$.cmp(this.n)>=0)return!1;var K$=X$.invm(this.n),I$=K$.mul(O0).umod(this.n),Q=K$.mul(U$).umod(this.n),x;return this.curve._maxwellTrick?(x=this.g.jmulAdd(I$,G$.getPublic(),Q),x.isInfinity()?!1:x.eqXToP(U$)):(x=this.g.mulAdd(I$,G$.getPublic(),Q),x.isInfinity()?!1:x.getX().umod(this.n).cmp(U$)===0)},Y$.prototype.recoverPubKey=function(O0,Z$,G$,V$){Q$((3&G$)===G$,"The recovery param is more than two bits"),Z$=new N(Z$,V$);var U$=this.n,X$=new a0(O0),K$=Z$.r,I$=Z$.s,Q=G$&1,x=G$>>1;if(K$.cmp(this.curve.p.umod(this.curve.n))>=0&&x)throw new Error("Unable to find sencond key candinate");x?K$=this.curve.pointFromX(K$.add(this.curve.n),Q):K$=this.curve.pointFromX(K$,Q);var O$=Z$.r.invm(U$),J0=U$.sub(X$).mul(O$).umod(U$),J$=I$.mul(O$).umod(U$);return this.g.mulAdd(J0,K$,J$)},Y$.prototype.getKeyRecoveryParam=function(O0,Z$,G$,V$){if(Z$=new N(Z$,V$),Z$.recoveryParam!==null)return Z$.recoveryParam;for(var U$=0;U$<4;U$++){var X$;try{X$=this.recoverPubKey(O0,Z$,U$)}catch{continue}if(X$.eq(G$))return U$}throw new Error("Unable to find valid recovery factor")}}}),p0=pQ({"node_modules/elliptic/lib/elliptic/eddsa/key.js"(t0,m0){var a0=D(),e0=a0.assert,r0=a0.parseBytes,i0=a0.cachedProperty;function $$(Q$,$){this.eddsa=Q$,this._secret=r0($.secret),Q$.isPoint($.pub)?this._pub=$.pub:this._pubBytes=r0($.pub)}$$.fromPublic=function(Q$,$){return $ instanceof $$?$:new $$(Q$,{pub:$})},$$.fromSecret=function(Q$,$){return $ instanceof $$?$:new $$(Q$,{secret:$})},$$.prototype.secret=function(){return this._secret},i0($$,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())}),i0($$,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())}),i0($$,"privBytes",function(){var Q$=this.eddsa,$=this.hash(),N=Q$.encodingLength-1,Y$=$.slice(0,Q$.encodingLength);return Y$[0]&=248,Y$[N]&=127,Y$[N]|=64,Y$}),i0($$,"priv",function(){return this.eddsa.decodeInt(this.privBytes())}),i0($$,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()}),i0($$,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)}),$$.prototype.sign=function(Q$){return e0(this._secret,"KeyPair can only verify"),this.eddsa.sign(Q$,this)},$$.prototype.verify=function(Q$,$){return this.eddsa.verify(Q$,$,this)},$$.prototype.getSecret=function(Q$){return e0(this._secret,"KeyPair is public only"),a0.encode(this.secret(),Q$)},$$.prototype.getPublic=function(Q$){return a0.encode(this.pubBytes(),Q$)},m0.exports=$$}}),f0=pQ({"node_modules/elliptic/lib/elliptic/eddsa/signature.js"(t0,m0){var a0=kY(),e0=D(),r0=e0.assert,i0=e0.cachedProperty,$$=e0.parseBytes;function Q$($,N){this.eddsa=$,typeof N!="object"&&(N=$$(N)),Array.isArray(N)&&(N={R:N.slice(0,$.encodingLength),S:N.slice($.encodingLength)}),r0(N.R&&N.S,"Signature without R or S"),$.isPoint(N.R)&&(this._R=N.R),N.S instanceof a0&&(this._S=N.S),this._Rencoded=Array.isArray(N.R)?N.R:N.Rencoded,this._Sencoded=Array.isArray(N.S)?N.S:N.Sencoded}i0(Q$,"S",function(){return this.eddsa.decodeInt(this.Sencoded())}),i0(Q$,"R",function(){return this.eddsa.decodePoint(this.Rencoded())}),i0(Q$,"Rencoded",function(){return this.eddsa.encodePoint(this.R())}),i0(Q$,"Sencoded",function(){return this.eddsa.encodeInt(this.S())}),Q$.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},Q$.prototype.toHex=function(){return e0.encode(this.toBytes(),"hex").toUpperCase()},m0.exports=Q$}}),uY=pQ({"node_modules/elliptic/lib/elliptic/eddsa/index.js"(t0,m0){var a0=hY(),e0=bY(),r0=D(),i0=r0.assert,$$=r0.parseBytes,Q$=p0(),$=f0();function N(Y$){if(i0(Y$==="ed25519","only tested with ed25519 so far"),!(this instanceof N))return new N(Y$);Y$=e0[Y$].curve,this.curve=Y$,this.g=Y$.g,this.g.precompute(Y$.n.bitLength()+1),this.pointClass=Y$.point().constructor,this.encodingLength=Math.ceil(Y$.n.bitLength()/8),this.hash=a0.sha512}m0.exports=N,N.prototype.sign=function(Y$,O0){Y$=$$(Y$);var Z$=this.keyFromSecret(O0),G$=this.hashInt(Z$.messagePrefix(),Y$),V$=this.g.mul(G$),U$=this.encodePoint(V$),X$=this.hashInt(U$,Z$.pubBytes(),Y$).mul(Z$.priv()),K$=G$.add(X$).umod(this.curve.n);return this.makeSignature({R:V$,S:K$,Rencoded:U$})},N.prototype.verify=function(Y$,O0,Z$){Y$=$$(Y$),O0=this.makeSignature(O0);var G$=this.keyFromPublic(Z$),V$=this.hashInt(O0.Rencoded(),G$.pubBytes(),Y$),U$=this.g.mul(O0.S()),X$=O0.R().add(G$.pub().mul(V$));return X$.eq(U$)},N.prototype.hashInt=function(){for(var Y$=this.hash(),O0=0;O00?E$:T$},$$.min=function(E$,T$){return E$.cmp(T$)<0?E$:T$},$$.prototype._init=function(E$,T$,Y){if(typeof E$=="number")return this._initNumber(E$,T$,Y);if(typeof E$=="object")return this._initArray(E$,T$,Y);T$==="hex"&&(T$=16),r0(T$===(T$|0)&&T$>=2&&T$<=36),E$=E$.toString().replace(/\s+/g,"");var f=0;E$[0]==="-"&&(f++,this.negative=1),f=0;f-=3)F0=E$[f]|E$[f-1]<<8|E$[f-2]<<16,this.words[D$]|=F0<>>26-C$&67108863,C$+=24,C$>=26&&(C$-=26,D$++);else if(Y==="le")for(f=0,D$=0;f>>26-C$&67108863,C$+=24,C$>=26&&(C$-=26,D$++);return this.strip()};function $(E$,T$){var Y=E$.charCodeAt(T$);return Y>=65&&Y<=70?Y-55:Y>=97&&Y<=102?Y-87:Y-48&15}function N(E$,T$,Y){var f=$(E$,Y);return Y-1>=T$&&(f|=$(E$,Y-1)<<4),f}$$.prototype._parseHex=function(E$,T$,Y){this.length=Math.ceil((E$.length-T$)/6),this.words=new Array(this.length);for(var f=0;f=T$;f-=2)C$=N(E$,T$,f)<=18?(D$-=18,F0+=1,this.words[F0]|=C$>>>26):D$+=8;else{var L$=E$.length-T$;for(f=L$%2===0?T$+1:T$;f=18?(D$-=18,F0+=1,this.words[F0]|=C$>>>26):D$+=8}this.strip()};function Y$(E$,T$,Y,f){for(var D$=0,F0=Math.min(E$.length,Y),C$=T$;C$=49?D$+=L$-49+10:L$>=17?D$+=L$-17+10:D$+=L$}return D$}$$.prototype._parseBase=function(E$,T$,Y){this.words=[0],this.length=1;for(var f=0,D$=1;D$<=67108863;D$*=T$)f++;f--,D$=D$/T$|0;for(var F0=E$.length-Y,C$=F0%f,L$=Math.min(F0,F0-C$)+Y,R$=0,P$=Y;P$1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},$$.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},$$.prototype.inspect=function(){return(this.red?""};var O0=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],Z$=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],G$=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];$$.prototype.toString=function(E$,T$){E$=E$||10,T$=T$|0||1;var Y;if(E$===16||E$==="hex"){Y="";for(var f=0,D$=0,F0=0;F0>>24-f&16777215,D$!==0||F0!==this.length-1?Y=O0[6-L$.length]+L$+Y:Y=L$+Y,f+=2,f>=26&&(f-=26,F0--)}for(D$!==0&&(Y=D$.toString(16)+Y);Y.length%T$!==0;)Y="0"+Y;return this.negative!==0&&(Y="-"+Y),Y}if(E$===(E$|0)&&E$>=2&&E$<=36){var R$=Z$[E$],P$=G$[E$];Y="";var z$=this.clone();for(z$.negative=0;!z$.isZero();){var M$=z$.modn(P$).toString(E$);z$=z$.idivn(P$),z$.isZero()?Y=M$+Y:Y=O0[R$-M$.length]+M$+Y}for(this.isZero()&&(Y="0"+Y);Y.length%T$!==0;)Y="0"+Y;return this.negative!==0&&(Y="-"+Y),Y}r0(!1,"Base should be between 2 and 36")},$$.prototype.toNumber=function(){var E$=this.words[0];return this.length===2?E$+=this.words[1]*67108864:this.length===3&&this.words[2]===1?E$+=4503599627370496+this.words[1]*67108864:this.length>2&&r0(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-E$:E$},$$.prototype.toJSON=function(){return this.toString(16)},$$.prototype.toBuffer=function(E$,T$){return r0(typeof Q$<"u"),this.toArrayLike(Q$,E$,T$)},$$.prototype.toArray=function(E$,T$){return this.toArrayLike(Array,E$,T$)},$$.prototype.toArrayLike=function(E$,T$,Y){var f=this.byteLength(),D$=Y||Math.max(1,f);r0(f<=D$,"byte array longer than desired length"),r0(D$>0,"Requested array length <= 0"),this.strip();var F0=T$==="le",C$=new E$(D$),L$,R$,P$=this.clone();if(F0){for(R$=0;!P$.isZero();R$++)L$=P$.andln(255),P$.iushrn(8),C$[R$]=L$;for(;R$=4096&&(Y+=13,T$>>>=13),T$>=64&&(Y+=7,T$>>>=7),T$>=8&&(Y+=4,T$>>>=4),T$>=2&&(Y+=2,T$>>>=2),Y+T$},$$.prototype._zeroBits=function(E$){if(E$===0)return 26;var T$=E$,Y=0;return(T$&8191)===0&&(Y+=13,T$>>>=13),(T$&127)===0&&(Y+=7,T$>>>=7),(T$&15)===0&&(Y+=4,T$>>>=4),(T$&3)===0&&(Y+=2,T$>>>=2),(T$&1)===0&&Y++,Y},$$.prototype.bitLength=function(){var E$=this.words[this.length-1],T$=this._countBits(E$);return(this.length-1)*26+T$};function V$(E$){for(var T$=new Array(E$.bitLength()),Y=0;Y>>D$}return T$}$$.prototype.zeroBits=function(){if(this.isZero())return 0;for(var E$=0,T$=0;T$E$.length?this.clone().ior(E$):E$.clone().ior(this)},$$.prototype.uor=function(E$){return this.length>E$.length?this.clone().iuor(E$):E$.clone().iuor(this)},$$.prototype.iuand=function(E$){var T$;this.length>E$.length?T$=E$:T$=this;for(var Y=0;YE$.length?this.clone().iand(E$):E$.clone().iand(this)},$$.prototype.uand=function(E$){return this.length>E$.length?this.clone().iuand(E$):E$.clone().iuand(this)},$$.prototype.iuxor=function(E$){var T$,Y;this.length>E$.length?(T$=this,Y=E$):(T$=E$,Y=this);for(var f=0;fE$.length?this.clone().ixor(E$):E$.clone().ixor(this)},$$.prototype.uxor=function(E$){return this.length>E$.length?this.clone().iuxor(E$):E$.clone().iuxor(this)},$$.prototype.inotn=function(E$){r0(typeof E$=="number"&&E$>=0);var T$=Math.ceil(E$/26)|0,Y=E$%26;this._expand(T$),Y>0&&T$--;for(var f=0;f0&&(this.words[f]=~this.words[f]&67108863>>26-Y),this.strip()},$$.prototype.notn=function(E$){return this.clone().inotn(E$)},$$.prototype.setn=function(E$,T$){r0(typeof E$=="number"&&E$>=0);var Y=E$/26|0,f=E$%26;return this._expand(Y+1),T$?this.words[Y]=this.words[Y]|1<E$.length?(Y=this,f=E$):(Y=E$,f=this);for(var D$=0,F0=0;F0>>26;for(;D$!==0&&F0>>26;if(this.length=Y.length,D$!==0)this.words[this.length]=D$,this.length++;else if(Y!==this)for(;F0E$.length?this.clone().iadd(E$):E$.clone().iadd(this)},$$.prototype.isub=function(E$){if(E$.negative!==0){E$.negative=0;var T$=this.iadd(E$);return E$.negative=1,T$._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(E$),this.negative=1,this._normSign();var Y=this.cmp(E$);if(Y===0)return this.negative=0,this.length=1,this.words[0]=0,this;var f,D$;Y>0?(f=this,D$=E$):(f=E$,D$=this);for(var F0=0,C$=0;C$>26,this.words[C$]=T$&67108863;for(;F0!==0&&C$>26,this.words[C$]=T$&67108863;if(F0===0&&C$>>26,M$=R$&67108863,S$=Math.min(P$,T$.length-1),Z=Math.max(0,P$-E$.length+1);Z<=S$;Z++){var c=P$-Z|0;D$=E$.words[c]|0,F0=T$.words[Z]|0,C$=D$*F0+M$,z$+=C$/67108864|0,M$=C$&67108863}Y.words[P$]=M$|0,R$=z$|0}return R$!==0?Y.words[P$]=R$|0:Y.length--,Y.strip()}var X$=function(E$,T$,Y){var f=E$.words,D$=T$.words,F0=Y.words,C$=0,L$,R$,P$,z$=f[0]|0,M$=z$&8191,S$=z$>>>13,Z=f[1]|0,c=Z&8191,v$=Z>>>13,A0=f[2]|0,q$=A0&8191,j$=A0>>>13,k$=f[3]|0,g$=k$&8191,_$=k$>>>13,N$=f[4]|0,x$=N$&8191,G=N$>>>13,B=f[5]|0,B$=B&8191,H0=B>>>13,y$=f[6]|0,w$=y$&8191,p$=y$>>>13,f$=f[7]|0,c$=f$&8191,h$=f$>>>13,d$=f[8]|0,V=d$&8191,h=d$>>>13,W0=f[9]|0,E0=W0&8191,b$=W0>>>13,l$=D$[0]|0,o$=l$&8191,u$=l$>>>13,n$=D$[1]|0,s$=n$&8191,t$=n$>>>13,U=D$[2]|0,d=U&8191,m$=U>>>13,T0=D$[3]|0,a$=T0&8191,e$=T0>>>13,r$=D$[4]|0,i$=r$&8191,$Q=r$>>>13,QQ=D$[5]|0,YQ=QQ&8191,X=QQ>>>13,b=D$[6]|0,ZQ=b&8191,D0=b>>>13,GQ=D$[7]|0,VQ=GQ&8191,UQ=GQ>>>13,XQ=D$[8]|0,KQ=XQ&8191,IQ=XQ>>>13,OQ=D$[9]|0,K=OQ&8191,l=OQ>>>13;Y.negative=E$.negative^T$.negative,Y.length=19,L$=Math.imul(M$,o$),R$=Math.imul(M$,u$),R$=R$+Math.imul(S$,o$)|0,P$=Math.imul(S$,u$);var JQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(JQ>>>26)|0,JQ&=67108863,L$=Math.imul(c,o$),R$=Math.imul(c,u$),R$=R$+Math.imul(v$,o$)|0,P$=Math.imul(v$,u$),L$=L$+Math.imul(M$,s$)|0,R$=R$+Math.imul(M$,t$)|0,R$=R$+Math.imul(S$,s$)|0,P$=P$+Math.imul(S$,t$)|0;var C0=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(C0>>>26)|0,C0&=67108863,L$=Math.imul(q$,o$),R$=Math.imul(q$,u$),R$=R$+Math.imul(j$,o$)|0,P$=Math.imul(j$,u$),L$=L$+Math.imul(c,s$)|0,R$=R$+Math.imul(c,t$)|0,R$=R$+Math.imul(v$,s$)|0,P$=P$+Math.imul(v$,t$)|0,L$=L$+Math.imul(M$,d)|0,R$=R$+Math.imul(M$,m$)|0,R$=R$+Math.imul(S$,d)|0,P$=P$+Math.imul(S$,m$)|0;var FQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(FQ>>>26)|0,FQ&=67108863,L$=Math.imul(g$,o$),R$=Math.imul(g$,u$),R$=R$+Math.imul(_$,o$)|0,P$=Math.imul(_$,u$),L$=L$+Math.imul(q$,s$)|0,R$=R$+Math.imul(q$,t$)|0,R$=R$+Math.imul(j$,s$)|0,P$=P$+Math.imul(j$,t$)|0,L$=L$+Math.imul(c,d)|0,R$=R$+Math.imul(c,m$)|0,R$=R$+Math.imul(v$,d)|0,P$=P$+Math.imul(v$,m$)|0,L$=L$+Math.imul(M$,a$)|0,R$=R$+Math.imul(M$,e$)|0,R$=R$+Math.imul(S$,a$)|0,P$=P$+Math.imul(S$,e$)|0;var AQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(AQ>>>26)|0,AQ&=67108863,L$=Math.imul(x$,o$),R$=Math.imul(x$,u$),R$=R$+Math.imul(G,o$)|0,P$=Math.imul(G,u$),L$=L$+Math.imul(g$,s$)|0,R$=R$+Math.imul(g$,t$)|0,R$=R$+Math.imul(_$,s$)|0,P$=P$+Math.imul(_$,t$)|0,L$=L$+Math.imul(q$,d)|0,R$=R$+Math.imul(q$,m$)|0,R$=R$+Math.imul(j$,d)|0,P$=P$+Math.imul(j$,m$)|0,L$=L$+Math.imul(c,a$)|0,R$=R$+Math.imul(c,e$)|0,R$=R$+Math.imul(v$,a$)|0,P$=P$+Math.imul(v$,e$)|0,L$=L$+Math.imul(M$,i$)|0,R$=R$+Math.imul(M$,$Q)|0,R$=R$+Math.imul(S$,i$)|0,P$=P$+Math.imul(S$,$Q)|0;var HQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(HQ>>>26)|0,HQ&=67108863,L$=Math.imul(B$,o$),R$=Math.imul(B$,u$),R$=R$+Math.imul(H0,o$)|0,P$=Math.imul(H0,u$),L$=L$+Math.imul(x$,s$)|0,R$=R$+Math.imul(x$,t$)|0,R$=R$+Math.imul(G,s$)|0,P$=P$+Math.imul(G,t$)|0,L$=L$+Math.imul(g$,d)|0,R$=R$+Math.imul(g$,m$)|0,R$=R$+Math.imul(_$,d)|0,P$=P$+Math.imul(_$,m$)|0,L$=L$+Math.imul(q$,a$)|0,R$=R$+Math.imul(q$,e$)|0,R$=R$+Math.imul(j$,a$)|0,P$=P$+Math.imul(j$,e$)|0,L$=L$+Math.imul(c,i$)|0,R$=R$+Math.imul(c,$Q)|0,R$=R$+Math.imul(v$,i$)|0,P$=P$+Math.imul(v$,$Q)|0,L$=L$+Math.imul(M$,YQ)|0,R$=R$+Math.imul(M$,X)|0,R$=R$+Math.imul(S$,YQ)|0,P$=P$+Math.imul(S$,X)|0;var WQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(WQ>>>26)|0,WQ&=67108863,L$=Math.imul(w$,o$),R$=Math.imul(w$,u$),R$=R$+Math.imul(p$,o$)|0,P$=Math.imul(p$,u$),L$=L$+Math.imul(B$,s$)|0,R$=R$+Math.imul(B$,t$)|0,R$=R$+Math.imul(H0,s$)|0,P$=P$+Math.imul(H0,t$)|0,L$=L$+Math.imul(x$,d)|0,R$=R$+Math.imul(x$,m$)|0,R$=R$+Math.imul(G,d)|0,P$=P$+Math.imul(G,m$)|0,L$=L$+Math.imul(g$,a$)|0,R$=R$+Math.imul(g$,e$)|0,R$=R$+Math.imul(_$,a$)|0,P$=P$+Math.imul(_$,e$)|0,L$=L$+Math.imul(q$,i$)|0,R$=R$+Math.imul(q$,$Q)|0,R$=R$+Math.imul(j$,i$)|0,P$=P$+Math.imul(j$,$Q)|0,L$=L$+Math.imul(c,YQ)|0,R$=R$+Math.imul(c,X)|0,R$=R$+Math.imul(v$,YQ)|0,P$=P$+Math.imul(v$,X)|0,L$=L$+Math.imul(M$,ZQ)|0,R$=R$+Math.imul(M$,D0)|0,R$=R$+Math.imul(S$,ZQ)|0,P$=P$+Math.imul(S$,D0)|0;var EQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(EQ>>>26)|0,EQ&=67108863,L$=Math.imul(c$,o$),R$=Math.imul(c$,u$),R$=R$+Math.imul(h$,o$)|0,P$=Math.imul(h$,u$),L$=L$+Math.imul(w$,s$)|0,R$=R$+Math.imul(w$,t$)|0,R$=R$+Math.imul(p$,s$)|0,P$=P$+Math.imul(p$,t$)|0,L$=L$+Math.imul(B$,d)|0,R$=R$+Math.imul(B$,m$)|0,R$=R$+Math.imul(H0,d)|0,P$=P$+Math.imul(H0,m$)|0,L$=L$+Math.imul(x$,a$)|0,R$=R$+Math.imul(x$,e$)|0,R$=R$+Math.imul(G,a$)|0,P$=P$+Math.imul(G,e$)|0,L$=L$+Math.imul(g$,i$)|0,R$=R$+Math.imul(g$,$Q)|0,R$=R$+Math.imul(_$,i$)|0,P$=P$+Math.imul(_$,$Q)|0,L$=L$+Math.imul(q$,YQ)|0,R$=R$+Math.imul(q$,X)|0,R$=R$+Math.imul(j$,YQ)|0,P$=P$+Math.imul(j$,X)|0,L$=L$+Math.imul(c,ZQ)|0,R$=R$+Math.imul(c,D0)|0,R$=R$+Math.imul(v$,ZQ)|0,P$=P$+Math.imul(v$,D0)|0,L$=L$+Math.imul(M$,VQ)|0,R$=R$+Math.imul(M$,UQ)|0,R$=R$+Math.imul(S$,VQ)|0,P$=P$+Math.imul(S$,UQ)|0;var TQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(TQ>>>26)|0,TQ&=67108863,L$=Math.imul(V,o$),R$=Math.imul(V,u$),R$=R$+Math.imul(h,o$)|0,P$=Math.imul(h,u$),L$=L$+Math.imul(c$,s$)|0,R$=R$+Math.imul(c$,t$)|0,R$=R$+Math.imul(h$,s$)|0,P$=P$+Math.imul(h$,t$)|0,L$=L$+Math.imul(w$,d)|0,R$=R$+Math.imul(w$,m$)|0,R$=R$+Math.imul(p$,d)|0,P$=P$+Math.imul(p$,m$)|0,L$=L$+Math.imul(B$,a$)|0,R$=R$+Math.imul(B$,e$)|0,R$=R$+Math.imul(H0,a$)|0,P$=P$+Math.imul(H0,e$)|0,L$=L$+Math.imul(x$,i$)|0,R$=R$+Math.imul(x$,$Q)|0,R$=R$+Math.imul(G,i$)|0,P$=P$+Math.imul(G,$Q)|0,L$=L$+Math.imul(g$,YQ)|0,R$=R$+Math.imul(g$,X)|0,R$=R$+Math.imul(_$,YQ)|0,P$=P$+Math.imul(_$,X)|0,L$=L$+Math.imul(q$,ZQ)|0,R$=R$+Math.imul(q$,D0)|0,R$=R$+Math.imul(j$,ZQ)|0,P$=P$+Math.imul(j$,D0)|0,L$=L$+Math.imul(c,VQ)|0,R$=R$+Math.imul(c,UQ)|0,R$=R$+Math.imul(v$,VQ)|0,P$=P$+Math.imul(v$,UQ)|0,L$=L$+Math.imul(M$,KQ)|0,R$=R$+Math.imul(M$,IQ)|0,R$=R$+Math.imul(S$,KQ)|0,P$=P$+Math.imul(S$,IQ)|0;var DQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(DQ>>>26)|0,DQ&=67108863,L$=Math.imul(E0,o$),R$=Math.imul(E0,u$),R$=R$+Math.imul(b$,o$)|0,P$=Math.imul(b$,u$),L$=L$+Math.imul(V,s$)|0,R$=R$+Math.imul(V,t$)|0,R$=R$+Math.imul(h,s$)|0,P$=P$+Math.imul(h,t$)|0,L$=L$+Math.imul(c$,d)|0,R$=R$+Math.imul(c$,m$)|0,R$=R$+Math.imul(h$,d)|0,P$=P$+Math.imul(h$,m$)|0,L$=L$+Math.imul(w$,a$)|0,R$=R$+Math.imul(w$,e$)|0,R$=R$+Math.imul(p$,a$)|0,P$=P$+Math.imul(p$,e$)|0,L$=L$+Math.imul(B$,i$)|0,R$=R$+Math.imul(B$,$Q)|0,R$=R$+Math.imul(H0,i$)|0,P$=P$+Math.imul(H0,$Q)|0,L$=L$+Math.imul(x$,YQ)|0,R$=R$+Math.imul(x$,X)|0,R$=R$+Math.imul(G,YQ)|0,P$=P$+Math.imul(G,X)|0,L$=L$+Math.imul(g$,ZQ)|0,R$=R$+Math.imul(g$,D0)|0,R$=R$+Math.imul(_$,ZQ)|0,P$=P$+Math.imul(_$,D0)|0,L$=L$+Math.imul(q$,VQ)|0,R$=R$+Math.imul(q$,UQ)|0,R$=R$+Math.imul(j$,VQ)|0,P$=P$+Math.imul(j$,UQ)|0,L$=L$+Math.imul(c,KQ)|0,R$=R$+Math.imul(c,IQ)|0,R$=R$+Math.imul(v$,KQ)|0,P$=P$+Math.imul(v$,IQ)|0,L$=L$+Math.imul(M$,K)|0,R$=R$+Math.imul(M$,l)|0,R$=R$+Math.imul(S$,K)|0,P$=P$+Math.imul(S$,l)|0;var I=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(I>>>26)|0,I&=67108863,L$=Math.imul(E0,s$),R$=Math.imul(E0,t$),R$=R$+Math.imul(b$,s$)|0,P$=Math.imul(b$,t$),L$=L$+Math.imul(V,d)|0,R$=R$+Math.imul(V,m$)|0,R$=R$+Math.imul(h,d)|0,P$=P$+Math.imul(h,m$)|0,L$=L$+Math.imul(c$,a$)|0,R$=R$+Math.imul(c$,e$)|0,R$=R$+Math.imul(h$,a$)|0,P$=P$+Math.imul(h$,e$)|0,L$=L$+Math.imul(w$,i$)|0,R$=R$+Math.imul(w$,$Q)|0,R$=R$+Math.imul(p$,i$)|0,P$=P$+Math.imul(p$,$Q)|0,L$=L$+Math.imul(B$,YQ)|0,R$=R$+Math.imul(B$,X)|0,R$=R$+Math.imul(H0,YQ)|0,P$=P$+Math.imul(H0,X)|0,L$=L$+Math.imul(x$,ZQ)|0,R$=R$+Math.imul(x$,D0)|0,R$=R$+Math.imul(G,ZQ)|0,P$=P$+Math.imul(G,D0)|0,L$=L$+Math.imul(g$,VQ)|0,R$=R$+Math.imul(g$,UQ)|0,R$=R$+Math.imul(_$,VQ)|0,P$=P$+Math.imul(_$,UQ)|0,L$=L$+Math.imul(q$,KQ)|0,R$=R$+Math.imul(q$,IQ)|0,R$=R$+Math.imul(j$,KQ)|0,P$=P$+Math.imul(j$,IQ)|0,L$=L$+Math.imul(c,K)|0,R$=R$+Math.imul(c,l)|0,R$=R$+Math.imul(v$,K)|0,P$=P$+Math.imul(v$,l)|0;var o=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(o>>>26)|0,o&=67108863,L$=Math.imul(E0,d),R$=Math.imul(E0,m$),R$=R$+Math.imul(b$,d)|0,P$=Math.imul(b$,m$),L$=L$+Math.imul(V,a$)|0,R$=R$+Math.imul(V,e$)|0,R$=R$+Math.imul(h,a$)|0,P$=P$+Math.imul(h,e$)|0,L$=L$+Math.imul(c$,i$)|0,R$=R$+Math.imul(c$,$Q)|0,R$=R$+Math.imul(h$,i$)|0,P$=P$+Math.imul(h$,$Q)|0,L$=L$+Math.imul(w$,YQ)|0,R$=R$+Math.imul(w$,X)|0,R$=R$+Math.imul(p$,YQ)|0,P$=P$+Math.imul(p$,X)|0,L$=L$+Math.imul(B$,ZQ)|0,R$=R$+Math.imul(B$,D0)|0,R$=R$+Math.imul(H0,ZQ)|0,P$=P$+Math.imul(H0,D0)|0,L$=L$+Math.imul(x$,VQ)|0,R$=R$+Math.imul(x$,UQ)|0,R$=R$+Math.imul(G,VQ)|0,P$=P$+Math.imul(G,UQ)|0,L$=L$+Math.imul(g$,KQ)|0,R$=R$+Math.imul(g$,IQ)|0,R$=R$+Math.imul(_$,KQ)|0,P$=P$+Math.imul(_$,IQ)|0,L$=L$+Math.imul(q$,K)|0,R$=R$+Math.imul(q$,l)|0,R$=R$+Math.imul(j$,K)|0,P$=P$+Math.imul(j$,l)|0;var CQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(CQ>>>26)|0,CQ&=67108863,L$=Math.imul(E0,a$),R$=Math.imul(E0,e$),R$=R$+Math.imul(b$,a$)|0,P$=Math.imul(b$,e$),L$=L$+Math.imul(V,i$)|0,R$=R$+Math.imul(V,$Q)|0,R$=R$+Math.imul(h,i$)|0,P$=P$+Math.imul(h,$Q)|0,L$=L$+Math.imul(c$,YQ)|0,R$=R$+Math.imul(c$,X)|0,R$=R$+Math.imul(h$,YQ)|0,P$=P$+Math.imul(h$,X)|0,L$=L$+Math.imul(w$,ZQ)|0,R$=R$+Math.imul(w$,D0)|0,R$=R$+Math.imul(p$,ZQ)|0,P$=P$+Math.imul(p$,D0)|0,L$=L$+Math.imul(B$,VQ)|0,R$=R$+Math.imul(B$,UQ)|0,R$=R$+Math.imul(H0,VQ)|0,P$=P$+Math.imul(H0,UQ)|0,L$=L$+Math.imul(x$,KQ)|0,R$=R$+Math.imul(x$,IQ)|0,R$=R$+Math.imul(G,KQ)|0,P$=P$+Math.imul(G,IQ)|0,L$=L$+Math.imul(g$,K)|0,R$=R$+Math.imul(g$,l)|0,R$=R$+Math.imul(_$,K)|0,P$=P$+Math.imul(_$,l)|0;var L0=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(L0>>>26)|0,L0&=67108863,L$=Math.imul(E0,i$),R$=Math.imul(E0,$Q),R$=R$+Math.imul(b$,i$)|0,P$=Math.imul(b$,$Q),L$=L$+Math.imul(V,YQ)|0,R$=R$+Math.imul(V,X)|0,R$=R$+Math.imul(h,YQ)|0,P$=P$+Math.imul(h,X)|0,L$=L$+Math.imul(c$,ZQ)|0,R$=R$+Math.imul(c$,D0)|0,R$=R$+Math.imul(h$,ZQ)|0,P$=P$+Math.imul(h$,D0)|0,L$=L$+Math.imul(w$,VQ)|0,R$=R$+Math.imul(w$,UQ)|0,R$=R$+Math.imul(p$,VQ)|0,P$=P$+Math.imul(p$,UQ)|0,L$=L$+Math.imul(B$,KQ)|0,R$=R$+Math.imul(B$,IQ)|0,R$=R$+Math.imul(H0,KQ)|0,P$=P$+Math.imul(H0,IQ)|0,L$=L$+Math.imul(x$,K)|0,R$=R$+Math.imul(x$,l)|0,R$=R$+Math.imul(G,K)|0,P$=P$+Math.imul(G,l)|0;var LQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(LQ>>>26)|0,LQ&=67108863,L$=Math.imul(E0,YQ),R$=Math.imul(E0,X),R$=R$+Math.imul(b$,YQ)|0,P$=Math.imul(b$,X),L$=L$+Math.imul(V,ZQ)|0,R$=R$+Math.imul(V,D0)|0,R$=R$+Math.imul(h,ZQ)|0,P$=P$+Math.imul(h,D0)|0,L$=L$+Math.imul(c$,VQ)|0,R$=R$+Math.imul(c$,UQ)|0,R$=R$+Math.imul(h$,VQ)|0,P$=P$+Math.imul(h$,UQ)|0,L$=L$+Math.imul(w$,KQ)|0,R$=R$+Math.imul(w$,IQ)|0,R$=R$+Math.imul(p$,KQ)|0,P$=P$+Math.imul(p$,IQ)|0,L$=L$+Math.imul(B$,K)|0,R$=R$+Math.imul(B$,l)|0,R$=R$+Math.imul(H0,K)|0,P$=P$+Math.imul(H0,l)|0;var RQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(RQ>>>26)|0,RQ&=67108863,L$=Math.imul(E0,ZQ),R$=Math.imul(E0,D0),R$=R$+Math.imul(b$,ZQ)|0,P$=Math.imul(b$,D0),L$=L$+Math.imul(V,VQ)|0,R$=R$+Math.imul(V,UQ)|0,R$=R$+Math.imul(h,VQ)|0,P$=P$+Math.imul(h,UQ)|0,L$=L$+Math.imul(c$,KQ)|0,R$=R$+Math.imul(c$,IQ)|0,R$=R$+Math.imul(h$,KQ)|0,P$=P$+Math.imul(h$,IQ)|0,L$=L$+Math.imul(w$,K)|0,R$=R$+Math.imul(w$,l)|0,R$=R$+Math.imul(p$,K)|0,P$=P$+Math.imul(p$,l)|0;var PQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(PQ>>>26)|0,PQ&=67108863,L$=Math.imul(E0,VQ),R$=Math.imul(E0,UQ),R$=R$+Math.imul(b$,VQ)|0,P$=Math.imul(b$,UQ),L$=L$+Math.imul(V,KQ)|0,R$=R$+Math.imul(V,IQ)|0,R$=R$+Math.imul(h,KQ)|0,P$=P$+Math.imul(h,IQ)|0,L$=L$+Math.imul(c$,K)|0,R$=R$+Math.imul(c$,l)|0,R$=R$+Math.imul(h$,K)|0,P$=P$+Math.imul(h$,l)|0;var zQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(zQ>>>26)|0,zQ&=67108863,L$=Math.imul(E0,KQ),R$=Math.imul(E0,IQ),R$=R$+Math.imul(b$,KQ)|0,P$=Math.imul(b$,IQ),L$=L$+Math.imul(V,K)|0,R$=R$+Math.imul(V,l)|0,R$=R$+Math.imul(h,K)|0,P$=P$+Math.imul(h,l)|0;var MQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(MQ>>>26)|0,MQ&=67108863,L$=Math.imul(E0,K),R$=Math.imul(E0,l),R$=R$+Math.imul(b$,K)|0,P$=Math.imul(b$,l);var SQ=(C$+L$|0)+((R$&8191)<<13)|0;return C$=(P$+(R$>>>13)|0)+(SQ>>>26)|0,SQ&=67108863,F0[0]=JQ,F0[1]=C0,F0[2]=FQ,F0[3]=AQ,F0[4]=HQ,F0[5]=WQ,F0[6]=EQ,F0[7]=TQ,F0[8]=DQ,F0[9]=I,F0[10]=o,F0[11]=CQ,F0[12]=L0,F0[13]=LQ,F0[14]=RQ,F0[15]=PQ,F0[16]=zQ,F0[17]=MQ,F0[18]=SQ,C$!==0&&(F0[19]=C$,Y.length++),Y};Math.imul||(X$=U$);function K$(E$,T$,Y){Y.negative=T$.negative^E$.negative,Y.length=E$.length+T$.length;for(var f=0,D$=0,F0=0;F0>>26)|0,D$+=C$>>>26,C$&=67108863}Y.words[F0]=L$,f=C$,C$=D$}return f!==0?Y.words[F0]=f:Y.length--,Y.strip()}function I$(E$,T$,Y){var f=new Q;return f.mulp(E$,T$,Y)}$$.prototype.mulTo=function(E$,T$){var Y,f=this.length+E$.length;return this.length===10&&E$.length===10?Y=X$(this,E$,T$):f<63?Y=U$(this,E$,T$):f<1024?Y=K$(this,E$,T$):Y=I$(this,E$,T$),Y};function Q(E$,T$){this.x=E$,this.y=T$}Q.prototype.makeRBT=function(E$){for(var T$=new Array(E$),Y=$$.prototype._countBits(E$)-1,f=0;f>=1;return f},Q.prototype.permute=function(E$,T$,Y,f,D$,F0){for(var C$=0;C$>>1)D$++;return 1<>>13,Y[2*F0+1]=D$&8191,D$=D$>>>13;for(F0=2*T$;F0>=26,T$+=f/67108864|0,T$+=D$>>>26,this.words[Y]=D$&67108863}return T$!==0&&(this.words[Y]=T$,this.length++),this},$$.prototype.muln=function(E$){return this.clone().imuln(E$)},$$.prototype.sqr=function(){return this.mul(this)},$$.prototype.isqr=function(){return this.imul(this.clone())},$$.prototype.pow=function(E$){var T$=V$(E$);if(T$.length===0)return new $$(1);for(var Y=this,f=0;f=0);var T$=E$%26,Y=(E$-T$)/26,f=67108863>>>26-T$<<26-T$,D$;if(T$!==0){var F0=0;for(D$=0;D$>>26-T$}F0&&(this.words[D$]=F0,this.length++)}if(Y!==0){for(D$=this.length-1;D$>=0;D$--)this.words[D$+Y]=this.words[D$];for(D$=0;D$=0);var f;T$?f=(T$-T$%26)/26:f=0;var D$=E$%26,F0=Math.min((E$-D$)/26,this.length),C$=67108863^67108863>>>D$<F0)for(this.length-=F0,R$=0;R$=0&&(P$!==0||R$>=f);R$--){var z$=this.words[R$]|0;this.words[R$]=P$<<26-D$|z$>>>D$,P$=z$&C$}return L$&&P$!==0&&(L$.words[L$.length++]=P$),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},$$.prototype.ishrn=function(E$,T$,Y){return r0(this.negative===0),this.iushrn(E$,T$,Y)},$$.prototype.shln=function(E$){return this.clone().ishln(E$)},$$.prototype.ushln=function(E$){return this.clone().iushln(E$)},$$.prototype.shrn=function(E$){return this.clone().ishrn(E$)},$$.prototype.ushrn=function(E$){return this.clone().iushrn(E$)},$$.prototype.testn=function(E$){r0(typeof E$=="number"&&E$>=0);var T$=E$%26,Y=(E$-T$)/26,f=1<=0);var T$=E$%26,Y=(E$-T$)/26;if(r0(this.negative===0,"imaskn works only with positive numbers"),this.length<=Y)return this;if(T$!==0&&Y++,this.length=Math.min(Y,this.length),T$!==0){var f=67108863^67108863>>>T$<=67108864;T$++)this.words[T$]-=67108864,T$===this.length-1?this.words[T$+1]=1:this.words[T$+1]++;return this.length=Math.max(this.length,T$+1),this},$$.prototype.isubn=function(E$){if(r0(typeof E$=="number"),r0(E$<67108864),E$<0)return this.iaddn(-E$);if(this.negative!==0)return this.negative=0,this.iaddn(E$),this.negative=1,this;if(this.words[0]-=E$,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var T$=0;T$>26)-(L$/67108864|0),this.words[D$+Y]=F0&67108863}for(;D$>26,this.words[D$+Y]=F0&67108863;if(C$===0)return this.strip();for(r0(C$===-1),C$=0,D$=0;D$>26,this.words[D$]=F0&67108863;return this.negative=1,this.strip()},$$.prototype._wordDiv=function(E$,T$){var Y=this.length-E$.length,f=this.clone(),D$=E$,F0=D$.words[D$.length-1]|0,C$=this._countBits(F0);Y=26-C$,Y!==0&&(D$=D$.ushln(Y),f.iushln(Y),F0=D$.words[D$.length-1]|0);var L$=f.length-D$.length,R$;if(T$!=="mod"){R$=new $$(null),R$.length=L$+1,R$.words=new Array(R$.length);for(var P$=0;P$=0;M$--){var S$=(f.words[D$.length+M$]|0)*67108864+(f.words[D$.length+M$-1]|0);for(S$=Math.min(S$/F0|0,67108863),f._ishlnsubmul(D$,S$,M$);f.negative!==0;)S$--,f.negative=0,f._ishlnsubmul(D$,1,M$),f.isZero()||(f.negative^=1);R$&&(R$.words[M$]=S$)}return R$&&R$.strip(),f.strip(),T$!=="div"&&Y!==0&&f.iushrn(Y),{div:R$||null,mod:f}},$$.prototype.divmod=function(E$,T$,Y){if(r0(!E$.isZero()),this.isZero())return{div:new $$(0),mod:new $$(0)};var f,D$,F0;return this.negative!==0&&E$.negative===0?(F0=this.neg().divmod(E$,T$),T$!=="mod"&&(f=F0.div.neg()),T$!=="div"&&(D$=F0.mod.neg(),Y&&D$.negative!==0&&D$.iadd(E$)),{div:f,mod:D$}):this.negative===0&&E$.negative!==0?(F0=this.divmod(E$.neg(),T$),T$!=="mod"&&(f=F0.div.neg()),{div:f,mod:F0.mod}):(this.negative&E$.negative)!==0?(F0=this.neg().divmod(E$.neg(),T$),T$!=="div"&&(D$=F0.mod.neg(),Y&&D$.negative!==0&&D$.isub(E$)),{div:F0.div,mod:D$}):E$.length>this.length||this.cmp(E$)<0?{div:new $$(0),mod:this}:E$.length===1?T$==="div"?{div:this.divn(E$.words[0]),mod:null}:T$==="mod"?{div:null,mod:new $$(this.modn(E$.words[0]))}:{div:this.divn(E$.words[0]),mod:new $$(this.modn(E$.words[0]))}:this._wordDiv(E$,T$)},$$.prototype.div=function(E$){return this.divmod(E$,"div",!1).div},$$.prototype.mod=function(E$){return this.divmod(E$,"mod",!1).mod},$$.prototype.umod=function(E$){return this.divmod(E$,"mod",!0).mod},$$.prototype.divRound=function(E$){var T$=this.divmod(E$);if(T$.mod.isZero())return T$.div;var Y=T$.div.negative!==0?T$.mod.isub(E$):T$.mod,f=E$.ushrn(1),D$=E$.andln(1),F0=Y.cmp(f);return F0<0||D$===1&&F0===0?T$.div:T$.div.negative!==0?T$.div.isubn(1):T$.div.iaddn(1)},$$.prototype.modn=function(E$){r0(E$<=67108863);for(var T$=(1<<26)%E$,Y=0,f=this.length-1;f>=0;f--)Y=(T$*Y+(this.words[f]|0))%E$;return Y},$$.prototype.idivn=function(E$){r0(E$<=67108863);for(var T$=0,Y=this.length-1;Y>=0;Y--){var f=(this.words[Y]|0)+T$*67108864;this.words[Y]=f/E$|0,T$=f%E$}return this.strip()},$$.prototype.divn=function(E$){return this.clone().idivn(E$)},$$.prototype.egcd=function(E$){r0(E$.negative===0),r0(!E$.isZero());var T$=this,Y=E$.clone();T$.negative!==0?T$=T$.umod(E$):T$=T$.clone();for(var f=new $$(1),D$=new $$(0),F0=new $$(0),C$=new $$(1),L$=0;T$.isEven()&&Y.isEven();)T$.iushrn(1),Y.iushrn(1),++L$;for(var R$=Y.clone(),P$=T$.clone();!T$.isZero();){for(var z$=0,M$=1;(T$.words[0]&M$)===0&&z$<26;++z$,M$<<=1);if(z$>0)for(T$.iushrn(z$);z$-- >0;)(f.isOdd()||D$.isOdd())&&(f.iadd(R$),D$.isub(P$)),f.iushrn(1),D$.iushrn(1);for(var S$=0,Z=1;(Y.words[0]&Z)===0&&S$<26;++S$,Z<<=1);if(S$>0)for(Y.iushrn(S$);S$-- >0;)(F0.isOdd()||C$.isOdd())&&(F0.iadd(R$),C$.isub(P$)),F0.iushrn(1),C$.iushrn(1);T$.cmp(Y)>=0?(T$.isub(Y),f.isub(F0),D$.isub(C$)):(Y.isub(T$),F0.isub(f),C$.isub(D$))}return{a:F0,b:C$,gcd:Y.iushln(L$)}},$$.prototype._invmp=function(E$){r0(E$.negative===0),r0(!E$.isZero());var T$=this,Y=E$.clone();T$.negative!==0?T$=T$.umod(E$):T$=T$.clone();for(var f=new $$(1),D$=new $$(0),F0=Y.clone();T$.cmpn(1)>0&&Y.cmpn(1)>0;){for(var C$=0,L$=1;(T$.words[0]&L$)===0&&C$<26;++C$,L$<<=1);if(C$>0)for(T$.iushrn(C$);C$-- >0;)f.isOdd()&&f.iadd(F0),f.iushrn(1);for(var R$=0,P$=1;(Y.words[0]&P$)===0&&R$<26;++R$,P$<<=1);if(R$>0)for(Y.iushrn(R$);R$-- >0;)D$.isOdd()&&D$.iadd(F0),D$.iushrn(1);T$.cmp(Y)>=0?(T$.isub(Y),f.isub(D$)):(Y.isub(T$),D$.isub(f))}var z$;return T$.cmpn(1)===0?z$=f:z$=D$,z$.cmpn(0)<0&&z$.iadd(E$),z$},$$.prototype.gcd=function(E$){if(this.isZero())return E$.abs();if(E$.isZero())return this.abs();var T$=this.clone(),Y=E$.clone();T$.negative=0,Y.negative=0;for(var f=0;T$.isEven()&&Y.isEven();f++)T$.iushrn(1),Y.iushrn(1);do{for(;T$.isEven();)T$.iushrn(1);for(;Y.isEven();)Y.iushrn(1);var D$=T$.cmp(Y);if(D$<0){var F0=T$;T$=Y,Y=F0}else if(D$===0||Y.cmpn(1)===0)break;T$.isub(Y)}while(!0);return Y.iushln(f)},$$.prototype.invm=function(E$){return this.egcd(E$).a.umod(E$)},$$.prototype.isEven=function(){return(this.words[0]&1)===0},$$.prototype.isOdd=function(){return(this.words[0]&1)===1},$$.prototype.andln=function(E$){return this.words[0]&E$},$$.prototype.bincn=function(E$){r0(typeof E$=="number");var T$=E$%26,Y=(E$-T$)/26,f=1<>>26,C$&=67108863,this.words[F0]=C$}return D$!==0&&(this.words[F0]=D$,this.length++),this},$$.prototype.isZero=function(){return this.length===1&&this.words[0]===0},$$.prototype.cmpn=function(E$){var T$=E$<0;if(this.negative!==0&&!T$)return-1;if(this.negative===0&&T$)return 1;this.strip();var Y;if(this.length>1)Y=1;else{T$&&(E$=-E$),r0(E$<=67108863,"Number is too big");var f=this.words[0]|0;Y=f===E$?0:fE$.length)return 1;if(this.length=0;Y--){var f=this.words[Y]|0,D$=E$.words[Y]|0;if(f!==D$){fD$&&(T$=1);break}}return T$},$$.prototype.gtn=function(E$){return this.cmpn(E$)===1},$$.prototype.gt=function(E$){return this.cmp(E$)===1},$$.prototype.gten=function(E$){return this.cmpn(E$)>=0},$$.prototype.gte=function(E$){return this.cmp(E$)>=0},$$.prototype.ltn=function(E$){return this.cmpn(E$)===-1},$$.prototype.lt=function(E$){return this.cmp(E$)===-1},$$.prototype.lten=function(E$){return this.cmpn(E$)<=0},$$.prototype.lte=function(E$){return this.cmp(E$)<=0},$$.prototype.eqn=function(E$){return this.cmpn(E$)===0},$$.prototype.eq=function(E$){return this.cmp(E$)===0},$$.red=function(E$){return new H$(E$)},$$.prototype.toRed=function(E$){return r0(!this.red,"Already a number in reduction context"),r0(this.negative===0,"red works only with positives"),E$.convertTo(this)._forceRed(E$)},$$.prototype.fromRed=function(){return r0(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},$$.prototype._forceRed=function(E$){return this.red=E$,this},$$.prototype.forceRed=function(E$){return r0(!this.red,"Already a number in reduction context"),this._forceRed(E$)},$$.prototype.redAdd=function(E$){return r0(this.red,"redAdd works only with red numbers"),this.red.add(this,E$)},$$.prototype.redIAdd=function(E$){return r0(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,E$)},$$.prototype.redSub=function(E$){return r0(this.red,"redSub works only with red numbers"),this.red.sub(this,E$)},$$.prototype.redISub=function(E$){return r0(this.red,"redISub works only with red numbers"),this.red.isub(this,E$)},$$.prototype.redShl=function(E$){return r0(this.red,"redShl works only with red numbers"),this.red.shl(this,E$)},$$.prototype.redMul=function(E$){return r0(this.red,"redMul works only with red numbers"),this.red._verify2(this,E$),this.red.mul(this,E$)},$$.prototype.redIMul=function(E$){return r0(this.red,"redMul works only with red numbers"),this.red._verify2(this,E$),this.red.imul(this,E$)},$$.prototype.redSqr=function(){return r0(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},$$.prototype.redISqr=function(){return r0(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},$$.prototype.redSqrt=function(){return r0(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},$$.prototype.redInvm=function(){return r0(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},$$.prototype.redNeg=function(){return r0(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},$$.prototype.redPow=function(E$){return r0(this.red&&!E$.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,E$)};var x={k256:null,p224:null,p192:null,p25519:null};function O$(E$,T$){this.name=E$,this.p=new $$(T$,16),this.n=this.p.bitLength(),this.k=new $$(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}O$.prototype._tmp=function(){var E$=new $$(null);return E$.words=new Array(Math.ceil(this.n/13)),E$},O$.prototype.ireduce=function(E$){var T$=E$,Y;do this.split(T$,this.tmp),T$=this.imulK(T$),T$=T$.iadd(this.tmp),Y=T$.bitLength();while(Y>this.n);var f=Y0?T$.isub(this.p):T$.strip!==void 0?T$.strip():T$._strip(),T$},O$.prototype.split=function(E$,T$){E$.iushrn(this.n,0,T$)},O$.prototype.imulK=function(E$){return E$.imul(this.k)};function J0(){O$.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}i0(J0,O$),J0.prototype.split=function(E$,T$){for(var Y=4194303,f=Math.min(E$.length,9),D$=0;D$>>22,F0=C$}F0>>>=22,E$.words[D$-10]=F0,F0===0&&E$.length>10?E$.length-=10:E$.length-=9},J0.prototype.imulK=function(E$){E$.words[E$.length]=0,E$.words[E$.length+1]=0,E$.length+=2;for(var T$=0,Y=0;Y>>=26,E$.words[Y]=D$,T$=f}return T$!==0&&(E$.words[E$.length++]=T$),E$},$$._prime=function(E$){if(x[E$])return x[E$];var T$;if(E$==="k256")T$=new J0;else if(E$==="p224")T$=new J$;else if(E$==="p192")T$=new F$;else if(E$==="p25519")T$=new A$;else throw new Error("Unknown prime "+E$);return x[E$]=T$,T$};function H$(E$){if(typeof E$=="string"){var T$=$$._prime(E$);this.m=T$.p,this.prime=T$}else r0(E$.gtn(1),"modulus must be greater than 1"),this.m=E$,this.prime=null}H$.prototype._verify1=function(E$){r0(E$.negative===0,"red works only with positives"),r0(E$.red,"red works only with red numbers")},H$.prototype._verify2=function(E$,T$){r0((E$.negative|T$.negative)===0,"red works only with positives"),r0(E$.red&&E$.red===T$.red,"red works only with red numbers")},H$.prototype.imod=function(E$){return this.prime?this.prime.ireduce(E$)._forceRed(this):E$.umod(this.m)._forceRed(this)},H$.prototype.neg=function(E$){return E$.isZero()?E$.clone():this.m.sub(E$)._forceRed(this)},H$.prototype.add=function(E$,T$){this._verify2(E$,T$);var Y=E$.add(T$);return Y.cmp(this.m)>=0&&Y.isub(this.m),Y._forceRed(this)},H$.prototype.iadd=function(E$,T$){this._verify2(E$,T$);var Y=E$.iadd(T$);return Y.cmp(this.m)>=0&&Y.isub(this.m),Y},H$.prototype.sub=function(E$,T$){this._verify2(E$,T$);var Y=E$.sub(T$);return Y.cmpn(0)<0&&Y.iadd(this.m),Y._forceRed(this)},H$.prototype.isub=function(E$,T$){this._verify2(E$,T$);var Y=E$.isub(T$);return Y.cmpn(0)<0&&Y.iadd(this.m),Y},H$.prototype.shl=function(E$,T$){return this._verify1(E$),this.imod(E$.ushln(T$))},H$.prototype.imul=function(E$,T$){return this._verify2(E$,T$),this.imod(E$.imul(T$))},H$.prototype.mul=function(E$,T$){return this._verify2(E$,T$),this.imod(E$.mul(T$))},H$.prototype.isqr=function(E$){return this.imul(E$,E$.clone())},H$.prototype.sqr=function(E$){return this.mul(E$,E$)},H$.prototype.sqrt=function(E$){if(E$.isZero())return E$.clone();var T$=this.m.andln(3);if(r0(T$%2===1),T$===3){var Y=this.m.add(new $$(1)).iushrn(2);return this.pow(E$,Y)}for(var f=this.m.subn(1),D$=0;!f.isZero()&&f.andln(1)===0;)D$++,f.iushrn(1);r0(!f.isZero());var F0=new $$(1).toRed(this),C$=F0.redNeg(),L$=this.m.subn(1).iushrn(1),R$=this.m.bitLength();for(R$=new $$(2*R$*R$).toRed(this);this.pow(R$,L$).cmp(C$)!==0;)R$.redIAdd(C$);for(var P$=this.pow(R$,f),z$=this.pow(E$,f.addn(1).iushrn(1)),M$=this.pow(E$,f),S$=D$;M$.cmp(F0)!==0;){for(var Z=M$,c=0;Z.cmp(F0)!==0;c++)Z=Z.redSqr();r0(c=0;D$--){for(var P$=T$.words[D$],z$=R$-1;z$>=0;z$--){var M$=P$>>z$&1;if(F0!==f[0]&&(F0=this.sqr(F0)),M$===0&&C$===0){L$=0;continue}C$<<=1,C$|=M$,L$++,!(L$!==Y&&(D$!==0||z$!==0))&&(F0=this.mul(F0,f[C$]),L$=0,C$=0)}R$=26}return F0},H$.prototype.convertTo=function(E$){var T$=E$.umod(this.m);return T$===E$?T$.clone():T$},H$.prototype.convertFrom=function(E$){var T$=E$.clone();return T$.red=null,T$},$$.mont=function(E$){return new W$(E$)};function W$(E$){H$.call(this,E$),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new $$(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}i0(W$,H$),W$.prototype.convertTo=function(E$){return this.imod(E$.ushln(this.shift))},W$.prototype.convertFrom=function(E$){var T$=this.imod(E$.mul(this.rinv));return T$.red=null,T$},W$.prototype.imul=function(E$,T$){if(E$.isZero()||T$.isZero())return E$.words[0]=0,E$.length=1,E$;var Y=E$.imul(T$),f=Y.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),D$=Y.isub(f).iushrn(this.shift),F0=D$;return D$.cmp(this.m)>=0?F0=D$.isub(this.m):D$.cmpn(0)<0&&(F0=D$.iadd(this.m)),F0._forceRed(this)},W$.prototype.mul=function(E$,T$){if(E$.isZero()||T$.isZero())return new $$(0)._forceRed(this);var Y=E$.mul(T$),f=Y.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),D$=Y.isub(f).iushrn(this.shift),F0=D$;return D$.cmp(this.m)>=0?F0=D$.isub(this.m):D$.cmpn(0)<0&&(F0=D$.iadd(this.m)),F0._forceRed(this)},W$.prototype.invm=function(E$){var T$=this.imod(E$._invmp(this.m).mul(this.r2));return T$._forceRed(this)}})(typeof m0>"u"||m0,t0)}}),tY=pQ({"node_modules/safer-buffer/safer.js"(t0,m0){var a0=P0,e0=G0,r0={},i0;for(i0 in a0)!a0.hasOwnProperty(i0)||i0==="SlowBuffer"||i0==="Buffer"||(r0[i0]=a0[i0]);var $$=r0.Buffer={};for(i0 in e0)!e0.hasOwnProperty(i0)||i0==="allocUnsafe"||i0==="allocUnsafeSlow"||($$[i0]=e0[i0]);if(r0.Buffer.prototype=e0.prototype,(!$$.from||$$.from===Uint8Array.from)&&($$.from=function(Q$,$,N){if(typeof Q$=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof Q$);if(Q$&&typeof Q$.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof Q$);return e0(Q$,$,N)}),$$.alloc||($$.alloc=function(Q$,$,N){if(typeof Q$!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof Q$);if(Q$<0||Q$>=2*(1<<30))throw new RangeError('The value "'+Q$+'" is invalid for option "size"');var Y$=e0(Q$);return!$||$.length===0?Y$.fill(0):typeof N=="string"?Y$.fill($,N):Y$.fill($),Y$}),!r0.kStringMaxLength)try{r0.kStringMaxLength=yQ}catch{}r0.constants||(r0.constants={MAX_LENGTH:r0.kMaxLength},r0.kStringMaxLength&&(r0.constants.MAX_STRING_LENGTH=r0.kStringMaxLength)),m0.exports=r0}}),mY=pQ({"node_modules/asn1.js/lib/asn1/base/reporter.js"(t0){var m0=dQ();function a0(r0){this._reporterState={obj:null,path:[],options:r0||{},errors:[]}}t0.Reporter=a0,a0.prototype.isError=function(r0){return r0 instanceof e0},a0.prototype.save=function(){let r0=this._reporterState;return{obj:r0.obj,pathLen:r0.path.length}},a0.prototype.restore=function(r0){let i0=this._reporterState;i0.obj=r0.obj,i0.path=i0.path.slice(0,r0.pathLen)},a0.prototype.enterKey=function(r0){return this._reporterState.path.push(r0)},a0.prototype.exitKey=function(r0){let i0=this._reporterState;i0.path=i0.path.slice(0,r0-1)},a0.prototype.leaveKey=function(r0,i0,$$){let Q$=this._reporterState;this.exitKey(r0),Q$.obj!==null&&(Q$.obj[i0]=$$)},a0.prototype.path=function(){return this._reporterState.path.join("/")},a0.prototype.enterObject=function(){let r0=this._reporterState,i0=r0.obj;return r0.obj={},i0},a0.prototype.leaveObject=function(r0){let i0=this._reporterState,$$=i0.obj;return i0.obj=r0,$$},a0.prototype.error=function(r0){let i0,$$=this._reporterState,Q$=r0 instanceof e0;if(Q$?i0=r0:i0=new e0($$.path.map(function($){return"["+JSON.stringify($)+"]"}).join(""),r0.message||r0,r0.stack),!$$.options.partial)throw i0;return Q$||$$.errors.push(i0),i0},a0.prototype.wrapResult=function(r0){let i0=this._reporterState;return i0.options.partial?{result:this.isError(r0)?null:r0,errors:i0.errors}:r0};function e0(r0,i0){this.path=r0,this.rethrow(i0)}m0(e0,Error),e0.prototype.rethrow=function(r0){if(this.message=r0+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,e0),!this.stack)try{throw new Error(this.message)}catch(i0){this.stack=i0.stack}return this}}}),kQ=pQ({"node_modules/asn1.js/lib/asn1/base/buffer.js"(t0){var m0=dQ(),a0=mY().Reporter,e0=tY().Buffer;function r0($$,Q$){if(a0.call(this,Q$),!e0.isBuffer($$)){this.error("Input not Buffer");return}this.base=$$,this.offset=0,this.length=$$.length}m0(r0,a0),t0.DecoderBuffer=r0,r0.isDecoderBuffer=function($$){return $$ instanceof r0?!0:typeof $$=="object"&&e0.isBuffer($$.base)&&$$.constructor.name==="DecoderBuffer"&&typeof $$.offset=="number"&&typeof $$.length=="number"&&typeof $$.save=="function"&&typeof $$.restore=="function"&&typeof $$.isEmpty=="function"&&typeof $$.readUInt8=="function"&&typeof $$.skip=="function"&&typeof $$.raw=="function"},r0.prototype.save=function(){return{offset:this.offset,reporter:a0.prototype.save.call(this)}},r0.prototype.restore=function($$){let Q$=new r0(this.base);return Q$.offset=$$.offset,Q$.length=this.offset,this.offset=$$.offset,a0.prototype.restore.call(this,$$.reporter),Q$},r0.prototype.isEmpty=function(){return this.offset===this.length},r0.prototype.readUInt8=function($$){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error($$||"DecoderBuffer overrun")},r0.prototype.skip=function($$,Q$){if(!(this.offset+$$<=this.length))return this.error(Q$||"DecoderBuffer overrun");let $=new r0(this.base);return $._reporterState=this._reporterState,$.offset=this.offset,$.length=this.offset+$$,this.offset+=$$,$},r0.prototype.raw=function($$){return this.base.slice($$?$$.offset:this.offset,this.length)};function i0($$,Q$){if(Array.isArray($$))this.length=0,this.value=$$.map(function($){return i0.isEncoderBuffer($)||($=new i0($,Q$)),this.length+=$.length,$},this);else if(typeof $$=="number"){if(!(0<=$$&&$$<=255))return Q$.error("non-byte EncoderBuffer value");this.value=$$,this.length=1}else if(typeof $$=="string")this.value=$$,this.length=e0.byteLength($$);else if(e0.isBuffer($$))this.value=$$,this.length=$$.length;else return Q$.error("Unsupported type: "+typeof $$)}t0.EncoderBuffer=i0,i0.isEncoderBuffer=function($$){return $$ instanceof i0?!0:typeof $$=="object"&&$$.constructor.name==="EncoderBuffer"&&typeof $$.length=="number"&&typeof $$.join=="function"},i0.prototype.join=function($$,Q$){return $$||($$=e0.alloc(this.length)),Q$||(Q$=0),this.length===0||(Array.isArray(this.value)?this.value.forEach(function($){$.join($$,Q$),Q$+=$.length}):(typeof this.value=="number"?$$[Q$]=this.value:typeof this.value=="string"?$$.write(this.value,Q$):e0.isBuffer(this.value)&&this.value.copy($$,Q$),Q$+=this.length)),$$}}}),aY=pQ({"node_modules/asn1.js/lib/asn1/base/node.js"(t0,m0){var a0=mY().Reporter,e0=kQ().EncoderBuffer,r0=kQ().DecoderBuffer,i0=v0(),$$=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],Q$=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat($$),$=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];function N(O0,Z$,G$){let V$={};this._baseState=V$,V$.name=G$,V$.enc=O0,V$.parent=Z$||null,V$.children=null,V$.tag=null,V$.args=null,V$.reverseArgs=null,V$.choice=null,V$.optional=!1,V$.any=!1,V$.obj=!1,V$.use=null,V$.useDecoder=null,V$.key=null,V$.default=null,V$.explicit=null,V$.implicit=null,V$.contains=null,V$.parent||(V$.children=[],this._wrap())}m0.exports=N;var Y$=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];N.prototype.clone=function(){let O0=this._baseState,Z$={};Y$.forEach(function(V$){Z$[V$]=O0[V$]});let G$=new this.constructor(Z$.parent);return G$._baseState=Z$,G$},N.prototype._wrap=function(){let O0=this._baseState;Q$.forEach(function(Z$){this[Z$]=function(){let G$=new this.constructor(this);return O0.children.push(G$),G$[Z$].apply(G$,arguments)}},this)},N.prototype._init=function(O0){let Z$=this._baseState;i0(Z$.parent===null),O0.call(this),Z$.children=Z$.children.filter(function(G$){return G$._baseState.parent===this},this),i0.equal(Z$.children.length,1,"Root node can have only one child")},N.prototype._useArgs=function(O0){let Z$=this._baseState,G$=O0.filter(function(V$){return V$ instanceof this.constructor},this);O0=O0.filter(function(V$){return!(V$ instanceof this.constructor)},this),G$.length!==0&&(i0(Z$.children===null),Z$.children=G$,G$.forEach(function(V$){V$._baseState.parent=this},this)),O0.length!==0&&(i0(Z$.args===null),Z$.args=O0,Z$.reverseArgs=O0.map(function(V$){if(typeof V$!="object"||V$.constructor!==Object)return V$;let U$={};return Object.keys(V$).forEach(function(X$){X$==(X$|0)&&(X$|=0);let K$=V$[X$];U$[K$]=X$}),U$}))},$.forEach(function(O0){N.prototype[O0]=function(){let Z$=this._baseState;throw new Error(O0+" not implemented for encoding: "+Z$.enc)}}),$$.forEach(function(O0){N.prototype[O0]=function(){let Z$=this._baseState,G$=Array.prototype.slice.call(arguments);return i0(Z$.tag===null),Z$.tag=O0,this._useArgs(G$),this}}),N.prototype.use=function(O0){i0(O0);let Z$=this._baseState;return i0(Z$.use===null),Z$.use=O0,this},N.prototype.optional=function(){let O0=this._baseState;return O0.optional=!0,this},N.prototype.def=function(O0){let Z$=this._baseState;return i0(Z$.default===null),Z$.default=O0,Z$.optional=!0,this},N.prototype.explicit=function(O0){let Z$=this._baseState;return i0(Z$.explicit===null&&Z$.implicit===null),Z$.explicit=O0,this},N.prototype.implicit=function(O0){let Z$=this._baseState;return i0(Z$.explicit===null&&Z$.implicit===null),Z$.implicit=O0,this},N.prototype.obj=function(){let O0=this._baseState,Z$=Array.prototype.slice.call(arguments);return O0.obj=!0,Z$.length!==0&&this._useArgs(Z$),this},N.prototype.key=function(O0){let Z$=this._baseState;return i0(Z$.key===null),Z$.key=O0,this},N.prototype.any=function(){let O0=this._baseState;return O0.any=!0,this},N.prototype.choice=function(O0){let Z$=this._baseState;return i0(Z$.choice===null),Z$.choice=O0,this._useArgs(Object.keys(O0).map(function(G$){return O0[G$]})),this},N.prototype.contains=function(O0){let Z$=this._baseState;return i0(Z$.use===null),Z$.contains=O0,this},N.prototype._decode=function(O0,Z$){let G$=this._baseState;if(G$.parent===null)return O0.wrapResult(G$.children[0]._decode(O0,Z$));let V$=G$.default,U$=!0,X$=null;if(G$.key!==null&&(X$=O0.enterKey(G$.key)),G$.optional){let I$=null;if(G$.explicit!==null?I$=G$.explicit:G$.implicit!==null?I$=G$.implicit:G$.tag!==null&&(I$=G$.tag),I$===null&&!G$.any){let Q=O0.save();try{G$.choice===null?this._decodeGeneric(G$.tag,O0,Z$):this._decodeChoice(O0,Z$),U$=!0}catch{U$=!1}O0.restore(Q)}else if(U$=this._peekTag(O0,I$,G$.any),O0.isError(U$))return U$}let K$;if(G$.obj&&U$&&(K$=O0.enterObject()),U$){if(G$.explicit!==null){let Q=this._decodeTag(O0,G$.explicit);if(O0.isError(Q))return Q;O0=Q}let I$=O0.offset;if(G$.use===null&&G$.choice===null){let Q;G$.any&&(Q=O0.save());let x=this._decodeTag(O0,G$.implicit!==null?G$.implicit:G$.tag,G$.any);if(O0.isError(x))return x;G$.any?V$=O0.raw(Q):O0=x}if(Z$&&Z$.track&&G$.tag!==null&&Z$.track(O0.path(),I$,O0.length,"tagged"),Z$&&Z$.track&&G$.tag!==null&&Z$.track(O0.path(),O0.offset,O0.length,"content"),G$.any||(G$.choice===null?V$=this._decodeGeneric(G$.tag,O0,Z$):V$=this._decodeChoice(O0,Z$)),O0.isError(V$))return V$;if(!G$.any&&G$.choice===null&&G$.children!==null&&G$.children.forEach(function(Q){Q._decode(O0,Z$)}),G$.contains&&(G$.tag==="octstr"||G$.tag==="bitstr")){let Q=new r0(V$);V$=this._getUse(G$.contains,O0._reporterState.obj)._decode(Q,Z$)}}return G$.obj&&U$&&(V$=O0.leaveObject(K$)),G$.key!==null&&(V$!==null||U$===!0)?O0.leaveKey(X$,G$.key,V$):X$!==null&&O0.exitKey(X$),V$},N.prototype._decodeGeneric=function(O0,Z$,G$){let V$=this._baseState;return O0==="seq"||O0==="set"?null:O0==="seqof"||O0==="setof"?this._decodeList(Z$,O0,V$.args[0],G$):/str$/.test(O0)?this._decodeStr(Z$,O0,G$):O0==="objid"&&V$.args?this._decodeObjid(Z$,V$.args[0],V$.args[1],G$):O0==="objid"?this._decodeObjid(Z$,null,null,G$):O0==="gentime"||O0==="utctime"?this._decodeTime(Z$,O0,G$):O0==="null_"?this._decodeNull(Z$,G$):O0==="bool"?this._decodeBool(Z$,G$):O0==="objDesc"?this._decodeStr(Z$,O0,G$):O0==="int"||O0==="enum"?this._decodeInt(Z$,V$.args&&V$.args[0],G$):V$.use!==null?this._getUse(V$.use,Z$._reporterState.obj)._decode(Z$,G$):Z$.error("unknown tag: "+O0)},N.prototype._getUse=function(O0,Z$){let G$=this._baseState;return G$.useDecoder=this._use(O0,Z$),i0(G$.useDecoder._baseState.parent===null),G$.useDecoder=G$.useDecoder._baseState.children[0],G$.implicit!==G$.useDecoder._baseState.implicit&&(G$.useDecoder=G$.useDecoder.clone(),G$.useDecoder._baseState.implicit=G$.implicit),G$.useDecoder},N.prototype._decodeChoice=function(O0,Z$){let G$=this._baseState,V$=null,U$=!1;return Object.keys(G$.choice).some(function(X$){let K$=O0.save(),I$=G$.choice[X$];try{let Q=I$._decode(O0,Z$);if(O0.isError(Q))return!1;V$={type:X$,value:Q},U$=!0}catch{return O0.restore(K$),!1}return!0},this),U$?V$:O0.error("Choice not matched")},N.prototype._createEncoderBuffer=function(O0){return new e0(O0,this.reporter)},N.prototype._encode=function(O0,Z$,G$){let V$=this._baseState;if(V$.default!==null&&V$.default===O0)return;let U$=this._encodeValue(O0,Z$,G$);if(U$!==void 0&&!this._skipDefault(U$,Z$,G$))return U$},N.prototype._encodeValue=function(O0,Z$,G$){let V$=this._baseState;if(V$.parent===null)return V$.children[0]._encode(O0,Z$||new a0);let U$=null;if(this.reporter=Z$,V$.optional&&O0===void 0)if(V$.default!==null)O0=V$.default;else return;let X$=null,K$=!1;if(V$.any)U$=this._createEncoderBuffer(O0);else if(V$.choice)U$=this._encodeChoice(O0,Z$);else if(V$.contains)X$=this._getUse(V$.contains,G$)._encode(O0,Z$),K$=!0;else if(V$.children)X$=V$.children.map(function(I$){if(I$._baseState.tag==="null_")return I$._encode(null,Z$,O0);if(I$._baseState.key===null)return Z$.error("Child should have a key");let Q=Z$.enterKey(I$._baseState.key);if(typeof O0!="object")return Z$.error("Child expected, but input is not object");let x=I$._encode(O0[I$._baseState.key],Z$,O0);return Z$.leaveKey(Q),x},this).filter(function(I$){return I$}),X$=this._createEncoderBuffer(X$);else if(V$.tag==="seqof"||V$.tag==="setof"){if(!(V$.args&&V$.args.length===1))return Z$.error("Too many args for : "+V$.tag);if(!Array.isArray(O0))return Z$.error("seqof/setof, but data is not Array");let I$=this.clone();I$._baseState.implicit=null,X$=this._createEncoderBuffer(O0.map(function(Q){let x=this._baseState;return this._getUse(x.args[0],O0)._encode(Q,Z$)},I$))}else V$.use!==null?U$=this._getUse(V$.use,G$)._encode(O0,Z$):(X$=this._encodePrimitive(V$.tag,O0),K$=!0);if(!V$.any&&V$.choice===null){let I$=V$.implicit!==null?V$.implicit:V$.tag,Q=V$.implicit===null?"universal":"context";I$===null?V$.use===null&&Z$.error("Tag could be omitted only for .use()"):V$.use===null&&(U$=this._encodeComposite(I$,K$,Q,X$))}return V$.explicit!==null&&(U$=this._encodeComposite(V$.explicit,!1,"context",U$)),U$},N.prototype._encodeChoice=function(O0,Z$){let G$=this._baseState,V$=G$.choice[O0.type];return V$||i0(!1,O0.type+" not found in "+JSON.stringify(Object.keys(G$.choice))),V$._encode(O0.value,Z$)},N.prototype._encodePrimitive=function(O0,Z$){let G$=this._baseState;if(/str$/.test(O0))return this._encodeStr(Z$,O0);if(O0==="objid"&&G$.args)return this._encodeObjid(Z$,G$.reverseArgs[0],G$.args[1]);if(O0==="objid")return this._encodeObjid(Z$,null,null);if(O0==="gentime"||O0==="utctime")return this._encodeTime(Z$,O0);if(O0==="null_")return this._encodeNull();if(O0==="int"||O0==="enum")return this._encodeInt(Z$,G$.args&&G$.reverseArgs[0]);if(O0==="bool")return this._encodeBool(Z$);if(O0==="objDesc")return this._encodeStr(Z$,O0);throw new Error("Unsupported tag: "+O0)},N.prototype._isNumstr=function(O0){return/^[0-9 ]*$/.test(O0)},N.prototype._isPrintstr=function(O0){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(O0)}}}),eY=pQ({"node_modules/asn1.js/lib/asn1/constants/der.js"(t0){function m0(a0){let e0={};return Object.keys(a0).forEach(function(r0){(r0|0)==r0&&(r0=r0|0);let i0=a0[r0];e0[i0]=r0}),e0}t0.tagClass={0:"universal",1:"application",2:"context",3:"private"},t0.tagClassByName=m0(t0.tagClass),t0.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},t0.tagByName=m0(t0.tag)}}),R=pQ({"node_modules/asn1.js/lib/asn1/encoders/der.js"(t0,m0){var a0=dQ(),e0=tY().Buffer,r0=aY(),i0=eY();function $$(Y$){this.enc="der",this.name=Y$.name,this.entity=Y$,this.tree=new Q$,this.tree._init(Y$.body)}m0.exports=$$,$$.prototype.encode=function(Y$,O0){return this.tree._encode(Y$,O0).join()};function Q$(Y$){r0.call(this,"der",Y$)}a0(Q$,r0),Q$.prototype._encodeComposite=function(Y$,O0,Z$,G$){let V$=N(Y$,O0,Z$,this.reporter);if(G$.length<128){let K$=e0.alloc(2);return K$[0]=V$,K$[1]=G$.length,this._createEncoderBuffer([K$,G$])}let U$=1;for(let K$=G$.length;K$>=256;K$>>=8)U$++;let X$=e0.alloc(2+U$);X$[0]=V$,X$[1]=128|U$;for(let K$=1+U$,I$=G$.length;I$>0;K$--,I$>>=8)X$[K$]=I$&255;return this._createEncoderBuffer([X$,G$])},Q$.prototype._encodeStr=function(Y$,O0){if(O0==="bitstr")return this._createEncoderBuffer([Y$.unused|0,Y$.data]);if(O0==="bmpstr"){let Z$=e0.alloc(Y$.length*2);for(let G$=0;G$=40)return this.reporter.error("Second objid identifier OOB");Y$.splice(0,2,Y$[0]*40+Y$[1])}let G$=0;for(let X$=0;X$=128;K$>>=7)G$++}let V$=e0.alloc(G$),U$=V$.length-1;for(let X$=Y$.length-1;X$>=0;X$--){let K$=Y$[X$];for(V$[U$--]=K$&127;(K$>>=7)>0;)V$[U$--]=128|K$&127}return this._createEncoderBuffer(V$)};function $(Y$){return Y$<10?"0"+Y$:Y$}Q$.prototype._encodeTime=function(Y$,O0){let Z$,G$=new Date(Y$);return O0==="gentime"?Z$=[$(G$.getUTCFullYear()),$(G$.getUTCMonth()+1),$(G$.getUTCDate()),$(G$.getUTCHours()),$(G$.getUTCMinutes()),$(G$.getUTCSeconds()),"Z"].join(""):O0==="utctime"?Z$=[$(G$.getUTCFullYear()%100),$(G$.getUTCMonth()+1),$(G$.getUTCDate()),$(G$.getUTCHours()),$(G$.getUTCMinutes()),$(G$.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+O0+" time is not supported yet"),this._encodeStr(Z$,"octstr")},Q$.prototype._encodeNull=function(){return this._createEncoderBuffer("")},Q$.prototype._encodeInt=function(Y$,O0){if(typeof Y$=="string"){if(!O0)return this.reporter.error("String int or enum given, but no values map");if(!O0.hasOwnProperty(Y$))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(Y$));Y$=O0[Y$]}if(typeof Y$!="number"&&!e0.isBuffer(Y$)){let V$=Y$.toArray();!Y$.sign&&V$[0]&128&&V$.unshift(0),Y$=e0.from(V$)}if(e0.isBuffer(Y$)){let V$=Y$.length;Y$.length===0&&V$++;let U$=e0.alloc(V$);return Y$.copy(U$),Y$.length===0&&(U$[0]=0),this._createEncoderBuffer(U$)}if(Y$<128)return this._createEncoderBuffer(Y$);if(Y$<256)return this._createEncoderBuffer([0,Y$]);let Z$=1;for(let V$=Y$;V$>=256;V$>>=8)Z$++;let G$=new Array(Z$);for(let V$=G$.length-1;V$>=0;V$--)G$[V$]=Y$&255,Y$>>=8;return G$[0]&128&&G$.unshift(0),this._createEncoderBuffer(e0.from(G$))},Q$.prototype._encodeBool=function(Y$){return this._createEncoderBuffer(Y$?255:0)},Q$.prototype._use=function(Y$,O0){return typeof Y$=="function"&&(Y$=Y$(O0)),Y$._getEncoder("der").tree},Q$.prototype._skipDefault=function(Y$,O0,Z$){let G$=this._baseState,V$;if(G$.default===null)return!1;let U$=Y$.join();if(G$.defaultBuffer===void 0&&(G$.defaultBuffer=this._encodeValue(G$.default,O0,Z$).join()),U$.length!==G$.defaultBuffer.length)return!1;for(V$=0;V$=31?G$.error("Multi-octet tag encoding unsupported"):(O0||(V$|=32),V$|=i0.tagClassByName[Z$||"universal"]<<6,V$)}}}),r=pQ({"node_modules/asn1.js/lib/asn1/encoders/pem.js"(t0,m0){var a0=dQ(),e0=R();function r0(i0){e0.call(this,i0),this.enc="pem"}a0(r0,e0),m0.exports=r0,r0.prototype.encode=function(i0,$$){let Q$=e0.prototype.encode.call(this,i0).toString("base64"),$=["-----BEGIN "+$$.label+"-----"];for(let N=0;N>6],U$=(G$&32)===0;if((G$&31)===31){let K$=G$;for(G$=0;(K$&128)===128;){if(K$=O0.readUInt8(Z$),O0.isError(K$))return K$;G$<<=7,G$|=K$&127}}else G$&=31;let X$=$$.tag[G$];return{cls:V$,primitive:U$,tag:G$,tagStr:X$}}function Y$(O0,Z$,G$){let V$=O0.readUInt8(G$);if(O0.isError(V$))return V$;if(!Z$&&V$===128)return null;if((V$&128)===0)return V$;let U$=V$&127;if(U$>4)return O0.error("length octect is too long");V$=0;for(let X$=0;X$0&&x.ishrn(O$),x}function U$(I$,Q){I$=V$(I$,Q),I$=I$.mod(Q);var x=a0.from(I$.toArray());if(x.length=Z$)throw new Error("invalid sig")}m0.exports=Q$}}),IZ=pQ({"node_modules/browserify-sign/browser/index.js"(t0,m0){var a0=cQ().Buffer,e0=w(),r0=dQ(),i0=XZ(),$$=KZ(),Q$=eQ();Object.keys(Q$).forEach(function(Z$){Q$[Z$].id=a0.from(Q$[Z$].id,"hex"),Q$[Z$.toLowerCase()]=Q$[Z$]});function $(Z$){R0.Writable.call(this);var G$=Q$[Z$];if(!G$)throw new Error("Unknown message digest");this._hashType=G$.hash,this._hash=e0(G$.hash),this._tag=G$.id,this._signType=G$.sign}r0($,R0.Writable),$.prototype._write=function(Z$,G$,V$){this._hash.update(Z$),V$()},$.prototype.update=function(Z$,G$){return typeof Z$=="string"&&(Z$=a0.from(Z$,G$)),this._hash.update(Z$),this},$.prototype.sign=function(Z$,G$){this.end();var V$=this._hash.digest(),U$=i0(V$,Z$,this._hashType,this._signType,this._tag);return G$?U$.toString(G$):U$};function N(Z$){R0.Writable.call(this);var G$=Q$[Z$];if(!G$)throw new Error("Unknown message digest");this._hash=e0(G$.hash),this._tag=G$.id,this._signType=G$.sign}r0(N,R0.Writable),N.prototype._write=function(Z$,G$,V$){this._hash.update(Z$),V$()},N.prototype.update=function(Z$,G$){return typeof Z$=="string"&&(Z$=a0.from(Z$,G$)),this._hash.update(Z$),this},N.prototype.verify=function(Z$,G$,V$){typeof G$=="string"&&(G$=a0.from(G$,V$)),this.end();var U$=this._hash.digest();return $$(G$,U$,Z$,this._signType,this._tag)};function Y$(Z$){return new $(Z$)}function O0(Z$){return new N(Z$)}m0.exports={Sign:Y$,Verify:O0,createSign:Y$,createVerify:O0}}}),OZ=pQ({"node_modules/create-ecdh/node_modules/bn.js/lib/bn.js"(t0,m0){(function(a0,e0){function r0(E$,T$){if(!E$)throw new Error(T$||"Assertion failed")}function i0(E$,T$){E$.super_=T$;var Y=function(){};Y.prototype=T$.prototype,E$.prototype=new Y,E$.prototype.constructor=E$}function $$(E$,T$,Y){if($$.isBN(E$))return E$;this.negative=0,this.words=null,this.length=0,this.red=null,E$!==null&&((T$==="le"||T$==="be")&&(Y=T$,T$=10),this._init(E$||0,T$||10,Y||"be"))}typeof a0=="object"?a0.exports=$$:e0.BN=$$,$$.BN=$$,$$.wordSize=26;var Q$=G0;$$.isBN=function(E$){return E$ instanceof $$?!0:E$!==null&&typeof E$=="object"&&E$.constructor.wordSize===$$.wordSize&&Array.isArray(E$.words)},$$.max=function(E$,T$){return E$.cmp(T$)>0?E$:T$},$$.min=function(E$,T$){return E$.cmp(T$)<0?E$:T$},$$.prototype._init=function(E$,T$,Y){if(typeof E$=="number")return this._initNumber(E$,T$,Y);if(typeof E$=="object")return this._initArray(E$,T$,Y);T$==="hex"&&(T$=16),r0(T$===(T$|0)&&T$>=2&&T$<=36),E$=E$.toString().replace(/\s+/g,"");var f=0;E$[0]==="-"&&(f++,this.negative=1),f=0;f-=3)F0=E$[f]|E$[f-1]<<8|E$[f-2]<<16,this.words[D$]|=F0<>>26-C$&67108863,C$+=24,C$>=26&&(C$-=26,D$++);else if(Y==="le")for(f=0,D$=0;f>>26-C$&67108863,C$+=24,C$>=26&&(C$-=26,D$++);return this.strip()};function $(E$,T$){var Y=E$.charCodeAt(T$);return Y>=65&&Y<=70?Y-55:Y>=97&&Y<=102?Y-87:Y-48&15}function N(E$,T$,Y){var f=$(E$,Y);return Y-1>=T$&&(f|=$(E$,Y-1)<<4),f}$$.prototype._parseHex=function(E$,T$,Y){this.length=Math.ceil((E$.length-T$)/6),this.words=new Array(this.length);for(var f=0;f=T$;f-=2)C$=N(E$,T$,f)<=18?(D$-=18,F0+=1,this.words[F0]|=C$>>>26):D$+=8;else{var L$=E$.length-T$;for(f=L$%2===0?T$+1:T$;f=18?(D$-=18,F0+=1,this.words[F0]|=C$>>>26):D$+=8}this.strip()};function Y$(E$,T$,Y,f){for(var D$=0,F0=Math.min(E$.length,Y),C$=T$;C$=49?D$+=L$-49+10:L$>=17?D$+=L$-17+10:D$+=L$}return D$}$$.prototype._parseBase=function(E$,T$,Y){this.words=[0],this.length=1;for(var f=0,D$=1;D$<=67108863;D$*=T$)f++;f--,D$=D$/T$|0;for(var F0=E$.length-Y,C$=F0%f,L$=Math.min(F0,F0-C$)+Y,R$=0,P$=Y;P$1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},$$.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},$$.prototype.inspect=function(){return(this.red?""};var O0=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],Z$=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],G$=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];$$.prototype.toString=function(E$,T$){E$=E$||10,T$=T$|0||1;var Y;if(E$===16||E$==="hex"){Y="";for(var f=0,D$=0,F0=0;F0>>24-f&16777215,D$!==0||F0!==this.length-1?Y=O0[6-L$.length]+L$+Y:Y=L$+Y,f+=2,f>=26&&(f-=26,F0--)}for(D$!==0&&(Y=D$.toString(16)+Y);Y.length%T$!==0;)Y="0"+Y;return this.negative!==0&&(Y="-"+Y),Y}if(E$===(E$|0)&&E$>=2&&E$<=36){var R$=Z$[E$],P$=G$[E$];Y="";var z$=this.clone();for(z$.negative=0;!z$.isZero();){var M$=z$.modn(P$).toString(E$);z$=z$.idivn(P$),z$.isZero()?Y=M$+Y:Y=O0[R$-M$.length]+M$+Y}for(this.isZero()&&(Y="0"+Y);Y.length%T$!==0;)Y="0"+Y;return this.negative!==0&&(Y="-"+Y),Y}r0(!1,"Base should be between 2 and 36")},$$.prototype.toNumber=function(){var E$=this.words[0];return this.length===2?E$+=this.words[1]*67108864:this.length===3&&this.words[2]===1?E$+=4503599627370496+this.words[1]*67108864:this.length>2&&r0(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-E$:E$},$$.prototype.toJSON=function(){return this.toString(16)},$$.prototype.toBuffer=function(E$,T$){return r0(typeof Q$<"u"),this.toArrayLike(Q$,E$,T$)},$$.prototype.toArray=function(E$,T$){return this.toArrayLike(Array,E$,T$)},$$.prototype.toArrayLike=function(E$,T$,Y){var f=this.byteLength(),D$=Y||Math.max(1,f);r0(f<=D$,"byte array longer than desired length"),r0(D$>0,"Requested array length <= 0"),this.strip();var F0=T$==="le",C$=new E$(D$),L$,R$,P$=this.clone();if(F0){for(R$=0;!P$.isZero();R$++)L$=P$.andln(255),P$.iushrn(8),C$[R$]=L$;for(;R$=4096&&(Y+=13,T$>>>=13),T$>=64&&(Y+=7,T$>>>=7),T$>=8&&(Y+=4,T$>>>=4),T$>=2&&(Y+=2,T$>>>=2),Y+T$},$$.prototype._zeroBits=function(E$){if(E$===0)return 26;var T$=E$,Y=0;return(T$&8191)===0&&(Y+=13,T$>>>=13),(T$&127)===0&&(Y+=7,T$>>>=7),(T$&15)===0&&(Y+=4,T$>>>=4),(T$&3)===0&&(Y+=2,T$>>>=2),(T$&1)===0&&Y++,Y},$$.prototype.bitLength=function(){var E$=this.words[this.length-1],T$=this._countBits(E$);return(this.length-1)*26+T$};function V$(E$){for(var T$=new Array(E$.bitLength()),Y=0;Y>>D$}return T$}$$.prototype.zeroBits=function(){if(this.isZero())return 0;for(var E$=0,T$=0;T$E$.length?this.clone().ior(E$):E$.clone().ior(this)},$$.prototype.uor=function(E$){return this.length>E$.length?this.clone().iuor(E$):E$.clone().iuor(this)},$$.prototype.iuand=function(E$){var T$;this.length>E$.length?T$=E$:T$=this;for(var Y=0;YE$.length?this.clone().iand(E$):E$.clone().iand(this)},$$.prototype.uand=function(E$){return this.length>E$.length?this.clone().iuand(E$):E$.clone().iuand(this)},$$.prototype.iuxor=function(E$){var T$,Y;this.length>E$.length?(T$=this,Y=E$):(T$=E$,Y=this);for(var f=0;fE$.length?this.clone().ixor(E$):E$.clone().ixor(this)},$$.prototype.uxor=function(E$){return this.length>E$.length?this.clone().iuxor(E$):E$.clone().iuxor(this)},$$.prototype.inotn=function(E$){r0(typeof E$=="number"&&E$>=0);var T$=Math.ceil(E$/26)|0,Y=E$%26;this._expand(T$),Y>0&&T$--;for(var f=0;f0&&(this.words[f]=~this.words[f]&67108863>>26-Y),this.strip()},$$.prototype.notn=function(E$){return this.clone().inotn(E$)},$$.prototype.setn=function(E$,T$){r0(typeof E$=="number"&&E$>=0);var Y=E$/26|0,f=E$%26;return this._expand(Y+1),T$?this.words[Y]=this.words[Y]|1<E$.length?(Y=this,f=E$):(Y=E$,f=this);for(var D$=0,F0=0;F0>>26;for(;D$!==0&&F0>>26;if(this.length=Y.length,D$!==0)this.words[this.length]=D$,this.length++;else if(Y!==this)for(;F0E$.length?this.clone().iadd(E$):E$.clone().iadd(this)},$$.prototype.isub=function(E$){if(E$.negative!==0){E$.negative=0;var T$=this.iadd(E$);return E$.negative=1,T$._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(E$),this.negative=1,this._normSign();var Y=this.cmp(E$);if(Y===0)return this.negative=0,this.length=1,this.words[0]=0,this;var f,D$;Y>0?(f=this,D$=E$):(f=E$,D$=this);for(var F0=0,C$=0;C$>26,this.words[C$]=T$&67108863;for(;F0!==0&&C$>26,this.words[C$]=T$&67108863;if(F0===0&&C$>>26,M$=R$&67108863,S$=Math.min(P$,T$.length-1),Z=Math.max(0,P$-E$.length+1);Z<=S$;Z++){var c=P$-Z|0;D$=E$.words[c]|0,F0=T$.words[Z]|0,C$=D$*F0+M$,z$+=C$/67108864|0,M$=C$&67108863}Y.words[P$]=M$|0,R$=z$|0}return R$!==0?Y.words[P$]=R$|0:Y.length--,Y.strip()}var X$=function(E$,T$,Y){var f=E$.words,D$=T$.words,F0=Y.words,C$=0,L$,R$,P$,z$=f[0]|0,M$=z$&8191,S$=z$>>>13,Z=f[1]|0,c=Z&8191,v$=Z>>>13,A0=f[2]|0,q$=A0&8191,j$=A0>>>13,k$=f[3]|0,g$=k$&8191,_$=k$>>>13,N$=f[4]|0,x$=N$&8191,G=N$>>>13,B=f[5]|0,B$=B&8191,H0=B>>>13,y$=f[6]|0,w$=y$&8191,p$=y$>>>13,f$=f[7]|0,c$=f$&8191,h$=f$>>>13,d$=f[8]|0,V=d$&8191,h=d$>>>13,W0=f[9]|0,E0=W0&8191,b$=W0>>>13,l$=D$[0]|0,o$=l$&8191,u$=l$>>>13,n$=D$[1]|0,s$=n$&8191,t$=n$>>>13,U=D$[2]|0,d=U&8191,m$=U>>>13,T0=D$[3]|0,a$=T0&8191,e$=T0>>>13,r$=D$[4]|0,i$=r$&8191,$Q=r$>>>13,QQ=D$[5]|0,YQ=QQ&8191,X=QQ>>>13,b=D$[6]|0,ZQ=b&8191,D0=b>>>13,GQ=D$[7]|0,VQ=GQ&8191,UQ=GQ>>>13,XQ=D$[8]|0,KQ=XQ&8191,IQ=XQ>>>13,OQ=D$[9]|0,K=OQ&8191,l=OQ>>>13;Y.negative=E$.negative^T$.negative,Y.length=19,L$=Math.imul(M$,o$),R$=Math.imul(M$,u$),R$=R$+Math.imul(S$,o$)|0,P$=Math.imul(S$,u$);var JQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(JQ>>>26)|0,JQ&=67108863,L$=Math.imul(c,o$),R$=Math.imul(c,u$),R$=R$+Math.imul(v$,o$)|0,P$=Math.imul(v$,u$),L$=L$+Math.imul(M$,s$)|0,R$=R$+Math.imul(M$,t$)|0,R$=R$+Math.imul(S$,s$)|0,P$=P$+Math.imul(S$,t$)|0;var C0=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(C0>>>26)|0,C0&=67108863,L$=Math.imul(q$,o$),R$=Math.imul(q$,u$),R$=R$+Math.imul(j$,o$)|0,P$=Math.imul(j$,u$),L$=L$+Math.imul(c,s$)|0,R$=R$+Math.imul(c,t$)|0,R$=R$+Math.imul(v$,s$)|0,P$=P$+Math.imul(v$,t$)|0,L$=L$+Math.imul(M$,d)|0,R$=R$+Math.imul(M$,m$)|0,R$=R$+Math.imul(S$,d)|0,P$=P$+Math.imul(S$,m$)|0;var FQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(FQ>>>26)|0,FQ&=67108863,L$=Math.imul(g$,o$),R$=Math.imul(g$,u$),R$=R$+Math.imul(_$,o$)|0,P$=Math.imul(_$,u$),L$=L$+Math.imul(q$,s$)|0,R$=R$+Math.imul(q$,t$)|0,R$=R$+Math.imul(j$,s$)|0,P$=P$+Math.imul(j$,t$)|0,L$=L$+Math.imul(c,d)|0,R$=R$+Math.imul(c,m$)|0,R$=R$+Math.imul(v$,d)|0,P$=P$+Math.imul(v$,m$)|0,L$=L$+Math.imul(M$,a$)|0,R$=R$+Math.imul(M$,e$)|0,R$=R$+Math.imul(S$,a$)|0,P$=P$+Math.imul(S$,e$)|0;var AQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(AQ>>>26)|0,AQ&=67108863,L$=Math.imul(x$,o$),R$=Math.imul(x$,u$),R$=R$+Math.imul(G,o$)|0,P$=Math.imul(G,u$),L$=L$+Math.imul(g$,s$)|0,R$=R$+Math.imul(g$,t$)|0,R$=R$+Math.imul(_$,s$)|0,P$=P$+Math.imul(_$,t$)|0,L$=L$+Math.imul(q$,d)|0,R$=R$+Math.imul(q$,m$)|0,R$=R$+Math.imul(j$,d)|0,P$=P$+Math.imul(j$,m$)|0,L$=L$+Math.imul(c,a$)|0,R$=R$+Math.imul(c,e$)|0,R$=R$+Math.imul(v$,a$)|0,P$=P$+Math.imul(v$,e$)|0,L$=L$+Math.imul(M$,i$)|0,R$=R$+Math.imul(M$,$Q)|0,R$=R$+Math.imul(S$,i$)|0,P$=P$+Math.imul(S$,$Q)|0;var HQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(HQ>>>26)|0,HQ&=67108863,L$=Math.imul(B$,o$),R$=Math.imul(B$,u$),R$=R$+Math.imul(H0,o$)|0,P$=Math.imul(H0,u$),L$=L$+Math.imul(x$,s$)|0,R$=R$+Math.imul(x$,t$)|0,R$=R$+Math.imul(G,s$)|0,P$=P$+Math.imul(G,t$)|0,L$=L$+Math.imul(g$,d)|0,R$=R$+Math.imul(g$,m$)|0,R$=R$+Math.imul(_$,d)|0,P$=P$+Math.imul(_$,m$)|0,L$=L$+Math.imul(q$,a$)|0,R$=R$+Math.imul(q$,e$)|0,R$=R$+Math.imul(j$,a$)|0,P$=P$+Math.imul(j$,e$)|0,L$=L$+Math.imul(c,i$)|0,R$=R$+Math.imul(c,$Q)|0,R$=R$+Math.imul(v$,i$)|0,P$=P$+Math.imul(v$,$Q)|0,L$=L$+Math.imul(M$,YQ)|0,R$=R$+Math.imul(M$,X)|0,R$=R$+Math.imul(S$,YQ)|0,P$=P$+Math.imul(S$,X)|0;var WQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(WQ>>>26)|0,WQ&=67108863,L$=Math.imul(w$,o$),R$=Math.imul(w$,u$),R$=R$+Math.imul(p$,o$)|0,P$=Math.imul(p$,u$),L$=L$+Math.imul(B$,s$)|0,R$=R$+Math.imul(B$,t$)|0,R$=R$+Math.imul(H0,s$)|0,P$=P$+Math.imul(H0,t$)|0,L$=L$+Math.imul(x$,d)|0,R$=R$+Math.imul(x$,m$)|0,R$=R$+Math.imul(G,d)|0,P$=P$+Math.imul(G,m$)|0,L$=L$+Math.imul(g$,a$)|0,R$=R$+Math.imul(g$,e$)|0,R$=R$+Math.imul(_$,a$)|0,P$=P$+Math.imul(_$,e$)|0,L$=L$+Math.imul(q$,i$)|0,R$=R$+Math.imul(q$,$Q)|0,R$=R$+Math.imul(j$,i$)|0,P$=P$+Math.imul(j$,$Q)|0,L$=L$+Math.imul(c,YQ)|0,R$=R$+Math.imul(c,X)|0,R$=R$+Math.imul(v$,YQ)|0,P$=P$+Math.imul(v$,X)|0,L$=L$+Math.imul(M$,ZQ)|0,R$=R$+Math.imul(M$,D0)|0,R$=R$+Math.imul(S$,ZQ)|0,P$=P$+Math.imul(S$,D0)|0;var EQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(EQ>>>26)|0,EQ&=67108863,L$=Math.imul(c$,o$),R$=Math.imul(c$,u$),R$=R$+Math.imul(h$,o$)|0,P$=Math.imul(h$,u$),L$=L$+Math.imul(w$,s$)|0,R$=R$+Math.imul(w$,t$)|0,R$=R$+Math.imul(p$,s$)|0,P$=P$+Math.imul(p$,t$)|0,L$=L$+Math.imul(B$,d)|0,R$=R$+Math.imul(B$,m$)|0,R$=R$+Math.imul(H0,d)|0,P$=P$+Math.imul(H0,m$)|0,L$=L$+Math.imul(x$,a$)|0,R$=R$+Math.imul(x$,e$)|0,R$=R$+Math.imul(G,a$)|0,P$=P$+Math.imul(G,e$)|0,L$=L$+Math.imul(g$,i$)|0,R$=R$+Math.imul(g$,$Q)|0,R$=R$+Math.imul(_$,i$)|0,P$=P$+Math.imul(_$,$Q)|0,L$=L$+Math.imul(q$,YQ)|0,R$=R$+Math.imul(q$,X)|0,R$=R$+Math.imul(j$,YQ)|0,P$=P$+Math.imul(j$,X)|0,L$=L$+Math.imul(c,ZQ)|0,R$=R$+Math.imul(c,D0)|0,R$=R$+Math.imul(v$,ZQ)|0,P$=P$+Math.imul(v$,D0)|0,L$=L$+Math.imul(M$,VQ)|0,R$=R$+Math.imul(M$,UQ)|0,R$=R$+Math.imul(S$,VQ)|0,P$=P$+Math.imul(S$,UQ)|0;var TQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(TQ>>>26)|0,TQ&=67108863,L$=Math.imul(V,o$),R$=Math.imul(V,u$),R$=R$+Math.imul(h,o$)|0,P$=Math.imul(h,u$),L$=L$+Math.imul(c$,s$)|0,R$=R$+Math.imul(c$,t$)|0,R$=R$+Math.imul(h$,s$)|0,P$=P$+Math.imul(h$,t$)|0,L$=L$+Math.imul(w$,d)|0,R$=R$+Math.imul(w$,m$)|0,R$=R$+Math.imul(p$,d)|0,P$=P$+Math.imul(p$,m$)|0,L$=L$+Math.imul(B$,a$)|0,R$=R$+Math.imul(B$,e$)|0,R$=R$+Math.imul(H0,a$)|0,P$=P$+Math.imul(H0,e$)|0,L$=L$+Math.imul(x$,i$)|0,R$=R$+Math.imul(x$,$Q)|0,R$=R$+Math.imul(G,i$)|0,P$=P$+Math.imul(G,$Q)|0,L$=L$+Math.imul(g$,YQ)|0,R$=R$+Math.imul(g$,X)|0,R$=R$+Math.imul(_$,YQ)|0,P$=P$+Math.imul(_$,X)|0,L$=L$+Math.imul(q$,ZQ)|0,R$=R$+Math.imul(q$,D0)|0,R$=R$+Math.imul(j$,ZQ)|0,P$=P$+Math.imul(j$,D0)|0,L$=L$+Math.imul(c,VQ)|0,R$=R$+Math.imul(c,UQ)|0,R$=R$+Math.imul(v$,VQ)|0,P$=P$+Math.imul(v$,UQ)|0,L$=L$+Math.imul(M$,KQ)|0,R$=R$+Math.imul(M$,IQ)|0,R$=R$+Math.imul(S$,KQ)|0,P$=P$+Math.imul(S$,IQ)|0;var DQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(DQ>>>26)|0,DQ&=67108863,L$=Math.imul(E0,o$),R$=Math.imul(E0,u$),R$=R$+Math.imul(b$,o$)|0,P$=Math.imul(b$,u$),L$=L$+Math.imul(V,s$)|0,R$=R$+Math.imul(V,t$)|0,R$=R$+Math.imul(h,s$)|0,P$=P$+Math.imul(h,t$)|0,L$=L$+Math.imul(c$,d)|0,R$=R$+Math.imul(c$,m$)|0,R$=R$+Math.imul(h$,d)|0,P$=P$+Math.imul(h$,m$)|0,L$=L$+Math.imul(w$,a$)|0,R$=R$+Math.imul(w$,e$)|0,R$=R$+Math.imul(p$,a$)|0,P$=P$+Math.imul(p$,e$)|0,L$=L$+Math.imul(B$,i$)|0,R$=R$+Math.imul(B$,$Q)|0,R$=R$+Math.imul(H0,i$)|0,P$=P$+Math.imul(H0,$Q)|0,L$=L$+Math.imul(x$,YQ)|0,R$=R$+Math.imul(x$,X)|0,R$=R$+Math.imul(G,YQ)|0,P$=P$+Math.imul(G,X)|0,L$=L$+Math.imul(g$,ZQ)|0,R$=R$+Math.imul(g$,D0)|0,R$=R$+Math.imul(_$,ZQ)|0,P$=P$+Math.imul(_$,D0)|0,L$=L$+Math.imul(q$,VQ)|0,R$=R$+Math.imul(q$,UQ)|0,R$=R$+Math.imul(j$,VQ)|0,P$=P$+Math.imul(j$,UQ)|0,L$=L$+Math.imul(c,KQ)|0,R$=R$+Math.imul(c,IQ)|0,R$=R$+Math.imul(v$,KQ)|0,P$=P$+Math.imul(v$,IQ)|0,L$=L$+Math.imul(M$,K)|0,R$=R$+Math.imul(M$,l)|0,R$=R$+Math.imul(S$,K)|0,P$=P$+Math.imul(S$,l)|0;var I=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(I>>>26)|0,I&=67108863,L$=Math.imul(E0,s$),R$=Math.imul(E0,t$),R$=R$+Math.imul(b$,s$)|0,P$=Math.imul(b$,t$),L$=L$+Math.imul(V,d)|0,R$=R$+Math.imul(V,m$)|0,R$=R$+Math.imul(h,d)|0,P$=P$+Math.imul(h,m$)|0,L$=L$+Math.imul(c$,a$)|0,R$=R$+Math.imul(c$,e$)|0,R$=R$+Math.imul(h$,a$)|0,P$=P$+Math.imul(h$,e$)|0,L$=L$+Math.imul(w$,i$)|0,R$=R$+Math.imul(w$,$Q)|0,R$=R$+Math.imul(p$,i$)|0,P$=P$+Math.imul(p$,$Q)|0,L$=L$+Math.imul(B$,YQ)|0,R$=R$+Math.imul(B$,X)|0,R$=R$+Math.imul(H0,YQ)|0,P$=P$+Math.imul(H0,X)|0,L$=L$+Math.imul(x$,ZQ)|0,R$=R$+Math.imul(x$,D0)|0,R$=R$+Math.imul(G,ZQ)|0,P$=P$+Math.imul(G,D0)|0,L$=L$+Math.imul(g$,VQ)|0,R$=R$+Math.imul(g$,UQ)|0,R$=R$+Math.imul(_$,VQ)|0,P$=P$+Math.imul(_$,UQ)|0,L$=L$+Math.imul(q$,KQ)|0,R$=R$+Math.imul(q$,IQ)|0,R$=R$+Math.imul(j$,KQ)|0,P$=P$+Math.imul(j$,IQ)|0,L$=L$+Math.imul(c,K)|0,R$=R$+Math.imul(c,l)|0,R$=R$+Math.imul(v$,K)|0,P$=P$+Math.imul(v$,l)|0;var o=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(o>>>26)|0,o&=67108863,L$=Math.imul(E0,d),R$=Math.imul(E0,m$),R$=R$+Math.imul(b$,d)|0,P$=Math.imul(b$,m$),L$=L$+Math.imul(V,a$)|0,R$=R$+Math.imul(V,e$)|0,R$=R$+Math.imul(h,a$)|0,P$=P$+Math.imul(h,e$)|0,L$=L$+Math.imul(c$,i$)|0,R$=R$+Math.imul(c$,$Q)|0,R$=R$+Math.imul(h$,i$)|0,P$=P$+Math.imul(h$,$Q)|0,L$=L$+Math.imul(w$,YQ)|0,R$=R$+Math.imul(w$,X)|0,R$=R$+Math.imul(p$,YQ)|0,P$=P$+Math.imul(p$,X)|0,L$=L$+Math.imul(B$,ZQ)|0,R$=R$+Math.imul(B$,D0)|0,R$=R$+Math.imul(H0,ZQ)|0,P$=P$+Math.imul(H0,D0)|0,L$=L$+Math.imul(x$,VQ)|0,R$=R$+Math.imul(x$,UQ)|0,R$=R$+Math.imul(G,VQ)|0,P$=P$+Math.imul(G,UQ)|0,L$=L$+Math.imul(g$,KQ)|0,R$=R$+Math.imul(g$,IQ)|0,R$=R$+Math.imul(_$,KQ)|0,P$=P$+Math.imul(_$,IQ)|0,L$=L$+Math.imul(q$,K)|0,R$=R$+Math.imul(q$,l)|0,R$=R$+Math.imul(j$,K)|0,P$=P$+Math.imul(j$,l)|0;var CQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(CQ>>>26)|0,CQ&=67108863,L$=Math.imul(E0,a$),R$=Math.imul(E0,e$),R$=R$+Math.imul(b$,a$)|0,P$=Math.imul(b$,e$),L$=L$+Math.imul(V,i$)|0,R$=R$+Math.imul(V,$Q)|0,R$=R$+Math.imul(h,i$)|0,P$=P$+Math.imul(h,$Q)|0,L$=L$+Math.imul(c$,YQ)|0,R$=R$+Math.imul(c$,X)|0,R$=R$+Math.imul(h$,YQ)|0,P$=P$+Math.imul(h$,X)|0,L$=L$+Math.imul(w$,ZQ)|0,R$=R$+Math.imul(w$,D0)|0,R$=R$+Math.imul(p$,ZQ)|0,P$=P$+Math.imul(p$,D0)|0,L$=L$+Math.imul(B$,VQ)|0,R$=R$+Math.imul(B$,UQ)|0,R$=R$+Math.imul(H0,VQ)|0,P$=P$+Math.imul(H0,UQ)|0,L$=L$+Math.imul(x$,KQ)|0,R$=R$+Math.imul(x$,IQ)|0,R$=R$+Math.imul(G,KQ)|0,P$=P$+Math.imul(G,IQ)|0,L$=L$+Math.imul(g$,K)|0,R$=R$+Math.imul(g$,l)|0,R$=R$+Math.imul(_$,K)|0,P$=P$+Math.imul(_$,l)|0;var L0=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(L0>>>26)|0,L0&=67108863,L$=Math.imul(E0,i$),R$=Math.imul(E0,$Q),R$=R$+Math.imul(b$,i$)|0,P$=Math.imul(b$,$Q),L$=L$+Math.imul(V,YQ)|0,R$=R$+Math.imul(V,X)|0,R$=R$+Math.imul(h,YQ)|0,P$=P$+Math.imul(h,X)|0,L$=L$+Math.imul(c$,ZQ)|0,R$=R$+Math.imul(c$,D0)|0,R$=R$+Math.imul(h$,ZQ)|0,P$=P$+Math.imul(h$,D0)|0,L$=L$+Math.imul(w$,VQ)|0,R$=R$+Math.imul(w$,UQ)|0,R$=R$+Math.imul(p$,VQ)|0,P$=P$+Math.imul(p$,UQ)|0,L$=L$+Math.imul(B$,KQ)|0,R$=R$+Math.imul(B$,IQ)|0,R$=R$+Math.imul(H0,KQ)|0,P$=P$+Math.imul(H0,IQ)|0,L$=L$+Math.imul(x$,K)|0,R$=R$+Math.imul(x$,l)|0,R$=R$+Math.imul(G,K)|0,P$=P$+Math.imul(G,l)|0;var LQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(LQ>>>26)|0,LQ&=67108863,L$=Math.imul(E0,YQ),R$=Math.imul(E0,X),R$=R$+Math.imul(b$,YQ)|0,P$=Math.imul(b$,X),L$=L$+Math.imul(V,ZQ)|0,R$=R$+Math.imul(V,D0)|0,R$=R$+Math.imul(h,ZQ)|0,P$=P$+Math.imul(h,D0)|0,L$=L$+Math.imul(c$,VQ)|0,R$=R$+Math.imul(c$,UQ)|0,R$=R$+Math.imul(h$,VQ)|0,P$=P$+Math.imul(h$,UQ)|0,L$=L$+Math.imul(w$,KQ)|0,R$=R$+Math.imul(w$,IQ)|0,R$=R$+Math.imul(p$,KQ)|0,P$=P$+Math.imul(p$,IQ)|0,L$=L$+Math.imul(B$,K)|0,R$=R$+Math.imul(B$,l)|0,R$=R$+Math.imul(H0,K)|0,P$=P$+Math.imul(H0,l)|0;var RQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(RQ>>>26)|0,RQ&=67108863,L$=Math.imul(E0,ZQ),R$=Math.imul(E0,D0),R$=R$+Math.imul(b$,ZQ)|0,P$=Math.imul(b$,D0),L$=L$+Math.imul(V,VQ)|0,R$=R$+Math.imul(V,UQ)|0,R$=R$+Math.imul(h,VQ)|0,P$=P$+Math.imul(h,UQ)|0,L$=L$+Math.imul(c$,KQ)|0,R$=R$+Math.imul(c$,IQ)|0,R$=R$+Math.imul(h$,KQ)|0,P$=P$+Math.imul(h$,IQ)|0,L$=L$+Math.imul(w$,K)|0,R$=R$+Math.imul(w$,l)|0,R$=R$+Math.imul(p$,K)|0,P$=P$+Math.imul(p$,l)|0;var PQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(PQ>>>26)|0,PQ&=67108863,L$=Math.imul(E0,VQ),R$=Math.imul(E0,UQ),R$=R$+Math.imul(b$,VQ)|0,P$=Math.imul(b$,UQ),L$=L$+Math.imul(V,KQ)|0,R$=R$+Math.imul(V,IQ)|0,R$=R$+Math.imul(h,KQ)|0,P$=P$+Math.imul(h,IQ)|0,L$=L$+Math.imul(c$,K)|0,R$=R$+Math.imul(c$,l)|0,R$=R$+Math.imul(h$,K)|0,P$=P$+Math.imul(h$,l)|0;var zQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(zQ>>>26)|0,zQ&=67108863,L$=Math.imul(E0,KQ),R$=Math.imul(E0,IQ),R$=R$+Math.imul(b$,KQ)|0,P$=Math.imul(b$,IQ),L$=L$+Math.imul(V,K)|0,R$=R$+Math.imul(V,l)|0,R$=R$+Math.imul(h,K)|0,P$=P$+Math.imul(h,l)|0;var MQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(MQ>>>26)|0,MQ&=67108863,L$=Math.imul(E0,K),R$=Math.imul(E0,l),R$=R$+Math.imul(b$,K)|0,P$=Math.imul(b$,l);var SQ=(C$+L$|0)+((R$&8191)<<13)|0;return C$=(P$+(R$>>>13)|0)+(SQ>>>26)|0,SQ&=67108863,F0[0]=JQ,F0[1]=C0,F0[2]=FQ,F0[3]=AQ,F0[4]=HQ,F0[5]=WQ,F0[6]=EQ,F0[7]=TQ,F0[8]=DQ,F0[9]=I,F0[10]=o,F0[11]=CQ,F0[12]=L0,F0[13]=LQ,F0[14]=RQ,F0[15]=PQ,F0[16]=zQ,F0[17]=MQ,F0[18]=SQ,C$!==0&&(F0[19]=C$,Y.length++),Y};Math.imul||(X$=U$);function K$(E$,T$,Y){Y.negative=T$.negative^E$.negative,Y.length=E$.length+T$.length;for(var f=0,D$=0,F0=0;F0>>26)|0,D$+=C$>>>26,C$&=67108863}Y.words[F0]=L$,f=C$,C$=D$}return f!==0?Y.words[F0]=f:Y.length--,Y.strip()}function I$(E$,T$,Y){var f=new Q;return f.mulp(E$,T$,Y)}$$.prototype.mulTo=function(E$,T$){var Y,f=this.length+E$.length;return this.length===10&&E$.length===10?Y=X$(this,E$,T$):f<63?Y=U$(this,E$,T$):f<1024?Y=K$(this,E$,T$):Y=I$(this,E$,T$),Y};function Q(E$,T$){this.x=E$,this.y=T$}Q.prototype.makeRBT=function(E$){for(var T$=new Array(E$),Y=$$.prototype._countBits(E$)-1,f=0;f>=1;return f},Q.prototype.permute=function(E$,T$,Y,f,D$,F0){for(var C$=0;C$>>1)D$++;return 1<>>13,Y[2*F0+1]=D$&8191,D$=D$>>>13;for(F0=2*T$;F0>=26,T$+=f/67108864|0,T$+=D$>>>26,this.words[Y]=D$&67108863}return T$!==0&&(this.words[Y]=T$,this.length++),this},$$.prototype.muln=function(E$){return this.clone().imuln(E$)},$$.prototype.sqr=function(){return this.mul(this)},$$.prototype.isqr=function(){return this.imul(this.clone())},$$.prototype.pow=function(E$){var T$=V$(E$);if(T$.length===0)return new $$(1);for(var Y=this,f=0;f=0);var T$=E$%26,Y=(E$-T$)/26,f=67108863>>>26-T$<<26-T$,D$;if(T$!==0){var F0=0;for(D$=0;D$>>26-T$}F0&&(this.words[D$]=F0,this.length++)}if(Y!==0){for(D$=this.length-1;D$>=0;D$--)this.words[D$+Y]=this.words[D$];for(D$=0;D$=0);var f;T$?f=(T$-T$%26)/26:f=0;var D$=E$%26,F0=Math.min((E$-D$)/26,this.length),C$=67108863^67108863>>>D$<F0)for(this.length-=F0,R$=0;R$=0&&(P$!==0||R$>=f);R$--){var z$=this.words[R$]|0;this.words[R$]=P$<<26-D$|z$>>>D$,P$=z$&C$}return L$&&P$!==0&&(L$.words[L$.length++]=P$),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},$$.prototype.ishrn=function(E$,T$,Y){return r0(this.negative===0),this.iushrn(E$,T$,Y)},$$.prototype.shln=function(E$){return this.clone().ishln(E$)},$$.prototype.ushln=function(E$){return this.clone().iushln(E$)},$$.prototype.shrn=function(E$){return this.clone().ishrn(E$)},$$.prototype.ushrn=function(E$){return this.clone().iushrn(E$)},$$.prototype.testn=function(E$){r0(typeof E$=="number"&&E$>=0);var T$=E$%26,Y=(E$-T$)/26,f=1<=0);var T$=E$%26,Y=(E$-T$)/26;if(r0(this.negative===0,"imaskn works only with positive numbers"),this.length<=Y)return this;if(T$!==0&&Y++,this.length=Math.min(Y,this.length),T$!==0){var f=67108863^67108863>>>T$<=67108864;T$++)this.words[T$]-=67108864,T$===this.length-1?this.words[T$+1]=1:this.words[T$+1]++;return this.length=Math.max(this.length,T$+1),this},$$.prototype.isubn=function(E$){if(r0(typeof E$=="number"),r0(E$<67108864),E$<0)return this.iaddn(-E$);if(this.negative!==0)return this.negative=0,this.iaddn(E$),this.negative=1,this;if(this.words[0]-=E$,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var T$=0;T$>26)-(L$/67108864|0),this.words[D$+Y]=F0&67108863}for(;D$>26,this.words[D$+Y]=F0&67108863;if(C$===0)return this.strip();for(r0(C$===-1),C$=0,D$=0;D$>26,this.words[D$]=F0&67108863;return this.negative=1,this.strip()},$$.prototype._wordDiv=function(E$,T$){var Y=this.length-E$.length,f=this.clone(),D$=E$,F0=D$.words[D$.length-1]|0,C$=this._countBits(F0);Y=26-C$,Y!==0&&(D$=D$.ushln(Y),f.iushln(Y),F0=D$.words[D$.length-1]|0);var L$=f.length-D$.length,R$;if(T$!=="mod"){R$=new $$(null),R$.length=L$+1,R$.words=new Array(R$.length);for(var P$=0;P$=0;M$--){var S$=(f.words[D$.length+M$]|0)*67108864+(f.words[D$.length+M$-1]|0);for(S$=Math.min(S$/F0|0,67108863),f._ishlnsubmul(D$,S$,M$);f.negative!==0;)S$--,f.negative=0,f._ishlnsubmul(D$,1,M$),f.isZero()||(f.negative^=1);R$&&(R$.words[M$]=S$)}return R$&&R$.strip(),f.strip(),T$!=="div"&&Y!==0&&f.iushrn(Y),{div:R$||null,mod:f}},$$.prototype.divmod=function(E$,T$,Y){if(r0(!E$.isZero()),this.isZero())return{div:new $$(0),mod:new $$(0)};var f,D$,F0;return this.negative!==0&&E$.negative===0?(F0=this.neg().divmod(E$,T$),T$!=="mod"&&(f=F0.div.neg()),T$!=="div"&&(D$=F0.mod.neg(),Y&&D$.negative!==0&&D$.iadd(E$)),{div:f,mod:D$}):this.negative===0&&E$.negative!==0?(F0=this.divmod(E$.neg(),T$),T$!=="mod"&&(f=F0.div.neg()),{div:f,mod:F0.mod}):(this.negative&E$.negative)!==0?(F0=this.neg().divmod(E$.neg(),T$),T$!=="div"&&(D$=F0.mod.neg(),Y&&D$.negative!==0&&D$.isub(E$)),{div:F0.div,mod:D$}):E$.length>this.length||this.cmp(E$)<0?{div:new $$(0),mod:this}:E$.length===1?T$==="div"?{div:this.divn(E$.words[0]),mod:null}:T$==="mod"?{div:null,mod:new $$(this.modn(E$.words[0]))}:{div:this.divn(E$.words[0]),mod:new $$(this.modn(E$.words[0]))}:this._wordDiv(E$,T$)},$$.prototype.div=function(E$){return this.divmod(E$,"div",!1).div},$$.prototype.mod=function(E$){return this.divmod(E$,"mod",!1).mod},$$.prototype.umod=function(E$){return this.divmod(E$,"mod",!0).mod},$$.prototype.divRound=function(E$){var T$=this.divmod(E$);if(T$.mod.isZero())return T$.div;var Y=T$.div.negative!==0?T$.mod.isub(E$):T$.mod,f=E$.ushrn(1),D$=E$.andln(1),F0=Y.cmp(f);return F0<0||D$===1&&F0===0?T$.div:T$.div.negative!==0?T$.div.isubn(1):T$.div.iaddn(1)},$$.prototype.modn=function(E$){r0(E$<=67108863);for(var T$=(1<<26)%E$,Y=0,f=this.length-1;f>=0;f--)Y=(T$*Y+(this.words[f]|0))%E$;return Y},$$.prototype.idivn=function(E$){r0(E$<=67108863);for(var T$=0,Y=this.length-1;Y>=0;Y--){var f=(this.words[Y]|0)+T$*67108864;this.words[Y]=f/E$|0,T$=f%E$}return this.strip()},$$.prototype.divn=function(E$){return this.clone().idivn(E$)},$$.prototype.egcd=function(E$){r0(E$.negative===0),r0(!E$.isZero());var T$=this,Y=E$.clone();T$.negative!==0?T$=T$.umod(E$):T$=T$.clone();for(var f=new $$(1),D$=new $$(0),F0=new $$(0),C$=new $$(1),L$=0;T$.isEven()&&Y.isEven();)T$.iushrn(1),Y.iushrn(1),++L$;for(var R$=Y.clone(),P$=T$.clone();!T$.isZero();){for(var z$=0,M$=1;(T$.words[0]&M$)===0&&z$<26;++z$,M$<<=1);if(z$>0)for(T$.iushrn(z$);z$-- >0;)(f.isOdd()||D$.isOdd())&&(f.iadd(R$),D$.isub(P$)),f.iushrn(1),D$.iushrn(1);for(var S$=0,Z=1;(Y.words[0]&Z)===0&&S$<26;++S$,Z<<=1);if(S$>0)for(Y.iushrn(S$);S$-- >0;)(F0.isOdd()||C$.isOdd())&&(F0.iadd(R$),C$.isub(P$)),F0.iushrn(1),C$.iushrn(1);T$.cmp(Y)>=0?(T$.isub(Y),f.isub(F0),D$.isub(C$)):(Y.isub(T$),F0.isub(f),C$.isub(D$))}return{a:F0,b:C$,gcd:Y.iushln(L$)}},$$.prototype._invmp=function(E$){r0(E$.negative===0),r0(!E$.isZero());var T$=this,Y=E$.clone();T$.negative!==0?T$=T$.umod(E$):T$=T$.clone();for(var f=new $$(1),D$=new $$(0),F0=Y.clone();T$.cmpn(1)>0&&Y.cmpn(1)>0;){for(var C$=0,L$=1;(T$.words[0]&L$)===0&&C$<26;++C$,L$<<=1);if(C$>0)for(T$.iushrn(C$);C$-- >0;)f.isOdd()&&f.iadd(F0),f.iushrn(1);for(var R$=0,P$=1;(Y.words[0]&P$)===0&&R$<26;++R$,P$<<=1);if(R$>0)for(Y.iushrn(R$);R$-- >0;)D$.isOdd()&&D$.iadd(F0),D$.iushrn(1);T$.cmp(Y)>=0?(T$.isub(Y),f.isub(D$)):(Y.isub(T$),D$.isub(f))}var z$;return T$.cmpn(1)===0?z$=f:z$=D$,z$.cmpn(0)<0&&z$.iadd(E$),z$},$$.prototype.gcd=function(E$){if(this.isZero())return E$.abs();if(E$.isZero())return this.abs();var T$=this.clone(),Y=E$.clone();T$.negative=0,Y.negative=0;for(var f=0;T$.isEven()&&Y.isEven();f++)T$.iushrn(1),Y.iushrn(1);do{for(;T$.isEven();)T$.iushrn(1);for(;Y.isEven();)Y.iushrn(1);var D$=T$.cmp(Y);if(D$<0){var F0=T$;T$=Y,Y=F0}else if(D$===0||Y.cmpn(1)===0)break;T$.isub(Y)}while(!0);return Y.iushln(f)},$$.prototype.invm=function(E$){return this.egcd(E$).a.umod(E$)},$$.prototype.isEven=function(){return(this.words[0]&1)===0},$$.prototype.isOdd=function(){return(this.words[0]&1)===1},$$.prototype.andln=function(E$){return this.words[0]&E$},$$.prototype.bincn=function(E$){r0(typeof E$=="number");var T$=E$%26,Y=(E$-T$)/26,f=1<>>26,C$&=67108863,this.words[F0]=C$}return D$!==0&&(this.words[F0]=D$,this.length++),this},$$.prototype.isZero=function(){return this.length===1&&this.words[0]===0},$$.prototype.cmpn=function(E$){var T$=E$<0;if(this.negative!==0&&!T$)return-1;if(this.negative===0&&T$)return 1;this.strip();var Y;if(this.length>1)Y=1;else{T$&&(E$=-E$),r0(E$<=67108863,"Number is too big");var f=this.words[0]|0;Y=f===E$?0:fE$.length)return 1;if(this.length=0;Y--){var f=this.words[Y]|0,D$=E$.words[Y]|0;if(f!==D$){fD$&&(T$=1);break}}return T$},$$.prototype.gtn=function(E$){return this.cmpn(E$)===1},$$.prototype.gt=function(E$){return this.cmp(E$)===1},$$.prototype.gten=function(E$){return this.cmpn(E$)>=0},$$.prototype.gte=function(E$){return this.cmp(E$)>=0},$$.prototype.ltn=function(E$){return this.cmpn(E$)===-1},$$.prototype.lt=function(E$){return this.cmp(E$)===-1},$$.prototype.lten=function(E$){return this.cmpn(E$)<=0},$$.prototype.lte=function(E$){return this.cmp(E$)<=0},$$.prototype.eqn=function(E$){return this.cmpn(E$)===0},$$.prototype.eq=function(E$){return this.cmp(E$)===0},$$.red=function(E$){return new H$(E$)},$$.prototype.toRed=function(E$){return r0(!this.red,"Already a number in reduction context"),r0(this.negative===0,"red works only with positives"),E$.convertTo(this)._forceRed(E$)},$$.prototype.fromRed=function(){return r0(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},$$.prototype._forceRed=function(E$){return this.red=E$,this},$$.prototype.forceRed=function(E$){return r0(!this.red,"Already a number in reduction context"),this._forceRed(E$)},$$.prototype.redAdd=function(E$){return r0(this.red,"redAdd works only with red numbers"),this.red.add(this,E$)},$$.prototype.redIAdd=function(E$){return r0(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,E$)},$$.prototype.redSub=function(E$){return r0(this.red,"redSub works only with red numbers"),this.red.sub(this,E$)},$$.prototype.redISub=function(E$){return r0(this.red,"redISub works only with red numbers"),this.red.isub(this,E$)},$$.prototype.redShl=function(E$){return r0(this.red,"redShl works only with red numbers"),this.red.shl(this,E$)},$$.prototype.redMul=function(E$){return r0(this.red,"redMul works only with red numbers"),this.red._verify2(this,E$),this.red.mul(this,E$)},$$.prototype.redIMul=function(E$){return r0(this.red,"redMul works only with red numbers"),this.red._verify2(this,E$),this.red.imul(this,E$)},$$.prototype.redSqr=function(){return r0(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},$$.prototype.redISqr=function(){return r0(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},$$.prototype.redSqrt=function(){return r0(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},$$.prototype.redInvm=function(){return r0(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},$$.prototype.redNeg=function(){return r0(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},$$.prototype.redPow=function(E$){return r0(this.red&&!E$.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,E$)};var x={k256:null,p224:null,p192:null,p25519:null};function O$(E$,T$){this.name=E$,this.p=new $$(T$,16),this.n=this.p.bitLength(),this.k=new $$(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}O$.prototype._tmp=function(){var E$=new $$(null);return E$.words=new Array(Math.ceil(this.n/13)),E$},O$.prototype.ireduce=function(E$){var T$=E$,Y;do this.split(T$,this.tmp),T$=this.imulK(T$),T$=T$.iadd(this.tmp),Y=T$.bitLength();while(Y>this.n);var f=Y0?T$.isub(this.p):T$.strip!==void 0?T$.strip():T$._strip(),T$},O$.prototype.split=function(E$,T$){E$.iushrn(this.n,0,T$)},O$.prototype.imulK=function(E$){return E$.imul(this.k)};function J0(){O$.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}i0(J0,O$),J0.prototype.split=function(E$,T$){for(var Y=4194303,f=Math.min(E$.length,9),D$=0;D$>>22,F0=C$}F0>>>=22,E$.words[D$-10]=F0,F0===0&&E$.length>10?E$.length-=10:E$.length-=9},J0.prototype.imulK=function(E$){E$.words[E$.length]=0,E$.words[E$.length+1]=0,E$.length+=2;for(var T$=0,Y=0;Y>>=26,E$.words[Y]=D$,T$=f}return T$!==0&&(E$.words[E$.length++]=T$),E$},$$._prime=function(E$){if(x[E$])return x[E$];var T$;if(E$==="k256")T$=new J0;else if(E$==="p224")T$=new J$;else if(E$==="p192")T$=new F$;else if(E$==="p25519")T$=new A$;else throw new Error("Unknown prime "+E$);return x[E$]=T$,T$};function H$(E$){if(typeof E$=="string"){var T$=$$._prime(E$);this.m=T$.p,this.prime=T$}else r0(E$.gtn(1),"modulus must be greater than 1"),this.m=E$,this.prime=null}H$.prototype._verify1=function(E$){r0(E$.negative===0,"red works only with positives"),r0(E$.red,"red works only with red numbers")},H$.prototype._verify2=function(E$,T$){r0((E$.negative|T$.negative)===0,"red works only with positives"),r0(E$.red&&E$.red===T$.red,"red works only with red numbers")},H$.prototype.imod=function(E$){return this.prime?this.prime.ireduce(E$)._forceRed(this):E$.umod(this.m)._forceRed(this)},H$.prototype.neg=function(E$){return E$.isZero()?E$.clone():this.m.sub(E$)._forceRed(this)},H$.prototype.add=function(E$,T$){this._verify2(E$,T$);var Y=E$.add(T$);return Y.cmp(this.m)>=0&&Y.isub(this.m),Y._forceRed(this)},H$.prototype.iadd=function(E$,T$){this._verify2(E$,T$);var Y=E$.iadd(T$);return Y.cmp(this.m)>=0&&Y.isub(this.m),Y},H$.prototype.sub=function(E$,T$){this._verify2(E$,T$);var Y=E$.sub(T$);return Y.cmpn(0)<0&&Y.iadd(this.m),Y._forceRed(this)},H$.prototype.isub=function(E$,T$){this._verify2(E$,T$);var Y=E$.isub(T$);return Y.cmpn(0)<0&&Y.iadd(this.m),Y},H$.prototype.shl=function(E$,T$){return this._verify1(E$),this.imod(E$.ushln(T$))},H$.prototype.imul=function(E$,T$){return this._verify2(E$,T$),this.imod(E$.imul(T$))},H$.prototype.mul=function(E$,T$){return this._verify2(E$,T$),this.imod(E$.mul(T$))},H$.prototype.isqr=function(E$){return this.imul(E$,E$.clone())},H$.prototype.sqr=function(E$){return this.mul(E$,E$)},H$.prototype.sqrt=function(E$){if(E$.isZero())return E$.clone();var T$=this.m.andln(3);if(r0(T$%2===1),T$===3){var Y=this.m.add(new $$(1)).iushrn(2);return this.pow(E$,Y)}for(var f=this.m.subn(1),D$=0;!f.isZero()&&f.andln(1)===0;)D$++,f.iushrn(1);r0(!f.isZero());var F0=new $$(1).toRed(this),C$=F0.redNeg(),L$=this.m.subn(1).iushrn(1),R$=this.m.bitLength();for(R$=new $$(2*R$*R$).toRed(this);this.pow(R$,L$).cmp(C$)!==0;)R$.redIAdd(C$);for(var P$=this.pow(R$,f),z$=this.pow(E$,f.addn(1).iushrn(1)),M$=this.pow(E$,f),S$=D$;M$.cmp(F0)!==0;){for(var Z=M$,c=0;Z.cmp(F0)!==0;c++)Z=Z.redSqr();r0(c=0;D$--){for(var P$=T$.words[D$],z$=R$-1;z$>=0;z$--){var M$=P$>>z$&1;if(F0!==f[0]&&(F0=this.sqr(F0)),M$===0&&C$===0){L$=0;continue}C$<<=1,C$|=M$,L$++,!(L$!==Y&&(D$!==0||z$!==0))&&(F0=this.mul(F0,f[C$]),L$=0,C$=0)}R$=26}return F0},H$.prototype.convertTo=function(E$){var T$=E$.umod(this.m);return T$===E$?T$.clone():T$},H$.prototype.convertFrom=function(E$){var T$=E$.clone();return T$.red=null,T$},$$.mont=function(E$){return new W$(E$)};function W$(E$){H$.call(this,E$),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new $$(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}i0(W$,H$),W$.prototype.convertTo=function(E$){return this.imod(E$.ushln(this.shift))},W$.prototype.convertFrom=function(E$){var T$=this.imod(E$.mul(this.rinv));return T$.red=null,T$},W$.prototype.imul=function(E$,T$){if(E$.isZero()||T$.isZero())return E$.words[0]=0,E$.length=1,E$;var Y=E$.imul(T$),f=Y.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),D$=Y.isub(f).iushrn(this.shift),F0=D$;return D$.cmp(this.m)>=0?F0=D$.isub(this.m):D$.cmpn(0)<0&&(F0=D$.iadd(this.m)),F0._forceRed(this)},W$.prototype.mul=function(E$,T$){if(E$.isZero()||T$.isZero())return new $$(0)._forceRed(this);var Y=E$.mul(T$),f=Y.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),D$=Y.isub(f).iushrn(this.shift),F0=D$;return D$.cmp(this.m)>=0?F0=D$.isub(this.m):D$.cmpn(0)<0&&(F0=D$.iadd(this.m)),F0._forceRed(this)},W$.prototype.invm=function(E$){var T$=this.imod(E$._invmp(this.m).mul(this.r2));return T$._forceRed(this)}})(typeof m0>"u"||m0,t0)}}),JZ=pQ({"node_modules/create-ecdh/browser.js"(t0,m0){var a0=nY(),e0=OZ();m0.exports=function(Q$){return new i0(Q$)};var r0={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};r0.p224=r0.secp224r1,r0.p256=r0.secp256r1=r0.prime256v1,r0.p192=r0.secp192r1=r0.prime192v1,r0.p384=r0.secp384r1,r0.p521=r0.secp521r1;function i0(Q$){this.curveType=r0[Q$],this.curveType||(this.curveType={name:Q$}),this.curve=new a0.ec(this.curveType.name),this.keys=void 0}i0.prototype.generateKeys=function(Q$,$){return this.keys=this.curve.genKeyPair(),this.getPublicKey(Q$,$)},i0.prototype.computeSecret=function(Q$,$,N){$=$||"utf8",G0.isBuffer(Q$)||(Q$=new G0(Q$,$));var Y$=this.curve.keyFromPublic(Q$).getPublic(),O0=Y$.mul(this.keys.getPrivate()).getX();return $$(O0,N,this.curveType.byteLength)},i0.prototype.getPublicKey=function(Q$,$){var N=this.keys.getPublic($==="compressed",!0);return $==="hybrid"&&(N[N.length-1]%2?N[0]=7:N[0]=6),$$(N,Q$)},i0.prototype.getPrivateKey=function(Q$){return $$(this.keys.getPrivate(),Q$)},i0.prototype.setPublicKey=function(Q$,$){return $=$||"utf8",G0.isBuffer(Q$)||(Q$=new G0(Q$,$)),this.keys._importPublic(Q$),this},i0.prototype.setPrivateKey=function(Q$,$){$=$||"utf8",G0.isBuffer(Q$)||(Q$=new G0(Q$,$));var N=new e0(Q$);return N=N.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(N),this};function $$(Q$,$,N){Array.isArray(Q$)||(Q$=Q$.toArray());var Y$=new G0(Q$);if(N&&Y$.length0?E$:T$},$$.min=function(E$,T$){return E$.cmp(T$)<0?E$:T$},$$.prototype._init=function(E$,T$,Y){if(typeof E$=="number")return this._initNumber(E$,T$,Y);if(typeof E$=="object")return this._initArray(E$,T$,Y);T$==="hex"&&(T$=16),r0(T$===(T$|0)&&T$>=2&&T$<=36),E$=E$.toString().replace(/\s+/g,"");var f=0;E$[0]==="-"&&(f++,this.negative=1),f=0;f-=3)F0=E$[f]|E$[f-1]<<8|E$[f-2]<<16,this.words[D$]|=F0<>>26-C$&67108863,C$+=24,C$>=26&&(C$-=26,D$++);else if(Y==="le")for(f=0,D$=0;f>>26-C$&67108863,C$+=24,C$>=26&&(C$-=26,D$++);return this.strip()};function $(E$,T$){var Y=E$.charCodeAt(T$);return Y>=65&&Y<=70?Y-55:Y>=97&&Y<=102?Y-87:Y-48&15}function N(E$,T$,Y){var f=$(E$,Y);return Y-1>=T$&&(f|=$(E$,Y-1)<<4),f}$$.prototype._parseHex=function(E$,T$,Y){this.length=Math.ceil((E$.length-T$)/6),this.words=new Array(this.length);for(var f=0;f=T$;f-=2)C$=N(E$,T$,f)<=18?(D$-=18,F0+=1,this.words[F0]|=C$>>>26):D$+=8;else{var L$=E$.length-T$;for(f=L$%2===0?T$+1:T$;f=18?(D$-=18,F0+=1,this.words[F0]|=C$>>>26):D$+=8}this.strip()};function Y$(E$,T$,Y,f){for(var D$=0,F0=Math.min(E$.length,Y),C$=T$;C$=49?D$+=L$-49+10:L$>=17?D$+=L$-17+10:D$+=L$}return D$}$$.prototype._parseBase=function(E$,T$,Y){this.words=[0],this.length=1;for(var f=0,D$=1;D$<=67108863;D$*=T$)f++;f--,D$=D$/T$|0;for(var F0=E$.length-Y,C$=F0%f,L$=Math.min(F0,F0-C$)+Y,R$=0,P$=Y;P$1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},$$.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},$$.prototype.inspect=function(){return(this.red?""};var O0=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],Z$=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],G$=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];$$.prototype.toString=function(E$,T$){E$=E$||10,T$=T$|0||1;var Y;if(E$===16||E$==="hex"){Y="";for(var f=0,D$=0,F0=0;F0>>24-f&16777215,D$!==0||F0!==this.length-1?Y=O0[6-L$.length]+L$+Y:Y=L$+Y,f+=2,f>=26&&(f-=26,F0--)}for(D$!==0&&(Y=D$.toString(16)+Y);Y.length%T$!==0;)Y="0"+Y;return this.negative!==0&&(Y="-"+Y),Y}if(E$===(E$|0)&&E$>=2&&E$<=36){var R$=Z$[E$],P$=G$[E$];Y="";var z$=this.clone();for(z$.negative=0;!z$.isZero();){var M$=z$.modn(P$).toString(E$);z$=z$.idivn(P$),z$.isZero()?Y=M$+Y:Y=O0[R$-M$.length]+M$+Y}for(this.isZero()&&(Y="0"+Y);Y.length%T$!==0;)Y="0"+Y;return this.negative!==0&&(Y="-"+Y),Y}r0(!1,"Base should be between 2 and 36")},$$.prototype.toNumber=function(){var E$=this.words[0];return this.length===2?E$+=this.words[1]*67108864:this.length===3&&this.words[2]===1?E$+=4503599627370496+this.words[1]*67108864:this.length>2&&r0(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-E$:E$},$$.prototype.toJSON=function(){return this.toString(16)},$$.prototype.toBuffer=function(E$,T$){return r0(typeof Q$<"u"),this.toArrayLike(Q$,E$,T$)},$$.prototype.toArray=function(E$,T$){return this.toArrayLike(Array,E$,T$)},$$.prototype.toArrayLike=function(E$,T$,Y){var f=this.byteLength(),D$=Y||Math.max(1,f);r0(f<=D$,"byte array longer than desired length"),r0(D$>0,"Requested array length <= 0"),this.strip();var F0=T$==="le",C$=new E$(D$),L$,R$,P$=this.clone();if(F0){for(R$=0;!P$.isZero();R$++)L$=P$.andln(255),P$.iushrn(8),C$[R$]=L$;for(;R$=4096&&(Y+=13,T$>>>=13),T$>=64&&(Y+=7,T$>>>=7),T$>=8&&(Y+=4,T$>>>=4),T$>=2&&(Y+=2,T$>>>=2),Y+T$},$$.prototype._zeroBits=function(E$){if(E$===0)return 26;var T$=E$,Y=0;return(T$&8191)===0&&(Y+=13,T$>>>=13),(T$&127)===0&&(Y+=7,T$>>>=7),(T$&15)===0&&(Y+=4,T$>>>=4),(T$&3)===0&&(Y+=2,T$>>>=2),(T$&1)===0&&Y++,Y},$$.prototype.bitLength=function(){var E$=this.words[this.length-1],T$=this._countBits(E$);return(this.length-1)*26+T$};function V$(E$){for(var T$=new Array(E$.bitLength()),Y=0;Y>>D$}return T$}$$.prototype.zeroBits=function(){if(this.isZero())return 0;for(var E$=0,T$=0;T$E$.length?this.clone().ior(E$):E$.clone().ior(this)},$$.prototype.uor=function(E$){return this.length>E$.length?this.clone().iuor(E$):E$.clone().iuor(this)},$$.prototype.iuand=function(E$){var T$;this.length>E$.length?T$=E$:T$=this;for(var Y=0;YE$.length?this.clone().iand(E$):E$.clone().iand(this)},$$.prototype.uand=function(E$){return this.length>E$.length?this.clone().iuand(E$):E$.clone().iuand(this)},$$.prototype.iuxor=function(E$){var T$,Y;this.length>E$.length?(T$=this,Y=E$):(T$=E$,Y=this);for(var f=0;fE$.length?this.clone().ixor(E$):E$.clone().ixor(this)},$$.prototype.uxor=function(E$){return this.length>E$.length?this.clone().iuxor(E$):E$.clone().iuxor(this)},$$.prototype.inotn=function(E$){r0(typeof E$=="number"&&E$>=0);var T$=Math.ceil(E$/26)|0,Y=E$%26;this._expand(T$),Y>0&&T$--;for(var f=0;f0&&(this.words[f]=~this.words[f]&67108863>>26-Y),this.strip()},$$.prototype.notn=function(E$){return this.clone().inotn(E$)},$$.prototype.setn=function(E$,T$){r0(typeof E$=="number"&&E$>=0);var Y=E$/26|0,f=E$%26;return this._expand(Y+1),T$?this.words[Y]=this.words[Y]|1<E$.length?(Y=this,f=E$):(Y=E$,f=this);for(var D$=0,F0=0;F0>>26;for(;D$!==0&&F0>>26;if(this.length=Y.length,D$!==0)this.words[this.length]=D$,this.length++;else if(Y!==this)for(;F0E$.length?this.clone().iadd(E$):E$.clone().iadd(this)},$$.prototype.isub=function(E$){if(E$.negative!==0){E$.negative=0;var T$=this.iadd(E$);return E$.negative=1,T$._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(E$),this.negative=1,this._normSign();var Y=this.cmp(E$);if(Y===0)return this.negative=0,this.length=1,this.words[0]=0,this;var f,D$;Y>0?(f=this,D$=E$):(f=E$,D$=this);for(var F0=0,C$=0;C$>26,this.words[C$]=T$&67108863;for(;F0!==0&&C$>26,this.words[C$]=T$&67108863;if(F0===0&&C$>>26,M$=R$&67108863,S$=Math.min(P$,T$.length-1),Z=Math.max(0,P$-E$.length+1);Z<=S$;Z++){var c=P$-Z|0;D$=E$.words[c]|0,F0=T$.words[Z]|0,C$=D$*F0+M$,z$+=C$/67108864|0,M$=C$&67108863}Y.words[P$]=M$|0,R$=z$|0}return R$!==0?Y.words[P$]=R$|0:Y.length--,Y.strip()}var X$=function(E$,T$,Y){var f=E$.words,D$=T$.words,F0=Y.words,C$=0,L$,R$,P$,z$=f[0]|0,M$=z$&8191,S$=z$>>>13,Z=f[1]|0,c=Z&8191,v$=Z>>>13,A0=f[2]|0,q$=A0&8191,j$=A0>>>13,k$=f[3]|0,g$=k$&8191,_$=k$>>>13,N$=f[4]|0,x$=N$&8191,G=N$>>>13,B=f[5]|0,B$=B&8191,H0=B>>>13,y$=f[6]|0,w$=y$&8191,p$=y$>>>13,f$=f[7]|0,c$=f$&8191,h$=f$>>>13,d$=f[8]|0,V=d$&8191,h=d$>>>13,W0=f[9]|0,E0=W0&8191,b$=W0>>>13,l$=D$[0]|0,o$=l$&8191,u$=l$>>>13,n$=D$[1]|0,s$=n$&8191,t$=n$>>>13,U=D$[2]|0,d=U&8191,m$=U>>>13,T0=D$[3]|0,a$=T0&8191,e$=T0>>>13,r$=D$[4]|0,i$=r$&8191,$Q=r$>>>13,QQ=D$[5]|0,YQ=QQ&8191,X=QQ>>>13,b=D$[6]|0,ZQ=b&8191,D0=b>>>13,GQ=D$[7]|0,VQ=GQ&8191,UQ=GQ>>>13,XQ=D$[8]|0,KQ=XQ&8191,IQ=XQ>>>13,OQ=D$[9]|0,K=OQ&8191,l=OQ>>>13;Y.negative=E$.negative^T$.negative,Y.length=19,L$=Math.imul(M$,o$),R$=Math.imul(M$,u$),R$=R$+Math.imul(S$,o$)|0,P$=Math.imul(S$,u$);var JQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(JQ>>>26)|0,JQ&=67108863,L$=Math.imul(c,o$),R$=Math.imul(c,u$),R$=R$+Math.imul(v$,o$)|0,P$=Math.imul(v$,u$),L$=L$+Math.imul(M$,s$)|0,R$=R$+Math.imul(M$,t$)|0,R$=R$+Math.imul(S$,s$)|0,P$=P$+Math.imul(S$,t$)|0;var C0=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(C0>>>26)|0,C0&=67108863,L$=Math.imul(q$,o$),R$=Math.imul(q$,u$),R$=R$+Math.imul(j$,o$)|0,P$=Math.imul(j$,u$),L$=L$+Math.imul(c,s$)|0,R$=R$+Math.imul(c,t$)|0,R$=R$+Math.imul(v$,s$)|0,P$=P$+Math.imul(v$,t$)|0,L$=L$+Math.imul(M$,d)|0,R$=R$+Math.imul(M$,m$)|0,R$=R$+Math.imul(S$,d)|0,P$=P$+Math.imul(S$,m$)|0;var FQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(FQ>>>26)|0,FQ&=67108863,L$=Math.imul(g$,o$),R$=Math.imul(g$,u$),R$=R$+Math.imul(_$,o$)|0,P$=Math.imul(_$,u$),L$=L$+Math.imul(q$,s$)|0,R$=R$+Math.imul(q$,t$)|0,R$=R$+Math.imul(j$,s$)|0,P$=P$+Math.imul(j$,t$)|0,L$=L$+Math.imul(c,d)|0,R$=R$+Math.imul(c,m$)|0,R$=R$+Math.imul(v$,d)|0,P$=P$+Math.imul(v$,m$)|0,L$=L$+Math.imul(M$,a$)|0,R$=R$+Math.imul(M$,e$)|0,R$=R$+Math.imul(S$,a$)|0,P$=P$+Math.imul(S$,e$)|0;var AQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(AQ>>>26)|0,AQ&=67108863,L$=Math.imul(x$,o$),R$=Math.imul(x$,u$),R$=R$+Math.imul(G,o$)|0,P$=Math.imul(G,u$),L$=L$+Math.imul(g$,s$)|0,R$=R$+Math.imul(g$,t$)|0,R$=R$+Math.imul(_$,s$)|0,P$=P$+Math.imul(_$,t$)|0,L$=L$+Math.imul(q$,d)|0,R$=R$+Math.imul(q$,m$)|0,R$=R$+Math.imul(j$,d)|0,P$=P$+Math.imul(j$,m$)|0,L$=L$+Math.imul(c,a$)|0,R$=R$+Math.imul(c,e$)|0,R$=R$+Math.imul(v$,a$)|0,P$=P$+Math.imul(v$,e$)|0,L$=L$+Math.imul(M$,i$)|0,R$=R$+Math.imul(M$,$Q)|0,R$=R$+Math.imul(S$,i$)|0,P$=P$+Math.imul(S$,$Q)|0;var HQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(HQ>>>26)|0,HQ&=67108863,L$=Math.imul(B$,o$),R$=Math.imul(B$,u$),R$=R$+Math.imul(H0,o$)|0,P$=Math.imul(H0,u$),L$=L$+Math.imul(x$,s$)|0,R$=R$+Math.imul(x$,t$)|0,R$=R$+Math.imul(G,s$)|0,P$=P$+Math.imul(G,t$)|0,L$=L$+Math.imul(g$,d)|0,R$=R$+Math.imul(g$,m$)|0,R$=R$+Math.imul(_$,d)|0,P$=P$+Math.imul(_$,m$)|0,L$=L$+Math.imul(q$,a$)|0,R$=R$+Math.imul(q$,e$)|0,R$=R$+Math.imul(j$,a$)|0,P$=P$+Math.imul(j$,e$)|0,L$=L$+Math.imul(c,i$)|0,R$=R$+Math.imul(c,$Q)|0,R$=R$+Math.imul(v$,i$)|0,P$=P$+Math.imul(v$,$Q)|0,L$=L$+Math.imul(M$,YQ)|0,R$=R$+Math.imul(M$,X)|0,R$=R$+Math.imul(S$,YQ)|0,P$=P$+Math.imul(S$,X)|0;var WQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(WQ>>>26)|0,WQ&=67108863,L$=Math.imul(w$,o$),R$=Math.imul(w$,u$),R$=R$+Math.imul(p$,o$)|0,P$=Math.imul(p$,u$),L$=L$+Math.imul(B$,s$)|0,R$=R$+Math.imul(B$,t$)|0,R$=R$+Math.imul(H0,s$)|0,P$=P$+Math.imul(H0,t$)|0,L$=L$+Math.imul(x$,d)|0,R$=R$+Math.imul(x$,m$)|0,R$=R$+Math.imul(G,d)|0,P$=P$+Math.imul(G,m$)|0,L$=L$+Math.imul(g$,a$)|0,R$=R$+Math.imul(g$,e$)|0,R$=R$+Math.imul(_$,a$)|0,P$=P$+Math.imul(_$,e$)|0,L$=L$+Math.imul(q$,i$)|0,R$=R$+Math.imul(q$,$Q)|0,R$=R$+Math.imul(j$,i$)|0,P$=P$+Math.imul(j$,$Q)|0,L$=L$+Math.imul(c,YQ)|0,R$=R$+Math.imul(c,X)|0,R$=R$+Math.imul(v$,YQ)|0,P$=P$+Math.imul(v$,X)|0,L$=L$+Math.imul(M$,ZQ)|0,R$=R$+Math.imul(M$,D0)|0,R$=R$+Math.imul(S$,ZQ)|0,P$=P$+Math.imul(S$,D0)|0;var EQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(EQ>>>26)|0,EQ&=67108863,L$=Math.imul(c$,o$),R$=Math.imul(c$,u$),R$=R$+Math.imul(h$,o$)|0,P$=Math.imul(h$,u$),L$=L$+Math.imul(w$,s$)|0,R$=R$+Math.imul(w$,t$)|0,R$=R$+Math.imul(p$,s$)|0,P$=P$+Math.imul(p$,t$)|0,L$=L$+Math.imul(B$,d)|0,R$=R$+Math.imul(B$,m$)|0,R$=R$+Math.imul(H0,d)|0,P$=P$+Math.imul(H0,m$)|0,L$=L$+Math.imul(x$,a$)|0,R$=R$+Math.imul(x$,e$)|0,R$=R$+Math.imul(G,a$)|0,P$=P$+Math.imul(G,e$)|0,L$=L$+Math.imul(g$,i$)|0,R$=R$+Math.imul(g$,$Q)|0,R$=R$+Math.imul(_$,i$)|0,P$=P$+Math.imul(_$,$Q)|0,L$=L$+Math.imul(q$,YQ)|0,R$=R$+Math.imul(q$,X)|0,R$=R$+Math.imul(j$,YQ)|0,P$=P$+Math.imul(j$,X)|0,L$=L$+Math.imul(c,ZQ)|0,R$=R$+Math.imul(c,D0)|0,R$=R$+Math.imul(v$,ZQ)|0,P$=P$+Math.imul(v$,D0)|0,L$=L$+Math.imul(M$,VQ)|0,R$=R$+Math.imul(M$,UQ)|0,R$=R$+Math.imul(S$,VQ)|0,P$=P$+Math.imul(S$,UQ)|0;var TQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(TQ>>>26)|0,TQ&=67108863,L$=Math.imul(V,o$),R$=Math.imul(V,u$),R$=R$+Math.imul(h,o$)|0,P$=Math.imul(h,u$),L$=L$+Math.imul(c$,s$)|0,R$=R$+Math.imul(c$,t$)|0,R$=R$+Math.imul(h$,s$)|0,P$=P$+Math.imul(h$,t$)|0,L$=L$+Math.imul(w$,d)|0,R$=R$+Math.imul(w$,m$)|0,R$=R$+Math.imul(p$,d)|0,P$=P$+Math.imul(p$,m$)|0,L$=L$+Math.imul(B$,a$)|0,R$=R$+Math.imul(B$,e$)|0,R$=R$+Math.imul(H0,a$)|0,P$=P$+Math.imul(H0,e$)|0,L$=L$+Math.imul(x$,i$)|0,R$=R$+Math.imul(x$,$Q)|0,R$=R$+Math.imul(G,i$)|0,P$=P$+Math.imul(G,$Q)|0,L$=L$+Math.imul(g$,YQ)|0,R$=R$+Math.imul(g$,X)|0,R$=R$+Math.imul(_$,YQ)|0,P$=P$+Math.imul(_$,X)|0,L$=L$+Math.imul(q$,ZQ)|0,R$=R$+Math.imul(q$,D0)|0,R$=R$+Math.imul(j$,ZQ)|0,P$=P$+Math.imul(j$,D0)|0,L$=L$+Math.imul(c,VQ)|0,R$=R$+Math.imul(c,UQ)|0,R$=R$+Math.imul(v$,VQ)|0,P$=P$+Math.imul(v$,UQ)|0,L$=L$+Math.imul(M$,KQ)|0,R$=R$+Math.imul(M$,IQ)|0,R$=R$+Math.imul(S$,KQ)|0,P$=P$+Math.imul(S$,IQ)|0;var DQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(DQ>>>26)|0,DQ&=67108863,L$=Math.imul(E0,o$),R$=Math.imul(E0,u$),R$=R$+Math.imul(b$,o$)|0,P$=Math.imul(b$,u$),L$=L$+Math.imul(V,s$)|0,R$=R$+Math.imul(V,t$)|0,R$=R$+Math.imul(h,s$)|0,P$=P$+Math.imul(h,t$)|0,L$=L$+Math.imul(c$,d)|0,R$=R$+Math.imul(c$,m$)|0,R$=R$+Math.imul(h$,d)|0,P$=P$+Math.imul(h$,m$)|0,L$=L$+Math.imul(w$,a$)|0,R$=R$+Math.imul(w$,e$)|0,R$=R$+Math.imul(p$,a$)|0,P$=P$+Math.imul(p$,e$)|0,L$=L$+Math.imul(B$,i$)|0,R$=R$+Math.imul(B$,$Q)|0,R$=R$+Math.imul(H0,i$)|0,P$=P$+Math.imul(H0,$Q)|0,L$=L$+Math.imul(x$,YQ)|0,R$=R$+Math.imul(x$,X)|0,R$=R$+Math.imul(G,YQ)|0,P$=P$+Math.imul(G,X)|0,L$=L$+Math.imul(g$,ZQ)|0,R$=R$+Math.imul(g$,D0)|0,R$=R$+Math.imul(_$,ZQ)|0,P$=P$+Math.imul(_$,D0)|0,L$=L$+Math.imul(q$,VQ)|0,R$=R$+Math.imul(q$,UQ)|0,R$=R$+Math.imul(j$,VQ)|0,P$=P$+Math.imul(j$,UQ)|0,L$=L$+Math.imul(c,KQ)|0,R$=R$+Math.imul(c,IQ)|0,R$=R$+Math.imul(v$,KQ)|0,P$=P$+Math.imul(v$,IQ)|0,L$=L$+Math.imul(M$,K)|0,R$=R$+Math.imul(M$,l)|0,R$=R$+Math.imul(S$,K)|0,P$=P$+Math.imul(S$,l)|0;var I=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(I>>>26)|0,I&=67108863,L$=Math.imul(E0,s$),R$=Math.imul(E0,t$),R$=R$+Math.imul(b$,s$)|0,P$=Math.imul(b$,t$),L$=L$+Math.imul(V,d)|0,R$=R$+Math.imul(V,m$)|0,R$=R$+Math.imul(h,d)|0,P$=P$+Math.imul(h,m$)|0,L$=L$+Math.imul(c$,a$)|0,R$=R$+Math.imul(c$,e$)|0,R$=R$+Math.imul(h$,a$)|0,P$=P$+Math.imul(h$,e$)|0,L$=L$+Math.imul(w$,i$)|0,R$=R$+Math.imul(w$,$Q)|0,R$=R$+Math.imul(p$,i$)|0,P$=P$+Math.imul(p$,$Q)|0,L$=L$+Math.imul(B$,YQ)|0,R$=R$+Math.imul(B$,X)|0,R$=R$+Math.imul(H0,YQ)|0,P$=P$+Math.imul(H0,X)|0,L$=L$+Math.imul(x$,ZQ)|0,R$=R$+Math.imul(x$,D0)|0,R$=R$+Math.imul(G,ZQ)|0,P$=P$+Math.imul(G,D0)|0,L$=L$+Math.imul(g$,VQ)|0,R$=R$+Math.imul(g$,UQ)|0,R$=R$+Math.imul(_$,VQ)|0,P$=P$+Math.imul(_$,UQ)|0,L$=L$+Math.imul(q$,KQ)|0,R$=R$+Math.imul(q$,IQ)|0,R$=R$+Math.imul(j$,KQ)|0,P$=P$+Math.imul(j$,IQ)|0,L$=L$+Math.imul(c,K)|0,R$=R$+Math.imul(c,l)|0,R$=R$+Math.imul(v$,K)|0,P$=P$+Math.imul(v$,l)|0;var o=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(o>>>26)|0,o&=67108863,L$=Math.imul(E0,d),R$=Math.imul(E0,m$),R$=R$+Math.imul(b$,d)|0,P$=Math.imul(b$,m$),L$=L$+Math.imul(V,a$)|0,R$=R$+Math.imul(V,e$)|0,R$=R$+Math.imul(h,a$)|0,P$=P$+Math.imul(h,e$)|0,L$=L$+Math.imul(c$,i$)|0,R$=R$+Math.imul(c$,$Q)|0,R$=R$+Math.imul(h$,i$)|0,P$=P$+Math.imul(h$,$Q)|0,L$=L$+Math.imul(w$,YQ)|0,R$=R$+Math.imul(w$,X)|0,R$=R$+Math.imul(p$,YQ)|0,P$=P$+Math.imul(p$,X)|0,L$=L$+Math.imul(B$,ZQ)|0,R$=R$+Math.imul(B$,D0)|0,R$=R$+Math.imul(H0,ZQ)|0,P$=P$+Math.imul(H0,D0)|0,L$=L$+Math.imul(x$,VQ)|0,R$=R$+Math.imul(x$,UQ)|0,R$=R$+Math.imul(G,VQ)|0,P$=P$+Math.imul(G,UQ)|0,L$=L$+Math.imul(g$,KQ)|0,R$=R$+Math.imul(g$,IQ)|0,R$=R$+Math.imul(_$,KQ)|0,P$=P$+Math.imul(_$,IQ)|0,L$=L$+Math.imul(q$,K)|0,R$=R$+Math.imul(q$,l)|0,R$=R$+Math.imul(j$,K)|0,P$=P$+Math.imul(j$,l)|0;var CQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(CQ>>>26)|0,CQ&=67108863,L$=Math.imul(E0,a$),R$=Math.imul(E0,e$),R$=R$+Math.imul(b$,a$)|0,P$=Math.imul(b$,e$),L$=L$+Math.imul(V,i$)|0,R$=R$+Math.imul(V,$Q)|0,R$=R$+Math.imul(h,i$)|0,P$=P$+Math.imul(h,$Q)|0,L$=L$+Math.imul(c$,YQ)|0,R$=R$+Math.imul(c$,X)|0,R$=R$+Math.imul(h$,YQ)|0,P$=P$+Math.imul(h$,X)|0,L$=L$+Math.imul(w$,ZQ)|0,R$=R$+Math.imul(w$,D0)|0,R$=R$+Math.imul(p$,ZQ)|0,P$=P$+Math.imul(p$,D0)|0,L$=L$+Math.imul(B$,VQ)|0,R$=R$+Math.imul(B$,UQ)|0,R$=R$+Math.imul(H0,VQ)|0,P$=P$+Math.imul(H0,UQ)|0,L$=L$+Math.imul(x$,KQ)|0,R$=R$+Math.imul(x$,IQ)|0,R$=R$+Math.imul(G,KQ)|0,P$=P$+Math.imul(G,IQ)|0,L$=L$+Math.imul(g$,K)|0,R$=R$+Math.imul(g$,l)|0,R$=R$+Math.imul(_$,K)|0,P$=P$+Math.imul(_$,l)|0;var L0=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(L0>>>26)|0,L0&=67108863,L$=Math.imul(E0,i$),R$=Math.imul(E0,$Q),R$=R$+Math.imul(b$,i$)|0,P$=Math.imul(b$,$Q),L$=L$+Math.imul(V,YQ)|0,R$=R$+Math.imul(V,X)|0,R$=R$+Math.imul(h,YQ)|0,P$=P$+Math.imul(h,X)|0,L$=L$+Math.imul(c$,ZQ)|0,R$=R$+Math.imul(c$,D0)|0,R$=R$+Math.imul(h$,ZQ)|0,P$=P$+Math.imul(h$,D0)|0,L$=L$+Math.imul(w$,VQ)|0,R$=R$+Math.imul(w$,UQ)|0,R$=R$+Math.imul(p$,VQ)|0,P$=P$+Math.imul(p$,UQ)|0,L$=L$+Math.imul(B$,KQ)|0,R$=R$+Math.imul(B$,IQ)|0,R$=R$+Math.imul(H0,KQ)|0,P$=P$+Math.imul(H0,IQ)|0,L$=L$+Math.imul(x$,K)|0,R$=R$+Math.imul(x$,l)|0,R$=R$+Math.imul(G,K)|0,P$=P$+Math.imul(G,l)|0;var LQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(LQ>>>26)|0,LQ&=67108863,L$=Math.imul(E0,YQ),R$=Math.imul(E0,X),R$=R$+Math.imul(b$,YQ)|0,P$=Math.imul(b$,X),L$=L$+Math.imul(V,ZQ)|0,R$=R$+Math.imul(V,D0)|0,R$=R$+Math.imul(h,ZQ)|0,P$=P$+Math.imul(h,D0)|0,L$=L$+Math.imul(c$,VQ)|0,R$=R$+Math.imul(c$,UQ)|0,R$=R$+Math.imul(h$,VQ)|0,P$=P$+Math.imul(h$,UQ)|0,L$=L$+Math.imul(w$,KQ)|0,R$=R$+Math.imul(w$,IQ)|0,R$=R$+Math.imul(p$,KQ)|0,P$=P$+Math.imul(p$,IQ)|0,L$=L$+Math.imul(B$,K)|0,R$=R$+Math.imul(B$,l)|0,R$=R$+Math.imul(H0,K)|0,P$=P$+Math.imul(H0,l)|0;var RQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(RQ>>>26)|0,RQ&=67108863,L$=Math.imul(E0,ZQ),R$=Math.imul(E0,D0),R$=R$+Math.imul(b$,ZQ)|0,P$=Math.imul(b$,D0),L$=L$+Math.imul(V,VQ)|0,R$=R$+Math.imul(V,UQ)|0,R$=R$+Math.imul(h,VQ)|0,P$=P$+Math.imul(h,UQ)|0,L$=L$+Math.imul(c$,KQ)|0,R$=R$+Math.imul(c$,IQ)|0,R$=R$+Math.imul(h$,KQ)|0,P$=P$+Math.imul(h$,IQ)|0,L$=L$+Math.imul(w$,K)|0,R$=R$+Math.imul(w$,l)|0,R$=R$+Math.imul(p$,K)|0,P$=P$+Math.imul(p$,l)|0;var PQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(PQ>>>26)|0,PQ&=67108863,L$=Math.imul(E0,VQ),R$=Math.imul(E0,UQ),R$=R$+Math.imul(b$,VQ)|0,P$=Math.imul(b$,UQ),L$=L$+Math.imul(V,KQ)|0,R$=R$+Math.imul(V,IQ)|0,R$=R$+Math.imul(h,KQ)|0,P$=P$+Math.imul(h,IQ)|0,L$=L$+Math.imul(c$,K)|0,R$=R$+Math.imul(c$,l)|0,R$=R$+Math.imul(h$,K)|0,P$=P$+Math.imul(h$,l)|0;var zQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(zQ>>>26)|0,zQ&=67108863,L$=Math.imul(E0,KQ),R$=Math.imul(E0,IQ),R$=R$+Math.imul(b$,KQ)|0,P$=Math.imul(b$,IQ),L$=L$+Math.imul(V,K)|0,R$=R$+Math.imul(V,l)|0,R$=R$+Math.imul(h,K)|0,P$=P$+Math.imul(h,l)|0;var MQ=(C$+L$|0)+((R$&8191)<<13)|0;C$=(P$+(R$>>>13)|0)+(MQ>>>26)|0,MQ&=67108863,L$=Math.imul(E0,K),R$=Math.imul(E0,l),R$=R$+Math.imul(b$,K)|0,P$=Math.imul(b$,l);var SQ=(C$+L$|0)+((R$&8191)<<13)|0;return C$=(P$+(R$>>>13)|0)+(SQ>>>26)|0,SQ&=67108863,F0[0]=JQ,F0[1]=C0,F0[2]=FQ,F0[3]=AQ,F0[4]=HQ,F0[5]=WQ,F0[6]=EQ,F0[7]=TQ,F0[8]=DQ,F0[9]=I,F0[10]=o,F0[11]=CQ,F0[12]=L0,F0[13]=LQ,F0[14]=RQ,F0[15]=PQ,F0[16]=zQ,F0[17]=MQ,F0[18]=SQ,C$!==0&&(F0[19]=C$,Y.length++),Y};Math.imul||(X$=U$);function K$(E$,T$,Y){Y.negative=T$.negative^E$.negative,Y.length=E$.length+T$.length;for(var f=0,D$=0,F0=0;F0>>26)|0,D$+=C$>>>26,C$&=67108863}Y.words[F0]=L$,f=C$,C$=D$}return f!==0?Y.words[F0]=f:Y.length--,Y.strip()}function I$(E$,T$,Y){var f=new Q;return f.mulp(E$,T$,Y)}$$.prototype.mulTo=function(E$,T$){var Y,f=this.length+E$.length;return this.length===10&&E$.length===10?Y=X$(this,E$,T$):f<63?Y=U$(this,E$,T$):f<1024?Y=K$(this,E$,T$):Y=I$(this,E$,T$),Y};function Q(E$,T$){this.x=E$,this.y=T$}Q.prototype.makeRBT=function(E$){for(var T$=new Array(E$),Y=$$.prototype._countBits(E$)-1,f=0;f>=1;return f},Q.prototype.permute=function(E$,T$,Y,f,D$,F0){for(var C$=0;C$>>1)D$++;return 1<>>13,Y[2*F0+1]=D$&8191,D$=D$>>>13;for(F0=2*T$;F0>=26,T$+=f/67108864|0,T$+=D$>>>26,this.words[Y]=D$&67108863}return T$!==0&&(this.words[Y]=T$,this.length++),this},$$.prototype.muln=function(E$){return this.clone().imuln(E$)},$$.prototype.sqr=function(){return this.mul(this)},$$.prototype.isqr=function(){return this.imul(this.clone())},$$.prototype.pow=function(E$){var T$=V$(E$);if(T$.length===0)return new $$(1);for(var Y=this,f=0;f=0);var T$=E$%26,Y=(E$-T$)/26,f=67108863>>>26-T$<<26-T$,D$;if(T$!==0){var F0=0;for(D$=0;D$>>26-T$}F0&&(this.words[D$]=F0,this.length++)}if(Y!==0){for(D$=this.length-1;D$>=0;D$--)this.words[D$+Y]=this.words[D$];for(D$=0;D$=0);var f;T$?f=(T$-T$%26)/26:f=0;var D$=E$%26,F0=Math.min((E$-D$)/26,this.length),C$=67108863^67108863>>>D$<F0)for(this.length-=F0,R$=0;R$=0&&(P$!==0||R$>=f);R$--){var z$=this.words[R$]|0;this.words[R$]=P$<<26-D$|z$>>>D$,P$=z$&C$}return L$&&P$!==0&&(L$.words[L$.length++]=P$),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},$$.prototype.ishrn=function(E$,T$,Y){return r0(this.negative===0),this.iushrn(E$,T$,Y)},$$.prototype.shln=function(E$){return this.clone().ishln(E$)},$$.prototype.ushln=function(E$){return this.clone().iushln(E$)},$$.prototype.shrn=function(E$){return this.clone().ishrn(E$)},$$.prototype.ushrn=function(E$){return this.clone().iushrn(E$)},$$.prototype.testn=function(E$){r0(typeof E$=="number"&&E$>=0);var T$=E$%26,Y=(E$-T$)/26,f=1<=0);var T$=E$%26,Y=(E$-T$)/26;if(r0(this.negative===0,"imaskn works only with positive numbers"),this.length<=Y)return this;if(T$!==0&&Y++,this.length=Math.min(Y,this.length),T$!==0){var f=67108863^67108863>>>T$<=67108864;T$++)this.words[T$]-=67108864,T$===this.length-1?this.words[T$+1]=1:this.words[T$+1]++;return this.length=Math.max(this.length,T$+1),this},$$.prototype.isubn=function(E$){if(r0(typeof E$=="number"),r0(E$<67108864),E$<0)return this.iaddn(-E$);if(this.negative!==0)return this.negative=0,this.iaddn(E$),this.negative=1,this;if(this.words[0]-=E$,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var T$=0;T$>26)-(L$/67108864|0),this.words[D$+Y]=F0&67108863}for(;D$>26,this.words[D$+Y]=F0&67108863;if(C$===0)return this.strip();for(r0(C$===-1),C$=0,D$=0;D$>26,this.words[D$]=F0&67108863;return this.negative=1,this.strip()},$$.prototype._wordDiv=function(E$,T$){var Y=this.length-E$.length,f=this.clone(),D$=E$,F0=D$.words[D$.length-1]|0,C$=this._countBits(F0);Y=26-C$,Y!==0&&(D$=D$.ushln(Y),f.iushln(Y),F0=D$.words[D$.length-1]|0);var L$=f.length-D$.length,R$;if(T$!=="mod"){R$=new $$(null),R$.length=L$+1,R$.words=new Array(R$.length);for(var P$=0;P$=0;M$--){var S$=(f.words[D$.length+M$]|0)*67108864+(f.words[D$.length+M$-1]|0);for(S$=Math.min(S$/F0|0,67108863),f._ishlnsubmul(D$,S$,M$);f.negative!==0;)S$--,f.negative=0,f._ishlnsubmul(D$,1,M$),f.isZero()||(f.negative^=1);R$&&(R$.words[M$]=S$)}return R$&&R$.strip(),f.strip(),T$!=="div"&&Y!==0&&f.iushrn(Y),{div:R$||null,mod:f}},$$.prototype.divmod=function(E$,T$,Y){if(r0(!E$.isZero()),this.isZero())return{div:new $$(0),mod:new $$(0)};var f,D$,F0;return this.negative!==0&&E$.negative===0?(F0=this.neg().divmod(E$,T$),T$!=="mod"&&(f=F0.div.neg()),T$!=="div"&&(D$=F0.mod.neg(),Y&&D$.negative!==0&&D$.iadd(E$)),{div:f,mod:D$}):this.negative===0&&E$.negative!==0?(F0=this.divmod(E$.neg(),T$),T$!=="mod"&&(f=F0.div.neg()),{div:f,mod:F0.mod}):(this.negative&E$.negative)!==0?(F0=this.neg().divmod(E$.neg(),T$),T$!=="div"&&(D$=F0.mod.neg(),Y&&D$.negative!==0&&D$.isub(E$)),{div:F0.div,mod:D$}):E$.length>this.length||this.cmp(E$)<0?{div:new $$(0),mod:this}:E$.length===1?T$==="div"?{div:this.divn(E$.words[0]),mod:null}:T$==="mod"?{div:null,mod:new $$(this.modn(E$.words[0]))}:{div:this.divn(E$.words[0]),mod:new $$(this.modn(E$.words[0]))}:this._wordDiv(E$,T$)},$$.prototype.div=function(E$){return this.divmod(E$,"div",!1).div},$$.prototype.mod=function(E$){return this.divmod(E$,"mod",!1).mod},$$.prototype.umod=function(E$){return this.divmod(E$,"mod",!0).mod},$$.prototype.divRound=function(E$){var T$=this.divmod(E$);if(T$.mod.isZero())return T$.div;var Y=T$.div.negative!==0?T$.mod.isub(E$):T$.mod,f=E$.ushrn(1),D$=E$.andln(1),F0=Y.cmp(f);return F0<0||D$===1&&F0===0?T$.div:T$.div.negative!==0?T$.div.isubn(1):T$.div.iaddn(1)},$$.prototype.modn=function(E$){r0(E$<=67108863);for(var T$=(1<<26)%E$,Y=0,f=this.length-1;f>=0;f--)Y=(T$*Y+(this.words[f]|0))%E$;return Y},$$.prototype.idivn=function(E$){r0(E$<=67108863);for(var T$=0,Y=this.length-1;Y>=0;Y--){var f=(this.words[Y]|0)+T$*67108864;this.words[Y]=f/E$|0,T$=f%E$}return this.strip()},$$.prototype.divn=function(E$){return this.clone().idivn(E$)},$$.prototype.egcd=function(E$){r0(E$.negative===0),r0(!E$.isZero());var T$=this,Y=E$.clone();T$.negative!==0?T$=T$.umod(E$):T$=T$.clone();for(var f=new $$(1),D$=new $$(0),F0=new $$(0),C$=new $$(1),L$=0;T$.isEven()&&Y.isEven();)T$.iushrn(1),Y.iushrn(1),++L$;for(var R$=Y.clone(),P$=T$.clone();!T$.isZero();){for(var z$=0,M$=1;(T$.words[0]&M$)===0&&z$<26;++z$,M$<<=1);if(z$>0)for(T$.iushrn(z$);z$-- >0;)(f.isOdd()||D$.isOdd())&&(f.iadd(R$),D$.isub(P$)),f.iushrn(1),D$.iushrn(1);for(var S$=0,Z=1;(Y.words[0]&Z)===0&&S$<26;++S$,Z<<=1);if(S$>0)for(Y.iushrn(S$);S$-- >0;)(F0.isOdd()||C$.isOdd())&&(F0.iadd(R$),C$.isub(P$)),F0.iushrn(1),C$.iushrn(1);T$.cmp(Y)>=0?(T$.isub(Y),f.isub(F0),D$.isub(C$)):(Y.isub(T$),F0.isub(f),C$.isub(D$))}return{a:F0,b:C$,gcd:Y.iushln(L$)}},$$.prototype._invmp=function(E$){r0(E$.negative===0),r0(!E$.isZero());var T$=this,Y=E$.clone();T$.negative!==0?T$=T$.umod(E$):T$=T$.clone();for(var f=new $$(1),D$=new $$(0),F0=Y.clone();T$.cmpn(1)>0&&Y.cmpn(1)>0;){for(var C$=0,L$=1;(T$.words[0]&L$)===0&&C$<26;++C$,L$<<=1);if(C$>0)for(T$.iushrn(C$);C$-- >0;)f.isOdd()&&f.iadd(F0),f.iushrn(1);for(var R$=0,P$=1;(Y.words[0]&P$)===0&&R$<26;++R$,P$<<=1);if(R$>0)for(Y.iushrn(R$);R$-- >0;)D$.isOdd()&&D$.iadd(F0),D$.iushrn(1);T$.cmp(Y)>=0?(T$.isub(Y),f.isub(D$)):(Y.isub(T$),D$.isub(f))}var z$;return T$.cmpn(1)===0?z$=f:z$=D$,z$.cmpn(0)<0&&z$.iadd(E$),z$},$$.prototype.gcd=function(E$){if(this.isZero())return E$.abs();if(E$.isZero())return this.abs();var T$=this.clone(),Y=E$.clone();T$.negative=0,Y.negative=0;for(var f=0;T$.isEven()&&Y.isEven();f++)T$.iushrn(1),Y.iushrn(1);do{for(;T$.isEven();)T$.iushrn(1);for(;Y.isEven();)Y.iushrn(1);var D$=T$.cmp(Y);if(D$<0){var F0=T$;T$=Y,Y=F0}else if(D$===0||Y.cmpn(1)===0)break;T$.isub(Y)}while(!0);return Y.iushln(f)},$$.prototype.invm=function(E$){return this.egcd(E$).a.umod(E$)},$$.prototype.isEven=function(){return(this.words[0]&1)===0},$$.prototype.isOdd=function(){return(this.words[0]&1)===1},$$.prototype.andln=function(E$){return this.words[0]&E$},$$.prototype.bincn=function(E$){r0(typeof E$=="number");var T$=E$%26,Y=(E$-T$)/26,f=1<>>26,C$&=67108863,this.words[F0]=C$}return D$!==0&&(this.words[F0]=D$,this.length++),this},$$.prototype.isZero=function(){return this.length===1&&this.words[0]===0},$$.prototype.cmpn=function(E$){var T$=E$<0;if(this.negative!==0&&!T$)return-1;if(this.negative===0&&T$)return 1;this.strip();var Y;if(this.length>1)Y=1;else{T$&&(E$=-E$),r0(E$<=67108863,"Number is too big");var f=this.words[0]|0;Y=f===E$?0:fE$.length)return 1;if(this.length=0;Y--){var f=this.words[Y]|0,D$=E$.words[Y]|0;if(f!==D$){fD$&&(T$=1);break}}return T$},$$.prototype.gtn=function(E$){return this.cmpn(E$)===1},$$.prototype.gt=function(E$){return this.cmp(E$)===1},$$.prototype.gten=function(E$){return this.cmpn(E$)>=0},$$.prototype.gte=function(E$){return this.cmp(E$)>=0},$$.prototype.ltn=function(E$){return this.cmpn(E$)===-1},$$.prototype.lt=function(E$){return this.cmp(E$)===-1},$$.prototype.lten=function(E$){return this.cmpn(E$)<=0},$$.prototype.lte=function(E$){return this.cmp(E$)<=0},$$.prototype.eqn=function(E$){return this.cmpn(E$)===0},$$.prototype.eq=function(E$){return this.cmp(E$)===0},$$.red=function(E$){return new H$(E$)},$$.prototype.toRed=function(E$){return r0(!this.red,"Already a number in reduction context"),r0(this.negative===0,"red works only with positives"),E$.convertTo(this)._forceRed(E$)},$$.prototype.fromRed=function(){return r0(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},$$.prototype._forceRed=function(E$){return this.red=E$,this},$$.prototype.forceRed=function(E$){return r0(!this.red,"Already a number in reduction context"),this._forceRed(E$)},$$.prototype.redAdd=function(E$){return r0(this.red,"redAdd works only with red numbers"),this.red.add(this,E$)},$$.prototype.redIAdd=function(E$){return r0(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,E$)},$$.prototype.redSub=function(E$){return r0(this.red,"redSub works only with red numbers"),this.red.sub(this,E$)},$$.prototype.redISub=function(E$){return r0(this.red,"redISub works only with red numbers"),this.red.isub(this,E$)},$$.prototype.redShl=function(E$){return r0(this.red,"redShl works only with red numbers"),this.red.shl(this,E$)},$$.prototype.redMul=function(E$){return r0(this.red,"redMul works only with red numbers"),this.red._verify2(this,E$),this.red.mul(this,E$)},$$.prototype.redIMul=function(E$){return r0(this.red,"redMul works only with red numbers"),this.red._verify2(this,E$),this.red.imul(this,E$)},$$.prototype.redSqr=function(){return r0(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},$$.prototype.redISqr=function(){return r0(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},$$.prototype.redSqrt=function(){return r0(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},$$.prototype.redInvm=function(){return r0(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},$$.prototype.redNeg=function(){return r0(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},$$.prototype.redPow=function(E$){return r0(this.red&&!E$.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,E$)};var x={k256:null,p224:null,p192:null,p25519:null};function O$(E$,T$){this.name=E$,this.p=new $$(T$,16),this.n=this.p.bitLength(),this.k=new $$(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}O$.prototype._tmp=function(){var E$=new $$(null);return E$.words=new Array(Math.ceil(this.n/13)),E$},O$.prototype.ireduce=function(E$){var T$=E$,Y;do this.split(T$,this.tmp),T$=this.imulK(T$),T$=T$.iadd(this.tmp),Y=T$.bitLength();while(Y>this.n);var f=Y0?T$.isub(this.p):T$.strip!==void 0?T$.strip():T$._strip(),T$},O$.prototype.split=function(E$,T$){E$.iushrn(this.n,0,T$)},O$.prototype.imulK=function(E$){return E$.imul(this.k)};function J0(){O$.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}i0(J0,O$),J0.prototype.split=function(E$,T$){for(var Y=4194303,f=Math.min(E$.length,9),D$=0;D$>>22,F0=C$}F0>>>=22,E$.words[D$-10]=F0,F0===0&&E$.length>10?E$.length-=10:E$.length-=9},J0.prototype.imulK=function(E$){E$.words[E$.length]=0,E$.words[E$.length+1]=0,E$.length+=2;for(var T$=0,Y=0;Y>>=26,E$.words[Y]=D$,T$=f}return T$!==0&&(E$.words[E$.length++]=T$),E$},$$._prime=function(E$){if(x[E$])return x[E$];var T$;if(E$==="k256")T$=new J0;else if(E$==="p224")T$=new J$;else if(E$==="p192")T$=new F$;else if(E$==="p25519")T$=new A$;else throw new Error("Unknown prime "+E$);return x[E$]=T$,T$};function H$(E$){if(typeof E$=="string"){var T$=$$._prime(E$);this.m=T$.p,this.prime=T$}else r0(E$.gtn(1),"modulus must be greater than 1"),this.m=E$,this.prime=null}H$.prototype._verify1=function(E$){r0(E$.negative===0,"red works only with positives"),r0(E$.red,"red works only with red numbers")},H$.prototype._verify2=function(E$,T$){r0((E$.negative|T$.negative)===0,"red works only with positives"),r0(E$.red&&E$.red===T$.red,"red works only with red numbers")},H$.prototype.imod=function(E$){return this.prime?this.prime.ireduce(E$)._forceRed(this):E$.umod(this.m)._forceRed(this)},H$.prototype.neg=function(E$){return E$.isZero()?E$.clone():this.m.sub(E$)._forceRed(this)},H$.prototype.add=function(E$,T$){this._verify2(E$,T$);var Y=E$.add(T$);return Y.cmp(this.m)>=0&&Y.isub(this.m),Y._forceRed(this)},H$.prototype.iadd=function(E$,T$){this._verify2(E$,T$);var Y=E$.iadd(T$);return Y.cmp(this.m)>=0&&Y.isub(this.m),Y},H$.prototype.sub=function(E$,T$){this._verify2(E$,T$);var Y=E$.sub(T$);return Y.cmpn(0)<0&&Y.iadd(this.m),Y._forceRed(this)},H$.prototype.isub=function(E$,T$){this._verify2(E$,T$);var Y=E$.isub(T$);return Y.cmpn(0)<0&&Y.iadd(this.m),Y},H$.prototype.shl=function(E$,T$){return this._verify1(E$),this.imod(E$.ushln(T$))},H$.prototype.imul=function(E$,T$){return this._verify2(E$,T$),this.imod(E$.imul(T$))},H$.prototype.mul=function(E$,T$){return this._verify2(E$,T$),this.imod(E$.mul(T$))},H$.prototype.isqr=function(E$){return this.imul(E$,E$.clone())},H$.prototype.sqr=function(E$){return this.mul(E$,E$)},H$.prototype.sqrt=function(E$){if(E$.isZero())return E$.clone();var T$=this.m.andln(3);if(r0(T$%2===1),T$===3){var Y=this.m.add(new $$(1)).iushrn(2);return this.pow(E$,Y)}for(var f=this.m.subn(1),D$=0;!f.isZero()&&f.andln(1)===0;)D$++,f.iushrn(1);r0(!f.isZero());var F0=new $$(1).toRed(this),C$=F0.redNeg(),L$=this.m.subn(1).iushrn(1),R$=this.m.bitLength();for(R$=new $$(2*R$*R$).toRed(this);this.pow(R$,L$).cmp(C$)!==0;)R$.redIAdd(C$);for(var P$=this.pow(R$,f),z$=this.pow(E$,f.addn(1).iushrn(1)),M$=this.pow(E$,f),S$=D$;M$.cmp(F0)!==0;){for(var Z=M$,c=0;Z.cmp(F0)!==0;c++)Z=Z.redSqr();r0(c=0;D$--){for(var P$=T$.words[D$],z$=R$-1;z$>=0;z$--){var M$=P$>>z$&1;if(F0!==f[0]&&(F0=this.sqr(F0)),M$===0&&C$===0){L$=0;continue}C$<<=1,C$|=M$,L$++,!(L$!==Y&&(D$!==0||z$!==0))&&(F0=this.mul(F0,f[C$]),L$=0,C$=0)}R$=26}return F0},H$.prototype.convertTo=function(E$){var T$=E$.umod(this.m);return T$===E$?T$.clone():T$},H$.prototype.convertFrom=function(E$){var T$=E$.clone();return T$.red=null,T$},$$.mont=function(E$){return new W$(E$)};function W$(E$){H$.call(this,E$),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new $$(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}i0(W$,H$),W$.prototype.convertTo=function(E$){return this.imod(E$.ushln(this.shift))},W$.prototype.convertFrom=function(E$){var T$=this.imod(E$.mul(this.rinv));return T$.red=null,T$},W$.prototype.imul=function(E$,T$){if(E$.isZero()||T$.isZero())return E$.words[0]=0,E$.length=1,E$;var Y=E$.imul(T$),f=Y.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),D$=Y.isub(f).iushrn(this.shift),F0=D$;return D$.cmp(this.m)>=0?F0=D$.isub(this.m):D$.cmpn(0)<0&&(F0=D$.iadd(this.m)),F0._forceRed(this)},W$.prototype.mul=function(E$,T$){if(E$.isZero()||T$.isZero())return new $$(0)._forceRed(this);var Y=E$.mul(T$),f=Y.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),D$=Y.isub(f).iushrn(this.shift),F0=D$;return D$.cmp(this.m)>=0?F0=D$.isub(this.m):D$.cmpn(0)<0&&(F0=D$.iadd(this.m)),F0._forceRed(this)},W$.prototype.invm=function(E$){var T$=this.imod(E$._invmp(this.m).mul(this.r2));return T$._forceRed(this)}})(typeof m0>"u"||m0,t0)}}),{CryptoHasher:AZ}=globalThis.Bun,b0=pQ({"node_modules/public-encrypt/withPublic.js"(t0,m0){var a0=$0(),e0=cQ().Buffer;function r0(i0,$$){return e0.from(i0.toRed(a0.mont($$.modulus)).redPow(new a0($$.publicExponent)).fromRed().toArray())}m0.exports=r0}}),HZ=pQ({"node_modules/public-encrypt/publicEncrypt.js"(t0,m0){var a0=d0(),e0=hQ(),r0=w(),i0=FZ(),$$=z(),Q$=$0(),$=b0(),N=qY(),Y$=cQ().Buffer;m0.exports=function(V$,U$,X$){var K$;V$.padding?K$=V$.padding:X$?K$=1:K$=4;var I$=a0(V$),Q;if(K$===4)Q=O0(I$,U$);else if(K$===1)Q=Z$(I$,U$,X$);else if(K$===3){if(Q=new Q$(U$),Q.cmp(I$.modulus)>=0)throw new Error("data too long for modulus")}else throw new Error("unknown padding");return X$?N(Q,I$):$(Q,I$)};function O0(V$,U$){var X$=V$.modulus.byteLength(),K$=U$.length,I$=r0("sha1").update(Y$.alloc(0)).digest(),Q=I$.length,x=2*Q;if(K$>X$-x-2)throw new Error("message too long");var O$=Y$.alloc(X$-K$-x-2),J0=X$-Q-1,J$=e0(Q),F$=$$(Y$.concat([I$,O$,Y$.alloc(1,1),U$],J0),i0(J$,J0)),A$=$$(J$,i0(F$,Q));return new Q$(Y$.concat([Y$.alloc(1),A$,F$],X$))}function Z$(V$,U$,X$){var K$=U$.length,I$=V$.modulus.byteLength();if(K$>I$-11)throw new Error("message too long");var Q;return X$?Q=Y$.alloc(I$-K$-3,255):Q=G$(I$-K$-3),new Q$(Y$.concat([Y$.from([0,X$?1:2]),Q,Y$.alloc(1),U$],I$))}function G$(V$){for(var U$=Y$.allocUnsafe(V$),X$=0,K$=e0(V$*2),I$=0,Q;X$I$||new i0(V$).cmp(K$.modulus)>=0)throw new Error("decryption error");var Q;U$?Q=$(new i0(V$),K$):Q=$$(V$,K$);var x=N.alloc(I$-Q.length);if(Q=N.concat([x,Q],I$),X$===4)return Y$(K$,Q);if(X$===1)return O0(K$,Q,U$);if(X$===3)return Q;throw new Error("unknown padding")};function Y$(G$,V$){var U$=G$.modulus.byteLength(),X$=Q$("sha1").update(N.alloc(0)).digest(),K$=X$.length;if(V$[0]!==0)throw new Error("decryption error");var I$=V$.slice(1,K$+1),Q=V$.slice(K$+1),x=r0(I$,e0(Q,K$)),O$=r0(Q,e0(x,U$-K$-1));if(Z$(X$,O$.slice(0,K$)))throw new Error("decryption error");for(var J0=K$;O$[J0]===0;)J0++;if(O$[J0++]!==1)throw new Error("decryption error");return O$.slice(J0)}function O0(G$,V$,U$){for(var X$=V$.slice(0,2),K$=2,I$=0;V$[K$++]!==0;)if(K$>=V$.length){I$++;break}var Q=V$.slice(2,K$-1);if((X$.toString("hex")!=="0002"&&!U$||X$.toString("hex")!=="0001"&&U$)&&I$++,Q.length<8&&I$++,I$)throw new Error("decryption error");return V$.slice(K$)}function Z$(G$,V$){G$=N.from(G$),V$=N.from(V$);var U$=0,X$=G$.length;G$.length!==V$.length&&(U$++,X$=Math.min(G$.length,V$.length));for(var K$=-1;++K$i0||O0<0)throw new TypeError("offset must be a uint32");if(O0>r0||O0>Z$)throw new RangeError("offset out of range")}function Q$(O0,Z$,G$){if(typeof O0!="number"||O0!==O0)throw new TypeError("size must be a number");if(O0>i0||O0<0)throw new TypeError("size must be a uint32");if(O0+Z$>G$||O0>r0)throw new RangeError("buffer too small")}t0.randomFill=$,t0.randomFillSync=Y$;function $(O0,Z$,G$,V$){if(!e0.isBuffer(O0)&&!(O0 instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if(typeof Z$=="function")V$=Z$,Z$=0,G$=O0.length;else if(typeof G$=="function")V$=G$,G$=O0.length-Z$;else if(typeof V$!="function")throw new TypeError('"cb" argument must be a function');return $$(Z$,O0.length),Q$(G$,Z$,O0.length),N(O0,Z$,G$,V$)}function N(O0,Z$,G$,V$){if(V$){a0(G$,function(X$,K$){if(X$)return V$(X$);K$.copy(O0,Z$),V$(null,O0)});return}var U$=a0(G$);return U$.copy(O0,Z$),O0}function Y$(O0,Z$,G$){if(typeof Z$>"u"&&(Z$=0),!e0.isBuffer(O0)&&!(O0 instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return $$(Z$,O0.length),G$===void 0&&(G$=O0.length-Z$),Q$(G$,Z$,O0.length),N(O0,Z$,G$)}}}),DZ=pQ({"node_modules/crypto-browserify/index.js"(t0){t0.randomBytes=t0.rng=t0.pseudoRandomBytes=t0.prng=hQ(),t0.createHash=w(),t0.Hash=t0.createHash.Hash,t0.createHmac=t0.Hmac=aQ();var m0=rQ(),a0=Object.keys(m0),e0=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(a0);t0.getHashes=function(){return e0};var r0=u();t0.pbkdf2=r0.pbkdf2,t0.pbkdf2Sync=r0.pbkdf2Sync;var i0=LY();t0.Cipher=i0.Cipher,t0.createCipher=i0.createCipher,t0.Cipheriv=i0.Cipheriv,t0.createCipheriv=i0.createCipheriv,t0.Decipher=i0.Decipher,t0.createDecipher=i0.createDecipher,t0.Decipheriv=i0.Decipheriv,t0.createDecipheriv=i0.createDecipheriv,t0.getCiphers=i0.getCiphers,t0.listCiphers=i0.listCiphers;var $$=SY();t0.DiffieHellmanGroup=$$.DiffieHellmanGroup,t0.createDiffieHellmanGroup=$$.createDiffieHellmanGroup,t0.getDiffieHellman=$$.getDiffieHellman,t0.createDiffieHellman=$$.createDiffieHellman,t0.DiffieHellman=$$.DiffieHellman;var Q$=IZ();t0.createSign=Q$.createSign,t0.Sign=Q$.Sign,t0.createVerify=Q$.createVerify,t0.Verify=Q$.Verify,t0.createECDH=JZ();var $=EZ();t0.publicEncrypt=$.publicEncrypt,t0.privateEncrypt=$.privateEncrypt,t0.publicDecrypt=$.publicDecrypt,t0.privateDecrypt=$.privateDecrypt,t0.getRandomValues=(Y$)=>qQ.getRandomValues(Y$);var N=TZ();t0.randomFill=N.randomFill,t0.randomFillSync=N.randomFillSync,t0.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join(` +`))},t0.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}}}),CZ={...DZ(),[Symbol.for("CommonJS")]:0},gQ="buffer",LZ=(t0)=>qQ.getRandomValues(t0),M=()=>qQ.randomUUID(),p=(...t0)=>qQ.randomInt(...t0),_Q="timingSafeEqual"in qQ?(t0,m0)=>{let{byteLength:a0}=t0,{byteLength:e0}=m0;if(typeof a0!="number"||typeof e0!="number")throw new TypeError("Input must be an array buffer view");if(a0!==e0)throw new RangeError("Input buffers must have the same length");return qQ.timingSafeEqual(t0,m0)}:void 0,U0="scryptSync"in qQ?(t0,m0,a0,e0)=>{let r0=qQ.scryptSync(t0,m0,a0,e0);return gQ!=="buffer"?new G0(r0).toString(gQ):new G0(r0)}:void 0,X0="scryptSync"in qQ?function(t0,m0,a0,e0,r0){if(typeof e0=="function"&&(r0=e0,e0=void 0),typeof r0!="function"){var i0=new TypeError("callback must be a function");throw i0.code="ERR_INVALID_CALLBACK",i0}try{let $$=qQ.scryptSync(t0,m0,a0,e0);process.nextTick(r0,null,gQ!=="buffer"?new G0($$).toString(gQ):new G0($$))}catch($$){throw $$}}:void 0;_Q&&(Object.defineProperty(_Q,"name",{value:"::bunternal::"}),Object.defineProperty(X0,"name",{value:"::bunternal::"}),Object.defineProperty(U0,"name",{value:"::bunternal::"}));var RZ=["p192","p224","p256","p384","p521","curve25519","ed25519","secp256k1","secp224r1","prime256v1","prime192v1","ed25519","secp384r1","secp521r1"],NQ=qQ;fQ(CZ,{DEFAULT_ENCODING:()=>gQ,getRandomValues:()=>LZ,randomUUID:()=>M,randomInt:()=>p,getCurves:()=>PZ,scrypt:()=>X0,scryptSync:()=>U0,timingSafeEqual:()=>_Q,webcrypto:()=>NQ,subtle:()=>NQ.subtle});var{randomBytes:zZ,rng:MZ,pseudoRandomBytes:SZ,prng:vZ,Hash:qZ,createHash:S,createHmac:k,Hmac:s0,getHashes:l0,pbkdf2:jZ,pbkdf2Sync:kZ,Cipher:gZ,createCipher:_Z,Cipheriv:NZ,createCipheriv:xZ,Decipher:BZ,createDecipher:v,Decipheriv:Q0,createDecipheriv:o0,getCiphers:u0,listCiphers:yZ,DiffieHellmanGroup:wZ,createDiffieHellmanGroup:pZ,getDiffieHellman:fZ,createDiffieHellman:cZ,DiffieHellman:hZ,createSign:dZ,Sign:q,createVerify:Y0,Verify:K0,createECDH:n0,publicEncrypt:bZ,privateEncrypt:lZ,publicDecrypt:oZ,privateDecrypt:uZ,randomFill:nZ,randomFillSync:sZ,createCredentials:tZ,constants:j}=CZ;var I0=CZ;/*! safe-buffer. MIT License. Feross Aboukhadijeh */export{NQ as webcrypto,_Q as timingSafeEqual,U0 as scryptSync,X0 as scrypt,MZ as rng,M as randomUUID,p as randomInt,sZ as randomFillSync,nZ as randomFill,zZ as randomBytes,bZ as publicEncrypt,oZ as publicDecrypt,SZ as pseudoRandomBytes,vZ as prng,lZ as privateEncrypt,uZ as privateDecrypt,kZ as pbkdf2Sync,jZ as pbkdf2,yZ as listCiphers,LZ as getRandomValues,l0 as getHashes,fZ as getDiffieHellman,PZ as getCurves,u0 as getCiphers,I0 as default,Y0 as createVerify,dZ as createSign,k as createHmac,S as createHash,n0 as createECDH,pZ as createDiffieHellmanGroup,cZ as createDiffieHellman,o0 as createDecipheriv,v as createDecipher,tZ as createCredentials,xZ as createCipheriv,_Z as createCipher,j as constants,K0 as Verify,q as Sign,s0 as Hmac,qZ as Hash,wZ as DiffieHellmanGroup,hZ as DiffieHellman,Q0 as Decipheriv,BZ as Decipher,gQ as DEFAULT_ENCODING,NZ as Cipheriv,gZ as Cipher}; diff --git a/src/node-fallbacks/crypto.js b/src/node-fallbacks/crypto.js index 7745530da..65ae2f5b3 100644 --- a/src/node-fallbacks/crypto.js +++ b/src/node-fallbacks/crypto.js @@ -12,6 +12,27 @@ export const randomUUID = () => { return crypto.randomUUID(); }; +const harcoded_curves = [ + "p192", + "p224", + "p256", + "p384", + "p521", + "curve25519", + "ed25519", + "secp256k1", + "secp224r1", + "prime256v1", + "prime192v1", + "ed25519", + "secp384r1", + "secp521r1", +]; + +export function getCurves() { + return harcoded_curves; +} + export const timingSafeEqual = "timingSafeEqual" in crypto ? (a, b) => { @@ -89,4 +110,5 @@ export default { scryptSync, scrypt, webcrypto, + getCurves, }; diff --git a/test/js/node/crypto/crypto.test.ts b/test/js/node/crypto/crypto.test.ts index d8bfe5353..b1b8646f3 100644 --- a/test/js/node/crypto/crypto.test.ts +++ b/test/js/node/crypto/crypto.test.ts @@ -1,6 +1,6 @@ import { sha, MD5, MD4, SHA1, SHA224, SHA256, SHA384, SHA512, SHA512_256, gc, CryptoHasher } from "bun"; import { it, expect, describe } from "bun:test"; - +import crypto from "crypto"; const HashClasses = [MD5, MD4, SHA1, SHA224, SHA256, SHA384, SHA512, SHA512_256]; describe("CryptoHasher", () => { @@ -109,6 +109,13 @@ describe("CryptoHasher", () => { } }); +describe("crypto.getCurves", () => { + it("should return an array of strings", () => { + expect(Array.isArray(crypto.getCurves())).toBe(true); + expect(typeof crypto.getCurves()[0]).toBe("string"); + }); +}); + describe("crypto", () => { for (let Hash of HashClasses) { for (let [input, label] of [ -- cgit v1.2.3 From b2c576bba2c3274eac32cd0a70318339c3683425 Mon Sep 17 00:00:00 2001 From: dave caruso Date: Mon, 10 Jul 2023 18:25:20 -0700 Subject: fix "readable" event being emitted incorrectly (#3475) * fix "readable" event being emitted incorrectly * fix impl and add test * changes * asdfghj * esm --- src/bun.js/bindings/JSReadableHelper.h | 1 - src/js/node/stream.js | 12 +- src/js/out/WebCoreJSBuiltins.cpp | 300 ++++++++++++++++----------------- src/js/out/modules/node/stream.js | 4 +- test/js/node/fs/fs.test.ts | 23 +++ 5 files changed, 182 insertions(+), 158 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/bindings/JSReadableHelper.h b/src/bun.js/bindings/JSReadableHelper.h index 6746bcbec..3e2554c2b 100644 --- a/src/bun.js/bindings/JSReadableHelper.h +++ b/src/bun.js/bindings/JSReadableHelper.h @@ -8,7 +8,6 @@ JSC_DECLARE_HOST_FUNCTION(jsReadable_maybeReadMore); JSC_DECLARE_HOST_FUNCTION(jsReadable_resume); JSC_DECLARE_HOST_FUNCTION(jsReadable_emitReadable); JSC_DECLARE_HOST_FUNCTION(jsReadable_onEofChunk); -JSC_DECLARE_HOST_FUNCTION(jsReadable_resume_); JSC_DECLARE_HOST_FUNCTION(jsReadable_emitReadable_); } // namespace WebCore diff --git a/src/js/node/stream.js b/src/js/node/stream.js index 741b2f65c..30c76d797 100644 --- a/src/js/node/stream.js +++ b/src/js/node/stream.js @@ -5356,10 +5356,10 @@ function createNativeStreamReadable(nativeType, Readable) { return chunk; } - push(result, encoding) { - __DEBUG__ && debug("NativeReadable push -- result, encoding", result, encoding, this.__id); - return super.push(...arguments); - } + // push(result, encoding) { + // __DEBUG__ && debug("NativeReadable push -- result, encoding", result, encoding, this.__id); + // return super.push(...arguments); + // } #handleResult(result, view, isClosed) { __DEBUG__ && debug("result, isClosed @ #handleResult", result, isClosed, this.__id); @@ -5372,7 +5372,9 @@ function createNativeStreamReadable(nativeType, Readable) { return handleNumberResult(this, result, view, isClosed); } else if (typeof result === "boolean") { - this.push(null); + process.nextTick(() => { + this.push(null); + }); return view?.byteLength ?? 0 > 0 ? view : undefined; } else if (ArrayBuffer.isView(result)) { if (result.byteLength >= this.#highWaterMark && !this.#hasResized && !isClosed) { diff --git a/src/js/out/WebCoreJSBuiltins.cpp b/src/js/out/WebCoreJSBuiltins.cpp index f20f626d4..fb3100762 100644 --- a/src/js/out/WebCoreJSBuiltins.cpp +++ b/src/js/out/WebCoreJSBuiltins.cpp @@ -16,7 +16,7 @@ const JSC::ConstructorKind s_bundlerPluginRunSetupFunctionCodeConstructorKind = const JSC::ImplementationVisibility s_bundlerPluginRunSetupFunctionCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_bundlerPluginRunSetupFunctionCodeLength = 2165; static const JSC::Intrinsic s_bundlerPluginRunSetupFunctionCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_bundlerPluginRunSetupFunctionCode = "(function (J,_){\"use strict\";var D=new Map,F=new Map;function H(q,h,E){if(!q||!@isObject(q))@throwTypeError('Expected an object with \"filter\" RegExp');if(!h||!@isCallable(h))@throwTypeError(\"callback must be a function\");var{filter:w,namespace:z=\"file\"}=q;if(!w)@throwTypeError('Expected an object with \"filter\" RegExp');if(!@isRegExpObject(w))@throwTypeError(\"filter must be a RegExp\");if(z&&typeof z!==\"string\")@throwTypeError(\"namespace must be a string\");if((z\?.length\?\?0)===0)z=\"file\";if(!/^([/@a-zA-Z0-9_\\\\-]+)$/.test(z))@throwTypeError(\"namespace can only contain $a-zA-Z0-9_\\\\-\");var A=E.@get(z);if(!A)E.@set(z,[[w,h]]);else @arrayPush(A,[w,h])}function K(q,h){H(q,h,D)}function M(q,h){H(q,h,F)}const I=()=>{var q=!1,h=!1;for(var[E,w]of D.entries())for(var[z]of w)this.addFilter(z,E,1),q=!0;for(var[E,w]of F.entries())for(var[z]of w)this.addFilter(z,E,0),h=!0;if(h){var A=this.onResolve;if(!A)this.onResolve=F;else for(var[E,w]of F.entries()){var C=A.@get(E);if(!C)A.@set(E,w);else A.@set(E,C.concat(w))}}if(q){var G=this.onLoad;if(!G)this.onLoad=D;else for(var[E,w]of D.entries()){var C=G.@get(E);if(!C)G.@set(E,w);else G.@set(E,C.concat(w))}}return q||h};var B=J({config:_,onDispose:()=>@throwTypeError(`@{@2} is not implemented yet. See https://github.com/oven-sh/bun/issues/@1`),onEnd:()=>@throwTypeError(`@{@2} is not implemented yet. See https://github.com/oven-sh/bun/issues/@1`),onLoad:K,onResolve:M,onStart:()=>@throwTypeError(`@{@2} is not implemented yet. See https://github.com/oven-sh/bun/issues/@1`),resolve:()=>@throwTypeError(`@{@2} is not implemented yet. See https://github.com/oven-sh/bun/issues/@1`),initialOptions:{..._,bundle:!0,entryPoints:_.entrypoints\?\?_.entryPoints\?\?[],minify:typeof _.minify===\"boolean\"\?_.minify:!1,minifyIdentifiers:_.minify===!0||_.minify\?.identifiers,minifyWhitespace:_.minify===!0||_.minify\?.whitespace,minifySyntax:_.minify===!0||_.minify\?.syntax,outbase:_.root,platform:_.target===\"bun\"\?\"node\":_.target},esbuild:{}});if(B&&@isPromise(B))if(@getPromiseInternalField(B,@promiseFieldFlags)&@promiseStateFulfilled)B=@getPromiseInternalField(B,@promiseFieldReactionsOrResult);else return B.@then(I);return I()})\n"; +const char* const s_bundlerPluginRunSetupFunctionCode = "(function (_,E){\"use strict\";var w=new Map,h=new Map;function q(D,F,G){if(!D||!@isObject(D))@throwTypeError('Expected an object with \"filter\" RegExp');if(!F||!@isCallable(F))@throwTypeError(\"callback must be a function\");var{filter:H,namespace:I=\"file\"}=D;if(!H)@throwTypeError('Expected an object with \"filter\" RegExp');if(!@isRegExpObject(H))@throwTypeError(\"filter must be a RegExp\");if(I&&typeof I!==\"string\")@throwTypeError(\"namespace must be a string\");if((I\?.length\?\?0)===0)I=\"file\";if(!/^([/@a-zA-Z0-9_\\\\-]+)$/.test(I))@throwTypeError(\"namespace can only contain $a-zA-Z0-9_\\\\-\");var J=G.@get(I);if(!J)G.@set(I,[[H,F]]);else @arrayPush(J,[H,F])}function z(D,F){q(D,F,w)}function A(D,F){q(D,F,h)}const B=()=>{var D=!1,F=!1;for(var[G,H]of w.entries())for(var[I]of H)this.addFilter(I,G,1),D=!0;for(var[G,H]of h.entries())for(var[I]of H)this.addFilter(I,G,0),F=!0;if(F){var J=this.onResolve;if(!J)this.onResolve=h;else for(var[G,H]of h.entries()){var K=J.@get(G);if(!K)J.@set(G,H);else J.@set(G,K.concat(H))}}if(D){var M=this.onLoad;if(!M)this.onLoad=w;else for(var[G,H]of w.entries()){var K=M.@get(G);if(!K)M.@set(G,H);else M.@set(G,K.concat(H))}}return D||F};var C=_({config:E,onDispose:()=>@throwTypeError(`@{@2} is not implemented yet. See https://github.com/oven-sh/bun/issues/@1`),onEnd:()=>@throwTypeError(`@{@2} is not implemented yet. See https://github.com/oven-sh/bun/issues/@1`),onLoad:z,onResolve:A,onStart:()=>@throwTypeError(`@{@2} is not implemented yet. See https://github.com/oven-sh/bun/issues/@1`),resolve:()=>@throwTypeError(`@{@2} is not implemented yet. See https://github.com/oven-sh/bun/issues/@1`),initialOptions:{...E,bundle:!0,entryPoints:E.entrypoints\?\?E.entryPoints\?\?[],minify:typeof E.minify===\"boolean\"\?E.minify:!1,minifyIdentifiers:E.minify===!0||E.minify\?.identifiers,minifyWhitespace:E.minify===!0||E.minify\?.whitespace,minifySyntax:E.minify===!0||E.minify\?.syntax,outbase:E.root,platform:E.target===\"bun\"\?\"node\":E.target},esbuild:{}});if(C&&@isPromise(C))if(@getPromiseInternalField(C,@promiseFieldFlags)&@promiseStateFulfilled)C=@getPromiseInternalField(C,@promiseFieldReactionsOrResult);else return C.@then(B);return B()})\n"; // runOnResolvePlugins const JSC::ConstructAbility s_bundlerPluginRunOnResolvePluginsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -24,7 +24,7 @@ const JSC::ConstructorKind s_bundlerPluginRunOnResolvePluginsCodeConstructorKind const JSC::ImplementationVisibility s_bundlerPluginRunOnResolvePluginsCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_bundlerPluginRunOnResolvePluginsCodeLength = 1711; static const JSC::Intrinsic s_bundlerPluginRunOnResolvePluginsCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_bundlerPluginRunOnResolvePluginsCode = "(function (C,E,F,b,G){\"use strict\";const H=[\"entry-point\",\"import-statement\",\"require-call\",\"dynamic-import\",\"require-resolve\",\"import-rule\",\"url-token\",\"internal\"][G];var g=(async(j,q,J,K)=>{var{onResolve:M,onLoad:A}=this,B=M.@get(q);if(!B)return this.onResolveAsync(b,null,null,null),null;for(let[O,Q]of B)if(O.test(j)){var _=Q({path:j,importer:J,namespace:q,kind:K});while(_&&@isPromise(_)&&(@getPromiseInternalField(_,@promiseFieldFlags)&@promiseStateMask)===@promiseStateFulfilled)_=@getPromiseInternalField(_,@promiseFieldReactionsOrResult);if(_&&@isPromise(_))_=await _;if(!_||!@isObject(_))continue;var{path:y,namespace:w=q,external:z}=_;if(typeof y!==\"string\"||typeof w!==\"string\")@throwTypeError(\"onResolve plugins must return an object with a string 'path' and string 'loader' field\");if(!y)continue;if(!w)w=q;if(typeof z!==\"boolean\"&&!@isUndefinedOrNull(z))@throwTypeError('onResolve plugins \"external\" field must be boolean or unspecified');if(!z){if(w===\"file\"){if(darwin!==\"win32\"){if(y[0]!==\"/\"||y.includes(\"..\"))@throwTypeError('onResolve plugin \"path\" must be absolute when the namespace is \"file\"')}}if(w===\"dataurl\"){if(!y.startsWith(\"data:\"))@throwTypeError('onResolve plugin \"path\" must start with \"data:\" when the namespace is \"dataurl\"')}if(w&&w!==\"file\"&&(!A||!A.@has(w)))@throwTypeError(`Expected onLoad plugin for namespace ${w} to exist`)}return this.onResolveAsync(b,y,w,z),null}return this.onResolveAsync(b,null,null,null),null})(C,E,F,H);while(g&&@isPromise(g)&&(@getPromiseInternalField(g,@promiseFieldFlags)&@promiseStateMask)===@promiseStateFulfilled)g=@getPromiseInternalField(g,@promiseFieldReactionsOrResult);if(g&&@isPromise(g))g.then(()=>{},(j)=>{this.addError(b,j,0)})})\n"; +const char* const s_bundlerPluginRunOnResolvePluginsCode = "(function (_,w,g,y,b){\"use strict\";const j=[\"entry-point\",\"import-statement\",\"require-call\",\"dynamic-import\",\"require-resolve\",\"import-rule\",\"url-token\",\"internal\"][b];var q=(async(z,A,B,C)=>{var{onResolve:E,onLoad:F}=this,G=E.@get(A);if(!G)return this.onResolveAsync(y,null,null,null),null;for(let[O,Q]of G)if(O.test(z)){var H=Q({path:z,importer:B,namespace:A,kind:C});while(H&&@isPromise(H)&&(@getPromiseInternalField(H,@promiseFieldFlags)&@promiseStateMask)===@promiseStateFulfilled)H=@getPromiseInternalField(H,@promiseFieldReactionsOrResult);if(H&&@isPromise(H))H=await H;if(!H||!@isObject(H))continue;var{path:J,namespace:K=A,external:M}=H;if(typeof J!==\"string\"||typeof K!==\"string\")@throwTypeError(\"onResolve plugins must return an object with a string 'path' and string 'loader' field\");if(!J)continue;if(!K)K=A;if(typeof M!==\"boolean\"&&!@isUndefinedOrNull(M))@throwTypeError('onResolve plugins \"external\" field must be boolean or unspecified');if(!M){if(K===\"file\"){if(darwin!==\"win32\"){if(J[0]!==\"/\"||J.includes(\"..\"))@throwTypeError('onResolve plugin \"path\" must be absolute when the namespace is \"file\"')}}if(K===\"dataurl\"){if(!J.startsWith(\"data:\"))@throwTypeError('onResolve plugin \"path\" must start with \"data:\" when the namespace is \"dataurl\"')}if(K&&K!==\"file\"&&(!F||!F.@has(K)))@throwTypeError(`Expected onLoad plugin for namespace ${K} to exist`)}return this.onResolveAsync(y,J,K,M),null}return this.onResolveAsync(y,null,null,null),null})(_,w,g,j);while(q&&@isPromise(q)&&(@getPromiseInternalField(q,@promiseFieldFlags)&@promiseStateMask)===@promiseStateFulfilled)q=@getPromiseInternalField(q,@promiseFieldReactionsOrResult);if(q&&@isPromise(q))q.then(()=>{},(z)=>{this.addError(y,z,0)})})\n"; // runOnLoadPlugins const JSC::ConstructAbility s_bundlerPluginRunOnLoadPluginsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -32,7 +32,7 @@ const JSC::ConstructorKind s_bundlerPluginRunOnLoadPluginsCodeConstructorKind = const JSC::ImplementationVisibility s_bundlerPluginRunOnLoadPluginsCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_bundlerPluginRunOnLoadPluginsCodeLength = 1325; static const JSC::Intrinsic s_bundlerPluginRunOnLoadPluginsCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_bundlerPluginRunOnLoadPluginsCode = "(function (w,F,G,H){\"use strict\";const J={jsx:0,js:1,ts:2,tsx:3,css:4,file:5,json:6,toml:7,wasm:8,napi:9,base64:10,dataurl:11,text:12},K=[\"jsx\",\"js\",\"ts\",\"tsx\",\"css\",\"file\",\"json\",\"toml\",\"wasm\",\"napi\",\"base64\",\"dataurl\",\"text\"][H];var g=(async(j,x,y,z)=>{var B=this.onLoad.@get(y);if(!B)return this.onLoadAsync(j,null,null),null;for(let[Q,T]of B)if(Q.test(x)){var b=T({path:x,namespace:y,loader:z});while(b&&@isPromise(b)&&(@getPromiseInternalField(b,@promiseFieldFlags)&@promiseStateMask)===@promiseStateFulfilled)b=@getPromiseInternalField(b,@promiseFieldReactionsOrResult);if(b&&@isPromise(b))b=await b;if(!b||!@isObject(b))continue;var{contents:q,loader:v=z}=b;if(typeof q!==\"string\"&&!@isTypedArrayView(q))@throwTypeError('onLoad plugins must return an object with \"contents\" as a string or Uint8Array');if(typeof v!==\"string\")@throwTypeError('onLoad plugins must return an object with \"loader\" as a string');const C=J[v];if(C===@undefined)@throwTypeError(`Loader ${v} is not supported.`);return this.onLoadAsync(j,q,C),null}return this.onLoadAsync(j,null,null),null})(w,F,G,K);while(g&&@isPromise(g)&&(@getPromiseInternalField(g,@promiseFieldFlags)&@promiseStateMask)===@promiseStateFulfilled)g=@getPromiseInternalField(g,@promiseFieldReactionsOrResult);if(g&&@isPromise(g))g.then(()=>{},(j)=>{this.addError(w,j,1)})})\n"; +const char* const s_bundlerPluginRunOnLoadPluginsCode = "(function (b,g,j,q){\"use strict\";const v={jsx:0,js:1,ts:2,tsx:3,css:4,file:5,json:6,toml:7,wasm:8,napi:9,base64:10,dataurl:11,text:12},w=[\"jsx\",\"js\",\"ts\",\"tsx\",\"css\",\"file\",\"json\",\"toml\",\"wasm\",\"napi\",\"base64\",\"dataurl\",\"text\"][q];var x=(async(y,z,B,C)=>{var F=this.onLoad.@get(B);if(!F)return this.onLoadAsync(y,null,null),null;for(let[K,Q]of F)if(K.test(z)){var G=Q({path:z,namespace:B,loader:C});while(G&&@isPromise(G)&&(@getPromiseInternalField(G,@promiseFieldFlags)&@promiseStateMask)===@promiseStateFulfilled)G=@getPromiseInternalField(G,@promiseFieldReactionsOrResult);if(G&&@isPromise(G))G=await G;if(!G||!@isObject(G))continue;var{contents:H,loader:J=C}=G;if(typeof H!==\"string\"&&!@isTypedArrayView(H))@throwTypeError('onLoad plugins must return an object with \"contents\" as a string or Uint8Array');if(typeof J!==\"string\")@throwTypeError('onLoad plugins must return an object with \"loader\" as a string');const T=v[J];if(T===@undefined)@throwTypeError(`Loader ${J} is not supported.`);return this.onLoadAsync(y,H,T),null}return this.onLoadAsync(y,null,null),null})(b,g,j,w);while(x&&@isPromise(x)&&(@getPromiseInternalField(x,@promiseFieldFlags)&@promiseStateMask)===@promiseStateFulfilled)x=@getPromiseInternalField(x,@promiseFieldReactionsOrResult);if(x&&@isPromise(x))x.then(()=>{},(y)=>{this.addError(b,y,1)})})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ @@ -108,7 +108,7 @@ const JSC::ConstructorKind s_writableStreamInternalsCreateWritableStreamCodeCons const JSC::ImplementationVisibility s_writableStreamInternalsCreateWritableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsCreateWritableStreamCodeLength = 278; static const JSC::Intrinsic s_writableStreamInternalsCreateWritableStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsCreateWritableStreamCode = "(function (p,N,_,f,u,j){\"use strict\";@assert(typeof u===\"number\"&&!@isNaN(u)&&u>=0);const d={};@initializeWritableStreamSlots(d,{});const q=new @WritableStreamDefaultController;return @setUpWritableStreamDefaultController(d,q,p,N,_,f,u,j),@createWritableStreamFromInternal(d)})\n"; +const char* const s_writableStreamInternalsCreateWritableStreamCode = "(function (u,N,d,f,p,_){\"use strict\";@assert(typeof p===\"number\"&&!@isNaN(p)&&p>=0);const j={};@initializeWritableStreamSlots(j,{});const q=new @WritableStreamDefaultController;return @setUpWritableStreamDefaultController(j,q,u,N,d,f,p,_),@createWritableStreamFromInternal(j)})\n"; // createInternalWritableStreamFromUnderlyingSink const JSC::ConstructAbility s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -116,7 +116,7 @@ const JSC::ConstructorKind s_writableStreamInternalsCreateInternalWritableStream const JSC::ImplementationVisibility s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeLength = 920; static const JSC::Intrinsic s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCode = "(function (f,w){\"use strict\";const C={};if(f===@undefined)f={};if(w===@undefined)w={};if(!@isObject(f))@throwTypeError(\"WritableStream constructor takes an object as first argument\");if(\"type\"in f)@throwRangeError(\"Invalid type is specified\");const E=@extractSizeAlgorithm(w),_=@extractHighWaterMark(w,1),o={};if(\"start\"in f){if(o.start=f.start,typeof o.start!==\"function\")@throwTypeError(\"underlyingSink.start should be a function\")}if(\"write\"in f){if(o.write=f.write,typeof o.write!==\"function\")@throwTypeError(\"underlyingSink.write should be a function\")}if(\"close\"in f){if(o.close=f.close,typeof o.close!==\"function\")@throwTypeError(\"underlyingSink.close should be a function\")}if(\"abort\"in f){if(o.abort=f.abort,typeof o.abort!==\"function\")@throwTypeError(\"underlyingSink.abort should be a function\")}return @initializeWritableStreamSlots(C,f),@setUpWritableStreamDefaultControllerFromUnderlyingSink(C,f,o,_,E),C})\n"; +const char* const s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCode = "(function (f,o){\"use strict\";const w={};if(f===@undefined)f={};if(o===@undefined)o={};if(!@isObject(f))@throwTypeError(\"WritableStream constructor takes an object as first argument\");if(\"type\"in f)@throwRangeError(\"Invalid type is specified\");const C=@extractSizeAlgorithm(o),E=@extractHighWaterMark(o,1),_={};if(\"start\"in f){if(_.start=f.start,typeof _.start!==\"function\")@throwTypeError(\"underlyingSink.start should be a function\")}if(\"write\"in f){if(_.write=f.write,typeof _.write!==\"function\")@throwTypeError(\"underlyingSink.write should be a function\")}if(\"close\"in f){if(_.close=f.close,typeof _.close!==\"function\")@throwTypeError(\"underlyingSink.close should be a function\")}if(\"abort\"in f){if(_.abort=f.abort,typeof _.abort!==\"function\")@throwTypeError(\"underlyingSink.abort should be a function\")}return @initializeWritableStreamSlots(w,f),@setUpWritableStreamDefaultControllerFromUnderlyingSink(w,f,_,E,C),w})\n"; // initializeWritableStreamSlots const JSC::ConstructAbility s_writableStreamInternalsInitializeWritableStreamSlotsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -156,7 +156,7 @@ const JSC::ConstructorKind s_writableStreamInternalsSetUpWritableStreamDefaultWr const JSC::ImplementationVisibility s_writableStreamInternalsSetUpWritableStreamDefaultWriterCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsSetUpWritableStreamDefaultWriterCodeLength = 887; static const JSC::Intrinsic s_writableStreamInternalsSetUpWritableStreamDefaultWriterCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsSetUpWritableStreamDefaultWriterCode = "(function (g,n){\"use strict\";if(@isWritableStreamLocked(n))@throwTypeError(\"WritableStream is locked\");@putByIdDirectPrivate(g,\"stream\",n),@putByIdDirectPrivate(n,\"writer\",g);const v=@newPromiseCapability(@Promise),h=@newPromiseCapability(@Promise);@putByIdDirectPrivate(g,\"readyPromise\",v),@putByIdDirectPrivate(g,\"closedPromise\",h);const B=@getByIdDirectPrivate(n,\"state\");if(B===\"writable\"){if(@writableStreamCloseQueuedOrInFlight(n)||!@getByIdDirectPrivate(n,\"backpressure\"))v.@resolve.@call()}else if(B===\"erroring\")v.@reject.@call(@undefined,@getByIdDirectPrivate(n,\"storedError\")),@markPromiseAsHandled(v.@promise);else if(B===\"closed\")v.@resolve.@call(),h.@resolve.@call();else{@assert(B===\"errored\");const _=@getByIdDirectPrivate(n,\"storedError\");v.@reject.@call(@undefined,_),@markPromiseAsHandled(v.@promise),h.@reject.@call(@undefined,_),@markPromiseAsHandled(h.@promise)}})\n"; +const char* const s_writableStreamInternalsSetUpWritableStreamDefaultWriterCode = "(function (n,v){\"use strict\";if(@isWritableStreamLocked(v))@throwTypeError(\"WritableStream is locked\");@putByIdDirectPrivate(n,\"stream\",v),@putByIdDirectPrivate(v,\"writer\",n);const g=@newPromiseCapability(@Promise),h=@newPromiseCapability(@Promise);@putByIdDirectPrivate(n,\"readyPromise\",g),@putByIdDirectPrivate(n,\"closedPromise\",h);const B=@getByIdDirectPrivate(v,\"state\");if(B===\"writable\"){if(@writableStreamCloseQueuedOrInFlight(v)||!@getByIdDirectPrivate(v,\"backpressure\"))g.@resolve.@call()}else if(B===\"erroring\")g.@reject.@call(@undefined,@getByIdDirectPrivate(v,\"storedError\")),@markPromiseAsHandled(g.@promise);else if(B===\"closed\")g.@resolve.@call(),h.@resolve.@call();else{@assert(B===\"errored\");const _=@getByIdDirectPrivate(v,\"storedError\");g.@reject.@call(@undefined,_),@markPromiseAsHandled(g.@promise),h.@reject.@call(@undefined,_),@markPromiseAsHandled(h.@promise)}})\n"; // writableStreamAbort const JSC::ConstructAbility s_writableStreamInternalsWritableStreamAbortCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -164,7 +164,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamAbortCodeConst const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamAbortCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamAbortCodeLength = 501; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamAbortCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamAbortCode = "(function (h,B){\"use strict\";const c=@getByIdDirectPrivate(h,\"state\");if(c===\"closed\"||c===\"errored\")return @Promise.@resolve();const f=@getByIdDirectPrivate(h,\"pendingAbortRequest\");if(f!==@undefined)return f.promise.@promise;@assert(c===\"writable\"||c===\"erroring\");let _=!1;if(c===\"erroring\")_=!0,B=@undefined;const j=@newPromiseCapability(@Promise);if(@putByIdDirectPrivate(h,\"pendingAbortRequest\",{promise:j,reason:B,wasAlreadyErroring:_}),!_)@writableStreamStartErroring(h,B);return j.@promise})\n"; +const char* const s_writableStreamInternalsWritableStreamAbortCode = "(function (c,h){\"use strict\";const B=@getByIdDirectPrivate(c,\"state\");if(B===\"closed\"||B===\"errored\")return @Promise.@resolve();const f=@getByIdDirectPrivate(c,\"pendingAbortRequest\");if(f!==@undefined)return f.promise.@promise;@assert(B===\"writable\"||B===\"erroring\");let _=!1;if(B===\"erroring\")_=!0,h=@undefined;const j=@newPromiseCapability(@Promise);if(@putByIdDirectPrivate(c,\"pendingAbortRequest\",{promise:j,reason:h,wasAlreadyErroring:_}),!_)@writableStreamStartErroring(c,h);return j.@promise})\n"; // writableStreamClose const JSC::ConstructAbility s_writableStreamInternalsWritableStreamCloseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -196,7 +196,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDealWithReject const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDealWithRejectionCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDealWithRejectionCodeLength = 189; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDealWithRejectionCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDealWithRejectionCode = "(function (i,c){\"use strict\";const n=@getByIdDirectPrivate(i,\"state\");if(n===\"writable\"){@writableStreamStartErroring(i,c);return}@assert(n===\"erroring\"),@writableStreamFinishErroring(i)})\n"; +const char* const s_writableStreamInternalsWritableStreamDealWithRejectionCode = "(function (i,n){\"use strict\";const c=@getByIdDirectPrivate(i,\"state\");if(c===\"writable\"){@writableStreamStartErroring(i,n);return}@assert(c===\"erroring\"),@writableStreamFinishErroring(i)})\n"; // writableStreamFinishErroring const JSC::ConstructAbility s_writableStreamInternalsWritableStreamFinishErroringCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -204,7 +204,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamFinishErroring const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamFinishErroringCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamFinishErroringCodeLength = 1058; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamFinishErroringCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamFinishErroringCode = "(function (i){\"use strict\";@assert(@getByIdDirectPrivate(i,\"state\")===\"erroring\"),@assert(!@writableStreamHasOperationMarkedInFlight(i)),@putByIdDirectPrivate(i,\"state\",\"errored\");const h=@getByIdDirectPrivate(i,\"controller\");@getByIdDirectPrivate(h,\"errorSteps\").@call();const A=@getByIdDirectPrivate(i,\"storedError\"),B=@getByIdDirectPrivate(i,\"writeRequests\");for(var p=B.shift();p;p=B.shift())p.@reject.@call(@undefined,A);@putByIdDirectPrivate(i,\"writeRequests\",@createFIFO());const _=@getByIdDirectPrivate(i,\"pendingAbortRequest\");if(_===@undefined){@writableStreamRejectCloseAndClosedPromiseIfNeeded(i);return}if(@putByIdDirectPrivate(i,\"pendingAbortRequest\",@undefined),_.wasAlreadyErroring){_.promise.@reject.@call(@undefined,A),@writableStreamRejectCloseAndClosedPromiseIfNeeded(i);return}@getByIdDirectPrivate(h,\"abortSteps\").@call(@undefined,_.reason).@then(()=>{_.promise.@resolve.@call(),@writableStreamRejectCloseAndClosedPromiseIfNeeded(i)},(I)=>{_.promise.@reject.@call(@undefined,I),@writableStreamRejectCloseAndClosedPromiseIfNeeded(i)})})\n"; +const char* const s_writableStreamInternalsWritableStreamFinishErroringCode = "(function (i){\"use strict\";@assert(@getByIdDirectPrivate(i,\"state\")===\"erroring\"),@assert(!@writableStreamHasOperationMarkedInFlight(i)),@putByIdDirectPrivate(i,\"state\",\"errored\");const _=@getByIdDirectPrivate(i,\"controller\");@getByIdDirectPrivate(_,\"errorSteps\").@call();const p=@getByIdDirectPrivate(i,\"storedError\"),h=@getByIdDirectPrivate(i,\"writeRequests\");for(var A=h.shift();A;A=h.shift())A.@reject.@call(@undefined,p);@putByIdDirectPrivate(i,\"writeRequests\",@createFIFO());const B=@getByIdDirectPrivate(i,\"pendingAbortRequest\");if(B===@undefined){@writableStreamRejectCloseAndClosedPromiseIfNeeded(i);return}if(@putByIdDirectPrivate(i,\"pendingAbortRequest\",@undefined),B.wasAlreadyErroring){B.promise.@reject.@call(@undefined,p),@writableStreamRejectCloseAndClosedPromiseIfNeeded(i);return}@getByIdDirectPrivate(_,\"abortSteps\").@call(@undefined,B.reason).@then(()=>{B.promise.@resolve.@call(),@writableStreamRejectCloseAndClosedPromiseIfNeeded(i)},(I)=>{B.promise.@reject.@call(@undefined,I),@writableStreamRejectCloseAndClosedPromiseIfNeeded(i)})})\n"; // writableStreamFinishInFlightClose const JSC::ConstructAbility s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -212,7 +212,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamFinishInFlight const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeLength = 751; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamFinishInFlightCloseCode = "(function (d){\"use strict\";@getByIdDirectPrivate(d,\"inFlightCloseRequest\").@resolve.@call(),@putByIdDirectPrivate(d,\"inFlightCloseRequest\",@undefined);const i=@getByIdDirectPrivate(d,\"state\");if(@assert(i===\"writable\"||i===\"erroring\"),i===\"erroring\"){@putByIdDirectPrivate(d,\"storedError\",@undefined);const _=@getByIdDirectPrivate(d,\"pendingAbortRequest\");if(_!==@undefined)_.promise.@resolve.@call(),@putByIdDirectPrivate(d,\"pendingAbortRequest\",@undefined)}@putByIdDirectPrivate(d,\"state\",\"closed\");const n=@getByIdDirectPrivate(d,\"writer\");if(n!==@undefined)@getByIdDirectPrivate(n,\"closedPromise\").@resolve.@call();@assert(@getByIdDirectPrivate(d,\"pendingAbortRequest\")===@undefined),@assert(@getByIdDirectPrivate(d,\"storedError\")===@undefined)})\n"; +const char* const s_writableStreamInternalsWritableStreamFinishInFlightCloseCode = "(function (d){\"use strict\";@getByIdDirectPrivate(d,\"inFlightCloseRequest\").@resolve.@call(),@putByIdDirectPrivate(d,\"inFlightCloseRequest\",@undefined);const n=@getByIdDirectPrivate(d,\"state\");if(@assert(n===\"writable\"||n===\"erroring\"),n===\"erroring\"){@putByIdDirectPrivate(d,\"storedError\",@undefined);const c=@getByIdDirectPrivate(d,\"pendingAbortRequest\");if(c!==@undefined)c.promise.@resolve.@call(),@putByIdDirectPrivate(d,\"pendingAbortRequest\",@undefined)}@putByIdDirectPrivate(d,\"state\",\"closed\");const _=@getByIdDirectPrivate(d,\"writer\");if(_!==@undefined)@getByIdDirectPrivate(_,\"closedPromise\").@resolve.@call();@assert(@getByIdDirectPrivate(d,\"pendingAbortRequest\")===@undefined),@assert(@getByIdDirectPrivate(d,\"storedError\")===@undefined)})\n"; // writableStreamFinishInFlightCloseWithError const JSC::ConstructAbility s_writableStreamInternalsWritableStreamFinishInFlightCloseWithErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -292,7 +292,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterA const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterAbortCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultWriterAbortCodeLength = 130; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterAbortCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultWriterAbortCode = "(function (d,f){\"use strict\";const c=@getByIdDirectPrivate(d,\"stream\");return @assert(c!==@undefined),@writableStreamAbort(c,f)})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultWriterAbortCode = "(function (c,d){\"use strict\";const f=@getByIdDirectPrivate(c,\"stream\");return @assert(f!==@undefined),@writableStreamAbort(f,d)})\n"; // writableStreamDefaultWriterClose const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterCloseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -300,7 +300,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterC const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterCloseCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultWriterCloseCodeLength = 126; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterCloseCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultWriterCloseCode = "(function (c){\"use strict\";const _=@getByIdDirectPrivate(c,\"stream\");return @assert(_!==@undefined),@writableStreamClose(_)})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultWriterCloseCode = "(function (_){\"use strict\";const c=@getByIdDirectPrivate(_,\"stream\");return @assert(c!==@undefined),@writableStreamClose(c)})\n"; // writableStreamDefaultWriterCloseWithErrorPropagation const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterCloseWithErrorPropagationCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -308,7 +308,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterC const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterCloseWithErrorPropagationCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultWriterCloseWithErrorPropagationCodeLength = 385; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterCloseWithErrorPropagationCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultWriterCloseWithErrorPropagationCode = "(function (u){\"use strict\";const c=@getByIdDirectPrivate(u,\"stream\");@assert(c!==@undefined);const l=@getByIdDirectPrivate(c,\"state\");if(@writableStreamCloseQueuedOrInFlight(c)||l===\"closed\")return @Promise.@resolve();if(l===\"errored\")return @Promise.@reject(@getByIdDirectPrivate(c,\"storedError\"));return @assert(l===\"writable\"||l===\"erroring\"),@writableStreamDefaultWriterClose(u)})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultWriterCloseWithErrorPropagationCode = "(function (c){\"use strict\";const l=@getByIdDirectPrivate(c,\"stream\");@assert(l!==@undefined);const u=@getByIdDirectPrivate(l,\"state\");if(@writableStreamCloseQueuedOrInFlight(l)||u===\"closed\")return @Promise.@resolve();if(u===\"errored\")return @Promise.@reject(@getByIdDirectPrivate(l,\"storedError\"));return @assert(u===\"writable\"||u===\"erroring\"),@writableStreamDefaultWriterClose(c)})\n"; // writableStreamDefaultWriterEnsureClosedPromiseRejected const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterEnsureClosedPromiseRejectedCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -316,7 +316,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterE const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterEnsureClosedPromiseRejectedCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultWriterEnsureClosedPromiseRejectedCodeLength = 329; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterEnsureClosedPromiseRejectedCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultWriterEnsureClosedPromiseRejectedCode = "(function (h,u){\"use strict\";let _=@getByIdDirectPrivate(h,\"closedPromise\"),n=_.@promise;if((@getPromiseInternalField(n,@promiseFieldFlags)&@promiseStateMask)!==@promiseStatePending)_=@newPromiseCapability(@Promise),n=_.@promise,@putByIdDirectPrivate(h,\"closedPromise\",_);_.@reject.@call(@undefined,u),@markPromiseAsHandled(n)})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultWriterEnsureClosedPromiseRejectedCode = "(function (_,n){\"use strict\";let h=@getByIdDirectPrivate(_,\"closedPromise\"),u=h.@promise;if((@getPromiseInternalField(u,@promiseFieldFlags)&@promiseStateMask)!==@promiseStatePending)h=@newPromiseCapability(@Promise),u=h.@promise,@putByIdDirectPrivate(_,\"closedPromise\",h);h.@reject.@call(@undefined,n),@markPromiseAsHandled(u)})\n"; // writableStreamDefaultWriterEnsureReadyPromiseRejected const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -324,7 +324,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterE const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCodeLength = 327; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCode = "(function (h,n){\"use strict\";let c=@getByIdDirectPrivate(h,\"readyPromise\"),g=c.@promise;if((@getPromiseInternalField(g,@promiseFieldFlags)&@promiseStateMask)!==@promiseStatePending)c=@newPromiseCapability(@Promise),g=c.@promise,@putByIdDirectPrivate(h,\"readyPromise\",c);c.@reject.@call(@undefined,n),@markPromiseAsHandled(g)})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCode = "(function (c,g){\"use strict\";let h=@getByIdDirectPrivate(c,\"readyPromise\"),n=h.@promise;if((@getPromiseInternalField(n,@promiseFieldFlags)&@promiseStateMask)!==@promiseStatePending)h=@newPromiseCapability(@Promise),n=h.@promise,@putByIdDirectPrivate(c,\"readyPromise\",h);h.@reject.@call(@undefined,g),@markPromiseAsHandled(n)})\n"; // writableStreamDefaultWriterGetDesiredSize const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterGetDesiredSizeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -332,7 +332,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterG const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterGetDesiredSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultWriterGetDesiredSizeCodeLength = 299; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterGetDesiredSizeCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultWriterGetDesiredSizeCode = "(function (_){\"use strict\";const c=@getByIdDirectPrivate(_,\"stream\");@assert(c!==@undefined);const l=@getByIdDirectPrivate(c,\"state\");if(l===\"errored\"||l===\"erroring\")return null;if(l===\"closed\")return 0;return @writableStreamDefaultControllerGetDesiredSize(@getByIdDirectPrivate(c,\"controller\"))})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultWriterGetDesiredSizeCode = "(function (c){\"use strict\";const l=@getByIdDirectPrivate(c,\"stream\");@assert(l!==@undefined);const _=@getByIdDirectPrivate(l,\"state\");if(_===\"errored\"||_===\"erroring\")return null;if(_===\"closed\")return 0;return @writableStreamDefaultControllerGetDesiredSize(@getByIdDirectPrivate(l,\"controller\"))})\n"; // writableStreamDefaultWriterRelease const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterReleaseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -340,7 +340,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterR const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterReleaseCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultWriterReleaseCodeLength = 414; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterReleaseCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultWriterReleaseCode = "(function (_){\"use strict\";const c=@getByIdDirectPrivate(_,\"stream\");@assert(c!==@undefined),@assert(@getByIdDirectPrivate(c,\"writer\")===_);const h=@makeTypeError(\"writableStreamDefaultWriterRelease\");@writableStreamDefaultWriterEnsureReadyPromiseRejected(_,h),@writableStreamDefaultWriterEnsureClosedPromiseRejected(_,h),@putByIdDirectPrivate(c,\"writer\",@undefined),@putByIdDirectPrivate(_,\"stream\",@undefined)})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultWriterReleaseCode = "(function (_){\"use strict\";const h=@getByIdDirectPrivate(_,\"stream\");@assert(h!==@undefined),@assert(@getByIdDirectPrivate(h,\"writer\")===_);const c=@makeTypeError(\"writableStreamDefaultWriterRelease\");@writableStreamDefaultWriterEnsureReadyPromiseRejected(_,c),@writableStreamDefaultWriterEnsureClosedPromiseRejected(_,c),@putByIdDirectPrivate(h,\"writer\",@undefined),@putByIdDirectPrivate(_,\"stream\",@undefined)})\n"; // writableStreamDefaultWriterWrite const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -348,7 +348,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterW const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeLength = 919; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultWriterWriteCode = "(function (W,_){\"use strict\";const d=@getByIdDirectPrivate(W,\"stream\");@assert(d!==@undefined);const P=@getByIdDirectPrivate(d,\"controller\");@assert(P!==@undefined);const b=@writableStreamDefaultControllerGetChunkSize(P,_);if(d!==@getByIdDirectPrivate(W,\"stream\"))return @Promise.@reject(@makeTypeError(\"writer is not stream's writer\"));const g=@getByIdDirectPrivate(d,\"state\");if(g===\"errored\")return @Promise.@reject(@getByIdDirectPrivate(d,\"storedError\"));if(@writableStreamCloseQueuedOrInFlight(d)||g===\"closed\")return @Promise.@reject(@makeTypeError(\"stream is closing or closed\"));if(@writableStreamCloseQueuedOrInFlight(d)||g===\"closed\")return @Promise.@reject(@makeTypeError(\"stream is closing or closed\"));if(g===\"erroring\")return @Promise.@reject(@getByIdDirectPrivate(d,\"storedError\"));@assert(g===\"writable\");const f=@writableStreamAddWriteRequest(d);return @writableStreamDefaultControllerWrite(P,_,b),f})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultWriterWriteCode = "(function (d,g){\"use strict\";const P=@getByIdDirectPrivate(d,\"stream\");@assert(P!==@undefined);const W=@getByIdDirectPrivate(P,\"controller\");@assert(W!==@undefined);const _=@writableStreamDefaultControllerGetChunkSize(W,g);if(P!==@getByIdDirectPrivate(d,\"stream\"))return @Promise.@reject(@makeTypeError(\"writer is not stream's writer\"));const b=@getByIdDirectPrivate(P,\"state\");if(b===\"errored\")return @Promise.@reject(@getByIdDirectPrivate(P,\"storedError\"));if(@writableStreamCloseQueuedOrInFlight(P)||b===\"closed\")return @Promise.@reject(@makeTypeError(\"stream is closing or closed\"));if(@writableStreamCloseQueuedOrInFlight(P)||b===\"closed\")return @Promise.@reject(@makeTypeError(\"stream is closing or closed\"));if(b===\"erroring\")return @Promise.@reject(@getByIdDirectPrivate(P,\"storedError\"));@assert(b===\"writable\");const f=@writableStreamAddWriteRequest(P);return @writableStreamDefaultControllerWrite(W,g,_),f})\n"; // setUpWritableStreamDefaultController const JSC::ConstructAbility s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -356,7 +356,7 @@ const JSC::ConstructorKind s_writableStreamInternalsSetUpWritableStreamDefaultCo const JSC::ImplementationVisibility s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeLength = 700; static const JSC::Intrinsic s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsSetUpWritableStreamDefaultControllerCode = "(function (B,_,v,P,U,d,f,j){\"use strict\";@assert(@isWritableStream(B)),@assert(@getByIdDirectPrivate(B,\"controller\")===@undefined),@putByIdDirectPrivate(_,\"stream\",B),@putByIdDirectPrivate(B,\"controller\",_),@resetQueue(@getByIdDirectPrivate(_,\"queue\")),@putByIdDirectPrivate(_,\"started\",-1),@putByIdDirectPrivate(_,\"startAlgorithm\",v),@putByIdDirectPrivate(_,\"strategySizeAlgorithm\",j),@putByIdDirectPrivate(_,\"strategyHWM\",f),@putByIdDirectPrivate(_,\"writeAlgorithm\",P),@putByIdDirectPrivate(_,\"closeAlgorithm\",U),@putByIdDirectPrivate(_,\"abortAlgorithm\",d);const q=@writableStreamDefaultControllerGetBackpressure(_);@writableStreamUpdateBackpressure(B,q),@writableStreamDefaultControllerStart(_)})\n"; +const char* const s_writableStreamInternalsSetUpWritableStreamDefaultControllerCode = "(function (_,B,d,v,f,P,j,U){\"use strict\";@assert(@isWritableStream(_)),@assert(@getByIdDirectPrivate(_,\"controller\")===@undefined),@putByIdDirectPrivate(B,\"stream\",_),@putByIdDirectPrivate(_,\"controller\",B),@resetQueue(@getByIdDirectPrivate(B,\"queue\")),@putByIdDirectPrivate(B,\"started\",-1),@putByIdDirectPrivate(B,\"startAlgorithm\",d),@putByIdDirectPrivate(B,\"strategySizeAlgorithm\",U),@putByIdDirectPrivate(B,\"strategyHWM\",j),@putByIdDirectPrivate(B,\"writeAlgorithm\",v),@putByIdDirectPrivate(B,\"closeAlgorithm\",f),@putByIdDirectPrivate(B,\"abortAlgorithm\",P);const q=@writableStreamDefaultControllerGetBackpressure(B);@writableStreamUpdateBackpressure(_,q),@writableStreamDefaultControllerStart(B)})\n"; // writableStreamDefaultControllerStart const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerStartCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -364,7 +364,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControl const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerStartCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultControllerStartCodeLength = 647; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerStartCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultControllerStartCode = "(function (i){\"use strict\";if(@getByIdDirectPrivate(i,\"started\")!==-1)return;@putByIdDirectPrivate(i,\"started\",0);const p=@getByIdDirectPrivate(i,\"startAlgorithm\");@putByIdDirectPrivate(i,\"startAlgorithm\",@undefined);const d=@getByIdDirectPrivate(i,\"stream\");return @Promise.@resolve(p.@call()).@then(()=>{const _=@getByIdDirectPrivate(d,\"state\");@assert(_===\"writable\"||_===\"erroring\"),@putByIdDirectPrivate(i,\"started\",1),@writableStreamDefaultControllerAdvanceQueueIfNeeded(i)},(_)=>{const u=@getByIdDirectPrivate(d,\"state\");@assert(u===\"writable\"||u===\"erroring\"),@putByIdDirectPrivate(i,\"started\",1),@writableStreamDealWithRejection(d,_)})})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultControllerStartCode = "(function (i){\"use strict\";if(@getByIdDirectPrivate(i,\"started\")!==-1)return;@putByIdDirectPrivate(i,\"started\",0);const _=@getByIdDirectPrivate(i,\"startAlgorithm\");@putByIdDirectPrivate(i,\"startAlgorithm\",@undefined);const d=@getByIdDirectPrivate(i,\"stream\");return @Promise.@resolve(_.@call()).@then(()=>{const u=@getByIdDirectPrivate(d,\"state\");@assert(u===\"writable\"||u===\"erroring\"),@putByIdDirectPrivate(i,\"started\",1),@writableStreamDefaultControllerAdvanceQueueIfNeeded(i)},(u)=>{const p=@getByIdDirectPrivate(d,\"state\");@assert(p===\"writable\"||p===\"erroring\"),@putByIdDirectPrivate(i,\"started\",1),@writableStreamDealWithRejection(d,u)})})\n"; // setUpWritableStreamDefaultControllerFromUnderlyingSink const JSC::ConstructAbility s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -372,7 +372,7 @@ const JSC::ConstructorKind s_writableStreamInternalsSetUpWritableStreamDefaultCo const JSC::ImplementationVisibility s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCodeLength = 561; static const JSC::Intrinsic s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCode = "(function (C,O,_,E,F){\"use strict\";const f=new @WritableStreamDefaultController;let q=()=>{},v=()=>{return @Promise.@resolve()},x=()=>{return @Promise.@resolve()},B=()=>{return @Promise.@resolve()};if(\"start\"in _){const p=_.start;q=()=>@promiseInvokeOrNoopMethodNoCatch(O,p,[f])}if(\"write\"in _){const p=_.write;v=(j)=>@promiseInvokeOrNoopMethod(O,p,[j,f])}if(\"close\"in _){const p=_.close;x=()=>@promiseInvokeOrNoopMethod(O,p,[])}if(\"abort\"in _){const p=_.abort;B=(j)=>@promiseInvokeOrNoopMethod(O,p,[j])}@setUpWritableStreamDefaultController(C,f,q,v,x,B,E,F)})\n"; +const char* const s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCode = "(function (_,j,v,p,f){\"use strict\";const q=new @WritableStreamDefaultController;let x=()=>{},B=()=>{return @Promise.@resolve()},C=()=>{return @Promise.@resolve()},O=()=>{return @Promise.@resolve()};if(\"start\"in v){const E=v.start;x=()=>@promiseInvokeOrNoopMethodNoCatch(j,E,[q])}if(\"write\"in v){const E=v.write;B=(F)=>@promiseInvokeOrNoopMethod(j,E,[F,q])}if(\"close\"in v){const E=v.close;C=()=>@promiseInvokeOrNoopMethod(j,E,[])}if(\"abort\"in v){const E=v.abort;O=(F)=>@promiseInvokeOrNoopMethod(j,E,[F])}@setUpWritableStreamDefaultController(_,q,x,B,C,O,p,f)})\n"; // writableStreamDefaultControllerAdvanceQueueIfNeeded const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerAdvanceQueueIfNeededCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -412,7 +412,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControl const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerErrorCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultControllerErrorCodeLength = 237; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerErrorCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultControllerErrorCode = "(function (h,b){\"use strict\";const i=@getByIdDirectPrivate(h,\"stream\");@assert(i!==@undefined),@assert(@getByIdDirectPrivate(i,\"state\")===\"writable\"),@writableStreamDefaultControllerClearAlgorithms(h),@writableStreamStartErroring(i,b)})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultControllerErrorCode = "(function (i,h){\"use strict\";const b=@getByIdDirectPrivate(i,\"stream\");@assert(b!==@undefined),@assert(@getByIdDirectPrivate(b,\"state\")===\"writable\"),@writableStreamDefaultControllerClearAlgorithms(i),@writableStreamStartErroring(b,h)})\n"; // writableStreamDefaultControllerErrorIfNeeded const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerErrorIfNeededCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -460,7 +460,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControl const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCodeLength = 734; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCode = "(function (d,v){\"use strict\";const i=@getByIdDirectPrivate(d,\"stream\");@writableStreamMarkFirstWriteRequestInFlight(i),@getByIdDirectPrivate(d,\"writeAlgorithm\").@call(@undefined,v).@then(()=>{@writableStreamFinishInFlightWrite(i);const _=@getByIdDirectPrivate(i,\"state\");if(@assert(_===\"writable\"||_===\"erroring\"),@dequeueValue(@getByIdDirectPrivate(d,\"queue\")),!@writableStreamCloseQueuedOrInFlight(i)&&_===\"writable\"){const q=@writableStreamDefaultControllerGetBackpressure(d);@writableStreamUpdateBackpressure(i,q)}@writableStreamDefaultControllerAdvanceQueueIfNeeded(d)},(_)=>{if(@getByIdDirectPrivate(i,\"state\")===\"writable\")@writableStreamDefaultControllerClearAlgorithms(d);@writableStreamFinishInFlightWriteWithError(i,_)})})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCode = "(function (i,d){\"use strict\";const _=@getByIdDirectPrivate(i,\"stream\");@writableStreamMarkFirstWriteRequestInFlight(_),@getByIdDirectPrivate(i,\"writeAlgorithm\").@call(@undefined,d).@then(()=>{@writableStreamFinishInFlightWrite(_);const v=@getByIdDirectPrivate(_,\"state\");if(@assert(v===\"writable\"||v===\"erroring\"),@dequeueValue(@getByIdDirectPrivate(i,\"queue\")),!@writableStreamCloseQueuedOrInFlight(_)&&v===\"writable\"){const M=@writableStreamDefaultControllerGetBackpressure(i);@writableStreamUpdateBackpressure(_,M)}@writableStreamDefaultControllerAdvanceQueueIfNeeded(i)},(v)=>{if(@getByIdDirectPrivate(_,\"state\")===\"writable\")@writableStreamDefaultControllerClearAlgorithms(i);@writableStreamFinishInFlightWriteWithError(_,v)})})\n"; // writableStreamDefaultControllerWrite const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -468,7 +468,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControl const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeLength = 450; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultControllerWriteCode = "(function (d,B,D){\"use strict\";try{@enqueueValueWithSize(@getByIdDirectPrivate(d,\"queue\"),B,D);const y=@getByIdDirectPrivate(d,\"stream\"),I=@getByIdDirectPrivate(y,\"state\");if(!@writableStreamCloseQueuedOrInFlight(y)&&I===\"writable\"){const _=@writableStreamDefaultControllerGetBackpressure(d);@writableStreamUpdateBackpressure(y,_)}@writableStreamDefaultControllerAdvanceQueueIfNeeded(d)}catch(y){@writableStreamDefaultControllerErrorIfNeeded(d,y)}})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultControllerWriteCode = "(function (y,B,D){\"use strict\";try{@enqueueValueWithSize(@getByIdDirectPrivate(y,\"queue\"),B,D);const I=@getByIdDirectPrivate(y,\"stream\"),_=@getByIdDirectPrivate(I,\"state\");if(!@writableStreamCloseQueuedOrInFlight(I)&&_===\"writable\"){const d=@writableStreamDefaultControllerGetBackpressure(y);@writableStreamUpdateBackpressure(I,d)}@writableStreamDefaultControllerAdvanceQueueIfNeeded(y)}catch(I){@writableStreamDefaultControllerErrorIfNeeded(y,I)}})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ @@ -502,7 +502,7 @@ const JSC::ConstructorKind s_transformStreamInternalsCreateTransformStreamCodeCo const JSC::ImplementationVisibility s_transformStreamInternalsCreateTransformStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsCreateTransformStreamCodeLength = 513; static const JSC::Intrinsic s_transformStreamInternalsCreateTransformStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsCreateTransformStreamCode = "(function (D,E,F,_,j,c,q){\"use strict\";if(_===@undefined)_=1;if(j===@undefined)j=()=>1;if(c===@undefined)c=0;if(q===@undefined)q=()=>1;@assert(_>=0),@assert(c>=0);const B={};@putByIdDirectPrivate(B,\"TransformStream\",!0);const v=new @TransformStream(B),x=@newPromiseCapability(@Promise);@initializeTransformStream(v,x.@promise,_,j,c,q);const G=new @TransformStreamDefaultController;return @setUpTransformStreamDefaultController(v,G,E,F),D().@then(()=>{x.@resolve.@call()},(I)=>{x.@reject.@call(@undefined,I)}),v})\n"; +const char* const s_transformStreamInternalsCreateTransformStreamCode = "(function (j,q,v,x,B,D,E){\"use strict\";if(x===@undefined)x=1;if(B===@undefined)B=()=>1;if(D===@undefined)D=0;if(E===@undefined)E=()=>1;@assert(x>=0),@assert(D>=0);const F={};@putByIdDirectPrivate(F,\"TransformStream\",!0);const G=new @TransformStream(F),I=@newPromiseCapability(@Promise);@initializeTransformStream(G,I.@promise,x,B,D,E);const _=new @TransformStreamDefaultController;return @setUpTransformStreamDefaultController(G,_,q,v),j().@then(()=>{I.@resolve.@call()},(c)=>{I.@reject.@call(@undefined,c)}),G})\n"; // initializeTransformStream const JSC::ConstructAbility s_transformStreamInternalsInitializeTransformStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -510,7 +510,7 @@ const JSC::ConstructorKind s_transformStreamInternalsInitializeTransformStreamCo const JSC::ImplementationVisibility s_transformStreamInternalsInitializeTransformStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsInitializeTransformStreamCodeLength = 1015; static const JSC::Intrinsic s_transformStreamInternalsInitializeTransformStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsInitializeTransformStreamCode = "(function (f,x,C,D,E,F){\"use strict\";const q=()=>{return x},G=(B)=>{return @transformStreamDefaultSinkWriteAlgorithm(f,B)},I=(B)=>{return @transformStreamDefaultSinkAbortAlgorithm(f,B)},J=()=>{return @transformStreamDefaultSinkCloseAlgorithm(f)},v=@createWritableStream(q,G,J,I,C,D),K=()=>{return @transformStreamDefaultSourcePullAlgorithm(f)},L=(B)=>{return @transformStreamErrorWritableAndUnblockWrite(f,B),@Promise.@resolve()},T={};@putByIdDirectPrivate(T,\"start\",q),@putByIdDirectPrivate(T,\"pull\",K),@putByIdDirectPrivate(T,\"cancel\",L);const j={};@putByIdDirectPrivate(j,\"size\",F),@putByIdDirectPrivate(j,\"highWaterMark\",E);const N=new @ReadableStream(T,j);@putByIdDirectPrivate(f,\"writable\",v),@putByIdDirectPrivate(f,\"internalWritable\",@getInternalWritableStream(v)),@putByIdDirectPrivate(f,\"readable\",N),@putByIdDirectPrivate(f,\"backpressure\",@undefined),@putByIdDirectPrivate(f,\"backpressureChangePromise\",@undefined),@transformStreamSetBackpressure(f,!0),@putByIdDirectPrivate(f,\"controller\",@undefined)})\n"; +const char* const s_transformStreamInternalsInitializeTransformStreamCode = "(function (f,G,B,T,C,F){\"use strict\";const I=()=>{return G},J=(x)=>{return @transformStreamDefaultSinkWriteAlgorithm(f,x)},K=(x)=>{return @transformStreamDefaultSinkAbortAlgorithm(f,x)},j=()=>{return @transformStreamDefaultSinkCloseAlgorithm(f)},L=@createWritableStream(I,J,j,K,B,T),N=()=>{return @transformStreamDefaultSourcePullAlgorithm(f)},q=(x)=>{return @transformStreamErrorWritableAndUnblockWrite(f,x),@Promise.@resolve()},D={};@putByIdDirectPrivate(D,\"start\",I),@putByIdDirectPrivate(D,\"pull\",N),@putByIdDirectPrivate(D,\"cancel\",q);const E={};@putByIdDirectPrivate(E,\"size\",F),@putByIdDirectPrivate(E,\"highWaterMark\",C);const v=new @ReadableStream(D,E);@putByIdDirectPrivate(f,\"writable\",L),@putByIdDirectPrivate(f,\"internalWritable\",@getInternalWritableStream(L)),@putByIdDirectPrivate(f,\"readable\",v),@putByIdDirectPrivate(f,\"backpressure\",@undefined),@putByIdDirectPrivate(f,\"backpressureChangePromise\",@undefined),@transformStreamSetBackpressure(f,!0),@putByIdDirectPrivate(f,\"controller\",@undefined)})\n"; // transformStreamError const JSC::ConstructAbility s_transformStreamInternalsTransformStreamErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -526,7 +526,7 @@ const JSC::ConstructorKind s_transformStreamInternalsTransformStreamErrorWritabl const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCodeLength = 339; static const JSC::Intrinsic s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCode = "(function (_,n){\"use strict\";@transformStreamDefaultControllerClearAlgorithms(@getByIdDirectPrivate(_,\"controller\"));const o=@getByIdDirectPrivate(_,\"internalWritable\");if(@writableStreamDefaultControllerErrorIfNeeded(@getByIdDirectPrivate(o,\"controller\"),n),@getByIdDirectPrivate(_,\"backpressure\"))@transformStreamSetBackpressure(_,!1)})\n"; +const char* const s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCode = "(function (_,o){\"use strict\";@transformStreamDefaultControllerClearAlgorithms(@getByIdDirectPrivate(_,\"controller\"));const n=@getByIdDirectPrivate(_,\"internalWritable\");if(@writableStreamDefaultControllerErrorIfNeeded(@getByIdDirectPrivate(n,\"controller\"),o),@getByIdDirectPrivate(_,\"backpressure\"))@transformStreamSetBackpressure(_,!1)})\n"; // transformStreamSetBackpressure const JSC::ConstructAbility s_transformStreamInternalsTransformStreamSetBackpressureCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -550,7 +550,7 @@ const JSC::ConstructorKind s_transformStreamInternalsSetUpTransformStreamDefault const JSC::ImplementationVisibility s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCodeLength = 443; static const JSC::Intrinsic s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCode = "(function (q,v,_){\"use strict\";const d=new @TransformStreamDefaultController;let b=(p)=>{try{@transformStreamDefaultControllerEnqueue(d,p)}catch(w){return @Promise.@reject(w)}return @Promise.@resolve()},j=()=>{return @Promise.@resolve()};if(\"transform\"in _)b=(p)=>{return @promiseInvokeOrNoopMethod(v,_.transform,[p,d])};if(\"flush\"in _)j=()=>{return @promiseInvokeOrNoopMethod(v,_.flush,[d])};@setUpTransformStreamDefaultController(q,d,b,j)})\n"; +const char* const s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCode = "(function (_,d,p){\"use strict\";const v=new @TransformStreamDefaultController;let b=(q)=>{try{@transformStreamDefaultControllerEnqueue(v,q)}catch(w){return @Promise.@reject(w)}return @Promise.@resolve()},j=()=>{return @Promise.@resolve()};if(\"transform\"in p)b=(q)=>{return @promiseInvokeOrNoopMethod(d,p.transform,[q,v])};if(\"flush\"in p)j=()=>{return @promiseInvokeOrNoopMethod(d,p.flush,[v])};@setUpTransformStreamDefaultController(_,v,b,j)})\n"; // transformStreamDefaultControllerClearAlgorithms const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultControllerClearAlgorithmsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -566,7 +566,7 @@ const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultContr const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCodeLength = 622; static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCode = "(function (g,i){\"use strict\";const _=@getByIdDirectPrivate(g,\"stream\"),W=@getByIdDirectPrivate(_,\"readable\"),S=@getByIdDirectPrivate(W,\"readableStreamController\");if(@assert(S!==@undefined),!@readableStreamDefaultControllerCanCloseOrEnqueue(S))@throwTypeError(\"TransformStream.readable cannot close or enqueue\");try{@readableStreamDefaultControllerEnqueue(S,i)}catch(j){throw @transformStreamErrorWritableAndUnblockWrite(_,j),@getByIdDirectPrivate(W,\"storedError\")}const f=!@readableStreamDefaultControllerShouldCallPull(S);if(f!==@getByIdDirectPrivate(_,\"backpressure\"))@assert(f),@transformStreamSetBackpressure(_,!0)})\n"; +const char* const s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCode = "(function (S,W){\"use strict\";const f=@getByIdDirectPrivate(S,\"stream\"),g=@getByIdDirectPrivate(f,\"readable\"),i=@getByIdDirectPrivate(g,\"readableStreamController\");if(@assert(i!==@undefined),!@readableStreamDefaultControllerCanCloseOrEnqueue(i))@throwTypeError(\"TransformStream.readable cannot close or enqueue\");try{@readableStreamDefaultControllerEnqueue(i,W)}catch(j){throw @transformStreamErrorWritableAndUnblockWrite(f,j),@getByIdDirectPrivate(g,\"storedError\")}const _=!@readableStreamDefaultControllerShouldCallPull(i);if(_!==@getByIdDirectPrivate(f,\"backpressure\"))@assert(_),@transformStreamSetBackpressure(f,!0)})\n"; // transformStreamDefaultControllerError const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultControllerErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -582,7 +582,7 @@ const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultContr const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultControllerPerformTransformCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsTransformStreamDefaultControllerPerformTransformCodeLength = 277; static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultControllerPerformTransformCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsTransformStreamDefaultControllerPerformTransformCode = "(function (d,g){\"use strict\";const _=@newPromiseCapability(@Promise);return @getByIdDirectPrivate(d,\"transformAlgorithm\").@call(@undefined,g).@then(()=>{_.@resolve()},(f)=>{@transformStreamError(@getByIdDirectPrivate(d,\"stream\"),f),_.@reject.@call(@undefined,f)}),_.@promise})\n"; +const char* const s_transformStreamInternalsTransformStreamDefaultControllerPerformTransformCode = "(function (_,d){\"use strict\";const f=@newPromiseCapability(@Promise);return @getByIdDirectPrivate(_,\"transformAlgorithm\").@call(@undefined,d).@then(()=>{f.@resolve()},(j)=>{@transformStreamError(@getByIdDirectPrivate(_,\"stream\"),j),f.@reject.@call(@undefined,j)}),f.@promise})\n"; // transformStreamDefaultControllerTerminate const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultControllerTerminateCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -590,7 +590,7 @@ const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultContr const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultControllerTerminateCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsTransformStreamDefaultControllerTerminateCodeLength = 367; static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultControllerTerminateCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsTransformStreamDefaultControllerTerminateCode = "(function (f){\"use strict\";const i=@getByIdDirectPrivate(f,\"stream\"),k=@getByIdDirectPrivate(i,\"readable\"),_=@getByIdDirectPrivate(k,\"readableStreamController\");if(@readableStreamDefaultControllerCanCloseOrEnqueue(_))@readableStreamDefaultControllerClose(_);const u=@makeTypeError(\"the stream has been terminated\");@transformStreamErrorWritableAndUnblockWrite(i,u)})\n"; +const char* const s_transformStreamInternalsTransformStreamDefaultControllerTerminateCode = "(function (i){\"use strict\";const _=@getByIdDirectPrivate(i,\"stream\"),f=@getByIdDirectPrivate(_,\"readable\"),k=@getByIdDirectPrivate(f,\"readableStreamController\");if(@readableStreamDefaultControllerCanCloseOrEnqueue(k))@readableStreamDefaultControllerClose(k);const u=@makeTypeError(\"the stream has been terminated\");@transformStreamErrorWritableAndUnblockWrite(_,u)})\n"; // transformStreamDefaultSinkWriteAlgorithm const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -598,7 +598,7 @@ const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultSinkW const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeLength = 764; static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCode = "(function (d,j){\"use strict\";const f=@getByIdDirectPrivate(d,\"internalWritable\");@assert(@getByIdDirectPrivate(f,\"state\")===\"writable\");const q=@getByIdDirectPrivate(d,\"controller\");if(@getByIdDirectPrivate(d,\"backpressure\")){const _=@newPromiseCapability(@Promise),x=@getByIdDirectPrivate(d,\"backpressureChangePromise\");return @assert(x!==@undefined),x.@promise.@then(()=>{const v=@getByIdDirectPrivate(f,\"state\");if(v===\"erroring\"){_.@reject.@call(@undefined,@getByIdDirectPrivate(f,\"storedError\"));return}@assert(v===\"writable\"),@transformStreamDefaultControllerPerformTransform(q,j).@then(()=>{_.@resolve()},(z)=>{_.@reject.@call(@undefined,z)})},(v)=>{_.@reject.@call(@undefined,v)}),_.@promise}return @transformStreamDefaultControllerPerformTransform(q,j)})\n"; +const char* const s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCode = "(function (d,v){\"use strict\";const f=@getByIdDirectPrivate(d,\"internalWritable\");@assert(@getByIdDirectPrivate(f,\"state\")===\"writable\");const j=@getByIdDirectPrivate(d,\"controller\");if(@getByIdDirectPrivate(d,\"backpressure\")){const q=@newPromiseCapability(@Promise),_=@getByIdDirectPrivate(d,\"backpressureChangePromise\");return @assert(_!==@undefined),_.@promise.@then(()=>{const x=@getByIdDirectPrivate(f,\"state\");if(x===\"erroring\"){q.@reject.@call(@undefined,@getByIdDirectPrivate(f,\"storedError\"));return}@assert(x===\"writable\"),@transformStreamDefaultControllerPerformTransform(j,v).@then(()=>{q.@resolve()},(z)=>{q.@reject.@call(@undefined,z)})},(x)=>{q.@reject.@call(@undefined,x)}),q.@promise}return @transformStreamDefaultControllerPerformTransform(j,v)})\n"; // transformStreamDefaultSinkAbortAlgorithm const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -606,7 +606,7 @@ const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultSinkA const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCodeLength = 85; static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCode = "(function (d,t){\"use strict\";return @transformStreamError(d,t),@Promise.@resolve()})\n"; +const char* const s_transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCode = "(function (t,d){\"use strict\";return @transformStreamError(t,d),@Promise.@resolve()})\n"; // transformStreamDefaultSinkCloseAlgorithm const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -614,7 +614,7 @@ const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultSinkC const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCodeLength = 789; static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCode = "(function (f){\"use strict\";const _=@getByIdDirectPrivate(f,\"readable\"),q=@getByIdDirectPrivate(f,\"controller\"),j=@getByIdDirectPrivate(_,\"readableStreamController\"),k=@getByIdDirectPrivate(q,\"flushAlgorithm\");@assert(k!==@undefined);const u=@getByIdDirectPrivate(q,\"flushAlgorithm\").@call();@transformStreamDefaultControllerClearAlgorithms(q);const I=@newPromiseCapability(@Promise);return u.@then(()=>{if(@getByIdDirectPrivate(_,\"state\")===@streamErrored){I.@reject.@call(@undefined,@getByIdDirectPrivate(_,\"storedError\"));return}if(@readableStreamDefaultControllerCanCloseOrEnqueue(j))@readableStreamDefaultControllerClose(j);I.@resolve()},(v)=>{@transformStreamError(@getByIdDirectPrivate(q,\"stream\"),v),I.@reject.@call(@undefined,@getByIdDirectPrivate(_,\"storedError\"))}),I.@promise})\n"; +const char* const s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCode = "(function (_){\"use strict\";const I=@getByIdDirectPrivate(_,\"readable\"),k=@getByIdDirectPrivate(_,\"controller\"),f=@getByIdDirectPrivate(I,\"readableStreamController\"),u=@getByIdDirectPrivate(k,\"flushAlgorithm\");@assert(u!==@undefined);const v=@getByIdDirectPrivate(k,\"flushAlgorithm\").@call();@transformStreamDefaultControllerClearAlgorithms(k);const q=@newPromiseCapability(@Promise);return v.@then(()=>{if(@getByIdDirectPrivate(I,\"state\")===@streamErrored){q.@reject.@call(@undefined,@getByIdDirectPrivate(I,\"storedError\"));return}if(@readableStreamDefaultControllerCanCloseOrEnqueue(f))@readableStreamDefaultControllerClose(f);q.@resolve()},(j)=>{@transformStreamError(@getByIdDirectPrivate(k,\"stream\"),j),q.@reject.@call(@undefined,@getByIdDirectPrivate(I,\"storedError\"))}),q.@promise})\n"; // transformStreamDefaultSourcePullAlgorithm const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultSourcePullAlgorithmCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -640,7 +640,7 @@ const JSC::ConstructorKind s_processObjectInternalsBindingCodeConstructorKind = const JSC::ImplementationVisibility s_processObjectInternalsBindingCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_processObjectInternalsBindingCodeLength = 473; static const JSC::Intrinsic s_processObjectInternalsBindingCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_processObjectInternalsBindingCode = "(function (I){\"use strict\";if(I!==\"constants\")@throwTypeError(\"process.binding() is not supported in Bun. If that breaks something, please file an issue and include a reproducible code sample.\");var r=globalThis.Symbol.for(\"process.bindings.constants\"),l=globalThis[r];if(!l){const{constants:d}=globalThis[globalThis.Symbol.for(\"Bun.lazy\")](\"createImportMeta\",\"node:process\").require(\"node:fs\");l={fs:d,zlib:{},crypto:{},os:@Bun._Os().constants},globalThis[r]=l}return l})\n"; +const char* const s_processObjectInternalsBindingCode = "(function (d){\"use strict\";if(d!==\"constants\")@throwTypeError(\"process.binding() is not supported in Bun. If that breaks something, please file an issue and include a reproducible code sample.\");var l=globalThis.Symbol.for(\"process.bindings.constants\"),I=globalThis[l];if(!I){const{constants:r}=globalThis[globalThis.Symbol.for(\"Bun.lazy\")](\"createImportMeta\",\"node:process\").require(\"node:fs\");I={fs:r,zlib:{},crypto:{},os:@Bun._Os().constants},globalThis[l]=I}return I})\n"; // getStdioWriteStream const JSC::ConstructAbility s_processObjectInternalsGetStdioWriteStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -648,7 +648,7 @@ const JSC::ConstructorKind s_processObjectInternalsGetStdioWriteStreamCodeConstr const JSC::ImplementationVisibility s_processObjectInternalsGetStdioWriteStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_processObjectInternalsGetStdioWriteStreamCodeLength = 4311; static const JSC::Intrinsic s_processObjectInternalsGetStdioWriteStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_processObjectInternalsGetStdioWriteStreamCode = "(function (Z){\"use strict\";var L=(M)=>{var G=@requireMap.get(M);if(G)return G.exports;return @internalRequire(M)},D={path:\"node:process\",require:L};function Y(M){var{Duplex:G,eos:j,destroy:z}=L(\"node:stream\"),J=class O extends G{#j;#$;#M=!0;#N=!0;#J;#z;#G;#B;#H;#K;get isTTY(){return this.#K\?\?=L(\"node:tty\").isatty(M)}get fd(){return M}constructor(B){super({readable:!0,writable:!0});this.#J=`/dev/fd/${B}`}#L(B){const H=this.#z;if(this.#z=null,H)H(B);else if(B)this.destroy(B);else if(!this.#M&&!this.#N)this.destroy()}_destroy(B,H){if(!B&&this.#z!==null){var N=class X extends Error{code;name;constructor(Q=\"The operation was aborted\",K=void 0){if(K!==void 0&&typeof K!==\"object\")throw new Error(`Invalid AbortError options:\\n\\n${JSON.stringify(K,null,2)}`);super(Q,K);this.code=\"ABORT_ERR\",this.name=\"AbortError\"}};B=new N}if(this.#G=null,this.#B=null,this.#z===null)H(B);else{if(this.#z=H,this.#j)z(this.#j,B);if(this.#$)z(this.#$,B)}}_write(B,H,N){if(!this.#j){var{createWriteStream:X}=L(\"node:fs\"),Q=this.#j=X(this.#J);Q.on(\"finish\",()=>{if(this.#B){const K=this.#B;this.#B=null,K()}}),Q.on(\"drain\",()=>{if(this.#G){const K=this.#G;this.#G=null,K()}}),j(Q,(K)=>{if(this.#N=!1,K)z(Q,K);this.#L(K)})}if(Q.write(B,H))N();else this.#G=N}_final(B){this.#j&&this.#j.end(),this.#B=B}#O(){var{createReadStream:B}=L(\"node:fs\"),H=this.#$=B(this.#J);return H.on(\"readable\",()=>{if(this.#H){const N=this.#H;this.#H=null,N()}else this.read()}),H.on(\"end\",()=>{this.push(null)}),j(H,(N)=>{if(this.#M=!1,N)z(H,N);this.#L(N)}),H}_read(){var B=this.#$;if(!B)B=this.#O();while(!0){const H=B.read();if(H===null||!this.push(H))return}}};return new J(M)}var{EventEmitter:P}=L(\"node:events\");function V(M){if(!M)return!0;var G=M.toLowerCase();return G===\"utf8\"||G===\"utf-8\"||G===\"buffer\"||G===\"binary\"}var U,A=class M extends P{#j;#$;#M;#N;bytesWritten=0;setDefaultEncoding(G){if(this.#$||!V(G))return this.#G(),this.#$.setDefaultEncoding(G)}#J(){switch(this.#j){case 1:{var G=@Bun.stdout.writer({highWaterMark:0});return G.unref(),G}case 2:{var G=@Bun.stderr.writer({highWaterMark:0});return G.unref(),G}default:throw new Error(\"Unsupported writer\")}}#z(){return this.#M\?\?=this.#J()}constructor(G){super();this.#j=G}get fd(){return this.#j}get isTTY(){return this.#N\?\?=L(\"node:tty\").isatty(this.#j)}cursorTo(G,j,z){return(U\?\?=L(\"readline\")).cursorTo(this,G,j,z)}moveCursor(G,j,z){return(U\?\?=L(\"readline\")).moveCursor(this,G,j,z)}clearLine(G,j){return(U\?\?=L(\"readline\")).clearLine(this,G,j)}clearScreenDown(G){return(U\?\?=L(\"readline\")).clearScreenDown(this,G)}ref(){this.#z().ref()}unref(){this.#z().unref()}on(G,j){if(G===\"close\"||G===\"finish\")return this.#G(),this.#$.on(G,j);if(G===\"drain\")return super.on(\"drain\",j);if(G===\"error\")return super.on(\"error\",j);return super.on(G,j)}get _writableState(){return this.#G(),this.#$._writableState}get _readableState(){return this.#G(),this.#$._readableState}pipe(G){return this.#G(),this.#$.pipe(G)}unpipe(G){return this.#G(),this.#$.unpipe(G)}#G(){if(this.#$)return;this.#$=Y(this.#j);const G=this.eventNames();for(let j of G)this.#$.on(j,(...z)=>{this.emit(j,...z)})}#B(G){var j=this.#z();const z=j.write(G);this.bytesWritten+=z;const J=j.flush(!1);return!!(z||J)}#H(G,j){if(!V(j))return this.#G(),this.#$.write(G,j);return this.#B(G)}#K(G,j){if(j)this.emit(\"error\",j);try{G(j\?j:null)}catch(z){this.emit(\"error\",z)}}#L(G,j,z){if(!V(j))return this.#G(),this.#$.write(G,j,z);var J=this.#z();const O=J.write(G),B=J.flush(!0);if(B\?.then)return B.then(()=>{this.#K(z),this.emit(\"drain\")},(H)=>this.#K(z,H)),!1;return queueMicrotask(()=>{this.#K(z)}),!!(O||B)}write(G,j,z){const J=this._write(G,j,z);if(J)this.emit(\"drain\");return J}get hasColors(){return @Bun.tty[this.#j].hasColors}_write(G,j,z){var J=this.#$;if(J)return J.write(G,j,z);switch(arguments.length){case 0:{var O=new Error(\"Invalid arguments\");throw O.code=\"ERR_INVALID_ARG_TYPE\",O}case 1:return this.#B(G);case 2:if(typeof j===\"function\")return this.#L(G,\"\",j);else if(typeof j===\"string\")return this.#H(G,j);default:{if(typeof j!==\"undefined\"&&typeof j!==\"string\"||typeof z!==\"undefined\"&&typeof z!==\"function\"){var O=new Error(\"Invalid arguments\");throw O.code=\"ERR_INVALID_ARG_TYPE\",O}if(typeof z===\"undefined\")return this.#H(G,j);return this.#L(G,j,z)}}}destroy(){return this}end(){return this}};return new A(Z)})\n"; +const char* const s_processObjectInternalsGetStdioWriteStreamCode = "(function (z){\"use strict\";var G=(U)=>{var V=@requireMap.get(U);if(V)return V.exports;return @internalRequire(U)},J={path:\"node:process\",require:G};function K(U){var{Duplex:V,eos:X,destroy:j}=G(\"node:stream\"),B=class Z extends V{#$;#G;#j=!0;#z=!0;#B;#H;#J;#K;#L;#M;get isTTY(){return this.#M\?\?=G(\"node:tty\").isatty(U)}get fd(){return U}constructor(Y){super({readable:!0,writable:!0});this.#B=`/dev/fd/${Y}`}#N(Y){const P=this.#H;if(this.#H=null,P)P(Y);else if(Y)this.destroy(Y);else if(!this.#j&&!this.#z)this.destroy()}_destroy(Y,P){if(!Y&&this.#H!==null){var A=class D extends Error{code;name;constructor(H=\"The operation was aborted\",N=void 0){if(N!==void 0&&typeof N!==\"object\")throw new Error(`Invalid AbortError options:\\n\\n${JSON.stringify(N,null,2)}`);super(H,N);this.code=\"ABORT_ERR\",this.name=\"AbortError\"}};Y=new A}if(this.#J=null,this.#K=null,this.#H===null)P(Y);else{if(this.#H=P,this.#$)j(this.#$,Y);if(this.#G)j(this.#G,Y)}}_write(Y,P,A){if(!this.#$){var{createWriteStream:D}=G(\"node:fs\"),H=this.#$=D(this.#B);H.on(\"finish\",()=>{if(this.#K){const N=this.#K;this.#K=null,N()}}),H.on(\"drain\",()=>{if(this.#J){const N=this.#J;this.#J=null,N()}}),X(H,(N)=>{if(this.#z=!1,N)j(H,N);this.#N(N)})}if(H.write(Y,P))A();else this.#J=A}_final(Y){this.#$&&this.#$.end(),this.#K=Y}#O(){var{createReadStream:Y}=G(\"node:fs\"),P=this.#G=Y(this.#B);return P.on(\"readable\",()=>{if(this.#L){const A=this.#L;this.#L=null,A()}else this.read()}),P.on(\"end\",()=>{this.push(null)}),X(P,(A)=>{if(this.#j=!1,A)j(P,A);this.#N(A)}),P}_read(){var Y=this.#G;if(!Y)Y=this.#O();while(!0){const P=Y.read();if(P===null||!this.push(P))return}}};return new B(U)}var{EventEmitter:L}=G(\"node:events\");function O(U){if(!U)return!0;var V=U.toLowerCase();return V===\"utf8\"||V===\"utf-8\"||V===\"buffer\"||V===\"binary\"}var M,Q=class U extends L{#$;#G;#j;#z;bytesWritten=0;setDefaultEncoding(V){if(this.#G||!O(V))return this.#J(),this.#G.setDefaultEncoding(V)}#B(){switch(this.#$){case 1:{var V=@Bun.stdout.writer({highWaterMark:0});return V.unref(),V}case 2:{var V=@Bun.stderr.writer({highWaterMark:0});return V.unref(),V}default:throw new Error(\"Unsupported writer\")}}#H(){return this.#j\?\?=this.#B()}constructor(V){super();this.#$=V}get fd(){return this.#$}get isTTY(){return this.#z\?\?=G(\"node:tty\").isatty(this.#$)}cursorTo(V,X,j){return(M\?\?=G(\"readline\")).cursorTo(this,V,X,j)}moveCursor(V,X,j){return(M\?\?=G(\"readline\")).moveCursor(this,V,X,j)}clearLine(V,X){return(M\?\?=G(\"readline\")).clearLine(this,V,X)}clearScreenDown(V){return(M\?\?=G(\"readline\")).clearScreenDown(this,V)}ref(){this.#H().ref()}unref(){this.#H().unref()}on(V,X){if(V===\"close\"||V===\"finish\")return this.#J(),this.#G.on(V,X);if(V===\"drain\")return super.on(\"drain\",X);if(V===\"error\")return super.on(\"error\",X);return super.on(V,X)}get _writableState(){return this.#J(),this.#G._writableState}get _readableState(){return this.#J(),this.#G._readableState}pipe(V){return this.#J(),this.#G.pipe(V)}unpipe(V){return this.#J(),this.#G.unpipe(V)}#J(){if(this.#G)return;this.#G=K(this.#$);const V=this.eventNames();for(let X of V)this.#G.on(X,(...j)=>{this.emit(X,...j)})}#K(V){var X=this.#H();const j=X.write(V);this.bytesWritten+=j;const B=X.flush(!1);return!!(j||B)}#L(V,X){if(!O(X))return this.#J(),this.#G.write(V,X);return this.#K(V)}#M(V,X){if(X)this.emit(\"error\",X);try{V(X\?X:null)}catch(j){this.emit(\"error\",j)}}#N(V,X,j){if(!O(X))return this.#J(),this.#G.write(V,X,j);var B=this.#H();const Z=B.write(V),Y=B.flush(!0);if(Y\?.then)return Y.then(()=>{this.#M(j),this.emit(\"drain\")},(P)=>this.#M(j,P)),!1;return queueMicrotask(()=>{this.#M(j)}),!!(Z||Y)}write(V,X,j){const B=this._write(V,X,j);if(B)this.emit(\"drain\");return B}get hasColors(){return @Bun.tty[this.#$].hasColors}_write(V,X,j){var B=this.#G;if(B)return B.write(V,X,j);switch(arguments.length){case 0:{var Z=new Error(\"Invalid arguments\");throw Z.code=\"ERR_INVALID_ARG_TYPE\",Z}case 1:return this.#K(V);case 2:if(typeof X===\"function\")return this.#N(V,\"\",X);else if(typeof X===\"string\")return this.#L(V,X);default:{if(typeof X!==\"undefined\"&&typeof X!==\"string\"||typeof j!==\"undefined\"&&typeof j!==\"function\"){var Z=new Error(\"Invalid arguments\");throw Z.code=\"ERR_INVALID_ARG_TYPE\",Z}if(typeof j===\"undefined\")return this.#L(V,X);return this.#N(V,X,j)}}}destroy(){return this}end(){return this}};return new Q(z)})\n"; // getStdinStream const JSC::ConstructAbility s_processObjectInternalsGetStdinStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -656,7 +656,7 @@ const JSC::ConstructorKind s_processObjectInternalsGetStdinStreamCodeConstructor const JSC::ImplementationVisibility s_processObjectInternalsGetStdinStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_processObjectInternalsGetStdinStreamCodeLength = 1861; static const JSC::Intrinsic s_processObjectInternalsGetStdinStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_processObjectInternalsGetStdinStreamCode = "(function (K){\"use strict\";var H=(I)=>{var N=@requireMap.get(I);if(N)return N.exports;return @internalRequire(I)},T={path:\"node:process\",require:H},{Duplex:M,eos:P,destroy:L}=H(\"node:stream\"),Q=class I extends M{#J;#j;#$;#G=!0;#H=!1;#K=!0;#z;#N;#B;get isTTY(){return H(\"tty\").isatty(K)}get fd(){return K}constructor(){super({readable:!0,writable:!0})}#I(N){const j=this.#N;if(this.#N=null,j)j(N);else if(N)this.destroy(N);else if(!this.#G&&!this.#K)this.destroy()}_destroy(N,j){if(!N&&this.#N!==null){var z=class B extends Error{constructor(G=\"The operation was aborted\",J=void 0){if(J!==void 0&&typeof J!==\"object\")throw new Error(`Invalid AbortError options:\\n\\n${JSON.stringify(J,null,2)}`);super(G,J);this.code=\"ABORT_ERR\",this.name=\"AbortError\"}};N=new z}if(this.#N===null)j(N);else if(this.#N=j,this.#$)L(this.#$,N)}setRawMode(N){}on(N,j){if(N===\"readable\")this.ref(),this.#H=!0;return super.on(N,j)}pause(){return this.unref(),super.pause()}resume(){return this.ref(),super.resume()}ref(){this.#J\?\?=@Bun.stdin.stream().getReader(),this.#j\?\?=setInterval(()=>{},1<<30)}unref(){if(this.#j)clearInterval(this.#j),this.#j=null}async#L(){try{var N,j;const z=this.#J.readMany();if(!z\?.then)({done:N,value:j}=z);else({done:N,value:j}=await z);if(!N){this.push(j[0]);const B=j.length;for(let G=1;G{if(this.#z){const z=this.#z;this.#z=null,z()}}),j.on(\"drain\",()=>{if(this.#B){const z=this.#B;this.#B=null,z()}}),P(j,(z)=>{if(this.#K=!1,z)L(j,z);this.#I(z)}),j}_write(N,j,z){var B=this.#$;if(!B)B=this.#M();if(B.write(N,j))z();else this.#B=z}_final(N){this.#$.end(),this.#z=(...j)=>N(...j)}};return new Q})\n"; +const char* const s_processObjectInternalsGetStdinStreamCode = "(function (N){\"use strict\";var j=(J)=>{var K=@requireMap.get(J);if(K)return K.exports;return @internalRequire(J)},z={path:\"node:process\",require:j},{Duplex:B,eos:G,destroy:H}=j(\"node:stream\"),I=class J extends B{#$;#N;#j;#z=!0;#B=!1;#G=!0;#H;#I;#J;get isTTY(){return j(\"tty\").isatty(N)}get fd(){return N}constructor(){super({readable:!0,writable:!0})}#K(K){const L=this.#I;if(this.#I=null,L)L(K);else if(K)this.destroy(K);else if(!this.#z&&!this.#G)this.destroy()}_destroy(K,L){if(!K&&this.#I!==null){var M=class P extends Error{constructor(Q=\"The operation was aborted\",T=void 0){if(T!==void 0&&typeof T!==\"object\")throw new Error(`Invalid AbortError options:\\n\\n${JSON.stringify(T,null,2)}`);super(Q,T);this.code=\"ABORT_ERR\",this.name=\"AbortError\"}};K=new M}if(this.#I===null)L(K);else if(this.#I=L,this.#j)H(this.#j,K)}setRawMode(K){}on(K,L){if(K===\"readable\")this.ref(),this.#B=!0;return super.on(K,L)}pause(){return this.unref(),super.pause()}resume(){return this.ref(),super.resume()}ref(){this.#$\?\?=@Bun.stdin.stream().getReader(),this.#N\?\?=setInterval(()=>{},1<<30)}unref(){if(this.#N)clearInterval(this.#N),this.#N=null}async#L(){try{var K,L;const M=this.#$.readMany();if(!M\?.then)({done:K,value:L}=M);else({done:K,value:L}=await M);if(!K){this.push(L[0]);const P=L.length;for(let Q=1;Q{if(this.#H){const M=this.#H;this.#H=null,M()}}),L.on(\"drain\",()=>{if(this.#J){const M=this.#J;this.#J=null,M()}}),G(L,(M)=>{if(this.#G=!1,M)H(L,M);this.#K(M)}),L}_write(K,L,M){var P=this.#j;if(!P)P=this.#M();if(P.write(K,L))M();else this.#J=M}_final(K){this.#j.end(),this.#H=(...L)=>K(...L)}};return new I})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ @@ -674,7 +674,7 @@ const JSC::ConstructorKind s_transformStreamInitializeTransformStreamCodeConstru const JSC::ImplementationVisibility s_transformStreamInitializeTransformStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInitializeTransformStreamCodeLength = 1304; static const JSC::Intrinsic s_transformStreamInitializeTransformStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInitializeTransformStreamCode = "(function (){\"use strict\";let _=arguments[0];if(@isObject(_)&&@getByIdDirectPrivate(_,\"TransformStream\"))return this;let j=arguments[1],q=arguments[2];if(_===@undefined)_=null;if(q===@undefined)q={};if(j===@undefined)j={};let u={};if(_!==null){if(\"start\"in _){if(u.start=_.start,typeof u.start!==\"function\")@throwTypeError(\"transformer.start should be a function\")}if(\"transform\"in _){if(u.transform=_.transform,typeof u.transform!==\"function\")@throwTypeError(\"transformer.transform should be a function\")}if(\"flush\"in _){if(u.flush=_.flush,typeof u.flush!==\"function\")@throwTypeError(\"transformer.flush should be a function\")}if(\"readableType\"in _)@throwRangeError(\"TransformStream transformer has a readableType\");if(\"writableType\"in _)@throwRangeError(\"TransformStream transformer has a writableType\")}const x=@extractHighWaterMark(q,0),B=@extractSizeAlgorithm(q),E=@extractHighWaterMark(j,1),F=@extractSizeAlgorithm(j),v=@newPromiseCapability(@Promise);if(@initializeTransformStream(this,v.@promise,E,F,x,B),@setUpTransformStreamDefaultControllerFromTransformer(this,_,u),(\"start\"in u)){const G=@getByIdDirectPrivate(this,\"controller\");(()=>@promiseInvokeOrNoopMethodNoCatch(_,u.start,[G]))().@then(()=>{v.@resolve.@call()},(I)=>{v.@reject.@call(@undefined,I)})}else v.@resolve.@call();return this})\n"; +const char* const s_transformStreamInitializeTransformStreamCode = "(function (){\"use strict\";let j=arguments[0];if(@isObject(j)&&@getByIdDirectPrivate(j,\"TransformStream\"))return this;let q=arguments[1],v=arguments[2];if(j===@undefined)j=null;if(v===@undefined)v={};if(q===@undefined)q={};let x={};if(j!==null){if(\"start\"in j){if(x.start=j.start,typeof x.start!==\"function\")@throwTypeError(\"transformer.start should be a function\")}if(\"transform\"in j){if(x.transform=j.transform,typeof x.transform!==\"function\")@throwTypeError(\"transformer.transform should be a function\")}if(\"flush\"in j){if(x.flush=j.flush,typeof x.flush!==\"function\")@throwTypeError(\"transformer.flush should be a function\")}if(\"readableType\"in j)@throwRangeError(\"TransformStream transformer has a readableType\");if(\"writableType\"in j)@throwRangeError(\"TransformStream transformer has a writableType\")}const B=@extractHighWaterMark(v,0),E=@extractSizeAlgorithm(v),F=@extractHighWaterMark(q,1),G=@extractSizeAlgorithm(q),I=@newPromiseCapability(@Promise);if(@initializeTransformStream(this,I.@promise,F,G,B,E),@setUpTransformStreamDefaultControllerFromTransformer(this,j,x),(\"start\"in x)){const J=@getByIdDirectPrivate(this,\"controller\");(()=>@promiseInvokeOrNoopMethodNoCatch(j,x.start,[J]))().@then(()=>{I.@resolve.@call()},(u)=>{I.@reject.@call(@undefined,u)})}else I.@resolve.@call();return this})\n"; // readable const JSC::ConstructAbility s_transformStreamReadableCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -716,7 +716,7 @@ const JSC::ConstructorKind s_moduleRequireCodeConstructorKind = JSC::Constructor const JSC::ImplementationVisibility s_moduleRequireCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_moduleRequireCodeLength = 1035; static const JSC::Intrinsic s_moduleRequireCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_moduleRequireCode = "(function (_){\"use strict\";const b=@requireMap.@get(_)||@requireMap.@get(_=@resolveSync(_,this.path,!1));if(b)return @evaluateCommonJSModule(b),b.exports;if(_.endsWith(\".json\")||_.endsWith(\".toml\")||_.endsWith(\".node\"))return @internalRequire(_);let S=@Loader.registry.@get(_);if(S\?.evaluated&&(S.state\?\?0)>=@ModuleReady){const M=S.module,f=@Loader.getModuleNamespaceObject(M),r=f\?.[@commonJSSymbol]===0||f\?.default\?.[@commonJSSymbol]===0\?f.default:f.__esModule\?f:Object.create(f,{__esModule:{value:!0}});return @requireMap.@set(_,@createCommonJSModule(_,r,!0)),r}const L=@createCommonJSModule(_,{},!1);@requireMap.@set(_,L);var h=this.@require(_,L);if(h===-1){try{h=@requireESM(_)}catch(M){throw @requireMap.@delete(_),M}if(S=@Loader.registry.@get(_),S\?.evaluated&&(S.state\?\?0)>=@ModuleReady){const M=@Loader.getModuleNamespaceObject(S.module);return L.exports=M\?.[@commonJSSymbol]===0||M\?.default\?.[@commonJSSymbol]===0\?M.default:M.__esModule\?M:Object.create(M,{__esModule:{value:!0}})}}return @evaluateCommonJSModule(L),L.exports})\n"; +const char* const s_moduleRequireCode = "(function (_){\"use strict\";const M=@requireMap.@get(_)||@requireMap.@get(_=@resolveSync(_,this.path,!1));if(M)return @evaluateCommonJSModule(M),M.exports;if(_.endsWith(\".json\")||_.endsWith(\".toml\")||_.endsWith(\".node\"))return @internalRequire(_);let S=@Loader.registry.@get(_);if(S\?.evaluated&&(S.state\?\?0)>=@ModuleReady){const b=S.module,h=@Loader.getModuleNamespaceObject(b),r=h\?.[@commonJSSymbol]===0||h\?.default\?.[@commonJSSymbol]===0\?h.default:h.__esModule\?h:Object.create(h,{__esModule:{value:!0}});return @requireMap.@set(_,@createCommonJSModule(_,r,!0)),r}const f=@createCommonJSModule(_,{},!1);@requireMap.@set(_,f);var L=this.@require(_,f);if(L===-1){try{L=@requireESM(_)}catch(b){throw @requireMap.@delete(_),b}if(S=@Loader.registry.@get(_),S\?.evaluated&&(S.state\?\?0)>=@ModuleReady){const b=@Loader.getModuleNamespaceObject(S.module);return f.exports=b\?.[@commonJSSymbol]===0||b\?.default\?.[@commonJSSymbol]===0\?b.default:b.__esModule\?b:Object.create(b,{__esModule:{value:!0}})}}return @evaluateCommonJSModule(f),f.exports})\n"; // requireResolve const JSC::ConstructAbility s_moduleRequireResolveCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -830,7 +830,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeReadIntLECodeConstructorKind = JSC const JSC::ImplementationVisibility s_jsBufferPrototypeReadIntLECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeReadIntLECodeLength = 528; static const JSC::Intrinsic s_jsBufferPrototypeReadIntLECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeReadIntLECode = "(function (d,u){\"use strict\";const r=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(u){case 1:return r.getInt8(d);case 2:return r.getInt16(d,!0);case 3:{const _=r.getUint16(d,!0)+r.getUint8(d+2)*65536;return _|(_&8388608)*510}case 4:return r.getInt32(d,!0);case 5:{const _=r.getUint8(d+4);return(_|(_&128)*33554430)*4294967296+r.getUint32(d,!0)}case 6:{const _=r.getUint16(d+4,!0);return(_|(_&32768)*131070)*4294967296+r.getUint32(d,!0)}}@throwRangeError(\"byteLength must be >= 1 and <= 6\")})\n"; +const char* const s_jsBufferPrototypeReadIntLECode = "(function (d,r){\"use strict\";const _=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(r){case 1:return _.getInt8(d);case 2:return _.getInt16(d,!0);case 3:{const u=_.getUint16(d,!0)+_.getUint8(d+2)*65536;return u|(u&8388608)*510}case 4:return _.getInt32(d,!0);case 5:{const u=_.getUint8(d+4);return(u|(u&128)*33554430)*4294967296+_.getUint32(d,!0)}case 6:{const u=_.getUint16(d+4,!0);return(u|(u&32768)*131070)*4294967296+_.getUint32(d,!0)}}@throwRangeError(\"byteLength must be >= 1 and <= 6\")})\n"; // readIntBE const JSC::ConstructAbility s_jsBufferPrototypeReadIntBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -838,7 +838,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeReadIntBECodeConstructorKind = JSC const JSC::ImplementationVisibility s_jsBufferPrototypeReadIntBECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeReadIntBECodeLength = 528; static const JSC::Intrinsic s_jsBufferPrototypeReadIntBECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeReadIntBECode = "(function (r,c){\"use strict\";const d=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(c){case 1:return d.getInt8(r);case 2:return d.getInt16(r,!1);case 3:{const u=d.getUint16(r+1,!1)+d.getUint8(r)*65536;return u|(u&8388608)*510}case 4:return d.getInt32(r,!1);case 5:{const u=d.getUint8(r);return(u|(u&128)*33554430)*4294967296+d.getUint32(r+1,!1)}case 6:{const u=d.getUint16(r,!1);return(u|(u&32768)*131070)*4294967296+d.getUint32(r+2,!1)}}@throwRangeError(\"byteLength must be >= 1 and <= 6\")})\n"; +const char* const s_jsBufferPrototypeReadIntBECode = "(function (r,d){\"use strict\";const u=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(d){case 1:return u.getInt8(r);case 2:return u.getInt16(r,!1);case 3:{const c=u.getUint16(r+1,!1)+u.getUint8(r)*65536;return c|(c&8388608)*510}case 4:return u.getInt32(r,!1);case 5:{const c=u.getUint8(r);return(c|(c&128)*33554430)*4294967296+u.getUint32(r+1,!1)}case 6:{const c=u.getUint16(r,!1);return(c|(c&32768)*131070)*4294967296+u.getUint32(r+2,!1)}}@throwRangeError(\"byteLength must be >= 1 and <= 6\")})\n"; // readUIntLE const JSC::ConstructAbility s_jsBufferPrototypeReadUIntLECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -846,7 +846,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeReadUIntLECodeConstructorKind = JS const JSC::ImplementationVisibility s_jsBufferPrototypeReadUIntLECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeReadUIntLECodeLength = 445; static const JSC::Intrinsic s_jsBufferPrototypeReadUIntLECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeReadUIntLECode = "(function (a,r){\"use strict\";const d=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(r){case 1:return d.getUint8(a);case 2:return d.getUint16(a,!0);case 3:return d.getUint16(a,!0)+d.getUint8(a+2)*65536;case 4:return d.getUint32(a,!0);case 5:return d.getUint8(a+4)*4294967296+d.getUint32(a,!0);case 6:return d.getUint16(a+4,!0)*4294967296+d.getUint32(a,!0)}@throwRangeError(\"byteLength must be >= 1 and <= 6\")})\n"; +const char* const s_jsBufferPrototypeReadUIntLECode = "(function (a,d){\"use strict\";const r=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(d){case 1:return r.getUint8(a);case 2:return r.getUint16(a,!0);case 3:return r.getUint16(a,!0)+r.getUint8(a+2)*65536;case 4:return r.getUint32(a,!0);case 5:return r.getUint8(a+4)*4294967296+r.getUint32(a,!0);case 6:return r.getUint16(a+4,!0)*4294967296+r.getUint32(a,!0)}@throwRangeError(\"byteLength must be >= 1 and <= 6\")})\n"; // readUIntBE const JSC::ConstructAbility s_jsBufferPrototypeReadUIntBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -854,7 +854,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeReadUIntBECodeConstructorKind = JS const JSC::ImplementationVisibility s_jsBufferPrototypeReadUIntBECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeReadUIntBECodeLength = 504; static const JSC::Intrinsic s_jsBufferPrototypeReadUIntBECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeReadUIntBECode = "(function (d,p){\"use strict\";const r=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(p){case 1:return r.getUint8(d);case 2:return r.getUint16(d,!1);case 3:return r.getUint16(d+1,!1)+r.getUint8(d)*65536;case 4:return r.getUint32(d,!1);case 5:{const c=r.getUint8(d);return(c|(c&128)*33554430)*4294967296+r.getUint32(d+1,!1)}case 6:{const c=r.getUint16(d,!1);return(c|(c&32768)*131070)*4294967296+r.getUint32(d+2,!1)}}@throwRangeError(\"byteLength must be >= 1 and <= 6\")})\n"; +const char* const s_jsBufferPrototypeReadUIntBECode = "(function (d,r){\"use strict\";const c=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(r){case 1:return c.getUint8(d);case 2:return c.getUint16(d,!1);case 3:return c.getUint16(d+1,!1)+c.getUint8(d)*65536;case 4:return c.getUint32(d,!1);case 5:{const p=c.getUint8(d);return(p|(p&128)*33554430)*4294967296+c.getUint32(d+1,!1)}case 6:{const p=c.getUint16(d,!1);return(p|(p&32768)*131070)*4294967296+c.getUint32(d+2,!1)}}@throwRangeError(\"byteLength must be >= 1 and <= 6\")})\n"; // readFloatLE const JSC::ConstructAbility s_jsBufferPrototypeReadFloatLECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -926,7 +926,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteInt8CodeConstructorKind = JSC const JSC::ImplementationVisibility s_jsBufferPrototypeWriteInt8CodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteInt8CodeLength = 131; static const JSC::Intrinsic s_jsBufferPrototypeWriteInt8CodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteInt8Code = "(function (r,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt8(d,r),d+1})\n"; +const char* const s_jsBufferPrototypeWriteInt8Code = "(function (d,r){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt8(r,d),r+1})\n"; // writeUInt8 const JSC::ConstructAbility s_jsBufferPrototypeWriteUInt8CodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -934,7 +934,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteUInt8CodeConstructorKind = JS const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUInt8CodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteUInt8CodeLength = 132; static const JSC::Intrinsic s_jsBufferPrototypeWriteUInt8CodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteUInt8Code = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint8(c,d),c+1})\n"; +const char* const s_jsBufferPrototypeWriteUInt8Code = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint8(d,c),d+1})\n"; // writeInt16LE const JSC::ConstructAbility s_jsBufferPrototypeWriteInt16LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -942,7 +942,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteInt16LECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteInt16LECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteInt16LECodeLength = 135; static const JSC::Intrinsic s_jsBufferPrototypeWriteInt16LECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteInt16LECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt16(c,d,!0),c+2})\n"; +const char* const s_jsBufferPrototypeWriteInt16LECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt16(d,c,!0),d+2})\n"; // writeInt16BE const JSC::ConstructAbility s_jsBufferPrototypeWriteInt16BECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -950,7 +950,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteInt16BECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteInt16BECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteInt16BECodeLength = 135; static const JSC::Intrinsic s_jsBufferPrototypeWriteInt16BECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteInt16BECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt16(c,d,!1),c+2})\n"; +const char* const s_jsBufferPrototypeWriteInt16BECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt16(d,c,!1),d+2})\n"; // writeUInt16LE const JSC::ConstructAbility s_jsBufferPrototypeWriteUInt16LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -958,7 +958,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteUInt16LECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUInt16LECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteUInt16LECodeLength = 136; static const JSC::Intrinsic s_jsBufferPrototypeWriteUInt16LECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteUInt16LECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint16(c,d,!0),c+2})\n"; +const char* const s_jsBufferPrototypeWriteUInt16LECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint16(d,c,!0),d+2})\n"; // writeUInt16BE const JSC::ConstructAbility s_jsBufferPrototypeWriteUInt16BECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -966,7 +966,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteUInt16BECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUInt16BECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteUInt16BECodeLength = 136; static const JSC::Intrinsic s_jsBufferPrototypeWriteUInt16BECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteUInt16BECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint16(c,d,!1),c+2})\n"; +const char* const s_jsBufferPrototypeWriteUInt16BECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint16(d,c,!1),d+2})\n"; // writeInt32LE const JSC::ConstructAbility s_jsBufferPrototypeWriteInt32LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -974,7 +974,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteInt32LECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteInt32LECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteInt32LECodeLength = 135; static const JSC::Intrinsic s_jsBufferPrototypeWriteInt32LECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteInt32LECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt32(c,d,!0),c+4})\n"; +const char* const s_jsBufferPrototypeWriteInt32LECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt32(d,c,!0),d+4})\n"; // writeInt32BE const JSC::ConstructAbility s_jsBufferPrototypeWriteInt32BECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -982,7 +982,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteInt32BECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteInt32BECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteInt32BECodeLength = 135; static const JSC::Intrinsic s_jsBufferPrototypeWriteInt32BECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteInt32BECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt32(c,d,!1),c+4})\n"; +const char* const s_jsBufferPrototypeWriteInt32BECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt32(d,c,!1),d+4})\n"; // writeUInt32LE const JSC::ConstructAbility s_jsBufferPrototypeWriteUInt32LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -990,7 +990,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteUInt32LECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUInt32LECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteUInt32LECodeLength = 136; static const JSC::Intrinsic s_jsBufferPrototypeWriteUInt32LECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteUInt32LECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint32(c,d,!0),c+4})\n"; +const char* const s_jsBufferPrototypeWriteUInt32LECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint32(d,c,!0),d+4})\n"; // writeUInt32BE const JSC::ConstructAbility s_jsBufferPrototypeWriteUInt32BECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -998,7 +998,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteUInt32BECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUInt32BECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteUInt32BECodeLength = 136; static const JSC::Intrinsic s_jsBufferPrototypeWriteUInt32BECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteUInt32BECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint32(c,d,!1),c+4})\n"; +const char* const s_jsBufferPrototypeWriteUInt32BECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint32(d,c,!1),d+4})\n"; // writeIntLE const JSC::ConstructAbility s_jsBufferPrototypeWriteIntLECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1006,7 +1006,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteIntLECodeConstructorKind = JS const JSC::ImplementationVisibility s_jsBufferPrototypeWriteIntLECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteIntLECodeLength = 573; static const JSC::Intrinsic s_jsBufferPrototypeWriteIntLECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteIntLECode = "(function (r,d,j){\"use strict\";const c=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(j){case 1:{c.setInt8(d,r);break}case 2:{c.setInt16(d,r,!0);break}case 3:{c.setUint16(d,r&65535,!0),c.setInt8(d+2,Math.floor(r*0.0000152587890625));break}case 4:{c.setInt32(d,r,!0);break}case 5:{c.setUint32(d,r|0,!0),c.setInt8(d+4,Math.floor(r*0.00000000023283064365386964));break}case 6:{c.setUint32(d,r|0,!0),c.setInt16(d+4,Math.floor(r*0.00000000023283064365386964),!0);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return d+j})\n"; +const char* const s_jsBufferPrototypeWriteIntLECode = "(function (d,r,c){\"use strict\";const j=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(c){case 1:{j.setInt8(r,d);break}case 2:{j.setInt16(r,d,!0);break}case 3:{j.setUint16(r,d&65535,!0),j.setInt8(r+2,Math.floor(d*0.0000152587890625));break}case 4:{j.setInt32(r,d,!0);break}case 5:{j.setUint32(r,d|0,!0),j.setInt8(r+4,Math.floor(d*0.00000000023283064365386964));break}case 6:{j.setUint32(r,d|0,!0),j.setInt16(r+4,Math.floor(d*0.00000000023283064365386964),!0);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return r+c})\n"; // writeIntBE const JSC::ConstructAbility s_jsBufferPrototypeWriteIntBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1014,7 +1014,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteIntBECodeConstructorKind = JS const JSC::ImplementationVisibility s_jsBufferPrototypeWriteIntBECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteIntBECodeLength = 573; static const JSC::Intrinsic s_jsBufferPrototypeWriteIntBECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteIntBECode = "(function (r,d,c){\"use strict\";const E=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(c){case 1:{E.setInt8(d,r);break}case 2:{E.setInt16(d,r,!1);break}case 3:{E.setUint16(d+1,r&65535,!1),E.setInt8(d,Math.floor(r*0.0000152587890625));break}case 4:{E.setInt32(d,r,!1);break}case 5:{E.setUint32(d+1,r|0,!1),E.setInt8(d,Math.floor(r*0.00000000023283064365386964));break}case 6:{E.setUint32(d+2,r|0,!1),E.setInt16(d,Math.floor(r*0.00000000023283064365386964),!1);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return d+c})\n"; +const char* const s_jsBufferPrototypeWriteIntBECode = "(function (d,r,E){\"use strict\";const c=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(E){case 1:{c.setInt8(r,d);break}case 2:{c.setInt16(r,d,!1);break}case 3:{c.setUint16(r+1,d&65535,!1),c.setInt8(r,Math.floor(d*0.0000152587890625));break}case 4:{c.setInt32(r,d,!1);break}case 5:{c.setUint32(r+1,d|0,!1),c.setInt8(r,Math.floor(d*0.00000000023283064365386964));break}case 6:{c.setUint32(r+2,d|0,!1),c.setInt16(r,Math.floor(d*0.00000000023283064365386964),!1);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return r+E})\n"; // writeUIntLE const JSC::ConstructAbility s_jsBufferPrototypeWriteUIntLECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1022,7 +1022,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteUIntLECodeConstructorKind = J const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUIntLECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteUIntLECodeLength = 579; static const JSC::Intrinsic s_jsBufferPrototypeWriteUIntLECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteUIntLECode = "(function (r,d,c){\"use strict\";const E=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(c){case 1:{E.setUint8(d,r);break}case 2:{E.setUint16(d,r,!0);break}case 3:{E.setUint16(d,r&65535,!0),E.setUint8(d+2,Math.floor(r*0.0000152587890625));break}case 4:{E.setUint32(d,r,!0);break}case 5:{E.setUint32(d,r|0,!0),E.setUint8(d+4,Math.floor(r*0.00000000023283064365386964));break}case 6:{E.setUint32(d,r|0,!0),E.setUint16(d+4,Math.floor(r*0.00000000023283064365386964),!0);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return d+c})\n"; +const char* const s_jsBufferPrototypeWriteUIntLECode = "(function (d,r,E){\"use strict\";const c=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(E){case 1:{c.setUint8(r,d);break}case 2:{c.setUint16(r,d,!0);break}case 3:{c.setUint16(r,d&65535,!0),c.setUint8(r+2,Math.floor(d*0.0000152587890625));break}case 4:{c.setUint32(r,d,!0);break}case 5:{c.setUint32(r,d|0,!0),c.setUint8(r+4,Math.floor(d*0.00000000023283064365386964));break}case 6:{c.setUint32(r,d|0,!0),c.setUint16(r+4,Math.floor(d*0.00000000023283064365386964),!0);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return r+E})\n"; // writeUIntBE const JSC::ConstructAbility s_jsBufferPrototypeWriteUIntBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1030,7 +1030,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteUIntBECodeConstructorKind = J const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUIntBECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteUIntBECodeLength = 579; static const JSC::Intrinsic s_jsBufferPrototypeWriteUIntBECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteUIntBECode = "(function (r,d,_){\"use strict\";const p=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(_){case 1:{p.setUint8(d,r);break}case 2:{p.setUint16(d,r,!1);break}case 3:{p.setUint16(d+1,r&65535,!1),p.setUint8(d,Math.floor(r*0.0000152587890625));break}case 4:{p.setUint32(d,r,!1);break}case 5:{p.setUint32(d+1,r|0,!1),p.setUint8(d,Math.floor(r*0.00000000023283064365386964));break}case 6:{p.setUint32(d+2,r|0,!1),p.setUint16(d,Math.floor(r*0.00000000023283064365386964),!1);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return d+_})\n"; +const char* const s_jsBufferPrototypeWriteUIntBECode = "(function (d,r,p){\"use strict\";const _=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(p){case 1:{_.setUint8(r,d);break}case 2:{_.setUint16(r,d,!1);break}case 3:{_.setUint16(r+1,d&65535,!1),_.setUint8(r,Math.floor(d*0.0000152587890625));break}case 4:{_.setUint32(r,d,!1);break}case 5:{_.setUint32(r+1,d|0,!1),_.setUint8(r,Math.floor(d*0.00000000023283064365386964));break}case 6:{_.setUint32(r+2,d|0,!1),_.setUint16(r,Math.floor(d*0.00000000023283064365386964),!1);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return r+p})\n"; // writeFloatLE const JSC::ConstructAbility s_jsBufferPrototypeWriteFloatLECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1038,7 +1038,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteFloatLECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteFloatLECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteFloatLECodeLength = 137; static const JSC::Intrinsic s_jsBufferPrototypeWriteFloatLECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteFloatLECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setFloat32(c,d,!0),c+4})\n"; +const char* const s_jsBufferPrototypeWriteFloatLECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setFloat32(d,c,!0),d+4})\n"; // writeFloatBE const JSC::ConstructAbility s_jsBufferPrototypeWriteFloatBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1046,7 +1046,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteFloatBECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteFloatBECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteFloatBECodeLength = 137; static const JSC::Intrinsic s_jsBufferPrototypeWriteFloatBECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteFloatBECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setFloat32(c,d,!1),c+4})\n"; +const char* const s_jsBufferPrototypeWriteFloatBECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setFloat32(d,c,!1),d+4})\n"; // writeDoubleLE const JSC::ConstructAbility s_jsBufferPrototypeWriteDoubleLECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1054,7 +1054,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteDoubleLECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteDoubleLECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteDoubleLECodeLength = 137; static const JSC::Intrinsic s_jsBufferPrototypeWriteDoubleLECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteDoubleLECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setFloat64(c,d,!0),c+8})\n"; +const char* const s_jsBufferPrototypeWriteDoubleLECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setFloat64(d,c,!0),d+8})\n"; // writeDoubleBE const JSC::ConstructAbility s_jsBufferPrototypeWriteDoubleBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1062,7 +1062,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteDoubleBECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteDoubleBECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteDoubleBECodeLength = 137; static const JSC::Intrinsic s_jsBufferPrototypeWriteDoubleBECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteDoubleBECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setFloat64(c,d,!1),c+8})\n"; +const char* const s_jsBufferPrototypeWriteDoubleBECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setFloat64(d,c,!1),d+8})\n"; // writeBigInt64LE const JSC::ConstructAbility s_jsBufferPrototypeWriteBigInt64LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1070,7 +1070,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteBigInt64LECodeConstructorKind const JSC::ImplementationVisibility s_jsBufferPrototypeWriteBigInt64LECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteBigInt64LECodeLength = 138; static const JSC::Intrinsic s_jsBufferPrototypeWriteBigInt64LECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteBigInt64LECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setBigInt64(c,d,!0),c+8})\n"; +const char* const s_jsBufferPrototypeWriteBigInt64LECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setBigInt64(d,c,!0),d+8})\n"; // writeBigInt64BE const JSC::ConstructAbility s_jsBufferPrototypeWriteBigInt64BECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1078,7 +1078,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteBigInt64BECodeConstructorKind const JSC::ImplementationVisibility s_jsBufferPrototypeWriteBigInt64BECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteBigInt64BECodeLength = 138; static const JSC::Intrinsic s_jsBufferPrototypeWriteBigInt64BECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteBigInt64BECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setBigInt64(c,d,!1),c+8})\n"; +const char* const s_jsBufferPrototypeWriteBigInt64BECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setBigInt64(d,c,!1),d+8})\n"; // writeBigUInt64LE const JSC::ConstructAbility s_jsBufferPrototypeWriteBigUInt64LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1086,7 +1086,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteBigUInt64LECodeConstructorKin const JSC::ImplementationVisibility s_jsBufferPrototypeWriteBigUInt64LECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteBigUInt64LECodeLength = 139; static const JSC::Intrinsic s_jsBufferPrototypeWriteBigUInt64LECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteBigUInt64LECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setBigUint64(c,d,!0),c+8})\n"; +const char* const s_jsBufferPrototypeWriteBigUInt64LECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setBigUint64(d,c,!0),d+8})\n"; // writeBigUInt64BE const JSC::ConstructAbility s_jsBufferPrototypeWriteBigUInt64BECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1094,7 +1094,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteBigUInt64BECodeConstructorKin const JSC::ImplementationVisibility s_jsBufferPrototypeWriteBigUInt64BECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteBigUInt64BECodeLength = 139; static const JSC::Intrinsic s_jsBufferPrototypeWriteBigUInt64BECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteBigUInt64BECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setBigUint64(c,d,!1),c+8})\n"; +const char* const s_jsBufferPrototypeWriteBigUInt64BECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setBigUint64(d,c,!1),d+8})\n"; // utf8Write const JSC::ConstructAbility s_jsBufferPrototypeUtf8WriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1118,7 +1118,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeUtf16leWriteCodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeUtf16leWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeUtf16leWriteCodeLength = 68; static const JSC::Intrinsic s_jsBufferPrototypeUtf16leWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeUtf16leWriteCode = "(function (d,r,a){\"use strict\";return this.write(d,r,a,\"utf16le\")})\n"; +const char* const s_jsBufferPrototypeUtf16leWriteCode = "(function (r,d,a){\"use strict\";return this.write(r,d,a,\"utf16le\")})\n"; // latin1Write const JSC::ConstructAbility s_jsBufferPrototypeLatin1WriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1238,7 +1238,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeSliceCodeConstructorKind = JSC::Co const JSC::ImplementationVisibility s_jsBufferPrototypeSliceCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeSliceCodeLength = 260; static const JSC::Intrinsic s_jsBufferPrototypeSliceCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeSliceCode = "(function (w,m){\"use strict\";var{buffer:x,byteOffset:z,byteLength:p}=this;function q(c,k){if(c=@trunc(c),c===0||@isNaN(c))return 0;else if(c<0)return c+=k,c>0\?c:0;else return ci\?v-i:0)})\n"; +const char* const s_jsBufferPrototypeSliceCode = "(function (i,q){\"use strict\";var{buffer:c,byteOffset:v,byteLength:p}=this;function w(z,m){if(z=@trunc(z),z===0||@isNaN(z))return 0;else if(z<0)return z+=m,z>0\?z:0;else return zk\?x-k:0)})\n"; // parent const JSC::ConstructAbility s_jsBufferPrototypeParentCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1312,7 +1312,7 @@ const JSC::ConstructorKind s_readableByteStreamControllerByobRequestCodeConstruc const JSC::ImplementationVisibility s_readableByteStreamControllerByobRequestCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamControllerByobRequestCodeLength = 523; static const JSC::Intrinsic s_readableByteStreamControllerByobRequestCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamControllerByobRequestCode = "(function (){\"use strict\";if(!@isReadableByteStreamController(this))throw @makeGetterTypeError(\"ReadableByteStreamController\",\"byobRequest\");var a=@getByIdDirectPrivate(this,\"byobRequest\");if(a===@undefined){var l=@getByIdDirectPrivate(this,\"pendingPullIntos\");const _=l.peek();if(_){const m=new @Uint8Array(_.buffer,_.byteOffset+_.bytesFilled,_.byteLength-_.bytesFilled);@putByIdDirectPrivate(this,\"byobRequest\",new @ReadableStreamBYOBRequest(this,m,@isReadableStream))}}return @getByIdDirectPrivate(this,\"byobRequest\")})\n"; +const char* const s_readableByteStreamControllerByobRequestCode = "(function (){\"use strict\";if(!@isReadableByteStreamController(this))throw @makeGetterTypeError(\"ReadableByteStreamController\",\"byobRequest\");var _=@getByIdDirectPrivate(this,\"byobRequest\");if(_===@undefined){var a=@getByIdDirectPrivate(this,\"pendingPullIntos\");const l=a.peek();if(l){const m=new @Uint8Array(l.buffer,l.byteOffset+l.bytesFilled,l.byteLength-l.bytesFilled);@putByIdDirectPrivate(this,\"byobRequest\",new @ReadableStreamBYOBRequest(this,m,@isReadableStream))}}return @getByIdDirectPrivate(this,\"byobRequest\")})\n"; // desiredSize const JSC::ConstructAbility s_readableByteStreamControllerDesiredSizeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1338,7 +1338,7 @@ const JSC::ConstructorKind s_consoleObjectAsyncIteratorCodeConstructorKind = JSC const JSC::ImplementationVisibility s_consoleObjectAsyncIteratorCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_consoleObjectAsyncIteratorCodeLength = 577; static const JSC::Intrinsic s_consoleObjectAsyncIteratorCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_consoleObjectAsyncIteratorCode = "(function (){\"use strict\";const D=async function*L(){var F=@Bun.stdin.stream().getReader(),G=new globalThis.TextDecoder(\"utf-8\",{fatal:!1}),z,H=@Bun.indexOfLine;try{while(!0){var A,B,w;const m=F.readMany();if(@isPromise(m))({done:A,value:B}=await m);else({done:A,value:B}=m);if(A){if(w)yield G.decode(w);return}var _;for(let J of B){if(_=J,w)_=@Buffer.concat([w,J]),w=null;var j=0,q=H(_,j);while(q!==-1)yield G.decode(_.subarray(j,q)),j=q+1,q=H(_,j);w=_.subarray(j)}}}catch(m){z=m}finally{if(F.releaseLock(),z)throw z}},K=globalThis.Symbol.asyncIterator;return this[K]=D,D()})\n"; +const char* const s_consoleObjectAsyncIteratorCode = "(function (){\"use strict\";const w=async function*_(){var G=@Bun.stdin.stream().getReader(),B=new globalThis.TextDecoder(\"utf-8\",{fatal:!1}),H,J=@Bun.indexOfLine;try{while(!0){var j,D,K;const q=G.readMany();if(@isPromise(q))({done:j,value:D}=await q);else({done:j,value:D}=q);if(j){if(K)yield B.decode(K);return}var m;for(let M of D){if(m=M,K)m=@Buffer.concat([K,M]),K=null;var L=0,F=J(m,L);while(F!==-1)yield B.decode(m.subarray(L,F)),L=F+1,F=J(m,L);K=m.subarray(L)}}}catch(q){H=q}finally{if(G.releaseLock(),H)throw H}},z=globalThis.Symbol.asyncIterator;return this[z]=w,w()})\n"; // write const JSC::ConstructAbility s_consoleObjectWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1346,7 +1346,7 @@ const JSC::ConstructorKind s_consoleObjectWriteCodeConstructorKind = JSC::Constr const JSC::ImplementationVisibility s_consoleObjectWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_consoleObjectWriteCodeLength = 310; static const JSC::Intrinsic s_consoleObjectWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_consoleObjectWriteCode = "(function (_){\"use strict\";var a=@getByIdDirectPrivate(this,\"writer\");if(!a){var b=@toLength(_\?.length\?\?0);a=@Bun.stdout.writer({highWaterMark:b>65536\?b:65536}),@putByIdDirectPrivate(this,\"writer\",a)}var c=a.write(_);const f=@argumentCount();for(var d=1;d65536\?b:65536}),@putByIdDirectPrivate(this,\"writer\",_)}var c=_.write(d);const f=@argumentCount();for(var a=1;a{},(_)=>{c.error(_)});function y(){@readableStreamDefaultReaderRead(h).@then(function(_){if(_.done){c.close();return}try{c.enqueue(_.value)}catch(S){c.error(\"ReadableStream chunk enqueueing in the sink failed\");return}y()},function(_){c.error(_)})}y()})\n"; +const char* const s_readableStreamInternalsReadableStreamPipeToCode = "(function (_,h){\"use strict\";@assert(@isReadableStream(_));const y=new @ReadableStreamDefaultReader(_);@getByIdDirectPrivate(y,\"closedPromiseCapability\").@promise.@then(()=>{},(c)=>{h.error(c)});function S(){@readableStreamDefaultReaderRead(y).@then(function(c){if(c.done){h.close();return}try{h.enqueue(c.value)}catch(g){h.error(\"ReadableStream chunk enqueueing in the sink failed\");return}S()},function(c){h.error(c)})}S()})\n"; // acquireReadableStreamDefaultReader const JSC::ConstructAbility s_readableStreamInternalsAcquireReadableStreamDefaultReaderCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1404,7 +1404,7 @@ const JSC::ConstructorKind s_readableStreamInternalsSetupReadableStreamDefaultCo const JSC::ImplementationVisibility s_readableStreamInternalsSetupReadableStreamDefaultControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsSetupReadableStreamDefaultControllerCodeLength = 523; static const JSC::Intrinsic s_readableStreamInternalsSetupReadableStreamDefaultControllerCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsSetupReadableStreamDefaultControllerCode = "(function (b,f,j,q,D,v,w){\"use strict\";const _=new @ReadableStreamDefaultController(b,f,j,q,@isReadableStream),x=()=>@promiseInvokeOrNoopMethod(f,v,[_]),B=(C)=>@promiseInvokeOrNoopMethod(f,w,[C]);@putByIdDirectPrivate(_,\"pullAlgorithm\",x),@putByIdDirectPrivate(_,\"cancelAlgorithm\",B),@putByIdDirectPrivate(_,\"pull\",@readableStreamDefaultControllerPull),@putByIdDirectPrivate(_,\"cancel\",@readableStreamDefaultControllerCancel),@putByIdDirectPrivate(b,\"readableStreamController\",_),@readableStreamDefaultControllerStart(_)})\n"; +const char* const s_readableStreamInternalsSetupReadableStreamDefaultControllerCode = "(function (b,v,_,w,f,x,j){\"use strict\";const B=new @ReadableStreamDefaultController(b,v,_,w,@isReadableStream),C=()=>@promiseInvokeOrNoopMethod(v,x,[B]),q=(D)=>@promiseInvokeOrNoopMethod(v,j,[D]);@putByIdDirectPrivate(B,\"pullAlgorithm\",C),@putByIdDirectPrivate(B,\"cancelAlgorithm\",q),@putByIdDirectPrivate(B,\"pull\",@readableStreamDefaultControllerPull),@putByIdDirectPrivate(B,\"cancel\",@readableStreamDefaultControllerCancel),@putByIdDirectPrivate(b,\"readableStreamController\",B),@readableStreamDefaultControllerStart(B)})\n"; // createReadableStreamController const JSC::ConstructAbility s_readableStreamInternalsCreateReadableStreamControllerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1412,7 +1412,7 @@ const JSC::ConstructorKind s_readableStreamInternalsCreateReadableStreamControll const JSC::ImplementationVisibility s_readableStreamInternalsCreateReadableStreamControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsCreateReadableStreamControllerCodeLength = 671; static const JSC::Intrinsic s_readableStreamInternalsCreateReadableStreamControllerCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsCreateReadableStreamControllerCode = "(function (w,v,f){\"use strict\";const A=v.type,C=@toString(A);if(C===\"bytes\"){if(f.highWaterMark===@undefined)f.highWaterMark=0;if(f.size!==@undefined)@throwRangeError(\"Strategy for a ReadableByteStreamController cannot have a size\");@putByIdDirectPrivate(w,\"readableStreamController\",new @ReadableByteStreamController(w,v,f.highWaterMark,@isReadableStream))}else if(C===\"direct\"){var b=f\?.highWaterMark;@initializeArrayBufferStream.@call(w,v,b)}else if(A===@undefined){if(f.highWaterMark===@undefined)f.highWaterMark=1;@setupReadableStreamDefaultController(w,v,f.size,f.highWaterMark,v.start,v.pull,v.cancel)}else @throwRangeError(\"Invalid type for underlying source\")})\n"; +const char* const s_readableStreamInternalsCreateReadableStreamControllerCode = "(function (f,v,w){\"use strict\";const A=v.type,C=@toString(A);if(C===\"bytes\"){if(w.highWaterMark===@undefined)w.highWaterMark=0;if(w.size!==@undefined)@throwRangeError(\"Strategy for a ReadableByteStreamController cannot have a size\");@putByIdDirectPrivate(f,\"readableStreamController\",new @ReadableByteStreamController(f,v,w.highWaterMark,@isReadableStream))}else if(C===\"direct\"){var b=w\?.highWaterMark;@initializeArrayBufferStream.@call(f,v,b)}else if(A===@undefined){if(w.highWaterMark===@undefined)w.highWaterMark=1;@setupReadableStreamDefaultController(f,v,w.size,w.highWaterMark,v.start,v.pull,v.cancel)}else @throwRangeError(\"Invalid type for underlying source\")})\n"; // readableStreamDefaultControllerStart const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerStartCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1428,7 +1428,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamPipeToWritable const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeLength = 1631; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamPipeToWritableStreamCode = "(function (f,E,z,B,F,D){\"use strict\";if(@assert(@isReadableStream(f)),@assert(@isWritableStream(E)),@assert(!@isReadableStreamLocked(f)),@assert(!@isWritableStreamLocked(E)),@assert(D===@undefined||@isAbortSignal(D)),@getByIdDirectPrivate(f,\"underlyingByteSource\")!==@undefined)return @Promise.@reject(\"Piping to a readable bytestream is not supported\");let _={source:f,destination:E,preventAbort:B,preventCancel:F,preventClose:z,signal:D};if(_.reader=@acquireReadableStreamDefaultReader(f),_.writer=@acquireWritableStreamDefaultWriter(E),@putByIdDirectPrivate(f,\"disturbed\",!0),_.finalized=!1,_.shuttingDown=!1,_.promiseCapability=@newPromiseCapability(@Promise),_.pendingReadPromiseCapability=@newPromiseCapability(@Promise),_.pendingReadPromiseCapability.@resolve.@call(),_.pendingWritePromise=@Promise.@resolve(),D!==@undefined){const G=(T)=>{if(_.finalized)return;@pipeToShutdownWithAction(_,()=>{const H=!_.preventAbort&&@getByIdDirectPrivate(_.destination,\"state\")===\"writable\"\?@writableStreamAbort(_.destination,T):@Promise.@resolve(),I=!_.preventCancel&&@getByIdDirectPrivate(_.source,\"state\")===@streamReadable\?@readableStreamCancel(_.source,T):@Promise.@resolve();let k=@newPromiseCapability(@Promise),q=!0,w=()=>{if(q){q=!1;return}k.@resolve.@call()},x=(J)=>{k.@reject.@call(@undefined,J)};return H.@then(w,x),I.@then(w,x),k.@promise},T)};if(@whenSignalAborted(D,G))return _.promiseCapability.@promise}return @pipeToErrorsMustBePropagatedForward(_),@pipeToErrorsMustBePropagatedBackward(_),@pipeToClosingMustBePropagatedForward(_),@pipeToClosingMustBePropagatedBackward(_),@pipeToLoop(_),_.promiseCapability.@promise})\n"; +const char* const s_readableStreamInternalsReadableStreamPipeToWritableStreamCode = "(function (_,f,D,E,T,k){\"use strict\";if(@assert(@isReadableStream(_)),@assert(@isWritableStream(f)),@assert(!@isReadableStreamLocked(_)),@assert(!@isWritableStreamLocked(f)),@assert(k===@undefined||@isAbortSignal(k)),@getByIdDirectPrivate(_,\"underlyingByteSource\")!==@undefined)return @Promise.@reject(\"Piping to a readable bytestream is not supported\");let q={source:_,destination:f,preventAbort:E,preventCancel:T,preventClose:D,signal:k};if(q.reader=@acquireReadableStreamDefaultReader(_),q.writer=@acquireWritableStreamDefaultWriter(f),@putByIdDirectPrivate(_,\"disturbed\",!0),q.finalized=!1,q.shuttingDown=!1,q.promiseCapability=@newPromiseCapability(@Promise),q.pendingReadPromiseCapability=@newPromiseCapability(@Promise),q.pendingReadPromiseCapability.@resolve.@call(),q.pendingWritePromise=@Promise.@resolve(),k!==@undefined){const w=(x)=>{if(q.finalized)return;@pipeToShutdownWithAction(q,()=>{const B=!q.preventAbort&&@getByIdDirectPrivate(q.destination,\"state\")===\"writable\"\?@writableStreamAbort(q.destination,x):@Promise.@resolve(),G=!q.preventCancel&&@getByIdDirectPrivate(q.source,\"state\")===@streamReadable\?@readableStreamCancel(q.source,x):@Promise.@resolve();let H=@newPromiseCapability(@Promise),I=!0,J=()=>{if(I){I=!1;return}H.@resolve.@call()},K=(L)=>{H.@reject.@call(@undefined,L)};return B.@then(J,K),G.@then(J,K),H.@promise},x)};if(@whenSignalAborted(k,w))return q.promiseCapability.@promise}return @pipeToErrorsMustBePropagatedForward(q),@pipeToErrorsMustBePropagatedBackward(q),@pipeToClosingMustBePropagatedForward(q),@pipeToClosingMustBePropagatedBackward(q),@pipeToLoop(q),q.promiseCapability.@promise})\n"; // pipeToLoop const JSC::ConstructAbility s_readableStreamInternalsPipeToLoopCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1452,7 +1452,7 @@ const JSC::ConstructorKind s_readableStreamInternalsPipeToErrorsMustBePropagated const JSC::ImplementationVisibility s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCodeLength = 438; static const JSC::Intrinsic s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCode = "(function (_){\"use strict\";const d=()=>{_.pendingReadPromiseCapability.@resolve.@call(@undefined,!1);const b=@getByIdDirectPrivate(_.source,\"storedError\");if(!_.preventAbort){@pipeToShutdownWithAction(_,()=>@writableStreamAbort(_.destination,b),b);return}@pipeToShutdown(_,b)};if(@getByIdDirectPrivate(_.source,\"state\")===@streamErrored){d();return}@getByIdDirectPrivate(_.reader,\"closedPromiseCapability\").@promise.@then(@undefined,d)})\n"; +const char* const s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCode = "(function (_){\"use strict\";const b=()=>{_.pendingReadPromiseCapability.@resolve.@call(@undefined,!1);const d=@getByIdDirectPrivate(_.source,\"storedError\");if(!_.preventAbort){@pipeToShutdownWithAction(_,()=>@writableStreamAbort(_.destination,d),d);return}@pipeToShutdown(_,d)};if(@getByIdDirectPrivate(_.source,\"state\")===@streamErrored){b();return}@getByIdDirectPrivate(_.reader,\"closedPromiseCapability\").@promise.@then(@undefined,b)})\n"; // pipeToErrorsMustBePropagatedBackward const JSC::ConstructAbility s_readableStreamInternalsPipeToErrorsMustBePropagatedBackwardCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1460,7 +1460,7 @@ const JSC::ConstructorKind s_readableStreamInternalsPipeToErrorsMustBePropagated const JSC::ImplementationVisibility s_readableStreamInternalsPipeToErrorsMustBePropagatedBackwardCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsPipeToErrorsMustBePropagatedBackwardCodeLength = 369; static const JSC::Intrinsic s_readableStreamInternalsPipeToErrorsMustBePropagatedBackwardCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsPipeToErrorsMustBePropagatedBackwardCode = "(function (m){\"use strict\";const y=()=>{const h=@getByIdDirectPrivate(m.destination,\"storedError\");if(!m.preventCancel){@pipeToShutdownWithAction(m,()=>@readableStreamCancel(m.source,h),h);return}@pipeToShutdown(m,h)};if(@getByIdDirectPrivate(m.destination,\"state\")===\"errored\"){y();return}@getByIdDirectPrivate(m.writer,\"closedPromise\").@promise.@then(@undefined,y)})\n"; +const char* const s_readableStreamInternalsPipeToErrorsMustBePropagatedBackwardCode = "(function (m){\"use strict\";const h=()=>{const y=@getByIdDirectPrivate(m.destination,\"storedError\");if(!m.preventCancel){@pipeToShutdownWithAction(m,()=>@readableStreamCancel(m.source,y),y);return}@pipeToShutdown(m,y)};if(@getByIdDirectPrivate(m.destination,\"state\")===\"errored\"){h();return}@getByIdDirectPrivate(m.writer,\"closedPromise\").@promise.@then(@undefined,h)})\n"; // pipeToClosingMustBePropagatedForward const JSC::ConstructAbility s_readableStreamInternalsPipeToClosingMustBePropagatedForwardCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1484,7 +1484,7 @@ const JSC::ConstructorKind s_readableStreamInternalsPipeToShutdownWithActionCode const JSC::ImplementationVisibility s_readableStreamInternalsPipeToShutdownWithActionCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsPipeToShutdownWithActionCodeLength = 458; static const JSC::Intrinsic s_readableStreamInternalsPipeToShutdownWithActionCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsPipeToShutdownWithActionCode = "(function (_,d){\"use strict\";if(_.shuttingDown)return;_.shuttingDown=!0;const g=arguments.length>2,h=arguments[2],m=()=>{d().@then(()=>{if(g)@pipeToFinalize(_,h);else @pipeToFinalize(_)},(j)=>{@pipeToFinalize(_,j)})};if(@getByIdDirectPrivate(_.destination,\"state\")===\"writable\"&&!@writableStreamCloseQueuedOrInFlight(_.destination)){_.pendingReadPromiseCapability.@promise.@then(()=>{_.pendingWritePromise.@then(m,m)},(b)=>@pipeToFinalize(_,b));return}m()})\n"; +const char* const s_readableStreamInternalsPipeToShutdownWithActionCode = "(function (_,m){\"use strict\";if(_.shuttingDown)return;_.shuttingDown=!0;const b=arguments.length>2,d=arguments[2],g=()=>{m().@then(()=>{if(b)@pipeToFinalize(_,d);else @pipeToFinalize(_)},(j)=>{@pipeToFinalize(_,j)})};if(@getByIdDirectPrivate(_.destination,\"state\")===\"writable\"&&!@writableStreamCloseQueuedOrInFlight(_.destination)){_.pendingReadPromiseCapability.@promise.@then(()=>{_.pendingWritePromise.@then(g,g)},(h)=>@pipeToFinalize(_,h));return}g()})\n"; // pipeToShutdown const JSC::ConstructAbility s_readableStreamInternalsPipeToShutdownCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1492,7 +1492,7 @@ const JSC::ConstructorKind s_readableStreamInternalsPipeToShutdownCodeConstructo const JSC::ImplementationVisibility s_readableStreamInternalsPipeToShutdownCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsPipeToShutdownCodeLength = 411; static const JSC::Intrinsic s_readableStreamInternalsPipeToShutdownCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsPipeToShutdownCode = "(function (_){\"use strict\";if(_.shuttingDown)return;_.shuttingDown=!0;const m=arguments.length>1,u=arguments[1],d=()=>{if(m)@pipeToFinalize(_,u);else @pipeToFinalize(_)};if(@getByIdDirectPrivate(_.destination,\"state\")===\"writable\"&&!@writableStreamCloseQueuedOrInFlight(_.destination)){_.pendingReadPromiseCapability.@promise.@then(()=>{_.pendingWritePromise.@then(d,d)},(I)=>@pipeToFinalize(_,I));return}d()})\n"; +const char* const s_readableStreamInternalsPipeToShutdownCode = "(function (_){\"use strict\";if(_.shuttingDown)return;_.shuttingDown=!0;const d=arguments.length>1,m=arguments[1],u=()=>{if(d)@pipeToFinalize(_,m);else @pipeToFinalize(_)};if(@getByIdDirectPrivate(_.destination,\"state\")===\"writable\"&&!@writableStreamCloseQueuedOrInFlight(_.destination)){_.pendingReadPromiseCapability.@promise.@then(()=>{_.pendingWritePromise.@then(u,u)},(I)=>@pipeToFinalize(_,I));return}u()})\n"; // pipeToFinalize const JSC::ConstructAbility s_readableStreamInternalsPipeToFinalizeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1508,7 +1508,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamTeeCodeConstru const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamTeeCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamTeeCodeLength = 1104; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamTeeCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamTeeCode = "(function (_,q){\"use strict\";@assert(@isReadableStream(_)),@assert(typeof q===\"boolean\");var v=@getByIdDirectPrivate(_,\"start\");if(v)@putByIdDirectPrivate(_,\"start\",@undefined),v();const w=new @ReadableStreamDefaultReader(_),i={closedOrErrored:!1,canceled1:!1,canceled2:!1,reason1:@undefined,reason2:@undefined};i.cancelPromiseCapability=@newPromiseCapability(@Promise);const x=@readableStreamTeePullFunction(i,w,q),f={};@putByIdDirectPrivate(f,\"pull\",x),@putByIdDirectPrivate(f,\"cancel\",@readableStreamTeeBranch1CancelFunction(i,_));const g={};@putByIdDirectPrivate(g,\"pull\",x),@putByIdDirectPrivate(g,\"cancel\",@readableStreamTeeBranch2CancelFunction(i,_));const j=new @ReadableStream(f),k=new @ReadableStream(g);return @getByIdDirectPrivate(w,\"closedPromiseCapability\").@promise.@then(@undefined,function(y){if(i.closedOrErrored)return;if(@readableStreamDefaultControllerError(j.@readableStreamController,y),@readableStreamDefaultControllerError(k.@readableStreamController,y),i.closedOrErrored=!0,!i.canceled1||!i.canceled2)i.cancelPromiseCapability.@resolve.@call()}),i.branch1=j,i.branch2=k,[j,k]})\n"; +const char* const s_readableStreamInternalsReadableStreamTeeCode = "(function (_,f){\"use strict\";@assert(@isReadableStream(_)),@assert(typeof f===\"boolean\");var g=@getByIdDirectPrivate(_,\"start\");if(g)@putByIdDirectPrivate(_,\"start\",@undefined),g();const j=new @ReadableStreamDefaultReader(_),k={closedOrErrored:!1,canceled1:!1,canceled2:!1,reason1:@undefined,reason2:@undefined};k.cancelPromiseCapability=@newPromiseCapability(@Promise);const q=@readableStreamTeePullFunction(k,j,f),v={};@putByIdDirectPrivate(v,\"pull\",q),@putByIdDirectPrivate(v,\"cancel\",@readableStreamTeeBranch1CancelFunction(k,_));const w={};@putByIdDirectPrivate(w,\"pull\",q),@putByIdDirectPrivate(w,\"cancel\",@readableStreamTeeBranch2CancelFunction(k,_));const x=new @ReadableStream(v),y=new @ReadableStream(w);return @getByIdDirectPrivate(j,\"closedPromiseCapability\").@promise.@then(@undefined,function(i){if(k.closedOrErrored)return;if(@readableStreamDefaultControllerError(x.@readableStreamController,i),@readableStreamDefaultControllerError(y.@readableStreamController,i),k.closedOrErrored=!0,!k.canceled1||!k.canceled2)k.cancelPromiseCapability.@resolve.@call()}),k.branch1=x,k.branch2=y,[x,y]})\n"; // readableStreamTeePullFunction const JSC::ConstructAbility s_readableStreamInternalsReadableStreamTeePullFunctionCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1516,7 +1516,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamTeePullFunctio const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamTeePullFunctionCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamTeePullFunctionCodeLength = 764; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamTeePullFunctionCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamTeePullFunctionCode = "(function (i,f,m){\"use strict\";return function(){@Promise.prototype.@then.@call(@readableStreamDefaultReaderRead(f),function(_){if(@assert(@isObject(_)),@assert(typeof _.done===\"boolean\"),_.done&&!i.closedOrErrored){if(!i.canceled1)@readableStreamDefaultControllerClose(i.branch1.@readableStreamController);if(!i.canceled2)@readableStreamDefaultControllerClose(i.branch2.@readableStreamController);if(i.closedOrErrored=!0,!i.canceled1||!i.canceled2)i.cancelPromiseCapability.@resolve.@call()}if(i.closedOrErrored)return;if(!i.canceled1)@readableStreamDefaultControllerEnqueue(i.branch1.@readableStreamController,_.value);if(!i.canceled2)@readableStreamDefaultControllerEnqueue(i.branch2.@readableStreamController,m\?@structuredCloneForStream(_.value):_.value)})}})\n"; +const char* const s_readableStreamInternalsReadableStreamTeePullFunctionCode = "(function (i,_,f){\"use strict\";return function(){@Promise.prototype.@then.@call(@readableStreamDefaultReaderRead(_),function(m){if(@assert(@isObject(m)),@assert(typeof m.done===\"boolean\"),m.done&&!i.closedOrErrored){if(!i.canceled1)@readableStreamDefaultControllerClose(i.branch1.@readableStreamController);if(!i.canceled2)@readableStreamDefaultControllerClose(i.branch2.@readableStreamController);if(i.closedOrErrored=!0,!i.canceled1||!i.canceled2)i.cancelPromiseCapability.@resolve.@call()}if(i.closedOrErrored)return;if(!i.canceled1)@readableStreamDefaultControllerEnqueue(i.branch1.@readableStreamController,m.value);if(!i.canceled2)@readableStreamDefaultControllerEnqueue(i.branch2.@readableStreamController,f\?@structuredCloneForStream(m.value):m.value)})}})\n"; // readableStreamTeeBranch1CancelFunction const JSC::ConstructAbility s_readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1564,7 +1564,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadDirectStreamCodeConstruc const JSC::ImplementationVisibility s_readableStreamInternalsReadDirectStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadDirectStreamCodeLength = 900; static const JSC::Intrinsic s_readableStreamInternalsReadDirectStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadDirectStreamCode = "(function (j,q,_){\"use strict\";@putByIdDirectPrivate(j,\"underlyingSource\",@undefined),@putByIdDirectPrivate(j,\"start\",@undefined);function w(f,v){if(v&&_\?.cancel){try{var A=_.cancel(v);@markPromiseAsHandled(A)}catch(B){}_=@undefined}if(f){if(@putByIdDirectPrivate(f,\"readableStreamController\",@undefined),@putByIdDirectPrivate(f,\"reader\",@undefined),v)@putByIdDirectPrivate(f,\"state\",@streamErrored),@putByIdDirectPrivate(f,\"storedError\",v);else @putByIdDirectPrivate(f,\"state\",@streamClosed);f=@undefined}}if(!_.pull){w();return}if(!@isCallable(_.pull)){w(),@throwTypeError(\"pull is not a function\");return}@putByIdDirectPrivate(j,\"readableStreamController\",q);const x=@getByIdDirectPrivate(j,\"highWaterMark\");q.start({highWaterMark:!x||x<64\?64:x}),@startDirectStream.@call(q,j,_.pull,w),@putByIdDirectPrivate(j,\"reader\",{});var z=_.pull(q);if(q=@undefined,z&&@isPromise(z))return z.@then(()=>{})})\n"; +const char* const s_readableStreamInternalsReadDirectStreamCode = "(function (_,x,f){\"use strict\";@putByIdDirectPrivate(_,\"underlyingSource\",@undefined),@putByIdDirectPrivate(_,\"start\",@undefined);function j(v,A){if(A&&f\?.cancel){try{var w=f.cancel(A);@markPromiseAsHandled(w)}catch(B){}f=@undefined}if(v){if(@putByIdDirectPrivate(v,\"readableStreamController\",@undefined),@putByIdDirectPrivate(v,\"reader\",@undefined),A)@putByIdDirectPrivate(v,\"state\",@streamErrored),@putByIdDirectPrivate(v,\"storedError\",A);else @putByIdDirectPrivate(v,\"state\",@streamClosed);v=@undefined}}if(!f.pull){j();return}if(!@isCallable(f.pull)){j(),@throwTypeError(\"pull is not a function\");return}@putByIdDirectPrivate(_,\"readableStreamController\",x);const q=@getByIdDirectPrivate(_,\"highWaterMark\");x.start({highWaterMark:!q||q<64\?64:q}),@startDirectStream.@call(x,_,f.pull,j),@putByIdDirectPrivate(_,\"reader\",{});var z=f.pull(x);if(x=@undefined,z&&@isPromise(z))return z.@then(()=>{})})\n"; // assignToStream const JSC::ConstructAbility s_readableStreamInternalsAssignToStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1580,7 +1580,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadStreamIntoSinkCodeConstr const JSC::ImplementationVisibility s_readableStreamInternalsReadStreamIntoSinkCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadStreamIntoSinkCodeLength = 1395; static const JSC::Intrinsic s_readableStreamInternalsReadStreamIntoSinkCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadStreamIntoSinkCode = "(async function (_,c,E){\"use strict\";var x=!1,B=!1;try{var I=_.getReader(),f=I.readMany();if(f&&@isPromise(f))f=await f;if(f.done)return x=!0,c.end();var K=f.value.length;const q=@getByIdDirectPrivate(_,\"highWaterMark\");if(E)@startDirectStream.@call(c,_,@undefined,()=>!B&&@markPromiseAsHandled(_.cancel()));c.start({highWaterMark:q||0});for(var D=0,F=f.value,G=f.value.length;D!D&&@markPromiseAsHandled(c.cancel()));F.start({highWaterMark:x||0});for(var J=0,P=G.value,z=G.value.length;J{var b=@createFulfilledPromise({value:v,done:!1});return v=@undefined,@readableStreamClose(c),c=@undefined,b}}else if(this._pendingRead){var y=this._pendingRead;this._pendingRead=@undefined,@putByIdDirectPrivate(this,\"pull\",@noopDoneFunction),@fulfillPromise(y,{value:@undefined,done:!0})}@readableStreamClose(c)})\n"; +const char* const s_readableStreamInternalsOnCloseDirectStreamCode = "(function (c){\"use strict\";var b=this.@controlledReadableStream;if(!b||@getByIdDirectPrivate(b,\"state\")!==@streamReadable)return;if(this._deferClose!==0){this._deferClose=1,this._deferCloseReason=c;return}if(@putByIdDirectPrivate(b,\"state\",@streamClosing),typeof this.@underlyingSource.close===\"function\")try{this.@underlyingSource.close.@call(this.@underlyingSource,c)}catch(j){}var v;try{v=this.@sink.end(),@putByIdDirectPrivate(this,\"sink\",@undefined)}catch(j){if(this._pendingRead){var y=this._pendingRead;this._pendingRead=@undefined,@rejectPromise(y,j)}@readableStreamError(b,j);return}this.error=this.flush=this.write=this.close=this.end=@onReadableStreamDirectControllerClosed;var B=@getByIdDirectPrivate(b,\"reader\");if(B&&@isReadableStreamDefaultReader(B)){var C=this._pendingRead;if(C&&@isPromise(C)&&v\?.byteLength){this._pendingRead=@undefined,@fulfillPromise(C,{value:v,done:!1}),@readableStreamClose(b);return}}if(v\?.byteLength){var S=@getByIdDirectPrivate(B,\"readRequests\");if(S\?.isNotEmpty()){@readableStreamFulfillReadRequest(b,v,!1),@readableStreamClose(b);return}@putByIdDirectPrivate(b,\"state\",@streamReadable),this.@pull=()=>{var j=@createFulfilledPromise({value:v,done:!1});return v=@undefined,@readableStreamClose(b),b=@undefined,j}}else if(this._pendingRead){var y=this._pendingRead;this._pendingRead=@undefined,@putByIdDirectPrivate(this,\"pull\",@noopDoneFunction),@fulfillPromise(y,{value:@undefined,done:!0})}@readableStreamClose(b)})\n"; // onFlushDirectStream const JSC::ConstructAbility s_readableStreamInternalsOnFlushDirectStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1636,7 +1636,7 @@ const JSC::ConstructorKind s_readableStreamInternalsOnFlushDirectStreamCodeConst const JSC::ImplementationVisibility s_readableStreamInternalsOnFlushDirectStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsOnFlushDirectStreamCodeLength = 591; static const JSC::Intrinsic s_readableStreamInternalsOnFlushDirectStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsOnFlushDirectStreamCode = "(function (){\"use strict\";var B=this.@controlledReadableStream,i=@getByIdDirectPrivate(B,\"reader\");if(!i||!@isReadableStreamDefaultReader(i))return;var b=this._pendingRead;if(this._pendingRead=@undefined,b&&@isPromise(b)){var c=this.@sink.flush();if(c\?.byteLength)this._pendingRead=@getByIdDirectPrivate(B,\"readRequests\")\?.shift(),@fulfillPromise(b,{value:c,done:!1});else this._pendingRead=b}else if(@getByIdDirectPrivate(B,\"readRequests\")\?.isNotEmpty()){var c=this.@sink.flush();if(c\?.byteLength)@readableStreamFulfillReadRequest(B,c,!1)}else if(this._deferFlush===-1)this._deferFlush=1})\n"; +const char* const s_readableStreamInternalsOnFlushDirectStreamCode = "(function (){\"use strict\";var c=this.@controlledReadableStream,B=@getByIdDirectPrivate(c,\"reader\");if(!B||!@isReadableStreamDefaultReader(B))return;var b=this._pendingRead;if(this._pendingRead=@undefined,b&&@isPromise(b)){var i=this.@sink.flush();if(i\?.byteLength)this._pendingRead=@getByIdDirectPrivate(c,\"readRequests\")\?.shift(),@fulfillPromise(b,{value:i,done:!1});else this._pendingRead=b}else if(@getByIdDirectPrivate(c,\"readRequests\")\?.isNotEmpty()){var i=this.@sink.flush();if(i\?.byteLength)@readableStreamFulfillReadRequest(c,i,!1)}else if(this._deferFlush===-1)this._deferFlush=1})\n"; // createTextStream const JSC::ConstructAbility s_readableStreamInternalsCreateTextStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1644,7 +1644,7 @@ const JSC::ConstructorKind s_readableStreamInternalsCreateTextStreamCodeConstruc const JSC::ImplementationVisibility s_readableStreamInternalsCreateTextStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsCreateTextStreamCodeLength = 984; static const JSC::Intrinsic s_readableStreamInternalsCreateTextStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsCreateTextStreamCode = "(function (G){\"use strict\";var q,v=[],x=!1,z=!1,j=\"\",C=@toLength(0),F=@newPromiseCapability(@Promise),A=!1;return q={start(){},write(_){if(typeof _===\"string\"){var w=@toLength(_.length);if(w>0)j+=_,x=!0,C+=w;return w}if(!_||!(@ArrayBuffer.@isView(_)||_ instanceof @ArrayBuffer))@throwTypeError(\"Expected text, ArrayBuffer or ArrayBufferView\");const E=@toLength(_.byteLength);if(E>0)if(z=!0,j.length>0)@arrayPush(v,j,_),j=\"\";else @arrayPush(v,_);return C+=E,E},flush(){return 0},end(){if(A)return\"\";return q.fulfill()},fulfill(){A=!0;const _=q.finishInternal();return @fulfillPromise(F.@promise,_),_},finishInternal(){if(!x&&!z)return\"\";if(x&&!z)return j;if(z&&!x)return new globalThis.TextDecoder().decode(@Bun.concatArrayBuffers(v));var _=new @Bun.ArrayBufferSink;_.start({highWaterMark:C,asUint8Array:!0});for(let w of v)_.write(w);if(v.length=0,j.length>0)_.write(j),j=\"\";return new globalThis.TextDecoder().decode(_.end())},close(){try{if(!A)A=!0,q.fulfill()}catch(_){}}},[q,F]})\n"; +const char* const s_readableStreamInternalsCreateTextStreamCode = "(function (v){\"use strict\";var _,w=[],A=!1,C=!1,j=\"\",x=@toLength(0),E=@newPromiseCapability(@Promise),F=!1;return _={start(){},write(q){if(typeof q===\"string\"){var z=@toLength(q.length);if(z>0)j+=q,A=!0,x+=z;return z}if(!q||!(@ArrayBuffer.@isView(q)||q instanceof @ArrayBuffer))@throwTypeError(\"Expected text, ArrayBuffer or ArrayBufferView\");const G=@toLength(q.byteLength);if(G>0)if(C=!0,j.length>0)@arrayPush(w,j,q),j=\"\";else @arrayPush(w,q);return x+=G,G},flush(){return 0},end(){if(F)return\"\";return _.fulfill()},fulfill(){F=!0;const q=_.finishInternal();return @fulfillPromise(E.@promise,q),q},finishInternal(){if(!A&&!C)return\"\";if(A&&!C)return j;if(C&&!A)return new globalThis.TextDecoder().decode(@Bun.concatArrayBuffers(w));var q=new @Bun.ArrayBufferSink;q.start({highWaterMark:x,asUint8Array:!0});for(let z of w)q.write(z);if(w.length=0,j.length>0)q.write(j),j=\"\";return new globalThis.TextDecoder().decode(q.end())},close(){try{if(!F)F=!0,_.fulfill()}catch(q){}}},[_,E]})\n"; // initializeTextStream const JSC::ConstructAbility s_readableStreamInternalsInitializeTextStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1652,7 +1652,7 @@ const JSC::ConstructorKind s_readableStreamInternalsInitializeTextStreamCodeCons const JSC::ImplementationVisibility s_readableStreamInternalsInitializeTextStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsInitializeTextStreamCodeLength = 578; static const JSC::Intrinsic s_readableStreamInternalsInitializeTextStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsInitializeTextStreamCode = "(function (m,p){\"use strict\";var[_,b]=@createTextStream(p),f={@underlyingSource:m,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:_,close:@onCloseDirectStream,write:_.write,error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};return @putByIdDirectPrivate(this,\"readableStreamController\",f),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined),b})\n"; +const char* const s_readableStreamInternalsInitializeTextStreamCode = "(function (_,m){\"use strict\";var[p,b]=@createTextStream(m),f={@underlyingSource:_,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:p,close:@onCloseDirectStream,write:p.write,error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};return @putByIdDirectPrivate(this,\"readableStreamController\",f),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined),b})\n"; // initializeArrayStream const JSC::ConstructAbility s_readableStreamInternalsInitializeArrayStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1660,7 +1660,7 @@ const JSC::ConstructorKind s_readableStreamInternalsInitializeArrayStreamCodeCon const JSC::ImplementationVisibility s_readableStreamInternalsInitializeArrayStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsInitializeArrayStreamCodeLength = 797; static const JSC::Intrinsic s_readableStreamInternalsInitializeArrayStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsInitializeArrayStreamCode = "(function (m,v){\"use strict\";var _=[],b=@newPromiseCapability(@Promise),t=!1;function d(){return t=!0,b.@resolve.@call(@undefined,_),_}var j={start(){},write(p){return @arrayPush(_,p),p.byteLength||p.length},flush(){return 0},end(){if(t)return[];return d()},close(){if(!t)d()}},q={@underlyingSource:m,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:j,close:@onCloseDirectStream,write:j.write,error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};return @putByIdDirectPrivate(this,\"readableStreamController\",q),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined),b})\n"; +const char* const s_readableStreamInternalsInitializeArrayStreamCode = "(function (t,_){\"use strict\";var p=[],b=@newPromiseCapability(@Promise),d=!1;function m(){return d=!0,b.@resolve.@call(@undefined,p),p}var j={start(){},write(v){return @arrayPush(p,v),v.byteLength||v.length},flush(){return 0},end(){if(d)return[];return m()},close(){if(!d)m()}},q={@underlyingSource:t,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:j,close:@onCloseDirectStream,write:j.write,error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};return @putByIdDirectPrivate(this,\"readableStreamController\",q),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined),b})\n"; // initializeArrayBufferStream const JSC::ConstructAbility s_readableStreamInternalsInitializeArrayBufferStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1668,7 +1668,7 @@ const JSC::ConstructorKind s_readableStreamInternalsInitializeArrayBufferStreamC const JSC::ImplementationVisibility s_readableStreamInternalsInitializeArrayBufferStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsInitializeArrayBufferStreamCodeLength = 690; static const JSC::Intrinsic s_readableStreamInternalsInitializeArrayBufferStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsInitializeArrayBufferStreamCode = "(function (w,m){\"use strict\";var D=m&&typeof m===\"number\"\?{highWaterMark:m,stream:!0,asUint8Array:!0}:{stream:!0,asUint8Array:!0},_=new @Bun.ArrayBufferSink;_.start(D);var b={@underlyingSource:w,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:_,close:@onCloseDirectStream,write:_.write.bind(_),error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};@putByIdDirectPrivate(this,\"readableStreamController\",b),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined)})\n"; +const char* const s_readableStreamInternalsInitializeArrayBufferStreamCode = "(function (_,m){\"use strict\";var w=m&&typeof m===\"number\"\?{highWaterMark:m,stream:!0,asUint8Array:!0}:{stream:!0,asUint8Array:!0},D=new @Bun.ArrayBufferSink;D.start(w);var b={@underlyingSource:_,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:D,close:@onCloseDirectStream,write:D.write.bind(D),error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};@putByIdDirectPrivate(this,\"readableStreamController\",b),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined)})\n"; // readableStreamError const JSC::ConstructAbility s_readableStreamInternalsReadableStreamErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1676,7 +1676,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamErrorCodeConst const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamErrorCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamErrorCodeLength = 840; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamErrorCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamErrorCode = "(function (c,f){\"use strict\";@assert(@isReadableStream(c)),@assert(@getByIdDirectPrivate(c,\"state\")===@streamReadable),@putByIdDirectPrivate(c,\"state\",@streamErrored),@putByIdDirectPrivate(c,\"storedError\",f);const _=@getByIdDirectPrivate(c,\"reader\");if(!_)return;if(@isReadableStreamDefaultReader(_)){const n=@getByIdDirectPrivate(_,\"readRequests\");@putByIdDirectPrivate(_,\"readRequests\",@createFIFO());for(var i=n.shift();i;i=n.shift())@rejectPromise(i,f)}else{@assert(@isReadableStreamBYOBReader(_));const n=@getByIdDirectPrivate(_,\"readIntoRequests\");@putByIdDirectPrivate(_,\"readIntoRequests\",@createFIFO());for(var i=n.shift();i;i=n.shift())@rejectPromise(i,f)}@getByIdDirectPrivate(_,\"closedPromiseCapability\").@reject.@call(@undefined,f);const h=@getByIdDirectPrivate(_,\"closedPromiseCapability\").@promise;@markPromiseAsHandled(h)})\n"; +const char* const s_readableStreamInternalsReadableStreamErrorCode = "(function (i,c){\"use strict\";@assert(@isReadableStream(i)),@assert(@getByIdDirectPrivate(i,\"state\")===@streamReadable),@putByIdDirectPrivate(i,\"state\",@streamErrored),@putByIdDirectPrivate(i,\"storedError\",c);const n=@getByIdDirectPrivate(i,\"reader\");if(!n)return;if(@isReadableStreamDefaultReader(n)){const _=@getByIdDirectPrivate(n,\"readRequests\");@putByIdDirectPrivate(n,\"readRequests\",@createFIFO());for(var f=_.shift();f;f=_.shift())@rejectPromise(f,c)}else{@assert(@isReadableStreamBYOBReader(n));const _=@getByIdDirectPrivate(n,\"readIntoRequests\");@putByIdDirectPrivate(n,\"readIntoRequests\",@createFIFO());for(var f=_.shift();f;f=_.shift())@rejectPromise(f,c)}@getByIdDirectPrivate(n,\"closedPromiseCapability\").@reject.@call(@undefined,c);const h=@getByIdDirectPrivate(n,\"closedPromiseCapability\").@promise;@markPromiseAsHandled(h)})\n"; // readableStreamDefaultControllerShouldCallPull const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerShouldCallPullCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1708,7 +1708,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControl const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCodeLength = 283; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCode = "(function (i){\"use strict\";const g=@getByIdDirectPrivate(i,\"controlledReadableStream\"),d=@getByIdDirectPrivate(g,\"state\");if(d===@streamErrored)return null;if(d===@streamClosed)return 0;return @getByIdDirectPrivate(i,\"strategy\").highWaterMark-@getByIdDirectPrivate(i,\"queue\").size})\n"; +const char* const s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCode = "(function (i){\"use strict\";const d=@getByIdDirectPrivate(i,\"controlledReadableStream\"),g=@getByIdDirectPrivate(d,\"state\");if(g===@streamErrored)return null;if(g===@streamClosed)return 0;return @getByIdDirectPrivate(i,\"strategy\").highWaterMark-@getByIdDirectPrivate(i,\"queue\").size})\n"; // readableStreamReaderGenericCancel const JSC::ConstructAbility s_readableStreamInternalsReadableStreamReaderGenericCancelCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1716,7 +1716,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamReaderGenericC const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamReaderGenericCancelCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamReaderGenericCancelCodeLength = 133; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamReaderGenericCancelCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamReaderGenericCancelCode = "(function (h,i){\"use strict\";const c=@getByIdDirectPrivate(h,\"ownerReadableStream\");return @assert(!!c),@readableStreamCancel(c,i)})\n"; +const char* const s_readableStreamInternalsReadableStreamReaderGenericCancelCode = "(function (c,h){\"use strict\";const i=@getByIdDirectPrivate(c,\"ownerReadableStream\");return @assert(!!i),@readableStreamCancel(i,h)})\n"; // readableStreamCancel const JSC::ConstructAbility s_readableStreamInternalsReadableStreamCancelCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1724,7 +1724,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamCancelCodeCons const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamCancelCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamCancelCodeLength = 509; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamCancelCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamCancelCode = "(function (i,d){\"use strict\";@putByIdDirectPrivate(i,\"disturbed\",!0);const h=@getByIdDirectPrivate(i,\"state\");if(h===@streamClosed)return @Promise.@resolve();if(h===@streamErrored)return @Promise.@reject(@getByIdDirectPrivate(i,\"storedError\"));@readableStreamClose(i);var _=@getByIdDirectPrivate(i,\"readableStreamController\"),p=_.@cancel;if(p)return p(_,d).@then(function(){});var u=_.close;if(u)return @Promise.@resolve(_.close(d));@throwTypeError(\"ReadableStreamController has no cancel or close method\")})\n"; +const char* const s_readableStreamInternalsReadableStreamCancelCode = "(function (_,d){\"use strict\";@putByIdDirectPrivate(_,\"disturbed\",!0);const h=@getByIdDirectPrivate(_,\"state\");if(h===@streamClosed)return @Promise.@resolve();if(h===@streamErrored)return @Promise.@reject(@getByIdDirectPrivate(_,\"storedError\"));@readableStreamClose(_);var p=@getByIdDirectPrivate(_,\"readableStreamController\"),u=p.@cancel;if(u)return u(p,d).@then(function(){});var i=p.close;if(i)return @Promise.@resolve(p.close(d));@throwTypeError(\"ReadableStreamController has no cancel or close method\")})\n"; // readableStreamDefaultControllerCancel const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerCancelCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1740,7 +1740,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControl const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerPullCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamDefaultControllerPullCodeLength = 519; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultControllerPullCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamDefaultControllerPullCode = "(function (a){\"use strict\";var _=@getByIdDirectPrivate(a,\"queue\");if(_.content.isNotEmpty()){const f=@dequeueValue(_);if(@getByIdDirectPrivate(a,\"closeRequested\")&&_.content.isEmpty())@readableStreamClose(@getByIdDirectPrivate(a,\"controlledReadableStream\"));else @readableStreamDefaultControllerCallPullIfNeeded(a);return @createFulfilledPromise({value:f,done:!1})}const d=@readableStreamAddReadRequest(@getByIdDirectPrivate(a,\"controlledReadableStream\"));return @readableStreamDefaultControllerCallPullIfNeeded(a),d})\n"; +const char* const s_readableStreamInternalsReadableStreamDefaultControllerPullCode = "(function (a){\"use strict\";var d=@getByIdDirectPrivate(a,\"queue\");if(d.content.isNotEmpty()){const _=@dequeueValue(d);if(@getByIdDirectPrivate(a,\"closeRequested\")&&d.content.isEmpty())@readableStreamClose(@getByIdDirectPrivate(a,\"controlledReadableStream\"));else @readableStreamDefaultControllerCallPullIfNeeded(a);return @createFulfilledPromise({value:_,done:!1})}const f=@readableStreamAddReadRequest(@getByIdDirectPrivate(a,\"controlledReadableStream\"));return @readableStreamDefaultControllerCallPullIfNeeded(a),f})\n"; // readableStreamDefaultControllerClose const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerCloseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1756,7 +1756,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamCloseCodeConst const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamCloseCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamCloseCodeLength = 617; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamCloseCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamCloseCode = "(function (_){\"use strict\";if(@assert(@getByIdDirectPrivate(_,\"state\")===@streamReadable),@putByIdDirectPrivate(_,\"state\",@streamClosed),!@getByIdDirectPrivate(_,\"reader\"))return;if(@isReadableStreamDefaultReader(@getByIdDirectPrivate(_,\"reader\"))){const i=@getByIdDirectPrivate(@getByIdDirectPrivate(_,\"reader\"),\"readRequests\");if(i.isNotEmpty()){@putByIdDirectPrivate(@getByIdDirectPrivate(_,\"reader\"),\"readRequests\",@createFIFO());for(var d=i.shift();d;d=i.shift())@fulfillPromise(d,{value:@undefined,done:!0})}}@getByIdDirectPrivate(@getByIdDirectPrivate(_,\"reader\"),\"closedPromiseCapability\").@resolve.@call()})\n"; +const char* const s_readableStreamInternalsReadableStreamCloseCode = "(function (_){\"use strict\";if(@assert(@getByIdDirectPrivate(_,\"state\")===@streamReadable),@putByIdDirectPrivate(_,\"state\",@streamClosed),!@getByIdDirectPrivate(_,\"reader\"))return;if(@isReadableStreamDefaultReader(@getByIdDirectPrivate(_,\"reader\"))){const d=@getByIdDirectPrivate(@getByIdDirectPrivate(_,\"reader\"),\"readRequests\");if(d.isNotEmpty()){@putByIdDirectPrivate(@getByIdDirectPrivate(_,\"reader\"),\"readRequests\",@createFIFO());for(var i=d.shift();i;i=d.shift())@fulfillPromise(i,{value:@undefined,done:!0})}}@getByIdDirectPrivate(@getByIdDirectPrivate(_,\"reader\"),\"closedPromiseCapability\").@resolve.@call()})\n"; // readableStreamFulfillReadRequest const JSC::ConstructAbility s_readableStreamInternalsReadableStreamFulfillReadRequestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1764,7 +1764,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamFulfillReadReq const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamFulfillReadRequestCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamFulfillReadRequestCodeLength = 157; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamFulfillReadRequestCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamFulfillReadRequestCode = "(function (i,p,y){\"use strict\";const _=@getByIdDirectPrivate(@getByIdDirectPrivate(i,\"reader\"),\"readRequests\").shift();@fulfillPromise(_,{value:p,done:y})})\n"; +const char* const s_readableStreamInternalsReadableStreamFulfillReadRequestCode = "(function (p,y,_){\"use strict\";const i=@getByIdDirectPrivate(@getByIdDirectPrivate(p,\"reader\"),\"readRequests\").shift();@fulfillPromise(i,{value:y,done:_})})\n"; // readableStreamDefaultControllerEnqueue const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1772,7 +1772,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControl const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeLength = 659; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCode = "(function (_,D){\"use strict\";const E=@getByIdDirectPrivate(_,\"controlledReadableStream\");if(@assert(@readableStreamDefaultControllerCanCloseOrEnqueue(_)),@isReadableStreamLocked(E)&&@getByIdDirectPrivate(@getByIdDirectPrivate(E,\"reader\"),\"readRequests\")\?.isNotEmpty()){@readableStreamFulfillReadRequest(E,D,!1),@readableStreamDefaultControllerCallPullIfNeeded(_);return}try{let d=1;if(@getByIdDirectPrivate(_,\"strategy\").size!==@undefined)d=@getByIdDirectPrivate(_,\"strategy\").size(D);@enqueueValueWithSize(@getByIdDirectPrivate(_,\"queue\"),D,d)}catch(d){throw @readableStreamDefaultControllerError(_,d),d}@readableStreamDefaultControllerCallPullIfNeeded(_)})\n"; +const char* const s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCode = "(function (_,d){\"use strict\";const D=@getByIdDirectPrivate(_,\"controlledReadableStream\");if(@assert(@readableStreamDefaultControllerCanCloseOrEnqueue(_)),@isReadableStreamLocked(D)&&@getByIdDirectPrivate(@getByIdDirectPrivate(D,\"reader\"),\"readRequests\")\?.isNotEmpty()){@readableStreamFulfillReadRequest(D,d,!1),@readableStreamDefaultControllerCallPullIfNeeded(_);return}try{let E=1;if(@getByIdDirectPrivate(_,\"strategy\").size!==@undefined)E=@getByIdDirectPrivate(_,\"strategy\").size(d);@enqueueValueWithSize(@getByIdDirectPrivate(_,\"queue\"),d,E)}catch(E){throw @readableStreamDefaultControllerError(_,E),E}@readableStreamDefaultControllerCallPullIfNeeded(_)})\n"; // readableStreamDefaultReaderRead const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultReaderReadCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1780,7 +1780,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultReaderR const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultReaderReadCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamDefaultReaderReadCodeLength = 491; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultReaderReadCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamDefaultReaderReadCode = "(function (y){\"use strict\";const i=@getByIdDirectPrivate(y,\"ownerReadableStream\");@assert(!!i);const n=@getByIdDirectPrivate(i,\"state\");if(@putByIdDirectPrivate(i,\"disturbed\",!0),n===@streamClosed)return @createFulfilledPromise({value:@undefined,done:!0});if(n===@streamErrored)return @Promise.@reject(@getByIdDirectPrivate(i,\"storedError\"));return @assert(n===@streamReadable),@getByIdDirectPrivate(i,\"readableStreamController\").@pull(@getByIdDirectPrivate(i,\"readableStreamController\"))})\n"; +const char* const s_readableStreamInternalsReadableStreamDefaultReaderReadCode = "(function (i){\"use strict\";const n=@getByIdDirectPrivate(i,\"ownerReadableStream\");@assert(!!n);const y=@getByIdDirectPrivate(n,\"state\");if(@putByIdDirectPrivate(n,\"disturbed\",!0),y===@streamClosed)return @createFulfilledPromise({value:@undefined,done:!0});if(y===@streamErrored)return @Promise.@reject(@getByIdDirectPrivate(n,\"storedError\"));return @assert(y===@streamReadable),@getByIdDirectPrivate(n,\"readableStreamController\").@pull(@getByIdDirectPrivate(n,\"readableStreamController\"))})\n"; // readableStreamAddReadRequest const JSC::ConstructAbility s_readableStreamInternalsReadableStreamAddReadRequestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1820,7 +1820,7 @@ const JSC::ConstructorKind s_readableStreamInternalsLazyLoadStreamCodeConstructo const JSC::ImplementationVisibility s_readableStreamInternalsLazyLoadStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsLazyLoadStreamCodeLength = 1589; static const JSC::Intrinsic s_readableStreamInternalsLazyLoadStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsLazyLoadStreamCode = "(function (J,P){\"use strict\";var G=@getByIdDirectPrivate(J,\"bunNativeType\"),B=@getByIdDirectPrivate(J,\"bunNativePtr\"),x=@lazyStreamPrototypeMap.@get(G);if(x===@undefined){let q=function(m){var{c:b,v:f}=this;this.c=@undefined,this.v=@undefined,I(m,b,f)},N=function(m){try{m.close()}catch(b){globalThis.reportError(b)}},O=function(m,b,f,j){j[0]=!1;var y;try{y=Q(m,f,j)}catch(Y){return b.error(Y)}return I(y,b,f)};var z=q,A=N,p=O,[Q,U,W,Z,D,K,X]=@lazyLoad(G),H=[!1],I;I=function m(b,f,j){if(b&&@isPromise(b))return b.then(q.bind({c:f,v:j}),(y)=>f.error(y));else if(typeof b===\"number\")if(j&&j.byteLength===b&&j.buffer===f.byobRequest\?.view\?.buffer)f.byobRequest.respondWithNewView(j);else f.byobRequest.respond(b);else if(b.constructor===@Uint8Array)f.enqueue(b);if(H[0]||b===!1)@enqueueJob(N,f),H[0]=!1};const F=D\?new FinalizationRegistry(D):null;x=class m{constructor(b,f,j){if(this.#f=b,this.#b={},this.pull=this.#j.bind(this),this.cancel=this.#m.bind(this),this.autoAllocateChunkSize=f,j!==@undefined)this.start=(y)=>{y.enqueue(j)};if(F)F.register(this,b,this.#b)}#b;pull;cancel;start;#f;type=\"bytes\";autoAllocateChunkSize=0;static startSync=U;#j(b){var f=this.#f;if(!f){b.close();return}O(f,b,b.byobRequest.view,H)}#m(b){var f=this.#f;F&&F.unregister(this.#b),K&&K(f,!1),W(f,b)}static deinit=D;static drain=X},@lazyStreamPrototypeMap.@set(G,x)}const L=x.startSync(B,P);var E;const{drain:M,deinit:_}=x;if(M)E=M(B);if(L===0){if(D&&B&&@enqueueJob(D,B),(E\?.byteLength\?\?0)>0)return{start(q){q.enqueue(E),q.close()},type:\"bytes\"};return{start(q){q.close()},type:\"bytes\"}}return new x(B,L,E)})\n"; +const char* const s_readableStreamInternalsLazyLoadStreamCode = "(function (P,F){\"use strict\";var L=@getByIdDirectPrivate(P,\"bunNativeType\"),G=@getByIdDirectPrivate(P,\"bunNativePtr\"),H=@lazyStreamPrototypeMap.@get(L);if(H===@undefined){let j=function(B){var{c:p,v:z}=this;this.c=@undefined,this.v=@undefined,W(B,p,z)},Z=function(B){try{B.close()}catch(p){globalThis.reportError(p)}},_=function(B,p,z,A){A[0]=!1;var D;try{D=b(B,z,A)}catch(E){return p.error(E)}return W(D,p,z)};var f=j,O=Z,m=_,[b,I,M,q,J,N,Q]=@lazyLoad(L),U=[!1],W;W=function B(p,z,A){if(p&&@isPromise(p))return p.then(j.bind({c:z,v:A}),(D)=>z.error(D));else if(typeof p===\"number\")if(A&&A.byteLength===p&&A.buffer===z.byobRequest\?.view\?.buffer)z.byobRequest.respondWithNewView(A);else z.byobRequest.respond(p);else if(p.constructor===@Uint8Array)z.enqueue(p);if(U[0]||p===!1)@enqueueJob(Z,z),U[0]=!1};const y=J\?new FinalizationRegistry(J):null;H=class B{constructor(p,z,A){if(this.#f=p,this.#b={},this.pull=this.#j.bind(this),this.cancel=this.#m.bind(this),this.autoAllocateChunkSize=z,A!==@undefined)this.start=(D)=>{D.enqueue(A)};if(y)y.register(this,p,this.#b)}#b;pull;cancel;start;#f;type=\"bytes\";autoAllocateChunkSize=0;static startSync=I;#j(p){var z=this.#f;if(!z){p.close();return}_(z,p,p.byobRequest.view,U)}#m(p){var z=this.#f;y&&y.unregister(this.#b),N&&N(z,!1),M(z,p)}static deinit=J;static drain=Q},@lazyStreamPrototypeMap.@set(L,H)}const X=H.startSync(G,F);var Y;const{drain:x,deinit:K}=H;if(x)Y=x(G);if(X===0){if(J&&G&&@enqueueJob(J,G),(Y\?.byteLength\?\?0)>0)return{start(j){j.enqueue(Y),j.close()},type:\"bytes\"};return{start(j){j.close()},type:\"bytes\"}}return new H(G,X,Y)})\n"; // readableStreamIntoArray const JSC::ConstructAbility s_readableStreamInternalsReadableStreamIntoArrayCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1828,7 +1828,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamIntoArrayCodeC const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamIntoArrayCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamIntoArrayCodeLength = 247; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamIntoArrayCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamIntoArrayCode = "(function (q){\"use strict\";var b=q.getReader(),f=b.readMany();async function g(j){if(j.done)return[];var _=j.value||[];while(!0){var p=await b.read();if(p.done)break;_=_.concat(p.value)}return _}if(f&&@isPromise(f))return f.@then(g);return g(f)})\n"; +const char* const s_readableStreamInternalsReadableStreamIntoArrayCode = "(function (_){\"use strict\";var b=_.getReader(),g=b.readMany();async function j(p){if(p.done)return[];var f=p.value||[];while(!0){var q=await b.read();if(q.done)break;f=f.concat(q.value)}return f}if(g&&@isPromise(g))return g.@then(j);return j(g)})\n"; // readableStreamIntoText const JSC::ConstructAbility s_readableStreamInternalsReadableStreamIntoTextCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1836,7 +1836,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamIntoTextCodeCo const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamIntoTextCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamIntoTextCodeLength = 214; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamIntoTextCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamIntoTextCode = "(function (_){\"use strict\";const[h,d]=@createTextStream(@getByIdDirectPrivate(_,\"highWaterMark\")),i=@readStreamIntoSink(_,h,!1);if(i&&@isPromise(i))return @Promise.@resolve(i).@then(d.@promise);return d.@promise})\n"; +const char* const s_readableStreamInternalsReadableStreamIntoTextCode = "(function (i){\"use strict\";const[_,d]=@createTextStream(@getByIdDirectPrivate(i,\"highWaterMark\")),h=@readStreamIntoSink(i,_,!1);if(h&&@isPromise(h))return @Promise.@resolve(h).@then(d.@promise);return d.@promise})\n"; // readableStreamToArrayBufferDirect const JSC::ConstructAbility s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1844,7 +1844,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamToArrayBufferD const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeLength = 727; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamToArrayBufferDirectCode = "(function (O,A){\"use strict\";var j=new @Bun.ArrayBufferSink;@putByIdDirectPrivate(O,\"underlyingSource\",@undefined);var B=@getByIdDirectPrivate(O,\"highWaterMark\");j.start(B\?{highWaterMark:B}:{});var w=@newPromiseCapability(@Promise),q=!1,x=A.pull,v=A.close,z={start(){},close(_){if(!q){if(q=!0,v)v();@fulfillPromise(w.@promise,j.end())}},end(){if(!q){if(q=!0,v)v();@fulfillPromise(w.@promise,j.end())}},flush(){return 0},write:j.write.bind(j)},C=!1;try{const _=x(z);if(_&&@isObject(_)&&@isPromise(_))return async function(D,F,G){while(!q)await G(D);return await F}(z,promise,x);return w.@promise}catch(_){return C=!0,@readableStreamError(O,_),@Promise.@reject(_)}finally{if(!C&&O)@readableStreamClose(O);z=v=j=x=O=@undefined}})\n"; +const char* const s_readableStreamInternalsReadableStreamToArrayBufferDirectCode = "(function (O,_){\"use strict\";var q=new @Bun.ArrayBufferSink;@putByIdDirectPrivate(O,\"underlyingSource\",@undefined);var v=@getByIdDirectPrivate(O,\"highWaterMark\");q.start(v\?{highWaterMark:v}:{});var w=@newPromiseCapability(@Promise),A=!1,z=_.pull,B=_.close,C={start(){},close(F){if(!A){if(A=!0,B)B();@fulfillPromise(w.@promise,q.end())}},end(){if(!A){if(A=!0,B)B();@fulfillPromise(w.@promise,q.end())}},flush(){return 0},write:q.write.bind(q)},D=!1;try{const F=z(C);if(F&&@isObject(F)&&@isPromise(F))return async function(G,j,x){while(!A)await x(G);return await j}(C,promise,z);return w.@promise}catch(F){return D=!0,@readableStreamError(O,F),@Promise.@reject(F)}finally{if(!D&&O)@readableStreamClose(O);C=B=q=z=O=@undefined}})\n"; // readableStreamToTextDirect const JSC::ConstructAbility s_readableStreamInternalsReadableStreamToTextDirectCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1852,7 +1852,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamToTextDirectCo const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamToTextDirectCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamToTextDirectCodeLength = 278; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamToTextDirectCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamToTextDirectCode = "(async function (_,h){\"use strict\";const j=@initializeTextStream.@call(_,h,@undefined);var f=_.getReader();while(@getByIdDirectPrivate(_,\"state\")===@streamReadable){var k=await f.read();if(k.done)break}try{f.releaseLock()}catch(p){}return f=@undefined,_=@undefined,j.@promise})\n"; +const char* const s_readableStreamInternalsReadableStreamToTextDirectCode = "(async function (f,h){\"use strict\";const j=@initializeTextStream.@call(f,h,@undefined);var k=f.getReader();while(@getByIdDirectPrivate(f,\"state\")===@streamReadable){var p=await k.read();if(p.done)break}try{k.releaseLock()}catch(_){}return k=@undefined,f=@undefined,j.@promise})\n"; // readableStreamToArrayDirect const JSC::ConstructAbility s_readableStreamInternalsReadableStreamToArrayDirectCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1860,7 +1860,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamToArrayDirectC const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamToArrayDirectCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamToArrayDirectCodeLength = 354; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamToArrayDirectCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamToArrayDirectCode = "(async function (f,j){\"use strict\";const p=@initializeArrayStream.@call(f,j,@undefined);j=@undefined;var _=f.getReader();try{while(@getByIdDirectPrivate(f,\"state\")===@streamReadable){var q=await _.read();if(q.done)break}try{_.releaseLock()}catch(k){}return _=@undefined,@Promise.@resolve(p.@promise)}catch(k){throw k}finally{f=@undefined,_=@undefined}})\n"; +const char* const s_readableStreamInternalsReadableStreamToArrayDirectCode = "(async function (_,j){\"use strict\";const k=@initializeArrayStream.@call(_,j,@undefined);j=@undefined;var p=_.getReader();try{while(@getByIdDirectPrivate(_,\"state\")===@streamReadable){var q=await p.read();if(q.done)break}try{p.releaseLock()}catch(f){}return p=@undefined,@Promise.@resolve(k.@promise)}catch(f){throw f}finally{_=@undefined,p=@undefined}})\n"; // readableStreamDefineLazyIterators const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1868,7 +1868,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefineLazyIter const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeLength = 516; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamDefineLazyIteratorsCode = "(function (i){\"use strict\";var B=globalThis.Symbol.asyncIterator,w=async function*x(k,G){var z=k.getReader(),g;try{while(!0){var j,q;const h=z.readMany();if(@isPromise(h))({done:j,value:q}=await h);else({done:j,value:q}=h);if(j)return;yield*q}}catch(h){g=h}finally{if(z.releaseLock(),!G)k.cancel(g);if(g)throw g}},D=function x(){return w(this,!1)},F=function x({preventCancel:k=!1}={preventCancel:!1}){return w(this,k)};return @Object.@defineProperty(i,B,{value:D}),@Object.@defineProperty(i,\"values\",{value:F}),i})\n"; +const char* const s_readableStreamInternalsReadableStreamDefineLazyIteratorsCode = "(function (k){\"use strict\";var B=globalThis.Symbol.asyncIterator,g=async function*z(D,F){var G=D.getReader(),j;try{while(!0){var x,h;const q=G.readMany();if(@isPromise(q))({done:x,value:h}=await q);else({done:x,value:h}=q);if(x)return;yield*h}}catch(q){j=q}finally{if(G.releaseLock(),!F)D.cancel(j);if(j)throw j}},i=function z(){return g(this,!1)},w=function z({preventCancel:D=!1}={preventCancel:!1}){return g(this,D)};return @Object.@defineProperty(k,B,{value:i}),@Object.@defineProperty(k,\"values\",{value:w}),k})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ @@ -1894,7 +1894,7 @@ const JSC::ConstructorKind s_transformStreamDefaultControllerDesiredSizeCodeCons const JSC::ImplementationVisibility s_transformStreamDefaultControllerDesiredSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamDefaultControllerDesiredSizeCodeLength = 339; static const JSC::Intrinsic s_transformStreamDefaultControllerDesiredSizeCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamDefaultControllerDesiredSizeCode = "(function (){\"use strict\";if(!@isTransformStreamDefaultController(this))throw @makeThisTypeError(\"TransformStreamDefaultController\",\"enqueue\");const _=@getByIdDirectPrivate(this,\"stream\"),u=@getByIdDirectPrivate(_,\"readable\"),i=@getByIdDirectPrivate(u,\"readableStreamController\");return @readableStreamDefaultControllerGetDesiredSize(i)})\n"; +const char* const s_transformStreamDefaultControllerDesiredSizeCode = "(function (){\"use strict\";if(!@isTransformStreamDefaultController(this))throw @makeThisTypeError(\"TransformStreamDefaultController\",\"enqueue\");const _=@getByIdDirectPrivate(this,\"stream\"),i=@getByIdDirectPrivate(_,\"readable\"),u=@getByIdDirectPrivate(i,\"readableStreamController\");return @readableStreamDefaultControllerGetDesiredSize(u)})\n"; // enqueue const JSC::ConstructAbility s_transformStreamDefaultControllerEnqueueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1986,7 +1986,7 @@ const JSC::ConstructorKind s_jsBufferConstructorFromCodeConstructorKind = JSC::C const JSC::ImplementationVisibility s_jsBufferConstructorFromCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferConstructorFromCodeLength = 1107; static const JSC::Intrinsic s_jsBufferConstructorFromCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferConstructorFromCode = "(function (n){\"use strict\";if(@isUndefinedOrNull(n))@throwTypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object.\");if(typeof n===\"string\"||typeof n===\"object\"&&(@isTypedArrayView(n)||n instanceof @ArrayBuffer||n instanceof SharedArrayBuffer||n instanceof String))switch(@argumentCount()){case 1:return new @Buffer(n);case 2:return new @Buffer(n,@argument(1));default:return new @Buffer(n,@argument(1),@argument(2))}var d=@toObject(n,\"The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object.\");if(!@isJSArray(d)){const u=@tryGetByIdWithWellKnownSymbol(n,\"toPrimitive\");if(u){const f=u.@call(n,\"string\");if(typeof f===\"string\")switch(@argumentCount()){case 1:return new @Buffer(f);case 2:return new @Buffer(f,@argument(1));default:return new @Buffer(f,@argument(1),@argument(2))}}if(!(\"length\"in d)||@isCallable(d))@throwTypeError(\"The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object.\")}return new @Buffer(@Uint8Array.from(d).buffer)})\n"; +const char* const s_jsBufferConstructorFromCode = "(function (n){\"use strict\";if(@isUndefinedOrNull(n))@throwTypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object.\");if(typeof n===\"string\"||typeof n===\"object\"&&(@isTypedArrayView(n)||n instanceof @ArrayBuffer||n instanceof SharedArrayBuffer||n instanceof String))switch(@argumentCount()){case 1:return new @Buffer(n);case 2:return new @Buffer(n,@argument(1));default:return new @Buffer(n,@argument(1),@argument(2))}var d=@toObject(n,\"The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object.\");if(!@isJSArray(d)){const f=@tryGetByIdWithWellKnownSymbol(n,\"toPrimitive\");if(f){const u=f.@call(n,\"string\");if(typeof u===\"string\")switch(@argumentCount()){case 1:return new @Buffer(u);case 2:return new @Buffer(u,@argument(1));default:return new @Buffer(u,@argument(1),@argument(2))}}if(!(\"length\"in d)||@isCallable(d))@throwTypeError(\"The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object.\")}return new @Buffer(@Uint8Array.from(d).buffer)})\n"; // isBuffer const JSC::ConstructAbility s_jsBufferConstructorIsBufferCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2028,7 +2028,7 @@ const JSC::ConstructorKind s_readableStreamDefaultReaderReadManyCodeConstructorK const JSC::ImplementationVisibility s_readableStreamDefaultReaderReadManyCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamDefaultReaderReadManyCodeLength = 2598; static const JSC::Intrinsic s_readableStreamDefaultReaderReadManyCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamDefaultReaderReadManyCode = "(function (){\"use strict\";if(!@isReadableStreamDefaultReader(this))@throwTypeError(\"ReadableStreamDefaultReader.readMany() should not be called directly\");const j=@getByIdDirectPrivate(this,\"ownerReadableStream\");if(!j)@throwTypeError(\"readMany() called on a reader owned by no readable stream\");const I=@getByIdDirectPrivate(j,\"state\");if(@putByIdDirectPrivate(j,\"disturbed\",!0),I===@streamClosed)return{value:[],size:0,done:!0};else if(I===@streamErrored)throw @getByIdDirectPrivate(j,\"storedError\");var B=@getByIdDirectPrivate(j,\"readableStreamController\"),F=@getByIdDirectPrivate(B,\"queue\");if(!F)return B.@pull(B).@then(function({done:_,value:w}){return _\?{done:!0,value:[],size:0}:{value:[w],size:1,done:!1}});const N=F.content;var Q=F.size,x=N.toArray(!1),C=x.length;if(C>0){var D=@newArrayWithSize(C);if(@isReadableByteStreamController(B)){{const _=x[0];if(!(@ArrayBuffer.@isView(_)||_ instanceof @ArrayBuffer))@putByValDirect(D,0,new @Uint8Array(_.buffer,_.byteOffset,_.byteLength));else @putByValDirect(D,0,_)}for(var d=1;d{if(_.done)return{value:[],size:0,done:!0};var w=@getByIdDirectPrivate(j,\"readableStreamController\"),G=@getByIdDirectPrivate(w,\"queue\"),k=[_.value].concat(G.content.toArray(!1)),K=k.length;if(@isReadableByteStreamController(w))for(var A=0;A0){var D=@newArrayWithSize(I);if(@isReadableByteStreamController(G)){{const K=E[0];if(!(@ArrayBuffer.@isView(K)||K instanceof @ArrayBuffer))@putByValDirect(D,0,new @Uint8Array(K.buffer,K.byteOffset,K.byteLength));else @putByValDirect(D,0,K)}for(var J=1;J{if(K.done)return{value:[],size:0,done:!0};var B=@getByIdDirectPrivate(S,\"readableStreamController\"),F=@getByIdDirectPrivate(B,\"queue\"),N=[K.value].concat(F.content.toArray(!1)),j=N.length;if(@isReadableByteStreamController(B))for(var H=0;H0}shift(){var{_head:g,_tail:b,_list:x,_capacityMask:M}=this;if(g===b)return @undefined;var w=x[g];if(@putByValDirect(x,g,@undefined),g=this._head=g+1&M,g<2&&b>1e4&&b<=x.length>>>2)this._shrinkArray();return w}peek(){if(this._head===this._tail)return @undefined;return this._list[this._head]}push(g){var b=this._tail;if(@putByValDirect(this._list,b,g),this._tail=b+1&this._capacityMask,this._tail===this._head)this._growArray()}toArray(g){var b=this._list,x=@toLength(b.length);if(g||this._head>this._tail){var M=@toLength(this._head),w=@toLength(this._tail),F=@toLength(x-M+w),z=@newArrayWithSize(F),B=0;for(var v=M;v>>=1,this._capacityMask>>>=1}}return new A})\n"; +const char* const s_streamInternalsCreateFIFOCode = "(function (){\"use strict\";var b=@Array.prototype.slice;class w{constructor(){this._head=0,this._tail=0,this._capacityMask=3,this._list=@newArrayWithSize(4)}_head;_tail;_capacityMask;_list;size(){if(this._head===this._tail)return 0;if(this._head0}shift(){var{_head:x,_tail:g,_list:M,_capacityMask:z}=this;if(x===g)return @undefined;var A=M[x];if(@putByValDirect(M,x,@undefined),x=this._head=x+1&z,x<2&&g>1e4&&g<=M.length>>>2)this._shrinkArray();return A}peek(){if(this._head===this._tail)return @undefined;return this._list[this._head]}push(x){var g=this._tail;if(@putByValDirect(this._list,g,x),this._tail=g+1&this._capacityMask,this._tail===this._head)this._growArray()}toArray(x){var g=this._list,M=@toLength(g.length);if(x||this._head>this._tail){var z=@toLength(this._head),A=@toLength(this._tail),B=@toLength(M-z+A),E=@newArrayWithSize(B),v=0;for(var F=z;F>>=1,this._capacityMask>>>=1}}return new w})\n"; // newQueue const JSC::ConstructAbility s_streamInternalsNewQueueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2158,7 +2158,7 @@ const JSC::ConstructorKind s_streamInternalsEnqueueValueWithSizeCodeConstructorK const JSC::ImplementationVisibility s_streamInternalsEnqueueValueWithSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_streamInternalsEnqueueValueWithSizeCodeLength = 161; static const JSC::Intrinsic s_streamInternalsEnqueueValueWithSizeCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_streamInternalsEnqueueValueWithSizeCode = "(function (d,o,n){\"use strict\";if(n=@toNumber(n),!@isFinite(n)||n<0)@throwRangeError(\"size has an incorrect value\");d.content.push({value:o,size:n}),d.size+=n})\n"; +const char* const s_streamInternalsEnqueueValueWithSizeCode = "(function (n,d,o){\"use strict\";if(o=@toNumber(o),!@isFinite(o)||o<0)@throwRangeError(\"size has an incorrect value\");n.content.push({value:d,size:o}),n.size+=o})\n"; // peekQueueValue const JSC::ConstructAbility s_streamInternalsPeekQueueValueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2182,7 +2182,7 @@ const JSC::ConstructorKind s_streamInternalsExtractSizeAlgorithmCodeConstructorK const JSC::ImplementationVisibility s_streamInternalsExtractSizeAlgorithmCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_streamInternalsExtractSizeAlgorithmCodeLength = 176; static const JSC::Intrinsic s_streamInternalsExtractSizeAlgorithmCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_streamInternalsExtractSizeAlgorithmCode = "(function (p){\"use strict\";const d=p.size;if(d===@undefined)return()=>1;if(typeof d!==\"function\")@throwTypeError(\"strategy.size must be a function\");return(w)=>{return d(w)}})\n"; +const char* const s_streamInternalsExtractSizeAlgorithmCode = "(function (d){\"use strict\";const p=d.size;if(p===@undefined)return()=>1;if(typeof p!==\"function\")@throwTypeError(\"strategy.size must be a function\");return(w)=>{return p(w)}})\n"; // extractHighWaterMark const JSC::ConstructAbility s_streamInternalsExtractHighWaterMarkCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2190,7 +2190,7 @@ const JSC::ConstructorKind s_streamInternalsExtractHighWaterMarkCodeConstructorK const JSC::ImplementationVisibility s_streamInternalsExtractHighWaterMarkCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_streamInternalsExtractHighWaterMarkCodeLength = 188; static const JSC::Intrinsic s_streamInternalsExtractHighWaterMarkCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_streamInternalsExtractHighWaterMarkCode = "(function (b,c){\"use strict\";const o=b.highWaterMark;if(o===@undefined)return c;if(@isNaN(o)||o<0)@throwRangeError(\"highWaterMark value is negative or not a number\");return @toNumber(o)})\n"; +const char* const s_streamInternalsExtractHighWaterMarkCode = "(function (o,b){\"use strict\";const c=o.highWaterMark;if(c===@undefined)return b;if(@isNaN(c)||c<0)@throwRangeError(\"highWaterMark value is negative or not a number\");return @toNumber(c)})\n"; // extractHighWaterMarkFromQueuingStrategyInit const JSC::ConstructAbility s_streamInternalsExtractHighWaterMarkFromQueuingStrategyInitCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2206,7 +2206,7 @@ const JSC::ConstructorKind s_streamInternalsCreateFulfilledPromiseCodeConstructo const JSC::ImplementationVisibility s_streamInternalsCreateFulfilledPromiseCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_streamInternalsCreateFulfilledPromiseCodeLength = 81; static const JSC::Intrinsic s_streamInternalsCreateFulfilledPromiseCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_streamInternalsCreateFulfilledPromiseCode = "(function (n){\"use strict\";const d=@newPromise();return @fulfillPromise(d,n),d})\n"; +const char* const s_streamInternalsCreateFulfilledPromiseCode = "(function (d){\"use strict\";const n=@newPromise();return @fulfillPromise(n,d),n})\n"; // toDictionary const JSC::ConstructAbility s_streamInternalsToDictionaryCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2232,7 +2232,7 @@ const JSC::ConstructorKind s_importMetaObjectLoadCJS2ESMCodeConstructorKind = JS const JSC::ImplementationVisibility s_importMetaObjectLoadCJS2ESMCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_importMetaObjectLoadCJS2ESMCodeLength = 1387; static const JSC::Intrinsic s_importMetaObjectLoadCJS2ESMCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_importMetaObjectLoadCJS2ESMCode = "(function (B){\"use strict\";var D=@Loader,H=@createFIFO(),_=B;while(_){var w=D.registry.@get(_);if((w\?.state\?\?0)<=@ModuleFetch)@fulfillModuleSync(_),w=D.registry.@get(_);var W=@getPromiseInternalField(w.fetch,@promiseFieldReactionsOrResult),x=D.parseModule(_,W),z=w.module;if(x&&@isPromise(x)){var J=@getPromiseInternalField(x,@promiseFieldReactionsOrResult),X=@getPromiseInternalField(x,@promiseFieldFlags),Q=X&@promiseStateMask;if(Q===@promiseStatePending||J&&@isPromise(J))@throwTypeError(`require() async module \"${_}\" is unsupported. use \"await import()\" instead.`);else if(Q===@promiseStateRejected){if(!J\?.message)@throwTypeError(`${J+\"\"\?J:\"An error occurred\"} occurred while parsing module \\\"${_}\\\"`);throw J}w.module=z=J}else if(x&&!z)w.module=z=x;@setStateToMax(w,@ModuleLink);var Y=z.dependenciesMap,I=D.requestedModules(z),T=@newArrayWithSize(I.length);for(var F=0,Z=I.length;F=@ModuleLink)_=H.shift()}var V=D.linkAndEvaluateModule(B,@undefined);if(V&&@isPromise(V))@throwTypeError(`require() async module \\\"${B}\\\" is unsupported. use \"await import()\" instead.`);return D.registry.@get(B)})\n"; +const char* const s_importMetaObjectLoadCJS2ESMCode = "(function (D){\"use strict\";var H=@Loader,_=@createFIFO(),I=D;while(I){var w=H.registry.@get(I);if((w\?.state\?\?0)<=@ModuleFetch)@fulfillModuleSync(I),w=H.registry.@get(I);var L=@getPromiseInternalField(w.fetch,@promiseFieldReactionsOrResult),J=H.parseModule(I,L),Q=w.module;if(J&&@isPromise(J)){var T=@getPromiseInternalField(J,@promiseFieldReactionsOrResult),x=@getPromiseInternalField(J,@promiseFieldFlags),U=x&@promiseStateMask;if(U===@promiseStatePending||T&&@isPromise(T))@throwTypeError(`require() async module \"${I}\" is unsupported. use \"await import()\" instead.`);else if(U===@promiseStateRejected){if(!T\?.message)@throwTypeError(`${T+\"\"\?T:\"An error occurred\"} occurred while parsing module \\\"${I}\\\"`);throw T}w.module=Q=T}else if(J&&!Q)w.module=Q=J;@setStateToMax(w,@ModuleLink);var V=Q.dependenciesMap,W=H.requestedModules(Q),X=@newArrayWithSize(W.length);for(var Y=0,Z=W.length;Y=@ModuleLink)I=_.shift()}var G=H.linkAndEvaluateModule(D,@undefined);if(G&&@isPromise(G))@throwTypeError(`require() async module \\\"${D}\\\" is unsupported. use \"await import()\" instead.`);return H.registry.@get(D)})\n"; // requireESM const JSC::ConstructAbility s_importMetaObjectRequireESMCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2240,7 +2240,7 @@ const JSC::ConstructorKind s_importMetaObjectRequireESMCodeConstructorKind = JSC const JSC::ImplementationVisibility s_importMetaObjectRequireESMCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_importMetaObjectRequireESMCodeLength = 325; static const JSC::Intrinsic s_importMetaObjectRequireESMCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_importMetaObjectRequireESMCode = "(function (c){\"use strict\";var a=@Loader.registry.@get(c);if(!a||!a.evaluated)a=@loadCJS2ESM(c);if(!a||!a.evaluated||!a.module)@throwTypeError(`require() failed to evaluate module \"${c}\". This is an internal consistentency error.`);var _=@Loader.getModuleNamespaceObject(a.module);if(_[@commonJSSymbol]===0)return;return _})\n"; +const char* const s_importMetaObjectRequireESMCode = "(function (a){\"use strict\";var c=@Loader.registry.@get(a);if(!c||!c.evaluated)c=@loadCJS2ESM(a);if(!c||!c.evaluated||!c.module)@throwTypeError(`require() failed to evaluate module \"${a}\". This is an internal consistentency error.`);var _=@Loader.getModuleNamespaceObject(c.module);if(_[@commonJSSymbol]===0)return;return _})\n"; // internalRequire const JSC::ConstructAbility s_importMetaObjectInternalRequireCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2248,7 +2248,7 @@ const JSC::ConstructorKind s_importMetaObjectInternalRequireCodeConstructorKind const JSC::ImplementationVisibility s_importMetaObjectInternalRequireCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_importMetaObjectInternalRequireCodeLength = 747; static const JSC::Intrinsic s_importMetaObjectInternalRequireCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_importMetaObjectInternalRequireCode = "(function (_){\"use strict\";var n=@requireMap.@get(_);const g=_.substring(_.length-5);if(n)return n.exports;if(g===\".json\"){var j=globalThis[Symbol.for(\"_fs\")]||=@Bun.fs(),b=JSON.parse(j.readFileSync(_,\"utf8\"));return @requireMap.@set(_,@createCommonJSModule(_,b,!0)),b}else if(g===\".node\"){const k=@createCommonJSModule(_,{},!0);return process.dlopen(k,_),@requireMap.@set(_,k),k.exports}else if(g===\".toml\"){var j=globalThis[Symbol.for(\"_fs\")]||=@Bun.fs(),b=@Bun.TOML.parse(j.readFileSync(_,\"utf8\"));return @requireMap.@set(_,@createCommonJSModule(_,b,!0)),b}else{var b=@requireESM(_);const v=@requireMap.@get(_);if(v)return v.exports;var q=b\?.default;if(q\?.[@commonJSSymbol]===0)b=q;return @requireMap.@set(_,@createCommonJSModule(_,b,!0)),b}})\n"; +const char* const s_importMetaObjectInternalRequireCode = "(function (b){\"use strict\";var g=@requireMap.@get(b);const j=b.substring(b.length-5);if(g)return g.exports;if(j===\".json\"){var k=globalThis[Symbol.for(\"_fs\")]||=@Bun.fs(),n=JSON.parse(k.readFileSync(b,\"utf8\"));return @requireMap.@set(b,@createCommonJSModule(b,n,!0)),n}else if(j===\".node\"){const q=@createCommonJSModule(b,{},!0);return process.dlopen(q,b),@requireMap.@set(b,q),q.exports}else if(j===\".toml\"){var k=globalThis[Symbol.for(\"_fs\")]||=@Bun.fs(),n=@Bun.TOML.parse(k.readFileSync(b,\"utf8\"));return @requireMap.@set(b,@createCommonJSModule(b,n,!0)),n}else{var n=@requireESM(b);const v=@requireMap.@get(b);if(v)return v.exports;var _=n\?.default;if(_\?.[@commonJSSymbol]===0)n=_;return @requireMap.@set(b,@createCommonJSModule(b,n,!0)),n}})\n"; // createRequireCache const JSC::ConstructAbility s_importMetaObjectCreateRequireCacheCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2256,7 +2256,7 @@ const JSC::ConstructorKind s_importMetaObjectCreateRequireCacheCodeConstructorKi const JSC::ImplementationVisibility s_importMetaObjectCreateRequireCacheCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_importMetaObjectCreateRequireCacheCodeLength = 854; static const JSC::Intrinsic s_importMetaObjectCreateRequireCacheCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_importMetaObjectCreateRequireCacheCode = "(function (){\"use strict\";var c=new Map,L={};return new Proxy(L,{get(f,_){const h=@requireMap.@get(_);if(h)return h;const t=@Loader.registry.@get(_);if(t\?.evaluated){const u=@Loader.getModuleNamespaceObject(t.module),g=u[@commonJSSymbol]===0||u.default\?.[@commonJSSymbol]\?u.default:u,b=@createCommonJSModule(_,g,!0);return @requireMap.@set(_,b),b}return L[_]},set(f,_,h){return @requireMap.@set(_,h),!0},has(f,_){return @requireMap.@has(_)||@Loader.registry.@has(_)},deleteProperty(f,_){return c.@delete(_),@requireMap.@delete(_),@Loader.registry.@delete(_),!0},ownKeys(f){var _=[...@requireMap.@keys()];const h=[...@Loader.registry.@keys()];for(let t of h)if(!_.includes(t))@arrayPush(_,t);return _},getPrototypeOf(f){return null},getOwnPropertyDescriptor(f,_){if(@requireMap.@has(_)||@Loader.registry.@has(_))return{configurable:!0,enumerable:!0}}})})\n"; +const char* const s_importMetaObjectCreateRequireCacheCode = "(function (){\"use strict\";var _=new Map,f={};return new Proxy(f,{get(h,t){const u=@requireMap.@get(t);if(u)return u;const L=@Loader.registry.@get(t);if(L\?.evaluated){const b=@Loader.getModuleNamespaceObject(L.module),c=b[@commonJSSymbol]===0||b.default\?.[@commonJSSymbol]\?b.default:b,g=@createCommonJSModule(t,c,!0);return @requireMap.@set(t,g),g}return f[t]},set(h,t,u){return @requireMap.@set(t,u),!0},has(h,t){return @requireMap.@has(t)||@Loader.registry.@has(t)},deleteProperty(h,t){return _.@delete(t),@requireMap.@delete(t),@Loader.registry.@delete(t),!0},ownKeys(h){var t=[...@requireMap.@keys()];const u=[...@Loader.registry.@keys()];for(let L of u)if(!t.includes(L))@arrayPush(t,L);return t},getPrototypeOf(h){return null},getOwnPropertyDescriptor(h,t){if(@requireMap.@has(t)||@Loader.registry.@has(t))return{configurable:!0,enumerable:!0}}})})\n"; // require const JSC::ConstructAbility s_importMetaObjectRequireCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2440,7 +2440,7 @@ const JSC::ConstructorKind s_readableStreamInitializeReadableStreamCodeConstruct const JSC::ImplementationVisibility s_readableStreamInitializeReadableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInitializeReadableStreamCodeLength = 2065; static const JSC::Intrinsic s_readableStreamInitializeReadableStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInitializeReadableStreamCode = "(function (_,f){\"use strict\";if(_===@undefined)_={@bunNativeType:0,@bunNativePtr:0,@lazy:!1};if(f===@undefined)f={};if(!@isObject(_))@throwTypeError(\"ReadableStream constructor takes an object as first argument\");if(f!==@undefined&&!@isObject(f))@throwTypeError(\"ReadableStream constructor takes an object as second argument, if any\");@putByIdDirectPrivate(this,\"state\",@streamReadable),@putByIdDirectPrivate(this,\"reader\",@undefined),@putByIdDirectPrivate(this,\"storedError\",@undefined),@putByIdDirectPrivate(this,\"disturbed\",!1),@putByIdDirectPrivate(this,\"readableStreamController\",null),@putByIdDirectPrivate(this,\"bunNativeType\",@getByIdDirectPrivate(_,\"bunNativeType\")\?\?0),@putByIdDirectPrivate(this,\"bunNativePtr\",@getByIdDirectPrivate(_,\"bunNativePtr\")\?\?0);const B=_.type===\"direct\",b=!!_.@lazy,I=B||b;if(@getByIdDirectPrivate(_,\"pull\")!==@undefined&&!I){const v=@getByIdDirectPrivate(f,\"size\"),m=@getByIdDirectPrivate(f,\"highWaterMark\");return @putByIdDirectPrivate(this,\"highWaterMark\",m),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@setupReadableStreamDefaultController(this,_,v,m!==@undefined\?m:1,@getByIdDirectPrivate(_,\"start\"),@getByIdDirectPrivate(_,\"pull\"),@getByIdDirectPrivate(_,\"cancel\")),this}if(B)@putByIdDirectPrivate(this,\"underlyingSource\",_),@putByIdDirectPrivate(this,\"highWaterMark\",@getByIdDirectPrivate(f,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",()=>@createReadableStreamController(this,_,f));else if(I){const v=_.autoAllocateChunkSize;@putByIdDirectPrivate(this,\"highWaterMark\",@undefined),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"highWaterMark\",v||@getByIdDirectPrivate(f,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",()=>{const m=@lazyLoadStream(this,v);if(m)@createReadableStreamController(this,m,f)})}else @putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"highWaterMark\",@getByIdDirectPrivate(f,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",@undefined),@createReadableStreamController(this,_,f);return this})\n"; +const char* const s_readableStreamInitializeReadableStreamCode = "(function (f,m){\"use strict\";if(f===@undefined)f={@bunNativeType:0,@bunNativePtr:0,@lazy:!1};if(m===@undefined)m={};if(!@isObject(f))@throwTypeError(\"ReadableStream constructor takes an object as first argument\");if(m!==@undefined&&!@isObject(m))@throwTypeError(\"ReadableStream constructor takes an object as second argument, if any\");@putByIdDirectPrivate(this,\"state\",@streamReadable),@putByIdDirectPrivate(this,\"reader\",@undefined),@putByIdDirectPrivate(this,\"storedError\",@undefined),@putByIdDirectPrivate(this,\"disturbed\",!1),@putByIdDirectPrivate(this,\"readableStreamController\",null),@putByIdDirectPrivate(this,\"bunNativeType\",@getByIdDirectPrivate(f,\"bunNativeType\")\?\?0),@putByIdDirectPrivate(this,\"bunNativePtr\",@getByIdDirectPrivate(f,\"bunNativePtr\")\?\?0);const v=f.type===\"direct\",B=!!f.@lazy,I=v||B;if(@getByIdDirectPrivate(f,\"pull\")!==@undefined&&!I){const _=@getByIdDirectPrivate(m,\"size\"),b=@getByIdDirectPrivate(m,\"highWaterMark\");return @putByIdDirectPrivate(this,\"highWaterMark\",b),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@setupReadableStreamDefaultController(this,f,_,b!==@undefined\?b:1,@getByIdDirectPrivate(f,\"start\"),@getByIdDirectPrivate(f,\"pull\"),@getByIdDirectPrivate(f,\"cancel\")),this}if(v)@putByIdDirectPrivate(this,\"underlyingSource\",f),@putByIdDirectPrivate(this,\"highWaterMark\",@getByIdDirectPrivate(m,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",()=>@createReadableStreamController(this,f,m));else if(I){const _=f.autoAllocateChunkSize;@putByIdDirectPrivate(this,\"highWaterMark\",@undefined),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"highWaterMark\",_||@getByIdDirectPrivate(m,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",()=>{const b=@lazyLoadStream(this,_);if(b)@createReadableStreamController(this,b,m)})}else @putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"highWaterMark\",@getByIdDirectPrivate(m,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",@undefined),@createReadableStreamController(this,f,m);return this})\n"; // readableStreamToArray const JSC::ConstructAbility s_readableStreamReadableStreamToArrayCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2448,7 +2448,7 @@ const JSC::ConstructorKind s_readableStreamReadableStreamToArrayCodeConstructorK const JSC::ImplementationVisibility s_readableStreamReadableStreamToArrayCodeImplementationVisibility = JSC::ImplementationVisibility::Private; const int s_readableStreamReadableStreamToArrayCodeLength = 173; static const JSC::Intrinsic s_readableStreamReadableStreamToArrayCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamReadableStreamToArrayCode = "(function (_){\"use strict\";var b=@getByIdDirectPrivate(_,\"underlyingSource\");if(b!==@undefined)return @readableStreamToArrayDirect(_,b);return @readableStreamIntoArray(_)})\n"; +const char* const s_readableStreamReadableStreamToArrayCode = "(function (b){\"use strict\";var _=@getByIdDirectPrivate(b,\"underlyingSource\");if(_!==@undefined)return @readableStreamToArrayDirect(b,_);return @readableStreamIntoArray(b)})\n"; // readableStreamToText const JSC::ConstructAbility s_readableStreamReadableStreamToTextCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2464,7 +2464,7 @@ const JSC::ConstructorKind s_readableStreamReadableStreamToArrayBufferCodeConstr const JSC::ImplementationVisibility s_readableStreamReadableStreamToArrayBufferCodeImplementationVisibility = JSC::ImplementationVisibility::Private; const int s_readableStreamReadableStreamToArrayBufferCodeLength = 270; static const JSC::Intrinsic s_readableStreamReadableStreamToArrayBufferCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamReadableStreamToArrayBufferCode = "(function (_){\"use strict\";var p=@getByIdDirectPrivate(_,\"underlyingSource\");if(p!==@undefined)return @readableStreamToArrayBufferDirect(_,p);var b=@Bun.readableStreamToArray(_);if(@isPromise(b))return b.then(@Bun.concatArrayBuffers);return @Bun.concatArrayBuffers(b)})\n"; +const char* const s_readableStreamReadableStreamToArrayBufferCode = "(function (_){\"use strict\";var b=@getByIdDirectPrivate(_,\"underlyingSource\");if(b!==@undefined)return @readableStreamToArrayBufferDirect(_,b);var p=@Bun.readableStreamToArray(_);if(@isPromise(p))return p.then(@Bun.concatArrayBuffers);return @Bun.concatArrayBuffers(p)})\n"; // readableStreamToJSON const JSC::ConstructAbility s_readableStreamReadableStreamToJSONCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2488,7 +2488,7 @@ const JSC::ConstructorKind s_readableStreamConsumeReadableStreamCodeConstructorK const JSC::ImplementationVisibility s_readableStreamConsumeReadableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Private; const int s_readableStreamConsumeReadableStreamCodeLength = 1603; static const JSC::Intrinsic s_readableStreamConsumeReadableStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamConsumeReadableStreamCode = "(function (G,k,x){\"use strict\";const A=globalThis.Symbol.for(\"Bun.consumeReadableStreamPrototype\");var j=globalThis[A];if(!j)j=globalThis[A]=[];var q=j[k];if(q===@undefined){var[L,H,I,J,N,B]=globalThis[globalThis.Symbol.for(\"Bun.lazy\")](k);q=class K{handleError;handleClosed;processResult;constructor(_,F){this.#_=F,this.#F=_,this.#$=!1,this.handleError=this._handleError.bind(this),this.handleClosed=this._handleClosed.bind(this),this.processResult=this._processResult.bind(this),_.closed.then(this.handleClosed,this.handleError)}_handleClosed(){if(this.#$)return;this.#$=!0;var _=this.#_;this.#_=0,J(_),B(_)}_handleError(_){if(this.#$)return;this.#$=!0;var F=this.#_;this.#_=0,H(F,_),B(F)}#_;#$=!1;#F;_handleReadMany({value:_,done:F,size:w}){if(F){this.handleClosed();return}if(this.#$)return;I(this.#_,_,F,w)}read(){if(!this.#_)return @throwTypeError(\"ReadableStreamSink is already closed\");return this.processResult(this.#F.read())}_processResult(_){if(_&&@isPromise(_)){if(@getPromiseInternalField(_,@promiseFieldFlags)&@promiseStateFulfilled){const w=@getPromiseInternalField(_,@promiseFieldReactionsOrResult);if(w)_=w}}if(_&&@isPromise(_))return _.then(this.processResult,this.handleError),null;if(_.done)return this.handleClosed(),0;else if(_.value)return _.value;else return-1}readMany(){if(!this.#_)return @throwTypeError(\"ReadableStreamSink is already closed\");return this.processResult(this.#F.readMany())}};const D=k+1;if(j.length{@putByIdDirectPrivate(v,\"started\",1),@assert(!@getByIdDirectPrivate(v,\"pulling\")),@assert(!@getByIdDirectPrivate(v,\"pullAgain\")),@readableByteStreamControllerCallPullIfNeeded(v)},(d)=>{if(@getByIdDirectPrivate(b,\"state\")===@streamReadable)@readableByteStreamControllerError(v,d)}),@putByIdDirectPrivate(this,\"cancel\",@readableByteStreamControllerCancel),@putByIdDirectPrivate(this,\"pull\",@readableByteStreamControllerPull),this})\n"; +const char* const s_readableByteStreamInternalsPrivateInitializeReadableByteStreamControllerCode = "(function (_,v,b){\"use strict\";if(!@isReadableStream(_))@throwTypeError(\"ReadableByteStreamController needs a ReadableStream\");if(@getByIdDirectPrivate(_,\"readableStreamController\")!==null)@throwTypeError(\"ReadableStream already has a controller\");@putByIdDirectPrivate(this,\"controlledReadableStream\",_),@putByIdDirectPrivate(this,\"underlyingByteSource\",v),@putByIdDirectPrivate(this,\"pullAgain\",!1),@putByIdDirectPrivate(this,\"pulling\",!1),@readableByteStreamControllerClearPendingPullIntos(this),@putByIdDirectPrivate(this,\"queue\",@newQueue()),@putByIdDirectPrivate(this,\"started\",0),@putByIdDirectPrivate(this,\"closeRequested\",!1);let p=@toNumber(b);if(@isNaN(p)||p<0)@throwRangeError(\"highWaterMark value is negative or not a number\");@putByIdDirectPrivate(this,\"strategyHWM\",p);let R=v.autoAllocateChunkSize;if(R!==@undefined){if(R=@toNumber(R),R<=0||R===@Infinity||R===-@Infinity)@throwRangeError(\"autoAllocateChunkSize value is negative or equal to positive or negative infinity\")}@putByIdDirectPrivate(this,\"autoAllocateChunkSize\",R),@putByIdDirectPrivate(this,\"pendingPullIntos\",@createFIFO());const d=this;return @promiseInvokeOrNoopNoCatch(@getByIdDirectPrivate(d,\"underlyingByteSource\"),\"start\",[d]).@then(()=>{@putByIdDirectPrivate(d,\"started\",1),@assert(!@getByIdDirectPrivate(d,\"pulling\")),@assert(!@getByIdDirectPrivate(d,\"pullAgain\")),@readableByteStreamControllerCallPullIfNeeded(d)},(f)=>{if(@getByIdDirectPrivate(_,\"state\")===@streamReadable)@readableByteStreamControllerError(d,f)}),@putByIdDirectPrivate(this,\"cancel\",@readableByteStreamControllerCancel),@putByIdDirectPrivate(this,\"pull\",@readableByteStreamControllerPull),this})\n"; // readableStreamByteStreamControllerStart const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamByteStreamControllerStartCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2684,7 +2684,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeLength = 248; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerCancelCode = "(function (a,u){\"use strict\";var _=@getByIdDirectPrivate(a,\"pendingPullIntos\"),p=_.peek();if(p)p.bytesFilled=0;return @putByIdDirectPrivate(a,\"queue\",@newQueue()),@promiseInvokeOrNoop(@getByIdDirectPrivate(a,\"underlyingByteSource\"),\"cancel\",[u])})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerCancelCode = "(function (a,p){\"use strict\";var u=@getByIdDirectPrivate(a,\"pendingPullIntos\"),_=u.peek();if(_)_.bytesFilled=0;return @putByIdDirectPrivate(a,\"queue\",@newQueue()),@promiseInvokeOrNoop(@getByIdDirectPrivate(a,\"underlyingByteSource\"),\"cancel\",[p])})\n"; // readableByteStreamControllerError const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2716,7 +2716,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCodeLength = 272; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCode = "(function (u){\"use strict\";const _=@getByIdDirectPrivate(u,\"controlledReadableStream\"),d=@getByIdDirectPrivate(_,\"state\");if(d===@streamErrored)return null;if(d===@streamClosed)return 0;return @getByIdDirectPrivate(u,\"strategyHWM\")-@getByIdDirectPrivate(u,\"queue\").size})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCode = "(function (u){\"use strict\";const d=@getByIdDirectPrivate(u,\"controlledReadableStream\"),_=@getByIdDirectPrivate(d,\"state\");if(_===@streamErrored)return null;if(_===@streamClosed)return 0;return @getByIdDirectPrivate(u,\"strategyHWM\")-@getByIdDirectPrivate(u,\"queue\").size})\n"; // readableStreamHasBYOBReader const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamHasBYOBReaderCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2724,7 +2724,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableStreamHasBYOBRea const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableStreamHasBYOBReaderCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableStreamHasBYOBReaderCodeLength = 125; static const JSC::Intrinsic s_readableByteStreamInternalsReadableStreamHasBYOBReaderCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableStreamHasBYOBReaderCode = "(function (u){\"use strict\";const n=@getByIdDirectPrivate(u,\"reader\");return n!==@undefined&&@isReadableStreamBYOBReader(n)})\n"; +const char* const s_readableByteStreamInternalsReadableStreamHasBYOBReaderCode = "(function (n){\"use strict\";const u=@getByIdDirectPrivate(n,\"reader\");return u!==@undefined&&@isReadableStreamBYOBReader(u)})\n"; // readableStreamHasDefaultReader const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamHasDefaultReaderCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2732,7 +2732,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableStreamHasDefault const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableStreamHasDefaultReaderCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableStreamHasDefaultReaderCodeLength = 128; static const JSC::Intrinsic s_readableByteStreamInternalsReadableStreamHasDefaultReaderCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableStreamHasDefaultReaderCode = "(function (n){\"use strict\";const l=@getByIdDirectPrivate(n,\"reader\");return l!==@undefined&&@isReadableStreamDefaultReader(l)})\n"; +const char* const s_readableByteStreamInternalsReadableStreamHasDefaultReaderCode = "(function (l){\"use strict\";const n=@getByIdDirectPrivate(l,\"reader\");return n!==@undefined&&@isReadableStreamDefaultReader(n)})\n"; // readableByteStreamControllerHandleQueueDrain const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerHandleQueueDrainCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2748,7 +2748,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerPullCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerPullCodeLength = 1005; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerPullCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerPullCode = "(function (_){\"use strict\";const P=@getByIdDirectPrivate(_,\"controlledReadableStream\");if(@assert(@readableStreamHasDefaultReader(P)),@getByIdDirectPrivate(_,\"queue\").content\?.isNotEmpty()){const d=@getByIdDirectPrivate(_,\"queue\").content.shift();@getByIdDirectPrivate(_,\"queue\").size-=d.byteLength,@readableByteStreamControllerHandleQueueDrain(_);let h;try{h=new @Uint8Array(d.buffer,d.byteOffset,d.byteLength)}catch(F){return @Promise.@reject(F)}return @createFulfilledPromise({value:h,done:!1})}if(@getByIdDirectPrivate(_,\"autoAllocateChunkSize\")!==@undefined){let d;try{d=@createUninitializedArrayBuffer(@getByIdDirectPrivate(_,\"autoAllocateChunkSize\"))}catch(F){return @Promise.@reject(F)}const h={buffer:d,byteOffset:0,byteLength:@getByIdDirectPrivate(_,\"autoAllocateChunkSize\"),bytesFilled:0,elementSize:1,ctor:@Uint8Array,readerType:\"default\"};@getByIdDirectPrivate(_,\"pendingPullIntos\").push(h)}const R=@readableStreamAddReadRequest(P);return @readableByteStreamControllerCallPullIfNeeded(_),R})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerPullCode = "(function (_){\"use strict\";const h=@getByIdDirectPrivate(_,\"controlledReadableStream\");if(@assert(@readableStreamHasDefaultReader(h)),@getByIdDirectPrivate(_,\"queue\").content\?.isNotEmpty()){const F=@getByIdDirectPrivate(_,\"queue\").content.shift();@getByIdDirectPrivate(_,\"queue\").size-=F.byteLength,@readableByteStreamControllerHandleQueueDrain(_);let P;try{P=new @Uint8Array(F.buffer,F.byteOffset,F.byteLength)}catch(R){return @Promise.@reject(R)}return @createFulfilledPromise({value:P,done:!1})}if(@getByIdDirectPrivate(_,\"autoAllocateChunkSize\")!==@undefined){let F;try{F=@createUninitializedArrayBuffer(@getByIdDirectPrivate(_,\"autoAllocateChunkSize\"))}catch(R){return @Promise.@reject(R)}const P={buffer:F,byteOffset:0,byteLength:@getByIdDirectPrivate(_,\"autoAllocateChunkSize\"),bytesFilled:0,elementSize:1,ctor:@Uint8Array,readerType:\"default\"};@getByIdDirectPrivate(_,\"pendingPullIntos\").push(P)}const d=@readableStreamAddReadRequest(h);return @readableByteStreamControllerCallPullIfNeeded(_),d})\n"; // readableByteStreamControllerShouldCallPull const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerShouldCallPullCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2788,7 +2788,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCodeLength = 1076; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCode = "(function (d,i){\"use strict\";const _=@getByIdDirectPrivate(d,\"controlledReadableStream\");switch(@assert(!@getByIdDirectPrivate(d,\"closeRequested\")),@assert(@getByIdDirectPrivate(_,\"state\")===@streamReadable),@getByIdDirectPrivate(_,\"reader\")\?@readableStreamReaderKind(@getByIdDirectPrivate(_,\"reader\")):0){case 1:{if(!@getByIdDirectPrivate(@getByIdDirectPrivate(_,\"reader\"),\"readRequests\")\?.isNotEmpty())@readableByteStreamControllerEnqueueChunk(d,@transferBufferToCurrentRealm(i.buffer),i.byteOffset,i.byteLength);else{@assert(!@getByIdDirectPrivate(d,\"queue\").content.size());const f=i.constructor===@Uint8Array\?i:new @Uint8Array(i.buffer,i.byteOffset,i.byteLength);@readableStreamFulfillReadRequest(_,f,!1)}break}case 2:{@readableByteStreamControllerEnqueueChunk(d,@transferBufferToCurrentRealm(i.buffer),i.byteOffset,i.byteLength),@readableByteStreamControllerProcessPullDescriptors(d);break}case 3:break;default:{@assert(!@isReadableStreamLocked(_)),@readableByteStreamControllerEnqueueChunk(d,@transferBufferToCurrentRealm(i.buffer),i.byteOffset,i.byteLength);break}}})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCode = "(function (i,_){\"use strict\";const f=@getByIdDirectPrivate(i,\"controlledReadableStream\");switch(@assert(!@getByIdDirectPrivate(i,\"closeRequested\")),@assert(@getByIdDirectPrivate(f,\"state\")===@streamReadable),@getByIdDirectPrivate(f,\"reader\")\?@readableStreamReaderKind(@getByIdDirectPrivate(f,\"reader\")):0){case 1:{if(!@getByIdDirectPrivate(@getByIdDirectPrivate(f,\"reader\"),\"readRequests\")\?.isNotEmpty())@readableByteStreamControllerEnqueueChunk(i,@transferBufferToCurrentRealm(_.buffer),_.byteOffset,_.byteLength);else{@assert(!@getByIdDirectPrivate(i,\"queue\").content.size());const d=_.constructor===@Uint8Array\?_:new @Uint8Array(_.buffer,_.byteOffset,_.byteLength);@readableStreamFulfillReadRequest(f,d,!1)}break}case 2:{@readableByteStreamControllerEnqueueChunk(i,@transferBufferToCurrentRealm(_.buffer),_.byteOffset,_.byteLength),@readableByteStreamControllerProcessPullDescriptors(i);break}case 3:break;default:{@assert(!@isReadableStreamLocked(f)),@readableByteStreamControllerEnqueueChunk(i,@transferBufferToCurrentRealm(_.buffer),_.byteOffset,_.byteLength);break}}})\n"; // readableByteStreamControllerEnqueueChunk const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2796,7 +2796,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCodeLength = 160; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCode = "(function (_,d,p,a){\"use strict\";@getByIdDirectPrivate(_,\"queue\").content.push({buffer:d,byteOffset:p,byteLength:a}),@getByIdDirectPrivate(_,\"queue\").size+=a})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCode = "(function (_,a,d,p){\"use strict\";@getByIdDirectPrivate(_,\"queue\").content.push({buffer:a,byteOffset:d,byteLength:p}),@getByIdDirectPrivate(_,\"queue\").size+=p})\n"; // readableByteStreamControllerRespondWithNewView const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2804,7 +2804,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCodeLength = 417; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCode = "(function (d,u){\"use strict\";@assert(@getByIdDirectPrivate(d,\"pendingPullIntos\").isNotEmpty());let a=@getByIdDirectPrivate(d,\"pendingPullIntos\").peek();if(a.byteOffset+a.bytesFilled!==u.byteOffset)@throwRangeError(\"Invalid value for view.byteOffset\");if(a.byteLength!==u.byteLength)@throwRangeError(\"Invalid value for view.byteLength\");a.buffer=u.buffer,@readableByteStreamControllerRespondInternal(d,u.byteLength)})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCode = "(function (u,a){\"use strict\";@assert(@getByIdDirectPrivate(u,\"pendingPullIntos\").isNotEmpty());let d=@getByIdDirectPrivate(u,\"pendingPullIntos\").peek();if(d.byteOffset+d.bytesFilled!==a.byteOffset)@throwRangeError(\"Invalid value for view.byteOffset\");if(d.byteLength!==a.byteLength)@throwRangeError(\"Invalid value for view.byteLength\");d.buffer=a.buffer,@readableByteStreamControllerRespondInternal(u,a.byteLength)})\n"; // readableByteStreamControllerRespond const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2812,7 +2812,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerRespondCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerRespondCodeLength = 251; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerRespondCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondCode = "(function (I,u){\"use strict\";if(u=@toNumber(u),@isNaN(u)||u===@Infinity||u<0)@throwRangeError(\"bytesWritten has an incorrect value\");@assert(@getByIdDirectPrivate(I,\"pendingPullIntos\").isNotEmpty()),@readableByteStreamControllerRespondInternal(I,u)})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondCode = "(function (u,I){\"use strict\";if(I=@toNumber(I),@isNaN(I)||I===@Infinity||I<0)@throwRangeError(\"bytesWritten has an incorrect value\");@assert(@getByIdDirectPrivate(u,\"pendingPullIntos\").isNotEmpty()),@readableByteStreamControllerRespondInternal(u,I)})\n"; // readableByteStreamControllerRespondInternal const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2828,7 +2828,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCodeLength = 799; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCode = "(function (w,_,f){\"use strict\";if(f.bytesFilled+_>f.byteLength)@throwRangeError(\"bytesWritten value is too great\");if(@assert(@getByIdDirectPrivate(w,\"pendingPullIntos\").isEmpty()||@getByIdDirectPrivate(w,\"pendingPullIntos\").peek()===f),@readableByteStreamControllerInvalidateBYOBRequest(w),f.bytesFilled+=_,f.bytesFilled0){const h=f.byteOffset+f.bytesFilled,g=@cloneArrayBuffer(f.buffer,h-R,R);@readableByteStreamControllerEnqueueChunk(w,g,0,g.byteLength)}f.buffer=@transferBufferToCurrentRealm(f.buffer),f.bytesFilled-=R,@readableByteStreamControllerCommitDescriptor(@getByIdDirectPrivate(w,\"controlledReadableStream\"),f),@readableByteStreamControllerProcessPullDescriptors(w)})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCode = "(function (f,R,w){\"use strict\";if(w.bytesFilled+R>w.byteLength)@throwRangeError(\"bytesWritten value is too great\");if(@assert(@getByIdDirectPrivate(f,\"pendingPullIntos\").isEmpty()||@getByIdDirectPrivate(f,\"pendingPullIntos\").peek()===w),@readableByteStreamControllerInvalidateBYOBRequest(f),w.bytesFilled+=R,w.bytesFilled0){const g=w.byteOffset+w.bytesFilled,h=@cloneArrayBuffer(w.buffer,g-_,_);@readableByteStreamControllerEnqueueChunk(f,h,0,h.byteLength)}w.buffer=@transferBufferToCurrentRealm(w.buffer),w.bytesFilled-=_,@readableByteStreamControllerCommitDescriptor(@getByIdDirectPrivate(f,\"controlledReadableStream\"),w),@readableByteStreamControllerProcessPullDescriptors(f)})\n"; // readableByteStreamControllerRespondInClosedState const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2852,7 +2852,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeLength = 970; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCode = "(function (q,_){\"use strict\";const H=_.bytesFilled-_.bytesFilled%_.elementSize,z=@getByIdDirectPrivate(q,\"queue\").size<_.byteLength-_.bytesFilled\?@getByIdDirectPrivate(q,\"queue\").size:_.byteLength-_.bytesFilled,E=_.bytesFilled+z,G=E-E%_.elementSize;let v=z,w=!1;if(G>H)v=G-_.bytesFilled,w=!0;while(v>0){let j=@getByIdDirectPrivate(q,\"queue\").content.peek();const k=v0),@assert(_.bytesFilled<_.elementSize);return w})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCode = "(function (_,q){\"use strict\";const z=q.bytesFilled-q.bytesFilled%q.elementSize,j=@getByIdDirectPrivate(_,\"queue\").sizez)G=k-q.bytesFilled,v=!0;while(G>0){let H=@getByIdDirectPrivate(_,\"queue\").content.peek();const w=G0),@assert(q.bytesFilled0){if(@readableByteStreamControllerFillDescriptorFromQueue(b,_)){const k=@readableByteStreamControllerConvertDescriptor(_);return @readableByteStreamControllerHandleQueueDrain(b),@createFulfilledPromise({value:k,done:!1})}if(@getByIdDirectPrivate(b,\"closeRequested\")){const k=@makeTypeError(\"Closing stream has been requested\");return @readableByteStreamControllerError(b,k),@Promise.@reject(k)}}_.buffer=@transferBufferToCurrentRealm(_.buffer),@getByIdDirectPrivate(b,\"pendingPullIntos\").push(_);const R=@readableStreamAddReadIntoRequest(A);return @readableByteStreamControllerCallPullIfNeeded(b),R})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCode = "(function (_,E){\"use strict\";const b=@getByIdDirectPrivate(_,\"controlledReadableStream\");let d=1;if(E.BYTES_PER_ELEMENT!==@undefined)d=E.BYTES_PER_ELEMENT;const k=E.constructor,A={buffer:E.buffer,byteOffset:E.byteOffset,byteLength:E.byteLength,bytesFilled:0,elementSize:d,ctor:k,readerType:\"byob\"};var L=@getByIdDirectPrivate(_,\"pendingPullIntos\");if(L\?.isNotEmpty())return A.buffer=@transferBufferToCurrentRealm(A.buffer),L.push(A),@readableStreamAddReadIntoRequest(b);if(@getByIdDirectPrivate(b,\"state\")===@streamClosed){const R=new k(A.buffer,A.byteOffset,0);return @createFulfilledPromise({value:R,done:!0})}if(@getByIdDirectPrivate(_,\"queue\").size>0){if(@readableByteStreamControllerFillDescriptorFromQueue(_,A)){const R=@readableByteStreamControllerConvertDescriptor(A);return @readableByteStreamControllerHandleQueueDrain(_),@createFulfilledPromise({value:R,done:!1})}if(@getByIdDirectPrivate(_,\"closeRequested\")){const R=@makeTypeError(\"Closing stream has been requested\");return @readableByteStreamControllerError(_,R),@Promise.@reject(R)}}A.buffer=@transferBufferToCurrentRealm(A.buffer),@getByIdDirectPrivate(_,\"pendingPullIntos\").push(A);const N=@readableStreamAddReadIntoRequest(b);return @readableByteStreamControllerCallPullIfNeeded(_),N})\n"; // readableStreamAddReadIntoRequest const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamAddReadIntoRequestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2942,7 +2942,7 @@ const JSC::ConstructorKind s_writableStreamDefaultControllerErrorCodeConstructor const JSC::ImplementationVisibility s_writableStreamDefaultControllerErrorCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamDefaultControllerErrorCodeLength = 301; static const JSC::Intrinsic s_writableStreamDefaultControllerErrorCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamDefaultControllerErrorCode = "(function (r){\"use strict\";if(@getByIdDirectPrivate(this,\"abortSteps\")===@undefined)throw @makeThisTypeError(\"WritableStreamDefaultController\",\"error\");const t=@getByIdDirectPrivate(this,\"stream\");if(@getByIdDirectPrivate(t,\"state\")!==\"writable\")return;@writableStreamDefaultControllerError(this,r)})\n"; +const char* const s_writableStreamDefaultControllerErrorCode = "(function (t){\"use strict\";if(@getByIdDirectPrivate(this,\"abortSteps\")===@undefined)throw @makeThisTypeError(\"WritableStreamDefaultController\",\"error\");const r=@getByIdDirectPrivate(this,\"stream\");if(@getByIdDirectPrivate(r,\"state\")!==\"writable\")return;@writableStreamDefaultControllerError(this,t)})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ @@ -2960,7 +2960,7 @@ const JSC::ConstructorKind s_eventSourceGetEventSourceCodeConstructorKind = JSC: const JSC::ImplementationVisibility s_eventSourceGetEventSourceCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_eventSourceGetEventSourceCodeLength = 5477; static const JSC::Intrinsic s_eventSourceGetEventSourceCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_eventSourceGetEventSourceCode = "(function (){\"use strict\";class F extends EventTarget{#B;#$;#J;#K;#L;#M=!1;#A=null;#j=\"\";#O=\"\";#Q=\"\";#U=!0;#F=0;#G=0;#X=0;#w=null;static#V(j){j.#H()}static#Y(j,A){const w=j.data,B=w.#Q\?`Last-Event-ID: ${w.#Q}\\r\\n`:\"\",K=`GET ${A.pathname}${A.search} HTTP/1.1\\r\\nHost: bun\\r\\nContent-type: text/event-stream\\r\\nContent-length: 0\\r\\n${B}\\r\\n`,G=j.write(K);if(G!==K.length)w.#O=K.substring(G)}static#Z(j,A,w){for(;;){if(w>=A.length)return;let B=-1,K=A.indexOf(\"\\r\\n\",w);const G=K+2;if(K>0)if(j.#F===0){const J=parseInt(A.substring(w,K),16);if(J===0){j.#$=2,j.#A\?.end();return}B=G+J}else B=A.length;else{if(j.#j.length===0){j.#j+=A.substring(w);return}B=A.length}let M=A.substring(G,B);w=B+2;let Z=0,L=M.indexOf(\"\\n\\n\");if(L==-1){j.#j+=A.substring(G);return}if(j.#j.length)j.#j+=M,M=j.#j,j.#j=\"\";let X=!0;while(X){const J=M.substring(Z,L);let Y,O=\"\",Q,W=0,V=-1;for(;;){let z=J.indexOf(\"\\n\",W);if(z===-1){if(W>=J.length)break;z=J.length}const U=J.substring(W,z);if(U.startsWith(\"data:\"))if(O.length)O+=`\\n${U.substring(5).trim()}`;else O=U.substring(5).trim();else if(U.startsWith(\"event:\"))Y=U.substring(6).trim();else if(U.startsWith(\"id:\"))Q=U.substring(3).trim();else if(U.startsWith(\"retry:\")){if(V=parseInt(U.substring(6).trim(),10),@isNaN(V))V=-1}W=z+1}if(j.#Q=Q||\"\",V>=0)j.#X=V;if(O||Q||Y)j.dispatchEvent(new MessageEvent(Y||\"message\",{data:O||\"\",origin:j.#B.origin,source:j,lastEventId:Q}));if(M.length===L+2){X=!1;break}const H=M.indexOf(\"\\n\\n\",L+1);if(H===-1)break;Z=L,L=H}}}static#z={open(j){const A=j.data;if(A.#A=j,!A.#M)F.#Y(j,A.#B)},handshake(j,A,w){const B=j.data;if(A)F.#Y(j,B.#B);else B.#$=2,B.dispatchEvent(new ErrorEvent(\"error\",{error:w})),j.end()},data(j,A){const w=j.data;switch(w.#$){case 0:{let B=A.toString();const K=B.indexOf(\"\\r\\n\\r\\n\");if(K===-1){w.#j+=B;return}if(w.#j.length)w.#j+=B,B=w.#j,w.#j=\"\";const G=B.substring(0,K),M=G.indexOf(\"\\r\\n\");if(M===-1){w.#$=2,w.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Invalid HTTP request\")})),j.end();return}const Z=G.substring(0,M);if(Z!==\"HTTP/1.1 200 OK\"){w.#$=2,w.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(Z)})),j.end();return}let L=M+1,X=!1,J=-1;for(;;){let O=G.indexOf(\"\\r\\n\",L);if(O===-1){if(L>=G.length){if(!X)w.#$=2,w.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's response has no MIME type and \"text/event-stream\" is required. Aborting the connection.`)})),j.end();return}O=G.length}const Q=G.substring(L+1,O),W=Q.indexOf(\":\"),V=Q.substring(0,W),H=V.localeCompare(\"content-type\",@undefined,{sensitivity:\"accent\"})===0;if(L=O+1,H)if(Q.endsWith(\" text/event-stream\"))X=!0;else{w.#$=2,w.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's response has a MIME type that is not \"text/event-stream\". Aborting the connection.`)})),j.end();return}else if(V.localeCompare(\"content-length\",@undefined,{sensitivity:\"accent\"})===0){if(J=parseInt(Q.substring(W+1).trim(),10),@isNaN(J)||J<=0){w.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's Content-Length is invalid. Aborting the connection.`)})),j.end();return}if(X)break}else if(V.localeCompare(\"transfer-encoding\",@undefined,{sensitivity:\"accent\"})===0){if(Q.substring(W+1).trim()!==\"chunked\"){w.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's Transfer-Encoding is invalid. Aborting the connection.`)})),j.end();return}if(J=0,X)break}}w.#F=J,w.#$=1,w.dispatchEvent(new Event(\"open\"));const Y=B.substring(K+4);if(F.#Z(w,Y,0),w.#F>0){if(w.#G+=Y.length,w.#G>=w.#F)w.#$=2,j.end()}return}case 1:if(F.#Z(w,A.toString(),2),w.#F>0){if(w.#G+=A.byteLength,w.#G>=w.#F)w.#$=2,j.end()}return;default:break}},drain(j){const A=j.data;if(A.#$===0){const w=A.#j;if(w.length){const B=j.write(w);if(B!==w.length)j.data.#O=w.substring(B);else j.data.#O=\"\"}}},close:F.#W,end(j){F.#W(j).dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Connection closed by server\")}))},timeout(j){F.#W(j).dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Timeout\")}))},binaryType:\"buffer\"};static#W(j){const A=j.data;if(A.#A=null,A.#G=0,A.#$=2,A.#U){if(A.#w)clearTimeout(A.#w);A.#w=setTimeout(F.#V,A.#X,A)}return A}constructor(j,A=@undefined){super();const w=new URL(j);this.#M=w.protocol===\"https:\",this.#B=w,this.#$=2,process.nextTick(F.#V,this)}ref(){this.#w\?.ref(),this.#A\?.ref()}unref(){this.#w\?.unref(),this.#A\?.unref()}#H(){if(this.#$!==2)return;const j=this.#B,A=this.#M;this.#$=0,@Bun.connect({data:this,socket:F.#z,hostname:j.hostname,port:parseInt(j.port||(A\?\"443\":\"80\"),10),tls:A\?{requestCert:!0,rejectUnauthorized:!1}:!1}).catch((w)=>{if(super.dispatchEvent(new ErrorEvent(\"error\",{error:w})),this.#U){if(this.#w)this.#w.unref\?.();this.#w=setTimeout(F.#V,1000,this)}})}get url(){return this.#B.href}get readyState(){return this.#$}close(){this.#U=!1,this.#$=2,this.#A\?.unref(),this.#A\?.end()}get onopen(){return this.#L}get onerror(){return this.#J}get onmessage(){return this.#K}set onopen(j){if(this.#L)super.removeEventListener(\"close\",this.#L);super.addEventListener(\"open\",j),this.#L=j}set onerror(j){if(this.#J)super.removeEventListener(\"error\",this.#J);super.addEventListener(\"error\",j),this.#J=j}set onmessage(j){if(this.#K)super.removeEventListener(\"message\",this.#K);super.addEventListener(\"message\",j),this.#K=j}}return Object.defineProperty(F.prototype,\"CONNECTING\",{enumerable:!0,value:0}),Object.defineProperty(F.prototype,\"OPEN\",{enumerable:!0,value:1}),Object.defineProperty(F.prototype,\"CLOSED\",{enumerable:!0,value:2}),F[Symbol.for(\"CommonJS\")]=0,F})\n"; +const char* const s_eventSourceGetEventSourceCode = "(function (){\"use strict\";class F extends EventTarget{#$;#j;#w;#A;#B;#F=!1;#G=null;#J=\"\";#K=\"\";#L=\"\";#M=!0;#O=0;#Q=0;#U=0;#V=null;static#W(W){W.#H()}static#X(W,Y){const O=W.data,Z=O.#L\?`Last-Event-ID: ${O.#L}\\r\\n`:\"\",j=`GET ${Y.pathname}${Y.search} HTTP/1.1\\r\\nHost: bun\\r\\nContent-type: text/event-stream\\r\\nContent-length: 0\\r\\n${Z}\\r\\n`,G=W.write(j);if(G!==j.length)O.#K=j.substring(G)}static#Y(W,Y,O){for(;;){if(O>=Y.length)return;let Z=-1,j=Y.indexOf(\"\\r\\n\",O);const G=j+2;if(j>0)if(W.#O===0){const w=parseInt(Y.substring(O,j),16);if(w===0){W.#j=2,W.#G\?.end();return}Z=G+w}else Z=Y.length;else{if(W.#J.length===0){W.#J+=Y.substring(O);return}Z=Y.length}let z=Y.substring(G,Z);O=Z+2;let B=0,J=z.indexOf(\"\\n\\n\");if(J==-1){W.#J+=Y.substring(G);return}if(W.#J.length)W.#J+=z,z=W.#J,W.#J=\"\";let K=!0;while(K){const w=z.substring(B,J);let Q,L=\"\",X,A=0,U=-1;for(;;){let V=w.indexOf(\"\\n\",A);if(V===-1){if(A>=w.length)break;V=w.length}const H=w.substring(A,V);if(H.startsWith(\"data:\"))if(L.length)L+=`\\n${H.substring(5).trim()}`;else L=H.substring(5).trim();else if(H.startsWith(\"event:\"))Q=H.substring(6).trim();else if(H.startsWith(\"id:\"))X=H.substring(3).trim();else if(H.startsWith(\"retry:\")){if(U=parseInt(H.substring(6).trim(),10),@isNaN(U))U=-1}A=V+1}if(W.#L=X||\"\",U>=0)W.#U=U;if(L||X||Q)W.dispatchEvent(new MessageEvent(Q||\"message\",{data:L||\"\",origin:W.#$.origin,source:W,lastEventId:X}));if(z.length===J+2){K=!1;break}const M=z.indexOf(\"\\n\\n\",J+1);if(M===-1)break;B=J,J=M}}}static#Z={open(W){const Y=W.data;if(Y.#G=W,!Y.#F)F.#X(W,Y.#$)},handshake(W,Y,O){const Z=W.data;if(Y)F.#X(W,Z.#$);else Z.#j=2,Z.dispatchEvent(new ErrorEvent(\"error\",{error:O})),W.end()},data(W,Y){const O=W.data;switch(O.#j){case 0:{let Z=Y.toString();const j=Z.indexOf(\"\\r\\n\\r\\n\");if(j===-1){O.#J+=Z;return}if(O.#J.length)O.#J+=Z,Z=O.#J,O.#J=\"\";const G=Z.substring(0,j),z=G.indexOf(\"\\r\\n\");if(z===-1){O.#j=2,O.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Invalid HTTP request\")})),W.end();return}const B=G.substring(0,z);if(B!==\"HTTP/1.1 200 OK\"){O.#j=2,O.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(B)})),W.end();return}let J=z+1,K=!1,w=-1;for(;;){let L=G.indexOf(\"\\r\\n\",J);if(L===-1){if(J>=G.length){if(!K)O.#j=2,O.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's response has no MIME type and \"text/event-stream\" is required. Aborting the connection.`)})),W.end();return}L=G.length}const X=G.substring(J+1,L),A=X.indexOf(\":\"),U=X.substring(0,A),M=U.localeCompare(\"content-type\",@undefined,{sensitivity:\"accent\"})===0;if(J=L+1,M)if(X.endsWith(\" text/event-stream\"))K=!0;else{O.#j=2,O.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's response has a MIME type that is not \"text/event-stream\". Aborting the connection.`)})),W.end();return}else if(U.localeCompare(\"content-length\",@undefined,{sensitivity:\"accent\"})===0){if(w=parseInt(X.substring(A+1).trim(),10),@isNaN(w)||w<=0){O.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's Content-Length is invalid. Aborting the connection.`)})),W.end();return}if(K)break}else if(U.localeCompare(\"transfer-encoding\",@undefined,{sensitivity:\"accent\"})===0){if(X.substring(A+1).trim()!==\"chunked\"){O.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's Transfer-Encoding is invalid. Aborting the connection.`)})),W.end();return}if(w=0,K)break}}O.#O=w,O.#j=1,O.dispatchEvent(new Event(\"open\"));const Q=Z.substring(j+4);if(F.#Y(O,Q,0),O.#O>0){if(O.#Q+=Q.length,O.#Q>=O.#O)O.#j=2,W.end()}return}case 1:if(F.#Y(O,Y.toString(),2),O.#O>0){if(O.#Q+=Y.byteLength,O.#Q>=O.#O)O.#j=2,W.end()}return;default:break}},drain(W){const Y=W.data;if(Y.#j===0){const O=Y.#J;if(O.length){const Z=W.write(O);if(Z!==O.length)W.data.#K=O.substring(Z);else W.data.#K=\"\"}}},close:F.#z,end(W){F.#z(W).dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Connection closed by server\")}))},timeout(W){F.#z(W).dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Timeout\")}))},binaryType:\"buffer\"};static#z(W){const Y=W.data;if(Y.#G=null,Y.#Q=0,Y.#j=2,Y.#M){if(Y.#V)clearTimeout(Y.#V);Y.#V=setTimeout(F.#W,Y.#U,Y)}return Y}constructor(W,Y=@undefined){super();const O=new URL(W);this.#F=O.protocol===\"https:\",this.#$=O,this.#j=2,process.nextTick(F.#W,this)}ref(){this.#V\?.ref(),this.#G\?.ref()}unref(){this.#V\?.unref(),this.#G\?.unref()}#H(){if(this.#j!==2)return;const W=this.#$,Y=this.#F;this.#j=0,@Bun.connect({data:this,socket:F.#Z,hostname:W.hostname,port:parseInt(W.port||(Y\?\"443\":\"80\"),10),tls:Y\?{requestCert:!0,rejectUnauthorized:!1}:!1}).catch((O)=>{if(super.dispatchEvent(new ErrorEvent(\"error\",{error:O})),this.#M){if(this.#V)this.#V.unref\?.();this.#V=setTimeout(F.#W,1000,this)}})}get url(){return this.#$.href}get readyState(){return this.#j}close(){this.#M=!1,this.#j=2,this.#G\?.unref(),this.#G\?.end()}get onopen(){return this.#B}get onerror(){return this.#w}get onmessage(){return this.#A}set onopen(W){if(this.#B)super.removeEventListener(\"close\",this.#B);super.addEventListener(\"open\",W),this.#B=W}set onerror(W){if(this.#w)super.removeEventListener(\"error\",this.#w);super.addEventListener(\"error\",W),this.#w=W}set onmessage(W){if(this.#A)super.removeEventListener(\"message\",this.#A);super.addEventListener(\"message\",W),this.#A=W}}return Object.defineProperty(F.prototype,\"CONNECTING\",{enumerable:!0,value:0}),Object.defineProperty(F.prototype,\"OPEN\",{enumerable:!0,value:1}),Object.defineProperty(F.prototype,\"CLOSED\",{enumerable:!0,value:2}),F[Symbol.for(\"CommonJS\")]=0,F})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ diff --git a/src/js/out/modules/node/stream.js b/src/js/out/modules/node/stream.js index 0497ffd82..06727e66e 100644 --- a/src/js/out/modules/node/stream.js +++ b/src/js/out/modules/node/stream.js @@ -1,2 +1,2 @@ -import{EventEmitter as Iq} from"bun:events_native";import{StringDecoder as aq} from"node:string_decoder";var tq=function(a){return typeof a==="object"&&a!==null&&a instanceof ReadableStream},eq=function(a,j){if(typeof a!=="boolean")throw new qQ(j,"boolean",a)};var qQ=function(a,j,B){return new Error(`The argument '${a}' is invalid. Received '${B}' for type '${j}'`)},QQ=function(a,j,B){return new Error(`The value '${j}' is invalid for argument '${a}'. Reason: ${B}`)},YQ=function(a,j){var[B,G,y,A,M,R,P]=globalThis[Symbol.for("Bun.lazy")](a),g=[!1],k=function(E,I,Z,U){if(I>0){const T=Z.subarray(0,I),_=Z.subarray(I);if(T.byteLength>0)E.push(T);if(U)E.push(null);return _.byteLength>0?_:void 0}if(U)E.push(null);return Z},c=function(E,I,Z,U){if(I.byteLength>0)E.push(I);if(U)E.push(null);return Z},O=process.env.BUN_DISABLE_DYNAMIC_CHUNK_SIZE!=="1";const l=new FinalizationRegistry((E)=>E&&M(E)),D=512;var p=class E extends j{#q;#Q=1;#X=!1;#H=void 0;#J;#K=!1;#Z=!O;#B;constructor(I,Z={}){super(Z);if(typeof Z.highWaterMark==="number")this.#J=Z.highWaterMark;else this.#J=262144;this.#q=I,this.#X=!1,this.#H=void 0,this.#K=!1,this.#B={},l.register(this,this.#q,this.#B)}_read(I){if(this.#K)return;var Z=this.#q;if(Z===0){this.push(null);return}if(!this.#X)this.#$(Z);return this.#V(this.#z(I),Z)}#$(I){this.#X=!0;const Z=G(I,this.#J);if(typeof Z==="number"&&Z>1)this.#Z=!0,this.#J=Math.min(this.#J,Z);if(P){const U=P(I);if((U?.byteLength??0)>0)this.push(U)}}#z(I=this.#J){var Z=this.#H;if(Z?.byteLength??0D?I:D;this.#H=Z=new Buffer(U)}return Z}push(I,Z){return super.push(...arguments)}#Y(I,Z,U){if(typeof I==="number"){if(I>=this.#J&&!this.#Z&&!U)this.#J*=2,this.#Z=!0;return k(this,I,Z,U)}else if(typeof I==="boolean")return this.push(null),Z?.byteLength??0>0?Z:void 0;else if(ArrayBuffer.isView(I)){if(I.byteLength>=this.#J&&!this.#Z&&!U)this.#J*=2,this.#Z=!0;return c(this,I,Z,U)}else throw new Error("Invalid result from pull")}#V(I,Z){g[0]=!1;var U=B(Z,I,g);if(xq(U))return this.#K=!0,U.then((T)=>{this.#K=!1,this.#H=this.#Y(T,I,g[0])},(T)=>{errorOrDestroy(this,T)});else this.#H=this.#Y(U,I,g[0])}_destroy(I,Z){var U=this.#q;if(U===0){Z(I);return}if(l.unregister(this.#B),this.#q=0,R)R(U,!1);y(U,I),Z(I)}ref(){var I=this.#q;if(I===0)return;if(this.#Q++===0)R(I,!0)}unref(){var I=this.#q;if(I===0)return;if(this.#Q--===1)R(I,!1)}};if(!R)p.prototype.ref=void 0,p.prototype.unref=void 0;return p},lq=function(a,j){return $Q[a]||=YQ(a,j)},zQ=function(a,j,B){if(!(j&&typeof j==="object"&&j instanceof ReadableStream))return;const G=sq(j);if(!G){Gq("no native readable stream");return}const{stream:y,data:A}=G;return new(lq(A,a))(y,B)};var Gq=()=>{},{isPromise:xq,isCallable:oq,direct:sq,Object:zq}=globalThis[Symbol.for("Bun.lazy")]("primordials"),GQ=zq.create,MQ=zq.defineProperty,FQ=zq.getOwnPropertyDescriptor,rq=zq.getOwnPropertyNames,LQ=zq.getPrototypeOf,jQ=zq.prototype.hasOwnProperty,NQ=zq.setPrototypeOf,Bq=(a,j)=>function B(){return j||(0,a[rq(a)[0]])((j={exports:{}}).exports,j),j.exports};var Xq=process.nextTick;var AQ=Array.isArray,Vq=Bq({"node_modules/readable-stream/lib/ours/primordials.js"(a,j){j.exports={ArrayIsArray(B){return Array.isArray(B)},ArrayPrototypeIncludes(B,G){return B.includes(G)},ArrayPrototypeIndexOf(B,G){return B.indexOf(G)},ArrayPrototypeJoin(B,G){return B.join(G)},ArrayPrototypeMap(B,G){return B.map(G)},ArrayPrototypePop(B,G){return B.pop(G)},ArrayPrototypePush(B,G){return B.push(G)},ArrayPrototypeSlice(B,G,y){return B.slice(G,y)},Error,FunctionPrototypeCall(B,G,...y){return B.call(G,...y)},FunctionPrototypeSymbolHasInstance(B,G){return Function.prototype[Symbol.hasInstance].call(B,G)},MathFloor:Math.floor,Number,NumberIsInteger:Number.isInteger,NumberIsNaN:Number.isNaN,NumberMAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,NumberParseInt:Number.parseInt,ObjectDefineProperties(B,G){return zq.defineProperties(B,G)},ObjectDefineProperty(B,G,y){return zq.defineProperty(B,G,y)},ObjectGetOwnPropertyDescriptor(B,G){return zq.getOwnPropertyDescriptor(B,G)},ObjectKeys(B){return zq.keys(B)},ObjectSetPrototypeOf(B,G){return zq.setPrototypeOf(B,G)},Promise,PromisePrototypeCatch(B,G){return B.catch(G)},PromisePrototypeThen(B,G,y){return B.then(G,y)},PromiseReject(B){return Promise.reject(B)},ReflectApply:Reflect.apply,RegExpPrototypeTest(B,G){return B.test(G)},SafeSet:Set,String,StringPrototypeSlice(B,G,y){return B.slice(G,y)},StringPrototypeToLowerCase(B){return B.toLowerCase()},StringPrototypeToUpperCase(B){return B.toUpperCase()},StringPrototypeTrim(B){return B.trim()},Symbol,SymbolAsyncIterator:Symbol.asyncIterator,SymbolHasInstance:Symbol.hasInstance,SymbolIterator:Symbol.iterator,TypedArrayPrototypeSet(B,G,y){return B.set(G,y)},Uint8Array}}}),Aq=Bq({"node_modules/readable-stream/lib/ours/util.js"(a,j){var B=zq.getPrototypeOf(async function(){}).constructor,G=typeof Blob!=="undefined"?function A(M){return M instanceof Blob}:function A(M){return!1},y=class extends Error{constructor(A){if(!Array.isArray(A))throw new TypeError(`Expected input to be an Array, got ${typeof A}`);let M="";for(let R=0;R{A=P,M=g}),resolve:A,reject:M}},promisify(A){return new Promise((M,R)=>{A((P,...g)=>{if(P)return R(P);return M(...g)})})},debuglog(){return function(){}},format(A,...M){return A.replace(/%([sdifj])/g,function(...[R,P]){const g=M.shift();if(P==="f")return g.toFixed(6);else if(P==="j")return JSON.stringify(g);else if(P==="s"&&typeof g==="object")return`${g.constructor!==zq?g.constructor.name:""} {}`.trim();else return g.toString()})},inspect(A){switch(typeof A){case"string":if(A.includes("'")){if(!A.includes('"'))return`"${A}"`;else if(!A.includes("`")&&!A.includes("${"))return`\`${A}\``}return`'${A}'`;case"number":if(isNaN(A))return"NaN";else if(zq.is(A,-0))return String(A);return A;case"bigint":return`${String(A)}n`;case"boolean":case"undefined":return String(A);case"object":return"{}"}},types:{isAsyncFunction(A){return A instanceof B},isArrayBufferView(A){return ArrayBuffer.isView(A)}},isBlob:G},j.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")}}),Wq=Bq({"node_modules/readable-stream/lib/ours/errors.js"(a,j){var{format:B,inspect:G,AggregateError:y}=Aq(),A=globalThis.AggregateError||y,M=Symbol("kIsNodeError"),R=["string","function","number","object","Function","Object","boolean","bigint","symbol"],P=/^([A-Z][a-z0-9]*)+$/,g="__node_internal_",k={};function c(Z,U){if(!Z)throw new k.ERR_INTERNAL_ASSERTION(U)}function O(Z){let U="",T=Z.length;const _=Z[0]==="-"?1:0;for(;T>=_+4;T-=3)U=`_${Z.slice(T-3,T)}${U}`;return`${Z.slice(0,T)}${U}`}function l(Z,U,T){if(typeof U==="function")return c(U.length<=T.length,`Code: ${Z}; The provided arguments length (${T.length}) does not match the required ones (${U.length}).`),U(...T);const _=(U.match(/%[dfijoOs]/g)||[]).length;if(c(_===T.length,`Code: ${Z}; The provided arguments length (${T.length}) does not match the required ones (${_}).`),T.length===0)return U;return B(U,...T)}function D(Z,U,T){if(!T)T=Error;class _ extends T{constructor(...t){super(l(Z,U,t))}toString(){return`${this.name} [${Z}]: ${this.message}`}}zq.defineProperties(_.prototype,{name:{value:T.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${Z}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),_.prototype.code=Z,_.prototype[M]=!0,k[Z]=_}function p(Z){const U=g+Z.name;return zq.defineProperty(Z,"name",{value:U}),Z}function E(Z,U){if(Z&&U&&Z!==U){if(Array.isArray(U.errors))return U.errors.push(Z),U;const T=new A([U,Z],U.message);return T.code=U.code,T}return Z||U}var I=class extends Error{constructor(Z="The operation was aborted",U=void 0){if(U!==void 0&&typeof U!=="object")throw new k.ERR_INVALID_ARG_TYPE("options","Object",U);super(Z,U);this.code="ABORT_ERR",this.name="AbortError"}};D("ERR_ASSERTION","%s",Error),D("ERR_INVALID_ARG_TYPE",(Z,U,T)=>{if(c(typeof Z==="string","'name' must be a string"),!Array.isArray(U))U=[U];let _="The ";if(Z.endsWith(" argument"))_+=`${Z} `;else _+=`"${Z}" ${Z.includes(".")?"property":"argument"} `;_+="must be ";const t=[],i=[],$=[];for(let Y of U)if(c(typeof Y==="string","All expected entries have to be of type string"),R.includes(Y))t.push(Y.toLowerCase());else if(P.test(Y))i.push(Y);else c(Y!=="object",'The value "object" should be written as "Object"'),$.push(Y);if(i.length>0){const Y=t.indexOf("object");if(Y!==-1)t.splice(t,Y,1),i.push("Object")}if(t.length>0){switch(t.length){case 1:_+=`of type ${t[0]}`;break;case 2:_+=`one of type ${t[0]} or ${t[1]}`;break;default:{const Y=t.pop();_+=`one of type ${t.join(", ")}, or ${Y}`}}if(i.length>0||$.length>0)_+=" or "}if(i.length>0){switch(i.length){case 1:_+=`an instance of ${i[0]}`;break;case 2:_+=`an instance of ${i[0]} or ${i[1]}`;break;default:{const Y=i.pop();_+=`an instance of ${i.join(", ")}, or ${Y}`}}if($.length>0)_+=" or "}switch($.length){case 0:break;case 1:if($[0].toLowerCase()!==$[0])_+="an ";_+=`${$[0]}`;break;case 2:_+=`one of ${$[0]} or ${$[1]}`;break;default:{const Y=$.pop();_+=`one of ${$.join(", ")}, or ${Y}`}}if(T==null)_+=`. Received ${T}`;else if(typeof T==="function"&&T.name)_+=`. Received function ${T.name}`;else if(typeof T==="object"){var n;if((n=T.constructor)!==null&&n!==void 0&&n.name)_+=`. Received an instance of ${T.constructor.name}`;else{const Y=G(T,{depth:-1});_+=`. Received ${Y}`}}else{let Y=G(T,{colors:!1});if(Y.length>25)Y=`${Y.slice(0,25)}...`;_+=`. Received type ${typeof T} (${Y})`}return _},TypeError),D("ERR_INVALID_ARG_VALUE",(Z,U,T="is invalid")=>{let _=G(U);if(_.length>128)_=_.slice(0,128)+"...";return`The ${Z.includes(".")?"property":"argument"} '${Z}' ${T}. Received ${_}`},TypeError),D("ERR_INVALID_RETURN_VALUE",(Z,U,T)=>{var _;const t=T!==null&&T!==void 0&&(_=T.constructor)!==null&&_!==void 0&&_.name?`instance of ${T.constructor.name}`:`type ${typeof T}`;return`Expected ${Z} to be returned from the "${U}" function but got ${t}.`},TypeError),D("ERR_MISSING_ARGS",(...Z)=>{c(Z.length>0,"At least one arg needs to be specified");let U;const T=Z.length;switch(Z=(Array.isArray(Z)?Z:[Z]).map((_)=>`"${_}"`).join(" or "),T){case 1:U+=`The ${Z[0]} argument`;break;case 2:U+=`The ${Z[0]} and ${Z[1]} arguments`;break;default:{const _=Z.pop();U+=`The ${Z.join(", ")}, and ${_} arguments`}break}return`${U} must be specified`},TypeError),D("ERR_OUT_OF_RANGE",(Z,U,T)=>{c(U,'Missing "range" argument');let _;if(Number.isInteger(T)&&Math.abs(T)>4294967296)_=O(String(T));else if(typeof T==="bigint"){if(_=String(T),T>2n**32n||T<-(2n**32n))_=O(_);_+="n"}else _=G(T);return`The value of "${Z}" is out of range. It must be ${U}. Received ${_}`},RangeError),D("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),D("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),D("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),D("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),D("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),D("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),D("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),D("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),D("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),D("ERR_STREAM_WRITE_AFTER_END","write after end",Error),D("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),j.exports={AbortError:I,aggregateTwoErrors:p(E),hideStackFrames:p,codes:k}}}),Cq=Bq({"node_modules/readable-stream/lib/internal/validators.js"(a,j){var{ArrayIsArray:B,ArrayPrototypeIncludes:G,ArrayPrototypeJoin:y,ArrayPrototypeMap:A,NumberIsInteger:M,NumberMAX_SAFE_INTEGER:R,NumberMIN_SAFE_INTEGER:P,NumberParseInt:g,RegExpPrototypeTest:k,String:c,StringPrototypeToUpperCase:O,StringPrototypeTrim:l}=Vq(),{hideStackFrames:D,codes:{ERR_SOCKET_BAD_PORT:p,ERR_INVALID_ARG_TYPE:E,ERR_INVALID_ARG_VALUE:I,ERR_OUT_OF_RANGE:Z,ERR_UNKNOWN_SIGNAL:U}}=Wq(),{normalizeEncoding:T}=Aq(),{isAsyncFunction:_,isArrayBufferView:t}=Aq().types,i={};function $(V){return V===(V|0)}function n(V){return V===V>>>0}var Y=/^[0-7]+$/,K="must be a 32-bit unsigned integer or an octal string";function F(V,h,Q){if(typeof V==="undefined")V=Q;if(typeof V==="string"){if(!k(Y,V))throw new I(h,V,K);V=g(V,8)}return u(V,h,0,4294967295),V}var m=D((V,h,Q=P,H=R)=>{if(typeof V!=="number")throw new E(h,"number",V);if(!M(V))throw new Z(h,"an integer",V);if(VH)throw new Z(h,`>= ${Q} && <= ${H}`,V)}),u=D((V,h,Q=-2147483648,H=2147483647)=>{if(typeof V!=="number")throw new E(h,"number",V);if(!$(V)){if(!M(V))throw new Z(h,"an integer",V);throw new Z(h,`>= ${Q} && <= ${H}`,V)}if(VH)throw new Z(h,`>= ${Q} && <= ${H}`,V)}),J=D((V,h,Q)=>{if(typeof V!=="number")throw new E(h,"number",V);if(!n(V)){if(!M(V))throw new Z(h,"an integer",V);throw new Z(h,`>= ${Q?1:0} && < 4294967296`,V)}if(Q&&V===0)throw new Z(h,">= 1 && < 4294967296",V)});function z(V,h){if(typeof V!=="string")throw new E(h,"string",V)}function w(V,h){if(typeof V!=="number")throw new E(h,"number",V)}var S=D((V,h,Q)=>{if(!G(Q,V)){const L="must be one of: "+y(A(Q,(d)=>typeof d==="string"?`'${d}'`:c(d)),", ");throw new I(h,V,L)}});function N(V,h){if(typeof V!=="boolean")throw new E(h,"boolean",V)}var W=D((V,h,Q)=>{const H=Q==null,L=H?!1:Q.allowArray,d=H?!1:Q.allowFunction;if(!(H?!1:Q.nullable)&&V===null||!L&&B(V)||typeof V!=="object"&&(!d||typeof V!=="function"))throw new E(h,"Object",V)}),b=D((V,h,Q=0)=>{if(!B(V))throw new E(h,"Array",V);if(V.length{if(!t(V))throw new E(h,["Buffer","TypedArray","DataView"],V)});function e(V,h){const Q=T(h),H=V.length;if(Q==="hex"&&H%2!==0)throw new I("encoding",h,`is invalid for data of length ${H}`)}function Hq(V,h="Port",Q=!0){if(typeof V!=="number"&&typeof V!=="string"||typeof V==="string"&&l(V).length===0||+V!==+V>>>0||V>65535||V===0&&!Q)throw new p(h,V,Q);return V|0}var $q=D((V,h)=>{if(V!==void 0&&(V===null||typeof V!=="object"||!("aborted"in V)))throw new E(h,"AbortSignal",V)}),qq=D((V,h)=>{if(typeof V!=="function")throw new E(h,"Function",V)}),Kq=D((V,h)=>{if(typeof V!=="function"||_(V))throw new E(h,"Function",V)}),Qq=D((V,h)=>{if(V!==void 0)throw new E(h,"undefined",V)});j.exports={isInt32:$,isUint32:n,parseFileMode:F,validateArray:b,validateBoolean:N,validateBuffer:s,validateEncoding:e,validateFunction:qq,validateInt32:u,validateInteger:m,validateNumber:w,validateObject:W,validateOneOf:S,validatePlainFunction:Kq,validatePort:Hq,validateSignalName:o,validateString:z,validateUint32:J,validateUndefined:Qq,validateAbortSignal:$q}}}),Eq=Bq({"node_modules/readable-stream/lib/internal/streams/utils.js"(a,j){var{Symbol:B,SymbolAsyncIterator:G,SymbolIterator:y}=Vq(),A=B("kDestroyed"),M=B("kIsErrored"),R=B("kIsReadable"),P=B("kIsDisturbed");function g(J,z=!1){var w;return!!(J&&typeof J.pipe==="function"&&typeof J.on==="function"&&(!z||typeof J.pause==="function"&&typeof J.resume==="function")&&(!J._writableState||((w=J._readableState)===null||w===void 0?void 0:w.readable)!==!1)&&(!J._writableState||J._readableState))}function k(J){var z;return!!(J&&typeof J.write==="function"&&typeof J.on==="function"&&(!J._readableState||((z=J._writableState)===null||z===void 0?void 0:z.writable)!==!1))}function c(J){return!!(J&&typeof J.pipe==="function"&&J._readableState&&typeof J.on==="function"&&typeof J.write==="function")}function O(J){return J&&(J._readableState||J._writableState||typeof J.write==="function"&&typeof J.on==="function"||typeof J.pipe==="function"&&typeof J.on==="function")}function l(J,z){if(J==null)return!1;if(z===!0)return typeof J[G]==="function";if(z===!1)return typeof J[y]==="function";return typeof J[G]==="function"||typeof J[y]==="function"}function D(J){if(!O(J))return null;const{_writableState:z,_readableState:w}=J,S=z||w;return!!(J.destroyed||J[A]||S!==null&&S!==void 0&&S.destroyed)}function p(J){if(!k(J))return null;if(J.writableEnded===!0)return!0;const z=J._writableState;if(z!==null&&z!==void 0&&z.errored)return!1;if(typeof(z===null||z===void 0?void 0:z.ended)!=="boolean")return null;return z.ended}function E(J,z){if(!k(J))return null;if(J.writableFinished===!0)return!0;const w=J._writableState;if(w!==null&&w!==void 0&&w.errored)return!1;if(typeof(w===null||w===void 0?void 0:w.finished)!=="boolean")return null;return!!(w.finished||z===!1&&w.ended===!0&&w.length===0)}function I(J){if(!g(J))return null;if(J.readableEnded===!0)return!0;const z=J._readableState;if(!z||z.errored)return!1;if(typeof(z===null||z===void 0?void 0:z.ended)!=="boolean")return null;return z.ended}function Z(J,z){if(!g(J))return null;const w=J._readableState;if(w!==null&&w!==void 0&&w.errored)return!1;if(typeof(w===null||w===void 0?void 0:w.endEmitted)!=="boolean")return null;return!!(w.endEmitted||z===!1&&w.ended===!0&&w.length===0)}function U(J){if(J&&J[R]!=null)return J[R];if(typeof(J===null||J===void 0?void 0:J.readable)!=="boolean")return null;if(D(J))return!1;return g(J)&&J.readable&&!Z(J)}function T(J){if(typeof(J===null||J===void 0?void 0:J.writable)!=="boolean")return null;if(D(J))return!1;return k(J)&&J.writable&&!p(J)}function _(J,z){if(!O(J))return null;if(D(J))return!0;if((z===null||z===void 0?void 0:z.readable)!==!1&&U(J))return!1;if((z===null||z===void 0?void 0:z.writable)!==!1&&T(J))return!1;return!0}function t(J){var z,w;if(!O(J))return null;if(J.writableErrored)return J.writableErrored;return(z=(w=J._writableState)===null||w===void 0?void 0:w.errored)!==null&&z!==void 0?z:null}function i(J){var z,w;if(!O(J))return null;if(J.readableErrored)return J.readableErrored;return(z=(w=J._readableState)===null||w===void 0?void 0:w.errored)!==null&&z!==void 0?z:null}function $(J){if(!O(J))return null;if(typeof J.closed==="boolean")return J.closed;const{_writableState:z,_readableState:w}=J;if(typeof(z===null||z===void 0?void 0:z.closed)==="boolean"||typeof(w===null||w===void 0?void 0:w.closed)==="boolean")return(z===null||z===void 0?void 0:z.closed)||(w===null||w===void 0?void 0:w.closed);if(typeof J._closed==="boolean"&&n(J))return J._closed;return null}function n(J){return typeof J._closed==="boolean"&&typeof J._defaultKeepAlive==="boolean"&&typeof J._removedConnection==="boolean"&&typeof J._removedContLen==="boolean"}function Y(J){return typeof J._sent100==="boolean"&&n(J)}function K(J){var z;return typeof J._consuming==="boolean"&&typeof J._dumped==="boolean"&&((z=J.req)===null||z===void 0?void 0:z.upgradeOrConnect)===void 0}function F(J){if(!O(J))return null;const{_writableState:z,_readableState:w}=J,S=z||w;return!S&&Y(J)||!!(S&&S.autoDestroy&&S.emitClose&&S.closed===!1)}function m(J){var z;return!!(J&&((z=J[P])!==null&&z!==void 0?z:J.readableDidRead||J.readableAborted))}function u(J){var z,w,S,N,W,b,o,s,e,Hq;return!!(J&&((z=(w=(S=(N=(W=(b=J[M])!==null&&b!==void 0?b:J.readableErrored)!==null&&W!==void 0?W:J.writableErrored)!==null&&N!==void 0?N:(o=J._readableState)===null||o===void 0?void 0:o.errorEmitted)!==null&&S!==void 0?S:(s=J._writableState)===null||s===void 0?void 0:s.errorEmitted)!==null&&w!==void 0?w:(e=J._readableState)===null||e===void 0?void 0:e.errored)!==null&&z!==void 0?z:(Hq=J._writableState)===null||Hq===void 0?void 0:Hq.errored))}j.exports={kDestroyed:A,isDisturbed:m,kIsDisturbed:P,isErrored:u,kIsErrored:M,isReadable:U,kIsReadable:R,isClosed:$,isDestroyed:D,isDuplexNodeStream:c,isFinished:_,isIterable:l,isReadableNodeStream:g,isReadableEnded:I,isReadableFinished:Z,isReadableErrored:i,isNodeStream:O,isWritable:T,isWritableNodeStream:k,isWritableEnded:p,isWritableFinished:E,isWritableErrored:t,isServerRequest:K,isServerResponse:Y,willEmitClose:F}}}),Fq=Bq({"node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(a,j){var{AbortError:B,codes:G}=Wq(),{ERR_INVALID_ARG_TYPE:y,ERR_STREAM_PREMATURE_CLOSE:A}=G,{once:M}=Aq(),{validateAbortSignal:R,validateFunction:P,validateObject:g}=Cq(),{Promise:k}=Vq(),{isClosed:c,isReadable:O,isReadableNodeStream:l,isReadableFinished:D,isReadableErrored:p,isWritable:E,isWritableNodeStream:I,isWritableFinished:Z,isWritableErrored:U,isNodeStream:T,willEmitClose:_}=Eq();function t(Y){return Y.setHeader&&typeof Y.abort==="function"}var i=()=>{};function $(Y,K,F){var m,u;if(arguments.length===2)F=K,K={};else if(K==null)K={};else g(K,"options");P(F,"callback"),R(K.signal,"options.signal"),F=M(F);const J=(m=K.readable)!==null&&m!==void 0?m:l(Y),z=(u=K.writable)!==null&&u!==void 0?u:I(Y);if(!T(Y))throw new y("stream","Stream",Y);const{_writableState:w,_readableState:S}=Y,N=()=>{if(!Y.writable)o()};let W=_(Y)&&l(Y)===J&&I(Y)===z,b=Z(Y,!1);const o=()=>{if(b=!0,Y.destroyed)W=!1;if(W&&(!Y.readable||J))return;if(!J||s)F.call(Y)};let s=D(Y,!1);const e=()=>{if(s=!0,Y.destroyed)W=!1;if(W&&(!Y.writable||z))return;if(!z||b)F.call(Y)},Hq=(V)=>{F.call(Y,V)};let $q=c(Y);const qq=()=>{$q=!0;const V=U(Y)||p(Y);if(V&&typeof V!=="boolean")return F.call(Y,V);if(J&&!s&&l(Y,!0)){if(!D(Y,!1))return F.call(Y,new A)}if(z&&!b){if(!Z(Y,!1))return F.call(Y,new A)}F.call(Y)},Kq=()=>{Y.req.on("finish",o)};if(t(Y)){if(Y.on("complete",o),!W)Y.on("abort",qq);if(Y.req)Kq();else Y.on("request",Kq)}else if(z&&!w)Y.on("end",N),Y.on("close",N);if(!W&&typeof Y.aborted==="boolean")Y.on("aborted",qq);if(Y.on("end",e),Y.on("finish",o),K.error!==!1)Y.on("error",Hq);if(Y.on("close",qq),$q)Xq(qq);else if(w!==null&&w!==void 0&&w.errorEmitted||S!==null&&S!==void 0&&S.errorEmitted){if(!W)Xq(qq)}else if(!J&&(!W||O(Y))&&(b||E(Y)===!1))Xq(qq);else if(!z&&(!W||E(Y))&&(s||O(Y)===!1))Xq(qq);else if(S&&Y.req&&Y.aborted)Xq(qq);const Qq=()=>{if(F=i,Y.removeListener("aborted",qq),Y.removeListener("complete",o),Y.removeListener("abort",qq),Y.removeListener("request",Kq),Y.req)Y.req.removeListener("finish",o);Y.removeListener("end",N),Y.removeListener("close",N),Y.removeListener("finish",o),Y.removeListener("end",e),Y.removeListener("error",Hq),Y.removeListener("close",qq)};if(K.signal&&!$q){const V=()=>{const h=F;Qq(),h.call(Y,new B(void 0,{cause:K.signal.reason}))};if(K.signal.aborted)Xq(V);else{const h=F;F=M((...Q)=>{K.signal.removeEventListener("abort",V),h.apply(Y,Q)}),K.signal.addEventListener("abort",V)}}return Qq}function n(Y,K){return new k((F,m)=>{$(Y,K,(u)=>{if(u)m(u);else F()})})}j.exports=$,j.exports.finished=n}}),XQ=Bq({"node_modules/readable-stream/lib/internal/streams/operators.js"(a,j){var{codes:{ERR_INVALID_ARG_TYPE:B,ERR_MISSING_ARGS:G,ERR_OUT_OF_RANGE:y},AbortError:A}=Wq(),{validateAbortSignal:M,validateInteger:R,validateObject:P}=Cq(),g=Vq().Symbol("kWeak"),{finished:k}=Fq(),{ArrayPrototypePush:c,MathFloor:O,Number:l,NumberIsNaN:D,Promise:p,PromiseReject:E,PromisePrototypeCatch:I,Symbol:Z}=Vq(),U=Z("kEmpty"),T=Z("kEof");function _(N,W){if(typeof N!=="function")throw new B("fn",["Function","AsyncFunction"],N);if(W!=null)P(W,"options");if((W===null||W===void 0?void 0:W.signal)!=null)M(W.signal,"options.signal");let b=1;if((W===null||W===void 0?void 0:W.concurrency)!=null)b=O(W.concurrency);return R(b,"concurrency",1),async function*o(){var s,e;const Hq=new AbortController,$q=this,qq=[],Kq=Hq.signal,Qq={signal:Kq},V=()=>Hq.abort();if(W!==null&&W!==void 0&&(s=W.signal)!==null&&s!==void 0&&s.aborted)V();W===null||W===void 0||(e=W.signal)===null||e===void 0||e.addEventListener("abort",V);let h,Q,H=!1;function L(){H=!0}async function d(){try{for await(let q of $q){var f;if(H)return;if(Kq.aborted)throw new A;try{q=N(q,Qq)}catch(X){q=E(X)}if(q===U)continue;if(typeof((f=q)===null||f===void 0?void 0:f.catch)==="function")q.catch(L);if(qq.push(q),h)h(),h=null;if(!H&&qq.length&&qq.length>=b)await new p((X)=>{Q=X})}qq.push(T)}catch(q){const X=E(q);I(X,L),qq.push(X)}finally{var r;if(H=!0,h)h(),h=null;W===null||W===void 0||(r=W.signal)===null||r===void 0||r.removeEventListener("abort",V)}}d();try{while(!0){while(qq.length>0){const f=await qq[0];if(f===T)return;if(Kq.aborted)throw new A;if(f!==U)yield f;if(qq.shift(),Q)Q(),Q=null}await new p((f)=>{h=f})}}finally{if(Hq.abort(),H=!0,Q)Q(),Q=null}}.call(this)}function t(N=void 0){if(N!=null)P(N,"options");if((N===null||N===void 0?void 0:N.signal)!=null)M(N.signal,"options.signal");return async function*W(){let b=0;for await(let s of this){var o;if(N!==null&&N!==void 0&&(o=N.signal)!==null&&o!==void 0&&o.aborted)throw new A({cause:N.signal.reason});yield[b++,s]}}.call(this)}async function i(N,W=void 0){for await(let b of K.call(this,N,W))return!0;return!1}async function $(N,W=void 0){if(typeof N!=="function")throw new B("fn",["Function","AsyncFunction"],N);return!await i.call(this,async(...b)=>{return!await N(...b)},W)}async function n(N,W){for await(let b of K.call(this,N,W))return b;return}async function Y(N,W){if(typeof N!=="function")throw new B("fn",["Function","AsyncFunction"],N);async function b(o,s){return await N(o,s),U}for await(let o of _.call(this,b,W));}function K(N,W){if(typeof N!=="function")throw new B("fn",["Function","AsyncFunction"],N);async function b(o,s){if(await N(o,s))return o;return U}return _.call(this,b,W)}var F=class extends G{constructor(){super("reduce");this.message="Reduce of an empty stream requires an initial value"}};async function m(N,W,b){var o;if(typeof N!=="function")throw new B("reducer",["Function","AsyncFunction"],N);if(b!=null)P(b,"options");if((b===null||b===void 0?void 0:b.signal)!=null)M(b.signal,"options.signal");let s=arguments.length>1;if(b!==null&&b!==void 0&&(o=b.signal)!==null&&o!==void 0&&o.aborted){const Kq=new A(void 0,{cause:b.signal.reason});throw this.once("error",()=>{}),await k(this.destroy(Kq)),Kq}const e=new AbortController,Hq=e.signal;if(b!==null&&b!==void 0&&b.signal){const Kq={once:!0,[g]:this};b.signal.addEventListener("abort",()=>e.abort(),Kq)}let $q=!1;try{for await(let Kq of this){var qq;if($q=!0,b!==null&&b!==void 0&&(qq=b.signal)!==null&&qq!==void 0&&qq.aborted)throw new A;if(!s)W=Kq,s=!0;else W=await N(W,Kq,{signal:Hq})}if(!$q&&!s)throw new F}finally{e.abort()}return W}async function u(N){if(N!=null)P(N,"options");if((N===null||N===void 0?void 0:N.signal)!=null)M(N.signal,"options.signal");const W=[];for await(let o of this){var b;if(N!==null&&N!==void 0&&(b=N.signal)!==null&&b!==void 0&&b.aborted)throw new A(void 0,{cause:N.signal.reason});c(W,o)}return W}function J(N,W){const b=_.call(this,N,W);return async function*o(){for await(let s of b)yield*s}.call(this)}function z(N){if(N=l(N),D(N))return 0;if(N<0)throw new y("number",">= 0",N);return N}function w(N,W=void 0){if(W!=null)P(W,"options");if((W===null||W===void 0?void 0:W.signal)!=null)M(W.signal,"options.signal");return N=z(N),async function*b(){var o;if(W!==null&&W!==void 0&&(o=W.signal)!==null&&o!==void 0&&o.aborted)throw new A;for await(let e of this){var s;if(W!==null&&W!==void 0&&(s=W.signal)!==null&&s!==void 0&&s.aborted)throw new A;if(N--<=0)yield e}}.call(this)}function S(N,W=void 0){if(W!=null)P(W,"options");if((W===null||W===void 0?void 0:W.signal)!=null)M(W.signal,"options.signal");return N=z(N),async function*b(){var o;if(W!==null&&W!==void 0&&(o=W.signal)!==null&&o!==void 0&&o.aborted)throw new A;for await(let e of this){var s;if(W!==null&&W!==void 0&&(s=W.signal)!==null&&s!==void 0&&s.aborted)throw new A;if(N-- >0)yield e;else return}}.call(this)}j.exports.streamReturningOperators={asIndexedPairs:t,drop:w,filter:K,flatMap:J,map:_,take:S},j.exports.promiseReturningOperators={every:$,forEach:Y,reduce:m,toArray:u,some:i,find:n}}}),Tq=Bq({"node_modules/readable-stream/lib/internal/streams/destroy.js"(a,j){var{aggregateTwoErrors:B,codes:{ERR_MULTIPLE_CALLBACK:G},AbortError:y}=Wq(),{Symbol:A}=Vq(),{kDestroyed:M,isDestroyed:R,isFinished:P,isServerRequest:g}=Eq(),k="#kDestroy",c="#kConstruct";function O(K,F,m){if(K){if(K.stack,F&&!F.errored)F.errored=K;if(m&&!m.errored)m.errored=K}}function l(K,F){const m=this._readableState,u=this._writableState,J=u||m;if(u&&u.destroyed||m&&m.destroyed){if(typeof F==="function")F();return this}if(O(K,u,m),u)u.destroyed=!0;if(m)m.destroyed=!0;if(!J.constructed)this.once(k,(z)=>{D(this,B(z,K),F)});else D(this,K,F);return this}function D(K,F,m){let u=!1;function J(z){if(u)return;u=!0;const{_readableState:w,_writableState:S}=K;if(O(z,S,w),S)S.closed=!0;if(w)w.closed=!0;if(typeof m==="function")m(z);if(z)Xq(p,K,z);else Xq(E,K)}try{K._destroy(F||null,J)}catch(z){J(z)}}function p(K,F){I(K,F),E(K)}function E(K){const{_readableState:F,_writableState:m}=K;if(m)m.closeEmitted=!0;if(F)F.closeEmitted=!0;if(m&&m.emitClose||F&&F.emitClose)K.emit("close")}function I(K,F){const m=K?._readableState,u=K?._writableState;if(u?.errorEmitted||m?.errorEmitted)return;if(u)u.errorEmitted=!0;if(m)m.errorEmitted=!0;K?.emit?.("error",F)}function Z(){const K=this._readableState,F=this._writableState;if(K)K.constructed=!0,K.closed=!1,K.closeEmitted=!1,K.destroyed=!1,K.errored=null,K.errorEmitted=!1,K.reading=!1,K.ended=K.readable===!1,K.endEmitted=K.readable===!1;if(F)F.constructed=!0,F.destroyed=!1,F.closed=!1,F.closeEmitted=!1,F.errored=null,F.errorEmitted=!1,F.finalCalled=!1,F.prefinished=!1,F.ended=F.writable===!1,F.ending=F.writable===!1,F.finished=F.writable===!1}function U(K,F,m){const u=K?._readableState,J=K?._writableState;if(J&&J.destroyed||u&&u.destroyed)return this;if(u&&u.autoDestroy||J&&J.autoDestroy)K.destroy(F);else if(F){if(Error.captureStackTrace(F),J&&!J.errored)J.errored=F;if(u&&!u.errored)u.errored=F;if(m)Xq(I,K,F);else I(K,F)}}function T(K,F){if(typeof K._construct!=="function")return;const{_readableState:m,_writableState:u}=K;if(m)m.constructed=!1;if(u)u.constructed=!1;if(K.once(c,F),K.listenerCount(c)>1)return;Xq(_,K)}function _(K){let F=!1;function m(u){if(F){U(K,u!==null&&u!==void 0?u:new G);return}F=!0;const{_readableState:J,_writableState:z}=K,w=z||J;if(J)J.constructed=!0;if(z)z.constructed=!0;if(w.destroyed)K.emit(k,u);else if(u)U(K,u,!0);else Xq(t,K)}try{K._construct(m)}catch(u){m(u)}}function t(K){K.emit(c)}function i(K){return K&&K.setHeader&&typeof K.abort==="function"}function $(K){K.emit("close")}function n(K,F){K.emit("error",F),Xq($,K)}function Y(K,F){if(!K||R(K))return;if(!F&&!P(K))F=new y;if(g(K))K.socket=null,K.destroy(F);else if(i(K))K.abort();else if(i(K.req))K.req.abort();else if(typeof K.destroy==="function")K.destroy(F);else if(typeof K.close==="function")K.close();else if(F)Xq(n,K);else Xq($,K);if(!K.destroyed)K[M]=!0}j.exports={construct:T,destroyer:Y,destroy:l,undestroy:Z,errorOrDestroy:U}}}),Rq=Bq({"node_modules/readable-stream/lib/internal/streams/legacy.js"(a,j){var{ArrayIsArray:B,ObjectSetPrototypeOf:G}=Vq();function y(M){if(!(this instanceof y))return new y(M);Iq.call(this,M)}G(y.prototype,Iq.prototype),G(y,Iq),y.prototype.pipe=function(M,R){const P=this;function g(E){if(M.writable&&M.write(E)===!1&&P.pause)P.pause()}P.on("data",g);function k(){if(P.readable&&P.resume)P.resume()}if(M.on("drain",k),!M._isStdio&&(!R||R.end!==!1))P.on("end",O),P.on("close",l);let c=!1;function O(){if(c)return;c=!0,M.end()}function l(){if(c)return;if(c=!0,typeof M.destroy==="function")M.destroy()}function D(E){if(p(),Iq.listenerCount(this,"error")===0)this.emit("error",E)}A(P,"error",D),A(M,"error",D);function p(){P.removeListener("data",g),M.removeListener("drain",k),P.removeListener("end",O),P.removeListener("close",l),P.removeListener("error",D),M.removeListener("error",D),P.removeListener("end",p),P.removeListener("close",p),M.removeListener("close",p)}return P.on("end",p),P.on("close",p),M.on("close",p),M.emit("pipe",P),M};function A(M,R,P){if(typeof M.prependListener==="function")return M.prependListener(R,P);if(!M._events||!M._events[R])M.on(R,P);else if(B(M._events[R]))M._events[R].unshift(P);else M._events[R]=[P,M._events[R]]}j.exports={Stream:y,prependListener:A}}}),Sq=Bq({"node_modules/readable-stream/lib/internal/streams/add-abort-signal.js"(a,j){var{AbortError:B,codes:G}=Wq(),y=Fq(),{ERR_INVALID_ARG_TYPE:A}=G,M=(P,g)=>{if(typeof P!=="object"||!("aborted"in P))throw new A(g,"AbortSignal",P)};function R(P){return!!(P&&typeof P.pipe==="function")}j.exports.addAbortSignal=function P(g,k){if(M(g,"signal"),!R(k))throw new A("stream","stream.Stream",k);return j.exports.addAbortSignalNoValidate(g,k)},j.exports.addAbortSignalNoValidate=function(P,g){if(typeof P!=="object"||!("aborted"in P))return g;const k=()=>{g.destroy(new B(void 0,{cause:P.reason}))};if(P.aborted)k();else P.addEventListener("abort",k),y(g,()=>P.removeEventListener("abort",k));return g}}}),JQ=Bq({"node_modules/readable-stream/lib/internal/streams/state.js"(a,j){var{MathFloor:B,NumberIsInteger:G}=Vq(),{ERR_INVALID_ARG_VALUE:y}=Wq().codes;function A(P,g,k){return P.highWaterMark!=null?P.highWaterMark:g?P[k]:null}function M(P){return P?16:16384}function R(P,g,k,c){const O=A(g,c,k);if(O!=null){if(!G(O)||O<0){const l=c?`options.${k}`:"options.highWaterMark";throw new y(l,O)}return B(O)}return M(P.objectMode)}j.exports={getHighWaterMark:R,getDefaultHighWaterMark:M}}}),hq=Bq({"node_modules/readable-stream/lib/internal/streams/from.js"(a,j){var{PromisePrototypeThen:B,SymbolAsyncIterator:G,SymbolIterator:y}=Vq(),{ERR_INVALID_ARG_TYPE:A,ERR_STREAM_NULL_VALUES:M}=Wq().codes;function R(P,g,k){let c;if(typeof g==="string"||g instanceof Buffer)return new P({objectMode:!0,...k,read(){this.push(g),this.push(null)}});let O;if(g&&g[G])O=!0,c=g[G]();else if(g&&g[y])O=!1,c=g[y]();else throw new A("iterable",["Iterable"],g);const l=new P({objectMode:!0,highWaterMark:1,...k});let D=!1;l._read=function(){if(!D)D=!0,E()},l._destroy=function(I,Z){B(p(I),()=>Xq(Z,I),(U)=>Xq(Z,U||I))};async function p(I){const Z=I!==void 0&&I!==null,U=typeof c.throw==="function";if(Z&&U){const{value:T,done:_}=await c.throw(I);if(await T,_)return}if(typeof c.return==="function"){const{value:T}=await c.return();await T}}async function E(){for(;;){try{const{value:I,done:Z}=O?await c.next():c.next();if(Z)l.push(null);else{const U=I&&typeof I.then==="function"?await I:I;if(U===null)throw D=!1,new M;else if(l.push(U))continue;else D=!1}}catch(I){l.destroy(I)}break}}return l}j.exports=R}}),pq,uq,_q=Bq({"node_modules/readable-stream/lib/internal/streams/readable.js"(a,j){var{ArrayPrototypeIndexOf:B,NumberIsInteger:G,NumberIsNaN:y,NumberParseInt:A,ObjectDefineProperties:M,ObjectKeys:R,ObjectSetPrototypeOf:P,Promise:g,SafeSet:k,SymbolAsyncIterator:c,Symbol:O}=Vq(),l=globalThis[Symbol.for("Bun.lazy")]("bun:stream").ReadableState,{Stream:D,prependListener:p}=Rq();function E(q){if(!(this instanceof E))return new E(q);const X=this instanceof Mq();if(this._readableState=new l(q,this,X),q){const{read:C,destroy:x,construct:v,signal:Jq}=q;if(typeof C==="function")this._read=C;if(typeof x==="function")this._destroy=x;if(typeof v==="function")this._construct=v;if(Jq&&!X)U(Jq,this)}D.call(this,q),K.construct(this,()=>{if(this._readableState.needReadable)n(this,this._readableState)})}P(E.prototype,D.prototype),P(E,D),E.prototype.on=function(q,X){const C=D.prototype.on.call(this,q,X),x=this._readableState;if(q==="data"){if(x.readableListening=this.listenerCount("readable")>0,x.flowing!==!1)this.resume()}else if(q==="readable"){if(!x.endEmitted&&!x.readableListening){if(x.readableListening=x.needReadable=!0,x.flowing=!1,x.emittedReadable=!1,x.length)Y(this,x);else if(!x.reading)Xq(Qq,this)}else if(x.endEmitted);}return C};class I extends E{#q;#Q;#X;#H;constructor(q,X){const{objectMode:C,highWaterMark:x,encoding:v,signal:Jq}=q;super({objectMode:C,highWaterMark:x,encoding:v,signal:Jq});this.#X=[],this.#q=void 0,this.#H=X,this.#Q=!1}#J(){var q=this.#X,X=0,C=q.length;for(;X0)this.#X=[];return!1}#K(q){q.releaseLock(),this.#q=void 0,this.#Q=!0,this.push(null);return}async _read(){var q=this.#H,X=this.#q;if(q)X=this.#q=q.getReader(),this.#H=void 0;else if(this.#J())return;var C;try{do{var x=!1,v;const Jq=X.readMany();if(xq(Jq)){if({done:x,value:v}=await Jq,this.#Q){this.#X.push(...v);return}}else({done:x,value:v}=Jq);if(x){this.#K(X);return}if(!this.push(v[0])){this.#X=v.slice(1);return}for(let Zq=1,Oq=v.length;Zq{this.#Q=!0,X(q)});return}try{X(q)}catch(x){globalThis.reportError(x)}}}uq=I;function Z(q,X={}){if(!tq(q))throw new m("readableStream","ReadableStream",q);S(X,"options");const{highWaterMark:C,encoding:x,objectMode:v=!1,signal:Jq}=X;if(x!==void 0&&!Buffer.isEncoding(x))throw new QQ(x,"options.encoding");return eq(v,"options.objectMode"),zQ(E,q,X)||new I({highWaterMark:C,encoding:x,objectMode:v,signal:Jq},q)}j.exports=E,pq=Z;var{addAbortSignal:U}=Sq(),T=Fq();const{maybeReadMore:_,resume:t,emitReadable:i,onEofChunk:$}=globalThis[Symbol.for("Bun.lazy")]("bun:stream");function n(q,X){process.nextTick(_,q,X)}function Y(q,X){i(q,X)}var K=Tq(),{aggregateTwoErrors:F,codes:{ERR_INVALID_ARG_TYPE:m,ERR_METHOD_NOT_IMPLEMENTED:u,ERR_OUT_OF_RANGE:J,ERR_STREAM_PUSH_AFTER_EOF:z,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:w}}=Wq(),{validateObject:S}=Cq(),N=hq(),W=()=>{},{errorOrDestroy:b}=K;E.prototype.destroy=K.destroy,E.prototype._undestroy=K.undestroy,E.prototype._destroy=function(q,X){X(q)},E.prototype[Iq.captureRejectionSymbol]=function(q){this.destroy(q)},E.prototype.push=function(q,X){return o(this,q,X,!1)},E.prototype.unshift=function(q,X){return o(this,q,X,!0)};function o(q,X,C,x){const v=q._readableState;let Jq;if(!v.objectMode){if(typeof X==="string"){if(C=C||v.defaultEncoding,v.encoding!==C)if(x&&v.encoding)X=Buffer.from(X,C).toString(v.encoding);else X=Buffer.from(X,C),C=""}else if(X instanceof Buffer)C="";else if(D._isUint8Array(X)){if(x||!v.decoder)X=D._uint8ArrayToBuffer(X);C=""}else if(X!=null)Jq=new m("chunk",["string","Buffer","Uint8Array"],X)}if(Jq)b(q,Jq);else if(X===null)v.reading=!1,$(q,v);else if(v.objectMode||X&&X.length>0)if(x)if(v.endEmitted)b(q,new w);else if(v.destroyed||v.errored)return!1;else s(q,v,X,!0);else if(v.ended)b(q,new z);else if(v.destroyed||v.errored)return!1;else if(v.reading=!1,v.decoder&&!C)if(X=v.decoder.write(X),v.objectMode||X.length!==0)s(q,v,X,!1);else n(q,v);else s(q,v,X,!1);else if(!x)v.reading=!1,n(q,v);return!v.ended&&(v.length0){if(X.multiAwaitDrain)X.awaitDrainWriters.clear();else X.awaitDrainWriters=null;X.dataEmitted=!0,q.emit("data",C)}else{if(X.length+=X.objectMode?1:C.length,x)X.buffer.unshift(C);else X.buffer.push(C);if(X.needReadable)Y(q,X)}n(q,X)}E.prototype.isPaused=function(){const q=this._readableState;return q.paused===!0||q.flowing===!1},E.prototype.setEncoding=function(q){const X=new aq(q);this._readableState.decoder=X,this._readableState.encoding=this._readableState.decoder.encoding;const C=this._readableState.buffer;let x="";for(let v=C.length;v>0;v--)x+=X.write(C.shift());if(x!=="")C.push(x);return this._readableState.length=x.length,this};var e=1073741824;function Hq(q){if(q>e)throw new J("size","<= 1GiB",q);else q--,q|=q>>>1,q|=q>>>2,q|=q>>>4,q|=q>>>8,q|=q>>>16,q++;return q}function $q(q,X){if(q<=0||X.length===0&&X.ended)return 0;if(X.objectMode)return 1;if(y(q)){if(X.flowing&&X.length)return X.buffer.first().length;return X.length}if(q<=X.length)return q;return X.ended?X.length:0}E.prototype.read=function(q){if(!G(q))q=A(q,10);const X=this._readableState,C=q;if(q>X.highWaterMark)X.highWaterMark=Hq(q);if(q!==0)X.emittedReadable=!1;if(q===0&&X.needReadable&&((X.highWaterMark!==0?X.length>=X.highWaterMark:X.length>0)||X.ended)){if(X.length===0&&X.ended)H(this);else Y(this,X);return null}if(q=$q(q,X),q===0&&X.ended){if(X.length===0)H(this);return null}let x=X.needReadable;if(X.length===0||X.length-q0)Jq=Q(q,X);else Jq=null;if(Jq===null)X.needReadable=X.length<=X.highWaterMark,q=0;else if(X.length-=q,X.multiAwaitDrain)X.awaitDrainWriters.clear();else X.awaitDrainWriters=null;if(X.length===0){if(!X.ended)X.needReadable=!0;if(C!==q&&X.ended)H(this)}if(Jq!==null&&!X.errorEmitted&&!X.closeEmitted)X.dataEmitted=!0,this.emit("data",Jq);return Jq},E.prototype._read=function(q){throw new u("_read()")},E.prototype.pipe=function(q,X){const C=this,x=this._readableState;if(x.pipes.length===1){if(!x.multiAwaitDrain)x.multiAwaitDrain=!0,x.awaitDrainWriters=new k(x.awaitDrainWriters?[x.awaitDrainWriters]:[])}x.pipes.push(q);const Jq=(!X||X.end!==!1)&&q!==process.stdout&&q!==process.stderr?Oq:Pq;if(x.endEmitted)Xq(Jq);else C.once("end",Jq);q.on("unpipe",Zq);function Zq(jq,Nq){if(jq===C){if(Nq&&Nq.hasUnpiped===!1)Nq.hasUnpiped=!0,nq()}}function Oq(){q.end()}let Lq,kq=!1;function nq(){if(q.removeListener("close",wq),q.removeListener("finish",vq),Lq)q.removeListener("drain",Lq);if(q.removeListener("error",Dq),q.removeListener("unpipe",Zq),C.removeListener("end",Oq),C.removeListener("end",Pq),C.removeListener("data",yq),kq=!0,Lq&&x.awaitDrainWriters&&(!q._writableState||q._writableState.needDrain))Lq()}function fq(){if(!kq){if(x.pipes.length===1&&x.pipes[0]===q)x.awaitDrainWriters=q,x.multiAwaitDrain=!1;else if(x.pipes.length>1&&x.pipes.includes(q))x.awaitDrainWriters.add(q);C.pause()}if(!Lq)Lq=qq(C,q),q.on("drain",Lq)}C.on("data",yq);function yq(jq){if(q.write(jq)===!1)fq()}function Dq(jq){if(Gq("onerror",jq),Pq(),q.removeListener("error",Dq),q.listenerCount("error")===0){const Nq=q._writableState||q._readableState;if(Nq&&!Nq.errorEmitted)b(q,jq);else q.emit("error",jq)}}p(q,"error",Dq);function wq(){q.removeListener("finish",vq),Pq()}q.once("close",wq);function vq(){Gq("onfinish"),q.removeListener("close",wq),Pq()}q.once("finish",vq);function Pq(){Gq("unpipe"),C.unpipe(q)}if(q.emit("pipe",C),q.writableNeedDrain===!0){if(x.flowing)fq()}else if(!x.flowing)Gq("pipe resume"),C.resume();return q};function qq(q,X){return function C(){const x=q._readableState;if(x.awaitDrainWriters===X)Gq("pipeOnDrain",1),x.awaitDrainWriters=null;else if(x.multiAwaitDrain)Gq("pipeOnDrain",x.awaitDrainWriters.size),x.awaitDrainWriters.delete(X);if((!x.awaitDrainWriters||x.awaitDrainWriters.size===0)&&q.listenerCount("data"))q.resume()}}E.prototype.unpipe=function(q){const X=this._readableState,C={hasUnpiped:!1};if(X.pipes.length===0)return this;if(!q){const v=X.pipes;X.pipes=[],this.pause();for(let Jq=0;Jq0,X.resumeScheduled&&X.paused===!1)X.flowing=!0;else if(q.listenerCount("data")>0)q.resume();else if(!X.readableListening)X.flowing=null}function Qq(q){q.read(0)}E.prototype.resume=function(){const q=this._readableState;if(!q.flowing)q.flowing=!q.readableListening,t(this,q);return q.paused=!1,this},E.prototype.pause=function(){if(this._readableState.flowing!==!1)this._readableState.flowing=!1,this.emit("pause");return this._readableState.paused=!0,this},E.prototype.wrap=function(q){let X=!1;q.on("data",(x)=>{if(!this.push(x)&&q.pause)X=!0,q.pause()}),q.on("end",()=>{this.push(null)}),q.on("error",(x)=>{b(this,x)}),q.on("close",()=>{this.destroy()}),q.on("destroy",()=>{this.destroy()}),this._read=()=>{if(X&&q.resume)X=!1,q.resume()};const C=R(q);for(let x=1;x{v=Zq?F(v,Zq):null,C(),C=W});try{while(!0){const Zq=q.destroyed?null:q.read();if(Zq!==null)yield Zq;else if(v)throw v;else if(v===null)return;else await new g(x)}}catch(Zq){throw v=F(v,Zq),v}finally{if((v||(X===null||X===void 0?void 0:X.destroyOnReturn)!==!1)&&(v===void 0||q._readableState.autoDestroy))K.destroyer(q,null);else q.off("readable",x),Jq()}}M(E.prototype,{readable:{get(){const q=this._readableState;return!!q&&q.readable!==!1&&!q.destroyed&&!q.errorEmitted&&!q.endEmitted},set(q){if(this._readableState)this._readableState.readable=!!q}},readableDidRead:{enumerable:!1,get:function(){return this._readableState.dataEmitted}},readableAborted:{enumerable:!1,get:function(){return!!(this._readableState.readable!==!1&&(this._readableState.destroyed||this._readableState.errored)&&!this._readableState.endEmitted)}},readableHighWaterMark:{enumerable:!1,get:function(){return this._readableState.highWaterMark}},readableBuffer:{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}},readableFlowing:{enumerable:!1,get:function(){return this._readableState.flowing},set:function(q){if(this._readableState)this._readableState.flowing=q}},readableLength:{enumerable:!1,get(){return this._readableState.length}},readableObjectMode:{enumerable:!1,get(){return this._readableState?this._readableState.objectMode:!1}},readableEncoding:{enumerable:!1,get(){return this._readableState?this._readableState.encoding:null}},errored:{enumerable:!1,get(){return this._readableState?this._readableState.errored:null}},closed:{get(){return this._readableState?this._readableState.closed:!1}},destroyed:{enumerable:!1,get(){return this._readableState?this._readableState.destroyed:!1},set(q){if(!this._readableState)return;this._readableState.destroyed=q}},readableEnded:{enumerable:!1,get(){return this._readableState?this._readableState.endEmitted:!1}}}),E._fromList=Q;function Q(q,X){if(X.length===0)return null;let C;if(X.objectMode)C=X.buffer.shift();else if(!q||q>=X.length){if(X.decoder)C=X.buffer.join("");else if(X.buffer.length===1)C=X.buffer.first();else C=X.buffer.concat(X.length);X.buffer.clear()}else C=X.buffer.consume(q,X.decoder);return C}function H(q){const X=q._readableState;if(!X.endEmitted)X.ended=!0,Xq(L,X,q)}function L(q,X){if(!q.errored&&!q.closeEmitted&&!q.endEmitted&&q.length===0){if(q.endEmitted=!0,X.emit("end"),X.writable&&X.allowHalfOpen===!1)Xq(d,X);else if(q.autoDestroy){const C=X._writableState;if(!C||C.autoDestroy&&(C.finished||C.writable===!1))X.destroy()}}}function d(q){if(q.writable&&!q.writableEnded&&!q.destroyed)q.end()}E.from=function(q,X){return N(E,q,X)};var f={newStreamReadableFromReadableStream:Z};function r(){if(f===void 0)f={};return f}E.fromWeb=function(q,X){return r().newStreamReadableFromReadableStream(q,X)},E.toWeb=function(q){return r().newReadableStreamFromStreamReadable(q)},E.wrap=function(q,X){var C,x;return new E({objectMode:(C=(x=q.readableObjectMode)!==null&&x!==void 0?x:q.objectMode)!==null&&C!==void 0?C:!0,...X,destroy(v,Jq){K.destroyer(q,v),Jq(v)}}).wrap(q)}}}),bq=Bq({"node_modules/readable-stream/lib/internal/streams/writable.js"(a,j){var{ArrayPrototypeSlice:B,Error:G,FunctionPrototypeSymbolHasInstance:y,ObjectDefineProperty:A,ObjectDefineProperties:M,ObjectSetPrototypeOf:R,StringPrototypeToLowerCase:P,Symbol:g,SymbolHasInstance:k}=Vq(),c=Rq().Stream,O=Tq(),{addAbortSignal:l}=Sq(),{getHighWaterMark:D,getDefaultHighWaterMark:p}=JQ(),{ERR_INVALID_ARG_TYPE:E,ERR_METHOD_NOT_IMPLEMENTED:I,ERR_MULTIPLE_CALLBACK:Z,ERR_STREAM_CANNOT_PIPE:U,ERR_STREAM_DESTROYED:T,ERR_STREAM_ALREADY_FINISHED:_,ERR_STREAM_NULL_VALUES:t,ERR_STREAM_WRITE_AFTER_END:i,ERR_UNKNOWN_ENCODING:$}=Wq().codes,{errorOrDestroy:n}=O;function Y(Q={}){const H=this instanceof Mq();if(!H&&!y(Y,this))return new Y(Q);if(this._writableState=new m(Q,this,H),Q){if(typeof Q.write==="function")this._write=Q.write;if(typeof Q.writev==="function")this._writev=Q.writev;if(typeof Q.destroy==="function")this._destroy=Q.destroy;if(typeof Q.final==="function")this._final=Q.final;if(typeof Q.construct==="function")this._construct=Q.construct;if(Q.signal)l(Q.signal,this)}c.call(this,Q),O.construct(this,()=>{const L=this._writableState;if(!L.writing)s(this,L);qq(this,L)})}R(Y.prototype,c.prototype),R(Y,c),j.exports=Y;function K(){}var F=g("kOnFinished");function m(Q,H,L){if(typeof L!=="boolean")L=H instanceof Mq();if(this.objectMode=!!(Q&&Q.objectMode),L)this.objectMode=this.objectMode||!!(Q&&Q.writableObjectMode);this.highWaterMark=Q?D(this,Q,"writableHighWaterMark",L):p(!1),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;const d=!!(Q&&Q.decodeStrings===!1);this.decodeStrings=!d,this.defaultEncoding=Q&&Q.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=N.bind(void 0,H),this.writecb=null,this.writelen=0,this.afterWriteTickInfo=null,u(this),this.pendingcb=0,this.constructed=!0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!Q||Q.emitClose!==!1,this.autoDestroy=!Q||Q.autoDestroy!==!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this[F]=[]}function u(Q){Q.buffered=[],Q.bufferedIndex=0,Q.allBuffers=!0,Q.allNoop=!0}m.prototype.getBuffer=function Q(){return B(this.buffered,this.bufferedIndex)},A(m.prototype,"bufferedRequestCount",{get(){return this.buffered.length-this.bufferedIndex}}),A(Y,k,{value:function(Q){if(y(this,Q))return!0;if(this!==Y)return!1;return Q&&Q._writableState instanceof m}}),Y.prototype.pipe=function(){n(this,new U)};function J(Q,H,L,d){const f=Q._writableState;if(typeof L==="function")d=L,L=f.defaultEncoding;else{if(!L)L=f.defaultEncoding;else if(L!=="buffer"&&!Buffer.isEncoding(L))throw new $(L);if(typeof d!=="function")d=K}if(H===null)throw new t;else if(!f.objectMode)if(typeof H==="string"){if(f.decodeStrings!==!1)H=Buffer.from(H,L),L="buffer"}else if(H instanceof Buffer)L="buffer";else if(c._isUint8Array(H))H=c._uint8ArrayToBuffer(H),L="buffer";else throw new E("chunk",["string","Buffer","Uint8Array"],H);let r;if(f.ending)r=new i;else if(f.destroyed)r=new T("write");if(r)return Xq(d,r),n(Q,r,!0),r;return f.pendingcb++,z(Q,f,H,L,d)}Y.prototype.write=function(Q,H,L){return J(this,Q,H,L)===!0},Y.prototype.cork=function(){this._writableState.corked++},Y.prototype.uncork=function(){const Q=this._writableState;if(Q.corked){if(Q.corked--,!Q.writing)s(this,Q)}},Y.prototype.setDefaultEncoding=function Q(H){if(typeof H==="string")H=P(H);if(!Buffer.isEncoding(H))throw new $(H);return this._writableState.defaultEncoding=H,this};function z(Q,H,L,d,f){const r=H.objectMode?1:L.length;H.length+=r;const q=H.lengthL.bufferedIndex)s(Q,L);if(d)if(L.afterWriteTickInfo!==null&&L.afterWriteTickInfo.cb===f)L.afterWriteTickInfo.count++;else L.afterWriteTickInfo={count:1,cb:f,stream:Q,state:L},Xq(W,L.afterWriteTickInfo);else b(Q,L,1,f)}}function W({stream:Q,state:H,count:L,cb:d}){return H.afterWriteTickInfo=null,b(Q,H,L,d)}function b(Q,H,L,d){if(!H.ending&&!Q.destroyed&&H.length===0&&H.needDrain)H.needDrain=!1,Q.emit("drain");while(L-- >0)H.pendingcb--,d();if(H.destroyed)o(H);qq(Q,H)}function o(Q){if(Q.writing)return;for(let f=Q.bufferedIndex;f1&&Q._writev){H.pendingcb-=r-1;const X=H.allNoop?K:(x)=>{for(let v=q;v256)L.splice(0,q),H.bufferedIndex=0;else H.bufferedIndex=q}H.bufferProcessing=!1}Y.prototype._write=function(Q,H,L){if(this._writev)this._writev([{chunk:Q,encoding:H}],L);else throw new I("_write()")},Y.prototype._writev=null,Y.prototype.end=function(Q,H,L,d=!1){const f=this._writableState;if(typeof Q==="function")L=Q,Q=null,H=null;else if(typeof H==="function")L=H,H=null;let r;if(Q!==null&&Q!==void 0){let q;if(!d)q=J(this,Q,H);else q=this.write(Q,H);if(q instanceof G)r=q}if(f.corked)f.corked=1,this.uncork();if(r)this.emit("error",r);else if(!f.errored&&!f.ending)f.ending=!0,qq(this,f,!0),f.ended=!0;else if(f.finished)r=new _("end");else if(f.destroyed)r=new T("end");if(typeof L==="function")if(r||f.finished)Xq(L,r);else f[F].push(L);return this};function e(Q,H){var L=Q.ending&&!Q.destroyed&&Q.constructed&&Q.length===0&&!Q.errored&&Q.buffered.length===0&&!Q.finished&&!Q.writing&&!Q.errorEmitted&&!Q.closeEmitted;return Gq("needFinish",L,H),L}function Hq(Q,H){let L=!1;function d(f){if(L){n(Q,f!==null&&f!==void 0?f:Z());return}if(L=!0,H.pendingcb--,f){const r=H[F].splice(0);for(let q=0;q{if(e(f))Kq(d,f);else f.pendingcb--},Q,H);else if(e(H))H.pendingcb++,Kq(Q,H)}}function Kq(Q,H){H.pendingcb--,H.finished=!0;const L=H[F].splice(0);for(let d=0;d{if(S!=null)throw new O("nully","body",S)},(S)=>{l(z,S)});return z=new T({objectMode:!0,readable:!1,write:F,final(S){m(async()=>{try{await w,Xq(S,null)}catch(N){Xq(S,N)}})},destroy:u})}throw new O("Iterable, AsyncIterable or AsyncFunction",n,K)}if(Z($))return i($.arrayBuffer());if(y($))return I(T,$,{objectMode:!0,writable:!1});if(typeof($===null||$===void 0?void 0:$.writable)==="object"||typeof($===null||$===void 0?void 0:$.readable)==="object"){const K=$!==null&&$!==void 0&&$.readable?M($===null||$===void 0?void 0:$.readable)?$===null||$===void 0?void 0:$.readable:i($.readable):void 0,F=$!==null&&$!==void 0&&$.writable?R($===null||$===void 0?void 0:$.writable)?$===null||$===void 0?void 0:$.writable:i($.writable):void 0;return t({readable:K,writable:F})}const Y=$===null||$===void 0?void 0:$.then;if(typeof Y==="function"){let K;return U(Y,$,(F)=>{if(F!=null)K.push(F);K.push(null)},(F)=>{l(K,F)}),K=new T({objectMode:!0,writable:!1,read(){}})}throw new c(n,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],$)};function _(i){let{promise:$,resolve:n}=E();const Y=new AbortController,K=Y.signal;return{value:i(async function*(){while(!0){const m=$;$=null;const{chunk:u,done:J,cb:z}=await m;if(Xq(z),J)return;if(K.aborted)throw new k(void 0,{cause:K.reason});({promise:$,resolve:n}=E()),yield u}}(),{signal:K}),write(m,u,J){const z=n;n=null,z({chunk:m,done:!1,cb:J})},final(m){const u=n;n=null,u({done:!0,cb:m})},destroy(m,u){Y.abort(),u(m)}}}function t(i){const $=i.readable&&typeof i.readable.read!=="function"?p.wrap(i.readable):i.readable,n=i.writable;let Y=!!B($),K=!!G(n),F,m,u,J,z;function w(S){const N=J;if(J=null,N)N(S);else if(S)z.destroy(S);else if(!Y&&!K)z.destroy()}if(z=new T({readableObjectMode:!!($!==null&&$!==void 0&&$.readableObjectMode),writableObjectMode:!!(n!==null&&n!==void 0&&n.writableObjectMode),readable:Y,writable:K}),K)g(n,(S)=>{if(K=!1,S)l($,S);w(S)}),z._write=function(S,N,W){if(n.write(S,N))W();else F=W},z._final=function(S){n.end(),m=S},n.on("drain",function(){if(F){const S=F;F=null,S()}}),n.on("finish",function(){if(m){const S=m;m=null,S()}});if(Y)g($,(S)=>{if(Y=!1,S)l($,S);w(S)}),$.on("readable",function(){if(u){const S=u;u=null,S()}}),$.on("end",function(){z.push(null)}),z._read=function(){while(!0){const S=$.read();if(S===null){u=z._read;return}if(!z.push(S))return}};return z._destroy=function(S,N){if(!S&&J!==null)S=new k;if(u=null,F=null,m=null,J===null)N(S);else J=N,l(n,S),l($,S)},z}}}),Mq=Bq({"node_modules/readable-stream/lib/internal/streams/duplex.js"(a,j){var{ObjectDefineProperties:B,ObjectGetOwnPropertyDescriptor:G,ObjectKeys:y,ObjectSetPrototypeOf:A}=Vq(),M=_q();function R(O){if(!(this instanceof R))return new R(O);if(M.call(this,O),Uq.call(this,O),O){if(this.allowHalfOpen=O.allowHalfOpen!==!1,O.readable===!1)this._readableState.readable=!1,this._readableState.ended=!0,this._readableState.endEmitted=!0;if(O.writable===!1)this._writableState.writable=!1,this._writableState.ending=!0,this._writableState.ended=!0,this._writableState.finished=!0}else this.allowHalfOpen=!0}j.exports=R,A(R.prototype,M.prototype),A(R,M);for(var P in Uq.prototype)if(!R.prototype[P])R.prototype[P]=Uq.prototype[P];B(R.prototype,{writable:G(Uq.prototype,"writable"),writableHighWaterMark:G(Uq.prototype,"writableHighWaterMark"),writableObjectMode:G(Uq.prototype,"writableObjectMode"),writableBuffer:G(Uq.prototype,"writableBuffer"),writableLength:G(Uq.prototype,"writableLength"),writableFinished:G(Uq.prototype,"writableFinished"),writableCorked:G(Uq.prototype,"writableCorked"),writableEnded:G(Uq.prototype,"writableEnded"),writableNeedDrain:G(Uq.prototype,"writableNeedDrain"),destroyed:{get(){if(this._readableState===void 0||this._writableState===void 0)return!1;return this._readableState.destroyed&&this._writableState.destroyed},set(O){if(this._readableState&&this._writableState)this._readableState.destroyed=O,this._writableState.destroyed=O}}});var g;function k(){if(g===void 0)g={};return g}R.fromWeb=function(O,l){return k().newStreamDuplexFromReadableWritablePair(O,l)},R.toWeb=function(O){return k().newReadableWritablePairFromDuplex(O)};var c;R.from=function(O){if(!c)c=HQ();return c(O,"body")}}}),mq=Bq({"node_modules/readable-stream/lib/internal/streams/transform.js"(a,j){var{ObjectSetPrototypeOf:B,Symbol:G}=Vq(),{ERR_METHOD_NOT_IMPLEMENTED:y}=Wq().codes,A=Mq();function M(k){if(!(this instanceof M))return new M(k);if(A.call(this,k),this._readableState.sync=!1,this[R]=null,k){if(typeof k.transform==="function")this._transform=k.transform;if(typeof k.flush==="function")this._flush=k.flush}this.on("prefinish",g.bind(this))}B(M.prototype,A.prototype),B(M,A),j.exports=M;var R=G("kCallback");function P(k){if(typeof this._flush==="function"&&!this.destroyed)this._flush((c,O)=>{if(c){if(k)k(c);else this.destroy(c);return}if(O!=null)this.push(O);if(this.push(null),k)k()});else if(this.push(null),k)k()}function g(){if(this._final!==P)P.call(this)}M.prototype._final=P,M.prototype._transform=function(k,c,O){throw new y("_transform()")},M.prototype._write=function(k,c,O){const l=this._readableState,D=this._writableState,p=l.length;this._transform(k,c,(E,I)=>{if(E){O(E);return}if(I!=null)this.push(I);if(D.ended||p===l.length||l.length{S=!0});const N=A(J,{readable:z,writable:w},(W)=>{S=!W});return{destroy:(W)=>{if(S)return;S=!0,R.destroyer(J,W||new l("pipe"))},cleanup:N}}function $(J){return p(J[J.length-1],"streams[stream.length - 1]"),J.pop()}function n(J){if(I(J))return J;else if(U(J))return Y(J);throw new k("val",["Readable","Iterable","AsyncIterable"],J)}async function*Y(J){if(!t)t=_q();yield*t.prototype[y].call(J)}async function K(J,z,w,{end:S}){let N,W=null;const b=(e)=>{if(e)N=e;if(W){const Hq=W;W=null,Hq()}},o=()=>new G((e,Hq)=>{if(N)Hq(N);else W=()=>{if(N)Hq(N);else e()}});z.on("drain",b);const s=A(z,{readable:!1},b);try{if(z.writableNeedDrain)await o();for await(let e of J)if(!z.write(e))await o();if(S)z.end();await o(),w()}catch(e){w(N!==e?g(N,e):e)}finally{s(),z.off("drain",b)}}function F(...J){return m(J,M($(J)))}function m(J,z,w){if(J.length===1&&B(J[0]))J=J[0];if(J.length<2)throw new O("streams");const S=new AbortController,N=S.signal,W=w===null||w===void 0?void 0:w.signal,b=[];E(W,"options.signal");function o(){Kq(new D)}W===null||W===void 0||W.addEventListener("abort",o);let s,e;const Hq=[];let $q=0;function qq(h){Kq(h,--$q===0)}function Kq(h,Q){if(h&&(!s||s.code==="ERR_STREAM_PREMATURE_CLOSE"))s=h;if(!s&&!Q)return;while(Hq.length)Hq.shift()(s);if(W===null||W===void 0||W.removeEventListener("abort",o),S.abort(),Q){if(!s)b.forEach((H)=>H());Xq(z,s,e)}}let Qq;for(let h=0;h0,d=H||(w===null||w===void 0?void 0:w.end)!==!1,f=h===J.length-1;if(T(Q)){let r=function(q){if(q&&q.name!=="AbortError"&&q.code!=="ERR_STREAM_PREMATURE_CLOSE")qq(q)};if(d){const{destroy:q,cleanup:X}=i(Q,H,L);if(Hq.push(q),Z(Q)&&f)b.push(X)}if(Q.on("error",r),Z(Q)&&f)b.push(()=>{Q.removeListener("error",r)})}if(h===0)if(typeof Q==="function"){if(Qq=Q({signal:N}),!I(Qq))throw new c("Iterable, AsyncIterable or Stream","source",Qq)}else if(I(Q)||U(Q))Qq=Q;else Qq=P.from(Q);else if(typeof Q==="function")if(Qq=n(Qq),Qq=Q(Qq,{signal:N}),H){if(!I(Qq,!0))throw new c("AsyncIterable",`transform[${h-1}]`,Qq)}else{var V;if(!_)_=cq();const r=new _({objectMode:!0}),q=(V=Qq)===null||V===void 0?void 0:V.then;if(typeof q==="function")$q++,q.call(Qq,(x)=>{if(e=x,x!=null)r.write(x);if(d)r.end();Xq(qq)},(x)=>{r.destroy(x),Xq(qq,x)});else if(I(Qq,!0))$q++,K(Qq,r,qq,{end:d});else throw new c("AsyncIterable or Promise","destination",Qq);Qq=r;const{destroy:X,cleanup:C}=i(Qq,!1,!0);if(Hq.push(X),f)b.push(C)}else if(T(Q)){if(U(Qq)){$q+=2;const r=u(Qq,Q,qq,{end:d});if(Z(Q)&&f)b.push(r)}else if(I(Qq))$q++,K(Qq,Q,qq,{end:d});else throw new k("val",["Readable","Iterable","AsyncIterable"],Qq);Qq=Q}else Qq=P.from(Q)}if(N!==null&&N!==void 0&&N.aborted||W!==null&&W!==void 0&&W.aborted)Xq(o);return Qq}function u(J,z,w,{end:S}){if(J.pipe(z,{end:S}),S)J.once("end",()=>z.end());else w();return A(J,{readable:!0,writable:!1},(N)=>{const W=J._readableState;if(N&&N.code==="ERR_STREAM_PREMATURE_CLOSE"&&W&&W.ended&&!W.errored&&!W.errorEmitted)J.once("end",w).once("error",w);else w(N)}),A(z,{readable:!1,writable:!0},w)}j.exports={pipelineImpl:m,pipeline:F}}}),KQ=Bq({"node_modules/readable-stream/lib/internal/streams/compose.js"(a,j){var{pipeline:B}=gq(),G=Mq(),{destroyer:y}=Tq(),{isNodeStream:A,isReadable:M,isWritable:R}=Eq(),{AbortError:P,codes:{ERR_INVALID_ARG_VALUE:g,ERR_MISSING_ARGS:k}}=Wq();j.exports=function c(...O){if(O.length===0)throw new k("streams");if(O.length===1)return G.from(O[0]);const l=[...O];if(typeof O[0]==="function")O[0]=G.from(O[0]);if(typeof O[O.length-1]==="function"){const $=O.length-1;O[$]=G.from(O[$])}for(let $=0;$0&&!R(O[$]))throw new g(`streams[${$}]`,l[$],"must be writable")}let D,p,E,I,Z;function U($){const n=I;if(I=null,n)n($);else if($)Z.destroy($);else if(!i&&!t)Z.destroy()}const T=O[0],_=B(O,U),t=!!R(T),i=!!M(_);if(Z=new G({writableObjectMode:!!(T!==null&&T!==void 0&&T.writableObjectMode),readableObjectMode:!!(_!==null&&_!==void 0&&_.writableObjectMode),writable:t,readable:i}),t)Z._write=function($,n,Y){if(T.write($,n))Y();else D=Y},Z._final=function($){T.end(),p=$},T.on("drain",function(){if(D){const $=D;D=null,$()}}),_.on("finish",function(){if(p){const $=p;p=null,$()}});if(i)_.on("readable",function(){if(E){const $=E;E=null,$()}}),_.on("end",function(){Z.push(null)}),Z._read=function(){while(!0){const $=_.read();if($===null){E=Z._read;return}if(!Z.push($))return}};return Z._destroy=function($,n){if(!$&&I!==null)$=new P;if(E=null,D=null,p=null,I===null)n($);else I=n,y(_,$)},Z}}}),dq=Bq({"node_modules/readable-stream/lib/stream/promises.js"(a,j){var{ArrayPrototypePop:B,Promise:G}=Vq(),{isIterable:y,isNodeStream:A}=Eq(),{pipelineImpl:M}=gq(),{finished:R}=Fq();function P(...g){return new G((k,c)=>{let O,l;const D=g[g.length-1];if(D&&typeof D==="object"&&!A(D)&&!y(D)){const p=B(g);O=p.signal,l=p.end}M(g,(p,E)=>{if(p)c(p);else k(E)},{signal:O,end:l})})}j.exports={finished:R,pipeline:P}}}),ZQ=Bq({"node_modules/readable-stream/lib/stream.js"(a,j){var{ObjectDefineProperty:B,ObjectKeys:G,ReflectApply:y}=Vq(),{promisify:{custom:A}}=Aq(),{streamReturningOperators:M,promiseReturningOperators:R}=XQ(),{codes:{ERR_ILLEGAL_CONSTRUCTOR:P}}=Wq(),g=KQ(),{pipeline:k}=gq(),{destroyer:c}=Tq(),O=Fq(),l=dq(),D=Eq(),p=j.exports=Rq().Stream;p.isDisturbed=D.isDisturbed,p.isErrored=D.isErrored,p.isWritable=D.isWritable,p.isReadable=D.isReadable,p.Readable=_q();for(let I of G(M)){let Z=function(...T){if(new.target)throw P();return p.Readable.from(y(U,this,T))};const U=M[I];B(Z,"name",{value:U.name}),B(Z,"length",{value:U.length}),B(p.Readable.prototype,I,{value:Z,enumerable:!1,configurable:!0,writable:!0})}for(let I of G(R)){let Z=function(...T){if(new.target)throw P();return y(U,this,T)};const U=R[I];B(Z,"name",{value:U.name}),B(Z,"length",{value:U.length}),B(p.Readable.prototype,I,{value:Z,enumerable:!1,configurable:!0,writable:!0})}p.Writable=bq(),p.Duplex=Mq(),p.Transform=mq(),p.PassThrough=cq(),p.pipeline=k;var{addAbortSignal:E}=Sq();p.addAbortSignal=E,p.finished=O,p.destroy=c,p.compose=g,B(p,"promises",{configurable:!0,enumerable:!0,get(){return l}}),B(k,A,{enumerable:!0,get(){return l.pipeline}}),B(O,A,{enumerable:!0,get(){return l.finished}}),p.Stream=p,p._isUint8Array=function I(Z){return Z instanceof Uint8Array},p._uint8ArrayToBuffer=function I(Z){return new Buffer(Z.buffer,Z.byteOffset,Z.byteLength)}}}),BQ=Bq({"node_modules/readable-stream/lib/ours/index.js"(a,j){const B=ZQ(),G=dq(),y=B.Readable.destroy;j.exports=B,j.exports._uint8ArrayToBuffer=B._uint8ArrayToBuffer,j.exports._isUint8Array=B._isUint8Array,j.exports.isDisturbed=B.isDisturbed,j.exports.isErrored=B.isErrored,j.exports.isWritable=B.isWritable,j.exports.isReadable=B.isReadable,j.exports.Readable=B.Readable,j.exports.Writable=B.Writable,j.exports.Duplex=B.Duplex,j.exports.Transform=B.Transform,j.exports.PassThrough=B.PassThrough,j.exports.addAbortSignal=B.addAbortSignal,j.exports.finished=B.finished,j.exports.destroy=B.destroy,j.exports.destroy=y,j.exports.pipeline=B.pipeline,j.exports.compose=B.compose,j.exports._getNativeReadableStreamPrototype=lq,j.exports.NativeWritable=iq,zq.defineProperty(B,"promises",{configurable:!0,enumerable:!0,get(){return G}}),j.exports.Stream=B.Stream,j.exports.default=j.exports}}),$Q={0:void 0,1:void 0,2:void 0,3:void 0,4:void 0,5:void 0},Uq=bq(),iq=class a extends Uq{#q;#Q;#X=!0;_construct;_destroy;_final;constructor(j,B={}){super(B);this._construct=this.#H,this._destroy=this.#K,this._final=this.#Z,this.#q=j}#H(j){this._writableState.constructed=!0,this.constructed=!0,j()}#J(){if(typeof this.#q==="object")if(typeof this.#q.write==="function")this.#Q=this.#q;else throw new Error("Invalid FileSink");else this.#Q=Bun.file(this.#q).writer()}write(j,B,G,y=this.#X){if(!y)return this.#X=!1,super.write(j,B,G);if(!this.#Q)this.#J();var A=this.#Q,M=A.write(j);if(xq(M))return M.then(()=>{this.emit("drain"),A.flush(!0)}),!1;if(A.flush(!0),G)G(null,j.byteLength);return!0}end(j,B,G,y=this.#X){return super.end(j,B,G,y)}#K(j,B){if(this._writableState.destroyed=!0,B)B(j)}#Z(j){if(this.#Q)this.#Q.end();if(j)j()}ref(){if(!this.#Q)this.#J();this.#Q.ref()}unref(){if(!this.#Q)return;this.#Q.unref()}},Yq=BQ();Yq[Symbol.for("CommonJS")]=0;Yq[Symbol.for("::bunternal::")]={_ReadableFromWeb:pq,_ReadableFromWebForUndici:uq};var cQ=Yq,EQ=Yq._uint8ArrayToBuffer,IQ=Yq._isUint8Array,TQ=Yq.isDisturbed,PQ=Yq.isErrored,xQ=Yq.isWritable,OQ=Yq.isReadable,CQ=Yq.Readable,Uq=Yq.Writable,_Q=Yq.Duplex,DQ=Yq.Transform,wQ=Yq.PassThrough,vQ=Yq.addAbortSignal,RQ=Yq.finished,SQ=Yq.destroy,gQ=Yq.pipeline,kQ=Yq.compose,VQ=Yq.Stream,fQ=Yq.eos=Fq,yQ=Yq._getNativeReadableStreamPrototype,iq=Yq.NativeWritable,hQ=VQ.promises;export{hQ as promises,gQ as pipeline,xQ as isWritable,OQ as isReadable,PQ as isErrored,TQ as isDisturbed,RQ as finished,fQ as eos,SQ as destroy,cQ as default,kQ as compose,vQ as addAbortSignal,EQ as _uint8ArrayToBuffer,IQ as _isUint8Array,yQ as _getNativeReadableStreamPrototype,Uq as Writable,DQ as Transform,VQ as Stream,CQ as Readable,wQ as PassThrough,iq as NativeWritable,_Q as Duplex}; +import{EventEmitter as Iq} from"bun:events_native";import{StringDecoder as aq} from"node:string_decoder";var tq=function(a){return typeof a==="object"&&a!==null&&a instanceof ReadableStream},eq=function(a,j){if(typeof a!=="boolean")throw new qQ(j,"boolean",a)};var qQ=function(a,j,B){return new Error(`The argument '${a}' is invalid. Received '${B}' for type '${j}'`)},QQ=function(a,j,B){return new Error(`The value '${j}' is invalid for argument '${a}'. Reason: ${B}`)},YQ=function(a,j){var[B,G,y,A,M,R,T]=globalThis[Symbol.for("Bun.lazy")](a),g=[!1],k=function(E,P,Z,U){if(P>0){const I=Z.subarray(0,P),_=Z.subarray(P);if(I.byteLength>0)E.push(I);if(U)E.push(null);return _.byteLength>0?_:void 0}if(U)E.push(null);return Z},c=function(E,P,Z,U){if(P.byteLength>0)E.push(P);if(U)E.push(null);return Z},O=process.env.BUN_DISABLE_DYNAMIC_CHUNK_SIZE!=="1";const l=new FinalizationRegistry((E)=>E&&M(E)),D=512;var p=class E extends j{#q;#Q=1;#X=!1;#H=void 0;#J;#K=!1;#Z=!O;#B;constructor(P,Z={}){super(Z);if(typeof Z.highWaterMark==="number")this.#J=Z.highWaterMark;else this.#J=262144;this.#q=P,this.#X=!1,this.#H=void 0,this.#K=!1,this.#B={},l.register(this,this.#q,this.#B)}_read(P){if(this.#K)return;var Z=this.#q;if(Z===0){this.push(null);return}if(!this.#X)this.#$(Z);return this.#V(this.#z(P),Z)}#$(P){this.#X=!0;const Z=G(P,this.#J);if(typeof Z==="number"&&Z>1)this.#Z=!0,this.#J=Math.min(this.#J,Z);if(T){const U=T(P);if((U?.byteLength??0)>0)this.push(U)}}#z(P=this.#J){var Z=this.#H;if(Z?.byteLength??0D?P:D;this.#H=Z=new Buffer(U)}return Z}#Y(P,Z,U){if(typeof P==="number"){if(P>=this.#J&&!this.#Z&&!U)this.#J*=2,this.#Z=!0;return k(this,P,Z,U)}else if(typeof P==="boolean")return process.nextTick(()=>{this.push(null)}),Z?.byteLength??0>0?Z:void 0;else if(ArrayBuffer.isView(P)){if(P.byteLength>=this.#J&&!this.#Z&&!U)this.#J*=2,this.#Z=!0;return c(this,P,Z,U)}else throw new Error("Invalid result from pull")}#V(P,Z){g[0]=!1;var U=B(Z,P,g);if(xq(U))return this.#K=!0,U.then((I)=>{this.#K=!1,this.#H=this.#Y(I,P,g[0])},(I)=>{errorOrDestroy(this,I)});else this.#H=this.#Y(U,P,g[0])}_destroy(P,Z){var U=this.#q;if(U===0){Z(P);return}if(l.unregister(this.#B),this.#q=0,R)R(U,!1);y(U,P),Z(P)}ref(){var P=this.#q;if(P===0)return;if(this.#Q++===0)R(P,!0)}unref(){var P=this.#q;if(P===0)return;if(this.#Q--===1)R(P,!1)}};if(!R)p.prototype.ref=void 0,p.prototype.unref=void 0;return p},lq=function(a,j){return $Q[a]||=YQ(a,j)},zQ=function(a,j,B){if(!(j&&typeof j==="object"&&j instanceof ReadableStream))return;const G=sq(j);if(!G){Gq("no native readable stream");return}const{stream:y,data:A}=G;return new(lq(A,a))(y,B)};var Gq=()=>{},{isPromise:xq,isCallable:oq,direct:sq,Object:zq}=globalThis[Symbol.for("Bun.lazy")]("primordials"),GQ=zq.create,MQ=zq.defineProperty,FQ=zq.getOwnPropertyDescriptor,rq=zq.getOwnPropertyNames,LQ=zq.getPrototypeOf,jQ=zq.prototype.hasOwnProperty,NQ=zq.setPrototypeOf,Bq=(a,j)=>function B(){return j||(0,a[rq(a)[0]])((j={exports:{}}).exports,j),j.exports};var Xq=process.nextTick;var AQ=Array.isArray,Vq=Bq({"node_modules/readable-stream/lib/ours/primordials.js"(a,j){j.exports={ArrayIsArray(B){return Array.isArray(B)},ArrayPrototypeIncludes(B,G){return B.includes(G)},ArrayPrototypeIndexOf(B,G){return B.indexOf(G)},ArrayPrototypeJoin(B,G){return B.join(G)},ArrayPrototypeMap(B,G){return B.map(G)},ArrayPrototypePop(B,G){return B.pop(G)},ArrayPrototypePush(B,G){return B.push(G)},ArrayPrototypeSlice(B,G,y){return B.slice(G,y)},Error,FunctionPrototypeCall(B,G,...y){return B.call(G,...y)},FunctionPrototypeSymbolHasInstance(B,G){return Function.prototype[Symbol.hasInstance].call(B,G)},MathFloor:Math.floor,Number,NumberIsInteger:Number.isInteger,NumberIsNaN:Number.isNaN,NumberMAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,NumberParseInt:Number.parseInt,ObjectDefineProperties(B,G){return zq.defineProperties(B,G)},ObjectDefineProperty(B,G,y){return zq.defineProperty(B,G,y)},ObjectGetOwnPropertyDescriptor(B,G){return zq.getOwnPropertyDescriptor(B,G)},ObjectKeys(B){return zq.keys(B)},ObjectSetPrototypeOf(B,G){return zq.setPrototypeOf(B,G)},Promise,PromisePrototypeCatch(B,G){return B.catch(G)},PromisePrototypeThen(B,G,y){return B.then(G,y)},PromiseReject(B){return Promise.reject(B)},ReflectApply:Reflect.apply,RegExpPrototypeTest(B,G){return B.test(G)},SafeSet:Set,String,StringPrototypeSlice(B,G,y){return B.slice(G,y)},StringPrototypeToLowerCase(B){return B.toLowerCase()},StringPrototypeToUpperCase(B){return B.toUpperCase()},StringPrototypeTrim(B){return B.trim()},Symbol,SymbolAsyncIterator:Symbol.asyncIterator,SymbolHasInstance:Symbol.hasInstance,SymbolIterator:Symbol.iterator,TypedArrayPrototypeSet(B,G,y){return B.set(G,y)},Uint8Array}}}),Aq=Bq({"node_modules/readable-stream/lib/ours/util.js"(a,j){var B=zq.getPrototypeOf(async function(){}).constructor,G=typeof Blob!=="undefined"?function A(M){return M instanceof Blob}:function A(M){return!1},y=class extends Error{constructor(A){if(!Array.isArray(A))throw new TypeError(`Expected input to be an Array, got ${typeof A}`);let M="";for(let R=0;R{A=T,M=g}),resolve:A,reject:M}},promisify(A){return new Promise((M,R)=>{A((T,...g)=>{if(T)return R(T);return M(...g)})})},debuglog(){return function(){}},format(A,...M){return A.replace(/%([sdifj])/g,function(...[R,T]){const g=M.shift();if(T==="f")return g.toFixed(6);else if(T==="j")return JSON.stringify(g);else if(T==="s"&&typeof g==="object")return`${g.constructor!==zq?g.constructor.name:""} {}`.trim();else return g.toString()})},inspect(A){switch(typeof A){case"string":if(A.includes("'")){if(!A.includes('"'))return`"${A}"`;else if(!A.includes("`")&&!A.includes("${"))return`\`${A}\``}return`'${A}'`;case"number":if(isNaN(A))return"NaN";else if(zq.is(A,-0))return String(A);return A;case"bigint":return`${String(A)}n`;case"boolean":case"undefined":return String(A);case"object":return"{}"}},types:{isAsyncFunction(A){return A instanceof B},isArrayBufferView(A){return ArrayBuffer.isView(A)}},isBlob:G},j.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")}}),Wq=Bq({"node_modules/readable-stream/lib/ours/errors.js"(a,j){var{format:B,inspect:G,AggregateError:y}=Aq(),A=globalThis.AggregateError||y,M=Symbol("kIsNodeError"),R=["string","function","number","object","Function","Object","boolean","bigint","symbol"],T=/^([A-Z][a-z0-9]*)+$/,g="__node_internal_",k={};function c(Z,U){if(!Z)throw new k.ERR_INTERNAL_ASSERTION(U)}function O(Z){let U="",I=Z.length;const _=Z[0]==="-"?1:0;for(;I>=_+4;I-=3)U=`_${Z.slice(I-3,I)}${U}`;return`${Z.slice(0,I)}${U}`}function l(Z,U,I){if(typeof U==="function")return c(U.length<=I.length,`Code: ${Z}; The provided arguments length (${I.length}) does not match the required ones (${U.length}).`),U(...I);const _=(U.match(/%[dfijoOs]/g)||[]).length;if(c(_===I.length,`Code: ${Z}; The provided arguments length (${I.length}) does not match the required ones (${_}).`),I.length===0)return U;return B(U,...I)}function D(Z,U,I){if(!I)I=Error;class _ extends I{constructor(...t){super(l(Z,U,t))}toString(){return`${this.name} [${Z}]: ${this.message}`}}zq.defineProperties(_.prototype,{name:{value:I.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${Z}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),_.prototype.code=Z,_.prototype[M]=!0,k[Z]=_}function p(Z){const U=g+Z.name;return zq.defineProperty(Z,"name",{value:U}),Z}function E(Z,U){if(Z&&U&&Z!==U){if(Array.isArray(U.errors))return U.errors.push(Z),U;const I=new A([U,Z],U.message);return I.code=U.code,I}return Z||U}var P=class extends Error{constructor(Z="The operation was aborted",U=void 0){if(U!==void 0&&typeof U!=="object")throw new k.ERR_INVALID_ARG_TYPE("options","Object",U);super(Z,U);this.code="ABORT_ERR",this.name="AbortError"}};D("ERR_ASSERTION","%s",Error),D("ERR_INVALID_ARG_TYPE",(Z,U,I)=>{if(c(typeof Z==="string","'name' must be a string"),!Array.isArray(U))U=[U];let _="The ";if(Z.endsWith(" argument"))_+=`${Z} `;else _+=`"${Z}" ${Z.includes(".")?"property":"argument"} `;_+="must be ";const t=[],i=[],$=[];for(let Y of U)if(c(typeof Y==="string","All expected entries have to be of type string"),R.includes(Y))t.push(Y.toLowerCase());else if(T.test(Y))i.push(Y);else c(Y!=="object",'The value "object" should be written as "Object"'),$.push(Y);if(i.length>0){const Y=t.indexOf("object");if(Y!==-1)t.splice(t,Y,1),i.push("Object")}if(t.length>0){switch(t.length){case 1:_+=`of type ${t[0]}`;break;case 2:_+=`one of type ${t[0]} or ${t[1]}`;break;default:{const Y=t.pop();_+=`one of type ${t.join(", ")}, or ${Y}`}}if(i.length>0||$.length>0)_+=" or "}if(i.length>0){switch(i.length){case 1:_+=`an instance of ${i[0]}`;break;case 2:_+=`an instance of ${i[0]} or ${i[1]}`;break;default:{const Y=i.pop();_+=`an instance of ${i.join(", ")}, or ${Y}`}}if($.length>0)_+=" or "}switch($.length){case 0:break;case 1:if($[0].toLowerCase()!==$[0])_+="an ";_+=`${$[0]}`;break;case 2:_+=`one of ${$[0]} or ${$[1]}`;break;default:{const Y=$.pop();_+=`one of ${$.join(", ")}, or ${Y}`}}if(I==null)_+=`. Received ${I}`;else if(typeof I==="function"&&I.name)_+=`. Received function ${I.name}`;else if(typeof I==="object"){var n;if((n=I.constructor)!==null&&n!==void 0&&n.name)_+=`. Received an instance of ${I.constructor.name}`;else{const Y=G(I,{depth:-1});_+=`. Received ${Y}`}}else{let Y=G(I,{colors:!1});if(Y.length>25)Y=`${Y.slice(0,25)}...`;_+=`. Received type ${typeof I} (${Y})`}return _},TypeError),D("ERR_INVALID_ARG_VALUE",(Z,U,I="is invalid")=>{let _=G(U);if(_.length>128)_=_.slice(0,128)+"...";return`The ${Z.includes(".")?"property":"argument"} '${Z}' ${I}. Received ${_}`},TypeError),D("ERR_INVALID_RETURN_VALUE",(Z,U,I)=>{var _;const t=I!==null&&I!==void 0&&(_=I.constructor)!==null&&_!==void 0&&_.name?`instance of ${I.constructor.name}`:`type ${typeof I}`;return`Expected ${Z} to be returned from the "${U}" function but got ${t}.`},TypeError),D("ERR_MISSING_ARGS",(...Z)=>{c(Z.length>0,"At least one arg needs to be specified");let U;const I=Z.length;switch(Z=(Array.isArray(Z)?Z:[Z]).map((_)=>`"${_}"`).join(" or "),I){case 1:U+=`The ${Z[0]} argument`;break;case 2:U+=`The ${Z[0]} and ${Z[1]} arguments`;break;default:{const _=Z.pop();U+=`The ${Z.join(", ")}, and ${_} arguments`}break}return`${U} must be specified`},TypeError),D("ERR_OUT_OF_RANGE",(Z,U,I)=>{c(U,'Missing "range" argument');let _;if(Number.isInteger(I)&&Math.abs(I)>4294967296)_=O(String(I));else if(typeof I==="bigint"){if(_=String(I),I>2n**32n||I<-(2n**32n))_=O(_);_+="n"}else _=G(I);return`The value of "${Z}" is out of range. It must be ${U}. Received ${_}`},RangeError),D("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),D("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),D("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),D("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),D("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),D("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),D("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),D("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),D("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),D("ERR_STREAM_WRITE_AFTER_END","write after end",Error),D("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),j.exports={AbortError:P,aggregateTwoErrors:p(E),hideStackFrames:p,codes:k}}}),Cq=Bq({"node_modules/readable-stream/lib/internal/validators.js"(a,j){var{ArrayIsArray:B,ArrayPrototypeIncludes:G,ArrayPrototypeJoin:y,ArrayPrototypeMap:A,NumberIsInteger:M,NumberMAX_SAFE_INTEGER:R,NumberMIN_SAFE_INTEGER:T,NumberParseInt:g,RegExpPrototypeTest:k,String:c,StringPrototypeToUpperCase:O,StringPrototypeTrim:l}=Vq(),{hideStackFrames:D,codes:{ERR_SOCKET_BAD_PORT:p,ERR_INVALID_ARG_TYPE:E,ERR_INVALID_ARG_VALUE:P,ERR_OUT_OF_RANGE:Z,ERR_UNKNOWN_SIGNAL:U}}=Wq(),{normalizeEncoding:I}=Aq(),{isAsyncFunction:_,isArrayBufferView:t}=Aq().types,i={};function $(V){return V===(V|0)}function n(V){return V===V>>>0}var Y=/^[0-7]+$/,K="must be a 32-bit unsigned integer or an octal string";function F(V,h,Q){if(typeof V==="undefined")V=Q;if(typeof V==="string"){if(!k(Y,V))throw new P(h,V,K);V=g(V,8)}return u(V,h,0,4294967295),V}var m=D((V,h,Q=T,H=R)=>{if(typeof V!=="number")throw new E(h,"number",V);if(!M(V))throw new Z(h,"an integer",V);if(VH)throw new Z(h,`>= ${Q} && <= ${H}`,V)}),u=D((V,h,Q=-2147483648,H=2147483647)=>{if(typeof V!=="number")throw new E(h,"number",V);if(!$(V)){if(!M(V))throw new Z(h,"an integer",V);throw new Z(h,`>= ${Q} && <= ${H}`,V)}if(VH)throw new Z(h,`>= ${Q} && <= ${H}`,V)}),J=D((V,h,Q)=>{if(typeof V!=="number")throw new E(h,"number",V);if(!n(V)){if(!M(V))throw new Z(h,"an integer",V);throw new Z(h,`>= ${Q?1:0} && < 4294967296`,V)}if(Q&&V===0)throw new Z(h,">= 1 && < 4294967296",V)});function z(V,h){if(typeof V!=="string")throw new E(h,"string",V)}function w(V,h){if(typeof V!=="number")throw new E(h,"number",V)}var S=D((V,h,Q)=>{if(!G(Q,V)){const L="must be one of: "+y(A(Q,(d)=>typeof d==="string"?`'${d}'`:c(d)),", ");throw new P(h,V,L)}});function N(V,h){if(typeof V!=="boolean")throw new E(h,"boolean",V)}var W=D((V,h,Q)=>{const H=Q==null,L=H?!1:Q.allowArray,d=H?!1:Q.allowFunction;if(!(H?!1:Q.nullable)&&V===null||!L&&B(V)||typeof V!=="object"&&(!d||typeof V!=="function"))throw new E(h,"Object",V)}),b=D((V,h,Q=0)=>{if(!B(V))throw new E(h,"Array",V);if(V.length{if(!t(V))throw new E(h,["Buffer","TypedArray","DataView"],V)});function e(V,h){const Q=I(h),H=V.length;if(Q==="hex"&&H%2!==0)throw new P("encoding",h,`is invalid for data of length ${H}`)}function Hq(V,h="Port",Q=!0){if(typeof V!=="number"&&typeof V!=="string"||typeof V==="string"&&l(V).length===0||+V!==+V>>>0||V>65535||V===0&&!Q)throw new p(h,V,Q);return V|0}var $q=D((V,h)=>{if(V!==void 0&&(V===null||typeof V!=="object"||!("aborted"in V)))throw new E(h,"AbortSignal",V)}),qq=D((V,h)=>{if(typeof V!=="function")throw new E(h,"Function",V)}),Kq=D((V,h)=>{if(typeof V!=="function"||_(V))throw new E(h,"Function",V)}),Qq=D((V,h)=>{if(V!==void 0)throw new E(h,"undefined",V)});j.exports={isInt32:$,isUint32:n,parseFileMode:F,validateArray:b,validateBoolean:N,validateBuffer:s,validateEncoding:e,validateFunction:qq,validateInt32:u,validateInteger:m,validateNumber:w,validateObject:W,validateOneOf:S,validatePlainFunction:Kq,validatePort:Hq,validateSignalName:o,validateString:z,validateUint32:J,validateUndefined:Qq,validateAbortSignal:$q}}}),Eq=Bq({"node_modules/readable-stream/lib/internal/streams/utils.js"(a,j){var{Symbol:B,SymbolAsyncIterator:G,SymbolIterator:y}=Vq(),A=B("kDestroyed"),M=B("kIsErrored"),R=B("kIsReadable"),T=B("kIsDisturbed");function g(J,z=!1){var w;return!!(J&&typeof J.pipe==="function"&&typeof J.on==="function"&&(!z||typeof J.pause==="function"&&typeof J.resume==="function")&&(!J._writableState||((w=J._readableState)===null||w===void 0?void 0:w.readable)!==!1)&&(!J._writableState||J._readableState))}function k(J){var z;return!!(J&&typeof J.write==="function"&&typeof J.on==="function"&&(!J._readableState||((z=J._writableState)===null||z===void 0?void 0:z.writable)!==!1))}function c(J){return!!(J&&typeof J.pipe==="function"&&J._readableState&&typeof J.on==="function"&&typeof J.write==="function")}function O(J){return J&&(J._readableState||J._writableState||typeof J.write==="function"&&typeof J.on==="function"||typeof J.pipe==="function"&&typeof J.on==="function")}function l(J,z){if(J==null)return!1;if(z===!0)return typeof J[G]==="function";if(z===!1)return typeof J[y]==="function";return typeof J[G]==="function"||typeof J[y]==="function"}function D(J){if(!O(J))return null;const{_writableState:z,_readableState:w}=J,S=z||w;return!!(J.destroyed||J[A]||S!==null&&S!==void 0&&S.destroyed)}function p(J){if(!k(J))return null;if(J.writableEnded===!0)return!0;const z=J._writableState;if(z!==null&&z!==void 0&&z.errored)return!1;if(typeof(z===null||z===void 0?void 0:z.ended)!=="boolean")return null;return z.ended}function E(J,z){if(!k(J))return null;if(J.writableFinished===!0)return!0;const w=J._writableState;if(w!==null&&w!==void 0&&w.errored)return!1;if(typeof(w===null||w===void 0?void 0:w.finished)!=="boolean")return null;return!!(w.finished||z===!1&&w.ended===!0&&w.length===0)}function P(J){if(!g(J))return null;if(J.readableEnded===!0)return!0;const z=J._readableState;if(!z||z.errored)return!1;if(typeof(z===null||z===void 0?void 0:z.ended)!=="boolean")return null;return z.ended}function Z(J,z){if(!g(J))return null;const w=J._readableState;if(w!==null&&w!==void 0&&w.errored)return!1;if(typeof(w===null||w===void 0?void 0:w.endEmitted)!=="boolean")return null;return!!(w.endEmitted||z===!1&&w.ended===!0&&w.length===0)}function U(J){if(J&&J[R]!=null)return J[R];if(typeof(J===null||J===void 0?void 0:J.readable)!=="boolean")return null;if(D(J))return!1;return g(J)&&J.readable&&!Z(J)}function I(J){if(typeof(J===null||J===void 0?void 0:J.writable)!=="boolean")return null;if(D(J))return!1;return k(J)&&J.writable&&!p(J)}function _(J,z){if(!O(J))return null;if(D(J))return!0;if((z===null||z===void 0?void 0:z.readable)!==!1&&U(J))return!1;if((z===null||z===void 0?void 0:z.writable)!==!1&&I(J))return!1;return!0}function t(J){var z,w;if(!O(J))return null;if(J.writableErrored)return J.writableErrored;return(z=(w=J._writableState)===null||w===void 0?void 0:w.errored)!==null&&z!==void 0?z:null}function i(J){var z,w;if(!O(J))return null;if(J.readableErrored)return J.readableErrored;return(z=(w=J._readableState)===null||w===void 0?void 0:w.errored)!==null&&z!==void 0?z:null}function $(J){if(!O(J))return null;if(typeof J.closed==="boolean")return J.closed;const{_writableState:z,_readableState:w}=J;if(typeof(z===null||z===void 0?void 0:z.closed)==="boolean"||typeof(w===null||w===void 0?void 0:w.closed)==="boolean")return(z===null||z===void 0?void 0:z.closed)||(w===null||w===void 0?void 0:w.closed);if(typeof J._closed==="boolean"&&n(J))return J._closed;return null}function n(J){return typeof J._closed==="boolean"&&typeof J._defaultKeepAlive==="boolean"&&typeof J._removedConnection==="boolean"&&typeof J._removedContLen==="boolean"}function Y(J){return typeof J._sent100==="boolean"&&n(J)}function K(J){var z;return typeof J._consuming==="boolean"&&typeof J._dumped==="boolean"&&((z=J.req)===null||z===void 0?void 0:z.upgradeOrConnect)===void 0}function F(J){if(!O(J))return null;const{_writableState:z,_readableState:w}=J,S=z||w;return!S&&Y(J)||!!(S&&S.autoDestroy&&S.emitClose&&S.closed===!1)}function m(J){var z;return!!(J&&((z=J[T])!==null&&z!==void 0?z:J.readableDidRead||J.readableAborted))}function u(J){var z,w,S,N,W,b,o,s,e,Hq;return!!(J&&((z=(w=(S=(N=(W=(b=J[M])!==null&&b!==void 0?b:J.readableErrored)!==null&&W!==void 0?W:J.writableErrored)!==null&&N!==void 0?N:(o=J._readableState)===null||o===void 0?void 0:o.errorEmitted)!==null&&S!==void 0?S:(s=J._writableState)===null||s===void 0?void 0:s.errorEmitted)!==null&&w!==void 0?w:(e=J._readableState)===null||e===void 0?void 0:e.errored)!==null&&z!==void 0?z:(Hq=J._writableState)===null||Hq===void 0?void 0:Hq.errored))}j.exports={kDestroyed:A,isDisturbed:m,kIsDisturbed:T,isErrored:u,kIsErrored:M,isReadable:U,kIsReadable:R,isClosed:$,isDestroyed:D,isDuplexNodeStream:c,isFinished:_,isIterable:l,isReadableNodeStream:g,isReadableEnded:P,isReadableFinished:Z,isReadableErrored:i,isNodeStream:O,isWritable:I,isWritableNodeStream:k,isWritableEnded:p,isWritableFinished:E,isWritableErrored:t,isServerRequest:K,isServerResponse:Y,willEmitClose:F}}}),Fq=Bq({"node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(a,j){var{AbortError:B,codes:G}=Wq(),{ERR_INVALID_ARG_TYPE:y,ERR_STREAM_PREMATURE_CLOSE:A}=G,{once:M}=Aq(),{validateAbortSignal:R,validateFunction:T,validateObject:g}=Cq(),{Promise:k}=Vq(),{isClosed:c,isReadable:O,isReadableNodeStream:l,isReadableFinished:D,isReadableErrored:p,isWritable:E,isWritableNodeStream:P,isWritableFinished:Z,isWritableErrored:U,isNodeStream:I,willEmitClose:_}=Eq();function t(Y){return Y.setHeader&&typeof Y.abort==="function"}var i=()=>{};function $(Y,K,F){var m,u;if(arguments.length===2)F=K,K={};else if(K==null)K={};else g(K,"options");T(F,"callback"),R(K.signal,"options.signal"),F=M(F);const J=(m=K.readable)!==null&&m!==void 0?m:l(Y),z=(u=K.writable)!==null&&u!==void 0?u:P(Y);if(!I(Y))throw new y("stream","Stream",Y);const{_writableState:w,_readableState:S}=Y,N=()=>{if(!Y.writable)o()};let W=_(Y)&&l(Y)===J&&P(Y)===z,b=Z(Y,!1);const o=()=>{if(b=!0,Y.destroyed)W=!1;if(W&&(!Y.readable||J))return;if(!J||s)F.call(Y)};let s=D(Y,!1);const e=()=>{if(s=!0,Y.destroyed)W=!1;if(W&&(!Y.writable||z))return;if(!z||b)F.call(Y)},Hq=(V)=>{F.call(Y,V)};let $q=c(Y);const qq=()=>{$q=!0;const V=U(Y)||p(Y);if(V&&typeof V!=="boolean")return F.call(Y,V);if(J&&!s&&l(Y,!0)){if(!D(Y,!1))return F.call(Y,new A)}if(z&&!b){if(!Z(Y,!1))return F.call(Y,new A)}F.call(Y)},Kq=()=>{Y.req.on("finish",o)};if(t(Y)){if(Y.on("complete",o),!W)Y.on("abort",qq);if(Y.req)Kq();else Y.on("request",Kq)}else if(z&&!w)Y.on("end",N),Y.on("close",N);if(!W&&typeof Y.aborted==="boolean")Y.on("aborted",qq);if(Y.on("end",e),Y.on("finish",o),K.error!==!1)Y.on("error",Hq);if(Y.on("close",qq),$q)Xq(qq);else if(w!==null&&w!==void 0&&w.errorEmitted||S!==null&&S!==void 0&&S.errorEmitted){if(!W)Xq(qq)}else if(!J&&(!W||O(Y))&&(b||E(Y)===!1))Xq(qq);else if(!z&&(!W||E(Y))&&(s||O(Y)===!1))Xq(qq);else if(S&&Y.req&&Y.aborted)Xq(qq);const Qq=()=>{if(F=i,Y.removeListener("aborted",qq),Y.removeListener("complete",o),Y.removeListener("abort",qq),Y.removeListener("request",Kq),Y.req)Y.req.removeListener("finish",o);Y.removeListener("end",N),Y.removeListener("close",N),Y.removeListener("finish",o),Y.removeListener("end",e),Y.removeListener("error",Hq),Y.removeListener("close",qq)};if(K.signal&&!$q){const V=()=>{const h=F;Qq(),h.call(Y,new B(void 0,{cause:K.signal.reason}))};if(K.signal.aborted)Xq(V);else{const h=F;F=M((...Q)=>{K.signal.removeEventListener("abort",V),h.apply(Y,Q)}),K.signal.addEventListener("abort",V)}}return Qq}function n(Y,K){return new k((F,m)=>{$(Y,K,(u)=>{if(u)m(u);else F()})})}j.exports=$,j.exports.finished=n}}),XQ=Bq({"node_modules/readable-stream/lib/internal/streams/operators.js"(a,j){var{codes:{ERR_INVALID_ARG_TYPE:B,ERR_MISSING_ARGS:G,ERR_OUT_OF_RANGE:y},AbortError:A}=Wq(),{validateAbortSignal:M,validateInteger:R,validateObject:T}=Cq(),g=Vq().Symbol("kWeak"),{finished:k}=Fq(),{ArrayPrototypePush:c,MathFloor:O,Number:l,NumberIsNaN:D,Promise:p,PromiseReject:E,PromisePrototypeCatch:P,Symbol:Z}=Vq(),U=Z("kEmpty"),I=Z("kEof");function _(N,W){if(typeof N!=="function")throw new B("fn",["Function","AsyncFunction"],N);if(W!=null)T(W,"options");if((W===null||W===void 0?void 0:W.signal)!=null)M(W.signal,"options.signal");let b=1;if((W===null||W===void 0?void 0:W.concurrency)!=null)b=O(W.concurrency);return R(b,"concurrency",1),async function*o(){var s,e;const Hq=new AbortController,$q=this,qq=[],Kq=Hq.signal,Qq={signal:Kq},V=()=>Hq.abort();if(W!==null&&W!==void 0&&(s=W.signal)!==null&&s!==void 0&&s.aborted)V();W===null||W===void 0||(e=W.signal)===null||e===void 0||e.addEventListener("abort",V);let h,Q,H=!1;function L(){H=!0}async function d(){try{for await(let q of $q){var f;if(H)return;if(Kq.aborted)throw new A;try{q=N(q,Qq)}catch(X){q=E(X)}if(q===U)continue;if(typeof((f=q)===null||f===void 0?void 0:f.catch)==="function")q.catch(L);if(qq.push(q),h)h(),h=null;if(!H&&qq.length&&qq.length>=b)await new p((X)=>{Q=X})}qq.push(I)}catch(q){const X=E(q);P(X,L),qq.push(X)}finally{var r;if(H=!0,h)h(),h=null;W===null||W===void 0||(r=W.signal)===null||r===void 0||r.removeEventListener("abort",V)}}d();try{while(!0){while(qq.length>0){const f=await qq[0];if(f===I)return;if(Kq.aborted)throw new A;if(f!==U)yield f;if(qq.shift(),Q)Q(),Q=null}await new p((f)=>{h=f})}}finally{if(Hq.abort(),H=!0,Q)Q(),Q=null}}.call(this)}function t(N=void 0){if(N!=null)T(N,"options");if((N===null||N===void 0?void 0:N.signal)!=null)M(N.signal,"options.signal");return async function*W(){let b=0;for await(let s of this){var o;if(N!==null&&N!==void 0&&(o=N.signal)!==null&&o!==void 0&&o.aborted)throw new A({cause:N.signal.reason});yield[b++,s]}}.call(this)}async function i(N,W=void 0){for await(let b of K.call(this,N,W))return!0;return!1}async function $(N,W=void 0){if(typeof N!=="function")throw new B("fn",["Function","AsyncFunction"],N);return!await i.call(this,async(...b)=>{return!await N(...b)},W)}async function n(N,W){for await(let b of K.call(this,N,W))return b;return}async function Y(N,W){if(typeof N!=="function")throw new B("fn",["Function","AsyncFunction"],N);async function b(o,s){return await N(o,s),U}for await(let o of _.call(this,b,W));}function K(N,W){if(typeof N!=="function")throw new B("fn",["Function","AsyncFunction"],N);async function b(o,s){if(await N(o,s))return o;return U}return _.call(this,b,W)}var F=class extends G{constructor(){super("reduce");this.message="Reduce of an empty stream requires an initial value"}};async function m(N,W,b){var o;if(typeof N!=="function")throw new B("reducer",["Function","AsyncFunction"],N);if(b!=null)T(b,"options");if((b===null||b===void 0?void 0:b.signal)!=null)M(b.signal,"options.signal");let s=arguments.length>1;if(b!==null&&b!==void 0&&(o=b.signal)!==null&&o!==void 0&&o.aborted){const Kq=new A(void 0,{cause:b.signal.reason});throw this.once("error",()=>{}),await k(this.destroy(Kq)),Kq}const e=new AbortController,Hq=e.signal;if(b!==null&&b!==void 0&&b.signal){const Kq={once:!0,[g]:this};b.signal.addEventListener("abort",()=>e.abort(),Kq)}let $q=!1;try{for await(let Kq of this){var qq;if($q=!0,b!==null&&b!==void 0&&(qq=b.signal)!==null&&qq!==void 0&&qq.aborted)throw new A;if(!s)W=Kq,s=!0;else W=await N(W,Kq,{signal:Hq})}if(!$q&&!s)throw new F}finally{e.abort()}return W}async function u(N){if(N!=null)T(N,"options");if((N===null||N===void 0?void 0:N.signal)!=null)M(N.signal,"options.signal");const W=[];for await(let o of this){var b;if(N!==null&&N!==void 0&&(b=N.signal)!==null&&b!==void 0&&b.aborted)throw new A(void 0,{cause:N.signal.reason});c(W,o)}return W}function J(N,W){const b=_.call(this,N,W);return async function*o(){for await(let s of b)yield*s}.call(this)}function z(N){if(N=l(N),D(N))return 0;if(N<0)throw new y("number",">= 0",N);return N}function w(N,W=void 0){if(W!=null)T(W,"options");if((W===null||W===void 0?void 0:W.signal)!=null)M(W.signal,"options.signal");return N=z(N),async function*b(){var o;if(W!==null&&W!==void 0&&(o=W.signal)!==null&&o!==void 0&&o.aborted)throw new A;for await(let e of this){var s;if(W!==null&&W!==void 0&&(s=W.signal)!==null&&s!==void 0&&s.aborted)throw new A;if(N--<=0)yield e}}.call(this)}function S(N,W=void 0){if(W!=null)T(W,"options");if((W===null||W===void 0?void 0:W.signal)!=null)M(W.signal,"options.signal");return N=z(N),async function*b(){var o;if(W!==null&&W!==void 0&&(o=W.signal)!==null&&o!==void 0&&o.aborted)throw new A;for await(let e of this){var s;if(W!==null&&W!==void 0&&(s=W.signal)!==null&&s!==void 0&&s.aborted)throw new A;if(N-- >0)yield e;else return}}.call(this)}j.exports.streamReturningOperators={asIndexedPairs:t,drop:w,filter:K,flatMap:J,map:_,take:S},j.exports.promiseReturningOperators={every:$,forEach:Y,reduce:m,toArray:u,some:i,find:n}}}),Tq=Bq({"node_modules/readable-stream/lib/internal/streams/destroy.js"(a,j){var{aggregateTwoErrors:B,codes:{ERR_MULTIPLE_CALLBACK:G},AbortError:y}=Wq(),{Symbol:A}=Vq(),{kDestroyed:M,isDestroyed:R,isFinished:T,isServerRequest:g}=Eq(),k="#kDestroy",c="#kConstruct";function O(K,F,m){if(K){if(K.stack,F&&!F.errored)F.errored=K;if(m&&!m.errored)m.errored=K}}function l(K,F){const m=this._readableState,u=this._writableState,J=u||m;if(u&&u.destroyed||m&&m.destroyed){if(typeof F==="function")F();return this}if(O(K,u,m),u)u.destroyed=!0;if(m)m.destroyed=!0;if(!J.constructed)this.once(k,(z)=>{D(this,B(z,K),F)});else D(this,K,F);return this}function D(K,F,m){let u=!1;function J(z){if(u)return;u=!0;const{_readableState:w,_writableState:S}=K;if(O(z,S,w),S)S.closed=!0;if(w)w.closed=!0;if(typeof m==="function")m(z);if(z)Xq(p,K,z);else Xq(E,K)}try{K._destroy(F||null,J)}catch(z){J(z)}}function p(K,F){P(K,F),E(K)}function E(K){const{_readableState:F,_writableState:m}=K;if(m)m.closeEmitted=!0;if(F)F.closeEmitted=!0;if(m&&m.emitClose||F&&F.emitClose)K.emit("close")}function P(K,F){const m=K?._readableState,u=K?._writableState;if(u?.errorEmitted||m?.errorEmitted)return;if(u)u.errorEmitted=!0;if(m)m.errorEmitted=!0;K?.emit?.("error",F)}function Z(){const K=this._readableState,F=this._writableState;if(K)K.constructed=!0,K.closed=!1,K.closeEmitted=!1,K.destroyed=!1,K.errored=null,K.errorEmitted=!1,K.reading=!1,K.ended=K.readable===!1,K.endEmitted=K.readable===!1;if(F)F.constructed=!0,F.destroyed=!1,F.closed=!1,F.closeEmitted=!1,F.errored=null,F.errorEmitted=!1,F.finalCalled=!1,F.prefinished=!1,F.ended=F.writable===!1,F.ending=F.writable===!1,F.finished=F.writable===!1}function U(K,F,m){const u=K?._readableState,J=K?._writableState;if(J&&J.destroyed||u&&u.destroyed)return this;if(u&&u.autoDestroy||J&&J.autoDestroy)K.destroy(F);else if(F){if(Error.captureStackTrace(F),J&&!J.errored)J.errored=F;if(u&&!u.errored)u.errored=F;if(m)Xq(P,K,F);else P(K,F)}}function I(K,F){if(typeof K._construct!=="function")return;const{_readableState:m,_writableState:u}=K;if(m)m.constructed=!1;if(u)u.constructed=!1;if(K.once(c,F),K.listenerCount(c)>1)return;Xq(_,K)}function _(K){let F=!1;function m(u){if(F){U(K,u!==null&&u!==void 0?u:new G);return}F=!0;const{_readableState:J,_writableState:z}=K,w=z||J;if(J)J.constructed=!0;if(z)z.constructed=!0;if(w.destroyed)K.emit(k,u);else if(u)U(K,u,!0);else Xq(t,K)}try{K._construct(m)}catch(u){m(u)}}function t(K){K.emit(c)}function i(K){return K&&K.setHeader&&typeof K.abort==="function"}function $(K){K.emit("close")}function n(K,F){K.emit("error",F),Xq($,K)}function Y(K,F){if(!K||R(K))return;if(!F&&!T(K))F=new y;if(g(K))K.socket=null,K.destroy(F);else if(i(K))K.abort();else if(i(K.req))K.req.abort();else if(typeof K.destroy==="function")K.destroy(F);else if(typeof K.close==="function")K.close();else if(F)Xq(n,K);else Xq($,K);if(!K.destroyed)K[M]=!0}j.exports={construct:I,destroyer:Y,destroy:l,undestroy:Z,errorOrDestroy:U}}}),Rq=Bq({"node_modules/readable-stream/lib/internal/streams/legacy.js"(a,j){var{ArrayIsArray:B,ObjectSetPrototypeOf:G}=Vq();function y(M){if(!(this instanceof y))return new y(M);Iq.call(this,M)}G(y.prototype,Iq.prototype),G(y,Iq),y.prototype.pipe=function(M,R){const T=this;function g(E){if(M.writable&&M.write(E)===!1&&T.pause)T.pause()}T.on("data",g);function k(){if(T.readable&&T.resume)T.resume()}if(M.on("drain",k),!M._isStdio&&(!R||R.end!==!1))T.on("end",O),T.on("close",l);let c=!1;function O(){if(c)return;c=!0,M.end()}function l(){if(c)return;if(c=!0,typeof M.destroy==="function")M.destroy()}function D(E){if(p(),Iq.listenerCount(this,"error")===0)this.emit("error",E)}A(T,"error",D),A(M,"error",D);function p(){T.removeListener("data",g),M.removeListener("drain",k),T.removeListener("end",O),T.removeListener("close",l),T.removeListener("error",D),M.removeListener("error",D),T.removeListener("end",p),T.removeListener("close",p),M.removeListener("close",p)}return T.on("end",p),T.on("close",p),M.on("close",p),M.emit("pipe",T),M};function A(M,R,T){if(typeof M.prependListener==="function")return M.prependListener(R,T);if(!M._events||!M._events[R])M.on(R,T);else if(B(M._events[R]))M._events[R].unshift(T);else M._events[R]=[T,M._events[R]]}j.exports={Stream:y,prependListener:A}}}),Sq=Bq({"node_modules/readable-stream/lib/internal/streams/add-abort-signal.js"(a,j){var{AbortError:B,codes:G}=Wq(),y=Fq(),{ERR_INVALID_ARG_TYPE:A}=G,M=(T,g)=>{if(typeof T!=="object"||!("aborted"in T))throw new A(g,"AbortSignal",T)};function R(T){return!!(T&&typeof T.pipe==="function")}j.exports.addAbortSignal=function T(g,k){if(M(g,"signal"),!R(k))throw new A("stream","stream.Stream",k);return j.exports.addAbortSignalNoValidate(g,k)},j.exports.addAbortSignalNoValidate=function(T,g){if(typeof T!=="object"||!("aborted"in T))return g;const k=()=>{g.destroy(new B(void 0,{cause:T.reason}))};if(T.aborted)k();else T.addEventListener("abort",k),y(g,()=>T.removeEventListener("abort",k));return g}}}),JQ=Bq({"node_modules/readable-stream/lib/internal/streams/state.js"(a,j){var{MathFloor:B,NumberIsInteger:G}=Vq(),{ERR_INVALID_ARG_VALUE:y}=Wq().codes;function A(T,g,k){return T.highWaterMark!=null?T.highWaterMark:g?T[k]:null}function M(T){return T?16:16384}function R(T,g,k,c){const O=A(g,c,k);if(O!=null){if(!G(O)||O<0){const l=c?`options.${k}`:"options.highWaterMark";throw new y(l,O)}return B(O)}return M(T.objectMode)}j.exports={getHighWaterMark:R,getDefaultHighWaterMark:M}}}),hq=Bq({"node_modules/readable-stream/lib/internal/streams/from.js"(a,j){var{PromisePrototypeThen:B,SymbolAsyncIterator:G,SymbolIterator:y}=Vq(),{ERR_INVALID_ARG_TYPE:A,ERR_STREAM_NULL_VALUES:M}=Wq().codes;function R(T,g,k){let c;if(typeof g==="string"||g instanceof Buffer)return new T({objectMode:!0,...k,read(){this.push(g),this.push(null)}});let O;if(g&&g[G])O=!0,c=g[G]();else if(g&&g[y])O=!1,c=g[y]();else throw new A("iterable",["Iterable"],g);const l=new T({objectMode:!0,highWaterMark:1,...k});let D=!1;l._read=function(){if(!D)D=!0,E()},l._destroy=function(P,Z){B(p(P),()=>Xq(Z,P),(U)=>Xq(Z,U||P))};async function p(P){const Z=P!==void 0&&P!==null,U=typeof c.throw==="function";if(Z&&U){const{value:I,done:_}=await c.throw(P);if(await I,_)return}if(typeof c.return==="function"){const{value:I}=await c.return();await I}}async function E(){for(;;){try{const{value:P,done:Z}=O?await c.next():c.next();if(Z)l.push(null);else{const U=P&&typeof P.then==="function"?await P:P;if(U===null)throw D=!1,new M;else if(l.push(U))continue;else D=!1}}catch(P){l.destroy(P)}break}}return l}j.exports=R}}),pq,uq,_q=Bq({"node_modules/readable-stream/lib/internal/streams/readable.js"(a,j){var{ArrayPrototypeIndexOf:B,NumberIsInteger:G,NumberIsNaN:y,NumberParseInt:A,ObjectDefineProperties:M,ObjectKeys:R,ObjectSetPrototypeOf:T,Promise:g,SafeSet:k,SymbolAsyncIterator:c,Symbol:O}=Vq(),l=globalThis[Symbol.for("Bun.lazy")]("bun:stream").ReadableState,{Stream:D,prependListener:p}=Rq();function E(q){if(!(this instanceof E))return new E(q);const X=this instanceof Mq();if(this._readableState=new l(q,this,X),q){const{read:C,destroy:x,construct:v,signal:Jq}=q;if(typeof C==="function")this._read=C;if(typeof x==="function")this._destroy=x;if(typeof v==="function")this._construct=v;if(Jq&&!X)U(Jq,this)}D.call(this,q),K.construct(this,()=>{if(this._readableState.needReadable)n(this,this._readableState)})}T(E.prototype,D.prototype),T(E,D),E.prototype.on=function(q,X){const C=D.prototype.on.call(this,q,X),x=this._readableState;if(q==="data"){if(x.readableListening=this.listenerCount("readable")>0,x.flowing!==!1)this.resume()}else if(q==="readable"){if(!x.endEmitted&&!x.readableListening){if(x.readableListening=x.needReadable=!0,x.flowing=!1,x.emittedReadable=!1,x.length)Y(this,x);else if(!x.reading)Xq(Qq,this)}else if(x.endEmitted);}return C};class P extends E{#q;#Q;#X;#H;constructor(q,X){const{objectMode:C,highWaterMark:x,encoding:v,signal:Jq}=q;super({objectMode:C,highWaterMark:x,encoding:v,signal:Jq});this.#X=[],this.#q=void 0,this.#H=X,this.#Q=!1}#J(){var q=this.#X,X=0,C=q.length;for(;X0)this.#X=[];return!1}#K(q){q.releaseLock(),this.#q=void 0,this.#Q=!0,this.push(null);return}async _read(){var q=this.#H,X=this.#q;if(q)X=this.#q=q.getReader(),this.#H=void 0;else if(this.#J())return;var C;try{do{var x=!1,v;const Jq=X.readMany();if(xq(Jq)){if({done:x,value:v}=await Jq,this.#Q){this.#X.push(...v);return}}else({done:x,value:v}=Jq);if(x){this.#K(X);return}if(!this.push(v[0])){this.#X=v.slice(1);return}for(let Zq=1,Oq=v.length;Zq{this.#Q=!0,X(q)});return}try{X(q)}catch(x){globalThis.reportError(x)}}}uq=P;function Z(q,X={}){if(!tq(q))throw new m("readableStream","ReadableStream",q);S(X,"options");const{highWaterMark:C,encoding:x,objectMode:v=!1,signal:Jq}=X;if(x!==void 0&&!Buffer.isEncoding(x))throw new QQ(x,"options.encoding");return eq(v,"options.objectMode"),zQ(E,q,X)||new P({highWaterMark:C,encoding:x,objectMode:v,signal:Jq},q)}j.exports=E,pq=Z;var{addAbortSignal:U}=Sq(),I=Fq();const{maybeReadMore:_,resume:t,emitReadable:i,onEofChunk:$}=globalThis[Symbol.for("Bun.lazy")]("bun:stream");function n(q,X){process.nextTick(_,q,X)}function Y(q,X){i(q,X)}var K=Tq(),{aggregateTwoErrors:F,codes:{ERR_INVALID_ARG_TYPE:m,ERR_METHOD_NOT_IMPLEMENTED:u,ERR_OUT_OF_RANGE:J,ERR_STREAM_PUSH_AFTER_EOF:z,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:w}}=Wq(),{validateObject:S}=Cq(),N=hq(),W=()=>{},{errorOrDestroy:b}=K;E.prototype.destroy=K.destroy,E.prototype._undestroy=K.undestroy,E.prototype._destroy=function(q,X){X(q)},E.prototype[Iq.captureRejectionSymbol]=function(q){this.destroy(q)},E.prototype.push=function(q,X){return o(this,q,X,!1)},E.prototype.unshift=function(q,X){return o(this,q,X,!0)};function o(q,X,C,x){const v=q._readableState;let Jq;if(!v.objectMode){if(typeof X==="string"){if(C=C||v.defaultEncoding,v.encoding!==C)if(x&&v.encoding)X=Buffer.from(X,C).toString(v.encoding);else X=Buffer.from(X,C),C=""}else if(X instanceof Buffer)C="";else if(D._isUint8Array(X)){if(x||!v.decoder)X=D._uint8ArrayToBuffer(X);C=""}else if(X!=null)Jq=new m("chunk",["string","Buffer","Uint8Array"],X)}if(Jq)b(q,Jq);else if(X===null)v.reading=!1,$(q,v);else if(v.objectMode||X&&X.length>0)if(x)if(v.endEmitted)b(q,new w);else if(v.destroyed||v.errored)return!1;else s(q,v,X,!0);else if(v.ended)b(q,new z);else if(v.destroyed||v.errored)return!1;else if(v.reading=!1,v.decoder&&!C)if(X=v.decoder.write(X),v.objectMode||X.length!==0)s(q,v,X,!1);else n(q,v);else s(q,v,X,!1);else if(!x)v.reading=!1,n(q,v);return!v.ended&&(v.length0){if(X.multiAwaitDrain)X.awaitDrainWriters.clear();else X.awaitDrainWriters=null;X.dataEmitted=!0,q.emit("data",C)}else{if(X.length+=X.objectMode?1:C.length,x)X.buffer.unshift(C);else X.buffer.push(C);if(X.needReadable)Y(q,X)}n(q,X)}E.prototype.isPaused=function(){const q=this._readableState;return q.paused===!0||q.flowing===!1},E.prototype.setEncoding=function(q){const X=new aq(q);this._readableState.decoder=X,this._readableState.encoding=this._readableState.decoder.encoding;const C=this._readableState.buffer;let x="";for(let v=C.length;v>0;v--)x+=X.write(C.shift());if(x!=="")C.push(x);return this._readableState.length=x.length,this};var e=1073741824;function Hq(q){if(q>e)throw new J("size","<= 1GiB",q);else q--,q|=q>>>1,q|=q>>>2,q|=q>>>4,q|=q>>>8,q|=q>>>16,q++;return q}function $q(q,X){if(q<=0||X.length===0&&X.ended)return 0;if(X.objectMode)return 1;if(y(q)){if(X.flowing&&X.length)return X.buffer.first().length;return X.length}if(q<=X.length)return q;return X.ended?X.length:0}E.prototype.read=function(q){if(!G(q))q=A(q,10);const X=this._readableState,C=q;if(q>X.highWaterMark)X.highWaterMark=Hq(q);if(q!==0)X.emittedReadable=!1;if(q===0&&X.needReadable&&((X.highWaterMark!==0?X.length>=X.highWaterMark:X.length>0)||X.ended)){if(X.length===0&&X.ended)H(this);else Y(this,X);return null}if(q=$q(q,X),q===0&&X.ended){if(X.length===0)H(this);return null}let x=X.needReadable;if(X.length===0||X.length-q0)Jq=Q(q,X);else Jq=null;if(Jq===null)X.needReadable=X.length<=X.highWaterMark,q=0;else if(X.length-=q,X.multiAwaitDrain)X.awaitDrainWriters.clear();else X.awaitDrainWriters=null;if(X.length===0){if(!X.ended)X.needReadable=!0;if(C!==q&&X.ended)H(this)}if(Jq!==null&&!X.errorEmitted&&!X.closeEmitted)X.dataEmitted=!0,this.emit("data",Jq);return Jq},E.prototype._read=function(q){throw new u("_read()")},E.prototype.pipe=function(q,X){const C=this,x=this._readableState;if(x.pipes.length===1){if(!x.multiAwaitDrain)x.multiAwaitDrain=!0,x.awaitDrainWriters=new k(x.awaitDrainWriters?[x.awaitDrainWriters]:[])}x.pipes.push(q);const Jq=(!X||X.end!==!1)&&q!==process.stdout&&q!==process.stderr?Oq:Pq;if(x.endEmitted)Xq(Jq);else C.once("end",Jq);q.on("unpipe",Zq);function Zq(jq,Nq){if(jq===C){if(Nq&&Nq.hasUnpiped===!1)Nq.hasUnpiped=!0,nq()}}function Oq(){q.end()}let Lq,kq=!1;function nq(){if(q.removeListener("close",wq),q.removeListener("finish",vq),Lq)q.removeListener("drain",Lq);if(q.removeListener("error",Dq),q.removeListener("unpipe",Zq),C.removeListener("end",Oq),C.removeListener("end",Pq),C.removeListener("data",yq),kq=!0,Lq&&x.awaitDrainWriters&&(!q._writableState||q._writableState.needDrain))Lq()}function fq(){if(!kq){if(x.pipes.length===1&&x.pipes[0]===q)x.awaitDrainWriters=q,x.multiAwaitDrain=!1;else if(x.pipes.length>1&&x.pipes.includes(q))x.awaitDrainWriters.add(q);C.pause()}if(!Lq)Lq=qq(C,q),q.on("drain",Lq)}C.on("data",yq);function yq(jq){if(q.write(jq)===!1)fq()}function Dq(jq){if(Gq("onerror",jq),Pq(),q.removeListener("error",Dq),q.listenerCount("error")===0){const Nq=q._writableState||q._readableState;if(Nq&&!Nq.errorEmitted)b(q,jq);else q.emit("error",jq)}}p(q,"error",Dq);function wq(){q.removeListener("finish",vq),Pq()}q.once("close",wq);function vq(){Gq("onfinish"),q.removeListener("close",wq),Pq()}q.once("finish",vq);function Pq(){Gq("unpipe"),C.unpipe(q)}if(q.emit("pipe",C),q.writableNeedDrain===!0){if(x.flowing)fq()}else if(!x.flowing)Gq("pipe resume"),C.resume();return q};function qq(q,X){return function C(){const x=q._readableState;if(x.awaitDrainWriters===X)Gq("pipeOnDrain",1),x.awaitDrainWriters=null;else if(x.multiAwaitDrain)Gq("pipeOnDrain",x.awaitDrainWriters.size),x.awaitDrainWriters.delete(X);if((!x.awaitDrainWriters||x.awaitDrainWriters.size===0)&&q.listenerCount("data"))q.resume()}}E.prototype.unpipe=function(q){const X=this._readableState,C={hasUnpiped:!1};if(X.pipes.length===0)return this;if(!q){const v=X.pipes;X.pipes=[],this.pause();for(let Jq=0;Jq0,X.resumeScheduled&&X.paused===!1)X.flowing=!0;else if(q.listenerCount("data")>0)q.resume();else if(!X.readableListening)X.flowing=null}function Qq(q){q.read(0)}E.prototype.resume=function(){const q=this._readableState;if(!q.flowing)q.flowing=!q.readableListening,t(this,q);return q.paused=!1,this},E.prototype.pause=function(){if(this._readableState.flowing!==!1)this._readableState.flowing=!1,this.emit("pause");return this._readableState.paused=!0,this},E.prototype.wrap=function(q){let X=!1;q.on("data",(x)=>{if(!this.push(x)&&q.pause)X=!0,q.pause()}),q.on("end",()=>{this.push(null)}),q.on("error",(x)=>{b(this,x)}),q.on("close",()=>{this.destroy()}),q.on("destroy",()=>{this.destroy()}),this._read=()=>{if(X&&q.resume)X=!1,q.resume()};const C=R(q);for(let x=1;x{v=Zq?F(v,Zq):null,C(),C=W});try{while(!0){const Zq=q.destroyed?null:q.read();if(Zq!==null)yield Zq;else if(v)throw v;else if(v===null)return;else await new g(x)}}catch(Zq){throw v=F(v,Zq),v}finally{if((v||(X===null||X===void 0?void 0:X.destroyOnReturn)!==!1)&&(v===void 0||q._readableState.autoDestroy))K.destroyer(q,null);else q.off("readable",x),Jq()}}M(E.prototype,{readable:{get(){const q=this._readableState;return!!q&&q.readable!==!1&&!q.destroyed&&!q.errorEmitted&&!q.endEmitted},set(q){if(this._readableState)this._readableState.readable=!!q}},readableDidRead:{enumerable:!1,get:function(){return this._readableState.dataEmitted}},readableAborted:{enumerable:!1,get:function(){return!!(this._readableState.readable!==!1&&(this._readableState.destroyed||this._readableState.errored)&&!this._readableState.endEmitted)}},readableHighWaterMark:{enumerable:!1,get:function(){return this._readableState.highWaterMark}},readableBuffer:{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}},readableFlowing:{enumerable:!1,get:function(){return this._readableState.flowing},set:function(q){if(this._readableState)this._readableState.flowing=q}},readableLength:{enumerable:!1,get(){return this._readableState.length}},readableObjectMode:{enumerable:!1,get(){return this._readableState?this._readableState.objectMode:!1}},readableEncoding:{enumerable:!1,get(){return this._readableState?this._readableState.encoding:null}},errored:{enumerable:!1,get(){return this._readableState?this._readableState.errored:null}},closed:{get(){return this._readableState?this._readableState.closed:!1}},destroyed:{enumerable:!1,get(){return this._readableState?this._readableState.destroyed:!1},set(q){if(!this._readableState)return;this._readableState.destroyed=q}},readableEnded:{enumerable:!1,get(){return this._readableState?this._readableState.endEmitted:!1}}}),E._fromList=Q;function Q(q,X){if(X.length===0)return null;let C;if(X.objectMode)C=X.buffer.shift();else if(!q||q>=X.length){if(X.decoder)C=X.buffer.join("");else if(X.buffer.length===1)C=X.buffer.first();else C=X.buffer.concat(X.length);X.buffer.clear()}else C=X.buffer.consume(q,X.decoder);return C}function H(q){const X=q._readableState;if(!X.endEmitted)X.ended=!0,Xq(L,X,q)}function L(q,X){if(!q.errored&&!q.closeEmitted&&!q.endEmitted&&q.length===0){if(q.endEmitted=!0,X.emit("end"),X.writable&&X.allowHalfOpen===!1)Xq(d,X);else if(q.autoDestroy){const C=X._writableState;if(!C||C.autoDestroy&&(C.finished||C.writable===!1))X.destroy()}}}function d(q){if(q.writable&&!q.writableEnded&&!q.destroyed)q.end()}E.from=function(q,X){return N(E,q,X)};var f={newStreamReadableFromReadableStream:Z};function r(){if(f===void 0)f={};return f}E.fromWeb=function(q,X){return r().newStreamReadableFromReadableStream(q,X)},E.toWeb=function(q){return r().newReadableStreamFromStreamReadable(q)},E.wrap=function(q,X){var C,x;return new E({objectMode:(C=(x=q.readableObjectMode)!==null&&x!==void 0?x:q.objectMode)!==null&&C!==void 0?C:!0,...X,destroy(v,Jq){K.destroyer(q,v),Jq(v)}}).wrap(q)}}}),bq=Bq({"node_modules/readable-stream/lib/internal/streams/writable.js"(a,j){var{ArrayPrototypeSlice:B,Error:G,FunctionPrototypeSymbolHasInstance:y,ObjectDefineProperty:A,ObjectDefineProperties:M,ObjectSetPrototypeOf:R,StringPrototypeToLowerCase:T,Symbol:g,SymbolHasInstance:k}=Vq(),c=Rq().Stream,O=Tq(),{addAbortSignal:l}=Sq(),{getHighWaterMark:D,getDefaultHighWaterMark:p}=JQ(),{ERR_INVALID_ARG_TYPE:E,ERR_METHOD_NOT_IMPLEMENTED:P,ERR_MULTIPLE_CALLBACK:Z,ERR_STREAM_CANNOT_PIPE:U,ERR_STREAM_DESTROYED:I,ERR_STREAM_ALREADY_FINISHED:_,ERR_STREAM_NULL_VALUES:t,ERR_STREAM_WRITE_AFTER_END:i,ERR_UNKNOWN_ENCODING:$}=Wq().codes,{errorOrDestroy:n}=O;function Y(Q={}){const H=this instanceof Mq();if(!H&&!y(Y,this))return new Y(Q);if(this._writableState=new m(Q,this,H),Q){if(typeof Q.write==="function")this._write=Q.write;if(typeof Q.writev==="function")this._writev=Q.writev;if(typeof Q.destroy==="function")this._destroy=Q.destroy;if(typeof Q.final==="function")this._final=Q.final;if(typeof Q.construct==="function")this._construct=Q.construct;if(Q.signal)l(Q.signal,this)}c.call(this,Q),O.construct(this,()=>{const L=this._writableState;if(!L.writing)s(this,L);qq(this,L)})}R(Y.prototype,c.prototype),R(Y,c),j.exports=Y;function K(){}var F=g("kOnFinished");function m(Q,H,L){if(typeof L!=="boolean")L=H instanceof Mq();if(this.objectMode=!!(Q&&Q.objectMode),L)this.objectMode=this.objectMode||!!(Q&&Q.writableObjectMode);this.highWaterMark=Q?D(this,Q,"writableHighWaterMark",L):p(!1),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;const d=!!(Q&&Q.decodeStrings===!1);this.decodeStrings=!d,this.defaultEncoding=Q&&Q.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=N.bind(void 0,H),this.writecb=null,this.writelen=0,this.afterWriteTickInfo=null,u(this),this.pendingcb=0,this.constructed=!0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!Q||Q.emitClose!==!1,this.autoDestroy=!Q||Q.autoDestroy!==!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this[F]=[]}function u(Q){Q.buffered=[],Q.bufferedIndex=0,Q.allBuffers=!0,Q.allNoop=!0}m.prototype.getBuffer=function Q(){return B(this.buffered,this.bufferedIndex)},A(m.prototype,"bufferedRequestCount",{get(){return this.buffered.length-this.bufferedIndex}}),A(Y,k,{value:function(Q){if(y(this,Q))return!0;if(this!==Y)return!1;return Q&&Q._writableState instanceof m}}),Y.prototype.pipe=function(){n(this,new U)};function J(Q,H,L,d){const f=Q._writableState;if(typeof L==="function")d=L,L=f.defaultEncoding;else{if(!L)L=f.defaultEncoding;else if(L!=="buffer"&&!Buffer.isEncoding(L))throw new $(L);if(typeof d!=="function")d=K}if(H===null)throw new t;else if(!f.objectMode)if(typeof H==="string"){if(f.decodeStrings!==!1)H=Buffer.from(H,L),L="buffer"}else if(H instanceof Buffer)L="buffer";else if(c._isUint8Array(H))H=c._uint8ArrayToBuffer(H),L="buffer";else throw new E("chunk",["string","Buffer","Uint8Array"],H);let r;if(f.ending)r=new i;else if(f.destroyed)r=new I("write");if(r)return Xq(d,r),n(Q,r,!0),r;return f.pendingcb++,z(Q,f,H,L,d)}Y.prototype.write=function(Q,H,L){return J(this,Q,H,L)===!0},Y.prototype.cork=function(){this._writableState.corked++},Y.prototype.uncork=function(){const Q=this._writableState;if(Q.corked){if(Q.corked--,!Q.writing)s(this,Q)}},Y.prototype.setDefaultEncoding=function Q(H){if(typeof H==="string")H=T(H);if(!Buffer.isEncoding(H))throw new $(H);return this._writableState.defaultEncoding=H,this};function z(Q,H,L,d,f){const r=H.objectMode?1:L.length;H.length+=r;const q=H.lengthL.bufferedIndex)s(Q,L);if(d)if(L.afterWriteTickInfo!==null&&L.afterWriteTickInfo.cb===f)L.afterWriteTickInfo.count++;else L.afterWriteTickInfo={count:1,cb:f,stream:Q,state:L},Xq(W,L.afterWriteTickInfo);else b(Q,L,1,f)}}function W({stream:Q,state:H,count:L,cb:d}){return H.afterWriteTickInfo=null,b(Q,H,L,d)}function b(Q,H,L,d){if(!H.ending&&!Q.destroyed&&H.length===0&&H.needDrain)H.needDrain=!1,Q.emit("drain");while(L-- >0)H.pendingcb--,d();if(H.destroyed)o(H);qq(Q,H)}function o(Q){if(Q.writing)return;for(let f=Q.bufferedIndex;f1&&Q._writev){H.pendingcb-=r-1;const X=H.allNoop?K:(x)=>{for(let v=q;v256)L.splice(0,q),H.bufferedIndex=0;else H.bufferedIndex=q}H.bufferProcessing=!1}Y.prototype._write=function(Q,H,L){if(this._writev)this._writev([{chunk:Q,encoding:H}],L);else throw new P("_write()")},Y.prototype._writev=null,Y.prototype.end=function(Q,H,L,d=!1){const f=this._writableState;if(typeof Q==="function")L=Q,Q=null,H=null;else if(typeof H==="function")L=H,H=null;let r;if(Q!==null&&Q!==void 0){let q;if(!d)q=J(this,Q,H);else q=this.write(Q,H);if(q instanceof G)r=q}if(f.corked)f.corked=1,this.uncork();if(r)this.emit("error",r);else if(!f.errored&&!f.ending)f.ending=!0,qq(this,f,!0),f.ended=!0;else if(f.finished)r=new _("end");else if(f.destroyed)r=new I("end");if(typeof L==="function")if(r||f.finished)Xq(L,r);else f[F].push(L);return this};function e(Q,H){var L=Q.ending&&!Q.destroyed&&Q.constructed&&Q.length===0&&!Q.errored&&Q.buffered.length===0&&!Q.finished&&!Q.writing&&!Q.errorEmitted&&!Q.closeEmitted;return Gq("needFinish",L,H),L}function Hq(Q,H){let L=!1;function d(f){if(L){n(Q,f!==null&&f!==void 0?f:Z());return}if(L=!0,H.pendingcb--,f){const r=H[F].splice(0);for(let q=0;q{if(e(f))Kq(d,f);else f.pendingcb--},Q,H);else if(e(H))H.pendingcb++,Kq(Q,H)}}function Kq(Q,H){H.pendingcb--,H.finished=!0;const L=H[F].splice(0);for(let d=0;d{if(S!=null)throw new O("nully","body",S)},(S)=>{l(z,S)});return z=new I({objectMode:!0,readable:!1,write:F,final(S){m(async()=>{try{await w,Xq(S,null)}catch(N){Xq(S,N)}})},destroy:u})}throw new O("Iterable, AsyncIterable or AsyncFunction",n,K)}if(Z($))return i($.arrayBuffer());if(y($))return P(I,$,{objectMode:!0,writable:!1});if(typeof($===null||$===void 0?void 0:$.writable)==="object"||typeof($===null||$===void 0?void 0:$.readable)==="object"){const K=$!==null&&$!==void 0&&$.readable?M($===null||$===void 0?void 0:$.readable)?$===null||$===void 0?void 0:$.readable:i($.readable):void 0,F=$!==null&&$!==void 0&&$.writable?R($===null||$===void 0?void 0:$.writable)?$===null||$===void 0?void 0:$.writable:i($.writable):void 0;return t({readable:K,writable:F})}const Y=$===null||$===void 0?void 0:$.then;if(typeof Y==="function"){let K;return U(Y,$,(F)=>{if(F!=null)K.push(F);K.push(null)},(F)=>{l(K,F)}),K=new I({objectMode:!0,writable:!1,read(){}})}throw new c(n,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],$)};function _(i){let{promise:$,resolve:n}=E();const Y=new AbortController,K=Y.signal;return{value:i(async function*(){while(!0){const m=$;$=null;const{chunk:u,done:J,cb:z}=await m;if(Xq(z),J)return;if(K.aborted)throw new k(void 0,{cause:K.reason});({promise:$,resolve:n}=E()),yield u}}(),{signal:K}),write(m,u,J){const z=n;n=null,z({chunk:m,done:!1,cb:J})},final(m){const u=n;n=null,u({done:!0,cb:m})},destroy(m,u){Y.abort(),u(m)}}}function t(i){const $=i.readable&&typeof i.readable.read!=="function"?p.wrap(i.readable):i.readable,n=i.writable;let Y=!!B($),K=!!G(n),F,m,u,J,z;function w(S){const N=J;if(J=null,N)N(S);else if(S)z.destroy(S);else if(!Y&&!K)z.destroy()}if(z=new I({readableObjectMode:!!($!==null&&$!==void 0&&$.readableObjectMode),writableObjectMode:!!(n!==null&&n!==void 0&&n.writableObjectMode),readable:Y,writable:K}),K)g(n,(S)=>{if(K=!1,S)l($,S);w(S)}),z._write=function(S,N,W){if(n.write(S,N))W();else F=W},z._final=function(S){n.end(),m=S},n.on("drain",function(){if(F){const S=F;F=null,S()}}),n.on("finish",function(){if(m){const S=m;m=null,S()}});if(Y)g($,(S)=>{if(Y=!1,S)l($,S);w(S)}),$.on("readable",function(){if(u){const S=u;u=null,S()}}),$.on("end",function(){z.push(null)}),z._read=function(){while(!0){const S=$.read();if(S===null){u=z._read;return}if(!z.push(S))return}};return z._destroy=function(S,N){if(!S&&J!==null)S=new k;if(u=null,F=null,m=null,J===null)N(S);else J=N,l(n,S),l($,S)},z}}}),Mq=Bq({"node_modules/readable-stream/lib/internal/streams/duplex.js"(a,j){var{ObjectDefineProperties:B,ObjectGetOwnPropertyDescriptor:G,ObjectKeys:y,ObjectSetPrototypeOf:A}=Vq(),M=_q();function R(O){if(!(this instanceof R))return new R(O);if(M.call(this,O),Uq.call(this,O),O){if(this.allowHalfOpen=O.allowHalfOpen!==!1,O.readable===!1)this._readableState.readable=!1,this._readableState.ended=!0,this._readableState.endEmitted=!0;if(O.writable===!1)this._writableState.writable=!1,this._writableState.ending=!0,this._writableState.ended=!0,this._writableState.finished=!0}else this.allowHalfOpen=!0}j.exports=R,A(R.prototype,M.prototype),A(R,M);for(var T in Uq.prototype)if(!R.prototype[T])R.prototype[T]=Uq.prototype[T];B(R.prototype,{writable:G(Uq.prototype,"writable"),writableHighWaterMark:G(Uq.prototype,"writableHighWaterMark"),writableObjectMode:G(Uq.prototype,"writableObjectMode"),writableBuffer:G(Uq.prototype,"writableBuffer"),writableLength:G(Uq.prototype,"writableLength"),writableFinished:G(Uq.prototype,"writableFinished"),writableCorked:G(Uq.prototype,"writableCorked"),writableEnded:G(Uq.prototype,"writableEnded"),writableNeedDrain:G(Uq.prototype,"writableNeedDrain"),destroyed:{get(){if(this._readableState===void 0||this._writableState===void 0)return!1;return this._readableState.destroyed&&this._writableState.destroyed},set(O){if(this._readableState&&this._writableState)this._readableState.destroyed=O,this._writableState.destroyed=O}}});var g;function k(){if(g===void 0)g={};return g}R.fromWeb=function(O,l){return k().newStreamDuplexFromReadableWritablePair(O,l)},R.toWeb=function(O){return k().newReadableWritablePairFromDuplex(O)};var c;R.from=function(O){if(!c)c=HQ();return c(O,"body")}}}),mq=Bq({"node_modules/readable-stream/lib/internal/streams/transform.js"(a,j){var{ObjectSetPrototypeOf:B,Symbol:G}=Vq(),{ERR_METHOD_NOT_IMPLEMENTED:y}=Wq().codes,A=Mq();function M(k){if(!(this instanceof M))return new M(k);if(A.call(this,k),this._readableState.sync=!1,this[R]=null,k){if(typeof k.transform==="function")this._transform=k.transform;if(typeof k.flush==="function")this._flush=k.flush}this.on("prefinish",g.bind(this))}B(M.prototype,A.prototype),B(M,A),j.exports=M;var R=G("kCallback");function T(k){if(typeof this._flush==="function"&&!this.destroyed)this._flush((c,O)=>{if(c){if(k)k(c);else this.destroy(c);return}if(O!=null)this.push(O);if(this.push(null),k)k()});else if(this.push(null),k)k()}function g(){if(this._final!==T)T.call(this)}M.prototype._final=T,M.prototype._transform=function(k,c,O){throw new y("_transform()")},M.prototype._write=function(k,c,O){const l=this._readableState,D=this._writableState,p=l.length;this._transform(k,c,(E,P)=>{if(E){O(E);return}if(P!=null)this.push(P);if(D.ended||p===l.length||l.length{S=!0});const N=A(J,{readable:z,writable:w},(W)=>{S=!W});return{destroy:(W)=>{if(S)return;S=!0,R.destroyer(J,W||new l("pipe"))},cleanup:N}}function $(J){return p(J[J.length-1],"streams[stream.length - 1]"),J.pop()}function n(J){if(P(J))return J;else if(U(J))return Y(J);throw new k("val",["Readable","Iterable","AsyncIterable"],J)}async function*Y(J){if(!t)t=_q();yield*t.prototype[y].call(J)}async function K(J,z,w,{end:S}){let N,W=null;const b=(e)=>{if(e)N=e;if(W){const Hq=W;W=null,Hq()}},o=()=>new G((e,Hq)=>{if(N)Hq(N);else W=()=>{if(N)Hq(N);else e()}});z.on("drain",b);const s=A(z,{readable:!1},b);try{if(z.writableNeedDrain)await o();for await(let e of J)if(!z.write(e))await o();if(S)z.end();await o(),w()}catch(e){w(N!==e?g(N,e):e)}finally{s(),z.off("drain",b)}}function F(...J){return m(J,M($(J)))}function m(J,z,w){if(J.length===1&&B(J[0]))J=J[0];if(J.length<2)throw new O("streams");const S=new AbortController,N=S.signal,W=w===null||w===void 0?void 0:w.signal,b=[];E(W,"options.signal");function o(){Kq(new D)}W===null||W===void 0||W.addEventListener("abort",o);let s,e;const Hq=[];let $q=0;function qq(h){Kq(h,--$q===0)}function Kq(h,Q){if(h&&(!s||s.code==="ERR_STREAM_PREMATURE_CLOSE"))s=h;if(!s&&!Q)return;while(Hq.length)Hq.shift()(s);if(W===null||W===void 0||W.removeEventListener("abort",o),S.abort(),Q){if(!s)b.forEach((H)=>H());Xq(z,s,e)}}let Qq;for(let h=0;h0,d=H||(w===null||w===void 0?void 0:w.end)!==!1,f=h===J.length-1;if(I(Q)){let r=function(q){if(q&&q.name!=="AbortError"&&q.code!=="ERR_STREAM_PREMATURE_CLOSE")qq(q)};if(d){const{destroy:q,cleanup:X}=i(Q,H,L);if(Hq.push(q),Z(Q)&&f)b.push(X)}if(Q.on("error",r),Z(Q)&&f)b.push(()=>{Q.removeListener("error",r)})}if(h===0)if(typeof Q==="function"){if(Qq=Q({signal:N}),!P(Qq))throw new c("Iterable, AsyncIterable or Stream","source",Qq)}else if(P(Q)||U(Q))Qq=Q;else Qq=T.from(Q);else if(typeof Q==="function")if(Qq=n(Qq),Qq=Q(Qq,{signal:N}),H){if(!P(Qq,!0))throw new c("AsyncIterable",`transform[${h-1}]`,Qq)}else{var V;if(!_)_=cq();const r=new _({objectMode:!0}),q=(V=Qq)===null||V===void 0?void 0:V.then;if(typeof q==="function")$q++,q.call(Qq,(x)=>{if(e=x,x!=null)r.write(x);if(d)r.end();Xq(qq)},(x)=>{r.destroy(x),Xq(qq,x)});else if(P(Qq,!0))$q++,K(Qq,r,qq,{end:d});else throw new c("AsyncIterable or Promise","destination",Qq);Qq=r;const{destroy:X,cleanup:C}=i(Qq,!1,!0);if(Hq.push(X),f)b.push(C)}else if(I(Q)){if(U(Qq)){$q+=2;const r=u(Qq,Q,qq,{end:d});if(Z(Q)&&f)b.push(r)}else if(P(Qq))$q++,K(Qq,Q,qq,{end:d});else throw new k("val",["Readable","Iterable","AsyncIterable"],Qq);Qq=Q}else Qq=T.from(Q)}if(N!==null&&N!==void 0&&N.aborted||W!==null&&W!==void 0&&W.aborted)Xq(o);return Qq}function u(J,z,w,{end:S}){if(J.pipe(z,{end:S}),S)J.once("end",()=>z.end());else w();return A(J,{readable:!0,writable:!1},(N)=>{const W=J._readableState;if(N&&N.code==="ERR_STREAM_PREMATURE_CLOSE"&&W&&W.ended&&!W.errored&&!W.errorEmitted)J.once("end",w).once("error",w);else w(N)}),A(z,{readable:!1,writable:!0},w)}j.exports={pipelineImpl:m,pipeline:F}}}),KQ=Bq({"node_modules/readable-stream/lib/internal/streams/compose.js"(a,j){var{pipeline:B}=gq(),G=Mq(),{destroyer:y}=Tq(),{isNodeStream:A,isReadable:M,isWritable:R}=Eq(),{AbortError:T,codes:{ERR_INVALID_ARG_VALUE:g,ERR_MISSING_ARGS:k}}=Wq();j.exports=function c(...O){if(O.length===0)throw new k("streams");if(O.length===1)return G.from(O[0]);const l=[...O];if(typeof O[0]==="function")O[0]=G.from(O[0]);if(typeof O[O.length-1]==="function"){const $=O.length-1;O[$]=G.from(O[$])}for(let $=0;$0&&!R(O[$]))throw new g(`streams[${$}]`,l[$],"must be writable")}let D,p,E,P,Z;function U($){const n=P;if(P=null,n)n($);else if($)Z.destroy($);else if(!i&&!t)Z.destroy()}const I=O[0],_=B(O,U),t=!!R(I),i=!!M(_);if(Z=new G({writableObjectMode:!!(I!==null&&I!==void 0&&I.writableObjectMode),readableObjectMode:!!(_!==null&&_!==void 0&&_.writableObjectMode),writable:t,readable:i}),t)Z._write=function($,n,Y){if(I.write($,n))Y();else D=Y},Z._final=function($){I.end(),p=$},I.on("drain",function(){if(D){const $=D;D=null,$()}}),_.on("finish",function(){if(p){const $=p;p=null,$()}});if(i)_.on("readable",function(){if(E){const $=E;E=null,$()}}),_.on("end",function(){Z.push(null)}),Z._read=function(){while(!0){const $=_.read();if($===null){E=Z._read;return}if(!Z.push($))return}};return Z._destroy=function($,n){if(!$&&P!==null)$=new T;if(E=null,D=null,p=null,P===null)n($);else P=n,y(_,$)},Z}}}),dq=Bq({"node_modules/readable-stream/lib/stream/promises.js"(a,j){var{ArrayPrototypePop:B,Promise:G}=Vq(),{isIterable:y,isNodeStream:A}=Eq(),{pipelineImpl:M}=gq(),{finished:R}=Fq();function T(...g){return new G((k,c)=>{let O,l;const D=g[g.length-1];if(D&&typeof D==="object"&&!A(D)&&!y(D)){const p=B(g);O=p.signal,l=p.end}M(g,(p,E)=>{if(p)c(p);else k(E)},{signal:O,end:l})})}j.exports={finished:R,pipeline:T}}}),ZQ=Bq({"node_modules/readable-stream/lib/stream.js"(a,j){var{ObjectDefineProperty:B,ObjectKeys:G,ReflectApply:y}=Vq(),{promisify:{custom:A}}=Aq(),{streamReturningOperators:M,promiseReturningOperators:R}=XQ(),{codes:{ERR_ILLEGAL_CONSTRUCTOR:T}}=Wq(),g=KQ(),{pipeline:k}=gq(),{destroyer:c}=Tq(),O=Fq(),l=dq(),D=Eq(),p=j.exports=Rq().Stream;p.isDisturbed=D.isDisturbed,p.isErrored=D.isErrored,p.isWritable=D.isWritable,p.isReadable=D.isReadable,p.Readable=_q();for(let P of G(M)){let Z=function(...I){if(new.target)throw T();return p.Readable.from(y(U,this,I))};const U=M[P];B(Z,"name",{value:U.name}),B(Z,"length",{value:U.length}),B(p.Readable.prototype,P,{value:Z,enumerable:!1,configurable:!0,writable:!0})}for(let P of G(R)){let Z=function(...I){if(new.target)throw T();return y(U,this,I)};const U=R[P];B(Z,"name",{value:U.name}),B(Z,"length",{value:U.length}),B(p.Readable.prototype,P,{value:Z,enumerable:!1,configurable:!0,writable:!0})}p.Writable=bq(),p.Duplex=Mq(),p.Transform=mq(),p.PassThrough=cq(),p.pipeline=k;var{addAbortSignal:E}=Sq();p.addAbortSignal=E,p.finished=O,p.destroy=c,p.compose=g,B(p,"promises",{configurable:!0,enumerable:!0,get(){return l}}),B(k,A,{enumerable:!0,get(){return l.pipeline}}),B(O,A,{enumerable:!0,get(){return l.finished}}),p.Stream=p,p._isUint8Array=function P(Z){return Z instanceof Uint8Array},p._uint8ArrayToBuffer=function P(Z){return new Buffer(Z.buffer,Z.byteOffset,Z.byteLength)}}}),BQ=Bq({"node_modules/readable-stream/lib/ours/index.js"(a,j){const B=ZQ(),G=dq(),y=B.Readable.destroy;j.exports=B,j.exports._uint8ArrayToBuffer=B._uint8ArrayToBuffer,j.exports._isUint8Array=B._isUint8Array,j.exports.isDisturbed=B.isDisturbed,j.exports.isErrored=B.isErrored,j.exports.isWritable=B.isWritable,j.exports.isReadable=B.isReadable,j.exports.Readable=B.Readable,j.exports.Writable=B.Writable,j.exports.Duplex=B.Duplex,j.exports.Transform=B.Transform,j.exports.PassThrough=B.PassThrough,j.exports.addAbortSignal=B.addAbortSignal,j.exports.finished=B.finished,j.exports.destroy=B.destroy,j.exports.destroy=y,j.exports.pipeline=B.pipeline,j.exports.compose=B.compose,j.exports._getNativeReadableStreamPrototype=lq,j.exports.NativeWritable=iq,zq.defineProperty(B,"promises",{configurable:!0,enumerable:!0,get(){return G}}),j.exports.Stream=B.Stream,j.exports.default=j.exports}}),$Q={0:void 0,1:void 0,2:void 0,3:void 0,4:void 0,5:void 0},Uq=bq(),iq=class a extends Uq{#q;#Q;#X=!0;_construct;_destroy;_final;constructor(j,B={}){super(B);this._construct=this.#H,this._destroy=this.#K,this._final=this.#Z,this.#q=j}#H(j){this._writableState.constructed=!0,this.constructed=!0,j()}#J(){if(typeof this.#q==="object")if(typeof this.#q.write==="function")this.#Q=this.#q;else throw new Error("Invalid FileSink");else this.#Q=Bun.file(this.#q).writer()}write(j,B,G,y=this.#X){if(!y)return this.#X=!1,super.write(j,B,G);if(!this.#Q)this.#J();var A=this.#Q,M=A.write(j);if(xq(M))return M.then(()=>{this.emit("drain"),A.flush(!0)}),!1;if(A.flush(!0),G)G(null,j.byteLength);return!0}end(j,B,G,y=this.#X){return super.end(j,B,G,y)}#K(j,B){if(this._writableState.destroyed=!0,B)B(j)}#Z(j){if(this.#Q)this.#Q.end();if(j)j()}ref(){if(!this.#Q)this.#J();this.#Q.ref()}unref(){if(!this.#Q)return;this.#Q.unref()}},Yq=BQ();Yq[Symbol.for("CommonJS")]=0;Yq[Symbol.for("::bunternal::")]={_ReadableFromWeb:pq,_ReadableFromWebForUndici:uq};var cQ=Yq,EQ=Yq._uint8ArrayToBuffer,IQ=Yq._isUint8Array,TQ=Yq.isDisturbed,PQ=Yq.isErrored,xQ=Yq.isWritable,OQ=Yq.isReadable,CQ=Yq.Readable,Uq=Yq.Writable,_Q=Yq.Duplex,DQ=Yq.Transform,wQ=Yq.PassThrough,vQ=Yq.addAbortSignal,RQ=Yq.finished,SQ=Yq.destroy,gQ=Yq.pipeline,kQ=Yq.compose,VQ=Yq.Stream,fQ=Yq.eos=Fq,yQ=Yq._getNativeReadableStreamPrototype,iq=Yq.NativeWritable,hQ=VQ.promises;export{hQ as promises,gQ as pipeline,xQ as isWritable,OQ as isReadable,PQ as isErrored,TQ as isDisturbed,RQ as finished,fQ as eos,SQ as destroy,cQ as default,kQ as compose,vQ as addAbortSignal,EQ as _uint8ArrayToBuffer,IQ as _isUint8Array,yQ as _getNativeReadableStreamPrototype,Uq as Writable,DQ as Transform,VQ as Stream,CQ as Readable,wQ as PassThrough,iq as NativeWritable,_Q as Duplex}; diff --git a/test/js/node/fs/fs.test.ts b/test/js/node/fs/fs.test.ts index 3b1688c15..0236010be 100644 --- a/test/js/node/fs/fs.test.ts +++ b/test/js/node/fs/fs.test.ts @@ -1448,3 +1448,26 @@ describe("utimesSync", () => { expect(finalStats.atime).toEqual(prevAccessTime); }); }); + +it("createReadStream on a large file emits readable event correctly", () => { + return new Promise((resolve, reject) => { + const tmp = mkdtempSync(`${tmpdir()}/readable`); + // write a 10mb file + writeFileSync(`${tmp}/large.txt`, "a".repeat(10 * 1024 * 1024)); + var stream = createReadStream(`${tmp}/large.txt`); + var ended = false; + var timer: Timer; + stream.on("readable", () => { + const v = stream.read(); + if (ended) { + clearTimeout(timer); + reject(new Error("readable emitted after end")); + } else if (v == null) { + ended = true; + timer = setTimeout(() => { + resolve(); + }, 20); + } + }); + }); +}); -- cgit v1.2.3 From 17031936c852c2973eacf0929e762972a76ec7bf Mon Sep 17 00:00:00 2001 From: Hanaasagi Date: Tue, 11 Jul 2023 20:10:25 +0900 Subject: small fix, check if the method has been reassigned. --- src/js/node/http.ts | 7 +++++-- src/js/out/modules/node/http.js | 8 ++++++-- test/js/node/http/node-http.test.ts | 2 +- 3 files changed, 12 insertions(+), 5 deletions(-) (limited to 'test/js') diff --git a/src/js/node/http.ts b/src/js/node/http.ts index 253bcf4d8..3a283912e 100644 --- a/src/js/node/http.ts +++ b/src/js/node/http.ts @@ -972,6 +972,7 @@ export class ServerResponse extends Writable { this.#firstWrite = undefined; this._writableState.decodeStrings = false; this.#deferred = undefined; + this.#originalWriteHead = this.writeHead; } req; @@ -989,7 +990,7 @@ export class ServerResponse extends Writable { _removedContLen = false; #deferred: (() => void) | undefined = undefined; #finished = false; - + #originalWriteHead: (statusCode, statusMessage, headers) => ServerResponse; // Express "compress" package uses this _implicitHeader() { // @ts-ignore @@ -1061,7 +1062,9 @@ export class ServerResponse extends Writable { var data = this.#firstWrite || ""; this.#firstWrite = undefined; this.#finished = true; - this._implicitHeader(); + if (this.writeHead !== this.#originalWriteHead) { + this._implicitHeader(); + } this._reply( new Response(data, { headers: this.#headers, diff --git a/src/js/out/modules/node/http.js b/src/js/out/modules/node/http.js index 13ee7fded..9cfaccd04 100644 --- a/src/js/out/modules/node/http.js +++ b/src/js/out/modules/node/http.js @@ -630,7 +630,7 @@ class OutgoingMessage extends Writable { class ServerResponse extends Writable { constructor({ req, reply }) { super(); - this.req = req, this._reply = reply, this.sendDate = !0, this.statusCode = 200, this.headersSent = !1, this.statusMessage = void 0, this.#controller = void 0, this.#firstWrite = void 0, this._writableState.decodeStrings = !1, this.#deferred = void 0; + this.req = req, this._reply = reply, this.sendDate = !0, this.statusCode = 200, this.headersSent = !1, this.statusMessage = void 0, this.#controller = void 0, this.#firstWrite = void 0, this._writableState.decodeStrings = !1, this.#deferred = void 0, this.#originalWriteHead = this.writeHead; } req; _reply; @@ -647,7 +647,9 @@ class ServerResponse extends Writable { _removedContLen = !1; #deferred = void 0; #finished = !1; + #originalWriteHead; _implicitHeader() { + this.writeHead(this.statusCode); } _write(chunk, encoding, callback) { if (!this.#firstWrite && !this.headersSent) { @@ -694,7 +696,9 @@ class ServerResponse extends Writable { _final(callback) { if (!this.headersSent) { var data = this.#firstWrite || ""; - this.#firstWrite = void 0, this.#finished = !0, this._reply(new Response(data, { + if (this.#firstWrite = void 0, this.#finished = !0, this.writeHead !== this.#originalWriteHead) + this._implicitHeader(); + this._reply(new Response(data, { headers: this.#headers, status: this.statusCode, statusText: this.statusMessage ?? STATUS_CODES[this.statusCode] diff --git a/test/js/node/http/node-http.test.ts b/test/js/node/http/node-http.test.ts index 167cb9883..0e7b3ca13 100644 --- a/test/js/node/http/node-http.test.ts +++ b/test/js/node/http/node-http.test.ts @@ -530,7 +530,7 @@ describe("node:http", () => { req.end(); }); }); - it("re-implemented writeHead, issue#3585", done => { + it("reassign writeHead method, issue#3585", done => { runTest(done, (server, serverPort, done) => { const req = request(`http://localhost:${serverPort}/customWriteHead`, res => { expect(res.headers["content-type"]).toBe("text/plain"); -- cgit v1.2.3 From 31ab56d36238528c6f44c52a6cbf600744a91f0a Mon Sep 17 00:00:00 2001 From: dave caruso Date: Tue, 11 Jul 2023 12:48:19 -0700 Subject: Fix: console.log with class constructors (#3602) * Fix console.log with class constructors * oops * fix it * lol * fix test --- src/bun.js/bindings/bindings.cpp | 14 ++++++++-- src/bun.js/bindings/exports.zig | 37 +++++++++++------------- src/bun.js/test/pretty_format.zig | 42 +++++++++++++++------------- test/js/web/console/console-log.expected.txt | 8 +++++- test/js/web/console/console-log.js | 6 ++++ 5 files changed, 65 insertions(+), 42 deletions(-) (limited to 'test/js') diff --git a/src/bun.js/bindings/bindings.cpp b/src/bun.js/bindings/bindings.cpp index 9f9b20c1e..d311072e4 100644 --- a/src/bun.js/bindings/bindings.cpp +++ b/src/bun.js/bindings/bindings.cpp @@ -2775,8 +2775,18 @@ void JSC__JSValue__put(JSC__JSValue JSValue0, JSC__JSGlobalObject* arg1, const Z bool JSC__JSValue__isClass(JSC__JSValue JSValue0, JSC__JSGlobalObject* arg1) { - JSC::JSValue value = JSC::JSValue::decode(JSValue0); - return value.isConstructor(); + JSValue value = JSValue::decode(JSValue0); + auto callData = getCallData(value); + + switch (callData.type) { + case CallData::Type::JS: + return callData.js.functionExecutable->isClassConstructorFunction(); + case CallData::Type::Native: + if (callData.native.isBoundFunction) + return false; + return value.isConstructor(); + } + return false; } bool JSC__JSValue__isCell(JSC__JSValue JSValue0) { return JSC::JSValue::decode(JSValue0).isCell(); } bool JSC__JSValue__isCustomGetterSetter(JSC__JSValue JSValue0) diff --git a/src/bun.js/bindings/exports.zig b/src/bun.js/bindings/exports.zig index 73a26e4be..db6de2ef3 100644 --- a/src/bun.js/bindings/exports.zig +++ b/src/bun.js/bindings/exports.zig @@ -1417,23 +1417,20 @@ pub const ZigConsoleClient = struct { // If we check an Object has a method table and it does not // it will crash - const callable = js_type != .Object and value.isCallable(globalThis.vm()); - - if (value.isClass(globalThis) and !callable) { - return .{ - .tag = .Object, - .cell = js_type, - }; - } + if (js_type != .Object and value.isCallable(globalThis.vm())) { + if (value.isClass(globalThis)) { + return .{ + .tag = .Class, + .cell = js_type, + }; + } - if (callable and js_type == .JSFunction) { - return .{ - .tag = .Function, - .cell = js_type, - }; - } else if (callable and js_type == .InternalFunction) { return .{ - .tag = .Object, + // TODO: we print InternalFunction as Object because we have a lot of + // callable namespaces and printing the contents of it is better than [Function: namespace] + // ideally, we would print [Function: namespace] { ... } on all functions, internal and js. + // what we'll do later is rid of .Function and .Class and handle the prefix in the .Object formatter + .tag = if (js_type == .InternalFunction) .Object else .Function, .cell = js_type, }; } @@ -1756,7 +1753,7 @@ pub const ZigConsoleClient = struct { parent: JSValue, const enable_ansi_colors = enable_ansi_colors_; pub fn handleFirstProperty(this: *@This(), globalThis: *JSC.JSGlobalObject, value: JSValue) void { - if (!value.jsType().isFunction() and !value.isClass(globalThis)) { + if (!value.jsType().isFunction()) { var writer = WrappedWriter(Writer){ .ctx = this.writer, .failed = false, @@ -2094,9 +2091,9 @@ pub const ZigConsoleClient = struct { this.addForNewLine(printable.len); if (printable.len == 0) { - writer.print(comptime Output.prettyFmt("[class]", enable_ansi_colors), .{}); + writer.print(comptime Output.prettyFmt("[class]", enable_ansi_colors), .{}); } else { - writer.print(comptime Output.prettyFmt("[class {}]", enable_ansi_colors), .{printable}); + writer.print(comptime Output.prettyFmt("[class {}]", enable_ansi_colors), .{printable}); } }, .Function => { @@ -2106,7 +2103,7 @@ pub const ZigConsoleClient = struct { if (printable.len == 0) { writer.print(comptime Output.prettyFmt("[Function]", enable_ansi_colors), .{}); } else { - writer.print(comptime Output.prettyFmt("[Function: {}]", enable_ansi_colors), .{printable}); + writer.print(comptime Output.prettyFmt("[Function: {}]", enable_ansi_colors), .{printable}); } }, .Getter => { @@ -2802,7 +2799,7 @@ pub const ZigConsoleClient = struct { } if (iter.i == 0) { - if (value.isClass(this.globalThis) and !value.isCallable(this.globalThis.vm())) + if (value.isClass(this.globalThis)) this.printAs(.Class, Writer, writer_, value, jsType, enable_ansi_colors) else if (value.isCallable(this.globalThis.vm())) this.printAs(.Function, Writer, writer_, value, jsType, enable_ansi_colors) diff --git a/src/bun.js/test/pretty_format.zig b/src/bun.js/test/pretty_format.zig index 4a245c3bb..a6c6aa631 100644 --- a/src/bun.js/test/pretty_format.zig +++ b/src/bun.js/test/pretty_format.zig @@ -423,23 +423,20 @@ pub const JestPrettyFormat = struct { // If we check an Object has a method table and it does not // it will crash - const callable = js_type != .Object and value.isCallable(globalThis.vm()); + if (js_type != .Object and value.isCallable(globalThis.vm())) { + if (value.isClass(globalThis)) { + return .{ + .tag = .Class, + .cell = js_type, + }; + } - if (value.isClass(globalThis) and !callable) { return .{ - .tag = .Object, - .cell = js_type, - }; - } - - if (callable and js_type == .JSFunction) { - return .{ - .tag = .Function, - .cell = js_type, - }; - } else if (callable and js_type == .InternalFunction) { - return .{ - .tag = .Object, + // TODO: we print InternalFunction as Object because we have a lot of + // callable namespaces and printing the contents of it is better than [Function: namespace] + // ideally, we would print [Function: namespace] { ... } on all functions, internal and js. + // what we'll do later is rid of .Function and .Class and handle the prefix in the .Object formatter + .tag = if (js_type == .InternalFunction) .Object else .Function, .cell = js_type, }; } @@ -750,7 +747,7 @@ pub const JestPrettyFormat = struct { parent: JSValue, const enable_ansi_colors = enable_ansi_colors_; pub fn handleFirstProperty(this: *@This(), globalThis: *JSC.JSGlobalObject, value: JSValue) void { - if (!value.jsType().isFunction() and !value.isClass(globalThis)) { + if (!value.jsType().isFunction()) { var writer = WrappedWriter(Writer){ .ctx = this.writer, .failed = false, @@ -1126,13 +1123,20 @@ pub const JestPrettyFormat = struct { this.addForNewLine(printable.len); if (printable.len == 0) { - writer.print(comptime Output.prettyFmt("[class]", enable_ansi_colors), .{}); + writer.print(comptime Output.prettyFmt("[class]", enable_ansi_colors), .{}); } else { - writer.print(comptime Output.prettyFmt("[class {}]", enable_ansi_colors), .{printable}); + writer.print(comptime Output.prettyFmt("[class {}]", enable_ansi_colors), .{printable}); } }, .Function => { - writer.writeAll("[Function]"); + var printable = ZigString.init(&name_buf); + value.getNameProperty(this.globalThis, &printable); + + if (printable.len == 0) { + writer.print(comptime Output.prettyFmt("[Function]", enable_ansi_colors), .{}); + } else { + writer.print(comptime Output.prettyFmt("[Function: {}]", enable_ansi_colors), .{printable}); + } }, .Array => { const len = @truncate(u32, value.getLength(this.globalThis)); diff --git a/test/js/web/console/console-log.expected.txt b/test/js/web/console/console-log.expected.txt index 97191c8be..332322665 100644 --- a/test/js/web/console/console-log.expected.txt +++ b/test/js/web/console/console-log.expected.txt @@ -1,4 +1,6 @@ Hello World! +0 +-0 123 -123 123.567 @@ -7,6 +9,8 @@ true false null undefined +Infinity +-Infinity Symbol(Symbol Description) 2000-06-27T02:24:34.304Z [ 123, 456, 789 ] @@ -29,7 +33,9 @@ Symbol(Symbol Description) } Promise { } [Function] -[Function: Foo] +[Function] +[class Foo] +[class] {} [Function: foooo] /FooRegex/ diff --git a/test/js/web/console/console-log.js b/test/js/web/console/console-log.js index e23a3e9cb..4db40aaac 100644 --- a/test/js/web/console/console-log.js +++ b/test/js/web/console/console-log.js @@ -1,4 +1,6 @@ console.log("Hello World!"); +console.log(0); +console.log(-0); console.log(123); console.log(-123); console.log(123.567); @@ -7,6 +9,8 @@ console.log(true); console.log(false); console.log(null); console.log(undefined); +console.log(Infinity); +console.log(-Infinity); console.log(Symbol("Symbol Description")); console.log(new Date(Math.pow(2, 34) * 56)); console.log([123, 456, 789]); @@ -27,7 +31,9 @@ console.log(new Promise(() => {})); class Foo {} console.log(() => {}); +console.log(function () {}); console.log(Foo); +console.log(class {}); console.log(new Foo()); console.log(function foooo() {}); -- cgit v1.2.3 From ae7bc37e94185726196a9cf77850379390904d4a Mon Sep 17 00:00:00 2001 From: Dylan Conway <35280289+dylan-conway@users.noreply.github.com> Date: Tue, 11 Jul 2023 12:48:32 -0700 Subject: fix iterating stack trace (#3600) * `i + 1` and remove `defer` * a test * fix test --- src/bun.js/bindings/exports.zig | 6 +++--- test/js/bun/http/error-response.js | 8 ++++++++ test/js/bun/http/serve.test.ts | 15 +++++++++++++++ 3 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 test/js/bun/http/error-response.js (limited to 'test/js') diff --git a/src/bun.js/bindings/exports.zig b/src/bun.js/bindings/exports.zig index db6de2ef3..e9e9d3a8d 100644 --- a/src/bun.js/bindings/exports.zig +++ b/src/bun.js/bindings/exports.zig @@ -460,7 +460,7 @@ pub const ZigStackTrace = extern struct { var source_line_len = source_lines_iter.getLength(); if (source_line_len > 0) { - var source_lines = try allocator.alloc(Api.SourceLine, @intCast(usize, @max(source_lines_iter.i, 0))); + var source_lines = try allocator.alloc(Api.SourceLine, @intCast(usize, @max(source_lines_iter.i + 1, 0))); var source_line_buf = try allocator.alloc(u8, source_line_len); source_lines_iter = this.sourceLineIterator(); var remain_buf = source_line_buf[0..]; @@ -468,7 +468,7 @@ pub const ZigStackTrace = extern struct { while (source_lines_iter.next()) |source| { const text = source.text.slice(); defer source.text.deinit(); - defer bun.copy( + bun.copy( u8, remain_buf, text, @@ -515,7 +515,7 @@ pub const ZigStackTrace = extern struct { pub fn getLength(this: *SourceLineIterator) usize { var count: usize = 0; - for (this.trace.source_lines_ptr[0..@intCast(usize, this.i)]) |*line| { + for (this.trace.source_lines_ptr[0..@intCast(usize, this.i + 1)]) |*line| { count += line.length(); } diff --git a/test/js/bun/http/error-response.js b/test/js/bun/http/error-response.js new file mode 100644 index 000000000..3284c146b --- /dev/null +++ b/test/js/bun/http/error-response.js @@ -0,0 +1,8 @@ +const s = Bun.serve({ + fetch(req, res) { + s.stop(true); + throw new Error("1"); + }, + port: 0, +}); +fetch(`http://${s.hostname}:${s.port}`).then(res => console.log(res.status)); diff --git a/test/js/bun/http/serve.test.ts b/test/js/bun/http/serve.test.ts index 7182ba68d..bba35c085 100644 --- a/test/js/bun/http/serve.test.ts +++ b/test/js/bun/http/serve.test.ts @@ -2,8 +2,10 @@ import { file, gc, Serve, serve, Server } from "bun"; import { afterEach, describe, it, expect, afterAll } from "bun:test"; import { readFileSync, writeFileSync } from "fs"; import { resolve } from "path"; +import { bunExe, bunEnv } from "harness"; import { renderToReadableStream } from "react-dom/server"; import app_jsx from "./app.jsx"; +import { spawn } from "child_process"; type Handler = (req: Request) => Response; afterEach(() => gc(true)); @@ -980,6 +982,19 @@ describe("should support Content-Range with Bun.file()", () => { } }); +it("formats error responses correctly", async () => { + const c = spawn(bunExe(), ["./error-response.js"], { cwd: import.meta.dir, env: bunEnv }); + + var output = ""; + c.stderr.on("data", chunk => { + output += chunk.toString(); + }); + c.stderr.on("end", () => { + expect(output).toContain('throw new Error("1");'); + c.kill(); + }); +}); + it("request body and signal life cycle", async () => { { const headers = { -- cgit v1.2.3 From 5c8726d602fe73e49d027194fef65b9432872c8b Mon Sep 17 00:00:00 2001 From: Dylan Conway <35280289+dylan-conway@users.noreply.github.com> Date: Tue, 11 Jul 2023 12:48:46 -0700 Subject: process signal events (#3569) * signal events * simple tests * ignore SIGSTOP * better tests * use `EventEmitter` * use `Bun__getDefaultGlobal` * progress * don't use 'Bun__getDefaultGlobal` * fix tests * remove signals from map * update tests * don't overwrite event emitter methods * avoid two lookups * use `std::once` * releaseEarly() * Remove signal handler after use * Update call-raise.js * Create process-signal-handler.fixture.js * Don't register duplicates * Add missing lock * another test * update test * revert some changes --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> --- src/bun.js/bindings/JSBundlerPlugin.cpp | 3 +- src/bun.js/bindings/Process.cpp | 290 +++++++++++++++------ src/bun.js/bindings/Process.h | 2 + src/bun.js/bindings/ScriptExecutionContext.cpp | 6 + src/bun.js/bindings/ScriptExecutionContext.h | 8 +- src/bun.js/bindings/webcore/EventEmitter.cpp | 7 + src/bun.js/bindings/webcore/EventEmitter.h | 6 +- src/bun.js/bindings/webcore/JSEventEmitter.cpp | 15 +- src/bun.js/bindings/webcore/JSEventEmitter.h | 3 + test/js/node/process/call-raise.js | 15 ++ .../node/process/process-signal-handler.fixture.js | 63 +++++ test/js/node/process/process.test.js | 26 +- 12 files changed, 352 insertions(+), 92 deletions(-) create mode 100644 test/js/node/process/call-raise.js create mode 100644 test/js/node/process/process-signal-handler.fixture.js (limited to 'test/js') diff --git a/src/bun.js/bindings/JSBundlerPlugin.cpp b/src/bun.js/bindings/JSBundlerPlugin.cpp index d55c5fc2e..ec3933574 100644 --- a/src/bun.js/bindings/JSBundlerPlugin.cpp +++ b/src/bun.js/bindings/JSBundlerPlugin.cpp @@ -157,7 +157,8 @@ public: JSC::LazyProperty setupFunction; private: - JSBundlerPlugin(JSC::VM& vm, JSC::JSGlobalObject*, JSC::Structure* structure, void* config, BunPluginTarget target, JSBundlerPluginAddErrorCallback addError, JSBundlerPluginOnLoadAsyncCallback onLoadAsync, JSBundlerPluginOnResolveAsyncCallback onResolveAsync) + JSBundlerPlugin(JSC::VM& vm, JSC::JSGlobalObject*, JSC::Structure* structure, void* config, BunPluginTarget target, + JSBundlerPluginAddErrorCallback addError, JSBundlerPluginOnLoadAsyncCallback onLoadAsync, JSBundlerPluginOnResolveAsyncCallback onResolveAsync) : JSC::JSNonFinalObject(vm, structure) , plugin(BundlerPlugin(config, target, addError, onLoadAsync, onResolveAsync)) { diff --git a/src/bun.js/bindings/Process.cpp b/src/bun.js/bindings/Process.cpp index 7d7bdd982..f9fb85b95 100644 --- a/src/bun.js/bindings/Process.cpp +++ b/src/bun.js/bindings/Process.cpp @@ -437,91 +437,215 @@ JSC_DEFINE_HOST_FUNCTION(Process_functionChdir, return JSC::JSValue::encode(result); } -// static const NeverDestroyed signalNames[] = { -// MAKE_STATIC_STRING_IMPL("SIGHUP"), -// MAKE_STATIC_STRING_IMPL("SIGINT"), -// MAKE_STATIC_STRING_IMPL("SIGQUIT"), -// MAKE_STATIC_STRING_IMPL("SIGILL"), -// MAKE_STATIC_STRING_IMPL("SIGTRAP"), -// MAKE_STATIC_STRING_IMPL("SIGABRT"), -// MAKE_STATIC_STRING_IMPL("SIGIOT"), -// MAKE_STATIC_STRING_IMPL("SIGBUS"), -// MAKE_STATIC_STRING_IMPL("SIGFPE"), -// MAKE_STATIC_STRING_IMPL("SIGKILL"), -// MAKE_STATIC_STRING_IMPL("SIGUSR1"), -// MAKE_STATIC_STRING_IMPL("SIGSEGV"), -// MAKE_STATIC_STRING_IMPL("SIGUSR2"), -// MAKE_STATIC_STRING_IMPL("SIGPIPE"), -// MAKE_STATIC_STRING_IMPL("SIGALRM"), -// MAKE_STATIC_STRING_IMPL("SIGTERM"), -// MAKE_STATIC_STRING_IMPL("SIGCHLD"), -// MAKE_STATIC_STRING_IMPL("SIGCONT"), -// MAKE_STATIC_STRING_IMPL("SIGSTOP"), -// MAKE_STATIC_STRING_IMPL("SIGTSTP"), -// MAKE_STATIC_STRING_IMPL("SIGTTIN"), -// MAKE_STATIC_STRING_IMPL("SIGTTOU"), -// MAKE_STATIC_STRING_IMPL("SIGURG"), -// MAKE_STATIC_STRING_IMPL("SIGXCPU"), -// MAKE_STATIC_STRING_IMPL("SIGXFSZ"), -// MAKE_STATIC_STRING_IMPL("SIGVTALRM"), -// MAKE_STATIC_STRING_IMPL("SIGPROF"), -// MAKE_STATIC_STRING_IMPL("SIGWINCH"), -// MAKE_STATIC_STRING_IMPL("SIGIO"), -// MAKE_STATIC_STRING_IMPL("SIGINFO"), -// MAKE_STATIC_STRING_IMPL("SIGSYS"), -// }; -// static const int signalNumbers[] = { -// SIGHUP, -// SIGINT, -// SIGQUIT, -// SIGILL, -// SIGTRAP, -// SIGABRT, -// SIGIOT, -// SIGBUS, -// SIGFPE, -// SIGKILL, -// SIGUSR1, -// SIGSEGV, -// SIGUSR2, -// SIGPIPE, -// SIGALRM, -// SIGTERM, -// SIGCHLD, -// SIGCONT, -// SIGSTOP, -// SIGTSTP, -// SIGTTIN, -// SIGTTOU, -// SIGURG, -// SIGXCPU, -// SIGXFSZ, -// SIGVTALRM, -// SIGPROF, -// SIGWINCH, -// SIGIO, -// SIGINFO, -// SIGSYS, -// }; - -// JSC_DEFINE_HOST_FUNCTION(jsFunctionProcessOn, (JSGlobalObject * globalObject, CallFrame* callFrame)) -// { -// VM& vm = globalObject->vm(); -// auto scope = DECLARE_THROW_SCOPE(vm); - -// if (callFrame->argumentCount() < 2) { -// throwVMError(globalObject, scope, "Not enough arguments"_s); -// return JSValue::encode(jsUndefined()); -// } - -// String eventName = callFrame->uncheckedArgument(0).toWTFString(globalObject); -// RETURN_IF_EXCEPTION(scope, encodedJSValue()); -// } +static HashMap* signalNameToNumberMap = nullptr; +static HashMap* signalNumberToNameMap = nullptr; + +// signal number to array of script execution context ids that care about the signal +static HashMap>* signalToContextIdsMap = nullptr; +static Lock signalToContextIdsMapLock; + +static void onDidChangeListeners(EventEmitter& eventEmitter, const Identifier& eventName, bool isAdded) +{ + + static const NeverDestroyed signalNames[] = { + MAKE_STATIC_STRING_IMPL("SIGHUP"), + MAKE_STATIC_STRING_IMPL("SIGINT"), + MAKE_STATIC_STRING_IMPL("SIGQUIT"), + MAKE_STATIC_STRING_IMPL("SIGILL"), + MAKE_STATIC_STRING_IMPL("SIGTRAP"), + MAKE_STATIC_STRING_IMPL("SIGABRT"), + MAKE_STATIC_STRING_IMPL("SIGIOT"), + MAKE_STATIC_STRING_IMPL("SIGBUS"), + MAKE_STATIC_STRING_IMPL("SIGFPE"), + MAKE_STATIC_STRING_IMPL("SIGKILL"), + MAKE_STATIC_STRING_IMPL("SIGUSR1"), + MAKE_STATIC_STRING_IMPL("SIGSEGV"), + MAKE_STATIC_STRING_IMPL("SIGUSR2"), + MAKE_STATIC_STRING_IMPL("SIGPIPE"), + MAKE_STATIC_STRING_IMPL("SIGALRM"), + MAKE_STATIC_STRING_IMPL("SIGTERM"), + MAKE_STATIC_STRING_IMPL("SIGCHLD"), + MAKE_STATIC_STRING_IMPL("SIGCONT"), + MAKE_STATIC_STRING_IMPL("SIGSTOP"), + MAKE_STATIC_STRING_IMPL("SIGTSTP"), + MAKE_STATIC_STRING_IMPL("SIGTTIN"), + MAKE_STATIC_STRING_IMPL("SIGTTOU"), + MAKE_STATIC_STRING_IMPL("SIGURG"), + MAKE_STATIC_STRING_IMPL("SIGXCPU"), + MAKE_STATIC_STRING_IMPL("SIGXFSZ"), + MAKE_STATIC_STRING_IMPL("SIGVTALRM"), + MAKE_STATIC_STRING_IMPL("SIGPROF"), + MAKE_STATIC_STRING_IMPL("SIGWINCH"), + MAKE_STATIC_STRING_IMPL("SIGIO"), + MAKE_STATIC_STRING_IMPL("SIGINFO"), + MAKE_STATIC_STRING_IMPL("SIGSYS"), + }; + + static std::once_flag signalNameToNumberMapOnceFlag; + std::call_once(signalNameToNumberMapOnceFlag, [] { + signalNameToNumberMap = new HashMap(); + signalNameToNumberMap->reserveInitialCapacity(31); + signalNameToNumberMap->add(signalNames[0], SIGHUP); + signalNameToNumberMap->add(signalNames[1], SIGINT); + signalNameToNumberMap->add(signalNames[2], SIGQUIT); + signalNameToNumberMap->add(signalNames[3], SIGILL); + signalNameToNumberMap->add(signalNames[4], SIGTRAP); + signalNameToNumberMap->add(signalNames[5], SIGABRT); + signalNameToNumberMap->add(signalNames[6], SIGIOT); + signalNameToNumberMap->add(signalNames[7], SIGBUS); + signalNameToNumberMap->add(signalNames[8], SIGFPE); + // signalNameToNumberMap->add(signalNames[9], SIGKILL); + signalNameToNumberMap->add(signalNames[10], SIGUSR1); + signalNameToNumberMap->add(signalNames[11], SIGSEGV); + signalNameToNumberMap->add(signalNames[12], SIGUSR2); + signalNameToNumberMap->add(signalNames[13], SIGPIPE); + signalNameToNumberMap->add(signalNames[14], SIGALRM); + signalNameToNumberMap->add(signalNames[15], SIGTERM); + signalNameToNumberMap->add(signalNames[16], SIGCHLD); + signalNameToNumberMap->add(signalNames[17], SIGCONT); + // signalNameToNumberMap->add(signalNames[18], SIGSTOP); + signalNameToNumberMap->add(signalNames[19], SIGTSTP); + signalNameToNumberMap->add(signalNames[20], SIGTTIN); + signalNameToNumberMap->add(signalNames[21], SIGTTOU); + signalNameToNumberMap->add(signalNames[22], SIGURG); + signalNameToNumberMap->add(signalNames[23], SIGXCPU); + signalNameToNumberMap->add(signalNames[24], SIGXFSZ); + signalNameToNumberMap->add(signalNames[25], SIGVTALRM); + signalNameToNumberMap->add(signalNames[26], SIGPROF); + signalNameToNumberMap->add(signalNames[27], SIGWINCH); + signalNameToNumberMap->add(signalNames[28], SIGIO); +#ifdef SIGINFO + signalNameToNumberMap->add(signalNames[29], SIGINFO); +#endif + +#ifndef SIGINFO + signalNameToNumberMap->add(signalNames[29], 255); +#endif + signalNameToNumberMap->add(signalNames[30], SIGSYS); + }); + + static std::once_flag signalNumberToNameMapOnceFlag; + std::call_once(signalNumberToNameMapOnceFlag, [] { + signalNumberToNameMap = new HashMap(); + signalNumberToNameMap->reserveInitialCapacity(31); + signalNumberToNameMap->add(SIGHUP, signalNames[0]); + signalNumberToNameMap->add(SIGINT, signalNames[1]); + signalNumberToNameMap->add(SIGQUIT, signalNames[2]); + signalNumberToNameMap->add(SIGILL, signalNames[3]); + signalNumberToNameMap->add(SIGTRAP, signalNames[4]); + signalNumberToNameMap->add(SIGABRT, signalNames[5]); + signalNumberToNameMap->add(SIGIOT, signalNames[6]); + signalNumberToNameMap->add(SIGBUS, signalNames[7]); + signalNumberToNameMap->add(SIGFPE, signalNames[8]); + // signalNumberToNameMap->add(SIGKILL, signalNames[9]); + signalNumberToNameMap->add(SIGUSR1, signalNames[10]); + signalNumberToNameMap->add(SIGSEGV, signalNames[11]); + signalNumberToNameMap->add(SIGUSR2, signalNames[12]); + signalNumberToNameMap->add(SIGPIPE, signalNames[13]); + signalNumberToNameMap->add(SIGALRM, signalNames[14]); + signalNumberToNameMap->add(SIGTERM, signalNames[15]); + signalNumberToNameMap->add(SIGCHLD, signalNames[16]); + signalNumberToNameMap->add(SIGCONT, signalNames[17]); + // signalNumberToNameMap->add(SIGSTOP, signalNames[18]); + signalNumberToNameMap->add(SIGTSTP, signalNames[19]); + signalNumberToNameMap->add(SIGTTIN, signalNames[20]); + signalNumberToNameMap->add(SIGTTOU, signalNames[21]); + signalNumberToNameMap->add(SIGURG, signalNames[22]); + signalNumberToNameMap->add(SIGXCPU, signalNames[23]); + signalNumberToNameMap->add(SIGXFSZ, signalNames[24]); + signalNumberToNameMap->add(SIGVTALRM, signalNames[25]); + signalNumberToNameMap->add(SIGPROF, signalNames[26]); + signalNumberToNameMap->add(SIGWINCH, signalNames[27]); + signalNumberToNameMap->add(SIGIO, signalNames[28]); +#ifdef SIGINFO + signalNameToNumberMap->add(signalNames[29], SIGINFO); +#endif + signalNumberToNameMap->add(SIGSYS, signalNames[30]); + }); + + if (!signalToContextIdsMap) { + signalToContextIdsMap = new HashMap>(); + } + + if (isAdded) { + if (auto signalNumber = signalNameToNumberMap->get(eventName.string())) { + uint32_t contextId = eventEmitter.scriptExecutionContext()->identifier(); + Locker lock { signalToContextIdsMapLock }; + if (!signalToContextIdsMap->contains(signalNumber)) { + HashSet contextIds; + contextIds.add(contextId); + signalToContextIdsMap->set(signalNumber, contextIds); + + lock.unlockEarly(); + + struct sigaction action; + memset(&action, 0, sizeof(struct sigaction)); + + // Set the handler in the action struct + action.sa_handler = [](int signalNumber) { + if (UNLIKELY(signalNumberToNameMap->find(signalNumber) == signalNumberToNameMap->end())) + return; + + Locker lock { signalToContextIdsMapLock }; + if (UNLIKELY(signalToContextIdsMap->find(signalNumber) == signalToContextIdsMap->end())) + return; + auto contextIds = signalToContextIdsMap->get(signalNumber); + + for (int contextId : contextIds) { + auto* context = ScriptExecutionContext::getScriptExecutionContext(contextId); + if (UNLIKELY(!context)) + continue; + + JSGlobalObject* lexicalGlobalObject = context->jsGlobalObject(); + Zig::GlobalObject* globalObject = static_cast(lexicalGlobalObject); + + Process* process = jsCast(globalObject->processObject()); + + context->postCrossThreadTask(*process, &Process::emitSignalEvent, signalNumber); + } + }; + + // Clear the sa_mask + sigemptyset(&action.sa_mask); + sigaddset(&action.sa_mask, signalNumber); + action.sa_flags = SA_RESTART; + + sigaction(signalNumber, &action, nullptr); + } else { + auto contextIds = signalToContextIdsMap->get(signalNumber); + contextIds.add(contextId); + signalToContextIdsMap->set(signalNumber, contextIds); + } + } + } else { + if (auto signalNumber = signalNameToNumberMap->get(eventName.string())) { + uint32_t contextId = eventEmitter.scriptExecutionContext()->identifier(); + Locker lock { signalToContextIdsMapLock }; + if (signalToContextIdsMap->find(signalNumber) != signalToContextIdsMap->end()) { + HashSet contextIds = signalToContextIdsMap->get(signalNumber); + contextIds.remove(contextId); + if (contextIds.isEmpty()) { + signal(signalNumber, SIG_DFL); + signalToContextIdsMap->remove(signalNumber); + } else { + signalToContextIdsMap->set(signalNumber, contextIds); + } + } + } + } +} + +void Process::emitSignalEvent(int signalNumber) +{ + String signalName = signalNumberToNameMap->get(signalNumber); + Identifier signalNameIdentifier = Identifier::fromString(vm(), signalName); + MarkedArgumentBuffer args; + args.append(jsNumber(signalNumber)); + wrapped().emitForBindings(signalNameIdentifier, args); +} Process::~Process() { - for (auto& listener : this->wrapped().eventListenerMap().entries()) { - } } JSC_DEFINE_HOST_FUNCTION(Process_functionAbort, (JSGlobalObject * globalObject, CallFrame*)) @@ -1550,6 +1674,8 @@ void Process::finishCreation(JSC::VM& vm) { Base::finishCreation(vm); + this->wrapped().onDidChangeListener = &onDidChangeListeners; + this->cpuUsageStructure.initLater([](const JSC::LazyProperty::Initializer& init) { init.set(constructCPUUsageStructure(init.vm, init.owner->globalObject())); }); diff --git a/src/bun.js/bindings/Process.h b/src/bun.js/bindings/Process.h index fbad9b1ff..0ee6f4243 100644 --- a/src/bun.js/bindings/Process.h +++ b/src/bun.js/bindings/Process.h @@ -19,6 +19,8 @@ public: { } + void emitSignalEvent(int signalNumber); + DECLARE_EXPORT_INFO; static void destroy(JSC::JSCell* cell) diff --git a/src/bun.js/bindings/ScriptExecutionContext.cpp b/src/bun.js/bindings/ScriptExecutionContext.cpp index e8cae5e33..3262bdb5d 100644 --- a/src/bun.js/bindings/ScriptExecutionContext.cpp +++ b/src/bun.js/bindings/ScriptExecutionContext.cpp @@ -20,6 +20,12 @@ static HashMap& allSc return contexts; } +ScriptExecutionContext* ScriptExecutionContext::getScriptExecutionContext(ScriptExecutionContextIdentifier identifier) +{ + Locker locker { allScriptExecutionContextsMapLock }; + return allScriptExecutionContextsMap().get(identifier); +} + template static void registerHTTPContextForWebSocket(ScriptExecutionContext* script, us_socket_context_t* ctx, us_loop_t* loop) { diff --git a/src/bun.js/bindings/ScriptExecutionContext.h b/src/bun.js/bindings/ScriptExecutionContext.h index 5f6c56a90..aed7977a5 100644 --- a/src/bun.js/bindings/ScriptExecutionContext.h +++ b/src/bun.js/bindings/ScriptExecutionContext.h @@ -96,7 +96,12 @@ public: } } - const WTF::URL& url() const { return m_url; } + static ScriptExecutionContext* getScriptExecutionContext(ScriptExecutionContextIdentifier identifier); + + const WTF::URL& url() const + { + return m_url; + } bool activeDOMObjectsAreSuspended() { return false; } bool activeDOMObjectsAreStopped() { return false; } bool isContextThread() { return true; } @@ -141,6 +146,7 @@ public: auto* task = new EventLoopTask(WTFMove(lambda)); postTaskOnTimeout(task, timeout); } + template void postCrossThreadTask(Arguments&&... arguments) { diff --git a/src/bun.js/bindings/webcore/EventEmitter.cpp b/src/bun.js/bindings/webcore/EventEmitter.cpp index 0650d624c..0e273042b 100644 --- a/src/bun.js/bindings/webcore/EventEmitter.cpp +++ b/src/bun.js/bindings/webcore/EventEmitter.cpp @@ -35,6 +35,8 @@ bool EventEmitter::addListener(const Identifier& eventType, Ref&& } eventListenersDidChange(); + if (this->onDidChangeListener) + this->onDidChangeListener(*this, eventType, true); return true; } @@ -62,6 +64,9 @@ bool EventEmitter::removeListener(const Identifier& eventType, EventListener& li if (data->eventListenerMap.remove(eventType, listener)) { eventListenersDidChange(); + + if (this->onDidChangeListener) + this->onDidChangeListener(*this, eventType, false); return true; } return false; @@ -93,6 +98,8 @@ bool EventEmitter::removeAllListeners(const Identifier& eventType) if (data->eventListenerMap.removeAll(eventType)) { eventListenersDidChange(); + if (this->onDidChangeListener) + this->onDidChangeListener(*this, eventType, false); return true; } return false; diff --git a/src/bun.js/bindings/webcore/EventEmitter.h b/src/bun.js/bindings/webcore/EventEmitter.h index b46bcff5d..8db59c188 100644 --- a/src/bun.js/bindings/webcore/EventEmitter.h +++ b/src/bun.js/bindings/webcore/EventEmitter.h @@ -67,6 +67,8 @@ public: bool hasActiveEventListeners(const Identifier& eventType) const; bool hasEventListeners(JSC::VM& vm, ASCIILiteral eventType) const; + WTF::Function onDidChangeListener = WTF::Function(nullptr); + unsigned getMaxListeners() const { return m_maxListeners; }; void setMaxListeners(unsigned count); @@ -101,7 +103,9 @@ private: EventEmitterData* eventTargetData() { return &m_eventTargetData; } EventEmitterData* eventTargetDataConcurrently() { return &m_eventTargetData; } EventEmitterData& ensureEventEmitterData() { return m_eventTargetData; } - void eventListenersDidChange() {} + void eventListenersDidChange() + { + } void innerInvokeEventListeners(const Identifier&, SimpleEventListenerVector, const MarkedArgumentBuffer& arguments); void invalidateEventListenerRegions(); diff --git a/src/bun.js/bindings/webcore/JSEventEmitter.cpp b/src/bun.js/bindings/webcore/JSEventEmitter.cpp index 231ae0db4..959cbd8d7 100644 --- a/src/bun.js/bindings/webcore/JSEventEmitter.cpp +++ b/src/bun.js/bindings/webcore/JSEventEmitter.cpp @@ -219,7 +219,7 @@ JSC_DEFINE_CUSTOM_GETTER(jsEventEmitterConstructor, (JSGlobalObject * lexicalGlo return JSValue::encode(JSEventEmitter::getConstructor(JSC::getVM(lexicalGlobalObject), prototype->globalObject())); } -static inline JSC::EncodedJSValue addListener(JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame, typename IDLOperation::ClassParameter castedThis, bool once, bool prepend) +inline JSC::EncodedJSValue JSEventEmitter::addListener(JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame, JSEventEmitter* castedThis, bool once, bool prepend) { auto& vm = JSC::getVM(lexicalGlobalObject); auto throwScope = DECLARE_THROW_SCOPE(vm); @@ -251,7 +251,7 @@ static inline JSC::EncodedJSValue addListener(JSC::JSGlobalObject* lexicalGlobal static inline JSC::EncodedJSValue jsEventEmitterPrototypeFunction_addListenerBody(JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame, typename IDLOperation::ClassParameter castedThis) { - return addListener(lexicalGlobalObject, callFrame, castedThis, false, false); + return JSEventEmitter::addListener(lexicalGlobalObject, callFrame, castedThis, false, false); } static inline JSC::EncodedJSValue jsEventEmitterPrototypeFunction_setMaxListenersBody(JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame, typename IDLOperation::ClassParameter castedThis) @@ -280,17 +280,17 @@ static inline JSC::EncodedJSValue jsEventEmitterPrototypeFunction_getMaxListener static inline JSC::EncodedJSValue jsEventEmitterPrototypeFunction_addOnceListenerBody(JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame, typename IDLOperation::ClassParameter castedThis) { - return addListener(lexicalGlobalObject, callFrame, castedThis, true, false); + return JSEventEmitter::addListener(lexicalGlobalObject, callFrame, castedThis, true, false); } static inline JSC::EncodedJSValue jsEventEmitterPrototypeFunction_prependListenerBody(JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame, typename IDLOperation::ClassParameter castedThis) { - return addListener(lexicalGlobalObject, callFrame, castedThis, false, true); + return JSEventEmitter::addListener(lexicalGlobalObject, callFrame, castedThis, false, true); } static inline JSC::EncodedJSValue jsEventEmitterPrototypeFunction_prependOnceListenerBody(JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame, typename IDLOperation::ClassParameter castedThis) { - return addListener(lexicalGlobalObject, callFrame, castedThis, true, true); + return JSEventEmitter::addListener(lexicalGlobalObject, callFrame, castedThis, true, true); } JSC_DEFINE_HOST_FUNCTION(jsEventEmitterPrototypeFunction_addListener, (JSGlobalObject * lexicalGlobalObject, CallFrame* callFrame)) @@ -324,6 +324,11 @@ JSC_DEFINE_HOST_FUNCTION(jsEventEmitterPrototypeFunction_prependOnceListener, (J } static inline JSC::EncodedJSValue jsEventEmitterPrototypeFunction_removeListenerBody(JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame, typename IDLOperation::ClassParameter castedThis) +{ + return JSEventEmitter::removeListener(lexicalGlobalObject, callFrame, castedThis); +} + +inline JSC::EncodedJSValue JSEventEmitter::removeListener(JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame, JSEventEmitter* castedThis) { auto& vm = JSC::getVM(lexicalGlobalObject); auto throwScope = DECLARE_THROW_SCOPE(vm); diff --git a/src/bun.js/bindings/webcore/JSEventEmitter.h b/src/bun.js/bindings/webcore/JSEventEmitter.h index 855241011..30d62d792 100644 --- a/src/bun.js/bindings/webcore/JSEventEmitter.h +++ b/src/bun.js/bindings/webcore/JSEventEmitter.h @@ -27,6 +27,9 @@ public: static EventEmitter* toWrapped(JSC::VM&, JSC::JSValue); static void destroy(JSC::JSCell*); + static inline JSC::EncodedJSValue addListener(JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame, JSEventEmitter* castedThis, bool once, bool prepend); + static inline JSC::EncodedJSValue removeListener(JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame, JSEventEmitter* castedThis); + DECLARE_INFO; static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype) diff --git a/test/js/node/process/call-raise.js b/test/js/node/process/call-raise.js new file mode 100644 index 000000000..898906759 --- /dev/null +++ b/test/js/node/process/call-raise.js @@ -0,0 +1,15 @@ +import { dlopen } from "bun:ffi"; + +var lazyRaise; +export function raise(signal) { + if (!lazyRaise) { + const suffix = process.platform === "darwin" ? "dylib" : "so.6"; + lazyRaise = dlopen(`libc.${suffix}`, { + raise: { + args: ["int"], + returns: "int", + }, + }).symbols.raise; + } + lazyRaise(signal); +} diff --git a/test/js/node/process/process-signal-handler.fixture.js b/test/js/node/process/process-signal-handler.fixture.js new file mode 100644 index 000000000..de5a78bda --- /dev/null +++ b/test/js/node/process/process-signal-handler.fixture.js @@ -0,0 +1,63 @@ +import os from "os"; +import { raise } from "./call-raise"; + +var counter = 0; +function done() { + counter++; + if (counter === 2) { + setTimeout(() => { + if (counter !== 2) { + console.log(counter); + console.log("FAIL"); + process.exit(1); + } + + console.log("PASS"); + process.exit(0); + }, 1); + } +} + +var counter2 = 0; +function done2() { + counter2++; + if (counter2 === 2) { + setTimeout(() => { + if (counter2 !== 2) { + console.log(counter2); + console.log("FAIL"); + process.exit(1); + } + + console.log("PASS"); + process.exit(0); + }, 1); + } +} + +const SIGUSR1 = os.constants.signals.SIGUSR1; +const SIGUSR2 = os.constants.signals.SIGUSR2; + +switch (process.argv.at(-1)) { + case "SIGUSR1": { + process.on("SIGUSR1", () => { + done(); + }); + process.on("SIGUSR1", () => { + done(); + }); + raise(SIGUSR1); + break; + } + case "SIGUSR2": { + process.on("SIGUSR2", () => { + done2(); + }); + process.emit("SIGUSR2"); + raise(SIGUSR2); + break; + } + default: { + throw new Error("Unknown argument: " + process.argv.at(-1)); + } +} diff --git a/test/js/node/process/process.test.js b/test/js/node/process/process.test.js index e038383de..51825b2b4 100644 --- a/test/js/node/process/process.test.js +++ b/test/js/node/process/process.test.js @@ -1,6 +1,6 @@ -import { resolveSync, spawnSync, which } from "bun"; +import { spawnSync, which } from "bun"; import { describe, expect, it } from "bun:test"; -import { existsSync, readFileSync, realpathSync } from "fs"; +import { existsSync, readFileSync } from "fs"; import { bunEnv, bunExe } from "harness"; import { basename, join, resolve } from "path"; @@ -381,6 +381,28 @@ it("process.getuid", () => { expect(typeof process.getuid()).toBe("number"); }); +describe("signal", () => { + const fixture = join(import.meta.dir, "./process-signal-handler.fixture.js"); + it("simple case works", async () => { + const child = Bun.spawn({ + cmd: [bunExe(), fixture, "SIGUSR1"], + env: bunEnv, + }); + + expect(await child.exited).toBe(0); + expect(await new Response(child.stdout).text()).toBe("PASS\n"); + }); + it("process.emit will call signal events", async () => { + const child = Bun.spawn({ + cmd: [bunExe(), fixture, "SIGUSR2"], + env: bunEnv, + }); + + expect(await child.exited).toBe(0); + expect(await new Response(child.stdout).text()).toBe("PASS\n"); + }); +}); + const undefinedStubs = [ "_debugEnd", "_debugProcess", -- cgit v1.2.3 From 2106e1d7f657a2f5fcad2c329532773bc5ce31e2 Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Tue, 11 Jul 2023 17:48:13 -0700 Subject: Tests --- test/js/node/fs/fs.test.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'test/js') diff --git a/test/js/node/fs/fs.test.ts b/test/js/node/fs/fs.test.ts index 0236010be..48aa9d3b9 100644 --- a/test/js/node/fs/fs.test.ts +++ b/test/js/node/fs/fs.test.ts @@ -159,6 +159,18 @@ it("readdirSync on import.meta.dir", () => { expect(match).toBe(true); }); +it("statSync throwIfNoEntry", () => { + expect(statSync("/tmp/404/not-found/ok", { throwIfNoEntry: false })).toBeUndefined(); + expect(lstatSync("/tmp/404/not-found/ok", { throwIfNoEntry: false })).toBeUndefined(); +}); + +it("statSync throwIfNoEntry: true", () => { + expect(() => statSync("/tmp/404/not-found/ok", { throwIfNoEntry: true })).toThrow("No such file or directory"); + expect(() => statSync("/tmp/404/not-found/ok")).toThrow("No such file or directory"); + expect(() => lstatSync("/tmp/404/not-found/ok", { throwIfNoEntry: true })).toThrow("No such file or directory"); + expect(() => lstatSync("/tmp/404/not-found/ok")).toThrow("No such file or directory"); +}); + // https://github.com/oven-sh/bun/issues/1887 it("mkdtempSync, readdirSync, rmdirSync and unlinkSync with non-ascii", () => { const tempdir = mkdtempSync(`${tmpdir()}/emoji-fruit-🍇 🍈 🍉 🍊 🍋`); -- cgit v1.2.3 From c5f228048936b266ac5c2dd840e59222c2e893c3 Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Tue, 11 Jul 2023 19:06:01 -0700 Subject: Implement `process.kill` and `process._kill` --- packages/bun-types/globals.d.ts | 2 + src/bun.js/bindings/Process.cpp | 147 +++++++++++++---- src/bun.js/bindings/Process.lut.h | 77 ++++----- src/js/out/WebCoreJSBuiltins.cpp | 300 +++++++++++++++++------------------ test/js/node/process/process.test.js | 27 ++++ 5 files changed, 331 insertions(+), 222 deletions(-) (limited to 'test/js') diff --git a/packages/bun-types/globals.d.ts b/packages/bun-types/globals.d.ts index f3f941488..9e9b5138d 100644 --- a/packages/bun-types/globals.d.ts +++ b/packages/bun-types/globals.d.ts @@ -433,6 +433,8 @@ interface Process { * Does nothing in Bun */ setSourceMapsEnabled(enabled: boolean): void; + + kill(pid: number, signal?: string | number): void; } interface MemoryUsageObject { diff --git a/src/bun.js/bindings/Process.cpp b/src/bun.js/bindings/Process.cpp index f9fb85b95..745be0e47 100644 --- a/src/bun.js/bindings/Process.cpp +++ b/src/bun.js/bindings/Process.cpp @@ -444,43 +444,43 @@ static HashMap* signalNumberToNameMap = nullptr; static HashMap>* signalToContextIdsMap = nullptr; static Lock signalToContextIdsMapLock; -static void onDidChangeListeners(EventEmitter& eventEmitter, const Identifier& eventName, bool isAdded) +static const NeverDestroyed signalNames[] = { + MAKE_STATIC_STRING_IMPL("SIGHUP"), + MAKE_STATIC_STRING_IMPL("SIGINT"), + MAKE_STATIC_STRING_IMPL("SIGQUIT"), + MAKE_STATIC_STRING_IMPL("SIGILL"), + MAKE_STATIC_STRING_IMPL("SIGTRAP"), + MAKE_STATIC_STRING_IMPL("SIGABRT"), + MAKE_STATIC_STRING_IMPL("SIGIOT"), + MAKE_STATIC_STRING_IMPL("SIGBUS"), + MAKE_STATIC_STRING_IMPL("SIGFPE"), + MAKE_STATIC_STRING_IMPL("SIGKILL"), + MAKE_STATIC_STRING_IMPL("SIGUSR1"), + MAKE_STATIC_STRING_IMPL("SIGSEGV"), + MAKE_STATIC_STRING_IMPL("SIGUSR2"), + MAKE_STATIC_STRING_IMPL("SIGPIPE"), + MAKE_STATIC_STRING_IMPL("SIGALRM"), + MAKE_STATIC_STRING_IMPL("SIGTERM"), + MAKE_STATIC_STRING_IMPL("SIGCHLD"), + MAKE_STATIC_STRING_IMPL("SIGCONT"), + MAKE_STATIC_STRING_IMPL("SIGSTOP"), + MAKE_STATIC_STRING_IMPL("SIGTSTP"), + MAKE_STATIC_STRING_IMPL("SIGTTIN"), + MAKE_STATIC_STRING_IMPL("SIGTTOU"), + MAKE_STATIC_STRING_IMPL("SIGURG"), + MAKE_STATIC_STRING_IMPL("SIGXCPU"), + MAKE_STATIC_STRING_IMPL("SIGXFSZ"), + MAKE_STATIC_STRING_IMPL("SIGVTALRM"), + MAKE_STATIC_STRING_IMPL("SIGPROF"), + MAKE_STATIC_STRING_IMPL("SIGWINCH"), + MAKE_STATIC_STRING_IMPL("SIGIO"), + MAKE_STATIC_STRING_IMPL("SIGINFO"), + MAKE_STATIC_STRING_IMPL("SIGSYS"), +}; + +static void loadSignalNumberMap() { - static const NeverDestroyed signalNames[] = { - MAKE_STATIC_STRING_IMPL("SIGHUP"), - MAKE_STATIC_STRING_IMPL("SIGINT"), - MAKE_STATIC_STRING_IMPL("SIGQUIT"), - MAKE_STATIC_STRING_IMPL("SIGILL"), - MAKE_STATIC_STRING_IMPL("SIGTRAP"), - MAKE_STATIC_STRING_IMPL("SIGABRT"), - MAKE_STATIC_STRING_IMPL("SIGIOT"), - MAKE_STATIC_STRING_IMPL("SIGBUS"), - MAKE_STATIC_STRING_IMPL("SIGFPE"), - MAKE_STATIC_STRING_IMPL("SIGKILL"), - MAKE_STATIC_STRING_IMPL("SIGUSR1"), - MAKE_STATIC_STRING_IMPL("SIGSEGV"), - MAKE_STATIC_STRING_IMPL("SIGUSR2"), - MAKE_STATIC_STRING_IMPL("SIGPIPE"), - MAKE_STATIC_STRING_IMPL("SIGALRM"), - MAKE_STATIC_STRING_IMPL("SIGTERM"), - MAKE_STATIC_STRING_IMPL("SIGCHLD"), - MAKE_STATIC_STRING_IMPL("SIGCONT"), - MAKE_STATIC_STRING_IMPL("SIGSTOP"), - MAKE_STATIC_STRING_IMPL("SIGTSTP"), - MAKE_STATIC_STRING_IMPL("SIGTTIN"), - MAKE_STATIC_STRING_IMPL("SIGTTOU"), - MAKE_STATIC_STRING_IMPL("SIGURG"), - MAKE_STATIC_STRING_IMPL("SIGXCPU"), - MAKE_STATIC_STRING_IMPL("SIGXFSZ"), - MAKE_STATIC_STRING_IMPL("SIGVTALRM"), - MAKE_STATIC_STRING_IMPL("SIGPROF"), - MAKE_STATIC_STRING_IMPL("SIGWINCH"), - MAKE_STATIC_STRING_IMPL("SIGIO"), - MAKE_STATIC_STRING_IMPL("SIGINFO"), - MAKE_STATIC_STRING_IMPL("SIGSYS"), - }; - static std::once_flag signalNameToNumberMapOnceFlag; std::call_once(signalNameToNumberMapOnceFlag, [] { signalNameToNumberMap = new HashMap(); @@ -523,6 +523,11 @@ static void onDidChangeListeners(EventEmitter& eventEmitter, const Identifier& e #endif signalNameToNumberMap->add(signalNames[30], SIGSYS); }); +} + +static void onDidChangeListeners(EventEmitter& eventEmitter, const Identifier& eventName, bool isAdded) +{ + loadSignalNumberMap(); static std::once_flag signalNumberToNameMapOnceFlag; std::call_once(signalNumberToNameMapOnceFlag, [] { @@ -1601,6 +1606,76 @@ JSC_DEFINE_HOST_FUNCTION(Process_functionCwd, return JSC::JSValue::encode(result); } +JSC_DEFINE_HOST_FUNCTION(Process_functionReallyKill, + (JSC::JSGlobalObject * globalObject, JSC::CallFrame* callFrame)) +{ + auto scope = DECLARE_THROW_SCOPE(globalObject->vm()); + + int pid = callFrame->argument(0).toInt32(globalObject); + RETURN_IF_EXCEPTION(scope, {}); + + int signal = callFrame->argument(1).toInt32(globalObject); + RETURN_IF_EXCEPTION(scope, {}); + + int result = kill(pid, signal); + if (result == -1) { + SystemError error; + error.errno_ = errno; + error.syscall = Bun::toString("kill"_s); + throwException(globalObject, scope, JSValue::decode(SystemError__toErrorInstance(&error, globalObject))); + return JSValue::encode(jsUndefined()); + } + + return JSValue::encode(jsUndefined()); +} +JSC_DEFINE_HOST_FUNCTION(Process_functionKill, + (JSC::JSGlobalObject * globalObject, JSC::CallFrame* callFrame)) +{ + auto scope = DECLARE_THROW_SCOPE(globalObject->vm()); + + int pid = callFrame->argument(0).toInt32(globalObject); + RETURN_IF_EXCEPTION(scope, {}); + if (pid < 0) { + throwRangeError(globalObject, scope, "pid must be a positive integer"_s); + return JSValue::encode(jsUndefined()); + } + + JSC::JSValue signalValue = callFrame->argument(1); + + int signal = SIGTERM; + + if (signalValue.isNumber()) { + signal = signalValue.toInt32(globalObject); + RETURN_IF_EXCEPTION(scope, {}); + } else if (signalValue.isString()) { + loadSignalNumberMap(); + if (auto num = signalNameToNumberMap->get(signalValue.toWTFString(globalObject))) { + signal = num; + RETURN_IF_EXCEPTION(scope, {}); + } else { + throwRangeError(globalObject, scope, "Unknown signal name"_s); + return JSValue::encode(jsUndefined()); + } + + RETURN_IF_EXCEPTION(scope, {}); + } else if (!signalValue.isUndefinedOrNull()) { + throwTypeError(globalObject, scope, "signal must be a string or number"_s); + return JSValue::encode(jsUndefined()); + } + + int result = kill(pid, signal); + + if (result == -1) { + SystemError error; + error.errno_ = errno; + error.syscall = Bun::toString("kill"_s); + throwException(globalObject, scope, JSValue::decode(SystemError__toErrorInstance(&error, globalObject))); + return JSValue::encode(jsUndefined()); + } + + return JSValue::encode(jsUndefined()); +} + /* Source for Process.lut.h @begin processObjectTable abort Process_functionAbort Function 1 @@ -1632,6 +1707,7 @@ JSC_DEFINE_HOST_FUNCTION(Process_functionCwd, getuid Process_functiongetuid Function 0 hrtime constructProcessHrtimeObject PropertyCallback isBun constructIsBun PropertyCallback + kill Process_functionKill Function 2 mainModule JSBuiltin ReadOnly|Builtin|Accessor|Function 0 memoryUsage constructMemoryUsage PropertyCallback moduleLoadList Process_stubEmptyArray PropertyCallback @@ -1663,6 +1739,7 @@ JSC_DEFINE_HOST_FUNCTION(Process_functionCwd, _startProfilerIdleNotifier Process_stubEmptyFunction Function 0 _stopProfilerIdleNotifier Process_stubEmptyFunction Function 0 _tickCallback Process_stubEmptyFunction Function 0 + _kill Process_functionReallyKill Function 2 @end */ diff --git a/src/bun.js/bindings/Process.lut.h b/src/bun.js/bindings/Process.lut.h index 81eb1b7b9..81cf98c7d 100644 --- a/src/bun.js/bindings/Process.lut.h +++ b/src/bun.js/bindings/Process.lut.h @@ -1,6 +1,6 @@ // File generated via `make generate-builtins` -static const struct CompactHashIndex processObjectTableIndex[142] = { - { 43, -1 }, +static const struct CompactHashIndex processObjectTableIndex[143] = { + { 44, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, @@ -14,9 +14,9 @@ static const struct CompactHashIndex processObjectTableIndex[142] = { { 15, 129 }, { -1, -1 }, { -1, -1 }, - { 18, 138 }, + { 18, 139 }, { -1, -1 }, - { 45, -1 }, + { 46, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, @@ -33,37 +33,37 @@ static const struct CompactHashIndex processObjectTableIndex[142] = { { -1, -1 }, { -1, -1 }, { -1, -1 }, - { 3, 141 }, + { 3, 142 }, { 1, 128 }, { -1, -1 }, - { 59, -1 }, + { 60, -1 }, { -1, -1 }, { 10, -1 }, { -1, -1 }, { -1, -1 }, - { 31, -1 }, + { 32, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, - { 52, -1 }, + { 53, -1 }, { 27, -1 }, { 12, -1 }, { -1, -1 }, { 19, -1 }, { -1, -1 }, - { 14, 137 }, + { 14, 138 }, { -1, -1 }, - { 36, -1 }, + { 37, -1 }, { -1, -1 }, - { 38, -1 }, - { 55, -1 }, - { 35, -1 }, - { 6, 139 }, + { 39, -1 }, + { 56, -1 }, + { 36, -1 }, + { 6, 140 }, { -1, -1 }, - { 51, -1 }, + { 52, -1 }, { 4, -1 }, - { 47, -1 }, + { 48, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, @@ -75,25 +75,25 @@ static const struct CompactHashIndex processObjectTableIndex[142] = { { -1, -1 }, { -1, -1 }, { -1, -1 }, - { 40, -1 }, + { 41, -1 }, { -1, -1 }, - { 37, -1 }, + { 29, 133 }, { -1, -1 }, { 0, -1 }, - { 26, 135 }, + { 26, 136 }, { 16, 130 }, - { 39, -1 }, + { 40, -1 }, { -1, -1 }, { 23, -1 }, { 11, -1 }, { -1, -1 }, { -1, -1 }, - { 58, -1 }, + { 59, -1 }, { -1, -1 }, { -1, -1 }, - { 30, 136 }, + { 31, 137 }, { -1, -1 }, - { 29, -1 }, + { 30, -1 }, { 22, -1 }, { -1, -1 }, { -1, -1 }, @@ -104,8 +104,8 @@ static const struct CompactHashIndex processObjectTableIndex[142] = { { -1, -1 }, { 5, -1 }, { -1, -1 }, - { -1, -1 }, - { 48, -1 }, + { 61, -1 }, + { 49, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, @@ -115,36 +115,37 @@ static const struct CompactHashIndex processObjectTableIndex[142] = { { -1, -1 }, { -1, -1 }, { 9, -1 }, - { 25, 133 }, + { 25, 134 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, - { 21, 134 }, + { 21, 135 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, - { 46, 140 }, + { 47, 141 }, { -1, -1 }, { 17, -1 }, { 8, -1 }, { 28, -1 }, - { 32, 132 }, - { 33, -1 }, + { 33, 132 }, { 34, -1 }, - { 41, -1 }, + { 35, -1 }, + { 38, -1 }, { 42, -1 }, - { 44, -1 }, - { 49, -1 }, + { 43, -1 }, + { 45, -1 }, { 50, -1 }, - { 53, -1 }, + { 51, -1 }, { 54, -1 }, - { 56, -1 }, + { 55, -1 }, { 57, -1 }, + { 58, -1 }, }; -static const struct HashTableValue processObjectTableValues[60] = { +static const struct HashTableValue processObjectTableValues[62] = { { "abort"_s, static_cast(PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, Process_functionAbort, 1 } }, { "allowedNodeEnvironmentFlags"_s, static_cast(PropertyAttribute::PropertyCallback), NoIntrinsic, { HashTableValue::LazyPropertyType, Process_stubEmptySet } }, { "arch"_s, static_cast(PropertyAttribute::PropertyCallback), NoIntrinsic, { HashTableValue::LazyPropertyType, constructArch } }, @@ -174,6 +175,7 @@ static const struct HashTableValue processObjectTableValues[60] = { { "getuid"_s, static_cast(PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, Process_functiongetuid, 0 } }, { "hrtime"_s, static_cast(PropertyAttribute::PropertyCallback), NoIntrinsic, { HashTableValue::LazyPropertyType, constructProcessHrtimeObject } }, { "isBun"_s, static_cast(PropertyAttribute::PropertyCallback), NoIntrinsic, { HashTableValue::LazyPropertyType, constructIsBun } }, + { "kill"_s, static_cast(PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, Process_functionKill, 2 } }, { "mainModule"_s, ((static_cast(PropertyAttribute::ReadOnly|PropertyAttribute::Builtin|PropertyAttribute::Accessor|PropertyAttribute::Function)) & ~PropertyAttribute::Function) | PropertyAttribute::Builtin, NoIntrinsic, { HashTableValue::BuiltinGeneratorType, processObjectMainModuleCodeGenerator, 0 } }, { "memoryUsage"_s, static_cast(PropertyAttribute::PropertyCallback), NoIntrinsic, { HashTableValue::LazyPropertyType, constructMemoryUsage } }, { "moduleLoadList"_s, static_cast(PropertyAttribute::PropertyCallback), NoIntrinsic, { HashTableValue::LazyPropertyType, Process_stubEmptyArray } }, @@ -205,7 +207,8 @@ static const struct HashTableValue processObjectTableValues[60] = { { "_startProfilerIdleNotifier"_s, static_cast(PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, Process_stubEmptyFunction, 0 } }, { "_stopProfilerIdleNotifier"_s, static_cast(PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, Process_stubEmptyFunction, 0 } }, { "_tickCallback"_s, static_cast(PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, Process_stubEmptyFunction, 0 } }, + { "_kill"_s, static_cast(PropertyAttribute::Function), NoIntrinsic, { HashTableValue::NativeFunctionType, Process_functionReallyKill, 2 } }, }; static const struct HashTable processObjectTable = - { 60, 127, true, nullptr, processObjectTableValues, processObjectTableIndex }; + { 62, 127, true, nullptr, processObjectTableValues, processObjectTableIndex }; diff --git a/src/js/out/WebCoreJSBuiltins.cpp b/src/js/out/WebCoreJSBuiltins.cpp index fb3100762..f20f626d4 100644 --- a/src/js/out/WebCoreJSBuiltins.cpp +++ b/src/js/out/WebCoreJSBuiltins.cpp @@ -16,7 +16,7 @@ const JSC::ConstructorKind s_bundlerPluginRunSetupFunctionCodeConstructorKind = const JSC::ImplementationVisibility s_bundlerPluginRunSetupFunctionCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_bundlerPluginRunSetupFunctionCodeLength = 2165; static const JSC::Intrinsic s_bundlerPluginRunSetupFunctionCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_bundlerPluginRunSetupFunctionCode = "(function (_,E){\"use strict\";var w=new Map,h=new Map;function q(D,F,G){if(!D||!@isObject(D))@throwTypeError('Expected an object with \"filter\" RegExp');if(!F||!@isCallable(F))@throwTypeError(\"callback must be a function\");var{filter:H,namespace:I=\"file\"}=D;if(!H)@throwTypeError('Expected an object with \"filter\" RegExp');if(!@isRegExpObject(H))@throwTypeError(\"filter must be a RegExp\");if(I&&typeof I!==\"string\")@throwTypeError(\"namespace must be a string\");if((I\?.length\?\?0)===0)I=\"file\";if(!/^([/@a-zA-Z0-9_\\\\-]+)$/.test(I))@throwTypeError(\"namespace can only contain $a-zA-Z0-9_\\\\-\");var J=G.@get(I);if(!J)G.@set(I,[[H,F]]);else @arrayPush(J,[H,F])}function z(D,F){q(D,F,w)}function A(D,F){q(D,F,h)}const B=()=>{var D=!1,F=!1;for(var[G,H]of w.entries())for(var[I]of H)this.addFilter(I,G,1),D=!0;for(var[G,H]of h.entries())for(var[I]of H)this.addFilter(I,G,0),F=!0;if(F){var J=this.onResolve;if(!J)this.onResolve=h;else for(var[G,H]of h.entries()){var K=J.@get(G);if(!K)J.@set(G,H);else J.@set(G,K.concat(H))}}if(D){var M=this.onLoad;if(!M)this.onLoad=w;else for(var[G,H]of w.entries()){var K=M.@get(G);if(!K)M.@set(G,H);else M.@set(G,K.concat(H))}}return D||F};var C=_({config:E,onDispose:()=>@throwTypeError(`@{@2} is not implemented yet. See https://github.com/oven-sh/bun/issues/@1`),onEnd:()=>@throwTypeError(`@{@2} is not implemented yet. See https://github.com/oven-sh/bun/issues/@1`),onLoad:z,onResolve:A,onStart:()=>@throwTypeError(`@{@2} is not implemented yet. See https://github.com/oven-sh/bun/issues/@1`),resolve:()=>@throwTypeError(`@{@2} is not implemented yet. See https://github.com/oven-sh/bun/issues/@1`),initialOptions:{...E,bundle:!0,entryPoints:E.entrypoints\?\?E.entryPoints\?\?[],minify:typeof E.minify===\"boolean\"\?E.minify:!1,minifyIdentifiers:E.minify===!0||E.minify\?.identifiers,minifyWhitespace:E.minify===!0||E.minify\?.whitespace,minifySyntax:E.minify===!0||E.minify\?.syntax,outbase:E.root,platform:E.target===\"bun\"\?\"node\":E.target},esbuild:{}});if(C&&@isPromise(C))if(@getPromiseInternalField(C,@promiseFieldFlags)&@promiseStateFulfilled)C=@getPromiseInternalField(C,@promiseFieldReactionsOrResult);else return C.@then(B);return B()})\n"; +const char* const s_bundlerPluginRunSetupFunctionCode = "(function (J,_){\"use strict\";var D=new Map,F=new Map;function H(q,h,E){if(!q||!@isObject(q))@throwTypeError('Expected an object with \"filter\" RegExp');if(!h||!@isCallable(h))@throwTypeError(\"callback must be a function\");var{filter:w,namespace:z=\"file\"}=q;if(!w)@throwTypeError('Expected an object with \"filter\" RegExp');if(!@isRegExpObject(w))@throwTypeError(\"filter must be a RegExp\");if(z&&typeof z!==\"string\")@throwTypeError(\"namespace must be a string\");if((z\?.length\?\?0)===0)z=\"file\";if(!/^([/@a-zA-Z0-9_\\\\-]+)$/.test(z))@throwTypeError(\"namespace can only contain $a-zA-Z0-9_\\\\-\");var A=E.@get(z);if(!A)E.@set(z,[[w,h]]);else @arrayPush(A,[w,h])}function K(q,h){H(q,h,D)}function M(q,h){H(q,h,F)}const I=()=>{var q=!1,h=!1;for(var[E,w]of D.entries())for(var[z]of w)this.addFilter(z,E,1),q=!0;for(var[E,w]of F.entries())for(var[z]of w)this.addFilter(z,E,0),h=!0;if(h){var A=this.onResolve;if(!A)this.onResolve=F;else for(var[E,w]of F.entries()){var C=A.@get(E);if(!C)A.@set(E,w);else A.@set(E,C.concat(w))}}if(q){var G=this.onLoad;if(!G)this.onLoad=D;else for(var[E,w]of D.entries()){var C=G.@get(E);if(!C)G.@set(E,w);else G.@set(E,C.concat(w))}}return q||h};var B=J({config:_,onDispose:()=>@throwTypeError(`@{@2} is not implemented yet. See https://github.com/oven-sh/bun/issues/@1`),onEnd:()=>@throwTypeError(`@{@2} is not implemented yet. See https://github.com/oven-sh/bun/issues/@1`),onLoad:K,onResolve:M,onStart:()=>@throwTypeError(`@{@2} is not implemented yet. See https://github.com/oven-sh/bun/issues/@1`),resolve:()=>@throwTypeError(`@{@2} is not implemented yet. See https://github.com/oven-sh/bun/issues/@1`),initialOptions:{..._,bundle:!0,entryPoints:_.entrypoints\?\?_.entryPoints\?\?[],minify:typeof _.minify===\"boolean\"\?_.minify:!1,minifyIdentifiers:_.minify===!0||_.minify\?.identifiers,minifyWhitespace:_.minify===!0||_.minify\?.whitespace,minifySyntax:_.minify===!0||_.minify\?.syntax,outbase:_.root,platform:_.target===\"bun\"\?\"node\":_.target},esbuild:{}});if(B&&@isPromise(B))if(@getPromiseInternalField(B,@promiseFieldFlags)&@promiseStateFulfilled)B=@getPromiseInternalField(B,@promiseFieldReactionsOrResult);else return B.@then(I);return I()})\n"; // runOnResolvePlugins const JSC::ConstructAbility s_bundlerPluginRunOnResolvePluginsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -24,7 +24,7 @@ const JSC::ConstructorKind s_bundlerPluginRunOnResolvePluginsCodeConstructorKind const JSC::ImplementationVisibility s_bundlerPluginRunOnResolvePluginsCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_bundlerPluginRunOnResolvePluginsCodeLength = 1711; static const JSC::Intrinsic s_bundlerPluginRunOnResolvePluginsCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_bundlerPluginRunOnResolvePluginsCode = "(function (_,w,g,y,b){\"use strict\";const j=[\"entry-point\",\"import-statement\",\"require-call\",\"dynamic-import\",\"require-resolve\",\"import-rule\",\"url-token\",\"internal\"][b];var q=(async(z,A,B,C)=>{var{onResolve:E,onLoad:F}=this,G=E.@get(A);if(!G)return this.onResolveAsync(y,null,null,null),null;for(let[O,Q]of G)if(O.test(z)){var H=Q({path:z,importer:B,namespace:A,kind:C});while(H&&@isPromise(H)&&(@getPromiseInternalField(H,@promiseFieldFlags)&@promiseStateMask)===@promiseStateFulfilled)H=@getPromiseInternalField(H,@promiseFieldReactionsOrResult);if(H&&@isPromise(H))H=await H;if(!H||!@isObject(H))continue;var{path:J,namespace:K=A,external:M}=H;if(typeof J!==\"string\"||typeof K!==\"string\")@throwTypeError(\"onResolve plugins must return an object with a string 'path' and string 'loader' field\");if(!J)continue;if(!K)K=A;if(typeof M!==\"boolean\"&&!@isUndefinedOrNull(M))@throwTypeError('onResolve plugins \"external\" field must be boolean or unspecified');if(!M){if(K===\"file\"){if(darwin!==\"win32\"){if(J[0]!==\"/\"||J.includes(\"..\"))@throwTypeError('onResolve plugin \"path\" must be absolute when the namespace is \"file\"')}}if(K===\"dataurl\"){if(!J.startsWith(\"data:\"))@throwTypeError('onResolve plugin \"path\" must start with \"data:\" when the namespace is \"dataurl\"')}if(K&&K!==\"file\"&&(!F||!F.@has(K)))@throwTypeError(`Expected onLoad plugin for namespace ${K} to exist`)}return this.onResolveAsync(y,J,K,M),null}return this.onResolveAsync(y,null,null,null),null})(_,w,g,j);while(q&&@isPromise(q)&&(@getPromiseInternalField(q,@promiseFieldFlags)&@promiseStateMask)===@promiseStateFulfilled)q=@getPromiseInternalField(q,@promiseFieldReactionsOrResult);if(q&&@isPromise(q))q.then(()=>{},(z)=>{this.addError(y,z,0)})})\n"; +const char* const s_bundlerPluginRunOnResolvePluginsCode = "(function (C,E,F,b,G){\"use strict\";const H=[\"entry-point\",\"import-statement\",\"require-call\",\"dynamic-import\",\"require-resolve\",\"import-rule\",\"url-token\",\"internal\"][G];var g=(async(j,q,J,K)=>{var{onResolve:M,onLoad:A}=this,B=M.@get(q);if(!B)return this.onResolveAsync(b,null,null,null),null;for(let[O,Q]of B)if(O.test(j)){var _=Q({path:j,importer:J,namespace:q,kind:K});while(_&&@isPromise(_)&&(@getPromiseInternalField(_,@promiseFieldFlags)&@promiseStateMask)===@promiseStateFulfilled)_=@getPromiseInternalField(_,@promiseFieldReactionsOrResult);if(_&&@isPromise(_))_=await _;if(!_||!@isObject(_))continue;var{path:y,namespace:w=q,external:z}=_;if(typeof y!==\"string\"||typeof w!==\"string\")@throwTypeError(\"onResolve plugins must return an object with a string 'path' and string 'loader' field\");if(!y)continue;if(!w)w=q;if(typeof z!==\"boolean\"&&!@isUndefinedOrNull(z))@throwTypeError('onResolve plugins \"external\" field must be boolean or unspecified');if(!z){if(w===\"file\"){if(darwin!==\"win32\"){if(y[0]!==\"/\"||y.includes(\"..\"))@throwTypeError('onResolve plugin \"path\" must be absolute when the namespace is \"file\"')}}if(w===\"dataurl\"){if(!y.startsWith(\"data:\"))@throwTypeError('onResolve plugin \"path\" must start with \"data:\" when the namespace is \"dataurl\"')}if(w&&w!==\"file\"&&(!A||!A.@has(w)))@throwTypeError(`Expected onLoad plugin for namespace ${w} to exist`)}return this.onResolveAsync(b,y,w,z),null}return this.onResolveAsync(b,null,null,null),null})(C,E,F,H);while(g&&@isPromise(g)&&(@getPromiseInternalField(g,@promiseFieldFlags)&@promiseStateMask)===@promiseStateFulfilled)g=@getPromiseInternalField(g,@promiseFieldReactionsOrResult);if(g&&@isPromise(g))g.then(()=>{},(j)=>{this.addError(b,j,0)})})\n"; // runOnLoadPlugins const JSC::ConstructAbility s_bundlerPluginRunOnLoadPluginsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -32,7 +32,7 @@ const JSC::ConstructorKind s_bundlerPluginRunOnLoadPluginsCodeConstructorKind = const JSC::ImplementationVisibility s_bundlerPluginRunOnLoadPluginsCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_bundlerPluginRunOnLoadPluginsCodeLength = 1325; static const JSC::Intrinsic s_bundlerPluginRunOnLoadPluginsCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_bundlerPluginRunOnLoadPluginsCode = "(function (b,g,j,q){\"use strict\";const v={jsx:0,js:1,ts:2,tsx:3,css:4,file:5,json:6,toml:7,wasm:8,napi:9,base64:10,dataurl:11,text:12},w=[\"jsx\",\"js\",\"ts\",\"tsx\",\"css\",\"file\",\"json\",\"toml\",\"wasm\",\"napi\",\"base64\",\"dataurl\",\"text\"][q];var x=(async(y,z,B,C)=>{var F=this.onLoad.@get(B);if(!F)return this.onLoadAsync(y,null,null),null;for(let[K,Q]of F)if(K.test(z)){var G=Q({path:z,namespace:B,loader:C});while(G&&@isPromise(G)&&(@getPromiseInternalField(G,@promiseFieldFlags)&@promiseStateMask)===@promiseStateFulfilled)G=@getPromiseInternalField(G,@promiseFieldReactionsOrResult);if(G&&@isPromise(G))G=await G;if(!G||!@isObject(G))continue;var{contents:H,loader:J=C}=G;if(typeof H!==\"string\"&&!@isTypedArrayView(H))@throwTypeError('onLoad plugins must return an object with \"contents\" as a string or Uint8Array');if(typeof J!==\"string\")@throwTypeError('onLoad plugins must return an object with \"loader\" as a string');const T=v[J];if(T===@undefined)@throwTypeError(`Loader ${J} is not supported.`);return this.onLoadAsync(y,H,T),null}return this.onLoadAsync(y,null,null),null})(b,g,j,w);while(x&&@isPromise(x)&&(@getPromiseInternalField(x,@promiseFieldFlags)&@promiseStateMask)===@promiseStateFulfilled)x=@getPromiseInternalField(x,@promiseFieldReactionsOrResult);if(x&&@isPromise(x))x.then(()=>{},(y)=>{this.addError(b,y,1)})})\n"; +const char* const s_bundlerPluginRunOnLoadPluginsCode = "(function (w,F,G,H){\"use strict\";const J={jsx:0,js:1,ts:2,tsx:3,css:4,file:5,json:6,toml:7,wasm:8,napi:9,base64:10,dataurl:11,text:12},K=[\"jsx\",\"js\",\"ts\",\"tsx\",\"css\",\"file\",\"json\",\"toml\",\"wasm\",\"napi\",\"base64\",\"dataurl\",\"text\"][H];var g=(async(j,x,y,z)=>{var B=this.onLoad.@get(y);if(!B)return this.onLoadAsync(j,null,null),null;for(let[Q,T]of B)if(Q.test(x)){var b=T({path:x,namespace:y,loader:z});while(b&&@isPromise(b)&&(@getPromiseInternalField(b,@promiseFieldFlags)&@promiseStateMask)===@promiseStateFulfilled)b=@getPromiseInternalField(b,@promiseFieldReactionsOrResult);if(b&&@isPromise(b))b=await b;if(!b||!@isObject(b))continue;var{contents:q,loader:v=z}=b;if(typeof q!==\"string\"&&!@isTypedArrayView(q))@throwTypeError('onLoad plugins must return an object with \"contents\" as a string or Uint8Array');if(typeof v!==\"string\")@throwTypeError('onLoad plugins must return an object with \"loader\" as a string');const C=J[v];if(C===@undefined)@throwTypeError(`Loader ${v} is not supported.`);return this.onLoadAsync(j,q,C),null}return this.onLoadAsync(j,null,null),null})(w,F,G,K);while(g&&@isPromise(g)&&(@getPromiseInternalField(g,@promiseFieldFlags)&@promiseStateMask)===@promiseStateFulfilled)g=@getPromiseInternalField(g,@promiseFieldReactionsOrResult);if(g&&@isPromise(g))g.then(()=>{},(j)=>{this.addError(w,j,1)})})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ @@ -108,7 +108,7 @@ const JSC::ConstructorKind s_writableStreamInternalsCreateWritableStreamCodeCons const JSC::ImplementationVisibility s_writableStreamInternalsCreateWritableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsCreateWritableStreamCodeLength = 278; static const JSC::Intrinsic s_writableStreamInternalsCreateWritableStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsCreateWritableStreamCode = "(function (u,N,d,f,p,_){\"use strict\";@assert(typeof p===\"number\"&&!@isNaN(p)&&p>=0);const j={};@initializeWritableStreamSlots(j,{});const q=new @WritableStreamDefaultController;return @setUpWritableStreamDefaultController(j,q,u,N,d,f,p,_),@createWritableStreamFromInternal(j)})\n"; +const char* const s_writableStreamInternalsCreateWritableStreamCode = "(function (p,N,_,f,u,j){\"use strict\";@assert(typeof u===\"number\"&&!@isNaN(u)&&u>=0);const d={};@initializeWritableStreamSlots(d,{});const q=new @WritableStreamDefaultController;return @setUpWritableStreamDefaultController(d,q,p,N,_,f,u,j),@createWritableStreamFromInternal(d)})\n"; // createInternalWritableStreamFromUnderlyingSink const JSC::ConstructAbility s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -116,7 +116,7 @@ const JSC::ConstructorKind s_writableStreamInternalsCreateInternalWritableStream const JSC::ImplementationVisibility s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeLength = 920; static const JSC::Intrinsic s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCode = "(function (f,o){\"use strict\";const w={};if(f===@undefined)f={};if(o===@undefined)o={};if(!@isObject(f))@throwTypeError(\"WritableStream constructor takes an object as first argument\");if(\"type\"in f)@throwRangeError(\"Invalid type is specified\");const C=@extractSizeAlgorithm(o),E=@extractHighWaterMark(o,1),_={};if(\"start\"in f){if(_.start=f.start,typeof _.start!==\"function\")@throwTypeError(\"underlyingSink.start should be a function\")}if(\"write\"in f){if(_.write=f.write,typeof _.write!==\"function\")@throwTypeError(\"underlyingSink.write should be a function\")}if(\"close\"in f){if(_.close=f.close,typeof _.close!==\"function\")@throwTypeError(\"underlyingSink.close should be a function\")}if(\"abort\"in f){if(_.abort=f.abort,typeof _.abort!==\"function\")@throwTypeError(\"underlyingSink.abort should be a function\")}return @initializeWritableStreamSlots(w,f),@setUpWritableStreamDefaultControllerFromUnderlyingSink(w,f,_,E,C),w})\n"; +const char* const s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCode = "(function (f,w){\"use strict\";const C={};if(f===@undefined)f={};if(w===@undefined)w={};if(!@isObject(f))@throwTypeError(\"WritableStream constructor takes an object as first argument\");if(\"type\"in f)@throwRangeError(\"Invalid type is specified\");const E=@extractSizeAlgorithm(w),_=@extractHighWaterMark(w,1),o={};if(\"start\"in f){if(o.start=f.start,typeof o.start!==\"function\")@throwTypeError(\"underlyingSink.start should be a function\")}if(\"write\"in f){if(o.write=f.write,typeof o.write!==\"function\")@throwTypeError(\"underlyingSink.write should be a function\")}if(\"close\"in f){if(o.close=f.close,typeof o.close!==\"function\")@throwTypeError(\"underlyingSink.close should be a function\")}if(\"abort\"in f){if(o.abort=f.abort,typeof o.abort!==\"function\")@throwTypeError(\"underlyingSink.abort should be a function\")}return @initializeWritableStreamSlots(C,f),@setUpWritableStreamDefaultControllerFromUnderlyingSink(C,f,o,_,E),C})\n"; // initializeWritableStreamSlots const JSC::ConstructAbility s_writableStreamInternalsInitializeWritableStreamSlotsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -156,7 +156,7 @@ const JSC::ConstructorKind s_writableStreamInternalsSetUpWritableStreamDefaultWr const JSC::ImplementationVisibility s_writableStreamInternalsSetUpWritableStreamDefaultWriterCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsSetUpWritableStreamDefaultWriterCodeLength = 887; static const JSC::Intrinsic s_writableStreamInternalsSetUpWritableStreamDefaultWriterCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsSetUpWritableStreamDefaultWriterCode = "(function (n,v){\"use strict\";if(@isWritableStreamLocked(v))@throwTypeError(\"WritableStream is locked\");@putByIdDirectPrivate(n,\"stream\",v),@putByIdDirectPrivate(v,\"writer\",n);const g=@newPromiseCapability(@Promise),h=@newPromiseCapability(@Promise);@putByIdDirectPrivate(n,\"readyPromise\",g),@putByIdDirectPrivate(n,\"closedPromise\",h);const B=@getByIdDirectPrivate(v,\"state\");if(B===\"writable\"){if(@writableStreamCloseQueuedOrInFlight(v)||!@getByIdDirectPrivate(v,\"backpressure\"))g.@resolve.@call()}else if(B===\"erroring\")g.@reject.@call(@undefined,@getByIdDirectPrivate(v,\"storedError\")),@markPromiseAsHandled(g.@promise);else if(B===\"closed\")g.@resolve.@call(),h.@resolve.@call();else{@assert(B===\"errored\");const _=@getByIdDirectPrivate(v,\"storedError\");g.@reject.@call(@undefined,_),@markPromiseAsHandled(g.@promise),h.@reject.@call(@undefined,_),@markPromiseAsHandled(h.@promise)}})\n"; +const char* const s_writableStreamInternalsSetUpWritableStreamDefaultWriterCode = "(function (g,n){\"use strict\";if(@isWritableStreamLocked(n))@throwTypeError(\"WritableStream is locked\");@putByIdDirectPrivate(g,\"stream\",n),@putByIdDirectPrivate(n,\"writer\",g);const v=@newPromiseCapability(@Promise),h=@newPromiseCapability(@Promise);@putByIdDirectPrivate(g,\"readyPromise\",v),@putByIdDirectPrivate(g,\"closedPromise\",h);const B=@getByIdDirectPrivate(n,\"state\");if(B===\"writable\"){if(@writableStreamCloseQueuedOrInFlight(n)||!@getByIdDirectPrivate(n,\"backpressure\"))v.@resolve.@call()}else if(B===\"erroring\")v.@reject.@call(@undefined,@getByIdDirectPrivate(n,\"storedError\")),@markPromiseAsHandled(v.@promise);else if(B===\"closed\")v.@resolve.@call(),h.@resolve.@call();else{@assert(B===\"errored\");const _=@getByIdDirectPrivate(n,\"storedError\");v.@reject.@call(@undefined,_),@markPromiseAsHandled(v.@promise),h.@reject.@call(@undefined,_),@markPromiseAsHandled(h.@promise)}})\n"; // writableStreamAbort const JSC::ConstructAbility s_writableStreamInternalsWritableStreamAbortCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -164,7 +164,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamAbortCodeConst const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamAbortCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamAbortCodeLength = 501; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamAbortCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamAbortCode = "(function (c,h){\"use strict\";const B=@getByIdDirectPrivate(c,\"state\");if(B===\"closed\"||B===\"errored\")return @Promise.@resolve();const f=@getByIdDirectPrivate(c,\"pendingAbortRequest\");if(f!==@undefined)return f.promise.@promise;@assert(B===\"writable\"||B===\"erroring\");let _=!1;if(B===\"erroring\")_=!0,h=@undefined;const j=@newPromiseCapability(@Promise);if(@putByIdDirectPrivate(c,\"pendingAbortRequest\",{promise:j,reason:h,wasAlreadyErroring:_}),!_)@writableStreamStartErroring(c,h);return j.@promise})\n"; +const char* const s_writableStreamInternalsWritableStreamAbortCode = "(function (h,B){\"use strict\";const c=@getByIdDirectPrivate(h,\"state\");if(c===\"closed\"||c===\"errored\")return @Promise.@resolve();const f=@getByIdDirectPrivate(h,\"pendingAbortRequest\");if(f!==@undefined)return f.promise.@promise;@assert(c===\"writable\"||c===\"erroring\");let _=!1;if(c===\"erroring\")_=!0,B=@undefined;const j=@newPromiseCapability(@Promise);if(@putByIdDirectPrivate(h,\"pendingAbortRequest\",{promise:j,reason:B,wasAlreadyErroring:_}),!_)@writableStreamStartErroring(h,B);return j.@promise})\n"; // writableStreamClose const JSC::ConstructAbility s_writableStreamInternalsWritableStreamCloseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -196,7 +196,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDealWithReject const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDealWithRejectionCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDealWithRejectionCodeLength = 189; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDealWithRejectionCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDealWithRejectionCode = "(function (i,n){\"use strict\";const c=@getByIdDirectPrivate(i,\"state\");if(c===\"writable\"){@writableStreamStartErroring(i,n);return}@assert(c===\"erroring\"),@writableStreamFinishErroring(i)})\n"; +const char* const s_writableStreamInternalsWritableStreamDealWithRejectionCode = "(function (i,c){\"use strict\";const n=@getByIdDirectPrivate(i,\"state\");if(n===\"writable\"){@writableStreamStartErroring(i,c);return}@assert(n===\"erroring\"),@writableStreamFinishErroring(i)})\n"; // writableStreamFinishErroring const JSC::ConstructAbility s_writableStreamInternalsWritableStreamFinishErroringCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -204,7 +204,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamFinishErroring const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamFinishErroringCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamFinishErroringCodeLength = 1058; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamFinishErroringCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamFinishErroringCode = "(function (i){\"use strict\";@assert(@getByIdDirectPrivate(i,\"state\")===\"erroring\"),@assert(!@writableStreamHasOperationMarkedInFlight(i)),@putByIdDirectPrivate(i,\"state\",\"errored\");const _=@getByIdDirectPrivate(i,\"controller\");@getByIdDirectPrivate(_,\"errorSteps\").@call();const p=@getByIdDirectPrivate(i,\"storedError\"),h=@getByIdDirectPrivate(i,\"writeRequests\");for(var A=h.shift();A;A=h.shift())A.@reject.@call(@undefined,p);@putByIdDirectPrivate(i,\"writeRequests\",@createFIFO());const B=@getByIdDirectPrivate(i,\"pendingAbortRequest\");if(B===@undefined){@writableStreamRejectCloseAndClosedPromiseIfNeeded(i);return}if(@putByIdDirectPrivate(i,\"pendingAbortRequest\",@undefined),B.wasAlreadyErroring){B.promise.@reject.@call(@undefined,p),@writableStreamRejectCloseAndClosedPromiseIfNeeded(i);return}@getByIdDirectPrivate(_,\"abortSteps\").@call(@undefined,B.reason).@then(()=>{B.promise.@resolve.@call(),@writableStreamRejectCloseAndClosedPromiseIfNeeded(i)},(I)=>{B.promise.@reject.@call(@undefined,I),@writableStreamRejectCloseAndClosedPromiseIfNeeded(i)})})\n"; +const char* const s_writableStreamInternalsWritableStreamFinishErroringCode = "(function (i){\"use strict\";@assert(@getByIdDirectPrivate(i,\"state\")===\"erroring\"),@assert(!@writableStreamHasOperationMarkedInFlight(i)),@putByIdDirectPrivate(i,\"state\",\"errored\");const h=@getByIdDirectPrivate(i,\"controller\");@getByIdDirectPrivate(h,\"errorSteps\").@call();const A=@getByIdDirectPrivate(i,\"storedError\"),B=@getByIdDirectPrivate(i,\"writeRequests\");for(var p=B.shift();p;p=B.shift())p.@reject.@call(@undefined,A);@putByIdDirectPrivate(i,\"writeRequests\",@createFIFO());const _=@getByIdDirectPrivate(i,\"pendingAbortRequest\");if(_===@undefined){@writableStreamRejectCloseAndClosedPromiseIfNeeded(i);return}if(@putByIdDirectPrivate(i,\"pendingAbortRequest\",@undefined),_.wasAlreadyErroring){_.promise.@reject.@call(@undefined,A),@writableStreamRejectCloseAndClosedPromiseIfNeeded(i);return}@getByIdDirectPrivate(h,\"abortSteps\").@call(@undefined,_.reason).@then(()=>{_.promise.@resolve.@call(),@writableStreamRejectCloseAndClosedPromiseIfNeeded(i)},(I)=>{_.promise.@reject.@call(@undefined,I),@writableStreamRejectCloseAndClosedPromiseIfNeeded(i)})})\n"; // writableStreamFinishInFlightClose const JSC::ConstructAbility s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -212,7 +212,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamFinishInFlight const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeLength = 751; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamFinishInFlightCloseCode = "(function (d){\"use strict\";@getByIdDirectPrivate(d,\"inFlightCloseRequest\").@resolve.@call(),@putByIdDirectPrivate(d,\"inFlightCloseRequest\",@undefined);const n=@getByIdDirectPrivate(d,\"state\");if(@assert(n===\"writable\"||n===\"erroring\"),n===\"erroring\"){@putByIdDirectPrivate(d,\"storedError\",@undefined);const c=@getByIdDirectPrivate(d,\"pendingAbortRequest\");if(c!==@undefined)c.promise.@resolve.@call(),@putByIdDirectPrivate(d,\"pendingAbortRequest\",@undefined)}@putByIdDirectPrivate(d,\"state\",\"closed\");const _=@getByIdDirectPrivate(d,\"writer\");if(_!==@undefined)@getByIdDirectPrivate(_,\"closedPromise\").@resolve.@call();@assert(@getByIdDirectPrivate(d,\"pendingAbortRequest\")===@undefined),@assert(@getByIdDirectPrivate(d,\"storedError\")===@undefined)})\n"; +const char* const s_writableStreamInternalsWritableStreamFinishInFlightCloseCode = "(function (d){\"use strict\";@getByIdDirectPrivate(d,\"inFlightCloseRequest\").@resolve.@call(),@putByIdDirectPrivate(d,\"inFlightCloseRequest\",@undefined);const i=@getByIdDirectPrivate(d,\"state\");if(@assert(i===\"writable\"||i===\"erroring\"),i===\"erroring\"){@putByIdDirectPrivate(d,\"storedError\",@undefined);const _=@getByIdDirectPrivate(d,\"pendingAbortRequest\");if(_!==@undefined)_.promise.@resolve.@call(),@putByIdDirectPrivate(d,\"pendingAbortRequest\",@undefined)}@putByIdDirectPrivate(d,\"state\",\"closed\");const n=@getByIdDirectPrivate(d,\"writer\");if(n!==@undefined)@getByIdDirectPrivate(n,\"closedPromise\").@resolve.@call();@assert(@getByIdDirectPrivate(d,\"pendingAbortRequest\")===@undefined),@assert(@getByIdDirectPrivate(d,\"storedError\")===@undefined)})\n"; // writableStreamFinishInFlightCloseWithError const JSC::ConstructAbility s_writableStreamInternalsWritableStreamFinishInFlightCloseWithErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -292,7 +292,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterA const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterAbortCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultWriterAbortCodeLength = 130; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterAbortCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultWriterAbortCode = "(function (c,d){\"use strict\";const f=@getByIdDirectPrivate(c,\"stream\");return @assert(f!==@undefined),@writableStreamAbort(f,d)})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultWriterAbortCode = "(function (d,f){\"use strict\";const c=@getByIdDirectPrivate(d,\"stream\");return @assert(c!==@undefined),@writableStreamAbort(c,f)})\n"; // writableStreamDefaultWriterClose const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterCloseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -300,7 +300,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterC const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterCloseCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultWriterCloseCodeLength = 126; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterCloseCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultWriterCloseCode = "(function (_){\"use strict\";const c=@getByIdDirectPrivate(_,\"stream\");return @assert(c!==@undefined),@writableStreamClose(c)})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultWriterCloseCode = "(function (c){\"use strict\";const _=@getByIdDirectPrivate(c,\"stream\");return @assert(_!==@undefined),@writableStreamClose(_)})\n"; // writableStreamDefaultWriterCloseWithErrorPropagation const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterCloseWithErrorPropagationCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -308,7 +308,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterC const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterCloseWithErrorPropagationCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultWriterCloseWithErrorPropagationCodeLength = 385; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterCloseWithErrorPropagationCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultWriterCloseWithErrorPropagationCode = "(function (c){\"use strict\";const l=@getByIdDirectPrivate(c,\"stream\");@assert(l!==@undefined);const u=@getByIdDirectPrivate(l,\"state\");if(@writableStreamCloseQueuedOrInFlight(l)||u===\"closed\")return @Promise.@resolve();if(u===\"errored\")return @Promise.@reject(@getByIdDirectPrivate(l,\"storedError\"));return @assert(u===\"writable\"||u===\"erroring\"),@writableStreamDefaultWriterClose(c)})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultWriterCloseWithErrorPropagationCode = "(function (u){\"use strict\";const c=@getByIdDirectPrivate(u,\"stream\");@assert(c!==@undefined);const l=@getByIdDirectPrivate(c,\"state\");if(@writableStreamCloseQueuedOrInFlight(c)||l===\"closed\")return @Promise.@resolve();if(l===\"errored\")return @Promise.@reject(@getByIdDirectPrivate(c,\"storedError\"));return @assert(l===\"writable\"||l===\"erroring\"),@writableStreamDefaultWriterClose(u)})\n"; // writableStreamDefaultWriterEnsureClosedPromiseRejected const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterEnsureClosedPromiseRejectedCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -316,7 +316,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterE const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterEnsureClosedPromiseRejectedCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultWriterEnsureClosedPromiseRejectedCodeLength = 329; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterEnsureClosedPromiseRejectedCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultWriterEnsureClosedPromiseRejectedCode = "(function (_,n){\"use strict\";let h=@getByIdDirectPrivate(_,\"closedPromise\"),u=h.@promise;if((@getPromiseInternalField(u,@promiseFieldFlags)&@promiseStateMask)!==@promiseStatePending)h=@newPromiseCapability(@Promise),u=h.@promise,@putByIdDirectPrivate(_,\"closedPromise\",h);h.@reject.@call(@undefined,n),@markPromiseAsHandled(u)})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultWriterEnsureClosedPromiseRejectedCode = "(function (h,u){\"use strict\";let _=@getByIdDirectPrivate(h,\"closedPromise\"),n=_.@promise;if((@getPromiseInternalField(n,@promiseFieldFlags)&@promiseStateMask)!==@promiseStatePending)_=@newPromiseCapability(@Promise),n=_.@promise,@putByIdDirectPrivate(h,\"closedPromise\",_);_.@reject.@call(@undefined,u),@markPromiseAsHandled(n)})\n"; // writableStreamDefaultWriterEnsureReadyPromiseRejected const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -324,7 +324,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterE const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCodeLength = 327; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCode = "(function (c,g){\"use strict\";let h=@getByIdDirectPrivate(c,\"readyPromise\"),n=h.@promise;if((@getPromiseInternalField(n,@promiseFieldFlags)&@promiseStateMask)!==@promiseStatePending)h=@newPromiseCapability(@Promise),n=h.@promise,@putByIdDirectPrivate(c,\"readyPromise\",h);h.@reject.@call(@undefined,g),@markPromiseAsHandled(n)})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCode = "(function (h,n){\"use strict\";let c=@getByIdDirectPrivate(h,\"readyPromise\"),g=c.@promise;if((@getPromiseInternalField(g,@promiseFieldFlags)&@promiseStateMask)!==@promiseStatePending)c=@newPromiseCapability(@Promise),g=c.@promise,@putByIdDirectPrivate(h,\"readyPromise\",c);c.@reject.@call(@undefined,n),@markPromiseAsHandled(g)})\n"; // writableStreamDefaultWriterGetDesiredSize const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterGetDesiredSizeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -332,7 +332,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterG const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterGetDesiredSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultWriterGetDesiredSizeCodeLength = 299; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterGetDesiredSizeCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultWriterGetDesiredSizeCode = "(function (c){\"use strict\";const l=@getByIdDirectPrivate(c,\"stream\");@assert(l!==@undefined);const _=@getByIdDirectPrivate(l,\"state\");if(_===\"errored\"||_===\"erroring\")return null;if(_===\"closed\")return 0;return @writableStreamDefaultControllerGetDesiredSize(@getByIdDirectPrivate(l,\"controller\"))})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultWriterGetDesiredSizeCode = "(function (_){\"use strict\";const c=@getByIdDirectPrivate(_,\"stream\");@assert(c!==@undefined);const l=@getByIdDirectPrivate(c,\"state\");if(l===\"errored\"||l===\"erroring\")return null;if(l===\"closed\")return 0;return @writableStreamDefaultControllerGetDesiredSize(@getByIdDirectPrivate(c,\"controller\"))})\n"; // writableStreamDefaultWriterRelease const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterReleaseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -340,7 +340,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterR const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterReleaseCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultWriterReleaseCodeLength = 414; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterReleaseCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultWriterReleaseCode = "(function (_){\"use strict\";const h=@getByIdDirectPrivate(_,\"stream\");@assert(h!==@undefined),@assert(@getByIdDirectPrivate(h,\"writer\")===_);const c=@makeTypeError(\"writableStreamDefaultWriterRelease\");@writableStreamDefaultWriterEnsureReadyPromiseRejected(_,c),@writableStreamDefaultWriterEnsureClosedPromiseRejected(_,c),@putByIdDirectPrivate(h,\"writer\",@undefined),@putByIdDirectPrivate(_,\"stream\",@undefined)})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultWriterReleaseCode = "(function (_){\"use strict\";const c=@getByIdDirectPrivate(_,\"stream\");@assert(c!==@undefined),@assert(@getByIdDirectPrivate(c,\"writer\")===_);const h=@makeTypeError(\"writableStreamDefaultWriterRelease\");@writableStreamDefaultWriterEnsureReadyPromiseRejected(_,h),@writableStreamDefaultWriterEnsureClosedPromiseRejected(_,h),@putByIdDirectPrivate(c,\"writer\",@undefined),@putByIdDirectPrivate(_,\"stream\",@undefined)})\n"; // writableStreamDefaultWriterWrite const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -348,7 +348,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterW const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeLength = 919; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultWriterWriteCode = "(function (d,g){\"use strict\";const P=@getByIdDirectPrivate(d,\"stream\");@assert(P!==@undefined);const W=@getByIdDirectPrivate(P,\"controller\");@assert(W!==@undefined);const _=@writableStreamDefaultControllerGetChunkSize(W,g);if(P!==@getByIdDirectPrivate(d,\"stream\"))return @Promise.@reject(@makeTypeError(\"writer is not stream's writer\"));const b=@getByIdDirectPrivate(P,\"state\");if(b===\"errored\")return @Promise.@reject(@getByIdDirectPrivate(P,\"storedError\"));if(@writableStreamCloseQueuedOrInFlight(P)||b===\"closed\")return @Promise.@reject(@makeTypeError(\"stream is closing or closed\"));if(@writableStreamCloseQueuedOrInFlight(P)||b===\"closed\")return @Promise.@reject(@makeTypeError(\"stream is closing or closed\"));if(b===\"erroring\")return @Promise.@reject(@getByIdDirectPrivate(P,\"storedError\"));@assert(b===\"writable\");const f=@writableStreamAddWriteRequest(P);return @writableStreamDefaultControllerWrite(W,g,_),f})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultWriterWriteCode = "(function (W,_){\"use strict\";const d=@getByIdDirectPrivate(W,\"stream\");@assert(d!==@undefined);const P=@getByIdDirectPrivate(d,\"controller\");@assert(P!==@undefined);const b=@writableStreamDefaultControllerGetChunkSize(P,_);if(d!==@getByIdDirectPrivate(W,\"stream\"))return @Promise.@reject(@makeTypeError(\"writer is not stream's writer\"));const g=@getByIdDirectPrivate(d,\"state\");if(g===\"errored\")return @Promise.@reject(@getByIdDirectPrivate(d,\"storedError\"));if(@writableStreamCloseQueuedOrInFlight(d)||g===\"closed\")return @Promise.@reject(@makeTypeError(\"stream is closing or closed\"));if(@writableStreamCloseQueuedOrInFlight(d)||g===\"closed\")return @Promise.@reject(@makeTypeError(\"stream is closing or closed\"));if(g===\"erroring\")return @Promise.@reject(@getByIdDirectPrivate(d,\"storedError\"));@assert(g===\"writable\");const f=@writableStreamAddWriteRequest(d);return @writableStreamDefaultControllerWrite(P,_,b),f})\n"; // setUpWritableStreamDefaultController const JSC::ConstructAbility s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -356,7 +356,7 @@ const JSC::ConstructorKind s_writableStreamInternalsSetUpWritableStreamDefaultCo const JSC::ImplementationVisibility s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeLength = 700; static const JSC::Intrinsic s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsSetUpWritableStreamDefaultControllerCode = "(function (_,B,d,v,f,P,j,U){\"use strict\";@assert(@isWritableStream(_)),@assert(@getByIdDirectPrivate(_,\"controller\")===@undefined),@putByIdDirectPrivate(B,\"stream\",_),@putByIdDirectPrivate(_,\"controller\",B),@resetQueue(@getByIdDirectPrivate(B,\"queue\")),@putByIdDirectPrivate(B,\"started\",-1),@putByIdDirectPrivate(B,\"startAlgorithm\",d),@putByIdDirectPrivate(B,\"strategySizeAlgorithm\",U),@putByIdDirectPrivate(B,\"strategyHWM\",j),@putByIdDirectPrivate(B,\"writeAlgorithm\",v),@putByIdDirectPrivate(B,\"closeAlgorithm\",f),@putByIdDirectPrivate(B,\"abortAlgorithm\",P);const q=@writableStreamDefaultControllerGetBackpressure(B);@writableStreamUpdateBackpressure(_,q),@writableStreamDefaultControllerStart(B)})\n"; +const char* const s_writableStreamInternalsSetUpWritableStreamDefaultControllerCode = "(function (B,_,v,P,U,d,f,j){\"use strict\";@assert(@isWritableStream(B)),@assert(@getByIdDirectPrivate(B,\"controller\")===@undefined),@putByIdDirectPrivate(_,\"stream\",B),@putByIdDirectPrivate(B,\"controller\",_),@resetQueue(@getByIdDirectPrivate(_,\"queue\")),@putByIdDirectPrivate(_,\"started\",-1),@putByIdDirectPrivate(_,\"startAlgorithm\",v),@putByIdDirectPrivate(_,\"strategySizeAlgorithm\",j),@putByIdDirectPrivate(_,\"strategyHWM\",f),@putByIdDirectPrivate(_,\"writeAlgorithm\",P),@putByIdDirectPrivate(_,\"closeAlgorithm\",U),@putByIdDirectPrivate(_,\"abortAlgorithm\",d);const q=@writableStreamDefaultControllerGetBackpressure(_);@writableStreamUpdateBackpressure(B,q),@writableStreamDefaultControllerStart(_)})\n"; // writableStreamDefaultControllerStart const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerStartCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -364,7 +364,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControl const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerStartCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultControllerStartCodeLength = 647; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerStartCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultControllerStartCode = "(function (i){\"use strict\";if(@getByIdDirectPrivate(i,\"started\")!==-1)return;@putByIdDirectPrivate(i,\"started\",0);const _=@getByIdDirectPrivate(i,\"startAlgorithm\");@putByIdDirectPrivate(i,\"startAlgorithm\",@undefined);const d=@getByIdDirectPrivate(i,\"stream\");return @Promise.@resolve(_.@call()).@then(()=>{const u=@getByIdDirectPrivate(d,\"state\");@assert(u===\"writable\"||u===\"erroring\"),@putByIdDirectPrivate(i,\"started\",1),@writableStreamDefaultControllerAdvanceQueueIfNeeded(i)},(u)=>{const p=@getByIdDirectPrivate(d,\"state\");@assert(p===\"writable\"||p===\"erroring\"),@putByIdDirectPrivate(i,\"started\",1),@writableStreamDealWithRejection(d,u)})})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultControllerStartCode = "(function (i){\"use strict\";if(@getByIdDirectPrivate(i,\"started\")!==-1)return;@putByIdDirectPrivate(i,\"started\",0);const p=@getByIdDirectPrivate(i,\"startAlgorithm\");@putByIdDirectPrivate(i,\"startAlgorithm\",@undefined);const d=@getByIdDirectPrivate(i,\"stream\");return @Promise.@resolve(p.@call()).@then(()=>{const _=@getByIdDirectPrivate(d,\"state\");@assert(_===\"writable\"||_===\"erroring\"),@putByIdDirectPrivate(i,\"started\",1),@writableStreamDefaultControllerAdvanceQueueIfNeeded(i)},(_)=>{const u=@getByIdDirectPrivate(d,\"state\");@assert(u===\"writable\"||u===\"erroring\"),@putByIdDirectPrivate(i,\"started\",1),@writableStreamDealWithRejection(d,_)})})\n"; // setUpWritableStreamDefaultControllerFromUnderlyingSink const JSC::ConstructAbility s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -372,7 +372,7 @@ const JSC::ConstructorKind s_writableStreamInternalsSetUpWritableStreamDefaultCo const JSC::ImplementationVisibility s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCodeLength = 561; static const JSC::Intrinsic s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCode = "(function (_,j,v,p,f){\"use strict\";const q=new @WritableStreamDefaultController;let x=()=>{},B=()=>{return @Promise.@resolve()},C=()=>{return @Promise.@resolve()},O=()=>{return @Promise.@resolve()};if(\"start\"in v){const E=v.start;x=()=>@promiseInvokeOrNoopMethodNoCatch(j,E,[q])}if(\"write\"in v){const E=v.write;B=(F)=>@promiseInvokeOrNoopMethod(j,E,[F,q])}if(\"close\"in v){const E=v.close;C=()=>@promiseInvokeOrNoopMethod(j,E,[])}if(\"abort\"in v){const E=v.abort;O=(F)=>@promiseInvokeOrNoopMethod(j,E,[F])}@setUpWritableStreamDefaultController(_,q,x,B,C,O,p,f)})\n"; +const char* const s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCode = "(function (C,O,_,E,F){\"use strict\";const f=new @WritableStreamDefaultController;let q=()=>{},v=()=>{return @Promise.@resolve()},x=()=>{return @Promise.@resolve()},B=()=>{return @Promise.@resolve()};if(\"start\"in _){const p=_.start;q=()=>@promiseInvokeOrNoopMethodNoCatch(O,p,[f])}if(\"write\"in _){const p=_.write;v=(j)=>@promiseInvokeOrNoopMethod(O,p,[j,f])}if(\"close\"in _){const p=_.close;x=()=>@promiseInvokeOrNoopMethod(O,p,[])}if(\"abort\"in _){const p=_.abort;B=(j)=>@promiseInvokeOrNoopMethod(O,p,[j])}@setUpWritableStreamDefaultController(C,f,q,v,x,B,E,F)})\n"; // writableStreamDefaultControllerAdvanceQueueIfNeeded const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerAdvanceQueueIfNeededCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -412,7 +412,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControl const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerErrorCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultControllerErrorCodeLength = 237; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerErrorCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultControllerErrorCode = "(function (i,h){\"use strict\";const b=@getByIdDirectPrivate(i,\"stream\");@assert(b!==@undefined),@assert(@getByIdDirectPrivate(b,\"state\")===\"writable\"),@writableStreamDefaultControllerClearAlgorithms(i),@writableStreamStartErroring(b,h)})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultControllerErrorCode = "(function (h,b){\"use strict\";const i=@getByIdDirectPrivate(h,\"stream\");@assert(i!==@undefined),@assert(@getByIdDirectPrivate(i,\"state\")===\"writable\"),@writableStreamDefaultControllerClearAlgorithms(h),@writableStreamStartErroring(i,b)})\n"; // writableStreamDefaultControllerErrorIfNeeded const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerErrorIfNeededCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -460,7 +460,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControl const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCodeLength = 734; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCode = "(function (i,d){\"use strict\";const _=@getByIdDirectPrivate(i,\"stream\");@writableStreamMarkFirstWriteRequestInFlight(_),@getByIdDirectPrivate(i,\"writeAlgorithm\").@call(@undefined,d).@then(()=>{@writableStreamFinishInFlightWrite(_);const v=@getByIdDirectPrivate(_,\"state\");if(@assert(v===\"writable\"||v===\"erroring\"),@dequeueValue(@getByIdDirectPrivate(i,\"queue\")),!@writableStreamCloseQueuedOrInFlight(_)&&v===\"writable\"){const M=@writableStreamDefaultControllerGetBackpressure(i);@writableStreamUpdateBackpressure(_,M)}@writableStreamDefaultControllerAdvanceQueueIfNeeded(i)},(v)=>{if(@getByIdDirectPrivate(_,\"state\")===\"writable\")@writableStreamDefaultControllerClearAlgorithms(i);@writableStreamFinishInFlightWriteWithError(_,v)})})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCode = "(function (d,v){\"use strict\";const i=@getByIdDirectPrivate(d,\"stream\");@writableStreamMarkFirstWriteRequestInFlight(i),@getByIdDirectPrivate(d,\"writeAlgorithm\").@call(@undefined,v).@then(()=>{@writableStreamFinishInFlightWrite(i);const _=@getByIdDirectPrivate(i,\"state\");if(@assert(_===\"writable\"||_===\"erroring\"),@dequeueValue(@getByIdDirectPrivate(d,\"queue\")),!@writableStreamCloseQueuedOrInFlight(i)&&_===\"writable\"){const q=@writableStreamDefaultControllerGetBackpressure(d);@writableStreamUpdateBackpressure(i,q)}@writableStreamDefaultControllerAdvanceQueueIfNeeded(d)},(_)=>{if(@getByIdDirectPrivate(i,\"state\")===\"writable\")@writableStreamDefaultControllerClearAlgorithms(d);@writableStreamFinishInFlightWriteWithError(i,_)})})\n"; // writableStreamDefaultControllerWrite const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -468,7 +468,7 @@ const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControl const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeLength = 450; static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamInternalsWritableStreamDefaultControllerWriteCode = "(function (y,B,D){\"use strict\";try{@enqueueValueWithSize(@getByIdDirectPrivate(y,\"queue\"),B,D);const I=@getByIdDirectPrivate(y,\"stream\"),_=@getByIdDirectPrivate(I,\"state\");if(!@writableStreamCloseQueuedOrInFlight(I)&&_===\"writable\"){const d=@writableStreamDefaultControllerGetBackpressure(y);@writableStreamUpdateBackpressure(I,d)}@writableStreamDefaultControllerAdvanceQueueIfNeeded(y)}catch(I){@writableStreamDefaultControllerErrorIfNeeded(y,I)}})\n"; +const char* const s_writableStreamInternalsWritableStreamDefaultControllerWriteCode = "(function (d,B,D){\"use strict\";try{@enqueueValueWithSize(@getByIdDirectPrivate(d,\"queue\"),B,D);const y=@getByIdDirectPrivate(d,\"stream\"),I=@getByIdDirectPrivate(y,\"state\");if(!@writableStreamCloseQueuedOrInFlight(y)&&I===\"writable\"){const _=@writableStreamDefaultControllerGetBackpressure(d);@writableStreamUpdateBackpressure(y,_)}@writableStreamDefaultControllerAdvanceQueueIfNeeded(d)}catch(y){@writableStreamDefaultControllerErrorIfNeeded(d,y)}})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ @@ -502,7 +502,7 @@ const JSC::ConstructorKind s_transformStreamInternalsCreateTransformStreamCodeCo const JSC::ImplementationVisibility s_transformStreamInternalsCreateTransformStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsCreateTransformStreamCodeLength = 513; static const JSC::Intrinsic s_transformStreamInternalsCreateTransformStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsCreateTransformStreamCode = "(function (j,q,v,x,B,D,E){\"use strict\";if(x===@undefined)x=1;if(B===@undefined)B=()=>1;if(D===@undefined)D=0;if(E===@undefined)E=()=>1;@assert(x>=0),@assert(D>=0);const F={};@putByIdDirectPrivate(F,\"TransformStream\",!0);const G=new @TransformStream(F),I=@newPromiseCapability(@Promise);@initializeTransformStream(G,I.@promise,x,B,D,E);const _=new @TransformStreamDefaultController;return @setUpTransformStreamDefaultController(G,_,q,v),j().@then(()=>{I.@resolve.@call()},(c)=>{I.@reject.@call(@undefined,c)}),G})\n"; +const char* const s_transformStreamInternalsCreateTransformStreamCode = "(function (D,E,F,_,j,c,q){\"use strict\";if(_===@undefined)_=1;if(j===@undefined)j=()=>1;if(c===@undefined)c=0;if(q===@undefined)q=()=>1;@assert(_>=0),@assert(c>=0);const B={};@putByIdDirectPrivate(B,\"TransformStream\",!0);const v=new @TransformStream(B),x=@newPromiseCapability(@Promise);@initializeTransformStream(v,x.@promise,_,j,c,q);const G=new @TransformStreamDefaultController;return @setUpTransformStreamDefaultController(v,G,E,F),D().@then(()=>{x.@resolve.@call()},(I)=>{x.@reject.@call(@undefined,I)}),v})\n"; // initializeTransformStream const JSC::ConstructAbility s_transformStreamInternalsInitializeTransformStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -510,7 +510,7 @@ const JSC::ConstructorKind s_transformStreamInternalsInitializeTransformStreamCo const JSC::ImplementationVisibility s_transformStreamInternalsInitializeTransformStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsInitializeTransformStreamCodeLength = 1015; static const JSC::Intrinsic s_transformStreamInternalsInitializeTransformStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsInitializeTransformStreamCode = "(function (f,G,B,T,C,F){\"use strict\";const I=()=>{return G},J=(x)=>{return @transformStreamDefaultSinkWriteAlgorithm(f,x)},K=(x)=>{return @transformStreamDefaultSinkAbortAlgorithm(f,x)},j=()=>{return @transformStreamDefaultSinkCloseAlgorithm(f)},L=@createWritableStream(I,J,j,K,B,T),N=()=>{return @transformStreamDefaultSourcePullAlgorithm(f)},q=(x)=>{return @transformStreamErrorWritableAndUnblockWrite(f,x),@Promise.@resolve()},D={};@putByIdDirectPrivate(D,\"start\",I),@putByIdDirectPrivate(D,\"pull\",N),@putByIdDirectPrivate(D,\"cancel\",q);const E={};@putByIdDirectPrivate(E,\"size\",F),@putByIdDirectPrivate(E,\"highWaterMark\",C);const v=new @ReadableStream(D,E);@putByIdDirectPrivate(f,\"writable\",L),@putByIdDirectPrivate(f,\"internalWritable\",@getInternalWritableStream(L)),@putByIdDirectPrivate(f,\"readable\",v),@putByIdDirectPrivate(f,\"backpressure\",@undefined),@putByIdDirectPrivate(f,\"backpressureChangePromise\",@undefined),@transformStreamSetBackpressure(f,!0),@putByIdDirectPrivate(f,\"controller\",@undefined)})\n"; +const char* const s_transformStreamInternalsInitializeTransformStreamCode = "(function (f,x,C,D,E,F){\"use strict\";const q=()=>{return x},G=(B)=>{return @transformStreamDefaultSinkWriteAlgorithm(f,B)},I=(B)=>{return @transformStreamDefaultSinkAbortAlgorithm(f,B)},J=()=>{return @transformStreamDefaultSinkCloseAlgorithm(f)},v=@createWritableStream(q,G,J,I,C,D),K=()=>{return @transformStreamDefaultSourcePullAlgorithm(f)},L=(B)=>{return @transformStreamErrorWritableAndUnblockWrite(f,B),@Promise.@resolve()},T={};@putByIdDirectPrivate(T,\"start\",q),@putByIdDirectPrivate(T,\"pull\",K),@putByIdDirectPrivate(T,\"cancel\",L);const j={};@putByIdDirectPrivate(j,\"size\",F),@putByIdDirectPrivate(j,\"highWaterMark\",E);const N=new @ReadableStream(T,j);@putByIdDirectPrivate(f,\"writable\",v),@putByIdDirectPrivate(f,\"internalWritable\",@getInternalWritableStream(v)),@putByIdDirectPrivate(f,\"readable\",N),@putByIdDirectPrivate(f,\"backpressure\",@undefined),@putByIdDirectPrivate(f,\"backpressureChangePromise\",@undefined),@transformStreamSetBackpressure(f,!0),@putByIdDirectPrivate(f,\"controller\",@undefined)})\n"; // transformStreamError const JSC::ConstructAbility s_transformStreamInternalsTransformStreamErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -526,7 +526,7 @@ const JSC::ConstructorKind s_transformStreamInternalsTransformStreamErrorWritabl const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCodeLength = 339; static const JSC::Intrinsic s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCode = "(function (_,o){\"use strict\";@transformStreamDefaultControllerClearAlgorithms(@getByIdDirectPrivate(_,\"controller\"));const n=@getByIdDirectPrivate(_,\"internalWritable\");if(@writableStreamDefaultControllerErrorIfNeeded(@getByIdDirectPrivate(n,\"controller\"),o),@getByIdDirectPrivate(_,\"backpressure\"))@transformStreamSetBackpressure(_,!1)})\n"; +const char* const s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCode = "(function (_,n){\"use strict\";@transformStreamDefaultControllerClearAlgorithms(@getByIdDirectPrivate(_,\"controller\"));const o=@getByIdDirectPrivate(_,\"internalWritable\");if(@writableStreamDefaultControllerErrorIfNeeded(@getByIdDirectPrivate(o,\"controller\"),n),@getByIdDirectPrivate(_,\"backpressure\"))@transformStreamSetBackpressure(_,!1)})\n"; // transformStreamSetBackpressure const JSC::ConstructAbility s_transformStreamInternalsTransformStreamSetBackpressureCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -550,7 +550,7 @@ const JSC::ConstructorKind s_transformStreamInternalsSetUpTransformStreamDefault const JSC::ImplementationVisibility s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCodeLength = 443; static const JSC::Intrinsic s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCode = "(function (_,d,p){\"use strict\";const v=new @TransformStreamDefaultController;let b=(q)=>{try{@transformStreamDefaultControllerEnqueue(v,q)}catch(w){return @Promise.@reject(w)}return @Promise.@resolve()},j=()=>{return @Promise.@resolve()};if(\"transform\"in p)b=(q)=>{return @promiseInvokeOrNoopMethod(d,p.transform,[q,v])};if(\"flush\"in p)j=()=>{return @promiseInvokeOrNoopMethod(d,p.flush,[v])};@setUpTransformStreamDefaultController(_,v,b,j)})\n"; +const char* const s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCode = "(function (q,v,_){\"use strict\";const d=new @TransformStreamDefaultController;let b=(p)=>{try{@transformStreamDefaultControllerEnqueue(d,p)}catch(w){return @Promise.@reject(w)}return @Promise.@resolve()},j=()=>{return @Promise.@resolve()};if(\"transform\"in _)b=(p)=>{return @promiseInvokeOrNoopMethod(v,_.transform,[p,d])};if(\"flush\"in _)j=()=>{return @promiseInvokeOrNoopMethod(v,_.flush,[d])};@setUpTransformStreamDefaultController(q,d,b,j)})\n"; // transformStreamDefaultControllerClearAlgorithms const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultControllerClearAlgorithmsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -566,7 +566,7 @@ const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultContr const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCodeLength = 622; static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCode = "(function (S,W){\"use strict\";const f=@getByIdDirectPrivate(S,\"stream\"),g=@getByIdDirectPrivate(f,\"readable\"),i=@getByIdDirectPrivate(g,\"readableStreamController\");if(@assert(i!==@undefined),!@readableStreamDefaultControllerCanCloseOrEnqueue(i))@throwTypeError(\"TransformStream.readable cannot close or enqueue\");try{@readableStreamDefaultControllerEnqueue(i,W)}catch(j){throw @transformStreamErrorWritableAndUnblockWrite(f,j),@getByIdDirectPrivate(g,\"storedError\")}const _=!@readableStreamDefaultControllerShouldCallPull(i);if(_!==@getByIdDirectPrivate(f,\"backpressure\"))@assert(_),@transformStreamSetBackpressure(f,!0)})\n"; +const char* const s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCode = "(function (g,i){\"use strict\";const _=@getByIdDirectPrivate(g,\"stream\"),W=@getByIdDirectPrivate(_,\"readable\"),S=@getByIdDirectPrivate(W,\"readableStreamController\");if(@assert(S!==@undefined),!@readableStreamDefaultControllerCanCloseOrEnqueue(S))@throwTypeError(\"TransformStream.readable cannot close or enqueue\");try{@readableStreamDefaultControllerEnqueue(S,i)}catch(j){throw @transformStreamErrorWritableAndUnblockWrite(_,j),@getByIdDirectPrivate(W,\"storedError\")}const f=!@readableStreamDefaultControllerShouldCallPull(S);if(f!==@getByIdDirectPrivate(_,\"backpressure\"))@assert(f),@transformStreamSetBackpressure(_,!0)})\n"; // transformStreamDefaultControllerError const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultControllerErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -582,7 +582,7 @@ const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultContr const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultControllerPerformTransformCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsTransformStreamDefaultControllerPerformTransformCodeLength = 277; static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultControllerPerformTransformCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsTransformStreamDefaultControllerPerformTransformCode = "(function (_,d){\"use strict\";const f=@newPromiseCapability(@Promise);return @getByIdDirectPrivate(_,\"transformAlgorithm\").@call(@undefined,d).@then(()=>{f.@resolve()},(j)=>{@transformStreamError(@getByIdDirectPrivate(_,\"stream\"),j),f.@reject.@call(@undefined,j)}),f.@promise})\n"; +const char* const s_transformStreamInternalsTransformStreamDefaultControllerPerformTransformCode = "(function (d,g){\"use strict\";const _=@newPromiseCapability(@Promise);return @getByIdDirectPrivate(d,\"transformAlgorithm\").@call(@undefined,g).@then(()=>{_.@resolve()},(f)=>{@transformStreamError(@getByIdDirectPrivate(d,\"stream\"),f),_.@reject.@call(@undefined,f)}),_.@promise})\n"; // transformStreamDefaultControllerTerminate const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultControllerTerminateCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -590,7 +590,7 @@ const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultContr const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultControllerTerminateCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsTransformStreamDefaultControllerTerminateCodeLength = 367; static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultControllerTerminateCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsTransformStreamDefaultControllerTerminateCode = "(function (i){\"use strict\";const _=@getByIdDirectPrivate(i,\"stream\"),f=@getByIdDirectPrivate(_,\"readable\"),k=@getByIdDirectPrivate(f,\"readableStreamController\");if(@readableStreamDefaultControllerCanCloseOrEnqueue(k))@readableStreamDefaultControllerClose(k);const u=@makeTypeError(\"the stream has been terminated\");@transformStreamErrorWritableAndUnblockWrite(_,u)})\n"; +const char* const s_transformStreamInternalsTransformStreamDefaultControllerTerminateCode = "(function (f){\"use strict\";const i=@getByIdDirectPrivate(f,\"stream\"),k=@getByIdDirectPrivate(i,\"readable\"),_=@getByIdDirectPrivate(k,\"readableStreamController\");if(@readableStreamDefaultControllerCanCloseOrEnqueue(_))@readableStreamDefaultControllerClose(_);const u=@makeTypeError(\"the stream has been terminated\");@transformStreamErrorWritableAndUnblockWrite(i,u)})\n"; // transformStreamDefaultSinkWriteAlgorithm const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -598,7 +598,7 @@ const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultSinkW const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeLength = 764; static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCode = "(function (d,v){\"use strict\";const f=@getByIdDirectPrivate(d,\"internalWritable\");@assert(@getByIdDirectPrivate(f,\"state\")===\"writable\");const j=@getByIdDirectPrivate(d,\"controller\");if(@getByIdDirectPrivate(d,\"backpressure\")){const q=@newPromiseCapability(@Promise),_=@getByIdDirectPrivate(d,\"backpressureChangePromise\");return @assert(_!==@undefined),_.@promise.@then(()=>{const x=@getByIdDirectPrivate(f,\"state\");if(x===\"erroring\"){q.@reject.@call(@undefined,@getByIdDirectPrivate(f,\"storedError\"));return}@assert(x===\"writable\"),@transformStreamDefaultControllerPerformTransform(j,v).@then(()=>{q.@resolve()},(z)=>{q.@reject.@call(@undefined,z)})},(x)=>{q.@reject.@call(@undefined,x)}),q.@promise}return @transformStreamDefaultControllerPerformTransform(j,v)})\n"; +const char* const s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCode = "(function (d,j){\"use strict\";const f=@getByIdDirectPrivate(d,\"internalWritable\");@assert(@getByIdDirectPrivate(f,\"state\")===\"writable\");const q=@getByIdDirectPrivate(d,\"controller\");if(@getByIdDirectPrivate(d,\"backpressure\")){const _=@newPromiseCapability(@Promise),x=@getByIdDirectPrivate(d,\"backpressureChangePromise\");return @assert(x!==@undefined),x.@promise.@then(()=>{const v=@getByIdDirectPrivate(f,\"state\");if(v===\"erroring\"){_.@reject.@call(@undefined,@getByIdDirectPrivate(f,\"storedError\"));return}@assert(v===\"writable\"),@transformStreamDefaultControllerPerformTransform(q,j).@then(()=>{_.@resolve()},(z)=>{_.@reject.@call(@undefined,z)})},(v)=>{_.@reject.@call(@undefined,v)}),_.@promise}return @transformStreamDefaultControllerPerformTransform(q,j)})\n"; // transformStreamDefaultSinkAbortAlgorithm const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -606,7 +606,7 @@ const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultSinkA const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCodeLength = 85; static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCode = "(function (t,d){\"use strict\";return @transformStreamError(t,d),@Promise.@resolve()})\n"; +const char* const s_transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCode = "(function (d,t){\"use strict\";return @transformStreamError(d,t),@Promise.@resolve()})\n"; // transformStreamDefaultSinkCloseAlgorithm const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -614,7 +614,7 @@ const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultSinkC const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCodeLength = 789; static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCode = "(function (_){\"use strict\";const I=@getByIdDirectPrivate(_,\"readable\"),k=@getByIdDirectPrivate(_,\"controller\"),f=@getByIdDirectPrivate(I,\"readableStreamController\"),u=@getByIdDirectPrivate(k,\"flushAlgorithm\");@assert(u!==@undefined);const v=@getByIdDirectPrivate(k,\"flushAlgorithm\").@call();@transformStreamDefaultControllerClearAlgorithms(k);const q=@newPromiseCapability(@Promise);return v.@then(()=>{if(@getByIdDirectPrivate(I,\"state\")===@streamErrored){q.@reject.@call(@undefined,@getByIdDirectPrivate(I,\"storedError\"));return}if(@readableStreamDefaultControllerCanCloseOrEnqueue(f))@readableStreamDefaultControllerClose(f);q.@resolve()},(j)=>{@transformStreamError(@getByIdDirectPrivate(k,\"stream\"),j),q.@reject.@call(@undefined,@getByIdDirectPrivate(I,\"storedError\"))}),q.@promise})\n"; +const char* const s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCode = "(function (f){\"use strict\";const _=@getByIdDirectPrivate(f,\"readable\"),q=@getByIdDirectPrivate(f,\"controller\"),j=@getByIdDirectPrivate(_,\"readableStreamController\"),k=@getByIdDirectPrivate(q,\"flushAlgorithm\");@assert(k!==@undefined);const u=@getByIdDirectPrivate(q,\"flushAlgorithm\").@call();@transformStreamDefaultControllerClearAlgorithms(q);const I=@newPromiseCapability(@Promise);return u.@then(()=>{if(@getByIdDirectPrivate(_,\"state\")===@streamErrored){I.@reject.@call(@undefined,@getByIdDirectPrivate(_,\"storedError\"));return}if(@readableStreamDefaultControllerCanCloseOrEnqueue(j))@readableStreamDefaultControllerClose(j);I.@resolve()},(v)=>{@transformStreamError(@getByIdDirectPrivate(q,\"stream\"),v),I.@reject.@call(@undefined,@getByIdDirectPrivate(_,\"storedError\"))}),I.@promise})\n"; // transformStreamDefaultSourcePullAlgorithm const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultSourcePullAlgorithmCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -640,7 +640,7 @@ const JSC::ConstructorKind s_processObjectInternalsBindingCodeConstructorKind = const JSC::ImplementationVisibility s_processObjectInternalsBindingCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_processObjectInternalsBindingCodeLength = 473; static const JSC::Intrinsic s_processObjectInternalsBindingCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_processObjectInternalsBindingCode = "(function (d){\"use strict\";if(d!==\"constants\")@throwTypeError(\"process.binding() is not supported in Bun. If that breaks something, please file an issue and include a reproducible code sample.\");var l=globalThis.Symbol.for(\"process.bindings.constants\"),I=globalThis[l];if(!I){const{constants:r}=globalThis[globalThis.Symbol.for(\"Bun.lazy\")](\"createImportMeta\",\"node:process\").require(\"node:fs\");I={fs:r,zlib:{},crypto:{},os:@Bun._Os().constants},globalThis[l]=I}return I})\n"; +const char* const s_processObjectInternalsBindingCode = "(function (I){\"use strict\";if(I!==\"constants\")@throwTypeError(\"process.binding() is not supported in Bun. If that breaks something, please file an issue and include a reproducible code sample.\");var r=globalThis.Symbol.for(\"process.bindings.constants\"),l=globalThis[r];if(!l){const{constants:d}=globalThis[globalThis.Symbol.for(\"Bun.lazy\")](\"createImportMeta\",\"node:process\").require(\"node:fs\");l={fs:d,zlib:{},crypto:{},os:@Bun._Os().constants},globalThis[r]=l}return l})\n"; // getStdioWriteStream const JSC::ConstructAbility s_processObjectInternalsGetStdioWriteStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -648,7 +648,7 @@ const JSC::ConstructorKind s_processObjectInternalsGetStdioWriteStreamCodeConstr const JSC::ImplementationVisibility s_processObjectInternalsGetStdioWriteStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_processObjectInternalsGetStdioWriteStreamCodeLength = 4311; static const JSC::Intrinsic s_processObjectInternalsGetStdioWriteStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_processObjectInternalsGetStdioWriteStreamCode = "(function (z){\"use strict\";var G=(U)=>{var V=@requireMap.get(U);if(V)return V.exports;return @internalRequire(U)},J={path:\"node:process\",require:G};function K(U){var{Duplex:V,eos:X,destroy:j}=G(\"node:stream\"),B=class Z extends V{#$;#G;#j=!0;#z=!0;#B;#H;#J;#K;#L;#M;get isTTY(){return this.#M\?\?=G(\"node:tty\").isatty(U)}get fd(){return U}constructor(Y){super({readable:!0,writable:!0});this.#B=`/dev/fd/${Y}`}#N(Y){const P=this.#H;if(this.#H=null,P)P(Y);else if(Y)this.destroy(Y);else if(!this.#j&&!this.#z)this.destroy()}_destroy(Y,P){if(!Y&&this.#H!==null){var A=class D extends Error{code;name;constructor(H=\"The operation was aborted\",N=void 0){if(N!==void 0&&typeof N!==\"object\")throw new Error(`Invalid AbortError options:\\n\\n${JSON.stringify(N,null,2)}`);super(H,N);this.code=\"ABORT_ERR\",this.name=\"AbortError\"}};Y=new A}if(this.#J=null,this.#K=null,this.#H===null)P(Y);else{if(this.#H=P,this.#$)j(this.#$,Y);if(this.#G)j(this.#G,Y)}}_write(Y,P,A){if(!this.#$){var{createWriteStream:D}=G(\"node:fs\"),H=this.#$=D(this.#B);H.on(\"finish\",()=>{if(this.#K){const N=this.#K;this.#K=null,N()}}),H.on(\"drain\",()=>{if(this.#J){const N=this.#J;this.#J=null,N()}}),X(H,(N)=>{if(this.#z=!1,N)j(H,N);this.#N(N)})}if(H.write(Y,P))A();else this.#J=A}_final(Y){this.#$&&this.#$.end(),this.#K=Y}#O(){var{createReadStream:Y}=G(\"node:fs\"),P=this.#G=Y(this.#B);return P.on(\"readable\",()=>{if(this.#L){const A=this.#L;this.#L=null,A()}else this.read()}),P.on(\"end\",()=>{this.push(null)}),X(P,(A)=>{if(this.#j=!1,A)j(P,A);this.#N(A)}),P}_read(){var Y=this.#G;if(!Y)Y=this.#O();while(!0){const P=Y.read();if(P===null||!this.push(P))return}}};return new B(U)}var{EventEmitter:L}=G(\"node:events\");function O(U){if(!U)return!0;var V=U.toLowerCase();return V===\"utf8\"||V===\"utf-8\"||V===\"buffer\"||V===\"binary\"}var M,Q=class U extends L{#$;#G;#j;#z;bytesWritten=0;setDefaultEncoding(V){if(this.#G||!O(V))return this.#J(),this.#G.setDefaultEncoding(V)}#B(){switch(this.#$){case 1:{var V=@Bun.stdout.writer({highWaterMark:0});return V.unref(),V}case 2:{var V=@Bun.stderr.writer({highWaterMark:0});return V.unref(),V}default:throw new Error(\"Unsupported writer\")}}#H(){return this.#j\?\?=this.#B()}constructor(V){super();this.#$=V}get fd(){return this.#$}get isTTY(){return this.#z\?\?=G(\"node:tty\").isatty(this.#$)}cursorTo(V,X,j){return(M\?\?=G(\"readline\")).cursorTo(this,V,X,j)}moveCursor(V,X,j){return(M\?\?=G(\"readline\")).moveCursor(this,V,X,j)}clearLine(V,X){return(M\?\?=G(\"readline\")).clearLine(this,V,X)}clearScreenDown(V){return(M\?\?=G(\"readline\")).clearScreenDown(this,V)}ref(){this.#H().ref()}unref(){this.#H().unref()}on(V,X){if(V===\"close\"||V===\"finish\")return this.#J(),this.#G.on(V,X);if(V===\"drain\")return super.on(\"drain\",X);if(V===\"error\")return super.on(\"error\",X);return super.on(V,X)}get _writableState(){return this.#J(),this.#G._writableState}get _readableState(){return this.#J(),this.#G._readableState}pipe(V){return this.#J(),this.#G.pipe(V)}unpipe(V){return this.#J(),this.#G.unpipe(V)}#J(){if(this.#G)return;this.#G=K(this.#$);const V=this.eventNames();for(let X of V)this.#G.on(X,(...j)=>{this.emit(X,...j)})}#K(V){var X=this.#H();const j=X.write(V);this.bytesWritten+=j;const B=X.flush(!1);return!!(j||B)}#L(V,X){if(!O(X))return this.#J(),this.#G.write(V,X);return this.#K(V)}#M(V,X){if(X)this.emit(\"error\",X);try{V(X\?X:null)}catch(j){this.emit(\"error\",j)}}#N(V,X,j){if(!O(X))return this.#J(),this.#G.write(V,X,j);var B=this.#H();const Z=B.write(V),Y=B.flush(!0);if(Y\?.then)return Y.then(()=>{this.#M(j),this.emit(\"drain\")},(P)=>this.#M(j,P)),!1;return queueMicrotask(()=>{this.#M(j)}),!!(Z||Y)}write(V,X,j){const B=this._write(V,X,j);if(B)this.emit(\"drain\");return B}get hasColors(){return @Bun.tty[this.#$].hasColors}_write(V,X,j){var B=this.#G;if(B)return B.write(V,X,j);switch(arguments.length){case 0:{var Z=new Error(\"Invalid arguments\");throw Z.code=\"ERR_INVALID_ARG_TYPE\",Z}case 1:return this.#K(V);case 2:if(typeof X===\"function\")return this.#N(V,\"\",X);else if(typeof X===\"string\")return this.#L(V,X);default:{if(typeof X!==\"undefined\"&&typeof X!==\"string\"||typeof j!==\"undefined\"&&typeof j!==\"function\"){var Z=new Error(\"Invalid arguments\");throw Z.code=\"ERR_INVALID_ARG_TYPE\",Z}if(typeof j===\"undefined\")return this.#L(V,X);return this.#N(V,X,j)}}}destroy(){return this}end(){return this}};return new Q(z)})\n"; +const char* const s_processObjectInternalsGetStdioWriteStreamCode = "(function (Z){\"use strict\";var L=(M)=>{var G=@requireMap.get(M);if(G)return G.exports;return @internalRequire(M)},D={path:\"node:process\",require:L};function Y(M){var{Duplex:G,eos:j,destroy:z}=L(\"node:stream\"),J=class O extends G{#j;#$;#M=!0;#N=!0;#J;#z;#G;#B;#H;#K;get isTTY(){return this.#K\?\?=L(\"node:tty\").isatty(M)}get fd(){return M}constructor(B){super({readable:!0,writable:!0});this.#J=`/dev/fd/${B}`}#L(B){const H=this.#z;if(this.#z=null,H)H(B);else if(B)this.destroy(B);else if(!this.#M&&!this.#N)this.destroy()}_destroy(B,H){if(!B&&this.#z!==null){var N=class X extends Error{code;name;constructor(Q=\"The operation was aborted\",K=void 0){if(K!==void 0&&typeof K!==\"object\")throw new Error(`Invalid AbortError options:\\n\\n${JSON.stringify(K,null,2)}`);super(Q,K);this.code=\"ABORT_ERR\",this.name=\"AbortError\"}};B=new N}if(this.#G=null,this.#B=null,this.#z===null)H(B);else{if(this.#z=H,this.#j)z(this.#j,B);if(this.#$)z(this.#$,B)}}_write(B,H,N){if(!this.#j){var{createWriteStream:X}=L(\"node:fs\"),Q=this.#j=X(this.#J);Q.on(\"finish\",()=>{if(this.#B){const K=this.#B;this.#B=null,K()}}),Q.on(\"drain\",()=>{if(this.#G){const K=this.#G;this.#G=null,K()}}),j(Q,(K)=>{if(this.#N=!1,K)z(Q,K);this.#L(K)})}if(Q.write(B,H))N();else this.#G=N}_final(B){this.#j&&this.#j.end(),this.#B=B}#O(){var{createReadStream:B}=L(\"node:fs\"),H=this.#$=B(this.#J);return H.on(\"readable\",()=>{if(this.#H){const N=this.#H;this.#H=null,N()}else this.read()}),H.on(\"end\",()=>{this.push(null)}),j(H,(N)=>{if(this.#M=!1,N)z(H,N);this.#L(N)}),H}_read(){var B=this.#$;if(!B)B=this.#O();while(!0){const H=B.read();if(H===null||!this.push(H))return}}};return new J(M)}var{EventEmitter:P}=L(\"node:events\");function V(M){if(!M)return!0;var G=M.toLowerCase();return G===\"utf8\"||G===\"utf-8\"||G===\"buffer\"||G===\"binary\"}var U,A=class M extends P{#j;#$;#M;#N;bytesWritten=0;setDefaultEncoding(G){if(this.#$||!V(G))return this.#G(),this.#$.setDefaultEncoding(G)}#J(){switch(this.#j){case 1:{var G=@Bun.stdout.writer({highWaterMark:0});return G.unref(),G}case 2:{var G=@Bun.stderr.writer({highWaterMark:0});return G.unref(),G}default:throw new Error(\"Unsupported writer\")}}#z(){return this.#M\?\?=this.#J()}constructor(G){super();this.#j=G}get fd(){return this.#j}get isTTY(){return this.#N\?\?=L(\"node:tty\").isatty(this.#j)}cursorTo(G,j,z){return(U\?\?=L(\"readline\")).cursorTo(this,G,j,z)}moveCursor(G,j,z){return(U\?\?=L(\"readline\")).moveCursor(this,G,j,z)}clearLine(G,j){return(U\?\?=L(\"readline\")).clearLine(this,G,j)}clearScreenDown(G){return(U\?\?=L(\"readline\")).clearScreenDown(this,G)}ref(){this.#z().ref()}unref(){this.#z().unref()}on(G,j){if(G===\"close\"||G===\"finish\")return this.#G(),this.#$.on(G,j);if(G===\"drain\")return super.on(\"drain\",j);if(G===\"error\")return super.on(\"error\",j);return super.on(G,j)}get _writableState(){return this.#G(),this.#$._writableState}get _readableState(){return this.#G(),this.#$._readableState}pipe(G){return this.#G(),this.#$.pipe(G)}unpipe(G){return this.#G(),this.#$.unpipe(G)}#G(){if(this.#$)return;this.#$=Y(this.#j);const G=this.eventNames();for(let j of G)this.#$.on(j,(...z)=>{this.emit(j,...z)})}#B(G){var j=this.#z();const z=j.write(G);this.bytesWritten+=z;const J=j.flush(!1);return!!(z||J)}#H(G,j){if(!V(j))return this.#G(),this.#$.write(G,j);return this.#B(G)}#K(G,j){if(j)this.emit(\"error\",j);try{G(j\?j:null)}catch(z){this.emit(\"error\",z)}}#L(G,j,z){if(!V(j))return this.#G(),this.#$.write(G,j,z);var J=this.#z();const O=J.write(G),B=J.flush(!0);if(B\?.then)return B.then(()=>{this.#K(z),this.emit(\"drain\")},(H)=>this.#K(z,H)),!1;return queueMicrotask(()=>{this.#K(z)}),!!(O||B)}write(G,j,z){const J=this._write(G,j,z);if(J)this.emit(\"drain\");return J}get hasColors(){return @Bun.tty[this.#j].hasColors}_write(G,j,z){var J=this.#$;if(J)return J.write(G,j,z);switch(arguments.length){case 0:{var O=new Error(\"Invalid arguments\");throw O.code=\"ERR_INVALID_ARG_TYPE\",O}case 1:return this.#B(G);case 2:if(typeof j===\"function\")return this.#L(G,\"\",j);else if(typeof j===\"string\")return this.#H(G,j);default:{if(typeof j!==\"undefined\"&&typeof j!==\"string\"||typeof z!==\"undefined\"&&typeof z!==\"function\"){var O=new Error(\"Invalid arguments\");throw O.code=\"ERR_INVALID_ARG_TYPE\",O}if(typeof z===\"undefined\")return this.#H(G,j);return this.#L(G,j,z)}}}destroy(){return this}end(){return this}};return new A(Z)})\n"; // getStdinStream const JSC::ConstructAbility s_processObjectInternalsGetStdinStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -656,7 +656,7 @@ const JSC::ConstructorKind s_processObjectInternalsGetStdinStreamCodeConstructor const JSC::ImplementationVisibility s_processObjectInternalsGetStdinStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_processObjectInternalsGetStdinStreamCodeLength = 1861; static const JSC::Intrinsic s_processObjectInternalsGetStdinStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_processObjectInternalsGetStdinStreamCode = "(function (N){\"use strict\";var j=(J)=>{var K=@requireMap.get(J);if(K)return K.exports;return @internalRequire(J)},z={path:\"node:process\",require:j},{Duplex:B,eos:G,destroy:H}=j(\"node:stream\"),I=class J extends B{#$;#N;#j;#z=!0;#B=!1;#G=!0;#H;#I;#J;get isTTY(){return j(\"tty\").isatty(N)}get fd(){return N}constructor(){super({readable:!0,writable:!0})}#K(K){const L=this.#I;if(this.#I=null,L)L(K);else if(K)this.destroy(K);else if(!this.#z&&!this.#G)this.destroy()}_destroy(K,L){if(!K&&this.#I!==null){var M=class P extends Error{constructor(Q=\"The operation was aborted\",T=void 0){if(T!==void 0&&typeof T!==\"object\")throw new Error(`Invalid AbortError options:\\n\\n${JSON.stringify(T,null,2)}`);super(Q,T);this.code=\"ABORT_ERR\",this.name=\"AbortError\"}};K=new M}if(this.#I===null)L(K);else if(this.#I=L,this.#j)H(this.#j,K)}setRawMode(K){}on(K,L){if(K===\"readable\")this.ref(),this.#B=!0;return super.on(K,L)}pause(){return this.unref(),super.pause()}resume(){return this.ref(),super.resume()}ref(){this.#$\?\?=@Bun.stdin.stream().getReader(),this.#N\?\?=setInterval(()=>{},1<<30)}unref(){if(this.#N)clearInterval(this.#N),this.#N=null}async#L(){try{var K,L;const M=this.#$.readMany();if(!M\?.then)({done:K,value:L}=M);else({done:K,value:L}=await M);if(!K){this.push(L[0]);const P=L.length;for(let Q=1;Q{if(this.#H){const M=this.#H;this.#H=null,M()}}),L.on(\"drain\",()=>{if(this.#J){const M=this.#J;this.#J=null,M()}}),G(L,(M)=>{if(this.#G=!1,M)H(L,M);this.#K(M)}),L}_write(K,L,M){var P=this.#j;if(!P)P=this.#M();if(P.write(K,L))M();else this.#J=M}_final(K){this.#j.end(),this.#H=(...L)=>K(...L)}};return new I})\n"; +const char* const s_processObjectInternalsGetStdinStreamCode = "(function (K){\"use strict\";var H=(I)=>{var N=@requireMap.get(I);if(N)return N.exports;return @internalRequire(I)},T={path:\"node:process\",require:H},{Duplex:M,eos:P,destroy:L}=H(\"node:stream\"),Q=class I extends M{#J;#j;#$;#G=!0;#H=!1;#K=!0;#z;#N;#B;get isTTY(){return H(\"tty\").isatty(K)}get fd(){return K}constructor(){super({readable:!0,writable:!0})}#I(N){const j=this.#N;if(this.#N=null,j)j(N);else if(N)this.destroy(N);else if(!this.#G&&!this.#K)this.destroy()}_destroy(N,j){if(!N&&this.#N!==null){var z=class B extends Error{constructor(G=\"The operation was aborted\",J=void 0){if(J!==void 0&&typeof J!==\"object\")throw new Error(`Invalid AbortError options:\\n\\n${JSON.stringify(J,null,2)}`);super(G,J);this.code=\"ABORT_ERR\",this.name=\"AbortError\"}};N=new z}if(this.#N===null)j(N);else if(this.#N=j,this.#$)L(this.#$,N)}setRawMode(N){}on(N,j){if(N===\"readable\")this.ref(),this.#H=!0;return super.on(N,j)}pause(){return this.unref(),super.pause()}resume(){return this.ref(),super.resume()}ref(){this.#J\?\?=@Bun.stdin.stream().getReader(),this.#j\?\?=setInterval(()=>{},1<<30)}unref(){if(this.#j)clearInterval(this.#j),this.#j=null}async#L(){try{var N,j;const z=this.#J.readMany();if(!z\?.then)({done:N,value:j}=z);else({done:N,value:j}=await z);if(!N){this.push(j[0]);const B=j.length;for(let G=1;G{if(this.#z){const z=this.#z;this.#z=null,z()}}),j.on(\"drain\",()=>{if(this.#B){const z=this.#B;this.#B=null,z()}}),P(j,(z)=>{if(this.#K=!1,z)L(j,z);this.#I(z)}),j}_write(N,j,z){var B=this.#$;if(!B)B=this.#M();if(B.write(N,j))z();else this.#B=z}_final(N){this.#$.end(),this.#z=(...j)=>N(...j)}};return new Q})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ @@ -674,7 +674,7 @@ const JSC::ConstructorKind s_transformStreamInitializeTransformStreamCodeConstru const JSC::ImplementationVisibility s_transformStreamInitializeTransformStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamInitializeTransformStreamCodeLength = 1304; static const JSC::Intrinsic s_transformStreamInitializeTransformStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamInitializeTransformStreamCode = "(function (){\"use strict\";let j=arguments[0];if(@isObject(j)&&@getByIdDirectPrivate(j,\"TransformStream\"))return this;let q=arguments[1],v=arguments[2];if(j===@undefined)j=null;if(v===@undefined)v={};if(q===@undefined)q={};let x={};if(j!==null){if(\"start\"in j){if(x.start=j.start,typeof x.start!==\"function\")@throwTypeError(\"transformer.start should be a function\")}if(\"transform\"in j){if(x.transform=j.transform,typeof x.transform!==\"function\")@throwTypeError(\"transformer.transform should be a function\")}if(\"flush\"in j){if(x.flush=j.flush,typeof x.flush!==\"function\")@throwTypeError(\"transformer.flush should be a function\")}if(\"readableType\"in j)@throwRangeError(\"TransformStream transformer has a readableType\");if(\"writableType\"in j)@throwRangeError(\"TransformStream transformer has a writableType\")}const B=@extractHighWaterMark(v,0),E=@extractSizeAlgorithm(v),F=@extractHighWaterMark(q,1),G=@extractSizeAlgorithm(q),I=@newPromiseCapability(@Promise);if(@initializeTransformStream(this,I.@promise,F,G,B,E),@setUpTransformStreamDefaultControllerFromTransformer(this,j,x),(\"start\"in x)){const J=@getByIdDirectPrivate(this,\"controller\");(()=>@promiseInvokeOrNoopMethodNoCatch(j,x.start,[J]))().@then(()=>{I.@resolve.@call()},(u)=>{I.@reject.@call(@undefined,u)})}else I.@resolve.@call();return this})\n"; +const char* const s_transformStreamInitializeTransformStreamCode = "(function (){\"use strict\";let _=arguments[0];if(@isObject(_)&&@getByIdDirectPrivate(_,\"TransformStream\"))return this;let j=arguments[1],q=arguments[2];if(_===@undefined)_=null;if(q===@undefined)q={};if(j===@undefined)j={};let u={};if(_!==null){if(\"start\"in _){if(u.start=_.start,typeof u.start!==\"function\")@throwTypeError(\"transformer.start should be a function\")}if(\"transform\"in _){if(u.transform=_.transform,typeof u.transform!==\"function\")@throwTypeError(\"transformer.transform should be a function\")}if(\"flush\"in _){if(u.flush=_.flush,typeof u.flush!==\"function\")@throwTypeError(\"transformer.flush should be a function\")}if(\"readableType\"in _)@throwRangeError(\"TransformStream transformer has a readableType\");if(\"writableType\"in _)@throwRangeError(\"TransformStream transformer has a writableType\")}const x=@extractHighWaterMark(q,0),B=@extractSizeAlgorithm(q),E=@extractHighWaterMark(j,1),F=@extractSizeAlgorithm(j),v=@newPromiseCapability(@Promise);if(@initializeTransformStream(this,v.@promise,E,F,x,B),@setUpTransformStreamDefaultControllerFromTransformer(this,_,u),(\"start\"in u)){const G=@getByIdDirectPrivate(this,\"controller\");(()=>@promiseInvokeOrNoopMethodNoCatch(_,u.start,[G]))().@then(()=>{v.@resolve.@call()},(I)=>{v.@reject.@call(@undefined,I)})}else v.@resolve.@call();return this})\n"; // readable const JSC::ConstructAbility s_transformStreamReadableCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -716,7 +716,7 @@ const JSC::ConstructorKind s_moduleRequireCodeConstructorKind = JSC::Constructor const JSC::ImplementationVisibility s_moduleRequireCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_moduleRequireCodeLength = 1035; static const JSC::Intrinsic s_moduleRequireCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_moduleRequireCode = "(function (_){\"use strict\";const M=@requireMap.@get(_)||@requireMap.@get(_=@resolveSync(_,this.path,!1));if(M)return @evaluateCommonJSModule(M),M.exports;if(_.endsWith(\".json\")||_.endsWith(\".toml\")||_.endsWith(\".node\"))return @internalRequire(_);let S=@Loader.registry.@get(_);if(S\?.evaluated&&(S.state\?\?0)>=@ModuleReady){const b=S.module,h=@Loader.getModuleNamespaceObject(b),r=h\?.[@commonJSSymbol]===0||h\?.default\?.[@commonJSSymbol]===0\?h.default:h.__esModule\?h:Object.create(h,{__esModule:{value:!0}});return @requireMap.@set(_,@createCommonJSModule(_,r,!0)),r}const f=@createCommonJSModule(_,{},!1);@requireMap.@set(_,f);var L=this.@require(_,f);if(L===-1){try{L=@requireESM(_)}catch(b){throw @requireMap.@delete(_),b}if(S=@Loader.registry.@get(_),S\?.evaluated&&(S.state\?\?0)>=@ModuleReady){const b=@Loader.getModuleNamespaceObject(S.module);return f.exports=b\?.[@commonJSSymbol]===0||b\?.default\?.[@commonJSSymbol]===0\?b.default:b.__esModule\?b:Object.create(b,{__esModule:{value:!0}})}}return @evaluateCommonJSModule(f),f.exports})\n"; +const char* const s_moduleRequireCode = "(function (_){\"use strict\";const b=@requireMap.@get(_)||@requireMap.@get(_=@resolveSync(_,this.path,!1));if(b)return @evaluateCommonJSModule(b),b.exports;if(_.endsWith(\".json\")||_.endsWith(\".toml\")||_.endsWith(\".node\"))return @internalRequire(_);let S=@Loader.registry.@get(_);if(S\?.evaluated&&(S.state\?\?0)>=@ModuleReady){const M=S.module,f=@Loader.getModuleNamespaceObject(M),r=f\?.[@commonJSSymbol]===0||f\?.default\?.[@commonJSSymbol]===0\?f.default:f.__esModule\?f:Object.create(f,{__esModule:{value:!0}});return @requireMap.@set(_,@createCommonJSModule(_,r,!0)),r}const L=@createCommonJSModule(_,{},!1);@requireMap.@set(_,L);var h=this.@require(_,L);if(h===-1){try{h=@requireESM(_)}catch(M){throw @requireMap.@delete(_),M}if(S=@Loader.registry.@get(_),S\?.evaluated&&(S.state\?\?0)>=@ModuleReady){const M=@Loader.getModuleNamespaceObject(S.module);return L.exports=M\?.[@commonJSSymbol]===0||M\?.default\?.[@commonJSSymbol]===0\?M.default:M.__esModule\?M:Object.create(M,{__esModule:{value:!0}})}}return @evaluateCommonJSModule(L),L.exports})\n"; // requireResolve const JSC::ConstructAbility s_moduleRequireResolveCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -830,7 +830,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeReadIntLECodeConstructorKind = JSC const JSC::ImplementationVisibility s_jsBufferPrototypeReadIntLECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeReadIntLECodeLength = 528; static const JSC::Intrinsic s_jsBufferPrototypeReadIntLECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeReadIntLECode = "(function (d,r){\"use strict\";const _=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(r){case 1:return _.getInt8(d);case 2:return _.getInt16(d,!0);case 3:{const u=_.getUint16(d,!0)+_.getUint8(d+2)*65536;return u|(u&8388608)*510}case 4:return _.getInt32(d,!0);case 5:{const u=_.getUint8(d+4);return(u|(u&128)*33554430)*4294967296+_.getUint32(d,!0)}case 6:{const u=_.getUint16(d+4,!0);return(u|(u&32768)*131070)*4294967296+_.getUint32(d,!0)}}@throwRangeError(\"byteLength must be >= 1 and <= 6\")})\n"; +const char* const s_jsBufferPrototypeReadIntLECode = "(function (d,u){\"use strict\";const r=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(u){case 1:return r.getInt8(d);case 2:return r.getInt16(d,!0);case 3:{const _=r.getUint16(d,!0)+r.getUint8(d+2)*65536;return _|(_&8388608)*510}case 4:return r.getInt32(d,!0);case 5:{const _=r.getUint8(d+4);return(_|(_&128)*33554430)*4294967296+r.getUint32(d,!0)}case 6:{const _=r.getUint16(d+4,!0);return(_|(_&32768)*131070)*4294967296+r.getUint32(d,!0)}}@throwRangeError(\"byteLength must be >= 1 and <= 6\")})\n"; // readIntBE const JSC::ConstructAbility s_jsBufferPrototypeReadIntBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -838,7 +838,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeReadIntBECodeConstructorKind = JSC const JSC::ImplementationVisibility s_jsBufferPrototypeReadIntBECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeReadIntBECodeLength = 528; static const JSC::Intrinsic s_jsBufferPrototypeReadIntBECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeReadIntBECode = "(function (r,d){\"use strict\";const u=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(d){case 1:return u.getInt8(r);case 2:return u.getInt16(r,!1);case 3:{const c=u.getUint16(r+1,!1)+u.getUint8(r)*65536;return c|(c&8388608)*510}case 4:return u.getInt32(r,!1);case 5:{const c=u.getUint8(r);return(c|(c&128)*33554430)*4294967296+u.getUint32(r+1,!1)}case 6:{const c=u.getUint16(r,!1);return(c|(c&32768)*131070)*4294967296+u.getUint32(r+2,!1)}}@throwRangeError(\"byteLength must be >= 1 and <= 6\")})\n"; +const char* const s_jsBufferPrototypeReadIntBECode = "(function (r,c){\"use strict\";const d=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(c){case 1:return d.getInt8(r);case 2:return d.getInt16(r,!1);case 3:{const u=d.getUint16(r+1,!1)+d.getUint8(r)*65536;return u|(u&8388608)*510}case 4:return d.getInt32(r,!1);case 5:{const u=d.getUint8(r);return(u|(u&128)*33554430)*4294967296+d.getUint32(r+1,!1)}case 6:{const u=d.getUint16(r,!1);return(u|(u&32768)*131070)*4294967296+d.getUint32(r+2,!1)}}@throwRangeError(\"byteLength must be >= 1 and <= 6\")})\n"; // readUIntLE const JSC::ConstructAbility s_jsBufferPrototypeReadUIntLECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -846,7 +846,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeReadUIntLECodeConstructorKind = JS const JSC::ImplementationVisibility s_jsBufferPrototypeReadUIntLECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeReadUIntLECodeLength = 445; static const JSC::Intrinsic s_jsBufferPrototypeReadUIntLECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeReadUIntLECode = "(function (a,d){\"use strict\";const r=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(d){case 1:return r.getUint8(a);case 2:return r.getUint16(a,!0);case 3:return r.getUint16(a,!0)+r.getUint8(a+2)*65536;case 4:return r.getUint32(a,!0);case 5:return r.getUint8(a+4)*4294967296+r.getUint32(a,!0);case 6:return r.getUint16(a+4,!0)*4294967296+r.getUint32(a,!0)}@throwRangeError(\"byteLength must be >= 1 and <= 6\")})\n"; +const char* const s_jsBufferPrototypeReadUIntLECode = "(function (a,r){\"use strict\";const d=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(r){case 1:return d.getUint8(a);case 2:return d.getUint16(a,!0);case 3:return d.getUint16(a,!0)+d.getUint8(a+2)*65536;case 4:return d.getUint32(a,!0);case 5:return d.getUint8(a+4)*4294967296+d.getUint32(a,!0);case 6:return d.getUint16(a+4,!0)*4294967296+d.getUint32(a,!0)}@throwRangeError(\"byteLength must be >= 1 and <= 6\")})\n"; // readUIntBE const JSC::ConstructAbility s_jsBufferPrototypeReadUIntBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -854,7 +854,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeReadUIntBECodeConstructorKind = JS const JSC::ImplementationVisibility s_jsBufferPrototypeReadUIntBECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeReadUIntBECodeLength = 504; static const JSC::Intrinsic s_jsBufferPrototypeReadUIntBECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeReadUIntBECode = "(function (d,r){\"use strict\";const c=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(r){case 1:return c.getUint8(d);case 2:return c.getUint16(d,!1);case 3:return c.getUint16(d+1,!1)+c.getUint8(d)*65536;case 4:return c.getUint32(d,!1);case 5:{const p=c.getUint8(d);return(p|(p&128)*33554430)*4294967296+c.getUint32(d+1,!1)}case 6:{const p=c.getUint16(d,!1);return(p|(p&32768)*131070)*4294967296+c.getUint32(d+2,!1)}}@throwRangeError(\"byteLength must be >= 1 and <= 6\")})\n"; +const char* const s_jsBufferPrototypeReadUIntBECode = "(function (d,p){\"use strict\";const r=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(p){case 1:return r.getUint8(d);case 2:return r.getUint16(d,!1);case 3:return r.getUint16(d+1,!1)+r.getUint8(d)*65536;case 4:return r.getUint32(d,!1);case 5:{const c=r.getUint8(d);return(c|(c&128)*33554430)*4294967296+r.getUint32(d+1,!1)}case 6:{const c=r.getUint16(d,!1);return(c|(c&32768)*131070)*4294967296+r.getUint32(d+2,!1)}}@throwRangeError(\"byteLength must be >= 1 and <= 6\")})\n"; // readFloatLE const JSC::ConstructAbility s_jsBufferPrototypeReadFloatLECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -926,7 +926,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteInt8CodeConstructorKind = JSC const JSC::ImplementationVisibility s_jsBufferPrototypeWriteInt8CodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteInt8CodeLength = 131; static const JSC::Intrinsic s_jsBufferPrototypeWriteInt8CodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteInt8Code = "(function (d,r){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt8(r,d),r+1})\n"; +const char* const s_jsBufferPrototypeWriteInt8Code = "(function (r,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt8(d,r),d+1})\n"; // writeUInt8 const JSC::ConstructAbility s_jsBufferPrototypeWriteUInt8CodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -934,7 +934,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteUInt8CodeConstructorKind = JS const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUInt8CodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteUInt8CodeLength = 132; static const JSC::Intrinsic s_jsBufferPrototypeWriteUInt8CodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteUInt8Code = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint8(d,c),d+1})\n"; +const char* const s_jsBufferPrototypeWriteUInt8Code = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint8(c,d),c+1})\n"; // writeInt16LE const JSC::ConstructAbility s_jsBufferPrototypeWriteInt16LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -942,7 +942,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteInt16LECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteInt16LECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteInt16LECodeLength = 135; static const JSC::Intrinsic s_jsBufferPrototypeWriteInt16LECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteInt16LECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt16(d,c,!0),d+2})\n"; +const char* const s_jsBufferPrototypeWriteInt16LECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt16(c,d,!0),c+2})\n"; // writeInt16BE const JSC::ConstructAbility s_jsBufferPrototypeWriteInt16BECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -950,7 +950,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteInt16BECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteInt16BECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteInt16BECodeLength = 135; static const JSC::Intrinsic s_jsBufferPrototypeWriteInt16BECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteInt16BECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt16(d,c,!1),d+2})\n"; +const char* const s_jsBufferPrototypeWriteInt16BECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt16(c,d,!1),c+2})\n"; // writeUInt16LE const JSC::ConstructAbility s_jsBufferPrototypeWriteUInt16LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -958,7 +958,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteUInt16LECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUInt16LECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteUInt16LECodeLength = 136; static const JSC::Intrinsic s_jsBufferPrototypeWriteUInt16LECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteUInt16LECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint16(d,c,!0),d+2})\n"; +const char* const s_jsBufferPrototypeWriteUInt16LECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint16(c,d,!0),c+2})\n"; // writeUInt16BE const JSC::ConstructAbility s_jsBufferPrototypeWriteUInt16BECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -966,7 +966,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteUInt16BECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUInt16BECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteUInt16BECodeLength = 136; static const JSC::Intrinsic s_jsBufferPrototypeWriteUInt16BECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteUInt16BECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint16(d,c,!1),d+2})\n"; +const char* const s_jsBufferPrototypeWriteUInt16BECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint16(c,d,!1),c+2})\n"; // writeInt32LE const JSC::ConstructAbility s_jsBufferPrototypeWriteInt32LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -974,7 +974,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteInt32LECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteInt32LECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteInt32LECodeLength = 135; static const JSC::Intrinsic s_jsBufferPrototypeWriteInt32LECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteInt32LECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt32(d,c,!0),d+4})\n"; +const char* const s_jsBufferPrototypeWriteInt32LECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt32(c,d,!0),c+4})\n"; // writeInt32BE const JSC::ConstructAbility s_jsBufferPrototypeWriteInt32BECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -982,7 +982,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteInt32BECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteInt32BECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteInt32BECodeLength = 135; static const JSC::Intrinsic s_jsBufferPrototypeWriteInt32BECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteInt32BECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt32(d,c,!1),d+4})\n"; +const char* const s_jsBufferPrototypeWriteInt32BECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt32(c,d,!1),c+4})\n"; // writeUInt32LE const JSC::ConstructAbility s_jsBufferPrototypeWriteUInt32LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -990,7 +990,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteUInt32LECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUInt32LECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteUInt32LECodeLength = 136; static const JSC::Intrinsic s_jsBufferPrototypeWriteUInt32LECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteUInt32LECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint32(d,c,!0),d+4})\n"; +const char* const s_jsBufferPrototypeWriteUInt32LECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint32(c,d,!0),c+4})\n"; // writeUInt32BE const JSC::ConstructAbility s_jsBufferPrototypeWriteUInt32BECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -998,7 +998,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteUInt32BECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUInt32BECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteUInt32BECodeLength = 136; static const JSC::Intrinsic s_jsBufferPrototypeWriteUInt32BECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteUInt32BECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint32(d,c,!1),d+4})\n"; +const char* const s_jsBufferPrototypeWriteUInt32BECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint32(c,d,!1),c+4})\n"; // writeIntLE const JSC::ConstructAbility s_jsBufferPrototypeWriteIntLECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1006,7 +1006,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteIntLECodeConstructorKind = JS const JSC::ImplementationVisibility s_jsBufferPrototypeWriteIntLECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteIntLECodeLength = 573; static const JSC::Intrinsic s_jsBufferPrototypeWriteIntLECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteIntLECode = "(function (d,r,c){\"use strict\";const j=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(c){case 1:{j.setInt8(r,d);break}case 2:{j.setInt16(r,d,!0);break}case 3:{j.setUint16(r,d&65535,!0),j.setInt8(r+2,Math.floor(d*0.0000152587890625));break}case 4:{j.setInt32(r,d,!0);break}case 5:{j.setUint32(r,d|0,!0),j.setInt8(r+4,Math.floor(d*0.00000000023283064365386964));break}case 6:{j.setUint32(r,d|0,!0),j.setInt16(r+4,Math.floor(d*0.00000000023283064365386964),!0);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return r+c})\n"; +const char* const s_jsBufferPrototypeWriteIntLECode = "(function (r,d,j){\"use strict\";const c=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(j){case 1:{c.setInt8(d,r);break}case 2:{c.setInt16(d,r,!0);break}case 3:{c.setUint16(d,r&65535,!0),c.setInt8(d+2,Math.floor(r*0.0000152587890625));break}case 4:{c.setInt32(d,r,!0);break}case 5:{c.setUint32(d,r|0,!0),c.setInt8(d+4,Math.floor(r*0.00000000023283064365386964));break}case 6:{c.setUint32(d,r|0,!0),c.setInt16(d+4,Math.floor(r*0.00000000023283064365386964),!0);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return d+j})\n"; // writeIntBE const JSC::ConstructAbility s_jsBufferPrototypeWriteIntBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1014,7 +1014,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteIntBECodeConstructorKind = JS const JSC::ImplementationVisibility s_jsBufferPrototypeWriteIntBECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteIntBECodeLength = 573; static const JSC::Intrinsic s_jsBufferPrototypeWriteIntBECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteIntBECode = "(function (d,r,E){\"use strict\";const c=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(E){case 1:{c.setInt8(r,d);break}case 2:{c.setInt16(r,d,!1);break}case 3:{c.setUint16(r+1,d&65535,!1),c.setInt8(r,Math.floor(d*0.0000152587890625));break}case 4:{c.setInt32(r,d,!1);break}case 5:{c.setUint32(r+1,d|0,!1),c.setInt8(r,Math.floor(d*0.00000000023283064365386964));break}case 6:{c.setUint32(r+2,d|0,!1),c.setInt16(r,Math.floor(d*0.00000000023283064365386964),!1);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return r+E})\n"; +const char* const s_jsBufferPrototypeWriteIntBECode = "(function (r,d,c){\"use strict\";const E=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(c){case 1:{E.setInt8(d,r);break}case 2:{E.setInt16(d,r,!1);break}case 3:{E.setUint16(d+1,r&65535,!1),E.setInt8(d,Math.floor(r*0.0000152587890625));break}case 4:{E.setInt32(d,r,!1);break}case 5:{E.setUint32(d+1,r|0,!1),E.setInt8(d,Math.floor(r*0.00000000023283064365386964));break}case 6:{E.setUint32(d+2,r|0,!1),E.setInt16(d,Math.floor(r*0.00000000023283064365386964),!1);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return d+c})\n"; // writeUIntLE const JSC::ConstructAbility s_jsBufferPrototypeWriteUIntLECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1022,7 +1022,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteUIntLECodeConstructorKind = J const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUIntLECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteUIntLECodeLength = 579; static const JSC::Intrinsic s_jsBufferPrototypeWriteUIntLECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteUIntLECode = "(function (d,r,E){\"use strict\";const c=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(E){case 1:{c.setUint8(r,d);break}case 2:{c.setUint16(r,d,!0);break}case 3:{c.setUint16(r,d&65535,!0),c.setUint8(r+2,Math.floor(d*0.0000152587890625));break}case 4:{c.setUint32(r,d,!0);break}case 5:{c.setUint32(r,d|0,!0),c.setUint8(r+4,Math.floor(d*0.00000000023283064365386964));break}case 6:{c.setUint32(r,d|0,!0),c.setUint16(r+4,Math.floor(d*0.00000000023283064365386964),!0);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return r+E})\n"; +const char* const s_jsBufferPrototypeWriteUIntLECode = "(function (r,d,c){\"use strict\";const E=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(c){case 1:{E.setUint8(d,r);break}case 2:{E.setUint16(d,r,!0);break}case 3:{E.setUint16(d,r&65535,!0),E.setUint8(d+2,Math.floor(r*0.0000152587890625));break}case 4:{E.setUint32(d,r,!0);break}case 5:{E.setUint32(d,r|0,!0),E.setUint8(d+4,Math.floor(r*0.00000000023283064365386964));break}case 6:{E.setUint32(d,r|0,!0),E.setUint16(d+4,Math.floor(r*0.00000000023283064365386964),!0);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return d+c})\n"; // writeUIntBE const JSC::ConstructAbility s_jsBufferPrototypeWriteUIntBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1030,7 +1030,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteUIntBECodeConstructorKind = J const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUIntBECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteUIntBECodeLength = 579; static const JSC::Intrinsic s_jsBufferPrototypeWriteUIntBECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteUIntBECode = "(function (d,r,p){\"use strict\";const _=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(p){case 1:{_.setUint8(r,d);break}case 2:{_.setUint16(r,d,!1);break}case 3:{_.setUint16(r+1,d&65535,!1),_.setUint8(r,Math.floor(d*0.0000152587890625));break}case 4:{_.setUint32(r,d,!1);break}case 5:{_.setUint32(r+1,d|0,!1),_.setUint8(r,Math.floor(d*0.00000000023283064365386964));break}case 6:{_.setUint32(r+2,d|0,!1),_.setUint16(r,Math.floor(d*0.00000000023283064365386964),!1);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return r+p})\n"; +const char* const s_jsBufferPrototypeWriteUIntBECode = "(function (r,d,_){\"use strict\";const p=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(_){case 1:{p.setUint8(d,r);break}case 2:{p.setUint16(d,r,!1);break}case 3:{p.setUint16(d+1,r&65535,!1),p.setUint8(d,Math.floor(r*0.0000152587890625));break}case 4:{p.setUint32(d,r,!1);break}case 5:{p.setUint32(d+1,r|0,!1),p.setUint8(d,Math.floor(r*0.00000000023283064365386964));break}case 6:{p.setUint32(d+2,r|0,!1),p.setUint16(d,Math.floor(r*0.00000000023283064365386964),!1);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return d+_})\n"; // writeFloatLE const JSC::ConstructAbility s_jsBufferPrototypeWriteFloatLECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1038,7 +1038,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteFloatLECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteFloatLECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteFloatLECodeLength = 137; static const JSC::Intrinsic s_jsBufferPrototypeWriteFloatLECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteFloatLECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setFloat32(d,c,!0),d+4})\n"; +const char* const s_jsBufferPrototypeWriteFloatLECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setFloat32(c,d,!0),c+4})\n"; // writeFloatBE const JSC::ConstructAbility s_jsBufferPrototypeWriteFloatBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1046,7 +1046,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteFloatBECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteFloatBECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteFloatBECodeLength = 137; static const JSC::Intrinsic s_jsBufferPrototypeWriteFloatBECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteFloatBECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setFloat32(d,c,!1),d+4})\n"; +const char* const s_jsBufferPrototypeWriteFloatBECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setFloat32(c,d,!1),c+4})\n"; // writeDoubleLE const JSC::ConstructAbility s_jsBufferPrototypeWriteDoubleLECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1054,7 +1054,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteDoubleLECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteDoubleLECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteDoubleLECodeLength = 137; static const JSC::Intrinsic s_jsBufferPrototypeWriteDoubleLECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteDoubleLECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setFloat64(d,c,!0),d+8})\n"; +const char* const s_jsBufferPrototypeWriteDoubleLECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setFloat64(c,d,!0),c+8})\n"; // writeDoubleBE const JSC::ConstructAbility s_jsBufferPrototypeWriteDoubleBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1062,7 +1062,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteDoubleBECodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeWriteDoubleBECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteDoubleBECodeLength = 137; static const JSC::Intrinsic s_jsBufferPrototypeWriteDoubleBECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteDoubleBECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setFloat64(d,c,!1),d+8})\n"; +const char* const s_jsBufferPrototypeWriteDoubleBECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setFloat64(c,d,!1),c+8})\n"; // writeBigInt64LE const JSC::ConstructAbility s_jsBufferPrototypeWriteBigInt64LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1070,7 +1070,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteBigInt64LECodeConstructorKind const JSC::ImplementationVisibility s_jsBufferPrototypeWriteBigInt64LECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteBigInt64LECodeLength = 138; static const JSC::Intrinsic s_jsBufferPrototypeWriteBigInt64LECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteBigInt64LECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setBigInt64(d,c,!0),d+8})\n"; +const char* const s_jsBufferPrototypeWriteBigInt64LECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setBigInt64(c,d,!0),c+8})\n"; // writeBigInt64BE const JSC::ConstructAbility s_jsBufferPrototypeWriteBigInt64BECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1078,7 +1078,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteBigInt64BECodeConstructorKind const JSC::ImplementationVisibility s_jsBufferPrototypeWriteBigInt64BECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteBigInt64BECodeLength = 138; static const JSC::Intrinsic s_jsBufferPrototypeWriteBigInt64BECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteBigInt64BECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setBigInt64(d,c,!1),d+8})\n"; +const char* const s_jsBufferPrototypeWriteBigInt64BECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setBigInt64(c,d,!1),c+8})\n"; // writeBigUInt64LE const JSC::ConstructAbility s_jsBufferPrototypeWriteBigUInt64LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1086,7 +1086,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteBigUInt64LECodeConstructorKin const JSC::ImplementationVisibility s_jsBufferPrototypeWriteBigUInt64LECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteBigUInt64LECodeLength = 139; static const JSC::Intrinsic s_jsBufferPrototypeWriteBigUInt64LECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteBigUInt64LECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setBigUint64(d,c,!0),d+8})\n"; +const char* const s_jsBufferPrototypeWriteBigUInt64LECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setBigUint64(c,d,!0),c+8})\n"; // writeBigUInt64BE const JSC::ConstructAbility s_jsBufferPrototypeWriteBigUInt64BECodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1094,7 +1094,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeWriteBigUInt64BECodeConstructorKin const JSC::ImplementationVisibility s_jsBufferPrototypeWriteBigUInt64BECodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeWriteBigUInt64BECodeLength = 139; static const JSC::Intrinsic s_jsBufferPrototypeWriteBigUInt64BECodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeWriteBigUInt64BECode = "(function (c,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setBigUint64(d,c,!1),d+8})\n"; +const char* const s_jsBufferPrototypeWriteBigUInt64BECode = "(function (d,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setBigUint64(c,d,!1),c+8})\n"; // utf8Write const JSC::ConstructAbility s_jsBufferPrototypeUtf8WriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1118,7 +1118,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeUtf16leWriteCodeConstructorKind = const JSC::ImplementationVisibility s_jsBufferPrototypeUtf16leWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeUtf16leWriteCodeLength = 68; static const JSC::Intrinsic s_jsBufferPrototypeUtf16leWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeUtf16leWriteCode = "(function (r,d,a){\"use strict\";return this.write(r,d,a,\"utf16le\")})\n"; +const char* const s_jsBufferPrototypeUtf16leWriteCode = "(function (d,r,a){\"use strict\";return this.write(d,r,a,\"utf16le\")})\n"; // latin1Write const JSC::ConstructAbility s_jsBufferPrototypeLatin1WriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1238,7 +1238,7 @@ const JSC::ConstructorKind s_jsBufferPrototypeSliceCodeConstructorKind = JSC::Co const JSC::ImplementationVisibility s_jsBufferPrototypeSliceCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferPrototypeSliceCodeLength = 260; static const JSC::Intrinsic s_jsBufferPrototypeSliceCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeSliceCode = "(function (i,q){\"use strict\";var{buffer:c,byteOffset:v,byteLength:p}=this;function w(z,m){if(z=@trunc(z),z===0||@isNaN(z))return 0;else if(z<0)return z+=m,z>0\?z:0;else return zk\?x-k:0)})\n"; +const char* const s_jsBufferPrototypeSliceCode = "(function (w,m){\"use strict\";var{buffer:x,byteOffset:z,byteLength:p}=this;function q(c,k){if(c=@trunc(c),c===0||@isNaN(c))return 0;else if(c<0)return c+=k,c>0\?c:0;else return ci\?v-i:0)})\n"; // parent const JSC::ConstructAbility s_jsBufferPrototypeParentCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1312,7 +1312,7 @@ const JSC::ConstructorKind s_readableByteStreamControllerByobRequestCodeConstruc const JSC::ImplementationVisibility s_readableByteStreamControllerByobRequestCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamControllerByobRequestCodeLength = 523; static const JSC::Intrinsic s_readableByteStreamControllerByobRequestCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamControllerByobRequestCode = "(function (){\"use strict\";if(!@isReadableByteStreamController(this))throw @makeGetterTypeError(\"ReadableByteStreamController\",\"byobRequest\");var _=@getByIdDirectPrivate(this,\"byobRequest\");if(_===@undefined){var a=@getByIdDirectPrivate(this,\"pendingPullIntos\");const l=a.peek();if(l){const m=new @Uint8Array(l.buffer,l.byteOffset+l.bytesFilled,l.byteLength-l.bytesFilled);@putByIdDirectPrivate(this,\"byobRequest\",new @ReadableStreamBYOBRequest(this,m,@isReadableStream))}}return @getByIdDirectPrivate(this,\"byobRequest\")})\n"; +const char* const s_readableByteStreamControllerByobRequestCode = "(function (){\"use strict\";if(!@isReadableByteStreamController(this))throw @makeGetterTypeError(\"ReadableByteStreamController\",\"byobRequest\");var a=@getByIdDirectPrivate(this,\"byobRequest\");if(a===@undefined){var l=@getByIdDirectPrivate(this,\"pendingPullIntos\");const _=l.peek();if(_){const m=new @Uint8Array(_.buffer,_.byteOffset+_.bytesFilled,_.byteLength-_.bytesFilled);@putByIdDirectPrivate(this,\"byobRequest\",new @ReadableStreamBYOBRequest(this,m,@isReadableStream))}}return @getByIdDirectPrivate(this,\"byobRequest\")})\n"; // desiredSize const JSC::ConstructAbility s_readableByteStreamControllerDesiredSizeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1338,7 +1338,7 @@ const JSC::ConstructorKind s_consoleObjectAsyncIteratorCodeConstructorKind = JSC const JSC::ImplementationVisibility s_consoleObjectAsyncIteratorCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_consoleObjectAsyncIteratorCodeLength = 577; static const JSC::Intrinsic s_consoleObjectAsyncIteratorCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_consoleObjectAsyncIteratorCode = "(function (){\"use strict\";const w=async function*_(){var G=@Bun.stdin.stream().getReader(),B=new globalThis.TextDecoder(\"utf-8\",{fatal:!1}),H,J=@Bun.indexOfLine;try{while(!0){var j,D,K;const q=G.readMany();if(@isPromise(q))({done:j,value:D}=await q);else({done:j,value:D}=q);if(j){if(K)yield B.decode(K);return}var m;for(let M of D){if(m=M,K)m=@Buffer.concat([K,M]),K=null;var L=0,F=J(m,L);while(F!==-1)yield B.decode(m.subarray(L,F)),L=F+1,F=J(m,L);K=m.subarray(L)}}}catch(q){H=q}finally{if(G.releaseLock(),H)throw H}},z=globalThis.Symbol.asyncIterator;return this[z]=w,w()})\n"; +const char* const s_consoleObjectAsyncIteratorCode = "(function (){\"use strict\";const D=async function*L(){var F=@Bun.stdin.stream().getReader(),G=new globalThis.TextDecoder(\"utf-8\",{fatal:!1}),z,H=@Bun.indexOfLine;try{while(!0){var A,B,w;const m=F.readMany();if(@isPromise(m))({done:A,value:B}=await m);else({done:A,value:B}=m);if(A){if(w)yield G.decode(w);return}var _;for(let J of B){if(_=J,w)_=@Buffer.concat([w,J]),w=null;var j=0,q=H(_,j);while(q!==-1)yield G.decode(_.subarray(j,q)),j=q+1,q=H(_,j);w=_.subarray(j)}}}catch(m){z=m}finally{if(F.releaseLock(),z)throw z}},K=globalThis.Symbol.asyncIterator;return this[K]=D,D()})\n"; // write const JSC::ConstructAbility s_consoleObjectWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1346,7 +1346,7 @@ const JSC::ConstructorKind s_consoleObjectWriteCodeConstructorKind = JSC::Constr const JSC::ImplementationVisibility s_consoleObjectWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_consoleObjectWriteCodeLength = 310; static const JSC::Intrinsic s_consoleObjectWriteCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_consoleObjectWriteCode = "(function (d){\"use strict\";var _=@getByIdDirectPrivate(this,\"writer\");if(!_){var b=@toLength(d\?.length\?\?0);_=@Bun.stdout.writer({highWaterMark:b>65536\?b:65536}),@putByIdDirectPrivate(this,\"writer\",_)}var c=_.write(d);const f=@argumentCount();for(var a=1;a65536\?b:65536}),@putByIdDirectPrivate(this,\"writer\",a)}var c=a.write(_);const f=@argumentCount();for(var d=1;d{},(c)=>{h.error(c)});function S(){@readableStreamDefaultReaderRead(y).@then(function(c){if(c.done){h.close();return}try{h.enqueue(c.value)}catch(g){h.error(\"ReadableStream chunk enqueueing in the sink failed\");return}S()},function(c){h.error(c)})}S()})\n"; +const char* const s_readableStreamInternalsReadableStreamPipeToCode = "(function (g,c){\"use strict\";@assert(@isReadableStream(g));const h=new @ReadableStreamDefaultReader(g);@getByIdDirectPrivate(h,\"closedPromiseCapability\").@promise.@then(()=>{},(_)=>{c.error(_)});function y(){@readableStreamDefaultReaderRead(h).@then(function(_){if(_.done){c.close();return}try{c.enqueue(_.value)}catch(S){c.error(\"ReadableStream chunk enqueueing in the sink failed\");return}y()},function(_){c.error(_)})}y()})\n"; // acquireReadableStreamDefaultReader const JSC::ConstructAbility s_readableStreamInternalsAcquireReadableStreamDefaultReaderCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1404,7 +1404,7 @@ const JSC::ConstructorKind s_readableStreamInternalsSetupReadableStreamDefaultCo const JSC::ImplementationVisibility s_readableStreamInternalsSetupReadableStreamDefaultControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsSetupReadableStreamDefaultControllerCodeLength = 523; static const JSC::Intrinsic s_readableStreamInternalsSetupReadableStreamDefaultControllerCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsSetupReadableStreamDefaultControllerCode = "(function (b,v,_,w,f,x,j){\"use strict\";const B=new @ReadableStreamDefaultController(b,v,_,w,@isReadableStream),C=()=>@promiseInvokeOrNoopMethod(v,x,[B]),q=(D)=>@promiseInvokeOrNoopMethod(v,j,[D]);@putByIdDirectPrivate(B,\"pullAlgorithm\",C),@putByIdDirectPrivate(B,\"cancelAlgorithm\",q),@putByIdDirectPrivate(B,\"pull\",@readableStreamDefaultControllerPull),@putByIdDirectPrivate(B,\"cancel\",@readableStreamDefaultControllerCancel),@putByIdDirectPrivate(b,\"readableStreamController\",B),@readableStreamDefaultControllerStart(B)})\n"; +const char* const s_readableStreamInternalsSetupReadableStreamDefaultControllerCode = "(function (b,f,j,q,D,v,w){\"use strict\";const _=new @ReadableStreamDefaultController(b,f,j,q,@isReadableStream),x=()=>@promiseInvokeOrNoopMethod(f,v,[_]),B=(C)=>@promiseInvokeOrNoopMethod(f,w,[C]);@putByIdDirectPrivate(_,\"pullAlgorithm\",x),@putByIdDirectPrivate(_,\"cancelAlgorithm\",B),@putByIdDirectPrivate(_,\"pull\",@readableStreamDefaultControllerPull),@putByIdDirectPrivate(_,\"cancel\",@readableStreamDefaultControllerCancel),@putByIdDirectPrivate(b,\"readableStreamController\",_),@readableStreamDefaultControllerStart(_)})\n"; // createReadableStreamController const JSC::ConstructAbility s_readableStreamInternalsCreateReadableStreamControllerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1412,7 +1412,7 @@ const JSC::ConstructorKind s_readableStreamInternalsCreateReadableStreamControll const JSC::ImplementationVisibility s_readableStreamInternalsCreateReadableStreamControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsCreateReadableStreamControllerCodeLength = 671; static const JSC::Intrinsic s_readableStreamInternalsCreateReadableStreamControllerCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsCreateReadableStreamControllerCode = "(function (f,v,w){\"use strict\";const A=v.type,C=@toString(A);if(C===\"bytes\"){if(w.highWaterMark===@undefined)w.highWaterMark=0;if(w.size!==@undefined)@throwRangeError(\"Strategy for a ReadableByteStreamController cannot have a size\");@putByIdDirectPrivate(f,\"readableStreamController\",new @ReadableByteStreamController(f,v,w.highWaterMark,@isReadableStream))}else if(C===\"direct\"){var b=w\?.highWaterMark;@initializeArrayBufferStream.@call(f,v,b)}else if(A===@undefined){if(w.highWaterMark===@undefined)w.highWaterMark=1;@setupReadableStreamDefaultController(f,v,w.size,w.highWaterMark,v.start,v.pull,v.cancel)}else @throwRangeError(\"Invalid type for underlying source\")})\n"; +const char* const s_readableStreamInternalsCreateReadableStreamControllerCode = "(function (w,v,f){\"use strict\";const A=v.type,C=@toString(A);if(C===\"bytes\"){if(f.highWaterMark===@undefined)f.highWaterMark=0;if(f.size!==@undefined)@throwRangeError(\"Strategy for a ReadableByteStreamController cannot have a size\");@putByIdDirectPrivate(w,\"readableStreamController\",new @ReadableByteStreamController(w,v,f.highWaterMark,@isReadableStream))}else if(C===\"direct\"){var b=f\?.highWaterMark;@initializeArrayBufferStream.@call(w,v,b)}else if(A===@undefined){if(f.highWaterMark===@undefined)f.highWaterMark=1;@setupReadableStreamDefaultController(w,v,f.size,f.highWaterMark,v.start,v.pull,v.cancel)}else @throwRangeError(\"Invalid type for underlying source\")})\n"; // readableStreamDefaultControllerStart const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerStartCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1428,7 +1428,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamPipeToWritable const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeLength = 1631; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamPipeToWritableStreamCode = "(function (_,f,D,E,T,k){\"use strict\";if(@assert(@isReadableStream(_)),@assert(@isWritableStream(f)),@assert(!@isReadableStreamLocked(_)),@assert(!@isWritableStreamLocked(f)),@assert(k===@undefined||@isAbortSignal(k)),@getByIdDirectPrivate(_,\"underlyingByteSource\")!==@undefined)return @Promise.@reject(\"Piping to a readable bytestream is not supported\");let q={source:_,destination:f,preventAbort:E,preventCancel:T,preventClose:D,signal:k};if(q.reader=@acquireReadableStreamDefaultReader(_),q.writer=@acquireWritableStreamDefaultWriter(f),@putByIdDirectPrivate(_,\"disturbed\",!0),q.finalized=!1,q.shuttingDown=!1,q.promiseCapability=@newPromiseCapability(@Promise),q.pendingReadPromiseCapability=@newPromiseCapability(@Promise),q.pendingReadPromiseCapability.@resolve.@call(),q.pendingWritePromise=@Promise.@resolve(),k!==@undefined){const w=(x)=>{if(q.finalized)return;@pipeToShutdownWithAction(q,()=>{const B=!q.preventAbort&&@getByIdDirectPrivate(q.destination,\"state\")===\"writable\"\?@writableStreamAbort(q.destination,x):@Promise.@resolve(),G=!q.preventCancel&&@getByIdDirectPrivate(q.source,\"state\")===@streamReadable\?@readableStreamCancel(q.source,x):@Promise.@resolve();let H=@newPromiseCapability(@Promise),I=!0,J=()=>{if(I){I=!1;return}H.@resolve.@call()},K=(L)=>{H.@reject.@call(@undefined,L)};return B.@then(J,K),G.@then(J,K),H.@promise},x)};if(@whenSignalAborted(k,w))return q.promiseCapability.@promise}return @pipeToErrorsMustBePropagatedForward(q),@pipeToErrorsMustBePropagatedBackward(q),@pipeToClosingMustBePropagatedForward(q),@pipeToClosingMustBePropagatedBackward(q),@pipeToLoop(q),q.promiseCapability.@promise})\n"; +const char* const s_readableStreamInternalsReadableStreamPipeToWritableStreamCode = "(function (f,E,z,B,F,D){\"use strict\";if(@assert(@isReadableStream(f)),@assert(@isWritableStream(E)),@assert(!@isReadableStreamLocked(f)),@assert(!@isWritableStreamLocked(E)),@assert(D===@undefined||@isAbortSignal(D)),@getByIdDirectPrivate(f,\"underlyingByteSource\")!==@undefined)return @Promise.@reject(\"Piping to a readable bytestream is not supported\");let _={source:f,destination:E,preventAbort:B,preventCancel:F,preventClose:z,signal:D};if(_.reader=@acquireReadableStreamDefaultReader(f),_.writer=@acquireWritableStreamDefaultWriter(E),@putByIdDirectPrivate(f,\"disturbed\",!0),_.finalized=!1,_.shuttingDown=!1,_.promiseCapability=@newPromiseCapability(@Promise),_.pendingReadPromiseCapability=@newPromiseCapability(@Promise),_.pendingReadPromiseCapability.@resolve.@call(),_.pendingWritePromise=@Promise.@resolve(),D!==@undefined){const G=(T)=>{if(_.finalized)return;@pipeToShutdownWithAction(_,()=>{const H=!_.preventAbort&&@getByIdDirectPrivate(_.destination,\"state\")===\"writable\"\?@writableStreamAbort(_.destination,T):@Promise.@resolve(),I=!_.preventCancel&&@getByIdDirectPrivate(_.source,\"state\")===@streamReadable\?@readableStreamCancel(_.source,T):@Promise.@resolve();let k=@newPromiseCapability(@Promise),q=!0,w=()=>{if(q){q=!1;return}k.@resolve.@call()},x=(J)=>{k.@reject.@call(@undefined,J)};return H.@then(w,x),I.@then(w,x),k.@promise},T)};if(@whenSignalAborted(D,G))return _.promiseCapability.@promise}return @pipeToErrorsMustBePropagatedForward(_),@pipeToErrorsMustBePropagatedBackward(_),@pipeToClosingMustBePropagatedForward(_),@pipeToClosingMustBePropagatedBackward(_),@pipeToLoop(_),_.promiseCapability.@promise})\n"; // pipeToLoop const JSC::ConstructAbility s_readableStreamInternalsPipeToLoopCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1452,7 +1452,7 @@ const JSC::ConstructorKind s_readableStreamInternalsPipeToErrorsMustBePropagated const JSC::ImplementationVisibility s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCodeLength = 438; static const JSC::Intrinsic s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCode = "(function (_){\"use strict\";const b=()=>{_.pendingReadPromiseCapability.@resolve.@call(@undefined,!1);const d=@getByIdDirectPrivate(_.source,\"storedError\");if(!_.preventAbort){@pipeToShutdownWithAction(_,()=>@writableStreamAbort(_.destination,d),d);return}@pipeToShutdown(_,d)};if(@getByIdDirectPrivate(_.source,\"state\")===@streamErrored){b();return}@getByIdDirectPrivate(_.reader,\"closedPromiseCapability\").@promise.@then(@undefined,b)})\n"; +const char* const s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCode = "(function (_){\"use strict\";const d=()=>{_.pendingReadPromiseCapability.@resolve.@call(@undefined,!1);const b=@getByIdDirectPrivate(_.source,\"storedError\");if(!_.preventAbort){@pipeToShutdownWithAction(_,()=>@writableStreamAbort(_.destination,b),b);return}@pipeToShutdown(_,b)};if(@getByIdDirectPrivate(_.source,\"state\")===@streamErrored){d();return}@getByIdDirectPrivate(_.reader,\"closedPromiseCapability\").@promise.@then(@undefined,d)})\n"; // pipeToErrorsMustBePropagatedBackward const JSC::ConstructAbility s_readableStreamInternalsPipeToErrorsMustBePropagatedBackwardCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1460,7 +1460,7 @@ const JSC::ConstructorKind s_readableStreamInternalsPipeToErrorsMustBePropagated const JSC::ImplementationVisibility s_readableStreamInternalsPipeToErrorsMustBePropagatedBackwardCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsPipeToErrorsMustBePropagatedBackwardCodeLength = 369; static const JSC::Intrinsic s_readableStreamInternalsPipeToErrorsMustBePropagatedBackwardCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsPipeToErrorsMustBePropagatedBackwardCode = "(function (m){\"use strict\";const h=()=>{const y=@getByIdDirectPrivate(m.destination,\"storedError\");if(!m.preventCancel){@pipeToShutdownWithAction(m,()=>@readableStreamCancel(m.source,y),y);return}@pipeToShutdown(m,y)};if(@getByIdDirectPrivate(m.destination,\"state\")===\"errored\"){h();return}@getByIdDirectPrivate(m.writer,\"closedPromise\").@promise.@then(@undefined,h)})\n"; +const char* const s_readableStreamInternalsPipeToErrorsMustBePropagatedBackwardCode = "(function (m){\"use strict\";const y=()=>{const h=@getByIdDirectPrivate(m.destination,\"storedError\");if(!m.preventCancel){@pipeToShutdownWithAction(m,()=>@readableStreamCancel(m.source,h),h);return}@pipeToShutdown(m,h)};if(@getByIdDirectPrivate(m.destination,\"state\")===\"errored\"){y();return}@getByIdDirectPrivate(m.writer,\"closedPromise\").@promise.@then(@undefined,y)})\n"; // pipeToClosingMustBePropagatedForward const JSC::ConstructAbility s_readableStreamInternalsPipeToClosingMustBePropagatedForwardCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1484,7 +1484,7 @@ const JSC::ConstructorKind s_readableStreamInternalsPipeToShutdownWithActionCode const JSC::ImplementationVisibility s_readableStreamInternalsPipeToShutdownWithActionCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsPipeToShutdownWithActionCodeLength = 458; static const JSC::Intrinsic s_readableStreamInternalsPipeToShutdownWithActionCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsPipeToShutdownWithActionCode = "(function (_,m){\"use strict\";if(_.shuttingDown)return;_.shuttingDown=!0;const b=arguments.length>2,d=arguments[2],g=()=>{m().@then(()=>{if(b)@pipeToFinalize(_,d);else @pipeToFinalize(_)},(j)=>{@pipeToFinalize(_,j)})};if(@getByIdDirectPrivate(_.destination,\"state\")===\"writable\"&&!@writableStreamCloseQueuedOrInFlight(_.destination)){_.pendingReadPromiseCapability.@promise.@then(()=>{_.pendingWritePromise.@then(g,g)},(h)=>@pipeToFinalize(_,h));return}g()})\n"; +const char* const s_readableStreamInternalsPipeToShutdownWithActionCode = "(function (_,d){\"use strict\";if(_.shuttingDown)return;_.shuttingDown=!0;const g=arguments.length>2,h=arguments[2],m=()=>{d().@then(()=>{if(g)@pipeToFinalize(_,h);else @pipeToFinalize(_)},(j)=>{@pipeToFinalize(_,j)})};if(@getByIdDirectPrivate(_.destination,\"state\")===\"writable\"&&!@writableStreamCloseQueuedOrInFlight(_.destination)){_.pendingReadPromiseCapability.@promise.@then(()=>{_.pendingWritePromise.@then(m,m)},(b)=>@pipeToFinalize(_,b));return}m()})\n"; // pipeToShutdown const JSC::ConstructAbility s_readableStreamInternalsPipeToShutdownCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1492,7 +1492,7 @@ const JSC::ConstructorKind s_readableStreamInternalsPipeToShutdownCodeConstructo const JSC::ImplementationVisibility s_readableStreamInternalsPipeToShutdownCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsPipeToShutdownCodeLength = 411; static const JSC::Intrinsic s_readableStreamInternalsPipeToShutdownCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsPipeToShutdownCode = "(function (_){\"use strict\";if(_.shuttingDown)return;_.shuttingDown=!0;const d=arguments.length>1,m=arguments[1],u=()=>{if(d)@pipeToFinalize(_,m);else @pipeToFinalize(_)};if(@getByIdDirectPrivate(_.destination,\"state\")===\"writable\"&&!@writableStreamCloseQueuedOrInFlight(_.destination)){_.pendingReadPromiseCapability.@promise.@then(()=>{_.pendingWritePromise.@then(u,u)},(I)=>@pipeToFinalize(_,I));return}u()})\n"; +const char* const s_readableStreamInternalsPipeToShutdownCode = "(function (_){\"use strict\";if(_.shuttingDown)return;_.shuttingDown=!0;const m=arguments.length>1,u=arguments[1],d=()=>{if(m)@pipeToFinalize(_,u);else @pipeToFinalize(_)};if(@getByIdDirectPrivate(_.destination,\"state\")===\"writable\"&&!@writableStreamCloseQueuedOrInFlight(_.destination)){_.pendingReadPromiseCapability.@promise.@then(()=>{_.pendingWritePromise.@then(d,d)},(I)=>@pipeToFinalize(_,I));return}d()})\n"; // pipeToFinalize const JSC::ConstructAbility s_readableStreamInternalsPipeToFinalizeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1508,7 +1508,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamTeeCodeConstru const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamTeeCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamTeeCodeLength = 1104; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamTeeCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamTeeCode = "(function (_,f){\"use strict\";@assert(@isReadableStream(_)),@assert(typeof f===\"boolean\");var g=@getByIdDirectPrivate(_,\"start\");if(g)@putByIdDirectPrivate(_,\"start\",@undefined),g();const j=new @ReadableStreamDefaultReader(_),k={closedOrErrored:!1,canceled1:!1,canceled2:!1,reason1:@undefined,reason2:@undefined};k.cancelPromiseCapability=@newPromiseCapability(@Promise);const q=@readableStreamTeePullFunction(k,j,f),v={};@putByIdDirectPrivate(v,\"pull\",q),@putByIdDirectPrivate(v,\"cancel\",@readableStreamTeeBranch1CancelFunction(k,_));const w={};@putByIdDirectPrivate(w,\"pull\",q),@putByIdDirectPrivate(w,\"cancel\",@readableStreamTeeBranch2CancelFunction(k,_));const x=new @ReadableStream(v),y=new @ReadableStream(w);return @getByIdDirectPrivate(j,\"closedPromiseCapability\").@promise.@then(@undefined,function(i){if(k.closedOrErrored)return;if(@readableStreamDefaultControllerError(x.@readableStreamController,i),@readableStreamDefaultControllerError(y.@readableStreamController,i),k.closedOrErrored=!0,!k.canceled1||!k.canceled2)k.cancelPromiseCapability.@resolve.@call()}),k.branch1=x,k.branch2=y,[x,y]})\n"; +const char* const s_readableStreamInternalsReadableStreamTeeCode = "(function (_,q){\"use strict\";@assert(@isReadableStream(_)),@assert(typeof q===\"boolean\");var v=@getByIdDirectPrivate(_,\"start\");if(v)@putByIdDirectPrivate(_,\"start\",@undefined),v();const w=new @ReadableStreamDefaultReader(_),i={closedOrErrored:!1,canceled1:!1,canceled2:!1,reason1:@undefined,reason2:@undefined};i.cancelPromiseCapability=@newPromiseCapability(@Promise);const x=@readableStreamTeePullFunction(i,w,q),f={};@putByIdDirectPrivate(f,\"pull\",x),@putByIdDirectPrivate(f,\"cancel\",@readableStreamTeeBranch1CancelFunction(i,_));const g={};@putByIdDirectPrivate(g,\"pull\",x),@putByIdDirectPrivate(g,\"cancel\",@readableStreamTeeBranch2CancelFunction(i,_));const j=new @ReadableStream(f),k=new @ReadableStream(g);return @getByIdDirectPrivate(w,\"closedPromiseCapability\").@promise.@then(@undefined,function(y){if(i.closedOrErrored)return;if(@readableStreamDefaultControllerError(j.@readableStreamController,y),@readableStreamDefaultControllerError(k.@readableStreamController,y),i.closedOrErrored=!0,!i.canceled1||!i.canceled2)i.cancelPromiseCapability.@resolve.@call()}),i.branch1=j,i.branch2=k,[j,k]})\n"; // readableStreamTeePullFunction const JSC::ConstructAbility s_readableStreamInternalsReadableStreamTeePullFunctionCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1516,7 +1516,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamTeePullFunctio const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamTeePullFunctionCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamTeePullFunctionCodeLength = 764; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamTeePullFunctionCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamTeePullFunctionCode = "(function (i,_,f){\"use strict\";return function(){@Promise.prototype.@then.@call(@readableStreamDefaultReaderRead(_),function(m){if(@assert(@isObject(m)),@assert(typeof m.done===\"boolean\"),m.done&&!i.closedOrErrored){if(!i.canceled1)@readableStreamDefaultControllerClose(i.branch1.@readableStreamController);if(!i.canceled2)@readableStreamDefaultControllerClose(i.branch2.@readableStreamController);if(i.closedOrErrored=!0,!i.canceled1||!i.canceled2)i.cancelPromiseCapability.@resolve.@call()}if(i.closedOrErrored)return;if(!i.canceled1)@readableStreamDefaultControllerEnqueue(i.branch1.@readableStreamController,m.value);if(!i.canceled2)@readableStreamDefaultControllerEnqueue(i.branch2.@readableStreamController,f\?@structuredCloneForStream(m.value):m.value)})}})\n"; +const char* const s_readableStreamInternalsReadableStreamTeePullFunctionCode = "(function (i,f,m){\"use strict\";return function(){@Promise.prototype.@then.@call(@readableStreamDefaultReaderRead(f),function(_){if(@assert(@isObject(_)),@assert(typeof _.done===\"boolean\"),_.done&&!i.closedOrErrored){if(!i.canceled1)@readableStreamDefaultControllerClose(i.branch1.@readableStreamController);if(!i.canceled2)@readableStreamDefaultControllerClose(i.branch2.@readableStreamController);if(i.closedOrErrored=!0,!i.canceled1||!i.canceled2)i.cancelPromiseCapability.@resolve.@call()}if(i.closedOrErrored)return;if(!i.canceled1)@readableStreamDefaultControllerEnqueue(i.branch1.@readableStreamController,_.value);if(!i.canceled2)@readableStreamDefaultControllerEnqueue(i.branch2.@readableStreamController,m\?@structuredCloneForStream(_.value):_.value)})}})\n"; // readableStreamTeeBranch1CancelFunction const JSC::ConstructAbility s_readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1564,7 +1564,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadDirectStreamCodeConstruc const JSC::ImplementationVisibility s_readableStreamInternalsReadDirectStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadDirectStreamCodeLength = 900; static const JSC::Intrinsic s_readableStreamInternalsReadDirectStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadDirectStreamCode = "(function (_,x,f){\"use strict\";@putByIdDirectPrivate(_,\"underlyingSource\",@undefined),@putByIdDirectPrivate(_,\"start\",@undefined);function j(v,A){if(A&&f\?.cancel){try{var w=f.cancel(A);@markPromiseAsHandled(w)}catch(B){}f=@undefined}if(v){if(@putByIdDirectPrivate(v,\"readableStreamController\",@undefined),@putByIdDirectPrivate(v,\"reader\",@undefined),A)@putByIdDirectPrivate(v,\"state\",@streamErrored),@putByIdDirectPrivate(v,\"storedError\",A);else @putByIdDirectPrivate(v,\"state\",@streamClosed);v=@undefined}}if(!f.pull){j();return}if(!@isCallable(f.pull)){j(),@throwTypeError(\"pull is not a function\");return}@putByIdDirectPrivate(_,\"readableStreamController\",x);const q=@getByIdDirectPrivate(_,\"highWaterMark\");x.start({highWaterMark:!q||q<64\?64:q}),@startDirectStream.@call(x,_,f.pull,j),@putByIdDirectPrivate(_,\"reader\",{});var z=f.pull(x);if(x=@undefined,z&&@isPromise(z))return z.@then(()=>{})})\n"; +const char* const s_readableStreamInternalsReadDirectStreamCode = "(function (j,q,_){\"use strict\";@putByIdDirectPrivate(j,\"underlyingSource\",@undefined),@putByIdDirectPrivate(j,\"start\",@undefined);function w(f,v){if(v&&_\?.cancel){try{var A=_.cancel(v);@markPromiseAsHandled(A)}catch(B){}_=@undefined}if(f){if(@putByIdDirectPrivate(f,\"readableStreamController\",@undefined),@putByIdDirectPrivate(f,\"reader\",@undefined),v)@putByIdDirectPrivate(f,\"state\",@streamErrored),@putByIdDirectPrivate(f,\"storedError\",v);else @putByIdDirectPrivate(f,\"state\",@streamClosed);f=@undefined}}if(!_.pull){w();return}if(!@isCallable(_.pull)){w(),@throwTypeError(\"pull is not a function\");return}@putByIdDirectPrivate(j,\"readableStreamController\",q);const x=@getByIdDirectPrivate(j,\"highWaterMark\");q.start({highWaterMark:!x||x<64\?64:x}),@startDirectStream.@call(q,j,_.pull,w),@putByIdDirectPrivate(j,\"reader\",{});var z=_.pull(q);if(q=@undefined,z&&@isPromise(z))return z.@then(()=>{})})\n"; // assignToStream const JSC::ConstructAbility s_readableStreamInternalsAssignToStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1580,7 +1580,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadStreamIntoSinkCodeConstr const JSC::ImplementationVisibility s_readableStreamInternalsReadStreamIntoSinkCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadStreamIntoSinkCodeLength = 1395; static const JSC::Intrinsic s_readableStreamInternalsReadStreamIntoSinkCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadStreamIntoSinkCode = "(async function (c,F,f){\"use strict\";var I=!1,D=!1;try{var E=c.getReader(),G=E.readMany();if(G&&@isPromise(G))G=await G;if(G.done)return I=!0,F.end();var H=G.value.length;const x=@getByIdDirectPrivate(c,\"highWaterMark\");if(f)@startDirectStream.@call(F,c,@undefined,()=>!D&&@markPromiseAsHandled(c.cancel()));F.start({highWaterMark:x||0});for(var J=0,P=G.value,z=G.value.length;J!B&&@markPromiseAsHandled(_.cancel()));c.start({highWaterMark:q||0});for(var D=0,F=f.value,G=f.value.length;D{var j=@createFulfilledPromise({value:v,done:!1});return v=@undefined,@readableStreamClose(b),b=@undefined,j}}else if(this._pendingRead){var y=this._pendingRead;this._pendingRead=@undefined,@putByIdDirectPrivate(this,\"pull\",@noopDoneFunction),@fulfillPromise(y,{value:@undefined,done:!0})}@readableStreamClose(b)})\n"; +const char* const s_readableStreamInternalsOnCloseDirectStreamCode = "(function (S){\"use strict\";var c=this.@controlledReadableStream;if(!c||@getByIdDirectPrivate(c,\"state\")!==@streamReadable)return;if(this._deferClose!==0){this._deferClose=1,this._deferCloseReason=S;return}if(@putByIdDirectPrivate(c,\"state\",@streamClosing),typeof this.@underlyingSource.close===\"function\")try{this.@underlyingSource.close.@call(this.@underlyingSource,S)}catch(b){}var v;try{v=this.@sink.end(),@putByIdDirectPrivate(this,\"sink\",@undefined)}catch(b){if(this._pendingRead){var y=this._pendingRead;this._pendingRead=@undefined,@rejectPromise(y,b)}@readableStreamError(c,b);return}this.error=this.flush=this.write=this.close=this.end=@onReadableStreamDirectControllerClosed;var B=@getByIdDirectPrivate(c,\"reader\");if(B&&@isReadableStreamDefaultReader(B)){var C=this._pendingRead;if(C&&@isPromise(C)&&v\?.byteLength){this._pendingRead=@undefined,@fulfillPromise(C,{value:v,done:!1}),@readableStreamClose(c);return}}if(v\?.byteLength){var j=@getByIdDirectPrivate(B,\"readRequests\");if(j\?.isNotEmpty()){@readableStreamFulfillReadRequest(c,v,!1),@readableStreamClose(c);return}@putByIdDirectPrivate(c,\"state\",@streamReadable),this.@pull=()=>{var b=@createFulfilledPromise({value:v,done:!1});return v=@undefined,@readableStreamClose(c),c=@undefined,b}}else if(this._pendingRead){var y=this._pendingRead;this._pendingRead=@undefined,@putByIdDirectPrivate(this,\"pull\",@noopDoneFunction),@fulfillPromise(y,{value:@undefined,done:!0})}@readableStreamClose(c)})\n"; // onFlushDirectStream const JSC::ConstructAbility s_readableStreamInternalsOnFlushDirectStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1636,7 +1636,7 @@ const JSC::ConstructorKind s_readableStreamInternalsOnFlushDirectStreamCodeConst const JSC::ImplementationVisibility s_readableStreamInternalsOnFlushDirectStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsOnFlushDirectStreamCodeLength = 591; static const JSC::Intrinsic s_readableStreamInternalsOnFlushDirectStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsOnFlushDirectStreamCode = "(function (){\"use strict\";var c=this.@controlledReadableStream,B=@getByIdDirectPrivate(c,\"reader\");if(!B||!@isReadableStreamDefaultReader(B))return;var b=this._pendingRead;if(this._pendingRead=@undefined,b&&@isPromise(b)){var i=this.@sink.flush();if(i\?.byteLength)this._pendingRead=@getByIdDirectPrivate(c,\"readRequests\")\?.shift(),@fulfillPromise(b,{value:i,done:!1});else this._pendingRead=b}else if(@getByIdDirectPrivate(c,\"readRequests\")\?.isNotEmpty()){var i=this.@sink.flush();if(i\?.byteLength)@readableStreamFulfillReadRequest(c,i,!1)}else if(this._deferFlush===-1)this._deferFlush=1})\n"; +const char* const s_readableStreamInternalsOnFlushDirectStreamCode = "(function (){\"use strict\";var B=this.@controlledReadableStream,i=@getByIdDirectPrivate(B,\"reader\");if(!i||!@isReadableStreamDefaultReader(i))return;var b=this._pendingRead;if(this._pendingRead=@undefined,b&&@isPromise(b)){var c=this.@sink.flush();if(c\?.byteLength)this._pendingRead=@getByIdDirectPrivate(B,\"readRequests\")\?.shift(),@fulfillPromise(b,{value:c,done:!1});else this._pendingRead=b}else if(@getByIdDirectPrivate(B,\"readRequests\")\?.isNotEmpty()){var c=this.@sink.flush();if(c\?.byteLength)@readableStreamFulfillReadRequest(B,c,!1)}else if(this._deferFlush===-1)this._deferFlush=1})\n"; // createTextStream const JSC::ConstructAbility s_readableStreamInternalsCreateTextStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1644,7 +1644,7 @@ const JSC::ConstructorKind s_readableStreamInternalsCreateTextStreamCodeConstruc const JSC::ImplementationVisibility s_readableStreamInternalsCreateTextStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsCreateTextStreamCodeLength = 984; static const JSC::Intrinsic s_readableStreamInternalsCreateTextStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsCreateTextStreamCode = "(function (v){\"use strict\";var _,w=[],A=!1,C=!1,j=\"\",x=@toLength(0),E=@newPromiseCapability(@Promise),F=!1;return _={start(){},write(q){if(typeof q===\"string\"){var z=@toLength(q.length);if(z>0)j+=q,A=!0,x+=z;return z}if(!q||!(@ArrayBuffer.@isView(q)||q instanceof @ArrayBuffer))@throwTypeError(\"Expected text, ArrayBuffer or ArrayBufferView\");const G=@toLength(q.byteLength);if(G>0)if(C=!0,j.length>0)@arrayPush(w,j,q),j=\"\";else @arrayPush(w,q);return x+=G,G},flush(){return 0},end(){if(F)return\"\";return _.fulfill()},fulfill(){F=!0;const q=_.finishInternal();return @fulfillPromise(E.@promise,q),q},finishInternal(){if(!A&&!C)return\"\";if(A&&!C)return j;if(C&&!A)return new globalThis.TextDecoder().decode(@Bun.concatArrayBuffers(w));var q=new @Bun.ArrayBufferSink;q.start({highWaterMark:x,asUint8Array:!0});for(let z of w)q.write(z);if(w.length=0,j.length>0)q.write(j),j=\"\";return new globalThis.TextDecoder().decode(q.end())},close(){try{if(!F)F=!0,_.fulfill()}catch(q){}}},[_,E]})\n"; +const char* const s_readableStreamInternalsCreateTextStreamCode = "(function (G){\"use strict\";var q,v=[],x=!1,z=!1,j=\"\",C=@toLength(0),F=@newPromiseCapability(@Promise),A=!1;return q={start(){},write(_){if(typeof _===\"string\"){var w=@toLength(_.length);if(w>0)j+=_,x=!0,C+=w;return w}if(!_||!(@ArrayBuffer.@isView(_)||_ instanceof @ArrayBuffer))@throwTypeError(\"Expected text, ArrayBuffer or ArrayBufferView\");const E=@toLength(_.byteLength);if(E>0)if(z=!0,j.length>0)@arrayPush(v,j,_),j=\"\";else @arrayPush(v,_);return C+=E,E},flush(){return 0},end(){if(A)return\"\";return q.fulfill()},fulfill(){A=!0;const _=q.finishInternal();return @fulfillPromise(F.@promise,_),_},finishInternal(){if(!x&&!z)return\"\";if(x&&!z)return j;if(z&&!x)return new globalThis.TextDecoder().decode(@Bun.concatArrayBuffers(v));var _=new @Bun.ArrayBufferSink;_.start({highWaterMark:C,asUint8Array:!0});for(let w of v)_.write(w);if(v.length=0,j.length>0)_.write(j),j=\"\";return new globalThis.TextDecoder().decode(_.end())},close(){try{if(!A)A=!0,q.fulfill()}catch(_){}}},[q,F]})\n"; // initializeTextStream const JSC::ConstructAbility s_readableStreamInternalsInitializeTextStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1652,7 +1652,7 @@ const JSC::ConstructorKind s_readableStreamInternalsInitializeTextStreamCodeCons const JSC::ImplementationVisibility s_readableStreamInternalsInitializeTextStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsInitializeTextStreamCodeLength = 578; static const JSC::Intrinsic s_readableStreamInternalsInitializeTextStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsInitializeTextStreamCode = "(function (_,m){\"use strict\";var[p,b]=@createTextStream(m),f={@underlyingSource:_,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:p,close:@onCloseDirectStream,write:p.write,error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};return @putByIdDirectPrivate(this,\"readableStreamController\",f),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined),b})\n"; +const char* const s_readableStreamInternalsInitializeTextStreamCode = "(function (m,p){\"use strict\";var[_,b]=@createTextStream(p),f={@underlyingSource:m,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:_,close:@onCloseDirectStream,write:_.write,error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};return @putByIdDirectPrivate(this,\"readableStreamController\",f),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined),b})\n"; // initializeArrayStream const JSC::ConstructAbility s_readableStreamInternalsInitializeArrayStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1660,7 +1660,7 @@ const JSC::ConstructorKind s_readableStreamInternalsInitializeArrayStreamCodeCon const JSC::ImplementationVisibility s_readableStreamInternalsInitializeArrayStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsInitializeArrayStreamCodeLength = 797; static const JSC::Intrinsic s_readableStreamInternalsInitializeArrayStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsInitializeArrayStreamCode = "(function (t,_){\"use strict\";var p=[],b=@newPromiseCapability(@Promise),d=!1;function m(){return d=!0,b.@resolve.@call(@undefined,p),p}var j={start(){},write(v){return @arrayPush(p,v),v.byteLength||v.length},flush(){return 0},end(){if(d)return[];return m()},close(){if(!d)m()}},q={@underlyingSource:t,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:j,close:@onCloseDirectStream,write:j.write,error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};return @putByIdDirectPrivate(this,\"readableStreamController\",q),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined),b})\n"; +const char* const s_readableStreamInternalsInitializeArrayStreamCode = "(function (m,v){\"use strict\";var _=[],b=@newPromiseCapability(@Promise),t=!1;function d(){return t=!0,b.@resolve.@call(@undefined,_),_}var j={start(){},write(p){return @arrayPush(_,p),p.byteLength||p.length},flush(){return 0},end(){if(t)return[];return d()},close(){if(!t)d()}},q={@underlyingSource:m,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:j,close:@onCloseDirectStream,write:j.write,error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};return @putByIdDirectPrivate(this,\"readableStreamController\",q),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined),b})\n"; // initializeArrayBufferStream const JSC::ConstructAbility s_readableStreamInternalsInitializeArrayBufferStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1668,7 +1668,7 @@ const JSC::ConstructorKind s_readableStreamInternalsInitializeArrayBufferStreamC const JSC::ImplementationVisibility s_readableStreamInternalsInitializeArrayBufferStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsInitializeArrayBufferStreamCodeLength = 690; static const JSC::Intrinsic s_readableStreamInternalsInitializeArrayBufferStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsInitializeArrayBufferStreamCode = "(function (_,m){\"use strict\";var w=m&&typeof m===\"number\"\?{highWaterMark:m,stream:!0,asUint8Array:!0}:{stream:!0,asUint8Array:!0},D=new @Bun.ArrayBufferSink;D.start(w);var b={@underlyingSource:_,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:D,close:@onCloseDirectStream,write:D.write.bind(D),error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};@putByIdDirectPrivate(this,\"readableStreamController\",b),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined)})\n"; +const char* const s_readableStreamInternalsInitializeArrayBufferStreamCode = "(function (w,m){\"use strict\";var D=m&&typeof m===\"number\"\?{highWaterMark:m,stream:!0,asUint8Array:!0}:{stream:!0,asUint8Array:!0},_=new @Bun.ArrayBufferSink;_.start(D);var b={@underlyingSource:w,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:_,close:@onCloseDirectStream,write:_.write.bind(_),error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};@putByIdDirectPrivate(this,\"readableStreamController\",b),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined)})\n"; // readableStreamError const JSC::ConstructAbility s_readableStreamInternalsReadableStreamErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1676,7 +1676,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamErrorCodeConst const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamErrorCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamErrorCodeLength = 840; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamErrorCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamErrorCode = "(function (i,c){\"use strict\";@assert(@isReadableStream(i)),@assert(@getByIdDirectPrivate(i,\"state\")===@streamReadable),@putByIdDirectPrivate(i,\"state\",@streamErrored),@putByIdDirectPrivate(i,\"storedError\",c);const n=@getByIdDirectPrivate(i,\"reader\");if(!n)return;if(@isReadableStreamDefaultReader(n)){const _=@getByIdDirectPrivate(n,\"readRequests\");@putByIdDirectPrivate(n,\"readRequests\",@createFIFO());for(var f=_.shift();f;f=_.shift())@rejectPromise(f,c)}else{@assert(@isReadableStreamBYOBReader(n));const _=@getByIdDirectPrivate(n,\"readIntoRequests\");@putByIdDirectPrivate(n,\"readIntoRequests\",@createFIFO());for(var f=_.shift();f;f=_.shift())@rejectPromise(f,c)}@getByIdDirectPrivate(n,\"closedPromiseCapability\").@reject.@call(@undefined,c);const h=@getByIdDirectPrivate(n,\"closedPromiseCapability\").@promise;@markPromiseAsHandled(h)})\n"; +const char* const s_readableStreamInternalsReadableStreamErrorCode = "(function (c,f){\"use strict\";@assert(@isReadableStream(c)),@assert(@getByIdDirectPrivate(c,\"state\")===@streamReadable),@putByIdDirectPrivate(c,\"state\",@streamErrored),@putByIdDirectPrivate(c,\"storedError\",f);const _=@getByIdDirectPrivate(c,\"reader\");if(!_)return;if(@isReadableStreamDefaultReader(_)){const n=@getByIdDirectPrivate(_,\"readRequests\");@putByIdDirectPrivate(_,\"readRequests\",@createFIFO());for(var i=n.shift();i;i=n.shift())@rejectPromise(i,f)}else{@assert(@isReadableStreamBYOBReader(_));const n=@getByIdDirectPrivate(_,\"readIntoRequests\");@putByIdDirectPrivate(_,\"readIntoRequests\",@createFIFO());for(var i=n.shift();i;i=n.shift())@rejectPromise(i,f)}@getByIdDirectPrivate(_,\"closedPromiseCapability\").@reject.@call(@undefined,f);const h=@getByIdDirectPrivate(_,\"closedPromiseCapability\").@promise;@markPromiseAsHandled(h)})\n"; // readableStreamDefaultControllerShouldCallPull const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerShouldCallPullCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1708,7 +1708,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControl const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCodeLength = 283; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCode = "(function (i){\"use strict\";const d=@getByIdDirectPrivate(i,\"controlledReadableStream\"),g=@getByIdDirectPrivate(d,\"state\");if(g===@streamErrored)return null;if(g===@streamClosed)return 0;return @getByIdDirectPrivate(i,\"strategy\").highWaterMark-@getByIdDirectPrivate(i,\"queue\").size})\n"; +const char* const s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCode = "(function (i){\"use strict\";const g=@getByIdDirectPrivate(i,\"controlledReadableStream\"),d=@getByIdDirectPrivate(g,\"state\");if(d===@streamErrored)return null;if(d===@streamClosed)return 0;return @getByIdDirectPrivate(i,\"strategy\").highWaterMark-@getByIdDirectPrivate(i,\"queue\").size})\n"; // readableStreamReaderGenericCancel const JSC::ConstructAbility s_readableStreamInternalsReadableStreamReaderGenericCancelCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1716,7 +1716,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamReaderGenericC const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamReaderGenericCancelCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamReaderGenericCancelCodeLength = 133; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamReaderGenericCancelCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamReaderGenericCancelCode = "(function (c,h){\"use strict\";const i=@getByIdDirectPrivate(c,\"ownerReadableStream\");return @assert(!!i),@readableStreamCancel(i,h)})\n"; +const char* const s_readableStreamInternalsReadableStreamReaderGenericCancelCode = "(function (h,i){\"use strict\";const c=@getByIdDirectPrivate(h,\"ownerReadableStream\");return @assert(!!c),@readableStreamCancel(c,i)})\n"; // readableStreamCancel const JSC::ConstructAbility s_readableStreamInternalsReadableStreamCancelCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1724,7 +1724,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamCancelCodeCons const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamCancelCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamCancelCodeLength = 509; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamCancelCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamCancelCode = "(function (_,d){\"use strict\";@putByIdDirectPrivate(_,\"disturbed\",!0);const h=@getByIdDirectPrivate(_,\"state\");if(h===@streamClosed)return @Promise.@resolve();if(h===@streamErrored)return @Promise.@reject(@getByIdDirectPrivate(_,\"storedError\"));@readableStreamClose(_);var p=@getByIdDirectPrivate(_,\"readableStreamController\"),u=p.@cancel;if(u)return u(p,d).@then(function(){});var i=p.close;if(i)return @Promise.@resolve(p.close(d));@throwTypeError(\"ReadableStreamController has no cancel or close method\")})\n"; +const char* const s_readableStreamInternalsReadableStreamCancelCode = "(function (i,d){\"use strict\";@putByIdDirectPrivate(i,\"disturbed\",!0);const h=@getByIdDirectPrivate(i,\"state\");if(h===@streamClosed)return @Promise.@resolve();if(h===@streamErrored)return @Promise.@reject(@getByIdDirectPrivate(i,\"storedError\"));@readableStreamClose(i);var _=@getByIdDirectPrivate(i,\"readableStreamController\"),p=_.@cancel;if(p)return p(_,d).@then(function(){});var u=_.close;if(u)return @Promise.@resolve(_.close(d));@throwTypeError(\"ReadableStreamController has no cancel or close method\")})\n"; // readableStreamDefaultControllerCancel const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerCancelCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1740,7 +1740,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControl const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerPullCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamDefaultControllerPullCodeLength = 519; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultControllerPullCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamDefaultControllerPullCode = "(function (a){\"use strict\";var d=@getByIdDirectPrivate(a,\"queue\");if(d.content.isNotEmpty()){const _=@dequeueValue(d);if(@getByIdDirectPrivate(a,\"closeRequested\")&&d.content.isEmpty())@readableStreamClose(@getByIdDirectPrivate(a,\"controlledReadableStream\"));else @readableStreamDefaultControllerCallPullIfNeeded(a);return @createFulfilledPromise({value:_,done:!1})}const f=@readableStreamAddReadRequest(@getByIdDirectPrivate(a,\"controlledReadableStream\"));return @readableStreamDefaultControllerCallPullIfNeeded(a),f})\n"; +const char* const s_readableStreamInternalsReadableStreamDefaultControllerPullCode = "(function (a){\"use strict\";var _=@getByIdDirectPrivate(a,\"queue\");if(_.content.isNotEmpty()){const f=@dequeueValue(_);if(@getByIdDirectPrivate(a,\"closeRequested\")&&_.content.isEmpty())@readableStreamClose(@getByIdDirectPrivate(a,\"controlledReadableStream\"));else @readableStreamDefaultControllerCallPullIfNeeded(a);return @createFulfilledPromise({value:f,done:!1})}const d=@readableStreamAddReadRequest(@getByIdDirectPrivate(a,\"controlledReadableStream\"));return @readableStreamDefaultControllerCallPullIfNeeded(a),d})\n"; // readableStreamDefaultControllerClose const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerCloseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1756,7 +1756,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamCloseCodeConst const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamCloseCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamCloseCodeLength = 617; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamCloseCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamCloseCode = "(function (_){\"use strict\";if(@assert(@getByIdDirectPrivate(_,\"state\")===@streamReadable),@putByIdDirectPrivate(_,\"state\",@streamClosed),!@getByIdDirectPrivate(_,\"reader\"))return;if(@isReadableStreamDefaultReader(@getByIdDirectPrivate(_,\"reader\"))){const d=@getByIdDirectPrivate(@getByIdDirectPrivate(_,\"reader\"),\"readRequests\");if(d.isNotEmpty()){@putByIdDirectPrivate(@getByIdDirectPrivate(_,\"reader\"),\"readRequests\",@createFIFO());for(var i=d.shift();i;i=d.shift())@fulfillPromise(i,{value:@undefined,done:!0})}}@getByIdDirectPrivate(@getByIdDirectPrivate(_,\"reader\"),\"closedPromiseCapability\").@resolve.@call()})\n"; +const char* const s_readableStreamInternalsReadableStreamCloseCode = "(function (_){\"use strict\";if(@assert(@getByIdDirectPrivate(_,\"state\")===@streamReadable),@putByIdDirectPrivate(_,\"state\",@streamClosed),!@getByIdDirectPrivate(_,\"reader\"))return;if(@isReadableStreamDefaultReader(@getByIdDirectPrivate(_,\"reader\"))){const i=@getByIdDirectPrivate(@getByIdDirectPrivate(_,\"reader\"),\"readRequests\");if(i.isNotEmpty()){@putByIdDirectPrivate(@getByIdDirectPrivate(_,\"reader\"),\"readRequests\",@createFIFO());for(var d=i.shift();d;d=i.shift())@fulfillPromise(d,{value:@undefined,done:!0})}}@getByIdDirectPrivate(@getByIdDirectPrivate(_,\"reader\"),\"closedPromiseCapability\").@resolve.@call()})\n"; // readableStreamFulfillReadRequest const JSC::ConstructAbility s_readableStreamInternalsReadableStreamFulfillReadRequestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1764,7 +1764,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamFulfillReadReq const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamFulfillReadRequestCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamFulfillReadRequestCodeLength = 157; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamFulfillReadRequestCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamFulfillReadRequestCode = "(function (p,y,_){\"use strict\";const i=@getByIdDirectPrivate(@getByIdDirectPrivate(p,\"reader\"),\"readRequests\").shift();@fulfillPromise(i,{value:y,done:_})})\n"; +const char* const s_readableStreamInternalsReadableStreamFulfillReadRequestCode = "(function (i,p,y){\"use strict\";const _=@getByIdDirectPrivate(@getByIdDirectPrivate(i,\"reader\"),\"readRequests\").shift();@fulfillPromise(_,{value:p,done:y})})\n"; // readableStreamDefaultControllerEnqueue const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1772,7 +1772,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControl const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeLength = 659; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCode = "(function (_,d){\"use strict\";const D=@getByIdDirectPrivate(_,\"controlledReadableStream\");if(@assert(@readableStreamDefaultControllerCanCloseOrEnqueue(_)),@isReadableStreamLocked(D)&&@getByIdDirectPrivate(@getByIdDirectPrivate(D,\"reader\"),\"readRequests\")\?.isNotEmpty()){@readableStreamFulfillReadRequest(D,d,!1),@readableStreamDefaultControllerCallPullIfNeeded(_);return}try{let E=1;if(@getByIdDirectPrivate(_,\"strategy\").size!==@undefined)E=@getByIdDirectPrivate(_,\"strategy\").size(d);@enqueueValueWithSize(@getByIdDirectPrivate(_,\"queue\"),d,E)}catch(E){throw @readableStreamDefaultControllerError(_,E),E}@readableStreamDefaultControllerCallPullIfNeeded(_)})\n"; +const char* const s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCode = "(function (_,D){\"use strict\";const E=@getByIdDirectPrivate(_,\"controlledReadableStream\");if(@assert(@readableStreamDefaultControllerCanCloseOrEnqueue(_)),@isReadableStreamLocked(E)&&@getByIdDirectPrivate(@getByIdDirectPrivate(E,\"reader\"),\"readRequests\")\?.isNotEmpty()){@readableStreamFulfillReadRequest(E,D,!1),@readableStreamDefaultControllerCallPullIfNeeded(_);return}try{let d=1;if(@getByIdDirectPrivate(_,\"strategy\").size!==@undefined)d=@getByIdDirectPrivate(_,\"strategy\").size(D);@enqueueValueWithSize(@getByIdDirectPrivate(_,\"queue\"),D,d)}catch(d){throw @readableStreamDefaultControllerError(_,d),d}@readableStreamDefaultControllerCallPullIfNeeded(_)})\n"; // readableStreamDefaultReaderRead const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultReaderReadCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1780,7 +1780,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultReaderR const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultReaderReadCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamDefaultReaderReadCodeLength = 491; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultReaderReadCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamDefaultReaderReadCode = "(function (i){\"use strict\";const n=@getByIdDirectPrivate(i,\"ownerReadableStream\");@assert(!!n);const y=@getByIdDirectPrivate(n,\"state\");if(@putByIdDirectPrivate(n,\"disturbed\",!0),y===@streamClosed)return @createFulfilledPromise({value:@undefined,done:!0});if(y===@streamErrored)return @Promise.@reject(@getByIdDirectPrivate(n,\"storedError\"));return @assert(y===@streamReadable),@getByIdDirectPrivate(n,\"readableStreamController\").@pull(@getByIdDirectPrivate(n,\"readableStreamController\"))})\n"; +const char* const s_readableStreamInternalsReadableStreamDefaultReaderReadCode = "(function (y){\"use strict\";const i=@getByIdDirectPrivate(y,\"ownerReadableStream\");@assert(!!i);const n=@getByIdDirectPrivate(i,\"state\");if(@putByIdDirectPrivate(i,\"disturbed\",!0),n===@streamClosed)return @createFulfilledPromise({value:@undefined,done:!0});if(n===@streamErrored)return @Promise.@reject(@getByIdDirectPrivate(i,\"storedError\"));return @assert(n===@streamReadable),@getByIdDirectPrivate(i,\"readableStreamController\").@pull(@getByIdDirectPrivate(i,\"readableStreamController\"))})\n"; // readableStreamAddReadRequest const JSC::ConstructAbility s_readableStreamInternalsReadableStreamAddReadRequestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1820,7 +1820,7 @@ const JSC::ConstructorKind s_readableStreamInternalsLazyLoadStreamCodeConstructo const JSC::ImplementationVisibility s_readableStreamInternalsLazyLoadStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsLazyLoadStreamCodeLength = 1589; static const JSC::Intrinsic s_readableStreamInternalsLazyLoadStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsLazyLoadStreamCode = "(function (P,F){\"use strict\";var L=@getByIdDirectPrivate(P,\"bunNativeType\"),G=@getByIdDirectPrivate(P,\"bunNativePtr\"),H=@lazyStreamPrototypeMap.@get(L);if(H===@undefined){let j=function(B){var{c:p,v:z}=this;this.c=@undefined,this.v=@undefined,W(B,p,z)},Z=function(B){try{B.close()}catch(p){globalThis.reportError(p)}},_=function(B,p,z,A){A[0]=!1;var D;try{D=b(B,z,A)}catch(E){return p.error(E)}return W(D,p,z)};var f=j,O=Z,m=_,[b,I,M,q,J,N,Q]=@lazyLoad(L),U=[!1],W;W=function B(p,z,A){if(p&&@isPromise(p))return p.then(j.bind({c:z,v:A}),(D)=>z.error(D));else if(typeof p===\"number\")if(A&&A.byteLength===p&&A.buffer===z.byobRequest\?.view\?.buffer)z.byobRequest.respondWithNewView(A);else z.byobRequest.respond(p);else if(p.constructor===@Uint8Array)z.enqueue(p);if(U[0]||p===!1)@enqueueJob(Z,z),U[0]=!1};const y=J\?new FinalizationRegistry(J):null;H=class B{constructor(p,z,A){if(this.#f=p,this.#b={},this.pull=this.#j.bind(this),this.cancel=this.#m.bind(this),this.autoAllocateChunkSize=z,A!==@undefined)this.start=(D)=>{D.enqueue(A)};if(y)y.register(this,p,this.#b)}#b;pull;cancel;start;#f;type=\"bytes\";autoAllocateChunkSize=0;static startSync=I;#j(p){var z=this.#f;if(!z){p.close();return}_(z,p,p.byobRequest.view,U)}#m(p){var z=this.#f;y&&y.unregister(this.#b),N&&N(z,!1),M(z,p)}static deinit=J;static drain=Q},@lazyStreamPrototypeMap.@set(L,H)}const X=H.startSync(G,F);var Y;const{drain:x,deinit:K}=H;if(x)Y=x(G);if(X===0){if(J&&G&&@enqueueJob(J,G),(Y\?.byteLength\?\?0)>0)return{start(j){j.enqueue(Y),j.close()},type:\"bytes\"};return{start(j){j.close()},type:\"bytes\"}}return new H(G,X,Y)})\n"; +const char* const s_readableStreamInternalsLazyLoadStreamCode = "(function (J,P){\"use strict\";var G=@getByIdDirectPrivate(J,\"bunNativeType\"),B=@getByIdDirectPrivate(J,\"bunNativePtr\"),x=@lazyStreamPrototypeMap.@get(G);if(x===@undefined){let q=function(m){var{c:b,v:f}=this;this.c=@undefined,this.v=@undefined,I(m,b,f)},N=function(m){try{m.close()}catch(b){globalThis.reportError(b)}},O=function(m,b,f,j){j[0]=!1;var y;try{y=Q(m,f,j)}catch(Y){return b.error(Y)}return I(y,b,f)};var z=q,A=N,p=O,[Q,U,W,Z,D,K,X]=@lazyLoad(G),H=[!1],I;I=function m(b,f,j){if(b&&@isPromise(b))return b.then(q.bind({c:f,v:j}),(y)=>f.error(y));else if(typeof b===\"number\")if(j&&j.byteLength===b&&j.buffer===f.byobRequest\?.view\?.buffer)f.byobRequest.respondWithNewView(j);else f.byobRequest.respond(b);else if(b.constructor===@Uint8Array)f.enqueue(b);if(H[0]||b===!1)@enqueueJob(N,f),H[0]=!1};const F=D\?new FinalizationRegistry(D):null;x=class m{constructor(b,f,j){if(this.#f=b,this.#b={},this.pull=this.#j.bind(this),this.cancel=this.#m.bind(this),this.autoAllocateChunkSize=f,j!==@undefined)this.start=(y)=>{y.enqueue(j)};if(F)F.register(this,b,this.#b)}#b;pull;cancel;start;#f;type=\"bytes\";autoAllocateChunkSize=0;static startSync=U;#j(b){var f=this.#f;if(!f){b.close();return}O(f,b,b.byobRequest.view,H)}#m(b){var f=this.#f;F&&F.unregister(this.#b),K&&K(f,!1),W(f,b)}static deinit=D;static drain=X},@lazyStreamPrototypeMap.@set(G,x)}const L=x.startSync(B,P);var E;const{drain:M,deinit:_}=x;if(M)E=M(B);if(L===0){if(D&&B&&@enqueueJob(D,B),(E\?.byteLength\?\?0)>0)return{start(q){q.enqueue(E),q.close()},type:\"bytes\"};return{start(q){q.close()},type:\"bytes\"}}return new x(B,L,E)})\n"; // readableStreamIntoArray const JSC::ConstructAbility s_readableStreamInternalsReadableStreamIntoArrayCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1828,7 +1828,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamIntoArrayCodeC const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamIntoArrayCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamIntoArrayCodeLength = 247; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamIntoArrayCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamIntoArrayCode = "(function (_){\"use strict\";var b=_.getReader(),g=b.readMany();async function j(p){if(p.done)return[];var f=p.value||[];while(!0){var q=await b.read();if(q.done)break;f=f.concat(q.value)}return f}if(g&&@isPromise(g))return g.@then(j);return j(g)})\n"; +const char* const s_readableStreamInternalsReadableStreamIntoArrayCode = "(function (q){\"use strict\";var b=q.getReader(),f=b.readMany();async function g(j){if(j.done)return[];var _=j.value||[];while(!0){var p=await b.read();if(p.done)break;_=_.concat(p.value)}return _}if(f&&@isPromise(f))return f.@then(g);return g(f)})\n"; // readableStreamIntoText const JSC::ConstructAbility s_readableStreamInternalsReadableStreamIntoTextCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1836,7 +1836,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamIntoTextCodeCo const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamIntoTextCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamIntoTextCodeLength = 214; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamIntoTextCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamIntoTextCode = "(function (i){\"use strict\";const[_,d]=@createTextStream(@getByIdDirectPrivate(i,\"highWaterMark\")),h=@readStreamIntoSink(i,_,!1);if(h&&@isPromise(h))return @Promise.@resolve(h).@then(d.@promise);return d.@promise})\n"; +const char* const s_readableStreamInternalsReadableStreamIntoTextCode = "(function (_){\"use strict\";const[h,d]=@createTextStream(@getByIdDirectPrivate(_,\"highWaterMark\")),i=@readStreamIntoSink(_,h,!1);if(i&&@isPromise(i))return @Promise.@resolve(i).@then(d.@promise);return d.@promise})\n"; // readableStreamToArrayBufferDirect const JSC::ConstructAbility s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1844,7 +1844,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamToArrayBufferD const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeLength = 727; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamToArrayBufferDirectCode = "(function (O,_){\"use strict\";var q=new @Bun.ArrayBufferSink;@putByIdDirectPrivate(O,\"underlyingSource\",@undefined);var v=@getByIdDirectPrivate(O,\"highWaterMark\");q.start(v\?{highWaterMark:v}:{});var w=@newPromiseCapability(@Promise),A=!1,z=_.pull,B=_.close,C={start(){},close(F){if(!A){if(A=!0,B)B();@fulfillPromise(w.@promise,q.end())}},end(){if(!A){if(A=!0,B)B();@fulfillPromise(w.@promise,q.end())}},flush(){return 0},write:q.write.bind(q)},D=!1;try{const F=z(C);if(F&&@isObject(F)&&@isPromise(F))return async function(G,j,x){while(!A)await x(G);return await j}(C,promise,z);return w.@promise}catch(F){return D=!0,@readableStreamError(O,F),@Promise.@reject(F)}finally{if(!D&&O)@readableStreamClose(O);C=B=q=z=O=@undefined}})\n"; +const char* const s_readableStreamInternalsReadableStreamToArrayBufferDirectCode = "(function (O,A){\"use strict\";var j=new @Bun.ArrayBufferSink;@putByIdDirectPrivate(O,\"underlyingSource\",@undefined);var B=@getByIdDirectPrivate(O,\"highWaterMark\");j.start(B\?{highWaterMark:B}:{});var w=@newPromiseCapability(@Promise),q=!1,x=A.pull,v=A.close,z={start(){},close(_){if(!q){if(q=!0,v)v();@fulfillPromise(w.@promise,j.end())}},end(){if(!q){if(q=!0,v)v();@fulfillPromise(w.@promise,j.end())}},flush(){return 0},write:j.write.bind(j)},C=!1;try{const _=x(z);if(_&&@isObject(_)&&@isPromise(_))return async function(D,F,G){while(!q)await G(D);return await F}(z,promise,x);return w.@promise}catch(_){return C=!0,@readableStreamError(O,_),@Promise.@reject(_)}finally{if(!C&&O)@readableStreamClose(O);z=v=j=x=O=@undefined}})\n"; // readableStreamToTextDirect const JSC::ConstructAbility s_readableStreamInternalsReadableStreamToTextDirectCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1852,7 +1852,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamToTextDirectCo const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamToTextDirectCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamToTextDirectCodeLength = 278; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamToTextDirectCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamToTextDirectCode = "(async function (f,h){\"use strict\";const j=@initializeTextStream.@call(f,h,@undefined);var k=f.getReader();while(@getByIdDirectPrivate(f,\"state\")===@streamReadable){var p=await k.read();if(p.done)break}try{k.releaseLock()}catch(_){}return k=@undefined,f=@undefined,j.@promise})\n"; +const char* const s_readableStreamInternalsReadableStreamToTextDirectCode = "(async function (_,h){\"use strict\";const j=@initializeTextStream.@call(_,h,@undefined);var f=_.getReader();while(@getByIdDirectPrivate(_,\"state\")===@streamReadable){var k=await f.read();if(k.done)break}try{f.releaseLock()}catch(p){}return f=@undefined,_=@undefined,j.@promise})\n"; // readableStreamToArrayDirect const JSC::ConstructAbility s_readableStreamInternalsReadableStreamToArrayDirectCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1860,7 +1860,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamToArrayDirectC const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamToArrayDirectCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamToArrayDirectCodeLength = 354; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamToArrayDirectCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamToArrayDirectCode = "(async function (_,j){\"use strict\";const k=@initializeArrayStream.@call(_,j,@undefined);j=@undefined;var p=_.getReader();try{while(@getByIdDirectPrivate(_,\"state\")===@streamReadable){var q=await p.read();if(q.done)break}try{p.releaseLock()}catch(f){}return p=@undefined,@Promise.@resolve(k.@promise)}catch(f){throw f}finally{_=@undefined,p=@undefined}})\n"; +const char* const s_readableStreamInternalsReadableStreamToArrayDirectCode = "(async function (f,j){\"use strict\";const p=@initializeArrayStream.@call(f,j,@undefined);j=@undefined;var _=f.getReader();try{while(@getByIdDirectPrivate(f,\"state\")===@streamReadable){var q=await _.read();if(q.done)break}try{_.releaseLock()}catch(k){}return _=@undefined,@Promise.@resolve(p.@promise)}catch(k){throw k}finally{f=@undefined,_=@undefined}})\n"; // readableStreamDefineLazyIterators const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1868,7 +1868,7 @@ const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefineLazyIter const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeLength = 516; static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsReadableStreamDefineLazyIteratorsCode = "(function (k){\"use strict\";var B=globalThis.Symbol.asyncIterator,g=async function*z(D,F){var G=D.getReader(),j;try{while(!0){var x,h;const q=G.readMany();if(@isPromise(q))({done:x,value:h}=await q);else({done:x,value:h}=q);if(x)return;yield*h}}catch(q){j=q}finally{if(G.releaseLock(),!F)D.cancel(j);if(j)throw j}},i=function z(){return g(this,!1)},w=function z({preventCancel:D=!1}={preventCancel:!1}){return g(this,D)};return @Object.@defineProperty(k,B,{value:i}),@Object.@defineProperty(k,\"values\",{value:w}),k})\n"; +const char* const s_readableStreamInternalsReadableStreamDefineLazyIteratorsCode = "(function (i){\"use strict\";var B=globalThis.Symbol.asyncIterator,w=async function*x(k,G){var z=k.getReader(),g;try{while(!0){var j,q;const h=z.readMany();if(@isPromise(h))({done:j,value:q}=await h);else({done:j,value:q}=h);if(j)return;yield*q}}catch(h){g=h}finally{if(z.releaseLock(),!G)k.cancel(g);if(g)throw g}},D=function x(){return w(this,!1)},F=function x({preventCancel:k=!1}={preventCancel:!1}){return w(this,k)};return @Object.@defineProperty(i,B,{value:D}),@Object.@defineProperty(i,\"values\",{value:F}),i})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ @@ -1894,7 +1894,7 @@ const JSC::ConstructorKind s_transformStreamDefaultControllerDesiredSizeCodeCons const JSC::ImplementationVisibility s_transformStreamDefaultControllerDesiredSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_transformStreamDefaultControllerDesiredSizeCodeLength = 339; static const JSC::Intrinsic s_transformStreamDefaultControllerDesiredSizeCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_transformStreamDefaultControllerDesiredSizeCode = "(function (){\"use strict\";if(!@isTransformStreamDefaultController(this))throw @makeThisTypeError(\"TransformStreamDefaultController\",\"enqueue\");const _=@getByIdDirectPrivate(this,\"stream\"),i=@getByIdDirectPrivate(_,\"readable\"),u=@getByIdDirectPrivate(i,\"readableStreamController\");return @readableStreamDefaultControllerGetDesiredSize(u)})\n"; +const char* const s_transformStreamDefaultControllerDesiredSizeCode = "(function (){\"use strict\";if(!@isTransformStreamDefaultController(this))throw @makeThisTypeError(\"TransformStreamDefaultController\",\"enqueue\");const _=@getByIdDirectPrivate(this,\"stream\"),u=@getByIdDirectPrivate(_,\"readable\"),i=@getByIdDirectPrivate(u,\"readableStreamController\");return @readableStreamDefaultControllerGetDesiredSize(i)})\n"; // enqueue const JSC::ConstructAbility s_transformStreamDefaultControllerEnqueueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -1986,7 +1986,7 @@ const JSC::ConstructorKind s_jsBufferConstructorFromCodeConstructorKind = JSC::C const JSC::ImplementationVisibility s_jsBufferConstructorFromCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_jsBufferConstructorFromCodeLength = 1107; static const JSC::Intrinsic s_jsBufferConstructorFromCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferConstructorFromCode = "(function (n){\"use strict\";if(@isUndefinedOrNull(n))@throwTypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object.\");if(typeof n===\"string\"||typeof n===\"object\"&&(@isTypedArrayView(n)||n instanceof @ArrayBuffer||n instanceof SharedArrayBuffer||n instanceof String))switch(@argumentCount()){case 1:return new @Buffer(n);case 2:return new @Buffer(n,@argument(1));default:return new @Buffer(n,@argument(1),@argument(2))}var d=@toObject(n,\"The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object.\");if(!@isJSArray(d)){const f=@tryGetByIdWithWellKnownSymbol(n,\"toPrimitive\");if(f){const u=f.@call(n,\"string\");if(typeof u===\"string\")switch(@argumentCount()){case 1:return new @Buffer(u);case 2:return new @Buffer(u,@argument(1));default:return new @Buffer(u,@argument(1),@argument(2))}}if(!(\"length\"in d)||@isCallable(d))@throwTypeError(\"The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object.\")}return new @Buffer(@Uint8Array.from(d).buffer)})\n"; +const char* const s_jsBufferConstructorFromCode = "(function (n){\"use strict\";if(@isUndefinedOrNull(n))@throwTypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object.\");if(typeof n===\"string\"||typeof n===\"object\"&&(@isTypedArrayView(n)||n instanceof @ArrayBuffer||n instanceof SharedArrayBuffer||n instanceof String))switch(@argumentCount()){case 1:return new @Buffer(n);case 2:return new @Buffer(n,@argument(1));default:return new @Buffer(n,@argument(1),@argument(2))}var d=@toObject(n,\"The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object.\");if(!@isJSArray(d)){const u=@tryGetByIdWithWellKnownSymbol(n,\"toPrimitive\");if(u){const f=u.@call(n,\"string\");if(typeof f===\"string\")switch(@argumentCount()){case 1:return new @Buffer(f);case 2:return new @Buffer(f,@argument(1));default:return new @Buffer(f,@argument(1),@argument(2))}}if(!(\"length\"in d)||@isCallable(d))@throwTypeError(\"The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object.\")}return new @Buffer(@Uint8Array.from(d).buffer)})\n"; // isBuffer const JSC::ConstructAbility s_jsBufferConstructorIsBufferCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2028,7 +2028,7 @@ const JSC::ConstructorKind s_readableStreamDefaultReaderReadManyCodeConstructorK const JSC::ImplementationVisibility s_readableStreamDefaultReaderReadManyCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamDefaultReaderReadManyCodeLength = 2598; static const JSC::Intrinsic s_readableStreamDefaultReaderReadManyCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamDefaultReaderReadManyCode = "(function (){\"use strict\";if(!@isReadableStreamDefaultReader(this))@throwTypeError(\"ReadableStreamDefaultReader.readMany() should not be called directly\");const S=@getByIdDirectPrivate(this,\"ownerReadableStream\");if(!S)@throwTypeError(\"readMany() called on a reader owned by no readable stream\");const k=@getByIdDirectPrivate(S,\"state\");if(@putByIdDirectPrivate(S,\"disturbed\",!0),k===@streamClosed)return{value:[],size:0,done:!0};else if(k===@streamErrored)throw @getByIdDirectPrivate(S,\"storedError\");var G=@getByIdDirectPrivate(S,\"readableStreamController\"),x=@getByIdDirectPrivate(G,\"queue\");if(!x)return G.@pull(G).@then(function({done:K,value:B}){return K\?{done:!0,value:[],size:0}:{value:[B],size:1,done:!1}});const C=x.content;var _=x.size,E=C.toArray(!1),I=E.length;if(I>0){var D=@newArrayWithSize(I);if(@isReadableByteStreamController(G)){{const K=E[0];if(!(@ArrayBuffer.@isView(K)||K instanceof @ArrayBuffer))@putByValDirect(D,0,new @Uint8Array(K.buffer,K.byteOffset,K.byteLength));else @putByValDirect(D,0,K)}for(var J=1;J{if(K.done)return{value:[],size:0,done:!0};var B=@getByIdDirectPrivate(S,\"readableStreamController\"),F=@getByIdDirectPrivate(B,\"queue\"),N=[K.value].concat(F.content.toArray(!1)),j=N.length;if(@isReadableByteStreamController(B))for(var H=0;H0){var D=@newArrayWithSize(C);if(@isReadableByteStreamController(B)){{const _=x[0];if(!(@ArrayBuffer.@isView(_)||_ instanceof @ArrayBuffer))@putByValDirect(D,0,new @Uint8Array(_.buffer,_.byteOffset,_.byteLength));else @putByValDirect(D,0,_)}for(var d=1;d{if(_.done)return{value:[],size:0,done:!0};var w=@getByIdDirectPrivate(j,\"readableStreamController\"),G=@getByIdDirectPrivate(w,\"queue\"),k=[_.value].concat(G.content.toArray(!1)),K=k.length;if(@isReadableByteStreamController(w))for(var A=0;A0}shift(){var{_head:x,_tail:g,_list:M,_capacityMask:z}=this;if(x===g)return @undefined;var A=M[x];if(@putByValDirect(M,x,@undefined),x=this._head=x+1&z,x<2&&g>1e4&&g<=M.length>>>2)this._shrinkArray();return A}peek(){if(this._head===this._tail)return @undefined;return this._list[this._head]}push(x){var g=this._tail;if(@putByValDirect(this._list,g,x),this._tail=g+1&this._capacityMask,this._tail===this._head)this._growArray()}toArray(x){var g=this._list,M=@toLength(g.length);if(x||this._head>this._tail){var z=@toLength(this._head),A=@toLength(this._tail),B=@toLength(M-z+A),E=@newArrayWithSize(B),v=0;for(var F=z;F>>=1,this._capacityMask>>>=1}}return new w})\n"; +const char* const s_streamInternalsCreateFIFOCode = "(function (){\"use strict\";var E=@Array.prototype.slice;class A{constructor(){this._head=0,this._tail=0,this._capacityMask=3,this._list=@newArrayWithSize(4)}_head;_tail;_capacityMask;_list;size(){if(this._head===this._tail)return 0;if(this._head0}shift(){var{_head:g,_tail:b,_list:x,_capacityMask:M}=this;if(g===b)return @undefined;var w=x[g];if(@putByValDirect(x,g,@undefined),g=this._head=g+1&M,g<2&&b>1e4&&b<=x.length>>>2)this._shrinkArray();return w}peek(){if(this._head===this._tail)return @undefined;return this._list[this._head]}push(g){var b=this._tail;if(@putByValDirect(this._list,b,g),this._tail=b+1&this._capacityMask,this._tail===this._head)this._growArray()}toArray(g){var b=this._list,x=@toLength(b.length);if(g||this._head>this._tail){var M=@toLength(this._head),w=@toLength(this._tail),F=@toLength(x-M+w),z=@newArrayWithSize(F),B=0;for(var v=M;v>>=1,this._capacityMask>>>=1}}return new A})\n"; // newQueue const JSC::ConstructAbility s_streamInternalsNewQueueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2158,7 +2158,7 @@ const JSC::ConstructorKind s_streamInternalsEnqueueValueWithSizeCodeConstructorK const JSC::ImplementationVisibility s_streamInternalsEnqueueValueWithSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_streamInternalsEnqueueValueWithSizeCodeLength = 161; static const JSC::Intrinsic s_streamInternalsEnqueueValueWithSizeCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_streamInternalsEnqueueValueWithSizeCode = "(function (n,d,o){\"use strict\";if(o=@toNumber(o),!@isFinite(o)||o<0)@throwRangeError(\"size has an incorrect value\");n.content.push({value:d,size:o}),n.size+=o})\n"; +const char* const s_streamInternalsEnqueueValueWithSizeCode = "(function (d,o,n){\"use strict\";if(n=@toNumber(n),!@isFinite(n)||n<0)@throwRangeError(\"size has an incorrect value\");d.content.push({value:o,size:n}),d.size+=n})\n"; // peekQueueValue const JSC::ConstructAbility s_streamInternalsPeekQueueValueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2182,7 +2182,7 @@ const JSC::ConstructorKind s_streamInternalsExtractSizeAlgorithmCodeConstructorK const JSC::ImplementationVisibility s_streamInternalsExtractSizeAlgorithmCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_streamInternalsExtractSizeAlgorithmCodeLength = 176; static const JSC::Intrinsic s_streamInternalsExtractSizeAlgorithmCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_streamInternalsExtractSizeAlgorithmCode = "(function (d){\"use strict\";const p=d.size;if(p===@undefined)return()=>1;if(typeof p!==\"function\")@throwTypeError(\"strategy.size must be a function\");return(w)=>{return p(w)}})\n"; +const char* const s_streamInternalsExtractSizeAlgorithmCode = "(function (p){\"use strict\";const d=p.size;if(d===@undefined)return()=>1;if(typeof d!==\"function\")@throwTypeError(\"strategy.size must be a function\");return(w)=>{return d(w)}})\n"; // extractHighWaterMark const JSC::ConstructAbility s_streamInternalsExtractHighWaterMarkCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2190,7 +2190,7 @@ const JSC::ConstructorKind s_streamInternalsExtractHighWaterMarkCodeConstructorK const JSC::ImplementationVisibility s_streamInternalsExtractHighWaterMarkCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_streamInternalsExtractHighWaterMarkCodeLength = 188; static const JSC::Intrinsic s_streamInternalsExtractHighWaterMarkCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_streamInternalsExtractHighWaterMarkCode = "(function (o,b){\"use strict\";const c=o.highWaterMark;if(c===@undefined)return b;if(@isNaN(c)||c<0)@throwRangeError(\"highWaterMark value is negative or not a number\");return @toNumber(c)})\n"; +const char* const s_streamInternalsExtractHighWaterMarkCode = "(function (b,c){\"use strict\";const o=b.highWaterMark;if(o===@undefined)return c;if(@isNaN(o)||o<0)@throwRangeError(\"highWaterMark value is negative or not a number\");return @toNumber(o)})\n"; // extractHighWaterMarkFromQueuingStrategyInit const JSC::ConstructAbility s_streamInternalsExtractHighWaterMarkFromQueuingStrategyInitCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2206,7 +2206,7 @@ const JSC::ConstructorKind s_streamInternalsCreateFulfilledPromiseCodeConstructo const JSC::ImplementationVisibility s_streamInternalsCreateFulfilledPromiseCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_streamInternalsCreateFulfilledPromiseCodeLength = 81; static const JSC::Intrinsic s_streamInternalsCreateFulfilledPromiseCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_streamInternalsCreateFulfilledPromiseCode = "(function (d){\"use strict\";const n=@newPromise();return @fulfillPromise(n,d),n})\n"; +const char* const s_streamInternalsCreateFulfilledPromiseCode = "(function (n){\"use strict\";const d=@newPromise();return @fulfillPromise(d,n),d})\n"; // toDictionary const JSC::ConstructAbility s_streamInternalsToDictionaryCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2232,7 +2232,7 @@ const JSC::ConstructorKind s_importMetaObjectLoadCJS2ESMCodeConstructorKind = JS const JSC::ImplementationVisibility s_importMetaObjectLoadCJS2ESMCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_importMetaObjectLoadCJS2ESMCodeLength = 1387; static const JSC::Intrinsic s_importMetaObjectLoadCJS2ESMCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_importMetaObjectLoadCJS2ESMCode = "(function (D){\"use strict\";var H=@Loader,_=@createFIFO(),I=D;while(I){var w=H.registry.@get(I);if((w\?.state\?\?0)<=@ModuleFetch)@fulfillModuleSync(I),w=H.registry.@get(I);var L=@getPromiseInternalField(w.fetch,@promiseFieldReactionsOrResult),J=H.parseModule(I,L),Q=w.module;if(J&&@isPromise(J)){var T=@getPromiseInternalField(J,@promiseFieldReactionsOrResult),x=@getPromiseInternalField(J,@promiseFieldFlags),U=x&@promiseStateMask;if(U===@promiseStatePending||T&&@isPromise(T))@throwTypeError(`require() async module \"${I}\" is unsupported. use \"await import()\" instead.`);else if(U===@promiseStateRejected){if(!T\?.message)@throwTypeError(`${T+\"\"\?T:\"An error occurred\"} occurred while parsing module \\\"${I}\\\"`);throw T}w.module=Q=T}else if(J&&!Q)w.module=Q=J;@setStateToMax(w,@ModuleLink);var V=Q.dependenciesMap,W=H.requestedModules(Q),X=@newArrayWithSize(W.length);for(var Y=0,Z=W.length;Y=@ModuleLink)I=_.shift()}var G=H.linkAndEvaluateModule(D,@undefined);if(G&&@isPromise(G))@throwTypeError(`require() async module \\\"${D}\\\" is unsupported. use \"await import()\" instead.`);return H.registry.@get(D)})\n"; +const char* const s_importMetaObjectLoadCJS2ESMCode = "(function (B){\"use strict\";var D=@Loader,H=@createFIFO(),_=B;while(_){var w=D.registry.@get(_);if((w\?.state\?\?0)<=@ModuleFetch)@fulfillModuleSync(_),w=D.registry.@get(_);var W=@getPromiseInternalField(w.fetch,@promiseFieldReactionsOrResult),x=D.parseModule(_,W),z=w.module;if(x&&@isPromise(x)){var J=@getPromiseInternalField(x,@promiseFieldReactionsOrResult),X=@getPromiseInternalField(x,@promiseFieldFlags),Q=X&@promiseStateMask;if(Q===@promiseStatePending||J&&@isPromise(J))@throwTypeError(`require() async module \"${_}\" is unsupported. use \"await import()\" instead.`);else if(Q===@promiseStateRejected){if(!J\?.message)@throwTypeError(`${J+\"\"\?J:\"An error occurred\"} occurred while parsing module \\\"${_}\\\"`);throw J}w.module=z=J}else if(x&&!z)w.module=z=x;@setStateToMax(w,@ModuleLink);var Y=z.dependenciesMap,I=D.requestedModules(z),T=@newArrayWithSize(I.length);for(var F=0,Z=I.length;F=@ModuleLink)_=H.shift()}var V=D.linkAndEvaluateModule(B,@undefined);if(V&&@isPromise(V))@throwTypeError(`require() async module \\\"${B}\\\" is unsupported. use \"await import()\" instead.`);return D.registry.@get(B)})\n"; // requireESM const JSC::ConstructAbility s_importMetaObjectRequireESMCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2240,7 +2240,7 @@ const JSC::ConstructorKind s_importMetaObjectRequireESMCodeConstructorKind = JSC const JSC::ImplementationVisibility s_importMetaObjectRequireESMCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_importMetaObjectRequireESMCodeLength = 325; static const JSC::Intrinsic s_importMetaObjectRequireESMCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_importMetaObjectRequireESMCode = "(function (a){\"use strict\";var c=@Loader.registry.@get(a);if(!c||!c.evaluated)c=@loadCJS2ESM(a);if(!c||!c.evaluated||!c.module)@throwTypeError(`require() failed to evaluate module \"${a}\". This is an internal consistentency error.`);var _=@Loader.getModuleNamespaceObject(c.module);if(_[@commonJSSymbol]===0)return;return _})\n"; +const char* const s_importMetaObjectRequireESMCode = "(function (c){\"use strict\";var a=@Loader.registry.@get(c);if(!a||!a.evaluated)a=@loadCJS2ESM(c);if(!a||!a.evaluated||!a.module)@throwTypeError(`require() failed to evaluate module \"${c}\". This is an internal consistentency error.`);var _=@Loader.getModuleNamespaceObject(a.module);if(_[@commonJSSymbol]===0)return;return _})\n"; // internalRequire const JSC::ConstructAbility s_importMetaObjectInternalRequireCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2248,7 +2248,7 @@ const JSC::ConstructorKind s_importMetaObjectInternalRequireCodeConstructorKind const JSC::ImplementationVisibility s_importMetaObjectInternalRequireCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_importMetaObjectInternalRequireCodeLength = 747; static const JSC::Intrinsic s_importMetaObjectInternalRequireCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_importMetaObjectInternalRequireCode = "(function (b){\"use strict\";var g=@requireMap.@get(b);const j=b.substring(b.length-5);if(g)return g.exports;if(j===\".json\"){var k=globalThis[Symbol.for(\"_fs\")]||=@Bun.fs(),n=JSON.parse(k.readFileSync(b,\"utf8\"));return @requireMap.@set(b,@createCommonJSModule(b,n,!0)),n}else if(j===\".node\"){const q=@createCommonJSModule(b,{},!0);return process.dlopen(q,b),@requireMap.@set(b,q),q.exports}else if(j===\".toml\"){var k=globalThis[Symbol.for(\"_fs\")]||=@Bun.fs(),n=@Bun.TOML.parse(k.readFileSync(b,\"utf8\"));return @requireMap.@set(b,@createCommonJSModule(b,n,!0)),n}else{var n=@requireESM(b);const v=@requireMap.@get(b);if(v)return v.exports;var _=n\?.default;if(_\?.[@commonJSSymbol]===0)n=_;return @requireMap.@set(b,@createCommonJSModule(b,n,!0)),n}})\n"; +const char* const s_importMetaObjectInternalRequireCode = "(function (_){\"use strict\";var n=@requireMap.@get(_);const g=_.substring(_.length-5);if(n)return n.exports;if(g===\".json\"){var j=globalThis[Symbol.for(\"_fs\")]||=@Bun.fs(),b=JSON.parse(j.readFileSync(_,\"utf8\"));return @requireMap.@set(_,@createCommonJSModule(_,b,!0)),b}else if(g===\".node\"){const k=@createCommonJSModule(_,{},!0);return process.dlopen(k,_),@requireMap.@set(_,k),k.exports}else if(g===\".toml\"){var j=globalThis[Symbol.for(\"_fs\")]||=@Bun.fs(),b=@Bun.TOML.parse(j.readFileSync(_,\"utf8\"));return @requireMap.@set(_,@createCommonJSModule(_,b,!0)),b}else{var b=@requireESM(_);const v=@requireMap.@get(_);if(v)return v.exports;var q=b\?.default;if(q\?.[@commonJSSymbol]===0)b=q;return @requireMap.@set(_,@createCommonJSModule(_,b,!0)),b}})\n"; // createRequireCache const JSC::ConstructAbility s_importMetaObjectCreateRequireCacheCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2256,7 +2256,7 @@ const JSC::ConstructorKind s_importMetaObjectCreateRequireCacheCodeConstructorKi const JSC::ImplementationVisibility s_importMetaObjectCreateRequireCacheCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_importMetaObjectCreateRequireCacheCodeLength = 854; static const JSC::Intrinsic s_importMetaObjectCreateRequireCacheCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_importMetaObjectCreateRequireCacheCode = "(function (){\"use strict\";var _=new Map,f={};return new Proxy(f,{get(h,t){const u=@requireMap.@get(t);if(u)return u;const L=@Loader.registry.@get(t);if(L\?.evaluated){const b=@Loader.getModuleNamespaceObject(L.module),c=b[@commonJSSymbol]===0||b.default\?.[@commonJSSymbol]\?b.default:b,g=@createCommonJSModule(t,c,!0);return @requireMap.@set(t,g),g}return f[t]},set(h,t,u){return @requireMap.@set(t,u),!0},has(h,t){return @requireMap.@has(t)||@Loader.registry.@has(t)},deleteProperty(h,t){return _.@delete(t),@requireMap.@delete(t),@Loader.registry.@delete(t),!0},ownKeys(h){var t=[...@requireMap.@keys()];const u=[...@Loader.registry.@keys()];for(let L of u)if(!t.includes(L))@arrayPush(t,L);return t},getPrototypeOf(h){return null},getOwnPropertyDescriptor(h,t){if(@requireMap.@has(t)||@Loader.registry.@has(t))return{configurable:!0,enumerable:!0}}})})\n"; +const char* const s_importMetaObjectCreateRequireCacheCode = "(function (){\"use strict\";var c=new Map,L={};return new Proxy(L,{get(f,_){const h=@requireMap.@get(_);if(h)return h;const t=@Loader.registry.@get(_);if(t\?.evaluated){const u=@Loader.getModuleNamespaceObject(t.module),g=u[@commonJSSymbol]===0||u.default\?.[@commonJSSymbol]\?u.default:u,b=@createCommonJSModule(_,g,!0);return @requireMap.@set(_,b),b}return L[_]},set(f,_,h){return @requireMap.@set(_,h),!0},has(f,_){return @requireMap.@has(_)||@Loader.registry.@has(_)},deleteProperty(f,_){return c.@delete(_),@requireMap.@delete(_),@Loader.registry.@delete(_),!0},ownKeys(f){var _=[...@requireMap.@keys()];const h=[...@Loader.registry.@keys()];for(let t of h)if(!_.includes(t))@arrayPush(_,t);return _},getPrototypeOf(f){return null},getOwnPropertyDescriptor(f,_){if(@requireMap.@has(_)||@Loader.registry.@has(_))return{configurable:!0,enumerable:!0}}})})\n"; // require const JSC::ConstructAbility s_importMetaObjectRequireCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2440,7 +2440,7 @@ const JSC::ConstructorKind s_readableStreamInitializeReadableStreamCodeConstruct const JSC::ImplementationVisibility s_readableStreamInitializeReadableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableStreamInitializeReadableStreamCodeLength = 2065; static const JSC::Intrinsic s_readableStreamInitializeReadableStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInitializeReadableStreamCode = "(function (f,m){\"use strict\";if(f===@undefined)f={@bunNativeType:0,@bunNativePtr:0,@lazy:!1};if(m===@undefined)m={};if(!@isObject(f))@throwTypeError(\"ReadableStream constructor takes an object as first argument\");if(m!==@undefined&&!@isObject(m))@throwTypeError(\"ReadableStream constructor takes an object as second argument, if any\");@putByIdDirectPrivate(this,\"state\",@streamReadable),@putByIdDirectPrivate(this,\"reader\",@undefined),@putByIdDirectPrivate(this,\"storedError\",@undefined),@putByIdDirectPrivate(this,\"disturbed\",!1),@putByIdDirectPrivate(this,\"readableStreamController\",null),@putByIdDirectPrivate(this,\"bunNativeType\",@getByIdDirectPrivate(f,\"bunNativeType\")\?\?0),@putByIdDirectPrivate(this,\"bunNativePtr\",@getByIdDirectPrivate(f,\"bunNativePtr\")\?\?0);const v=f.type===\"direct\",B=!!f.@lazy,I=v||B;if(@getByIdDirectPrivate(f,\"pull\")!==@undefined&&!I){const _=@getByIdDirectPrivate(m,\"size\"),b=@getByIdDirectPrivate(m,\"highWaterMark\");return @putByIdDirectPrivate(this,\"highWaterMark\",b),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@setupReadableStreamDefaultController(this,f,_,b!==@undefined\?b:1,@getByIdDirectPrivate(f,\"start\"),@getByIdDirectPrivate(f,\"pull\"),@getByIdDirectPrivate(f,\"cancel\")),this}if(v)@putByIdDirectPrivate(this,\"underlyingSource\",f),@putByIdDirectPrivate(this,\"highWaterMark\",@getByIdDirectPrivate(m,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",()=>@createReadableStreamController(this,f,m));else if(I){const _=f.autoAllocateChunkSize;@putByIdDirectPrivate(this,\"highWaterMark\",@undefined),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"highWaterMark\",_||@getByIdDirectPrivate(m,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",()=>{const b=@lazyLoadStream(this,_);if(b)@createReadableStreamController(this,b,m)})}else @putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"highWaterMark\",@getByIdDirectPrivate(m,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",@undefined),@createReadableStreamController(this,f,m);return this})\n"; +const char* const s_readableStreamInitializeReadableStreamCode = "(function (_,f){\"use strict\";if(_===@undefined)_={@bunNativeType:0,@bunNativePtr:0,@lazy:!1};if(f===@undefined)f={};if(!@isObject(_))@throwTypeError(\"ReadableStream constructor takes an object as first argument\");if(f!==@undefined&&!@isObject(f))@throwTypeError(\"ReadableStream constructor takes an object as second argument, if any\");@putByIdDirectPrivate(this,\"state\",@streamReadable),@putByIdDirectPrivate(this,\"reader\",@undefined),@putByIdDirectPrivate(this,\"storedError\",@undefined),@putByIdDirectPrivate(this,\"disturbed\",!1),@putByIdDirectPrivate(this,\"readableStreamController\",null),@putByIdDirectPrivate(this,\"bunNativeType\",@getByIdDirectPrivate(_,\"bunNativeType\")\?\?0),@putByIdDirectPrivate(this,\"bunNativePtr\",@getByIdDirectPrivate(_,\"bunNativePtr\")\?\?0);const B=_.type===\"direct\",b=!!_.@lazy,I=B||b;if(@getByIdDirectPrivate(_,\"pull\")!==@undefined&&!I){const v=@getByIdDirectPrivate(f,\"size\"),m=@getByIdDirectPrivate(f,\"highWaterMark\");return @putByIdDirectPrivate(this,\"highWaterMark\",m),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@setupReadableStreamDefaultController(this,_,v,m!==@undefined\?m:1,@getByIdDirectPrivate(_,\"start\"),@getByIdDirectPrivate(_,\"pull\"),@getByIdDirectPrivate(_,\"cancel\")),this}if(B)@putByIdDirectPrivate(this,\"underlyingSource\",_),@putByIdDirectPrivate(this,\"highWaterMark\",@getByIdDirectPrivate(f,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",()=>@createReadableStreamController(this,_,f));else if(I){const v=_.autoAllocateChunkSize;@putByIdDirectPrivate(this,\"highWaterMark\",@undefined),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"highWaterMark\",v||@getByIdDirectPrivate(f,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",()=>{const m=@lazyLoadStream(this,v);if(m)@createReadableStreamController(this,m,f)})}else @putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"highWaterMark\",@getByIdDirectPrivate(f,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",@undefined),@createReadableStreamController(this,_,f);return this})\n"; // readableStreamToArray const JSC::ConstructAbility s_readableStreamReadableStreamToArrayCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2448,7 +2448,7 @@ const JSC::ConstructorKind s_readableStreamReadableStreamToArrayCodeConstructorK const JSC::ImplementationVisibility s_readableStreamReadableStreamToArrayCodeImplementationVisibility = JSC::ImplementationVisibility::Private; const int s_readableStreamReadableStreamToArrayCodeLength = 173; static const JSC::Intrinsic s_readableStreamReadableStreamToArrayCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamReadableStreamToArrayCode = "(function (b){\"use strict\";var _=@getByIdDirectPrivate(b,\"underlyingSource\");if(_!==@undefined)return @readableStreamToArrayDirect(b,_);return @readableStreamIntoArray(b)})\n"; +const char* const s_readableStreamReadableStreamToArrayCode = "(function (_){\"use strict\";var b=@getByIdDirectPrivate(_,\"underlyingSource\");if(b!==@undefined)return @readableStreamToArrayDirect(_,b);return @readableStreamIntoArray(_)})\n"; // readableStreamToText const JSC::ConstructAbility s_readableStreamReadableStreamToTextCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2464,7 +2464,7 @@ const JSC::ConstructorKind s_readableStreamReadableStreamToArrayBufferCodeConstr const JSC::ImplementationVisibility s_readableStreamReadableStreamToArrayBufferCodeImplementationVisibility = JSC::ImplementationVisibility::Private; const int s_readableStreamReadableStreamToArrayBufferCodeLength = 270; static const JSC::Intrinsic s_readableStreamReadableStreamToArrayBufferCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamReadableStreamToArrayBufferCode = "(function (_){\"use strict\";var b=@getByIdDirectPrivate(_,\"underlyingSource\");if(b!==@undefined)return @readableStreamToArrayBufferDirect(_,b);var p=@Bun.readableStreamToArray(_);if(@isPromise(p))return p.then(@Bun.concatArrayBuffers);return @Bun.concatArrayBuffers(p)})\n"; +const char* const s_readableStreamReadableStreamToArrayBufferCode = "(function (_){\"use strict\";var p=@getByIdDirectPrivate(_,\"underlyingSource\");if(p!==@undefined)return @readableStreamToArrayBufferDirect(_,p);var b=@Bun.readableStreamToArray(_);if(@isPromise(b))return b.then(@Bun.concatArrayBuffers);return @Bun.concatArrayBuffers(b)})\n"; // readableStreamToJSON const JSC::ConstructAbility s_readableStreamReadableStreamToJSONCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2488,7 +2488,7 @@ const JSC::ConstructorKind s_readableStreamConsumeReadableStreamCodeConstructorK const JSC::ImplementationVisibility s_readableStreamConsumeReadableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Private; const int s_readableStreamConsumeReadableStreamCodeLength = 1603; static const JSC::Intrinsic s_readableStreamConsumeReadableStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamConsumeReadableStreamCode = "(function (w,x,A){\"use strict\";const B=globalThis.Symbol.for(\"Bun.consumeReadableStreamPrototype\");var j=globalThis[B];if(!j)j=globalThis[B]=[];var I=j[x];if(I===@undefined){var[k,J,K,L,G,_]=globalThis[globalThis.Symbol.for(\"Bun.lazy\")](x);I=class H{handleError;handleClosed;processResult;constructor(D,N){this.#_=N,this.#F=D,this.#$=!1,this.handleError=this._handleError.bind(this),this.handleClosed=this._handleClosed.bind(this),this.processResult=this._processResult.bind(this),D.closed.then(this.handleClosed,this.handleError)}_handleClosed(){if(this.#$)return;this.#$=!0;var D=this.#_;this.#_=0,L(D),_(D)}_handleError(D){if(this.#$)return;this.#$=!0;var N=this.#_;this.#_=0,J(N,D),_(N)}#_;#$=!1;#F;_handleReadMany({value:D,done:N,size:q}){if(N){this.handleClosed();return}if(this.#$)return;K(this.#_,D,N,q)}read(){if(!this.#_)return @throwTypeError(\"ReadableStreamSink is already closed\");return this.processResult(this.#F.read())}_processResult(D){if(D&&@isPromise(D)){if(@getPromiseInternalField(D,@promiseFieldFlags)&@promiseStateFulfilled){const q=@getPromiseInternalField(D,@promiseFieldReactionsOrResult);if(q)D=q}}if(D&&@isPromise(D))return D.then(this.processResult,this.handleError),null;if(D.done)return this.handleClosed(),0;else if(D.value)return D.value;else return-1}readMany(){if(!this.#_)return @throwTypeError(\"ReadableStreamSink is already closed\");return this.processResult(this.#F.readMany())}};const F=x+1;if(j.length{@putByIdDirectPrivate(d,\"started\",1),@assert(!@getByIdDirectPrivate(d,\"pulling\")),@assert(!@getByIdDirectPrivate(d,\"pullAgain\")),@readableByteStreamControllerCallPullIfNeeded(d)},(f)=>{if(@getByIdDirectPrivate(_,\"state\")===@streamReadable)@readableByteStreamControllerError(d,f)}),@putByIdDirectPrivate(this,\"cancel\",@readableByteStreamControllerCancel),@putByIdDirectPrivate(this,\"pull\",@readableByteStreamControllerPull),this})\n"; +const char* const s_readableByteStreamInternalsPrivateInitializeReadableByteStreamControllerCode = "(function (b,p,R){\"use strict\";if(!@isReadableStream(b))@throwTypeError(\"ReadableByteStreamController needs a ReadableStream\");if(@getByIdDirectPrivate(b,\"readableStreamController\")!==null)@throwTypeError(\"ReadableStream already has a controller\");@putByIdDirectPrivate(this,\"controlledReadableStream\",b),@putByIdDirectPrivate(this,\"underlyingByteSource\",p),@putByIdDirectPrivate(this,\"pullAgain\",!1),@putByIdDirectPrivate(this,\"pulling\",!1),@readableByteStreamControllerClearPendingPullIntos(this),@putByIdDirectPrivate(this,\"queue\",@newQueue()),@putByIdDirectPrivate(this,\"started\",0),@putByIdDirectPrivate(this,\"closeRequested\",!1);let f=@toNumber(R);if(@isNaN(f)||f<0)@throwRangeError(\"highWaterMark value is negative or not a number\");@putByIdDirectPrivate(this,\"strategyHWM\",f);let _=p.autoAllocateChunkSize;if(_!==@undefined){if(_=@toNumber(_),_<=0||_===@Infinity||_===-@Infinity)@throwRangeError(\"autoAllocateChunkSize value is negative or equal to positive or negative infinity\")}@putByIdDirectPrivate(this,\"autoAllocateChunkSize\",_),@putByIdDirectPrivate(this,\"pendingPullIntos\",@createFIFO());const v=this;return @promiseInvokeOrNoopNoCatch(@getByIdDirectPrivate(v,\"underlyingByteSource\"),\"start\",[v]).@then(()=>{@putByIdDirectPrivate(v,\"started\",1),@assert(!@getByIdDirectPrivate(v,\"pulling\")),@assert(!@getByIdDirectPrivate(v,\"pullAgain\")),@readableByteStreamControllerCallPullIfNeeded(v)},(d)=>{if(@getByIdDirectPrivate(b,\"state\")===@streamReadable)@readableByteStreamControllerError(v,d)}),@putByIdDirectPrivate(this,\"cancel\",@readableByteStreamControllerCancel),@putByIdDirectPrivate(this,\"pull\",@readableByteStreamControllerPull),this})\n"; // readableStreamByteStreamControllerStart const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamByteStreamControllerStartCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2684,7 +2684,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeLength = 248; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerCancelCode = "(function (a,p){\"use strict\";var u=@getByIdDirectPrivate(a,\"pendingPullIntos\"),_=u.peek();if(_)_.bytesFilled=0;return @putByIdDirectPrivate(a,\"queue\",@newQueue()),@promiseInvokeOrNoop(@getByIdDirectPrivate(a,\"underlyingByteSource\"),\"cancel\",[p])})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerCancelCode = "(function (a,u){\"use strict\";var _=@getByIdDirectPrivate(a,\"pendingPullIntos\"),p=_.peek();if(p)p.bytesFilled=0;return @putByIdDirectPrivate(a,\"queue\",@newQueue()),@promiseInvokeOrNoop(@getByIdDirectPrivate(a,\"underlyingByteSource\"),\"cancel\",[u])})\n"; // readableByteStreamControllerError const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2716,7 +2716,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCodeLength = 272; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCode = "(function (u){\"use strict\";const d=@getByIdDirectPrivate(u,\"controlledReadableStream\"),_=@getByIdDirectPrivate(d,\"state\");if(_===@streamErrored)return null;if(_===@streamClosed)return 0;return @getByIdDirectPrivate(u,\"strategyHWM\")-@getByIdDirectPrivate(u,\"queue\").size})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCode = "(function (u){\"use strict\";const _=@getByIdDirectPrivate(u,\"controlledReadableStream\"),d=@getByIdDirectPrivate(_,\"state\");if(d===@streamErrored)return null;if(d===@streamClosed)return 0;return @getByIdDirectPrivate(u,\"strategyHWM\")-@getByIdDirectPrivate(u,\"queue\").size})\n"; // readableStreamHasBYOBReader const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamHasBYOBReaderCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2724,7 +2724,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableStreamHasBYOBRea const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableStreamHasBYOBReaderCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableStreamHasBYOBReaderCodeLength = 125; static const JSC::Intrinsic s_readableByteStreamInternalsReadableStreamHasBYOBReaderCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableStreamHasBYOBReaderCode = "(function (n){\"use strict\";const u=@getByIdDirectPrivate(n,\"reader\");return u!==@undefined&&@isReadableStreamBYOBReader(u)})\n"; +const char* const s_readableByteStreamInternalsReadableStreamHasBYOBReaderCode = "(function (u){\"use strict\";const n=@getByIdDirectPrivate(u,\"reader\");return n!==@undefined&&@isReadableStreamBYOBReader(n)})\n"; // readableStreamHasDefaultReader const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamHasDefaultReaderCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2732,7 +2732,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableStreamHasDefault const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableStreamHasDefaultReaderCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableStreamHasDefaultReaderCodeLength = 128; static const JSC::Intrinsic s_readableByteStreamInternalsReadableStreamHasDefaultReaderCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableStreamHasDefaultReaderCode = "(function (l){\"use strict\";const n=@getByIdDirectPrivate(l,\"reader\");return n!==@undefined&&@isReadableStreamDefaultReader(n)})\n"; +const char* const s_readableByteStreamInternalsReadableStreamHasDefaultReaderCode = "(function (n){\"use strict\";const l=@getByIdDirectPrivate(n,\"reader\");return l!==@undefined&&@isReadableStreamDefaultReader(l)})\n"; // readableByteStreamControllerHandleQueueDrain const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerHandleQueueDrainCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2748,7 +2748,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerPullCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerPullCodeLength = 1005; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerPullCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerPullCode = "(function (_){\"use strict\";const h=@getByIdDirectPrivate(_,\"controlledReadableStream\");if(@assert(@readableStreamHasDefaultReader(h)),@getByIdDirectPrivate(_,\"queue\").content\?.isNotEmpty()){const F=@getByIdDirectPrivate(_,\"queue\").content.shift();@getByIdDirectPrivate(_,\"queue\").size-=F.byteLength,@readableByteStreamControllerHandleQueueDrain(_);let P;try{P=new @Uint8Array(F.buffer,F.byteOffset,F.byteLength)}catch(R){return @Promise.@reject(R)}return @createFulfilledPromise({value:P,done:!1})}if(@getByIdDirectPrivate(_,\"autoAllocateChunkSize\")!==@undefined){let F;try{F=@createUninitializedArrayBuffer(@getByIdDirectPrivate(_,\"autoAllocateChunkSize\"))}catch(R){return @Promise.@reject(R)}const P={buffer:F,byteOffset:0,byteLength:@getByIdDirectPrivate(_,\"autoAllocateChunkSize\"),bytesFilled:0,elementSize:1,ctor:@Uint8Array,readerType:\"default\"};@getByIdDirectPrivate(_,\"pendingPullIntos\").push(P)}const d=@readableStreamAddReadRequest(h);return @readableByteStreamControllerCallPullIfNeeded(_),d})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerPullCode = "(function (_){\"use strict\";const P=@getByIdDirectPrivate(_,\"controlledReadableStream\");if(@assert(@readableStreamHasDefaultReader(P)),@getByIdDirectPrivate(_,\"queue\").content\?.isNotEmpty()){const d=@getByIdDirectPrivate(_,\"queue\").content.shift();@getByIdDirectPrivate(_,\"queue\").size-=d.byteLength,@readableByteStreamControllerHandleQueueDrain(_);let h;try{h=new @Uint8Array(d.buffer,d.byteOffset,d.byteLength)}catch(F){return @Promise.@reject(F)}return @createFulfilledPromise({value:h,done:!1})}if(@getByIdDirectPrivate(_,\"autoAllocateChunkSize\")!==@undefined){let d;try{d=@createUninitializedArrayBuffer(@getByIdDirectPrivate(_,\"autoAllocateChunkSize\"))}catch(F){return @Promise.@reject(F)}const h={buffer:d,byteOffset:0,byteLength:@getByIdDirectPrivate(_,\"autoAllocateChunkSize\"),bytesFilled:0,elementSize:1,ctor:@Uint8Array,readerType:\"default\"};@getByIdDirectPrivate(_,\"pendingPullIntos\").push(h)}const R=@readableStreamAddReadRequest(P);return @readableByteStreamControllerCallPullIfNeeded(_),R})\n"; // readableByteStreamControllerShouldCallPull const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerShouldCallPullCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2788,7 +2788,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCodeLength = 1076; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCode = "(function (i,_){\"use strict\";const f=@getByIdDirectPrivate(i,\"controlledReadableStream\");switch(@assert(!@getByIdDirectPrivate(i,\"closeRequested\")),@assert(@getByIdDirectPrivate(f,\"state\")===@streamReadable),@getByIdDirectPrivate(f,\"reader\")\?@readableStreamReaderKind(@getByIdDirectPrivate(f,\"reader\")):0){case 1:{if(!@getByIdDirectPrivate(@getByIdDirectPrivate(f,\"reader\"),\"readRequests\")\?.isNotEmpty())@readableByteStreamControllerEnqueueChunk(i,@transferBufferToCurrentRealm(_.buffer),_.byteOffset,_.byteLength);else{@assert(!@getByIdDirectPrivate(i,\"queue\").content.size());const d=_.constructor===@Uint8Array\?_:new @Uint8Array(_.buffer,_.byteOffset,_.byteLength);@readableStreamFulfillReadRequest(f,d,!1)}break}case 2:{@readableByteStreamControllerEnqueueChunk(i,@transferBufferToCurrentRealm(_.buffer),_.byteOffset,_.byteLength),@readableByteStreamControllerProcessPullDescriptors(i);break}case 3:break;default:{@assert(!@isReadableStreamLocked(f)),@readableByteStreamControllerEnqueueChunk(i,@transferBufferToCurrentRealm(_.buffer),_.byteOffset,_.byteLength);break}}})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCode = "(function (d,i){\"use strict\";const _=@getByIdDirectPrivate(d,\"controlledReadableStream\");switch(@assert(!@getByIdDirectPrivate(d,\"closeRequested\")),@assert(@getByIdDirectPrivate(_,\"state\")===@streamReadable),@getByIdDirectPrivate(_,\"reader\")\?@readableStreamReaderKind(@getByIdDirectPrivate(_,\"reader\")):0){case 1:{if(!@getByIdDirectPrivate(@getByIdDirectPrivate(_,\"reader\"),\"readRequests\")\?.isNotEmpty())@readableByteStreamControllerEnqueueChunk(d,@transferBufferToCurrentRealm(i.buffer),i.byteOffset,i.byteLength);else{@assert(!@getByIdDirectPrivate(d,\"queue\").content.size());const f=i.constructor===@Uint8Array\?i:new @Uint8Array(i.buffer,i.byteOffset,i.byteLength);@readableStreamFulfillReadRequest(_,f,!1)}break}case 2:{@readableByteStreamControllerEnqueueChunk(d,@transferBufferToCurrentRealm(i.buffer),i.byteOffset,i.byteLength),@readableByteStreamControllerProcessPullDescriptors(d);break}case 3:break;default:{@assert(!@isReadableStreamLocked(_)),@readableByteStreamControllerEnqueueChunk(d,@transferBufferToCurrentRealm(i.buffer),i.byteOffset,i.byteLength);break}}})\n"; // readableByteStreamControllerEnqueueChunk const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2796,7 +2796,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCodeLength = 160; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCode = "(function (_,a,d,p){\"use strict\";@getByIdDirectPrivate(_,\"queue\").content.push({buffer:a,byteOffset:d,byteLength:p}),@getByIdDirectPrivate(_,\"queue\").size+=p})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCode = "(function (_,d,p,a){\"use strict\";@getByIdDirectPrivate(_,\"queue\").content.push({buffer:d,byteOffset:p,byteLength:a}),@getByIdDirectPrivate(_,\"queue\").size+=a})\n"; // readableByteStreamControllerRespondWithNewView const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2804,7 +2804,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCodeLength = 417; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCode = "(function (u,a){\"use strict\";@assert(@getByIdDirectPrivate(u,\"pendingPullIntos\").isNotEmpty());let d=@getByIdDirectPrivate(u,\"pendingPullIntos\").peek();if(d.byteOffset+d.bytesFilled!==a.byteOffset)@throwRangeError(\"Invalid value for view.byteOffset\");if(d.byteLength!==a.byteLength)@throwRangeError(\"Invalid value for view.byteLength\");d.buffer=a.buffer,@readableByteStreamControllerRespondInternal(u,a.byteLength)})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCode = "(function (d,u){\"use strict\";@assert(@getByIdDirectPrivate(d,\"pendingPullIntos\").isNotEmpty());let a=@getByIdDirectPrivate(d,\"pendingPullIntos\").peek();if(a.byteOffset+a.bytesFilled!==u.byteOffset)@throwRangeError(\"Invalid value for view.byteOffset\");if(a.byteLength!==u.byteLength)@throwRangeError(\"Invalid value for view.byteLength\");a.buffer=u.buffer,@readableByteStreamControllerRespondInternal(d,u.byteLength)})\n"; // readableByteStreamControllerRespond const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2812,7 +2812,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerRespondCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerRespondCodeLength = 251; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerRespondCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondCode = "(function (u,I){\"use strict\";if(I=@toNumber(I),@isNaN(I)||I===@Infinity||I<0)@throwRangeError(\"bytesWritten has an incorrect value\");@assert(@getByIdDirectPrivate(u,\"pendingPullIntos\").isNotEmpty()),@readableByteStreamControllerRespondInternal(u,I)})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondCode = "(function (I,u){\"use strict\";if(u=@toNumber(u),@isNaN(u)||u===@Infinity||u<0)@throwRangeError(\"bytesWritten has an incorrect value\");@assert(@getByIdDirectPrivate(I,\"pendingPullIntos\").isNotEmpty()),@readableByteStreamControllerRespondInternal(I,u)})\n"; // readableByteStreamControllerRespondInternal const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2828,7 +2828,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCodeLength = 799; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCode = "(function (f,R,w){\"use strict\";if(w.bytesFilled+R>w.byteLength)@throwRangeError(\"bytesWritten value is too great\");if(@assert(@getByIdDirectPrivate(f,\"pendingPullIntos\").isEmpty()||@getByIdDirectPrivate(f,\"pendingPullIntos\").peek()===w),@readableByteStreamControllerInvalidateBYOBRequest(f),w.bytesFilled+=R,w.bytesFilled0){const g=w.byteOffset+w.bytesFilled,h=@cloneArrayBuffer(w.buffer,g-_,_);@readableByteStreamControllerEnqueueChunk(f,h,0,h.byteLength)}w.buffer=@transferBufferToCurrentRealm(w.buffer),w.bytesFilled-=_,@readableByteStreamControllerCommitDescriptor(@getByIdDirectPrivate(f,\"controlledReadableStream\"),w),@readableByteStreamControllerProcessPullDescriptors(f)})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCode = "(function (w,_,f){\"use strict\";if(f.bytesFilled+_>f.byteLength)@throwRangeError(\"bytesWritten value is too great\");if(@assert(@getByIdDirectPrivate(w,\"pendingPullIntos\").isEmpty()||@getByIdDirectPrivate(w,\"pendingPullIntos\").peek()===f),@readableByteStreamControllerInvalidateBYOBRequest(w),f.bytesFilled+=_,f.bytesFilled0){const h=f.byteOffset+f.bytesFilled,g=@cloneArrayBuffer(f.buffer,h-R,R);@readableByteStreamControllerEnqueueChunk(w,g,0,g.byteLength)}f.buffer=@transferBufferToCurrentRealm(f.buffer),f.bytesFilled-=R,@readableByteStreamControllerCommitDescriptor(@getByIdDirectPrivate(w,\"controlledReadableStream\"),f),@readableByteStreamControllerProcessPullDescriptors(w)})\n"; // readableByteStreamControllerRespondInClosedState const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2852,7 +2852,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeLength = 970; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCode = "(function (_,q){\"use strict\";const z=q.bytesFilled-q.bytesFilled%q.elementSize,j=@getByIdDirectPrivate(_,\"queue\").sizez)G=k-q.bytesFilled,v=!0;while(G>0){let H=@getByIdDirectPrivate(_,\"queue\").content.peek();const w=G0),@assert(q.bytesFilledH)v=G-_.bytesFilled,w=!0;while(v>0){let j=@getByIdDirectPrivate(q,\"queue\").content.peek();const k=v0),@assert(_.bytesFilled<_.elementSize);return w})\n"; // readableByteStreamControllerShiftPendingDescriptor const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerShiftPendingDescriptorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2892,7 +2892,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableStreamFulfillRea const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableStreamFulfillReadIntoRequestCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableStreamFulfillReadIntoRequestCodeLength = 161; static const JSC::Intrinsic s_readableByteStreamInternalsReadableStreamFulfillReadIntoRequestCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableStreamFulfillReadIntoRequestCode = "(function (l,p,_){\"use strict\";const i=@getByIdDirectPrivate(@getByIdDirectPrivate(l,\"reader\"),\"readIntoRequests\").shift();@fulfillPromise(i,{value:p,done:_})})\n"; +const char* const s_readableByteStreamInternalsReadableStreamFulfillReadIntoRequestCode = "(function (l,i,p){\"use strict\";const _=@getByIdDirectPrivate(@getByIdDirectPrivate(l,\"reader\"),\"readIntoRequests\").shift();@fulfillPromise(_,{value:i,done:p})})\n"; // readableStreamBYOBReaderRead const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamBYOBReaderReadCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2900,7 +2900,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableStreamBYOBReader const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableStreamBYOBReaderReadCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableStreamBYOBReaderReadCodeLength = 356; static const JSC::Intrinsic s_readableByteStreamInternalsReadableStreamBYOBReaderReadCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableStreamBYOBReaderReadCode = "(function (o,c){\"use strict\";const l=@getByIdDirectPrivate(o,\"ownerReadableStream\");if(@assert(!!l),@putByIdDirectPrivate(l,\"disturbed\",!0),@getByIdDirectPrivate(l,\"state\")===@streamErrored)return @Promise.@reject(@getByIdDirectPrivate(l,\"storedError\"));return @readableByteStreamControllerPullInto(@getByIdDirectPrivate(l,\"readableStreamController\"),c)})\n"; +const char* const s_readableByteStreamInternalsReadableStreamBYOBReaderReadCode = "(function (c,l){\"use strict\";const o=@getByIdDirectPrivate(c,\"ownerReadableStream\");if(@assert(!!o),@putByIdDirectPrivate(o,\"disturbed\",!0),@getByIdDirectPrivate(o,\"state\")===@streamErrored)return @Promise.@reject(@getByIdDirectPrivate(o,\"storedError\"));return @readableByteStreamControllerPullInto(@getByIdDirectPrivate(o,\"readableStreamController\"),l)})\n"; // readableByteStreamControllerPullInto const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2908,7 +2908,7 @@ const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamContro const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCodeLength = 1255; static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCode = "(function (_,E){\"use strict\";const b=@getByIdDirectPrivate(_,\"controlledReadableStream\");let d=1;if(E.BYTES_PER_ELEMENT!==@undefined)d=E.BYTES_PER_ELEMENT;const k=E.constructor,A={buffer:E.buffer,byteOffset:E.byteOffset,byteLength:E.byteLength,bytesFilled:0,elementSize:d,ctor:k,readerType:\"byob\"};var L=@getByIdDirectPrivate(_,\"pendingPullIntos\");if(L\?.isNotEmpty())return A.buffer=@transferBufferToCurrentRealm(A.buffer),L.push(A),@readableStreamAddReadIntoRequest(b);if(@getByIdDirectPrivate(b,\"state\")===@streamClosed){const R=new k(A.buffer,A.byteOffset,0);return @createFulfilledPromise({value:R,done:!0})}if(@getByIdDirectPrivate(_,\"queue\").size>0){if(@readableByteStreamControllerFillDescriptorFromQueue(_,A)){const R=@readableByteStreamControllerConvertDescriptor(A);return @readableByteStreamControllerHandleQueueDrain(_),@createFulfilledPromise({value:R,done:!1})}if(@getByIdDirectPrivate(_,\"closeRequested\")){const R=@makeTypeError(\"Closing stream has been requested\");return @readableByteStreamControllerError(_,R),@Promise.@reject(R)}}A.buffer=@transferBufferToCurrentRealm(A.buffer),@getByIdDirectPrivate(_,\"pendingPullIntos\").push(A);const N=@readableStreamAddReadIntoRequest(b);return @readableByteStreamControllerCallPullIfNeeded(_),N})\n"; +const char* const s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCode = "(function (b,d){\"use strict\";const A=@getByIdDirectPrivate(b,\"controlledReadableStream\");let E=1;if(d.BYTES_PER_ELEMENT!==@undefined)E=d.BYTES_PER_ELEMENT;const L=d.constructor,_={buffer:d.buffer,byteOffset:d.byteOffset,byteLength:d.byteLength,bytesFilled:0,elementSize:E,ctor:L,readerType:\"byob\"};var N=@getByIdDirectPrivate(b,\"pendingPullIntos\");if(N\?.isNotEmpty())return _.buffer=@transferBufferToCurrentRealm(_.buffer),N.push(_),@readableStreamAddReadIntoRequest(A);if(@getByIdDirectPrivate(A,\"state\")===@streamClosed){const k=new L(_.buffer,_.byteOffset,0);return @createFulfilledPromise({value:k,done:!0})}if(@getByIdDirectPrivate(b,\"queue\").size>0){if(@readableByteStreamControllerFillDescriptorFromQueue(b,_)){const k=@readableByteStreamControllerConvertDescriptor(_);return @readableByteStreamControllerHandleQueueDrain(b),@createFulfilledPromise({value:k,done:!1})}if(@getByIdDirectPrivate(b,\"closeRequested\")){const k=@makeTypeError(\"Closing stream has been requested\");return @readableByteStreamControllerError(b,k),@Promise.@reject(k)}}_.buffer=@transferBufferToCurrentRealm(_.buffer),@getByIdDirectPrivate(b,\"pendingPullIntos\").push(_);const R=@readableStreamAddReadIntoRequest(A);return @readableByteStreamControllerCallPullIfNeeded(b),R})\n"; // readableStreamAddReadIntoRequest const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamAddReadIntoRequestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; @@ -2942,7 +2942,7 @@ const JSC::ConstructorKind s_writableStreamDefaultControllerErrorCodeConstructor const JSC::ImplementationVisibility s_writableStreamDefaultControllerErrorCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_writableStreamDefaultControllerErrorCodeLength = 301; static const JSC::Intrinsic s_writableStreamDefaultControllerErrorCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_writableStreamDefaultControllerErrorCode = "(function (t){\"use strict\";if(@getByIdDirectPrivate(this,\"abortSteps\")===@undefined)throw @makeThisTypeError(\"WritableStreamDefaultController\",\"error\");const r=@getByIdDirectPrivate(this,\"stream\");if(@getByIdDirectPrivate(r,\"state\")!==\"writable\")return;@writableStreamDefaultControllerError(this,t)})\n"; +const char* const s_writableStreamDefaultControllerErrorCode = "(function (r){\"use strict\";if(@getByIdDirectPrivate(this,\"abortSteps\")===@undefined)throw @makeThisTypeError(\"WritableStreamDefaultController\",\"error\");const t=@getByIdDirectPrivate(this,\"stream\");if(@getByIdDirectPrivate(t,\"state\")!==\"writable\")return;@writableStreamDefaultControllerError(this,r)})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ @@ -2960,7 +2960,7 @@ const JSC::ConstructorKind s_eventSourceGetEventSourceCodeConstructorKind = JSC: const JSC::ImplementationVisibility s_eventSourceGetEventSourceCodeImplementationVisibility = JSC::ImplementationVisibility::Public; const int s_eventSourceGetEventSourceCodeLength = 5477; static const JSC::Intrinsic s_eventSourceGetEventSourceCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_eventSourceGetEventSourceCode = "(function (){\"use strict\";class F extends EventTarget{#$;#j;#w;#A;#B;#F=!1;#G=null;#J=\"\";#K=\"\";#L=\"\";#M=!0;#O=0;#Q=0;#U=0;#V=null;static#W(W){W.#H()}static#X(W,Y){const O=W.data,Z=O.#L\?`Last-Event-ID: ${O.#L}\\r\\n`:\"\",j=`GET ${Y.pathname}${Y.search} HTTP/1.1\\r\\nHost: bun\\r\\nContent-type: text/event-stream\\r\\nContent-length: 0\\r\\n${Z}\\r\\n`,G=W.write(j);if(G!==j.length)O.#K=j.substring(G)}static#Y(W,Y,O){for(;;){if(O>=Y.length)return;let Z=-1,j=Y.indexOf(\"\\r\\n\",O);const G=j+2;if(j>0)if(W.#O===0){const w=parseInt(Y.substring(O,j),16);if(w===0){W.#j=2,W.#G\?.end();return}Z=G+w}else Z=Y.length;else{if(W.#J.length===0){W.#J+=Y.substring(O);return}Z=Y.length}let z=Y.substring(G,Z);O=Z+2;let B=0,J=z.indexOf(\"\\n\\n\");if(J==-1){W.#J+=Y.substring(G);return}if(W.#J.length)W.#J+=z,z=W.#J,W.#J=\"\";let K=!0;while(K){const w=z.substring(B,J);let Q,L=\"\",X,A=0,U=-1;for(;;){let V=w.indexOf(\"\\n\",A);if(V===-1){if(A>=w.length)break;V=w.length}const H=w.substring(A,V);if(H.startsWith(\"data:\"))if(L.length)L+=`\\n${H.substring(5).trim()}`;else L=H.substring(5).trim();else if(H.startsWith(\"event:\"))Q=H.substring(6).trim();else if(H.startsWith(\"id:\"))X=H.substring(3).trim();else if(H.startsWith(\"retry:\")){if(U=parseInt(H.substring(6).trim(),10),@isNaN(U))U=-1}A=V+1}if(W.#L=X||\"\",U>=0)W.#U=U;if(L||X||Q)W.dispatchEvent(new MessageEvent(Q||\"message\",{data:L||\"\",origin:W.#$.origin,source:W,lastEventId:X}));if(z.length===J+2){K=!1;break}const M=z.indexOf(\"\\n\\n\",J+1);if(M===-1)break;B=J,J=M}}}static#Z={open(W){const Y=W.data;if(Y.#G=W,!Y.#F)F.#X(W,Y.#$)},handshake(W,Y,O){const Z=W.data;if(Y)F.#X(W,Z.#$);else Z.#j=2,Z.dispatchEvent(new ErrorEvent(\"error\",{error:O})),W.end()},data(W,Y){const O=W.data;switch(O.#j){case 0:{let Z=Y.toString();const j=Z.indexOf(\"\\r\\n\\r\\n\");if(j===-1){O.#J+=Z;return}if(O.#J.length)O.#J+=Z,Z=O.#J,O.#J=\"\";const G=Z.substring(0,j),z=G.indexOf(\"\\r\\n\");if(z===-1){O.#j=2,O.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Invalid HTTP request\")})),W.end();return}const B=G.substring(0,z);if(B!==\"HTTP/1.1 200 OK\"){O.#j=2,O.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(B)})),W.end();return}let J=z+1,K=!1,w=-1;for(;;){let L=G.indexOf(\"\\r\\n\",J);if(L===-1){if(J>=G.length){if(!K)O.#j=2,O.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's response has no MIME type and \"text/event-stream\" is required. Aborting the connection.`)})),W.end();return}L=G.length}const X=G.substring(J+1,L),A=X.indexOf(\":\"),U=X.substring(0,A),M=U.localeCompare(\"content-type\",@undefined,{sensitivity:\"accent\"})===0;if(J=L+1,M)if(X.endsWith(\" text/event-stream\"))K=!0;else{O.#j=2,O.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's response has a MIME type that is not \"text/event-stream\". Aborting the connection.`)})),W.end();return}else if(U.localeCompare(\"content-length\",@undefined,{sensitivity:\"accent\"})===0){if(w=parseInt(X.substring(A+1).trim(),10),@isNaN(w)||w<=0){O.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's Content-Length is invalid. Aborting the connection.`)})),W.end();return}if(K)break}else if(U.localeCompare(\"transfer-encoding\",@undefined,{sensitivity:\"accent\"})===0){if(X.substring(A+1).trim()!==\"chunked\"){O.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's Transfer-Encoding is invalid. Aborting the connection.`)})),W.end();return}if(w=0,K)break}}O.#O=w,O.#j=1,O.dispatchEvent(new Event(\"open\"));const Q=Z.substring(j+4);if(F.#Y(O,Q,0),O.#O>0){if(O.#Q+=Q.length,O.#Q>=O.#O)O.#j=2,W.end()}return}case 1:if(F.#Y(O,Y.toString(),2),O.#O>0){if(O.#Q+=Y.byteLength,O.#Q>=O.#O)O.#j=2,W.end()}return;default:break}},drain(W){const Y=W.data;if(Y.#j===0){const O=Y.#J;if(O.length){const Z=W.write(O);if(Z!==O.length)W.data.#K=O.substring(Z);else W.data.#K=\"\"}}},close:F.#z,end(W){F.#z(W).dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Connection closed by server\")}))},timeout(W){F.#z(W).dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Timeout\")}))},binaryType:\"buffer\"};static#z(W){const Y=W.data;if(Y.#G=null,Y.#Q=0,Y.#j=2,Y.#M){if(Y.#V)clearTimeout(Y.#V);Y.#V=setTimeout(F.#W,Y.#U,Y)}return Y}constructor(W,Y=@undefined){super();const O=new URL(W);this.#F=O.protocol===\"https:\",this.#$=O,this.#j=2,process.nextTick(F.#W,this)}ref(){this.#V\?.ref(),this.#G\?.ref()}unref(){this.#V\?.unref(),this.#G\?.unref()}#H(){if(this.#j!==2)return;const W=this.#$,Y=this.#F;this.#j=0,@Bun.connect({data:this,socket:F.#Z,hostname:W.hostname,port:parseInt(W.port||(Y\?\"443\":\"80\"),10),tls:Y\?{requestCert:!0,rejectUnauthorized:!1}:!1}).catch((O)=>{if(super.dispatchEvent(new ErrorEvent(\"error\",{error:O})),this.#M){if(this.#V)this.#V.unref\?.();this.#V=setTimeout(F.#W,1000,this)}})}get url(){return this.#$.href}get readyState(){return this.#j}close(){this.#M=!1,this.#j=2,this.#G\?.unref(),this.#G\?.end()}get onopen(){return this.#B}get onerror(){return this.#w}get onmessage(){return this.#A}set onopen(W){if(this.#B)super.removeEventListener(\"close\",this.#B);super.addEventListener(\"open\",W),this.#B=W}set onerror(W){if(this.#w)super.removeEventListener(\"error\",this.#w);super.addEventListener(\"error\",W),this.#w=W}set onmessage(W){if(this.#A)super.removeEventListener(\"message\",this.#A);super.addEventListener(\"message\",W),this.#A=W}}return Object.defineProperty(F.prototype,\"CONNECTING\",{enumerable:!0,value:0}),Object.defineProperty(F.prototype,\"OPEN\",{enumerable:!0,value:1}),Object.defineProperty(F.prototype,\"CLOSED\",{enumerable:!0,value:2}),F[Symbol.for(\"CommonJS\")]=0,F})\n"; +const char* const s_eventSourceGetEventSourceCode = "(function (){\"use strict\";class F extends EventTarget{#B;#$;#J;#K;#L;#M=!1;#A=null;#j=\"\";#O=\"\";#Q=\"\";#U=!0;#F=0;#G=0;#X=0;#w=null;static#V(j){j.#H()}static#Y(j,A){const w=j.data,B=w.#Q\?`Last-Event-ID: ${w.#Q}\\r\\n`:\"\",K=`GET ${A.pathname}${A.search} HTTP/1.1\\r\\nHost: bun\\r\\nContent-type: text/event-stream\\r\\nContent-length: 0\\r\\n${B}\\r\\n`,G=j.write(K);if(G!==K.length)w.#O=K.substring(G)}static#Z(j,A,w){for(;;){if(w>=A.length)return;let B=-1,K=A.indexOf(\"\\r\\n\",w);const G=K+2;if(K>0)if(j.#F===0){const J=parseInt(A.substring(w,K),16);if(J===0){j.#$=2,j.#A\?.end();return}B=G+J}else B=A.length;else{if(j.#j.length===0){j.#j+=A.substring(w);return}B=A.length}let M=A.substring(G,B);w=B+2;let Z=0,L=M.indexOf(\"\\n\\n\");if(L==-1){j.#j+=A.substring(G);return}if(j.#j.length)j.#j+=M,M=j.#j,j.#j=\"\";let X=!0;while(X){const J=M.substring(Z,L);let Y,O=\"\",Q,W=0,V=-1;for(;;){let z=J.indexOf(\"\\n\",W);if(z===-1){if(W>=J.length)break;z=J.length}const U=J.substring(W,z);if(U.startsWith(\"data:\"))if(O.length)O+=`\\n${U.substring(5).trim()}`;else O=U.substring(5).trim();else if(U.startsWith(\"event:\"))Y=U.substring(6).trim();else if(U.startsWith(\"id:\"))Q=U.substring(3).trim();else if(U.startsWith(\"retry:\")){if(V=parseInt(U.substring(6).trim(),10),@isNaN(V))V=-1}W=z+1}if(j.#Q=Q||\"\",V>=0)j.#X=V;if(O||Q||Y)j.dispatchEvent(new MessageEvent(Y||\"message\",{data:O||\"\",origin:j.#B.origin,source:j,lastEventId:Q}));if(M.length===L+2){X=!1;break}const H=M.indexOf(\"\\n\\n\",L+1);if(H===-1)break;Z=L,L=H}}}static#z={open(j){const A=j.data;if(A.#A=j,!A.#M)F.#Y(j,A.#B)},handshake(j,A,w){const B=j.data;if(A)F.#Y(j,B.#B);else B.#$=2,B.dispatchEvent(new ErrorEvent(\"error\",{error:w})),j.end()},data(j,A){const w=j.data;switch(w.#$){case 0:{let B=A.toString();const K=B.indexOf(\"\\r\\n\\r\\n\");if(K===-1){w.#j+=B;return}if(w.#j.length)w.#j+=B,B=w.#j,w.#j=\"\";const G=B.substring(0,K),M=G.indexOf(\"\\r\\n\");if(M===-1){w.#$=2,w.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Invalid HTTP request\")})),j.end();return}const Z=G.substring(0,M);if(Z!==\"HTTP/1.1 200 OK\"){w.#$=2,w.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(Z)})),j.end();return}let L=M+1,X=!1,J=-1;for(;;){let O=G.indexOf(\"\\r\\n\",L);if(O===-1){if(L>=G.length){if(!X)w.#$=2,w.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's response has no MIME type and \"text/event-stream\" is required. Aborting the connection.`)})),j.end();return}O=G.length}const Q=G.substring(L+1,O),W=Q.indexOf(\":\"),V=Q.substring(0,W),H=V.localeCompare(\"content-type\",@undefined,{sensitivity:\"accent\"})===0;if(L=O+1,H)if(Q.endsWith(\" text/event-stream\"))X=!0;else{w.#$=2,w.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's response has a MIME type that is not \"text/event-stream\". Aborting the connection.`)})),j.end();return}else if(V.localeCompare(\"content-length\",@undefined,{sensitivity:\"accent\"})===0){if(J=parseInt(Q.substring(W+1).trim(),10),@isNaN(J)||J<=0){w.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's Content-Length is invalid. Aborting the connection.`)})),j.end();return}if(X)break}else if(V.localeCompare(\"transfer-encoding\",@undefined,{sensitivity:\"accent\"})===0){if(Q.substring(W+1).trim()!==\"chunked\"){w.dispatchEvent(new ErrorEvent(\"error\",{error:new Error(`EventSource's Transfer-Encoding is invalid. Aborting the connection.`)})),j.end();return}if(J=0,X)break}}w.#F=J,w.#$=1,w.dispatchEvent(new Event(\"open\"));const Y=B.substring(K+4);if(F.#Z(w,Y,0),w.#F>0){if(w.#G+=Y.length,w.#G>=w.#F)w.#$=2,j.end()}return}case 1:if(F.#Z(w,A.toString(),2),w.#F>0){if(w.#G+=A.byteLength,w.#G>=w.#F)w.#$=2,j.end()}return;default:break}},drain(j){const A=j.data;if(A.#$===0){const w=A.#j;if(w.length){const B=j.write(w);if(B!==w.length)j.data.#O=w.substring(B);else j.data.#O=\"\"}}},close:F.#W,end(j){F.#W(j).dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Connection closed by server\")}))},timeout(j){F.#W(j).dispatchEvent(new ErrorEvent(\"error\",{error:new Error(\"Timeout\")}))},binaryType:\"buffer\"};static#W(j){const A=j.data;if(A.#A=null,A.#G=0,A.#$=2,A.#U){if(A.#w)clearTimeout(A.#w);A.#w=setTimeout(F.#V,A.#X,A)}return A}constructor(j,A=@undefined){super();const w=new URL(j);this.#M=w.protocol===\"https:\",this.#B=w,this.#$=2,process.nextTick(F.#V,this)}ref(){this.#w\?.ref(),this.#A\?.ref()}unref(){this.#w\?.unref(),this.#A\?.unref()}#H(){if(this.#$!==2)return;const j=this.#B,A=this.#M;this.#$=0,@Bun.connect({data:this,socket:F.#z,hostname:j.hostname,port:parseInt(j.port||(A\?\"443\":\"80\"),10),tls:A\?{requestCert:!0,rejectUnauthorized:!1}:!1}).catch((w)=>{if(super.dispatchEvent(new ErrorEvent(\"error\",{error:w})),this.#U){if(this.#w)this.#w.unref\?.();this.#w=setTimeout(F.#V,1000,this)}})}get url(){return this.#B.href}get readyState(){return this.#$}close(){this.#U=!1,this.#$=2,this.#A\?.unref(),this.#A\?.end()}get onopen(){return this.#L}get onerror(){return this.#J}get onmessage(){return this.#K}set onopen(j){if(this.#L)super.removeEventListener(\"close\",this.#L);super.addEventListener(\"open\",j),this.#L=j}set onerror(j){if(this.#J)super.removeEventListener(\"error\",this.#J);super.addEventListener(\"error\",j),this.#J=j}set onmessage(j){if(this.#K)super.removeEventListener(\"message\",this.#K);super.addEventListener(\"message\",j),this.#K=j}}return Object.defineProperty(F.prototype,\"CONNECTING\",{enumerable:!0,value:0}),Object.defineProperty(F.prototype,\"OPEN\",{enumerable:!0,value:1}),Object.defineProperty(F.prototype,\"CLOSED\",{enumerable:!0,value:2}),F[Symbol.for(\"CommonJS\")]=0,F})\n"; #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ diff --git a/test/js/node/process/process.test.js b/test/js/node/process/process.test.js index 51825b2b4..890f5032e 100644 --- a/test/js/node/process/process.test.js +++ b/test/js/node/process/process.test.js @@ -401,6 +401,33 @@ describe("signal", () => { expect(await child.exited).toBe(0); expect(await new Response(child.stdout).text()).toBe("PASS\n"); }); + + it("process.kill(2) works", async () => { + const child = Bun.spawn({ + cmd: ["bash", "-c", "sleep 1000000"], + stdout: "pipe", + }); + const prom = child.exited; + process.kill(child.pid, "SIGTERM"); + await prom; + expect(child.signalCode).toBe("SIGTERM"); + }); + + it("process._kill(2) works", async () => { + const child = Bun.spawn({ + cmd: ["bash", "-c", "sleep 1000000"], + stdout: "pipe", + }); + const prom = child.exited; + process.kill(child.pid, 9); + await prom; + expect(child.signalCode).toBe("SIGKILL"); + }); + + it("process.kill(2) throws on invalid input", async () => { + expect(() => process.kill(0, "SIGPOOP")).toThrow(); + expect(() => process.kill(0, 456)).toThrow(); + }); }); const undefinedStubs = [ -- cgit v1.2.3