Delay edits to work around lack of millisecond precision in `stat` and migrate `pageSource` tests to use console logs (#2670)

Currently, CI is red due to two issues on Windows:

- hot_reload_breakpoints_test: On Windows, dart:io doesn't have enough precision to provide a millisecond-based stat. Instead, it just rounds to the nearest second. We use this to determine what files were modified in a recompile whereas we use DateTime.now (which does have millisecond precision) to mark the timestamp of the previous compile. This then potentially leads to frontend_server_common mistakenly not recompiling some files.

To fix this, we stage all the edits at once (if possible) and delay for 1 second to guarantee that stat will always give a time after the previous compile if the file was modified.

- hot_reload_test: This and a number of tests use innerHTML, document.body.append, and the pageSource API to modify the page text and then read it. A previous race condition where we tried to compute the page before main was done executing was resolved by waiting for a log at the end of main. However, this is insufficient, because the changes to the page still may not bubble up by the time we try to calculate the page source, which was the issue with hot_reload_test.

We could do a busy-loop calculating the page until we get the text we want, but that's erroneous and a better solution is to just use console logs, which fixes the original issue. As part of this, a WebkitDebugger is always initialized in the test context so we can inspect console logs regardless of whether DWDS debugging is enabled.
diff --git a/dwds/CHANGELOG.md b/dwds/CHANGELOG.md
index 1a87732..75723bc 100644
--- a/dwds/CHANGELOG.md
+++ b/dwds/CHANGELOG.md
@@ -1,3 +1,5 @@
+## 25.1.0-wip
+
 ## 25.0.3
 
 ### Bug Fixes:
diff --git a/dwds/lib/src/injected/client.js b/dwds/lib/src/injected/client.js
index cb3b4b4..9ec7775 100644
--- a/dwds/lib/src/injected/client.js
+++ b/dwds/lib/src/injected/client.js
@@ -1,4 +1,4 @@
-// Generated by dart2js (, csp, intern-composite-values), the Dart to JavaScript compiler version: 3.9.0.
+// Generated by dart2js (, csp, intern-composite-values), the Dart to JavaScript compiler version: 3.9.0-333.4.beta.
 // The code supports the following hooks:
 // dartPrint(message):
 //    if this function is defined it is called instead of the Dart [print]
@@ -388,22 +388,6 @@
         return J.UnknownJavaScriptObject.prototype;
       return receiver;
     },
-    getInterceptor$x(receiver) {
-      if (receiver == null)
-        return receiver;
-      if (typeof receiver != "object") {
-        if (typeof receiver == "function")
-          return J.JavaScriptFunction.prototype;
-        if (typeof receiver == "symbol")
-          return J.JavaScriptSymbol.prototype;
-        if (typeof receiver == "bigint")
-          return J.JavaScriptBigInt.prototype;
-        return receiver;
-      }
-      if (receiver instanceof A.Object)
-        return receiver;
-      return J.getNativeInterceptor(receiver);
-    },
     set$length$asx(receiver, value) {
       return J.getInterceptor$asx(receiver).set$length(receiver, value);
     },
@@ -454,9 +438,6 @@
     allMatches$2$s(receiver, a0, a1) {
       return J.getInterceptor$s(receiver).allMatches$2(receiver, a0, a1);
     },
-    asUint8List$2$x(receiver, a0, a1) {
-      return J.getInterceptor$x(receiver).asUint8List$2(receiver, a0, a1);
-    },
     cast$1$0$ax(receiver, $T1) {
       return J.getInterceptor$ax(receiver).cast$1$0(receiver, $T1);
     },
@@ -2236,9 +2217,6 @@
       this._name = t0;
       this.__late_helper$_value = null;
     },
-    _checkLength($length) {
-      return $length;
-    },
     _ensureNativeList(list) {
       var t1, result, i;
       if (type$.JSIndexable_dynamic._is(list))
@@ -2283,9 +2261,6 @@
     },
     NativeTypedData: function NativeTypedData() {
     },
-    _UnmodifiableNativeByteBufferView: function _UnmodifiableNativeByteBufferView(t0) {
-      this._data = t0;
-    },
     NativeByteData: function NativeByteData() {
     },
     NativeTypedArray: function NativeTypedArray() {
@@ -3903,78 +3878,6 @@
       }($function, 1);
       return $.Zone__current.registerBinaryCallback$3$1(new A._wrapJsFunctionForAsync_closure($protected), type$.void, type$.int, type$.dynamic);
     },
