diff --git a/.vscode/launch.json b/.vscode/launch.json
index c6672df1..e0ed7920 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -8,7 +8,7 @@
"name": "Flutter debug",
"type": "dart",
"request": "launch",
- "program": "lib/main.dart",
+ "program": "lib/audio_data/audio_data.dart",
"flutterMode": "debug",
"cwd": "${workspaceFolder}/example"
},
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index ff106026..9ba06cf4 100755
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -9,7 +9,7 @@
},
{
"label": "compile linux debug",
- "command": "cd ${workspaceFolder}/example; flutter build linux -t lib/main.dart --debug",
+ "command": "cd ${workspaceFolder}/example; flutter build linux -t lib/test.dart --debug",
"type": "shell"
},
{
@@ -29,7 +29,7 @@
},
{
"label": "compile web wasm release",
- "command": "cd ${workspaceFolder}/example; flutter run -d chrome --web-renderer canvaskit --web-browser-flag '--disable-web-security' -t lib/buffer_stream/websocket.dart --release",
+ "command": "cd ${workspaceFolder}/example; flutter run -d chrome --wasm --web-browser-flag '--disable-web-security' -t lib/audio_data/audio_data.dart --release",
"type": "shell"
},
{
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 94563efe..447e06fa 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,7 @@
### 3.0.0-pre.0 ()
-- fix: clicks and pops when changing waveform frequency #156
+- fix: clicks and pops when changing waveform frequency #156.
+- added `Limiter` and `Compressor` filters (see `example/lib/filters/`).
- added BufferStream #148. Now it's possible to add audio data and listen to them. It provides a customizable buffering length which automatycally pauses the playing handle if there is not enough data, for example when receiving audio data from the web. It also provides a callback that allows you to know when the buffering is started and stopped. The audio data can of of the following formats:
- `s8` signed 8 bit
- `s16le` signed 16 bit little endian
@@ -9,6 +10,9 @@
- `opus` Opus codec compressed audio with Ogg container. Usefull for streaming from the Web (ie using OpenAI APIs).
- fixed Web Worker initialization non fatal error that could occur on Web.
- fixed sound distortion using single pitchShift filter and changing relative play speed #154.
+- fixed the use of `LoadMode.disk` on the Web platform which in some cases caused the `allInstancesFinished` event to not be emitted.
+- improved performance on Web, MacOS and iOS.
+- get wave and FFT sample is now simpler and faster.
- To avoid future incompatibilities when using other WASM compiled plugins, it is now necessary to add a new script to `index.html`:
```
diff --git a/README.md b/README.md
index 49a9ffc7..322fba2c 100755
--- a/README.md
+++ b/README.md
@@ -121,7 +121,7 @@ For more simple examples, check out the [example/project](https://github.com/aln
| Example | Description |
|-----------------|-------------|
|*lib/main.dart* |Very simple example where to start from. |
-|*lib/audio_data/audio_data.dart* |Simple exmple to show how to use the `AudioData` to visualize audio. |
+|*lib/audio_data/audio_data.dart* |Simple example to show how to use the `AudioData` to visualize audio. |
|*lib/buffer_stream/generate.dart* |Example of how to generate PCM audio inside an `Isolate` and play them. |
|*lib/buffer_stream/websocket.dart* |Shows how to use BufferStream with a websocket to get PCM and Opus audio data. |
|*lib/filters/compressor.dart* |Shows the use of the compressor filter. |
diff --git a/example/example.md b/example/example.md
deleted file mode 100644
index d70e3c8d..00000000
--- a/example/example.md
+++ /dev/null
@@ -1,119 +0,0 @@
-```dart
-import 'dart:async';
-
-import 'package:file_picker/file_picker.dart';
-import 'package:flutter/material.dart';
-import 'package:flutter_soloud/flutter_soloud.dart';
-
-void main() {
- runApp(const MyApp());
-}
-
-class MyApp extends StatelessWidget {
- const MyApp({super.key});
- @override
- Widget build(BuildContext context) {
- return const MaterialApp(
- home: HelloFlutterSoLoud(),
- );
- }
-}
-
-/// Simple usecase of flutter_soloud plugin
-class HelloFlutterSoLoud extends StatefulWidget {
- const HelloFlutterSoLoud({super.key});
-
- @override
- State createState() => _HelloFlutterSoLoudState();
-}
-
-class _HelloFlutterSoLoudState extends State {
- SoundProps? currentSound;
-
- @override
- void dispose() {
- SoLoud().stopIsolate();
- SoLoud().stopCapture();
- super.dispose();
- }
-
- @override
- Widget build(BuildContext context) {
- return Scaffold(
- body: Center(
- child: Column(
- mainAxisAlignment: MainAxisAlignment.spaceAround,
- children: [
- /// pick audio file
- ElevatedButton(
- onPressed: () async {
- final paths = (await FilePicker.platform.pickFiles(
- type: FileType.custom,
- allowedExtensions: ['mp3', 'wav', 'ogg', 'flac'],
- onFileLoading: print,
- dialogTitle: 'Pick audio file',
- ))
- ?.files;
- if (paths != null) {
- unawaited(play(paths.first.path!));
- }
- },
- child: const Text('pick audio'),
- ),
- Column(
- children: [
- /// start the capture
- ElevatedButton(
- onPressed: () async {
- final a = SoLoud().initCapture();
- final b = SoLoud().startCapture();
- if (mounted &&
- a == CaptureErrors.captureNoError &&
- b == CaptureErrors.captureNoError) {
- setState(() {});
- }
- },
- child: const Text('start mic'),
- ),
- /// at this point, look at [hello_flutter.dar] to see
- /// how to read and manage frequencies or wave audio samples
- ],
- ),
- ],
- ),
- ),
- );
- }
-
- /// play file
- Future play(String file) async {
- /// Start audio engine if not already
- if (!SoLoud().isIsolateRunning()) {
- await SoLoud().startIsolate().then((value) {
- if (value == PlayerErrors.noError) {
- debugPrint('isolate started');
- } else {
- debugPrint('isolate starting error: $value');
- return;
- }
- });
- }
-
- /// stop any previous sound loaded
- if (currentSound != null) {
- if (await SoLoud().disposeSound(currentSound!) !=
- PlayerErrors.noError) return;
- }
-
- /// load the audio file
- final newSound = await SoloudTools.loadFromFile(file);
- if (newSound == null) return;
- currentSound = newSound;
-
- /// play it
- final playRet = await SoLoud().play(currentSound!);
- if (playRet.error != PlayerErrors.noError) return;
- currentSound = playRet.sound;
- }
-}
-```
\ No newline at end of file
diff --git a/example/lib/audio_data/audio_data.dart b/example/lib/audio_data/audio_data.dart
index 8fa74b66..573a58a3 100644
--- a/example/lib/audio_data/audio_data.dart
+++ b/example/lib/audio_data/audio_data.dart
@@ -68,7 +68,9 @@ class _HelloFlutterSoLoudState extends State {
@override
void initState() {
super.initState();
- SoLoud.instance.loadAsset('assets/audio/8_bit_mentality.mp3').then((value) {
+ SoLoud.instance
+ .loadAsset('assets/audio/8_bit_mentality.mp3', mode: LoadMode.disk)
+ .then((value) {
currentSound = value;
SoLoud.instance.play(currentSound!, looping: true, volume: 0.5);
if (context.mounted) setState(() {});
diff --git a/example/lib/audio_data/data_widget.dart b/example/lib/audio_data/data_widget.dart
index 680507eb..b0b0e8c9 100644
--- a/example/lib/audio_data/data_widget.dart
+++ b/example/lib/audio_data/data_widget.dart
@@ -16,9 +16,8 @@ class AudioDataWidgetState extends State
/// Set [AudioData] to use a `linear` data kind. This is the way to get both
/// wave and FFT data.
- final AudioData audioData = AudioData(
- GetSamplesKind.linear,
- );
+ final AudioData audioData = AudioData(GetSamplesKind.linear);
+
@override
void initState() {
super.initState();
@@ -87,14 +86,15 @@ class WavePainter extends CustomPainter {
..strokeWidth = barWidth * 0.8
..color = Colors.yellowAccent;
+ final samples = audioData.getAudioData();
+
+ double waveHeight;
+ double fftHeight;
+
for (var i = 0; i < 256; i++) {
- late final double waveHeight;
- late final double fftHeight;
try {
- final double waveData;
- final double fftData;
- waveData = audioData.getLinearWave(SampleLinear(i));
- fftData = audioData.getLinearFft(SampleLinear(i));
+ final fftData = samples[i];
+ final waveData = samples[i + 256];
waveHeight = size.height * waveData * 0.5;
fftHeight = size.height * fftData / 2;
} on Exception {
diff --git a/example/lib/filters/pitchshift.dart b/example/lib/filters/pitchshift.dart
index 99670881..370f92c9 100644
--- a/example/lib/filters/pitchshift.dart
+++ b/example/lib/filters/pitchshift.dart
@@ -32,7 +32,7 @@ import 'package:logging/logging.dart';
/// Use the filter globally or attached to the sound. Filters for single sounds
/// are not supported in the Web platform.
-const bool useGlobalFilter = true;
+const bool useGlobalFilter = false;
void main() async {
// The `flutter_soloud` package logs everything
@@ -136,6 +136,7 @@ class _PitchShiftState extends State {
Text('time stretching: ${ts.toStringAsFixed(2)}'),
Expanded(
child: Slider.adaptive(
+ min: 0.35,
max: 5,
value: ts,
onChanged: (value) {
diff --git a/example/tests/tests.dart b/example/tests/tests.dart
index 7eab54cf..2ba5ce79 100644
--- a/example/tests/tests.dart
+++ b/example/tests/tests.dart
@@ -302,8 +302,10 @@ Future testAllInstancesFinished() async {
final explosion =
await SoLoud.instance.loadAsset('assets/audio/explosion.mp3');
- final song =
- await SoLoud.instance.loadAsset('assets/audio/8_bit_mentality.mp3');
+ final song = await SoLoud.instance.loadAsset(
+ 'assets/audio/8_bit_mentality.mp3',
+ mode: LoadMode.disk,
+ );
// Set up unloading.
var explosionDisposed = false;
diff --git a/lib/flutter_soloud.dart b/lib/flutter_soloud.dart
index 0e648a6c..96f9f1be 100644
--- a/lib/flutter_soloud.dart
+++ b/lib/flutter_soloud.dart
@@ -3,7 +3,6 @@ library;
export 'src/audio_source.dart';
export 'src/bindings/audio_data.dart';
-export 'src/bindings/audio_data_extensions.dart';
export 'src/enums.dart' hide PlayerErrors, PlayerStateNotification;
export 'src/exceptions/exceptions.dart';
export 'src/filter_params.dart';
diff --git a/lib/src/bindings/audio_data.dart b/lib/src/bindings/audio_data.dart
index ac730749..97a457cf 100644
--- a/lib/src/bindings/audio_data.dart
+++ b/lib/src/bindings/audio_data.dart
@@ -1,4 +1,4 @@
-import 'package:flutter_soloud/src/bindings/audio_data_extensions.dart';
+import 'package:flutter/foundation.dart';
import 'package:flutter_soloud/src/bindings/audio_data_ffi.dart'
if (dart.library.js_interop) 'audio_data_web.dart';
import 'package:flutter_soloud/src/bindings/soloud_controller.dart';
@@ -9,24 +9,21 @@ import 'package:meta/meta.dart';
/// The way the audio data should be acquired.
///
/// Every time [AudioData.updateSamples] is called it is possible to query the
-/// acquired new audio data using [AudioData.getLinearFft],
-/// [AudioData.getLinearWave], [AudioData.getTexture] or [AudioData.getWave].
+/// acquired new audio data using [AudioData.getAudioData]. The latter method
+/// returns a [Float32List] containing the audio data in the way specified by
+/// [GetSamplesKind] enum.
enum GetSamplesKind {
+ /// Get the 256 float of wave audio data.
+ wave,
+
/// Get data in a linear manner: the first 256 floats are audio FFI values,
/// the other 256 are audio wave samples.
- /// To get the audio data use [AudioData.getLinearFft] or
- /// [AudioData.getLinearWave].
linear,
/// Get data in a 2D way. The resulting data will be a matrix of 256
/// [linear] rows. Each time the [AudioData.updateSamples] method is called,
/// the last row is discarded and the new one will be the first.
- /// To get the audio data use [AudioData.getTexture].
texture,
-
- /// Get the 256 float of wave audio data.
- /// To get the audio data use [AudioData.getWave].
- wave,
}
/// Class to manage audio samples.
@@ -35,13 +32,13 @@ enum GetSamplesKind {
/// player. You can achieve this by calling
/// `SoLoud.instance.setVisualizationEnabled(true);`.
///
-/// Audio samples can be get from the player or from the microphone, and
-/// in a texture matrix or a linear array way.
+/// Audio samples can be get from the player in three ways. See [GetSamplesKind]
+/// for more information.
///
/// IMPORTANT: remember to call [dispose] method when there is no more need
/// to acquire audio.
///
-/// After calling [updateSamples] it's possible to call the proper getter
+/// After calling [updateSamples] it's possible to call [AudioData.getAudioData]
/// to have back the audio samples. For example, using a "Ticker"
/// in a Widget that needs the audio data to be displayed:
/// ```dart
@@ -54,7 +51,7 @@ enum GetSamplesKind {
/// @override
/// void initState() {
/// super.initState();
-/// audioData = AudioData(GetSamplesFrom.player, GetSamplesKind.linear);
+/// audioData = AudioData(GetSamplesKind.linear);
/// ticker = createTicker(_tick);
/// ticker.start();
/// }
@@ -71,8 +68,8 @@ enum GetSamplesKind {
/// try {
/// audioData.updateSamples();
/// setState(() {});
-/// } on Exception {
-/// debugPrint('Player not initialized or visualization is not enabled!');
+/// } on Exception catch (e) {
+/// debugPrint('$e');
/// }
/// }
/// }
@@ -80,25 +77,25 @@ enum GetSamplesKind {
/// Then in your "build" method, you can read the audio data:
/// ```dart
/// try {
-/// /// Use [getTexture] if you have inizialized [AudioData]
-/// /// with [GetSamplesKind.texture]
-/// ffiData = audioData.getLinearFft(i);
-/// waveData = audioData.getLinearWave(i);
-/// } on Exception {
-/// ffiData = 0;
-/// waveData = 0;
+/// /// Since we are used [GetSamplesKind.linear], `samples` will contain
+/// /// 512 floats: the first 256 are FFT values, the other 256 are wave values
+/// final samples = audioData.getAudioData();
+/// Float32List ffiData = samples.sublist(0, 256);
+/// Float32List waveData = samples.sublist(256, 512);
+/// /// Do something with `ffiData` and `waveData`
+/// } on Exception catch (e) {
+/// debugPrint('$e');
/// }
/// ```
///
/// To smooth FFT values use [SoLoud.setFftSmoothing].
-@experimental
class AudioData {
/// Initialize the way the audio data should be acquired.
AudioData(
this._getSamplesKind,
) : ctrl = AudioDataCtrl() {
_init();
- ctrl.allocSamples();
+ ctrl.allocSamples(this);
}
void _init() {
@@ -127,8 +124,8 @@ class AudioData {
/// do [GetSamplesKind] checks on every calls.
late void Function(AudioData) _updateCallback;
- /// Update the content of samples memory to be get with [getWave],
- /// [getLinearFft], [getLinearWave] or [getTexture].
+ /// Update the content of samples memory to be read later
+ /// using [getAudioData].
///
/// Throws [SoLoudNotInitializedException] if the engine is not initialized.
/// Throws [SoLoudVisualizationNotEnabledException] if the visualization
@@ -155,65 +152,23 @@ class AudioData {
ctrl.dispose(_getSamplesKind);
}
- /// Get the wave data at offset [offset].
- ///
- /// Use this method to get data when using [GetSamplesKind.wave].
- /// The data is composed of 256 floats.
- double getWave(SampleWave offset) {
- if (_getSamplesKind != GetSamplesKind.wave) {
- return 0;
- }
-
- if (!SoLoudController().soLoudFFI.getVisualizationEnabled()) {
- throw const SoLoudVisualizationNotEnabledException();
- }
- return ctrl.getWave(offset);
- }
-
- /// Get the FFT audio data at offset [offset].
- ///
- /// Use this method to get FFT data when using [GetSamplesKind.linear].
- /// The data is composed of 256 floats.
- double getLinearFft(SampleLinear offset) {
- if (_getSamplesKind != GetSamplesKind.linear) {
- return 0;
- }
-
- if (!SoLoudController().soLoudFFI.getVisualizationEnabled()) {
- throw const SoLoudVisualizationNotEnabledException();
- }
- return ctrl.getLinearFft(offset);
- }
-
- /// Get the wave audio data at offset [offset].
+ /// Get audio data data.
///
- /// Use this method to get wave data when using [GetSamplesKind.linear].
- /// The data is composed of 256 floats.
- double getLinearWave(SampleLinear offset) {
- if (_getSamplesKind != GetSamplesKind.linear) {
- return 0;
- }
-
+ /// Depending on the [GetSamplesKind] used to initialize [AudioData],
+ /// the returned data will be a [Float32List]. See [GetSamplesKind] for
+ /// more information.
+ Float32List getAudioData() {
if (!SoLoudController().soLoudFFI.getVisualizationEnabled()) {
throw const SoLoudVisualizationNotEnabledException();
}
- return ctrl.getLinearWave(offset);
- }
- /// Get the audio data at row [row] and column [column].
- /// Use this method to get data when using [GetSamplesKind.texture].
- /// This matrix represents 256 rows. Each rows is represented by 256 floats
- /// of FFT data and 256 floats of wave data.
- /// Each time the [AudioData.updateSamples] method is called,
- /// the last row is discarded and the new one will be the first.
- double getTexture(SampleRow row, SampleColumn column) {
- if (_getSamplesKind != GetSamplesKind.texture) {
- return 0;
- }
-
- if (!SoLoudController().soLoudFFI.getVisualizationEnabled()) {
- throw const SoLoudVisualizationNotEnabledException();
+ switch (_getSamplesKind) {
+ case GetSamplesKind.wave:
+ return ctrl.getWave();
+ case GetSamplesKind.linear:
+ return ctrl.getFftAndWave();
+ case GetSamplesKind.texture:
+ return ctrl.get2DTexture();
}
- return ctrl.getTexture(row, column);
}
}
diff --git a/lib/src/bindings/audio_data_extensions.dart b/lib/src/bindings/audio_data_extensions.dart
deleted file mode 100644
index c30a835a..00000000
--- a/lib/src/bindings/audio_data_extensions.dart
+++ /dev/null
@@ -1,110 +0,0 @@
-/// The extension type for the `AudioData.get2D` method which accepts
-/// the [value] value in 0~255 range.
-extension type SampleRow._(int value) {
- /// Constructs a valid row with [value].
- SampleRow(this.value)
- : assert(value >= 0 && value <= 255, 'row must in 0~255 included range.');
-
- /// Operator "*", clamp the resulting value.
- SampleRow operator *(int other) {
- final result = (other * value).clamp(0, 255);
- return SampleRow(result);
- }
-
- /// Operator "+", clamp the resulting value.
- SampleRow operator +(int other) {
- final result = (other + value).clamp(0, 255);
- return SampleRow(result);
- }
-
- /// Operator "-", clamp the resulting value.
- SampleRow operator -(int other) {
- final result = (other - value).clamp(0, 255);
- return SampleRow(result);
- }
-}
-
-/// The extension type for the `AudioData.get2D` method which accepts
-/// the [value] value in 0~511 range.
-extension type SampleColumn._(int value) {
- /// Constructs a valid column with [value].
- SampleColumn(this.value)
- : assert(value >= 0 && value <= 511, 'row must in 0~511 included range.');
-
- /// Operator "*", clamp the resulting value.
- SampleColumn operator *(int other) {
- final result = (other * value).clamp(0, 511);
- return SampleColumn(result);
- }
-
- /// Operator "+", clamp the resulting value.
- SampleColumn operator +(int other) {
- final result = (other + value).clamp(0, 511);
- return SampleColumn(result);
- }
-
- /// Operator "-", clamp the resulting value.
- SampleColumn operator -(int other) {
- final result = (other - value).clamp(0, 511);
- return SampleColumn(result);
- }
-}
-
-/// The extension type for the `AudioData.getLinearFft` and
-/// `AudioData.getLinearWave` method which accept
-/// the [value] value in 0~255 range.
-extension type SampleLinear._(int value) {
- /// Constructs a valid offset with [value].
- SampleLinear(this.value)
- : assert(
- value >= 0 && value <= 255,
- 'offset must in 0~255 included range.',
- );
-
- /// Operator "*", clamp the resulting value.
- SampleLinear operator *(int other) {
- final result = (other * value).clamp(0, 255);
- return SampleLinear(result);
- }
-
- /// Operator "+", clamp the resulting value.
- SampleLinear operator +(int other) {
- final result = (other + value).clamp(0, 255);
- return SampleLinear(result);
- }
-
- /// Operator "-", clamp the resulting value.
- SampleLinear operator -(int other) {
- final result = (other - value).clamp(0, 255);
- return SampleLinear(result);
- }
-}
-
-/// The extension type for the `AudioData.getWave`
-/// method which accepts the [value] value in 0~255 range.
-extension type SampleWave._(int value) {
- /// Constructs a valid offset with [value].
- SampleWave(this.value)
- : assert(
- value >= 0 && value <= 255,
- 'offset must in 0~255 included range.',
- );
-
- /// Operator "*", clamp the resulting value.
- SampleWave operator *(int other) {
- final result = (other * value).clamp(0, 255);
- return SampleWave(result);
- }
-
- /// Operator "+", clamp the resulting value.
- SampleWave operator +(int other) {
- final result = (other + value).clamp(0, 255);
- return SampleWave(result);
- }
-
- /// Operator "-", clamp the resulting value.
- SampleWave operator -(int other) {
- final result = (other - value).clamp(0, 255);
- return SampleWave(result);
- }
-}
diff --git a/lib/src/bindings/audio_data_ffi.dart b/lib/src/bindings/audio_data_ffi.dart
index fd1c8741..f37769c8 100644
--- a/lib/src/bindings/audio_data_ffi.dart
+++ b/lib/src/bindings/audio_data_ffi.dart
@@ -3,8 +3,8 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart' show calloc;
+import 'package:flutter/foundation.dart';
import 'package:flutter_soloud/src/bindings/audio_data.dart';
-import 'package:flutter_soloud/src/bindings/audio_data_extensions.dart';
import 'package:flutter_soloud/src/bindings/soloud_controller.dart';
import 'package:flutter_soloud/src/enums.dart';
@@ -25,13 +25,13 @@ class AudioDataCtrl {
final void Function(AudioData) waveCallback =
SoLoudController().soLoudFFI.getWave;
- final PlayerErrors Function(AudioData) texture2DCallback =
- SoLoudController().soLoudFFI.getAudioTexture2D;
-
final void Function(AudioData) textureCallback =
SoLoudController().soLoudFFI.getAudioTexture;
- void allocSamples() {
+ final PlayerErrors Function(AudioData) texture2DCallback =
+ SoLoudController().soLoudFFI.getAudioTexture2D;
+
+ void allocSamples(AudioData audioData) {
samples2D = calloc();
samples1D = calloc(512 * 4);
samplesWave = calloc();
@@ -45,27 +45,33 @@ class AudioDataCtrl {
if (samples2D != nullptr) calloc.free(samples2D);
}
- double getWave(SampleWave offset) {
+ Float32List getWave() {
final val = Pointer.fromAddress(samplesWave.value.address);
- if (val == nullptr) return 0;
- return val[offset.value];
- }
-
- double getLinearFft(SampleLinear offset) {
- return samples1D[offset.value];
+ if (val == nullptr) return Float32List(0);
+ return Float32List.view(
+ val.cast().asTypedList(256 * 4).buffer,
+ 0,
+ 256,
+ );
}
- double getLinearWave(SampleLinear offset) {
- return samples1D[offset.value + 256];
+ Float32List getFftAndWave() {
+ final val = Pointer.fromAddress(samples1D.address);
+ if (val == nullptr) return Float32List(0);
+ return Float32List.view(
+ val.cast().asTypedList(512 * 4).buffer,
+ 0,
+ 512,
+ );
}
- double getTexture(
- SampleRow row,
- SampleColumn column,
- ) {
- const stride = 512;
- final val = samples2D.value;
- if (val == nullptr) return 0;
- return val[stride * row.value + column.value];
+ Float32List get2DTexture() {
+ final val = Pointer.fromAddress(samples1D.address);
+ if (val == nullptr) return Float32List(0);
+ return Float32List.view(
+ val.cast().asTypedList(512 * 256 * 4).buffer,
+ 0,
+ 512 * 256,
+ );
}
}
diff --git a/lib/src/bindings/audio_data_web.dart b/lib/src/bindings/audio_data_web.dart
index 0e8fe3f9..ca9f719a 100644
--- a/lib/src/bindings/audio_data_web.dart
+++ b/lib/src/bindings/audio_data_web.dart
@@ -1,7 +1,9 @@
// ignore_for_file: public_member_api_docs
+import 'dart:js_interop';
+import 'dart:typed_data';
+
import 'package:flutter_soloud/src/bindings/audio_data.dart';
-import 'package:flutter_soloud/src/bindings/audio_data_extensions.dart';
import 'package:flutter_soloud/src/bindings/js_extension.dart';
import 'package:flutter_soloud/src/bindings/soloud_controller.dart';
@@ -9,6 +11,8 @@ class AudioDataCtrl {
late final int _samplesPtr;
int get samplesPtr => _samplesPtr;
+ late int _samplePtrPtr;
+
final void Function(AudioData) waveCallback =
SoLoudController().soLoudFFI.getWave;
@@ -18,11 +22,23 @@ class AudioDataCtrl {
final void Function(AudioData) textureCallback =
SoLoudController().soLoudFFI.getAudioTexture;
- void allocSamples() {
+ void allocSamples(AudioData audioData) {
/// This is the max amount of memory [_samplePtr] may need. This number
- /// is needed when acquiring data with [getTexture] which is a matrix of
+ /// is needed when acquiring data with [get2DTexture] which is a matrix of
/// 256 rows and 512 columns of floats (4 bytes each).
_samplesPtr = wasmMalloc(512 * 256 * 4);
+
+ /// Initialize the pointer to the pointer of the samples. This can be done
+ /// only after calling once the get* method.
+ if (audioData.getSamplesKind == GetSamplesKind.wave) {
+ SoLoudController().soLoudFFI.getWave(audioData);
+ _samplePtrPtr = wasmGetI32Value(_samplesPtr, '*');
+ }
+
+ if (audioData.getSamplesKind == GetSamplesKind.texture) {
+ SoLoudController().soLoudFFI.getAudioTexture2D(audioData);
+ _samplePtrPtr = wasmGetI32Value(_samplesPtr, '*');
+ }
}
void dispose(
@@ -33,29 +49,19 @@ class AudioDataCtrl {
}
}
- double getWave(SampleWave offset) {
- final samplePtr = wasmGetI32Value(_samplesPtr, '*');
- final data = wasmGetF32Value(samplePtr + offset.value * 4, 'float');
- return data;
- }
-
- double getLinearFft(SampleLinear offset) {
- final data = wasmGetF32Value(_samplesPtr + offset.value * 4, 'float');
- return data;
+ Float32List getWave() {
+ // final samplesPtrPtr = wasmGetI32Value(_samplesPtr, '*');
+ // Convert the JSArrayBuffer to a Dart Float32List
+ return wasmHeapU8Buffer.toDart.asFloat32List(_samplePtrPtr, 256);
}
- double getLinearWave(SampleLinear offset) {
- final data =
- wasmGetF32Value(_samplesPtr + offset.value * 4 + 256 * 4, 'float');
- return data;
+ Float32List getFftAndWave() {
+ // Convert the JSArrayBuffer to a Dart Float32List
+ return wasmHeapU8Buffer.toDart.asFloat32List(_samplesPtr, 512);
}
- double getTexture(
- SampleRow row,
- SampleColumn column,
- ) {
- // final offset = samplesPtr + ((row.value * 256 + column.value) * 4);
- // final data = wasmGetF32Value(offset, 'float');
- return wasmGetTextureValue(row.value, column.value);
+ Float32List get2DTexture() {
+ // Convert the JSArrayBuffer to a Dart Float32List
+ return wasmHeapU8Buffer.toDart.asFloat32List(_samplePtrPtr, 512 * 256);
}
}
diff --git a/lib/src/bindings/bindings_player_web.dart b/lib/src/bindings/bindings_player_web.dart
index b2ee2bbf..93fc8341 100644
--- a/lib/src/bindings/bindings_player_web.dart
+++ b/lib/src/bindings/bindings_player_web.dart
@@ -63,6 +63,13 @@ class FlutterSoLoudWeb extends FlutterSoLoud {
);
voiceEndedEventController.add(decodedMap['value'] as int);
}
+ case Map():
+ if (event['message'] == 'voiceEndedCallback') {
+ _log.finest(
+ () => 'VOICE ENDED EVENT handle: ${event['value']}\n',
+ );
+ voiceEndedEventController.add(event['value'] as int);
+ }
}
},
);
@@ -403,7 +410,11 @@ class FlutterSoLoudWeb extends FlutterSoLoud {
@override
void disposeSound(SoundHash soundHash) {
- return wasmDisposeSound(soundHash.hash);
+ try {
+ wasmDisposeSound(soundHash.hash);
+ } catch (e) {
+ _log.warning('disposeSound() error: $e');
+ }
}
@override
diff --git a/lib/src/bindings/js_extension.dart b/lib/src/bindings/js_extension.dart
index 51745d8a..3e0a758f 100644
--- a/lib/src/bindings/js_extension.dart
+++ b/lib/src/bindings/js_extension.dart
@@ -18,6 +18,12 @@ external int wasmGetI32Value(int ptrAddress, String type);
@JS('Module_soloud.getValue')
external double wasmGetF32Value(int ptrAddress, String type);
+@JS('Module_soloud.HEAPU8.buffer')
+external JSArrayBuffer get wasmHeapU8Buffer;
+
+@JS('Module_soloud.HEAPF32')
+external JSFloat32Array get wasmHeapF32Buffer;
+
@JS('Module_soloud.UTF8ToString')
external String wasmUtf8ToString(int ptrAddress);
diff --git a/lib/src/soloud.dart b/lib/src/soloud.dart
index 7ecf6284..a25e149b 100644
--- a/lib/src/soloud.dart
+++ b/lib/src/soloud.dart
@@ -605,7 +605,10 @@ interface class SoLoud {
}
/// Load a new sound to be played once or multiple times later, from
- /// a buffer.
+ /// a buffer. While [loadFile] decompresses the audio file and loads it
+ /// into memory, [loadMem] loads the audio data directly from the
+ /// compressed file. The compressed data could be read from memory
+ /// [LoadMode.memory] or from disk [LoadMode.disk].
///
/// Provide a [path] of the file to be used as a reference to distinguis
/// this [buffer].
@@ -621,8 +624,9 @@ interface class SoLoud {
/// from the given file when needed (more CPU, less memory allocated).
/// See the [seek] note problem when using [LoadMode.disk].
/// The default is [LoadMode.memory].
- /// IMPORTANT: [LoadMode.memory] used the on web platform could cause UI
- /// freeze problems.
+ /// IMPORTANT: on Web [LoadMode.disk] is is overridden to [LoadMode.memory].
+ /// This could cause UI freeze problems for long duration audio files so
+ /// it is recommended to load them when the app starts.
///
/// This is the only choice to load a file when using this plugin on the web
/// because browsers cannot read directly files from the loal storage.
diff --git a/src/active_sound.h b/src/active_sound.h
index 8bb3f13f..026e9b94 100644
--- a/src/active_sound.h
+++ b/src/active_sound.h
@@ -1,7 +1,7 @@
#ifndef ACTIVE_SOUND_H
#define ACTIVE_SOUND_H
-#include "filters/filters.h"
+#include "filters/filters_fwd.h"
#include "enums.h"
#include "soloud.h"
@@ -9,7 +9,6 @@
#include
#include
-class Filters;
#define MAX_DOUBLE 1.7976931348623157e+308
struct ActiveHandle
diff --git a/src/active_sound_fwd.h b/src/active_sound_fwd.h
new file mode 100644
index 00000000..3dd3c537
--- /dev/null
+++ b/src/active_sound_fwd.h
@@ -0,0 +1,6 @@
+#ifndef ACTIVE_SOUND_FWD_H
+#define ACTIVE_SOUND_FWD_H
+
+struct ActiveSound;
+
+#endif // ACTIVE_SOUND_FWD_H
diff --git a/src/bindings.cpp b/src/bindings.cpp
index 16e94258..5a50ac9f 100644
--- a/src/bindings.cpp
+++ b/src/bindings.cpp
@@ -56,7 +56,7 @@ extern "C"
{
// Create a new Worker from the URI
var workerUri = "assets/packages/flutter_soloud/web/worker.dart.js";
- console.log("EM_ASM creating web worker!");
+ console.log("EM_ASM creating Web Worker!");
Module_soloud.wasmWorker = new Worker(workerUri);
}
else
@@ -72,13 +72,13 @@ extern "C"
EM_ASM({
if (Module_soloud.wasmWorker)
{
+ // Send the message
+ Module_soloud.wasmWorker.postMessage({
+ message : UTF8ToString($0),
+ value : $1,
+ });
console.log("EM_ASM posting message " + UTF8ToString($0) +
" with value " + $1);
- // Send the message
- Module_soloud.wasmWorker.postMessage(JSON.stringify({
- "message" : UTF8ToString($0),
- "value" : $1
- }));
}
else
{
@@ -98,6 +98,8 @@ extern "C"
/// and comes from the audio thread (so on the web, from a different web worker).
FFI_PLUGIN_EXPORT void voiceEndedCallback(unsigned int *handle)
{
+ player->removeHandle(*handle);
+
#ifdef __EMSCRIPTEN__
// Calling JavaScript from C/C++
// https://emscripten.org/docs/porting/connecting_cpp_and_javascript/Interacting-with-code.html#interacting-with-code-call-javascript-from-native
@@ -105,9 +107,9 @@ extern "C"
sendToWorker("voiceEndedCallback", *handle);
#endif
+ // The `dartVoiceEndedCallback` is not set on Web.
if (dartVoiceEndedCallback == nullptr)
return;
- player->removeHandle(*handle);
// [n] pointer must be deleted on Dart.
unsigned int *n = (unsigned int *)malloc(sizeof(unsigned int *));
*n = *handle;
@@ -698,7 +700,15 @@ extern "C"
return;
std::lock_guard guard_init(init_deinit_mutex);
std::lock_guard guard_load(loadMutex);
- player.get()->disposeSound(soundHash);
+ try {
+ player.get()->disposeSound(soundHash);
+ }
+ catch (const std::exception& e) {
+ printf("Error in disposeSound: %s\n", e.what());
+ }
+ catch (...) {
+ printf("Unknown error in disposeSound\n");
+ }
}
/// Dispose all sounds already loaded
@@ -1142,7 +1152,7 @@ extern "C"
///
/// [handle] the group handle to check.
/// Return true if [handle] is a group handle.
- FFI_PLUGIN_EXPORT bool isVoiceGroup(unsigned int handle)
+ FFI_PLUGIN_EXPORT int isVoiceGroup(unsigned int handle)
{
if (player.get() == nullptr || !player.get()->isInited())
return false;
@@ -1155,7 +1165,7 @@ extern "C"
///
/// [handle] group handle to check.
/// Return true if the group handle doesn't have any voices.
- FFI_PLUGIN_EXPORT bool isVoiceGroupEmpty(unsigned int handle)
+ FFI_PLUGIN_EXPORT int isVoiceGroupEmpty(unsigned int handle)
{
if (player.get() == nullptr || !player.get()->isInited())
return false;
diff --git a/src/filters/filters.cpp b/src/filters/filters.cpp
index f075b10c..4dba346b 100644
--- a/src/filters/filters.cpp
+++ b/src/filters/filters.cpp
@@ -1,4 +1,5 @@
#include "filters.h"
+#include "../active_sound.h" // Add this include for complete type definition
#include
#include
@@ -23,8 +24,6 @@
Filters::Filters(SoLoud::Soloud *soloud, ActiveSound *sound)
: mSoloud(soloud), mSound(sound) {}
-Filters::~Filters() {}
-
int Filters::isFilterActive(FilterType filter)
{
for (int i = 0; i < filters.size(); i++)
@@ -177,44 +176,44 @@ PlayerErrors Filters::addFilter(FilterType filterType)
if (isFilterActive(filterType) >= 0)
return filterAlreadyAdded;
- std::unique_ptr newFilter;
+ SoLoud::Filter* newFilter = nullptr;
switch (filterType)
{
case BiquadResonantFilter:
- newFilter = std::make_unique();
+ newFilter = new SoLoud::BiquadResonantFilter();
break;
case EqFilter:
- newFilter = std::make_unique();
+ newFilter = new SoLoud::EqFilter();
break;
case EchoFilter:
- newFilter = std::make_unique();
+ newFilter = new SoLoud::EchoFilter();
break;
case LofiFilter:
- newFilter = std::make_unique();
+ newFilter = new SoLoud::LofiFilter();
break;
case FlangerFilter:
- newFilter = std::make_unique();
+ newFilter = new SoLoud::FlangerFilter();
break;
case BassboostFilter:
- newFilter = std::make_unique();
+ newFilter = new SoLoud::BassboostFilter();
break;
case WaveShaperFilter:
- newFilter = std::make_unique();
+ newFilter = new SoLoud::WaveShaperFilter();
break;
case RobotizeFilter:
- newFilter = std::make_unique();
+ newFilter = new SoLoud::RobotizeFilter();
break;
case FreeverbFilter:
- newFilter = std::make_unique();
+ newFilter = new SoLoud::FreeverbFilter();
break;
case PitchShiftFilter:
- newFilter = std::make_unique();
+ newFilter = new PitchShift();
break;
case LimiterFilter:
- newFilter = std::make_unique();
+ newFilter = new Limiter();
break;
case CompressorFilter:
- newFilter = std::make_unique(mSoloud->mSamplerate);
+ newFilter = new Compressor(mSoloud->mSamplerate);
break;
default:
return filterNotFound;
@@ -222,14 +221,15 @@ PlayerErrors Filters::addFilter(FilterType filterType)
if (mSound == nullptr)
{
- mSoloud->setGlobalFilter(filtersSize, newFilter.get());
+ mSoloud->setGlobalFilter(filtersSize, newFilter);
}
else
{
- mSound->sound.get()->setFilter(filtersSize, newFilter.get());
+ mSound->sound.get()->setFilter(filtersSize, newFilter);
}
- std::unique_ptr nfo = std::make_unique(filterType, std::move(newFilter));
+ // Create FilterObject taking ownership of raw pointer
+ std::unique_ptr nfo = std::make_unique(filterType, newFilter);
filters.push_back(std::move(nfo));
return noError;
diff --git a/src/filters/filters.h b/src/filters/filters.h
index 87ffb372..92f4295f 100644
--- a/src/filters/filters.h
+++ b/src/filters/filters.h
@@ -1,7 +1,9 @@
#ifndef FILTERS_H
#define FILTERS_H
-#include "../active_sound.h"
+#include "../active_sound_fwd.h"
+#include "filters_fwd.h"
+#include "enums.h"
#include "soloud.h"
#include "soloud_filter.h"
@@ -10,15 +12,13 @@
#include
#include
-struct ActiveSound;
-
struct FilterObject
{
FilterType type;
std::unique_ptr filter;
- FilterObject(FilterType t, std::unique_ptr f)
- : type(t), filter(std::move(f)) {}
+ FilterObject(FilterType t, SoLoud::Filter* f)
+ : type(t), filter(f) {}
bool operator==(FilterType const &i)
{
@@ -26,15 +26,15 @@ struct FilterObject
}
};
-/// Class to manage global filters.
+/// Class to manage filters.
class Filters
{
- /// Setting the global filter to NULL will clear the global filter.
+ /// Setting the filter to NULL will clear the filter.
/// The default maximum number of global filters active is 4, but this
/// can be changed in a global constant in soloud.h (and rebuilding SoLoud).
public:
Filters(SoLoud::Soloud *soloud, ActiveSound *sound);
- ~Filters();
+ ~Filters() {}
int isFilterActive(FilterType filter);
@@ -67,7 +67,7 @@ class Filters
SoLoud::Soloud *mSoloud;
/// The sound to manage filters for. If null the filters are managed globally.
- ActiveSound *mSound;
+ const ActiveSound *mSound;
std::vector> filters;
};
diff --git a/src/filters/filters_fwd.h b/src/filters/filters_fwd.h
new file mode 100644
index 00000000..55732874
--- /dev/null
+++ b/src/filters/filters_fwd.h
@@ -0,0 +1,9 @@
+#ifndef FILTERS_FWD_H
+#define FILTERS_FWD_H
+
+#include "enums.h"
+
+class Filters;
+struct FilterObject;
+
+#endif // FILTERS_FWD_H
diff --git a/src/player.cpp b/src/player.cpp
index 77c4cdb8..b2c61963 100644
--- a/src/player.cpp
+++ b/src/player.cpp
@@ -16,6 +16,12 @@
#include
#endif
+#ifdef __EMSCRIPTEN__
+#define __WEB__ 1
+#else
+#define __WEB__ 0
+#endif
+
Player::Player() : mInited(false), mFilters(&soloud, nullptr) {}
Player::~Player()
@@ -222,7 +228,7 @@ PlayerErrors Player::loadFile(
*hash = 0;
unsigned int newHash = (int32_t)std::hash{}(completeFileName) & 0x7fffffff;
- /// check if the sound has been already loaded
+ /// check if the sound has already been loaded
auto const s = findByHash(newHash);
if (s != nullptr)
@@ -231,23 +237,24 @@ PlayerErrors Player::loadFile(
return fileAlreadyLoaded;
}
- auto sound = std::make_unique();
-
- sound->completeFileName = std::string(completeFileName);
- sound->soundHash = newHash;
+ std::unique_ptr newSound = std::make_unique();
+ newSound.get()->completeFileName = std::string(completeFileName);
+ *hash = newHash;
+ newSound.get()->soundHash = newHash;
SoLoud::result result;
- if (loadIntoMem)
+ // This function is never called when running on the Web, but [__WEB__] is checked for consistency with [loadMem].
+ if (loadIntoMem || __WEB__)
{
- sound->sound = std::make_unique();
- sound->soundType = TYPE_WAV;
- result = static_cast(sound->sound.get())->load(completeFileName.c_str());
+ newSound.get()->sound = std::make_unique();
+ newSound.get()->soundType = TYPE_WAV;
+ result = static_cast(newSound.get()->sound.get())->load(completeFileName.c_str());
}
else
{
- sound->sound = std::make_unique();
- sound->soundType = TYPE_WAVSTREAM;
- result = static_cast(sound->sound.get())->load(completeFileName.c_str());
+ newSound.get()->sound = std::make_unique();
+ newSound.get()->soundType = TYPE_WAVSTREAM;
+ result = static_cast(newSound.get()->sound.get())->load(completeFileName.c_str());
}
if (result != SoLoud::SO_NO_ERROR)
@@ -257,8 +264,8 @@ PlayerErrors Player::loadFile(
else
{
*hash = newHash;
- sound->filters = std::make_unique(&soloud, sound.get());
- sounds.push_back(std::move(sound));
+ newSound.get()->filters = std::make_unique(&soloud, newSound.get());
+ sounds.push_back(std::move(newSound));
}
return (PlayerErrors)result;
@@ -277,7 +284,7 @@ PlayerErrors Player::loadMem(
hash = 0;
unsigned int newHash = (int32_t)std::hash{}(uniqueName) & 0x7fffffff;
- /// check if the sound has been already loaded
+ /// check if the sound has already been loaded
auto const s = findByHash(newHash);
if (s != nullptr)
@@ -286,12 +293,12 @@ PlayerErrors Player::loadMem(
return fileAlreadyLoaded;
}
- std::unique_ptr newSound = std::make_unique();
+ auto newSound = std::make_unique();
newSound.get()->completeFileName = std::string(uniqueName);
hash = newHash;
newSound.get()->soundHash = newHash;
SoLoud::result result;
- if (loadIntoMem)
+ if (loadIntoMem || __WEB__)
{
newSound.get()->sound = std::make_unique();
newSound.get()->soundType = TYPE_WAV;
@@ -329,7 +336,7 @@ PlayerErrors Player::setBufferStream(
hash = dist(g);
- std::unique_ptr newSound = std::make_unique();
+ auto newSound = std::make_unique();
newSound.get()->completeFileName = "";
newSound.get()->soundHash = hash;
@@ -526,15 +533,12 @@ void Player::stop(unsigned int handle)
void Player::removeHandle(unsigned int handle)
{
- const std::lock_guard guard(remove_handle_mutex);
- // for (auto &sound : sounds)
- // sound->handle.erase(std::remove_if(
- // sound->handle.begin(), sound->handle.end(),
- // [handle](SoLoud::handle &f)
- // { return f == handle; }));
bool e = true;
- for (int i = 0; i < sounds.size(); ++i)
- for (int n = 0; n < sounds[i]->handle.size(); ++n)
+ int i = 0;
+ while (sounds.size() > i && e)
+ {
+ int n = 0;
+ while (n < sounds[i]->handle.size() && e)
{
if (sounds[i]->handle[n].handle == handle)
{
@@ -542,29 +546,48 @@ void Player::removeHandle(unsigned int handle)
e = false;
break;
}
- if (e)
- break;
+ ++n;
}
+ ++i;
+ }
}
-void Player::disposeSound(unsigned int soundHash)
-{
- ActiveSound *sound = findByHash(soundHash);
+void Player::disposeSound(unsigned int soundHash) {
+ if (sounds.empty()) {
+ return;
+ }
- if (sound == nullptr)
- return;
+ auto it = std::find_if(sounds.begin(), sounds.end(),
+ [soundHash](const std::unique_ptr& sound) {
+ return sound->soundHash == soundHash;
+ });
- sound->sound.get()->stop();
- // remove the sound from the list
- sounds.erase(std::remove_if(sounds.begin(), sounds.end(),
- [soundHash](std::unique_ptr &f)
- { return f.get()->soundHash == soundHash; }));
+ if (it != sounds.end())
+ {
+ // Free filters
+ if (it->get()->filters) {
+ Filters *f = it->get()->filters.release();
+ if (f != nullptr) {
+ // TODO: deleting "f" when running on Web will crash with segmentation fault.
+ // This could be a bug in WebAssembly I can't figure out. Even if I don't delete
+ // there shouldn't be a memory leak as the filters are destroyed with the sound.
+ // This beahviour can be tested by running "testAllInstancesFinished" in tests.dart.
+ // delete f;
+ }
+ it->get()->filters.reset();
+ }
+
+ sounds.erase(it);
+ }
}
void Player::disposeAllSound()
{
soloud.stopAll();
- sounds.clear();
+ while (sounds.size() > 0)
+ {
+ disposeSound(sounds[0]->soundHash);
+ }
}
bool Player::getLooping(unsigned int handle)
diff --git a/web/compile_wasm.sh b/web/compile_wasm.sh
index 5bc7a54f..85658df1 100755
--- a/web/compile_wasm.sh
+++ b/web/compile_wasm.sh
@@ -65,7 +65,7 @@ SOURCES=(
../src/audiobuffer/*.cpp
)
- # Now compile everything together
+# Now compile everything together
em++ -O3 \
-I ../src/soloud/include \
-I ../src/soloud/src \
@@ -79,11 +79,12 @@ em++ -O3 \
"$OGG_DIR/src/.libs/libogg.a" \
-D WITH_MINIAUDIO \
-msimd128 -msse3 \
+ -std=c++17 \
-s "EXPORTED_RUNTIME_METHODS=['ccall','cwrap','setValue','getValue']" \
-s "EXPORTED_FUNCTIONS=['_free', '_malloc', '_memcpy', '_memset']" \
-s NO_EXIT_RUNTIME=1 \
-s SAFE_HEAP=1 \
- -s STACK_SIZE=5242880 \
+ -s STACK_SIZE=4194304 \
-s ALLOW_MEMORY_GROWTH=1 \
-s INITIAL_MEMORY=67108864 \
-s MAXIMUM_MEMORY=2147483648 \
@@ -91,5 +92,5 @@ em++ -O3 \
-s EXPORT_NAME="'Module_soloud'" \
-o ../web/libflutter_soloud_plugin.js
- echo
- echo "Build completed successfully"
+echo
+echo "Build completed successfully"
diff --git a/web/libflutter_soloud_plugin.js b/web/libflutter_soloud_plugin.js
index 23a0c905..f1b28833 100644
--- a/web/libflutter_soloud_plugin.js
+++ b/web/libflutter_soloud_plugin.js
@@ -6,7 +6,7 @@ var Module_soloud = (() => {
function(moduleArg = {}) {
var moduleRtn;
-var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof WorkerGlobalScope!="undefined";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string"&&process.type!="renderer";if(ENVIRONMENT_IS_NODE){}var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");scriptDirectory=__dirname+"/";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);var ret=fs.readFileSync(filename);return ret};readAsync=(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return new Promise((resolve,reject)=>{fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)reject(err);else resolve(binary?data.buffer:data)})})};if(!Module["thisProgram"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}return fetch(url,{credentials:"same-origin"}).then(response=>{if(response.ok){return response.arrayBuffer()}return Promise.reject(new Error(response.status+" : "+response.url))})}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];var wasmBinary=Module["wasmBinary"];function getSafeHeapType(bytes,isFloat){switch(bytes){case 1:return"i8";case 2:return"i16";case 4:return isFloat?"float":"i32";case 8:return isFloat?"double":"i64";default:abort(`getSafeHeapType() invalid bytes=${bytes}`)}}function SAFE_HEAP_STORE(dest,value,bytes,isFloat){if(dest<=0)abort(`segmentation fault storing ${bytes} bytes to address ${dest}`);if(dest%bytes!==0)abort(`alignment error storing to address ${dest}, which was expected to be aligned to a multiple of ${bytes}`);if(runtimeInitialized){var brk=_sbrk(0);if(dest+bytes>brk)abort(`segmentation fault, exceeded the top of the available dynamic heap when storing ${bytes} bytes to address ${dest}. DYNAMICTOP=${brk}`);if(brk<_emscripten_stack_get_base())abort(`brk >= _emscripten_stack_get_base() (brk=${brk}, _emscripten_stack_get_base()=${_emscripten_stack_get_base()})`);if(brk>wasmMemory.buffer.byteLength)abort(`brk <= wasmMemory.buffer.byteLength (brk=${brk}, wasmMemory.buffer.byteLength=${wasmMemory.buffer.byteLength})`)}setValue_safe(dest,value,getSafeHeapType(bytes,isFloat));return value}function SAFE_HEAP_STORE_D(dest,value,bytes){return SAFE_HEAP_STORE(dest,value,bytes,true)}function SAFE_HEAP_LOAD(dest,bytes,unsigned,isFloat){if(dest<=0)abort(`segmentation fault loading ${bytes} bytes from address ${dest}`);if(dest%bytes!==0)abort(`alignment error loading from address ${dest}, which was expected to be aligned to a multiple of ${bytes}`);if(runtimeInitialized){var brk=_sbrk(0);if(dest+bytes>brk)abort(`segmentation fault, exceeded the top of the available dynamic heap when loading ${bytes} bytes from address ${dest}. DYNAMICTOP=${brk}`);if(brk<_emscripten_stack_get_base())abort(`brk >= _emscripten_stack_get_base() (brk=${brk}, _emscripten_stack_get_base()=${_emscripten_stack_get_base()})`);if(brk>wasmMemory.buffer.byteLength)abort(`brk <= wasmMemory.buffer.byteLength (brk=${brk}, wasmMemory.buffer.byteLength=${wasmMemory.buffer.byteLength})`)}var type=getSafeHeapType(bytes,isFloat);var ret=getValue_safe(dest,type);if(unsigned)ret=unSign(ret,parseInt(type.substr(1),10));return ret}function SAFE_HEAP_LOAD_D(dest,bytes,unsigned){return SAFE_HEAP_LOAD(dest,bytes,unsigned,true)}function segfault(){abort("segmentation fault")}function alignfault(){abort("alignment fault")}var wasmMemory;var ABORT=false;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");function findWasmBinary(){var f="libflutter_soloud_plugin.wasm";if(!isDataURI(f)){return locateFile(f)}return f}var wasmBinaryFile;function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}function getBinaryPromise(binaryFile){if(!wasmBinary){return readAsync(binaryFile).then(response=>new Uint8Array(response),()=>getBinarySync(binaryFile))}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function getWasmImports(){return{a:wasmImports}}function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["t"];updateMemoryViews();addOnInit(wasmExports["u"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}var info=getWasmImports();if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}wasmBinaryFile??=findWasmBinary();instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var tempDouble;var tempI64;var ASM_CONSTS={141068:($0,$1,$2,$3,$4)=>{if(typeof window==="undefined"||(window.AudioContext||window.webkitAudioContext)===undefined){return 0}if(typeof window.miniaudio==="undefined"){window.miniaudio={referenceCount:0};window.miniaudio.device_type={};window.miniaudio.device_type.playback=$0;window.miniaudio.device_type.capture=$1;window.miniaudio.device_type.duplex=$2;window.miniaudio.device_state={};window.miniaudio.device_state.stopped=$3;window.miniaudio.device_state.started=$4;let miniaudio=window.miniaudio;miniaudio.devices=[];miniaudio.track_device=function(device){for(var iDevice=0;iDevice0){if(miniaudio.devices[miniaudio.devices.length-1]==null){miniaudio.devices.pop()}else{break}}};miniaudio.untrack_device=function(device){for(var iDevice=0;iDevice{_ma_device__on_notification_unlocked(device.pDevice)},error=>{console.error("Failed to resume audiocontext",error)})}}miniaudio.unlock_event_types.map(function(event_type){document.removeEventListener(event_type,miniaudio.unlock,true)})};miniaudio.unlock_event_types.map(function(event_type){document.addEventListener(event_type,miniaudio.unlock,true)})}window.miniaudio.referenceCount+=1;return 1},143246:()=>{if(typeof window.miniaudio!=="undefined"){miniaudio.unlock_event_types.map(function(event_type){document.removeEventListener(event_type,miniaudio.unlock,true)});window.miniaudio.referenceCount-=1;if(window.miniaudio.referenceCount===0){delete window.miniaudio}}},143536:()=>navigator.mediaDevices!==undefined&&navigator.mediaDevices.getUserMedia!==undefined,143640:()=>{try{var temp=new(window.AudioContext||window.webkitAudioContext);var sampleRate=temp.sampleRate;temp.close();return sampleRate}catch(e){return 0}},143811:($0,$1,$2,$3,$4,$5)=>{var deviceType=$0;var channels=$1;var sampleRate=$2;var bufferSize=$3;var pIntermediaryBuffer=$4;var pDevice=$5;if(typeof window.miniaudio==="undefined"){return-1}var device={};var audioContextOptions={};if(deviceType==window.miniaudio.device_type.playback&&sampleRate!=0){audioContextOptions.sampleRate=sampleRate}device.webaudio=new(window.AudioContext||window.webkitAudioContext)(audioContextOptions);device.webaudio.suspend();device.state=window.miniaudio.device_state.stopped;var channelCountIn=0;var channelCountOut=channels;if(deviceType!=window.miniaudio.device_type.playback){channelCountIn=channels}device.scriptNode=device.webaudio.createScriptProcessor(bufferSize,channelCountIn,channelCountOut);device.scriptNode.onaudioprocess=function(e){if(device.intermediaryBufferView==null||device.intermediaryBufferView.length==0){device.intermediaryBufferView=new Float32Array(HEAPF32.buffer,pIntermediaryBuffer,bufferSize*channels)}if(deviceType==window.miniaudio.device_type.capture||deviceType==window.miniaudio.device_type.duplex){for(var iChannel=0;iChannelwindow.miniaudio.get_device_by_index($0).webaudio.sampleRate,146761:$0=>{var device=window.miniaudio.get_device_by_index($0);if(device.scriptNode!==undefined){device.scriptNode.onaudioprocess=function(e){};device.scriptNode.disconnect();device.scriptNode=undefined}if(device.streamNode!==undefined){device.streamNode.disconnect();device.streamNode=undefined}device.webaudio.close();device.webaudio=undefined;device.pDevice=undefined},147161:$0=>{window.miniaudio.untrack_device_by_index($0)},147211:$0=>{var device=window.miniaudio.get_device_by_index($0);device.webaudio.resume();device.state=window.miniaudio.device_state.started},147350:$0=>{var device=window.miniaudio.get_device_by_index($0);device.webaudio.suspend();device.state=window.miniaudio.device_state.stopped},147490:()=>{if(!Module_soloud.wasmWorker){var workerUri="assets/packages/flutter_soloud/web/worker.dart.js";console.log("EM_ASM creating web worker!");Module_soloud.wasmWorker=new Worker(workerUri)}else{console.log("EM_ASM web worker already created!")}},147752:($0,$1)=>{if(Module_soloud.wasmWorker){console.log("EM_ASM posting message "+UTF8ToString($0)+" with value "+$1);Module_soloud.wasmWorker.postMessage(JSON.stringify({message:UTF8ToString($0),value:$1}))}else{console.error("Worker not found.")}},148018:($0,$1,$2,$3)=>{var functionName="dartOnBufferingCallback_"+$3;if(typeof window[functionName]==="function"){var buffering=$0==1?true:false;window[functionName](buffering,$1,$2)}else{console.log("EM_ASM 'dartOnBufferingCallback_$hash' not found.")}},148282:($0,$1,$2,$3)=>{var functionName="dartOnBufferingCallback_"+$3;if(typeof window[functionName]==="function"){var buffering=$0==1?true:false;window[functionName](buffering,$1,$2)}else{console.log("EM_ASM 'dartOnBufferingCallback_$hash' not found.")}}};class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":return SAFE_HEAP_LOAD(ptr,1,0);case"i8":return SAFE_HEAP_LOAD(ptr,1,0);case"i16":return SAFE_HEAP_LOAD((ptr>>1)*2,2,0);case"i32":return SAFE_HEAP_LOAD((ptr>>2)*4,4,0);case"i64":abort("to do getValue(i64) use WASM_BIGINT");case"float":return SAFE_HEAP_LOAD_D((ptr>>2)*4,4,0);case"double":return SAFE_HEAP_LOAD_D((ptr>>3)*8,8,0);case"*":return SAFE_HEAP_LOAD((ptr>>2)*4,4,1);default:abort(`invalid type for getValue: ${type}`)}}function getValue_safe(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":return HEAP8[ptr];case"i8":return HEAP8[ptr];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":abort("to do getValue(i64) use WASM_BIGINT");case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];case"*":return HEAPU32[ptr>>2];default:abort(`invalid type for getValue: ${type}`)}}var noExitRuntime=Module["noExitRuntime"]||true;function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":SAFE_HEAP_STORE(ptr,value,1);break;case"i8":SAFE_HEAP_STORE(ptr,value,1);break;case"i16":SAFE_HEAP_STORE((ptr>>1)*2,value,2);break;case"i32":SAFE_HEAP_STORE((ptr>>2)*4,value,4);break;case"i64":abort("to do setValue(i64) use WASM_BIGINT");case"float":SAFE_HEAP_STORE_D((ptr>>2)*4,value,4);break;case"double":SAFE_HEAP_STORE_D((ptr>>3)*8,value,8);break;case"*":SAFE_HEAP_STORE((ptr>>2)*4,value,4);break;default:abort(`invalid type for setValue: ${type}`)}}function setValue_safe(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":HEAP8[ptr]=value;break;case"i8":HEAP8[ptr]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":abort("to do setValue(i64) use WASM_BIGINT");case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;case"*":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();var unSign=(value,bits)=>{if(value>=0){return value}return bits<=32?2*Math.abs(1<{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])};class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){SAFE_HEAP_STORE((this.ptr+4>>2)*4,type,4)}get_type(){return SAFE_HEAP_LOAD((this.ptr+4>>2)*4,4,1)}set_destructor(destructor){SAFE_HEAP_STORE((this.ptr+8>>2)*4,destructor,4)}get_destructor(){return SAFE_HEAP_LOAD((this.ptr+8>>2)*4,4,1)}set_caught(caught){caught=caught?1:0;SAFE_HEAP_STORE(this.ptr+12,caught,1)}get_caught(){return SAFE_HEAP_LOAD(this.ptr+12,1,0)!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;SAFE_HEAP_STORE(this.ptr+13,rethrown,1)}get_rethrown(){return SAFE_HEAP_LOAD(this.ptr+13,1,0)!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){SAFE_HEAP_STORE((this.ptr+16>>2)*4,adjustedPtr,4)}get_adjusted_ptr(){return SAFE_HEAP_LOAD((this.ptr+16>>2)*4,4,1)}}var exceptionLast=0;var uncaughtExceptionCount=0;var ___cxa_throw=(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast};var syscallGetVarargI=()=>{var ret=SAFE_HEAP_LOAD((+SYSCALLS.varargs>>2)*4,4,0);SYSCALLS.varargs+=4;return ret};var syscallGetVarargP=syscallGetVarargI;var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>crypto.getRandomValues(view)}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");var randomFillSync=crypto_module["randomFillSync"];if(randomFillSync){return view=>crypto_module["randomFillSync"](view)}var randomBytes=crypto_module["randomBytes"];return view=>(view.set(randomBytes(view.byteLength)),view)}catch(e){}}abort("initRandomDevice")};var randomFill=view=>(randomFill=initRandomFill())(view);var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{abort()};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp},unlink(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir(node){var entries=[".",".."];for(var key of Object.keys(node.contents)){entries.push(key)}return entries},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):"";readAsync(url).then(arrayBuffer=>{onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},err=>{if(onerror){onerror()}else{throw`Loading data file "${url}" failed.`}});if(dep)addRunDependency(dep)};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var preloadPlugins=Module["preloadPlugins"]||[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:class{name="ErrnoError";constructor(errno){this.errno=errno}},filesystems:null,syncFSRequests:0,readFiles:{},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;iFS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams(input,output,error){if(input){FS.createDevice("/dev","stdin",input)}else{FS.symlink("/dev/tty","/dev/stdin")}if(output){FS.createDevice("/dev","stdout",null,output)}else{FS.symlink("/dev/tty","/dev/stdout")}if(error){FS.createDevice("/dev","stderr",null,error)}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS}},init(input,output,error){FS.initialized=true;input??=Module["stdin"];output??=Module["stdout"];error??=Module["stderr"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat(func,path,buf){var stat=func(path);SAFE_HEAP_STORE((buf>>2)*4,stat.dev,4);SAFE_HEAP_STORE((buf+4>>2)*4,stat.mode,4);SAFE_HEAP_STORE((buf+8>>2)*4,stat.nlink,4);SAFE_HEAP_STORE((buf+12>>2)*4,stat.uid,4);SAFE_HEAP_STORE((buf+16>>2)*4,stat.gid,4);SAFE_HEAP_STORE((buf+20>>2)*4,stat.rdev,4);tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],SAFE_HEAP_STORE((buf+24>>2)*4,tempI64[0],4),SAFE_HEAP_STORE((buf+28>>2)*4,tempI64[1],4);SAFE_HEAP_STORE((buf+32>>2)*4,4096,4);SAFE_HEAP_STORE((buf+36>>2)*4,stat.blocks,4);var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],SAFE_HEAP_STORE((buf+40>>2)*4,tempI64[0],4),SAFE_HEAP_STORE((buf+44>>2)*4,tempI64[1],4);SAFE_HEAP_STORE((buf+48>>2)*4,atime%1e3*1e3*1e3,4);tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],SAFE_HEAP_STORE((buf+56>>2)*4,tempI64[0],4),SAFE_HEAP_STORE((buf+60>>2)*4,tempI64[1],4);SAFE_HEAP_STORE((buf+64>>2)*4,mtime%1e3*1e3*1e3,4);tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],SAFE_HEAP_STORE((buf+72>>2)*4,tempI64[0],4),SAFE_HEAP_STORE((buf+76>>2)*4,tempI64[1],4);SAFE_HEAP_STORE((buf+80>>2)*4,ctime%1e3*1e3*1e3,4);tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],SAFE_HEAP_STORE((buf+88>>2)*4,tempI64[0],4),SAFE_HEAP_STORE((buf+92>>2)*4,tempI64[1],4);return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;SAFE_HEAP_STORE((arg+offset>>1)*2,2,2);return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=syscallGetVarargP();SAFE_HEAP_STORE((argp>>2)*4,termios.c_iflag||0,4);SAFE_HEAP_STORE((argp+4>>2)*4,termios.c_oflag||0,4);SAFE_HEAP_STORE((argp+8>>2)*4,termios.c_cflag||0,4);SAFE_HEAP_STORE((argp+12>>2)*4,termios.c_lflag||0,4);for(var i=0;i<32;i++){SAFE_HEAP_STORE(argp+i+17,termios.c_cc[i]||0,1)}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=syscallGetVarargP();var c_iflag=SAFE_HEAP_LOAD((argp>>2)*4,4,0);var c_oflag=SAFE_HEAP_LOAD((argp+4>>2)*4,4,0);var c_cflag=SAFE_HEAP_LOAD((argp+8>>2)*4,4,0);var c_lflag=SAFE_HEAP_LOAD((argp+12>>2)*4,4,0);var c_cc=[];for(var i=0;i<32;i++){c_cc.push(SAFE_HEAP_LOAD(argp+i+17,1,0))}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag,c_oflag,c_cflag,c_lflag,c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=syscallGetVarargP();SAFE_HEAP_STORE((argp>>2)*4,0,4);return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=syscallGetVarargP();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=syscallGetVarargP();SAFE_HEAP_STORE((argp>>1)*2,winsize[0],2);SAFE_HEAP_STORE((argp+2>>1)*2,winsize[1],2)}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?syscallGetVarargI():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var __abort_js=()=>{abort("")};var __emscripten_memcpy_js=(dest,src,num)=>HEAPU8.copyWithin(dest,src,src+num);var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);SAFE_HEAP_STORE((timezone>>2)*4,stdTimezoneOffset*60,4);SAFE_HEAP_STORE((daylight>>2)*4,Number(winterOffset!=summerOffset),4);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffset{readEmAsmArgsArray.length=0;var ch;while(ch=SAFE_HEAP_LOAD(sigPtr++,1,1)){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?SAFE_HEAP_LOAD((buf>>2)*4,4,1):ch==105?SAFE_HEAP_LOAD((buf>>2)*4,4,0):SAFE_HEAP_LOAD_D((buf>>3)*8,8,0));buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};var _emscripten_asm_const_int=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var getHeapMax=()=>2147483648;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToAscii=(str,buffer)=>{for(var i=0;i{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;SAFE_HEAP_STORE((__environ+i*4>>2)*4,ptr,4);stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();SAFE_HEAP_STORE((penviron_count>>2)*4,strings.length,4);var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);SAFE_HEAP_STORE((penviron_buf_size>>2)*4,bufSize,4);return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2)*4,4,1);var len=SAFE_HEAP_LOAD((iov+4>>2)*4,4,1);iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2)*4,num,4);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],SAFE_HEAP_STORE((newOffset>>2)*4,tempI64[0],4),SAFE_HEAP_STORE((newOffset+4>>2)*4,tempI64[1],4);if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2)*4,4,1);var len=SAFE_HEAP_LOAD((iov+4>>2)*4,4,1);iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2)*4,num,4);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _random_get(buffer,size){try{randomFill(HEAPU8.subarray(buffer,buffer+size));return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack="";var wasmImports={a:___assert_fail,e:___cxa_throw,g:___syscall_fcntl64,j:___syscall_ioctl,k:___syscall_openat,m:__abort_js,l:__emscripten_memcpy_js,p:__tzset_js,c:alignfault,d:_emscripten_asm_const_int,s:_emscripten_resize_heap,q:_environ_get,r:_environ_sizes_get,h:_fd_close,i:_fd_read,n:_fd_seek,f:_fd_write,o:_random_get,b:segfault};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["u"])();var _memset=Module["_memset"]=(a0,a1,a2)=>(_memset=Module["_memset"]=wasmExports["w"])(a0,a1,a2);var _memcpy=Module["_memcpy"]=(a0,a1,a2)=>(_memcpy=Module["_memcpy"]=wasmExports["x"])(a0,a1,a2);var _malloc=Module["_malloc"]=a0=>(_malloc=Module["_malloc"]=wasmExports["y"])(a0);var _free=Module["_free"]=a0=>(_free=Module["_free"]=wasmExports["z"])(a0);var _ma_device__on_notification_unlocked=Module["_ma_device__on_notification_unlocked"]=a0=>(_ma_device__on_notification_unlocked=Module["_ma_device__on_notification_unlocked"]=wasmExports["A"])(a0);var _ma_malloc_emscripten=Module["_ma_malloc_emscripten"]=(a0,a1)=>(_ma_malloc_emscripten=Module["_ma_malloc_emscripten"]=wasmExports["B"])(a0,a1);var _ma_free_emscripten=Module["_ma_free_emscripten"]=(a0,a1)=>(_ma_free_emscripten=Module["_ma_free_emscripten"]=wasmExports["C"])(a0,a1);var _ma_device_process_pcm_frames_capture__webaudio=Module["_ma_device_process_pcm_frames_capture__webaudio"]=(a0,a1,a2)=>(_ma_device_process_pcm_frames_capture__webaudio=Module["_ma_device_process_pcm_frames_capture__webaudio"]=wasmExports["D"])(a0,a1,a2);var _ma_device_process_pcm_frames_playback__webaudio=Module["_ma_device_process_pcm_frames_playback__webaudio"]=(a0,a1,a2)=>(_ma_device_process_pcm_frames_playback__webaudio=Module["_ma_device_process_pcm_frames_playback__webaudio"]=wasmExports["E"])(a0,a1,a2);var _createWorkerInWasm=Module["_createWorkerInWasm"]=()=>(_createWorkerInWasm=Module["_createWorkerInWasm"]=wasmExports["F"])();var _sendToWorker=Module["_sendToWorker"]=(a0,a1)=>(_sendToWorker=Module["_sendToWorker"]=wasmExports["G"])(a0,a1);var _nativeFree=Module["_nativeFree"]=a0=>(_nativeFree=Module["_nativeFree"]=wasmExports["H"])(a0);var _voiceEndedCallback=Module["_voiceEndedCallback"]=a0=>(_voiceEndedCallback=Module["_voiceEndedCallback"]=wasmExports["I"])(a0);var _setDartEventCallback=Module["_setDartEventCallback"]=(a0,a1,a2)=>(_setDartEventCallback=Module["_setDartEventCallback"]=wasmExports["J"])(a0,a1,a2);var _areOpusOggLibsAvailable=Module["_areOpusOggLibsAvailable"]=()=>(_areOpusOggLibsAvailable=Module["_areOpusOggLibsAvailable"]=wasmExports["K"])();var _initEngine=Module["_initEngine"]=(a0,a1,a2,a3)=>(_initEngine=Module["_initEngine"]=wasmExports["L"])(a0,a1,a2,a3);var _changeDevice=Module["_changeDevice"]=a0=>(_changeDevice=Module["_changeDevice"]=wasmExports["M"])(a0);var _listPlaybackDevices=Module["_listPlaybackDevices"]=(a0,a1,a2,a3)=>(_listPlaybackDevices=Module["_listPlaybackDevices"]=wasmExports["N"])(a0,a1,a2,a3);var _freeListPlaybackDevices=Module["_freeListPlaybackDevices"]=(a0,a1,a2,a3)=>(_freeListPlaybackDevices=Module["_freeListPlaybackDevices"]=wasmExports["O"])(a0,a1,a2,a3);var _dispose=Module["_dispose"]=()=>(_dispose=Module["_dispose"]=wasmExports["P"])();var _isInited=Module["_isInited"]=()=>(_isInited=Module["_isInited"]=wasmExports["Q"])();var _loadFile=Module["_loadFile"]=(a0,a1)=>(_loadFile=Module["_loadFile"]=wasmExports["R"])(a0,a1);var _loadMem=Module["_loadMem"]=(a0,a1,a2,a3,a4)=>(_loadMem=Module["_loadMem"]=wasmExports["S"])(a0,a1,a2,a3,a4);var _setBufferStream=Module["_setBufferStream"]=(a0,a1,a2,a3,a4,a5,a6)=>(_setBufferStream=Module["_setBufferStream"]=wasmExports["T"])(a0,a1,a2,a3,a4,a5,a6);var _addAudioDataStream=Module["_addAudioDataStream"]=(a0,a1,a2)=>(_addAudioDataStream=Module["_addAudioDataStream"]=wasmExports["U"])(a0,a1,a2);var _setDataIsEnded=Module["_setDataIsEnded"]=a0=>(_setDataIsEnded=Module["_setDataIsEnded"]=wasmExports["V"])(a0);var _getBufferSize=Module["_getBufferSize"]=(a0,a1)=>(_getBufferSize=Module["_getBufferSize"]=wasmExports["W"])(a0,a1);var _loadWaveform=Module["_loadWaveform"]=(a0,a1,a2,a3,a4)=>(_loadWaveform=Module["_loadWaveform"]=wasmExports["X"])(a0,a1,a2,a3,a4);var _setWaveformScale=Module["_setWaveformScale"]=(a0,a1)=>(_setWaveformScale=Module["_setWaveformScale"]=wasmExports["Y"])(a0,a1);var _setWaveformDetune=Module["_setWaveformDetune"]=(a0,a1)=>(_setWaveformDetune=Module["_setWaveformDetune"]=wasmExports["Z"])(a0,a1);var _setWaveformFreq=Module["_setWaveformFreq"]=(a0,a1)=>(_setWaveformFreq=Module["_setWaveformFreq"]=wasmExports["_"])(a0,a1);var _setSuperWave=Module["_setSuperWave"]=(a0,a1)=>(_setSuperWave=Module["_setSuperWave"]=wasmExports["$"])(a0,a1);var _setWaveform=Module["_setWaveform"]=(a0,a1)=>(_setWaveform=Module["_setWaveform"]=wasmExports["aa"])(a0,a1);var _speechText=Module["_speechText"]=(a0,a1)=>(_speechText=Module["_speechText"]=wasmExports["ba"])(a0,a1);var _pauseSwitch=Module["_pauseSwitch"]=a0=>(_pauseSwitch=Module["_pauseSwitch"]=wasmExports["ca"])(a0);var _setPause=Module["_setPause"]=(a0,a1)=>(_setPause=Module["_setPause"]=wasmExports["da"])(a0,a1);var _getPause=Module["_getPause"]=a0=>(_getPause=Module["_getPause"]=wasmExports["ea"])(a0);var _setRelativePlaySpeed=Module["_setRelativePlaySpeed"]=(a0,a1)=>(_setRelativePlaySpeed=Module["_setRelativePlaySpeed"]=wasmExports["fa"])(a0,a1);var _getRelativePlaySpeed=Module["_getRelativePlaySpeed"]=a0=>(_getRelativePlaySpeed=Module["_getRelativePlaySpeed"]=wasmExports["ga"])(a0);var _play=Module["_play"]=(a0,a1,a2,a3,a4,a5,a6)=>(_play=Module["_play"]=wasmExports["ha"])(a0,a1,a2,a3,a4,a5,a6);var _stop=Module["_stop"]=a0=>(_stop=Module["_stop"]=wasmExports["ia"])(a0);var _disposeSound=Module["_disposeSound"]=a0=>(_disposeSound=Module["_disposeSound"]=wasmExports["ja"])(a0);var _disposeAllSound=Module["_disposeAllSound"]=()=>(_disposeAllSound=Module["_disposeAllSound"]=wasmExports["ka"])();var _getLooping=Module["_getLooping"]=a0=>(_getLooping=Module["_getLooping"]=wasmExports["la"])(a0);var _setLooping=Module["_setLooping"]=(a0,a1)=>(_setLooping=Module["_setLooping"]=wasmExports["ma"])(a0,a1);var _getLoopPoint=Module["_getLoopPoint"]=a0=>(_getLoopPoint=Module["_getLoopPoint"]=wasmExports["na"])(a0);var _setLoopPoint=Module["_setLoopPoint"]=(a0,a1)=>(_setLoopPoint=Module["_setLoopPoint"]=wasmExports["oa"])(a0,a1);var _setVisualizationEnabled=Module["_setVisualizationEnabled"]=a0=>(_setVisualizationEnabled=Module["_setVisualizationEnabled"]=wasmExports["pa"])(a0);var _getVisualizationEnabled=Module["_getVisualizationEnabled"]=()=>(_getVisualizationEnabled=Module["_getVisualizationEnabled"]=wasmExports["qa"])();var _getFft=Module["_getFft"]=a0=>(_getFft=Module["_getFft"]=wasmExports["ra"])(a0);var _getWave=Module["_getWave"]=a0=>(_getWave=Module["_getWave"]=wasmExports["sa"])(a0);var _setFftSmoothing=Module["_setFftSmoothing"]=a0=>(_setFftSmoothing=Module["_setFftSmoothing"]=wasmExports["ta"])(a0);var _getAudioTexture=Module["_getAudioTexture"]=a0=>(_getAudioTexture=Module["_getAudioTexture"]=wasmExports["ua"])(a0);var _getAudioTexture2D=Module["_getAudioTexture2D"]=a0=>(_getAudioTexture2D=Module["_getAudioTexture2D"]=wasmExports["va"])(a0);var _getTextureValue=Module["_getTextureValue"]=(a0,a1)=>(_getTextureValue=Module["_getTextureValue"]=wasmExports["wa"])(a0,a1);var _getLength=Module["_getLength"]=a0=>(_getLength=Module["_getLength"]=wasmExports["xa"])(a0);var _seek=Module["_seek"]=(a0,a1)=>(_seek=Module["_seek"]=wasmExports["ya"])(a0,a1);var _getPosition=Module["_getPosition"]=a0=>(_getPosition=Module["_getPosition"]=wasmExports["za"])(a0);var _getGlobalVolume=Module["_getGlobalVolume"]=()=>(_getGlobalVolume=Module["_getGlobalVolume"]=wasmExports["Aa"])();var _setGlobalVolume=Module["_setGlobalVolume"]=a0=>(_setGlobalVolume=Module["_setGlobalVolume"]=wasmExports["Ba"])(a0);var _getVolume=Module["_getVolume"]=a0=>(_getVolume=Module["_getVolume"]=wasmExports["Ca"])(a0);var _setVolume=Module["_setVolume"]=(a0,a1)=>(_setVolume=Module["_setVolume"]=wasmExports["Da"])(a0,a1);var _getPan=Module["_getPan"]=a0=>(_getPan=Module["_getPan"]=wasmExports["Ea"])(a0);var _setPan=Module["_setPan"]=(a0,a1)=>(_setPan=Module["_setPan"]=wasmExports["Fa"])(a0,a1);var _setPanAbsolute=Module["_setPanAbsolute"]=(a0,a1,a2)=>(_setPanAbsolute=Module["_setPanAbsolute"]=wasmExports["Ga"])(a0,a1,a2);var _getIsValidVoiceHandle=Module["_getIsValidVoiceHandle"]=a0=>(_getIsValidVoiceHandle=Module["_getIsValidVoiceHandle"]=wasmExports["Ha"])(a0);var _getActiveVoiceCount=Module["_getActiveVoiceCount"]=()=>(_getActiveVoiceCount=Module["_getActiveVoiceCount"]=wasmExports["Ia"])();var _countAudioSource=Module["_countAudioSource"]=a0=>(_countAudioSource=Module["_countAudioSource"]=wasmExports["Ja"])(a0);var _getVoiceCount=Module["_getVoiceCount"]=()=>(_getVoiceCount=Module["_getVoiceCount"]=wasmExports["Ka"])();var _getProtectVoice=Module["_getProtectVoice"]=a0=>(_getProtectVoice=Module["_getProtectVoice"]=wasmExports["La"])(a0);var _setProtectVoice=Module["_setProtectVoice"]=(a0,a1)=>(_setProtectVoice=Module["_setProtectVoice"]=wasmExports["Ma"])(a0,a1);var _setInaudibleBehavior=Module["_setInaudibleBehavior"]=(a0,a1,a2)=>(_setInaudibleBehavior=Module["_setInaudibleBehavior"]=wasmExports["Na"])(a0,a1,a2);var _getMaxActiveVoiceCount=Module["_getMaxActiveVoiceCount"]=()=>(_getMaxActiveVoiceCount=Module["_getMaxActiveVoiceCount"]=wasmExports["Oa"])();var _setMaxActiveVoiceCount=Module["_setMaxActiveVoiceCount"]=a0=>(_setMaxActiveVoiceCount=Module["_setMaxActiveVoiceCount"]=wasmExports["Pa"])(a0);var _createVoiceGroup=Module["_createVoiceGroup"]=()=>(_createVoiceGroup=Module["_createVoiceGroup"]=wasmExports["Qa"])();var _destroyVoiceGroup=Module["_destroyVoiceGroup"]=a0=>(_destroyVoiceGroup=Module["_destroyVoiceGroup"]=wasmExports["Ra"])(a0);var _addVoiceToGroup=Module["_addVoiceToGroup"]=(a0,a1)=>(_addVoiceToGroup=Module["_addVoiceToGroup"]=wasmExports["Sa"])(a0,a1);var _isVoiceGroup=Module["_isVoiceGroup"]=a0=>(_isVoiceGroup=Module["_isVoiceGroup"]=wasmExports["Ta"])(a0);var _isVoiceGroupEmpty=Module["_isVoiceGroupEmpty"]=a0=>(_isVoiceGroupEmpty=Module["_isVoiceGroupEmpty"]=wasmExports["Ua"])(a0);var _fadeGlobalVolume=Module["_fadeGlobalVolume"]=(a0,a1)=>(_fadeGlobalVolume=Module["_fadeGlobalVolume"]=wasmExports["Va"])(a0,a1);var _fadeVolume=Module["_fadeVolume"]=(a0,a1,a2)=>(_fadeVolume=Module["_fadeVolume"]=wasmExports["Wa"])(a0,a1,a2);var _fadePan=Module["_fadePan"]=(a0,a1,a2)=>(_fadePan=Module["_fadePan"]=wasmExports["Xa"])(a0,a1,a2);var _fadeRelativePlaySpeed=Module["_fadeRelativePlaySpeed"]=(a0,a1,a2)=>(_fadeRelativePlaySpeed=Module["_fadeRelativePlaySpeed"]=wasmExports["Ya"])(a0,a1,a2);var _schedulePause=Module["_schedulePause"]=(a0,a1)=>(_schedulePause=Module["_schedulePause"]=wasmExports["Za"])(a0,a1);var _scheduleStop=Module["_scheduleStop"]=(a0,a1)=>(_scheduleStop=Module["_scheduleStop"]=wasmExports["_a"])(a0,a1);var _oscillateVolume=Module["_oscillateVolume"]=(a0,a1,a2,a3)=>(_oscillateVolume=Module["_oscillateVolume"]=wasmExports["$a"])(a0,a1,a2,a3);var _oscillatePan=Module["_oscillatePan"]=(a0,a1,a2,a3)=>(_oscillatePan=Module["_oscillatePan"]=wasmExports["ab"])(a0,a1,a2,a3);var _oscillateRelativePlaySpeed=Module["_oscillateRelativePlaySpeed"]=(a0,a1,a2,a3)=>(_oscillateRelativePlaySpeed=Module["_oscillateRelativePlaySpeed"]=wasmExports["bb"])(a0,a1,a2,a3);var _oscillateGlobalVolume=Module["_oscillateGlobalVolume"]=(a0,a1,a2)=>(_oscillateGlobalVolume=Module["_oscillateGlobalVolume"]=wasmExports["cb"])(a0,a1,a2);var _isFilterActive=Module["_isFilterActive"]=(a0,a1,a2)=>(_isFilterActive=Module["_isFilterActive"]=wasmExports["db"])(a0,a1,a2);var _getFilterParamNames=Module["_getFilterParamNames"]=(a0,a1,a2)=>(_getFilterParamNames=Module["_getFilterParamNames"]=wasmExports["eb"])(a0,a1,a2);var _addFilter=Module["_addFilter"]=(a0,a1)=>(_addFilter=Module["_addFilter"]=wasmExports["fb"])(a0,a1);var _removeFilter=Module["_removeFilter"]=(a0,a1)=>(_removeFilter=Module["_removeFilter"]=wasmExports["gb"])(a0,a1);var _setFilterParams=Module["_setFilterParams"]=(a0,a1,a2,a3)=>(_setFilterParams=Module["_setFilterParams"]=wasmExports["hb"])(a0,a1,a2,a3);var _getFilterParams=Module["_getFilterParams"]=(a0,a1,a2,a3)=>(_getFilterParams=Module["_getFilterParams"]=wasmExports["ib"])(a0,a1,a2,a3);var _fadeFilterParameter=Module["_fadeFilterParameter"]=(a0,a1,a2,a3,a4)=>(_fadeFilterParameter=Module["_fadeFilterParameter"]=wasmExports["jb"])(a0,a1,a2,a3,a4);var _oscillateFilterParameter=Module["_oscillateFilterParameter"]=(a0,a1,a2,a3,a4,a5)=>(_oscillateFilterParameter=Module["_oscillateFilterParameter"]=wasmExports["kb"])(a0,a1,a2,a3,a4,a5);var _play3d=Module["_play3d"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)=>(_play3d=Module["_play3d"]=wasmExports["lb"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11);var _set3dSoundSpeed=Module["_set3dSoundSpeed"]=a0=>(_set3dSoundSpeed=Module["_set3dSoundSpeed"]=wasmExports["mb"])(a0);var _get3dSoundSpeed=Module["_get3dSoundSpeed"]=()=>(_get3dSoundSpeed=Module["_get3dSoundSpeed"]=wasmExports["nb"])();var _set3dListenerParameters=Module["_set3dListenerParameters"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)=>(_set3dListenerParameters=Module["_set3dListenerParameters"]=wasmExports["ob"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11);var _set3dListenerPosition=Module["_set3dListenerPosition"]=(a0,a1,a2)=>(_set3dListenerPosition=Module["_set3dListenerPosition"]=wasmExports["pb"])(a0,a1,a2);var _set3dListenerAt=Module["_set3dListenerAt"]=(a0,a1,a2)=>(_set3dListenerAt=Module["_set3dListenerAt"]=wasmExports["qb"])(a0,a1,a2);var _set3dListenerUp=Module["_set3dListenerUp"]=(a0,a1,a2)=>(_set3dListenerUp=Module["_set3dListenerUp"]=wasmExports["rb"])(a0,a1,a2);var _set3dListenerVelocity=Module["_set3dListenerVelocity"]=(a0,a1,a2)=>(_set3dListenerVelocity=Module["_set3dListenerVelocity"]=wasmExports["sb"])(a0,a1,a2);var _set3dSourceParameters=Module["_set3dSourceParameters"]=(a0,a1,a2,a3,a4,a5,a6)=>(_set3dSourceParameters=Module["_set3dSourceParameters"]=wasmExports["tb"])(a0,a1,a2,a3,a4,a5,a6);var _set3dSourcePosition=Module["_set3dSourcePosition"]=(a0,a1,a2,a3)=>(_set3dSourcePosition=Module["_set3dSourcePosition"]=wasmExports["ub"])(a0,a1,a2,a3);var _set3dSourceVelocity=Module["_set3dSourceVelocity"]=(a0,a1,a2,a3)=>(_set3dSourceVelocity=Module["_set3dSourceVelocity"]=wasmExports["vb"])(a0,a1,a2,a3);var _set3dSourceMinMaxDistance=Module["_set3dSourceMinMaxDistance"]=(a0,a1,a2)=>(_set3dSourceMinMaxDistance=Module["_set3dSourceMinMaxDistance"]=wasmExports["wb"])(a0,a1,a2);var _set3dSourceAttenuation=Module["_set3dSourceAttenuation"]=(a0,a1,a2)=>(_set3dSourceAttenuation=Module["_set3dSourceAttenuation"]=wasmExports["xb"])(a0,a1,a2);var _set3dSourceDopplerFactor=Module["_set3dSourceDopplerFactor"]=(a0,a1)=>(_set3dSourceDopplerFactor=Module["_set3dSourceDopplerFactor"]=wasmExports["yb"])(a0,a1);var _readSamplesFromFile=Module["_readSamplesFromFile"]=(a0,a1,a2,a3,a4,a5)=>(_readSamplesFromFile=Module["_readSamplesFromFile"]=wasmExports["zb"])(a0,a1,a2,a3,a4,a5);var _readSamplesFromMem=Module["_readSamplesFromMem"]=(a0,a1,a2,a3,a4,a5,a6)=>(_readSamplesFromMem=Module["_readSamplesFromMem"]=wasmExports["Ab"])(a0,a1,a2,a3,a4,a5,a6);var _sbrk=a0=>(_sbrk=wasmExports["Bb"])(a0);var _emscripten_stack_get_base=()=>(_emscripten_stack_get_base=wasmExports["Cb"])();var __emscripten_stack_restore=a0=>(__emscripten_stack_restore=wasmExports["Db"])(a0);var __emscripten_stack_alloc=a0=>(__emscripten_stack_alloc=wasmExports["Eb"])(a0);var _emscripten_stack_get_current=()=>(_emscripten_stack_get_current=wasmExports["Fb"])();Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["setValue"]=setValue;Module["getValue"]=getValue;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);Module["onRuntimeInitialized"]?.();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();moduleRtn=readyPromise;
+var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof WorkerGlobalScope!="undefined";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string"&&process.type!="renderer";if(ENVIRONMENT_IS_NODE){}var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");scriptDirectory=__dirname+"/";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);var ret=fs.readFileSync(filename);return ret};readAsync=(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return new Promise((resolve,reject)=>{fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)reject(err);else resolve(binary?data.buffer:data)})})};if(!Module["thisProgram"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}return fetch(url,{credentials:"same-origin"}).then(response=>{if(response.ok){return response.arrayBuffer()}return Promise.reject(new Error(response.status+" : "+response.url))})}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];var wasmBinary=Module["wasmBinary"];function getSafeHeapType(bytes,isFloat){switch(bytes){case 1:return"i8";case 2:return"i16";case 4:return isFloat?"float":"i32";case 8:return isFloat?"double":"i64";default:abort(`getSafeHeapType() invalid bytes=${bytes}`)}}function SAFE_HEAP_STORE(dest,value,bytes,isFloat){if(dest<=0)abort(`segmentation fault storing ${bytes} bytes to address ${dest}`);if(dest%bytes!==0)abort(`alignment error storing to address ${dest}, which was expected to be aligned to a multiple of ${bytes}`);if(runtimeInitialized){var brk=_sbrk(0);if(dest+bytes>brk)abort(`segmentation fault, exceeded the top of the available dynamic heap when storing ${bytes} bytes to address ${dest}. DYNAMICTOP=${brk}`);if(brk<_emscripten_stack_get_base())abort(`brk >= _emscripten_stack_get_base() (brk=${brk}, _emscripten_stack_get_base()=${_emscripten_stack_get_base()})`);if(brk>wasmMemory.buffer.byteLength)abort(`brk <= wasmMemory.buffer.byteLength (brk=${brk}, wasmMemory.buffer.byteLength=${wasmMemory.buffer.byteLength})`)}setValue_safe(dest,value,getSafeHeapType(bytes,isFloat));return value}function SAFE_HEAP_STORE_D(dest,value,bytes){return SAFE_HEAP_STORE(dest,value,bytes,true)}function SAFE_HEAP_LOAD(dest,bytes,unsigned,isFloat){if(dest<=0)abort(`segmentation fault loading ${bytes} bytes from address ${dest}`);if(dest%bytes!==0)abort(`alignment error loading from address ${dest}, which was expected to be aligned to a multiple of ${bytes}`);if(runtimeInitialized){var brk=_sbrk(0);if(dest+bytes>brk)abort(`segmentation fault, exceeded the top of the available dynamic heap when loading ${bytes} bytes from address ${dest}. DYNAMICTOP=${brk}`);if(brk<_emscripten_stack_get_base())abort(`brk >= _emscripten_stack_get_base() (brk=${brk}, _emscripten_stack_get_base()=${_emscripten_stack_get_base()})`);if(brk>wasmMemory.buffer.byteLength)abort(`brk <= wasmMemory.buffer.byteLength (brk=${brk}, wasmMemory.buffer.byteLength=${wasmMemory.buffer.byteLength})`)}var type=getSafeHeapType(bytes,isFloat);var ret=getValue_safe(dest,type);if(unsigned)ret=unSign(ret,parseInt(type.substr(1),10));return ret}function SAFE_HEAP_LOAD_D(dest,bytes,unsigned){return SAFE_HEAP_LOAD(dest,bytes,unsigned,true)}function segfault(){abort("segmentation fault")}function alignfault(){abort("alignment fault")}var wasmMemory;var ABORT=false;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");function findWasmBinary(){var f="libflutter_soloud_plugin.wasm";if(!isDataURI(f)){return locateFile(f)}return f}var wasmBinaryFile;function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}function getBinaryPromise(binaryFile){if(!wasmBinary){return readAsync(binaryFile).then(response=>new Uint8Array(response),()=>getBinarySync(binaryFile))}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function getWasmImports(){return{a:wasmImports}}function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["t"];updateMemoryViews();addOnInit(wasmExports["u"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}var info=getWasmImports();if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}wasmBinaryFile??=findWasmBinary();instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var tempDouble;var tempI64;var ASM_CONSTS={140572:($0,$1,$2,$3,$4)=>{if(typeof window==="undefined"||(window.AudioContext||window.webkitAudioContext)===undefined){return 0}if(typeof window.miniaudio==="undefined"){window.miniaudio={referenceCount:0};window.miniaudio.device_type={};window.miniaudio.device_type.playback=$0;window.miniaudio.device_type.capture=$1;window.miniaudio.device_type.duplex=$2;window.miniaudio.device_state={};window.miniaudio.device_state.stopped=$3;window.miniaudio.device_state.started=$4;let miniaudio=window.miniaudio;miniaudio.devices=[];miniaudio.track_device=function(device){for(var iDevice=0;iDevice0){if(miniaudio.devices[miniaudio.devices.length-1]==null){miniaudio.devices.pop()}else{break}}};miniaudio.untrack_device=function(device){for(var iDevice=0;iDevice{_ma_device__on_notification_unlocked(device.pDevice)},error=>{console.error("Failed to resume audiocontext",error)})}}miniaudio.unlock_event_types.map(function(event_type){document.removeEventListener(event_type,miniaudio.unlock,true)})};miniaudio.unlock_event_types.map(function(event_type){document.addEventListener(event_type,miniaudio.unlock,true)})}window.miniaudio.referenceCount+=1;return 1},142750:()=>{if(typeof window.miniaudio!=="undefined"){miniaudio.unlock_event_types.map(function(event_type){document.removeEventListener(event_type,miniaudio.unlock,true)});window.miniaudio.referenceCount-=1;if(window.miniaudio.referenceCount===0){delete window.miniaudio}}},143040:()=>navigator.mediaDevices!==undefined&&navigator.mediaDevices.getUserMedia!==undefined,143144:()=>{try{var temp=new(window.AudioContext||window.webkitAudioContext);var sampleRate=temp.sampleRate;temp.close();return sampleRate}catch(e){return 0}},143315:($0,$1,$2,$3,$4,$5)=>{var deviceType=$0;var channels=$1;var sampleRate=$2;var bufferSize=$3;var pIntermediaryBuffer=$4;var pDevice=$5;if(typeof window.miniaudio==="undefined"){return-1}var device={};var audioContextOptions={};if(deviceType==window.miniaudio.device_type.playback&&sampleRate!=0){audioContextOptions.sampleRate=sampleRate}device.webaudio=new(window.AudioContext||window.webkitAudioContext)(audioContextOptions);device.webaudio.suspend();device.state=window.miniaudio.device_state.stopped;var channelCountIn=0;var channelCountOut=channels;if(deviceType!=window.miniaudio.device_type.playback){channelCountIn=channels}device.scriptNode=device.webaudio.createScriptProcessor(bufferSize,channelCountIn,channelCountOut);device.scriptNode.onaudioprocess=function(e){if(device.intermediaryBufferView==null||device.intermediaryBufferView.length==0){device.intermediaryBufferView=new Float32Array(HEAPF32.buffer,pIntermediaryBuffer,bufferSize*channels)}if(deviceType==window.miniaudio.device_type.capture||deviceType==window.miniaudio.device_type.duplex){for(var iChannel=0;iChannelwindow.miniaudio.get_device_by_index($0).webaudio.sampleRate,146265:$0=>{var device=window.miniaudio.get_device_by_index($0);if(device.scriptNode!==undefined){device.scriptNode.onaudioprocess=function(e){};device.scriptNode.disconnect();device.scriptNode=undefined}if(device.streamNode!==undefined){device.streamNode.disconnect();device.streamNode=undefined}device.webaudio.close();device.webaudio=undefined;device.pDevice=undefined},146665:$0=>{window.miniaudio.untrack_device_by_index($0)},146715:$0=>{var device=window.miniaudio.get_device_by_index($0);device.webaudio.resume();device.state=window.miniaudio.device_state.started},146854:$0=>{var device=window.miniaudio.get_device_by_index($0);device.webaudio.suspend();device.state=window.miniaudio.device_state.stopped},146994:()=>{if(!Module_soloud.wasmWorker){var workerUri="assets/packages/flutter_soloud/web/worker.dart.js";console.log("EM_ASM creating Web Worker!");Module_soloud.wasmWorker=new Worker(workerUri)}else{console.log("EM_ASM web worker already created!")}},147256:($0,$1)=>{if(Module_soloud.wasmWorker){Module_soloud.wasmWorker.postMessage({message:UTF8ToString($0),value:$1});console.log("EM_ASM posting message "+UTF8ToString($0)+" with value "+$1)}else{console.error("Worker not found.")}},147503:($0,$1,$2,$3)=>{var functionName="dartOnBufferingCallback_"+$3;if(typeof window[functionName]==="function"){var buffering=$0==1?true:false;window[functionName](buffering,$1,$2)}else{console.log("EM_ASM 'dartOnBufferingCallback_$hash' not found.")}},147767:($0,$1,$2,$3)=>{var functionName="dartOnBufferingCallback_"+$3;if(typeof window[functionName]==="function"){var buffering=$0==1?true:false;window[functionName](buffering,$1,$2)}else{console.log("EM_ASM 'dartOnBufferingCallback_$hash' not found.")}}};class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":return SAFE_HEAP_LOAD(ptr,1,0);case"i8":return SAFE_HEAP_LOAD(ptr,1,0);case"i16":return SAFE_HEAP_LOAD((ptr>>1)*2,2,0);case"i32":return SAFE_HEAP_LOAD((ptr>>2)*4,4,0);case"i64":abort("to do getValue(i64) use WASM_BIGINT");case"float":return SAFE_HEAP_LOAD_D((ptr>>2)*4,4,0);case"double":return SAFE_HEAP_LOAD_D((ptr>>3)*8,8,0);case"*":return SAFE_HEAP_LOAD((ptr>>2)*4,4,1);default:abort(`invalid type for getValue: ${type}`)}}function getValue_safe(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":return HEAP8[ptr];case"i8":return HEAP8[ptr];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":abort("to do getValue(i64) use WASM_BIGINT");case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];case"*":return HEAPU32[ptr>>2];default:abort(`invalid type for getValue: ${type}`)}}var noExitRuntime=Module["noExitRuntime"]||true;function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":SAFE_HEAP_STORE(ptr,value,1);break;case"i8":SAFE_HEAP_STORE(ptr,value,1);break;case"i16":SAFE_HEAP_STORE((ptr>>1)*2,value,2);break;case"i32":SAFE_HEAP_STORE((ptr>>2)*4,value,4);break;case"i64":abort("to do setValue(i64) use WASM_BIGINT");case"float":SAFE_HEAP_STORE_D((ptr>>2)*4,value,4);break;case"double":SAFE_HEAP_STORE_D((ptr>>3)*8,value,8);break;case"*":SAFE_HEAP_STORE((ptr>>2)*4,value,4);break;default:abort(`invalid type for setValue: ${type}`)}}function setValue_safe(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":HEAP8[ptr]=value;break;case"i8":HEAP8[ptr]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":abort("to do setValue(i64) use WASM_BIGINT");case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;case"*":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();var unSign=(value,bits)=>{if(value>=0){return value}return bits<=32?2*Math.abs(1<{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])};class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){SAFE_HEAP_STORE((this.ptr+4>>2)*4,type,4)}get_type(){return SAFE_HEAP_LOAD((this.ptr+4>>2)*4,4,1)}set_destructor(destructor){SAFE_HEAP_STORE((this.ptr+8>>2)*4,destructor,4)}get_destructor(){return SAFE_HEAP_LOAD((this.ptr+8>>2)*4,4,1)}set_caught(caught){caught=caught?1:0;SAFE_HEAP_STORE(this.ptr+12,caught,1)}get_caught(){return SAFE_HEAP_LOAD(this.ptr+12,1,0)!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;SAFE_HEAP_STORE(this.ptr+13,rethrown,1)}get_rethrown(){return SAFE_HEAP_LOAD(this.ptr+13,1,0)!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){SAFE_HEAP_STORE((this.ptr+16>>2)*4,adjustedPtr,4)}get_adjusted_ptr(){return SAFE_HEAP_LOAD((this.ptr+16>>2)*4,4,1)}}var exceptionLast=0;var uncaughtExceptionCount=0;var ___cxa_throw=(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast};var syscallGetVarargI=()=>{var ret=SAFE_HEAP_LOAD((+SYSCALLS.varargs>>2)*4,4,0);SYSCALLS.varargs+=4;return ret};var syscallGetVarargP=syscallGetVarargI;var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>crypto.getRandomValues(view)}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");var randomFillSync=crypto_module["randomFillSync"];if(randomFillSync){return view=>crypto_module["randomFillSync"](view)}var randomBytes=crypto_module["randomBytes"];return view=>(view.set(randomBytes(view.byteLength)),view)}catch(e){}}abort("initRandomDevice")};var randomFill=view=>(randomFill=initRandomFill())(view);var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{abort()};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp},unlink(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir(node){var entries=[".",".."];for(var key of Object.keys(node.contents)){entries.push(key)}return entries},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):"";readAsync(url).then(arrayBuffer=>{onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},err=>{if(onerror){onerror()}else{throw`Loading data file "${url}" failed.`}});if(dep)addRunDependency(dep)};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var preloadPlugins=Module["preloadPlugins"]||[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:class{name="ErrnoError";constructor(errno){this.errno=errno}},filesystems:null,syncFSRequests:0,readFiles:{},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;iFS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams(input,output,error){if(input){FS.createDevice("/dev","stdin",input)}else{FS.symlink("/dev/tty","/dev/stdin")}if(output){FS.createDevice("/dev","stdout",null,output)}else{FS.symlink("/dev/tty","/dev/stdout")}if(error){FS.createDevice("/dev","stderr",null,error)}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS}},init(input,output,error){FS.initialized=true;input??=Module["stdin"];output??=Module["stdout"];error??=Module["stderr"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat(func,path,buf){var stat=func(path);SAFE_HEAP_STORE((buf>>2)*4,stat.dev,4);SAFE_HEAP_STORE((buf+4>>2)*4,stat.mode,4);SAFE_HEAP_STORE((buf+8>>2)*4,stat.nlink,4);SAFE_HEAP_STORE((buf+12>>2)*4,stat.uid,4);SAFE_HEAP_STORE((buf+16>>2)*4,stat.gid,4);SAFE_HEAP_STORE((buf+20>>2)*4,stat.rdev,4);tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],SAFE_HEAP_STORE((buf+24>>2)*4,tempI64[0],4),SAFE_HEAP_STORE((buf+28>>2)*4,tempI64[1],4);SAFE_HEAP_STORE((buf+32>>2)*4,4096,4);SAFE_HEAP_STORE((buf+36>>2)*4,stat.blocks,4);var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],SAFE_HEAP_STORE((buf+40>>2)*4,tempI64[0],4),SAFE_HEAP_STORE((buf+44>>2)*4,tempI64[1],4);SAFE_HEAP_STORE((buf+48>>2)*4,atime%1e3*1e3*1e3,4);tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],SAFE_HEAP_STORE((buf+56>>2)*4,tempI64[0],4),SAFE_HEAP_STORE((buf+60>>2)*4,tempI64[1],4);SAFE_HEAP_STORE((buf+64>>2)*4,mtime%1e3*1e3*1e3,4);tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],SAFE_HEAP_STORE((buf+72>>2)*4,tempI64[0],4),SAFE_HEAP_STORE((buf+76>>2)*4,tempI64[1],4);SAFE_HEAP_STORE((buf+80>>2)*4,ctime%1e3*1e3*1e3,4);tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],SAFE_HEAP_STORE((buf+88>>2)*4,tempI64[0],4),SAFE_HEAP_STORE((buf+92>>2)*4,tempI64[1],4);return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;SAFE_HEAP_STORE((arg+offset>>1)*2,2,2);return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=syscallGetVarargP();SAFE_HEAP_STORE((argp>>2)*4,termios.c_iflag||0,4);SAFE_HEAP_STORE((argp+4>>2)*4,termios.c_oflag||0,4);SAFE_HEAP_STORE((argp+8>>2)*4,termios.c_cflag||0,4);SAFE_HEAP_STORE((argp+12>>2)*4,termios.c_lflag||0,4);for(var i=0;i<32;i++){SAFE_HEAP_STORE(argp+i+17,termios.c_cc[i]||0,1)}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=syscallGetVarargP();var c_iflag=SAFE_HEAP_LOAD((argp>>2)*4,4,0);var c_oflag=SAFE_HEAP_LOAD((argp+4>>2)*4,4,0);var c_cflag=SAFE_HEAP_LOAD((argp+8>>2)*4,4,0);var c_lflag=SAFE_HEAP_LOAD((argp+12>>2)*4,4,0);var c_cc=[];for(var i=0;i<32;i++){c_cc.push(SAFE_HEAP_LOAD(argp+i+17,1,0))}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag,c_oflag,c_cflag,c_lflag,c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=syscallGetVarargP();SAFE_HEAP_STORE((argp>>2)*4,0,4);return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=syscallGetVarargP();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=syscallGetVarargP();SAFE_HEAP_STORE((argp>>1)*2,winsize[0],2);SAFE_HEAP_STORE((argp+2>>1)*2,winsize[1],2)}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?syscallGetVarargI():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var __abort_js=()=>{abort("")};var __emscripten_memcpy_js=(dest,src,num)=>HEAPU8.copyWithin(dest,src,src+num);var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);SAFE_HEAP_STORE((timezone>>2)*4,stdTimezoneOffset*60,4);SAFE_HEAP_STORE((daylight>>2)*4,Number(winterOffset!=summerOffset),4);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffset{readEmAsmArgsArray.length=0;var ch;while(ch=SAFE_HEAP_LOAD(sigPtr++,1,1)){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?SAFE_HEAP_LOAD((buf>>2)*4,4,1):ch==105?SAFE_HEAP_LOAD((buf>>2)*4,4,0):SAFE_HEAP_LOAD_D((buf>>3)*8,8,0));buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};var _emscripten_asm_const_int=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var getHeapMax=()=>2147483648;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToAscii=(str,buffer)=>{for(var i=0;i{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;SAFE_HEAP_STORE((__environ+i*4>>2)*4,ptr,4);stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();SAFE_HEAP_STORE((penviron_count>>2)*4,strings.length,4);var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);SAFE_HEAP_STORE((penviron_buf_size>>2)*4,bufSize,4);return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2)*4,4,1);var len=SAFE_HEAP_LOAD((iov+4>>2)*4,4,1);iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2)*4,num,4);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],SAFE_HEAP_STORE((newOffset>>2)*4,tempI64[0],4),SAFE_HEAP_STORE((newOffset+4>>2)*4,tempI64[1],4);if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2)*4,4,1);var len=SAFE_HEAP_LOAD((iov+4>>2)*4,4,1);iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2)*4,num,4);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _random_get(buffer,size){try{randomFill(HEAPU8.subarray(buffer,buffer+size));return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack="";var wasmImports={a:___assert_fail,e:___cxa_throw,g:___syscall_fcntl64,j:___syscall_ioctl,k:___syscall_openat,m:__abort_js,l:__emscripten_memcpy_js,p:__tzset_js,c:alignfault,d:_emscripten_asm_const_int,s:_emscripten_resize_heap,q:_environ_get,r:_environ_sizes_get,h:_fd_close,i:_fd_read,n:_fd_seek,f:_fd_write,o:_random_get,b:segfault};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["u"])();var _memset=Module["_memset"]=(a0,a1,a2)=>(_memset=Module["_memset"]=wasmExports["w"])(a0,a1,a2);var _memcpy=Module["_memcpy"]=(a0,a1,a2)=>(_memcpy=Module["_memcpy"]=wasmExports["x"])(a0,a1,a2);var _malloc=Module["_malloc"]=a0=>(_malloc=Module["_malloc"]=wasmExports["y"])(a0);var _free=Module["_free"]=a0=>(_free=Module["_free"]=wasmExports["z"])(a0);var _ma_device__on_notification_unlocked=Module["_ma_device__on_notification_unlocked"]=a0=>(_ma_device__on_notification_unlocked=Module["_ma_device__on_notification_unlocked"]=wasmExports["A"])(a0);var _ma_malloc_emscripten=Module["_ma_malloc_emscripten"]=(a0,a1)=>(_ma_malloc_emscripten=Module["_ma_malloc_emscripten"]=wasmExports["B"])(a0,a1);var _ma_free_emscripten=Module["_ma_free_emscripten"]=(a0,a1)=>(_ma_free_emscripten=Module["_ma_free_emscripten"]=wasmExports["C"])(a0,a1);var _ma_device_process_pcm_frames_capture__webaudio=Module["_ma_device_process_pcm_frames_capture__webaudio"]=(a0,a1,a2)=>(_ma_device_process_pcm_frames_capture__webaudio=Module["_ma_device_process_pcm_frames_capture__webaudio"]=wasmExports["D"])(a0,a1,a2);var _ma_device_process_pcm_frames_playback__webaudio=Module["_ma_device_process_pcm_frames_playback__webaudio"]=(a0,a1,a2)=>(_ma_device_process_pcm_frames_playback__webaudio=Module["_ma_device_process_pcm_frames_playback__webaudio"]=wasmExports["E"])(a0,a1,a2);var _createWorkerInWasm=Module["_createWorkerInWasm"]=()=>(_createWorkerInWasm=Module["_createWorkerInWasm"]=wasmExports["F"])();var _sendToWorker=Module["_sendToWorker"]=(a0,a1)=>(_sendToWorker=Module["_sendToWorker"]=wasmExports["G"])(a0,a1);var _nativeFree=Module["_nativeFree"]=a0=>(_nativeFree=Module["_nativeFree"]=wasmExports["H"])(a0);var _voiceEndedCallback=Module["_voiceEndedCallback"]=a0=>(_voiceEndedCallback=Module["_voiceEndedCallback"]=wasmExports["I"])(a0);var _setDartEventCallback=Module["_setDartEventCallback"]=(a0,a1,a2)=>(_setDartEventCallback=Module["_setDartEventCallback"]=wasmExports["J"])(a0,a1,a2);var _areOpusOggLibsAvailable=Module["_areOpusOggLibsAvailable"]=()=>(_areOpusOggLibsAvailable=Module["_areOpusOggLibsAvailable"]=wasmExports["K"])();var _initEngine=Module["_initEngine"]=(a0,a1,a2,a3)=>(_initEngine=Module["_initEngine"]=wasmExports["L"])(a0,a1,a2,a3);var _changeDevice=Module["_changeDevice"]=a0=>(_changeDevice=Module["_changeDevice"]=wasmExports["M"])(a0);var _listPlaybackDevices=Module["_listPlaybackDevices"]=(a0,a1,a2,a3)=>(_listPlaybackDevices=Module["_listPlaybackDevices"]=wasmExports["N"])(a0,a1,a2,a3);var _freeListPlaybackDevices=Module["_freeListPlaybackDevices"]=(a0,a1,a2,a3)=>(_freeListPlaybackDevices=Module["_freeListPlaybackDevices"]=wasmExports["O"])(a0,a1,a2,a3);var _dispose=Module["_dispose"]=()=>(_dispose=Module["_dispose"]=wasmExports["P"])();var _isInited=Module["_isInited"]=()=>(_isInited=Module["_isInited"]=wasmExports["Q"])();var _loadFile=Module["_loadFile"]=(a0,a1)=>(_loadFile=Module["_loadFile"]=wasmExports["R"])(a0,a1);var _loadMem=Module["_loadMem"]=(a0,a1,a2,a3,a4)=>(_loadMem=Module["_loadMem"]=wasmExports["S"])(a0,a1,a2,a3,a4);var _setBufferStream=Module["_setBufferStream"]=(a0,a1,a2,a3,a4,a5,a6)=>(_setBufferStream=Module["_setBufferStream"]=wasmExports["T"])(a0,a1,a2,a3,a4,a5,a6);var _addAudioDataStream=Module["_addAudioDataStream"]=(a0,a1,a2)=>(_addAudioDataStream=Module["_addAudioDataStream"]=wasmExports["U"])(a0,a1,a2);var _setDataIsEnded=Module["_setDataIsEnded"]=a0=>(_setDataIsEnded=Module["_setDataIsEnded"]=wasmExports["V"])(a0);var _getBufferSize=Module["_getBufferSize"]=(a0,a1)=>(_getBufferSize=Module["_getBufferSize"]=wasmExports["W"])(a0,a1);var _loadWaveform=Module["_loadWaveform"]=(a0,a1,a2,a3,a4)=>(_loadWaveform=Module["_loadWaveform"]=wasmExports["X"])(a0,a1,a2,a3,a4);var _setWaveformScale=Module["_setWaveformScale"]=(a0,a1)=>(_setWaveformScale=Module["_setWaveformScale"]=wasmExports["Y"])(a0,a1);var _setWaveformDetune=Module["_setWaveformDetune"]=(a0,a1)=>(_setWaveformDetune=Module["_setWaveformDetune"]=wasmExports["Z"])(a0,a1);var _setWaveformFreq=Module["_setWaveformFreq"]=(a0,a1)=>(_setWaveformFreq=Module["_setWaveformFreq"]=wasmExports["_"])(a0,a1);var _setSuperWave=Module["_setSuperWave"]=(a0,a1)=>(_setSuperWave=Module["_setSuperWave"]=wasmExports["$"])(a0,a1);var _setWaveform=Module["_setWaveform"]=(a0,a1)=>(_setWaveform=Module["_setWaveform"]=wasmExports["aa"])(a0,a1);var _speechText=Module["_speechText"]=(a0,a1)=>(_speechText=Module["_speechText"]=wasmExports["ba"])(a0,a1);var _pauseSwitch=Module["_pauseSwitch"]=a0=>(_pauseSwitch=Module["_pauseSwitch"]=wasmExports["ca"])(a0);var _setPause=Module["_setPause"]=(a0,a1)=>(_setPause=Module["_setPause"]=wasmExports["da"])(a0,a1);var _getPause=Module["_getPause"]=a0=>(_getPause=Module["_getPause"]=wasmExports["ea"])(a0);var _setRelativePlaySpeed=Module["_setRelativePlaySpeed"]=(a0,a1)=>(_setRelativePlaySpeed=Module["_setRelativePlaySpeed"]=wasmExports["fa"])(a0,a1);var _getRelativePlaySpeed=Module["_getRelativePlaySpeed"]=a0=>(_getRelativePlaySpeed=Module["_getRelativePlaySpeed"]=wasmExports["ga"])(a0);var _play=Module["_play"]=(a0,a1,a2,a3,a4,a5,a6)=>(_play=Module["_play"]=wasmExports["ha"])(a0,a1,a2,a3,a4,a5,a6);var _stop=Module["_stop"]=a0=>(_stop=Module["_stop"]=wasmExports["ia"])(a0);var _disposeSound=Module["_disposeSound"]=a0=>(_disposeSound=Module["_disposeSound"]=wasmExports["ja"])(a0);var _disposeAllSound=Module["_disposeAllSound"]=()=>(_disposeAllSound=Module["_disposeAllSound"]=wasmExports["ka"])();var _getLooping=Module["_getLooping"]=a0=>(_getLooping=Module["_getLooping"]=wasmExports["la"])(a0);var _setLooping=Module["_setLooping"]=(a0,a1)=>(_setLooping=Module["_setLooping"]=wasmExports["ma"])(a0,a1);var _getLoopPoint=Module["_getLoopPoint"]=a0=>(_getLoopPoint=Module["_getLoopPoint"]=wasmExports["na"])(a0);var _setLoopPoint=Module["_setLoopPoint"]=(a0,a1)=>(_setLoopPoint=Module["_setLoopPoint"]=wasmExports["oa"])(a0,a1);var _setVisualizationEnabled=Module["_setVisualizationEnabled"]=a0=>(_setVisualizationEnabled=Module["_setVisualizationEnabled"]=wasmExports["pa"])(a0);var _getVisualizationEnabled=Module["_getVisualizationEnabled"]=()=>(_getVisualizationEnabled=Module["_getVisualizationEnabled"]=wasmExports["qa"])();var _getFft=Module["_getFft"]=a0=>(_getFft=Module["_getFft"]=wasmExports["ra"])(a0);var _getWave=Module["_getWave"]=a0=>(_getWave=Module["_getWave"]=wasmExports["sa"])(a0);var _setFftSmoothing=Module["_setFftSmoothing"]=a0=>(_setFftSmoothing=Module["_setFftSmoothing"]=wasmExports["ta"])(a0);var _getAudioTexture=Module["_getAudioTexture"]=a0=>(_getAudioTexture=Module["_getAudioTexture"]=wasmExports["ua"])(a0);var _getAudioTexture2D=Module["_getAudioTexture2D"]=a0=>(_getAudioTexture2D=Module["_getAudioTexture2D"]=wasmExports["va"])(a0);var _getTextureValue=Module["_getTextureValue"]=(a0,a1)=>(_getTextureValue=Module["_getTextureValue"]=wasmExports["wa"])(a0,a1);var _getLength=Module["_getLength"]=a0=>(_getLength=Module["_getLength"]=wasmExports["xa"])(a0);var _seek=Module["_seek"]=(a0,a1)=>(_seek=Module["_seek"]=wasmExports["ya"])(a0,a1);var _getPosition=Module["_getPosition"]=a0=>(_getPosition=Module["_getPosition"]=wasmExports["za"])(a0);var _getGlobalVolume=Module["_getGlobalVolume"]=()=>(_getGlobalVolume=Module["_getGlobalVolume"]=wasmExports["Aa"])();var _setGlobalVolume=Module["_setGlobalVolume"]=a0=>(_setGlobalVolume=Module["_setGlobalVolume"]=wasmExports["Ba"])(a0);var _getVolume=Module["_getVolume"]=a0=>(_getVolume=Module["_getVolume"]=wasmExports["Ca"])(a0);var _setVolume=Module["_setVolume"]=(a0,a1)=>(_setVolume=Module["_setVolume"]=wasmExports["Da"])(a0,a1);var _getPan=Module["_getPan"]=a0=>(_getPan=Module["_getPan"]=wasmExports["Ea"])(a0);var _setPan=Module["_setPan"]=(a0,a1)=>(_setPan=Module["_setPan"]=wasmExports["Fa"])(a0,a1);var _setPanAbsolute=Module["_setPanAbsolute"]=(a0,a1,a2)=>(_setPanAbsolute=Module["_setPanAbsolute"]=wasmExports["Ga"])(a0,a1,a2);var _getIsValidVoiceHandle=Module["_getIsValidVoiceHandle"]=a0=>(_getIsValidVoiceHandle=Module["_getIsValidVoiceHandle"]=wasmExports["Ha"])(a0);var _getActiveVoiceCount=Module["_getActiveVoiceCount"]=()=>(_getActiveVoiceCount=Module["_getActiveVoiceCount"]=wasmExports["Ia"])();var _countAudioSource=Module["_countAudioSource"]=a0=>(_countAudioSource=Module["_countAudioSource"]=wasmExports["Ja"])(a0);var _getVoiceCount=Module["_getVoiceCount"]=()=>(_getVoiceCount=Module["_getVoiceCount"]=wasmExports["Ka"])();var _getProtectVoice=Module["_getProtectVoice"]=a0=>(_getProtectVoice=Module["_getProtectVoice"]=wasmExports["La"])(a0);var _setProtectVoice=Module["_setProtectVoice"]=(a0,a1)=>(_setProtectVoice=Module["_setProtectVoice"]=wasmExports["Ma"])(a0,a1);var _setInaudibleBehavior=Module["_setInaudibleBehavior"]=(a0,a1,a2)=>(_setInaudibleBehavior=Module["_setInaudibleBehavior"]=wasmExports["Na"])(a0,a1,a2);var _getMaxActiveVoiceCount=Module["_getMaxActiveVoiceCount"]=()=>(_getMaxActiveVoiceCount=Module["_getMaxActiveVoiceCount"]=wasmExports["Oa"])();var _setMaxActiveVoiceCount=Module["_setMaxActiveVoiceCount"]=a0=>(_setMaxActiveVoiceCount=Module["_setMaxActiveVoiceCount"]=wasmExports["Pa"])(a0);var _createVoiceGroup=Module["_createVoiceGroup"]=()=>(_createVoiceGroup=Module["_createVoiceGroup"]=wasmExports["Qa"])();var _destroyVoiceGroup=Module["_destroyVoiceGroup"]=a0=>(_destroyVoiceGroup=Module["_destroyVoiceGroup"]=wasmExports["Ra"])(a0);var _addVoiceToGroup=Module["_addVoiceToGroup"]=(a0,a1)=>(_addVoiceToGroup=Module["_addVoiceToGroup"]=wasmExports["Sa"])(a0,a1);var _isVoiceGroup=Module["_isVoiceGroup"]=a0=>(_isVoiceGroup=Module["_isVoiceGroup"]=wasmExports["Ta"])(a0);var _isVoiceGroupEmpty=Module["_isVoiceGroupEmpty"]=a0=>(_isVoiceGroupEmpty=Module["_isVoiceGroupEmpty"]=wasmExports["Ua"])(a0);var _fadeGlobalVolume=Module["_fadeGlobalVolume"]=(a0,a1)=>(_fadeGlobalVolume=Module["_fadeGlobalVolume"]=wasmExports["Va"])(a0,a1);var _fadeVolume=Module["_fadeVolume"]=(a0,a1,a2)=>(_fadeVolume=Module["_fadeVolume"]=wasmExports["Wa"])(a0,a1,a2);var _fadePan=Module["_fadePan"]=(a0,a1,a2)=>(_fadePan=Module["_fadePan"]=wasmExports["Xa"])(a0,a1,a2);var _fadeRelativePlaySpeed=Module["_fadeRelativePlaySpeed"]=(a0,a1,a2)=>(_fadeRelativePlaySpeed=Module["_fadeRelativePlaySpeed"]=wasmExports["Ya"])(a0,a1,a2);var _schedulePause=Module["_schedulePause"]=(a0,a1)=>(_schedulePause=Module["_schedulePause"]=wasmExports["Za"])(a0,a1);var _scheduleStop=Module["_scheduleStop"]=(a0,a1)=>(_scheduleStop=Module["_scheduleStop"]=wasmExports["_a"])(a0,a1);var _oscillateVolume=Module["_oscillateVolume"]=(a0,a1,a2,a3)=>(_oscillateVolume=Module["_oscillateVolume"]=wasmExports["$a"])(a0,a1,a2,a3);var _oscillatePan=Module["_oscillatePan"]=(a0,a1,a2,a3)=>(_oscillatePan=Module["_oscillatePan"]=wasmExports["ab"])(a0,a1,a2,a3);var _oscillateRelativePlaySpeed=Module["_oscillateRelativePlaySpeed"]=(a0,a1,a2,a3)=>(_oscillateRelativePlaySpeed=Module["_oscillateRelativePlaySpeed"]=wasmExports["bb"])(a0,a1,a2,a3);var _oscillateGlobalVolume=Module["_oscillateGlobalVolume"]=(a0,a1,a2)=>(_oscillateGlobalVolume=Module["_oscillateGlobalVolume"]=wasmExports["cb"])(a0,a1,a2);var _isFilterActive=Module["_isFilterActive"]=(a0,a1,a2)=>(_isFilterActive=Module["_isFilterActive"]=wasmExports["db"])(a0,a1,a2);var _getFilterParamNames=Module["_getFilterParamNames"]=(a0,a1,a2)=>(_getFilterParamNames=Module["_getFilterParamNames"]=wasmExports["eb"])(a0,a1,a2);var _addFilter=Module["_addFilter"]=(a0,a1)=>(_addFilter=Module["_addFilter"]=wasmExports["fb"])(a0,a1);var _removeFilter=Module["_removeFilter"]=(a0,a1)=>(_removeFilter=Module["_removeFilter"]=wasmExports["gb"])(a0,a1);var _setFilterParams=Module["_setFilterParams"]=(a0,a1,a2,a3)=>(_setFilterParams=Module["_setFilterParams"]=wasmExports["hb"])(a0,a1,a2,a3);var _getFilterParams=Module["_getFilterParams"]=(a0,a1,a2,a3)=>(_getFilterParams=Module["_getFilterParams"]=wasmExports["ib"])(a0,a1,a2,a3);var _fadeFilterParameter=Module["_fadeFilterParameter"]=(a0,a1,a2,a3,a4)=>(_fadeFilterParameter=Module["_fadeFilterParameter"]=wasmExports["jb"])(a0,a1,a2,a3,a4);var _oscillateFilterParameter=Module["_oscillateFilterParameter"]=(a0,a1,a2,a3,a4,a5)=>(_oscillateFilterParameter=Module["_oscillateFilterParameter"]=wasmExports["kb"])(a0,a1,a2,a3,a4,a5);var _play3d=Module["_play3d"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)=>(_play3d=Module["_play3d"]=wasmExports["lb"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11);var _set3dSoundSpeed=Module["_set3dSoundSpeed"]=a0=>(_set3dSoundSpeed=Module["_set3dSoundSpeed"]=wasmExports["mb"])(a0);var _get3dSoundSpeed=Module["_get3dSoundSpeed"]=()=>(_get3dSoundSpeed=Module["_get3dSoundSpeed"]=wasmExports["nb"])();var _set3dListenerParameters=Module["_set3dListenerParameters"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)=>(_set3dListenerParameters=Module["_set3dListenerParameters"]=wasmExports["ob"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11);var _set3dListenerPosition=Module["_set3dListenerPosition"]=(a0,a1,a2)=>(_set3dListenerPosition=Module["_set3dListenerPosition"]=wasmExports["pb"])(a0,a1,a2);var _set3dListenerAt=Module["_set3dListenerAt"]=(a0,a1,a2)=>(_set3dListenerAt=Module["_set3dListenerAt"]=wasmExports["qb"])(a0,a1,a2);var _set3dListenerUp=Module["_set3dListenerUp"]=(a0,a1,a2)=>(_set3dListenerUp=Module["_set3dListenerUp"]=wasmExports["rb"])(a0,a1,a2);var _set3dListenerVelocity=Module["_set3dListenerVelocity"]=(a0,a1,a2)=>(_set3dListenerVelocity=Module["_set3dListenerVelocity"]=wasmExports["sb"])(a0,a1,a2);var _set3dSourceParameters=Module["_set3dSourceParameters"]=(a0,a1,a2,a3,a4,a5,a6)=>(_set3dSourceParameters=Module["_set3dSourceParameters"]=wasmExports["tb"])(a0,a1,a2,a3,a4,a5,a6);var _set3dSourcePosition=Module["_set3dSourcePosition"]=(a0,a1,a2,a3)=>(_set3dSourcePosition=Module["_set3dSourcePosition"]=wasmExports["ub"])(a0,a1,a2,a3);var _set3dSourceVelocity=Module["_set3dSourceVelocity"]=(a0,a1,a2,a3)=>(_set3dSourceVelocity=Module["_set3dSourceVelocity"]=wasmExports["vb"])(a0,a1,a2,a3);var _set3dSourceMinMaxDistance=Module["_set3dSourceMinMaxDistance"]=(a0,a1,a2)=>(_set3dSourceMinMaxDistance=Module["_set3dSourceMinMaxDistance"]=wasmExports["wb"])(a0,a1,a2);var _set3dSourceAttenuation=Module["_set3dSourceAttenuation"]=(a0,a1,a2)=>(_set3dSourceAttenuation=Module["_set3dSourceAttenuation"]=wasmExports["xb"])(a0,a1,a2);var _set3dSourceDopplerFactor=Module["_set3dSourceDopplerFactor"]=(a0,a1)=>(_set3dSourceDopplerFactor=Module["_set3dSourceDopplerFactor"]=wasmExports["yb"])(a0,a1);var _readSamplesFromFile=Module["_readSamplesFromFile"]=(a0,a1,a2,a3,a4,a5)=>(_readSamplesFromFile=Module["_readSamplesFromFile"]=wasmExports["zb"])(a0,a1,a2,a3,a4,a5);var _readSamplesFromMem=Module["_readSamplesFromMem"]=(a0,a1,a2,a3,a4,a5,a6)=>(_readSamplesFromMem=Module["_readSamplesFromMem"]=wasmExports["Ab"])(a0,a1,a2,a3,a4,a5,a6);var _sbrk=a0=>(_sbrk=wasmExports["Bb"])(a0);var _emscripten_stack_get_base=()=>(_emscripten_stack_get_base=wasmExports["Cb"])();var __emscripten_stack_restore=a0=>(__emscripten_stack_restore=wasmExports["Db"])(a0);var __emscripten_stack_alloc=a0=>(__emscripten_stack_alloc=wasmExports["Eb"])(a0);var _emscripten_stack_get_current=()=>(_emscripten_stack_get_current=wasmExports["Fb"])();Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["setValue"]=setValue;Module["getValue"]=getValue;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);Module["onRuntimeInitialized"]?.();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();moduleRtn=readyPromise;
return moduleRtn;
diff --git a/web/libflutter_soloud_plugin.wasm b/web/libflutter_soloud_plugin.wasm
index 47da7921..e75db95e 100755
Binary files a/web/libflutter_soloud_plugin.wasm and b/web/libflutter_soloud_plugin.wasm differ
diff --git a/web/worker.dart b/web/worker.dart
index 037d73e5..816dbb2a 100644
--- a/web/worker.dart
+++ b/web/worker.dart
@@ -1,7 +1,6 @@
// ignore_for_file: document_ignores
import 'dart:async';
-import 'dart:convert' show jsonDecode;
import 'dart:js_interop';
import 'dart:js_interop_unsafe';
@@ -27,8 +26,7 @@ Stream callbackToStream(
final controller = StreamController.broadcast(sync: true);
void eventFunction(JSAny event) {
- final jsEvent = event.jsify;
- controller.add(unwrapValue(jsEvent as J));
+ controller.add(unwrapValue(event as J));
}
object.setProperty(
@@ -59,20 +57,12 @@ class Worker {
void main() async {
// print('Worker created.\n');
final worker = Worker();
+ // ignore: unnecessary_lambdas
worker.onReceive().listen((data) {
- // print('Dart worker: '
- // 'onMessage received $data with type of ${data.runtimeType}\n');
+ // ignore: avoid_print
+ // print('Dart worker: onMessage received $data '
+ // 'with type of ${data.runtimeType}\n');
- if (data is String) {
- try {
- final parseMap = jsonDecode(data) as Map;
- // ignore: avoid_print
- print('Received $data PARSED TO $parseMap\n');
- worker.sendMessage(data);
- } on Exception catch (_) {
- // ignore: avoid_print
- print("Received data from WASM worker but it's not a String!\n");
- }
- }
+ worker.sendMessage(data);
});
}
diff --git a/web/worker.dart.js b/web/worker.dart.js
index 232ccf35..d809333d 100644
--- a/web/worker.dart.js
+++ b/web/worker.dart.js
@@ -22,17 +22,17 @@ a[c]=function(){if(a[b]===s){a[b]=d()}a[c]=function(){return this[b]}
return a[b]}}function lazyFinal(a,b,c,d){var s=a
a[b]=s
a[c]=function(){if(a[b]===s){var r=d()
-if(a[b]!==s){A.hh(b)}a[b]=r}var q=a[b]
+if(a[b]!==s){A.h3(b)}a[b]=r}var q=a[b]
a[c]=function(){return q}
return q}}function makeConstList(a){a.$flags=7
return a}function convertToFastObject(a){function t(){}t.prototype=a
new t()
return a}function convertAllToFastObject(a){for(var s=0;s").u(d).i("aj<1,2>"))
-return new A.X(a,b,c.i("@<0>").u(d).i("X<1,2>"))},
-as:function as(a){this.a=a},
+ev(a,b,c,d){if(t.V.b(a))return new A.ag(a,b,c.i("@<0>").u(d).i("ag<1,2>"))
+return new A.U(a,b,c.i("@<0>").u(d).i("U<1,2>"))},
+ap:function ap(a){this.a=a},
e:function e(){},
-D:function D(){},
-a3:function a3(a,b,c){var _=this
+N:function N(){},
+a0:function a0(a,b,c){var _=this
_.a=a
_.b=b
_.c=0
_.d=null
_.$ti=c},
-X:function X(a,b,c){this.a=a
+U:function U(a,b,c){this.a=a
this.b=b
this.$ti=c},
-aj:function aj(a,b,c){this.a=a
+ag:function ag(a,b,c){this.a=a
this.b=b
this.$ti=c},
-be:function be(a,b,c){var _=this
+b7:function b7(a,b,c){var _=this
_.a=null
_.b=a
_.c=b
_.$ti=c},
-F:function F(a,b,c){this.a=a
+D:function D(a,b,c){this.a=a
this.b=b
this.$ti=c},
-al:function al(){},
-eg(a){var s=v.mangledGlobalNames[a]
+ai:function ai(){},
+e3(a){var s=v.mangledGlobalNames[a]
if(s!=null)return s
return"minified:"+a},
-hQ(a,b){var s
+hC(a,b){var s
if(b!=null){s=b.x
if(s!=null)return s}return t.p.b(a)},
o(a){var s
@@ -172,53 +169,53 @@ if(typeof a=="string")return a
if(typeof a=="number"){if(a!==0)return""+a}else if(!0===a)return"true"
else if(!1===a)return"false"
else if(a==null)return"null"
-s=J.b0(a)
+s=J.aV(a)
return s},
-aA(a){var s,r=$.dv
-if(r==null)r=$.dv=Symbol("identityHashCode")
+av(a){var s,r=$.dj
+if(r==null)r=$.dj=Symbol("identityHashCode")
s=a[r]
if(s==null){s=Math.random()*0x3fffffff|0
a[r]=s}return s},
-c1(a){return A.eK(a)},
-eK(a){var s,r,q,p
-if(a instanceof A.d)return A.u(A.ag(a),null)
-s=J.a0(a)
-if(s===B.o||s===B.t||t.o.b(a)){r=B.c(a)
+bR(a){return A.ew(a)},
+ew(a){var s,r,q,p
+if(a instanceof A.d)return A.t(A.Z(a),null)
+s=J.af(a)
+if(s===B.n||s===B.r||t.o.b(a)){r=B.c(a)
if(r!=="Object"&&r!=="")return r
q=a.constructor
if(typeof q=="function"){p=q.name
-if(typeof p=="string"&&p!=="Object"&&p!=="")return p}}return A.u(A.ag(a),null)},
-eM(a){if(typeof a=="number"||A.cK(a))return J.b0(a)
+if(typeof p=="string"&&p!=="Object"&&p!=="")return p}}return A.t(A.Z(a),null)},
+ey(a){if(typeof a=="number"||A.cy(a))return J.aV(a)
if(typeof a=="string")return JSON.stringify(a)
-if(a instanceof A.W)return a.h(0)
-return"Instance of '"+A.c1(a)+"'"},
-eL(a){var s=a.$thrownJsError
+if(a instanceof A.T)return a.h(0)
+return"Instance of '"+A.bR(a)+"'"},
+ex(a){var s=a.$thrownJsError
if(s==null)return null
-return A.L(s)},
-B(a,b){if(a==null)J.cX(a)
-throw A.b(A.e6(a,b))},
-e6(a,b){var s,r="index"
-if(!A.dX(b))return new A.C(!0,b,r,null)
-s=J.cX(a)
-if(b<0||b>=s)return A.dt(b,s,a,r)
-return new A.aB(null,null,!0,b,r,"Value not in range")},
-b(a){return A.ea(new Error(),a)},
-ea(a,b){var s
-if(b==null)b=new A.H()
+return A.J(s)},
+C(a,b){if(a==null)J.cL(a)
+throw A.b(A.dV(a,b))},
+dV(a,b){var s,r="index"
+if(!A.dM(b))return new A.A(!0,b,r,null)
+s=J.cL(a)
+if(b<0||b>=s)return A.eq(b,s,a,r)
+return new A.aw(null,null,!0,b,r,"Value not in range")},
+b(a){return A.dZ(new Error(),a)},
+dZ(a,b){var s
+if(b==null)b=new A.F()
a.dartException=b
-s=A.hj
+s=A.h5
if("defineProperty" in Object){Object.defineProperty(a,"message",{get:s})
a.name=""}else a.toString=s
return a},
-hj(){return J.b0(this.dartException)},
-bM(a){throw A.b(a)},
-di(a,b){throw A.ea(b,a)},
-hi(a,b,c){var s
+h5(){return J.aV(this.dartException)},
+bE(a){throw A.b(a)},
+d7(a,b){throw A.dZ(b,a)},
+h4(a,b,c){var s
if(b==null)b=0
if(c==null)c=0
s=Error()
-A.di(A.fn(a,b,c),s)},
-fn(a,b,c){var s,r,q,p,o,n,m,l,k
+A.d7(A.f9(a,b,c),s)},
+f9(a,b,c){var s,r,q,p,o,n,m,l,k
if(typeof b=="string")s=b
else{r="[]=;add;removeWhere;retainWhere;removeRange;setRange;setInt8;setInt16;setInt32;setUint8;setUint16;setUint32;setFloat32;setFloat64".split(";")
q=r.length
@@ -231,77 +228,77 @@ l="a "
if((m&4)!==0)k="constant "
else if((m&2)!==0){k="unmodifiable "
l="an "}else k=(m&1)!==0?"fixed-length ":""
-return new A.aE("'"+s+"': Cannot "+o+" "+l+k+n)},
-hg(a){throw A.b(A.ai(a))},
-I(a){var s,r,q,p,o,n
-a=A.hf(a.replace(String({}),"$receiver$"))
+return new A.az("'"+s+"': Cannot "+o+" "+l+k+n)},
+h2(a){throw A.b(A.bH(a))},
+G(a){var s,r,q,p,o,n
+a=A.h1(a.replace(String({}),"$receiver$"))
s=a.match(/\\\$[a-zA-Z]+\\\$/g)
-if(s==null)s=A.aZ([],t.s)
+if(s==null)s=A.bD([],t.s)
r=s.indexOf("\\$arguments\\$")
q=s.indexOf("\\$argumentsExpr\\$")
p=s.indexOf("\\$expr\\$")
o=s.indexOf("\\$method\\$")
n=s.indexOf("\\$receiver\\$")
-return new A.c6(a.replace(new RegExp("\\\\\\$arguments\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$argumentsExpr\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$expr\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$method\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$receiver\\\\\\$","g"),"((?:x|[^x])*)"),r,q,p,o,n)},
-c7(a){return function($expr$){var $argumentsExpr$="$arguments$"
+return new A.bW(a.replace(new RegExp("\\\\\\$arguments\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$argumentsExpr\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$expr\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$method\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$receiver\\\\\\$","g"),"((?:x|[^x])*)"),r,q,p,o,n)},
+bX(a){return function($expr$){var $argumentsExpr$="$arguments$"
try{$expr$.$method$($argumentsExpr$)}catch(s){return s.message}}(a)},
-dB(a){return function($expr$){try{$expr$.$method$}catch(s){return s.message}}(a)},
-d1(a,b){var s=b==null,r=s?null:b.method
-return new A.bc(a,r,s?null:b.receiver)},
-N(a){if(a==null)return new A.c_(a)
-if(a instanceof A.ak)return A.U(a,a.a)
+dq(a){return function($expr$){try{$expr$.$method$}catch(s){return s.message}}(a)},
+cQ(a,b){var s=b==null,r=s?null:b.method
+return new A.b6(a,r,s?null:b.receiver)},
+R(a){if(a==null)return new A.bQ(a)
+if(a instanceof A.ah)return A.Q(a,a.a)
if(typeof a!=="object")return a
-if("dartException" in a)return A.U(a,a.dartException)
-return A.fT(a)},
-U(a,b){if(t.Q.b(b))if(b.$thrownJsError==null)b.$thrownJsError=a
+if("dartException" in a)return A.Q(a,a.dartException)
+return A.fE(a)},
+Q(a,b){if(t.Q.b(b))if(b.$thrownJsError==null)b.$thrownJsError=a
return b},
-fT(a){var s,r,q,p,o,n,m,l,k,j,i,h,g
+fE(a){var s,r,q,p,o,n,m,l,k,j,i,h,g
if(!("message" in a))return a
s=a.message
if("number" in a&&typeof a.number=="number"){r=a.number
q=r&65535
-if((B.q.aH(r,16)&8191)===10)switch(q){case 438:return A.U(a,A.d1(A.o(s)+" (Error "+q+")",null))
+if((B.p.aE(r,16)&8191)===10)switch(q){case 438:return A.Q(a,A.cQ(A.o(s)+" (Error "+q+")",null))
case 445:case 5007:A.o(s)
-return A.U(a,new A.az())}}if(a instanceof TypeError){p=$.eh()
-o=$.ei()
-n=$.ej()
-m=$.ek()
-l=$.en()
-k=$.eo()
-j=$.em()
-$.el()
-i=$.eq()
-h=$.ep()
+return A.Q(a,new A.au())}}if(a instanceof TypeError){p=$.e4()
+o=$.e5()
+n=$.e6()
+m=$.e7()
+l=$.ea()
+k=$.eb()
+j=$.e9()
+$.e8()
+i=$.ed()
+h=$.ec()
g=p.t(s)
-if(g!=null)return A.U(a,A.d1(s,g))
+if(g!=null)return A.Q(a,A.cQ(s,g))
else{g=o.t(s)
if(g!=null){g.method="call"
-return A.U(a,A.d1(s,g))}else if(n.t(s)!=null||m.t(s)!=null||l.t(s)!=null||k.t(s)!=null||j.t(s)!=null||m.t(s)!=null||i.t(s)!=null||h.t(s)!=null)return A.U(a,new A.az())}return A.U(a,new A.bt(typeof s=="string"?s:""))}if(a instanceof RangeError){if(typeof s=="string"&&s.indexOf("call stack")!==-1)return new A.aC()
+return A.Q(a,A.cQ(s,g))}else if(n.t(s)!=null||m.t(s)!=null||l.t(s)!=null||k.t(s)!=null||j.t(s)!=null||m.t(s)!=null||i.t(s)!=null||h.t(s)!=null)return A.Q(a,new A.au())}return A.Q(a,new A.bm(typeof s=="string"?s:""))}if(a instanceof RangeError){if(typeof s=="string"&&s.indexOf("call stack")!==-1)return new A.ax()
s=function(b){try{return String(b)}catch(f){}return null}(a)
-return A.U(a,new A.C(!1,null,null,typeof s=="string"?s.replace(/^RangeError:\s*/,""):s))}if(typeof InternalError=="function"&&a instanceof InternalError)if(typeof s=="string"&&s==="too much recursion")return new A.aC()
+return A.Q(a,new A.A(!1,null,null,typeof s=="string"?s.replace(/^RangeError:\s*/,""):s))}if(typeof InternalError=="function"&&a instanceof InternalError)if(typeof s=="string"&&s==="too much recursion")return new A.ax()
return a},
-L(a){var s
-if(a instanceof A.ak)return a.b
-if(a==null)return new A.aQ(a)
+J(a){var s
+if(a instanceof A.ah)return a.b
+if(a==null)return new A.aL(a)
s=a.$cachedTrace
if(s!=null)return s
-s=new A.aQ(a)
+s=new A.aL(a)
if(typeof a==="object")a.$cachedTrace=s
return s},
-dg(a){if(a==null)return J.dl(a)
-if(typeof a=="object")return A.aA(a)
-return J.dl(a)},
-fv(a,b,c,d,e,f){switch(b){case 0:return a.$0()
+d5(a){if(a==null)return J.da(a)
+if(typeof a=="object")return A.av(a)
+return J.da(a)},
+fh(a,b,c,d,e,f){switch(b){case 0:return a.$0()
case 1:return a.$1(c)
case 2:return a.$2(c,d)
case 3:return a.$3(c,d,e)
-case 4:return a.$4(c,d,e,f)}throw A.b(new A.ci("Unsupported number of arguments for wrapped closure"))},
-cO(a,b){var s=a.$identity
+case 4:return a.$4(c,d,e,f)}throw A.b(new A.c7("Unsupported number of arguments for wrapped closure"))},
+cC(a,b){var s=a.$identity
if(!!s)return s
-s=A.h0(a,b)
+s=A.fM(a,b)
a.$identity=s
return s},
-h0(a,b){var s
+fM(a,b){var s
switch(b){case 0:s=a.$0
break
case 1:s=a.$1
@@ -313,10 +310,10 @@ break
case 4:s=a.$4
break
default:s=null}if(s!=null)return s.bind(a)
-return function(c,d,e){return function(f,g,h,i){return e(c,d,f,g,h,i)}}(a,b,A.fv)},
-eB(a2){var s,r,q,p,o,n,m,l,k,j,i=a2.co,h=a2.iS,g=a2.iI,f=a2.nDA,e=a2.aI,d=a2.fs,c=a2.cs,b=d[0],a=c[0],a0=i[b],a1=a2.fT
+return function(c,d,e){return function(f,g,h,i){return e(c,d,f,g,h,i)}}(a,b,A.fh)},
+en(a2){var s,r,q,p,o,n,m,l,k,j,i=a2.co,h=a2.iS,g=a2.iI,f=a2.nDA,e=a2.aI,d=a2.fs,c=a2.cs,b=d[0],a=c[0],a0=i[b],a1=a2.fT
a1.toString
-s=h?Object.create(new A.c2().constructor.prototype):Object.create(new A.ah(null,null).constructor.prototype)
+s=h?Object.create(new A.bS().constructor.prototype):Object.create(new A.b_(null,null).constructor.prototype)
s.$initialize=s.constructor
r=h?function static_tear_off(){this.$initialize()}:function tear_off(a3,a4){this.$initialize(a3,a4)}
s.constructor=r
@@ -324,24 +321,24 @@ r.prototype=s
s.$_name=b
s.$_target=a0
q=!h
-if(q)p=A.ds(b,a0,g,f)
+if(q)p=A.dh(b,a0,g,f)
else{s.$static_name=b
-p=a0}s.$S=A.ex(a1,h,g)
+p=a0}s.$S=A.ej(a1,h,g)
s[a]=p
for(o=p,n=1;n>>0!==a||a>=c)throw A.b(A.e6(b,a))},
+bj:function bj(a){this.a=a},
+cE:function cE(a){this.a=a},
+cF:function cF(a){this.a=a},
+cG:function cG(a){this.a=a},
+Y(a,b,c){if(a>>>0!==a||a>=c)throw A.b(A.dV(b,a))},
+b8:function b8(){},
+as:function as(){},
+b9:function b9(){},
+a2:function a2(){},
+aq:function aq(){},
+ar:function ar(){},
+ba:function ba(){},
+bb:function bb(){},
+bc:function bc(){},
+bd:function bd(){},
+be:function be(){},
bf:function bf(){},
-ax:function ax(){},
bg:function bg(){},
-a4:function a4(){},
-av:function av(){},
-aw:function aw(){},
+at:function at(){},
bh:function bh(){},
-bi:function bi(){},
-bj:function bj(){},
-bk:function bk(){},
-bl:function bl(){},
-bm:function bm(){},
-bn:function bn(){},
-ay:function ay(){},
-bo:function bo(){},
-aL:function aL(){},
-aM:function aM(){},
-aN:function aN(){},
-aO:function aO(){},
-dw(a,b){var s=b.c
-return s==null?b.c=A.d5(a,b.x,!0):s},
-d2(a,b){var s=b.c
-return s==null?b.c=A.aV(a,"a2",[b.x]):s},
-dx(a){var s=a.w
-if(s===6||s===7||s===8)return A.dx(a.x)
+aG:function aG(){},
+aH:function aH(){},
+aI:function aI(){},
+aJ:function aJ(){},
+dk(a,b){var s=b.c
+return s==null?b.c=A.cU(a,b.x,!0):s},
+cR(a,b){var s=b.c
+return s==null?b.c=A.aQ(a,"a_",[b.x]):s},
+dl(a){var s=a.w
+if(s===6||s===7||s===8)return A.dl(a.x)
return s===12||s===13},
-eO(a){return a.as},
-e7(a){return A.bH(v.typeUniverse,a,!1)},
-T(a1,a2,a3,a4){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0=a2.w
+eA(a){return a.as},
+dW(a){return A.by(v.typeUniverse,a,!1)},
+P(a1,a2,a3,a4){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0=a2.w
switch(a0){case 5:case 1:case 2:case 3:case 4:return a2
case 6:s=a2.x
-r=A.T(a1,s,a3,a4)
+r=A.P(a1,s,a3,a4)
if(r===s)return a2
-return A.dQ(a1,r,!0)
+return A.dF(a1,r,!0)
case 7:s=a2.x
-r=A.T(a1,s,a3,a4)
+r=A.P(a1,s,a3,a4)
if(r===s)return a2
-return A.d5(a1,r,!0)
+return A.cU(a1,r,!0)
case 8:s=a2.x
-r=A.T(a1,s,a3,a4)
+r=A.P(a1,s,a3,a4)
if(r===s)return a2
-return A.dO(a1,r,!0)
+return A.dD(a1,r,!0)
case 9:q=a2.y
-p=A.ae(a1,q,a3,a4)
+p=A.ad(a1,q,a3,a4)
if(p===q)return a2
-return A.aV(a1,a2.x,p)
+return A.aQ(a1,a2.x,p)
case 10:o=a2.x
-n=A.T(a1,o,a3,a4)
+n=A.P(a1,o,a3,a4)
m=a2.y
-l=A.ae(a1,m,a3,a4)
+l=A.ad(a1,m,a3,a4)
if(n===o&&l===m)return a2
-return A.d3(a1,n,l)
+return A.cS(a1,n,l)
case 11:k=a2.x
j=a2.y
-i=A.ae(a1,j,a3,a4)
+i=A.ad(a1,j,a3,a4)
if(i===j)return a2
-return A.dP(a1,k,i)
+return A.dE(a1,k,i)
case 12:h=a2.x
-g=A.T(a1,h,a3,a4)
+g=A.P(a1,h,a3,a4)
f=a2.y
-e=A.fQ(a1,f,a3,a4)
+e=A.fB(a1,f,a3,a4)
if(g===h&&e===f)return a2
-return A.dN(a1,g,e)
+return A.dC(a1,g,e)
case 13:d=a2.y
a4+=d.length
-c=A.ae(a1,d,a3,a4)
+c=A.ad(a1,d,a3,a4)
o=a2.x
-n=A.T(a1,o,a3,a4)
+n=A.P(a1,o,a3,a4)
if(c===d&&n===o)return a2
-return A.d4(a1,n,c,!0)
+return A.cT(a1,n,c,!0)
case 14:b=a2.x
if(b=0)p+=" "+r[q];++q}return p+"})"},
-dV(a4,a5,a6){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2=", ",a3=null
+dK(a4,a5,a6){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2=", ",a3=null
if(a6!=null){s=a6.length
-if(a5==null)a5=A.aZ([],t.s)
+if(a5==null)a5=A.bD([],t.s)
else a3=a5.length
r=a5.length
for(q=s;q>0;--q)a5.push("T"+(r+q))
for(p=t.X,o=t._,n="<",m="",q=0;q=0))return A.B(a5,k)
+if(!(k>=0))return A.C(a5,k)
n=n+m+a5[k]
j=a6[q]
i=j.w
if(!(i===2||i===3||i===4||i===5||j===p))l=j===o
else l=!0
-if(!l)n+=" extends "+A.u(j,a5)}n+=">"}else n=""
+if(!l)n+=" extends "+A.t(j,a5)}n+=">"}else n=""
p=a4.x
h=a4.y
g=h.a
@@ -776,263 +767,263 @@ e=h.b
d=e.length
c=h.c
b=c.length
-a=A.u(p,a5)
-for(a0="",a1="",q=0;q0){a0+=a1+"["
-for(a1="",q=0;q0){a0+=a1+"{"
for(a1="",q=0;q "+a},
-u(a,b){var s,r,q,p,o,n,m,l=a.w
+t(a,b){var s,r,q,p,o,n,m,l=a.w
if(l===5)return"erased"
if(l===2)return"dynamic"
if(l===3)return"void"
if(l===1)return"Never"
if(l===4)return"any"
-if(l===6)return A.u(a.x,b)
+if(l===6)return A.t(a.x,b)
if(l===7){s=a.x
-r=A.u(s,b)
+r=A.t(s,b)
q=s.w
-return(q===12||q===13?"("+r+")":r)+"?"}if(l===8)return"FutureOr<"+A.u(a.x,b)+">"
-if(l===9){p=A.fS(a.x)
+return(q===12||q===13?"("+r+")":r)+"?"}if(l===8)return"FutureOr<"+A.t(a.x,b)+">"
+if(l===9){p=A.fD(a.x)
o=a.y
-return o.length>0?p+("<"+A.e1(o,b)+">"):p}if(l===11)return A.fK(a,b)
-if(l===12)return A.dV(a,b,null)
-if(l===13)return A.dV(a.x,b,a.y)
+return o.length>0?p+("<"+A.dR(o,b)+">"):p}if(l===11)return A.fv(a,b)
+if(l===12)return A.dK(a,b,null)
+if(l===13)return A.dK(a.x,b,a.y)
if(l===14){n=a.x
m=b.length
n=m-1-n
-if(!(n>=0&&n=0&&n0)p+="<"+A.aU(c)+">"
+aQ(a,b,c){var s,r,q,p=b
+if(c.length>0)p+="<"+A.aP(c)+">"
s=a.eC.get(p)
if(s!=null)return s
-r=new A.y(null,null)
+r=new A.x(null,null)
r.w=9
r.x=b
r.y=c
if(c.length>0)r.c=c[0]
r.as=p
-q=A.J(a,r)
+q=A.H(a,r)
a.eC.set(p,q)
return q},
-d3(a,b,c){var s,r,q,p,o,n
+cS(a,b,c){var s,r,q,p,o,n
if(b.w===10){s=b.x
r=b.y.concat(c)}else{r=c
-s=b}q=s.as+(";<"+A.aU(r)+">")
+s=b}q=s.as+(";<"+A.aP(r)+">")
p=a.eC.get(q)
if(p!=null)return p
-o=new A.y(null,null)
+o=new A.x(null,null)
o.w=10
o.x=s
o.y=r
o.as=q
-n=A.J(a,o)
+n=A.H(a,o)
a.eC.set(q,n)
return n},
-dP(a,b,c){var s,r,q="+"+(b+"("+A.aU(c)+")"),p=a.eC.get(q)
+dE(a,b,c){var s,r,q="+"+(b+"("+A.aP(c)+")"),p=a.eC.get(q)
if(p!=null)return p
-s=new A.y(null,null)
+s=new A.x(null,null)
s.w=11
s.x=b
s.y=c
s.as=q
-r=A.J(a,s)
+r=A.H(a,s)
a.eC.set(q,r)
return r},
-dN(a,b,c){var s,r,q,p,o,n=b.as,m=c.a,l=m.length,k=c.b,j=k.length,i=c.c,h=i.length,g="("+A.aU(m)
+dC(a,b,c){var s,r,q,p,o,n=b.as,m=c.a,l=m.length,k=c.b,j=k.length,i=c.c,h=i.length,g="("+A.aP(m)
if(j>0){s=l>0?",":""
-g+=s+"["+A.aU(k)+"]"}if(h>0){s=l>0?",":""
-g+=s+"{"+A.f5(i)+"}"}r=n+(g+")")
+g+=s+"["+A.aP(k)+"]"}if(h>0){s=l>0?",":""
+g+=s+"{"+A.eS(i)+"}"}r=n+(g+")")
q=a.eC.get(r)
if(q!=null)return q
-p=new A.y(null,null)
+p=new A.x(null,null)
p.w=12
p.x=b
p.y=c
p.as=r
-o=A.J(a,p)
+o=A.H(a,p)
a.eC.set(r,o)
return o},
-d4(a,b,c,d){var s,r=b.as+("<"+A.aU(c)+">"),q=a.eC.get(r)
+cT(a,b,c,d){var s,r=b.as+("<"+A.aP(c)+">"),q=a.eC.get(r)
if(q!=null)return q
-s=A.f7(a,b,c,r,d)
+s=A.eU(a,b,c,r,d)
a.eC.set(r,s)
return s},
-f7(a,b,c,d,e){var s,r,q,p,o,n,m,l
+eU(a,b,c,d,e){var s,r,q,p,o,n,m,l
if(e){s=c.length
-r=A.cF(s)
+r=A.cu(s)
for(q=0,p=0;p0){n=A.T(a,b,r,0)
-m=A.ae(a,c,r,0)
-return A.d4(a,n,m,c!==m)}}l=new A.y(null,null)
+if(o.w===1){r[p]=o;++q}}if(q>0){n=A.P(a,b,r,0)
+m=A.ad(a,c,r,0)
+return A.cT(a,n,m,c!==m)}}l=new A.x(null,null)
l.w=13
l.x=b
l.y=c
l.as=d
-return A.J(a,l)},
-dJ(a,b,c,d){return{u:a,e:b,r:c,s:[],p:0,n:d}},
-dL(a){var s,r,q,p,o,n,m,l=a.r,k=a.s
+return A.H(a,l)},
+dy(a,b,c,d){return{u:a,e:b,r:c,s:[],p:0,n:d}},
+dA(a){var s,r,q,p,o,n,m,l=a.r,k=a.s
for(s=l.length,r=0;r=48&&q<=57)r=A.eZ(r+1,q,l,k)
-else if((((q|32)>>>0)-97&65535)<26||q===95||q===36||q===124)r=A.dK(a,r,l,k,!1)
-else if(q===46)r=A.dK(a,r,l,k,!0)
+if(q>=48&&q<=57)r=A.eL(r+1,q,l,k)
+else if((((q|32)>>>0)-97&65535)<26||q===95||q===36||q===124)r=A.dz(a,r,l,k,!1)
+else if(q===46)r=A.dz(a,r,l,k,!0)
else{++r
switch(q){case 44:break
case 58:k.push(!1)
break
case 33:k.push(!0)
break
-case 59:k.push(A.R(a.u,a.e,k.pop()))
+case 59:k.push(A.O(a.u,a.e,k.pop()))
break
-case 94:k.push(A.fa(a.u,k.pop()))
+case 94:k.push(A.eX(a.u,k.pop()))
break
-case 35:k.push(A.aW(a.u,5,"#"))
+case 35:k.push(A.aR(a.u,5,"#"))
break
-case 64:k.push(A.aW(a.u,2,"@"))
+case 64:k.push(A.aR(a.u,2,"@"))
break
-case 126:k.push(A.aW(a.u,3,"~"))
+case 126:k.push(A.aR(a.u,3,"~"))
break
case 60:k.push(a.p)
a.p=k.length
break
-case 62:A.f0(a,k)
+case 62:A.eN(a,k)
break
-case 38:A.f_(a,k)
+case 38:A.eM(a,k)
break
case 42:p=a.u
-k.push(A.dQ(p,A.R(p,a.e,k.pop()),a.n))
+k.push(A.dF(p,A.O(p,a.e,k.pop()),a.n))
break
case 63:p=a.u
-k.push(A.d5(p,A.R(p,a.e,k.pop()),a.n))
+k.push(A.cU(p,A.O(p,a.e,k.pop()),a.n))
break
case 47:p=a.u
-k.push(A.dO(p,A.R(p,a.e,k.pop()),a.n))
+k.push(A.dD(p,A.O(p,a.e,k.pop()),a.n))
break
case 40:k.push(-3)
k.push(a.p)
a.p=k.length
break
-case 41:A.eY(a,k)
+case 41:A.eK(a,k)
break
case 91:k.push(a.p)
a.p=k.length
break
case 93:o=k.splice(a.p)
-A.dM(a.u,a.e,o)
+A.dB(a.u,a.e,o)
a.p=k.pop()
k.push(o)
k.push(-1)
@@ -1041,7 +1032,7 @@ case 123:k.push(a.p)
a.p=k.length
break
case 125:o=k.splice(a.p)
-A.f2(a.u,a.e,o)
+A.eP(a.u,a.e,o)
a.p=k.pop()
k.push(o)
k.push(-2)
@@ -1054,13 +1045,13 @@ a.p=k.length
r=n+1
break
default:throw"Bad character "+q}}}m=k.pop()
-return A.R(a.u,a.e,m)},
-eZ(a,b,c,d){var s,r,q=b-48
+return A.O(a.u,a.e,m)},
+eL(a,b,c,d){var s,r,q=b-48
for(s=c.length;a=48&&r<=57))break
q=q*10+(r-48)}d.push(q)
return a},
-dK(a,b,c,d,e){var s,r,q,p,o,n,m=b+1
+dz(a,b,c,d,e){var s,r,q,p,o,n,m=b+1
for(s=c.length;m>>0)-97&65535)<26||r===95||r===36||r===124))q=r>=48&&r<=57
@@ -1069,55 +1060,55 @@ if(!q)break}}p=c.substring(b,m)
if(e){s=a.u
o=a.e
if(o.w===10)o=o.x
-n=A.ff(s,o.x)[p]
-if(n==null)A.bM('No "'+p+'" in "'+A.eO(o)+'"')
-d.push(A.cE(s,o,n))}else d.push(p)
+n=A.f1(s,o.x)[p]
+if(n==null)A.bE('No "'+p+'" in "'+A.eA(o)+'"')
+d.push(A.ct(s,o,n))}else d.push(p)
return m},
-f0(a,b){var s,r=a.u,q=A.dI(a,b),p=b.pop()
-if(typeof p=="string")b.push(A.aV(r,p,q))
-else{s=A.R(r,a.e,p)
-switch(s.w){case 12:b.push(A.d4(r,s,q,a.n))
+eN(a,b){var s,r=a.u,q=A.dx(a,b),p=b.pop()
+if(typeof p=="string")b.push(A.aQ(r,p,q))
+else{s=A.O(r,a.e,p)
+switch(s.w){case 12:b.push(A.cT(r,s,q,a.n))
break
-default:b.push(A.d3(r,s,q))
+default:b.push(A.cS(r,s,q))
break}}},
-eY(a,b){var s,r,q,p=a.u,o=b.pop(),n=null,m=null
+eK(a,b){var s,r,q,p=a.u,o=b.pop(),n=null,m=null
if(typeof o=="number")switch(o){case-1:n=b.pop()
break
case-2:m=b.pop()
break
default:b.push(o)
break}else b.push(o)
-s=A.dI(a,b)
+s=A.dx(a,b)
o=b.pop()
switch(o){case-3:o=b.pop()
if(n==null)n=p.sEA
if(m==null)m=p.sEA
-r=A.R(p,a.e,o)
-q=new A.bA()
+r=A.O(p,a.e,o)
+q=new A.bt()
q.a=s
q.b=n
q.c=m
-b.push(A.dN(p,r,q))
+b.push(A.dC(p,r,q))
return
-case-4:b.push(A.dP(p,b.pop(),s))
+case-4:b.push(A.dE(p,b.pop(),s))
return
-default:throw A.b(A.b3("Unexpected state under `()`: "+A.o(o)))}},
-f_(a,b){var s=b.pop()
-if(0===s){b.push(A.aW(a.u,1,"0&"))
-return}if(1===s){b.push(A.aW(a.u,4,"1&"))
-return}throw A.b(A.b3("Unexpected extended operation "+A.o(s)))},
-dI(a,b){var s=b.splice(a.p)
-A.dM(a.u,a.e,s)
+default:throw A.b(A.aZ("Unexpected state under `()`: "+A.o(o)))}},
+eM(a,b){var s=b.pop()
+if(0===s){b.push(A.aR(a.u,1,"0&"))
+return}if(1===s){b.push(A.aR(a.u,4,"1&"))
+return}throw A.b(A.aZ("Unexpected extended operation "+A.o(s)))},
+dx(a,b){var s=b.splice(a.p)
+A.dB(a.u,a.e,s)
a.p=b.pop()
return s},
-R(a,b,c){if(typeof c=="string")return A.aV(a,c,a.sEA)
+O(a,b,c){if(typeof c=="string")return A.aQ(a,c,a.sEA)
else if(typeof c=="number"){b.toString
-return A.f1(a,b,c)}else return c},
-dM(a,b,c){var s,r=c.length
-for(s=0;s0?new Array(q):v.typeUniverse.sEA
-for(o=0;o0?new Array(a):v.typeUniverse.sEA},
-y:function y(a,b){var _=this
+cu(a){return a>0?new Array(a):v.typeUniverse.sEA},
+x:function x(a,b){var _=this
_.a=a
_.b=b
_.r=_.f=_.d=_.c=null
_.w=0
_.as=_.Q=_.z=_.y=_.x=null},
-bA:function bA(){this.c=this.b=this.a=null},
-cD:function cD(a){this.a=a},
-bz:function bz(){},
-aT:function aT(a){this.a=a},
-eR(){var s,r,q={}
-if(self.scheduleImmediate!=null)return A.fV()
+bt:function bt(){this.c=this.b=this.a=null},
+cs:function cs(a){this.a=a},
+bs:function bs(){},
+aO:function aO(a){this.a=a},
+eD(){var s,r,q={}
+if(self.scheduleImmediate!=null)return A.fG()
if(self.MutationObserver!=null&&self.document!=null){s=self.document.createElement("div")
r=self.document.createElement("span")
q.a=null
-new self.MutationObserver(A.cO(new A.cf(q),1)).observe(s,{childList:true})
-return new A.ce(q,s,r)}else if(self.setImmediate!=null)return A.fW()
-return A.fX()},
-eS(a){self.scheduleImmediate(A.cO(new A.cg(a),0))},
-eT(a){self.setImmediate(A.cO(new A.ch(a),0))},
-eU(a){A.f3(0,a)},
-f3(a,b){var s=new A.cB()
-s.an(a,b)
+new self.MutationObserver(A.cC(new A.c4(q),1)).observe(s,{childList:true})
+return new A.c3(q,s,r)}else if(self.setImmediate!=null)return A.fH()
+return A.fI()},
+eE(a){self.scheduleImmediate(A.cC(new A.c5(a),0))},
+eF(a){self.setImmediate(A.cC(new A.c6(a),0))},
+eG(a){A.eQ(0,a)},
+eQ(a,b){var s=new A.cq()
+s.al(a,b)
return s},
-fG(a){return new A.bu(new A.p($.k,a.i("p<0>")),a.i("bu<0>"))},
-fk(a,b){a.$2(0,null)
+fs(a){return new A.bn(new A.p($.k,a.i("p<0>")),a.i("bn<0>"))},
+f6(a,b){a.$2(0,null)
b.b=!0
return b.a},
-hP(a,b){A.fl(a,b)},
-fj(a,b){var s,r=a==null?b.$ti.c.a(a):a
-if(!b.b)b.a.a5(r)
+hB(a,b){A.f7(a,b)},
+f5(a,b){var s,r=a==null?b.$ti.c.a(a):a
+if(!b.b)b.a.a2(r)
else{s=b.a
-if(b.$ti.i("a2<1>").b(r))s.a7(r)
-else s.P(r)}},
-fi(a,b){var s=A.N(a),r=A.L(a),q=b.a
-if(b.b)q.A(s,r)
-else q.O(s,r)},
-fl(a,b){var s,r,q=new A.cH(b),p=new A.cI(b)
-if(a instanceof A.p)a.af(q,p,t.z)
+if(b.$ti.i("a_<1>").b(r))s.a4(r)
+else s.L(r)}},
+f4(a,b){var s=A.R(a),r=A.J(a),q=b.a
+if(b.b)q.v(s,r)
+else q.K(s,r)},
+f7(a,b){var s,r,q=new A.cw(b),p=new A.cx(b)
+if(a instanceof A.p)a.ac(q,p,t.z)
else{s=t.z
-if(a instanceof A.p)a.a1(q,p,s)
+if(a instanceof A.p)a.Z(q,p,s)
else{r=new A.p($.k,t.d)
r.a=8
r.c=a
-r.af(q,p,s)}}},
-fU(a){var s=function(b,c){return function(d,e){while(true){try{b(d,e)
+r.ac(q,p,s)}}},
+fF(a){var s=function(b,c){return function(d,e){while(true){try{b(d,e)
break}catch(r){e=r
d=c}}}}(a,1)
-return $.k.a_(new A.cM(s))},
-cY(a){var s
-if(t.Q.b(a)){s=a.gL()
-if(s!=null)return s}return B.n},
-dF(a,b){var s,r
+return $.k.X(new A.cA(s))},
+cM(a){var s
+if(t.Q.b(a)){s=a.gH()
+if(s!=null)return s}return B.m},
+du(a,b){var s,r
for(;s=a.a,(s&4)!==0;)a=a.c
-if(a===b){b.O(new A.C(!0,a,null,"Cannot complete a future with itself"),A.dy())
+if(a===b){b.K(new A.A(!0,a,null,"Cannot complete a future with itself"),A.dm())
return}s|=b.a&1
a.a=s
-if((s&24)!==0){r=b.G()
-b.E(a)
-A.ab(b,r)}else{r=b.c
-b.ad(a)
-a.X(r)}},
-eW(a,b){var s,r,q={},p=q.a=a
+if((s&24)!==0){r=b.C()
+b.B(a)
+A.a9(b,r)}else{r=b.c
+b.aa(a)
+a.T(r)}},
+eI(a,b){var s,r,q={},p=q.a=a
for(;s=p.a,(s&4)!==0;){p=p.c
-q.a=p}if(p===b){b.O(new A.C(!0,p,null,"Cannot complete a future with itself"),A.dy())
+q.a=p}if(p===b){b.K(new A.A(!0,p,null,"Cannot complete a future with itself"),A.dm())
return}if((s&24)===0){r=b.c
-b.ad(p)
-q.a.X(r)
-return}if((s&16)===0&&b.c==null){b.E(p)
+b.aa(p)
+q.a.T(r)
+return}if((s&16)===0&&b.c==null){b.B(p)
return}b.a^=2
-A.ad(null,null,b.b,new A.cm(q,b))},
-ab(a,b){var s,r,q,p,o,n,m,l,k,j,i,h,g={},f=g.a=a
+A.ac(null,null,b.b,new A.cb(q,b))},
+a9(a,b){var s,r,q,p,o,n,m,l,k,j,i,h,g={},f=g.a=a
for(;!0;){s={}
r=f.a
q=(r&16)===0
p=!q
if(b==null){if(p&&(r&1)===0){f=f.c
-A.bK(f.a,f.b)}return}s.a=b
+A.bB(f.a,f.b)}return}s.a=b
o=b.a
for(f=b;o!=null;f=o,o=n){f.a=null
-A.ab(g.a,f)
+A.a9(g.a,f)
s.a=o
n=o.a}r=g.a
m=r.c
@@ -1336,116 +1327,116 @@ l=(l&1)!==0||(l&15)===8}else l=!0
if(l){k=f.b.b
if(p){r=r.b===k
r=!(r||r)}else r=!1
-if(r){A.bK(m.a,m.b)
+if(r){A.bB(m.a,m.b)
return}j=$.k
if(j!==k)$.k=k
else j=null
f=f.c
-if((f&15)===8)new A.ct(s,g,p).$0()
-else if(q){if((f&1)!==0)new A.cs(s,m).$0()}else if((f&2)!==0)new A.cr(g,s).$0()
+if((f&15)===8)new A.ci(s,g,p).$0()
+else if(q){if((f&1)!==0)new A.ch(s,m).$0()}else if((f&2)!==0)new A.cg(g,s).$0()
if(j!=null)$.k=j
f=s.c
if(f instanceof A.p){r=s.a.$ti
-r=r.i("a2<2>").b(f)||!r.y[1].b(f)}else r=!1
+r=r.i("a_<2>").b(f)||!r.y[1].b(f)}else r=!1
if(r){i=s.a.b
if((f.a&24)!==0){h=i.c
i.c=null
-b=i.H(h)
+b=i.D(h)
i.a=f.a&30|i.a&1
i.c=f.c
g.a=f
-continue}else A.dF(f,i)
+continue}else A.du(f,i)
return}}i=s.a.b
h=i.c
i.c=null
-b=i.H(h)
+b=i.D(h)
f=s.b
r=s.c
if(!f){i.a=8
i.c=r}else{i.a=i.a&1|16
i.c=r}g.a=i
f=i}},
-fL(a,b){if(t.C.b(a))return b.a_(a)
+fw(a,b){if(t.C.b(a))return b.X(a)
if(t.v.b(a))return a
-throw A.b(A.dm(a,"onError",u.c))},
-fH(){var s,r
-for(s=$.ac;s!=null;s=$.ac){$.aY=null
+throw A.b(A.dc(a,"onError",u.c))},
+ft(){var s,r
+for(s=$.ab;s!=null;s=$.ab){$.aT=null
r=s.b
-$.ac=r
-if(r==null)$.aX=null
+$.ab=r
+if(r==null)$.aS=null
s.a.$0()}},
-fO(){$.d7=!0
-try{A.fH()}finally{$.aY=null
-$.d7=!1
-if($.ac!=null)$.dk().$1(A.e4())}},
-e2(a){var s=new A.bv(a),r=$.aX
-if(r==null){$.ac=$.aX=s
-if(!$.d7)$.dk().$1(A.e4())}else $.aX=r.b=s},
-fN(a){var s,r,q,p=$.ac
-if(p==null){A.e2(a)
-$.aY=$.aX
-return}s=new A.bv(a)
-r=$.aY
+fz(){$.cW=!0
+try{A.ft()}finally{$.aT=null
+$.cW=!1
+if($.ab!=null)$.d9().$1(A.dU())}},
+dS(a){var s=new A.bo(a),r=$.aS
+if(r==null){$.ab=$.aS=s
+if(!$.cW)$.d9().$1(A.dU())}else $.aS=r.b=s},
+fy(a){var s,r,q,p=$.ab
+if(p==null){A.dS(a)
+$.aT=$.aS
+return}s=new A.bo(a)
+r=$.aT
if(r==null){s.b=p
-$.ac=$.aY=s}else{q=r.b
+$.ab=$.aT=s}else{q=r.b
s.b=q
-$.aY=r.b=s
-if(q==null)$.aX=s}},
-dh(a){var s=null,r=$.k
-if(B.a===r){A.ad(s,s,B.a,a)
-return}A.ad(s,s,r,r.ah(a))},
-ho(a){A.d8(a,"stream",t.K)
-return new A.bF()},
-bL(a){return},
-eV(a,b,c,d,e){var s=$.k,r=e?1:0,q=c!=null?32:0
-A.dD(s,c)
-return new A.a8(a,b,s,r|q)},
-dD(a,b){if(b==null)b=A.fY()
-if(t.h.b(b))return a.a_(b)
+$.aT=r.b=s
+if(q==null)$.aS=s}},
+d6(a){var s=null,r=$.k
+if(B.a===r){A.ac(s,s,B.a,a)
+return}A.ac(s,s,r,r.ae(a))},
+ha(a){A.cX(a,"stream",t.K)
+return new A.bw()},
+bC(a){return},
+eH(a,b,c,d,e){var s=$.k,r=e?1:0,q=c!=null?32:0
+A.ds(s,c)
+return new A.a6(a,b,s,r|q)},
+ds(a,b){if(b==null)b=A.fJ()
+if(t.f.b(b))return a.X(b)
if(t.u.b(b))return b
-throw A.b(A.b1("handleError callback must take either an Object (the error), or both an Object (the error) and a StackTrace.",null))},
-fI(a,b){A.bK(a,b)},
-bK(a,b){A.fN(new A.cL(a,b))},
-e_(a,b,c,d){var s,r=$.k
+throw A.b(A.aW("handleError callback must take either an Object (the error), or both an Object (the error) and a StackTrace.",null))},
+fu(a,b){A.bB(a,b)},
+bB(a,b){A.fy(new A.cz(a,b))},
+dP(a,b,c,d){var s,r=$.k
if(r===c)return d.$0()
$.k=c
s=r
try{r=d.$0()
return r}finally{$.k=s}},
-e0(a,b,c,d,e){var s,r=$.k
+dQ(a,b,c,d,e){var s,r=$.k
if(r===c)return d.$1(e)
$.k=c
s=r
try{r=d.$1(e)
return r}finally{$.k=s}},
-fM(a,b,c,d,e,f){var s,r=$.k
+fx(a,b,c,d,e,f){var s,r=$.k
if(r===c)return d.$2(e,f)
$.k=c
s=r
try{r=d.$2(e,f)
return r}finally{$.k=s}},
-ad(a,b,c,d){if(B.a!==c)d=c.ah(d)
-A.e2(d)},
-cf:function cf(a){this.a=a},
-ce:function ce(a,b,c){this.a=a
+ac(a,b,c,d){if(B.a!==c)d=c.ae(d)
+A.dS(d)},
+c4:function c4(a){this.a=a},
+c3:function c3(a,b,c){this.a=a
this.b=b
this.c=c},
-cg:function cg(a){this.a=a},
-ch:function ch(a){this.a=a},
-cB:function cB(){},
-cC:function cC(a,b){this.a=a
+c5:function c5(a){this.a=a},
+c6:function c6(a){this.a=a},
+cq:function cq(){},
+cr:function cr(a,b){this.a=a
this.b=b},
-bu:function bu(a,b){this.a=a
+bn:function bn(a,b){this.a=a
this.b=!1
this.$ti=b},
-cH:function cH(a){this.a=a},
-cI:function cI(a){this.a=a},
-cM:function cM(a){this.a=a},
-V:function V(a,b){this.a=a
+cw:function cw(a){this.a=a},
+cx:function cx(a){this.a=a},
+cA:function cA(a){this.a=a},
+S:function S(a,b){this.a=a
this.b=b},
-aF:function aF(a,b){this.a=a
+aA:function aA(a,b){this.a=a
this.$ti=b},
-aG:function aG(a,b,c,d){var _=this
+aB:function aB(a,b,c,d){var _=this
_.ay=0
_.CW=_.ch=null
_.w=a
@@ -1453,16 +1444,16 @@ _.a=b
_.d=c
_.e=d
_.r=null},
-a7:function a7(){},
-aS:function aS(a,b,c){var _=this
+a5:function a5(){},
+aN:function aN(a,b,c){var _=this
_.a=a
_.b=b
_.c=0
_.e=_.d=null
_.$ti=c},
-cA:function cA(a,b){this.a=a
+cp:function cp(a,b){this.a=a
this.b=b},
-aa:function aa(a,b,c,d,e){var _=this
+a8:function a8(a,b,c,d,e){var _=this
_.a=null
_.b=a
_.c=b
@@ -1474,410 +1465,388 @@ _.a=0
_.b=a
_.c=null
_.$ti=b},
-cj:function cj(a,b){this.a=a
+c8:function c8(a,b){this.a=a
this.b=b},
-cq:function cq(a,b){this.a=a
+cf:function cf(a,b){this.a=a
this.b=b},
-cn:function cn(a){this.a=a},
-co:function co(a){this.a=a},
-cp:function cp(a,b,c){this.a=a
+cc:function cc(a){this.a=a},
+cd:function cd(a){this.a=a},
+ce:function ce(a,b,c){this.a=a
this.b=b
this.c=c},
-cm:function cm(a,b){this.a=a
+cb:function cb(a,b){this.a=a
this.b=b},
-cl:function cl(a,b){this.a=a
+ca:function ca(a,b){this.a=a
this.b=b},
-ck:function ck(a,b,c){this.a=a
+c9:function c9(a,b,c){this.a=a
this.b=b
this.c=c},
-ct:function ct(a,b,c){this.a=a
+ci:function ci(a,b,c){this.a=a
this.b=b
this.c=c},
-cu:function cu(a){this.a=a},
-cs:function cs(a,b){this.a=a
+cj:function cj(a){this.a=a},
+ch:function ch(a,b){this.a=a
this.b=b},
-cr:function cr(a,b){this.a=a
+cg:function cg(a,b){this.a=a
this.b=b},
-bv:function bv(a){this.a=a
+bo:function bo(a){this.a=a
this.b=null},
-a5:function a5(){},
-c3:function c3(a,b){this.a=a
+a3:function a3(){},
+bT:function bT(a,b){this.a=a
this.b=b},
-c4:function c4(a,b){this.a=a
+bU:function bU(a,b){this.a=a
this.b=b},
-bE:function bE(){},
-cz:function cz(a){this.a=a},
-bw:function bw(){},
-a6:function a6(a,b,c,d){var _=this
+bv:function bv(){},
+co:function co(a){this.a=a},
+bp:function bp(){},
+a4:function a4(a,b,c,d){var _=this
_.a=null
_.b=0
_.d=a
_.e=b
_.f=c
_.$ti=d},
-Q:function Q(a,b){this.a=a
+X:function X(a,b){this.a=a
this.$ti=b},
-a8:function a8(a,b,c,d){var _=this
+a6:function a6(a,b,c,d){var _=this
_.w=a
_.a=b
_.d=c
_.e=d
_.r=null},
-Y:function Y(){},
-aR:function aR(){},
-by:function by(){},
-a9:function a9(a){this.b=a
+W:function W(){},
+aM:function aM(){},
+br:function br(){},
+a7:function a7(a){this.b=a
this.a=null},
-aP:function aP(){this.a=0
+aK:function aK(){this.a=0
this.c=this.b=null},
-cw:function cw(a,b){this.a=a
+cl:function cl(a,b){this.a=a
this.b=b},
-aH:function aH(a){this.a=1
+aC:function aC(a){this.a=1
this.b=a
this.c=null},
-bF:function bF(){},
-cG:function cG(){},
-cL:function cL(a,b){this.a=a
+bw:function bw(){},
+cv:function cv(){},
+cz:function cz(a,b){this.a=a
this.b=b},
-cx:function cx(){},
-cy:function cy(a,b){this.a=a
+cm:function cm(){},
+cn:function cn(a,b){this.a=a
this.b=b},
-dG(a,b){var s=a[b]
+dv(a,b){var s=a[b]
return s===a?null:s},
-dH(a,b,c){if(c==null)a[b]=a
+dw(a,b,c){if(c==null)a[b]=a
else a[b]=c},
-eX(){var s=Object.create(null)
-A.dH(s,"",s)
+eJ(){var s=Object.create(null)
+A.dw(s,"",s)
delete s[""]
return s},
-eH(a){var s,r={}
-if(A.dd(a))return"{...}"
-s=new A.br("")
-try{$.x.push(a)
+eu(a){var s,r={}
+if(A.d2(a))return"{...}"
+s=new A.bk("")
+try{$.w.push(a)
s.a+="{"
r.a=!0
-a.I(0,new A.bZ(r,s))
-s.a+="}"}finally{if(0>=$.x.length)return A.B($.x,-1)
-$.x.pop()}r=s.a
+a.af(0,new A.bP(r,s))
+s.a+="}"}finally{if(0>=$.w.length)return A.C($.w,-1)
+$.w.pop()}r=s.a
return r.charCodeAt(0)==0?r:r},
-aI:function aI(){},
-aK:function aK(a){var _=this
+aD:function aD(){},
+aF:function aF(a){var _=this
_.a=0
_.e=_.d=_.c=_.b=null
_.$ti=a},
-aJ:function aJ(a,b){this.a=a
+aE:function aE(a,b){this.a=a
this.$ti=b},
-bB:function bB(a,b,c){var _=this
+bu:function bu(a,b,c){var _=this
_.a=a
_.b=b
_.c=0
_.d=null
_.$ti=c},
j:function j(){},
-z:function z(){},
-bZ:function bZ(a,b){this.a=a
+a1:function a1(){},
+bP:function bP(a,b){this.a=a
this.b=b},
-fJ(a,b){var s,r,q,p=null
-try{p=JSON.parse(a)}catch(r){s=A.N(r)
-q=String(s)
-throw A.b(new A.bS(q))}q=A.cJ(p)
-return q},
-cJ(a){var s
-if(a==null)return null
-if(typeof a!="object")return a
-if(!Array.isArray(a))return new A.bC(a,Object.create(null))
-for(s=0;s4294967295)A.bM(A.eN(a,0,4294967295,"length",null))
-s=A.aZ(new Array(a),c.i("v<0>"))
+et(a,b,c){var s,r
+if(a>4294967295)A.bE(A.ez(a,0,4294967295,"length",null))
+s=A.bD(new Array(a),c.i("u<0>"))
s.$flags=1
r=s
return r},
-dA(a,b,c){var s=J.es(b)
+dp(a,b,c){var s=J.ef(b)
if(!s.l())return a
if(c.length===0){do a+=A.o(s.gm())
while(s.l())}else{a+=A.o(s.gm())
for(;s.l();)a=a+c+A.o(s.gm())}return a},
-dy(){return A.L(new Error())},
-bP(a){if(typeof a=="number"||A.cK(a)||a==null)return J.b0(a)
+dm(){return A.J(new Error())},
+bI(a){if(typeof a=="number"||A.cy(a)||a==null)return J.aV(a)
if(typeof a=="string")return JSON.stringify(a)
-return A.eM(a)},
-eD(a,b){A.d8(a,"error",t.K)
-A.d8(b,"stackTrace",t.l)
-A.eC(a,b)},
-b3(a){return new A.b2(a)},
-b1(a,b){return new A.C(!1,null,b,a)},
-dm(a,b,c){return new A.C(!0,a,b,c)},
-eN(a,b,c,d,e){return new A.aB(b,c,!0,a,d,"Invalid value")},
-dt(a,b,c,d){return new A.b7(b,!0,a,d,"Index out of range")},
-eP(a){return new A.aE(a)},
-dC(a){return new A.bs(a)},
-dz(a){return new A.G(a)},
-ai(a){return new A.b5(a)},
-eE(a,b,c){var s,r
-if(A.dd(a)){if(b==="("&&c===")")return"(...)"
-return b+"..."+c}s=A.aZ([],t.s)
-$.x.push(a)
-try{A.fF(a,s)}finally{if(0>=$.x.length)return A.B($.x,-1)
-$.x.pop()}r=A.dA(b,s,", ")+c
+return A.ey(a)},
+ep(a,b){A.cX(a,"error",t.K)
+A.cX(b,"stackTrace",t.l)
+A.eo(a,b)},
+aZ(a){return new A.aY(a)},
+aW(a,b){return new A.A(!1,null,b,a)},
+dc(a,b,c){return new A.A(!0,a,b,c)},
+ez(a,b,c,d,e){return new A.aw(b,c,!0,a,d,"Invalid value")},
+eq(a,b,c,d){return new A.b1(b,!0,a,d,"Index out of range")},
+eB(a){return new A.az(a)},
+dr(a){return new A.bl(a)},
+dn(a){return new A.E(a)},
+bH(a){return new A.b0(a)},
+er(a,b,c){var s,r
+if(A.d2(a)){if(b==="("&&c===")")return"(...)"
+return b+"..."+c}s=A.bD([],t.s)
+$.w.push(a)
+try{A.fr(a,s)}finally{if(0>=$.w.length)return A.C($.w,-1)
+$.w.pop()}r=A.dp(b,s,", ")+c
return r.charCodeAt(0)==0?r:r},
-du(a,b,c){var s,r
-if(A.dd(a))return b+"..."+c
-s=new A.br(b)
-$.x.push(a)
+di(a,b,c){var s,r
+if(A.d2(a))return b+"..."+c
+s=new A.bk(b)
+$.w.push(a)
try{r=s
-r.a=A.dA(r.a,a,", ")}finally{if(0>=$.x.length)return A.B($.x,-1)
-$.x.pop()}s.a+=c
+r.a=A.dp(r.a,a,", ")}finally{if(0>=$.w.length)return A.C($.w,-1)
+$.w.pop()}s.a+=c
r=s.a
return r.charCodeAt(0)==0?r:r},
-fF(a,b){var s,r,q,p,o,n,m,l=a.gp(a),k=0,j=0
+fr(a,b){var s,r,q,p,o,n,m,l=a.gq(a),k=0,j=0
while(!0){if(!(k<80||j<3))break
if(!l.l())return
s=A.o(l.gm())
b.push(s)
k+=s.length+2;++j}if(!l.l()){if(j<=5)return
-if(0>=b.length)return A.B(b,-1)
+if(0>=b.length)return A.C(b,-1)
r=b.pop()
-if(0>=b.length)return A.B(b,-1)
+if(0>=b.length)return A.C(b,-1)
q=b.pop()}else{p=l.gm();++j
if(!l.l()){if(j<=4){b.push(A.o(p))
return}r=A.o(p)
-if(0>=b.length)return A.B(b,-1)
+if(0>=b.length)return A.C(b,-1)
q=b.pop()
k+=r.length+2}else{o=l.gm();++j
for(;l.l();p=o,o=n){n=l.gm();++j
if(j>100){while(!0){if(!(k>75&&j>3))break
-if(0>=b.length)return A.B(b,-1)
+if(0>=b.length)return A.C(b,-1)
k-=b.pop().length+2;--j}b.push("...")
return}}q=A.o(p)
r=A.o(o)
k+=r.length+q.length+4}}if(j>b.length+2){k+=5
m="..."}else m=null
while(!0){if(!(k>80&&b.length>3))break
-if(0>=b.length)return A.B(b,-1)
+if(0>=b.length)return A.C(b,-1)
k-=b.pop().length+2
if(m==null){k+=5
m="..."}}if(m!=null)b.push(m)
b.push(q)
b.push(r)},
-ed(a){A.he(a)},
+e0(a){A.h0(a)},
l:function l(){},
-b2:function b2(a){this.a=a},
-H:function H(){},
-C:function C(a,b,c,d){var _=this
+aY:function aY(a){this.a=a},
+F:function F(){},
+A:function A(a,b,c,d){var _=this
_.a=a
_.b=b
_.c=c
_.d=d},
-aB:function aB(a,b,c,d,e,f){var _=this
+aw:function aw(a,b,c,d,e,f){var _=this
_.e=a
_.f=b
_.a=c
_.b=d
_.c=e
_.d=f},
-b7:function b7(a,b,c,d,e){var _=this
+b1:function b1(a,b,c,d,e){var _=this
_.f=a
_.a=b
_.b=c
_.c=d
_.d=e},
-aE:function aE(a){this.a=a},
-bs:function bs(a){this.a=a},
-G:function G(a){this.a=a},
-b5:function b5(a){this.a=a},
-aC:function aC(){},
-ci:function ci(a){this.a=a},
-bS:function bS(a){this.a=a},
+az:function az(a){this.a=a},
+bl:function bl(a){this.a=a},
+E:function E(a){this.a=a},
+b0:function b0(a){this.a=a},
+ax:function ax(){},
+c7:function c7(a){this.a=a},
c:function c(){},
q:function q(){},
d:function d(){},
-bG:function bG(){},
-br:function br(a){this.a=a},
-eJ(a){return new A.c0(a)},
-c0:function c0(a){this.a=a},
-fm(a,b,c){if(c>=1)return a.$1(b)
+bx:function bx(){},
+bk:function bk(a){this.a=a},
+f8(a,b,c){if(c>=1)return a.$1(b)
return a.$0()},
-dZ(a){return a==null||A.cK(a)||typeof a=="number"||typeof a=="string"||t.U.b(a)||t.E.b(a)||t.e.b(a)||t.O.b(a)||t.D.b(a)||t.k.b(a)||t.w.b(a)||t.B.b(a)||t.q.b(a)||t.J.b(a)||t.Y.b(a)},
-eb(a){if(A.dZ(a))return a
-return new A.cU(new A.aK(t.F)).$1(a)},
-cU:function cU(a){this.a=a},
-h_(a,b,c,d,e){var s,r=e.i("aS<0>"),q=new A.aS(null,null,r),p=new A.cN(q,c,d)
-if(typeof p=="function")A.bM(A.b1("Attempting to rewrap a JS function.",null))
-s=function(f,g){return function(h){return f(g,h,arguments.length)}}(A.fm,p)
-s[$.dj()]=p
+dO(a){return a==null||A.cy(a)||typeof a=="number"||typeof a=="string"||t.U.b(a)||t.E.b(a)||t.e.b(a)||t.O.b(a)||t.D.b(a)||t.k.b(a)||t.w.b(a)||t.B.b(a)||t.q.b(a)||t.J.b(a)||t.Y.b(a)},
+fX(a){if(A.dO(a))return a
+return new A.cI(new A.aF(t.F)).$1(a)},
+cI:function cI(a){this.a=a},
+fL(a,b,c,d,e){var s,r=e.i("aN<0>"),q=new A.aN(null,null,r),p=new A.cB(q,c,d)
+if(typeof p=="function")A.bE(A.aW("Attempting to rewrap a JS function.",null))
+s=function(f,g){return function(h){return f(g,h,arguments.length)}}(A.f8,p)
+s[$.d8()]=p
a[b]=s
-return new A.aF(q,r.i("aF<1>"))},
-eQ(){var s=new A.cc()
-s.am()
+return new A.aA(q,r.i("aA<1>"))},
+eC(){var s=new A.c1()
+s.ak()
return s},
-de(){var s=0,r=A.fG(t.n),q,p
-var $async$de=A.fU(function(a,b){if(a===1)return A.fi(b,r)
-while(true)switch(s){case 0:q=A.eQ()
+d3(){var s=0,r=A.fs(t.n),q,p
+var $async$d3=A.fF(function(a,b){if(a===1)return A.f4(b,r)
+while(true)switch(s){case 0:q=A.eC()
p=q.a
-p===$&&A.ef()
-new A.Q(p,A.S(p).i("Q<1>")).aO(new A.cV(q))
-return A.fj(null,r)}})
-return A.fk($async$de,r)},
-cN:function cN(a,b,c){this.a=a
+p===$&&A.e2()
+new A.X(p,A.aa(p).i("X<1>")).aJ(new A.cJ(q))
+return A.f5(null,r)}})
+return A.f6($async$d3,r)},
+cB:function cB(a,b,c){this.a=a
this.b=b
this.c=c},
-cc:function cc(){this.a=$},
-cd:function cd(a){this.a=a},
-cV:function cV(a){this.a=a},
-he(a){if(typeof dartPrint=="function"){dartPrint(a)
+c1:function c1(){this.a=$},
+c2:function c2(a){this.a=a},
+cJ:function cJ(a){this.a=a},
+h0(a){if(typeof dartPrint=="function"){dartPrint(a)
return}if(typeof console=="object"&&typeof console.log!="undefined"){console.log(a)
return}if(typeof print=="function"){print(a)
return}throw"Unable to print message: "+String(a)},
-hh(a){A.di(new A.as("Field '"+a+"' has been assigned during initialization."),new Error())},
-ef(){A.di(new A.as("Field '' has not been initialized."),new Error())},
-eF(a,b,c,d,e,f){var s
+h3(a){A.d7(new A.ap("Field '"+a+"' has been assigned during initialization."),new Error())},
+e2(){A.d7(new A.ap("Field '' has not been initialized."),new Error())},
+es(a,b,c,d,e,f){var s
if(c==null)return a[b]()
else{s=a[b](c)
return s}}},B={}
var w=[A,J,B]
var $={}
-A.d0.prototype={}
-J.b8.prototype={
-D(a,b){return a===b},
-gq(a){return A.aA(a)},
-h(a){return"Instance of '"+A.c1(a)+"'"},
-gk(a){return A.a_(A.d6(this))}}
-J.b9.prototype={
+A.cP.prototype={}
+J.b2.prototype={
+gn(a){return A.av(a)},
+h(a){return"Instance of '"+A.bR(a)+"'"},
+gj(a){return A.B(A.cV(this))}}
+J.b3.prototype={
h(a){return String(a)},
-gq(a){return a?519018:218159},
-gk(a){return A.a_(t.y)},
+gn(a){return a?519018:218159},
+gj(a){return A.B(t.y)},
$if:1}
-J.an.prototype={
-D(a,b){return null==b},
+J.ak.prototype={
h(a){return"null"},
-gq(a){return 0},
+gn(a){return 0},
+gj(a){return A.B(t.P)},
$if:1,
$iq:1}
-J.aq.prototype={$in:1}
-J.P.prototype={
-gq(a){return 0},
+J.an.prototype={$in:1}
+J.M.prototype={
+gn(a){return 0},
+gj(a){return B.A},
h(a){return String(a)}}
-J.bp.prototype={}
-J.aD.prototype={}
-J.O.prototype={
-h(a){var s=a[$.dj()]
-if(s==null)return this.ak(a)
-return"JavaScript function for "+J.b0(s)}}
-J.ap.prototype={
-gq(a){return 0},
+J.bi.prototype={}
+J.ay.prototype={}
+J.L.prototype={
+h(a){var s=a[$.d8()]
+if(s==null)return this.ai(a)
+return"JavaScript function for "+J.aV(s)}}
+J.am.prototype={
+gn(a){return 0},
h(a){return String(a)}}
-J.ar.prototype={
-gq(a){return 0},
+J.ao.prototype={
+gn(a){return 0},
h(a){return String(a)}}
-J.v.prototype={
-aJ(a,b){var s
-a.$flags&1&&A.hi(a,"addAll",2)
-for(s=b.gp(b);s.l();)a.push(s.gm())},
-J(a,b,c){return new A.F(a,b,A.bI(a).i("@<1>").u(c).i("F<1,2>"))},
-v(a,b){if(!(b").u(c).i("D<1,2>"))},
+E(a,b){if(!(b"))},
-gq(a){return A.aA(a)},
-gj(a){return a.length},
+h(a){return A.di(a,"[","]")},
+gq(a){return new J.aX(a,a.length,A.bz(a).i("aX<1>"))},
+gn(a){return A.av(a)},
+gk(a){return a.length},
+gj(a){return A.B(A.bz(a))},
$ie:1,
$ic:1,
$ii:1}
-J.bW.prototype={}
-J.a1.prototype={
+J.bO.prototype={}
+J.aX.prototype={
gm(){var s=this.d
return s==null?this.$ti.c.a(s):s},
l(){var s,r=this,q=r.a,p=q.length
-if(r.b!==p)throw A.b(A.hg(q))
+if(r.b!==p)throw A.b(A.h2(q))
s=r.c
if(s>=p){r.d=null
return!1}r.d=q[s]
r.c=s+1
return!0}}
-J.bb.prototype={
+J.b5.prototype={
h(a){if(a===0&&1/a<0)return"-0.0"
else return""+a},
-gq(a){var s,r,q,p,o=a|0
+gn(a){var s,r,q,p,o=a|0
if(a===o)return o&536870911
s=Math.abs(a)
r=Math.log(s)/0.6931471805599453|0
q=Math.pow(2,r)
p=s<1?s/q:q/s
return((p*9007199254740992|0)+(p*3542243181176521|0))*599197+r*1259&536870911},
-aH(a,b){var s
-if(a>0)s=this.aG(a,b)
+aE(a,b){var s
+if(a>0)s=this.aD(a,b)
else{s=b>31?31:b
s=a>>s>>>0}return s},
-aG(a,b){return b>31?0:a>>>b},
-gk(a){return A.a_(t.H)},
+aD(a,b){return b>31?0:a>>>b},
+gj(a){return A.B(t.H)},
$ih:1}
-J.am.prototype={
-gk(a){return A.a_(t.S)},
+J.aj.prototype={
+gj(a){return A.B(t.S)},
$if:1,
$ia:1}
-J.ba.prototype={
-gk(a){return A.a_(t.i)},
+J.b4.prototype={
+gj(a){return A.B(t.i)},
$if:1}
-J.ao.prototype={
+J.al.prototype={
h(a){return a},
-gq(a){var s,r,q
+gn(a){var s,r,q
for(s=a.length,r=0,q=0;q>6}r=r+((r&67108863)<<3)&536870911
r^=r>>11
return r+((r&16383)<<15)&536870911},
-gk(a){return A.a_(t.N)},
-gj(a){return a.length},
+gj(a){return A.B(t.N)},
+gk(a){return a.length},
$if:1,
-$it:1}
-A.as.prototype={
+$iV:1}
+A.ap.prototype={
h(a){return"LateInitializationError: "+this.a}}
A.e.prototype={}
-A.D.prototype={
-gp(a){var s=this
-return new A.a3(s,s.gj(s),A.S(s).i("a3"))},
-J(a,b,c){return new A.F(this,b,A.S(this).i("@").u(c).i("F<1,2>"))}}
-A.a3.prototype={
+A.N.prototype={
+gq(a){return new A.a0(this,this.gk(0),this.$ti.i("a0"))},
+F(a,b,c){return new A.D(this,b,this.$ti.i("@").u(c).i("D<1,2>"))}}
+A.a0.prototype={
gm(){var s=this.d
return s==null?this.$ti.c.a(s):s},
-l(){var s,r=this,q=r.a,p=J.e8(q),o=p.gj(q)
-if(r.b!==o)throw A.b(A.ai(q))
+l(){var s,r=this,q=r.a,p=J.dX(q),o=p.gk(q)
+if(r.b!==o)throw A.b(A.bH(q))
s=r.c
if(s>=o){r.d=null
-return!1}r.d=p.v(q,s);++r.c
+return!1}r.d=p.E(q,s);++r.c
return!0}}
-A.X.prototype={
-gp(a){var s=this.a
-return new A.be(s.gp(s),this.b,A.S(this).i("be<1,2>"))},
-gj(a){var s=this.a
-return s.gj(s)}}
-A.aj.prototype={$ie:1}
-A.be.prototype={
+A.U.prototype={
+gq(a){var s=this.a
+return new A.b7(s.gq(s),this.b,A.aa(this).i("b7<1,2>"))},
+gk(a){var s=this.a
+return s.gk(s)}}
+A.ag.prototype={$ie:1}
+A.b7.prototype={
l(){var s=this,r=s.b
if(r.l()){s.a=s.c.$1(r.gm())
return!0}s.a=null
return!1},
gm(){var s=this.a
return s==null?this.$ti.y[1].a(s):s}}
-A.F.prototype={
-gj(a){return J.cX(this.a)},
-v(a,b){return this.b.$1(J.er(this.a,b))}}
-A.al.prototype={}
-A.c6.prototype={
+A.D.prototype={
+gk(a){return J.cL(this.a)},
+E(a,b){return this.b.$1(J.ee(this.a,b))}}
+A.ai.prototype={}
+A.bW.prototype={
t(a){var s,r,q=this,p=new RegExp(q.a).exec(a)
if(p==null)return null
s=Object.create(null)
@@ -1892,212 +1861,196 @@ if(r!==-1)s.method=p[r+1]
r=q.f
if(r!==-1)s.receiver=p[r+1]
return s}}
-A.az.prototype={
+A.au.prototype={
h(a){return"Null check operator used on a null value"}}
-A.bc.prototype={
+A.b6.prototype={
h(a){var s,r=this,q="NoSuchMethodError: method not found: '",p=r.b
if(p==null)return"NoSuchMethodError: "+r.a
s=r.c
if(s==null)return q+p+"' ("+r.a+")"
return q+p+"' on '"+s+"' ("+r.a+")"}}
-A.bt.prototype={
+A.bm.prototype={
h(a){var s=this.a
return s.length===0?"Error":"Error: "+s}}
-A.c_.prototype={
+A.bQ.prototype={
h(a){return"Throw of null ('"+(this.a===null?"null":"undefined")+"' from JavaScript)"}}
-A.ak.prototype={}
-A.aQ.prototype={
+A.ah.prototype={}
+A.aL.prototype={
h(a){var s,r=this.b
if(r!=null)return r
r=this.a
s=r!==null&&typeof r==="object"?r.stack:null
return this.b=s==null?"":s},
-$iA:1}
-A.W.prototype={
+$iy:1}
+A.T.prototype={
h(a){var s=this.constructor,r=s==null?null:s.name
-return"Closure '"+A.eg(r==null?"unknown":r)+"'"},
-gb_(){return this},
+return"Closure '"+A.e3(r==null?"unknown":r)+"'"},
+gj(a){var s=A.cZ(this)
+return A.B(s==null?A.Z(this):s)},
+gaV(){return this},
$C:"$1",
$R:1,
$D:null}
-A.bN.prototype={$C:"$0",$R:0}
-A.bO.prototype={$C:"$2",$R:2}
-A.c5.prototype={}
-A.c2.prototype={
+A.bF.prototype={$C:"$0",$R:0}
+A.bG.prototype={$C:"$2",$R:2}
+A.bV.prototype={}
+A.bS.prototype={
h(a){var s=this.$static_name
if(s==null)return"Closure of unknown static method"
-return"Closure '"+A.eg(s)+"'"}}
-A.ah.prototype={
-D(a,b){if(b==null)return!1
-if(this===b)return!0
-if(!(b instanceof A.ah))return!1
-return this.$_target===b.$_target&&this.a===b.a},
-gq(a){return(A.dg(this.a)^A.aA(this.$_target))>>>0},
-h(a){return"Closure '"+this.$_name+"' of "+("Instance of '"+A.c1(this.a)+"'")}}
-A.bx.prototype={
-h(a){return"Reading static variable '"+this.a+"' during its initialization"}}
+return"Closure '"+A.e3(s)+"'"}}
+A.b_.prototype={
+gn(a){return(A.d5(this.a)^A.av(this.$_target))>>>0},
+h(a){return"Closure '"+this.$_name+"' of "+("Instance of '"+A.bR(this.a)+"'")}}
A.bq.prototype={
+h(a){return"Reading static variable '"+this.a+"' during its initialization"}}
+A.bj.prototype={
h(a){return"RuntimeError: "+this.a}}
-A.at.prototype={
-gj(a){return this.a.a},
-gp(a){var s=this.a,r=new A.bd(s,s.r)
-r.c=s.e
-return r}}
-A.bd.prototype={
-gm(){return this.d},
-l(){var s,r=this,q=r.a
-if(r.b!==q.r)throw A.b(A.ai(q))
-s=r.c
-if(s==null){r.d=null
-return!1}else{r.d=s.a
-r.c=s.c
-return!0}}}
-A.cQ.prototype={
+A.cE.prototype={
$1(a){return this.a(a)},
$S:6}
-A.cR.prototype={
+A.cF.prototype={
$2(a,b){return this.a(a,b)},
$S:7}
-A.cS.prototype={
+A.cG.prototype={
$1(a){return this.a(a)},
$S:8}
-A.bf.prototype={
-gk(a){return B.v},
+A.b8.prototype={
+gj(a){return B.t},
$if:1,
-$icZ:1}
-A.ax.prototype={}
-A.bg.prototype={
-gk(a){return B.w},
+$icN:1}
+A.as.prototype={}
+A.b9.prototype={
+gj(a){return B.u},
$if:1,
-$id_:1}
-A.a4.prototype={
-gj(a){return a.length},
-$iw:1}
-A.av.prototype={
-n(a,b){A.Z(b,a,a.length)
+$icO:1}
+A.a2.prototype={
+gk(a){return a.length},
+$iv:1}
+A.aq.prototype={
+p(a,b){A.Y(b,a,a.length)
return a[b]},
$ie:1,
$ic:1,
$ii:1}
-A.aw.prototype={$ie:1,$ic:1,$ii:1}
-A.bh.prototype={
-gk(a){return B.x},
+A.ar.prototype={$ie:1,$ic:1,$ii:1}
+A.ba.prototype={
+gj(a){return B.v},
$if:1,
-$ibQ:1}
-A.bi.prototype={
-gk(a){return B.y},
+$ibJ:1}
+A.bb.prototype={
+gj(a){return B.w},
$if:1,
-$ibR:1}
-A.bj.prototype={
-gk(a){return B.z},
-n(a,b){A.Z(b,a,a.length)
+$ibK:1}
+A.bc.prototype={
+gj(a){return B.x},
+p(a,b){A.Y(b,a,a.length)
return a[b]},
$if:1,
-$ibT:1}
-A.bk.prototype={
-gk(a){return B.A},
-n(a,b){A.Z(b,a,a.length)
+$ibL:1}
+A.bd.prototype={
+gj(a){return B.y},
+p(a,b){A.Y(b,a,a.length)
return a[b]},
$if:1,
-$ibU:1}
-A.bl.prototype={
-gk(a){return B.B},
-n(a,b){A.Z(b,a,a.length)
+$ibM:1}
+A.be.prototype={
+gj(a){return B.z},
+p(a,b){A.Y(b,a,a.length)
return a[b]},
$if:1,
-$ibV:1}
-A.bm.prototype={
-gk(a){return B.C},
-n(a,b){A.Z(b,a,a.length)
+$ibN:1}
+A.bf.prototype={
+gj(a){return B.B},
+p(a,b){A.Y(b,a,a.length)
return a[b]},
$if:1,
-$ic8:1}
-A.bn.prototype={
-gk(a){return B.D},
-n(a,b){A.Z(b,a,a.length)
+$ibY:1}
+A.bg.prototype={
+gj(a){return B.C},
+p(a,b){A.Y(b,a,a.length)
return a[b]},
$if:1,
-$ic9:1}
-A.ay.prototype={
-gk(a){return B.E},
-gj(a){return a.length},
-n(a,b){A.Z(b,a,a.length)
+$ibZ:1}
+A.at.prototype={
+gj(a){return B.D},
+gk(a){return a.length},
+p(a,b){A.Y(b,a,a.length)
return a[b]},
$if:1,
-$ica:1}
-A.bo.prototype={
-gk(a){return B.F},
-gj(a){return a.length},
-n(a,b){A.Z(b,a,a.length)
+$ic_:1}
+A.bh.prototype={
+gj(a){return B.E},
+gk(a){return a.length},
+p(a,b){A.Y(b,a,a.length)
return a[b]},
$if:1,
-$icb:1}
-A.aL.prototype={}
-A.aM.prototype={}
-A.aN.prototype={}
-A.aO.prototype={}
-A.y.prototype={
-i(a){return A.cE(v.typeUniverse,this,a)},
-u(a){return A.fd(v.typeUniverse,this,a)}}
-A.bA.prototype={}
-A.cD.prototype={
-h(a){return A.u(this.a,null)}}
-A.bz.prototype={
+$ic0:1}
+A.aG.prototype={}
+A.aH.prototype={}
+A.aI.prototype={}
+A.aJ.prototype={}
+A.x.prototype={
+i(a){return A.ct(v.typeUniverse,this,a)},
+u(a){return A.f_(v.typeUniverse,this,a)}}
+A.bt.prototype={}
+A.cs.prototype={
+h(a){return A.t(this.a,null)}}
+A.bs.prototype={
h(a){return this.a}}
-A.aT.prototype={$iH:1}
-A.cf.prototype={
+A.aO.prototype={$iF:1}
+A.c4.prototype={
$1(a){var s=this.a,r=s.a
s.a=null
r.$0()},
$S:2}
-A.ce.prototype={
+A.c3.prototype={
$1(a){var s,r
this.a.a=a
s=this.b
r=this.c
s.firstChild?s.removeChild(r):s.appendChild(r)},
$S:9}
-A.cg.prototype={
+A.c5.prototype={
$0(){this.a.$0()},
$S:3}
-A.ch.prototype={
+A.c6.prototype={
$0(){this.a.$0()},
$S:3}
-A.cB.prototype={
-an(a,b){if(self.setTimeout!=null)self.setTimeout(A.cO(new A.cC(this,b),0),a)
-else throw A.b(A.eP("`setTimeout()` not found."))}}
-A.cC.prototype={
+A.cq.prototype={
+al(a,b){if(self.setTimeout!=null)self.setTimeout(A.cC(new A.cr(this,b),0),a)
+else throw A.b(A.eB("`setTimeout()` not found."))}}
+A.cr.prototype={
$0(){this.b.$0()},
$S:0}
-A.bu.prototype={}
-A.cH.prototype={
+A.bn.prototype={}
+A.cw.prototype={
$1(a){return this.a.$2(0,a)},
$S:4}
-A.cI.prototype={
-$2(a,b){this.a.$2(1,new A.ak(a,b))},
+A.cx.prototype={
+$2(a,b){this.a.$2(1,new A.ah(a,b))},
$S:10}
-A.cM.prototype={
+A.cA.prototype={
$2(a,b){this.a(a,b)},
$S:11}
-A.V.prototype={
+A.S.prototype={
h(a){return A.o(this.a)},
$il:1,
-gL(){return this.b}}
-A.aF.prototype={}
-A.aG.prototype={
-V(){},
-W(){}}
-A.a7.prototype={
-gU(){return this.c<4},
-ae(a,b,c,d){var s,r,q,p,o,n=this
-if((n.c&4)!==0){s=new A.aH($.k)
-A.dh(s.gaA())
+gH(){return this.b}}
+A.aA.prototype={}
+A.aB.prototype={
+R(){},
+S(){}}
+A.a5.prototype={
+gP(){return this.c<4},
+ab(a,b,c,d){var s,r,q,p,o,n=this
+if((n.c&4)!==0){s=new A.aC($.k)
+A.d6(s.gaw())
if(c!=null)s.c=c
return s}s=$.k
r=d?1:0
q=b!=null?32:0
-A.dD(s,b)
-p=new A.aG(n,a,s,r|q)
+A.ds(s,b)
+p=new A.aB(n,a,s,r|q)
p.CW=p
p.ch=p
p.ay=n.c&1
@@ -2107,14 +2060,14 @@ p.ch=null
p.CW=o
if(o==null)n.d=p
else o.ch=p
-if(n.d===p)A.bL(n.a)
+if(n.d===p)A.bC(n.a)
return p},
-ab(a){},
-ac(a){},
-M(){if((this.c&4)!==0)return new A.G("Cannot add new events after calling close")
-return new A.G("Cannot add new events while doing an addStream")},
-aw(a){var s,r,q,p,o=this,n=o.c
-if((n&2)!==0)throw A.b(A.dz(u.g))
+a8(a){},
+a9(a){},
+I(){if((this.c&4)!==0)return new A.E("Cannot add new events after calling close")
+return new A.E("Cannot add new events while doing an addStream")},
+au(a){var s,r,q,p,o=this,n=o.c
+if((n&2)!==0)throw A.b(A.dn(u.g))
s=o.d
if(s==null)return
r=n&1
@@ -2132,55 +2085,55 @@ else q.CW=p
s.CW=s
s.ch=s}s.ay=n&4294967293
s=q}else s=s.ch}o.c&=4294967293
-if(o.d==null)o.a6()},
-a6(){if((this.c&4)!==0)if(null.gb0())null.a5(null)
-A.bL(this.b)}}
-A.aS.prototype={
-gU(){return A.a7.prototype.gU.call(this)&&(this.c&2)===0},
-M(){if((this.c&2)!==0)return new A.G(u.g)
-return this.al()},
-B(a){var s=this,r=s.d
+if(o.d==null)o.a3()},
+a3(){if((this.c&4)!==0)if(null.gaW())null.a2(null)
+A.bC(this.b)}}
+A.aN.prototype={
+gP(){return A.a5.prototype.gP.call(this)&&(this.c&2)===0},
+I(){if((this.c&2)!==0)return new A.E(u.g)
+return this.aj()},
+A(a){var s=this,r=s.d
if(r==null)return
if(r===s.e){s.c|=2
-r.a3(a)
+r.a0(a)
s.c&=4294967293
-if(s.d==null)s.a6()
-return}s.aw(new A.cA(s,a))}}
-A.cA.prototype={
-$1(a){a.a3(this.b)},
-$S(){return this.a.$ti.i("~(Y<1>)")}}
-A.aa.prototype={
-aP(a){if((this.c&15)!==6)return!0
-return this.b.b.a0(this.d,a.a)},
-aN(a){var s,r=this.e,q=null,p=a.a,o=this.b.b
-if(t.C.b(r))q=o.aU(r,p,a.b)
-else q=o.a0(r,p)
+if(s.d==null)s.a3()
+return}s.au(new A.cp(s,a))}}
+A.cp.prototype={
+$1(a){a.a0(this.b)},
+$S(){return this.a.$ti.i("~(W<1>)")}}
+A.a8.prototype={
+aK(a){if((this.c&15)!==6)return!0
+return this.b.b.Y(this.d,a.a)},
+aI(a){var s,r=this.e,q=null,p=a.a,o=this.b.b
+if(t.C.b(r))q=o.aP(r,p,a.b)
+else q=o.Y(r,p)
try{p=q
-return p}catch(s){if(t.c.b(A.N(s))){if((this.c&1)!==0)throw A.b(A.b1("The error handler of Future.then must return a value of the returned future's type","onError"))
-throw A.b(A.b1("The error handler of Future.catchError must return a value of the future's type","onError"))}else throw s}}}
+return p}catch(s){if(t.c.b(A.R(s))){if((this.c&1)!==0)throw A.b(A.aW("The error handler of Future.then must return a value of the returned future's type","onError"))
+throw A.b(A.aW("The error handler of Future.catchError must return a value of the future's type","onError"))}else throw s}}}
A.p.prototype={
-ad(a){this.a=this.a&1|4
+aa(a){this.a=this.a&1|4
this.c=a},
-a1(a,b,c){var s,r,q=$.k
-if(q===B.a){if(b!=null&&!t.C.b(b)&&!t.v.b(b))throw A.b(A.dm(b,"onError",u.c))}else if(b!=null)b=A.fL(b,q)
+Z(a,b,c){var s,r,q=$.k
+if(q===B.a){if(b!=null&&!t.C.b(b)&&!t.v.b(b))throw A.b(A.dc(b,"onError",u.c))}else if(b!=null)b=A.fw(b,q)
s=new A.p(q,c.i("p<0>"))
r=b==null?1:3
-this.N(new A.aa(s,r,a,b,this.$ti.i("@<1>").u(c).i("aa<1,2>")))
+this.J(new A.a8(s,r,a,b,this.$ti.i("@<1>").u(c).i("a8<1,2>")))
return s},
-aZ(a,b){return this.a1(a,null,b)},
-af(a,b,c){var s=new A.p($.k,c.i("p<0>"))
-this.N(new A.aa(s,19,a,b,this.$ti.i("@<1>").u(c).i("aa<1,2>")))
+aU(a,b){return this.Z(a,null,b)},
+ac(a,b,c){var s=new A.p($.k,c.i("p<0>"))
+this.J(new A.a8(s,19,a,b,this.$ti.i("@<1>").u(c).i("a8<1,2>")))
return s},
-aE(a){this.a=this.a&1|16
+aB(a){this.a=this.a&1|16
this.c=a},
-E(a){this.a=a.a&30|this.a&1
+B(a){this.a=a.a&30|this.a&1
this.c=a.c},
-N(a){var s=this,r=s.a
+J(a){var s=this,r=s.a
if(r<=3){a.a=s.c
s.c=a}else{if((r&4)!==0){r=s.c
-if((r.a&24)===0){r.N(a)
-return}s.E(r)}A.ad(null,null,s.b,new A.cj(s,a))}},
-X(a){var s,r,q,p,o,n=this,m={}
+if((r.a&24)===0){r.J(a)
+return}s.B(r)}A.ac(null,null,s.b,new A.c8(s,a))}},
+T(a){var s,r,q,p,o,n=this,m={}
m.a=a
if(a==null)return
s=n.a
@@ -2189,199 +2142,196 @@ n.c=a
if(r!=null){q=a.a
for(p=a;q!=null;p=q,q=o)o=q.a
p.a=r}}else{if((s&4)!==0){s=n.c
-if((s.a&24)===0){s.X(a)
-return}n.E(s)}m.a=n.H(a)
-A.ad(null,null,n.b,new A.cq(m,n))}},
-G(){var s=this.c
+if((s.a&24)===0){s.T(a)
+return}n.B(s)}m.a=n.D(a)
+A.ac(null,null,n.b,new A.cf(m,n))}},
+C(){var s=this.c
this.c=null
-return this.H(s)},
-H(a){var s,r,q
+return this.D(s)},
+D(a){var s,r,q
for(s=a,r=null;s!=null;r=s,s=q){q=s.a
s.a=r}return r},
-aq(a){var s,r,q,p=this
+ao(a){var s,r,q,p=this
p.a^=2
-try{a.a1(new A.cn(p),new A.co(p),t.P)}catch(q){s=A.N(q)
-r=A.L(q)
-A.dh(new A.cp(p,s,r))}},
-P(a){var s=this,r=s.G()
+try{a.Z(new A.cc(p),new A.cd(p),t.P)}catch(q){s=A.R(q)
+r=A.J(q)
+A.d6(new A.ce(p,s,r))}},
+L(a){var s=this,r=s.C()
s.a=8
s.c=a
-A.ab(s,r)},
-A(a,b){var s=this.G()
-this.aE(new A.V(a,b))
-A.ab(this,s)},
-a5(a){if(this.$ti.i("a2<1>").b(a)){this.a7(a)
+A.a9(s,r)},
+v(a,b){var s=this.C()
+this.aB(new A.S(a,b))
+A.a9(this,s)},
+a2(a){if(this.$ti.i("a_<1>").b(a)){this.a4(a)
+return}this.am(a)},
+am(a){this.a^=2
+A.ac(null,null,this.b,new A.ca(this,a))},
+a4(a){if(this.$ti.b(a)){A.eI(a,this)
return}this.ao(a)},
-ao(a){this.a^=2
-A.ad(null,null,this.b,new A.cl(this,a))},
-a7(a){if(this.$ti.b(a)){A.eW(a,this)
-return}this.aq(a)},
-O(a,b){this.a^=2
-A.ad(null,null,this.b,new A.ck(this,a,b))},
-$ia2:1}
-A.cj.prototype={
-$0(){A.ab(this.a,this.b)},
+K(a,b){this.a^=2
+A.ac(null,null,this.b,new A.c9(this,a,b))},
+$ia_:1}
+A.c8.prototype={
+$0(){A.a9(this.a,this.b)},
$S:0}
-A.cq.prototype={
-$0(){A.ab(this.b,this.a.a)},
+A.cf.prototype={
+$0(){A.a9(this.b,this.a.a)},
$S:0}
-A.cn.prototype={
+A.cc.prototype={
$1(a){var s,r,q,p=this.a
p.a^=2
-try{p.P(p.$ti.c.a(a))}catch(q){s=A.N(q)
-r=A.L(q)
-p.A(s,r)}},
+try{p.L(p.$ti.c.a(a))}catch(q){s=A.R(q)
+r=A.J(q)
+p.v(s,r)}},
$S:2}
-A.co.prototype={
-$2(a,b){this.a.A(a,b)},
+A.cd.prototype={
+$2(a,b){this.a.v(a,b)},
$S:12}
-A.cp.prototype={
-$0(){this.a.A(this.b,this.c)},
+A.ce.prototype={
+$0(){this.a.v(this.b,this.c)},
$S:0}
-A.cm.prototype={
-$0(){A.dF(this.a.a,this.b)},
+A.cb.prototype={
+$0(){A.du(this.a.a,this.b)},
$S:0}
-A.cl.prototype={
-$0(){this.a.P(this.b)},
+A.ca.prototype={
+$0(){this.a.L(this.b)},
$S:0}
-A.ck.prototype={
-$0(){this.a.A(this.b,this.c)},
+A.c9.prototype={
+$0(){this.a.v(this.b,this.c)},
$S:0}
-A.ct.prototype={
+A.ci.prototype={
$0(){var s,r,q,p,o,n,m,l=this,k=null
try{q=l.a.a
-k=q.b.b.aS(q.d)}catch(p){s=A.N(p)
-r=A.L(p)
+k=q.b.b.aN(q.d)}catch(p){s=A.R(p)
+r=A.J(p)
if(l.c&&l.b.a.c.a===s){q=l.a
q.c=l.b.a.c}else{q=s
o=r
-if(o==null)o=A.cY(q)
+if(o==null)o=A.cM(q)
n=l.a
-n.c=new A.V(q,o)
+n.c=new A.S(q,o)
q=n}q.b=!0
return}if(k instanceof A.p&&(k.a&24)!==0){if((k.a&16)!==0){q=l.a
q.c=k.c
q.b=!0}return}if(k instanceof A.p){m=l.b.a
q=l.a
-q.c=k.aZ(new A.cu(m),t.z)
+q.c=k.aU(new A.cj(m),t.z)
q.b=!1}},
$S:0}
-A.cu.prototype={
+A.cj.prototype={
$1(a){return this.a},
$S:13}
-A.cs.prototype={
+A.ch.prototype={
$0(){var s,r,q,p,o,n
try{q=this.a
p=q.a
-q.c=p.b.b.a0(p.d,this.b)}catch(o){s=A.N(o)
-r=A.L(o)
+q.c=p.b.b.Y(p.d,this.b)}catch(o){s=A.R(o)
+r=A.J(o)
q=s
p=r
-if(p==null)p=A.cY(q)
+if(p==null)p=A.cM(q)
n=this.a
-n.c=new A.V(q,p)
+n.c=new A.S(q,p)
n.b=!0}},
$S:0}
-A.cr.prototype={
+A.cg.prototype={
$0(){var s,r,q,p,o,n,m,l=this
try{s=l.a.a.c
p=l.b
-if(p.a.aP(s)&&p.a.e!=null){p.c=p.a.aN(s)
-p.b=!1}}catch(o){r=A.N(o)
-q=A.L(o)
+if(p.a.aK(s)&&p.a.e!=null){p.c=p.a.aI(s)
+p.b=!1}}catch(o){r=A.R(o)
+q=A.J(o)
p=l.a.a.c
if(p.a===r){n=l.b
n.c=p
p=n}else{p=r
n=q
-if(n==null)n=A.cY(p)
+if(n==null)n=A.cM(p)
m=l.b
-m.c=new A.V(p,n)
+m.c=new A.S(p,n)
p=m}p.b=!0}},
$S:0}
-A.bv.prototype={}
-A.a5.prototype={
-gj(a){var s={},r=new A.p($.k,t.a)
+A.bo.prototype={}
+A.a3.prototype={
+gk(a){var s={},r=new A.p($.k,t.a)
s.a=0
-this.ai(new A.c3(s,this),!0,new A.c4(s,r),r.gar())
+this.ag(new A.bT(s,this),!0,new A.bU(s,r),r.gap())
return r}}
-A.c3.prototype={
+A.bT.prototype={
$1(a){++this.a.a},
-$S(){return A.S(this.b).i("~(1)")}}
-A.c4.prototype={
-$0(){var s=this.b,r=this.a.a,q=s.G()
+$S(){return A.aa(this.b).i("~(1)")}}
+A.bU.prototype={
+$0(){var s=this.b,r=this.a.a,q=s.C()
s.a=8
s.c=r
-A.ab(s,q)},
+A.a9(s,q)},
$S:0}
-A.bE.prototype={
-gaC(){if((this.b&8)===0)return this.a
-return this.a.gY()},
-av(){var s,r=this
+A.bv.prototype={
+gaA(){if((this.b&8)===0)return this.a
+return this.a.gU()},
+ar(){var s,r=this
if((r.b&8)===0){s=r.a
-return s==null?r.a=new A.aP():s}s=r.a.gY()
+return s==null?r.a=new A.aK():s}s=r.a.gU()
return s},
-gaI(){var s=this.a
-return(this.b&8)!==0?s.gY():s},
-ap(){if((this.b&4)!==0)return new A.G("Cannot add event after closing")
-return new A.G("Cannot add event while adding a stream")},
-ae(a,b,c,d){var s,r,q,p,o=this
-if((o.b&3)!==0)throw A.b(A.dz("Stream has already been listened to."))
-s=A.eV(o,a,b,c,d)
-r=o.gaC()
+gaF(){var s=this.a
+return(this.b&8)!==0?s.gU():s},
+an(){if((this.b&4)!==0)return new A.E("Cannot add event after closing")
+return new A.E("Cannot add event while adding a stream")},
+ab(a,b,c,d){var s,r,q,p,o=this
+if((o.b&3)!==0)throw A.b(A.dn("Stream has already been listened to."))
+s=A.eH(o,a,b,c,d)
+r=o.gaA()
q=o.b|=1
if((q&8)!==0){p=o.a
-p.sY(s)
-p.aR()}else o.a=s
-s.aF(r)
+p.sU(s)
+p.aM()}else o.a=s
+s.aC(r)
q=s.e
s.e=q|64
-new A.cz(o).$0()
+new A.co(o).$0()
s.e&=4294967231
-s.a8((q&4)!==0)
+s.a5((q&4)!==0)
return s},
-ab(a){if((this.b&8)!==0)this.a.b1()
-A.bL(this.e)},
-ac(a){if((this.b&8)!==0)this.a.aR()
-A.bL(this.f)}}
-A.cz.prototype={
-$0(){A.bL(this.a.d)},
+a8(a){if((this.b&8)!==0)this.a.aX()
+A.bC(this.e)},
+a9(a){if((this.b&8)!==0)this.a.aM()
+A.bC(this.f)}}
+A.co.prototype={
+$0(){A.bC(this.a.d)},
$S:0}
-A.bw.prototype={
-B(a){this.gaI().a4(new A.a9(a))}}
-A.a6.prototype={}
-A.Q.prototype={
-gq(a){return(A.aA(this.a)^892482866)>>>0},
-D(a,b){if(b==null)return!1
-if(this===b)return!0
-return b instanceof A.Q&&b.a===this.a}}
-A.a8.prototype={
-V(){this.w.ab(this)},
-W(){this.w.ac(this)}}
-A.Y.prototype={
-aF(a){if(a==null)return
+A.bp.prototype={
+A(a){this.gaF().a1(new A.a7(a))}}
+A.a4.prototype={}
+A.X.prototype={
+gn(a){return(A.av(this.a)^892482866)>>>0}}
+A.a6.prototype={
+R(){this.w.a8(this)},
+S(){this.w.a9(this)}}
+A.W.prototype={
+aC(a){if(a==null)return
this.r=a
if(a.c!=null){this.e|=128
-a.K(this)}},
-a3(a){var s=this.e
+a.G(this)}},
+a0(a){var s=this.e
if((s&8)!==0)return
-if(s<64)this.B(a)
-else this.a4(new A.a9(a))},
-V(){},
-W(){},
-a4(a){var s,r=this,q=r.r
-if(q==null)q=r.r=new A.aP()
-q.ag(0,a)
+if(s<64)this.A(a)
+else this.a1(new A.a7(a))},
+R(){},
+S(){},
+a1(a){var s,r=this,q=r.r
+if(q==null)q=r.r=new A.aK()
+q.ad(0,a)
s=r.e
if((s&128)===0){s|=128
r.e=s
-if(s<256)q.K(r)}},
-B(a){var s=this,r=s.e
+if(s<256)q.G(r)}},
+A(a){var s=this,r=s.e
s.e=r|64
-s.d.aY(s.a,a)
+s.d.aT(s.a,a)
s.e&=4294967231
-s.a8((r&4)!==0)},
-a8(a){var s,r,q=this,p=q.e
+s.a5((r&4)!==0)},
+a5(a){var s,r,q=this,p=q.e
if((p&128)!==0&&q.r.c==null){p=q.e=p&4294967167
s=!1
if((p&4)!==0)if(p<256){s=q.r
@@ -2391,24 +2341,24 @@ q.e=p}}for(;!0;a=r){if((p&8)!==0){q.r=null
return}r=(p&4)!==0
if(a===r)break
q.e=p^64
-if(r)q.V()
-else q.W()
-p=q.e&=4294967231}if((p&128)!==0&&p<256)q.r.K(q)}}
-A.aR.prototype={
-ai(a,b,c,d){return this.a.ae(a,d,c,b===!0)},
-aO(a){return this.ai(a,null,null,null)}}
-A.by.prototype={}
-A.a9.prototype={}
-A.aP.prototype={
-K(a){var s=this,r=s.a
+if(r)q.R()
+else q.S()
+p=q.e&=4294967231}if((p&128)!==0&&p<256)q.r.G(q)}}
+A.aM.prototype={
+ag(a,b,c,d){return this.a.ab(a,d,c,b===!0)},
+aJ(a){return this.ag(a,null,null,null)}}
+A.br.prototype={}
+A.a7.prototype={}
+A.aK.prototype={
+G(a){var s=this,r=s.a
if(r===1)return
if(r>=1){s.a=1
-return}A.dh(new A.cw(s,a))
+return}A.d6(new A.cl(s,a))
s.a=1},
-ag(a,b){var s=this,r=s.c
+ad(a,b){var s=this,r=s.c
if(r==null)s.b=s.c=b
else s.c=r.a=b}}
-A.cw.prototype={
+A.cl.prototype={
$0(){var s,r,q=this.a,p=q.a
q.a=0
if(p===3)return
@@ -2416,87 +2366,87 @@ s=q.b
r=s.a
q.b=r
if(r==null)q.c=null
-this.b.B(s.b)},
+this.b.A(s.b)},
$S:0}
-A.aH.prototype={
-aB(){var s,r=this,q=r.a-1
+A.aC.prototype={
+az(){var s,r=this,q=r.a-1
if(q===0){r.a=-1
s=r.c
if(s!=null){r.c=null
-r.b.aj(s)}}else r.a=q}}
-A.bF.prototype={}
-A.cG.prototype={}
-A.cL.prototype={
-$0(){A.eD(this.a,this.b)},
+r.b.ah(s)}}else r.a=q}}
+A.bw.prototype={}
+A.cv.prototype={}
+A.cz.prototype={
+$0(){A.ep(this.a,this.b)},
$S:0}
-A.cx.prototype={
-aj(a){var s,r,q
+A.cm.prototype={
+ah(a){var s,r,q
try{if(B.a===$.k){a.$0()
-return}A.e_(null,null,this,a)}catch(q){s=A.N(q)
-r=A.L(q)
-A.bK(s,r)}},
-aX(a,b){var s,r,q
+return}A.dP(null,null,this,a)}catch(q){s=A.R(q)
+r=A.J(q)
+A.bB(s,r)}},
+aS(a,b){var s,r,q
try{if(B.a===$.k){a.$1(b)
-return}A.e0(null,null,this,a,b)}catch(q){s=A.N(q)
-r=A.L(q)
-A.bK(s,r)}},
-aY(a,b){return this.aX(a,b,t.z)},
-ah(a){return new A.cy(this,a)},
-aT(a){if($.k===B.a)return a.$0()
-return A.e_(null,null,this,a)},
-aS(a){return this.aT(a,t.z)},
-aW(a,b){if($.k===B.a)return a.$1(b)
-return A.e0(null,null,this,a,b)},
-a0(a,b){var s=t.z
-return this.aW(a,b,s,s)},
-aV(a,b,c){if($.k===B.a)return a.$2(b,c)
-return A.fM(null,null,this,a,b,c)},
-aU(a,b,c){var s=t.z
-return this.aV(a,b,c,s,s,s)},
-aQ(a){return a},
-a_(a){var s=t.z
-return this.aQ(a,s,s,s)}}
-A.cy.prototype={
-$0(){return this.a.aj(this.b)},
+return}A.dQ(null,null,this,a,b)}catch(q){s=A.R(q)
+r=A.J(q)
+A.bB(s,r)}},
+aT(a,b){return this.aS(a,b,t.z)},
+ae(a){return new A.cn(this,a)},
+aO(a){if($.k===B.a)return a.$0()
+return A.dP(null,null,this,a)},
+aN(a){return this.aO(a,t.z)},
+aR(a,b){if($.k===B.a)return a.$1(b)
+return A.dQ(null,null,this,a,b)},
+Y(a,b){var s=t.z
+return this.aR(a,b,s,s)},
+aQ(a,b,c){if($.k===B.a)return a.$2(b,c)
+return A.fx(null,null,this,a,b,c)},
+aP(a,b,c){var s=t.z
+return this.aQ(a,b,c,s,s,s)},
+aL(a){return a},
+X(a){var s=t.z
+return this.aL(a,s,s,s)}}
+A.cn.prototype={
+$0(){return this.a.ah(this.b)},
$S:0}
-A.aI.prototype={
-gj(a){return this.a},
-gC(){return new A.aJ(this,this.$ti.i("aJ<1>"))},
-aK(a){var s,r
+A.aD.prototype={
+gk(a){return this.a},
+gW(){return new A.aE(this,this.$ti.i("aE<1>"))},
+aH(a){var s,r
if(typeof a=="string"&&a!=="__proto__"){s=this.b
return s==null?!1:s[a]!=null}else if(typeof a=="number"&&(a&1073741823)===a){r=this.c
-return r==null?!1:r[a]!=null}else return this.au(a)},
-au(a){var s=this.d
+return r==null?!1:r[a]!=null}else return this.aq(a)},
+aq(a){var s=this.d
if(s==null)return!1
-return this.T(this.aa(s,a),a)>=0},
-n(a,b){var s,r,q
+return this.O(this.a7(s,a),a)>=0},
+p(a,b){var s,r,q
if(typeof b=="string"&&b!=="__proto__"){s=this.b
-r=s==null?null:A.dG(s,b)
+r=s==null?null:A.dv(s,b)
return r}else if(typeof b=="number"&&(b&1073741823)===b){q=this.c
-r=q==null?null:A.dG(q,b)
-return r}else return this.az(b)},
-az(a){var s,r,q=this.d
+r=q==null?null:A.dv(q,b)
+return r}else return this.av(b)},
+av(a){var s,r,q=this.d
if(q==null)return null
-s=this.aa(q,a)
-r=this.T(s,a)
+s=this.a7(q,a)
+r=this.O(s,a)
return r<0?null:s[r+1]},
-a2(a,b,c){var s,r,q,p=this,o=p.d
-if(o==null)o=p.d=A.eX()
-s=A.dg(b)&1073741823
+a_(a,b,c){var s,r,q,p=this,o=p.d
+if(o==null)o=p.d=A.eJ()
+s=A.d5(b)&1073741823
r=o[s]
-if(r==null){A.dH(o,s,[b,c]);++p.a
-p.e=null}else{q=p.T(r,b)
+if(r==null){A.dw(o,s,[b,c]);++p.a
+p.e=null}else{q=p.O(r,b)
if(q>=0)r[q+1]=c
else{r.push(b,c);++p.a
p.e=null}}},
-I(a,b){var s,r,q,p,o,n=this,m=n.a9()
+af(a,b){var s,r,q,p,o,n=this,m=n.a6()
for(s=m.length,r=n.$ti.y[1],q=0;q"))}}
-A.bB.prototype={
+A.aE.prototype={
+gk(a){return this.a.a},
+gq(a){var s=this.a
+return new A.bu(s,s.a6(),this.$ti.i("bu<1>"))}}
+A.bu.prototype={
gm(){var s=this.d
return s==null?this.$ti.c.a(s):s},
l(){var s=this,r=s.b,q=s.c,p=s.a
-if(r!==p.e)throw A.b(A.ai(p))
+if(r!==p.e)throw A.b(A.bH(p))
else if(q>=r.length){s.d=null
return!1}else{s.d=r[q]
s.c=q+1
return!0}}}
A.j.prototype={
-gp(a){return new A.a3(a,this.gj(a),A.ag(a).i("a3"))},
-v(a,b){return this.n(a,b)},
-J(a,b,c){return new A.F(a,b,A.ag(a).i("@").u(c).i("F<1,2>"))},
-h(a){return A.du(a,"[","]")}}
-A.z.prototype={
-I(a,b){var s,r,q,p
-for(s=this.gC(),s=s.gp(s),r=A.S(this).i("z.V");s.l();){q=s.gm()
-p=this.n(0,q)
+gq(a){return new A.a0(a,this.gk(a),A.Z(a).i("a0"))},
+E(a,b){return this.p(a,b)},
+F(a,b,c){return new A.D(a,b,A.Z(a).i("@").u(c).i("D<1,2>"))},
+h(a){return A.di(a,"[","]")}}
+A.a1.prototype={
+af(a,b){var s,r,q,p
+for(s=this.gW(),s=s.gq(s),r=A.aa(this).y[1];s.l();){q=s.gm()
+p=this.p(0,q)
b.$2(q,p==null?r.a(p):p)}},
-gj(a){var s=this.gC()
-return s.gj(s)},
-h(a){return A.eH(this)},
-$iau:1}
-A.bZ.prototype={
+gk(a){var s=this.gW()
+return s.gk(s)},
+h(a){return A.eu(this)}}
+A.bP.prototype={
$2(a,b){var s,r=this.a
if(!r.a)this.b.a+=", "
r.a=!1
@@ -2555,228 +2504,174 @@ r.a=s+": "
s=A.o(b)
r.a+=s},
$S:14}
-A.bC.prototype={
-n(a,b){var s,r=this.b
-if(r==null)return this.c.n(0,b)
-else if(typeof b!="string")return null
-else{s=r[b]
-return typeof s=="undefined"?this.aD(b):s}},
-gj(a){return this.b==null?this.c.a:this.F().length},
-gC(){if(this.b==null){var s=this.c
-return new A.at(s,s.$ti.i("at<1>"))}return new A.bD(this)},
-I(a,b){var s,r,q,p,o=this
-if(o.b==null)return o.c.I(0,b)
-s=o.F()
-for(r=0;r"))}return s}}
-A.b4.prototype={}
-A.b6.prototype={}
-A.bX.prototype={
-aL(a,b){var s=A.fJ(a,this.gaM().a)
-return s},
-gaM(){return B.u}}
-A.bY.prototype={}
A.l.prototype={
-gL(){return A.eL(this)}}
-A.b2.prototype={
+gH(){return A.ex(this)}}
+A.aY.prototype={
h(a){var s=this.a
-if(s!=null)return"Assertion failed: "+A.bP(s)
+if(s!=null)return"Assertion failed: "+A.bI(s)
return"Assertion failed"}}
-A.H.prototype={}
-A.C.prototype={
-gS(){return"Invalid argument"+(!this.a?"(s)":"")},
-gR(){return""},
-h(a){var s=this,r=s.c,q=r==null?"":" ("+r+")",p=s.d,o=p==null?"":": "+p,n=s.gS()+q+o
+A.F.prototype={}
+A.A.prototype={
+gN(){return"Invalid argument"+(!this.a?"(s)":"")},
+gM(){return""},
+h(a){var s=this,r=s.c,q=r==null?"":" ("+r+")",p=s.d,o=p==null?"":": "+p,n=s.gN()+q+o
if(!s.a)return n
-return n+s.gR()+": "+A.bP(s.gZ())},
-gZ(){return this.b}}
-A.aB.prototype={
-gZ(){return this.b},
-gS(){return"RangeError"},
-gR(){var s,r=this.e,q=this.f
+return n+s.gM()+": "+A.bI(s.gV())},
+gV(){return this.b}}
+A.aw.prototype={
+gV(){return this.b},
+gN(){return"RangeError"},
+gM(){var s,r=this.e,q=this.f
if(r==null)s=q!=null?": Not less than or equal to "+A.o(q):""
else if(q==null)s=": Not greater than or equal to "+A.o(r)
else if(q>r)s=": Not in inclusive range "+A.o(r)+".."+A.o(q)
else s=q=4)A.bM(q.ap())
-if((s&1)!==0)q.B(r)
-else if((s&3)===0)q.av().ag(0,new A.a9(r))},
-$S:18}
-A.cV.prototype={
-$1(a){var s,r,q,p=null
-if(typeof a=="string")try{s=t.f.a(B.m.aL(a,p))
-A.ed("Received "+a+" PARSED TO "+A.o(s)+"\n")
-r=t.m.a(self)
-A.eF(r,"postMessage",A.eb(a),p,p,p)}catch(q){A.ed("Received data from WASM worker but it's not a String!\n")}},
-$S:4};(function aliases(){var s=J.P.prototype
-s.ak=s.h
-s=A.a7.prototype
-s.al=s.M})();(function installTearOffs(){var s=hunkHelpers._static_1,r=hunkHelpers._static_0,q=hunkHelpers._static_2,p=hunkHelpers._instance_2u,o=hunkHelpers._instance_0u
-s(A,"fV","eS",1)
-s(A,"fW","eT",1)
-s(A,"fX","eU",1)
-r(A,"e4","fO",0)
-q(A,"fY","fI",5)
-p(A.p.prototype,"gar","A",5)
-o(A.aH.prototype,"gaA","aB",0)})();(function inheritance(){var s=hunkHelpers.mixin,r=hunkHelpers.inherit,q=hunkHelpers.inheritMany
+if(s>=4)A.bE(q.an())
+if((s&1)!==0)q.A(r)
+else if((s&3)===0)q.ar().ad(0,new A.a7(r))},
+$S:17}
+A.cJ.prototype={
+$1(a){var s,r
+A.e0("Dart worker: onMessage received "+A.o(a)+" with type of "+J.db(a).h(0)+"\n")
+try{s=t.m.a(self)
+A.es(s,"postMessage",A.fX(a==null?t.K.a(a):a),null,null,null)}catch(r){A.e0("Received data from WASM worker but it's not a String!\n")}},
+$S:4};(function aliases(){var s=J.M.prototype
+s.ai=s.h
+s=A.a5.prototype
+s.aj=s.I})();(function installTearOffs(){var s=hunkHelpers._static_1,r=hunkHelpers._static_0,q=hunkHelpers._static_2,p=hunkHelpers._instance_2u,o=hunkHelpers._instance_0u
+s(A,"fG","eE",1)
+s(A,"fH","eF",1)
+s(A,"fI","eG",1)
+r(A,"dU","fz",0)
+q(A,"fJ","fu",5)
+p(A.p.prototype,"gap","v",5)
+o(A.aC.prototype,"gaw","az",0)})();(function inheritance(){var s=hunkHelpers.mixin,r=hunkHelpers.inherit,q=hunkHelpers.inheritMany
r(A.d,null)
-q(A.d,[A.d0,J.b8,J.a1,A.l,A.c,A.a3,A.be,A.al,A.c6,A.c_,A.ak,A.aQ,A.W,A.bd,A.y,A.bA,A.cD,A.cB,A.bu,A.V,A.a5,A.Y,A.a7,A.aa,A.p,A.bv,A.bE,A.bw,A.by,A.aP,A.aH,A.bF,A.cG,A.z,A.bB,A.j,A.b4,A.b6,A.aC,A.ci,A.bS,A.q,A.bG,A.br,A.cc])
-q(J.b8,[J.b9,J.an,J.aq,J.ap,J.ar,J.bb,J.ao])
-q(J.aq,[J.P,J.v,A.bf,A.ax])
-q(J.P,[J.bp,J.aD,J.O])
-r(J.bW,J.v)
-q(J.bb,[J.am,J.ba])
-q(A.l,[A.as,A.H,A.bc,A.bt,A.bx,A.bq,A.bz,A.b2,A.C,A.aE,A.bs,A.G,A.b5])
-q(A.c,[A.e,A.X])
-q(A.e,[A.D,A.at,A.aJ])
-r(A.aj,A.X)
-q(A.D,[A.F,A.bD])
-r(A.az,A.H)
-q(A.W,[A.bN,A.bO,A.c5,A.cQ,A.cS,A.cf,A.ce,A.cH,A.cA,A.cn,A.cu,A.c3,A.cU,A.cN,A.cd,A.cV])
-q(A.c5,[A.c2,A.ah])
-q(A.bO,[A.cR,A.cI,A.cM,A.co,A.bZ])
-q(A.ax,[A.bg,A.a4])
-q(A.a4,[A.aL,A.aN])
-r(A.aM,A.aL)
-r(A.av,A.aM)
-r(A.aO,A.aN)
-r(A.aw,A.aO)
-q(A.av,[A.bh,A.bi])
-q(A.aw,[A.bj,A.bk,A.bl,A.bm,A.bn,A.ay,A.bo])
-r(A.aT,A.bz)
-q(A.bN,[A.cg,A.ch,A.cC,A.cj,A.cq,A.cp,A.cm,A.cl,A.ck,A.ct,A.cs,A.cr,A.c4,A.cz,A.cw,A.cL,A.cy,A.c0])
-r(A.aR,A.a5)
-r(A.Q,A.aR)
-r(A.aF,A.Q)
-r(A.a8,A.Y)
-r(A.aG,A.a8)
-r(A.aS,A.a7)
-r(A.a6,A.bE)
-r(A.a9,A.by)
-r(A.cx,A.cG)
-q(A.z,[A.aI,A.bC])
-r(A.aK,A.aI)
-r(A.bX,A.b4)
-r(A.bY,A.b6)
-q(A.C,[A.aB,A.b7])
-s(A.aL,A.j)
-s(A.aM,A.al)
-s(A.aN,A.j)
-s(A.aO,A.al)
-s(A.a6,A.bw)})()
-var v={typeUniverse:{eC:new Map(),tR:{},eT:{},tPV:{},sEA:[]},mangledGlobalNames:{a:"int",h:"double",hd:"num",t:"String",fZ:"bool",q:"Null",i:"List",d:"Object",au:"Map"},mangledNames:{},types:["~()","~(~())","q(@)","q()","~(@)","~(d,A)","@(@)","@(@,t)","@(t)","q(~())","q(@,A)","~(a,@)","q(d,A)","p<@>(@)","~(d?,d?)","d?()","d?(d?)","~(d)","q(n)"],interceptorsByTag:null,leafTags:null,arrayRti:Symbol("$ti")}
-A.fc(v.typeUniverse,JSON.parse('{"bp":"P","aD":"P","O":"P","b9":{"f":[]},"an":{"q":[],"f":[]},"aq":{"n":[]},"P":{"n":[]},"v":{"i":["1"],"e":["1"],"n":[],"c":["1"]},"bW":{"v":["1"],"i":["1"],"e":["1"],"n":[],"c":["1"]},"bb":{"h":[]},"am":{"h":[],"a":[],"f":[]},"ba":{"h":[],"f":[]},"ao":{"t":[],"f":[]},"as":{"l":[]},"e":{"c":["1"]},"D":{"e":["1"],"c":["1"]},"X":{"c":["2"],"c.E":"2"},"aj":{"X":["1","2"],"e":["2"],"c":["2"],"c.E":"2"},"F":{"D":["2"],"e":["2"],"c":["2"],"c.E":"2","D.E":"2"},"az":{"H":[],"l":[]},"bc":{"l":[]},"bt":{"l":[]},"aQ":{"A":[]},"bx":{"l":[]},"bq":{"l":[]},"at":{"e":["1"],"c":["1"],"c.E":"1"},"bf":{"n":[],"cZ":[],"f":[]},"ax":{"n":[]},"bg":{"d_":[],"n":[],"f":[]},"a4":{"w":["1"],"n":[]},"av":{"j":["h"],"i":["h"],"w":["h"],"e":["h"],"n":[],"c":["h"]},"aw":{"j":["a"],"i":["a"],"w":["a"],"e":["a"],"n":[],"c":["a"]},"bh":{"bQ":[],"j":["h"],"i":["h"],"w":["h"],"e":["h"],"n":[],"c":["h"],"f":[],"j.E":"h"},"bi":{"bR":[],"j":["h"],"i":["h"],"w":["h"],"e":["h"],"n":[],"c":["h"],"f":[],"j.E":"h"},"bj":{"bT":[],"j":["a"],"i":["a"],"w":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"bk":{"bU":[],"j":["a"],"i":["a"],"w":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"bl":{"bV":[],"j":["a"],"i":["a"],"w":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"bm":{"c8":[],"j":["a"],"i":["a"],"w":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"bn":{"c9":[],"j":["a"],"i":["a"],"w":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"ay":{"ca":[],"j":["a"],"i":["a"],"w":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"bo":{"cb":[],"j":["a"],"i":["a"],"w":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"bz":{"l":[]},"aT":{"H":[],"l":[]},"p":{"a2":["1"]},"V":{"l":[]},"aF":{"Q":["1"],"a5":["1"]},"aG":{"Y":["1"]},"aS":{"a7":["1"]},"a6":{"bE":["1"]},"Q":{"a5":["1"]},"a8":{"Y":["1"]},"aR":{"a5":["1"]},"aI":{"z":["1","2"],"au":["1","2"]},"aK":{"aI":["1","2"],"z":["1","2"],"au":["1","2"],"z.V":"2"},"aJ":{"e":["1"],"c":["1"],"c.E":"1"},"z":{"au":["1","2"]},"bC":{"z":["t","@"],"au":["t","@"],"z.V":"@"},"bD":{"D":["t"],"e":["t"],"c":["t"],"c.E":"t","D.E":"t"},"b2":{"l":[]},"H":{"l":[]},"C":{"l":[]},"aB":{"l":[]},"b7":{"l":[]},"aE":{"l":[]},"bs":{"l":[]},"G":{"l":[]},"b5":{"l":[]},"aC":{"l":[]},"bG":{"A":[]},"bV":{"i":["a"],"e":["a"],"c":["a"]},"cb":{"i":["a"],"e":["a"],"c":["a"]},"ca":{"i":["a"],"e":["a"],"c":["a"]},"bT":{"i":["a"],"e":["a"],"c":["a"]},"c8":{"i":["a"],"e":["a"],"c":["a"]},"bU":{"i":["a"],"e":["a"],"c":["a"]},"c9":{"i":["a"],"e":["a"],"c":["a"]},"bQ":{"i":["h"],"e":["h"],"c":["h"]},"bR":{"i":["h"],"e":["h"],"c":["h"]}}'))
-A.fb(v.typeUniverse,JSON.parse('{"e":1,"al":1,"bd":1,"a4":1,"Y":1,"aG":1,"bw":1,"a8":1,"aR":1,"by":1,"a9":1,"aP":1,"aH":1,"bF":1,"b4":2,"b6":2}'))
+q(A.d,[A.cP,J.b2,J.aX,A.l,A.c,A.a0,A.b7,A.ai,A.bW,A.bQ,A.ah,A.aL,A.T,A.x,A.bt,A.cs,A.cq,A.bn,A.S,A.a3,A.W,A.a5,A.a8,A.p,A.bo,A.bv,A.bp,A.br,A.aK,A.aC,A.bw,A.cv,A.a1,A.bu,A.j,A.ax,A.c7,A.q,A.bx,A.bk,A.c1])
+q(J.b2,[J.b3,J.ak,J.an,J.am,J.ao,J.b5,J.al])
+q(J.an,[J.M,J.u,A.b8,A.as])
+q(J.M,[J.bi,J.ay,J.L])
+r(J.bO,J.u)
+q(J.b5,[J.aj,J.b4])
+q(A.l,[A.ap,A.F,A.b6,A.bm,A.bq,A.bj,A.bs,A.aY,A.A,A.az,A.bl,A.E,A.b0])
+q(A.c,[A.e,A.U])
+q(A.e,[A.N,A.aE])
+r(A.ag,A.U)
+r(A.D,A.N)
+r(A.au,A.F)
+q(A.T,[A.bF,A.bG,A.bV,A.cE,A.cG,A.c4,A.c3,A.cw,A.cp,A.cc,A.cj,A.bT,A.cI,A.cB,A.c2,A.cJ])
+q(A.bV,[A.bS,A.b_])
+q(A.bG,[A.cF,A.cx,A.cA,A.cd,A.bP])
+q(A.as,[A.b9,A.a2])
+q(A.a2,[A.aG,A.aI])
+r(A.aH,A.aG)
+r(A.aq,A.aH)
+r(A.aJ,A.aI)
+r(A.ar,A.aJ)
+q(A.aq,[A.ba,A.bb])
+q(A.ar,[A.bc,A.bd,A.be,A.bf,A.bg,A.at,A.bh])
+r(A.aO,A.bs)
+q(A.bF,[A.c5,A.c6,A.cr,A.c8,A.cf,A.ce,A.cb,A.ca,A.c9,A.ci,A.ch,A.cg,A.bU,A.co,A.cl,A.cz,A.cn])
+r(A.aM,A.a3)
+r(A.X,A.aM)
+r(A.aA,A.X)
+r(A.a6,A.W)
+r(A.aB,A.a6)
+r(A.aN,A.a5)
+r(A.a4,A.bv)
+r(A.a7,A.br)
+r(A.cm,A.cv)
+r(A.aD,A.a1)
+r(A.aF,A.aD)
+q(A.A,[A.aw,A.b1])
+s(A.aG,A.j)
+s(A.aH,A.ai)
+s(A.aI,A.j)
+s(A.aJ,A.ai)
+s(A.a4,A.bp)})()
+var v={typeUniverse:{eC:new Map(),tR:{},eT:{},tPV:{},sEA:[]},mangledGlobalNames:{a:"int",h:"double",h_:"num",V:"String",fK:"bool",q:"Null",i:"List",d:"Object",h8:"Map"},mangledNames:{},types:["~()","~(~())","q(@)","q()","~(@)","~(d,y)","@(@)","@(@,V)","@(V)","q(~())","q(@,y)","~(a,@)","q(d,y)","p<@>(@)","~(d?,d?)","d?(d?)","~(d)","q(n)"],interceptorsByTag:null,leafTags:null,arrayRti:Symbol("$ti")}
+A.eZ(v.typeUniverse,JSON.parse('{"bi":"M","ay":"M","L":"M","b3":{"f":[]},"ak":{"q":[],"f":[]},"an":{"n":[]},"M":{"n":[]},"u":{"i":["1"],"e":["1"],"n":[],"c":["1"]},"bO":{"u":["1"],"i":["1"],"e":["1"],"n":[],"c":["1"]},"b5":{"h":[]},"aj":{"h":[],"a":[],"f":[]},"b4":{"h":[],"f":[]},"al":{"V":[],"f":[]},"ap":{"l":[]},"e":{"c":["1"]},"N":{"e":["1"],"c":["1"]},"U":{"c":["2"],"c.E":"2"},"ag":{"U":["1","2"],"e":["2"],"c":["2"],"c.E":"2"},"D":{"N":["2"],"e":["2"],"c":["2"],"c.E":"2","N.E":"2"},"au":{"F":[],"l":[]},"b6":{"l":[]},"bm":{"l":[]},"aL":{"y":[]},"bq":{"l":[]},"bj":{"l":[]},"b8":{"n":[],"cN":[],"f":[]},"as":{"n":[]},"b9":{"cO":[],"n":[],"f":[]},"a2":{"v":["1"],"n":[]},"aq":{"j":["h"],"i":["h"],"v":["h"],"e":["h"],"n":[],"c":["h"]},"ar":{"j":["a"],"i":["a"],"v":["a"],"e":["a"],"n":[],"c":["a"]},"ba":{"bJ":[],"j":["h"],"i":["h"],"v":["h"],"e":["h"],"n":[],"c":["h"],"f":[],"j.E":"h"},"bb":{"bK":[],"j":["h"],"i":["h"],"v":["h"],"e":["h"],"n":[],"c":["h"],"f":[],"j.E":"h"},"bc":{"bL":[],"j":["a"],"i":["a"],"v":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"bd":{"bM":[],"j":["a"],"i":["a"],"v":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"be":{"bN":[],"j":["a"],"i":["a"],"v":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"bf":{"bY":[],"j":["a"],"i":["a"],"v":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"bg":{"bZ":[],"j":["a"],"i":["a"],"v":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"at":{"c_":[],"j":["a"],"i":["a"],"v":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"bh":{"c0":[],"j":["a"],"i":["a"],"v":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"bs":{"l":[]},"aO":{"F":[],"l":[]},"p":{"a_":["1"]},"S":{"l":[]},"aA":{"X":["1"],"a3":["1"]},"aB":{"W":["1"]},"aN":{"a5":["1"]},"a4":{"bv":["1"]},"X":{"a3":["1"]},"a6":{"W":["1"]},"aM":{"a3":["1"]},"aD":{"a1":["1","2"]},"aF":{"aD":["1","2"],"a1":["1","2"]},"aE":{"e":["1"],"c":["1"],"c.E":"1"},"aY":{"l":[]},"F":{"l":[]},"A":{"l":[]},"aw":{"l":[]},"b1":{"l":[]},"az":{"l":[]},"bl":{"l":[]},"E":{"l":[]},"b0":{"l":[]},"ax":{"l":[]},"bx":{"y":[]},"bN":{"i":["a"],"e":["a"],"c":["a"]},"c0":{"i":["a"],"e":["a"],"c":["a"]},"c_":{"i":["a"],"e":["a"],"c":["a"]},"bL":{"i":["a"],"e":["a"],"c":["a"]},"bY":{"i":["a"],"e":["a"],"c":["a"]},"bM":{"i":["a"],"e":["a"],"c":["a"]},"bZ":{"i":["a"],"e":["a"],"c":["a"]},"bJ":{"i":["h"],"e":["h"],"c":["h"]},"bK":{"i":["h"],"e":["h"],"c":["h"]}}'))
+A.eY(v.typeUniverse,JSON.parse('{"e":1,"ai":1,"a2":1,"W":1,"aB":1,"bp":1,"a6":1,"aM":1,"br":1,"a7":1,"aK":1,"aC":1,"bw":1}'))
var u={g:"Cannot fire new event. Controller is already firing an event",c:"Error handler must accept one Object or one Object and a StackTrace as arguments, and return a value of the returned future's type"}
-var t=(function rtii(){var s=A.e7
-return{J:s("cZ"),Y:s("d_"),V:s("e<@>"),Q:s("l"),B:s("bQ"),q:s("bR"),Z:s("hm"),O:s("bT"),k:s("bU"),U:s("bV"),x:s("c"),s:s("v"),b:s("v<@>"),T:s("an"),m:s("n"),g:s("O"),p:s("w<@>"),j:s("i<@>"),f:s("au<@,@>"),P:s("q"),K:s("d"),L:s("hn"),l:s("A"),N:s("t"),R:s("f"),c:s("H"),D:s("c8"),w:s("c9"),e:s("ca"),E:s("cb"),o:s("aD"),I:s("a6<@>"),d:s("p<@>"),a:s("p"),F:s("aK"),y:s("fZ"),i:s("h"),z:s("@"),v:s("@(d)"),C:s("@(d,A)"),S:s("a"),A:s("0&*"),_:s("d*"),W:s("a2?"),X:s("d?"),H:s("hd"),n:s("~"),u:s("~(d)"),h:s("~(d,A)")}})();(function constants(){B.o=J.b8.prototype
-B.p=J.v.prototype
-B.q=J.am.prototype
-B.r=J.O.prototype
-B.t=J.aq.prototype
-B.e=J.bp.prototype
-B.b=J.aD.prototype
+var t=(function rtii(){var s=A.dW
+return{J:s("cN"),Y:s("cO"),V:s("e<@>"),Q:s("l"),B:s("bJ"),q:s("bK"),Z:s("h7"),O:s("bL"),k:s("bM"),U:s("bN"),x:s("c"),s:s("u"),b:s("u<@>"),T:s("ak"),m:s("n"),g:s("L"),p:s("v<@>"),j:s("i<@>"),P:s("q"),K:s("d"),L:s("h9"),l:s("y"),N:s("V"),R:s("f"),c:s("F"),D:s("bY"),w:s("bZ"),e:s("c_"),E:s("c0"),o:s("ay"),I:s("a4<@>"),d:s("p<@>"),a:s("p"),F:s("aF"),y:s("fK"),i:s("h"),z:s("@"),v:s("@(d)"),C:s("@(d,y)"),S:s("a"),A:s("0&*"),_:s("d*"),W:s("a_?"),X:s("d?"),H:s("h_"),n:s("~"),u:s("~(d)"),f:s("~(d,y)")}})();(function constants(){B.n=J.b2.prototype
+B.o=J.u.prototype
+B.p=J.aj.prototype
+B.q=J.L.prototype
+B.r=J.an.prototype
+B.e=J.bi.prototype
+B.b=J.ay.prototype
B.c=function getTagFallback(o) {
var s = Object.prototype.toString.call(o);
return s.substring(8, s.length - 1);
@@ -2902,52 +2797,51 @@ B.i=function(hooks) {
}
B.d=function(hooks) { return hooks; }
-B.m=new A.bX()
-B.a=new A.cx()
-B.n=new A.bG()
-B.u=new A.bY(null)
-B.v=A.E("cZ")
-B.w=A.E("d_")
-B.x=A.E("bQ")
-B.y=A.E("bR")
-B.z=A.E("bT")
-B.A=A.E("bU")
-B.B=A.E("bV")
-B.C=A.E("c8")
-B.D=A.E("c9")
-B.E=A.E("ca")
-B.F=A.E("cb")})();(function staticFields(){$.cv=null
-$.x=A.aZ([],A.e7("v"))
-$.dv=null
-$.dq=null
-$.dp=null
-$.e9=null
-$.e3=null
-$.ee=null
-$.cP=null
-$.cT=null
-$.dc=null
-$.ac=null
-$.aX=null
-$.aY=null
-$.d7=!1
+B.a=new A.cm()
+B.m=new A.bx()
+B.t=A.z("cN")
+B.u=A.z("cO")
+B.v=A.z("bJ")
+B.w=A.z("bK")
+B.x=A.z("bL")
+B.y=A.z("bM")
+B.z=A.z("bN")
+B.A=A.z("n")
+B.B=A.z("bY")
+B.C=A.z("bZ")
+B.D=A.z("c_")
+B.E=A.z("c0")})();(function staticFields(){$.ck=null
+$.w=A.bD([],A.dW("u"))
+$.dj=null
+$.df=null
+$.de=null
+$.dY=null
+$.dT=null
+$.e1=null
+$.cD=null
+$.cH=null
+$.d1=null
+$.ab=null
+$.aS=null
+$.aT=null
+$.cW=!1
$.k=B.a})();(function lazyInitializers(){var s=hunkHelpers.lazyFinal
-s($,"hl","dj",()=>A.h2("_$dart_dartClosure"))
-s($,"hp","eh",()=>A.I(A.c7({
+s($,"h6","d8",()=>A.fO("_$dart_dartClosure"))
+s($,"hb","e4",()=>A.G(A.bX({
toString:function(){return"$receiver$"}})))
-s($,"hq","ei",()=>A.I(A.c7({$method$:null,
+s($,"hc","e5",()=>A.G(A.bX({$method$:null,
toString:function(){return"$receiver$"}})))
-s($,"hr","ej",()=>A.I(A.c7(null)))
-s($,"hs","ek",()=>A.I(function(){var $argumentsExpr$="$arguments$"
+s($,"hd","e6",()=>A.G(A.bX(null)))
+s($,"he","e7",()=>A.G(function(){var $argumentsExpr$="$arguments$"
try{null.$method$($argumentsExpr$)}catch(r){return r.message}}()))
-s($,"hv","en",()=>A.I(A.c7(void 0)))
-s($,"hw","eo",()=>A.I(function(){var $argumentsExpr$="$arguments$"
+s($,"hh","ea",()=>A.G(A.bX(void 0)))
+s($,"hi","eb",()=>A.G(function(){var $argumentsExpr$="$arguments$"
try{(void 0).$method$($argumentsExpr$)}catch(r){return r.message}}()))
-s($,"hu","em",()=>A.I(A.dB(null)))
-s($,"ht","el",()=>A.I(function(){try{null.$method$}catch(r){return r.message}}()))
-s($,"hy","eq",()=>A.I(A.dB(void 0)))
-s($,"hx","ep",()=>A.I(function(){try{(void 0).$method$}catch(r){return r.message}}()))
-s($,"hz","dk",()=>A.eR())})();(function nativeSupport(){!function(){var s=function(a){var m={}
+s($,"hg","e9",()=>A.G(A.dq(null)))
+s($,"hf","e8",()=>A.G(function(){try{null.$method$}catch(r){return r.message}}()))
+s($,"hk","ed",()=>A.G(A.dq(void 0)))
+s($,"hj","ec",()=>A.G(function(){try{(void 0).$method$}catch(r){return r.message}}()))
+s($,"hl","d9",()=>A.eD())})();(function nativeSupport(){!function(){var s=function(a){var m={}
m[a]=1
return Object.keys(hunkHelpers.convertToFastObject(m))[0]}
v.getIsolateTag=function(a){return s("___dart_"+a+v.isolateTag)}
@@ -2958,15 +2852,15 @@ for(var o=0;;o++){var n=s(p+"_"+o+"_")
if(!(n in q)){q[n]=1
v.isolateTag=n
break}}v.dispatchPropertyName=v.getIsolateTag("dispatch_record")}()
-hunkHelpers.setOrUpdateInterceptorsByTag({ArrayBuffer:A.bf,ArrayBufferView:A.ax,DataView:A.bg,Float32Array:A.bh,Float64Array:A.bi,Int16Array:A.bj,Int32Array:A.bk,Int8Array:A.bl,Uint16Array:A.bm,Uint32Array:A.bn,Uint8ClampedArray:A.ay,CanvasPixelArray:A.ay,Uint8Array:A.bo})
+hunkHelpers.setOrUpdateInterceptorsByTag({ArrayBuffer:A.b8,ArrayBufferView:A.as,DataView:A.b9,Float32Array:A.ba,Float64Array:A.bb,Int16Array:A.bc,Int32Array:A.bd,Int8Array:A.be,Uint16Array:A.bf,Uint32Array:A.bg,Uint8ClampedArray:A.at,CanvasPixelArray:A.at,Uint8Array:A.bh})
hunkHelpers.setOrUpdateLeafTags({ArrayBuffer:true,ArrayBufferView:false,DataView:true,Float32Array:true,Float64Array:true,Int16Array:true,Int32Array:true,Int8Array:true,Uint16Array:true,Uint32Array:true,Uint8ClampedArray:true,CanvasPixelArray:true,Uint8Array:false})
-A.a4.$nativeSuperclassTag="ArrayBufferView"
-A.aL.$nativeSuperclassTag="ArrayBufferView"
-A.aM.$nativeSuperclassTag="ArrayBufferView"
-A.av.$nativeSuperclassTag="ArrayBufferView"
-A.aN.$nativeSuperclassTag="ArrayBufferView"
-A.aO.$nativeSuperclassTag="ArrayBufferView"
-A.aw.$nativeSuperclassTag="ArrayBufferView"})()
+A.a2.$nativeSuperclassTag="ArrayBufferView"
+A.aG.$nativeSuperclassTag="ArrayBufferView"
+A.aH.$nativeSuperclassTag="ArrayBufferView"
+A.aq.$nativeSuperclassTag="ArrayBufferView"
+A.aI.$nativeSuperclassTag="ArrayBufferView"
+A.aJ.$nativeSuperclassTag="ArrayBufferView"
+A.ar.$nativeSuperclassTag="ArrayBufferView"})()
Function.prototype.$1=function(a){return this(a)}
Function.prototype.$0=function(){return this()}
Function.prototype.$2=function(a,b){return this(a,b)}
@@ -2978,6 +2872,6 @@ convertToFastObject($);(function(a){if(typeof document==="undefined"){a(null)
return}if(typeof document.currentScript!="undefined"){a(document.currentScript)
return}var s=document.scripts
function onLoad(b){for(var q=0;q