react-native-audio-api 0.4.12-beta.3 → 0.4.12-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/RNAudioAPI.podspec +5 -23
- package/lib/module/api.js +31 -0
- package/lib/module/api.js.map +1 -0
- package/lib/module/{index.web.js → api.web.js} +3 -1
- package/lib/module/api.web.js.map +1 -0
- package/lib/module/index.js +1 -28
- package/lib/module/index.js.map +1 -1
- package/lib/module/web-core/AudioBuffer.js +1 -1
- package/lib/module/web-core/AudioBuffer.js.map +1 -1
- package/lib/module/web-core/AudioContext.js +7 -0
- package/lib/module/web-core/AudioContext.js.map +1 -1
- package/lib/module/web-core/StretcherNode.js +64 -0
- package/lib/module/web-core/StretcherNode.js.map +1 -0
- package/lib/module/web-core/custom/LoadCustomWasm.js +33 -0
- package/lib/module/web-core/custom/LoadCustomWasm.js.map +1 -0
- package/lib/module/web-core/custom/index.js +4 -0
- package/lib/module/web-core/custom/index.js.map +1 -0
- package/lib/module/web-core/custom/signalsmithStretch/LICENSE.txt +21 -0
- package/lib/module/web-core/custom/signalsmithStretch/README.md +46 -0
- package/lib/module/web-core/custom/signalsmithStretch/SignalsmithStretch.js +822 -0
- package/lib/module/web-core/custom/signalsmithStretch/SignalsmithStretch.js.map +1 -0
- package/lib/module/web-core/custom/signalsmithStretch/SignalsmithStretch.mjs +826 -0
- package/lib/module/web-core/custom/signalsmithStretch/SignalsmithStretch.mjs.map +1 -0
- package/lib/typescript/api.d.ts +21 -0
- package/lib/typescript/api.d.ts.map +1 -0
- package/lib/typescript/{index.web.d.ts → api.web.d.ts} +3 -1
- package/lib/typescript/api.web.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +1 -20
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/web-core/AudioBuffer.d.ts +1 -1
- package/lib/typescript/web-core/AudioBuffer.d.ts.map +1 -1
- package/lib/typescript/web-core/AudioContext.d.ts +2 -0
- package/lib/typescript/web-core/AudioContext.d.ts.map +1 -1
- package/lib/typescript/web-core/StretcherNode.d.ts +45 -0
- package/lib/typescript/web-core/StretcherNode.d.ts.map +1 -0
- package/lib/typescript/web-core/custom/LoadCustomWasm.d.ts +5 -0
- package/lib/typescript/web-core/custom/LoadCustomWasm.d.ts.map +1 -0
- package/lib/typescript/web-core/custom/index.d.ts +2 -0
- package/lib/typescript/web-core/custom/index.d.ts.map +1 -0
- package/package.json +8 -4
- package/scripts/setup-custom-wasm.js +104 -0
- package/src/api.ts +51 -0
- package/src/{index.web.ts → api.web.ts} +3 -0
- package/src/index.ts +1 -51
- package/src/web-core/AudioBuffer.tsx +2 -2
- package/src/web-core/AudioContext.tsx +11 -0
- package/src/web-core/StretcherNode.tsx +125 -0
- package/src/web-core/custom/LoadCustomWasm.ts +39 -0
- package/src/web-core/custom/index.ts +1 -0
- package/src/web-core/custom/signalsmithStretch/LICENSE.txt +21 -0
- package/src/web-core/custom/signalsmithStretch/README.md +46 -0
- package/src/web-core/custom/signalsmithStretch/SignalsmithStretch.js +945 -0
- package/src/web-core/custom/signalsmithStretch/SignalsmithStretch.mjs +949 -0
- package/lib/module/index.web.js.map +0 -1
- package/lib/typescript/index.web.d.ts.map +0 -1
- package/scripts/audioapi_utils.rb +0 -56
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["module","exports","SignalsmithStretch","_scriptName","document","currentScript","src","undefined","moduleArg","moduleRtn","Module","readyPromiseResolve","readyPromiseReject","readyPromise","Promise","resolve","reject","ENVIRONMENT_IS_WEB","window","ENVIRONMENT_IS_WORKER","WorkerGlobalScope","ENVIRONMENT_IS_NODE","process","versions","node","type","ENVIRONMENT_IS_SHELL","crypto","globalThis","getRandomValues","array","i","length","Math","random","performance","now","_","Date","moduleOverrides","Object","assign","arguments_","quit_","status","toThrow","scriptDirectory","readAsync","readBinary","f","readbuffer","Uint8Array","data","read","assert","clearTimeout","id","setTimeout","arguments","scriptArgs","quit","ExitStatus","toLog","stack","err","print","console","log","warn","error","printErr","self","location","href","startsWith","slice","replace","lastIndexOf","url","xhr","XMLHttpRequest","open","responseType","send","response","fetch","credentials","ok","arrayBuffer","Error","out","bind","wasmBinary","wasmMemory","ABORT","EXITSTATUS","HEAP8","HEAPU8","HEAP16","HEAPU16","HEAP32","HEAPU32","HEAPF32","HEAP64","HEAPU64","HEAPF64","runtimeInitialized","updateMemoryViews","b","buffer","Int8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array","preRun","initRuntime","wasmExports","preMain","postRun","runDependencies","dependenciesFulfilled","addRunDependency","removeRunDependency","callback","abort","what","e","WebAssembly","RuntimeError","wasmBinaryFile","getBinarySync","file","binary","tryParseAsDataURI","getWasmBinary","binaryFile","instantiateArrayBuffer","imports","instance","instantiate","reason","instantiateAsync","getWasmImports","a","wasmImports","createWasm","receiveInstance","receiveInstantiationResult","result","info","name","constructor","message","base64Decode","b64","b1","b2","j","bLength","output","base64ReverseLookup","charCodeAt","isDataURI","filename","dataURIPrefix","__abort_js","getHeapMax","alignMemory","size","alignment","ceil","abortOnCannotGrowMemory","requestedSize","growMemory","pages","byteLength","grow","_emscripten_resize_heap","oldSize","maxHeapSize","cutDown","overGrownHeapSize","min","newSize","max","replacement","initRandomFill","view","randomFill","_random_get","subarray","keepRuntimeAlive","_proc_exit","code","exitJS","implicit","handleException","UTF8Decoder","TextDecoder","UTF8ArrayToString","heapOrArray","idx","maxBytesToRead","NaN","endIdx","endPtr","decode","str","u0","String","fromCharCode","u1","u2","ch","UTF8ToString","ptr","c","___wasm_call_ctors","_setBuffers","_blockSamples","_intervalSamples","_inputLatency","_outputLatency","_reset","_presetDefault","_presetCheaper","_configure","_setTransposeFactor","_setTransposeSemitones","_seek","_process","_flush","_main","callMain","entryFunction","argc","argv","ret","run","doRun","noInitialRun","registerWorkletProcessor","audioNodeKey","WasmProcessor","AudioWorkletProcessor","options","wasmReady","wasmModule","channels","buffersIn","buffersOut","audioBuffers","audioBuffersStart","audioBuffersEnd","timeIntervalSamples","sampleRate","timeIntervalCounter","timeMap","active","input","rate","semitones","loopStart","loopEnd","remoteMethods","configure","config","blockChanged","blockMs","intervalMs","setUpdateInterval","seconds","stop","when","currentTime","schedule","start","offset","duration","obj","outputLatencySeconds","objIn","adjustPrevious","outputTime","latestSegment","pop","push","previous","currentMapSegment","shift","inputTime","port","postMessage","dropBuffers","toSeconds","buffers","flat","map","value","end","transfer","first","endSamples","endSeconds","forEach","addBuffers","sampleBuffers","concat","pendingMessages","onmessage","event","then","numberOfOutputs","outputChannelCount","messageId","method","methodArgCounts","key","tonalityHz","blockSamples","round","intervalSamples","updateBuffers","inputLatencySeconds","bufferLength","lengthBytes","bufferPointer","inputList","outputList","parameters","channel","fill","outputBlockSize","memory","inputs","channelBuffer","set","loopLength","inputSamplesEnd","audioBufferIndex","audioSamples","inputSamples","audioBuffer","startIndex","bufferEnd","count","registerProcessor","promiseKey","Symbol","createNode","audioContext","audioNode","numberOfInputs","AudioWorkletNode","moduleUrl","moduleCode","JSON","stringify","URL","createObjectURL","Blob","audioWorklet","addModule","requestMap","idCounter","timeUpdateCallback","post","remoteMethodKeys","keys","argCount","args","define","_export"],"sourceRoot":"../../../../../src","sources":["web-core/custom/signalsmithStretch/SignalsmithStretch.mjs"],"mappings":";;AAAA,IAAIA,MAAM,GAAG,CAAC,CAAC;EACbC,OAAO,GAAG,CAAC,CAAC;AACd,IAAIC,kBAAkB,GAAG,CAAC,MAAM;EAC9B,IAAIC,WAAW,GACb,OAAOC,QAAQ,IAAI,WAAW,GAAGA,QAAQ,CAACC,aAAa,EAAEC,GAAG,GAAGC,SAAS;EAE1E,OAAO,gBAAgBC,SAAS,GAAG,CAAC,CAAC,EAAE;IACrC,IAAIC,SAAS;IAEb,IAAIC,MAAM,GAAGF,SAAS;IACtB,IAAIG,mBAAmB,EAAEC,kBAAkB;IAC3C,IAAIC,YAAY,GAAG,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MAClDL,mBAAmB,GAAGI,OAAO;MAC7BH,kBAAkB,GAAGI,MAAM;IAC7B,CAAC,CAAC;IACF,IAAIC,kBAAkB,GAAG,OAAOC,MAAM,IAAI,QAAQ;IAClD,IAAIC,qBAAqB,GAAG,OAAOC,iBAAiB,IAAI,WAAW;IACnE,IAAIC,mBAAmB,GACrB,OAAOC,OAAO,IAAI,QAAQ,IAC1B,OAAOA,OAAO,CAACC,QAAQ,IAAI,QAAQ,IACnC,OAAOD,OAAO,CAACC,QAAQ,CAACC,IAAI,IAAI,QAAQ,IACxCF,OAAO,CAACG,IAAI,IAAI,UAAU;IAC5B,IAAIC,oBAAoB,GACtB,CAACT,kBAAkB,IAAI,CAACI,mBAAmB,IAAI,CAACF,qBAAqB;IACvE,IAAIQ,MAAM,GAAGC,UAAU,EAAED,MAAM,IAAI;MACjCE,eAAe,EAAGC,KAAK,IAAK;QAC1B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,KAAK,CAACE,MAAM,EAAED,CAAC,EAAE,EACnCD,KAAK,CAACC,CAAC,CAAC,GAAIE,IAAI,CAACC,MAAM,CAAC,CAAC,GAAG,GAAG,GAAI,CAAC;MACxC;IACF,CAAC;IACD,IAAIC,WAAW,GAAGP,UAAU,EAAEO,WAAW,IAAI;MAAEC,GAAG,EAAGC,CAAC,IAAKC,IAAI,CAACF,GAAG,CAAC;IAAE,CAAC;IACvE,IAAIG,eAAe,GAAGC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAE/B,MAAM,CAAC;IAC/C,IAAIgC,UAAU,GAAG,EAAE;IACnB,IAAIC,KAAK,GAAGA,CAACC,MAAM,EAAEC,OAAO,KAAK;MAC/B,MAAMA,OAAO;IACf,CAAC;IACD,IAAIC,eAAe,GAAG,EAAE;IACxB,IAAIC,SAAS,EAAEC,UAAU;IACzB,IAAItB,oBAAoB,EAAE;MACxBsB,UAAU,GAAIC,CAAC,IAAK;QAClB,IAAI,OAAOC,UAAU,IAAI,UAAU,EAAE;UACnC,OAAO,IAAIC,UAAU,CAACD,UAAU,CAACD,CAAC,CAAC,CAAC;QACtC;QACA,IAAIG,IAAI,GAAGC,IAAI,CAACJ,CAAC,EAAE,QAAQ,CAAC;QAC5BK,MAAM,CAAC,OAAOF,IAAI,IAAI,QAAQ,CAAC;QAC/B,OAAOA,IAAI;MACb,CAAC;MACDL,SAAS,GAAG,MAAOE,CAAC,IAAKD,UAAU,CAACC,CAAC,CAAC;MACtCrB,UAAU,CAAC2B,YAAY,KAAMC,EAAE,IAAK,CAAC,CAAC;MACtC5B,UAAU,CAAC6B,UAAU,KAAMR,CAAC,IAAKA,CAAC,CAAC,CAAC;MACpCP,UAAU,GAAGd,UAAU,CAAC8B,SAAS,IAAI9B,UAAU,CAAC+B,UAAU;MAC1D,IAAI,OAAOC,IAAI,IAAI,UAAU,EAAE;QAC7BjB,KAAK,GAAGA,CAACC,MAAM,EAAEC,OAAO,KAAK;UAC3BY,UAAU,CAAC,MAAM;YACf,IAAI,EAAEZ,OAAO,YAAYgB,UAAU,CAAC,EAAE;cACpC,IAAIC,KAAK,GAAGjB,OAAO;cACnB,IAAIA,OAAO,IAAI,OAAOA,OAAO,IAAI,QAAQ,IAAIA,OAAO,CAACkB,KAAK,EAAE;gBAC1DD,KAAK,GAAG,CAACjB,OAAO,EAAEA,OAAO,CAACkB,KAAK,CAAC;cAClC;cACAC,GAAG,CAAC,6BAA6BF,KAAK,EAAE,CAAC;YAC3C;YACAF,IAAI,CAAChB,MAAM,CAAC;UACd,CAAC,CAAC;UACF,MAAMC,OAAO;QACf,CAAC;MACH;MACA,IAAI,OAAOoB,KAAK,IAAI,WAAW,EAAE;QAC/BrC,UAAU,CAACsC,OAAO,KAAK,CAAC,CAAC;QACzBA,OAAO,CAACC,GAAG,GAAGF,KAAK;QACnBC,OAAO,CAACE,IAAI,GAAGF,OAAO,CAACG,KAAK,GAAGzC,UAAU,CAAC0C,QAAQ,IAAIL,KAAK;MAC7D;IACF,CAAC,MAAM,IAAIhD,kBAAkB,IAAIE,qBAAqB,EAAE;MACtD,IAAIA,qBAAqB,EAAE;QACzB2B,eAAe,GAAGyB,IAAI,CAACC,QAAQ,CAACC,IAAI;MACtC,CAAC,MAAM,IAAI,OAAOrE,QAAQ,IAAI,WAAW,IAAIA,QAAQ,CAACC,aAAa,EAAE;QACnEyC,eAAe,GAAG1C,QAAQ,CAACC,aAAa,CAACC,GAAG;MAC9C;MACA,IAAIH,WAAW,EAAE;QACf2C,eAAe,GAAG3C,WAAW;MAC/B;MACA,IAAI2C,eAAe,CAAC4B,UAAU,CAAC,OAAO,CAAC,EAAE;QACvC5B,eAAe,GAAG,EAAE;MACtB,CAAC,MAAM;QACLA,eAAe,GAAGA,eAAe,CAAC6B,KAAK,CACrC,CAAC,EACD7B,eAAe,CAAC8B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAACC,WAAW,CAAC,GAAG,CAAC,GAAG,CAC3D,CAAC;MACH;MACA;QACE,IAAI1D,qBAAqB,EAAE;UACzB6B,UAAU,GAAI8B,GAAG,IAAK;YACpB,IAAIC,GAAG,GAAG,IAAIC,cAAc,CAAC,CAAC;YAC9BD,GAAG,CAACE,IAAI,CAAC,KAAK,EAAEH,GAAG,EAAE,KAAK,CAAC;YAC3BC,GAAG,CAACG,YAAY,GAAG,aAAa;YAChCH,GAAG,CAACI,IAAI,CAAC,IAAI,CAAC;YACd,OAAO,IAAIhC,UAAU,CAAC4B,GAAG,CAACK,QAAQ,CAAC;UACrC,CAAC;QACH;QACArC,SAAS,GAAG,MAAO+B,GAAG,IAAK;UACzB,IAAIM,QAAQ,GAAG,MAAMC,KAAK,CAACP,GAAG,EAAE;YAAEQ,WAAW,EAAE;UAAc,CAAC,CAAC;UAC/D,IAAIF,QAAQ,CAACG,EAAE,EAAE;YACf,OAAOH,QAAQ,CAACI,WAAW,CAAC,CAAC;UAC/B;UACA,MAAM,IAAIC,KAAK,CAACL,QAAQ,CAACxC,MAAM,GAAG,KAAK,GAAGwC,QAAQ,CAACN,GAAG,CAAC;QACzD,CAAC;MACH;IACF,CAAC,MAAM,CACP;IACA,IAAIY,GAAG,GAAGxB,OAAO,CAACC,GAAG,CAACwB,IAAI,CAACzB,OAAO,CAAC;IACnC,IAAIF,GAAG,GAAGE,OAAO,CAACG,KAAK,CAACsB,IAAI,CAACzB,OAAO,CAAC;IACrC1B,MAAM,CAACC,MAAM,CAAC/B,MAAM,EAAE6B,eAAe,CAAC;IACtCA,eAAe,GAAG,IAAI;IACtB,IAAIqD,UAAU;IACd,IAAIC,UAAU;IACd,IAAIC,KAAK,GAAG,KAAK;IACjB,IAAIC,UAAU;IACd,IAAIC,KAAK,EACPC,MAAM,EACNC,MAAM,EACNC,OAAO,EACPC,MAAM,EACNC,OAAO,EACPC,OAAO,EACPC,MAAM,EACNC,OAAO,EACPC,OAAO;IACT,IAAIC,kBAAkB,GAAG,KAAK;IAC9B,SAASC,iBAAiBA,CAAA,EAAG;MAC3B,IAAIC,CAAC,GAAGf,UAAU,CAACgB,MAAM;MACzBnG,MAAM,CAAC,OAAO,CAAC,GAAGsF,KAAK,GAAG,IAAIc,SAAS,CAACF,CAAC,CAAC;MAC1CV,MAAM,GAAG,IAAIa,UAAU,CAACH,CAAC,CAAC;MAC1BX,MAAM,GAAG,IAAI9C,UAAU,CAACyD,CAAC,CAAC;MAC1BT,OAAO,GAAG,IAAIa,WAAW,CAACJ,CAAC,CAAC;MAC5BR,MAAM,GAAG,IAAIa,UAAU,CAACL,CAAC,CAAC;MAC1BP,OAAO,GAAG,IAAIa,WAAW,CAACN,CAAC,CAAC;MAC5BN,OAAO,GAAG,IAAIa,YAAY,CAACP,CAAC,CAAC;MAC7BH,OAAO,GAAG,IAAIW,YAAY,CAACR,CAAC,CAAC;MAC7BL,MAAM,GAAG,IAAIc,aAAa,CAACT,CAAC,CAAC;MAC7BJ,OAAO,GAAG,IAAIc,cAAc,CAACV,CAAC,CAAC;IACjC;IACA,SAASW,MAAMA,CAAA,EAAG,CAAC;IACnB,SAASC,WAAWA,CAAA,EAAG;MACrBd,kBAAkB,GAAG,IAAI;MACzBe,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IACpB;IACA,SAASC,OAAOA,CAAA,EAAG,CAAC;IACpB,SAASC,OAAOA,CAAA,EAAG,CAAC;IACpB,IAAIC,eAAe,GAAG,CAAC;IACvB,IAAIC,qBAAqB,GAAG,IAAI;IAChC,SAASC,gBAAgBA,CAACtE,EAAE,EAAE;MAC5BoE,eAAe,EAAE;IACnB;IACA,SAASG,mBAAmBA,CAACvE,EAAE,EAAE;MAC/BoE,eAAe,EAAE;MACjB,IAAIA,eAAe,IAAI,CAAC,EAAE;QACxB,IAAIC,qBAAqB,EAAE;UACzB,IAAIG,QAAQ,GAAGH,qBAAqB;UACpCA,qBAAqB,GAAG,IAAI;UAC5BG,QAAQ,CAAC,CAAC;QACZ;MACF;IACF;IACA,SAASC,KAAKA,CAACC,IAAI,EAAE;MACnBA,IAAI,GAAG,UAAU,GAAGA,IAAI,GAAG,GAAG;MAC9BlE,GAAG,CAACkE,IAAI,CAAC;MACTpC,KAAK,GAAG,IAAI;MACZoC,IAAI,IAAI,0CAA0C;MAClD,IAAIC,CAAC,GAAG,IAAIC,WAAW,CAACC,YAAY,CAACH,IAAI,CAAC;MAC1CtH,kBAAkB,CAACuH,CAAC,CAAC;MACrB,MAAMA,CAAC;IACT;IACA,IAAIG,cAAc,GAChB,++gEAA++gE;IACj/gE,SAASC,aAAaA,CAACC,IAAI,EAAE;MAC3B,IAAIA,IAAI,IAAIF,cAAc,IAAI1C,UAAU,EAAE;QACxC,OAAO,IAAIzC,UAAU,CAACyC,UAAU,CAAC;MACnC;MACA,IAAI6C,MAAM,GAAGC,iBAAiB,CAACF,IAAI,CAAC;MACpC,IAAIC,MAAM,EAAE;QACV,OAAOA,MAAM;MACf;MACA,IAAIzF,UAAU,EAAE;QACd,OAAOA,UAAU,CAACwF,IAAI,CAAC;MACzB;MACA,MAAM,iDAAiD;IACzD;IACA,eAAeG,aAAaA,CAACC,UAAU,EAAE;MACvC,OAAOL,aAAa,CAACK,UAAU,CAAC;IAClC;IACA,eAAeC,sBAAsBA,CAACD,UAAU,EAAEE,OAAO,EAAE;MACzD,IAAI;QACF,IAAIL,MAAM,GAAG,MAAME,aAAa,CAACC,UAAU,CAAC;QAC5C,IAAIG,QAAQ,GAAG,MAAMX,WAAW,CAACY,WAAW,CAACP,MAAM,EAAEK,OAAO,CAAC;QAC7D,OAAOC,QAAQ;MACjB,CAAC,CAAC,OAAOE,MAAM,EAAE;QACfjF,GAAG,CAAC,0CAA0CiF,MAAM,EAAE,CAAC;QACvDhB,KAAK,CAACgB,MAAM,CAAC;MACf;IACF;IACA,eAAeC,gBAAgBA,CAACT,MAAM,EAAEG,UAAU,EAAEE,OAAO,EAAE;MAC3D,OAAOD,sBAAsB,CAACD,UAAU,EAAEE,OAAO,CAAC;IACpD;IACA,SAASK,cAAcA,CAAA,EAAG;MACxB,OAAO;QAAEC,CAAC,EAAEC;MAAY,CAAC;IAC3B;IACA,eAAeC,UAAUA,CAAA,EAAG;MAC1B,SAASC,eAAeA,CAACR,QAAQ,EAAE/I,MAAM,EAAE;QACzCyH,WAAW,GAAGsB,QAAQ,CAAC9I,OAAO;QAC9B4F,UAAU,GAAG4B,WAAW,CAAC,GAAG,CAAC;QAC7Bd,iBAAiB,CAAC,CAAC;QACnBoB,mBAAmB,CAAC,kBAAkB,CAAC;QACvC,OAAON,WAAW;MACpB;MACAK,gBAAgB,CAAC,kBAAkB,CAAC;MACpC,SAAS0B,0BAA0BA,CAACC,MAAM,EAAE;QAC1C,OAAOF,eAAe,CAACE,MAAM,CAAC,UAAU,CAAC,CAAC;MAC5C;MACA,IAAIC,IAAI,GAAGP,cAAc,CAAC,CAAC;MAC3B,IAAI;QACF,IAAIM,MAAM,GAAG,MAAMP,gBAAgB,CAACtD,UAAU,EAAE0C,cAAc,EAAEoB,IAAI,CAAC;QACrE,IAAIzJ,OAAO,GAAGuJ,0BAA0B,CAACC,MAAM,CAAC;QAChD,OAAOxJ,OAAO;MAChB,CAAC,CAAC,OAAOkI,CAAC,EAAE;QACVvH,kBAAkB,CAACuH,CAAC,CAAC;QACrB,OAAOrH,OAAO,CAACE,MAAM,CAACmH,CAAC,CAAC;MAC1B;IACF;IACA,MAAMtE,UAAU,CAAC;MACf8F,IAAI,GAAG,YAAY;MACnBC,WAAWA,CAAChH,MAAM,EAAE;QAClB,IAAI,CAACiH,OAAO,GAAG,gCAAgCjH,MAAM,GAAG;QACxD,IAAI,CAACA,MAAM,GAAGA,MAAM;MACtB;IACF;IACA,IAAIkH,YAAY,GAAIC,GAAG,IAAK;MAC1B,IAAIC,EAAE;QACJC,EAAE;QACFlI,CAAC,GAAG,CAAC;QACLmI,CAAC,GAAG,CAAC;QACLC,OAAO,GAAGJ,GAAG,CAAC/H,MAAM;MACtB,IAAIoI,MAAM,GAAG,IAAIjH,UAAU,CACzB,CAAEgH,OAAO,GAAG,CAAC,IAAK,CAAC,KAChBJ,GAAG,CAACI,OAAO,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,IACxBJ,GAAG,CAACI,OAAO,GAAG,CAAC,CAAC,IAAI,GAAG,CAC5B,CAAC;MACD,OAAOpI,CAAC,GAAGoI,OAAO,EAAEpI,CAAC,IAAI,CAAC,EAAEmI,CAAC,IAAI,CAAC,EAAE;QAClCF,EAAE,GAAGK,mBAAmB,CAACN,GAAG,CAACO,UAAU,CAACvI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/CkI,EAAE,GAAGI,mBAAmB,CAACN,GAAG,CAACO,UAAU,CAACvI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/CqI,MAAM,CAACF,CAAC,CAAC,GAAIG,mBAAmB,CAACN,GAAG,CAACO,UAAU,CAACvI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAKiI,EAAE,IAAI,CAAE;QACrEI,MAAM,CAACF,CAAC,GAAG,CAAC,CAAC,GAAIF,EAAE,IAAI,CAAC,GAAKC,EAAE,IAAI,CAAE;QACrCG,MAAM,CAACF,CAAC,GAAG,CAAC,CAAC,GAAID,EAAE,IAAI,CAAC,GAAII,mBAAmB,CAACN,GAAG,CAACO,UAAU,CAACvI,CAAC,GAAG,CAAC,CAAC,CAAC;MACxE;MACA,OAAOqI,MAAM;IACf,CAAC;IACD,IAAIG,SAAS,GAAIC,QAAQ,IAAKA,QAAQ,CAAC9F,UAAU,CAAC+F,aAAa,CAAC;IAChE,IAAIA,aAAa,GAAG,uCAAuC;IAC3D,IAAI/B,iBAAiB,GAAI8B,QAAQ,IAAK;MACpC,IAAID,SAAS,CAACC,QAAQ,CAAC,EAAE;QACvB,OAAOV,YAAY,CAACU,QAAQ,CAAC7F,KAAK,CAAC8F,aAAa,CAACzI,MAAM,CAAC,CAAC;MAC3D;IACF,CAAC;IACD,IAAI0I,UAAU,GAAGA,CAAA,KAAMzC,KAAK,CAAC,EAAE,CAAC;IAChC,IAAI0C,UAAU,GAAGA,CAAA,KAAM,UAAU;IACjC,IAAIC,WAAW,GAAGA,CAACC,IAAI,EAAEC,SAAS,KAChC7I,IAAI,CAAC8I,IAAI,CAACF,IAAI,GAAGC,SAAS,CAAC,GAAGA,SAAS;IACzC,IAAIE,uBAAuB,GAAIC,aAAa,IAAK;MAC/ChD,KAAK,CAAC,KAAK,CAAC;IACd,CAAC;IACD,IAAIiD,UAAU,GAAIL,IAAI,IAAK;MACzB,IAAIjE,CAAC,GAAGf,UAAU,CAACgB,MAAM;MACzB,IAAIsE,KAAK,GAAI,CAACN,IAAI,GAAGjE,CAAC,CAACwE,UAAU,GAAG,KAAK,IAAI,KAAK,GAAI,CAAC;MACvD,IAAI;QACFvF,UAAU,CAACwF,IAAI,CAACF,KAAK,CAAC;QACtBxE,iBAAiB,CAAC,CAAC;QACnB,OAAO,CAAC;MACV,CAAC,CAAC,OAAOwB,CAAC,EAAE,CAAC;IACf,CAAC;IACD,IAAImD,uBAAuB,GAAIL,aAAa,IAAK;MAC/C,IAAIM,OAAO,GAAGtF,MAAM,CAACjE,MAAM;MAC3BiJ,aAAa,MAAM,CAAC;MACpB,IAAIO,WAAW,GAAGb,UAAU,CAAC,CAAC;MAC9B,IAAIM,aAAa,GAAGO,WAAW,EAAE;QAC/BR,uBAAuB,CAACC,aAAa,CAAC;MACxC;MACA,KAAK,IAAIQ,OAAO,GAAG,CAAC,EAAEA,OAAO,IAAI,CAAC,EAAEA,OAAO,IAAI,CAAC,EAAE;QAChD,IAAIC,iBAAiB,GAAGH,OAAO,IAAI,CAAC,GAAG,GAAG,GAAGE,OAAO,CAAC;QACrDC,iBAAiB,GAAGzJ,IAAI,CAAC0J,GAAG,CAC1BD,iBAAiB,EACjBT,aAAa,GAAG,SAClB,CAAC;QACD,IAAIW,OAAO,GAAG3J,IAAI,CAAC0J,GAAG,CACpBH,WAAW,EACXZ,WAAW,CAAC3I,IAAI,CAAC4J,GAAG,CAACZ,aAAa,EAAES,iBAAiB,CAAC,EAAE,KAAK,CAC/D,CAAC;QACD,IAAII,WAAW,GAAGZ,UAAU,CAACU,OAAO,CAAC;QACrC,IAAIE,WAAW,EAAE;UACf,OAAO,IAAI;QACb;MACF;MACAd,uBAAuB,CAACC,aAAa,CAAC;IACxC,CAAC;IACD,IAAIc,cAAc,GAAGA,CAAA,KAAOC,IAAI,IAAKrK,MAAM,CAACE,eAAe,CAACmK,IAAI,CAAC;IACjE,IAAIC,UAAU,GAAID,IAAI,IAAK;MACzB,CAACC,UAAU,GAAGF,cAAc,CAAC,CAAC,EAAEC,IAAI,CAAC;IACvC,CAAC;IACD,IAAIE,WAAW,GAAGA,CAACrF,MAAM,EAAEgE,IAAI,KAAK;MAClCoB,UAAU,CAAChG,MAAM,CAACkG,QAAQ,CAACtF,MAAM,EAAEA,MAAM,GAAGgE,IAAI,CAAC,CAAC;MAClD,OAAO,CAAC;IACV,CAAC;IACD,IAAIuB,gBAAgB,GAAGA,CAAA,KAAM,IAAI;IACjC,IAAIC,UAAU,GAAIC,IAAI,IAAK;MACzBvG,UAAU,GAAGuG,IAAI;MACjB,IAAI,CAACF,gBAAgB,CAAC,CAAC,EAAE;QACvBtG,KAAK,GAAG,IAAI;MACd;MACAnD,KAAK,CAAC2J,IAAI,EAAE,IAAIzI,UAAU,CAACyI,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,IAAIC,MAAM,GAAGA,CAAC3J,MAAM,EAAE4J,QAAQ,KAAK;MACjCzG,UAAU,GAAGnD,MAAM;MACnByJ,UAAU,CAACzJ,MAAM,CAAC;IACpB,CAAC;IACD,IAAI6J,eAAe,GAAItE,CAAC,IAAK;MAC3B,IAAIA,CAAC,YAAYtE,UAAU,IAAIsE,CAAC,IAAI,QAAQ,EAAE;QAC5C,OAAOpC,UAAU;MACnB;MACApD,KAAK,CAAC,CAAC,EAAEwF,CAAC,CAAC;IACb,CAAC;IACD,IAAIuE,WAAW,GACb,OAAOC,WAAW,IAAI,WAAW,GAAG,IAAIA,WAAW,CAAC,CAAC,GAAGpM,SAAS;IACnE,IAAIqM,iBAAiB,GAAGA,CAACC,WAAW,EAAEC,GAAG,GAAG,CAAC,EAAEC,cAAc,GAAGC,GAAG,KAAK;MACtE,IAAIC,MAAM,GAAGH,GAAG,GAAGC,cAAc;MACjC,IAAIG,MAAM,GAAGJ,GAAG;MAChB,OAAOD,WAAW,CAACK,MAAM,CAAC,IAAI,EAAEA,MAAM,IAAID,MAAM,CAAC,EAAE,EAAEC,MAAM;MAC3D,IAAIA,MAAM,GAAGJ,GAAG,GAAG,EAAE,IAAID,WAAW,CAAChG,MAAM,IAAI6F,WAAW,EAAE;QAC1D,OAAOA,WAAW,CAACS,MAAM,CAACN,WAAW,CAACV,QAAQ,CAACW,GAAG,EAAEI,MAAM,CAAC,CAAC;MAC9D;MACA,IAAIE,GAAG,GAAG,EAAE;MACZ,OAAON,GAAG,GAAGI,MAAM,EAAE;QACnB,IAAIG,EAAE,GAAGR,WAAW,CAACC,GAAG,EAAE,CAAC;QAC3B,IAAI,EAAEO,EAAE,GAAG,GAAG,CAAC,EAAE;UACfD,GAAG,IAAIE,MAAM,CAACC,YAAY,CAACF,EAAE,CAAC;UAC9B;QACF;QACA,IAAIG,EAAE,GAAGX,WAAW,CAACC,GAAG,EAAE,CAAC,GAAG,EAAE;QAChC,IAAI,CAACO,EAAE,GAAG,GAAG,KAAK,GAAG,EAAE;UACrBD,GAAG,IAAIE,MAAM,CAACC,YAAY,CAAE,CAACF,EAAE,GAAG,EAAE,KAAK,CAAC,GAAIG,EAAE,CAAC;UACjD;QACF;QACA,IAAIC,EAAE,GAAGZ,WAAW,CAACC,GAAG,EAAE,CAAC,GAAG,EAAE;QAChC,IAAI,CAACO,EAAE,GAAG,GAAG,KAAK,GAAG,EAAE;UACrBA,EAAE,GAAI,CAACA,EAAE,GAAG,EAAE,KAAK,EAAE,GAAKG,EAAE,IAAI,CAAE,GAAGC,EAAE;QACzC,CAAC,MAAM;UACLJ,EAAE,GACC,CAACA,EAAE,GAAG,CAAC,KAAK,EAAE,GACdG,EAAE,IAAI,EAAG,GACTC,EAAE,IAAI,CAAE,GACRZ,WAAW,CAACC,GAAG,EAAE,CAAC,GAAG,EAAG;QAC7B;QACA,IAAIO,EAAE,GAAG,KAAK,EAAE;UACdD,GAAG,IAAIE,MAAM,CAACC,YAAY,CAACF,EAAE,CAAC;QAChC,CAAC,MAAM;UACL,IAAIK,EAAE,GAAGL,EAAE,GAAG,KAAK;UACnBD,GAAG,IAAIE,MAAM,CAACC,YAAY,CAAC,KAAK,GAAIG,EAAE,IAAI,EAAG,EAAE,KAAK,GAAIA,EAAE,GAAG,IAAK,CAAC;QACrE;MACF;MACA,OAAON,GAAG;IACZ,CAAC;IACD,IAAIO,YAAY,GAAGA,CAACC,GAAG,EAAEb,cAAc,KACrCa,GAAG,GAAGhB,iBAAiB,CAAC3G,MAAM,EAAE2H,GAAG,EAAEb,cAAc,CAAC,GAAG,EAAE;IAC3D,KAAK,IAAI1C,mBAAmB,GAAG,IAAIlH,UAAU,CAAC,GAAG,CAAC,EAAEpB,CAAC,GAAG,EAAE,EAAEA,CAAC,IAAI,CAAC,EAAE,EAAEA,CAAC,EAAE;MACvEsI,mBAAmB,CAAC,EAAE,GAAGtI,CAAC,CAAC,GAAG,EAAE,GAAGA,CAAC;MACpCsI,mBAAmB,CAAC,EAAE,GAAGtI,CAAC,CAAC,GAAGA,CAAC;MAC/BsI,mBAAmB,CAAC,EAAE,GAAGtI,CAAC,CAAC,GAAG,EAAE,GAAGA,CAAC;IACtC;IACAsI,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE;IAC5BA,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE;IAC5B,IAAIhB,WAAW,GAAG;MAChBwE,CAAC,EAAEnD,UAAU;MACb9D,CAAC,EAAE0E,uBAAuB;MAC1BlC,CAAC,EAAE8C;IACL,CAAC;IACD,IAAIzE,WAAW,GAAG,MAAM6B,UAAU,CAAC,CAAC;IACpC,IAAIwE,kBAAkB,GAAGrG,WAAW,CAAC,GAAG,CAAC;IACzC,IAAIsG,WAAW,GAAIrN,MAAM,CAAC,aAAa,CAAC,GAAG+G,WAAW,CAAC,GAAG,CAAE;IAC5D,IAAIuG,aAAa,GAAItN,MAAM,CAAC,eAAe,CAAC,GAAG+G,WAAW,CAAC,GAAG,CAAE;IAChE,IAAIwG,gBAAgB,GAAIvN,MAAM,CAAC,kBAAkB,CAAC,GAAG+G,WAAW,CAAC,GAAG,CAAE;IACtE,IAAIyG,aAAa,GAAIxN,MAAM,CAAC,eAAe,CAAC,GAAG+G,WAAW,CAAC,GAAG,CAAE;IAChE,IAAI0G,cAAc,GAAIzN,MAAM,CAAC,gBAAgB,CAAC,GAAG+G,WAAW,CAAC,GAAG,CAAE;IAClE,IAAI2G,MAAM,GAAI1N,MAAM,CAAC,QAAQ,CAAC,GAAG+G,WAAW,CAAC,GAAG,CAAE;IAClD,IAAI4G,cAAc,GAAI3N,MAAM,CAAC,gBAAgB,CAAC,GAAG+G,WAAW,CAAC,GAAG,CAAE;IAClE,IAAI6G,cAAc,GAAI5N,MAAM,CAAC,gBAAgB,CAAC,GAAG+G,WAAW,CAAC,GAAG,CAAE;IAClE,IAAI8G,UAAU,GAAI7N,MAAM,CAAC,YAAY,CAAC,GAAG+G,WAAW,CAAC,GAAG,CAAE;IAC1D,IAAI+G,mBAAmB,GAAI9N,MAAM,CAAC,qBAAqB,CAAC,GACtD+G,WAAW,CAAC,GAAG,CAAE;IACnB,IAAIgH,sBAAsB,GAAI/N,MAAM,CAAC,wBAAwB,CAAC,GAC5D+G,WAAW,CAAC,GAAG,CAAE;IACnB,IAAIiH,KAAK,GAAIhO,MAAM,CAAC,OAAO,CAAC,GAAG+G,WAAW,CAAC,GAAG,CAAE;IAChD,IAAIkH,QAAQ,GAAIjO,MAAM,CAAC,UAAU,CAAC,GAAG+G,WAAW,CAAC,GAAG,CAAE;IACtD,IAAImH,MAAM,GAAIlO,MAAM,CAAC,QAAQ,CAAC,GAAG+G,WAAW,CAAC,GAAG,CAAE;IAClD,IAAIoH,KAAK,GAAInO,MAAM,CAAC,OAAO,CAAC,GAAG+G,WAAW,CAAC,GAAG,CAAE;IAChD/G,MAAM,CAAC,cAAc,CAAC,GAAGiN,YAAY;IACrC,SAASmB,QAAQA,CAAA,EAAG;MAClB,IAAIC,aAAa,GAAGF,KAAK;MACzB,IAAIG,IAAI,GAAG,CAAC;MACZ,IAAIC,IAAI,GAAG,CAAC;MACZ,IAAI;QACF,IAAIC,GAAG,GAAGH,aAAa,CAACC,IAAI,EAAEC,IAAI,CAAC;QACnC1C,MAAM,CAAC2C,GAAG,EAAE,IAAI,CAAC;QACjB,OAAOA,GAAG;MACZ,CAAC,CAAC,OAAO/G,CAAC,EAAE;QACV,OAAOsE,eAAe,CAACtE,CAAC,CAAC;MAC3B;IACF;IACA,SAASgH,GAAGA,CAAA,EAAG;MACb,IAAIvH,eAAe,GAAG,CAAC,EAAE;QACvBC,qBAAqB,GAAGsH,GAAG;QAC3B;MACF;MACA5H,MAAM,CAAC,CAAC;MACR,IAAIK,eAAe,GAAG,CAAC,EAAE;QACvBC,qBAAqB,GAAGsH,GAAG;QAC3B;MACF;MACA,SAASC,KAAKA,CAAA,EAAG;QACf1O,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI;QAC1B,IAAIoF,KAAK,EAAE;QACX0B,WAAW,CAAC,CAAC;QACbE,OAAO,CAAC,CAAC;QACT/G,mBAAmB,CAACD,MAAM,CAAC;QAC3B,IAAI2O,YAAY;QAChB,IAAI,CAACA,YAAY,EAAEP,QAAQ,CAAC,CAAC;QAC7BnH,OAAO,CAAC,CAAC;MACX;MACA;QACEyH,KAAK,CAAC,CAAC;MACT;IACF;IACAD,GAAG,CAAC,CAAC;IACL1O,SAAS,GAAGI,YAAY;IAExB,OAAOJ,SAAS;EAClB,CAAC;AACH,CAAC,EAAE,CAAC;AACJ,SAAS6O,wBAAwBA,CAAC5O,MAAM,EAAE6O,YAAY,EAAE;EACtD,MAAMC,aAAa,SAASC,qBAAqB,CAAC;IAChD7F,WAAWA,CAAC8F,OAAO,EAAE;MACnB,KAAK,CAACA,OAAO,CAAC;MACd,IAAI,CAACC,SAAS,GAAG,KAAK;MACtB,IAAI,CAACC,UAAU,GAAG,IAAI;MACtB,IAAI,CAACC,QAAQ,GAAG,CAAC;MACjB,IAAI,CAACC,SAAS,GAAG,EAAE;MACnB,IAAI,CAACC,UAAU,GAAG,EAAE;MAEpB,IAAI,CAACC,YAAY,GAAG,EAAE,CAAC,CAAC;MACxB,IAAI,CAACC,iBAAiB,GAAG,CAAC,CAAC,CAAC;MAC5B,IAAI,CAACC,eAAe,GAAG,CAAC,CAAC,CAAC;;MAE1B,IAAI,CAACC,mBAAmB,GAAGC,UAAU,GAAG,GAAG;MAC3C,IAAI,CAACC,mBAAmB,GAAG,CAAC;MAE5B,IAAI,CAACC,OAAO,GAAG,CACb;QACEC,MAAM,EAAE,KAAK;QACbC,KAAK,EAAE,CAAC;QACRpG,MAAM,EAAE,CAAC;QACTqG,IAAI,EAAE,CAAC;QACPC,SAAS,EAAE,CAAC;QACZC,SAAS,EAAE,CAAC;QACZC,OAAO,EAAE;MACX,CAAC,CACF;MAED,IAAIC,aAAa,GAAG;QAClBC,SAAS,EAAGC,MAAM,IAAK;UACrB,IAAIC,YAAY,GACdD,MAAM,CAACE,OAAO,IAAI,IAAI,CAACF,MAAM,CAACE,OAAO,IACrCF,MAAM,CAACG,UAAU,IAAI,IAAI,CAACH,MAAM,CAACG,UAAU;UAC7C1O,MAAM,CAACC,MAAM,CAAC,IAAI,CAACsO,MAAM,EAAEA,MAAM,CAAC;UAClC,IAAIA,MAAM,CAACE,OAAO,IAAID,YAAY,EAAE,IAAI,CAACF,SAAS,CAAC,CAAC;QACtD,CAAC;QACDK,iBAAiB,EAAGC,OAAO,IAAK;UAC9B,IAAI,CAACjB,mBAAmB,GAAGC,UAAU,GAAGgB,OAAO;QACjD,CAAC;QACDC,IAAI,EAAGC,IAAI,IAAK;UACd,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAEA,IAAI,GAAGC,WAAW;UAChD,OAAOV,aAAa,CAACW,QAAQ,CAAC;YAAEjB,MAAM,EAAE,KAAK;YAAEnG,MAAM,EAAEkH;UAAK,CAAC,CAAC;QAChE,CAAC;QACDG,KAAK,EAAEA,CAACH,IAAI,EAAEI,MAAM,EAAEC,QAAQ,EAAElB,IAAI,EAAEC,SAAS,KAAK;UAClD,IAAI,OAAOY,IAAI,KAAK,QAAQ,EAAE;YAC5B,IAAI,EAAE,QAAQ,IAAIA,IAAI,CAAC,EAAEA,IAAI,CAACf,MAAM,GAAG,IAAI;YAC3C,OAAOM,aAAa,CAACW,QAAQ,CAACF,IAAI,CAAC;UACrC;UAEA,IAAIM,GAAG,GAAG;YACRrB,MAAM,EAAE,IAAI;YACZC,KAAK,EAAE,CAAC;YACRpG,MAAM,EAAEmH,WAAW,GAAG,IAAI,CAACM;UAC7B,CAAC;UACD,IAAI,OAAOP,IAAI,KAAK,QAAQ,EAAEM,GAAG,CAACxH,MAAM,GAAGkH,IAAI;UAC/C,IAAI,OAAOI,MAAM,KAAK,QAAQ,EAAEE,GAAG,CAACpB,KAAK,GAAGkB,MAAM;UAClD,IAAI,OAAOjB,IAAI,KAAK,QAAQ,EAAEmB,GAAG,CAACnB,IAAI,GAAGA,IAAI;UAC7C,IAAI,OAAOC,SAAS,KAAK,QAAQ,EAAEkB,GAAG,CAAClB,SAAS,GAAGA,SAAS;UAC5D,IAAIjH,MAAM,GAAGoH,aAAa,CAACW,QAAQ,CAACI,GAAG,CAAC;UACxC,IAAI,OAAOD,QAAQ,KAAK,QAAQ,EAAE;YAChCd,aAAa,CAACQ,IAAI,CAACO,GAAG,CAACxH,MAAM,GAAGuH,QAAQ,CAAC;YACzCC,GAAG,CAACxH,MAAM,IAAIuH,QAAQ;YACtBC,GAAG,CAACrB,MAAM,GAAG,KAAK;YAClBM,aAAa,CAACW,QAAQ,CAACI,GAAG,CAAC;UAC7B;UACA,OAAOnI,MAAM;QACf,CAAC;QACD+H,QAAQ,EAAEA,CAACM,KAAK,EAAEC,cAAc,KAAK;UACnC,IAAIC,UAAU,GACZ,YAAY,IAAIF,KAAK,GAAGA,KAAK,CAACE,UAAU,GAAGT,WAAW;UAExD,IAAIU,aAAa,GAAG,IAAI,CAAC3B,OAAO,CAAC,IAAI,CAACA,OAAO,CAACtO,MAAM,GAAG,CAAC,CAAC;UACzD,OACE,IAAI,CAACsO,OAAO,CAACtO,MAAM,IACnB,IAAI,CAACsO,OAAO,CAAC,IAAI,CAACA,OAAO,CAACtO,MAAM,GAAG,CAAC,CAAC,CAACoI,MAAM,IAAI4H,UAAU,EAC1D;YACAC,aAAa,GAAG,IAAI,CAAC3B,OAAO,CAAC4B,GAAG,CAAC,CAAC;UACpC;UAEA,IAAIN,GAAG,GAAG;YACRrB,MAAM,EAAE0B,aAAa,CAAC1B,MAAM;YAC5BC,KAAK,EAAE,IAAI;YACXpG,MAAM,EAAE4H,UAAU;YAClBvB,IAAI,EAAEwB,aAAa,CAACxB,IAAI;YACxBC,SAAS,EAAEuB,aAAa,CAACvB,SAAS;YAClCC,SAAS,EAAEsB,aAAa,CAACtB,SAAS;YAClCC,OAAO,EAAEqB,aAAa,CAACrB;UACzB,CAAC;UACDpO,MAAM,CAACC,MAAM,CAACmP,GAAG,EAAEE,KAAK,CAAC;UACzB,IAAIF,GAAG,CAACpB,KAAK,KAAK,IAAI,EAAE;YACtB,IAAIC,IAAI,GAAGwB,aAAa,CAAC1B,MAAM,GAAG0B,aAAa,CAACxB,IAAI,GAAG,CAAC;YACxDmB,GAAG,CAACpB,KAAK,GACPyB,aAAa,CAACzB,KAAK,GAAG,CAACoB,GAAG,CAACxH,MAAM,GAAG6H,aAAa,CAAC7H,MAAM,IAAIqG,IAAI;UACpE;UACA,IAAI,CAACH,OAAO,CAAC6B,IAAI,CAACP,GAAG,CAAC;UAEtB,IAAIG,cAAc,IAAI,IAAI,CAACzB,OAAO,CAACtO,MAAM,GAAG,CAAC,EAAE;YAC7C,IAAIoQ,QAAQ,GAAG,IAAI,CAAC9B,OAAO,CAAC,IAAI,CAACA,OAAO,CAACtO,MAAM,GAAG,CAAC,CAAC;YACpD,IAAIoQ,QAAQ,CAAChI,MAAM,GAAGmH,WAAW,EAAE;cACjC,IAAId,IAAI,GAAG2B,QAAQ,CAAC7B,MAAM,GAAG6B,QAAQ,CAAC3B,IAAI,GAAG,CAAC;cAC9C2B,QAAQ,CAAC5B,KAAK,IAAI,CAACe,WAAW,GAAGa,QAAQ,CAAChI,MAAM,IAAIqG,IAAI;cACxD2B,QAAQ,CAAChI,MAAM,GAAGmH,WAAW;YAC/B;YACAa,QAAQ,CAAC3B,IAAI,GACX,CAACmB,GAAG,CAACpB,KAAK,GAAG4B,QAAQ,CAAC5B,KAAK,KAAKoB,GAAG,CAACxH,MAAM,GAAGgI,QAAQ,CAAChI,MAAM,CAAC;UACjE;UAEA,IAAIiI,iBAAiB,GAAG,IAAI,CAAC/B,OAAO,CAAC,CAAC,CAAC;UACvC,OACE,IAAI,CAACA,OAAO,CAACtO,MAAM,GAAG,CAAC,IACvB,IAAI,CAACsO,OAAO,CAAC,CAAC,CAAC,CAAClG,MAAM,IAAI4H,UAAU,EACpC;YACA,IAAI,CAAC1B,OAAO,CAACgC,KAAK,CAAC,CAAC;YACpBD,iBAAiB,GAAG,IAAI,CAAC/B,OAAO,CAAC,CAAC,CAAC;UACrC;UACA,IAAIG,IAAI,GAAG4B,iBAAiB,CAAC9B,MAAM,GAAG8B,iBAAiB,CAAC5B,IAAI,GAAG,CAAC;UAChE,IAAI8B,SAAS,GACXF,iBAAiB,CAAC7B,KAAK,GACvB,CAACwB,UAAU,GAAGK,iBAAiB,CAACjI,MAAM,IAAIqG,IAAI;UAChD,IAAI,CAACJ,mBAAmB,GAAG,IAAI,CAACF,mBAAmB;UACnD,IAAI,CAACqC,IAAI,CAACC,WAAW,CAAC,CAAC,MAAM,EAAEF,SAAS,CAAC,CAAC;UAE1C,OAAOX,GAAG;QACZ,CAAC;QACDc,WAAW,EAAGC,SAAS,IAAK;UAC1B,IAAI,OAAOA,SAAS,KAAK,QAAQ,EAAE;YACjC,IAAIC,OAAO,GAAG,IAAI,CAAC5C,YAAY,CAAC6C,IAAI,CAAC,CAAC,CAAC,CAACC,GAAG,CAAElM,CAAC,IAAKA,CAAC,CAACC,MAAM,CAAC;YAC5D,IAAI,CAACmJ,YAAY,GAAG,EAAE;YACtB,IAAI,CAACC,iBAAiB,GAAG,IAAI,CAACC,eAAe,GAAG,CAAC;YACjD,OAAO;cACL6C,KAAK,EAAE;gBAAEtB,KAAK,EAAE,CAAC;gBAAEuB,GAAG,EAAE;cAAE,CAAC;cAC3BC,QAAQ,EAAEL;YACZ,CAAC;UACH;UACA,IAAIK,QAAQ,GAAG,EAAE;UACjB,OAAO,IAAI,CAACjD,YAAY,CAAChO,MAAM,EAAE;YAC/B,IAAIkR,KAAK,GAAG,IAAI,CAAClD,YAAY,CAAC,CAAC,CAAC;YAChC,IAAIhO,MAAM,GAAGkR,KAAK,CAAC,CAAC,CAAC,CAAClR,MAAM;YAC5B,IAAImR,UAAU,GAAG,IAAI,CAAClD,iBAAiB,GAAGjO,MAAM;YAChD,IAAIoR,UAAU,GAAGD,UAAU,GAAG/C,UAAU;YACxC,IAAIgD,UAAU,GAAGT,SAAS,EAAE;YAE5B,IAAI,CAAC3C,YAAY,CAACsC,KAAK,CAAC,CAAC,CAACe,OAAO,CAAEzM,CAAC,IAAKqM,QAAQ,CAACd,IAAI,CAACvL,CAAC,CAACC,MAAM,CAAC,CAAC;YACjE,IAAI,CAACoJ,iBAAiB,IAAIjO,MAAM;UAClC;UACA,OAAO;YACL+Q,KAAK,EAAE;cACLtB,KAAK,EAAE,IAAI,CAACxB,iBAAiB,GAAGG,UAAU;cAC1C4C,GAAG,EAAE,IAAI,CAAC9C,eAAe,GAAGE;YAC9B,CAAC;YACD6C,QAAQ,EAAEA;UACZ,CAAC;QACH,CAAC;QACDK,UAAU,EAAGC,aAAa,IAAK;UAC7BA,aAAa,GAAG,EAAE,CAACC,MAAM,CAACD,aAAa,CAAC;UACxC,IAAI,CAACvD,YAAY,CAACmC,IAAI,CAACoB,aAAa,CAAC;UACrC,IAAIvR,MAAM,GAAGuR,aAAa,CAAC,CAAC,CAAC,CAACvR,MAAM;UACpC,IAAI,CAACkO,eAAe,IAAIlO,MAAM;UAC9B,OAAO,IAAI,CAACkO,eAAe,GAAGE,UAAU;QAC1C;MACF,CAAC;MAED,IAAIqD,eAAe,GAAG,EAAE;MACxB,IAAI,CAACjB,IAAI,CAACkB,SAAS,GAAIC,KAAK,IAAKF,eAAe,CAACtB,IAAI,CAACwB,KAAK,CAAC;MAE5DjT,MAAM,CAAC,CAAC,CAACkT,IAAI,CAAEhE,UAAU,IAAK;QAC5B,IAAI,CAACA,UAAU,GAAGA,UAAU;QAC5B,IAAI,CAACD,SAAS,GAAG,IAAI;QAErBC,UAAU,CAACf,KAAK,CAAC,CAAC;QAElB,IAAI,CAACgB,QAAQ,GAAGH,OAAO,CAACmE,eAAe,GACnCnE,OAAO,CAACoE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,CAAC,CAAC,CAAC;QACP,IAAI,CAAChD,SAAS,CAAC,CAAC;QAEhB,IAAI,CAAC0B,IAAI,CAACkB,SAAS,GAAIC,KAAK,IAAK;UAC/B,IAAIvQ,IAAI,GAAGuQ,KAAK,CAACvQ,IAAI;UACrB,IAAI2Q,SAAS,GAAG3Q,IAAI,CAACkP,KAAK,CAAC,CAAC;UAC5B,IAAI0B,MAAM,GAAG5Q,IAAI,CAACkP,KAAK,CAAC,CAAC;UACzB,IAAI7I,MAAM,GAAGoH,aAAa,CAACmD,MAAM,CAAC,CAAC,GAAG5Q,IAAI,CAAC;UAC3C,IAAIqG,MAAM,EAAEwJ,QAAQ,EAAE;YACpB,IAAI,CAACT,IAAI,CAACC,WAAW,CAAC,CAACsB,SAAS,EAAEtK,MAAM,CAACsJ,KAAK,CAAC,EAAEtJ,MAAM,CAACwJ,QAAQ,CAAC;UACnE,CAAC,MAAM;YACL,IAAI,CAACT,IAAI,CAACC,WAAW,CAAC,CAACsB,SAAS,EAAEtK,MAAM,CAAC,CAAC;UAC5C;QACF,CAAC;QACD,IAAIwK,eAAe,GAAG,CAAC,CAAC;QACxB,KAAK,IAAIC,GAAG,IAAIrD,aAAa,EAAE;UAC7BoD,eAAe,CAACC,GAAG,CAAC,GAAGrD,aAAa,CAACqD,GAAG,CAAC,CAAClS,MAAM;QAClD;QACA,IAAI,CAACwQ,IAAI,CAACC,WAAW,CAAC,CAAC,OAAO,EAAEwB,eAAe,CAAC,CAAC;QACjDR,eAAe,CAACJ,OAAO,CAAC,IAAI,CAACb,IAAI,CAACkB,SAAS,CAAC;QAC5CD,eAAe,GAAG,IAAI;MACxB,CAAC,CAAC;IACJ;IAEA1C,MAAM,GAAG;MACPoD,UAAU,EAAE;IACd,CAAC;IACDrD,SAASA,CAAA,EAAG;MACV,IAAI,IAAI,CAACC,MAAM,CAACE,OAAO,EAAE;QACvB,IAAImD,YAAY,GAAGnS,IAAI,CAACoS,KAAK,CAC1B,IAAI,CAACtD,MAAM,CAACE,OAAO,GAAG,IAAI,GAAIb,UACjC,CAAC;QACD,IAAIkE,eAAe,GAAGrS,IAAI,CAACoS,KAAK,CAC7B,CAAC,IAAI,CAACtD,MAAM,CAACG,UAAU,IAAI,IAAI,CAACH,MAAM,CAACE,OAAO,GAAG,IAAI,IAAI,IAAI,GAC5Db,UACJ,CAAC;QACD,IAAI,CAACR,UAAU,CAACrB,UAAU,CACxB,IAAI,CAACsB,QAAQ,EACbuE,YAAY,EACZE,eACF,CAAC;QACD,IAAI,CAAC1E,UAAU,CAACxB,MAAM,CAAC,CAAC;MAC1B,CAAC,MAAM;QACL,IAAI,CAACwB,UAAU,CAACvB,cAAc,CAAC,IAAI,CAACwB,QAAQ,EAAEO,UAAU,CAAC;MAC3D;MACA,IAAI,CAACmE,aAAa,CAAC,CAAC;MACpB,IAAI,CAACC,mBAAmB,GAAG,IAAI,CAAC5E,UAAU,CAAC1B,aAAa,CAAC,CAAC,GAAGkC,UAAU;MACvE,IAAI,CAACyB,oBAAoB,GAAG,IAAI,CAACjC,UAAU,CAACzB,cAAc,CAAC,CAAC,GAAGiC,UAAU;IAC3E;IAEAmE,aAAaA,CAAA,EAAG;MACd,IAAI3E,UAAU,GAAG,IAAI,CAACA,UAAU;MAChC;MACA,IAAI,CAAC6E,YAAY,GACf7E,UAAU,CAAC1B,aAAa,CAAC,CAAC,GAAG0B,UAAU,CAACzB,cAAc,CAAC,CAAC;MAE1D,IAAIuG,WAAW,GAAG,IAAI,CAACD,YAAY,GAAG,CAAC;MACvC,IAAIE,aAAa,GAAG/E,UAAU,CAAC7B,WAAW,CACxC,IAAI,CAAC8B,QAAQ,EACb,IAAI,CAAC4E,YACP,CAAC;MACD,IAAI,CAAC3E,SAAS,GAAG,EAAE;MACnB,IAAI,CAACC,UAAU,GAAG,EAAE;MACpB,KAAK,IAAIlC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACgC,QAAQ,EAAE,EAAEhC,CAAC,EAAE;QACtC,IAAI,CAACiC,SAAS,CAACqC,IAAI,CAACwC,aAAa,GAAGD,WAAW,GAAG7G,CAAC,CAAC;QACpD,IAAI,CAACkC,UAAU,CAACoC,IAAI,CAACwC,aAAa,GAAGD,WAAW,IAAI7G,CAAC,GAAG,IAAI,CAACgC,QAAQ,CAAC,CAAC;MACzE;IACF;IAEAvO,OAAOA,CAACsT,SAAS,EAAEC,UAAU,EAAEC,UAAU,EAAE;MACzC,IAAI,CAAC,IAAI,CAACnF,SAAS,EAAE;QACnBkF,UAAU,CAACxB,OAAO,CAAEjJ,MAAM,IAAK;UAC7BA,MAAM,CAACiJ,OAAO,CAAE0B,OAAO,IAAK;YAC1BA,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC;UACjB,CAAC,CAAC;QACJ,CAAC,CAAC;QACF,OAAO,IAAI;MACb;MACA,IAAI,CAACH,UAAU,CAAC,CAAC,CAAC,EAAE7S,MAAM,EAAE,OAAO,KAAK;MAExC,IAAIgQ,UAAU,GAAGT,WAAW,GAAG,IAAI,CAACM,oBAAoB;MACxD,OAAO,IAAI,CAACvB,OAAO,CAACtO,MAAM,GAAG,CAAC,IAAI,IAAI,CAACsO,OAAO,CAAC,CAAC,CAAC,CAAClG,MAAM,IAAI4H,UAAU,EAAE;QACtE,IAAI,CAAC1B,OAAO,CAACgC,KAAK,CAAC,CAAC;MACtB;MACA,IAAID,iBAAiB,GAAG,IAAI,CAAC/B,OAAO,CAAC,CAAC,CAAC;MAEvC,IAAIV,UAAU,GAAG,IAAI,CAACA,UAAU;MAChCA,UAAU,CAACnB,sBAAsB,CAC/B4D,iBAAiB,CAAC3B,SAAS,EAC3B,IAAI,CAACK,MAAM,CAACoD,UAAU,GAAG/D,UAC3B,CAAC;;MAED;MACA,IAAIyE,UAAU,CAAC,CAAC,CAAC,CAAC7S,MAAM,IAAI,IAAI,CAAC6N,QAAQ,EAAE;QACzC,IAAI,CAACA,QAAQ,GAAGgF,UAAU,CAAC,CAAC,CAAC,EAAE7S,MAAM,IAAI,CAAC;QAC1C8O,SAAS,CAAC,CAAC;MACb;MACA,IAAImE,eAAe,GAAGJ,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC7S,MAAM;MAE7C,IAAIkT,MAAM,GAAGtF,UAAU,CAAC3P,OAAO,GAC3B2P,UAAU,CAAC3P,OAAO,CAACiV,MAAM,CAACrO,MAAM,GAChC+I,UAAU,CAAC5J,KAAK,CAACa,MAAM;MAC3B;MACA,IAAIsO,MAAM,GAAGP,SAAS,CAAC,CAAC,CAAC;MACzB,IAAI,CAACvC,iBAAiB,CAAC9B,MAAM,EAAE;QAC7BsE,UAAU,CAAC,CAAC,CAAC,CAACxB,OAAO,CAAC,CAAChR,CAAC,EAAEwL,CAAC,KAAK;UAC9B,IAAIuH,aAAa,GAAGD,MAAM,CAACtH,CAAC,GAAGsH,MAAM,CAACnT,MAAM,CAAC;UAC7C,IAAI6E,MAAM,GAAG,IAAIM,YAAY,CAC3B+N,MAAM,EACN,IAAI,CAACpF,SAAS,CAACjC,CAAC,CAAC,EACjBoH,eACF,CAAC;UACDpO,MAAM,CAACmO,IAAI,CAAC,CAAC,CAAC;QAChB,CAAC,CAAC;QACF;QACApF,UAAU,CAACjB,QAAQ,CAACsG,eAAe,EAAEA,eAAe,CAAC;MACvD,CAAC,MAAM,IAAIE,MAAM,EAAEnT,MAAM,EAAE;QACzB;QACA6S,UAAU,CAAC,CAAC,CAAC,CAACxB,OAAO,CAAC,CAAChR,CAAC,EAAEwL,CAAC,KAAK;UAC9B,IAAIuH,aAAa,GAAGD,MAAM,CAACtH,CAAC,GAAGsH,MAAM,CAACnT,MAAM,CAAC;UAC7C,IAAI6E,MAAM,GAAG,IAAIM,YAAY,CAC3B+N,MAAM,EACN,IAAI,CAACpF,SAAS,CAACjC,CAAC,CAAC,EACjBoH,eACF,CAAC;UACD,IAAIG,aAAa,EAAE;YACjBvO,MAAM,CAACwO,GAAG,CAACD,aAAa,CAAC;UAC3B,CAAC,MAAM;YACLvO,MAAM,CAACmO,IAAI,CAAC,CAAC,CAAC;UAChB;QACF,CAAC,CAAC;QACFpF,UAAU,CAACjB,QAAQ,CAACsG,eAAe,EAAEA,eAAe,CAAC;MACvD,CAAC,MAAM;QACL,IAAI1C,SAAS,GACXF,iBAAiB,CAAC7B,KAAK,GACvB,CAACwB,UAAU,GAAGK,iBAAiB,CAACjI,MAAM,IAAIiI,iBAAiB,CAAC5B,IAAI;QAClE,IAAI6E,UAAU,GACZjD,iBAAiB,CAACzB,OAAO,GAAGyB,iBAAiB,CAAC1B,SAAS;QACzD,IAAI2E,UAAU,GAAG,CAAC,IAAI/C,SAAS,IAAIF,iBAAiB,CAACzB,OAAO,EAAE;UAC5DyB,iBAAiB,CAAC7B,KAAK,IAAI8E,UAAU;UACrC/C,SAAS,IAAI+C,UAAU;QACzB;QAEA/C,SAAS,IAAI,IAAI,CAACiC,mBAAmB;QACrC,IAAIe,eAAe,GAAGtT,IAAI,CAACoS,KAAK,CAAC9B,SAAS,GAAGnC,UAAU,CAAC;;QAExD;QACA,IAAIwC,OAAO,GAAGiC,UAAU,CAAC,CAAC,CAAC,CAAC/B,GAAG,CAC7B,CAACzQ,CAAC,EAAEwL,CAAC,KACH,IAAI1G,YAAY,CAAC+N,MAAM,EAAE,IAAI,CAACpF,SAAS,CAACjC,CAAC,CAAC,EAAE,IAAI,CAAC4G,YAAY,CACjE,CAAC;QAED,IAAIL,YAAY,GAAG,CAAC,CAAC,CAAC;QACtB,IAAIoB,gBAAgB,GAAG,CAAC;QACxB,IAAIC,YAAY,GAAG,IAAI,CAACxF,iBAAiB,CAAC,CAAC;QAC3C;QACA,IAAIyF,YAAY,GAAGH,eAAe,GAAG,IAAI,CAACd,YAAY;QACtD,IAAIiB,YAAY,GAAGD,YAAY,EAAE;UAC/BrB,YAAY,GAAGqB,YAAY,GAAGC,YAAY;UAC1C9C,OAAO,CAACS,OAAO,CAAEzM,CAAC,IAAKA,CAAC,CAACoO,IAAI,CAAC,CAAC,EAAE,CAAC,EAAEZ,YAAY,CAAC,CAAC;UAClDsB,YAAY,GAAGD,YAAY;QAC7B;QACA,OACED,gBAAgB,GAAG,IAAI,CAACxF,YAAY,CAAChO,MAAM,IAC3CyT,YAAY,GAAGF,eAAe,EAC9B;UACA,IAAII,WAAW,GAAG,IAAI,CAAC3F,YAAY,CAACwF,gBAAgB,CAAC;UACrD,IAAII,UAAU,GAAGF,YAAY,GAAGD,YAAY,CAAC,CAAC;UAC9C,IAAII,SAAS,GAAGJ,YAAY,GAAGE,WAAW,CAAC,CAAC,CAAC,CAAC3T,MAAM;UACpD;UACA,IAAI8T,KAAK,GAAG7T,IAAI,CAAC0J,GAAG,CAClBgK,WAAW,CAAC,CAAC,CAAC,CAAC3T,MAAM,GAAG4T,UAAU,EAClCL,eAAe,GAAGG,YACpB,CAAC;UACD,IAAII,KAAK,GAAG,CAAC,EAAE;YACblD,OAAO,CAACS,OAAO,CAAC,CAACxM,MAAM,EAAEgH,CAAC,KAAK;cAC7B,IAAIuH,aAAa,GAAGO,WAAW,CAAC9H,CAAC,GAAG8H,WAAW,CAAC3T,MAAM,CAAC;cACvD6E,MAAM,CACHsF,QAAQ,CAACiI,YAAY,CAAC,CACtBiB,GAAG,CAACD,aAAa,CAACjJ,QAAQ,CAACyJ,UAAU,EAAEA,UAAU,GAAGE,KAAK,CAAC,CAAC;YAChE,CAAC,CAAC;YACFL,YAAY,IAAIK,KAAK;YACrB1B,YAAY,IAAI0B,KAAK;UACvB,CAAC,MAAM;YACL;YACAL,YAAY,IAAIE,WAAW,CAAC,CAAC,CAAC,CAAC3T,MAAM;UACvC;UACA,EAAEwT,gBAAgB;QACpB;QACA,IAAIpB,YAAY,GAAG,IAAI,CAACK,YAAY,EAAE;UACpC7B,OAAO,CAACS,OAAO,CAAExM,MAAM,IAAKA,MAAM,CAACsF,QAAQ,CAACiI,YAAY,CAAC,CAACY,IAAI,CAAC,CAAC,CAAC,CAAC;QACpE;;QAEA;QACApF,UAAU,CAAClB,KAAK,CAAC,IAAI,CAAC+F,YAAY,EAAEpC,iBAAiB,CAAC5B,IAAI,CAAC;QAC3Db,UAAU,CAACjB,QAAQ,CAAC,CAAC,EAAEsG,eAAe,CAAC;QAEvC,IAAI,CAAC5E,mBAAmB,IAAI4E,eAAe;QAC3C,IAAI,IAAI,CAAC5E,mBAAmB,IAAI,CAAC,EAAE;UACjC,IAAI,CAACA,mBAAmB,GAAG,IAAI,CAACF,mBAAmB;UACnD,IAAI,CAACqC,IAAI,CAACC,WAAW,CAAC,CAAC,MAAM,EAAEF,SAAS,CAAC,CAAC;QAC5C;MACF;;MAEA;MACA2C,MAAM,GAAGtF,UAAU,CAAC3P,OAAO,GACvB2P,UAAU,CAAC3P,OAAO,CAACiV,MAAM,CAACrO,MAAM,GAChC+I,UAAU,CAAC5J,KAAK,CAACa,MAAM;MAC3BgO,UAAU,CAAC,CAAC,CAAC,CAACxB,OAAO,CAAC,CAAC+B,aAAa,EAAEvH,CAAC,KAAK;QAC1C,IAAIhH,MAAM,GAAG,IAAIM,YAAY,CAC3B+N,MAAM,EACN,IAAI,CAACnF,UAAU,CAAClC,CAAC,CAAC,EAClBoH,eACF,CAAC;QACDG,aAAa,CAACC,GAAG,CAACxO,MAAM,CAAC;MAC3B,CAAC,CAAC;MAEF,OAAO,IAAI;IACb;EACF;EAEAkP,iBAAiB,CAACxG,YAAY,EAAEC,aAAa,CAAC;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAtP,kBAAkB,GAAG,CAAC,CAACQ,MAAM,EAAE6O,YAAY,KAAK;EAC9C,IACE,OAAOE,qBAAqB,KAAK,UAAU,IAC3C,OAAOsG,iBAAiB,KAAK,UAAU,EACvC;IACA;IACAzG,wBAAwB,CAAC5O,MAAM,EAAE6O,YAAY,CAAC;IAC9C,OAAO,CAAC,CAAC;EACX;EACA,IAAIyG,UAAU,GAAGC,MAAM,CAAC,CAAC;EACzB,IAAIC,UAAU,GAAG,eAAAA,CAAgBC,YAAY,EAAEzG,OAAO,EAAE;IACtD;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI0G,SAAS;IACb1G,OAAO,GAAGA,OAAO,IAAI;MACnB2G,cAAc,EAAE,CAAC;MACjBxC,eAAe,EAAE,CAAC;MAClBC,kBAAkB,EAAE,CAAC,CAAC;IACxB,CAAC;IACD,IAAI;MACFsC,SAAS,GAAG,IAAIE,gBAAgB,CAACH,YAAY,EAAE5G,YAAY,EAAEG,OAAO,CAAC;IACvE,CAAC,CAAC,OAAOvH,CAAC,EAAE;MACV,IAAI,CAACgO,YAAY,CAACH,UAAU,CAAC,EAAE;QAC7B,IAAIO,SAAS,GAAGL,UAAU,CAACK,SAAS;QACpC,IAAI,CAACA,SAAS,EAAE;UACd,IAAIC,UAAU,GAAG,IAAIlH,wBAAwB,mBAAmB5O,MAAM,OAAO+V,IAAI,CAACC,SAAS,CAACnH,YAAY,CAAC,GAAG;UAC5GgH,SAAS,GAAGI,GAAG,CAACC,eAAe,CAC7B,IAAIC,IAAI,CAAC,CAACL,UAAU,CAAC,EAAE;YAAE/U,IAAI,EAAE;UAAkB,CAAC,CACpD,CAAC;QACH;QACA0U,YAAY,CAACH,UAAU,CAAC,GACtBG,YAAY,CAACW,YAAY,CAACC,SAAS,CAACR,SAAS,CAAC;MAClD;MACA,MAAMJ,YAAY,CAACH,UAAU,CAAC;MAC9BI,SAAS,GAAG,IAAIE,gBAAgB,CAACH,YAAY,EAAE5G,YAAY,EAAEG,OAAO,CAAC;IACvE;;IAEA;IACA,IAAIsH,UAAU,GAAG,CAAC,CAAC;IACnB,IAAIC,SAAS,GAAG,CAAC;IACjB,IAAIC,kBAAkB,GAAG,IAAI;IAC7B,IAAIC,IAAI,GAAGA,CAAClE,QAAQ,EAAE,GAAG7P,IAAI,KAAK;MAChC,IAAII,EAAE,GAAGyT,SAAS,EAAE;MACpB,OAAO,IAAInW,OAAO,CAAEC,OAAO,IAAK;QAC9BiW,UAAU,CAACxT,EAAE,CAAC,GAAGzC,OAAO;QACxBqV,SAAS,CAAC5D,IAAI,CAACC,WAAW,CAAC,CAACjP,EAAE,CAAC,CAACgQ,MAAM,CAACpQ,IAAI,CAAC,EAAE6P,QAAQ,CAAC;MACzD,CAAC,CAAC;IACJ,CAAC;IACDmD,SAAS,CAAC7D,SAAS,GAAG,CAAC;IACvB6D,SAAS,CAAC5D,IAAI,CAACkB,SAAS,GAAIC,KAAK,IAAK;MACpC,IAAIvQ,IAAI,GAAGuQ,KAAK,CAACvQ,IAAI;MACrB,IAAII,EAAE,GAAGJ,IAAI,CAAC,CAAC,CAAC;QACd2P,KAAK,GAAG3P,IAAI,CAAC,CAAC,CAAC;MACjB,IAAII,EAAE,IAAI,MAAM,EAAE;QAChB4S,SAAS,CAAC7D,SAAS,GAAGQ,KAAK;QAC3B,IAAImE,kBAAkB,EAAEA,kBAAkB,CAACnE,KAAK,CAAC;MACnD;MACA,IAAIvP,EAAE,IAAIwT,UAAU,EAAE;QACpBA,UAAU,CAACxT,EAAE,CAAC,CAACuP,KAAK,CAAC;QACrB,OAAOiE,UAAU,CAACxT,EAAE,CAAC;MACvB;IACF,CAAC;IAED,OAAO,IAAI1C,OAAO,CAAEC,OAAO,IAAK;MAC9BiW,UAAU,CAAC,OAAO,CAAC,GAAII,gBAAgB,IAAK;QAC1C5U,MAAM,CAAC6U,IAAI,CAACD,gBAAgB,CAAC,CAAC/D,OAAO,CAAEa,GAAG,IAAK;UAC7C,IAAIoD,QAAQ,GAAGF,gBAAgB,CAAClD,GAAG,CAAC;UACpCkC,SAAS,CAAClC,GAAG,CAAC,GAAG,CAAC,GAAGqD,IAAI,KAAK;YAC5B,IAAItE,QAAQ,GAAG,IAAI;YACnB,IAAIsE,IAAI,CAACvV,MAAM,GAAGsV,QAAQ,EAAE;cAC1BrE,QAAQ,GAAGsE,IAAI,CAACrF,GAAG,CAAC,CAAC;YACvB;YACA,OAAOiF,IAAI,CAAClE,QAAQ,EAAEiB,GAAG,EAAE,GAAGqD,IAAI,CAAC;UACrC,CAAC;QACH,CAAC,CAAC;QACF;AACR;AACA;QACQnB,SAAS,CAACjF,iBAAiB,GAAG,CAACC,OAAO,EAAEpJ,QAAQ,KAAK;UACnDkP,kBAAkB,GAAGlP,QAAQ;UAC7B,OAAOmP,IAAI,CAAC,IAAI,EAAE,mBAAmB,EAAE/F,OAAO,CAAC;QACjD,CAAC;QACDrQ,OAAO,CAACqV,SAAS,CAAC;MACpB,CAAC;IACH,CAAC,CAAC;EACJ,CAAC;EACD,OAAOF,UAAU;AACnB,CAAC,EAAEhW,kBAAkB,EAAE,qBAAqB,CAAC;AAC7C;AACA,IAAI,OAAOD,OAAO,KAAK,QAAQ,IAAI,OAAOD,MAAM,KAAK,QAAQ,EAAE;EAC7DA,MAAM,CAACC,OAAO,GAAGC,kBAAkB;AACrC,CAAC,MAAM,IAAI,OAAOsX,MAAM,KAAK,UAAU,IAAIA,MAAM,CAAC,KAAK,CAAC,EAAE;EACxDA,MAAM,CAAC,EAAE,EAAE,MAAMtX,kBAAkB,CAAC;AACtC;AACA,IAAIuX,OAAO,GAAGvX,kBAAkB;AAChC,eAAeuX,OAAO","ignoreList":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { IAudioContext } from './interfaces';
|
|
2
|
+
declare global {
|
|
3
|
+
var createAudioContext: (sampleRate?: number) => IAudioContext;
|
|
4
|
+
}
|
|
5
|
+
export { default as AudioBuffer } from './core/AudioBuffer';
|
|
6
|
+
export { default as AudioBufferSourceNode } from './core/AudioBufferSourceNode';
|
|
7
|
+
export { default as AudioContext } from './core/AudioContext';
|
|
8
|
+
export { default as AudioDestinationNode } from './core/AudioDestinationNode';
|
|
9
|
+
export { default as AudioNode } from './core/AudioNode';
|
|
10
|
+
export { default as AnalyserNode } from './core/AnalyserNode';
|
|
11
|
+
export { default as AudioParam } from './core/AudioParam';
|
|
12
|
+
export { default as AudioScheduledSourceNode } from './core/AudioScheduledSourceNode';
|
|
13
|
+
export { default as BaseAudioContext } from './core/BaseAudioContext';
|
|
14
|
+
export { default as BiquadFilterNode } from './core/BiquadFilterNode';
|
|
15
|
+
export { default as GainNode } from './core/GainNode';
|
|
16
|
+
export { default as OscillatorNode } from './core/OscillatorNode';
|
|
17
|
+
export { default as StereoPannerNode } from './core/StereoPannerNode';
|
|
18
|
+
export { default as StretcherNode } from './core/StretcherNode';
|
|
19
|
+
export { OscillatorType, BiquadFilterType, ChannelCountMode, ChannelInterpretation, ContextState, WindowType, PeriodicWaveConstraints, } from './types';
|
|
20
|
+
export { IndexSizeError, InvalidAccessError, InvalidStateError, RangeError, NotSupportedError, } from './errors';
|
|
21
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,kBAAkB,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,aAAa,CAAC;CAChE;AAaD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEhE,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,UAAU,EACV,uBAAuB,GACxB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,iBAAiB,GAClB,MAAM,UAAU,CAAC"}
|
|
@@ -11,6 +11,8 @@ export { default as BiquadFilterNode } from './web-core/BiquadFilterNode';
|
|
|
11
11
|
export { default as GainNode } from './web-core/GainNode';
|
|
12
12
|
export { default as OscillatorNode } from './web-core/OscillatorNode';
|
|
13
13
|
export { default as StereoPannerNode } from './web-core/StereoPannerNode';
|
|
14
|
+
export { default as StretcherNode } from './web-core/StretcherNode';
|
|
15
|
+
export * from './web-core/custom';
|
|
14
16
|
export { OscillatorType, BiquadFilterType, ChannelCountMode, ChannelInterpretation, ContextState, WindowType, PeriodicWaveConstraints, } from './types';
|
|
15
17
|
export { IndexSizeError, InvalidAccessError, InvalidStateError, RangeError, NotSupportedError, } from './errors';
|
|
16
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=api.web.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.web.d.ts","sourceRoot":"","sources":["../../src/api.web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC1F,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEpE,cAAc,mBAAmB,CAAC;AAElC,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,UAAU,EACV,uBAAuB,GACxB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,iBAAiB,GAClB,MAAM,UAAU,CAAC"}
|
|
@@ -1,21 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
declare global {
|
|
3
|
-
var createAudioContext: (sampleRate?: number) => IAudioContext;
|
|
4
|
-
}
|
|
5
|
-
export { default as AudioBuffer } from './core/AudioBuffer';
|
|
6
|
-
export { default as AudioBufferSourceNode } from './core/AudioBufferSourceNode';
|
|
7
|
-
export { default as AudioContext } from './core/AudioContext';
|
|
8
|
-
export { default as AudioDestinationNode } from './core/AudioDestinationNode';
|
|
9
|
-
export { default as AudioNode } from './core/AudioNode';
|
|
10
|
-
export { default as AnalyserNode } from './core/AnalyserNode';
|
|
11
|
-
export { default as AudioParam } from './core/AudioParam';
|
|
12
|
-
export { default as AudioScheduledSourceNode } from './core/AudioScheduledSourceNode';
|
|
13
|
-
export { default as BaseAudioContext } from './core/BaseAudioContext';
|
|
14
|
-
export { default as BiquadFilterNode } from './core/BiquadFilterNode';
|
|
15
|
-
export { default as GainNode } from './core/GainNode';
|
|
16
|
-
export { default as OscillatorNode } from './core/OscillatorNode';
|
|
17
|
-
export { default as StereoPannerNode } from './core/StereoPannerNode';
|
|
18
|
-
export { default as StretcherNode } from './core/StretcherNode';
|
|
19
|
-
export { OscillatorType, BiquadFilterType, ChannelCountMode, ChannelInterpretation, ContextState, WindowType, PeriodicWaveConstraints, } from './types';
|
|
20
|
-
export { IndexSizeError, InvalidAccessError, InvalidStateError, RangeError, NotSupportedError, } from './errors';
|
|
1
|
+
export * from './api';
|
|
21
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC"}
|
|
@@ -6,7 +6,7 @@ export default class AudioBuffer {
|
|
|
6
6
|
/** @internal */
|
|
7
7
|
readonly buffer: globalThis.AudioBuffer;
|
|
8
8
|
constructor(buffer: globalThis.AudioBuffer);
|
|
9
|
-
getChannelData(channel: number):
|
|
9
|
+
getChannelData(channel: number): Float32Array;
|
|
10
10
|
copyFromChannel(destination: number[], channelNumber: number, startInChannel?: number): void;
|
|
11
11
|
copyToChannel(source: number[], channelNumber: number, startInChannel?: number): void;
|
|
12
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioBuffer.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioBuffer.tsx"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,WAAW;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAElC,gBAAgB;IAChB,SAAgB,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;gBAEnC,MAAM,EAAE,UAAU,CAAC,WAAW;IAQnC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"AudioBuffer.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioBuffer.tsx"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,WAAW;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAElC,gBAAgB;IAChB,SAAgB,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;gBAEnC,MAAM,EAAE,UAAU,CAAC,WAAW;IAQnC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY;IAU7C,eAAe,CACpB,WAAW,EAAE,MAAM,EAAE,EACrB,aAAa,EAAE,MAAM,EACrB,cAAc,GAAE,MAAU,GACzB,IAAI;IAsBA,aAAa,CAClB,MAAM,EAAE,MAAM,EAAE,EAChB,aAAa,EAAE,MAAM,EACrB,cAAc,GAAE,MAAU,GACzB,IAAI;CAmBR"}
|
|
@@ -9,6 +9,7 @@ import GainNode from './GainNode';
|
|
|
9
9
|
import OscillatorNode from './OscillatorNode';
|
|
10
10
|
import PeriodicWave from './PeriodicWave';
|
|
11
11
|
import StereoPannerNode from './StereoPannerNode';
|
|
12
|
+
import StretcherNode from './StretcherNode';
|
|
12
13
|
export default class AudioContext implements BaseAudioContext {
|
|
13
14
|
readonly context: globalThis.AudioContext;
|
|
14
15
|
readonly destination: AudioDestinationNode;
|
|
@@ -24,6 +25,7 @@ export default class AudioContext implements BaseAudioContext {
|
|
|
24
25
|
createBuffer(numOfChannels: number, length: number, sampleRate: number): AudioBuffer;
|
|
25
26
|
createPeriodicWave(real: number[], imag: number[], constraints?: PeriodicWaveConstraints): PeriodicWave;
|
|
26
27
|
createAnalyser(): AnalyserNode;
|
|
28
|
+
createStretcher(): Promise<StretcherNode>;
|
|
27
29
|
decodeAudioDataSource(source: string): Promise<AudioBuffer>;
|
|
28
30
|
close(): Promise<void>;
|
|
29
31
|
resume(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioContext.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAElB,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"AudioContext.d.ts","sourceRoot":"","sources":["../../../src/web-core/AudioContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAElB,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAI5C,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,gBAAgB;IAC3D,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC;IAE1C,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,OAAO,CAAC,EAAE,mBAAmB;IAazC,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,KAAK,IAAI,YAAY,CAE/B;IAED,gBAAgB,IAAI,cAAc;IAIlC,UAAU,IAAI,QAAQ;IAItB,kBAAkB,IAAI,gBAAgB;IAItC,kBAAkB,IAAI,gBAAgB;IAItC,kBAAkB,IAAI,qBAAqB;IAI3C,YAAY,CACV,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,WAAW;IAwBd,kBAAkB,CAChB,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,MAAM,EAAE,EACd,WAAW,CAAC,EAAE,uBAAuB,GACpC,YAAY;IAYf,cAAc,IAAI,YAAY;IAIxB,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC;IAQzC,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ3D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import BaseAudioContext from './BaseAudioContext';
|
|
2
|
+
import AudioBuffer from './AudioBuffer';
|
|
3
|
+
import AudioNode from './AudioNode';
|
|
4
|
+
import { globalTag } from './custom/LoadCustomWasm';
|
|
5
|
+
interface ScheduleOptions {
|
|
6
|
+
rate?: number;
|
|
7
|
+
active?: boolean;
|
|
8
|
+
outputTime?: number;
|
|
9
|
+
semitones?: number;
|
|
10
|
+
loopStart?: number;
|
|
11
|
+
loopEnd?: number;
|
|
12
|
+
}
|
|
13
|
+
declare class IStretcherNode {
|
|
14
|
+
addBuffers(channels: Float32Array[]): void;
|
|
15
|
+
schedule(options: ScheduleOptions): void;
|
|
16
|
+
start(when?: number, offset?: number, duration?: number, rate?: number, semitones?: number): void;
|
|
17
|
+
stop(when?: number): void;
|
|
18
|
+
connect(destination: globalThis.AudioNode): void;
|
|
19
|
+
disconnect(destination: globalThis.AudioNode): void;
|
|
20
|
+
}
|
|
21
|
+
declare global {
|
|
22
|
+
interface Window {
|
|
23
|
+
[globalTag]: (audioContext: globalThis.BaseAudioContext) => Promise<IStretcherNode>;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export default class StretcherNode extends AudioNode {
|
|
27
|
+
_buffer: AudioBuffer | null;
|
|
28
|
+
_playbackRate: number;
|
|
29
|
+
_loopStart: number;
|
|
30
|
+
_loopEnd: number;
|
|
31
|
+
_isPlaying: boolean;
|
|
32
|
+
constructor(context: BaseAudioContext, node: IStretcherNode);
|
|
33
|
+
get buffer(): AudioBuffer | null;
|
|
34
|
+
set buffer(buffer: AudioBuffer);
|
|
35
|
+
get playbackRate(): number;
|
|
36
|
+
set playbackRate(value: number);
|
|
37
|
+
get loopStart(): number;
|
|
38
|
+
set loopStart(value: number);
|
|
39
|
+
get loopEnd(): number;
|
|
40
|
+
set loopEnd(value: number);
|
|
41
|
+
start(when?: number, offset?: number, duration?: number, rate?: number, semitones?: number): void;
|
|
42
|
+
stop(when?: number): void;
|
|
43
|
+
}
|
|
44
|
+
export {};
|
|
45
|
+
//# sourceMappingURL=StretcherNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StretcherNode.d.ts","sourceRoot":"","sources":["../../../src/web-core/StretcherNode.tsx"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,OAAO,OAAO,cAAc;IAC1B,UAAU,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI;IAE1C,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAExC,KAAK,CACH,IAAI,CAAC,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI;IAEP,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAEzB,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,GAAG,IAAI;IAChD,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,GAAG,IAAI;CACpD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,CAAC,SAAS,CAAC,EAAE,CACX,YAAY,EAAE,UAAU,CAAC,gBAAgB,KACtC,OAAO,CAAC,cAAc,CAAC,CAAC;KAC9B;CACF;AAED,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAAS;IAClD,OAAO,EAAE,WAAW,GAAG,IAAI,CAAQ;IAEnC,aAAa,EAAE,MAAM,CAAK;IAC1B,UAAU,EAAE,MAAM,CAAM;IACxB,QAAQ,EAAE,MAAM,CAAM;IACtB,UAAU,UAAS;gBAEP,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,cAAc;IAK3D,IAAW,MAAM,IAAI,WAAW,GAAG,IAAI,CAEtC;IAED,IAAW,MAAM,CAAC,MAAM,EAAE,WAAW,EASpC;IAED,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED,IAAW,YAAY,CAAC,KAAK,EAAE,MAAM,EAMpC;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,SAAS,CAAC,KAAK,EAAE,MAAM,EAIjC;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED,IAAW,OAAO,CAAC,KAAK,EAAE,MAAM,EAI/B;IAEM,KAAK,CACV,IAAI,CAAC,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI;IAYA,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;CAIjC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoadCustomWasm.d.ts","sourceRoot":"","sources":["../../../../src/web-core/custom/LoadCustomWasm.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,qBAAqB,CAAC;AAG5C,eAAO,IAAI,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAW,CAAC;AAE1D,QAAA,MAAM,cAAc,4BA+BnB,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/web-core/custom/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-audio-api",
|
|
3
|
-
"version": "0.4.12-beta.
|
|
3
|
+
"version": "0.4.12-beta.5",
|
|
4
4
|
"description": "react-native-audio-api provides system for controlling audio in React Native environment compatible with Web Audio API specification",
|
|
5
|
-
"
|
|
5
|
+
"bin": {
|
|
6
|
+
"setup-custom-wasm": "./scripts/setup-custom-wasm.js"
|
|
7
|
+
},
|
|
8
|
+
"source": "src/index",
|
|
9
|
+
"main": "lib/module/index",
|
|
6
10
|
"module": "lib/module/index",
|
|
7
11
|
"react-native": "src/index",
|
|
8
|
-
"source": "src/index",
|
|
9
12
|
"types": "lib/typescript/index.d.ts",
|
|
10
13
|
"files": [
|
|
11
14
|
"src/",
|
|
@@ -31,7 +34,8 @@
|
|
|
31
34
|
"!**/__fixtures__",
|
|
32
35
|
"!**/__mocks__",
|
|
33
36
|
"!**/.*",
|
|
34
|
-
"!**/node_modules"
|
|
37
|
+
"!**/node_modules",
|
|
38
|
+
"scripts/setup-custom-wasm.js"
|
|
35
39
|
],
|
|
36
40
|
"scripts": {
|
|
37
41
|
"test": "jest",
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const path = require('path');
|
|
5
|
+
|
|
6
|
+
const args = process.argv.slice(2);
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Checks if the given app configuration is an Expo project using the Metro bundler for web.
|
|
10
|
+
*
|
|
11
|
+
* @param {Object} appJson - The app configuration JSON object.
|
|
12
|
+
* @returns {boolean} - Returns true if the project is an Expo project using the Metro bundler for web, otherwise false.
|
|
13
|
+
*/
|
|
14
|
+
function isExpoProjectWithExpo(appJson) {
|
|
15
|
+
return (
|
|
16
|
+
appJson.expo && appJson.expo.web && appJson.expo.web.bundler === 'metro'
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Checks if the current project is an Expo project using the Metro bundler.
|
|
22
|
+
*
|
|
23
|
+
* This function attempts to read the `app.json` file from the current working directory
|
|
24
|
+
* to determine if the project is an Expo project. If the project is an Expo project,
|
|
25
|
+
* it further checks if the Metro bundler is being used.
|
|
26
|
+
*
|
|
27
|
+
* @returns {boolean} - Returns `true` if the project is an Expo project using the Metro bundler,
|
|
28
|
+
* `false` if it is an Expo project without the Metro bundler, or if no Expo settings are found.
|
|
29
|
+
*/
|
|
30
|
+
function getIsExpoOnMetro() {
|
|
31
|
+
try {
|
|
32
|
+
const appJsonPath = path.join(process.cwd(), 'app.json');
|
|
33
|
+
|
|
34
|
+
console.log(`> Reading Expo settings from (if any):\n ${appJsonPath}\n`);
|
|
35
|
+
const appJson = require(appJsonPath);
|
|
36
|
+
|
|
37
|
+
const isExpoAndMetro = isExpoProjectWithExpo(appJson);
|
|
38
|
+
|
|
39
|
+
if (isExpoAndMetro) {
|
|
40
|
+
console.log(`> Expo project with Metro bundler detected\n`);
|
|
41
|
+
return true;
|
|
42
|
+
} else {
|
|
43
|
+
console.log(`> Expo project without Metro bundler detected\n`);
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
} catch (error) {
|
|
47
|
+
console.log(`No Expo settings found\n`);
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Resolves and returns the absolute path to the SignalsmithStretch.mjs file.
|
|
54
|
+
*
|
|
55
|
+
* @returns {string} The absolute path to the SignalsmithStretch.mjs file.
|
|
56
|
+
*/
|
|
57
|
+
function getInputFilePath() {
|
|
58
|
+
return path.resolve(
|
|
59
|
+
__dirname,
|
|
60
|
+
'../lib/module/web-core/custom/signalsmithStretch/SignalsmithStretch.mjs'
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Generates the output file path for the WebAssembly module.
|
|
66
|
+
*
|
|
67
|
+
* @param {boolean} isExpoAndMetro - A flag indicating whether the environment is Expo and Metro.
|
|
68
|
+
* @returns {string} The resolved output file path.
|
|
69
|
+
*/
|
|
70
|
+
function getOutputFilePath(isExpoAndMetro) {
|
|
71
|
+
const publicFolder = path.resolve(
|
|
72
|
+
args[0] || (isExpoAndMetro ? 'public' : 'web/static/js')
|
|
73
|
+
);
|
|
74
|
+
|
|
75
|
+
const publicFile = './signalsmithStretch.mjs';
|
|
76
|
+
const outputPath = path.join(publicFolder, publicFile);
|
|
77
|
+
|
|
78
|
+
console.log(`> Output file path: ${outputPath}\n`);
|
|
79
|
+
|
|
80
|
+
return outputPath;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Copies a file from the input path to the output path.
|
|
85
|
+
*
|
|
86
|
+
* @param {string} inputPath - The path of the file to be copied.
|
|
87
|
+
* @param {string} outputPath - The destination path where the file should be copied.
|
|
88
|
+
*/
|
|
89
|
+
function copyFile(inputPath, outputPath) {
|
|
90
|
+
const data = fs.readFileSync(inputPath);
|
|
91
|
+
fs.mkdirSync(path.dirname(outputPath), { recursive: true });
|
|
92
|
+
fs.writeFileSync(outputPath, data);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
(function main() {
|
|
96
|
+
const isExpoAndMetro = getIsExpoOnMetro();
|
|
97
|
+
|
|
98
|
+
const inputPath = getInputFilePath();
|
|
99
|
+
const outputPath = getOutputFilePath(isExpoAndMetro);
|
|
100
|
+
|
|
101
|
+
copyFile(inputPath, outputPath);
|
|
102
|
+
|
|
103
|
+
console.log(`> WebAssembly module setup complete\n`);
|
|
104
|
+
})();
|
package/src/api.ts
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import NativeAudioAPIModule from './specs/NativeAudioAPIModule';
|
|
2
|
+
import type { IAudioContext } from './interfaces';
|
|
3
|
+
|
|
4
|
+
/* eslint-disable no-var */
|
|
5
|
+
declare global {
|
|
6
|
+
var createAudioContext: (sampleRate?: number) => IAudioContext;
|
|
7
|
+
}
|
|
8
|
+
/* eslint-disable no-var */
|
|
9
|
+
|
|
10
|
+
if (global.createAudioContext == null) {
|
|
11
|
+
if (!NativeAudioAPIModule) {
|
|
12
|
+
throw new Error(
|
|
13
|
+
`Failed to install react-native-audio-api: The native module could not be found.`
|
|
14
|
+
);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
NativeAudioAPIModule.install();
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export { default as AudioBuffer } from './core/AudioBuffer';
|
|
21
|
+
export { default as AudioBufferSourceNode } from './core/AudioBufferSourceNode';
|
|
22
|
+
export { default as AudioContext } from './core/AudioContext';
|
|
23
|
+
export { default as AudioDestinationNode } from './core/AudioDestinationNode';
|
|
24
|
+
export { default as AudioNode } from './core/AudioNode';
|
|
25
|
+
export { default as AnalyserNode } from './core/AnalyserNode';
|
|
26
|
+
export { default as AudioParam } from './core/AudioParam';
|
|
27
|
+
export { default as AudioScheduledSourceNode } from './core/AudioScheduledSourceNode';
|
|
28
|
+
export { default as BaseAudioContext } from './core/BaseAudioContext';
|
|
29
|
+
export { default as BiquadFilterNode } from './core/BiquadFilterNode';
|
|
30
|
+
export { default as GainNode } from './core/GainNode';
|
|
31
|
+
export { default as OscillatorNode } from './core/OscillatorNode';
|
|
32
|
+
export { default as StereoPannerNode } from './core/StereoPannerNode';
|
|
33
|
+
export { default as StretcherNode } from './core/StretcherNode';
|
|
34
|
+
|
|
35
|
+
export {
|
|
36
|
+
OscillatorType,
|
|
37
|
+
BiquadFilterType,
|
|
38
|
+
ChannelCountMode,
|
|
39
|
+
ChannelInterpretation,
|
|
40
|
+
ContextState,
|
|
41
|
+
WindowType,
|
|
42
|
+
PeriodicWaveConstraints,
|
|
43
|
+
} from './types';
|
|
44
|
+
|
|
45
|
+
export {
|
|
46
|
+
IndexSizeError,
|
|
47
|
+
InvalidAccessError,
|
|
48
|
+
InvalidStateError,
|
|
49
|
+
RangeError,
|
|
50
|
+
NotSupportedError,
|
|
51
|
+
} from './errors';
|
|
@@ -11,6 +11,9 @@ export { default as BiquadFilterNode } from './web-core/BiquadFilterNode';
|
|
|
11
11
|
export { default as GainNode } from './web-core/GainNode';
|
|
12
12
|
export { default as OscillatorNode } from './web-core/OscillatorNode';
|
|
13
13
|
export { default as StereoPannerNode } from './web-core/StereoPannerNode';
|
|
14
|
+
export { default as StretcherNode } from './web-core/StretcherNode';
|
|
15
|
+
|
|
16
|
+
export * from './web-core/custom';
|
|
14
17
|
|
|
15
18
|
export {
|
|
16
19
|
OscillatorType,
|
package/src/index.ts
CHANGED
|
@@ -1,51 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import type { IAudioContext } from './interfaces';
|
|
3
|
-
|
|
4
|
-
/* eslint-disable no-var */
|
|
5
|
-
declare global {
|
|
6
|
-
var createAudioContext: (sampleRate?: number) => IAudioContext;
|
|
7
|
-
}
|
|
8
|
-
/* eslint-disable no-var */
|
|
9
|
-
|
|
10
|
-
if (global.createAudioContext == null) {
|
|
11
|
-
if (!NativeAudioAPIModule) {
|
|
12
|
-
throw new Error(
|
|
13
|
-
`Failed to install react-native-audio-api: The native module could not be found.`
|
|
14
|
-
);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
NativeAudioAPIModule.install();
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export { default as AudioBuffer } from './core/AudioBuffer';
|
|
21
|
-
export { default as AudioBufferSourceNode } from './core/AudioBufferSourceNode';
|
|
22
|
-
export { default as AudioContext } from './core/AudioContext';
|
|
23
|
-
export { default as AudioDestinationNode } from './core/AudioDestinationNode';
|
|
24
|
-
export { default as AudioNode } from './core/AudioNode';
|
|
25
|
-
export { default as AnalyserNode } from './core/AnalyserNode';
|
|
26
|
-
export { default as AudioParam } from './core/AudioParam';
|
|
27
|
-
export { default as AudioScheduledSourceNode } from './core/AudioScheduledSourceNode';
|
|
28
|
-
export { default as BaseAudioContext } from './core/BaseAudioContext';
|
|
29
|
-
export { default as BiquadFilterNode } from './core/BiquadFilterNode';
|
|
30
|
-
export { default as GainNode } from './core/GainNode';
|
|
31
|
-
export { default as OscillatorNode } from './core/OscillatorNode';
|
|
32
|
-
export { default as StereoPannerNode } from './core/StereoPannerNode';
|
|
33
|
-
export { default as StretcherNode } from './core/StretcherNode';
|
|
34
|
-
|
|
35
|
-
export {
|
|
36
|
-
OscillatorType,
|
|
37
|
-
BiquadFilterType,
|
|
38
|
-
ChannelCountMode,
|
|
39
|
-
ChannelInterpretation,
|
|
40
|
-
ContextState,
|
|
41
|
-
WindowType,
|
|
42
|
-
PeriodicWaveConstraints,
|
|
43
|
-
} from './types';
|
|
44
|
-
|
|
45
|
-
export {
|
|
46
|
-
IndexSizeError,
|
|
47
|
-
InvalidAccessError,
|
|
48
|
-
InvalidStateError,
|
|
49
|
-
RangeError,
|
|
50
|
-
NotSupportedError,
|
|
51
|
-
} from './errors';
|
|
1
|
+
export * from './api';
|
|
@@ -17,14 +17,14 @@ export default class AudioBuffer {
|
|
|
17
17
|
this.numberOfChannels = buffer.numberOfChannels;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
public getChannelData(channel: number):
|
|
20
|
+
public getChannelData(channel: number): Float32Array {
|
|
21
21
|
if (channel < 0 || channel >= this.numberOfChannels) {
|
|
22
22
|
throw new IndexSizeError(
|
|
23
23
|
`The channel number provided (${channel}) is outside the range [0, ${this.numberOfChannels - 1}]`
|
|
24
24
|
);
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
return
|
|
27
|
+
return this.buffer.getChannelData(channel);
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
public copyFromChannel(
|
|
@@ -14,6 +14,9 @@ import GainNode from './GainNode';
|
|
|
14
14
|
import OscillatorNode from './OscillatorNode';
|
|
15
15
|
import PeriodicWave from './PeriodicWave';
|
|
16
16
|
import StereoPannerNode from './StereoPannerNode';
|
|
17
|
+
import StretcherNode from './StretcherNode';
|
|
18
|
+
|
|
19
|
+
import { globalWasmPromise, globalTag } from './custom/LoadCustomWasm';
|
|
17
20
|
|
|
18
21
|
export default class AudioContext implements BaseAudioContext {
|
|
19
22
|
readonly context: globalThis.AudioContext;
|
|
@@ -110,6 +113,14 @@ export default class AudioContext implements BaseAudioContext {
|
|
|
110
113
|
return new AnalyserNode(this, this.context.createAnalyser());
|
|
111
114
|
}
|
|
112
115
|
|
|
116
|
+
async createStretcher(): Promise<StretcherNode> {
|
|
117
|
+
await globalWasmPromise;
|
|
118
|
+
|
|
119
|
+
const wasmStretch = await window[globalTag](this.context);
|
|
120
|
+
|
|
121
|
+
return new StretcherNode(this, wasmStretch);
|
|
122
|
+
}
|
|
123
|
+
|
|
113
124
|
async decodeAudioDataSource(source: string): Promise<AudioBuffer> {
|
|
114
125
|
const arrayBuffer = await fetch(source).then((response) =>
|
|
115
126
|
response.arrayBuffer()
|