-    _asyncStarHelper(object, bodyFunctionOrErrorCode, controller) {
-      var t1, t2, t3,
-        _s10_ = "controller";
-      if (bodyFunctionOrErrorCode === 0) {
-        t1 = controller.cancelationFuture;
-        if (t1 != null)
-          t1._completeWithValue$1(null);
-        else {
-          t1 = controller.___AsyncStarStreamController_controller_A;
-          t1 === $ && A.throwLateFieldNI(_s10_);
-          t1.close$0();
-        }
-        return;
-      } else if (bodyFunctionOrErrorCode === 1) {
-        t1 = controller.cancelationFuture;
-        if (t1 != null) {
-          t2 = A.unwrapException(object);
-          t3 = A.getTraceFromException(object);
-          t1._completeErrorObject$1(new A.AsyncError(t2, t3));
-        } else {
-          t1 = A.unwrapException(object);
-          t2 = A.getTraceFromException(object);
-          t3 = controller.___AsyncStarStreamController_controller_A;
-          t3 === $ && A.throwLateFieldNI(_s10_);
-          t3.addError$2(t1, t2);
-          controller.___AsyncStarStreamController_controller_A.close$0();
-        }
-        return;
-      }
-      type$.void_Function_int_dynamic._as(bodyFunctionOrErrorCode);
-      if (object instanceof A._IterationMarker) {
-        if (controller.cancelationFuture != null) {
-          bodyFunctionOrErrorCode.call$2(2, null);
-          return;
-        }
-        t1 = object.state;
-        if (t1 === 0) {
-          t1 = object.value;
-          t2 = controller.___AsyncStarStreamController_controller_A;
-          t2 === $ && A.throwLateFieldNI(_s10_);
-          t2.add$1(0, controller.$ti._precomputed1._as(t1));
-          A.scheduleMicrotask(new A._asyncStarHelper_closure(controller, bodyFunctionOrErrorCode));
-          return;
-        } else if (t1 === 1) {
-          t1 = controller.$ti._eval$1("Stream<1>")._as(type$.Stream_dynamic._as(object.value));
-          t2 = controller.___AsyncStarStreamController_controller_A;
-          t2 === $ && A.throwLateFieldNI(_s10_);
-          t2.addStream$2$cancelOnError(t1, false).then$1$1(new A._asyncStarHelper_closure0(controller, bodyFunctionOrErrorCode), type$.Null);
-          return;
-        }
-      }
-      A._awaitOnObject(object, bodyFunctionOrErrorCode);
-    },
-    _streamOfController(controller) {
-      var t1 = controller.___AsyncStarStreamController_controller_A;
-      t1 === $ && A.throwLateFieldNI("controller");
-      return new A._ControllerStream(t1, A._instanceType(t1)._eval$1("_ControllerStream<1>"));
-    },
-    _AsyncStarStreamController$(body, $T) {
-      var t1 = new A._AsyncStarStreamController($T._eval$1("_AsyncStarStreamController<0>"));
-      t1._AsyncStarStreamController$1(body, $T);
-      return t1;
-    },
-    _makeAsyncStarStreamController(body, $T) {
-      return A._AsyncStarStreamController$(body, $T);
-    },
-    _IterationMarker_yieldStar(values) {
-      return new A._IterationMarker(values, 1);
-    },
-    _IterationMarker_yieldSingle(value) {
-      return new A._IterationMarker(value, 0);
-    },
     AsyncError_defaultStackTrace(error) {
       var stackTrace;
       if (type$.Error._is(error)) {
@@ -4274,12 +4177,21 @@
       t1 = $.Zone__current;
       t1.scheduleMicrotask$1(t1.bindCallbackGuarded$1(callback));
     },
+    Stream_Stream$value(value, $T) {
+      var _null = null,
+        t1 = $T._eval$1("_AsyncStreamController<0>"),
+        t2 = new A._AsyncStreamController(_null, _null, _null, _null, t1);
+      t2._add$1(value);
+      t2._closeUnchecked$0();
+      return new A._ControllerStream(t2, t1._eval$1("_ControllerStream<1>"));
+    },
     StreamIterator_StreamIterator(stream, $T) {
       A.checkNotNullable(stream, "stream", type$.Object);
       return new A._StreamIterator($T._eval$1("_StreamIterator<0>"));
     },
-    StreamController_StreamController(onCancel, onListen, onResume, sync, $T) {
-      return sync ? new A._SyncStreamController(onListen, null, onResume, onCancel, $T._eval$1("_SyncStreamController<0>")) : new A._AsyncStreamController(onListen, null, onResume, onCancel, $T._eval$1("_AsyncStreamController<0>"));
+    StreamController_StreamController(onCancel, onListen, sync, $T) {
+      var _null = null;
+      return sync ? new A._SyncStreamController(onListen, _null, _null, onCancel, $T._eval$1("_SyncStreamController<0>")) : new A._AsyncStreamController(onListen, _null, _null, onCancel, $T._eval$1("_AsyncStreamController<0>"));
     },
     _runGuarded(notificationHandler) {
       var e, s, exception;
@@ -4293,9 +4205,6 @@
         $.Zone__current.handleUncaughtError$2(e, s);
       }
     },
-    _AddStreamState_makeErrorHandler(controller) {
-      return new A._AddStreamState_makeErrorHandler_closure(controller);
-    },
     _BufferingStreamSubscription__registerDataHandler(zone, handleData, $T) {
       var t1 = handleData == null ? A.async___nullDataHandler$closure() : handleData;
       return zone.registerUnaryCallback$2$1(t1, type$.void, $T);
@@ -4515,45 +4424,6 @@
     _wrapJsFunctionForAsync_closure: function _wrapJsFunctionForAsync_closure(t0) {
       this.$protected = t0;
     },
-    _asyncStarHelper_closure: function _asyncStarHelper_closure(t0, t1) {
-      this.controller = t0;
-      this.bodyFunction = t1;
-    },
-    _asyncStarHelper_closure0: function _asyncStarHelper_closure0(t0, t1) {
-      this.controller = t0;
-      this.bodyFunction = t1;
-    },
-    _AsyncStarStreamController: function _AsyncStarStreamController(t0) {
-      var _ = this;
-      _.___AsyncStarStreamController_controller_A = $;
-      _.isSuspended = false;
-      _.cancelationFuture = null;
-      _.$ti = t0;
-    },
-    _AsyncStarStreamController__resumeBody: function _AsyncStarStreamController__resumeBody(t0) {
-      this.body = t0;
-    },
-    _AsyncStarStreamController__resumeBody_closure: function _AsyncStarStreamController__resumeBody_closure(t0) {
-      this.body = t0;
-    },
-    _AsyncStarStreamController_closure0: function _AsyncStarStreamController_closure0(t0) {
-      this._resumeBody = t0;
-    },
-    _AsyncStarStreamController_closure1: function _AsyncStarStreamController_closure1(t0, t1) {
-      this.$this = t0;
-      this._resumeBody = t1;
-    },
-    _AsyncStarStreamController_closure: function _AsyncStarStreamController_closure(t0, t1) {
-      this.$this = t0;
-      this.body = t1;
-    },
-    _AsyncStarStreamController__closure: function _AsyncStarStreamController__closure(t0) {
-      this.body = t0;
-    },
-    _IterationMarker: function _IterationMarker(t0, t1) {
-      this.value = t0;
-      this.state = t1;
-    },
     AsyncError: function AsyncError(t0, t1) {
       this.error = t0;
       this.stackTrace = t1;
@@ -4723,21 +4593,6 @@
       this._async$_target = t0;
       this.$ti = t1;
     },
-    _AddStreamState: function _AddStreamState() {
-    },
-    _AddStreamState_makeErrorHandler_closure: function _AddStreamState_makeErrorHandler_closure(t0) {
-      this.controller = t0;
-    },
-    _AddStreamState_cancel_closure: function _AddStreamState_cancel_closure(t0) {
-      this.$this = t0;
-    },
-    _StreamControllerAddStreamState: function _StreamControllerAddStreamState(t0, t1, t2, t3) {
-      var _ = this;
-      _._varData = t0;
-      _.addStreamFuture = t1;
-      _.addSubscription = t2;
-      _.$ti = t3;
-    },
     _BufferingStreamSubscription: function _BufferingStreamSubscription() {
     },
     _BufferingStreamSubscription_asFuture_closure: function _BufferingStreamSubscription_asFuture_closure(t0, t1) {
@@ -5131,7 +4986,7 @@
     },
     _LinkedHashSetCell: function _LinkedHashSetCell(t0) {
       this._element = t0;
-      this._collection$_next = null;
+      this._collection$_previous = this._collection$_next = null;
     },
     _LinkedHashSetIterator: function _LinkedHashSetIterator(t0, t1, t2) {
       var _ = this;
@@ -5618,7 +5473,7 @@
     _JsonMap: function _JsonMap(t0, t1) {
       this._original = t0;
       this._processed = t1;
-      this._convert$_data = null;
+      this._data = null;
     },
     _JsonMapKeyIterable: function _JsonMapKeyIterable(t0) {
       this._parent = t0;
@@ -7790,17 +7645,6 @@
         return callback.call$1(arg1);
       return callback.call$0();
     },
-    _callDartFunctionFast3(callback, arg1, arg2, arg3, $length) {
-      type$.Function._as(callback);
-      A._asInt($length);
-      if ($length >= 3)
-        return callback.call$3(arg1, arg2, arg3);
-      if ($length === 2)
-        return callback.call$2(arg1, arg2);
-      if ($length === 1)
-        return callback.call$1(arg1);
-      return callback.call$0();
-    },
     _noJsifyRequired(o) {
       return o == null || A._isBool(o) || typeof o == "number" || typeof o == "string" || type$.Int8List._is(o) || type$.Uint8List._is(o) || type$.Uint8ClampedList._is(o) || type$.Int16List._is(o) || type$.Uint16List._is(o) || type$.Int32List._is(o) || type$.Uint32List._is(o) || type$.Float32List._is(o) || type$.Float64List._is(o) || type$.ByteBuffer._is(o) || type$.ByteData._is(o);
     },
@@ -7871,9 +7715,6 @@
     },
     _JSRandom: function _JSRandom() {
     },
-    _JSSecureRandom: function _JSSecureRandom(t0) {
-      this._math$_buffer = t0;
-    },
     AsyncMemoizer: function AsyncMemoizer(t0, t1) {
       this._async_memoizer$_completer = t0;
       this.$ti = t1;
@@ -8956,10 +8797,6 @@
       this.iterator = t1;
       this.$ti = t2;
     },
-    RequestAbortedException: function RequestAbortedException(t0, t1) {
-      this.message = t0;
-      this.uri = t1;
-    },
     BaseClient: function BaseClient() {
     },
     BaseRequest: function BaseRequest() {
@@ -8970,162 +8807,39 @@
     },
     BaseResponse: function BaseResponse() {
     },
-    _rethrowAsClientException(e, st, request) {
-      var t1, message;
-      if (type$.JSObject._is(e))
-        t1 = A._asString(e.name) === "AbortError";
-      else
-        t1 = false;
-      if (t1)
-        A.Error_throwWithStackTrace(new A.RequestAbortedException("Request aborted by `abortTrigger`", request.url), st);
-      if (!(e instanceof A.ClientException)) {
-        message = J.toString$0$(e);
-        if (B.JSString_methods.startsWith$1(message, "TypeError: "))
-          message = B.JSString_methods.substring$1(message, 11);
-        e = new A.ClientException(message, request.url);
+    _extension_0_get_responseHeaders(_this) {
+      var _i, header, splitIdx, key, value,
+        t1 = type$.String,
+        headers = A.LinkedHashMap_LinkedHashMap$_empty(t1, t1),
+        headersList = A._asString(_this.getAllResponseHeaders()).split("\r\n");
+      for (t1 = headersList.length, _i = 0; _i < t1; ++_i) {
+        header = headersList[_i];
+        if (header.length === 0)
+          continue;
+        splitIdx = B.JSString_methods.indexOf$1(header, ": ");
+        if (splitIdx === -1)
+          continue;
+        key = B.JSString_methods.substring$2(header, 0, splitIdx).toLowerCase();
+        value = B.JSString_methods.substring$1(header, splitIdx + 2);
+        if (headers.containsKey$1(key))
+          headers.$indexSet(0, key, A.S(headers.$index(0, key)) + ", " + value);
+        else
+          headers.$indexSet(0, key, value);
       }
-      A.Error_throwWithStackTrace(e, st);
-    },
-    _readBody(request, response) {
-      return A._readBody$body(request, response);
-    },
-    _readBody$body(request, response) {
-      var $async$_readBody = A._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
-        switch ($async$errorCode) {
-          case 2:
-            $async$next = $async$nextWhenCanceled;
-            $async$goto = $async$next.pop();
-            break;
-          case 1:
-            $async$errorStack.push($async$result);
-            $async$goto = $async$handler;
-        }
-        while (true)
-          switch ($async$goto) {
-            case 0:
-              // Function start
-              _box_0 = {};
-              t1 = A._asJSObjectQ(response.body);
-              bodyStreamReader = t1 == null ? null : A._asJSObject(t1.getReader());
-              if (bodyStreamReader == null) {
-                // goto return
-                $async$goto = 1;
-                break;
-              }
-              isDone = false;
-              _box_0.isError = false;
-              $async$handler = 4;
-              t1 = type$.NativeUint8List, t2 = type$.JSObject;
-            case 7:
-              // for condition
-              // trivial condition
-              $async$goto = 9;
-              return A._asyncStarHelper(A.promiseToFuture(A._asJSObject(bodyStreamReader.read()), t2), $async$_readBody, $async$controller);
-            case 9:
-              // returning from await.
-              chunk = $async$result;
-              if (A._asBool(chunk.done)) {
-                isDone = true;
-                // goto after for
-                $async$goto = 8;
-                break;
-              }
-              t3 = chunk.value;
-              t3.toString;
-              $async$goto = 10;
-              $async$nextWhenCanceled = [1, 5];
-              return A._asyncStarHelper(A._IterationMarker_yieldSingle(t1._as(t3)), $async$_readBody, $async$controller);
-            case 10:
-              // after yield
-              // goto for condition
-              $async$goto = 7;
-              break;
-            case 8:
-              // after for
-              $async$next.push(6);
-              // goto finally
-              $async$goto = 5;
-              break;
-            case 4:
-              // catch
-              $async$handler = 3;
-              $async$exception = $async$errorStack.pop();
-              e = A.unwrapException($async$exception);
-              st = A.getTraceFromException($async$exception);
-              _box_0.isError = true;
-              A._rethrowAsClientException(e, st, request);
-              $async$next.push(6);
-              // goto finally
-              $async$goto = 5;
-              break;
-            case 3:
-              // uncaught
-              $async$next = [2];
-            case 5:
-              // finally
-              $async$handler = 2;
-              $async$goto = !isDone ? 11 : 12;
-              break;
-            case 11:
-              // then
-              $async$handler = 14;
-              $async$goto = 17;
-              return A._asyncStarHelper(A.promiseToFuture(A._asJSObject(bodyStreamReader.cancel()), type$.nullable_Object).catchError$2$test(new A._readBody_closure(), new A._readBody_closure0(_box_0)), $async$_readBody, $async$controller);
-            case 17:
-              // returning from await.
-              $async$handler = 2;
-              // goto after finally
-              $async$goto = 16;
-              break;
-            case 14:
-              // catch
-              $async$handler = 13;
-              $async$exception1 = $async$errorStack.pop();
-              e0 = A.unwrapException($async$exception1);
-              st0 = A.getTraceFromException($async$exception1);
-              if (!_box_0.isError)
-                A._rethrowAsClientException(e0, st0, request);
-              // goto after finally
-              $async$goto = 16;
-              break;
-            case 13:
-              // uncaught
-              // goto rethrow
-              $async$goto = 2;
-              break;
-            case 16:
-              // after finally
-            case 12:
-              // join
-              // goto the next finally handler
-              $async$goto = $async$next.pop();
-              break;
-            case 6:
-              // after finally
-            case 1:
-              // return
-              return A._asyncStarHelper(null, 0, $async$controller);
-            case 2:
-              // rethrow
-              return A._asyncStarHelper($async$errorStack.at(-1), 1, $async$controller);
-          }
-      });
-      var $async$goto = 0,
-        $async$controller = A._makeAsyncStarStreamController($async$_readBody, type$.List_int),
-        $async$nextWhenCanceled, $async$handler = 2, $async$errorStack = [], $async$next = [], isDone, chunk, e, st, e0, st0, t2, t3, exception, _box_0, t1, bodyStreamReader, $async$exception, $async$exception1;
-      return A._streamOfController($async$controller);
+      return headers;
     },
     BrowserClient: function BrowserClient(t0) {
+      this._xhrs = t0;
       this.withCredentials = false;
-      this._openRequestAbortControllers = t0;
     },
-    BrowserClient_send_closure: function BrowserClient_send_closure(t0) {
-      this.headers = t0;
+    BrowserClient_send_closure: function BrowserClient_send_closure(t0, t1, t2) {
+      this.xhr = t0;
+      this.completer = t1;
+      this.request = t2;
     },
-    _readBody_closure: function _readBody_closure() {
-    },
-    _readBody_closure0: function _readBody_closure0(t0) {
-      this._box_0 = t0;
+    BrowserClient_send_closure0: function BrowserClient_send_closure0(t0, t1) {
+      this.completer = t0;
+      this.request = t1;
     },
     ByteStream: function ByteStream(t0) {
       this._stream = t0;
@@ -9133,9 +8847,6 @@
     ByteStream_toBytes_closure: function ByteStream_toBytes_closure(t0) {
       this.completer = t0;
     },
-    ClientException$(message, uri) {
-      return new A.ClientException(message, uri);
-    },
     ClientException: function ClientException(t0, t1) {
       this.message = t0;
       this.uri = t1;
@@ -9714,11 +9425,11 @@
     SseClient$(serverUrl, debugKey) {
       var t3, t4, t5, _null = null,
         t1 = type$.String,
-        t2 = A.StreamController_StreamController(_null, _null, _null, false, t1);
-      t1 = A.StreamController_StreamController(_null, _null, _null, false, t1);
+        t2 = A.StreamController_StreamController(_null, _null, false, t1);
+      t1 = A.StreamController_StreamController(_null, _null, false, t1);
       t3 = A.Logger_Logger("SseClient");
       t4 = $.Zone__current;
-      t5 = A.generateId();
+      t5 = A.generateUuidV4();
       t1 = new A.SseClient(debugKey + "-" + t5, t2, t1, t3, new A._AsyncCompleter(new A._Future(t4, type$._Future_void), type$._AsyncCompleter_void));
       t1.SseClient$2$debugKey(serverUrl, debugKey);
       return t1;
@@ -9752,6 +9463,21 @@
       this.$this = t1;
       this.message = t2;
     },
+    generateUuidV4() {
+      var t1 = new A.generateUuidV4_printDigits(),
+        t2 = new A.generateUuidV4_bitsDigits(t1, new A.generateUuidV4_generateBits(B.C__JSRandom)),
+        t3 = B.C__JSRandom.nextInt$1(4);
+      return A.S(t2.call$2(16, 4)) + A.S(t2.call$2(16, 4)) + "-" + A.S(t2.call$2(16, 4)) + "-4" + A.S(t2.call$2(12, 3)) + "-" + A.S(t1.call$2(8 + t3, 1)) + A.S(t2.call$2(12, 3)) + "-" + A.S(t2.call$2(16, 4)) + A.S(t2.call$2(16, 4)) + A.S(t2.call$2(16, 4));
+    },
+    generateUuidV4_generateBits: function generateUuidV4_generateBits(t0) {
+      this.random = t0;
+    },
+    generateUuidV4_printDigits: function generateUuidV4_printDigits() {
+    },
+    generateUuidV4_bitsDigits: function generateUuidV4_bitsDigits(t0, t1) {
+      this.printDigits = t0;
+      this.generateBits = t1;
+    },
     GuaranteeChannel$(innerStream, innerSink, allowSinkErrors, $T) {
       var t2, t1 = {};
       t1.innerStream = innerStream;
@@ -9804,9 +9530,13 @@
       _._string_scanner$_position = 0;
       _._lastMatchPosition = _._lastMatch = null;
     },
+    MathRNG$() {
+      return new A.MathRNG(B.C__JSRandom);
+    },
     RNG: function RNG() {
     },
-    CryptoRNG: function CryptoRNG() {
+    MathRNG: function MathRNG(t0) {
+      this._rnd = t0;
     },
     UuidV1: function UuidV1(t0) {
       this.goptions = t0;
@@ -9875,14 +9605,15 @@
               t1 = type$.JSArray_nullable_Object._as(new t1());
               webSocket = A._asJSObject(new t2(t3, t1));
               webSocket.binaryType = "arraybuffer";
-              browserSocket = new A.BrowserWebSocket(webSocket, A.StreamController_StreamController(null, null, null, false, type$.WebSocketEvent));
+              browserSocket = new A.BrowserWebSocket(webSocket, A.StreamController_StreamController(null, null, false, type$.WebSocketEvent));
               t1 = new A._Future($.Zone__current, type$._Future_BrowserWebSocket);
               webSocketConnected = new A._AsyncCompleter(t1, type$._AsyncCompleter_BrowserWebSocket);
               if (A._asInt(webSocket.readyState) === 1)
                 webSocketConnected.complete$1(browserSocket);
-              else if (A._asInt(webSocket.readyState) === 2 || A._asInt(webSocket.readyState) === 3)
-                webSocketConnected.completeError$1(new A.WebSocketException("Unexpected WebSocket state: " + A._asInt(webSocket.readyState) + ", expected CONNECTING (0) or OPEN (1)"));
-              else
+              else if (A._asInt(webSocket.readyState) === 2 || A._asInt(webSocket.readyState) === 3) {
+                A._asInt(webSocket.readyState);
+                webSocketConnected.completeError$1(new A.WebSocketException());
+              } else
                 new A._EventStream(webSocket, "open", false, type$._EventStream_JSObject).get$first(0).then$1$1(new A.BrowserWebSocket_connect_closure(webSocketConnected, browserSocket), type$.void);
               t2 = type$._EventStream_JSObject;
               t3 = type$.void;
@@ -9920,7 +9651,7 @@
       this.browserSocket = t1;
     },
     WebSocketConnectionClosed$() {
-      return new A.WebSocketConnectionClosed("Connection Closed");
+      return new A.WebSocketConnectionClosed();
     },
     WebSocketEvent: function WebSocketEvent() {
     },
@@ -9934,19 +9665,17 @@
       this.code = t0;
       this.reason = t1;
     },
-    WebSocketException: function WebSocketException(t0) {
-      this.message = t0;
+    WebSocketException: function WebSocketException() {
     },
-    WebSocketConnectionClosed: function WebSocketConnectionClosed(t0) {
-      this.message = t0;
+    WebSocketConnectionClosed: function WebSocketConnectionClosed() {
     },
     AdapterWebSocketChannel$(webSocket) {
       var _null = null,
         t1 = $.Zone__current,
         t2 = new A.StreamChannelController(type$.StreamChannelController_nullable_Object),
         t3 = type$.nullable_Object,
-        localToForeignController = A.StreamController_StreamController(_null, _null, _null, true, t3),
-        foreignToLocalController = A.StreamController_StreamController(_null, _null, _null, true, t3),
+        localToForeignController = A.StreamController_StreamController(_null, _null, true, t3),
+        foreignToLocalController = A.StreamController_StreamController(_null, _null, true, t3),
         t4 = A._instanceType(foreignToLocalController),
         t5 = A._instanceType(localToForeignController);
       t2.__StreamChannelController__local_F = A.GuaranteeChannel$(new A._ControllerStream(foreignToLocalController, t4._eval$1("_ControllerStream<1>")), new A._StreamSinkWrapper(localToForeignController, t5._eval$1("_StreamSinkWrapper<1>")), true, t3);
@@ -10042,14 +9771,14 @@
           switch ($async$goto) {
             case 0:
               // Function start
-              client = new A.BrowserClient(A._setArrayType([], type$.JSArray_JSObject));
+              client = new A.BrowserClient(A.LinkedHashSet_LinkedHashSet$_empty(type$.JSObject));
               client.withCredentials = true;
               $async$goto = 3;
               return A._asyncAwait(client._sendUnstreamed$3("GET", A.Uri_parse(authUrl), null), $async$_authenticateUser);
             case 3:
               // returning from await.
               response = $async$result;
-              $async$returnValue = B.JSString_methods.contains$1(A.encodingForContentTypeHeader(A._contentTypeForHeaders(response.headers)).decode$1(response.bodyBytes), "Dart Debug Authentication Success!");
+              $async$returnValue = B.JSString_methods.contains$1(A.encodingForCharset(A._contentTypeForHeaders(response.headers).parameters._collection$_map.$index(0, "charset")).decode$1(response.bodyBytes), "Dart Debug Authentication Success!");
               // goto return
               $async$goto = 1;
               break;
@@ -10588,24 +10317,18 @@
       else
         return 255;
     },
-    encodingForContentTypeHeader(contentTypeHeader) {
-      var t1,
-        charset = contentTypeHeader.parameters._collection$_map.$index(0, "charset");
-      if (contentTypeHeader.type === "application" && contentTypeHeader.subtype === "json" && charset == null)
-        return B.C_Utf8Codec;
-      if (charset != null) {
-        t1 = A.Encoding_getByName(charset);
-        if (t1 == null)
-          t1 = B.C_Latin1Codec;
-      } else
-        t1 = B.C_Latin1Codec;
-      return t1;
+    encodingForCharset(charset) {
+      var t1;
+      if (charset == null)
+        return B.C_Latin1Codec;
+      t1 = A.Encoding_getByName(charset);
+      return t1 == null ? B.C_Latin1Codec : t1;
     },
     toUint8List(input) {
       return input;
     },
     toByteStream(stream) {
-      return new A.ByteStream(stream);
+      return stream;
     },
     wrapFormatException($name, value, body, $T) {
       var error, error0, t1, exception;
@@ -10743,16 +10466,6 @@
       }
       return null;
     },
-    generateId() {
-      var i,
-        chars = A.List_List$filled(6, 0, false, type$.int),
-        bits = B.C__JSRandom.nextInt$1(4294967296);
-      for (i = 0; i < 6; ++i) {
-        B.JSArray_methods.$indexSet(chars, i, string$.ABCDEF.charCodeAt(bits & 63));
-        bits = bits >>> 6;
-      }
-      return A.String_String$fromCharCodes(chars, 0, null);
-    },
     UuidParsing_unparse(buffer) {
       var t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17,
         t1 = buffer.length;
@@ -10956,16 +10669,6 @@
         throw A.wrapException(A.diagnoseIndexError(receiver, -1));
       return receiver.pop();
     },
-    remove$1(receiver, element) {
-      var i;
-      receiver.$flags & 1 && A.throwUnsupportedOperation(receiver, "remove", 1);
-      for (i = 0; i < receiver.length; ++i)
-        if (J.$eq$(receiver[i], element)) {
-          receiver.splice(i, 1);
-          return true;
-        }
-      return false;
-    },
     _removeWhere$2(receiver, test, removeMatching) {
       var retained, end, i, element, t1;
       A._arrayInstanceType(receiver)._eval$1("bool(1)")._as(test);
@@ -11437,6 +11140,9 @@
         throw A.wrapException(A.argumentErrorValue(other));
       return other > 31 ? 0 : receiver << other >>> 0;
     },
+    _shlPositive$1(receiver, other) {
+      return other > 31 ? 0 : receiver << other >>> 0;
+    },
     $shr(receiver, other) {
       var t1;
       if (other < 0)
@@ -11821,7 +11527,7 @@
     call$0() {
       return A.Future_Future$value(null, type$.void);
     },
-    $signature: 19
+    $signature: 16
   };
   A.SentinelValue.prototype = {};
   A.EfficientLengthIterable.prototype = {};
@@ -12689,7 +12395,7 @@
       if (index < 0)
         return null;
       cell = bucket.splice(index, 1)[0];
-      _this._unlinkCell$1(cell);
+      _this.__js_helper$_unlinkCell$1(cell);
       if (bucket.length === 0)
         delete rest[hash];
       return cell.hashMapCellValue;
@@ -12724,7 +12430,7 @@
       cell = table[key];
       if (cell == null)
         return null;
-      this._unlinkCell$1(cell);
+      this.__js_helper$_unlinkCell$1(cell);
       delete table[key];
       return cell.hashMapCellValue;
     },
@@ -12747,7 +12453,7 @@
       _this._modified$0();
       return cell;
     },
-    _unlinkCell$1(cell) {
+    __js_helper$_unlinkCell$1(cell) {
       var _this = this,
         previous = cell._previous,
         next = cell._next;
@@ -12922,19 +12628,19 @@
     call$1(o) {
       return this.getTag(o);
     },
-    $signature: 6
+    $signature: 4
   };
   A.initHooks_closure0.prototype = {
     call$2(o, tag) {
       return this.getUnknownTag(o, tag);
     },
-    $signature: 93
+    $signature: 37
   };
   A.initHooks_closure1.prototype = {
     call$1(tag) {
       return this.prototypeForTag(A._asString(tag));
     },
-    $signature: 86
+    $signature: 36
   };
   A._Record.prototype = {
     get$runtimeType(_) {
@@ -13228,21 +12934,11 @@
     get$runtimeType(receiver) {
       return B.Type_ByteBuffer_rqD;
     },
-    asUint8List$2(receiver, offsetInBytes, $length) {
-      return $length == null ? new Uint8Array(receiver, offsetInBytes) : new Uint8Array(receiver, offsetInBytes, $length);
-    },
     $isTrustedGetRuntimeType: 1,
-    $isNativeByteBuffer: 1,
     $isByteBuffer: 1
   };
   A.NativeArrayBuffer.prototype = {$isNativeArrayBuffer: 1};
   A.NativeTypedData.prototype = {
-    get$buffer(receiver) {
-      if (((receiver.$flags | 0) & 2) !== 0)
-        return new A._UnmodifiableNativeByteBufferView(receiver.buffer);
-      else
-        return receiver.buffer;
-    },
     _invalidPosition$3(receiver, position, $length, $name) {
       var t1 = A.RangeError$range(position, 0, $length, $name, null);
       throw A.wrapException(t1);
@@ -13252,14 +12948,6 @@
         this._invalidPosition$3(receiver, position, $length, $name);
     }
   };
-  A._UnmodifiableNativeByteBufferView.prototype = {
-    asUint8List$2(_, offsetInBytes, $length) {
-      var result = A.NativeUint8List_NativeUint8List$view(this._data, offsetInBytes, $length);
-      result.$flags = 3;
-      return result;
-    },
-    $isByteBuffer: 1
-  };
   A.NativeByteData.prototype = {
     get$runtimeType(receiver) {
       return B.Type_ByteData_9dB;
@@ -13513,7 +13201,7 @@
       t1.storedCallback = null;
       f.call$0();
     },
-    $signature: 4
+    $signature: 6
   };
   A._AsyncRun__initializeScheduleImmediate_closure.prototype = {
     call$1(callback) {
@@ -13523,7 +13211,7 @@
       t2 = this.span;
       t1.firstChild ? t1.removeChild(t2) : t1.appendChild(t2);
     },
-    $signature: 69
+    $signature: 38
   };
   A._AsyncRun__scheduleImmediateJsOverride_internalCallback.prototype = {
     call$0() {
@@ -13629,98 +13317,13 @@
     call$2(error, stackTrace) {
       this.bodyFunction.call$2(1, new A.ExceptionAndStackTrace(error, type$.StackTrace._as(stackTrace)));
     },
-    $signature: 66
+    $signature: 57
   };
   A._wrapJsFunctionForAsync_closure.prototype = {
     call$2(errorCode, result) {
       this.$protected(A._asInt(errorCode), result);
     },
-    $signature: 64
-  };
-  A._asyncStarHelper_closure.prototype = {
-    call$0() {
-      var t3,
-        t1 = this.controller,
-        t2 = t1.___AsyncStarStreamController_controller_A;
-      t2 === $ && A.throwLateFieldNI("controller");
-      t3 = t2._state;
-      if ((t3 & 1) !== 0 ? (t2.get$_subscription()._state & 4) !== 0 : (t3 & 2) === 0) {
-        t1.isSuspended = true;
-        return;
-      }
-      t1 = t1.cancelationFuture != null ? 2 : 0;
-      this.bodyFunction.call$2(t1, null);
-    },
-    $signature: 0
-  };
-  A._asyncStarHelper_closure0.prototype = {
-    call$1(__wc0_formal) {
-      var errorCode = this.controller.cancelationFuture != null ? 2 : 0;
-      this.bodyFunction.call$2(errorCode, null);
-    },
-    $signature: 4
-  };
-  A._AsyncStarStreamController.prototype = {
-    _AsyncStarStreamController$1(body, $T) {
-      var _this = this,
-        t1 = new A._AsyncStarStreamController__resumeBody(body);
-      _this.___AsyncStarStreamController_controller_A = _this.$ti._eval$1("StreamController<1>")._as(A.StreamController_StreamController(new A._AsyncStarStreamController_closure(_this, body), new A._AsyncStarStreamController_closure0(t1), new A._AsyncStarStreamController_closure1(_this, t1), false, $T));
-    }
-  };
-  A._AsyncStarStreamController__resumeBody.prototype = {
-    call$0() {
-      A.scheduleMicrotask(new A._AsyncStarStreamController__resumeBody_closure(this.body));
-    },
-    $signature: 1
-  };
-  A._AsyncStarStreamController__resumeBody_closure.prototype = {
-    call$0() {
-      this.body.call$2(0, null);
-    },
-    $signature: 0
-  };
-  A._AsyncStarStreamController_closure0.prototype = {
-    call$0() {
-      this._resumeBody.call$0();
-    },
-    $signature: 0
-  };
-  A._AsyncStarStreamController_closure1.prototype = {
-    call$0() {
-      var t1 = this.$this;
-      if (t1.isSuspended) {
-        t1.isSuspended = false;
-        this._resumeBody.call$0();
-      }
-    },
-    $signature: 0
-  };
-  A._AsyncStarStreamController_closure.prototype = {
-    call$0() {
-      var t1 = this.$this,
-        t2 = t1.___AsyncStarStreamController_controller_A;
-      t2 === $ && A.throwLateFieldNI("controller");
-      if ((t2._state & 4) === 0) {
-        t1.cancelationFuture = new A._Future($.Zone__current, type$._Future_dynamic);
-        if (t1.isSuspended) {
-          t1.isSuspended = false;
-          A.scheduleMicrotask(new A._AsyncStarStreamController__closure(this.body));
-        }
-        return t1.cancelationFuture;
-      }
-    },
-    $signature: 59
-  };
-  A._AsyncStarStreamController__closure.prototype = {
-    call$0() {
-      this.body.call$2(2, null);
-    },
-    $signature: 0
-  };
-  A._IterationMarker.prototype = {
-    toString$0(_) {
-      return "IterationMarker(" + this.state + ", " + A.S(this.value) + ")";
-    }
+    $signature: 91
   };
   A.AsyncError.prototype = {
     toString$0(_) {
@@ -13859,23 +13462,14 @@
       this._addListener$1(new A._FutureListener(result, 19, f, onError, t1._eval$1("@<1>")._bind$1($E)._eval$1("_FutureListener<1,2>")));
       return result;
     },
-    catchError$2$test(onError, test) {
-      var t1, t2, result;
-      type$.nullable_bool_Function_Object._as(test);
-      t1 = this.$ti;
-      t2 = $.Zone__current;
-      result = new A._Future(t2, t1);
-      if (t2 !== B.C__RootZone) {
-        onError = A._registerErrorHandler(onError, t2);
-        if (test != null)
-          test = t2.registerUnaryCallback$2$1(test, type$.bool, type$.Object);
-      }
-      t2 = test == null ? 2 : 6;
-      this._addListener$1(new A._FutureListener(result, t2, test, onError, t1._eval$1("_FutureListener<1,1>")));
-      return result;
-    },
     catchError$1(onError) {
-      return this.catchError$2$test(onError, null);
+      var t1 = this.$ti,
+        t2 = $.Zone__current,
+        result = new A._Future(t2, t1);
+      if (t2 !== B.C__RootZone)
+        onError = A._registerErrorHandler(onError, t2);
+      this._addListener$1(new A._FutureListener(result, 2, null, onError, t1._eval$1("_FutureListener<1,1>")));
+      return result;
     },
     whenComplete$1(action) {
       var t1, t2, result;
@@ -14119,7 +13713,7 @@
     call$1(__wc0_formal) {
       this.joinedResult._completeWithResultOf$1(this.originalSource);
     },
-    $signature: 4
+    $signature: 6
   };
   A._Future__propagateToListeners_handleWhenCompleteCallback_closure0.prototype = {
     call$2(e, s) {
@@ -14301,10 +13895,10 @@
       if ((_this._state & 8) === 0)
         return A._instanceType(_this)._eval$1("_PendingEvents<1>?")._as(_this._varData);
       t1 = A._instanceType(_this);
-      return t1._eval$1("_PendingEvents<1>?")._as(t1._eval$1("_StreamControllerAddStreamState<1>")._as(_this._varData)._varData);
+      return t1._eval$1("_PendingEvents<1>?")._as(t1._eval$1("_StreamControllerAddStreamState<1>")._as(_this._varData).get$_varData());
     },
     _ensurePendingEvents$0() {
-      var events, t1, state, _this = this;
+      var events, t1, _this = this;
       if ((_this._state & 8) === 0) {
         events = _this._varData;
         if (events == null)
@@ -14312,16 +13906,13 @@
         return A._instanceType(_this)._eval$1("_PendingEvents<1>")._as(events);
       }
       t1 = A._instanceType(_this);
-      state = t1._eval$1("_StreamControllerAddStreamState<1>")._as(_this._varData);
-      events = state._varData;
-      if (events == null)
-        events = state._varData = new A._PendingEvents(t1._eval$1("_PendingEvents<1>"));
+      events = t1._eval$1("_StreamControllerAddStreamState<1>")._as(_this._varData).get$_varData();
       return t1._eval$1("_PendingEvents<1>")._as(events);
     },
     get$_subscription() {
       var varData = this._varData;
       if ((this._state & 8) !== 0)
-        varData = type$._StreamControllerAddStreamState_nullable_Object._as(varData)._varData;
+        varData = type$._StreamControllerAddStreamState_nullable_Object._as(varData).get$_varData();
       return A._instanceType(this)._eval$1("_ControllerSubscription<1>")._as(varData);
     },
     _badEventState$0() {
@@ -14329,31 +13920,6 @@
         return new A.StateError("Cannot add event after closing");
       return new A.StateError("Cannot add event while adding a stream");
     },
-    addStream$2$cancelOnError(source, cancelOnError) {
-      var t2, t3, t4, t5, t6, _this = this,
-        t1 = A._instanceType(_this);
-      t1._eval$1("Stream<1>")._as(source);
-      t2 = _this._state;
-      if (t2 >= 4)
-        throw A.wrapException(_this._badEventState$0());
-      if ((t2 & 2) !== 0) {
-        t1 = new A._Future($.Zone__current, type$._Future_dynamic);
-        t1._asyncComplete$1(null);
-        return t1;
-      }
-      t2 = _this._varData;
-      t3 = cancelOnError === true;
-      t4 = new A._Future($.Zone__current, type$._Future_dynamic);
-      t5 = t1._eval$1("~(1)")._as(_this.get$_add());
-      t6 = t3 ? A._AddStreamState_makeErrorHandler(_this) : _this.get$_addError();
-      t6 = source.listen$4$cancelOnError$onDone$onError(t5, t3, _this.get$_close(), t6);
-      t3 = _this._state;
-      if ((t3 & 1) !== 0 ? (_this.get$_subscription()._state & 4) !== 0 : (t3 & 2) === 0)
-        t6.pause$0();
-      _this._varData = new A._StreamControllerAddStreamState(t2, t4, t6, t1._eval$1("_StreamControllerAddStreamState<1>"));
-      _this._state |= 8;
-      return t4;
-    },
     _ensureDoneFuture$0() {
       var t1 = this._doneFuture;
       if (t1 == null)
@@ -14368,13 +13934,19 @@
       _this._add$1(value);
     },
     addError$2(error, stackTrace) {
-      var _0_0;
+      var _0_0, t1, _this = this;
       A._asObject(error);
       type$.nullable_StackTrace._as(stackTrace);
-      if (this._state >= 4)
-        throw A.wrapException(this._badEventState$0());
+      if (_this._state >= 4)
+        throw A.wrapException(_this._badEventState$0());
       _0_0 = A._interceptUserError(error, stackTrace);
-      this._addError$2(_0_0.error, _0_0.stackTrace);
+      error = _0_0.error;
+      stackTrace = _0_0.stackTrace;
+      t1 = _this._state;
+      if ((t1 & 1) !== 0)
+        _this._sendError$2(error, stackTrace);
+      else if ((t1 & 3) === 0)
+        _this._ensurePendingEvents$0().add$1(0, new A._DelayedError(error, stackTrace));
     },
     addError$1(error) {
       return this.addError$2(error, null);
@@ -14406,23 +13978,6 @@
       else if ((t2 & 3) === 0)
         _this._ensurePendingEvents$0().add$1(0, new A._DelayedData(value, t1._eval$1("_DelayedData<1>")));
     },
-    _addError$2(error, stackTrace) {
-      var t1;
-      A._asObject(error);
-      type$.StackTrace._as(stackTrace);
-      t1 = this._state;
-      if ((t1 & 1) !== 0)
-        this._sendError$2(error, stackTrace);
-      else if ((t1 & 3) === 0)
-        this._ensurePendingEvents$0().add$1(0, new A._DelayedError(error, stackTrace));
-    },
-    _close$0() {
-      var _this = this,
-        addState = A._instanceType(_this)._eval$1("_StreamControllerAddStreamState<1>")._as(_this._varData);
-      _this._varData = addState._varData;
-      _this._state &= 4294967287;
-      addState.addStreamFuture._asyncComplete$1(null);
-    },
     _subscribe$4(onData, onError, onDone, cancelOnError) {
       var t2, t3, t4, t5, t6, t7, subscription, pendingEvents, addState, _this = this,
         t1 = A._instanceType(_this);
@@ -14440,8 +13995,8 @@
       pendingEvents = _this.get$_pendingEvents();
       if (((_this._state |= 1) & 8) !== 0) {
         addState = t1._eval$1("_StreamControllerAddStreamState<1>")._as(_this._varData);
-        addState._varData = subscription;
-        addState.addSubscription.resume$0();
+        addState.set$_varData(subscription);
+        addState.resume$0();
       } else
         _this._varData = subscription;
       subscription._setPendingEvents$1(pendingEvents);
@@ -14550,7 +14105,7 @@
         t2 = A._instanceType(t1);
       t2._eval$1("StreamSubscription<1>")._as(this);
       if ((t1._state & 8) !== 0)
-        t2._eval$1("_StreamControllerAddStreamState<1>")._as(t1._varData).addSubscription.pause$0();
+        t2._eval$1("_StreamControllerAddStreamState<1>")._as(t1._varData).pause$0();
       A._runGuarded(t1.onPause);
     },
     _onResume$0() {
@@ -14558,7 +14113,7 @@
         t2 = A._instanceType(t1);
       t2._eval$1("StreamSubscription<1>")._as(this);
       if ((t1._state & 8) !== 0)
-        t2._eval$1("_StreamControllerAddStreamState<1>")._as(t1._varData).addSubscription.resume$0();
+        t2._eval$1("_StreamControllerAddStreamState<1>")._as(t1._varData).resume$0();
       A._runGuarded(t1.onResume);
     }
   };
@@ -14568,27 +14123,6 @@
     },
     $isStreamSink: 1
   };
-  A._AddStreamState.prototype = {
-    cancel$0() {
-      var cancel = this.addSubscription.cancel$0();
-      return cancel.whenComplete$1(new A._AddStreamState_cancel_closure(this));
-    }
-  };
-  A._AddStreamState_makeErrorHandler_closure.prototype = {
-    call$2(e, s) {
-      var t1 = this.controller;
-      t1._addError$2(A._asObject(e), type$.StackTrace._as(s));
-      t1._close$0();
-    },
-    $signature: 5
-  };
-  A._AddStreamState_cancel_closure.prototype = {
-    call$0() {
-      this.$this.addStreamFuture._asyncComplete$1(null);
-    },
-    $signature: 1
-  };
-  A._StreamControllerAddStreamState.prototype = {};
   A._BufferingStreamSubscription.prototype = {
     _setPendingEvents$1(pendingEvents) {
       var _this = this;
@@ -15598,7 +15132,7 @@
           t2._processUncaughtError$3(zone, A._asObject(e), t1._as(s));
       }
     },
-    $signature: 55
+    $signature: 47
   };
   A._HashMap.prototype = {
     get$length(_) {
@@ -15823,7 +15357,7 @@
     call$1(v) {
       return this.K._is(v);
     },
-    $signature: 12
+    $signature: 14
   };
   A._HashMapKeyIterable.prototype = {
     get$length(_) {
@@ -15904,7 +15438,7 @@
     call$1(v) {
       return this.K._is(v);
     },
-    $signature: 12
+    $signature: 14
   };
   A._HashSet.prototype = {
     get$iterator(_) {
@@ -16160,6 +15694,26 @@
       }
       return true;
     },
+    remove$1(_, object) {
+      var t1 = this._remove$1(object);
+      return t1;
+    },
+    _remove$1(object) {
+      var hash, bucket, index, cell, _this = this,
+        rest = _this._collection$_rest;
+      if (rest == null)
+        return false;
+      hash = _this._computeHashCode$1(object);
+      bucket = rest[hash];
+      index = _this._findBucketIndex$2(bucket, object);
+      if (index < 0)
+        return false;
+      cell = bucket.splice(index, 1)[0];
+      if (0 === bucket.length)
+        delete rest[hash];
+      _this._unlinkCell$1(cell);
+      return true;
+    },
     _collection$_addHashTableEntry$2(table, element) {
       A._instanceType(this)._precomputed1._as(element);
       if (type$.nullable__LinkedHashSetCell._as(table[element]) != null)
@@ -16167,17 +15721,39 @@
       table[element] = this._collection$_newLinkedCell$1(element);
       return true;
     },
+    _collection$_modified$0() {
+      this._collection$_modifications = this._collection$_modifications + 1 & 1073741823;
+    },
     _collection$_newLinkedCell$1(element) {
-      var _this = this,
+      var t1, _this = this,
         cell = new A._LinkedHashSetCell(A._instanceType(_this)._precomputed1._as(element));
       if (_this._collection$_first == null)
         _this._collection$_first = _this._collection$_last = cell;
-      else
-        _this._collection$_last = _this._collection$_last._collection$_next = cell;
+      else {
+        t1 = _this._collection$_last;
+        t1.toString;
+        cell._collection$_previous = t1;
+        _this._collection$_last = t1._collection$_next = cell;
+      }
       ++_this._collection$_length;
-      _this._collection$_modifications = _this._collection$_modifications + 1 & 1073741823;
+      _this._collection$_modified$0();
       return cell;
     },
+    _unlinkCell$1(cell) {
+      var _this = this,
+        previous = cell._collection$_previous,
+        next = cell._collection$_next;
+      if (previous == null)
+        _this._collection$_first = next;
+      else
+        previous._collection$_next = next;
+      if (next == null)
+        _this._collection$_last = previous;
+      else
+        next._collection$_previous = previous;
+      --_this._collection$_length;
+      _this._collection$_modified$0();
+    },
     _computeHashCode$1(element) {
       return J.get$hashCode$(element) & 1073741823;
     },
@@ -16230,7 +15806,7 @@
     call$2(k, v) {
       this.result.$indexSet(0, this.K._as(k), this.V._as(v));
     },
-    $signature: 24
+    $signature: 25
   };
   A.ListBase.prototype = {
     get$iterator(receiver) {
@@ -16426,7 +16002,7 @@
       t2 = A.S(v);
       t1._contents += t2;
     },
-    $signature: 25
+    $signature: 33
   };
   A._UnmodifiableMapMixin.prototype = {
     $indexSet(_, key, value) {
@@ -16949,7 +16525,7 @@
       var result,
         t1 = this._processed;
       if (t1 == null)
-        return this._convert$_data.$index(0, key);
+        return this._data.$index(0, key);
       else if (typeof key != "string")
         return null;
       else {
@@ -16958,7 +16534,7 @@
       }
     },
     get$length(_) {
-      return this._processed == null ? this._convert$_data.__js_helper$_length : this._convert$_computeKeys$0().length;
+      return this._processed == null ? this._data.__js_helper$_length : this._convert$_computeKeys$0().length;
     },
     get$isEmpty(_) {
       return this.get$length(0) === 0;
@@ -16968,7 +16544,7 @@
     },
     get$keys() {
       if (this._processed == null) {
-        var t1 = this._convert$_data;
+        var t1 = this._data;
         return new A.LinkedHashMapKeysIterable(t1, A._instanceType(t1)._eval$1("LinkedHashMapKeysIterable<1>"));
       }
       return new A._JsonMapKeyIterable(this);
@@ -16977,7 +16553,7 @@
       var processed, original, _this = this;
       A._asString(key);
       if (_this._processed == null)
-        _this._convert$_data.$indexSet(0, key, value);
+        _this._data.$indexSet(0, key, value);
       else if (_this.containsKey$1(key)) {
         processed = _this._processed;
         processed[key] = value;
@@ -16989,7 +16565,7 @@
     },
     containsKey$1(key) {
       if (this._processed == null)
-        return this._convert$_data.containsKey$1(key);
+        return this._data.containsKey$1(key);
       if (typeof key != "string")
         return false;
       return Object.prototype.hasOwnProperty.call(this._original, key);
@@ -16998,7 +16574,7 @@
       var keys, i, key, value, _this = this;
       type$.void_Function_String_dynamic._as(f);
       if (_this._processed == null)
-        return _this._convert$_data.forEach$1(0, f);
+        return _this._data.forEach$1(0, f);
       keys = _this._convert$_computeKeys$0();
       for (i = 0; i < keys.length; ++i) {
         key = keys[i];
@@ -17008,20 +16584,20 @@
           _this._processed[key] = value;
         }
         f.call$2(key, value);
-        if (keys !== _this._convert$_data)
+        if (keys !== _this._data)
           throw A.wrapException(A.ConcurrentModificationError$(_this));
       }
     },
     _convert$_computeKeys$0() {
-      var keys = type$.nullable_List_dynamic._as(this._convert$_data);
+      var keys = type$.nullable_List_dynamic._as(this._data);
       if (keys == null)
-        keys = this._convert$_data = A._setArrayType(Object.keys(this._original), type$.JSArray_String);
+        keys = this._data = A._setArrayType(Object.keys(this._original), type$.JSArray_String);
       return keys;
     },
     _upgrade$0() {
       var result, keys, i, t1, key, _this = this;
       if (_this._processed == null)
-        return _this._convert$_data;
+        return _this._data;
       result = A.LinkedHashMap_LinkedHashMap$_empty(type$.String, type$.dynamic);
       keys = _this._convert$_computeKeys$0();
       for (i = 0; t1 = keys.length, i < t1; ++i) {
@@ -17033,7 +16609,7 @@
       else
         B.JSArray_methods.clear$0(keys);
       _this._original = _this._processed = null;
-      return _this._convert$_data = result;
+      return _this._data = result;
     },
     _process$1(key) {
       var result;
@@ -17084,7 +16660,7 @@
       }
       return null;
     },
-    $signature: 26
+    $signature: 21
   };
   A._Utf8Decoder__decoderNonfatal_closure.prototype = {
     call$0() {
@@ -17096,7 +16672,7 @@
       }
       return null;
     },
-    $signature: 26
+    $signature: 21
   };
   A.AsciiCodec.prototype = {
     encode$1(source) {
@@ -17602,7 +17178,7 @@
       B.JSArray_methods.$indexSet(t1, t2.i++, key);
       B.JSArray_methods.$indexSet(t1, t2.i++, value);
     },
-    $signature: 25
+    $signature: 33
   };
   A._JsonStringStringifier.prototype = {
     get$_partialResult() {
@@ -18284,7 +17860,7 @@
       hash = hash + ((hash & 524287) << 10) & 536870911;
       return hash ^ hash >>> 6;
     },
-    $signature: 27
+    $signature: 28
   };
   A._BigIntImpl_hashCode_finish.prototype = {
     call$1(hash) {
@@ -18292,7 +17868,7 @@
       hash ^= hash >>> 11;
       return hash + ((hash & 16383) << 15) & 536870911;
     },
-    $signature: 53
+    $signature: 22
   };
   A.DateTime.prototype = {
     $eq(_, other) {
@@ -18710,13 +18286,13 @@
     call$2(msg, position) {
       throw A.wrapException(A.FormatException$("Illegal IPv4 address, " + msg, this.host, position));
     },
-    $signature: 44
+    $signature: 39
   };
   A.Uri_parseIPv6Address_error.prototype = {
     call$2(msg, position) {
       throw A.wrapException(A.FormatException$("Illegal IPv6 address, " + msg, this.host, position));
     },
-    $signature: 40
+    $signature: 43
   };
   A.Uri_parseIPv6Address_parseHex.prototype = {
     call$2(start, end) {
@@ -18728,7 +18304,7 @@
         this.error.call$2("each part must be in the range of `0x0..0xFFFF`", start);
       return value;
     },
-    $signature: 27
+    $signature: 28
   };
   A._Uri.prototype = {
     get$_text() {
@@ -19028,7 +18604,7 @@
     call$1(s) {
       return A._Uri__uriEncode(64, A._asString(s), B.C_Utf8Codec, false);
     },
-    $signature: 16
+    $signature: 15
   };
   A.UriData.prototype = {
     get$uri() {
@@ -19354,7 +18930,7 @@
       var t1 = type$.JavaScriptFunction;
       this._this.then$1$2$onError(new A.FutureOfJSAnyToJSPromise_get_toJS__closure(t1._as(resolve)), new A.FutureOfJSAnyToJSPromise_get_toJS__closure0(t1._as(reject)), type$.nullable_Object);
     },
-    $signature: 30
+    $signature: 23
   };
   A.FutureOfJSAnyToJSPromise_get_toJS__closure.prototype = {
     call$1(value) {
@@ -19362,7 +18938,7 @@
       t1.call(t1, value);
       return value;
     },
-    $signature: 11
+    $signature: 10
   };
   A.FutureOfJSAnyToJSPromise_get_toJS__closure0.prototype = {
     call$2(error, stackTrace) {
@@ -19380,21 +18956,21 @@
       t1.call(t1, wrapper);
       return wrapper;
     },
-    $signature: 39
+    $signature: 50
   };
   A.FutureOfVoidToJSPromise_get_toJS_closure.prototype = {
     call$2(resolve, reject) {
       var t1 = type$.JavaScriptFunction;
       this._this.then$1$2$onError(new A.FutureOfVoidToJSPromise_get_toJS__closure(t1._as(resolve)), new A.FutureOfVoidToJSPromise_get_toJS__closure0(t1._as(reject)), type$.nullable_Object);
     },
-    $signature: 30
+    $signature: 23
   };
   A.FutureOfVoidToJSPromise_get_toJS__closure.prototype = {
     call$1(__wc0_formal) {
       var t1 = this.resolve;
       return t1.call(t1);
     },
-    $signature: 38
+    $signature: 51
   };
   A.FutureOfVoidToJSPromise_get_toJS__closure0.prototype = {
     call$2(error, stackTrace) {
@@ -19437,7 +19013,7 @@
       } else
         return o;
     },
-    $signature: 11
+    $signature: 10
   };
   A.promiseToFuture_closure.prototype = {
     call$1(r) {
@@ -19503,7 +19079,7 @@
       }
       return o;
     },
-    $signature: 11
+    $signature: 10
   };
   A.NullRejectionException.prototype = {
     toString$0(_) {
@@ -19514,44 +19090,10 @@
   A._JSRandom.prototype = {
     nextInt$1(max) {
       if (max <= 0 || max > 4294967296)
-        throw A.wrapException(A.RangeError$(string$.max_mu + max));
+        throw A.wrapException(A.RangeError$("max must be in range 0 < max \u2264 2^32, was " + max));
       return Math.random() * max >>> 0;
-    }
-  };
-  A._JSSecureRandom.prototype = {
-    _JSSecureRandom$0() {
-      var $crypto = self.crypto;
-      if ($crypto != null)
-        if ($crypto.getRandomValues != null)
-          return;
-      throw A.wrapException(A.UnsupportedError$("No source of cryptographically secure random numbers available."));
     },
-    nextInt$1(max) {
-      var byteCount, t1, start, randomLimit, t2, t3, random, result;
-      if (max <= 0 || max > 4294967296)
-        throw A.wrapException(A.RangeError$(string$.max_mu + max));
-      if (max > 255)
-        if (max > 65535)
-          byteCount = max > 16777215 ? 4 : 3;
-        else
-          byteCount = 2;
-      else
-        byteCount = 1;
-      t1 = this._math$_buffer;
-      t1.$flags & 2 && A.throwUnsupportedOperation(t1, 11);
-      t1.setUint32(0, 0, false);
-      start = 4 - byteCount;
-      randomLimit = A._asInt(Math.pow(256, byteCount));
-      for (t2 = max - 1, t3 = (max & t2) >>> 0 === 0; true;) {
-        crypto.getRandomValues(J.asUint8List$2$x(B.NativeByteData_methods.get$buffer(t1), start, byteCount));
-        random = t1.getUint32(0, false);
-        if (t3)
-          return (random & t2) >>> 0;
-        result = random % max;
-        if (random - result + max < randomLimit)
-          return result;
-      }
-    }
+    $isRandom: 1
   };
   A.AsyncMemoizer.prototype = {};
   A.DelegatingStreamSink.prototype = {
@@ -19714,7 +19256,7 @@
     call$2(h, i) {
       return A._combine(A._asInt(h), J.get$hashCode$(i));
     },
-    $signature: 37
+    $signature: 53
   };
   A.BuiltList.prototype = {
     toBuilder$0() {
@@ -19924,7 +19466,7 @@
     call$1(k) {
       return this.multimap.$index(0, k);
     },
-    $signature: 6
+    $signature: 4
   };
   A.BuiltListMultimap_hashCode_closure.prototype = {
     call$1(key) {
@@ -20081,7 +19623,7 @@
     call$1(k) {
       return this.multimap.$index(0, k);
     },
-    $signature: 6
+    $signature: 4
   };
   A.BuiltMap.prototype = {
     toBuilder$0() {
@@ -20148,7 +19690,7 @@
     call$1(k) {
       return this.map.$index(0, k);
     },
-    $signature: 6
+    $signature: 4
   };
   A.BuiltMap_hashCode_closure.prototype = {
     call$1(key) {
@@ -20266,7 +19808,7 @@
       var t1 = this.$this.$ti;
       this.replacement.$indexSet(0, t1._precomputed1._as(key), t1._rest[1]._as(value));
     },
-    $signature: 24
+    $signature: 25
   };
   A.BuiltSet.prototype = {
     get$hashCode(_) {
@@ -20630,7 +20172,7 @@
     call$1(k) {
       return this.multimap.$index(0, k);
     },
-    $signature: 6
+    $signature: 4
   };
   A.EnumClass.prototype = {
     toString$0(_) {
@@ -20645,7 +20187,7 @@
       $._indentingBuiltValueToStringHelperIndent = $._indentingBuiltValueToStringHelperIndent + 2;
       return new A.IndentingBuiltValueToStringHelper(t1);
     },
-    $signature: 84
+    $signature: 62
   };
   A.IndentingBuiltValueToStringHelper.prototype = {
     add$2(_, field, value) {
@@ -20776,34 +20318,34 @@
     call$0() {
       return A.ListBuilder_ListBuilder(B.List_empty0, type$.Object);
     },
-    $signature: 58
+    $signature: 67
   };
   A.Serializers_Serializers_closure0.prototype = {
     call$0() {
       var t1 = type$.Object;
       return A.ListMultimapBuilder_ListMultimapBuilder(t1, t1);
     },
-    $signature: 34
+    $signature: 71
   };
   A.Serializers_Serializers_closure1.prototype = {
     call$0() {
       var t1 = type$.Object;
       return A.MapBuilder_MapBuilder(t1, t1);
     },
-    $signature: 35
+    $signature: 84
   };
   A.Serializers_Serializers_closure2.prototype = {
     call$0() {
       return A.SetBuilder_SetBuilder(type$.Object);
     },
-    $signature: 36
+    $signature: 64
   };
   A.Serializers_Serializers_closure3.prototype = {
     call$0() {
       var t1 = type$.Object;
       return A.SetMultimapBuilder_SetMultimapBuilder(t1, t1);
     },
-    $signature: 92
+    $signature: 54
   };
   A.FullType.prototype = {
     $eq(_, other) {
@@ -21224,7 +20766,7 @@
     call$1(value) {
       return this.serializers.deserialize$2$specifiedType(value, this.valueType);
     },
-    $signature: 11
+    $signature: 10
   };
   A.BuiltListSerializer.prototype = {
     serialize$3$specifiedType(serializers, builtList, specifiedType) {
@@ -24544,13 +24086,13 @@
     call$0() {
       return A.ListBuilder_ListBuilder(B.List_empty0, type$.DebugEvent);
     },
-    $signature: 41
+    $signature: 40
   };
   A._$serializers_closure0.prototype = {
     call$0() {
       return A.ListBuilder_ListBuilder(B.List_empty0, type$.ExtensionEvent);
     },
-    $signature: 42
+    $signature: 41
   };
   A.ServiceExtensionRequest.prototype = {};
   A._$ServiceExtensionRequestSerializer.prototype = {
@@ -24662,7 +24204,7 @@
       b.get$_service_extension_response$_$this()._service_extension_response$_errorMessage = _this.errorMessage;
       return b;
     },
-    $signature: 43
+    $signature: 42
   };
   A._$ServiceExtensionResponseSerializer.prototype = {
     serialize$3$specifiedType(serializers, object, specifiedType) {
@@ -24901,13 +24443,13 @@
     call$0() {
       return true;
     },
-    $signature: 29
+    $signature: 27
   };
   A.BatchedStreamController__hasEventDuring_closure.prototype = {
     call$0() {
       return false;
     },
-    $signature: 29
+    $signature: 27
   };
   A.SocketClient.prototype = {};
   A.SseSocketClient.prototype = {
@@ -24948,14 +24490,14 @@
     call$1(o) {
       return J.toString$0$(o);
     },
-    $signature: 45
+    $signature: 44
   };
   A.safeUnawaited_closure.prototype = {
     call$2(error, stackTrace) {
       type$.StackTrace._as(stackTrace);
       return $.$get$_logger().log$4(B.Level_WARNING_900, "Error in unawaited Future:", error, stackTrace);
     },
-    $signature: 21
+    $signature: 26
   };
   A.Int32.prototype = {
     _toInt$1(val) {
@@ -25079,7 +24621,6 @@
     $isComparable: 1
   };
   A._StackState.prototype = {};
-  A.RequestAbortedException.prototype = {};
   A.BaseClient.prototype = {
     _sendUnstreamed$3(method, url, headers) {
       var $async$goto = 0,
@@ -25125,34 +24666,26 @@
     call$2(key1, key2) {
       return A._asString(key1).toLowerCase() === A._asString(key2).toLowerCase();
     },
-    $signature: 46
+    $signature: 45
   };
   A.BaseRequest_closure0.prototype = {
     call$1(key) {
       return B.JSString_methods.get$hashCode(A._asString(key).toLowerCase());
     },
-    $signature: 47
+    $signature: 46
   };
   A.BaseResponse.prototype = {
     BaseResponse$7$contentLength$headers$isRedirect$persistentConnection$reasonPhrase$request(statusCode, contentLength, headers, isRedirect, persistentConnection, reasonPhrase, request) {
       var t1 = this.statusCode;
       if (t1 < 100)
         throw A.wrapException(A.ArgumentError$("Invalid status code " + t1 + ".", null));
-      else {
-        t1 = this.contentLength;
-        if (t1 != null && t1 < 0)
-          throw A.wrapException(A.ArgumentError$("Invalid content length " + A.S(t1) + ".", null));
-      }
     }
   };
   A.BrowserClient.prototype = {
     send$1(request) {
-      return this.send$body$BrowserClient(request);
-    },
-    send$body$BrowserClient(request) {
       var $async$goto = 0,
         $async$completer = A._makeAsyncAwaitCompleter(type$.StreamedResponse),
-        $async$returnValue, $async$handler = 2, $async$errorStack = [], $async$next = [], $async$self = this, bodyBytes, _0_0, _0_2, _0_2_isSet, abortTrigger, t1, _1_0, contentLength, header, response, contentLengthHeader, contentLength0, headers, e, st, t4, t5, _this, t6, t7, t8, t9, result, exception, t2, abortController, t3, $async$exception;
+        $async$returnValue, $async$handler = 2, $async$errorStack = [], $async$next = [], $async$self = this, xhr, completer, bytes, t1, t2, header, t3;
       var $async$send$1 = A._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
         if ($async$errorCode === 1) {
           $async$errorStack.push($async$result);
@@ -25162,109 +24695,55 @@
           switch ($async$goto) {
             case 0:
               // Function start
-              t2 = init.G;
-              abortController = A._asJSObject(new t2.AbortController());
-              t3 = $async$self._openRequestAbortControllers;
-              B.JSArray_methods.add$1(t3, abortController);
               request.super$BaseRequest$finalize();
-              t4 = type$._AsyncStreamController_List_int;
-              t5 = new A._AsyncStreamController(null, null, null, null, t4);
-              t5._add$1(request._bodyBytes);
-              t5._closeUnchecked$0();
               $async$goto = 3;
-              return A._asyncAwait(new A.ByteStream(new A._ControllerStream(t5, t4._eval$1("_ControllerStream<1>"))).toBytes$0(), $async$send$1);
+              return A._asyncAwait(new A.ByteStream(A.Stream_Stream$value(request._bodyBytes, type$.List_int)).toBytes$0(), $async$send$1);
             case 3:
               // returning from await.
-              bodyBytes = $async$result;
-              $async$handler = 5;
-              _0_0 = request;
-              _0_2 = null;
-              _0_2_isSet = false;
-              abortTrigger = null;
-              t4 = request.url;
-              _this = t4.toString$0(0);
-              t5 = !J.get$isEmpty$asx(bodyBytes) ? bodyBytes : null;
-              t6 = $async$self.withCredentials ? "include" : "same-origin";
-              t7 = type$.String;
-              t1 = A.LinkedHashMap_LinkedHashMap$_empty(t7, type$.Object);
-              _1_0 = request._bodyBytes.length;
-              contentLength = null;
-              if (_1_0 != null) {
-                contentLength = _1_0;
-                J.$indexSet$ax(t1, "content-length", contentLength);
+              bytes = $async$result;
+              xhr = A._asJSObject(new init.G.XMLHttpRequest());
+              t1 = $async$self._xhrs;
+              t1.add$1(0, xhr);
+              t2 = xhr;
+              t2.open(request.method, request.url.toString$0(0), true);
+              t2.responseType = "arraybuffer";
+              t2.withCredentials = $async$self.withCredentials;
+              for (t2 = request.headers, t2 = new A.LinkedHashMapEntriesIterable(t2, A._instanceType(t2)._eval$1("LinkedHashMapEntriesIterable<1,2>")).get$iterator(0); t2.moveNext$0();) {
+                header = t2.__js_helper$_current;
+                xhr.setRequestHeader(header.key, header.value);
               }
-              for (t8 = request.headers, t8 = new A.LinkedHashMapEntriesIterable(t8, A._instanceType(t8)._eval$1("LinkedHashMapEntriesIterable<1,2>")).get$iterator(0); t8.moveNext$0();) {
-                t9 = t8.__js_helper$_current;
-                t9.toString;
-                header = t9;
-                J.$indexSet$ax(t1, header.key, header.value);
-              }
-              t1 = A.jsify(t1);
-              t1.toString;
-              A._asJSObject(t1);
-              t8 = A._asJSObject(abortController.signal);
-              $async$goto = 8;
-              return A._asyncAwait(A.promiseToFuture(A._asJSObject(t2.fetch(_this, {method: request.method, headers: t1, body: t5, credentials: t6, redirect: "follow", signal: t8})), type$.JSObject), $async$send$1);
-            case 8:
+              completer = new A._AsyncCompleter(new A._Future($.Zone__current, type$._Future_StreamedResponse), type$._AsyncCompleter_StreamedResponse);
+              t2 = type$._EventStream_JSObject;
+              t3 = type$.void;
+              new A._EventStream(xhr, "load", false, t2).get$first(0).then$1$1(new A.BrowserClient_send_closure(xhr, completer, request), t3);
+              new A._EventStream(xhr, "error", false, t2).get$first(0).then$1$1(new A.BrowserClient_send_closure0(completer, request), t3);
+              xhr.send(bytes);
+              $async$handler = 4;
+              $async$goto = 7;
+              return A._asyncAwait(completer.future, $async$send$1);
+            case 7:
               // returning from await.
-              response = $async$result;
-              contentLengthHeader = A._asStringQ(A._asJSObject(response.headers).get("content-length"));
-              contentLength0 = contentLengthHeader != null ? A.Primitives_parseInt(contentLengthHeader, null) : null;
-              if (contentLength0 == null && contentLengthHeader != null) {
-                t1 = A.ClientException$("Invalid content-length header [" + contentLengthHeader + "].", t4);
-                throw A.wrapException(t1);
-              }
-              headers = A.LinkedHashMap_LinkedHashMap$_empty(t7, t7);
-              t1 = A._asJSObject(response.headers);
-              t2 = new A.BrowserClient_send_closure(headers);
-              if (typeof t2 == "function")
-                A.throwExpression(A.ArgumentError$("Attempting to rewrap a JS function.", null));
-              result = function(_call, f) {
-                return function(arg1, arg2, arg3) {
-                  return _call(f, arg1, arg2, arg3, arguments.length);
-                };
-              }(A._callDartFunctionFast3, t2);
-              result[$.$get$DART_CLOSURE_PROPERTY_NAME()] = t2;
-              t1.forEach(result);
-              t1 = A._readBody(request, response);
-              t2 = A._asInt(response.status);
-              t4 = headers;
-              t5 = contentLength0;
-              A.Uri_parse(A._asString(response.url));
-              t6 = A._asString(response.statusText);
-              t1 = new A.StreamedResponseV2(A.toByteStream(t1), request, t2, t6, t5, t4, false, true);
-              t1.BaseResponse$7$contentLength$headers$isRedirect$persistentConnection$reasonPhrase$request(t2, t5, t4, false, true, t6, request);
-              $async$returnValue = t1;
+              t2 = $async$result;
+              $async$returnValue = t2;
               $async$next = [1];
               // goto finally
-              $async$goto = 6;
+              $async$goto = 5;
               break;
-              $async$next.push(7);
+              $async$next.push(6);
               // goto finally
-              $async$goto = 6;
-              break;
-            case 5:
-              // catch
-              $async$handler = 4;
-              $async$exception = $async$errorStack.pop();
-              e = A.unwrapException($async$exception);
-              st = A.getTraceFromException($async$exception);
-              A._rethrowAsClientException(e, st, request);
-              $async$next.push(7);
-              // goto finally
-              $async$goto = 6;
+              $async$goto = 5;
               break;
             case 4:
               // uncaught
               $async$next = [2];
-            case 6:
+            case 5:
               // finally
               $async$handler = 2;
-              B.JSArray_methods.remove$1(t3, abortController);
+              t1.remove$1(0, xhr);
               // goto the next finally handler
               $async$goto = $async$next.pop();
               break;
-            case 7:
+            case 6:
               // after finally
             case 1:
               // return
@@ -25278,32 +24757,42 @@
     }
   };
   A.BrowserClient_send_closure.prototype = {
-    call$3(value, header, _) {
-      A._asString(value);
-      this.headers.$indexSet(0, A._asString(header).toLowerCase(), value);
-    },
-    call$2(value, header) {
-      return this.call$3(value, header, null);
-    },
-    "call*": "call$3",
-    $requiredArgCount: 2,
-    $defaultValues() {
-      return [null];
-    },
-    $signature: 48
-  };
-  A._readBody_closure.prototype = {
     call$1(_) {
-      return null;
+      var t1, _0_0, t2, body, responseUrl, t3, t4, t5, t6, _this = this;
+      A._asJSObject(_);
+      t1 = _this.xhr;
+      _0_0 = A._extension_0_get_responseHeaders(t1).$index(0, "content-length");
+      t2 = false;
+      if (_0_0 != null) {
+        t2 = $.$get$_digitRegex();
+        t2 = !t2._nativeRegExp.test(_0_0);
+      }
+      if (t2) {
+        _this.completer.completeError$1(new A.ClientException("Invalid content-length header [" + _0_0 + "].", _this.request.url));
+        return;
+      }
+      body = A.NativeUint8List_NativeUint8List$view(type$.NativeArrayBuffer._as(t1.response), 0, null);
+      responseUrl = A._asString(t1.responseURL);
+      if (responseUrl.length !== 0)
+        A.Uri_parse(responseUrl);
+      t2 = A.Stream_Stream$value(body, type$.List_int);
+      t3 = A._asInt(t1.status);
+      t4 = body.length;
+      t5 = _this.request;
+      t6 = A._extension_0_get_responseHeaders(t1);
+      t1 = A._asString(t1.statusText);
+      t2 = new A.StreamedResponseV2(A.toByteStream(new A.ByteStream(t2)), t5, t3, t1, t4, t6, false, true);
+      t2.BaseResponse$7$contentLength$headers$isRedirect$persistentConnection$reasonPhrase$request(t3, t4, t6, false, true, t1, t5);
+      _this.completer.complete$1(t2);
     },
-    $signature: 4
+    $signature: 8
   };
-  A._readBody_closure0.prototype = {
+  A.BrowserClient_send_closure0.prototype = {
     call$1(_) {
-      A._asObject(_);
-      return this._box_0.isError;
+      A._asJSObject(_);
+      this.completer.completeError$2(new A.ClientException("XMLHttpRequest error.", this.request.url), A.StackTrace_current());
     },
-    $signature: 49
+    $signature: 8
   };
   A.ByteStream.prototype = {
     toBytes$0() {
@@ -25318,7 +24807,7 @@
     call$1(bytes) {
       return this.completer.complete$1(new Uint8Array(A._ensureNativeList(type$.List_int._as(bytes))));
     },
-    $signature: 50
+    $signature: 48
   };
   A.ClientException.prototype = {
     toString$0(_) {
@@ -25406,7 +24895,7 @@
       scanner.expectDone$0();
       return A.MediaType$(t4, t5, parameters);
     },
-    $signature: 51
+    $signature: 49
   };
   A.MediaType_toString_closure.prototype = {
     call$2(attribute, value) {
@@ -25425,13 +24914,13 @@
       } else
         t1._contents = t3 + value;
     },
-    $signature: 52
+    $signature: 35
   };
   A.MediaType_toString__closure.prototype = {
     call$1(match) {
       return "\\" + A.S(match.$index(0, 0));
     },
-    $signature: 28
+    $signature: 29
   };
   A.expectQuotedString_closure.prototype = {
     call$1(match) {
@@ -25439,7 +24928,7 @@
       t1.toString;
       return t1;
     },
-    $signature: 28
+    $signature: 29
   };
   A.Level.prototype = {
     $eq(_, other) {
@@ -25487,7 +24976,7 @@
       var record, _this = this,
         t1 = logLevel.value;
       if (t1 >= _this.get$level().value) {
-        if ((stackTrace == null || stackTrace === B._StringStackTrace_OdL) && t1 >= 2000) {
+        if (stackTrace == null && t1 >= 2000) {
           A.StackTrace_current();
           if (error == null)
             logLevel.toString$0(0);
@@ -25528,7 +25017,7 @@
         $parent._children.$indexSet(0, thisName, t1);
       return t1;
     },
-    $signature: 54
+    $signature: 52
   };
   A.Context.prototype = {
     absolute$15(part1, part2, part3, part4, part5, part6, part7, part8, part9, part10, part11, part12, part13, part14, part15) {
@@ -25762,20 +25251,20 @@
     call$1(part) {
       return A._asString(part) !== "";
     },
-    $signature: 22
+    $signature: 30
   };
   A.Context_split_closure.prototype = {
     call$1(part) {
       return A._asString(part).length !== 0;
     },
-    $signature: 22
+    $signature: 30
   };
   A._validateArgList_closure.prototype = {
     call$1(arg) {
       A._asStringQ(arg);
       return arg == null ? "null" : '"' + arg + '"';
     },
-    $signature: 56
+    $signature: 108
   };
   A.InternalStyle.prototype = {
     getRoot$1(path) {
@@ -26229,7 +25718,7 @@
       var t1 = this.$this;
       t1._onReleaseCompleters.removeFirst$0().complete$1(new A.PoolResource(t1));
     },
-    $signature: 4
+    $signature: 6
   };
   A.Pool__runOnRelease_closure0.prototype = {
     call$2(error, stackTrace) {
@@ -26669,7 +26158,7 @@
     call$0() {
       return this.color;
     },
-    $signature: 57
+    $signature: 55
   };
   A.Highlighter$__closure.prototype = {
     call$1(line) {
@@ -26677,34 +26166,34 @@
         t2 = A._arrayInstanceType(t1);
       return new A.WhereIterable(t1, t2._eval$1("bool(1)")._as(new A.Highlighter$___closure()), t2._eval$1("WhereIterable<1>")).get$length(0);
     },
-    $signature: 33
+    $signature: 56
   };
   A.Highlighter$___closure.prototype = {
     call$1(highlight) {
       var t1 = type$._Highlight._as(highlight).span;
       return t1.get$start().get$line() !== t1.get$end().get$line();
     },
-    $signature: 17
+    $signature: 19
   };
   A.Highlighter$__closure0.prototype = {
     call$1(line) {
       return type$._Line._as(line).url;
     },
-    $signature: 60
+    $signature: 58
   };
   A.Highlighter__collateLines_closure.prototype = {
     call$1(highlight) {
       var t1 = type$._Highlight._as(highlight).span.get$sourceUrl();
       return t1 == null ? new A.Object() : t1;
     },
-    $signature: 61
+    $signature: 59
   };
   A.Highlighter__collateLines_closure0.prototype = {
     call$2(highlight1, highlight2) {
       var t1 = type$._Highlight;
       return t1._as(highlight1).span.compareTo$1(0, t1._as(highlight2).span);
     },
-    $signature: 62
+    $signature: 60
   };
   A.Highlighter__collateLines_closure1.prototype = {
     call$1(entry) {
@@ -26747,20 +26236,20 @@
       }
       return lines;
     },
-    $signature: 63
+    $signature: 61
   };
   A.Highlighter__collateLines__closure.prototype = {
     call$1(highlight) {
       return type$._Highlight._as(highlight).span.get$end().get$line() < this.line.number;
     },
-    $signature: 17
+    $signature: 19
   };
   A.Highlighter_highlight_closure.prototype = {
     call$1(highlight) {
       type$._Highlight._as(highlight);
       return true;
     },
-    $signature: 17
+    $signature: 19
   };
   A.Highlighter__writeFileStart_closure.prototype = {
     call$0() {
@@ -26858,7 +26347,7 @@
       t2._contents = t4;
       return t4.length - t3.length;
     },
-    $signature: 23
+    $signature: 31
   };
   A.Highlighter__writeIndicator_closure0.prototype = {
     call$0() {
@@ -26878,7 +26367,7 @@
         t1._writeArrow$3$beginning(_this.line, Math.max(_this.highlight.span.get$end().get$column() - 1, 0), false);
       return t2._contents.length - t3.length;
     },
-    $signature: 23
+    $signature: 31
   };
   A.Highlighter__writeSidebar_closure.prototype = {
     call$0() {
@@ -26914,7 +26403,7 @@
       }
       return A._Highlight__normalizeEndOfLine(A._Highlight__normalizeTrailingNewline(A._Highlight__normalizeNewlines(newSpan)));
     },
-    $signature: 65
+    $signature: 63
   };
   A._Line.prototype = {
     toString$0(_) {
@@ -27282,16 +26771,34 @@
       });
       return A._asyncStartSync($async$call$0, $async$completer);
     },
-    $signature: 68
+    $signature: 66
+  };
+  A.generateUuidV4_generateBits.prototype = {
+    call$1(bitCount) {
+      return this.random.nextInt$1(B.JSInt_methods._shlPositive$1(1, bitCount));
+    },
+    $signature: 22
+  };
+  A.generateUuidV4_printDigits.prototype = {
+    call$2(value, count) {
+      return B.JSString_methods.padLeft$2(B.JSInt_methods.toRadixString$1(value, 16), count, "0");
+    },
+    $signature: 32
+  };
+  A.generateUuidV4_bitsDigits.prototype = {
+    call$2(bitCount, digitCount) {
+      return this.printDigits.call$2(this.generateBits.call$1(bitCount), digitCount);
+    },
+    $signature: 32
   };
   A.GuaranteeChannel.prototype = {
     GuaranteeChannel$3$allowSinkErrors(innerSink, allowSinkErrors, _box_0, $T) {
       var _this = this,
         t1 = _this.$ti,
-        t2 = t1._eval$1("_GuaranteeSink<1>")._as(new A._GuaranteeSink(innerSink, _this, new A._AsyncCompleter(new A._Future($.Zone__current, type$._Future_void), type$._AsyncCompleter_void), allowSinkErrors, $T._eval$1("_GuaranteeSink<0>")));
+        t2 = t1._eval$1("_GuaranteeSink<1>")._as(new A._GuaranteeSink(innerSink, _this, new A._AsyncCompleter(new A._Future($.Zone__current, type$._Future_dynamic), type$._AsyncCompleter_dynamic), allowSinkErrors, $T._eval$1("_GuaranteeSink<0>")));
       _this.__GuaranteeChannel__sink_F !== $ && A.throwLateFieldAI("_sink");
       _this.__GuaranteeChannel__sink_F = t2;
-      t1 = t1._eval$1("StreamController<1>")._as(A.StreamController_StreamController(null, new A.GuaranteeChannel_closure(_box_0, _this, $T), null, true, $T));
+      t1 = t1._eval$1("StreamController<1>")._as(A.StreamController_StreamController(null, new A.GuaranteeChannel_closure(_box_0, _this, $T), true, $T));
       _this.__GuaranteeChannel__streamController_F !== $ && A.throwLateFieldAI("_streamController");
       _this.__GuaranteeChannel__streamController_F = t1;
     },
@@ -27386,7 +26893,7 @@
   A._GuaranteeSink__addError_closure.prototype = {
     call$1(_) {
     },
-    $signature: 4
+    $signature: 6
   };
   A.StreamChannelController.prototype = {};
   A.StreamChannelMixin.prototype = {$isStreamChannel: 1};
@@ -27469,30 +26976,30 @@
         return uint8list;
     }
   };
-  A.CryptoRNG.prototype = {
+  A.MathRNG.prototype = {
     _generateInternal$0() {
-      var i, k, t1, t2,
+      var t1, i, k, t2, t3,
         b = new Uint8Array(16);
-      for (i = 0; i < 16; i += 4) {
-        k = $.$get$CryptoRNG__secureRandom().nextInt$1(B.JSNumber_methods.toInt$0(Math.pow(2, 32)));
+      for (t1 = this._rnd, i = 0; i < 16; i += 4) {
+        k = t1.nextInt$1(B.JSNumber_methods.toInt$0(Math.pow(2, 32)));
         if (!(i < 16))
           return A.ioore(b, i);
         b[i] = k;
-        t1 = i + 1;
-        t2 = B.JSInt_methods._shrOtherPositive$1(k, 8);
-        if (!(t1 < 16))
-          return A.ioore(b, t1);
-        b[t1] = t2;
-        t2 = i + 2;
-        t1 = B.JSInt_methods._shrOtherPositive$1(k, 16);
+        t2 = i + 1;
+        t3 = B.JSInt_methods._shrOtherPositive$1(k, 8);
         if (!(t2 < 16))
           return A.ioore(b, t2);
-        b[t2] = t1;
-        t1 = i + 3;
-        t2 = B.JSInt_methods._shrOtherPositive$1(k, 24);
-        if (!(t1 < 16))
-          return A.ioore(b, t1);
-        b[t1] = t2;
+        b[t2] = t3;
+        t3 = i + 2;
+        t2 = B.JSInt_methods._shrOtherPositive$1(k, 16);
+        if (!(t3 < 16))
+          return A.ioore(b, t3);
+        b[t3] = t2;
+        t2 = i + 3;
+        t3 = B.JSInt_methods._shrOtherPositive$1(k, 24);
+        if (!(t2 < 16))
+          return A.ioore(b, t2);
+        b[t2] = t3;
       }
       return b;
     }
@@ -27694,7 +27201,7 @@
       A._asJSObject(_);
       this.webSocketConnected.complete$1(this.browserSocket);
     },
-    $signature: 14
+    $signature: 8
   };
   A.BrowserWebSocket_connect_closure0.prototype = {
     call$1(e) {
@@ -27702,11 +27209,11 @@
       A._asJSObject(e);
       t1 = this.webSocketConnected;
       if ((t1.future._state & 30) === 0)
-        t1.completeError$1(new A.WebSocketException("Failed to connect WebSocket"));
+        t1.completeError$1(new A.WebSocketException());
       else
         this.browserSocket._browser_web_socket$_closed$2(1006, "error");
     },
-    $signature: 14
+    $signature: 8
   };
   A.BrowserWebSocket_connect_closure1.prototype = {
     call$1(e) {
@@ -27736,7 +27243,7 @@
         t1.complete$1(this.browserSocket);
       this.browserSocket._browser_web_socket$_closed$2(A._asInt($event.code), A._asString($event.reason));
     },
-    $signature: 14
+    $signature: 8
   };
   A.WebSocketEvent.prototype = {};
   A.TextDataReceived.prototype = {
@@ -27785,25 +27292,8 @@
       return "CloseReceived(" + this.code + ", " + this.reason + ")";
     }
   };
-  A.WebSocketException.prototype = {
-    toString$0(_) {
-      var t1 = this.message;
-      if (t1.length === 0)
-        return "WebSocketException";
-      else
-        return "WebSocketException: " + t1;
-    },
-    $isException: 1
-  };
-  A.WebSocketConnectionClosed.prototype = {
-    toString$0(_) {
-      var t1 = this.message;
-      if (t1.length === 0)
-        return "WebSocketConnectionClosed";
-      else
-        return "WebSocketConnectionClosed: " + t1;
-    }
-  };
+  A.WebSocketException.prototype = {$isException: 1};
+  A.WebSocketConnectionClosed.prototype = {};
   A.AdapterWebSocketChannel.prototype = {
     AdapterWebSocketChannel$1(webSocket) {
       webSocket.then$1$2$onError(new A.AdapterWebSocketChannel_closure(this), new A.AdapterWebSocketChannel_closure0(this), type$.Null);
@@ -27825,7 +27315,7 @@
       A._asString(webSocket._webSocket.protocol);
       t2._readyCompleter.complete$0();
     },
-    $signature: 70
+    $signature: 68
   };
   A.AdapterWebSocketChannel__closure.prototype = {
     call$1($event) {
@@ -27861,7 +27351,7 @@
         }
       }
     },
-    $signature: 71
+    $signature: 69
   };
   A.AdapterWebSocketChannel__closure0.prototype = {
     call$1(obj) {
@@ -27907,7 +27397,7 @@
           throw exception;
       }
     },
-    $signature: 8
+    $signature: 9
   };
   A.AdapterWebSocketChannel__closure1.prototype = {
     call$0() {
@@ -27958,7 +27448,7 @@
       });
       return A._asyncStartSync($async$call$0, $async$completer);
     },
-    $signature: 19
+    $signature: 16
   };
   A.AdapterWebSocketChannel_closure0.prototype = {
     call$1(e) {
@@ -27976,7 +27466,7 @@
       t1 === $ && A.throwLateFieldNI("_sink");
       t1.close$0();
     },
-    $signature: 72
+    $signature: 70
   };
   A._WebSocketSink.prototype = {$isWebSocketSink: 1};
   A.WebSocketChannelException.prototype = {
@@ -28050,8 +27540,8 @@
               t1.$dartReadyToRunMain = A._functionToJS0(new A.main__closure2(_box_0));
               t2 = $.Zone__current;
               t3 = Math.max(100, 1);
-              t4 = A.StreamController_StreamController(null, null, null, false, type$.DebugEvent);
-              t5 = A.StreamController_StreamController(null, null, null, false, type$.List_DebugEvent);
+              t4 = A.StreamController_StreamController(null, null, false, type$.DebugEvent);
+              t5 = A.StreamController_StreamController(null, null, false, type$.List_DebugEvent);
               debugEventController = new A.BatchedStreamController(t3, 1000, t4, t5, new A._AsyncCompleter(new A._Future(t2, type$._Future_bool), type$._AsyncCompleter_bool), type$.BatchedStreamController_DebugEvent);
               t2 = A.List_List$filled(A.QueueList__computeInitialCapacity(null), null, false, type$.nullable_Result_DebugEvent);
               t3 = A.ListQueue$(type$._EventRequest_dynamic);
@@ -28079,7 +27569,7 @@
       });
       return A._asyncStartSync($async$call$0, $async$completer);
     },
-    $signature: 19
+    $signature: 16
   };
   A.main__closure.prototype = {
     call$0() {
@@ -28087,13 +27577,13 @@
       path.toString;
       return A.FutureOfJSAnyToJSPromise_get_toJS(this.manager._restarter.hotReloadStart$1(path), type$.JSArray_nullable_Object);
     },
-    $signature: 10
+    $signature: 11
   };
   A.main__closure0.prototype = {
     call$0() {
       return A.FutureOfVoidToJSPromise_get_toJS(this.manager.hotReloadEnd$0());
     },
-    $signature: 10
+    $signature: 11
   };
   A.main__closure1.prototype = {
     call$2(runId, pauseIsolatesOnStart) {
@@ -28118,7 +27608,7 @@
     $defaultValues() {
       return [null];
     },
-    $signature: 74
+    $signature: 90
   };
   A.main__closure2.prototype = {
     call$0() {
@@ -28145,7 +27635,7 @@
         A._trySendEvent(t1, B.C_JsonCodec.encode$2$toEncodable(t2.serialize$1(t3._debug_event$_build$0()), null), type$.dynamic);
       }
     },
-    $signature: 75
+    $signature: 73
   };
   A.main___closure2.prototype = {
     call$1(b) {
@@ -28154,7 +27644,7 @@
       b.get$_debug_event$_$this().set$_events(t1);
       return t1;
     },
-    $signature: 76
+    $signature: 74
   };
   A.main__closure4.prototype = {
     call$2(kind, eventData) {
@@ -28168,7 +27658,7 @@
         A._trySendEvent(new A._StreamSinkWrapper(t1, A._instanceType(t1)._eval$1("_StreamSinkWrapper<1>")), t2._debug_event$_build$0(), type$.DebugEvent);
       }
     },
-    $signature: 77
+    $signature: 75
   };
   A.main___closure1.prototype = {
     call$1(b) {
@@ -28178,7 +27668,7 @@
       b.get$_debug_event$_$this()._eventData = this.eventData;
       return b;
     },
-    $signature: 78
+    $signature: 76
   };
   A.main__closure5.prototype = {
     call$1(eventData) {
@@ -28190,7 +27680,7 @@
       type$.nullable_void_Function_RegisterEventBuilder._as(new A.main___closure0(eventData)).call$1(t3);
       A._trySendEvent(t1, B.C_JsonCodec.encode$2$toEncodable(t2.serialize$1(t3._register_event$_build$0()), null), type$.dynamic);
     },
-    $signature: 79
+    $signature: 77
   };
   A.main___closure0.prototype = {
     call$1(b) {
@@ -28199,7 +27689,7 @@
       b.get$_register_event$_$this()._register_event$_eventData = this.eventData;
       return b;
     },
-    $signature: 80
+    $signature: 107
   };
   A.main__closure6.prototype = {
     call$0() {
@@ -28225,7 +27715,7 @@
       b.get$_devtools_request$_$this()._devtools_request$_instanceId = t1;
       return b;
     },
-    $signature: 81
+    $signature: 79
   };
   A.main__closure7.prototype = {
     call$1(serialized) {
@@ -28389,12 +27879,12 @@
       });
       return A._asyncStartSync($async$call$1, $async$completer);
     },
-    $signature: 82
+    $signature: 80
   };
   A.main__closure8.prototype = {
     call$1(error) {
     },
-    $signature: 4
+    $signature: 6
   };
   A.main__closure9.prototype = {
     call$1(e) {
@@ -28413,7 +27903,7 @@
       type$.StackTrace._as(stackTrace);
       A.print("Unhandled error detected in the injected client.js script.\n\nYou can disable this script in webdev by passing --no-injected-client if it\nis preventing your app from loading, but note that this will also prevent\nall debugging and hot reload/restart functionality from working.\n\nThe original error is below, please file an issue at\nhttps://github.com/dart-lang/webdev/issues/new and attach this output:\n\n" + A.S(error) + "\n" + stackTrace.toString$0(0) + "\n");
     },
-    $signature: 9
+    $signature: 13
   };
   A._sendConnectRequest_closure.prototype = {
     call$1(b) {
@@ -28426,7 +27916,7 @@
       b.get$_connect_request$_$this()._entrypointPath = t1;
       return b;
     },
-    $signature: 83
+    $signature: 81
   };
   A._launchCommunicationWithDebugExtension_closure.prototype = {
     call$1(b) {
@@ -28455,13 +27945,13 @@
       b.get$_$this()._workspaceName = t1;
       return b;
     },
-    $signature: 110
+    $signature: 82
   };
   A._handleAuthRequest_closure.prototype = {
     call$1(isAuthenticated) {
       return A._dispatchEvent("dart-auth-response", "" + A._asBool(isAuthenticated));
     },
-    $signature: 85
+    $signature: 83
   };
   A._sendResponse_closure.prototype = {
     call$1(b) {
@@ -28725,13 +28215,13 @@
       A._asJSObject(A._asJSObject(init.G.dartDevEmbedder).config).capturedMainHandler = null;
       A.safeUnawaited(this.$this._runMainWhenReady$2(this.readyToRunMain, runMain));
     },
-    $signature: 20
+    $signature: 34
   };
   A.DdcLibraryBundleRestarter_hotReloadStart_closure.prototype = {
     call$1(hotReloadEndCallback) {
       this.$this._capturedHotReloadEndCallback = type$.JavaScriptFunction._as(hotReloadEndCallback);
     },
-    $signature: 20
+    $signature: 34
   };
   A.DdcRestarter.prototype = {
     restart$3$readyToRunMain$reloadedSourcesPath$runId(readyToRunMain, reloadedSourcesPath, runId) {
@@ -28789,7 +28279,7 @@
       this.sub.cancel$0();
       return value;
     },
-    $signature: 87
+    $signature: 85
   };
   A.ReloadingManager.prototype = {
     hotRestart$3$readyToRunMain$reloadedSourcesPath$runId(readyToRunMain, reloadedSourcesPath, runId) {
@@ -29033,12 +28523,12 @@
             case 0:
               // Function start
               $async$goto = 3;
-              return A._asyncAwait(new A.BrowserClient(A._setArrayType([], type$.JSArray_JSObject))._sendUnstreamed$3("GET", A.Uri_parse(A._asString(type$.JavaScriptObject._as(init.G.$requireLoader).digestsPath)), null), $async$_getDigests$0);
+              return A._asyncAwait(new A.BrowserClient(A.LinkedHashSet_LinkedHashSet$_empty(type$.JSObject))._sendUnstreamed$3("GET", A.Uri_parse(A._asString(type$.JavaScriptObject._as(init.G.$requireLoader).digestsPath)), null), $async$_getDigests$0);
             case 3:
               // returning from await.
               response = $async$result;
               t1 = type$.String;
-              $async$returnValue = type$.Map_dynamic_dynamic._as(B.C_JsonCodec.decode$2$reviver(A.encodingForContentTypeHeader(A._contentTypeForHeaders(response.headers)).decode$1(response.bodyBytes), null)).cast$2$0(0, t1, t1);
+              $async$returnValue = type$.Map_dynamic_dynamic._as(B.C_JsonCodec.decode$2$reviver(A.encodingForCharset(A._contentTypeForHeaders(response.headers).parameters._collection$_map.$index(0, "charset")).decode$1(response.bodyBytes), null)).cast$2$0(0, t1, t1);
               // goto return
               $async$goto = 1;
               break;
@@ -29295,7 +28785,7 @@
     call$1(e) {
       this.completer.completeError$2(new A.HotReloadFailedException(A._asString(type$.JavaScriptObject._as(e).message)), this.stackTrace);
     },
-    $signature: 90
+    $signature: 88
   };
   A._createScript_closure.prototype = {
     call$0() {
@@ -29304,13 +28794,13 @@
         return new A._createScript__closure();
       return new A._createScript__closure0(nonce);
     },
-    $signature: 91
+    $signature: 89
   };
   A._createScript__closure.prototype = {
     call$0() {
       return A._asJSObject(A._asJSObject(init.G.document).createElement("script"));
     },
-    $signature: 10
+    $signature: 11
   };
   A._createScript__closure0.prototype = {
     call$0() {
@@ -29318,7 +28808,7 @@
       scriptElement.setAttribute("nonce", this.nonce);
       return scriptElement;
     },
-    $signature: 10
+    $signature: 11
   };
   A.runMain_closure.prototype = {
     call$0() {
@@ -29365,58 +28855,55 @@
       _instance = hunkHelpers.installInstanceTearOff,
       _instance_2_u = hunkHelpers._instance_2u,
       _instance_1_i = hunkHelpers._instance_1i,
-      _instance_1_u = hunkHelpers._instance_1u,
-      _instance_0_u = hunkHelpers._instance_0u;
-    _static_2(J, "_interceptors_JSArray__compareAny$closure", "JSArray__compareAny", 32);
-    _static_1(A, "async__AsyncRun__scheduleImmediateJsOverride$closure", "_AsyncRun__scheduleImmediateJsOverride", 13);
-    _static_1(A, "async__AsyncRun__scheduleImmediateWithSetImmediate$closure", "_AsyncRun__scheduleImmediateWithSetImmediate", 13);
-    _static_1(A, "async__AsyncRun__scheduleImmediateWithTimer$closure", "_AsyncRun__scheduleImmediateWithTimer", 13);
+      _instance_0_u = hunkHelpers._instance_0u,
+      _instance_1_u = hunkHelpers._instance_1u;
+    _static_2(J, "_interceptors_JSArray__compareAny$closure", "JSArray__compareAny", 20);
+    _static_1(A, "async__AsyncRun__scheduleImmediateJsOverride$closure", "_AsyncRun__scheduleImmediateJsOverride", 12);
+    _static_1(A, "async__AsyncRun__scheduleImmediateWithSetImmediate$closure", "_AsyncRun__scheduleImmediateWithSetImmediate", 12);
+    _static_1(A, "async__AsyncRun__scheduleImmediateWithTimer$closure", "_AsyncRun__scheduleImmediateWithTimer", 12);
     _static_0(A, "async___startMicrotaskLoop$closure", "_startMicrotaskLoop", 0);
     _static_1(A, "async___nullDataHandler$closure", "_nullDataHandler", 7);
-    _static_2(A, "async___nullErrorHandler$closure", "_nullErrorHandler", 9);
+    _static_2(A, "async___nullErrorHandler$closure", "_nullErrorHandler", 13);
     _static_0(A, "async___nullDoneHandler$closure", "_nullDoneHandler", 0);
-    _static(A, "async___rootHandleUncaughtError$closure", 5, null, ["call$5"], ["_rootHandleUncaughtError"], 94, 0);
+    _static(A, "async___rootHandleUncaughtError$closure", 5, null, ["call$5"], ["_rootHandleUncaughtError"], 92, 0);
     _static(A, "async___rootRun$closure", 4, null, ["call$1$4", "call$4"], ["_rootRun", function($self, $parent, zone, f) {
       return A._rootRun($self, $parent, zone, f, type$.dynamic);
-    }], 95, 1);
+    }], 93, 1);
     _static(A, "async___rootRunUnary$closure", 5, null, ["call$2$5", "call$5"], ["_rootRunUnary", function($self, $parent, zone, f, arg) {
       var t1 = type$.dynamic;
       return A._rootRunUnary($self, $parent, zone, f, arg, t1, t1);
-    }], 96, 1);
+    }], 94, 1);
     _static(A, "async___rootRunBinary$closure", 6, null, ["call$3$6", "call$6"], ["_rootRunBinary", function($self, $parent, zone, f, arg1, arg2) {
       var t1 = type$.dynamic;
       return A._rootRunBinary($self, $parent, zone, f, arg1, arg2, t1, t1, t1);
-    }], 97, 1);
+    }], 95, 1);
     _static(A, "async___rootRegisterCallback$closure", 4, null, ["call$1$4", "call$4"], ["_rootRegisterCallback", function($self, $parent, zone, f) {
       return A._rootRegisterCallback($self, $parent, zone, f, type$.dynamic);
-    }], 98, 0);
+    }], 96, 0);
     _static(A, "async___rootRegisterUnaryCallback$closure", 4, null, ["call$2$4", "call$4"], ["_rootRegisterUnaryCallback", function($self, $parent, zone, f) {
       var t1 = type$.dynamic;
       return A._rootRegisterUnaryCallback($self, $parent, zone, f, t1, t1);
-    }], 99, 0);
+    }], 97, 0);
     _static(A, "async___rootRegisterBinaryCallback$closure", 4, null, ["call$3$4", "call$4"], ["_rootRegisterBinaryCallback", function($self, $parent, zone, f) {
       var t1 = type$.dynamic;
       return A._rootRegisterBinaryCallback($self, $parent, zone, f, t1, t1, t1);
-    }], 100, 0);
-    _static(A, "async___rootErrorCallback$closure", 5, null, ["call$5"], ["_rootErrorCallback"], 101, 0);
-    _static(A, "async___rootScheduleMicrotask$closure", 4, null, ["call$4"], ["_rootScheduleMicrotask"], 102, 0);
-    _static(A, "async___rootCreateTimer$closure", 5, null, ["call$5"], ["_rootCreateTimer"], 103, 0);
-    _static(A, "async___rootCreatePeriodicTimer$closure", 5, null, ["call$5"], ["_rootCreatePeriodicTimer"], 104, 0);
-    _static(A, "async___rootPrint$closure", 4, null, ["call$4"], ["_rootPrint"], 105, 0);
-    _static_1(A, "async___printToZone$closure", "_printToZone", 106);
-    _static(A, "async___rootFork$closure", 5, null, ["call$5"], ["_rootFork"], 107, 0);
+    }], 98, 0);
+    _static(A, "async___rootErrorCallback$closure", 5, null, ["call$5"], ["_rootErrorCallback"], 99, 0);
+    _static(A, "async___rootScheduleMicrotask$closure", 4, null, ["call$4"], ["_rootScheduleMicrotask"], 100, 0);
+    _static(A, "async___rootCreateTimer$closure", 5, null, ["call$5"], ["_rootCreateTimer"], 101, 0);
+    _static(A, "async___rootCreatePeriodicTimer$closure", 5, null, ["call$5"], ["_rootCreatePeriodicTimer"], 102, 0);
+    _static(A, "async___rootPrint$closure", 4, null, ["call$4"], ["_rootPrint"], 103, 0);
+    _static_1(A, "async___printToZone$closure", "_printToZone", 104);
+    _static(A, "async___rootFork$closure", 5, null, ["call$5"], ["_rootFork"], 105, 0);
     _instance(A._Completer.prototype, "get$completeError", 0, 1, function() {
       return [null];
-    }, ["call$2", "call$1"], ["completeError$2", "completeError$1"], 31, 0, 0);
-    _instance_2_u(A._Future.prototype, "get$_completeError", "_completeError$2", 9);
+    }, ["call$2", "call$1"], ["completeError$2", "completeError$1"], 24, 0, 0);
+    _instance_2_u(A._Future.prototype, "get$_completeError", "_completeError$2", 13);
     var _;
-    _instance_1_i(_ = A._StreamController.prototype, "get$add", "add$1", 8);
+    _instance_1_i(_ = A._StreamController.prototype, "get$add", "add$1", 9);
     _instance(_, "get$addError", 0, 1, function() {
       return [null];
-    }, ["call$2", "call$1"], ["addError$2", "addError$1"], 31, 0, 0);
-    _instance_1_u(_, "get$_add", "_add$1", 8);
-    _instance_2_u(_, "get$_addError", "_addError$2", 9);
-    _instance_0_u(_, "get$_close", "_close$0", 0);
+    }, ["call$2", "call$1"], ["addError$2", "addError$1"], 24, 0, 0);
     _instance_0_u(_ = A._ControllerSubscription.prototype, "get$_onPause", "_onPause$0", 0);
     _instance_0_u(_, "get$_onResume", "_onResume$0", 0);
     _instance_0_u(_ = A._BufferingStreamSubscription.prototype, "get$_onPause", "_onPause$0", 0);
@@ -29424,45 +28911,45 @@
     _instance_0_u(A._DoneStreamSubscription.prototype, "get$_onMicrotask", "_onMicrotask$0", 0);
     _instance_0_u(_ = A._ForwardingStreamSubscription.prototype, "get$_onPause", "_onPause$0", 0);
     _instance_0_u(_, "get$_onResume", "_onResume$0", 0);
-    _instance_1_u(_, "get$_handleData", "_handleData$1", 8);
-    _instance_2_u(_, "get$_handleError", "_handleError$2", 21);
+    _instance_1_u(_, "get$_handleData", "_handleData$1", 9);
+    _instance_2_u(_, "get$_handleError", "_handleError$2", 26);
     _instance_0_u(_, "get$_handleDone", "_handleDone$0", 0);
-    _static_2(A, "collection___defaultEquals$closure", "_defaultEquals0", 18);
-    _static_1(A, "collection___defaultHashCode$closure", "_defaultHashCode", 15);
-    _static_2(A, "collection_ListBase__compareAny$closure", "ListBase__compareAny", 32);
-    _static_1(A, "convert___defaultToEncodable$closure", "_defaultToEncodable", 6);
-    _instance_1_i(_ = A._ByteCallbackSink.prototype, "get$add", "add$1", 8);
+    _static_2(A, "collection___defaultEquals$closure", "_defaultEquals0", 17);
+    _static_1(A, "collection___defaultHashCode$closure", "_defaultHashCode", 18);
+    _static_2(A, "collection_ListBase__compareAny$closure", "ListBase__compareAny", 20);
+    _static_1(A, "convert___defaultToEncodable$closure", "_defaultToEncodable", 4);
+    _instance_1_i(_ = A._ByteCallbackSink.prototype, "get$add", "add$1", 9);
     _instance_0_u(_, "get$close", "close$0", 0);
-    _static_1(A, "core__identityHashCode$closure", "identityHashCode", 15);
-    _static_2(A, "core__identical$closure", "identical", 18);
-    _static_1(A, "core_Uri_decodeComponent$closure", "Uri_decodeComponent", 16);
+    _static_1(A, "core__identityHashCode$closure", "identityHashCode", 18);
+    _static_2(A, "core__identical$closure", "identical", 17);
+    _static_1(A, "core_Uri_decodeComponent$closure", "Uri_decodeComponent", 15);
     _static(A, "math__max$closure", 2, null, ["call$1$2", "call$2"], ["max", function(a, b) {
       return A.max(a, b, type$.num);
-    }], 108, 1);
-    _instance_2_u(_ = A.DeepCollectionEquality.prototype, "get$equals", "equals$2", 18);
-    _instance_1_u(_, "get$hash", "hash$1", 15);
-    _instance_1_u(_, "get$isValidKey", "isValidKey$1", 12);
+    }], 106, 1);
+    _instance_2_u(_ = A.DeepCollectionEquality.prototype, "get$equals", "equals$2", 17);
+    _instance_1_u(_, "get$hash", "hash$1", 18);
+    _instance_1_u(_, "get$isValidKey", "isValidKey$1", 14);
     _static(A, "hot_reload_response_HotReloadResponse___new_tearOff$closure", 0, null, ["call$1", "call$0"], ["HotReloadResponse___new_tearOff", function() {
       return A.HotReloadResponse___new_tearOff(null);
-    }], 109, 0);
+    }], 78, 0);
     _static(A, "hot_restart_response_HotRestartResponse___new_tearOff$closure", 0, null, ["call$1", "call$0"], ["HotRestartResponse___new_tearOff", function() {
       return A.HotRestartResponse___new_tearOff(null);
-    }], 73, 0);
-    _static_1(A, "case_insensitive_map_CaseInsensitiveMap__canonicalizer$closure", "CaseInsensitiveMap__canonicalizer", 16);
+    }], 72, 0);
+    _static_1(A, "case_insensitive_map_CaseInsensitiveMap__canonicalizer$closure", "CaseInsensitiveMap__canonicalizer", 15);
     _instance_1_u(_ = A.SseClient.prototype, "get$_onIncomingControlMessage", "_onIncomingControlMessage$1", 2);
     _instance_1_u(_, "get$_onIncomingMessage", "_onIncomingMessage$1", 2);
     _instance_0_u(_, "get$_onOutgoingDone", "_onOutgoingDone$0", 0);
-    _instance_1_u(_, "get$_onOutgoingMessage", "_onOutgoingMessage$1", 67);
+    _instance_1_u(_, "get$_onOutgoingMessage", "_onOutgoingMessage$1", 65);
     _static_1(A, "client___handleAuthRequest$closure", "_handleAuthRequest", 2);
-    _instance_1_u(_ = A.RequireRestarter.prototype, "get$_moduleParents", "_moduleParents$1", 88);
-    _instance_2_u(_, "get$_moduleTopologicalCompare", "_moduleTopologicalCompare$2", 89);
+    _instance_1_u(_ = A.RequireRestarter.prototype, "get$_moduleParents", "_moduleParents$1", 86);
+    _instance_2_u(_, "get$_moduleTopologicalCompare", "_moduleTopologicalCompare$2", 87);
   })();
   (function inheritance() {
     var _mixin = hunkHelpers.mixin,
       _inherit = hunkHelpers.inherit,
       _inheritMany = hunkHelpers.inheritMany;
     _inherit(A.Object, null);
-    _inheritMany(A.Object, [A.JS_CONST, J.Interceptor, A.SafeToStringHook, J.ArrayIterator, A.Iterable, A.CastIterator, A.Closure, A.MapBase, A.Error, A.ListBase, A.SentinelValue, A.ListIterator, A.MappedIterator, A.WhereIterator, A.ExpandIterator, A.TakeIterator, A.SkipIterator, A.EmptyIterator, A.WhereTypeIterator, A.FixedLengthListMixin, A.UnmodifiableListMixin, A._Record, A.ConstantMap, A._KeysOrValuesOrElementsIterator, A.TypeErrorDecoder, A.NullThrownFromJavaScriptException, A.ExceptionAndStackTrace, A._StackTrace, A.LinkedHashMapCell, A.LinkedHashMapKeyIterator, A.LinkedHashMapValueIterator, A.LinkedHashMapEntryIterator, A.JSSyntaxRegExp, A._MatchImplementation, A._AllMatchesIterator, A.StringMatch, A._StringAllMatchesIterator, A._Cell, A._UnmodifiableNativeByteBufferView, A.Rti, A._FunctionParameters, A._Type, A._TimerImpl, A._AsyncAwaitCompleter, A._AsyncStarStreamController, A._IterationMarker, A.AsyncError, A.TimeoutException, A._Completer, A._FutureListener, A._Future, A._AsyncCallbackEntry, A.Stream, A._StreamController, A._SyncStreamControllerDispatch, A._AsyncStreamControllerDispatch, A._BufferingStreamSubscription, A._StreamSinkWrapper, A._AddStreamState, A._DelayedEvent, A._DelayedDone, A._PendingEvents, A._DoneStreamSubscription, A._StreamIterator, A._ZoneFunction, A._ZoneSpecification, A._ZoneDelegate, A._Zone, A._HashMapKeyIterator, A.SetBase, A._HashSetIterator, A._LinkedHashSetCell, A._LinkedHashSetIterator, A._UnmodifiableMapMixin, A.MapView, A._ListQueueIterator, A._SplayTreeNode, A._SplayTree, A._SplayTreeIterator, A.Codec, A.Converter, A._Base64Encoder, A._Base64Decoder, A.ByteConversionSink, A._JsonStringifier, A._Utf8Encoder, A._Utf8Decoder, A._BigIntImpl, A.DateTime, A.Duration, A.OutOfMemoryError, A.StackOverflowError, A._Exception, A.FormatException, A.IntegerDivisionByZeroException, A.MapEntry, A.Null, A._StringStackTrace, A.StringBuffer, A._Uri, A.UriData, A._SimpleUri, A.NullRejectionException, A._JSRandom, A._JSSecureRandom, A.AsyncMemoizer, A.DelegatingStreamSink, A.ErrorResult, A.ValueResult, A.StreamQueue, A._NextRequest, A._HasNextRequest, A.BuiltList, A.ListBuilder, A.BuiltListMultimap, A.ListMultimapBuilder, A.BuiltMap, A.MapBuilder, A.BuiltSet, A.SetBuilder, A.BuiltSetMultimap, A.SetMultimapBuilder, A.EnumClass, A.IndentingBuiltValueToStringHelper, A.JsonObject, A.FullType, A.BigIntSerializer, A.BoolSerializer, A.BuiltJsonSerializers, A.BuiltJsonSerializersBuilder, A.BuiltListMultimapSerializer, A.BuiltListSerializer, A.BuiltMapSerializer, A.BuiltSetMultimapSerializer, A.BuiltSetSerializer, A.DateTimeSerializer, A.DoubleSerializer, A.DurationSerializer, A.Int32Serializer, A.Int64Serializer, A.IntSerializer, A.JsonObjectSerializer, A.ListSerializer, A.MapSerializer, A.NullSerializer, A.NumSerializer, A.RegExpSerializer, A.SetSerializer, A.StringSerializer, A.Uint8ListSerializer, A.UriSerializer, A.CanonicalizedMap, A.DefaultEquality, A.IterableEquality, A.ListEquality, A._UnorderedEquality, A._MapEntry, A.MapEquality, A.DeepCollectionEquality, A._QueueList_Object_ListMixin, A.BuildResult, A._$BuildStatusSerializer, A._$BuildResultSerializer, A.BuildResultBuilder, A.ConnectRequest, A._$ConnectRequestSerializer, A.ConnectRequestBuilder, A.DebugEvent, A.BatchedDebugEvents, A._$DebugEventSerializer, A._$BatchedDebugEventsSerializer, A.DebugEventBuilder, A.BatchedDebugEventsBuilder, A.DebugInfo, A._$DebugInfoSerializer, A.DebugInfoBuilder, A.DevToolsRequest, A.DevToolsResponse, A._$DevToolsRequestSerializer, A._$DevToolsResponseSerializer, A.DevToolsRequestBuilder, A.DevToolsResponseBuilder, A.ErrorResponse, A._$ErrorResponseSerializer, A.ErrorResponseBuilder, A.ExtensionRequest, A.ExtensionResponse, A.ExtensionEvent, A.BatchedEvents, A._$ExtensionRequestSerializer, A._$ExtensionResponseSerializer, A._$ExtensionEventSerializer, A._$BatchedEventsSerializer, A.ExtensionRequestBuilder, A.ExtensionResponseBuilder, A.ExtensionEventBuilder, A.BatchedEventsBuilder, A.HotReloadRequest, A._$HotReloadRequestSerializer, A.HotReloadRequestBuilder, A.HotReloadResponse, A._$HotReloadResponseSerializer, A.HotReloadResponseBuilder, A.HotRestartRequest, A._$HotRestartRequestSerializer, A.HotRestartRequestBuilder, A.HotRestartResponse, A._$HotRestartResponseSerializer, A.HotRestartResponseBuilder, A.IsolateExit, A.IsolateStart, A._$IsolateExitSerializer, A._$IsolateStartSerializer, A.IsolateExitBuilder, A.IsolateStartBuilder, A.RegisterEvent, A._$RegisterEventSerializer, A.RegisterEventBuilder, A.RunRequest, A._$RunRequestSerializer, A.ServiceExtensionRequest, A._$ServiceExtensionRequestSerializer, A.ServiceExtensionRequestBuilder, A.ServiceExtensionResponse, A._$ServiceExtensionResponseSerializer, A.ServiceExtensionResponseBuilder, A.BatchedStreamController, A.SocketClient, A.Int32, A.Int64, A._StackState, A.ClientException, A.BaseClient, A.BaseRequest, A.BaseResponse, A.MediaType, A.Level, A.LogRecord, A.Logger, A.Context, A.Style, A.ParsedPath, A.PathException, A.Pool, A.PoolResource, A.SourceFile, A.SourceLocationMixin, A.SourceSpanMixin, A.Highlighter, A._Highlight, A._Line, A.SourceLocation, A.SourceSpanException, A.StreamChannelMixin, A._GuaranteeSink, A.StreamChannelController, A.StringScanner, A.RNG, A.UuidV1, A.EventStreamProvider, A._EventStreamSubscription, A.BrowserWebSocket, A.WebSocketEvent, A.WebSocketException, A.WebSocketChannelException, A.DdcLibraryBundleRestarter, A.DdcRestarter, A.ReloadingManager, A.HotReloadFailedException, A.RequireRestarter]);
+    _inheritMany(A.Object, [A.JS_CONST, J.Interceptor, A.SafeToStringHook, J.ArrayIterator, A.Iterable, A.CastIterator, A.Closure, A.MapBase, A.Error, A.ListBase, A.SentinelValue, A.ListIterator, A.MappedIterator, A.WhereIterator, A.ExpandIterator, A.TakeIterator, A.SkipIterator, A.EmptyIterator, A.WhereTypeIterator, A.FixedLengthListMixin, A.UnmodifiableListMixin, A._Record, A.ConstantMap, A._KeysOrValuesOrElementsIterator, A.TypeErrorDecoder, A.NullThrownFromJavaScriptException, A.ExceptionAndStackTrace, A._StackTrace, A.LinkedHashMapCell, A.LinkedHashMapKeyIterator, A.LinkedHashMapValueIterator, A.LinkedHashMapEntryIterator, A.JSSyntaxRegExp, A._MatchImplementation, A._AllMatchesIterator, A.StringMatch, A._StringAllMatchesIterator, A._Cell, A.Rti, A._FunctionParameters, A._Type, A._TimerImpl, A._AsyncAwaitCompleter, A.AsyncError, A.TimeoutException, A._Completer, A._FutureListener, A._Future, A._AsyncCallbackEntry, A.Stream, A._StreamController, A._SyncStreamControllerDispatch, A._AsyncStreamControllerDispatch, A._BufferingStreamSubscription, A._StreamSinkWrapper, A._DelayedEvent, A._DelayedDone, A._PendingEvents, A._DoneStreamSubscription, A._StreamIterator, A._ZoneFunction, A._ZoneSpecification, A._ZoneDelegate, A._Zone, A._HashMapKeyIterator, A.SetBase, A._HashSetIterator, A._LinkedHashSetCell, A._LinkedHashSetIterator, A._UnmodifiableMapMixin, A.MapView, A._ListQueueIterator, A._SplayTreeNode, A._SplayTree, A._SplayTreeIterator, A.Codec, A.Converter, A._Base64Encoder, A._Base64Decoder, A.ByteConversionSink, A._JsonStringifier, A._Utf8Encoder, A._Utf8Decoder, A._BigIntImpl, A.DateTime, A.Duration, A.OutOfMemoryError, A.StackOverflowError, A._Exception, A.FormatException, A.IntegerDivisionByZeroException, A.MapEntry, A.Null, A._StringStackTrace, A.StringBuffer, A._Uri, A.UriData, A._SimpleUri, A.NullRejectionException, A._JSRandom, A.AsyncMemoizer, A.DelegatingStreamSink, A.ErrorResult, A.ValueResult, A.StreamQueue, A._NextRequest, A._HasNextRequest, A.BuiltList, A.ListBuilder, A.BuiltListMultimap, A.ListMultimapBuilder, A.BuiltMap, A.MapBuilder, A.BuiltSet, A.SetBuilder, A.BuiltSetMultimap, A.SetMultimapBuilder, A.EnumClass, A.IndentingBuiltValueToStringHelper, A.JsonObject, A.FullType, A.BigIntSerializer, A.BoolSerializer, A.BuiltJsonSerializers, A.BuiltJsonSerializersBuilder, A.BuiltListMultimapSerializer, A.BuiltListSerializer, A.BuiltMapSerializer, A.BuiltSetMultimapSerializer, A.BuiltSetSerializer, A.DateTimeSerializer, A.DoubleSerializer, A.DurationSerializer, A.Int32Serializer, A.Int64Serializer, A.IntSerializer, A.JsonObjectSerializer, A.ListSerializer, A.MapSerializer, A.NullSerializer, A.NumSerializer, A.RegExpSerializer, A.SetSerializer, A.StringSerializer, A.Uint8ListSerializer, A.UriSerializer, A.CanonicalizedMap, A.DefaultEquality, A.IterableEquality, A.ListEquality, A._UnorderedEquality, A._MapEntry, A.MapEquality, A.DeepCollectionEquality, A._QueueList_Object_ListMixin, A.BuildResult, A._$BuildStatusSerializer, A._$BuildResultSerializer, A.BuildResultBuilder, A.ConnectRequest, A._$ConnectRequestSerializer, A.ConnectRequestBuilder, A.DebugEvent, A.BatchedDebugEvents, A._$DebugEventSerializer, A._$BatchedDebugEventsSerializer, A.DebugEventBuilder, A.BatchedDebugEventsBuilder, A.DebugInfo, A._$DebugInfoSerializer, A.DebugInfoBuilder, A.DevToolsRequest, A.DevToolsResponse, A._$DevToolsRequestSerializer, A._$DevToolsResponseSerializer, A.DevToolsRequestBuilder, A.DevToolsResponseBuilder, A.ErrorResponse, A._$ErrorResponseSerializer, A.ErrorResponseBuilder, A.ExtensionRequest, A.ExtensionResponse, A.ExtensionEvent, A.BatchedEvents, A._$ExtensionRequestSerializer, A._$ExtensionResponseSerializer, A._$ExtensionEventSerializer, A._$BatchedEventsSerializer, A.ExtensionRequestBuilder, A.ExtensionResponseBuilder, A.ExtensionEventBuilder, A.BatchedEventsBuilder, A.HotReloadRequest, A._$HotReloadRequestSerializer, A.HotReloadRequestBuilder, A.HotReloadResponse, A._$HotReloadResponseSerializer, A.HotReloadResponseBuilder, A.HotRestartRequest, A._$HotRestartRequestSerializer, A.HotRestartRequestBuilder, A.HotRestartResponse, A._$HotRestartResponseSerializer, A.HotRestartResponseBuilder, A.IsolateExit, A.IsolateStart, A._$IsolateExitSerializer, A._$IsolateStartSerializer, A.IsolateExitBuilder, A.IsolateStartBuilder, A.RegisterEvent, A._$RegisterEventSerializer, A.RegisterEventBuilder, A.RunRequest, A._$RunRequestSerializer, A.ServiceExtensionRequest, A._$ServiceExtensionRequestSerializer, A.ServiceExtensionRequestBuilder, A.ServiceExtensionResponse, A._$ServiceExtensionResponseSerializer, A.ServiceExtensionResponseBuilder, A.BatchedStreamController, A.SocketClient, A.Int32, A.Int64, A._StackState, A.BaseClient, A.BaseRequest, A.BaseResponse, A.ClientException, A.MediaType, A.Level, A.LogRecord, A.Logger, A.Context, A.Style, A.ParsedPath, A.PathException, A.Pool, A.PoolResource, A.SourceFile, A.SourceLocationMixin, A.SourceSpanMixin, A.Highlighter, A._Highlight, A._Line, A.SourceLocation, A.SourceSpanException, A.StreamChannelMixin, A._GuaranteeSink, A.StreamChannelController, A.StringScanner, A.RNG, A.UuidV1, A.EventStreamProvider, A._EventStreamSubscription, A.BrowserWebSocket, A.WebSocketEvent, A.WebSocketException, A.WebSocketChannelException, A.DdcLibraryBundleRestarter, A.DdcRestarter, A.ReloadingManager, A.HotReloadFailedException, A.RequireRestarter]);
     _inheritMany(J.Interceptor, [J.JSBool, J.JSNull, J.JavaScriptObject, J.JavaScriptBigInt, J.JavaScriptSymbol, J.JSNumber, J.JSString]);
     _inheritMany(J.JavaScriptObject, [J.LegacyJavaScriptObject, J.JSArray, A.NativeByteBuffer, A.NativeTypedData]);
     _inheritMany(J.LegacyJavaScriptObject, [J.PlainJavaScriptObject, J.UnknownJavaScriptObject, J.JavaScriptFunction]);
@@ -29473,14 +28960,14 @@
     _inheritMany(A._CastIterableBase, [A.CastIterable, A.__CastListBase__CastIterableBase_ListMixin]);
     _inherit(A._EfficientLengthCastIterable, A.CastIterable);
     _inherit(A._CastListBase, A.__CastListBase__CastIterableBase_ListMixin);
-    _inheritMany(A.Closure, [A.Closure2Args, A.Closure0Args, A.Instantiation, A.TearOffClosure, A.initHooks_closure, A.initHooks_closure1, A._AsyncRun__initializeScheduleImmediate_internalCallback, A._AsyncRun__initializeScheduleImmediate_closure, A._awaitOnObject_closure, A._asyncStarHelper_closure0, A._Future__propagateToListeners_handleWhenCompleteCallback_closure, A._Future_timeout_closure0, A.Stream_length_closure, A.Stream_first_closure0, A._CustomZone_bindUnaryCallback_closure, A._CustomZone_bindUnaryCallbackGuarded_closure, A._RootZone_bindUnaryCallback_closure, A._RootZone_bindUnaryCallbackGuarded_closure, A.runZonedGuarded_closure, A._CustomHashMap_closure, A._LinkedCustomHashMap_closure, A._BigIntImpl_hashCode_finish, A._Uri__makePath_closure, A.FutureOfJSAnyToJSPromise_get_toJS__closure, A.FutureOfVoidToJSPromise_get_toJS__closure, A.jsify__convert, A.promiseToFuture_closure, A.promiseToFuture_closure0, A.dartify_convert, A.StreamQueue__ensureListening_closure, A.BuiltListMultimap_BuiltListMultimap_closure, A.BuiltListMultimap_hashCode_closure, A.ListMultimapBuilder_replace_closure, A.BuiltMap_BuiltMap_closure, A.BuiltMap_hashCode_closure, A.BuiltSet_hashCode_closure, A.BuiltSetMultimap_hashCode_closure, A.SetMultimapBuilder_replace_closure, A.newBuiltValueToStringHelper_closure, A.BuiltListMultimapSerializer_serialize_closure, A.BuiltListMultimapSerializer_deserialize_closure, A.BuiltListSerializer_serialize_closure, A.BuiltListSerializer_deserialize_closure, A.BuiltSetMultimapSerializer_serialize_closure, A.BuiltSetMultimapSerializer_deserialize_closure, A.BuiltSetSerializer_serialize_closure, A.BuiltSetSerializer_deserialize_closure, A.ListSerializer_serialize_closure, A.SetSerializer_serialize_closure, A.CanonicalizedMap_keys_closure, A.ServiceExtensionResponse_ServiceExtensionResponse$fromResult_closure, A.WebSocketClient_stream_closure, A.BaseRequest_closure0, A.BrowserClient_send_closure, A._readBody_closure, A._readBody_closure0, A.ByteStream_toBytes_closure, A.MediaType_toString__closure, A.expectQuotedString_closure, A.Context_joinAll_closure, A.Context_split_closure, A._validateArgList_closure, A.Pool__runOnRelease_closure, A.Highlighter$__closure, A.Highlighter$___closure, A.Highlighter$__closure0, A.Highlighter__collateLines_closure, A.Highlighter__collateLines_closure1, A.Highlighter__collateLines__closure, A.Highlighter_highlight_closure, A.SseClient_closure0, A.SseClient_closure1, A._GuaranteeSink__addError_closure, A._EventStreamSubscription_closure, A._EventStreamSubscription_onData_closure, A.BrowserWebSocket_connect_closure, A.BrowserWebSocket_connect_closure0, A.BrowserWebSocket_connect_closure1, A.BrowserWebSocket_connect_closure2, A.AdapterWebSocketChannel_closure, A.AdapterWebSocketChannel__closure, A.AdapterWebSocketChannel__closure0, A.AdapterWebSocketChannel_closure0, A.main__closure1, A.main__closure3, A.main___closure2, A.main___closure1, A.main__closure5, A.main___closure0, A.main___closure, A.main__closure7, A.main__closure8, A.main__closure9, A._sendConnectRequest_closure, A._launchCommunicationWithDebugExtension_closure, A._handleAuthRequest_closure, A._sendResponse_closure, A.DdcLibraryBundleRestarter_restart_closure, A.DdcLibraryBundleRestarter_hotReloadStart_closure, A.DdcRestarter_restart_closure0, A.DdcRestarter_restart_closure, A.RequireRestarter__reloadModule_closure0, A.JSArrayExtension_toDartIterable_closure]);
-    _inheritMany(A.Closure2Args, [A._CastListBase_sort_closure, A.CastMap_forEach_closure, A.ConstantMap_map_closure, A.JsLinkedHashMap_addAll_closure, A.initHooks_closure0, A._awaitOnObject_closure0, A._wrapJsFunctionForAsync_closure, A._Future__propagateToListeners_handleWhenCompleteCallback_closure0, A._Future_timeout_closure1, A._AddStreamState_makeErrorHandler_closure, A._BufferingStreamSubscription_asFuture_closure0, A.LinkedHashMap_LinkedHashMap$from_closure, A.MapBase_mapToString_closure, A._JsonStringifier_writeMap_closure, A._BigIntImpl_hashCode_combine, A.Uri__parseIPv4Address_error, A.Uri_parseIPv6Address_error, A.Uri_parseIPv6Address_parseHex, A.FutureOfJSAnyToJSPromise_get_toJS_closure, A.FutureOfJSAnyToJSPromise_get_toJS__closure0, A.FutureOfVoidToJSPromise_get_toJS_closure, A.FutureOfVoidToJSPromise_get_toJS__closure0, A.StreamQueue__ensureListening_closure1, A.hashObjects_closure, A.MapBuilder_replace_closure, A.CanonicalizedMap_addAll_closure, A.CanonicalizedMap_forEach_closure, A.CanonicalizedMap_map_closure, A.safeUnawaited_closure, A.BaseRequest_closure, A.MediaType_toString_closure, A.Pool__runOnRelease_closure0, A.Highlighter__collateLines_closure0, A.main__closure4, A.main_closure0]);
+    _inheritMany(A.Closure, [A.Closure2Args, A.Closure0Args, A.Instantiation, A.TearOffClosure, A.initHooks_closure, A.initHooks_closure1, A._AsyncRun__initializeScheduleImmediate_internalCallback, A._AsyncRun__initializeScheduleImmediate_closure, A._awaitOnObject_closure, A._Future__propagateToListeners_handleWhenCompleteCallback_closure, A._Future_timeout_closure0, A.Stream_length_closure, A.Stream_first_closure0, A._CustomZone_bindUnaryCallback_closure, A._CustomZone_bindUnaryCallbackGuarded_closure, A._RootZone_bindUnaryCallback_closure, A._RootZone_bindUnaryCallbackGuarded_closure, A.runZonedGuarded_closure, A._CustomHashMap_closure, A._LinkedCustomHashMap_closure, A._BigIntImpl_hashCode_finish, A._Uri__makePath_closure, A.FutureOfJSAnyToJSPromise_get_toJS__closure, A.FutureOfVoidToJSPromise_get_toJS__closure, A.jsify__convert, A.promiseToFuture_closure, A.promiseToFuture_closure0, A.dartify_convert, A.StreamQueue__ensureListening_closure, A.BuiltListMultimap_BuiltListMultimap_closure, A.BuiltListMultimap_hashCode_closure, A.ListMultimapBuilder_replace_closure, A.BuiltMap_BuiltMap_closure, A.BuiltMap_hashCode_closure, A.BuiltSet_hashCode_closure, A.BuiltSetMultimap_hashCode_closure, A.SetMultimapBuilder_replace_closure, A.newBuiltValueToStringHelper_closure, A.BuiltListMultimapSerializer_serialize_closure, A.BuiltListMultimapSerializer_deserialize_closure, A.BuiltListSerializer_serialize_closure, A.BuiltListSerializer_deserialize_closure, A.BuiltSetMultimapSerializer_serialize_closure, A.BuiltSetMultimapSerializer_deserialize_closure, A.BuiltSetSerializer_serialize_closure, A.BuiltSetSerializer_deserialize_closure, A.ListSerializer_serialize_closure, A.SetSerializer_serialize_closure, A.CanonicalizedMap_keys_closure, A.ServiceExtensionResponse_ServiceExtensionResponse$fromResult_closure, A.WebSocketClient_stream_closure, A.BaseRequest_closure0, A.BrowserClient_send_closure, A.BrowserClient_send_closure0, A.ByteStream_toBytes_closure, A.MediaType_toString__closure, A.expectQuotedString_closure, A.Context_joinAll_closure, A.Context_split_closure, A._validateArgList_closure, A.Pool__runOnRelease_closure, A.Highlighter$__closure, A.Highlighter$___closure, A.Highlighter$__closure0, A.Highlighter__collateLines_closure, A.Highlighter__collateLines_closure1, A.Highlighter__collateLines__closure, A.Highlighter_highlight_closure, A.SseClient_closure0, A.SseClient_closure1, A.generateUuidV4_generateBits, A._GuaranteeSink__addError_closure, A._EventStreamSubscription_closure, A._EventStreamSubscription_onData_closure, A.BrowserWebSocket_connect_closure, A.BrowserWebSocket_connect_closure0, A.BrowserWebSocket_connect_closure1, A.BrowserWebSocket_connect_closure2, A.AdapterWebSocketChannel_closure, A.AdapterWebSocketChannel__closure, A.AdapterWebSocketChannel__closure0, A.AdapterWebSocketChannel_closure0, A.main__closure1, A.main__closure3, A.main___closure2, A.main___closure1, A.main__closure5, A.main___closure0, A.main___closure, A.main__closure7, A.main__closure8, A.main__closure9, A._sendConnectRequest_closure, A._launchCommunicationWithDebugExtension_closure, A._handleAuthRequest_closure, A._sendResponse_closure, A.DdcLibraryBundleRestarter_restart_closure, A.DdcLibraryBundleRestarter_hotReloadStart_closure, A.DdcRestarter_restart_closure0, A.DdcRestarter_restart_closure, A.RequireRestarter__reloadModule_closure0, A.JSArrayExtension_toDartIterable_closure]);
+    _inheritMany(A.Closure2Args, [A._CastListBase_sort_closure, A.CastMap_forEach_closure, A.ConstantMap_map_closure, A.JsLinkedHashMap_addAll_closure, A.initHooks_closure0, A._awaitOnObject_closure0, A._wrapJsFunctionForAsync_closure, A._Future__propagateToListeners_handleWhenCompleteCallback_closure0, A._Future_timeout_closure1, A._BufferingStreamSubscription_asFuture_closure0, A.LinkedHashMap_LinkedHashMap$from_closure, A.MapBase_mapToString_closure, A._JsonStringifier_writeMap_closure, A._BigIntImpl_hashCode_combine, A.Uri__parseIPv4Address_error, A.Uri_parseIPv6Address_error, A.Uri_parseIPv6Address_parseHex, A.FutureOfJSAnyToJSPromise_get_toJS_closure, A.FutureOfJSAnyToJSPromise_get_toJS__closure0, A.FutureOfVoidToJSPromise_get_toJS_closure, A.FutureOfVoidToJSPromise_get_toJS__closure0, A.StreamQueue__ensureListening_closure1, A.hashObjects_closure, A.MapBuilder_replace_closure, A.CanonicalizedMap_addAll_closure, A.CanonicalizedMap_forEach_closure, A.CanonicalizedMap_map_closure, A.safeUnawaited_closure, A.BaseRequest_closure, A.MediaType_toString_closure, A.Pool__runOnRelease_closure0, A.Highlighter__collateLines_closure0, A.generateUuidV4_printDigits, A.generateUuidV4_bitsDigits, A.main__closure4, A.main_closure0]);
     _inherit(A.CastList, A._CastListBase);
     _inheritMany(A.MapBase, [A.CastMap, A.JsLinkedHashMap, A._HashMap, A._JsonMap]);
     _inheritMany(A.Error, [A.LateError, A.TypeError, A.JsNoSuchMethodError, A.UnknownJsTypeError, A.RuntimeError, A._Error, A.JsonUnsupportedObjectError, A.AssertionError, A.ArgumentError, A.UnsupportedError, A.UnimplementedError, A.StateError, A.ConcurrentModificationError, A.BuiltValueNullFieldError, A.BuiltValueNestedFieldError, A.DeserializationError]);
     _inherit(A.UnmodifiableListBase, A.ListBase);
     _inheritMany(A.UnmodifiableListBase, [A.CodeUnits, A.UnmodifiableListView]);
-    _inheritMany(A.Closure0Args, [A.nullFuture_closure, A._AsyncRun__scheduleImmediateJsOverride_internalCallback, A._AsyncRun__scheduleImmediateWithSetImmediate_internalCallback, A._TimerImpl_internalCallback, A._TimerImpl$periodic_closure, A._asyncStarHelper_closure, A._AsyncStarStreamController__resumeBody, A._AsyncStarStreamController__resumeBody_closure, A._AsyncStarStreamController_closure0, A._AsyncStarStreamController_closure1, A._AsyncStarStreamController_closure, A._AsyncStarStreamController__closure, A.Future_Future$microtask_closure, A._Future__addListener_closure, A._Future__prependListeners_closure, A._Future__chainCoreFuture_closure, A._Future__asyncCompleteWithValue_closure, A._Future__asyncCompleteErrorObject_closure, A._Future__propagateToListeners_handleWhenCompleteCallback, A._Future__propagateToListeners_handleValueCallback, A._Future__propagateToListeners_handleError, A._Future_timeout_closure, A.Stream_length_closure0, A.Stream_first_closure, A._StreamController__subscribe_closure, A._StreamController__recordCancel_complete, A._AddStreamState_cancel_closure, A._BufferingStreamSubscription_asFuture_closure, A._BufferingStreamSubscription_asFuture__closure, A._BufferingStreamSubscription__sendError_sendError, A._BufferingStreamSubscription__sendDone_sendDone, A._PendingEvents_schedule_closure, A._cancelAndValue_closure, A._CustomZone_bindCallback_closure, A._CustomZone_bindCallbackGuarded_closure, A._rootHandleError_closure, A._RootZone_bindCallback_closure, A._RootZone_bindCallbackGuarded_closure, A._Utf8Decoder__decoder_closure, A._Utf8Decoder__decoderNonfatal_closure, A.StreamQueue__ensureListening_closure0, A.Serializers_Serializers_closure, A.Serializers_Serializers_closure0, A.Serializers_Serializers_closure1, A.Serializers_Serializers_closure2, A.Serializers_Serializers_closure3, A._$serializers_closure, A._$serializers_closure0, A.BatchedStreamController__hasEventOrTimeOut_closure, A.BatchedStreamController__hasEventDuring_closure, A.MediaType_MediaType$parse_closure, A.Logger_Logger_closure, A.Highlighter_closure, A.Highlighter__writeFileStart_closure, A.Highlighter__writeMultilineHighlights_closure, A.Highlighter__writeMultilineHighlights_closure0, A.Highlighter__writeMultilineHighlights_closure1, A.Highlighter__writeMultilineHighlights_closure2, A.Highlighter__writeMultilineHighlights__closure, A.Highlighter__writeMultilineHighlights__closure0, A.Highlighter__writeHighlightedText_closure, A.Highlighter__writeIndicator_closure, A.Highlighter__writeIndicator_closure0, A.Highlighter__writeIndicator_closure1, A.Highlighter__writeSidebar_closure, A._Highlight_closure, A.SseClient_closure, A.SseClient__closure, A.SseClient__onOutgoingMessage_closure, A.GuaranteeChannel_closure, A.GuaranteeChannel__closure, A.AdapterWebSocketChannel__closure1, A.main_closure, A.main__closure, A.main__closure0, A.main__closure2, A.main__closure6, A.DdcLibraryBundleRestarter__getSrcModuleLibraries_closure, A.RequireRestarter__reload_closure, A.RequireRestarter__reloadModule_closure, A._createScript_closure, A._createScript__closure, A._createScript__closure0, A.runMain_closure]);
+    _inheritMany(A.Closure0Args, [A.nullFuture_closure, A._AsyncRun__scheduleImmediateJsOverride_internalCallback, A._AsyncRun__scheduleImmediateWithSetImmediate_internalCallback, A._TimerImpl_internalCallback, A._TimerImpl$periodic_closure, A.Future_Future$microtask_closure, A._Future__addListener_closure, A._Future__prependListeners_closure, A._Future__chainCoreFuture_closure, A._Future__asyncCompleteWithValue_closure, A._Future__asyncCompleteErrorObject_closure, A._Future__propagateToListeners_handleWhenCompleteCallback, A._Future__propagateToListeners_handleValueCallback, A._Future__propagateToListeners_handleError, A._Future_timeout_closure, A.Stream_length_closure0, A.Stream_first_closure, A._StreamController__subscribe_closure, A._StreamController__recordCancel_complete, A._BufferingStreamSubscription_asFuture_closure, A._BufferingStreamSubscription_asFuture__closure, A._BufferingStreamSubscription__sendError_sendError, A._BufferingStreamSubscription__sendDone_sendDone, A._PendingEvents_schedule_closure, A._cancelAndValue_closure, A._CustomZone_bindCallback_closure, A._CustomZone_bindCallbackGuarded_closure, A._rootHandleError_closure, A._RootZone_bindCallback_closure, A._RootZone_bindCallbackGuarded_closure, A._Utf8Decoder__decoder_closure, A._Utf8Decoder__decoderNonfatal_closure, A.StreamQueue__ensureListening_closure0, A.Serializers_Serializers_closure, A.Serializers_Serializers_closure0, A.Serializers_Serializers_closure1, A.Serializers_Serializers_closure2, A.Serializers_Serializers_closure3, A._$serializers_closure, A._$serializers_closure0, A.BatchedStreamController__hasEventOrTimeOut_closure, A.BatchedStreamController__hasEventDuring_closure, A.MediaType_MediaType$parse_closure, A.Logger_Logger_closure, A.Highlighter_closure, A.Highlighter__writeFileStart_closure, A.Highlighter__writeMultilineHighlights_closure, A.Highlighter__writeMultilineHighlights_closure0, A.Highlighter__writeMultilineHighlights_closure1, A.Highlighter__writeMultilineHighlights_closure2, A.Highlighter__writeMultilineHighlights__closure, A.Highlighter__writeMultilineHighlights__closure0, A.Highlighter__writeHighlightedText_closure, A.Highlighter__writeIndicator_closure, A.Highlighter__writeIndicator_closure0, A.Highlighter__writeIndicator_closure1, A.Highlighter__writeSidebar_closure, A._Highlight_closure, A.SseClient_closure, A.SseClient__closure, A.SseClient__onOutgoingMessage_closure, A.GuaranteeChannel_closure, A.GuaranteeChannel__closure, A.AdapterWebSocketChannel__closure1, A.main_closure, A.main__closure, A.main__closure0, A.main__closure2, A.main__closure6, A.DdcLibraryBundleRestarter__getSrcModuleLibraries_closure, A.RequireRestarter__reload_closure, A.RequireRestarter__reloadModule_closure, A._createScript_closure, A._createScript__closure, A._createScript__closure0, A.runMain_closure]);
     _inheritMany(A.EfficientLengthIterable, [A.ListIterable, A.EmptyIterable, A.LinkedHashMapKeysIterable, A.LinkedHashMapValuesIterable, A.LinkedHashMapEntriesIterable, A._HashMapKeyIterable]);
     _inheritMany(A.ListIterable, [A.SubListIterable, A.MappedListIterable, A.ReversedListIterable, A.ListQueue, A._JsonMapKeyIterable]);
     _inherit(A.EfficientLengthMappedIterable, A.MappedIterable);
@@ -29508,7 +28995,6 @@
     _inheritMany(A._StreamController, [A._AsyncStreamController, A._SyncStreamController]);
     _inherit(A._ControllerStream, A._StreamImpl);
     _inheritMany(A._BufferingStreamSubscription, [A._ControllerSubscription, A._ForwardingStreamSubscription]);
-    _inherit(A._StreamControllerAddStreamState, A._AddStreamState);
     _inheritMany(A._DelayedEvent, [A._DelayedData, A._DelayedError]);
     _inherit(A._MapStream, A._ForwardingStream);
     _inheritMany(A._Zone, [A._CustomZone, A._RootZone]);
@@ -29565,7 +29051,6 @@
     _inherit(A._$ServiceExtensionRequest, A.ServiceExtensionRequest);
     _inherit(A._$ServiceExtensionResponse, A.ServiceExtensionResponse);
     _inheritMany(A.SocketClient, [A.SseSocketClient, A.WebSocketClient]);
-    _inherit(A.RequestAbortedException, A.ClientException);
     _inherit(A.BrowserClient, A.BaseClient);
     _inherit(A.ByteStream, A.StreamView);
     _inherit(A.Request, A.BaseRequest);
@@ -29580,7 +29065,7 @@
     _inherit(A.SourceSpanWithContext, A.SourceSpanBase);
     _inheritMany(A.StreamChannelMixin, [A.SseClient, A.GuaranteeChannel, A.AdapterWebSocketChannel]);
     _inherit(A.StringScannerException, A.SourceSpanFormatException);
-    _inherit(A.CryptoRNG, A.RNG);
+    _inherit(A.MathRNG, A.RNG);
     _inheritMany(A.WebSocketEvent, [A.TextDataReceived, A.BinaryDataReceived, A.CloseReceived]);
     _inherit(A.WebSocketConnectionClosed, A.WebSocketException);
     _inherit(A._WebSocketSink, A.DelegatingStreamSink);
@@ -29602,7 +29087,7 @@
     typeUniverse: {eC: new Map(), tR: {}, eT: {}, tPV: {}, sEA: []},
     mangledGlobalNames: {int: "int", double: "double", num: "num", String: "String", bool: "bool", Null: "Null", List: "List", Object: "Object", Map: "Map", JSObject: "JSObject"},
     mangledNames: {},
-    types: ["~()", "Null()", "~(JSObject)", "Object?(@)", "Null(@)", "Null(Object,StackTrace)", "@(@)", "~(@)", "~(Object?)", "~(Object,StackTrace)", "JSObject()", "Object?(Object?)", "bool(Object?)", "~(~())", "Null(JSObject)", "int(Object?)", "String(String)", "bool(_Highlight)", "bool(Object?,Object?)", "Future<~>()", "Null(JavaScriptFunction)", "~(@,StackTrace)", "bool(String)", "int()", "~(@,@)", "~(Object?,Object?)", "@()", "int(int,int)", "String(Match)", "bool()", "Null(JavaScriptFunction,JavaScriptFunction)", "~(Object[StackTrace?])", "int(@,@)", "int(_Line)", "ListMultimapBuilder<Object,Object>()", "MapBuilder<Object,Object>()", "SetBuilder<Object>()", "int(int,@)", "Object?(~)", "JSObject(Object,StackTrace)", "~(String,int?)", "ListBuilder<DebugEvent>()", "ListBuilder<ExtensionEvent>()", "~(ServiceExtensionResponseBuilder)", "~(String,int)", "String(@)", "bool(String,String)", "int(String)", "Null(String,String[Object?])", "bool(Object)", "~(List<int>)", "MediaType()", "~(String,String)", "int(int)", "Logger()", "~(Zone,ZoneDelegate,Zone,Object,StackTrace)", "String(String?)", "String?()", "ListBuilder<Object>()", "_Future<@>?()", "Object(_Line)", "Object(_Highlight)", "int(_Highlight,_Highlight)", "List<_Line>(MapEntry<Object,List<_Highlight>>)", "~(int,@)", "SourceSpanWithContext()", "Null(@,StackTrace)", "~(String?)", "Future<Null>()", "Null(~())", "Null(WebSocket)", "~(WebSocketEvent)", "Null(Object)", "HotRestartResponse([~(HotRestartResponseBuilder)])", "JSObject(String[bool?])", "~(List<DebugEvent>)", "ListBuilder<DebugEvent>(BatchedDebugEventsBuilder)", "Null(String,String)", "DebugEventBuilder(DebugEventBuilder)", "Null(String)", "RegisterEventBuilder(RegisterEventBuilder)", "DevToolsRequestBuilder(DevToolsRequestBuilder)", "Future<~>(String)", "ConnectRequestBuilder(ConnectRequestBuilder)", "IndentingBuiltValueToStringHelper(String)", "~(bool)", "@(String)", "bool(bool)", "List<String>(String)", "int(String,String)", "Null(JavaScriptObject)", "JSObject()()", "SetMultimapBuilder<Object,Object>()", "@(@,String)", "~(Zone?,ZoneDelegate?,Zone,Object,StackTrace)", "0^(Zone?,ZoneDelegate?,Zone,0^())<Object?>", "0^(Zone?,ZoneDelegate?,Zone,0^(1^),1^)<Object?,Object?>", "0^(Zone?,ZoneDelegate?,Zone,0^(1^,2^),1^,2^)<Object?,Object?,Object?>", "0^()(Zone,ZoneDelegate,Zone,0^())<Object?>", "0^(1^)(Zone,ZoneDelegate,Zone,0^(1^))<Object?,Object?>", "0^(1^,2^)(Zone,ZoneDelegate,Zone,0^(1^,2^))<Object?,Object?,Object?>", "AsyncError?(Zone,ZoneDelegate,Zone,Object,StackTrace?)", "~(Zone?,ZoneDelegate?,Zone,~())", "Timer(Zone,ZoneDelegate,Zone,Duration,~())", "Timer(Zone,ZoneDelegate,Zone,Duration,~(Timer))", "~(Zone,ZoneDelegate,Zone,String)", "~(String)", "Zone(Zone?,ZoneDelegate?,Zone,ZoneSpecification?,Map<Object?,Object?>?)", "0^(0^,0^)<num>", "HotReloadResponse([~(HotReloadResponseBuilder)])", "DebugInfoBuilder(DebugInfoBuilder)"],
+    types: ["~()", "Null()", "~(JSObject)", "Object?(@)", "@(@)", "Null(Object,StackTrace)", "Null(@)", "~(@)", "Null(JSObject)", "~(Object?)", "Object?(Object?)", "JSObject()", "~(~())", "~(Object,StackTrace)", "bool(Object?)", "String(String)", "Future<~>()", "bool(Object?,Object?)", "int(Object?)", "bool(_Highlight)", "int(@,@)", "@()", "int(int)", "Null(JavaScriptFunction,JavaScriptFunction)", "~(Object[StackTrace?])", "~(@,@)", "~(@,StackTrace)", "bool()", "int(int,int)", "String(Match)", "bool(String)", "int()", "String(int,int)", "~(Object?,Object?)", "Null(JavaScriptFunction)", "~(String,String)", "@(String)", "@(@,String)", "Null(~())", "~(String,int)", "ListBuilder<DebugEvent>()", "ListBuilder<ExtensionEvent>()", "~(ServiceExtensionResponseBuilder)", "~(String,int?)", "String(@)", "bool(String,String)", "int(String)", "~(Zone,ZoneDelegate,Zone,Object,StackTrace)", "~(List<int>)", "MediaType()", "JSObject(Object,StackTrace)", "Object?(~)", "Logger()", "int(int,@)", "SetMultimapBuilder<Object,Object>()", "String?()", "int(_Line)", "Null(@,StackTrace)", "Object(_Line)", "Object(_Highlight)", "int(_Highlight,_Highlight)", "List<_Line>(MapEntry<Object,List<_Highlight>>)", "IndentingBuiltValueToStringHelper(String)", "SourceSpanWithContext()", "SetBuilder<Object>()", "~(String?)", "Future<Null>()", "ListBuilder<Object>()", "Null(WebSocket)", "~(WebSocketEvent)", "Null(Object)", "ListMultimapBuilder<Object,Object>()", "HotRestartResponse([~(HotRestartResponseBuilder)])", "~(List<DebugEvent>)", "ListBuilder<DebugEvent>(BatchedDebugEventsBuilder)", "Null(String,String)", "DebugEventBuilder(DebugEventBuilder)", "Null(String)", "HotReloadResponse([~(HotReloadResponseBuilder)])", "DevToolsRequestBuilder(DevToolsRequestBuilder)", "Future<~>(String)", "ConnectRequestBuilder(ConnectRequestBuilder)", "DebugInfoBuilder(DebugInfoBuilder)", "~(bool)", "MapBuilder<Object,Object>()", "bool(bool)", "List<String>(String)", "int(String,String)", "Null(JavaScriptObject)", "JSObject()()", "JSObject(String[bool?])", "~(int,@)", "~(Zone?,ZoneDelegate?,Zone,Object,StackTrace)", "0^(Zone?,ZoneDelegate?,Zone,0^())<Object?>", "0^(Zone?,ZoneDelegate?,Zone,0^(1^),1^)<Object?,Object?>", "0^(Zone?,ZoneDelegate?,Zone,0^(1^,2^),1^,2^)<Object?,Object?,Object?>", "0^()(Zone,ZoneDelegate,Zone,0^())<Object?>", "0^(1^)(Zone,ZoneDelegate,Zone,0^(1^))<Object?,Object?>", "0^(1^,2^)(Zone,ZoneDelegate,Zone,0^(1^,2^))<Object?,Object?,Object?>", "AsyncError?(Zone,ZoneDelegate,Zone,Object,StackTrace?)", "~(Zone?,ZoneDelegate?,Zone,~())", "Timer(Zone,ZoneDelegate,Zone,Duration,~())", "Timer(Zone,ZoneDelegate,Zone,Duration,~(Timer))", "~(Zone,ZoneDelegate,Zone,String)", "~(String)", "Zone(Zone?,ZoneDelegate?,Zone,ZoneSpecification?,Map<Object?,Object?>?)", "0^(0^,0^)<num>", "RegisterEventBuilder(RegisterEventBuilder)", "String(String?)"],
     interceptorsByTag: null,
     leafTags: null,
     arrayRti: Symbol("$ti"),
@@ -29610,7 +29095,7 @@
       "2;": (t1, t2) => o => o instanceof A._Record_2 && t1._is(o._0) && t2._is(o._1)
     }
   };
-  A._Universe_addRules(init.typeUniverse, JSON.parse('{"JavaScriptFunction":"LegacyJavaScriptObject","PlainJavaScriptObject":"LegacyJavaScriptObject","UnknownJavaScriptObject":"LegacyJavaScriptObject","NativeSharedArrayBuffer":"NativeByteBuffer","JavaScriptObject":{"JSObject":[]},"JSArray":{"List":["1"],"JavaScriptObject":[],"EfficientLengthIterable":["1"],"JSObject":[],"Iterable":["1"],"JSIndexable":["1"],"Iterable.E":"1"},"JSBool":{"bool":[],"TrustedGetRuntimeType":[]},"JSNull":{"Null":[],"TrustedGetRuntimeType":[]},"LegacyJavaScriptObject":{"JavaScriptObject":[],"JSObject":[]},"JSArraySafeToStringHook":{"SafeToStringHook":[]},"JSUnmodifiableArray":{"JSArray":["1"],"List":["1"],"JavaScriptObject":[],"EfficientLengthIterable":["1"],"JSObject":[],"Iterable":["1"],"JSIndexable":["1"],"Iterable.E":"1"},"ArrayIterator":{"Iterator":["1"]},"JSNumber":{"double":[],"num":[],"Comparable":["num"]},"JSInt":{"double":[],"int":[],"num":[],"Comparable":["num"],"TrustedGetRuntimeType":[]},"JSNumNotInt":{"double":[],"num":[],"Comparable":["num"],"TrustedGetRuntimeType":[]},"JSString":{"String":[],"Comparable":["String"],"Pattern":[],"JSIndexable":["@"],"TrustedGetRuntimeType":[]},"_CastIterableBase":{"Iterable":["2"]},"CastIterator":{"Iterator":["2"]},"CastIterable":{"_CastIterableBase":["1","2"],"Iterable":["2"],"Iterable.E":"2"},"_EfficientLengthCastIterable":{"CastIterable":["1","2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2"},"_CastListBase":{"ListBase":["2"],"List":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"]},"CastList":{"_CastListBase":["1","2"],"ListBase":["2"],"List":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListBase.E":"2","Iterable.E":"2"},"CastMap":{"MapBase":["3","4"],"Map":["3","4"],"MapBase.K":"3","MapBase.V":"4"},"LateError":{"Error":[]},"CodeUnits":{"ListBase":["int"],"UnmodifiableListMixin":["int"],"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"ListBase.E":"int","Iterable.E":"int","UnmodifiableListMixin.E":"int"},"EfficientLengthIterable":{"Iterable":["1"]},"ListIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"]},"SubListIterable":{"ListIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListIterable.E":"1","Iterable.E":"1"},"ListIterator":{"Iterator":["1"]},"MappedIterable":{"Iterable":["2"],"Iterable.E":"2"},"EfficientLengthMappedIterable":{"MappedIterable":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2"},"MappedIterator":{"Iterator":["2"]},"MappedListIterable":{"ListIterable":["2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListIterable.E":"2","Iterable.E":"2"},"WhereIterable":{"Iterable":["1"],"Iterable.E":"1"},"WhereIterator":{"Iterator":["1"]},"ExpandIterable":{"Iterable":["2"],"Iterable.E":"2"},"ExpandIterator":{"Iterator":["2"]},"TakeIterable":{"Iterable":["1"],"Iterable.E":"1"},"EfficientLengthTakeIterable":{"TakeIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"TakeIterator":{"Iterator":["1"]},"SkipIterable":{"Iterable":["1"],"Iterable.E":"1"},"EfficientLengthSkipIterable":{"SkipIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"SkipIterator":{"Iterator":["1"]},"EmptyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"EmptyIterator":{"Iterator":["1"]},"WhereTypeIterable":{"Iterable":["1"],"Iterable.E":"1"},"WhereTypeIterator":{"Iterator":["1"]},"UnmodifiableListBase":{"ListBase":["1"],"UnmodifiableListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"ReversedListIterable":{"ListIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListIterable.E":"1","Iterable.E":"1"},"_Record_2":{"_Record2":[],"_Record":[]},"ConstantMap":{"Map":["1","2"]},"ConstantStringMap":{"ConstantMap":["1","2"],"Map":["1","2"]},"_KeysOrValues":{"Iterable":["1"],"Iterable.E":"1"},"_KeysOrValuesOrElementsIterator":{"Iterator":["1"]},"Instantiation":{"Closure":[],"Function":[]},"Instantiation1":{"Closure":[],"Function":[]},"NullError":{"TypeError":[],"Error":[]},"JsNoSuchMethodError":{"Error":[]},"UnknownJsTypeError":{"Error":[]},"NullThrownFromJavaScriptException":{"Exception":[]},"_StackTrace":{"StackTrace":[]},"Closure":{"Function":[]},"Closure0Args":{"Closure":[],"Function":[]},"Closure2Args":{"Closure":[],"Function":[]},"TearOffClosure":{"Closure":[],"Function":[]},"StaticClosure":{"Closure":[],"Function":[]},"BoundClosure":{"Closure":[],"Function":[]},"RuntimeError":{"Error":[]},"JsLinkedHashMap":{"MapBase":["1","2"],"LinkedHashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"LinkedHashMapKeysIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"LinkedHashMapKeyIterator":{"Iterator":["1"]},"LinkedHashMapValuesIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"LinkedHashMapValueIterator":{"Iterator":["1"]},"LinkedHashMapEntriesIterable":{"EfficientLengthIterable":["MapEntry<1,2>"],"Iterable":["MapEntry<1,2>"],"Iterable.E":"MapEntry<1,2>"},"LinkedHashMapEntryIterator":{"Iterator":["MapEntry<1,2>"]},"JsIdentityLinkedHashMap":{"JsLinkedHashMap":["1","2"],"MapBase":["1","2"],"LinkedHashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"_Record2":{"_Record":[]},"JSSyntaxRegExp":{"RegExp":[],"Pattern":[]},"_MatchImplementation":{"RegExpMatch":[],"Match":[]},"_AllMatchesIterable":{"Iterable":["RegExpMatch"],"Iterable.E":"RegExpMatch"},"_AllMatchesIterator":{"Iterator":["RegExpMatch"]},"StringMatch":{"Match":[]},"_StringAllMatchesIterable":{"Iterable":["Match"],"Iterable.E":"Match"},"_StringAllMatchesIterator":{"Iterator":["Match"]},"NativeByteBuffer":{"JavaScriptObject":[],"JSObject":[],"ByteBuffer":[],"TrustedGetRuntimeType":[]},"NativeArrayBuffer":{"NativeByteBuffer":[],"JavaScriptObject":[],"JSObject":[],"ByteBuffer":[],"TrustedGetRuntimeType":[]},"NativeTypedData":{"JavaScriptObject":[],"JSObject":[]},"_UnmodifiableNativeByteBufferView":{"ByteBuffer":[]},"NativeByteData":{"JavaScriptObject":[],"ByteData":[],"JSObject":[],"TrustedGetRuntimeType":[]},"NativeTypedArray":{"JavaScriptIndexingBehavior":["1"],"JavaScriptObject":[],"JSObject":[],"JSIndexable":["1"]},"NativeTypedArrayOfDouble":{"ListBase":["double"],"NativeTypedArray":["double"],"List":["double"],"JavaScriptIndexingBehavior":["double"],"JavaScriptObject":[],"EfficientLengthIterable":["double"],"JSObject":[],"JSIndexable":["double"],"Iterable":["double"],"FixedLengthListMixin":["double"]},"NativeTypedArrayOfInt":{"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"JSIndexable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"]},"NativeFloat32List":{"Float32List":[],"ListBase":["double"],"NativeTypedArray":["double"],"List":["double"],"JavaScriptIndexingBehavior":["double"],"JavaScriptObject":[],"EfficientLengthIterable":["double"],"JSObject":[],"JSIndexable":["double"],"Iterable":["double"],"FixedLengthListMixin":["double"],"TrustedGetRuntimeType":[],"ListBase.E":"double","Iterable.E":"double","FixedLengthListMixin.E":"double"},"NativeFloat64List":{"Float64List":[],"ListBase":["double"],"NativeTypedArray":["double"],"List":["double"],"JavaScriptIndexingBehavior":["double"],"JavaScriptObject":[],"EfficientLengthIterable":["double"],"JSObject":[],"JSIndexable":["double"],"Iterable":["double"],"FixedLengthListMixin":["double"],"TrustedGetRuntimeType":[],"ListBase.E":"double","Iterable.E":"double","FixedLengthListMixin.E":"double"},"NativeInt16List":{"NativeTypedArrayOfInt":[],"Int16List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"JSIndexable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int","FixedLengthListMixin.E":"int"},"NativeInt32List":{"NativeTypedArrayOfInt":[],"Int32List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"JSIndexable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int","FixedLengthListMixin.E":"int"},"NativeInt8List":{"NativeTypedArrayOfInt":[],"Int8List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"JSIndexable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int","FixedLengthListMixin.E":"int"},"NativeUint16List":{"NativeTypedArrayOfInt":[],"Uint16List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"JSIndexable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int","FixedLengthListMixin.E":"int"},"NativeUint32List":{"NativeTypedArrayOfInt":[],"Uint32List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"JSIndexable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int","FixedLengthListMixin.E":"int"},"NativeUint8ClampedList":{"NativeTypedArrayOfInt":[],"Uint8ClampedList":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"JSIndexable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int","FixedLengthListMixin.E":"int"},"NativeUint8List":{"NativeTypedArrayOfInt":[],"Uint8List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"JSIndexable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int","FixedLengthListMixin.E":"int"},"_Type":{"Type":[]},"_Error":{"Error":[]},"_TypeError":{"TypeError":[],"Error":[]},"AsyncError":{"Error":[]},"_Future":{"Future":["1"]},"_TimerImpl":{"Timer":[]},"_AsyncAwaitCompleter":{"Completer":["1"]},"_Completer":{"Completer":["1"]},"_AsyncCompleter":{"_Completer":["1"],"Completer":["1"]},"_SyncCompleter":{"_Completer":["1"],"Completer":["1"]},"StreamView":{"Stream":["1"]},"_StreamController":{"StreamController":["1"],"StreamSink":["1"],"_StreamControllerLifecycle":["1"],"_EventSink":["1"],"_EventDispatch":["1"]},"_AsyncStreamController":{"_AsyncStreamControllerDispatch":["1"],"_StreamController":["1"],"StreamController":["1"],"StreamSink":["1"],"_StreamControllerLifecycle":["1"],"_EventSink":["1"],"_EventDispatch":["1"]},"_SyncStreamController":{"_SyncStreamControllerDispatch":["1"],"_StreamController":["1"],"StreamController":["1"],"StreamSink":["1"],"_StreamControllerLifecycle":["1"],"_EventSink":["1"],"_EventDispatch":["1"]},"_ControllerStream":{"_StreamImpl":["1"],"Stream":["1"],"Stream.T":"1"},"_ControllerSubscription":{"_BufferingStreamSubscription":["1"],"StreamSubscription":["1"],"_EventSink":["1"],"_EventDispatch":["1"],"_BufferingStreamSubscription.T":"1"},"_StreamSinkWrapper":{"StreamSink":["1"]},"_StreamControllerAddStreamState":{"_AddStreamState":["1"]},"_BufferingStreamSubscription":{"StreamSubscription":["1"],"_EventSink":["1"],"_EventDispatch":["1"],"_BufferingStreamSubscription.T":"1"},"_StreamImpl":{"Stream":["1"]},"_DelayedData":{"_DelayedEvent":["1"]},"_DelayedError":{"_DelayedEvent":["@"]},"_DelayedDone":{"_DelayedEvent":["@"]},"_DoneStreamSubscription":{"StreamSubscription":["1"]},"_EmptyStream":{"Stream":["1"],"Stream.T":"1"},"_ForwardingStream":{"Stream":["2"]},"_ForwardingStreamSubscription":{"_BufferingStreamSubscription":["2"],"StreamSubscription":["2"],"_EventSink":["2"],"_EventDispatch":["2"],"_BufferingStreamSubscription.T":"2"},"_MapStream":{"_ForwardingStream":["1","2"],"Stream":["2"],"Stream.T":"2"},"_ZoneSpecification":{"ZoneSpecification":[]},"_ZoneDelegate":{"ZoneDelegate":[]},"_Zone":{"Zone":[]},"_CustomZone":{"_Zone":[],"Zone":[]},"_RootZone":{"_Zone":[],"Zone":[]},"_SplayTreeSetNode":{"_SplayTreeNode":["1","_SplayTreeSetNode<1>"],"_SplayTreeNode.K":"1","_SplayTreeNode.1":"_SplayTreeSetNode<1>"},"_HashMap":{"MapBase":["1","2"],"HashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"_IdentityHashMap":{"_HashMap":["1","2"],"MapBase":["1","2"],"HashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"_CustomHashMap":{"_HashMap":["1","2"],"MapBase":["1","2"],"HashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"_HashMapKeyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"_HashMapKeyIterator":{"Iterator":["1"]},"_LinkedCustomHashMap":{"JsLinkedHashMap":["1","2"],"MapBase":["1","2"],"LinkedHashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"_HashSet":{"_SetBase":["1"],"SetBase":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"_HashSetIterator":{"Iterator":["1"]},"_LinkedHashSet":{"_SetBase":["1"],"SetBase":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"_LinkedHashSetIterator":{"Iterator":["1"]},"UnmodifiableListView":{"ListBase":["1"],"UnmodifiableListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListBase.E":"1","Iterable.E":"1","UnmodifiableListMixin.E":"1"},"ListBase":{"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"MapBase":{"Map":["1","2"]},"MapView":{"Map":["1","2"]},"UnmodifiableMapView":{"_UnmodifiableMapView_MapView__UnmodifiableMapMixin":["1","2"],"MapView":["1","2"],"_UnmodifiableMapMixin":["1","2"],"Map":["1","2"]},"ListQueue":{"Queue":["1"],"ListIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListIterable.E":"1","Iterable.E":"1"},"_ListQueueIterator":{"Iterator":["1"]},"SetBase":{"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_SetBase":{"SetBase":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_SplayTreeIterator":{"Iterator":["3"]},"_SplayTreeKeyIterator":{"_SplayTreeIterator":["1","2","1"],"Iterator":["1"],"_SplayTreeIterator.K":"1","_SplayTreeIterator.T":"1","_SplayTreeIterator.1":"2"},"SplayTreeSet":{"SetBase":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"_SplayTree":["1","_SplayTreeSetNode<1>"],"Iterable":["1"],"Iterable.E":"1","_SplayTree.1":"_SplayTreeSetNode<1>","_SplayTree.K":"1"},"Encoding":{"Codec":["String","List<int>"]},"_JsonMap":{"MapBase":["String","@"],"Map":["String","@"],"MapBase.K":"String","MapBase.V":"@"},"_JsonMapKeyIterable":{"ListIterable":["String"],"EfficientLengthIterable":["String"],"Iterable":["String"],"ListIterable.E":"String","Iterable.E":"String"},"AsciiCodec":{"Encoding":[],"Codec":["String","List<int>"],"Codec.S":"String"},"_UnicodeSubsetEncoder":{"Converter":["String","List<int>"],"StreamTransformer":["String","List<int>"]},"AsciiEncoder":{"Converter":["String","List<int>"],"StreamTransformer":["String","List<int>"]},"_UnicodeSubsetDecoder":{"Converter":["List<int>","String"],"StreamTransformer":["List<int>","String"]},"AsciiDecoder":{"Converter":["List<int>","String"],"StreamTransformer":["List<int>","String"]},"Base64Codec":{"Codec":["List<int>","String"],"Codec.S":"List<int>"},"Base64Encoder":{"Converter":["List<int>","String"],"StreamTransformer":["List<int>","String"]},"Base64Decoder":{"Converter":["String","List<int>"],"StreamTransformer":["String","List<int>"]},"Converter":{"StreamTransformer":["1","2"]},"JsonUnsupportedObjectError":{"Error":[]},"JsonCyclicError":{"Error":[]},"JsonCodec":{"Codec":["Object?","String"],"Codec.S":"Object?"},"JsonEncoder":{"Converter":["Object?","String"],"StreamTransformer":["Object?","String"]},"JsonDecoder":{"Converter":["String","Object?"],"StreamTransformer":["String","Object?"]},"Latin1Codec":{"Encoding":[],"Codec":["String","List<int>"],"Codec.S":"String"},"Latin1Encoder":{"Converter":["String","List<int>"],"StreamTransformer":["String","List<int>"]},"Latin1Decoder":{"Converter":["List<int>","String"],"StreamTransformer":["List<int>","String"]},"Utf8Codec":{"Encoding":[],"Codec":["String","List<int>"],"Codec.S":"String"},"Utf8Encoder":{"Converter":["String","List<int>"],"StreamTransformer":["String","List<int>"]},"Utf8Decoder":{"Converter":["List<int>","String"],"StreamTransformer":["List<int>","String"]},"BigInt":{"Comparable":["BigInt"]},"DateTime":{"Comparable":["DateTime"]},"double":{"num":[],"Comparable":["num"]},"Duration":{"Comparable":["Duration"]},"int":{"num":[],"Comparable":["num"]},"List":{"EfficientLengthIterable":["1"],"Iterable":["1"]},"num":{"Comparable":["num"]},"RegExp":{"Pattern":[]},"RegExpMatch":{"Match":[]},"Set":{"EfficientLengthIterable":["1"],"Iterable":["1"]},"String":{"Comparable":["String"],"Pattern":[]},"_BigIntImpl":{"BigInt":[],"Comparable":["BigInt"]},"AssertionError":{"Error":[]},"TypeError":{"Error":[]},"ArgumentError":{"Error":[]},"RangeError":{"Error":[]},"IndexError":{"Error":[]},"UnsupportedError":{"Error":[]},"UnimplementedError":{"Error":[]},"StateError":{"Error":[]},"ConcurrentModificationError":{"Error":[]},"OutOfMemoryError":{"Error":[]},"StackOverflowError":{"Error":[]},"_Exception":{"Exception":[]},"FormatException":{"Exception":[]},"IntegerDivisionByZeroException":{"Exception":[],"Error":[]},"_StringStackTrace":{"StackTrace":[]},"StringBuffer":{"StringSink":[]},"_Uri":{"Uri":[]},"_SimpleUri":{"Uri":[]},"_DataUri":{"Uri":[]},"NullRejectionException":{"Exception":[]},"DelegatingStreamSink":{"StreamSink":["1"]},"ErrorResult":{"Result":["0&"]},"ValueResult":{"Result":["1"]},"_NextRequest":{"_EventRequest":["1"]},"_HasNextRequest":{"_EventRequest":["1"]},"BuiltList":{"Iterable":["1"]},"_BuiltList":{"BuiltList":["1"],"Iterable":["1"],"Iterable.E":"1"},"_BuiltListMultimap":{"BuiltListMultimap":["1","2"]},"_BuiltMap":{"BuiltMap":["1","2"]},"BuiltSet":{"Iterable":["1"]},"_BuiltSet":{"BuiltSet":["1"],"Iterable":["1"],"Iterable.E":"1"},"_BuiltSetMultimap":{"BuiltSetMultimap":["1","2"]},"BuiltValueNullFieldError":{"Error":[]},"BuiltValueNestedFieldError":{"Error":[]},"BoolJsonObject":{"JsonObject":[]},"ListJsonObject":{"JsonObject":[]},"MapJsonObject":{"JsonObject":[]},"NumJsonObject":{"JsonObject":[]},"StringJsonObject":{"JsonObject":[]},"DeserializationError":{"Error":[]},"BigIntSerializer":{"PrimitiveSerializer":["BigInt"],"Serializer":["BigInt"]},"BoolSerializer":{"PrimitiveSerializer":["bool"],"Serializer":["bool"]},"BuiltJsonSerializers":{"Serializers":[]},"BuiltListMultimapSerializer":{"StructuredSerializer":["BuiltListMultimap<@,@>"],"Serializer":["BuiltListMultimap<@,@>"]},"BuiltListSerializer":{"StructuredSerializer":["BuiltList<@>"],"Serializer":["BuiltList<@>"]},"BuiltMapSerializer":{"StructuredSerializer":["BuiltMap<@,@>"],"Serializer":["BuiltMap<@,@>"]},"BuiltSetMultimapSerializer":{"StructuredSerializer":["BuiltSetMultimap<@,@>"],"Serializer":["BuiltSetMultimap<@,@>"]},"BuiltSetSerializer":{"StructuredSerializer":["BuiltSet<@>"],"Serializer":["BuiltSet<@>"]},"DateTimeSerializer":{"PrimitiveSerializer":["DateTime"],"Serializer":["DateTime"]},"DoubleSerializer":{"PrimitiveSerializer":["double"],"Serializer":["double"]},"DurationSerializer":{"PrimitiveSerializer":["Duration"],"Serializer":["Duration"]},"Int32Serializer":{"PrimitiveSerializer":["Int32"],"Serializer":["Int32"]},"Int64Serializer":{"PrimitiveSerializer":["Int64"],"Serializer":["Int64"]},"IntSerializer":{"PrimitiveSerializer":["int"],"Serializer":["int"]},"JsonObjectSerializer":{"PrimitiveSerializer":["JsonObject"],"Serializer":["JsonObject"]},"ListSerializer":{"StructuredSerializer":["List<@>"],"Serializer":["List<@>"]},"MapSerializer":{"StructuredSerializer":["Map<@,@>"],"Serializer":["Map<@,@>"]},"NullSerializer":{"PrimitiveSerializer":["Null"],"Serializer":["Null"]},"NumSerializer":{"PrimitiveSerializer":["num"],"Serializer":["num"]},"RegExpSerializer":{"PrimitiveSerializer":["RegExp"],"Serializer":["RegExp"]},"SetSerializer":{"StructuredSerializer":["Set<@>"],"Serializer":["Set<@>"]},"StringSerializer":{"PrimitiveSerializer":["String"],"Serializer":["String"]},"Uint8ListSerializer":{"PrimitiveSerializer":["Uint8List"],"Serializer":["Uint8List"]},"UriSerializer":{"PrimitiveSerializer":["Uri"],"Serializer":["Uri"]},"CanonicalizedMap":{"Map":["2","3"]},"DefaultEquality":{"Equality":["1"]},"IterableEquality":{"Equality":["Iterable<1>"]},"ListEquality":{"Equality":["List<1>"]},"_UnorderedEquality":{"Equality":["2"]},"SetEquality":{"_UnorderedEquality":["1","Set<1>"],"Equality":["Set<1>"],"_UnorderedEquality.E":"1","_UnorderedEquality.T":"Set<1>"},"MapEquality":{"Equality":["Map<1,2>"]},"DeepCollectionEquality":{"Equality":["@"]},"QueueList":{"ListBase":["1"],"List":["1"],"Queue":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListBase.E":"1","QueueList.E":"1","Iterable.E":"1"},"_CastQueueList":{"QueueList":["2"],"ListBase":["2"],"List":["2"],"Queue":["2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListBase.E":"2","QueueList.E":"2","Iterable.E":"2"},"_$BuildStatusSerializer":{"PrimitiveSerializer":["BuildStatus"],"Serializer":["BuildStatus"]},"_$BuildResultSerializer":{"StructuredSerializer":["BuildResult"],"Serializer":["BuildResult"]},"_$BuildResult":{"BuildResult":[]},"_$ConnectRequestSerializer":{"StructuredSerializer":["ConnectRequest"],"Serializer":["ConnectRequest"]},"_$ConnectRequest":{"ConnectRequest":[]},"_$DebugEventSerializer":{"StructuredSerializer":["DebugEvent"],"Serializer":["DebugEvent"]},"_$BatchedDebugEventsSerializer":{"StructuredSerializer":["BatchedDebugEvents"],"Serializer":["BatchedDebugEvents"]},"_$DebugEvent":{"DebugEvent":[]},"_$BatchedDebugEvents":{"BatchedDebugEvents":[]},"_$DebugInfoSerializer":{"StructuredSerializer":["DebugInfo"],"Serializer":["DebugInfo"]},"_$DebugInfo":{"DebugInfo":[]},"_$DevToolsRequestSerializer":{"StructuredSerializer":["DevToolsRequest"],"Serializer":["DevToolsRequest"]},"_$DevToolsResponseSerializer":{"StructuredSerializer":["DevToolsResponse"],"Serializer":["DevToolsResponse"]},"_$DevToolsRequest":{"DevToolsRequest":[]},"_$DevToolsResponse":{"DevToolsResponse":[]},"_$ErrorResponseSerializer":{"StructuredSerializer":["ErrorResponse"],"Serializer":["ErrorResponse"]},"_$ErrorResponse":{"ErrorResponse":[]},"_$ExtensionRequestSerializer":{"StructuredSerializer":["ExtensionRequest"],"Serializer":["ExtensionRequest"]},"_$ExtensionResponseSerializer":{"StructuredSerializer":["ExtensionResponse"],"Serializer":["ExtensionResponse"]},"_$ExtensionEventSerializer":{"StructuredSerializer":["ExtensionEvent"],"Serializer":["ExtensionEvent"]},"_$BatchedEventsSerializer":{"StructuredSerializer":["BatchedEvents"],"Serializer":["BatchedEvents"]},"_$ExtensionRequest":{"ExtensionRequest":[]},"_$ExtensionResponse":{"ExtensionResponse":[]},"_$ExtensionEvent":{"ExtensionEvent":[]},"_$BatchedEvents":{"BatchedEvents":[]},"_$HotReloadRequestSerializer":{"StructuredSerializer":["HotReloadRequest"],"Serializer":["HotReloadRequest"]},"_$HotReloadRequest":{"HotReloadRequest":[]},"_$HotReloadResponseSerializer":{"StructuredSerializer":["HotReloadResponse"],"Serializer":["HotReloadResponse"]},"_$HotReloadResponse":{"HotReloadResponse":[]},"_$HotRestartRequestSerializer":{"StructuredSerializer":["HotRestartRequest"],"Serializer":["HotRestartRequest"]},"_$HotRestartRequest":{"HotRestartRequest":[]},"_$HotRestartResponseSerializer":{"StructuredSerializer":["HotRestartResponse"],"Serializer":["HotRestartResponse"]},"_$HotRestartResponse":{"HotRestartResponse":[]},"_$IsolateExitSerializer":{"StructuredSerializer":["IsolateExit"],"Serializer":["IsolateExit"]},"_$IsolateStartSerializer":{"StructuredSerializer":["IsolateStart"],"Serializer":["IsolateStart"]},"_$IsolateExit":{"IsolateExit":[]},"_$IsolateStart":{"IsolateStart":[]},"_$RegisterEventSerializer":{"StructuredSerializer":["RegisterEvent"],"Serializer":["RegisterEvent"]},"_$RegisterEvent":{"RegisterEvent":[]},"_$RunRequestSerializer":{"StructuredSerializer":["RunRequest"],"Serializer":["RunRequest"]},"_$RunRequest":{"RunRequest":[]},"_$ServiceExtensionRequestSerializer":{"StructuredSerializer":["ServiceExtensionRequest"],"Serializer":["ServiceExtensionRequest"]},"_$ServiceExtensionRequest":{"ServiceExtensionRequest":[]},"_$ServiceExtensionResponseSerializer":{"StructuredSerializer":["ServiceExtensionResponse"],"Serializer":["ServiceExtensionResponse"]},"_$ServiceExtensionResponse":{"ServiceExtensionResponse":[]},"SseSocketClient":{"SocketClient":[]},"WebSocketClient":{"SocketClient":[]},"Int32":{"Comparable":["Object"]},"Int64":{"Comparable":["Object"]},"RequestAbortedException":{"Exception":[]},"ByteStream":{"StreamView":["List<int>"],"Stream":["List<int>"],"Stream.T":"List<int>","StreamView.T":"List<int>"},"ClientException":{"Exception":[]},"Request":{"BaseRequest":[]},"StreamedResponseV2":{"StreamedResponse":[]},"CaseInsensitiveMap":{"CanonicalizedMap":["String","String","1"],"Map":["String","1"],"CanonicalizedMap.K":"String","CanonicalizedMap.V":"1","CanonicalizedMap.C":"String"},"Level":{"Comparable":["Level"]},"PathException":{"Exception":[]},"PosixStyle":{"InternalStyle":[]},"UrlStyle":{"InternalStyle":[]},"WindowsStyle":{"InternalStyle":[]},"FileLocation":{"SourceLocation":[],"Comparable":["SourceLocation"]},"_FileSpan":{"SourceSpanWithContext":[],"SourceSpan":[],"Comparable":["SourceSpan"]},"SourceLocation":{"Comparable":["SourceLocation"]},"SourceLocationMixin":{"SourceLocation":[],"Comparable":["SourceLocation"]},"SourceSpan":{"Comparable":["SourceSpan"]},"SourceSpanBase":{"SourceSpan":[],"Comparable":["SourceSpan"]},"SourceSpanException":{"Exception":[]},"SourceSpanFormatException":{"FormatException":[],"Exception":[]},"SourceSpanMixin":{"SourceSpan":[],"Comparable":["SourceSpan"]},"SourceSpanWithContext":{"SourceSpan":[],"Comparable":["SourceSpan"]},"SseClient":{"StreamChannel":["String?"]},"GuaranteeChannel":{"StreamChannel":["1"]},"_GuaranteeSink":{"StreamSink":["1"]},"StreamChannelMixin":{"StreamChannel":["1"]},"StringScannerException":{"FormatException":[],"Exception":[]},"_EventStream":{"Stream":["1"],"Stream.T":"1"},"_EventStreamSubscription":{"StreamSubscription":["1"]},"BrowserWebSocket":{"WebSocket":[]},"TextDataReceived":{"WebSocketEvent":[]},"BinaryDataReceived":{"WebSocketEvent":[]},"CloseReceived":{"WebSocketEvent":[]},"WebSocketException":{"Exception":[]},"WebSocketConnectionClosed":{"Exception":[]},"AdapterWebSocketChannel":{"WebSocketChannel":[],"StreamChannel":["@"]},"_WebSocketSink":{"WebSocketSink":[],"DelegatingStreamSink":["@"],"StreamSink":["@"],"DelegatingStreamSink.T":"@"},"WebSocketChannelException":{"Exception":[]},"DdcLibraryBundleRestarter":{"Restarter":[]},"DdcRestarter":{"Restarter":[]},"RequireRestarter":{"Restarter":[]},"HotReloadFailedException":{"Exception":[]},"Int8List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Uint8List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Uint8ClampedList":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Int16List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Uint16List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Int32List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Uint32List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Float32List":{"List":["double"],"EfficientLengthIterable":["double"],"Iterable":["double"]},"Float64List":{"List":["double"],"EfficientLengthIterable":["double"],"Iterable":["double"]}}'));
+  A._Universe_addRules(init.typeUniverse, JSON.parse('{"JavaScriptFunction":"LegacyJavaScriptObject","PlainJavaScriptObject":"LegacyJavaScriptObject","UnknownJavaScriptObject":"LegacyJavaScriptObject","NativeSharedArrayBuffer":"NativeByteBuffer","JavaScriptObject":{"JSObject":[]},"JSArray":{"List":["1"],"JavaScriptObject":[],"EfficientLengthIterable":["1"],"JSObject":[],"Iterable":["1"],"JSIndexable":["1"],"Iterable.E":"1"},"JSBool":{"bool":[],"TrustedGetRuntimeType":[]},"JSNull":{"Null":[],"TrustedGetRuntimeType":[]},"LegacyJavaScriptObject":{"JavaScriptObject":[],"JSObject":[]},"JSArraySafeToStringHook":{"SafeToStringHook":[]},"JSUnmodifiableArray":{"JSArray":["1"],"List":["1"],"JavaScriptObject":[],"EfficientLengthIterable":["1"],"JSObject":[],"Iterable":["1"],"JSIndexable":["1"],"Iterable.E":"1"},"ArrayIterator":{"Iterator":["1"]},"JSNumber":{"double":[],"num":[],"Comparable":["num"]},"JSInt":{"double":[],"int":[],"num":[],"Comparable":["num"],"TrustedGetRuntimeType":[]},"JSNumNotInt":{"double":[],"num":[],"Comparable":["num"],"TrustedGetRuntimeType":[]},"JSString":{"String":[],"Comparable":["String"],"Pattern":[],"JSIndexable":["@"],"TrustedGetRuntimeType":[]},"_CastIterableBase":{"Iterable":["2"]},"CastIterator":{"Iterator":["2"]},"CastIterable":{"_CastIterableBase":["1","2"],"Iterable":["2"],"Iterable.E":"2"},"_EfficientLengthCastIterable":{"CastIterable":["1","2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2"},"_CastListBase":{"ListBase":["2"],"List":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"]},"CastList":{"_CastListBase":["1","2"],"ListBase":["2"],"List":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListBase.E":"2","Iterable.E":"2"},"CastMap":{"MapBase":["3","4"],"Map":["3","4"],"MapBase.K":"3","MapBase.V":"4"},"LateError":{"Error":[]},"CodeUnits":{"ListBase":["int"],"UnmodifiableListMixin":["int"],"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"ListBase.E":"int","Iterable.E":"int","UnmodifiableListMixin.E":"int"},"EfficientLengthIterable":{"Iterable":["1"]},"ListIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"]},"SubListIterable":{"ListIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListIterable.E":"1","Iterable.E":"1"},"ListIterator":{"Iterator":["1"]},"MappedIterable":{"Iterable":["2"],"Iterable.E":"2"},"EfficientLengthMappedIterable":{"MappedIterable":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2"},"MappedIterator":{"Iterator":["2"]},"MappedListIterable":{"ListIterable":["2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListIterable.E":"2","Iterable.E":"2"},"WhereIterable":{"Iterable":["1"],"Iterable.E":"1"},"WhereIterator":{"Iterator":["1"]},"ExpandIterable":{"Iterable":["2"],"Iterable.E":"2"},"ExpandIterator":{"Iterator":["2"]},"TakeIterable":{"Iterable":["1"],"Iterable.E":"1"},"EfficientLengthTakeIterable":{"TakeIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"TakeIterator":{"Iterator":["1"]},"SkipIterable":{"Iterable":["1"],"Iterable.E":"1"},"EfficientLengthSkipIterable":{"SkipIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"SkipIterator":{"Iterator":["1"]},"EmptyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"EmptyIterator":{"Iterator":["1"]},"WhereTypeIterable":{"Iterable":["1"],"Iterable.E":"1"},"WhereTypeIterator":{"Iterator":["1"]},"UnmodifiableListBase":{"ListBase":["1"],"UnmodifiableListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"ReversedListIterable":{"ListIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListIterable.E":"1","Iterable.E":"1"},"_Record_2":{"_Record2":[],"_Record":[]},"ConstantMap":{"Map":["1","2"]},"ConstantStringMap":{"ConstantMap":["1","2"],"Map":["1","2"]},"_KeysOrValues":{"Iterable":["1"],"Iterable.E":"1"},"_KeysOrValuesOrElementsIterator":{"Iterator":["1"]},"Instantiation":{"Closure":[],"Function":[]},"Instantiation1":{"Closure":[],"Function":[]},"NullError":{"TypeError":[],"Error":[]},"JsNoSuchMethodError":{"Error":[]},"UnknownJsTypeError":{"Error":[]},"NullThrownFromJavaScriptException":{"Exception":[]},"_StackTrace":{"StackTrace":[]},"Closure":{"Function":[]},"Closure0Args":{"Closure":[],"Function":[]},"Closure2Args":{"Closure":[],"Function":[]},"TearOffClosure":{"Closure":[],"Function":[]},"StaticClosure":{"Closure":[],"Function":[]},"BoundClosure":{"Closure":[],"Function":[]},"RuntimeError":{"Error":[]},"JsLinkedHashMap":{"MapBase":["1","2"],"LinkedHashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"LinkedHashMapKeysIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"LinkedHashMapKeyIterator":{"Iterator":["1"]},"LinkedHashMapValuesIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"LinkedHashMapValueIterator":{"Iterator":["1"]},"LinkedHashMapEntriesIterable":{"EfficientLengthIterable":["MapEntry<1,2>"],"Iterable":["MapEntry<1,2>"],"Iterable.E":"MapEntry<1,2>"},"LinkedHashMapEntryIterator":{"Iterator":["MapEntry<1,2>"]},"JsIdentityLinkedHashMap":{"JsLinkedHashMap":["1","2"],"MapBase":["1","2"],"LinkedHashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"_Record2":{"_Record":[]},"JSSyntaxRegExp":{"RegExp":[],"Pattern":[]},"_MatchImplementation":{"RegExpMatch":[],"Match":[]},"_AllMatchesIterable":{"Iterable":["RegExpMatch"],"Iterable.E":"RegExpMatch"},"_AllMatchesIterator":{"Iterator":["RegExpMatch"]},"StringMatch":{"Match":[]},"_StringAllMatchesIterable":{"Iterable":["Match"],"Iterable.E":"Match"},"_StringAllMatchesIterator":{"Iterator":["Match"]},"NativeByteBuffer":{"JavaScriptObject":[],"JSObject":[],"ByteBuffer":[],"TrustedGetRuntimeType":[]},"NativeArrayBuffer":{"JavaScriptObject":[],"JSObject":[],"ByteBuffer":[],"TrustedGetRuntimeType":[]},"NativeTypedData":{"JavaScriptObject":[],"JSObject":[]},"NativeByteData":{"JavaScriptObject":[],"ByteData":[],"JSObject":[],"TrustedGetRuntimeType":[]},"NativeTypedArray":{"JavaScriptIndexingBehavior":["1"],"JavaScriptObject":[],"JSObject":[],"JSIndexable":["1"]},"NativeTypedArrayOfDouble":{"ListBase":["double"],"NativeTypedArray":["double"],"List":["double"],"JavaScriptIndexingBehavior":["double"],"JavaScriptObject":[],"EfficientLengthIterable":["double"],"JSObject":[],"JSIndexable":["double"],"Iterable":["double"],"FixedLengthListMixin":["double"]},"NativeTypedArrayOfInt":{"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"JSIndexable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"]},"NativeFloat32List":{"Float32List":[],"ListBase":["double"],"NativeTypedArray":["double"],"List":["double"],"JavaScriptIndexingBehavior":["double"],"JavaScriptObject":[],"EfficientLengthIterable":["double"],"JSObject":[],"JSIndexable":["double"],"Iterable":["double"],"FixedLengthListMixin":["double"],"TrustedGetRuntimeType":[],"ListBase.E":"double","Iterable.E":"double","FixedLengthListMixin.E":"double"},"NativeFloat64List":{"Float64List":[],"ListBase":["double"],"NativeTypedArray":["double"],"List":["double"],"JavaScriptIndexingBehavior":["double"],"JavaScriptObject":[],"EfficientLengthIterable":["double"],"JSObject":[],"JSIndexable":["double"],"Iterable":["double"],"FixedLengthListMixin":["double"],"TrustedGetRuntimeType":[],"ListBase.E":"double","Iterable.E":"double","FixedLengthListMixin.E":"double"},"NativeInt16List":{"NativeTypedArrayOfInt":[],"Int16List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"JSIndexable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int","FixedLengthListMixin.E":"int"},"NativeInt32List":{"NativeTypedArrayOfInt":[],"Int32List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"JSIndexable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int","FixedLengthListMixin.E":"int"},"NativeInt8List":{"NativeTypedArrayOfInt":[],"Int8List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"JSIndexable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int","FixedLengthListMixin.E":"int"},"NativeUint16List":{"NativeTypedArrayOfInt":[],"Uint16List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"JSIndexable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int","FixedLengthListMixin.E":"int"},"NativeUint32List":{"NativeTypedArrayOfInt":[],"Uint32List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"JSIndexable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int","FixedLengthListMixin.E":"int"},"NativeUint8ClampedList":{"NativeTypedArrayOfInt":[],"Uint8ClampedList":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"JSIndexable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int","FixedLengthListMixin.E":"int"},"NativeUint8List":{"NativeTypedArrayOfInt":[],"Uint8List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"JSIndexable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int","FixedLengthListMixin.E":"int"},"_Type":{"Type":[]},"_Error":{"Error":[]},"_TypeError":{"TypeError":[],"Error":[]},"AsyncError":{"Error":[]},"_TimerImpl":{"Timer":[]},"_AsyncAwaitCompleter":{"Completer":["1"]},"_Completer":{"Completer":["1"]},"_AsyncCompleter":{"_Completer":["1"],"Completer":["1"]},"_SyncCompleter":{"_Completer":["1"],"Completer":["1"]},"_Future":{"Future":["1"]},"StreamView":{"Stream":["1"]},"_StreamController":{"StreamController":["1"],"StreamSink":["1"],"_StreamControllerLifecycle":["1"],"_EventSink":["1"],"_EventDispatch":["1"]},"_AsyncStreamController":{"_AsyncStreamControllerDispatch":["1"],"_StreamController":["1"],"StreamController":["1"],"StreamSink":["1"],"_StreamControllerLifecycle":["1"],"_EventSink":["1"],"_EventDispatch":["1"]},"_SyncStreamController":{"_SyncStreamControllerDispatch":["1"],"_StreamController":["1"],"StreamController":["1"],"StreamSink":["1"],"_StreamControllerLifecycle":["1"],"_EventSink":["1"],"_EventDispatch":["1"]},"_ControllerStream":{"_StreamImpl":["1"],"Stream":["1"],"Stream.T":"1"},"_ControllerSubscription":{"_BufferingStreamSubscription":["1"],"StreamSubscription":["1"],"_EventSink":["1"],"_EventDispatch":["1"],"_BufferingStreamSubscription.T":"1"},"_StreamSinkWrapper":{"StreamSink":["1"]},"_BufferingStreamSubscription":{"StreamSubscription":["1"],"_EventSink":["1"],"_EventDispatch":["1"],"_BufferingStreamSubscription.T":"1"},"_StreamImpl":{"Stream":["1"]},"_DelayedData":{"_DelayedEvent":["1"]},"_DelayedError":{"_DelayedEvent":["@"]},"_DelayedDone":{"_DelayedEvent":["@"]},"_DoneStreamSubscription":{"StreamSubscription":["1"]},"_EmptyStream":{"Stream":["1"],"Stream.T":"1"},"_ForwardingStream":{"Stream":["2"]},"_ForwardingStreamSubscription":{"_BufferingStreamSubscription":["2"],"StreamSubscription":["2"],"_EventSink":["2"],"_EventDispatch":["2"],"_BufferingStreamSubscription.T":"2"},"_MapStream":{"_ForwardingStream":["1","2"],"Stream":["2"],"Stream.T":"2"},"_ZoneSpecification":{"ZoneSpecification":[]},"_ZoneDelegate":{"ZoneDelegate":[]},"_Zone":{"Zone":[]},"_CustomZone":{"_Zone":[],"Zone":[]},"_RootZone":{"_Zone":[],"Zone":[]},"_SplayTreeSetNode":{"_SplayTreeNode":["1","_SplayTreeSetNode<1>"],"_SplayTreeNode.K":"1","_SplayTreeNode.1":"_SplayTreeSetNode<1>"},"_HashMap":{"MapBase":["1","2"],"HashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"_IdentityHashMap":{"_HashMap":["1","2"],"MapBase":["1","2"],"HashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"_CustomHashMap":{"_HashMap":["1","2"],"MapBase":["1","2"],"HashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"_HashMapKeyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"_HashMapKeyIterator":{"Iterator":["1"]},"_LinkedCustomHashMap":{"JsLinkedHashMap":["1","2"],"MapBase":["1","2"],"LinkedHashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"_HashSet":{"_SetBase":["1"],"SetBase":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"_HashSetIterator":{"Iterator":["1"]},"_LinkedHashSet":{"_SetBase":["1"],"SetBase":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"_LinkedHashSetIterator":{"Iterator":["1"]},"UnmodifiableListView":{"ListBase":["1"],"UnmodifiableListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListBase.E":"1","Iterable.E":"1","UnmodifiableListMixin.E":"1"},"ListBase":{"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"MapBase":{"Map":["1","2"]},"MapView":{"Map":["1","2"]},"UnmodifiableMapView":{"_UnmodifiableMapView_MapView__UnmodifiableMapMixin":["1","2"],"MapView":["1","2"],"_UnmodifiableMapMixin":["1","2"],"Map":["1","2"]},"ListQueue":{"Queue":["1"],"ListIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListIterable.E":"1","Iterable.E":"1"},"_ListQueueIterator":{"Iterator":["1"]},"SetBase":{"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_SetBase":{"SetBase":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_SplayTreeIterator":{"Iterator":["3"]},"_SplayTreeKeyIterator":{"_SplayTreeIterator":["1","2","1"],"Iterator":["1"],"_SplayTreeIterator.K":"1","_SplayTreeIterator.T":"1","_SplayTreeIterator.1":"2"},"SplayTreeSet":{"SetBase":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"_SplayTree":["1","_SplayTreeSetNode<1>"],"Iterable":["1"],"Iterable.E":"1","_SplayTree.1":"_SplayTreeSetNode<1>","_SplayTree.K":"1"},"Encoding":{"Codec":["String","List<int>"]},"_JsonMap":{"MapBase":["String","@"],"Map":["String","@"],"MapBase.K":"String","MapBase.V":"@"},"_JsonMapKeyIterable":{"ListIterable":["String"],"EfficientLengthIterable":["String"],"Iterable":["String"],"ListIterable.E":"String","Iterable.E":"String"},"AsciiCodec":{"Encoding":[],"Codec":["String","List<int>"],"Codec.S":"String"},"_UnicodeSubsetEncoder":{"Converter":["String","List<int>"],"StreamTransformer":["String","List<int>"]},"AsciiEncoder":{"Converter":["String","List<int>"],"StreamTransformer":["String","List<int>"]},"_UnicodeSubsetDecoder":{"Converter":["List<int>","String"],"StreamTransformer":["List<int>","String"]},"AsciiDecoder":{"Converter":["List<int>","String"],"StreamTransformer":["List<int>","String"]},"Base64Codec":{"Codec":["List<int>","String"],"Codec.S":"List<int>"},"Base64Encoder":{"Converter":["List<int>","String"],"StreamTransformer":["List<int>","String"]},"Base64Decoder":{"Converter":["String","List<int>"],"StreamTransformer":["String","List<int>"]},"Converter":{"StreamTransformer":["1","2"]},"JsonUnsupportedObjectError":{"Error":[]},"JsonCyclicError":{"Error":[]},"JsonCodec":{"Codec":["Object?","String"],"Codec.S":"Object?"},"JsonEncoder":{"Converter":["Object?","String"],"StreamTransformer":["Object?","String"]},"JsonDecoder":{"Converter":["String","Object?"],"StreamTransformer":["String","Object?"]},"Latin1Codec":{"Encoding":[],"Codec":["String","List<int>"],"Codec.S":"String"},"Latin1Encoder":{"Converter":["String","List<int>"],"StreamTransformer":["String","List<int>"]},"Latin1Decoder":{"Converter":["List<int>","String"],"StreamTransformer":["List<int>","String"]},"Utf8Codec":{"Encoding":[],"Codec":["String","List<int>"],"Codec.S":"String"},"Utf8Encoder":{"Converter":["String","List<int>"],"StreamTransformer":["String","List<int>"]},"Utf8Decoder":{"Converter":["List<int>","String"],"StreamTransformer":["List<int>","String"]},"BigInt":{"Comparable":["BigInt"]},"DateTime":{"Comparable":["DateTime"]},"double":{"num":[],"Comparable":["num"]},"Duration":{"Comparable":["Duration"]},"int":{"num":[],"Comparable":["num"]},"List":{"EfficientLengthIterable":["1"],"Iterable":["1"]},"num":{"Comparable":["num"]},"RegExp":{"Pattern":[]},"RegExpMatch":{"Match":[]},"Set":{"EfficientLengthIterable":["1"],"Iterable":["1"]},"String":{"Comparable":["String"],"Pattern":[]},"_BigIntImpl":{"BigInt":[],"Comparable":["BigInt"]},"AssertionError":{"Error":[]},"TypeError":{"Error":[]},"ArgumentError":{"Error":[]},"RangeError":{"Error":[]},"IndexError":{"Error":[]},"UnsupportedError":{"Error":[]},"UnimplementedError":{"Error":[]},"StateError":{"Error":[]},"ConcurrentModificationError":{"Error":[]},"OutOfMemoryError":{"Error":[]},"StackOverflowError":{"Error":[]},"_Exception":{"Exception":[]},"FormatException":{"Exception":[]},"IntegerDivisionByZeroException":{"Exception":[],"Error":[]},"_StringStackTrace":{"StackTrace":[]},"StringBuffer":{"StringSink":[]},"_Uri":{"Uri":[]},"_SimpleUri":{"Uri":[]},"_DataUri":{"Uri":[]},"NullRejectionException":{"Exception":[]},"_JSRandom":{"Random":[]},"DelegatingStreamSink":{"StreamSink":["1"]},"ErrorResult":{"Result":["0&"]},"ValueResult":{"Result":["1"]},"_NextRequest":{"_EventRequest":["1"]},"_HasNextRequest":{"_EventRequest":["1"]},"BuiltList":{"Iterable":["1"]},"_BuiltList":{"BuiltList":["1"],"Iterable":["1"],"Iterable.E":"1"},"_BuiltListMultimap":{"BuiltListMultimap":["1","2"]},"_BuiltMap":{"BuiltMap":["1","2"]},"BuiltSet":{"Iterable":["1"]},"_BuiltSet":{"BuiltSet":["1"],"Iterable":["1"],"Iterable.E":"1"},"_BuiltSetMultimap":{"BuiltSetMultimap":["1","2"]},"BuiltValueNullFieldError":{"Error":[]},"BuiltValueNestedFieldError":{"Error":[]},"BoolJsonObject":{"JsonObject":[]},"ListJsonObject":{"JsonObject":[]},"MapJsonObject":{"JsonObject":[]},"NumJsonObject":{"JsonObject":[]},"StringJsonObject":{"JsonObject":[]},"DeserializationError":{"Error":[]},"BigIntSerializer":{"PrimitiveSerializer":["BigInt"],"Serializer":["BigInt"]},"BoolSerializer":{"PrimitiveSerializer":["bool"],"Serializer":["bool"]},"BuiltJsonSerializers":{"Serializers":[]},"BuiltListMultimapSerializer":{"StructuredSerializer":["BuiltListMultimap<@,@>"],"Serializer":["BuiltListMultimap<@,@>"]},"BuiltListSerializer":{"StructuredSerializer":["BuiltList<@>"],"Serializer":["BuiltList<@>"]},"BuiltMapSerializer":{"StructuredSerializer":["BuiltMap<@,@>"],"Serializer":["BuiltMap<@,@>"]},"BuiltSetMultimapSerializer":{"StructuredSerializer":["BuiltSetMultimap<@,@>"],"Serializer":["BuiltSetMultimap<@,@>"]},"BuiltSetSerializer":{"StructuredSerializer":["BuiltSet<@>"],"Serializer":["BuiltSet<@>"]},"DateTimeSerializer":{"PrimitiveSerializer":["DateTime"],"Serializer":["DateTime"]},"DoubleSerializer":{"PrimitiveSerializer":["double"],"Serializer":["double"]},"DurationSerializer":{"PrimitiveSerializer":["Duration"],"Serializer":["Duration"]},"Int32Serializer":{"PrimitiveSerializer":["Int32"],"Serializer":["Int32"]},"Int64Serializer":{"PrimitiveSerializer":["Int64"],"Serializer":["Int64"]},"IntSerializer":{"PrimitiveSerializer":["int"],"Serializer":["int"]},"JsonObjectSerializer":{"PrimitiveSerializer":["JsonObject"],"Serializer":["JsonObject"]},"ListSerializer":{"StructuredSerializer":["List<@>"],"Serializer":["List<@>"]},"MapSerializer":{"StructuredSerializer":["Map<@,@>"],"Serializer":["Map<@,@>"]},"NullSerializer":{"PrimitiveSerializer":["Null"],"Serializer":["Null"]},"NumSerializer":{"PrimitiveSerializer":["num"],"Serializer":["num"]},"RegExpSerializer":{"PrimitiveSerializer":["RegExp"],"Serializer":["RegExp"]},"SetSerializer":{"StructuredSerializer":["Set<@>"],"Serializer":["Set<@>"]},"StringSerializer":{"PrimitiveSerializer":["String"],"Serializer":["String"]},"Uint8ListSerializer":{"PrimitiveSerializer":["Uint8List"],"Serializer":["Uint8List"]},"UriSerializer":{"PrimitiveSerializer":["Uri"],"Serializer":["Uri"]},"CanonicalizedMap":{"Map":["2","3"]},"DefaultEquality":{"Equality":["1"]},"IterableEquality":{"Equality":["Iterable<1>"]},"ListEquality":{"Equality":["List<1>"]},"_UnorderedEquality":{"Equality":["2"]},"SetEquality":{"_UnorderedEquality":["1","Set<1>"],"Equality":["Set<1>"],"_UnorderedEquality.E":"1","_UnorderedEquality.T":"Set<1>"},"MapEquality":{"Equality":["Map<1,2>"]},"DeepCollectionEquality":{"Equality":["@"]},"QueueList":{"ListBase":["1"],"List":["1"],"Queue":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListBase.E":"1","QueueList.E":"1","Iterable.E":"1"},"_CastQueueList":{"QueueList":["2"],"ListBase":["2"],"List":["2"],"Queue":["2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListBase.E":"2","QueueList.E":"2","Iterable.E":"2"},"_$BuildStatusSerializer":{"PrimitiveSerializer":["BuildStatus"],"Serializer":["BuildStatus"]},"_$BuildResultSerializer":{"StructuredSerializer":["BuildResult"],"Serializer":["BuildResult"]},"_$BuildResult":{"BuildResult":[]},"_$ConnectRequestSerializer":{"StructuredSerializer":["ConnectRequest"],"Serializer":["ConnectRequest"]},"_$ConnectRequest":{"ConnectRequest":[]},"_$DebugEventSerializer":{"StructuredSerializer":["DebugEvent"],"Serializer":["DebugEvent"]},"_$BatchedDebugEventsSerializer":{"StructuredSerializer":["BatchedDebugEvents"],"Serializer":["BatchedDebugEvents"]},"_$DebugEvent":{"DebugEvent":[]},"_$BatchedDebugEvents":{"BatchedDebugEvents":[]},"_$DebugInfoSerializer":{"StructuredSerializer":["DebugInfo"],"Serializer":["DebugInfo"]},"_$DebugInfo":{"DebugInfo":[]},"_$DevToolsRequestSerializer":{"StructuredSerializer":["DevToolsRequest"],"Serializer":["DevToolsRequest"]},"_$DevToolsResponseSerializer":{"StructuredSerializer":["DevToolsResponse"],"Serializer":["DevToolsResponse"]},"_$DevToolsRequest":{"DevToolsRequest":[]},"_$DevToolsResponse":{"DevToolsResponse":[]},"_$ErrorResponseSerializer":{"StructuredSerializer":["ErrorResponse"],"Serializer":["ErrorResponse"]},"_$ErrorResponse":{"ErrorResponse":[]},"_$ExtensionRequestSerializer":{"StructuredSerializer":["ExtensionRequest"],"Serializer":["ExtensionRequest"]},"_$ExtensionResponseSerializer":{"StructuredSerializer":["ExtensionResponse"],"Serializer":["ExtensionResponse"]},"_$ExtensionEventSerializer":{"StructuredSerializer":["ExtensionEvent"],"Serializer":["ExtensionEvent"]},"_$BatchedEventsSerializer":{"StructuredSerializer":["BatchedEvents"],"Serializer":["BatchedEvents"]},"_$ExtensionRequest":{"ExtensionRequest":[]},"_$ExtensionResponse":{"ExtensionResponse":[]},"_$ExtensionEvent":{"ExtensionEvent":[]},"_$BatchedEvents":{"BatchedEvents":[]},"_$HotReloadRequestSerializer":{"StructuredSerializer":["HotReloadRequest"],"Serializer":["HotReloadRequest"]},"_$HotReloadRequest":{"HotReloadRequest":[]},"_$HotReloadResponseSerializer":{"StructuredSerializer":["HotReloadResponse"],"Serializer":["HotReloadResponse"]},"_$HotReloadResponse":{"HotReloadResponse":[]},"_$HotRestartRequestSerializer":{"StructuredSerializer":["HotRestartRequest"],"Serializer":["HotRestartRequest"]},"_$HotRestartRequest":{"HotRestartRequest":[]},"_$HotRestartResponseSerializer":{"StructuredSerializer":["HotRestartResponse"],"Serializer":["HotRestartResponse"]},"_$HotRestartResponse":{"HotRestartResponse":[]},"_$IsolateExitSerializer":{"StructuredSerializer":["IsolateExit"],"Serializer":["IsolateExit"]},"_$IsolateStartSerializer":{"StructuredSerializer":["IsolateStart"],"Serializer":["IsolateStart"]},"_$IsolateExit":{"IsolateExit":[]},"_$IsolateStart":{"IsolateStart":[]},"_$RegisterEventSerializer":{"StructuredSerializer":["RegisterEvent"],"Serializer":["RegisterEvent"]},"_$RegisterEvent":{"RegisterEvent":[]},"_$RunRequestSerializer":{"StructuredSerializer":["RunRequest"],"Serializer":["RunRequest"]},"_$RunRequest":{"RunRequest":[]},"_$ServiceExtensionRequestSerializer":{"StructuredSerializer":["ServiceExtensionRequest"],"Serializer":["ServiceExtensionRequest"]},"_$ServiceExtensionRequest":{"ServiceExtensionRequest":[]},"_$ServiceExtensionResponseSerializer":{"StructuredSerializer":["ServiceExtensionResponse"],"Serializer":["ServiceExtensionResponse"]},"_$ServiceExtensionResponse":{"ServiceExtensionResponse":[]},"SseSocketClient":{"SocketClient":[]},"WebSocketClient":{"SocketClient":[]},"Int32":{"Comparable":["Object"]},"Int64":{"Comparable":["Object"]},"ByteStream":{"StreamView":["List<int>"],"Stream":["List<int>"],"Stream.T":"List<int>","StreamView.T":"List<int>"},"ClientException":{"Exception":[]},"Request":{"BaseRequest":[]},"StreamedResponseV2":{"StreamedResponse":[]},"CaseInsensitiveMap":{"CanonicalizedMap":["String","String","1"],"Map":["String","1"],"CanonicalizedMap.K":"String","CanonicalizedMap.V":"1","CanonicalizedMap.C":"String"},"Level":{"Comparable":["Level"]},"PathException":{"Exception":[]},"PosixStyle":{"InternalStyle":[]},"UrlStyle":{"InternalStyle":[]},"WindowsStyle":{"InternalStyle":[]},"FileLocation":{"SourceLocation":[],"Comparable":["SourceLocation"]},"_FileSpan":{"SourceSpanWithContext":[],"SourceSpan":[],"Comparable":["SourceSpan"]},"SourceLocation":{"Comparable":["SourceLocation"]},"SourceLocationMixin":{"SourceLocation":[],"Comparable":["SourceLocation"]},"SourceSpan":{"Comparable":["SourceSpan"]},"SourceSpanBase":{"SourceSpan":[],"Comparable":["SourceSpan"]},"SourceSpanException":{"Exception":[]},"SourceSpanFormatException":{"FormatException":[],"Exception":[]},"SourceSpanMixin":{"SourceSpan":[],"Comparable":["SourceSpan"]},"SourceSpanWithContext":{"SourceSpan":[],"Comparable":["SourceSpan"]},"SseClient":{"StreamChannel":["String?"]},"GuaranteeChannel":{"StreamChannel":["1"]},"_GuaranteeSink":{"StreamSink":["1"]},"StreamChannelMixin":{"StreamChannel":["1"]},"StringScannerException":{"FormatException":[],"Exception":[]},"_EventStream":{"Stream":["1"],"Stream.T":"1"},"_EventStreamSubscription":{"StreamSubscription":["1"]},"BrowserWebSocket":{"WebSocket":[]},"TextDataReceived":{"WebSocketEvent":[]},"BinaryDataReceived":{"WebSocketEvent":[]},"CloseReceived":{"WebSocketEvent":[]},"WebSocketException":{"Exception":[]},"WebSocketConnectionClosed":{"Exception":[]},"AdapterWebSocketChannel":{"WebSocketChannel":[],"StreamChannel":["@"]},"_WebSocketSink":{"WebSocketSink":[],"DelegatingStreamSink":["@"],"StreamSink":["@"],"DelegatingStreamSink.T":"@"},"WebSocketChannelException":{"Exception":[]},"DdcLibraryBundleRestarter":{"Restarter":[]},"DdcRestarter":{"Restarter":[]},"RequireRestarter":{"Restarter":[]},"HotReloadFailedException":{"Exception":[]},"Int8List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Uint8List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Uint8ClampedList":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Int16List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Uint16List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Int32List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Uint32List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Float32List":{"List":["double"],"EfficientLengthIterable":["double"],"Iterable":["double"]},"Float64List":{"List":["double"],"EfficientLengthIterable":["double"],"Iterable":["double"]}}'));
   A._Universe_addErasedTypes(init.typeUniverse, JSON.parse('{"UnmodifiableListBase":1,"__CastListBase__CastIterableBase_ListMixin":2,"NativeTypedArray":1,"_DelayedEvent":1,"_SplayTreeSet__SplayTree_Iterable":1,"_SplayTreeSet__SplayTree_Iterable_SetMixin":1,"_QueueList_Object_ListMixin":1,"StreamChannelMixin":1}'));
   var string$ = {
     x00_____: "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\u03f6\x00\u0404\u03f4 \u03f4\u03f6\u01f6\u01f6\u03f6\u03fc\u01f4\u03ff\u03ff\u0584\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u05d4\u01f4\x00\u01f4\x00\u0504\u05c4\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u0400\x00\u0400\u0200\u03f7\u0200\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u0200\u0200\u0200\u03f7\x00",
@@ -29623,7 +29108,6 @@
     Error_: "Error handler must accept one Object or one Object and a StackTrace as arguments, and return a value of the returned future's type",
     Hot_reA: "Hot reload is not supported for the AMD module format.",
     Hot_reD: "Hot reload is not supported for the DDC module format.",
-    max_mu: "max must be in range 0 < max \u2264 2^32, was ",
     serial: "serializer must be StructuredSerializer or PrimitiveSerializer"
   };
   var type$ = (function rtii() {
@@ -29686,7 +29170,6 @@
       Iterable_int: findType("Iterable<int>"),
       Iterable_nullable_Object: findType("Iterable<Object?>"),
       JSArray_FullType: findType("JSArray<FullType>"),
-      JSArray_JSObject: findType("JSArray<JSObject>"),
       JSArray_Object: findType("JSArray<Object>"),
       JSArray_String: findType("JSArray<String>"),
       JSArray_Type: findType("JSArray<Type>"),
@@ -29761,7 +29244,6 @@
       StackTrace: findType("StackTrace"),
       StreamChannelController_nullable_Object: findType("StreamChannelController<Object?>"),
       StreamQueue_DebugEvent: findType("StreamQueue<DebugEvent>"),
-      Stream_dynamic: findType("Stream<@>"),
       StreamedResponse: findType("StreamedResponse"),
       String: findType("String"),
       String_Function_Match: findType("String(Match)"),
@@ -29785,18 +29267,19 @@
       Zone: findType("Zone"),
       _AsyncCompleter_BrowserWebSocket: findType("_AsyncCompleter<BrowserWebSocket>"),
       _AsyncCompleter_PoolResource: findType("_AsyncCompleter<PoolResource>"),
+      _AsyncCompleter_StreamedResponse: findType("_AsyncCompleter<StreamedResponse>"),
       _AsyncCompleter_String: findType("_AsyncCompleter<String>"),
       _AsyncCompleter_Uint8List: findType("_AsyncCompleter<Uint8List>"),
       _AsyncCompleter_bool: findType("_AsyncCompleter<bool>"),
       _AsyncCompleter_dynamic: findType("_AsyncCompleter<@>"),
       _AsyncCompleter_void: findType("_AsyncCompleter<~>"),
-      _AsyncStreamController_List_int: findType("_AsyncStreamController<List<int>>"),
       _BigIntImpl: findType("_BigIntImpl"),
       _BuiltMap_dynamic_dynamic: findType("_BuiltMap<@,@>"),
       _EventRequest_dynamic: findType("_EventRequest<@>"),
       _EventStream_JSObject: findType("_EventStream<JSObject>"),
       _Future_BrowserWebSocket: findType("_Future<BrowserWebSocket>"),
       _Future_PoolResource: findType("_Future<PoolResource>"),
+      _Future_StreamedResponse: findType("_Future<StreamedResponse>"),
       _Future_String: findType("_Future<String>"),
       _Future_Uint8List: findType("_Future<Uint8List>"),
       _Future_bool: findType("_Future<bool>"),
@@ -29841,7 +29324,6 @@
       nullable__Highlight: findType("_Highlight?"),
       nullable__LinkedHashSetCell: findType("_LinkedHashSetCell?"),
       nullable_bool: findType("bool?"),
-      nullable_bool_Function_Object: findType("bool(Object)?"),
       nullable_double: findType("double?"),
       nullable_int: findType("int?"),
       nullable_num: findType("num?"),
@@ -29865,8 +29347,7 @@
       void_Function_Object: findType("~(Object)"),
       void_Function_Object_StackTrace: findType("~(Object,StackTrace)"),
       void_Function_String_dynamic: findType("~(String,@)"),
-      void_Function_Timer: findType("~(Timer)"),
-      void_Function_int_dynamic: findType("~(int,@)")
+      void_Function_Timer: findType("~(Timer)")
     };
   })();
   (function constants() {
@@ -29879,7 +29360,6 @@
     B.JSString_methods = J.JSString.prototype;
     B.JavaScriptFunction_methods = J.JavaScriptFunction.prototype;
     B.JavaScriptObject_methods = J.JavaScriptObject.prototype;
-    B.NativeByteData_methods = A.NativeByteData.prototype;
     B.NativeUint32List_methods = A.NativeUint32List.prototype;
     B.NativeUint8List_methods = A.NativeUint8List.prototype;
     B.PlainJavaScriptObject_methods = J.PlainJavaScriptObject.prototype;
@@ -30306,11 +29786,6 @@
     _lazyFinal($, "_Uri__needsNoEncoding", "$get$_Uri__needsNoEncoding", () => A.RegExp_RegExp("^[\\-\\.0-9A-Z_a-z~]*$", true, false));
     _lazyFinal($, "_hashSeed", "$get$_hashSeed", () => A.objectHashCode(B.Type_Object_A4p));
     _lazyFinal($, "_jsBoxedDartObjectProperty", "$get$_jsBoxedDartObjectProperty", () => Symbol("jsBoxedDartObjectProperty"));
-    _lazyFinal($, "Random__secureRandom", "$get$Random__secureRandom", () => {
-      var t1 = new A._JSSecureRandom(new DataView(new ArrayBuffer(A._checkLength(8))));
-      t1._JSSecureRandom$0();
-      return t1;
-    });
     _lazyFinal($, "isSoundMode", "$get$isSoundMode", () => !type$.List_int._is(A._setArrayType([], A.findType("JSArray<int?>"))));
     _lazy($, "newBuiltValueToStringHelper", "$get$newBuiltValueToStringHelper", () => new A.newBuiltValueToStringHelper_closure());
     _lazyFinal($, "_runtimeType", "$get$_runtimeType", () => A.getRuntimeTypeOfDartObject(A.RegExp_RegExp("", true, false)));
@@ -30370,10 +29845,11 @@
     _lazy($, "_$serviceExtensionResponseSerializer", "$get$_$serviceExtensionResponseSerializer", () => new A._$ServiceExtensionResponseSerializer());
     _lazyFinal($, "_logger", "$get$_logger", () => A.Logger_Logger("Utilities"));
     _lazyFinal($, "BaseRequest__tokenRE", "$get$BaseRequest__tokenRE", () => A.RegExp_RegExp("^[\\w!#%&'*+\\-.^`|~]+$", true, false));
+    _lazyFinal($, "_digitRegex", "$get$_digitRegex", () => A.RegExp_RegExp("^\\d+$", true, false));
     _lazyFinal($, "_escapedChar", "$get$_escapedChar", () => A.RegExp_RegExp('["\\x00-\\x1F\\x7F]', true, false));
     _lazyFinal($, "token", "$get$token", () => A.RegExp_RegExp('[^()<>@,;:"\\\\/[\\]?={} \\t\\x00-\\x1F\\x7F]+', true, false));
     _lazyFinal($, "_lws", "$get$_lws", () => A.RegExp_RegExp("(?:\\r\\n)?[ \\t]+", true, false));
-    _lazyFinal($, "_quotedString", "$get$_quotedString", () => A.RegExp_RegExp('"(?:[^"\\x00-\\x1F\\x7F\\\\]|\\\\.)*"', true, false));
+    _lazyFinal($, "_quotedString", "$get$_quotedString", () => A.RegExp_RegExp('"(?:[^"\\x00-\\x1F\\x7F]|\\\\.)*"', true, false));
     _lazyFinal($, "_quotedPair", "$get$_quotedPair", () => A.RegExp_RegExp("\\\\(.)", true, false));
     _lazyFinal($, "nonToken", "$get$nonToken", () => A.RegExp_RegExp('[()<>@,;:"\\\\/\\[\\]?={} \\t\\x00-\\x1F\\x7F]', true, false));
     _lazyFinal($, "whitespace", "$get$whitespace", () => A.RegExp_RegExp("(?:" + $.$get$_lws().pattern + ")*", true, false));
@@ -30392,8 +29868,8 @@
       t4 = A.Completer_Completer(type$.dynamic);
       return new A.Pool(t2, t3, t1, 1000, new A.AsyncMemoizer(t4, A.findType("AsyncMemoizer<@>")));
     });
-    _lazy($, "V1State_random", "$get$V1State_random", () => new A.CryptoRNG());
-    _lazy($, "V4State_random", "$get$V4State_random", () => new A.CryptoRNG());
+    _lazy($, "V1State_random", "$get$V1State_random", () => A.MathRNG$());
+    _lazy($, "V4State_random", "$get$V4State_random", () => A.MathRNG$());
     _lazyFinal($, "UuidParsing__byteToHex", "$get$UuidParsing__byteToHex", () => {
       var i,
         _list = J.JSArray_JSArray$allocateGrowable(256, type$.String);
@@ -30401,7 +29877,6 @@
         _list[i] = B.JSString_methods.padLeft$2(B.JSInt_methods.toRadixString$1(i, 16), 2, "0");
       return _list;
     });
-    _lazyFinal($, "CryptoRNG__secureRandom", "$get$CryptoRNG__secureRandom", () => $.$get$Random__secureRandom());
     _lazyFinal($, "_noncePattern", "$get$_noncePattern", () => A.RegExp_RegExp("^[\\w+/_-]+[=]{0,2}$", true, false));
     _lazyFinal($, "_createScript", "$get$_createScript", () => new A._createScript_closure().call$0());
   })();
diff --git a/dwds/lib/src/version.dart b/dwds/lib/src/version.dart
index f4414db..9c88b04 100644
--- a/dwds/lib/src/version.dart
+++ b/dwds/lib/src/version.dart
@@ -1,2 +1,2 @@
 // Generated code. Do not modify.
-const packageVersion = '25.0.3';
+const packageVersion = '25.1.0-wip';
diff --git a/dwds/pubspec.yaml b/dwds/pubspec.yaml
index bdaf630..987f5e2 100644
--- a/dwds/pubspec.yaml
+++ b/dwds/pubspec.yaml
@@ -1,6 +1,6 @@
 name: dwds
 # Every time this changes you need to run `dart run build_runner build`.
-version: 25.0.3
+version: 25.1.0-wip
 
 description: >-
   A service that proxies between the Chrome debug protocol and the Dart VM
diff --git a/dwds/test/common/hot_restart_common.dart b/dwds/test/common/hot_restart_common.dart
index 5cea54d..de546ba 100644
--- a/dwds/test/common/hot_restart_common.dart
+++ b/dwds/test/common/hot_restart_common.dart
@@ -47,30 +47,37 @@
   }
 
   Future<void> makeEditAndRecompile() async {
-    context.makeEditToDartEntryFile(
-      toReplace: originalString,
-      replaceWith: newString,
-    );
+    await context.makeEdits([
+      (
+        file: context.project.dartEntryFileName,
+        originalString: originalString,
+        newString: newString,
+      ),
+    ]);
     await recompile(hasEdits: true);
   }
 
-  /// Wait for main to finish executing before checking expectations by checking
-  /// for a log output.
-  ///
-  /// If [debuggingEnabled] is false, we can't check for Chrome logs and instead
-  /// wait 1 second.
-  // TODO(srujzs): We should do something less prone to race conditions when
-  // debugging is disabled.
-  Future<void> waitForMainToExecute({bool debuggingEnabled = true}) async {
-    if (!debuggingEnabled) return Future.delayed(const Duration(seconds: 1));
+  // Wait for `expectedStrings` to be printed to the console.
+  Future<void> waitForLogs(List<String> expectedStrings) async {
+    final expectations = List<String>.from(expectedStrings);
     final completer = Completer<void>();
-    final expectedString = 'main executed';
     final subscription = context.webkitDebugger.onConsoleAPICalled.listen((e) {
-      if (e.args.first.value == expectedString) {
-        completer.complete();
+      final value = e.args.first.value;
+      if (expectations.contains(value)) {
+        expectations.remove(value);
+        if (expectations.isEmpty) {
+          completer.complete();
+        }
       }
     });
-    await completer.future;
+    await completer.future.timeout(
+      const Duration(minutes: 1),
+      onTimeout: () {
+        throw TimeoutException(
+          'Failed to find logs: $expectedStrings in console.',
+        );
+      },
+    );
     await subscription.cancel();
   }
 
@@ -95,14 +102,10 @@
         });
 
         test('can live reload changes ', () async {
-          final mainDone = waitForMainToExecute();
-          await makeEditAndRecompile();
-          await mainDone;
-          final source = await context.webDriver.pageSource;
-
           // A full reload should clear the state.
-          expect(source.contains(originalString), isFalse);
-          expect(source.contains(newString), isTrue);
+          final logFuture = waitForLogs([newString]);
+          await makeEditAndRecompile();
+          await logFuture;
         });
       });
 
@@ -127,14 +130,10 @@
         });
 
         test('can live reload changes ', () async {
-          final mainDone = waitForMainToExecute(debuggingEnabled: false);
-          await makeEditAndRecompile();
-          await mainDone;
-          final source = await context.webDriver.pageSource;
-
           // A full reload should clear the state.
-          expect(source.contains(originalString), isFalse);
-          expect(source.contains(newString), isTrue);
+          final logFuture = waitForLogs([newString]);
+          await makeEditAndRecompile();
+          await logFuture;
         });
       });
 
@@ -160,14 +159,10 @@
         });
 
         test('can live reload changes ', () async {
-          final mainDone = waitForMainToExecute(debuggingEnabled: false);
-          await makeEditAndRecompile();
-          await mainDone;
-          final source = await context.webDriver.pageSource;
-
           // A full reload should clear the state.
-          expect(source.contains(originalString), isFalse);
-          expect(source.contains(newString), isTrue);
+          final logFuture = waitForLogs([newString]);
+          await makeEditAndRecompile();
+          await logFuture;
         });
       });
     },
@@ -303,7 +298,8 @@
           ]),
         ),
       );
-      final mainDone = waitForMainToExecute();
+      // Main is re-invoked which shouldn't clear the state.
+      final logFuture = waitForLogs(['$originalString $newString']);
       final hotRestart = context.getRegisteredServiceExtension('hotRestart');
       expect(
         await fakeClient.callServiceExtension(hotRestart!),
@@ -311,12 +307,7 @@
       );
 
       await eventsDone;
-      await mainDone;
-
-      final source = await context.webDriver.pageSource;
-      // Main is re-invoked which shouldn't clear the state.
-      expect(source, contains(originalString));
-      expect(source, contains(newString));
+      await logFuture;
     });
 
     test('can send events before and after hot restart', () async {
@@ -349,7 +340,8 @@
       );
 
       await recompile();
-      final mainDone = waitForMainToExecute();
+      // Main is re-invoked which shouldn't clear the state.
+      final logFuture = waitForLogs(['$originalString $originalString']);
       final hotRestart = context.getRegisteredServiceExtension('hotRestart');
       expect(
         await fakeClient.callServiceExtension(hotRestart!),
@@ -368,11 +360,7 @@
       );
 
       await eventsDone;
-      await mainDone;
-
-      final source = await context.webDriver.pageSource;
-      // Main is re-invoked which shouldn't clear the state.
-      expect(source, contains('Hello World!'));
+      await logFuture;
     });
 
     test('can refresh the page via the fullReload service extension', () async {
@@ -390,7 +378,8 @@
           ]),
         ),
       );
-      final mainDone = waitForMainToExecute();
+      // Should see only the new text.
+      final logFuture = waitForLogs([newString]);
       final fullReload = context.getRegisteredServiceExtension('fullReload');
       expect(
         await fakeClient.callServiceExtension(fullReload!),
@@ -398,12 +387,7 @@
       );
 
       await eventsDone;
-      await mainDone;
-
-      final source = await context.webDriver.pageSource;
-      // Should see only the new text
-      expect(source.contains(originalString), isFalse);
-      expect(source.contains(newString), isTrue);
+      await logFuture;
     });
 
     test('can hot restart while paused', () async {
@@ -427,17 +411,11 @@
       );
 
       await makeEditAndRecompile();
-      final mainDone = waitForMainToExecute();
+      // Main is re-invoked which shouldn't clear the state.
+      final logFuture = waitForLogs(['$originalString $newString']);
       final hotRestart = context.getRegisteredServiceExtension('hotRestart');
       await fakeClient.callServiceExtension(hotRestart!);
-
-      await mainDone;
-
-      final source = await context.webDriver.pageSource;
-
-      // Main is re-invoked which shouldn't clear the state.
-      expect(source.contains(originalString), isTrue);
-      expect(source.contains(newString), isTrue);
+      await logFuture;
 
       vm = await client.getVM();
       isolateId = vm.isolates!.first.id!;
@@ -474,37 +452,25 @@
     test('can hot restart with no changes, hot restart with changes, and '
         'hot restart again with no changes', () async {
       // Empty hot restart.
-      var mainDone = waitForMainToExecute();
+      var logFuture = waitForLogs(['$originalString $originalString']);
       await recompile();
       final hotRestart = context.getRegisteredServiceExtension('hotRestart');
       await fakeClient.callServiceExtension(hotRestart!);
-
-      await mainDone;
-      var source = await context.webDriver.pageSource;
-      expect(source.contains(originalString), isTrue);
-      expect(source.contains(newString), isFalse);
+      await logFuture;
 
       // Hot restart.
-      mainDone = waitForMainToExecute();
+      logFuture = waitForLogs(['$originalString $originalString $newString']);
       await makeEditAndRecompile();
       await fakeClient.callServiceExtension(hotRestart);
-
-      await mainDone;
-      source = await context.webDriver.pageSource;
-      // Main is re-invoked which shouldn't clear the state.
-      expect(source.contains(originalString), isTrue);
-      expect(source.contains(newString), isTrue);
+      await logFuture;
 
       // Empty hot restart.
-      mainDone = waitForMainToExecute();
+      logFuture = waitForLogs([
+        '$originalString $originalString $newString $newString',
+      ]);
       await recompile();
       await fakeClient.callServiceExtension(hotRestart);
-
-      await mainDone;
-      source = await context.webDriver.pageSource;
-      expect(source.contains(originalString), isTrue);
-      // `newString` should now exist twice in the source.
-      expect(source.contains(RegExp('$newString.*$newString')), isTrue);
+      await logFuture;
     });
   }, timeout: Timeout.factor(2));
 
@@ -529,19 +495,15 @@
         });
 
         test('can hot restart changes ', () async {
-          final mainDone = waitForMainToExecute();
-          await makeEditAndRecompile();
-          await mainDone;
-          final source = await context.webDriver.pageSource;
-
           // Main is re-invoked which shouldn't clear the state.
-          expect(source.contains(originalString), isTrue);
-          expect(source.contains(newString), isTrue);
-          // The ext.flutter.disassemble callback is invoked and waited for.
-          expect(
-            source,
-            contains('start disassemble end disassemble $newString'),
-          );
+          final logFutures = waitForLogs([
+            '$originalString $newString',
+            // The ext.flutter.disassemble callback is invoked and waited for.
+            'start disassemble',
+            'end disassemble',
+          ]);
+          await makeEditAndRecompile();
+          await logFutures;
         });
 
         test(
@@ -589,19 +551,15 @@
         });
 
         test('can hot restart changes ', () async {
-          final mainDone = waitForMainToExecute(debuggingEnabled: false);
-          await makeEditAndRecompile();
-          await mainDone;
-          final source = await context.webDriver.pageSource;
-
           // Main is re-invoked which shouldn't clear the state.
-          expect(source.contains(originalString), isTrue);
-          expect(source.contains(newString), isTrue);
-          // The ext.flutter.disassemble callback is invoked and waited for.
-          expect(
-            source,
-            contains('start disassemble end disassemble $newString'),
-          );
+          final logFutures = waitForLogs([
+            '$originalString $newString',
+            // The ext.flutter.disassemble callback is invoked and waited for.
+            'start disassemble',
+            'end disassemble',
+          ]);
+          await makeEditAndRecompile();
+          await logFutures;
         });
       });
     },
@@ -650,7 +608,8 @@
           ),
         );
 
-        final mainDone = waitForMainToExecute();
+        // Main is re-invoked which shouldn't clear the state.
+        final logFuture = waitForLogs(['$originalString $newString']);
         final hotRestart = context.getRegisteredServiceExtension('hotRestart');
         expect(
           await fakeClient.callServiceExtension(hotRestart!),
@@ -659,24 +618,18 @@
 
         await eventsDone;
 
-        final sourceBeforeResume = await context.webDriver.pageSource;
-        expect(sourceBeforeResume.contains(newString), isFalse);
-
         final vm = await client.getVM();
         final isolateId = vm.isolates!.first.id!;
         await client.resume(isolateId);
 
-        await mainDone;
-
-        final sourceAfterResume = await context.webDriver.pageSource;
-        expect(sourceAfterResume.contains(newString), isTrue);
+        await logFuture;
       },
     );
 
     test(
       'after page refresh, does not run app until there is a resume event',
       () async {
-        final mainDone = waitForMainToExecute();
+        final logFuture = waitForLogs([newString]);
         await makeEditAndRecompile();
         await context.webDriver.driver.refresh();
 
@@ -693,17 +646,11 @@
 
         await eventsDone;
 
-        final sourceBeforeResume = await context.webDriver.pageSource;
-        expect(sourceBeforeResume.contains(newString), isFalse);
-
         final vm = await client.getVM();
         final isolateId = vm.isolates!.first.id!;
         await client.resume(isolateId);
 
-        await mainDone;
-
-        final sourceAfterResume = await context.webDriver.pageSource;
-        expect(sourceAfterResume.contains(newString), isTrue);
+        await logFuture;
       },
     );
   });
diff --git a/dwds/test/common/hot_restart_correctness_common.dart b/dwds/test/common/hot_restart_correctness_common.dart
index 381c41a..36ac8e9 100644
--- a/dwds/test/common/hot_restart_correctness_common.dart
+++ b/dwds/test/common/hot_restart_correctness_common.dart
@@ -7,12 +7,13 @@
 @Timeout(Duration(minutes: 5))
 library;
 
+import 'dart:async';
+
 import 'package:dwds/dwds.dart';
 import 'package:dwds/expression_compiler.dart';
 import 'package:test/test.dart';
 import 'package:test_common/logging.dart';
 import 'package:test_common/test_sdk_configuration.dart';
-import 'package:test_common/utilities.dart';
 import 'package:vm_service/vm_service.dart';
 
 import '../fixtures/context.dart';
@@ -38,11 +39,13 @@
   final context = TestContext(testHotRestart2, provider);
 
   Future<void> makeEditAndRecompile() async {
-    context.makeEditToDartLibFile(
-      libFileName: 'library2.dart',
-      toReplace: originalString,
-      replaceWith: newString,
-    );
+    await context.makeEdits([
+      (
+        file: 'library2.dart',
+        originalString: originalString,
+        newString: newString,
+      ),
+    ]);
     if (compilationMode == CompilationMode.frontendServer) {
       await context.recompile(fullRestart: true);
     } else {
@@ -51,6 +54,25 @@
     }
   }
 
+  // Wait for `expectedString` to be printed to the console.
+  Future<void> waitForLog(String expectedString) async {
+    final completer = Completer<void>();
+    final subscription = context.webkitDebugger.onConsoleAPICalled.listen((e) {
+      if (e.args.first.value == expectedString) {
+        completer.complete();
+      }
+    });
+    await completer.future.timeout(
+      const Duration(minutes: 1),
+      onTimeout: () {
+        throw TimeoutException(
+          "Failed to find log: '$expectedString' in console.",
+        );
+      },
+    );
+    await subscription.cancel();
+  }
+
   group('Injected client', () {
     VmService? fakeClient;
 
@@ -72,18 +94,25 @@
       await context.tearDown();
     });
 
+    test('initial state prints the right log', () async {
+      final client = context.debugConnection.vmService;
+
+      final logFuture = waitForLog(
+        'ConstObject(reloadVariable: 23, ConstantEqualitySuccess)',
+      );
+      final vm = await client.getVM();
+      final isolate = await client.getIsolate(vm.isolates!.first.id!);
+      final rootLib = isolate.rootLib;
+      await client.evaluate(isolate.id!, rootLib!.id!, 'printConst()');
+      await logFuture;
+    });
+
     test(
       'properly compares constants after hot restart via the service extension',
       () async {
         final client = context.debugConnection.vmService;
         await client.streamListen('Isolate');
 
-        var source = await context.webDriver.pageSource;
-        expect(
-          source,
-          contains('ConstObject(reloadVariable: 23, ConstantEqualitySuccess)'),
-        );
-
         await makeEditAndRecompile();
 
         final eventsDone = expectLater(
@@ -97,6 +126,9 @@
           ),
         );
 
+        final logFuture = waitForLog(
+          'ConstObject(reloadVariable: 45, ConstantEqualitySuccess)',
+        );
         final hotRestart = context.getRegisteredServiceExtension('hotRestart');
         expect(
           await fakeClient!.callServiceExtension(hotRestart!),
@@ -104,16 +136,7 @@
         );
 
         await eventsDone;
-
-        source = await context.webDriver.pageSource;
-        if (dartSdkIsAtLeast('3.4.0-61.0.dev')) {
-          expect(
-            source,
-            contains(
-              'ConstObject(reloadVariable: 45, ConstantEqualitySuccess)',
-            ),
-          );
-        }
+        await logFuture;
       },
     );
   }, timeout: Timeout.factor(2));
@@ -139,25 +162,11 @@
         });
 
         test('properly compares constants after hot restart', () async {
-          var source = await context.webDriver.pageSource;
-          expect(
-            source,
-            contains(
-              'ConstObject(reloadVariable: 23, ConstantEqualitySuccess)',
-            ),
+          final logFuture = waitForLog(
+            'ConstObject(reloadVariable: 45, ConstantEqualitySuccess)',
           );
-
           await makeEditAndRecompile();
-
-          source = await context.webDriver.pageSource;
-          if (dartSdkIsAtLeast('3.4.0-61.0.dev')) {
-            expect(
-              source,
-              contains(
-                'ConstObject(reloadVariable: 45, ConstantEqualitySuccess)',
-              ),
-            );
-          }
+          await logFuture;
         });
       });
 
@@ -182,25 +191,11 @@
         });
 
         test('properly compares constants after hot restart', () async {
-          var source = await context.webDriver.pageSource;
-          expect(
-            source,
-            contains(
-              'ConstObject(reloadVariable: 23, ConstantEqualitySuccess)',
-            ),
+          final logFuture = waitForLog(
+            'ConstObject(reloadVariable: 45, ConstantEqualitySuccess)',
           );
-
           await makeEditAndRecompile();
-
-          source = await context.webDriver.pageSource;
-          if (dartSdkIsAtLeast('3.4.0-61.0.dev')) {
-            expect(
-              source,
-              contains(
-                'ConstObject(reloadVariable: 45, ConstantEqualitySuccess)',
-              ),
-            );
-          }
+          await logFuture;
         });
       });
     },
diff --git a/dwds/test/devtools_test.dart b/dwds/test/devtools_test.dart
index 3c246fe..94eeb70 100644
--- a/dwds/test/devtools_test.dart
+++ b/dwds/test/devtools_test.dart
@@ -112,10 +112,13 @@
         // https://github.com/dart-lang/webdev/pull/901#issuecomment-586438132
         final client = context.debugConnection.vmService;
         await client.streamListen('Isolate');
-        context.makeEditToDartEntryFile(
-          toReplace: 'Hello World!',
-          replaceWith: 'Bonjour le monde!',
-        );
+        await context.makeEdits([
+          (
+            file: context.project.dartEntryFileName,
+            originalString: 'Hello World!',
+            newString: 'Bonjour le monde!',
+          ),
+        ]);
         await context.waitForSuccessfulBuild(propagateToBrowser: true);
 
         final eventsDone = expectLater(
diff --git a/dwds/test/fixtures/context.dart b/dwds/test/fixtures/context.dart
index 6a40c8f..e515f27 100644
--- a/dwds/test/fixtures/context.dart
+++ b/dwds/test/fixtures/context.dart
@@ -492,8 +492,9 @@
         if (debugSettings.enableDebugging && !testSettings.waitToDebug) {
           await startDebugging();
         }
+        _webkitDebugger = WebkitDebugger(WipDebugger(tabConnection));
       } else {
-        // No tab needs to be dicovered, so fulfill the relevant completer.
+        // No tab needs to be discovered, so fulfill the relevant completer.
         tabConnectionCompleter.complete();
       }
     } catch (e, s) {
@@ -538,7 +539,6 @@
 
   Future<void> startDebugging() async {
     debugConnection = await testServer.dwds.debugConnection(appConnection);
-    _webkitDebugger = WebkitDebugger(WipDebugger(tabConnection));
   }
 
   Future<void> tearDown() async {
@@ -565,23 +565,30 @@
     _outputDir = null;
   }
 
-  void makeEditToDartEntryFile({
-    required String toReplace,
-    required String replaceWith,
-  }) {
-    final file = File(project.dartEntryFilePath);
-    final fileContents = file.readAsStringSync();
-    file.writeAsStringSync(fileContents.replaceAll(toReplace, replaceWith));
-  }
-
-  void makeEditToDartLibFile({
-    required String libFileName,
-    required String toReplace,
-    required String replaceWith,
-  }) {
-    final file = File(project.dartLibFilePath(libFileName));
-    final fileContents = file.readAsStringSync();
-    file.writeAsStringSync(fileContents.replaceAll(toReplace, replaceWith));
+  /// Given a list of edits, use file IO to write them to the file system.
+  ///
+  /// If `file` has the same name as the project's entry file name, that file
+  /// will be edited. Otherwise, it's assumed to be a library file.
+  // TODO(srujzs): It's possible we may want a library file with the same name
+  // as the entry file, but this function doesn't allow that. Potentially
+  // support that.
+  Future<void> makeEdits(List<Edit> edits) async {
+    // `dart:io`'s `stat` on Windows does not have millisecond precision so we
+    // need to make sure we wait long enough that modifications result in a
+    // timestamp that is guaranteed to be after the previous compile.
+    // TODO(https://github.com/dart-lang/sdk/issues/51937): Remove once this bug
+    // is fixed.
+    if (Platform.isWindows) await Future.delayed(Duration(seconds: 1));
+    for (var (:file, :originalString, :newString) in edits) {
+      if (file == project.dartEntryFileName) {
+        file = project.dartEntryFilePath;
+      } else {
+        file = project.dartLibFilePath(file);
+      }
+      final f = File(project.dartLibFilePath(file));
+      final fileContents = f.readAsStringSync();
+      f.writeAsStringSync(fileContents.replaceAll(originalString, newString));
+    }
   }
 
   void addLibraryFile({required String libFileName, required String contents}) {
@@ -677,3 +684,5 @@
     return lineNumber + 1;
   }
 }
+
+typedef Edit = ({String file, String originalString, String newString});
diff --git a/dwds/test/hot_reload_breakpoints_test.dart b/dwds/test/hot_reload_breakpoints_test.dart
index 7849005..7bcb781 100644
--- a/dwds/test/hot_reload_breakpoints_test.dart
+++ b/dwds/test/hot_reload_breakpoints_test.dart
@@ -35,28 +35,9 @@
 
   tearDownAll(provider.dispose);
 
-  void makeEdit(String file, String originalString, String newString) {
-    if (file == project.dartEntryFileName) {
-      context.makeEditToDartEntryFile(
-        toReplace: originalString,
-        replaceWith: newString,
-      );
-    } else {
-      context.makeEditToDartLibFile(
-        libFileName: file,
-        toReplace: originalString,
-        replaceWith: newString,
-      );
-    }
-  }
-
-  Future<void> makeEditAndRecompile(
-    String file,
-    String originalString,
-    String newString,
-  ) async {
-    makeEdit(file, originalString, newString);
-    await context.recompile(fullRestart: false);
+  Future<void> makeEditsAndRecompile(List<Edit> edits) async {
+    await context.makeEdits(edits);
+    await context.recompile(fullRestart: true);
   }
 
   group('when pause_isolates_on_start is true', () {
@@ -128,9 +109,9 @@
       await client.resume(isolate.id!);
     }
 
-    // When the program is executing, we want to check that at some point it
-    // will execute code that will emit [expectedString].
-    Future<void> resumeAndExpectLog(String expectedString) async {
+    // Resume the program, and check that at some point it will execute code
+    // that will print `expectedString` to the console.
+    Future<void> resumeAndWaitForLog(String expectedString) async {
       final completer = Completer<void>();
       final subscription = context.webkitDebugger.onConsoleAPICalled.listen((
         e,
@@ -140,7 +121,14 @@
         }
       });
       await resume();
-      await completer.future;
+      await completer.future.timeout(
+        const Duration(minutes: 1),
+        onTimeout: () {
+          throw TimeoutException(
+            "Failed to find log: '$expectedString' in console.",
+          );
+        },
+      );
       await subscription.cancel();
     }
 
@@ -184,9 +172,9 @@
       await client.evaluate(isolate.id!, rootLib!.id!, 'evaluate()');
     }
 
-    // Much like `resumeAndExpectLog`, we need a completer to ensure the log
-    // will eventually occur when code is executing.
-    Future<void> callEvaluateAndExpectLog(String expectedString) async {
+    // Call the method `evaluate` in the program and wait for `expectedString`
+    // to be printed to the console.
+    Future<void> callEvaluateAndWaitForLog(String expectedString) async {
       final completer = Completer<void>();
       final subscription = context.webkitDebugger.onConsoleAPICalled.listen((
         e,
@@ -199,7 +187,14 @@
       final isolate = await client.getIsolate(vm.isolates!.first.id!);
       final rootLib = isolate.rootLib;
       await client.evaluate(isolate.id!, rootLib!.id!, 'evaluate()');
-      await completer.future;
+      await completer.future.timeout(
+        const Duration(minutes: 1),
+        onTimeout: () {
+          throw TimeoutException(
+            "Failed to find log: '$expectedString' in console.",
+          );
+        },
+      );
       await subscription.cancel();
     }
 
@@ -220,7 +215,7 @@
 
       // Should break at `callLog`.
       await breakpointFuture;
-      await resumeAndExpectLog(genString);
+      await resumeAndWaitForLog(genString);
 
       await context.recompile(fullRestart: false);
 
@@ -234,7 +229,7 @@
 
       // Should break at `callLog`.
       await breakpointFuture;
-      await resumeAndExpectLog(genString);
+      await resumeAndWaitForLog(genString);
     });
 
     test('after edit and hot reload, breakpoint is in new file', () async {
@@ -252,10 +247,12 @@
 
       // Should break at `callLog`.
       await breakpointFuture;
-      await resumeAndExpectLog(oldString);
+      await resumeAndWaitForLog(oldString);
 
       // Modify the string that gets printed.
-      await makeEditAndRecompile(mainFile, oldString, newString);
+      await makeEditsAndRecompile([
+        (file: mainFile, originalString: oldString, newString: newString),
+      ]);
 
       await hotReloadAndHandlePausePost([
         (file: mainFile, breakpointMarker: callLogMarker, bp: bp),
@@ -267,7 +264,7 @@
 
       // Should break at `callLog`.
       await breakpointFuture;
-      await resumeAndExpectLog(newString);
+      await resumeAndWaitForLog(newString);
     });
 
     test('after adding line, hot reload, removing line, and hot reload, '
@@ -285,13 +282,15 @@
 
       // Should break at `callLog`.
       await breakpointFuture;
-      await resumeAndExpectLog(genLog);
+      await resumeAndWaitForLog(genLog);
 
       // Add an extra log before the existing log.
       final extraLog = 'hot reload';
       final oldString = "log('";
       final newString = "log('$extraLog');\n$oldString";
-      await makeEditAndRecompile(mainFile, oldString, newString);
+      await makeEditsAndRecompile([
+        (file: mainFile, originalString: oldString, newString: newString),
+      ]);
 
       bp =
           (await hotReloadAndHandlePausePost([
@@ -300,14 +299,16 @@
 
       breakpointFuture = waitForBreakpoint();
 
-      await callEvaluateAndExpectLog(extraLog);
+      await callEvaluateAndWaitForLog(extraLog);
 
       // Should break at `callLog`.
       await breakpointFuture;
-      await resumeAndExpectLog(genLog);
+      await resumeAndWaitForLog(genLog);
 
       // Remove the line we just added.
-      await makeEditAndRecompile(mainFile, newString, oldString);
+      await makeEditsAndRecompile([
+        (file: mainFile, originalString: newString, newString: oldString),
+      ]);
 
       await hotReloadAndHandlePausePost([
         (file: mainFile, breakpointMarker: callLogMarker, bp: bp),
@@ -326,7 +327,7 @@
       // Should break at `callLog`.
       await breakpointFuture;
       expect(consoleLogs.contains(extraLog), false);
-      await resumeAndExpectLog(genLog);
+      await resumeAndWaitForLog(genLog);
       await consoleSubscription.cancel();
     });
 
@@ -347,7 +348,7 @@
 
         // Should break at `callLog`.
         await breakpointFuture;
-        await resumeAndExpectLog(genLog);
+        await resumeAndWaitForLog(genLog);
 
         // Add a library file, import it, and then refer to it in the log.
         final libFile = 'library.dart';
@@ -363,10 +364,13 @@
         final newImports =
             '$oldImports\n'
             "import 'package:_test_hot_reload_breakpoints/library.dart';";
-        makeEdit(mainFile, oldImports, newImports);
+        final edits = [
+          (file: mainFile, originalString: oldImports, newString: newImports),
+        ];
         final oldLog = "log('\$mainValue');";
         final newLog = "log('\$libraryValue');";
-        await makeEditAndRecompile(mainFile, oldLog, newLog);
+        edits.add((file: mainFile, originalString: oldLog, newString: newLog));
+        await makeEditsAndRecompile(edits);
 
         await hotReloadAndHandlePausePost([
           (file: mainFile, breakpointMarker: callLogMarker, bp: bp),
@@ -385,7 +389,7 @@
         await resume();
         // Should break at `libValue`.
         await breakpointFuture;
-        await resumeAndExpectLog(libGenLog);
+        await resumeAndWaitForLog(libGenLog);
       },
     );
 
@@ -406,10 +410,11 @@
 
       // Should break at `callLog`.
       await breakpointFuture;
-      await resumeAndExpectLog(genLog);
+      await resumeAndWaitForLog(genLog);
 
       // Add library files, import them, but only refer to the last one in main.
       final numFiles = 50;
+      final edits = <Edit>[];
       for (var i = 1; i <= numFiles; i++) {
         final libFile = 'library$i.dart';
         context.addLibraryFile(
@@ -422,11 +427,16 @@
         final newImports =
             '$oldImports\n'
             "import 'package:_test_hot_reload_breakpoints/$libFile';";
-        makeEdit(mainFile, oldImports, newImports);
+        edits.add((
+          file: mainFile,
+          originalString: oldImports,
+          newString: newImports,
+        ));
       }
       final oldLog = "log('\$mainValue');";
       final newLog = "log('\$libraryValue$numFiles');";
-      await makeEditAndRecompile(mainFile, oldLog, newLog);
+      edits.add((file: mainFile, originalString: oldLog, newString: newLog));
+      await makeEditsAndRecompile(edits);
 
       await hotReloadAndHandlePausePost([
         (file: mainFile, breakpointMarker: callLogMarker, bp: bp),
@@ -449,7 +459,7 @@
       await resume();
       // Should break at the breakpoint in the last file.
       await breakpointFuture;
-      await resumeAndExpectLog('library$numFiles gen1');
+      await resumeAndWaitForLog('library$numFiles gen1');
     });
 
     test('breakpoint in captured code is deleted', () async {
@@ -460,7 +470,9 @@
 
       final oldLog = "log('\$mainValue');";
       final newLog = "log('\${closure()}');";
-      await makeEditAndRecompile(mainFile, oldLog, newLog);
+      await makeEditsAndRecompile([
+        (file: mainFile, originalString: oldLog, newString: newLog),
+      ]);
 
       bp =
           (await hotReloadAndHandlePausePost([
@@ -475,14 +487,16 @@
       await breakpointFuture;
       final oldCapturedString = 'captured closure gen0';
       // Closure gets evaluated for the first time.
-      await resumeAndExpectLog(oldCapturedString);
+      await resumeAndWaitForLog(oldCapturedString);
 
       final newCapturedString = 'captured closure gen1';
-      await makeEditAndRecompile(
-        mainFile,
-        oldCapturedString,
-        newCapturedString,
-      );
+      await makeEditsAndRecompile([
+        (
+          file: mainFile,
+          originalString: oldCapturedString,
+          newString: newCapturedString,
+        ),
+      ]);
 
       await hotReloadAndHandlePausePost([
         (file: mainFile, breakpointMarker: capturedStringMarker, bp: bp),
@@ -490,7 +504,7 @@
 
       // Breakpoint should not be hit as it's now deleted. We should also see
       // the old string still as the closure has not been reevaluated.
-      await callEvaluateAndExpectLog(oldCapturedString);
+      await callEvaluateAndWaitForLog(oldCapturedString);
     });
   }, timeout: Timeout.factor(2));
 
@@ -515,7 +529,9 @@
       await context.tearDown();
     });
 
-    Future<void> callEvaluateAndExpectLog(String expectedString) async {
+    // Call the method `evaluate` in the program and wait for `expectedString`
+    // to be printed to the console.
+    Future<void> callEvaluateAndWaitForLog(String expectedString) async {
       final completer = Completer<void>();
       final subscription = context.webkitDebugger.onConsoleAPICalled.listen((
         e,
@@ -528,7 +544,14 @@
       final isolate = await client.getIsolate(vm.isolates!.first.id!);
       final rootLib = isolate.rootLib;
       await client.evaluate(isolate.id!, rootLib!.id!, 'evaluate()');
-      await completer.future;
+      await completer.future.timeout(
+        const Duration(minutes: 1),
+        onTimeout: () {
+          throw TimeoutException(
+            "Failed to find log: '$expectedString' in console.",
+          );
+        },
+      );
       await subscription.cancel();
     }
 
@@ -536,17 +559,19 @@
       final oldString = 'main gen0';
       final newString = 'main gen1';
 
-      await callEvaluateAndExpectLog(oldString);
+      await callEvaluateAndWaitForLog(oldString);
 
       // Modify the string that gets printed and hot reload.
-      await makeEditAndRecompile(mainFile, oldString, newString);
+      await makeEditsAndRecompile([
+        (file: mainFile, originalString: oldString, newString: newString),
+      ]);
       final vm = await client.getVM();
       final isolate = await client.getIsolate(vm.isolates!.first.id!);
       final report = await client.reloadSources(isolate.id!);
       expect(report.success, true);
 
       // Program should not be paused, so this should execute.
-      await callEvaluateAndExpectLog(newString);
+      await callEvaluateAndWaitForLog(newString);
     });
   }, timeout: Timeout.factor(2));
 }
diff --git a/dwds/test/hot_reload_test.dart b/dwds/test/hot_reload_test.dart
index 27c48fa..41080f7 100644
--- a/dwds/test/hot_reload_test.dart
+++ b/dwds/test/hot_reload_test.dart
@@ -40,25 +40,38 @@
   }
 
   Future<void> makeEditAndRecompile() async {
-    context.makeEditToDartLibFile(
-      libFileName: 'library1.dart',
-      toReplace: originalString,
-      replaceWith: newString,
-    );
+    await context.makeEdits([
+      (
+        file: 'library1.dart',
+        originalString: originalString,
+        newString: newString,
+      ),
+    ]);
     await recompile();
   }
 
-  /// Wait for `evaluate` to finish executing before checking expectations by
-  /// checking for a log output.
-  Future<void> waitForEvaluateToExecute() async {
+  // Call the method `evaluate` in the program and wait for `expectedString` to
+  // be printed to the console.
+  Future<void> callEvaluateAndWaitForLog(String expectedString) async {
+    final client = context.debugConnection.vmService;
     final completer = Completer<void>();
-    final expectedString = 'evaluate executed';
     final subscription = context.webkitDebugger.onConsoleAPICalled.listen((e) {
       if (e.args.first.value == expectedString) {
         completer.complete();
       }
     });
-    await completer.future;
+    final vm = await client.getVM();
+    final isolate = await client.getIsolate(vm.isolates!.first.id!);
+    final rootLib = isolate.rootLib;
+    await client.evaluate(isolate.id!, rootLib!.id!, 'evaluate()');
+    await completer.future.timeout(
+      const Duration(minutes: 1),
+      onTimeout: () {
+        throw TimeoutException(
+          "Failed to find log: '$expectedString' in console.",
+        );
+      },
+    );
     await subscription.cancel();
   }
 
@@ -91,63 +104,35 @@
       final report = await fakeClient.reloadSources(isolate.id!);
       expect(report.success, true);
 
-      var source = await context.webDriver.pageSource;
-      // Should not contain the change until the function that updates the page
-      // is evaluated in a hot reload.
-      expect(source, contains(originalString));
-      expect(source.contains(newString), false);
-
-      final evaluateDone = waitForEvaluateToExecute();
-      final rootLib = isolate.rootLib;
-      await client.evaluate(isolate.id!, rootLib!.id!, 'evaluate()');
-      await evaluateDone;
-      source = await context.webDriver.pageSource;
-      expect(source, contains(newString));
-      expect(source.contains(originalString), false);
+      await callEvaluateAndWaitForLog(newString);
     });
 
     test('can hot reload with no changes, hot reload with changes, and '
         'hot reload again with no changes', () async {
       final client = context.debugConnection.vmService;
 
-      // Empty hot reload,
+      // Empty hot reload.
       await recompile();
       final vm = await client.getVM();
       final isolate = await client.getIsolate(vm.isolates!.first.id!);
       var report = await fakeClient.reloadSources(isolate.id!);
       expect(report.success, true);
 
-      var evaluateDone = waitForEvaluateToExecute();
-      final rootLib = isolate.rootLib;
-      await client.evaluate(isolate.id!, rootLib!.id!, 'evaluate()');
-      await evaluateDone;
-      var source = await context.webDriver.pageSource;
-      expect(source, contains(originalString));
-      expect(source.contains(newString), false);
+      await callEvaluateAndWaitForLog(originalString);
 
       // Hot reload.
       await makeEditAndRecompile();
       report = await fakeClient.reloadSources(isolate.id!);
       expect(report.success, true);
 
-      evaluateDone = waitForEvaluateToExecute();
-      await client.evaluate(isolate.id!, rootLib.id!, 'evaluate()');
-      await evaluateDone;
-      source = await context.webDriver.pageSource;
-      expect(source, contains(newString));
-      expect(source.contains(originalString), false);
+      await callEvaluateAndWaitForLog(newString);
 
       // Empty hot reload.
       await recompile();
       report = await fakeClient.reloadSources(isolate.id!);
       expect(report.success, true);
 
-      evaluateDone = waitForEvaluateToExecute();
-      await client.evaluate(isolate.id!, rootLib.id!, 'evaluate()');
-      await evaluateDone;
-      source = await context.webDriver.pageSource;
-      expect(source, contains(newString));
-      expect(source.contains(originalString), false);
+      await callEvaluateAndWaitForLog(newString);
     });
   }, timeout: Timeout.factor(2));
 }
diff --git a/dwds/test/hot_restart_breakpoints_test.dart b/dwds/test/hot_restart_breakpoints_test.dart
index 358baa2..1a83b5f 100644
--- a/dwds/test/hot_restart_breakpoints_test.dart
+++ b/dwds/test/hot_restart_breakpoints_test.dart
@@ -36,27 +36,8 @@
 
   tearDownAll(provider.dispose);
 
-  void makeEdit(String file, String originalString, String newString) {
-    if (file == project.dartEntryFileName) {
-      context.makeEditToDartEntryFile(
-        toReplace: originalString,
-        replaceWith: newString,
-      );
-    } else {
-      context.makeEditToDartLibFile(
-        libFileName: file,
-        toReplace: originalString,
-        replaceWith: newString,
-      );
-    }
-  }
-
-  Future<void> makeEditAndRecompile(
-    String file,
-    String originalString,
-    String newString,
-  ) async {
-    makeEdit(file, originalString, newString);
+  Future<void> makeEditsAndRecompile(List<Edit> edits) async {
+    await context.makeEdits(edits);
     await context.recompile(fullRestart: true);
   }
 
@@ -129,9 +110,9 @@
       await client.resume(isolate.id!);
     }
 
-    // When the program is executing, we want to check that at some point it
-    // will execute code that will emit [expectedString].
-    Future<void> resumeAndExpectLog(String expectedString) async {
+    // Resume the program, and check that at some point it will execute code
+    // that will print `expectedString` to the console.
+    Future<void> resumeAndWaitForLog(String expectedString) async {
       final completer = Completer<void>();
       final subscription = context.webkitDebugger.onConsoleAPICalled.listen((
         e,
@@ -141,7 +122,14 @@
         }
       });
       await resume();
-      await completer.future;
+      await completer.future.timeout(
+        const Duration(minutes: 1),
+        onTimeout: () {
+          throw TimeoutException(
+            "Failed to find log: '$expectedString' in console.",
+          );
+        },
+      );
       await subscription.cancel();
     }
 
@@ -206,7 +194,7 @@
 
       // Should break at `callLog`.
       await breakpointFuture;
-      await resumeAndExpectLog(genString);
+      await resumeAndWaitForLog(genString);
     });
 
     test('after edit and hot restart, breakpoint is in new file', () async {
@@ -215,7 +203,9 @@
 
       await addBreakpoint(file: mainFile, breakpointMarker: callLogMarker);
 
-      await makeEditAndRecompile(mainFile, oldLog, newLog);
+      await makeEditsAndRecompile([
+        (file: mainFile, originalString: oldLog, newString: newLog),
+      ]);
 
       final breakpointFuture = waitForBreakpoint();
 
@@ -226,7 +216,7 @@
       // Should break at `callLog`.
       await breakpointFuture;
       expect(consoleLogs.contains(newLog), false);
-      await resumeAndExpectLog(newLog);
+      await resumeAndWaitForLog(newLog);
     });
 
     test('after adding line, hot restart, removing line, and hot restart, '
@@ -239,7 +229,9 @@
       final extraLog = 'hot reload';
       final oldString = "log('";
       final newString = "log('$extraLog');\n$oldString";
-      await makeEditAndRecompile(mainFile, oldString, newString);
+      await makeEditsAndRecompile([
+        (file: mainFile, originalString: oldString, newString: newString),
+      ]);
 
       var breakpointFuture = waitForBreakpoint();
 
@@ -251,12 +243,14 @@
       await breakpointFuture;
       expect(consoleLogs.contains(extraLog), true);
       expect(consoleLogs.contains(genLog), false);
-      await resumeAndExpectLog(genLog);
+      await resumeAndWaitForLog(genLog);
 
       consoleLogs.clear();
 
       // Remove the line we just added.
-      await makeEditAndRecompile(mainFile, newString, oldString);
+      await makeEditsAndRecompile([
+        (file: mainFile, originalString: newString, newString: oldString),
+      ]);
 
       breakpointFuture = waitForBreakpoint();
 
@@ -268,7 +262,7 @@
       await breakpointFuture;
       expect(consoleLogs.contains(extraLog), false);
       expect(consoleLogs.contains(genLog), false);
-      await resumeAndExpectLog(genLog);
+      await resumeAndWaitForLog(genLog);
     });
 
     test(
@@ -293,10 +287,13 @@
         final newImports =
             '$oldImports\n'
             "import 'package:_test_hot_restart_breakpoints/library.dart';";
-        makeEdit(mainFile, oldImports, newImports);
+        final edits = [
+          (file: mainFile, originalString: oldImports, newString: newImports),
+        ];
         final oldLog = "log('$genLog');";
         final newLog = "log('\$libraryValue');";
-        await makeEditAndRecompile(mainFile, oldLog, newLog);
+        edits.add((file: mainFile, originalString: oldLog, newString: newLog));
+        await makeEditsAndRecompile(edits);
 
         var breakpointFuture = waitForBreakpoint();
 
@@ -315,7 +312,7 @@
         // Should break at `libValue`.
         await breakpointFuture;
         expect(consoleLogs.contains(libGenLog), false);
-        await resumeAndExpectLog(libGenLog);
+        await resumeAndWaitForLog(libGenLog);
       },
     );
 
@@ -329,6 +326,7 @@
 
       // Add library files, import them, but only refer to the last one in main.
       final numFiles = 50;
+      final edits = <Edit>[];
       for (var i = 1; i <= numFiles; i++) {
         final libFile = 'library$i.dart';
         context.addLibraryFile(
@@ -341,11 +339,16 @@
         final newImports =
             '$oldImports\n'
             "import 'package:_test_hot_restart_breakpoints/$libFile';";
-        makeEdit(mainFile, oldImports, newImports);
+        edits.add((
+          file: mainFile,
+          originalString: oldImports,
+          newString: newImports,
+        ));
       }
       final oldLog = "log('$genLog');";
       final newLog = "log('\$libraryValue$numFiles');";
-      await makeEditAndRecompile(mainFile, oldLog, newLog);
+      edits.add((file: mainFile, originalString: oldLog, newString: newLog));
+      await makeEditsAndRecompile(edits);
 
       var breakpointFuture = waitForBreakpoint();
 
@@ -366,7 +369,7 @@
       // Should break at the breakpoint in the last file.
       await breakpointFuture;
       expect(consoleLogs.contains(newGenLog), false);
-      await resumeAndExpectLog(newGenLog);
+      await resumeAndWaitForLog(newGenLog);
     });
   });
 }
diff --git a/fixtures/_test/example/append_body/main.dart b/fixtures/_test/example/append_body/main.dart
index c030eac..8a89205 100644
--- a/fixtures/_test/example/append_body/main.dart
+++ b/fixtures/_test/example/append_body/main.dart
@@ -4,14 +4,16 @@
 
 import 'dart:async';
 import 'dart:developer';
-// TODO: https://github.com/dart-lang/webdev/issues/2508
-// ignore: deprecated_member_use
-import 'dart:html';
 import 'dart:js_interop';
 
 @JS('console.log')
 external void log(String _);
 
+// We use this to test whether a hot restart or a full reload occurred. In the
+// former, we should see the old log, but in the latter, we should not.
+@JS('\$previousLog')
+external String? previousLog;
+
 void main() {
   var count = 0;
   // For setting breakpoints.
@@ -19,15 +21,17 @@
     print('Count is: ${++count}'); // Breakpoint: printCount
   });
 
-  document.body?.appendText('Hello World!');
+  var logMessage = 'Hello World!';
+  // Note that we concatenate instead of logging each one separately to avoid
+  // possibly mixing up logs with a previous call to `main`.
+  if (previousLog != null) logMessage = '$previousLog $logMessage';
+  log(logMessage);
+  previousLog = logMessage;
 
   registerExtension('ext.flutter.disassemble', (_, __) async {
-    document.body?.appendText('start disassemble ');
+    log('start disassemble');
     await Future.delayed(const Duration(seconds: 1));
-    document.body?.appendText('end disassemble ');
+    log('end disassemble');
     return ServiceExtensionResponse.result('{}');
   });
-
-  // Wait for this print statement so that we know main is done executing.
-  log('main executed');
 }
diff --git a/fixtures/_test_hot_reload/web/main.dart b/fixtures/_test_hot_reload/web/main.dart
index e1b1f02..a85a43a 100644
--- a/fixtures/_test_hot_reload/web/main.dart
+++ b/fixtures/_test_hot_reload/web/main.dart
@@ -10,14 +10,8 @@
 @JS('console.log')
 external void log(String _);
 
-@JS('document.body.innerHTML')
-external set innerHtml(String html);
-
 void evaluate() {
-  innerHtml = 'Program is running!\n $reloadValue}\n';
-
-  // Wait for this print statement so that we know evaluate is done executing.
-  log('evaluate executed');
+  log('$reloadValue');
 }
 
 void main() {
diff --git a/fixtures/_test_hot_restart2/web/main.dart b/fixtures/_test_hot_restart2/web/main.dart
index 090ea67..92d072a 100644
--- a/fixtures/_test_hot_restart2/web/main.dart
+++ b/fixtures/_test_hot_restart2/web/main.dart
@@ -3,9 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'dart:core';
-// TODO: https://github.com/dart-lang/webdev/issues/2508
-// ignore: deprecated_member_use
-import 'dart:html';
+import 'dart:js_interop';
 
 import 'package:_test_hot_restart1/library1.dart';
 import 'package:_test_hot_restart2/library2.dart';
@@ -23,6 +21,9 @@
 ///   Constants in reloaded modules fail to compare with constants in stale
 ///   constant containers, causing 'ConstantEqualityFailure's.
 
+@JS('console.log')
+external void log(String _);
+
 class ConstObject {
   const ConstObject();
   String get text => 'ConstObject('
@@ -30,7 +31,10 @@
       '${value1 == value2 ? 'ConstantEqualitySuccess' : 'ConstantEqualityFailure'})';
 }
 
+void printConst() {
+  log('${const ConstObject().text}');
+}
+
 void main() {
-  document.body!.innerHtml =
-      'Program is running!\n${const ConstObject().text}\n';
+  printConst();
 }